@lenne.tech/ng-base 18.1.3 → 22.0.1

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 (416) hide show
  1. package/CLAUDE.md +55 -0
  2. package/LICENSE +2 -2
  3. package/README.md +237 -44
  4. package/fesm2022/lenne.tech-ng-base-ai.mjs +771 -0
  5. package/fesm2022/lenne.tech-ng-base-ai.mjs.map +1 -0
  6. package/fesm2022/lenne.tech-ng-base-auth-provide.mjs +945 -0
  7. package/fesm2022/lenne.tech-ng-base-auth-provide.mjs.map +1 -0
  8. package/fesm2022/lenne.tech-ng-base-auth.mjs +454 -0
  9. package/fesm2022/lenne.tech-ng-base-auth.mjs.map +1 -0
  10. package/fesm2022/lenne.tech-ng-base-bug-bug-report-dialog-BRzVmKJr.mjs +825 -0
  11. package/fesm2022/lenne.tech-ng-base-bug-bug-report-dialog-BRzVmKJr.mjs.map +1 -0
  12. package/fesm2022/lenne.tech-ng-base-bug-bug-report-service-DWoTb_iw.mjs +351 -0
  13. package/fesm2022/lenne.tech-ng-base-bug-bug-report-service-DWoTb_iw.mjs.map +1 -0
  14. package/fesm2022/lenne.tech-ng-base-bug-capture-engine-TkjMDdqj.mjs +1046 -0
  15. package/fesm2022/lenne.tech-ng-base-bug-capture-engine-TkjMDdqj.mjs.map +1 -0
  16. package/fesm2022/lenne.tech-ng-base-bug-constants-Brm2KGHi.mjs +4 -0
  17. package/fesm2022/lenne.tech-ng-base-bug-constants-Brm2KGHi.mjs.map +1 -0
  18. package/fesm2022/lenne.tech-ng-base-bug-messages-BsP4fRQU.mjs +179 -0
  19. package/fesm2022/lenne.tech-ng-base-bug-messages-BsP4fRQU.mjs.map +1 -0
  20. package/fesm2022/lenne.tech-ng-base-bug-provide.mjs +26 -0
  21. package/fesm2022/lenne.tech-ng-base-bug-provide.mjs.map +1 -0
  22. package/fesm2022/lenne.tech-ng-base-bug-report-Tzlhe1Cm.mjs +62 -0
  23. package/fesm2022/lenne.tech-ng-base-bug-report-Tzlhe1Cm.mjs.map +1 -0
  24. package/fesm2022/lenne.tech-ng-base-bug-server.mjs +818 -0
  25. package/fesm2022/lenne.tech-ng-base-bug-server.mjs.map +1 -0
  26. package/fesm2022/lenne.tech-ng-base-bug.mjs +196 -0
  27. package/fesm2022/lenne.tech-ng-base-bug.mjs.map +1 -0
  28. package/fesm2022/lenne.tech-ng-base-files-ui.mjs +445 -0
  29. package/fesm2022/lenne.tech-ng-base-files-ui.mjs.map +1 -0
  30. package/fesm2022/lenne.tech-ng-base-files.mjs +474 -0
  31. package/fesm2022/lenne.tech-ng-base-files.mjs.map +1 -0
  32. package/fesm2022/lenne.tech-ng-base-server.mjs +408 -0
  33. package/fesm2022/lenne.tech-ng-base-server.mjs.map +1 -0
  34. package/fesm2022/lenne.tech-ng-base-share.mjs +76 -0
  35. package/fesm2022/lenne.tech-ng-base-share.mjs.map +1 -0
  36. package/fesm2022/lenne.tech-ng-base-sync.mjs +1096 -0
  37. package/fesm2022/lenne.tech-ng-base-sync.mjs.map +1 -0
  38. package/fesm2022/lenne.tech-ng-base-testing.mjs +171 -0
  39. package/fesm2022/lenne.tech-ng-base-testing.mjs.map +1 -0
  40. package/fesm2022/lenne.tech-ng-base-ui-provide.mjs +124 -0
  41. package/fesm2022/lenne.tech-ng-base-ui-provide.mjs.map +1 -0
  42. package/fesm2022/lenne.tech-ng-base-ui.mjs +34645 -0
  43. package/fesm2022/lenne.tech-ng-base-ui.mjs.map +1 -0
  44. package/fesm2022/lenne.tech-ng-base-utils.mjs +287 -0
  45. package/fesm2022/lenne.tech-ng-base-utils.mjs.map +1 -0
  46. package/fesm2022/lenne.tech-ng-base.mjs +615 -910
  47. package/fesm2022/lenne.tech-ng-base.mjs.map +1 -1
  48. package/i18n/auth/de.json +17 -0
  49. package/i18n/auth/en.json +17 -0
  50. package/i18n/bug/de.json +85 -0
  51. package/i18n/bug/en.json +85 -0
  52. package/i18n/de.json +8 -0
  53. package/i18n/en.json +8 -0
  54. package/i18n/files/de.json +27 -0
  55. package/i18n/files/en.json +27 -0
  56. package/i18n/share/de.json +8 -0
  57. package/i18n/share/en.json +8 -0
  58. package/i18n/ui/de.json +38 -0
  59. package/i18n/ui/en.json +38 -0
  60. package/package.json +127 -58
  61. package/types/lenne.tech-ng-base-ai.d.ts +845 -0
  62. package/types/lenne.tech-ng-base-auth-provide.d.ts +604 -0
  63. package/types/lenne.tech-ng-base-auth.d.ts +320 -0
  64. package/types/lenne.tech-ng-base-bug-provide.d.ts +272 -0
  65. package/types/lenne.tech-ng-base-bug-rolldown-runtime-C25Le4-w.d.ts +1 -0
  66. package/types/lenne.tech-ng-base-bug-server.d.ts +316 -0
  67. package/types/lenne.tech-ng-base-bug.d.ts +202 -0
  68. package/types/lenne.tech-ng-base-files-ui.d.ts +116 -0
  69. package/types/lenne.tech-ng-base-files.d.ts +288 -0
  70. package/types/lenne.tech-ng-base-server.d.ts +262 -0
  71. package/types/lenne.tech-ng-base-share.d.ts +21 -0
  72. package/types/lenne.tech-ng-base-sync.d.ts +380 -0
  73. package/types/lenne.tech-ng-base-testing.d.ts +327 -0
  74. package/types/lenne.tech-ng-base-ui-provide.d.ts +65 -0
  75. package/types/lenne.tech-ng-base-ui.d.ts +7744 -0
  76. package/types/lenne.tech-ng-base-utils.d.ts +150 -0
  77. package/types/lenne.tech-ng-base.d.ts +503 -0
  78. package/ui/styles/components/accordion.css +3 -0
  79. package/ui/styles/components/alert-dialog.css +4 -0
  80. package/ui/styles/components/alert.css +3 -0
  81. package/ui/styles/components/aspect-ratio.css +3 -0
  82. package/ui/styles/components/attachment.css +4 -0
  83. package/ui/styles/components/autocomplete.css +4 -0
  84. package/ui/styles/components/avatar.css +3 -0
  85. package/ui/styles/components/badge.css +3 -0
  86. package/ui/styles/components/breadcrumb.css +3 -0
  87. package/ui/styles/components/bubble.css +3 -0
  88. package/ui/styles/components/button-group.css +3 -0
  89. package/ui/styles/components/button.css +3 -0
  90. package/ui/styles/components/calendar.css +5 -0
  91. package/ui/styles/components/card.css +3 -0
  92. package/ui/styles/components/checkbox.css +3 -0
  93. package/ui/styles/components/code-block.css +4 -0
  94. package/ui/styles/components/collapsible.css +3 -0
  95. package/ui/styles/components/combobox.css +5 -0
  96. package/ui/styles/components/command.css +5 -0
  97. package/ui/styles/components/context-menu.css +3 -0
  98. package/ui/styles/components/date-picker.css +7 -0
  99. package/ui/styles/components/dialog.css +4 -0
  100. package/ui/styles/components/drawer.css +3 -0
  101. package/ui/styles/components/dropdown-menu.css +3 -0
  102. package/ui/styles/components/empty.css +3 -0
  103. package/ui/styles/components/field.css +5 -0
  104. package/ui/styles/components/hover-card.css +3 -0
  105. package/ui/styles/components/index.css +91 -0
  106. package/ui/styles/components/input-group.css +6 -0
  107. package/ui/styles/components/input-otp.css +3 -0
  108. package/ui/styles/components/input.css +3 -0
  109. package/ui/styles/components/item.css +4 -0
  110. package/ui/styles/components/kbd.css +3 -0
  111. package/ui/styles/components/label.css +3 -0
  112. package/ui/styles/components/lt-breadcrumb.css +3 -0
  113. package/ui/styles/components/lt-bug-attachments.css +5 -0
  114. package/ui/styles/components/lt-bug-journey-timeline.css +5 -0
  115. package/ui/styles/components/lt-bug-report-dialog.css +15 -0
  116. package/ui/styles/components/lt-bug-report.css +4 -0
  117. package/ui/styles/components/lt-color-mode-button.css +3 -0
  118. package/ui/styles/components/lt-confirm-dialog.css +4 -0
  119. package/ui/styles/components/lt-data-view.css +5 -0
  120. package/ui/styles/components/lt-date-picker.css +3 -0
  121. package/ui/styles/components/lt-date-time-picker.css +5 -0
  122. package/ui/styles/components/lt-enter-action.css +2 -0
  123. package/ui/styles/components/lt-footer.css +3 -0
  124. package/ui/styles/components/lt-form-field.css +4 -0
  125. package/ui/styles/components/lt-header.css +5 -0
  126. package/ui/styles/components/lt-imports.css +21 -0
  127. package/ui/styles/components/lt-navigation-menu.css +3 -0
  128. package/ui/styles/components/lt-notice.css +3 -0
  129. package/ui/styles/components/lt-overlay-defaults.css +3 -0
  130. package/ui/styles/components/lt-page-card.css +3 -0
  131. package/ui/styles/components/lt-page-title.css +2 -0
  132. package/ui/styles/components/lt-password-input.css +4 -0
  133. package/ui/styles/components/lt-readonly-field.css +2 -0
  134. package/ui/styles/components/lt-select.css +4 -0
  135. package/ui/styles/components/lt-text-field.css +5 -0
  136. package/ui/styles/components/lt-toolbar-item.css +2 -0
  137. package/ui/styles/components/lt-toolbar.css +3 -0
  138. package/ui/styles/components/lt-tus-upload-component.css +5 -0
  139. package/ui/styles/components/marker.css +3 -0
  140. package/ui/styles/components/menubar.css +3 -0
  141. package/ui/styles/components/message-scroller.css +4 -0
  142. package/ui/styles/components/message.css +3 -0
  143. package/ui/styles/components/native-select.css +3 -0
  144. package/ui/styles/components/navigation-menu.css +3 -0
  145. package/ui/styles/components/pagination.css +4 -0
  146. package/ui/styles/components/popover.css +3 -0
  147. package/ui/styles/components/progress.css +3 -0
  148. package/ui/styles/components/questionnaire.css +4 -0
  149. package/ui/styles/components/radio-group.css +3 -0
  150. package/ui/styles/components/resizable.css +3 -0
  151. package/ui/styles/components/select.css +3 -0
  152. package/ui/styles/components/separator.css +3 -0
  153. package/ui/styles/components/sheet.css +4 -0
  154. package/ui/styles/components/sidebar.css +9 -0
  155. package/ui/styles/components/skeleton.css +3 -0
  156. package/ui/styles/components/slider.css +3 -0
  157. package/ui/styles/components/sonner.css +4 -0
  158. package/ui/styles/components/spinner.css +3 -0
  159. package/ui/styles/components/switch.css +3 -0
  160. package/ui/styles/components/table.css +3 -0
  161. package/ui/styles/components/tabs.css +4 -0
  162. package/ui/styles/components/textarea.css +3 -0
  163. package/ui/styles/components/toggle-group.css +4 -0
  164. package/ui/styles/components/toggle.css +3 -0
  165. package/ui/styles/components/tooltip.css +3 -0
  166. package/ui/styles/components/trace.css +3 -0
  167. package/ui/styles/components/typography.css +3 -0
  168. package/ui/styles/components/utils.css +2 -0
  169. package/ui/styles/core.css +137 -0
  170. package/ui/styles/palette.css +94 -0
  171. package/ui/styles/theme.css +14 -0
  172. package/ui/styles/transitions.css +131 -0
  173. package/base-cms/index.d.ts +0 -5
  174. package/base-cms/interfaces/base-cms-module-config.interface.d.ts +0 -16
  175. package/base-cms/pages/base-cms/base-cms.component.d.ts +0 -92
  176. package/base-cms/public-api.d.ts +0 -5
  177. package/base-components/components/breadcrumb/breadcrumb.component.d.ts +0 -10
  178. package/base-components/components/change-password/change-password.component.d.ts +0 -24
  179. package/base-components/components/checkbox/checkbox.component.d.ts +0 -12
  180. package/base-components/components/delete-account/delete-account.component.d.ts +0 -15
  181. package/base-components/components/fab-button/fab-button.component.d.ts +0 -16
  182. package/base-components/components/input/input.component.d.ts +0 -27
  183. package/base-components/components/loading-bar/loading-bar.component.d.ts +0 -17
  184. package/base-components/components/model-form/model-form-base.component.d.ts +0 -64
  185. package/base-components/components/model-form/model-form.component.d.ts +0 -139
  186. package/base-components/components/model-form-sub/model-form-sub.component.d.ts +0 -56
  187. package/base-components/components/model-table/model-table.component.d.ts +0 -115
  188. package/base-components/components/refence-input/refence-input.component.d.ts +0 -84
  189. package/base-components/components/select/select.component.d.ts +0 -25
  190. package/base-components/components/skeleton-loader/skeleton-loader.component.d.ts +0 -10
  191. package/base-components/components/tags/tags.component.d.ts +0 -60
  192. package/base-components/components/textarea/textarea.component.d.ts +0 -21
  193. package/base-components/components/toast/toast.component.d.ts +0 -19
  194. package/base-components/components/upload-image/upload-image.component.d.ts +0 -111
  195. package/base-components/directives/back-button.directive.d.ts +0 -9
  196. package/base-components/directives/context-menu.directive.d.ts +0 -22
  197. package/base-components/directives/sort.directive.d.ts +0 -15
  198. package/base-components/directives/stop-propagation.directive.d.ts +0 -10
  199. package/base-components/index.d.ts +0 -5
  200. package/base-components/pipes/ellipses.pipe.d.ts +0 -10
  201. package/base-components/public-api.d.ts +0 -26
  202. package/base-prototype/index.d.ts +0 -5
  203. package/base-prototype/pages/email-verification/email-verification.component.d.ts +0 -18
  204. package/base-prototype/pages/forgot-password/forgot-password.component.d.ts +0 -26
  205. package/base-prototype/pages/login/login.component.d.ts +0 -33
  206. package/base-prototype/pages/profile/profile.component.d.ts +0 -24
  207. package/base-prototype/pages/register/register.component.d.ts +0 -31
  208. package/base-prototype/pages/set-password/set-password.component.d.ts +0 -29
  209. package/base-prototype/public-api.d.ts +0 -9
  210. package/esm2022/base-cms/interfaces/base-cms-module-config.interface.mjs +0 -3
  211. package/esm2022/base-cms/lenne.tech-ng-base-base-cms.mjs +0 -5
  212. package/esm2022/base-cms/pages/base-cms/base-cms.component.mjs +0 -238
  213. package/esm2022/base-cms/public-api.mjs +0 -8
  214. package/esm2022/base-components/components/breadcrumb/breadcrumb.component.mjs +0 -23
  215. package/esm2022/base-components/components/change-password/change-password.component.mjs +0 -97
  216. package/esm2022/base-components/components/checkbox/checkbox.component.mjs +0 -38
  217. package/esm2022/base-components/components/delete-account/delete-account.component.mjs +0 -59
  218. package/esm2022/base-components/components/fab-button/fab-button.component.mjs +0 -24
  219. package/esm2022/base-components/components/input/input.component.mjs +0 -75
  220. package/esm2022/base-components/components/loading-bar/loading-bar.component.mjs +0 -37
  221. package/esm2022/base-components/components/model-form/model-form-base.component.mjs +0 -145
  222. package/esm2022/base-components/components/model-form/model-form.component.mjs +0 -591
  223. package/esm2022/base-components/components/model-form-sub/model-form-sub.component.mjs +0 -117
  224. package/esm2022/base-components/components/model-table/model-table.component.mjs +0 -478
  225. package/esm2022/base-components/components/refence-input/refence-input.component.mjs +0 -278
  226. package/esm2022/base-components/components/select/select.component.mjs +0 -62
  227. package/esm2022/base-components/components/skeleton-loader/skeleton-loader.component.mjs +0 -33
  228. package/esm2022/base-components/components/tags/tags.component.mjs +0 -227
  229. package/esm2022/base-components/components/textarea/textarea.component.mjs +0 -79
  230. package/esm2022/base-components/components/toast/toast.component.mjs +0 -69
  231. package/esm2022/base-components/components/upload-image/upload-image.component.mjs +0 -346
  232. package/esm2022/base-components/directives/back-button.directive.mjs +0 -25
  233. package/esm2022/base-components/directives/context-menu.directive.mjs +0 -112
  234. package/esm2022/base-components/directives/sort.directive.mjs +0 -61
  235. package/esm2022/base-components/directives/stop-propagation.directive.mjs +0 -24
  236. package/esm2022/base-components/lenne.tech-ng-base-base-components.mjs +0 -5
  237. package/esm2022/base-components/pipes/ellipses.pipe.mjs +0 -23
  238. package/esm2022/base-components/public-api.mjs +0 -30
  239. package/esm2022/base-prototype/lenne.tech-ng-base-base-prototype.mjs +0 -5
  240. package/esm2022/base-prototype/pages/email-verification/email-verification.component.mjs +0 -60
  241. package/esm2022/base-prototype/pages/forgot-password/forgot-password.component.mjs +0 -78
  242. package/esm2022/base-prototype/pages/login/login.component.mjs +0 -114
  243. package/esm2022/base-prototype/pages/profile/profile.component.mjs +0 -87
  244. package/esm2022/base-prototype/pages/register/register.component.mjs +0 -100
  245. package/esm2022/base-prototype/pages/set-password/set-password.component.mjs +0 -91
  246. package/esm2022/base-prototype/public-api.mjs +0 -11
  247. package/esm2022/lenne.tech-ng-base.mjs +0 -5
  248. package/esm2022/public-api.mjs +0 -25
  249. package/esm2022/shared/classes/auth.class.mjs +0 -14
  250. package/esm2022/shared/classes/basic-user.class.mjs +0 -49
  251. package/esm2022/shared/classes/graphql-enum.class.mjs +0 -10
  252. package/esm2022/shared/classes/graphql-meta.class.mjs +0 -345
  253. package/esm2022/shared/classes/graphql-type.class.mjs +0 -14
  254. package/esm2022/shared/classes/helper.class.mjs +0 -307
  255. package/esm2022/shared/classes/sort.class.mjs +0 -38
  256. package/esm2022/shared/classes/standard.class.mjs +0 -40
  257. package/esm2022/shared/decorators/debounce.decorator.mjs +0 -12
  258. package/esm2022/shared/enums/comparison-operator.enum.mjs +0 -16
  259. package/esm2022/shared/enums/graphql-request-type.enum.mjs +0 -10
  260. package/esm2022/shared/enums/logical-operator.enum.mjs +0 -10
  261. package/esm2022/shared/enums/skeleton-type.enum.mjs +0 -7
  262. package/esm2022/shared/enums/sort-order.enum.mjs +0 -6
  263. package/esm2022/shared/enums/toast-type.enum.mjs +0 -8
  264. package/esm2022/shared/functions/ws-client.function.mjs +0 -39
  265. package/esm2022/shared/interfaces/base-module-config.interface.mjs +0 -3
  266. package/esm2022/shared/interfaces/breadcrumb.interface.mjs +0 -2
  267. package/esm2022/shared/interfaces/can-component-deactivate.interface.mjs +0 -2
  268. package/esm2022/shared/interfaces/cms-enum-values.interface.mjs +0 -2
  269. package/esm2022/shared/interfaces/cms-field-config.interface.mjs +0 -2
  270. package/esm2022/shared/interfaces/cms-model-config.interface.mjs +0 -2
  271. package/esm2022/shared/interfaces/cms-table-field.interface.mjs +0 -2
  272. package/esm2022/shared/interfaces/combined-filter-input.interface.mjs +0 -2
  273. package/esm2022/shared/interfaces/compress-options.interface.mjs +0 -2
  274. package/esm2022/shared/interfaces/cropping-options.interface.mjs +0 -2
  275. package/esm2022/shared/interfaces/field-object.interface.mjs +0 -2
  276. package/esm2022/shared/interfaces/field.interface.mjs +0 -2
  277. package/esm2022/shared/interfaces/filter-input.interface.mjs +0 -2
  278. package/esm2022/shared/interfaces/find-args.interface.mjs +0 -2
  279. package/esm2022/shared/interfaces/graphql-crud-type.interface.mjs +0 -2
  280. package/esm2022/shared/interfaces/graphql-fields-object.interface.mjs +0 -2
  281. package/esm2022/shared/interfaces/graphql-options.interface.mjs +0 -2
  282. package/esm2022/shared/interfaces/graphql-plus-options.interfacen.mjs +0 -2
  283. package/esm2022/shared/interfaces/graphql-type-collection.interface.mjs +0 -2
  284. package/esm2022/shared/interfaces/login-config.interface.mjs +0 -2
  285. package/esm2022/shared/interfaces/register-config.interface.mjs +0 -2
  286. package/esm2022/shared/interfaces/single-filter-input.interface.mjs +0 -2
  287. package/esm2022/shared/interfaces/sort-input.interface.mjs +0 -2
  288. package/esm2022/shared/interfaces/time-components.interface.mjs +0 -2
  289. package/esm2022/shared/interfaces/toast.interface.mjs +0 -2
  290. package/esm2022/shared/lenne.tech-ng-base-shared.mjs +0 -5
  291. package/esm2022/shared/public-api.mjs +0 -74
  292. package/esm2022/shared/services/auth.service.mjs +0 -152
  293. package/esm2022/shared/services/breadcrumb.service.mjs +0 -69
  294. package/esm2022/shared/services/cms.service.mjs +0 -82
  295. package/esm2022/shared/services/file.service.mjs +0 -86
  296. package/esm2022/shared/services/forms.service.mjs +0 -61
  297. package/esm2022/shared/services/graphql-meta.service.mjs +0 -132
  298. package/esm2022/shared/services/graphql-plus.service.mjs +0 -93
  299. package/esm2022/shared/services/graphql.service.mjs +0 -510
  300. package/esm2022/shared/services/image.service.mjs +0 -102
  301. package/esm2022/shared/services/loader.service.mjs +0 -78
  302. package/esm2022/shared/services/navigation.service.mjs +0 -38
  303. package/esm2022/shared/services/scroll.service.mjs +0 -207
  304. package/esm2022/shared/services/storage.service.mjs +0 -149
  305. package/esm2022/shared/services/toast.service.mjs +0 -39
  306. package/esm2022/shared/services/user.service.mjs +0 -160
  307. package/esm2022/shared/services/ws.service.mjs +0 -17
  308. package/esm2022/shared/types/graphql-fields.type.mjs +0 -2
  309. package/esm2022/shared/types/storage.type.mjs +0 -2
  310. package/esm2022/shared/validators/email.validator.mjs +0 -7
  311. package/esm2022/shared/validators/match.validator.mjs +0 -22
  312. package/esm2022/shared/validators/secure-password.validator.mjs +0 -7
  313. package/esm2022/src/base.module.mjs +0 -64
  314. package/esm2022/src/decorators/auto-unsubscribe.decorator.mjs +0 -23
  315. package/esm2022/src/directives/lazy-load.directive.mjs +0 -48
  316. package/esm2022/src/directives/match-height.directive.mjs +0 -92
  317. package/esm2022/src/directives/resizable.directive.mjs +0 -92
  318. package/esm2022/src/factories/apollo-options.factory.mjs +0 -108
  319. package/esm2022/src/functions/extract-files.function.mjs +0 -87
  320. package/esm2022/src/guards/auth.guard.mjs +0 -91
  321. package/esm2022/src/guards/can-deactivate.guard.mjs +0 -16
  322. package/esm2022/src/guards/logout.guard.mjs +0 -34
  323. package/esm2022/src/pipes/date-ago.pipe.mjs +0 -64
  324. package/esm2022/src/pipes/safe-html.pipe.mjs +0 -22
  325. package/esm2022/src/services/fullscreen.service.mjs +0 -51
  326. package/esm2022/src/services/seo.service.mjs +0 -117
  327. package/esm2022/src/services/theme.service.mjs +0 -44
  328. package/fesm2022/lenne.tech-ng-base-base-cms.mjs +0 -251
  329. package/fesm2022/lenne.tech-ng-base-base-cms.mjs.map +0 -1
  330. package/fesm2022/lenne.tech-ng-base-base-components.mjs +0 -2917
  331. package/fesm2022/lenne.tech-ng-base-base-components.mjs.map +0 -1
  332. package/fesm2022/lenne.tech-ng-base-base-prototype.mjs +0 -505
  333. package/fesm2022/lenne.tech-ng-base-base-prototype.mjs.map +0 -1
  334. package/fesm2022/lenne.tech-ng-base-shared.mjs +0 -2863
  335. package/fesm2022/lenne.tech-ng-base-shared.mjs.map +0 -1
  336. package/index.d.ts +0 -5
  337. package/public-api.d.ts +0 -17
  338. package/shared/classes/auth.class.d.ts +0 -10
  339. package/shared/classes/basic-user.class.d.ts +0 -27
  340. package/shared/classes/graphql-enum.class.d.ts +0 -7
  341. package/shared/classes/graphql-meta.class.d.ts +0 -66
  342. package/shared/classes/graphql-type.class.d.ts +0 -13
  343. package/shared/classes/helper.class.d.ts +0 -99
  344. package/shared/classes/sort.class.d.ts +0 -12
  345. package/shared/classes/standard.class.d.ts +0 -32
  346. package/shared/decorators/debounce.decorator.d.ts +0 -1
  347. package/shared/enums/comparison-operator.enum.d.ts +0 -14
  348. package/shared/enums/graphql-request-type.enum.d.ts +0 -8
  349. package/shared/enums/logical-operator.enum.d.ts +0 -8
  350. package/shared/enums/skeleton-type.enum.d.ts +0 -5
  351. package/shared/enums/sort-order.enum.d.ts +0 -4
  352. package/shared/enums/toast-type.enum.d.ts +0 -6
  353. package/shared/functions/ws-client.function.d.ts +0 -5
  354. package/shared/index.d.ts +0 -5
  355. package/shared/interfaces/base-module-config.interface.d.ts +0 -61
  356. package/shared/interfaces/breadcrumb.interface.d.ts +0 -4
  357. package/shared/interfaces/can-component-deactivate.interface.d.ts +0 -7
  358. package/shared/interfaces/cms-enum-values.interface.d.ts +0 -4
  359. package/shared/interfaces/cms-field-config.interface.d.ts +0 -45
  360. package/shared/interfaces/cms-model-config.interface.d.ts +0 -14
  361. package/shared/interfaces/cms-table-field.interface.d.ts +0 -10
  362. package/shared/interfaces/combined-filter-input.interface.d.ts +0 -9
  363. package/shared/interfaces/compress-options.interface.d.ts +0 -15
  364. package/shared/interfaces/cropping-options.interface.d.ts +0 -12
  365. package/shared/interfaces/field-object.interface.d.ts +0 -6
  366. package/shared/interfaces/field.interface.d.ts +0 -5
  367. package/shared/interfaces/filter-input.interface.d.ts +0 -9
  368. package/shared/interfaces/find-args.interface.d.ts +0 -11
  369. package/shared/interfaces/graphql-crud-type.interface.d.ts +0 -7
  370. package/shared/interfaces/graphql-fields-object.interface.d.ts +0 -6
  371. package/shared/interfaces/graphql-options.interface.d.ts +0 -11
  372. package/shared/interfaces/graphql-plus-options.interfacen.d.ts +0 -9
  373. package/shared/interfaces/graphql-type-collection.interface.d.ts +0 -7
  374. package/shared/interfaces/login-config.interface.d.ts +0 -6
  375. package/shared/interfaces/register-config.interface.d.ts +0 -4
  376. package/shared/interfaces/single-filter-input.interface.d.ts +0 -11
  377. package/shared/interfaces/sort-input.interface.d.ts +0 -5
  378. package/shared/interfaces/time-components.interface.d.ts +0 -6
  379. package/shared/interfaces/toast.interface.d.ts +0 -8
  380. package/shared/public-api.d.ts +0 -65
  381. package/shared/services/auth.service.d.ts +0 -44
  382. package/shared/services/breadcrumb.service.d.ts +0 -32
  383. package/shared/services/cms.service.d.ts +0 -27
  384. package/shared/services/file.service.d.ts +0 -22
  385. package/shared/services/forms.service.d.ts +0 -14
  386. package/shared/services/graphql-meta.service.d.ts +0 -45
  387. package/shared/services/graphql-plus.service.d.ts +0 -27
  388. package/shared/services/graphql.service.d.ts +0 -71
  389. package/shared/services/image.service.d.ts +0 -27
  390. package/shared/services/loader.service.d.ts +0 -32
  391. package/shared/services/navigation.service.d.ts +0 -15
  392. package/shared/services/scroll.service.d.ts +0 -85
  393. package/shared/services/storage.service.d.ts +0 -49
  394. package/shared/services/toast.service.d.ts +0 -15
  395. package/shared/services/user.service.d.ts +0 -77
  396. package/shared/services/ws.service.d.ts +0 -8
  397. package/shared/types/graphql-fields.type.d.ts +0 -5
  398. package/shared/types/storage.type.d.ts +0 -4
  399. package/shared/validators/email.validator.d.ts +0 -1
  400. package/shared/validators/match.validator.d.ts +0 -4
  401. package/shared/validators/secure-password.validator.d.ts +0 -1
  402. package/src/base.module.d.ts +0 -16
  403. package/src/decorators/auto-unsubscribe.decorator.d.ts +0 -5
  404. package/src/directives/lazy-load.directive.d.ts +0 -17
  405. package/src/directives/match-height.directive.d.ts +0 -20
  406. package/src/directives/resizable.directive.d.ts +0 -26
  407. package/src/factories/apollo-options.factory.d.ts +0 -16
  408. package/src/functions/extract-files.function.d.ts +0 -15
  409. package/src/guards/auth.guard.d.ts +0 -27
  410. package/src/guards/can-deactivate.guard.d.ts +0 -10
  411. package/src/guards/logout.guard.d.ts +0 -16
  412. package/src/pipes/date-ago.pipe.d.ts +0 -34
  413. package/src/pipes/safe-html.pipe.d.ts +0 -13
  414. package/src/services/fullscreen.service.d.ts +0 -18
  415. package/src/services/seo.service.d.ts +0 -61
  416. package/src/services/theme.service.d.ts +0 -17
@@ -1,39 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export class ToastService {
5
- toastsObservables = new BehaviorSubject([]);
6
- get toastsAsObservable() {
7
- return this.toastsObservables.asObservable();
8
- }
9
- /**
10
- * Show new toast
11
- *
12
- * @param toast
13
- * @param duration
14
- */
15
- show(toast, duration = 2300) {
16
- const value = this.toastsObservables.value;
17
- value.push(toast);
18
- this.toastsObservables.next(value);
19
- if (duration) {
20
- setTimeout(() => {
21
- const currentToasts = this.toastsObservables.value;
22
- const foundIndex = currentToasts.findIndex((e) => e.id === toast.id);
23
- if (foundIndex > -1) {
24
- currentToasts.splice(foundIndex, 1);
25
- this.toastsObservables.next(currentToasts);
26
- }
27
- }, duration);
28
- }
29
- }
30
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
31
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastService, providedIn: 'root' });
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastService, decorators: [{
34
- type: Injectable,
35
- args: [{
36
- providedIn: 'root',
37
- }]
38
- }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU12QyxNQUFNLE9BQU8sWUFBWTtJQUNmLGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUFVLEVBQUUsQ0FBQyxDQUFDO0lBRTdELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxLQUFZLEVBQUUsUUFBUSxHQUFHLElBQUk7UUFDaEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztRQUMzQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztnQkFDbkQsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBRXJFLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3BCLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7dUdBN0JVLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdG9hc3QuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0U2VydmljZSB7XG4gIHByaXZhdGUgdG9hc3RzT2JzZXJ2YWJsZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRvYXN0W10+KFtdKTtcblxuICBnZXQgdG9hc3RzQXNPYnNlcnZhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnRvYXN0c09ic2VydmFibGVzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgbmV3IHRvYXN0XG4gICAqXG4gICAqIEBwYXJhbSB0b2FzdFxuICAgKiBAcGFyYW0gZHVyYXRpb25cbiAgICovXG4gIHNob3codG9hc3Q6IFRvYXN0LCBkdXJhdGlvbiA9IDIzMDApIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudG9hc3RzT2JzZXJ2YWJsZXMudmFsdWU7XG4gICAgdmFsdWUucHVzaCh0b2FzdCk7XG4gICAgdGhpcy50b2FzdHNPYnNlcnZhYmxlcy5uZXh0KHZhbHVlKTtcblxuICAgIGlmIChkdXJhdGlvbikge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUb2FzdHMgPSB0aGlzLnRvYXN0c09ic2VydmFibGVzLnZhbHVlO1xuICAgICAgICBjb25zdCBmb3VuZEluZGV4ID0gY3VycmVudFRvYXN0cy5maW5kSW5kZXgoKGUpID0+IGUuaWQgPT09IHRvYXN0LmlkKTtcblxuICAgICAgICBpZiAoZm91bmRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgY3VycmVudFRvYXN0cy5zcGxpY2UoZm91bmRJbmRleCwgMSk7XG4gICAgICAgICAgdGhpcy50b2FzdHNPYnNlcnZhYmxlcy5uZXh0KGN1cnJlbnRUb2FzdHMpO1xuICAgICAgICB9XG4gICAgICB9LCBkdXJhdGlvbik7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,160 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { map } from 'rxjs';
3
- import { Auth } from '../classes/auth.class';
4
- import { BasicUser } from '../classes/basic-user.class';
5
- import { GraphQLRequestType } from '../enums/graphql-request-type.enum';
6
- import { GraphQLPlusService } from './graphql-plus.service';
7
- import { BASE_MODULE_CONFIG } from '../interfaces/base-module-config.interface';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "apollo-angular";
10
- import * as i2 from "./graphql-meta.service";
11
- import * as i3 from "./loader.service";
12
- import * as i4 from "./auth.service";
13
- export class UserService extends GraphQLPlusService {
14
- apollo;
15
- graphqlMetaService;
16
- loaderService;
17
- authService;
18
- moduleConfig;
19
- constructor(apollo, graphqlMetaService, loaderService, authService, moduleConfig) {
20
- super(apollo, graphqlMetaService, loaderService, moduleConfig);
21
- this.apollo = apollo;
22
- this.graphqlMetaService = graphqlMetaService;
23
- this.loaderService = loaderService;
24
- this.authService = authService;
25
- this.moduleConfig = moduleConfig;
26
- }
27
- /**
28
- * Login
29
- *
30
- * @param input
31
- */
32
- login(input) {
33
- return this.graphQl('signIn', {
34
- arguments: { input: { ...input, deviceDescription: navigator?.userAgent } },
35
- fields: ['refreshToken', 'token', { user: ['id', 'firstName', 'lastName', 'email', 'roles', 'avatar'] }],
36
- loading: true,
37
- }).pipe(map((response) => {
38
- this.authService.token = response.token;
39
- this.authService.refreshToken = response.refreshToken;
40
- this.authService.currentUser = response.user;
41
- return Auth.map({
42
- token: response.token,
43
- refreshToken: response.refreshToken,
44
- user: BasicUser.map(response.user),
45
- });
46
- }));
47
- }
48
- /**
49
- * Register
50
- *
51
- * @param input
52
- */
53
- register(input) {
54
- return this.graphQl('signUp', {
55
- arguments: { input: { ...input, deviceDescription: navigator?.userAgent } },
56
- fields: ['refreshToken', 'token', { user: ['id', 'firstName', 'lastName', 'email', 'roles', 'avatar'] }],
57
- loading: true,
58
- }).pipe(map((response) => {
59
- this.authService.token = response.token;
60
- this.authService.refreshToken = response.refreshToken;
61
- this.authService.currentUser = response.user;
62
- return Auth.map({
63
- token: response.token,
64
- refreshToken: response.refreshToken,
65
- user: BasicUser.map(response.user),
66
- });
67
- }));
68
- }
69
- /**
70
- * This function will make a GraphQL query to the server, and return the result
71
- *
72
- * @param id - The id of the user you want to get
73
- * @returns A GraphQLRequest object.
74
- */
75
- get(id) {
76
- return this.graphQl('getUser', {
77
- arguments: { id },
78
- fields: ['id', 'firstName', 'lastName', 'email', 'roles', 'avatar'],
79
- type: GraphQLRequestType.QUERY,
80
- loading: true,
81
- });
82
- }
83
- /**
84
- * Request password reset mail
85
- *
86
- * @param email
87
- */
88
- requestPasswordResetMail(email) {
89
- return this.graphQl('requestPasswordResetMail', {
90
- arguments: { email },
91
- fields: [],
92
- type: GraphQLRequestType.QUERY,
93
- loading: true,
94
- });
95
- }
96
- /**
97
- * Change password of current user
98
- *
99
- * @param id
100
- * @param password
101
- */
102
- changePassword(id, password) {
103
- return this.graphQl('updateUser', {
104
- arguments: { id, input: { password } },
105
- fields: ['id'],
106
- type: GraphQLRequestType.MUTATION,
107
- loading: true,
108
- });
109
- }
110
- /**
111
- * Set new password by token
112
- *
113
- * @param token
114
- * @param password
115
- */
116
- resetPassword(token, password) {
117
- return this.graphQl('resetPassword', {
118
- arguments: { token, password },
119
- type: GraphQLRequestType.MUTATION,
120
- loading: true,
121
- });
122
- }
123
- /**
124
- * Delete user by id
125
- *
126
- * @param id
127
- */
128
- delete(id) {
129
- return this.graphQl('deleteUser', {
130
- arguments: { id },
131
- fields: ['id'],
132
- type: GraphQLRequestType.MUTATION,
133
- loading: true,
134
- });
135
- }
136
- /**
137
- * Verify user by token
138
- *
139
- * @param token
140
- */
141
- verifyUser(token) {
142
- return this.graphQl('verifyUser', {
143
- arguments: { token },
144
- type: GraphQLRequestType.MUTATION,
145
- loading: true,
146
- });
147
- }
148
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: UserService, deps: [{ token: i1.Apollo }, { token: i2.GraphQLMetaService }, { token: i3.LoaderService }, { token: i4.AuthService }, { token: BASE_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
149
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: UserService, providedIn: 'root' });
150
- }
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: UserService, decorators: [{
152
- type: Injectable,
153
- args: [{
154
- providedIn: 'root',
155
- }]
156
- }], ctorParameters: () => [{ type: i1.Apollo }, { type: i2.GraphQLMetaService }, { type: i3.LoaderService }, { type: i4.AuthService }, { type: undefined, decorators: [{
157
- type: Inject,
158
- args: [BASE_MODULE_CONFIG]
159
- }] }] });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUd4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQUtsRyxNQUFNLE9BQU8sV0FBWSxTQUFRLGtCQUFrQjtJQUVyQztJQUNBO0lBQ0E7SUFDQTtJQUM0QjtJQUx4QyxZQUNZLE1BQWMsRUFDZCxrQkFBc0MsRUFDdEMsYUFBNEIsRUFDNUIsV0FBd0IsRUFDSSxZQUE4QjtRQUVwRSxLQUFLLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQU5yRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNJLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUd0RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxLQUEwQztRQUM5QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQzVCLFNBQVMsRUFBRSxF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Q0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FoSlUsV0FBVyxrSUFNWixrQkFBa0I7MkdBTmpCLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwb2xsbyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aCB9IGZyb20gJy4uL2NsYXNzZXMvYXV0aC5jbGFzcyc7XG5pbXBvcnQgeyBCYXNpY1VzZXIgfSBmcm9tICcuLi9jbGFzc2VzL2Jhc2ljLXVzZXIuY2xhc3MnO1xuaW1wb3J0IHsgR3JhcGhRTFJlcXVlc3RUeXBlIH0gZnJvbSAnLi4vZW51bXMvZ3JhcGhxbC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyYXBoUUxNZXRhU2VydmljZSB9IGZyb20gJy4vZ3JhcGhxbC1tZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JhcGhRTFBsdXNTZXJ2aWNlIH0gZnJvbSAnLi9ncmFwaHFsLXBsdXMuc2VydmljZSc7XG5pbXBvcnQgeyBMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi9sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCQVNFX01PRFVMRV9DT05GSUcsIEJhc2VNb2R1bGVDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Jhc2UtbW9kdWxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgZXh0ZW5kcyBHcmFwaFFMUGx1c1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYXBvbGxvOiBBcG9sbG8sXG4gICAgcHJvdGVjdGVkIGdyYXBocWxNZXRhU2VydmljZTogR3JhcGhRTE1ldGFTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBsb2FkZXJTZXJ2aWNlOiBMb2FkZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgQEluamVjdChCQVNFX01PRFVMRV9DT05GSUcpIHByb3RlY3RlZCBtb2R1bGVDb25maWc6IEJhc2VNb2R1bGVDb25maWdcbiAgKSB7XG4gICAgc3VwZXIoYXBvbGxvLCBncmFwaHFsTWV0YVNlcnZpY2UsIGxvYWRlclNlcnZpY2UsIG1vZHVsZUNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogTG9naW5cbiAgICpcbiAgICogQHBhcmFtIGlucHV0XG4gICAqL1xuICBsb2dpbihpbnB1dDogeyBlbWFpbDogc3RyaW5nOyBwYXNzd29yZDogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gdGhpcy5ncmFwaFFsKCdzaWduSW4nLCB7XG4gICAgICBhcmd1bWVudHM6IHsgaW5wdXQ6IHsgLi4uaW5wdXQsIGRldmljZURlc2NyaXB0aW9uOiBuYXZpZ2F0b3I/LnVzZXJBZ2VudCB9IH0sXG4gICAgICBmaWVsZHM6IFsncmVmcmVzaFRva2VuJywgJ3Rva2VuJywgeyB1c2VyOiBbJ2lkJywgJ2ZpcnN0TmFtZScsICdsYXN0TmFtZScsICdlbWFpbCcsICdyb2xlcycsICdhdmF0YXInXSB9XSxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IEF1dGgpID0+IHtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS50b2tlbiA9IHJlc3BvbnNlLnRva2VuO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbiA9IHJlc3BvbnNlLnJlZnJlc2hUb2tlbjtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlciA9IHJlc3BvbnNlLnVzZXI7XG5cbiAgICAgICAgcmV0dXJuIEF1dGgubWFwKHtcbiAgICAgICAgICB0b2tlbjogcmVzcG9uc2UudG9rZW4sXG4gICAgICAgICAgcmVmcmVzaFRva2VuOiByZXNwb25zZS5yZWZyZXNoVG9rZW4sXG4gICAgICAgICAgdXNlcjogQmFzaWNVc2VyLm1hcChyZXNwb25zZS51c2VyKSxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJcbiAgICpcbiAgICogQHBhcmFtIGlucHV0XG4gICAqL1xuICByZWdpc3RlcihpbnB1dDogeyBmaXJzdE5hbWU6IHN0cmluZzsgbGFzdE5hbWU6IHN0cmluZzsgZW1haWw6IHN0cmluZzsgcGFzc3dvcmQ6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgnc2lnblVwJywge1xuICAgICAgYXJndW1lbnRzOiB7IGlucHV0OiB7IC4uLmlucHV0LCBkZXZpY2VEZXNjcmlwdGlvbjogbmF2aWdhdG9yPy51c2VyQWdlbnQgfSB9LFxuICAgICAgZmllbGRzOiBbJ3JlZnJlc2hUb2tlbicsICd0b2tlbicsIHsgdXNlcjogWydpZCcsICdmaXJzdE5hbWUnLCAnbGFzdE5hbWUnLCAnZW1haWwnLCAncm9sZXMnLCAnYXZhdGFyJ10gfV0sXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBBdXRoKSA9PiB7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudG9rZW4gPSByZXNwb25zZS50b2tlbjtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5yZWZyZXNoVG9rZW4gPSByZXNwb25zZS5yZWZyZXNoVG9rZW47XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXIgPSByZXNwb25zZS51c2VyO1xuXG4gICAgICAgIHJldHVybiBBdXRoLm1hcCh7XG4gICAgICAgICAgdG9rZW46IHJlc3BvbnNlLnRva2VuLFxuICAgICAgICAgIHJlZnJlc2hUb2tlbjogcmVzcG9uc2UucmVmcmVzaFRva2VuLFxuICAgICAgICAgIHVzZXI6IEJhc2ljVXNlci5tYXAocmVzcG9uc2UudXNlciksXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBtYWtlIGEgR3JhcGhRTCBxdWVyeSB0byB0aGUgc2VydmVyLCBhbmQgcmV0dXJuIHRoZSByZXN1bHRcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIGlkIG9mIHRoZSB1c2VyIHlvdSB3YW50IHRvIGdldFxuICAgKiBAcmV0dXJucyBBIEdyYXBoUUxSZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIGdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgnZ2V0VXNlcicsIHtcbiAgICAgIGFyZ3VtZW50czogeyBpZCB9LFxuICAgICAgZmllbGRzOiBbJ2lkJywgJ2ZpcnN0TmFtZScsICdsYXN0TmFtZScsICdlbWFpbCcsICdyb2xlcycsICdhdmF0YXInXSxcbiAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5RVUVSWSxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVxdWVzdCBwYXNzd29yZCByZXNldCBtYWlsXG4gICAqXG4gICAqIEBwYXJhbSBlbWFpbFxuICAgKi9cbiAgcmVxdWVzdFBhc3N3b3JkUmVzZXRNYWlsKGVtYWlsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFwaFFsKCdyZXF1ZXN0UGFzc3dvcmRSZXNldE1haWwnLCB7XG4gICAgICBhcmd1bWVudHM6IHsgZW1haWwgfSxcbiAgICAgIGZpZWxkczogW10sXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBwYXNzd29yZCBvZiBjdXJyZW50IHVzZXJcbiAgICpcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSBwYXNzd29yZFxuICAgKi9cbiAgY2hhbmdlUGFzc3dvcmQoaWQ6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ3VwZGF0ZVVzZXInLCB7XG4gICAgICBhcmd1bWVudHM6IHsgaWQsIGlucHV0OiB7IHBhc3N3b3JkIH0gfSxcbiAgICAgIGZpZWxkczogWydpZCddLFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbmV3IHBhc3N3b3JkIGJ5IHRva2VuXG4gICAqXG4gICAqIEBwYXJhbSB0b2tlblxuICAgKiBAcGFyYW0gcGFzc3dvcmRcbiAgICovXG4gIHJlc2V0UGFzc3dvcmQodG9rZW46IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ3Jlc2V0UGFzc3dvcmQnLCB7XG4gICAgICBhcmd1bWVudHM6IHsgdG9rZW4sIHBhc3N3b3JkIH0sXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSB1c2VyIGJ5IGlkXG4gICAqXG4gICAqIEBwYXJhbSBpZFxuICAgKi9cbiAgZGVsZXRlKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFwaFFsKCdkZWxldGVVc2VyJywge1xuICAgICAgYXJndW1lbnRzOiB7IGlkIH0sXG4gICAgICBmaWVsZHM6IFsnaWQnXSxcbiAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHVzZXIgYnkgdG9rZW5cbiAgICpcbiAgICogQHBhcmFtIHRva2VuXG4gICAqL1xuICB2ZXJpZnlVc2VyKHRva2VuOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFwaFFsKCd2ZXJpZnlVc2VyJywge1xuICAgICAgYXJndW1lbnRzOiB7IHRva2VuIH0sXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,17 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class WsService {
4
- client;
5
- reconnect() {
6
- this.client?.restart();
7
- }
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WsService, providedIn: 'root' });
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WsService, decorators: [{
12
- type: Injectable,
13
- args: [{
14
- providedIn: 'root',
15
- }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3NlcnZpY2VzL3dzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFvQjtJQUUxQixTQUFTO1FBQ1AsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO3VHQUxVLFNBQVM7MkdBQVQsU0FBUyxjQUZSLE1BQU07OzJGQUVQLFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzdGFydGFibGVDbGllbnQgfSBmcm9tICcuLi9mdW5jdGlvbnMvd3MtY2xpZW50LmZ1bmN0aW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdzU2VydmljZSB7XG4gIGNsaWVudDogUmVzdGFydGFibGVDbGllbnQ7XG5cbiAgcmVjb25uZWN0KCkge1xuICAgIHRoaXMuY2xpZW50Py5yZXN0YXJ0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1maWVsZHMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3R5cGVzL2dyYXBocWwtZmllbGRzLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyYXBoUUxGaWVsZHNPYmplY3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2dyYXBocWwtZmllbGRzLW9iamVjdC5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEdyYXBoUUwgZmllbGRzXG4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoUUxGaWVsZHMgPSBzdHJpbmcgfCBzdHJpbmdbXSB8IEdyYXBoUUxGaWVsZHNPYmplY3Q7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvdHlwZXMvc3RvcmFnZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0b3JhZ2UgdHlwZXNcbiAqL1xuZXhwb3J0IHR5cGUgU3RvcmFnZVR5cGUgPSAnbG9jYWwnIHwgJ3Nlc3Npb24nO1xuIl19
@@ -1,7 +0,0 @@
1
- export function fullEmail() {
2
- return (control) => {
3
- const EMAIL_REGEXP = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
4
- return !EMAIL_REGEXP.test(control.value) ? { invalidEmail: true } : null;
5
- };
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvdmFsaWRhdG9ycy9lbWFpbC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLFNBQVM7SUFDdkIsT0FBTyxDQUFDLE9BQXdCLEVBQUUsRUFBRTtRQUNsQyxNQUFNLFlBQVksR0FDaEIsd0hBQXdILENBQUM7UUFDM0gsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNFLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmdWxsRW1haWwoKTogYW55IHtcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICBjb25zdCBFTUFJTF9SRUdFWFAgPVxuICAgICAgL14oKFtePD4oKVxcW1xcXVxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpXFxbXFxdXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXStcXC4pK1tePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl17Mix9KSQvaTtcbiAgICByZXR1cm4gIUVNQUlMX1JFR0VYUC50ZXN0KGNvbnRyb2wudmFsdWUpID8geyBpbnZhbGlkRW1haWw6IHRydWUgfSA6IG51bGw7XG4gIH07XG59XG4iXX0=
@@ -1,22 +0,0 @@
1
- export class Validation {
2
- static match(controlName, checkControlName) {
3
- return (controls) => {
4
- const control = controls.get(controlName);
5
- const checkControl = controls.get(checkControlName);
6
- if (checkControl?.errors && !checkControl.errors?.matching) {
7
- return null;
8
- }
9
- if (control?.value !== checkControl?.value) {
10
- controls.get(checkControlName)?.setErrors({ matching: true });
11
- return { matching: true };
12
- }
13
- else {
14
- if (controls.get(checkControlName)?.errors && controls.get(checkControlName)?.errors['matching']) {
15
- delete controls.get(checkControlName)?.errors['matching'];
16
- }
17
- return null;
18
- }
19
- };
20
- }
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvdmFsaWRhdG9ycy9tYXRjaC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFVBQVU7SUFDckIsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFtQixFQUFFLGdCQUF3QjtRQUN4RCxPQUFPLENBQUMsUUFBeUIsRUFBRSxFQUFFO1lBQ25DLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRXBELElBQUksWUFBWSxFQUFFLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQzNELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELElBQUksT0FBTyxFQUFFLEtBQUssS0FBSyxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQzNDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDakcsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM1RCxDQUFDO2dCQUVELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uIHtcbiAgc3RhdGljIG1hdGNoKGNvbnRyb2xOYW1lOiBzdHJpbmcsIGNoZWNrQ29udHJvbE5hbWU6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBjb250cm9scy5nZXQoY29udHJvbE5hbWUpO1xuICAgICAgY29uc3QgY2hlY2tDb250cm9sID0gY29udHJvbHMuZ2V0KGNoZWNrQ29udHJvbE5hbWUpO1xuXG4gICAgICBpZiAoY2hlY2tDb250cm9sPy5lcnJvcnMgJiYgIWNoZWNrQ29udHJvbC5lcnJvcnM/Lm1hdGNoaW5nKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJvbD8udmFsdWUgIT09IGNoZWNrQ29udHJvbD8udmFsdWUpIHtcbiAgICAgICAgY29udHJvbHMuZ2V0KGNoZWNrQ29udHJvbE5hbWUpPy5zZXRFcnJvcnMoeyBtYXRjaGluZzogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIHsgbWF0Y2hpbmc6IHRydWUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChjb250cm9scy5nZXQoY2hlY2tDb250cm9sTmFtZSk/LmVycm9ycyAmJiBjb250cm9scy5nZXQoY2hlY2tDb250cm9sTmFtZSk/LmVycm9yc1snbWF0Y2hpbmcnXSkge1xuICAgICAgICAgIGRlbGV0ZSBjb250cm9scy5nZXQoY2hlY2tDb250cm9sTmFtZSk/LmVycm9yc1snbWF0Y2hpbmcnXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- export function securePasswordValidator() {
2
- return (control) => {
3
- const PASSWORD_REGEX = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9]).{8,}$/i;
4
- return !PASSWORD_REGEX.test(control.value) ? { invalidSecurePassword: true } : null;
5
- };
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJlLXBhc3N3b3JkLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3ZhbGlkYXRvcnMvc2VjdXJlLXBhc3N3b3JkLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sQ0FBQyxPQUF3QixFQUFFLEVBQUU7UUFDbEMsTUFBTSxjQUFjLEdBQUcsaUVBQWlFLENBQUM7UUFDekYsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdEYsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNlY3VyZVBhc3N3b3JkVmFsaWRhdG9yKCk6IGFueSB7XG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgY29uc3QgUEFTU1dPUkRfUkVHRVggPSAvXig/PS4qP1tBLVpdKSg/PS4qP1thLXpdKSg/PS4qP1swLTldKSg/PS4qP1teYS16QS1aMC05XSkuezgsfSQvaTtcbiAgICByZXR1cm4gIVBBU1NXT1JEX1JFR0VYLnRlc3QoY29udHJvbC52YWx1ZSkgPyB7IGludmFsaWRTZWN1cmVQYXNzd29yZDogdHJ1ZSB9IDogbnVsbDtcbiAgfTtcbn1cbiJdfQ==
@@ -1,64 +0,0 @@
1
- import { APOLLO_OPTIONS, ApolloModule } from 'apollo-angular';
2
- import { HttpLink } from 'apollo-angular/http';
3
- import { NgModule } from '@angular/core';
4
- import { apolloOptionsFactory } from './factories/apollo-options.factory';
5
- import { AuthService, BASE_MODULE_CONFIG, WsService } from '@lenne.tech/ng-base/shared';
6
- import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
7
- import * as i0 from "@angular/core";
8
- /**
9
- * Base module
10
- */
11
- export class BaseModule {
12
- /**
13
- * Set configuration of base module in root module of the app
14
- */
15
- static forRoot(baseModuleConfig = {}, AppAuthService) {
16
- // Default config
17
- const config = {
18
- apiUrl: '',
19
- authGuardRedirectUrl: '/auth',
20
- logging: false,
21
- version: null,
22
- prefix: null,
23
- scrollDetectionOffset: 200,
24
- scrollOffset: 100,
25
- storageType: 'local',
26
- securePasswordTransfer: true,
27
- ...baseModuleConfig,
28
- };
29
- if (config.logging) {
30
- console.log('Config:', config);
31
- }
32
- // Prepare providers
33
- const providers = [
34
- {
35
- provide: BASE_MODULE_CONFIG,
36
- useValue: config,
37
- },
38
- ];
39
- // Add apollo features if API URL is set
40
- if (baseModuleConfig.apiUrl) {
41
- providers.push({
42
- provide: APOLLO_OPTIONS,
43
- useFactory: apolloOptionsFactory,
44
- deps: [BASE_MODULE_CONFIG, HttpLink, AppAuthService ? AppAuthService : AuthService, WsService],
45
- });
46
- }
47
- else if (config.logging) {
48
- console.log('apiUrl is missing, ApolloLink is not initialized');
49
- }
50
- // Return root module
51
- return {
52
- ngModule: BaseModule,
53
- providers,
54
- };
55
- }
56
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: BaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
57
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: BaseModule, imports: [ApolloModule], exports: [ApolloModule] });
58
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: BaseModule, providers: [provideHttpClient(withInterceptorsFromDi())], imports: [ApolloModule, ApolloModule] });
59
- }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: BaseModule, decorators: [{
61
- type: NgModule,
62
- args: [{ exports: [ApolloModule], imports: [ApolloModule], providers: [provideHttpClient(withInterceptorsFromDi())] }]
63
- }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9iYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFvQixTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFakY7O0dBRUc7QUFFSCxNQUFNLE9BQU8sVUFBVTtJQUNyQjs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQXFDLEVBQUUsRUFBRSxjQUFlO1FBQ3JFLGlCQUFpQjtRQUNqQixNQUFNLE1BQU0sR0FBRztZQUNiLE1BQU0sRUFBRSxFQUFFO1lBQ1Ysb0JBQW9CLEVBQUUsT0FBTztZQUM3QixPQUFPLEVBQUUsS0FBSztZQUNkLE9BQU8sRUFBRSxJQUFJO1lBQ2IsTUFBTSxFQUFFLElBQUk7WUFDWixxQkFBcUIsRUFBRSxHQUFHO1lBQzFCLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLHNCQUFzQixFQUFFLElBQUk7WUFDNUIsR0FBRyxnQkFBZ0I7U0FDcEIsQ0FBQztRQUVGLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxvQkFBb0I7UUFDcEIsTUFBTSxTQUFTLEdBQWU7WUFDNUI7Z0JBQ0UsT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsUUFBUSxFQUFFLE1BQU07YUFDakI7U0FDRixDQUFDO1FBRUYsd0NBQXdDO1FBQ3hDLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDYixPQUFPLEVBQUUsY0FBYztnQkFDdkIsVUFBVSxFQUFFLG9CQUFvQjtnQkFDaEMsSUFBSSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO2FBQy9GLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELHFCQUFxQjtRQUNyQixPQUFPO1lBQ0wsUUFBUSxFQUFFLFVBQVU7WUFDcEIsU0FBUztTQUNWLENBQUM7SUFDSixDQUFDO3VHQS9DVSxVQUFVO3dHQUFWLFVBQVUsWUFEd0IsWUFBWSxhQUFyQyxZQUFZO3dHQUNyQixVQUFVLGFBRGtELENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLFlBQXZFLFlBQVksRUFBckMsWUFBWTs7MkZBQ3JCLFVBQVU7a0JBRHRCLFFBQVE7bUJBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQT0xMT19PUFRJT05TLCBBcG9sbG9Nb2R1bGUgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBIdHRwTGluayB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyL2h0dHAnO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGFwb2xsb09wdGlvbnNGYWN0b3J5IH0gZnJvbSAnLi9mYWN0b3JpZXMvYXBvbGxvLW9wdGlvbnMuZmFjdG9yeSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQkFTRV9NT0RVTEVfQ09ORklHLCBCYXNlTW9kdWxlQ29uZmlnLCBXc1NlcnZpY2UgfSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL3NoYXJlZCc7XG5pbXBvcnQgeyBwcm92aWRlSHR0cENsaWVudCwgd2l0aEludGVyY2VwdG9yc0Zyb21EaSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuLyoqXG4gKiBCYXNlIG1vZHVsZVxuICovXG5ATmdNb2R1bGUoeyBleHBvcnRzOiBbQXBvbGxvTW9kdWxlXSwgaW1wb3J0czogW0Fwb2xsb01vZHVsZV0sIHByb3ZpZGVyczogW3Byb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSldIH0pXG5leHBvcnQgY2xhc3MgQmFzZU1vZHVsZSB7XG4gIC8qKlxuICAgKiBTZXQgY29uZmlndXJhdGlvbiBvZiBiYXNlIG1vZHVsZSBpbiByb290IG1vZHVsZSBvZiB0aGUgYXBwXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdChiYXNlTW9kdWxlQ29uZmlnOiBCYXNlTW9kdWxlQ29uZmlnID0ge30sIEFwcEF1dGhTZXJ2aWNlPyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QmFzZU1vZHVsZT4ge1xuICAgIC8vIERlZmF1bHQgY29uZmlnXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgYXBpVXJsOiAnJyxcbiAgICAgIGF1dGhHdWFyZFJlZGlyZWN0VXJsOiAnL2F1dGgnLFxuICAgICAgbG9nZ2luZzogZmFsc2UsXG4gICAgICB2ZXJzaW9uOiBudWxsLFxuICAgICAgcHJlZml4OiBudWxsLFxuICAgICAgc2Nyb2xsRGV0ZWN0aW9uT2Zmc2V0OiAyMDAsXG4gICAgICBzY3JvbGxPZmZzZXQ6IDEwMCxcbiAgICAgIHN0b3JhZ2VUeXBlOiAnbG9jYWwnLFxuICAgICAgc2VjdXJlUGFzc3dvcmRUcmFuc2ZlcjogdHJ1ZSxcbiAgICAgIC4uLmJhc2VNb2R1bGVDb25maWcsXG4gICAgfTtcblxuICAgIGlmIChjb25maWcubG9nZ2luZykge1xuICAgICAgY29uc29sZS5sb2coJ0NvbmZpZzonLCBjb25maWcpO1xuICAgIH1cblxuICAgIC8vIFByZXBhcmUgcHJvdmlkZXJzXG4gICAgY29uc3QgcHJvdmlkZXJzOiBQcm92aWRlcltdID0gW1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBCQVNFX01PRFVMRV9DT05GSUcsXG4gICAgICAgIHVzZVZhbHVlOiBjb25maWcsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICAvLyBBZGQgYXBvbGxvIGZlYXR1cmVzIGlmIEFQSSBVUkwgaXMgc2V0XG4gICAgaWYgKGJhc2VNb2R1bGVDb25maWcuYXBpVXJsKSB7XG4gICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IEFQT0xMT19PUFRJT05TLFxuICAgICAgICB1c2VGYWN0b3J5OiBhcG9sbG9PcHRpb25zRmFjdG9yeSxcbiAgICAgICAgZGVwczogW0JBU0VfTU9EVUxFX0NPTkZJRywgSHR0cExpbmssIEFwcEF1dGhTZXJ2aWNlID8gQXBwQXV0aFNlcnZpY2UgOiBBdXRoU2VydmljZSwgV3NTZXJ2aWNlXSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoY29uZmlnLmxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdhcGlVcmwgaXMgbWlzc2luZywgQXBvbGxvTGluayBpcyBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gcm9vdCBtb2R1bGVcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEJhc2VNb2R1bGUsXG4gICAgICBwcm92aWRlcnMsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,23 +0,0 @@
1
- /**
2
- * Decorator for automatically unsubscribe subscriptions
3
- * Inspired by https://codereacter.medium.com/angular-advanced-features-and-tips-you-may-not-know-about-cae3b8527184#9bd6
4
- */
5
- export function AutoUnsubscribe(blackList = []) {
6
- return function (constructor) {
7
- const original = constructor.prototype.ngOnDestroy;
8
- constructor.prototype.ngOnDestroy = function () {
9
- for (const prop of Object.keys(this)) {
10
- if (!blackList.includes(prop)) {
11
- const property = this[prop];
12
- if (property && typeof property.unsubscribe === 'function') {
13
- property.unsubscribe();
14
- }
15
- }
16
- }
17
- if (original && typeof original === 'function') {
18
- original.apply(this, arguments);
19
- }
20
- };
21
- };
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by11bnN1YnNjcmliZS5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9kZWNvcmF0b3JzL2F1dG8tdW5zdWJzY3JpYmUuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsWUFBc0IsRUFBRTtJQUN0RCxPQUFPLFVBQVUsV0FBZ0I7UUFDL0IsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFFbkQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUc7WUFDbEMsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDNUIsSUFBSSxRQUFRLElBQUksT0FBTyxRQUFRLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRSxDQUFDO3dCQUMzRCxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3pCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDL0MsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlY29yYXRvciBmb3IgYXV0b21hdGljYWxseSB1bnN1YnNjcmliZSBzdWJzY3JpcHRpb25zXG4gKiBJbnNwaXJlZCBieSBodHRwczovL2NvZGVyZWFjdGVyLm1lZGl1bS5jb20vYW5ndWxhci1hZHZhbmNlZC1mZWF0dXJlcy1hbmQtdGlwcy15b3UtbWF5LW5vdC1rbm93LWFib3V0LWNhZTNiODUyNzE4NCM5YmQ2XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBBdXRvVW5zdWJzY3JpYmUoYmxhY2tMaXN0OiBzdHJpbmdbXSA9IFtdKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IGFueSkge1xuICAgIGNvbnN0IG9yaWdpbmFsID0gY29uc3RydWN0b3IucHJvdG90eXBlLm5nT25EZXN0cm95O1xuXG4gICAgY29uc3RydWN0b3IucHJvdG90eXBlLm5nT25EZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHRoaXMpKSB7XG4gICAgICAgIGlmICghYmxhY2tMaXN0LmluY2x1ZGVzKHByb3ApKSB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHkgPSB0aGlzW3Byb3BdO1xuICAgICAgICAgIGlmIChwcm9wZXJ0eSAmJiB0eXBlb2YgcHJvcGVydHkudW5zdWJzY3JpYmUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHByb3BlcnR5LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAob3JpZ2luYWwgJiYgdHlwZW9mIG9yaWdpbmFsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,48 +0,0 @@
1
- import { Directive, HostBinding, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Directive for lazy loading images
5
- */
6
- export class LazyLoadDirective {
7
- el;
8
- srcAttr = null;
9
- src;
10
- constructor(el) {
11
- this.el = el;
12
- }
13
- ngAfterViewInit() {
14
- this.canLazyLoad() ? this.lazyLoadImage() : this.loadImage();
15
- }
16
- canLazyLoad() {
17
- return window && 'IntersectionObserver' in window;
18
- }
19
- lazyLoadImage() {
20
- const obs = new IntersectionObserver((entries) => {
21
- entries.forEach(({ isIntersecting }) => {
22
- if (isIntersecting) {
23
- this.loadImage();
24
- obs.unobserve(this.el.nativeElement);
25
- }
26
- });
27
- });
28
- obs.observe(this.el.nativeElement);
29
- }
30
- loadImage() {
31
- this.srcAttr = this.src;
32
- }
33
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LazyLoadDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
34
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: LazyLoadDirective, isStandalone: true, selector: "img[ltLazyLoad]", inputs: { src: "src" }, host: { properties: { "attr.src": "this.srcAttr" } }, ngImport: i0 });
35
- }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LazyLoadDirective, decorators: [{
37
- type: Directive,
38
- args: [{
39
- selector: 'img[ltLazyLoad]',
40
- standalone: true
41
- }]
42
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { srcAttr: [{
43
- type: HostBinding,
44
- args: ['attr.src']
45
- }], src: [{
46
- type: Input
47
- }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2RpcmVjdGl2ZXMvbGF6eS1sb2FkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6Rjs7R0FFRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFJUjtJQUhLLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDL0IsR0FBRyxDQUFTO0lBRXJCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRU8sV0FBVztRQUNqQixPQUFPLE1BQU0sSUFBSSxzQkFBc0IsSUFBSSxNQUFNLENBQUM7SUFDcEQsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9DLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksY0FBYyxFQUFFLENBQUM7b0JBQ25CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDakIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMxQixDQUFDO3VHQTVCVSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0VBRTBCLE9BQU87c0JBQS9CLFdBQVc7dUJBQUMsVUFBVTtnQkFDZCxHQUFHO3NCQUFYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSBmb3IgbGF6eSBsb2FkaW5nIGltYWdlc1xuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbWdbbHRMYXp5TG9hZF0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExhenlMb2FkRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBIb3N0QmluZGluZygnYXR0ci5zcmMnKSBzcmNBdHRyID0gbnVsbDtcbiAgQElucHV0KCkgc3JjOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jYW5MYXp5TG9hZCgpID8gdGhpcy5sYXp5TG9hZEltYWdlKCkgOiB0aGlzLmxvYWRJbWFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYW5MYXp5TG9hZCgpIHtcbiAgICByZXR1cm4gd2luZG93ICYmICdJbnRlcnNlY3Rpb25PYnNlcnZlcicgaW4gd2luZG93O1xuICB9XG5cbiAgcHJpdmF0ZSBsYXp5TG9hZEltYWdlKCkge1xuICAgIGNvbnN0IG9icyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgZW50cmllcy5mb3JFYWNoKCh7IGlzSW50ZXJzZWN0aW5nIH0pID0+IHtcbiAgICAgICAgaWYgKGlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgdGhpcy5sb2FkSW1hZ2UoKTtcbiAgICAgICAgICBvYnMudW5vYnNlcnZlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIG9icy5vYnNlcnZlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRJbWFnZSgpIHtcbiAgICB0aGlzLnNyY0F0dHIgPSB0aGlzLnNyYztcbiAgfVxufVxuIl19
@@ -1,92 +0,0 @@
1
- import { Directive, HostListener, Inject, Input, PLATFORM_ID } from '@angular/core';
2
- import { isPlatformBrowser } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@lenne.tech/ng-base/shared";
5
- /**
6
- * Set same height (maximum) to different elements
7
- */
8
- export class MatchHeightDirective {
9
- el;
10
- imageService;
11
- // class name to match height
12
- ltMatchHeight;
13
- // Replace lazy loading images with immediate loading images
14
- loadImages = true;
15
- // Wether current platform is a browser
16
- isBrowser;
17
- observer;
18
- constructor(el, imageService, platformId) {
19
- this.el = el;
20
- this.imageService = imageService;
21
- this.isBrowser = isPlatformBrowser(platformId);
22
- }
23
- onResize() {
24
- this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
25
- }
26
- ngAfterViewInit() {
27
- this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
28
- this.observer = new MutationObserver(() => {
29
- this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
30
- });
31
- //Observes if one or more elements get added to or removed from the childlist and applies matching heights
32
- this.observer.observe(this.el.nativeElement, { childList: true });
33
- }
34
- async matchHeight(parent, target) {
35
- if (!parent) {
36
- return;
37
- }
38
- let classNames;
39
- if (!Array.isArray(target)) {
40
- classNames = [target];
41
- }
42
- else {
43
- classNames = target;
44
- }
45
- for (const className of classNames) {
46
- // find all child structureElements with the selected class name
47
- const children = parent.getElementsByClassName(className);
48
- if (!children || children.length < 2) {
49
- continue;
50
- }
51
- // Load images of children
52
- if (this.loadImages) {
53
- await this.imageService.preLoadImages({ elements: children });
54
- }
55
- // reset all children height
56
- Array.from(children).forEach((element) => {
57
- element.style.height = 'initial';
58
- });
59
- // get all the child structureElements heights
60
- const itemHeights = Array.from(children).map((element) => {
61
- if (element.getBoundingClientRect) {
62
- return element.getBoundingClientRect().height;
63
- }
64
- return 0;
65
- });
66
- // find out the tallest one
67
- const maxHeight = itemHeights.reduce((prev, curr) => (curr > prev ? curr : prev), 0);
68
- // update the child structureElements height to the tallest one
69
- Array.from(children).forEach((element) => (element.style.height = `${maxHeight}px`));
70
- }
71
- }
72
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MatchHeightDirective, deps: [{ token: i0.ElementRef }, { token: i1.ImageService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
73
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: MatchHeightDirective, isStandalone: true, selector: "[ltMatchHeight]", inputs: { ltMatchHeight: "ltMatchHeight", loadImages: "loadImages" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0 });
74
- }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MatchHeightDirective, decorators: [{
76
- type: Directive,
77
- args: [{
78
- selector: '[ltMatchHeight]',
79
- standalone: true
80
- }]
81
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ImageService }, { type: undefined, decorators: [{
82
- type: Inject,
83
- args: [PLATFORM_ID]
84
- }] }], propDecorators: { ltMatchHeight: [{
85
- type: Input
86
- }], loadImages: [{
87
- type: Input
88
- }], onResize: [{
89
- type: HostListener,
90
- args: ['window:resize']
91
- }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2RpcmVjdGl2ZXMvbWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUVwRDs7R0FFRztBQUtILE1BQU0sT0FBTyxvQkFBb0I7SUFjVDtJQUEwQjtJQWJoRCw2QkFBNkI7SUFFN0IsYUFBYSxDQUFvQjtJQUVqQyw0REFBNEQ7SUFFNUQsVUFBVSxHQUFHLElBQUksQ0FBQztJQUVsQix1Q0FBdUM7SUFDOUIsU0FBUyxDQUFVO0lBRTVCLFFBQVEsQ0FBbUI7SUFFM0IsWUFBc0IsRUFBYyxFQUFZLFlBQTBCLEVBQXVCLFVBQWtCO1FBQTdGLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBWSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN4RSxJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFHRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVB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IEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltYWdlU2VydmljZSB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBTZXQgc2FtZSBoZWlnaHQgKG1heGltdW0pIHRvIGRpZmZlcmVudCBlbGVtZW50c1xuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbHRNYXRjaEhlaWdodF0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1hdGNoSGVpZ2h0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8vIGNsYXNzIG5hbWUgdG8gbWF0Y2ggaGVpZ2h0XG4gIEBJbnB1dCgpXG4gIGx0TWF0Y2hIZWlnaHQ6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8vIFJlcGxhY2UgbGF6eSBsb2FkaW5nIGltYWdlcyB3aXRoIGltbWVkaWF0ZSBsb2FkaW5nIGltYWdlc1xuICBASW5wdXQoKVxuICBsb2FkSW1hZ2VzID0gdHJ1ZTtcblxuICAvLyBXZXRoZXIgY3VycmVudCBwbGF0Zm9ybSBpcyBhIGJyb3dzZXJcbiAgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xuXG4gIG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbDogRWxlbWVudFJlZiwgcHJvdGVjdGVkIGltYWdlU2VydmljZTogSW1hZ2VTZXJ2aWNlLCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uUmVzaXplKCkge1xuICAgIHRoaXMubWF0Y2hIZWlnaHQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmx0TWF0Y2hIZWlnaHQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubWF0Y2hIZWlnaHQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmx0TWF0Y2hIZWlnaHQpO1xuICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLm1hdGNoSGVpZ2h0KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5sdE1hdGNoSGVpZ2h0KTtcbiAgICB9KTtcblxuICAgIC8vT2JzZXJ2ZXMgaWYgb25lIG9yIG1vcmUgZWxlbWVudHMgZ2V0IGFkZGVkIHRvIG9yIHJlbW92ZWQgZnJvbSB0aGUgY2hpbGRsaXN0IGFuZCBhcHBsaWVzIG1hdGNoaW5nIGhlaWdodHNcbiAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB7IGNoaWxkTGlzdDogdHJ1ZSB9KTtcbiAgfVxuXG4gIGFzeW5jIG1hdGNoSGVpZ2h0KHBhcmVudDogSFRNTEVsZW1lbnQsIHRhcmdldDogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAoIXBhcmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjbGFzc05hbWVzO1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh0YXJnZXQpKSB7XG4gICAgICBjbGFzc05hbWVzID0gW3RhcmdldF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsYXNzTmFtZXMgPSB0YXJnZXQ7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjbGFzc05hbWUgb2YgY2xhc3NOYW1lcykge1xuICAgICAgLy8gZmluZCBhbGwgY2hpbGQgc3RydWN0dXJlRWxlbWVudHMgd2l0aCB0aGUgc2VsZWN0ZWQgY2xhc3MgbmFtZVxuICAgICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShjbGFzc05hbWUpO1xuXG4gICAgICBpZiAoIWNoaWxkcmVuIHx8IGNoaWxkcmVuLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIExvYWQgaW1hZ2VzIG9mIGNoaWxkcmVuXG4gICAgICBpZiAodGhpcy5sb2FkSW1hZ2VzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW1hZ2VTZXJ2aWNlLnByZUxvYWRJbWFnZXMoeyBlbGVtZW50czogY2hpbGRyZW4gfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIHJlc2V0IGFsbCBjaGlsZHJlbiBoZWlnaHRcbiAgICAgIEFycmF5LmZyb20oY2hpbGRyZW4pLmZvckVhY2goKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJ2luaXRpYWwnO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIGdldCBhbGwgdGhlIGNoaWxkIHN0cnVjdHVyZUVsZW1lbnRzIGhlaWdodHNcbiAgICAgIGNvbnN0IGl0ZW1IZWlnaHRzID0gQXJyYXkuZnJvbShjaGlsZHJlbikubWFwKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCkge1xuICAgICAgICAgIHJldHVybiBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBmaW5kIG91dCB0aGUgdGFsbGVzdCBvbmVcbiAgICAgIGNvbnN0IG1heEhlaWdodCA9IGl0ZW1IZWlnaHRzLnJlZHVjZSgocHJldiwgY3VycikgPT4gKGN1cnIgPiBwcmV2ID8gY3VyciA6IHByZXYpLCAwKTtcblxuICAgICAgLy8gdXBkYXRlIHRoZSBjaGlsZCBzdHJ1Y3R1cmVFbGVtZW50cyBoZWlnaHQgdG8gdGhlIHRhbGxlc3Qgb25lXG4gICAgICBBcnJheS5mcm9tKGNoaWxkcmVuKS5mb3JFYWNoKChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gKGVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7bWF4SGVpZ2h0fXB4YCkpO1xuICAgIH1cbiAgfVxufVxuIl19