@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 +0,0 @@
1
- {"version":3,"file":"lenne.tech-ng-base-shared.mjs","sources":["../../../projects/ng-base/shared/classes/helper.class.ts","../../../projects/ng-base/shared/classes/standard.class.ts","../../../projects/ng-base/shared/classes/basic-user.class.ts","../../../projects/ng-base/shared/classes/graphql-enum.class.ts","../../../projects/ng-base/shared/classes/graphql-type.class.ts","../../../projects/ng-base/shared/classes/graphql-meta.class.ts","../../../projects/ng-base/shared/classes/auth.class.ts","../../../projects/ng-base/shared/classes/sort.class.ts","../../../projects/ng-base/shared/decorators/debounce.decorator.ts","../../../projects/ng-base/shared/enums/graphql-request-type.enum.ts","../../../projects/ng-base/shared/interfaces/base-module-config.interface.ts","../../../projects/ng-base/shared/services/graphql-meta.service.ts","../../../projects/ng-base/shared/services/graphql.service.ts","../../../projects/ng-base/shared/services/storage.service.ts","../../../projects/ng-base/shared/services/ws.service.ts","../../../projects/ng-base/shared/services/auth.service.ts","../../../projects/ng-base/shared/services/loader.service.ts","../../../projects/ng-base/shared/services/graphql-plus.service.ts","../../../projects/ng-base/shared/services/image.service.ts","../../../projects/ng-base/shared/services/scroll.service.ts","../../../projects/ng-base/shared/services/forms.service.ts","../../../projects/ng-base/shared/services/user.service.ts","../../../projects/ng-base/shared/services/toast.service.ts","../../../projects/ng-base/shared/services/breadcrumb.service.ts","../../../projects/ng-base/shared/services/navigation.service.ts","../../../projects/ng-base/shared/services/cms.service.ts","../../../projects/ng-base/shared/services/file.service.ts","../../../projects/ng-base/shared/enums/comparison-operator.enum.ts","../../../projects/ng-base/shared/enums/logical-operator.enum.ts","../../../projects/ng-base/shared/enums/sort-order.enum.ts","../../../projects/ng-base/shared/enums/toast-type.enum.ts","../../../projects/ng-base/shared/enums/skeleton-type.enum.ts","../../../projects/ng-base/shared/validators/match.validator.ts","../../../projects/ng-base/shared/validators/email.validator.ts","../../../projects/ng-base/shared/validators/secure-password.validator.ts","../../../projects/ng-base/shared/functions/ws-client.function.ts","../../../projects/ng-base/shared/public-api.ts","../../../projects/ng-base/shared/lenne.tech-ng-base-shared.ts"],"sourcesContent":["import { Standard } from './standard.class';\n\n/**\n * Helper class\n */\nexport class Helper {\n /**\n * Simple filter function for plain objects\n */\n static filter<T = { [key: string]: any }>(objects: T[], filter: { [key: string]: any }): T[] {\n return (objects?.filter((element) => {\n for (const [key, value] of Object.entries(filter)) {\n if (Array.isArray(element[key])) {\n for (const item of element[key]) {\n if (!element[key].includs(value)) {\n return false;\n }\n }\n } else if (element[key] !== value) {\n return false;\n }\n }\n return true;\n }) || []) as any[];\n }\n\n /**\n * Convert to a url/uri conform string\n * Only:\n * - lower case\n * - chars, numbers and hyphens\n */\n static urlString(str: any, options: { allowAll?: boolean } = {}): string {\n // Config\n const config = {\n allowAll: false,\n ...options,\n };\n\n // To string\n str = str + '';\n\n // Trim\n str = str.trim();\n\n // Lower case\n str = str.toLowerCase();\n\n if (!config.allowAll) {\n // Replace spaces\n str = str.trim().replace(/\\s+/g, '-');\n\n // Replace some special chars\n str = str.replace('ä', 'ae');\n str = str.replace('ö', 'oe');\n str = str.replace('ü', 'ue');\n str = str.replace('ß', 'ss');\n\n // Remove double characters\n str = str.replace('---', '-');\n str = str.replace('--', '-');\n\n // Remove other special chars\n str = str.replace(/[^a-zA-Z0-9-]/g, '');\n }\n\n // Return url conform string\n return encodeURI(str);\n }\n\n /**\n * Simple map function\n */\n public static map<T = { [key: string]: any }>(\n source: Partial<T> | { [key: string]: any },\n target: T,\n options: { funcAllowed?: boolean; dateStringToDate?: boolean | string[] } = {}\n ): T {\n // Set config\n const config = {\n funcAllowed: false,\n dateStringToDate: true,\n ...options,\n };\n\n // Check source\n if (!source || typeof source !== 'object' || Array.isArray(source)) {\n return target;\n }\n\n // Update properties\n for (const key of Object.keys(target)) {\n if (source[key] !== undefined && (config.funcAllowed || typeof (source[key] !== 'function'))) {\n if (typeof source[key] === 'string' && config.dateStringToDate) {\n if (Array.isArray(config.dateStringToDate)) {\n if (config.dateStringToDate.includes(key)) {\n target[key] = Helper.parseDate(source[key]);\n }\n } else {\n target[key] = Helper.parseDate(source[key]);\n }\n } else {\n target[key] = source[key];\n }\n }\n }\n\n // Return target\n return target;\n }\n\n /**\n * Create Object or Objects of specified type with specified data\n */\n public static maps<T extends Standard>(\n data: Partial<T> | Partial<T>[] | { [key: string]: any } | { [key: string]: any }[],\n targetClass: new (...args: any[]) => T\n ): T[] {\n // Check data\n if (!data || typeof data !== 'object') {\n return undefined;\n }\n\n // Check array\n if (!Array.isArray(data)) {\n data = [data];\n }\n\n // Map\n return (data as any).map((item: any) => {\n return (targetClass as any).map(item);\n });\n }\n\n /**\n * Get plain parameter\n */\n public static getPlainParameter(parameter: string) {\n if (!parameter) {\n return parameter;\n }\n return parameter?.split('?')?.shift()?.split('#')?.shift();\n }\n\n /**\n * Get ID of an url parameter\n */\n public static getParameterId(parameter: string) {\n if (!parameter) {\n return parameter;\n }\n return Helper.getPlainParameter(parameter)?.split('-').pop();\n }\n\n /**\n * Delay\n */\n public static delay(ms: number) {\n const promise = new Promise((resolve) => setTimeout(resolve, ms));\n return promise;\n }\n\n /**\n * Deep freeze\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze#What_is_shallow_freeze\n */\n public static deepFreeze(object: any, preparedObjects = []) {\n // Prevent infinit regress\n if (preparedObjects.includes(object as never)) {\n return object;\n }\n preparedObjects.push(object as never);\n\n // Retrieve the property names defined on object\n const propNames = Object.getOwnPropertyNames(object);\n\n // Freeze properties before freezing self\n for (const name of propNames) {\n const value = object[name];\n\n if (value && typeof value === 'object') {\n Helper.deepFreeze(value, preparedObjects);\n }\n }\n\n return Object.freeze(object);\n }\n\n /**\n * Generates an unique identifier with a specific length\n */\n public static getUID(length: number = 24): string {\n let dt = new Date().getTime();\n const uuid = 'x'.repeat(length).replace(/[xy]/g, (c) => {\n // eslint-disable-next-line no-bitwise\n const r = (dt + Math.random() * 16) % 16 | 0;\n dt = Math.floor(dt / 16);\n // eslint-disable-next-line no-bitwise\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n return uuid;\n }\n\n /**\n * Parse date string to date object\n */\n public static parseDate(dateString: string) {\n const reISO = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*))(?:Z|(\\+|-)([\\d|:]*))?$/;\n const reMsAjax = /^\\/Date\\((d|-|.*)\\)[\\/|\\\\]$/;\n if (typeof dateString === 'string') {\n const isoExec = reISO.exec(dateString);\n if (isoExec) {\n return new Date(dateString);\n }\n const msAjaxExec = reMsAjax.exec(dateString);\n if (msAjaxExec) {\n const cleaned = msAjaxExec[1].split(/[-+,.]/);\n return new Date(cleaned[0] ? +cleaned[0] : 0 - +cleaned[1]);\n }\n }\n return dateString;\n }\n\n /**\n * Get browser name and version\n */\n public static getBrowser() {\n const userAgent = navigator.userAgent;\n let data = userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n let version;\n if (/trident/i.test(data[1])) {\n version = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n return { name: 'IE', version: version[1] || '' };\n }\n if (data[1] === 'Chrome') {\n version = userAgent.match(/\\bOPR|Edge\\/(\\d+)/);\n if (version != null) {\n return { name: 'Opera', version: version[1] };\n }\n }\n data = data[2] ? [data[1], data[2]] : [navigator.appName, navigator.appVersion, '-?'];\n version = userAgent.match(/version\\/(\\d+)/i);\n if (version !== null) {\n data.splice(1, 1, version[1]);\n }\n return {\n name: data[0],\n version: data[1],\n };\n }\n\n /**\n * Whether first parameter is a deep subset of second parameter\n * Hint: functions will be ignored\n */\n static isSubset(a: any, b: any) {\n // Equal\n if (a === b) {\n return true;\n }\n\n // Different type\n if (typeof a !== typeof b) {\n return false;\n }\n\n // Process array\n if (Array.isArray(a)) {\n for (const [key, value] of Object.entries(a)) {\n if (Helper.isSubset(value, b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // Process object\n if (typeof a === 'object') {\n const plain = JSON.parse(JSON.stringify(a));\n for (const [key, value] of Object.entries(plain)) {\n if (Helper.isSubset(value, b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // Else\n return true;\n }\n\n /**\n * Whether parameters are equal (have equal properties)\n * Hint: functions will be ignored\n */\n static isEqual(a: any, b: any) {\n return Helper.isSubset(a, b) && Helper.isSubset(b, a);\n }\n\n /**\n * First level difference of two objects\n * Hint: functions will be ignored and when an array or an object is different the hole array or object will used as property value\n *\n * @returns Record<string, any> Object with properties from first object\n */\n static getDiff(a: Record<string, any>, b: Record<string, any>, clone: boolean = true) {\n const result = {};\n let firstObject = a;\n if (clone) {\n firstObject = JSON.parse(JSON.stringify(a));\n }\n for (const [key, value] of Object.entries(firstObject)) {\n if (!Helper.isSubset(value, b[key])) {\n result[key] = value;\n }\n }\n return result;\n }\n\n /**\n * Check if propertie is type of HTMLCollection or NodeList\n * See https://stackoverflow.com/a/7238344\n *\n * @param nodes\n */\n static isNodeList(nodes) {\n try {\n const stringRepr = Object.prototype.toString.call(nodes);\n return (\n typeof nodes === 'object' &&\n /^\\[object (HTMLCollection|NodeList|Object)\\]$/.test(stringRepr) &&\n typeof nodes.length === 'number' &&\n (nodes.length === 0 || (typeof nodes[0] === 'object' && nodes[0].nodeType > 0))\n );\n } catch (e) {\n return false;\n }\n }\n\n static arrayBufferToBase64(buffer) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return `data:image/*;base64, ${window.btoa(binary)}`;\n }\n}\n","import { Helper } from './helper.class';\n\n/**\n * Standard class\n * Other classes should extend the Standard class, if they offer own functions\n * If the extended class uses object properties with own map functions, it should implement its own map function\n */\nexport class Standard {\n /**\n * Static map method\n */\n public static map<T extends Standard>(\n this: new (...args: any[]) => T,\n data: Partial<T> | { [key: string]: any },\n item: T = new this()\n ): T {\n return (item as any).map(data);\n }\n\n /**\n * Map data into an object\n */\n public map(data: Partial<this> | { [key: string]: any }): this {\n return Helper.map(data, this);\n }\n\n /**\n * Clone object (and map additional data)\n */\n public clone(mapData?: Partial<this> | { [key: string]: any }): this {\n const current = JSON.parse(JSON.stringify(this));\n if (mapData) {\n Object.assign(current, mapData);\n }\n return new (this as any).constructor().map(current);\n }\n\n /**\n * Compare this with another object\n * Hint: functions will be ignored and when an array or an object is different the hole array or object will used as property value\n *\n * @return Record<string, any> with properties of this object which are different\n */\n public getDiff(compare: Record<string, any>, clone: boolean = true) {\n return Helper.getDiff(this, compare, clone);\n }\n}\n","import { Standard } from './standard.class';\nimport { Helper } from './helper.class';\n\n/**\n * User class\n */\nexport class BasicUser extends Standard {\n id: string = undefined;\n email: string = undefined;\n avatar?: string = undefined;\n firstName: string = undefined;\n lastName: string = undefined;\n roles: string[] = [];\n username: string = undefined;\n\n // ===================================================================================================================\n // Methods\n // ===================================================================================================================\n\n /**\n * Mapping\n */\n public map(data: Partial<this> | { [key: string]: any }): this {\n Helper.map(data, this);\n return this;\n }\n\n /**\n * Checks whether the user has at least one of the required roles\n */\n public hasRole(roles: string | string[]) {\n if (typeof roles === 'string') {\n roles = [roles];\n }\n if (!this.roles || this.roles.length < 1) {\n return false;\n }\n return !roles || roles.length < 1 ? true : this.roles.some((role) => roles.includes(role));\n }\n\n /**\n * Checks whether the user has all required roles\n */\n public hasAllRoles(roles: string | string[]) {\n if (typeof roles === 'string') {\n roles = [roles];\n }\n if (!this.roles || this.roles.length < 1) {\n return false;\n }\n return !roles ? true : roles.every((role) => this.roles.includes(role));\n }\n}\n","/**\n * GraphQL enum\n */\nexport class GraphQLEnum {\n value: string;\n\n constructor(value) {\n this.value = value;\n }\n}\n","import { Standard } from './standard.class';\n\n/**\n * GraphQL type\n */\nexport class GraphQLType extends Standard {\n type = '';\n fields: Record<string, GraphQLType> = {};\n isRequired = false;\n isItemRequired = false;\n isList = false;\n isEnum = false;\n validEnums: string[] = [];\n}\n","import {\n GraphQLEnumType,\n GraphQLInputObjectType,\n GraphQLList,\n GraphQLNamedType,\n GraphQLNonNull,\n GraphQLScalarType,\n GraphQLSchema,\n} from 'graphql';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\nimport { Helper } from './helper.class';\nimport { GraphQLType } from './graphql-type.class';\nimport { GraphqlCrudType } from '../interfaces/graphql-crud-type.interface';\n\n/**\n * GraphQL meta\n */\nexport class GraphQLMeta {\n // Frozen caches\n protected args: Record<string, any> = {};\n protected fields: Record<string, any> = {};\n\n /**\n * Integrate schema\n */\n constructor(protected schema: GraphQLSchema) {\n if (!schema) {\n throw Error('Missing schema');\n }\n }\n\n /**\n * Get an object with GraphQLRequestType (operation type) as keys and method (fields) names as value\n */\n getMethodNames(): Record<string, string[]> {\n return {\n query: Object.keys(this.schema.getQueryType()?.getFields() || {}),\n mutation: Object.keys(this.schema.getMutationType()?.getFields() || {}),\n subscription: Object.keys(this.schema.getSubscriptionType()?.getFields() || {}),\n };\n }\n\n /**\n * Get GraphQLRequestTypes (operation types) via method (field) name\n */\n getRequestTypesViaMethod(methodName: string): string[] {\n const result = [];\n const methodNames = this.getMethodNames();\n for (const [key, value] of Object.entries(methodNames)) {\n if (value.includes(methodName)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * We're going to get the query and mutation types from the schema, then we're going to loop through the fields of each\n * type and check if the field name starts with `find`, `create`, `update`, or `delete`. If it does, we're going to add\n * the model name to the `possibleTypes` array\n *\n * @returns An array of objects with the name of the model, and the CRUD operations that are available for that model.\n */\n getTypes(logging = false): GraphqlCrudType[] {\n const possibleTypes: GraphqlCrudType[] = [] as any;\n const mutationType = this.schema.getMutationType();\n const queryType = this.schema.getQueryType();\n\n if (logging) {\n console.log('GraphQLMeta::getTypes->queryTypeFields', queryType.getFields());\n }\n\n for (const [key, value] of Object.entries(queryType.getFields())) {\n if (key.startsWith('find')) {\n possibleTypes.push({\n name: key.split('find').pop().slice(0, -1),\n create: false,\n update: false,\n delete: false,\n duplicate: false,\n });\n }\n }\n\n if (logging) {\n console.log('GraphQLMeta::getTypes->mutationTypeFields', mutationType.getFields());\n console.log('GraphQLMeta::getTypes->possibleTypes', possibleTypes);\n }\n\n for (const [key, value] of Object.entries(mutationType.getFields())) {\n if (key.startsWith('create')) {\n const model = key.split('create').pop();\n if (possibleTypes.find((e) => e.name === model)) {\n possibleTypes.find((item) => item.name === model).create = true;\n }\n }\n\n if (key.startsWith('update')) {\n const model = key.split('update').pop();\n if (possibleTypes.find((e) => e.name === model)) {\n possibleTypes.find((item) => item.name === model).update = true;\n }\n }\n\n if (key.startsWith('delete')) {\n const model = key.split('delete').pop();\n if (possibleTypes.find((e) => e.name === model)) {\n possibleTypes.find((item) => item.name === model).delete = true;\n }\n }\n\n if (key.startsWith('duplicate')) {\n const model = key.split('duplicate').pop();\n if (possibleTypes.find((e) => e.name === model)) {\n possibleTypes.find((item) => item.name === model).duplicate = true;\n }\n }\n }\n\n if (logging) {\n console.log('GraphQLMeta::getTypes->possibleTypes', possibleTypes);\n console.log(\n 'GraphQLMeta::getTypes->filteredPossibleTypes',\n possibleTypes.filter((e) => e.create || e.update)\n );\n }\n\n return possibleTypes.filter((e) => e.create || e.update);\n }\n\n /**\n * Get arguments of GraphQL function\n */\n getArgs(\n functionName: string,\n options: { cache?: boolean; freeze?: boolean; type?: GraphQLRequestType } = {}\n ): GraphQLType {\n const { cache, freeze, type } = {\n cache: true,\n freeze: true,\n type: undefined,\n ...options,\n };\n\n // Get cache\n if (cache && freeze) {\n const args = this.args[functionName + type];\n if (args) {\n return args;\n }\n }\n\n const func = this.getFunction(functionName, { type });\n const result = new GraphQLType();\n if (func?.args) {\n func.args.forEach((item) => {\n result.fields[item.name] = this.getDeepType(item.type);\n });\n }\n\n // Set cache\n if (freeze) {\n this.args[functionName + type] = Helper.deepFreeze(result);\n }\n\n return result;\n }\n\n /**\n * Get fields of GraphQL function\n */\n getFields(\n functionName: string,\n options: { cache?: boolean; freeze?: boolean; type?: GraphQLRequestType } = {}\n ): GraphQLType {\n const { cache, freeze, type } = {\n cache: true,\n freeze: true,\n type: undefined,\n ...options,\n };\n\n // Get cache\n if (cache && freeze) {\n const args = this.fields[functionName + type];\n if (args) {\n return args;\n }\n }\n\n const func = this.getFunction(functionName, options);\n const result = this.getDeepType(func.type);\n\n // Set cache\n if (freeze) {\n this.fields[functionName + type] = Helper.deepFreeze(result);\n }\n\n return result;\n }\n\n /**\n * Get GraphQL function\n */\n protected getFunction(name: string, options: { type?: GraphQLRequestType } = {}): Record<string, any> {\n // Set config\n const config = {\n ...options,\n };\n\n // Init possible functions\n let functions = {};\n\n // If function type is set\n if (config.type) {\n const graphQLType = config.type.charAt(0).toUpperCase() + config.type.slice(1);\n const type = this.schema.getType(graphQLType);\n if (type) {\n functions = (type as any).getFields();\n }\n }\n\n // If function type is not set\n else {\n ['Subscription', 'Mutation', 'Query'].forEach((item) => {\n const type: any = this.schema.getType(item);\n if (type) {\n functions = {\n ...functions,\n ...(type.getFields() || {}),\n };\n }\n });\n }\n\n // Get function via name\n return functions[name];\n }\n\n /**\n * Get type\n */\n protected getType(name: string): GraphQLNamedType | null | undefined {\n return this.schema.getType(name);\n }\n\n /**\n * Get (deep) type name\n */\n protected getTypeName(type: any) {\n if (\n type instanceof GraphQLInputObjectType ||\n type instanceof GraphQLScalarType ||\n type instanceof GraphQLEnumType\n ) {\n return type.name;\n } else if (type.type) {\n return this.getTypeName(type.type);\n } else if (type.ofType) {\n return this.getTypeName(type.ofType);\n } else {\n return type.name;\n }\n }\n\n /**\n * Get deep type data\n */\n protected getDeepType(type: any, prepared: Record<string, any> = {}, setMetaData = false): GraphQLType {\n // Check type\n if (!type) {\n return type;\n }\n\n // Infinite regress protection\n const typeName = this.getTypeName(type);\n const graphQLType = GraphQLType.map({\n type: this.getTypeName(type),\n });\n\n // Check prepared\n if (typeof type === 'object') {\n const preparedType = prepared[typeName];\n\n // Work with cached type\n if (preparedType) {\n // Create a new object to protect own isXXX information\n const clone = Object.assign({}, preparedType);\n\n // But use fields as reference to get future changes via prepared caching\n clone.fields = preparedType.fields;\n\n // Disable meta flags for sub objects\n if (\n type?.type instanceof GraphQLInputObjectType ||\n (type?.type instanceof GraphQLNonNull && type?.type?.ofType instanceof GraphQLInputObjectType && setMetaData)\n ) {\n setMetaData = false;\n }\n\n // Check for meta flags\n if (type.type && setMetaData) {\n if (type.type instanceof GraphQLNonNull) {\n clone.isRequired = true;\n if (type.type.ofType instanceof GraphQLList) {\n clone.isList = true;\n clone.isItemRequired = type.type.ofType.ofType instanceof GraphQLNonNull;\n } else {\n clone.isList = false;\n clone.isItemRequired = false;\n }\n } else {\n clone.isRequired = false;\n\n // List first\n if (type.type instanceof GraphQLList) {\n clone.isList = true;\n clone.isItemRequired = type.ofType instanceof GraphQLNonNull;\n } else {\n clone.isList = false;\n clone.isItemRequired = false;\n }\n }\n }\n\n return clone;\n }\n\n // Set prepared cache for GraphQL types\n // (type names start with uppercase letters as opposed to property names that start with lowercase letters)\n if (type.name && type.name[0].toUpperCase() === type.name[0] && !prepared[type.name]) {\n prepared[type.name] = graphQLType;\n }\n }\n\n // Search deeper\n if (type.ofType) {\n const ofTypeResult = this.getDeepType(type.ofType, prepared, setMetaData);\n Object.assign(graphQLType, ofTypeResult);\n return graphQLType;\n }\n\n // Process fields\n if (type._fields) {\n const fields = {};\n for (const [key, value] of Object.entries(type._fields)) {\n fields[key] = this.getDeepType(value, prepared, true);\n }\n\n // Assign and not replace to preserve updates in the cache\n Object.assign(graphQLType.fields, fields);\n return graphQLType;\n }\n\n // Process type\n if (type.type) {\n const typeResult = this.getDeepType(type.type, prepared, setMetaData);\n\n // Disable meta flags for sub objects\n if (\n type?.type instanceof GraphQLInputObjectType ||\n (type?.type instanceof GraphQLNonNull && type?.type?.ofType instanceof GraphQLInputObjectType && setMetaData)\n ) {\n setMetaData = false;\n }\n\n // Check for meta flags\n if (setMetaData) {\n if (type.type instanceof GraphQLNonNull) {\n typeResult.isRequired = true;\n if (type.type.ofType instanceof GraphQLList) {\n typeResult.isList = true;\n typeResult.isItemRequired = type.type.ofType.ofType instanceof GraphQLNonNull;\n } else {\n typeResult.isList = false;\n typeResult.isItemRequired = false;\n }\n } else {\n typeResult.isRequired = false;\n\n // List first\n if (type.type instanceof GraphQLList) {\n typeResult.isList = true;\n typeResult.isItemRequired = type.ofType instanceof GraphQLNonNull;\n } else {\n typeResult.isList = false;\n typeResult.isItemRequired = false;\n }\n }\n }\n\n Object.assign(graphQLType, typeResult);\n return graphQLType;\n }\n\n // Set enum values\n if (!!type._values) {\n graphQLType.isEnum = true;\n for (const [key, value] of Object.entries(type._nameLookup)) {\n if (!(value as any).isDeprecated) {\n graphQLType.validEnums.push(key);\n }\n }\n }\n\n // Finish\n return graphQLType;\n }\n}\n","import { BasicUser } from './basic-user.class';\nimport { Helper } from './helper.class';\nimport { Standard } from './standard.class';\n\nexport class Auth extends Standard {\n refreshToken: string = undefined;\n token: string = undefined;\n user: BasicUser = undefined;\n\n public map(data: Partial<this> | { [key: string]: any }): this {\n Helper.map(data, this);\n this.user = data?.user ? BasicUser.map(data.user) : this.user;\n return this;\n }\n}\n","export class Sort {\n private sortOrder = 1;\n collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' });\n\n /**\n * Sorts clicked column\n */\n public startSort(property: string, order: string, type = '') {\n if (order === 'desc') {\n this.sortOrder = -1;\n }\n return (a, b) => {\n if (type === 'date') {\n return this.sortDate(new Date(a.latestStep[property]), new Date(b.latestStep[property]));\n } else if (type === 'position') {\n return this.collator.compare(a.position.Value[property], b.position.Value[property]) * this.sortOrder;\n } else {\n return this.collator.compare(a[property], b[property]) * this.sortOrder;\n }\n };\n }\n\n /**\n * Sorts dates\n */\n private sortDate(a: Date, b: Date) {\n if (a < b) {\n return -1 * this.sortOrder;\n } else if (a > b) {\n return 1 * this.sortOrder;\n } else {\n return 0 * this.sortOrder;\n }\n }\n}\n","export function debounce(delay: number = 300): MethodDecorator {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n let timeout = null;\n\n const original = descriptor.value;\n\n descriptor.value = function (...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => original.apply(this, args), delay);\n };\n\n return descriptor;\n };\n}\n","/**\n * GraphQL request type enum\n */\nexport enum GraphQLRequestType {\n QUERY = 'query',\n MUTATION = 'mutation',\n SUBSCRIPTION = 'subscription',\n}\n","import { InjectionToken } from '@angular/core';\nimport { StorageType } from '../types/storage.type';\n\n/**\n * Configuration for base module\n */\nexport interface BaseModuleConfig {\n /**\n * URL to server API\n * Default: 'localhost:3000'\n */\n apiUrl?: string;\n\n /**\n * Websocket URL to server API\n */\n wsUrl?: string;\n\n /**\n * Default redirect URL for AuthGuard\n * Default: '/auth'\n */\n authGuardRedirectUrl?: string;\n\n /**\n * Whether logging is enabled or not\n */\n logging?: boolean;\n\n /**\n * Version of the App (for storage handling)\n * Default: null\n */\n version?: string;\n\n /**\n * Prefix of the App (for storage handling)\n * Default: null\n */\n prefix?: string;\n\n /**\n * Scroll detection offset for ScrollService\n * Should be >= scrollOffset\n * Default: 200\n */\n scrollDetectionOffset?: number;\n\n /**\n * Scroll offset for ScrollService\n * Default: 100\n */\n scrollOffset?: number;\n\n /**\n * Sampling rate for scroll done detection\n * Default: 100\n */\n scrollSamplingRate?: number;\n\n /**\n * Type of storage: 'session' or 'local'\n * Default: 'local'\n */\n storageType?: StorageType;\n\n /**\n * Enable secure password transfer\n */\n securePasswordTransfer?: boolean;\n}\n\nexport const BASE_MODULE_CONFIG = new InjectionToken('BASE_MODULE_CONFIG');\n","import { Apollo, gql } from 'apollo-angular';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { buildClientSchema, getIntrospectionQuery, GraphQLSchema, IntrospectionQuery } from 'graphql';\nimport { map } from 'rxjs/operators';\nimport { GraphQLMeta } from '../classes/graphql-meta.class';\nimport { Helper } from '../classes/helper.class';\n\n/**\n * GraphQL meta service\n *\n * For collecting meta information of the GraphQL API\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class GraphQLMetaService {\n // Caches\n protected _frozenSchema: GraphQLSchema;\n protected _frozenSchemaObservable: Observable<GraphQLSchema>;\n protected _meta: GraphQLMeta;\n protected _metaObservable: Observable<GraphQLMeta>;\n protected _schemaObservable: Observable<GraphQLSchema>;\n\n // Private caches\n private _introspectionQuery: IntrospectionQuery;\n\n /**\n * Include services\n */\n constructor(protected apollo: Apollo) {}\n\n /**\n * Getter of introspectionQuery\n */\n get introspectionQuery(): IntrospectionQuery {\n return JSON.parse(JSON.stringify(this._introspectionQuery));\n }\n\n /**\n * Get schema for API\n * See https://www.apollographql.com/blog/three-ways-to-represent-your-graphql-schema-a41f4175100d\n */\n public getSchema(options: { cache?: boolean; freeze?: boolean } = {}): Observable<GraphQLSchema> {\n // Get configurations\n const config = {\n cache: true,\n freeze: true,\n ...options,\n };\n\n // Use caching\n if (config.cache) {\n if (config.freeze && this._frozenSchema) {\n return of(this._frozenSchema);\n }\n if (this._introspectionQuery) {\n return of(buildClientSchema(this.introspectionQuery));\n }\n if (config.freeze && this._frozenSchemaObservable) {\n return this._frozenSchemaObservable;\n } else if (!config.freeze && this._schemaObservable) {\n return this._schemaObservable;\n }\n }\n\n // Request schema from server\n const observable = this.apollo\n .query({\n query: gql(getIntrospectionQuery({ descriptions: false })),\n })\n .pipe(\n map((schema: any) => {\n // Cache introspectionQuery\n this._introspectionQuery = schema.data;\n\n // Convert schema to GraphQLSchema\n this._frozenSchema = Helper.deepFreeze(buildClientSchema(this.introspectionQuery));\n\n // Return GraphQLSchema\n if (config.freeze) {\n return this._frozenSchema;\n }\n return buildClientSchema(schema.data);\n })\n );\n\n // Set observables\n if (config.freeze) {\n this._frozenSchemaObservable = observable;\n } else {\n this._schemaObservable = observable;\n }\n\n // Return result\n return observable;\n }\n\n /**\n * Get meta for API\n * See https://www.apollographql.com/blog/three-ways-to-represent-your-graphql-schema-a41f4175100d\n */\n public getMeta(options: { cache?: boolean; log?: boolean } = {}): Observable<GraphQLMeta> {\n // Get configurations\n const config = {\n cache: true,\n log: false,\n ...options,\n };\n\n // Use caching\n if (config.cache) {\n if (this._meta) {\n return of(this._meta);\n } else if (this._metaObservable) {\n return this._metaObservable;\n }\n }\n\n // Request schema from server\n const observable = this.getSchema(options).pipe(\n map((schema: any) => {\n // Log\n if (config.log) {\n console.log({ schema });\n }\n\n this._meta = new GraphQLMeta(schema);\n return this._meta;\n })\n );\n\n // Set observables\n this._metaObservable = observable;\n\n // Return result\n return observable;\n }\n}\n","import { Apollo, gql } from 'apollo-angular';\nimport { Inject, Injectable } from '@angular/core';\nimport { IGraphQLOptions } from '../interfaces/graphql-options.interface';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\nimport { Observable, throwError } from 'rxjs';\nimport { GraphQLMetaService } from './graphql-meta.service';\nimport { GraphQLEnum } from '../classes/graphql-enum.class';\nimport { GraphQLType } from '../classes/graphql-type.class';\nimport { sha256 } from 'js-sha256';\nimport { Helper } from '../classes/helper.class';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\n\n/**\n * GraphQL service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class GraphQLService {\n /**\n * Include services\n */\n constructor(\n protected apollo: Apollo,\n protected graphQLMetaService: GraphQLMetaService,\n @Inject(BASE_MODULE_CONFIG) protected moduleConfig: BaseModuleConfig\n ) {}\n\n /**\n * GraphQL request\n */\n public graphQl(graphqlMethodName: string, options: IGraphQLOptions = {}): Observable<any> {\n // Check parameters\n if (!graphqlMethodName) {\n throwError(() => new Error('Missing graphql method name'));\n }\n\n // Get config\n const config = {\n arguments: null,\n fields: null,\n log: false,\n model: null,\n ...options,\n };\n\n // Convert class to Object for arguments\n if (typeof config.arguments === 'function') {\n config.arguments = new config.arguments();\n }\n\n // Convert class to Object for fields\n if (typeof config.fields === 'function') {\n config.fields = new config.fields();\n }\n\n // Log\n if (config.log) {\n console.log({ config });\n }\n\n // Send request\n return new Observable((subscriber) => {\n // Get meta\n this.graphQLMetaService.getMeta({ log: config.log }).subscribe((meta) => {\n // Set GraphQLRequestType automatically\n if (!config.type) {\n const types = meta.getRequestTypesViaMethod(graphqlMethodName);\n if (!types?.length) {\n throwError(() => new Error('No GraphQLRequestType detected'));\n }\n config.type = types[0] as GraphQLRequestType;\n if (config.type) {\n throwError(() => new Error('No GraphQLRequestType detected'));\n }\n if (types.length > 1) {\n // eslint-disable-next-line no-console\n console.debug('GraphQLRequestType ' + config.type + ' used for ' + graphqlMethodName, types);\n }\n }\n\n // Prepare fields\n let fields;\n let allowedFields;\n\n // Log meta\n if (config.log) {\n console.log({ meta });\n }\n\n if (config.fields) {\n allowedFields = meta.getFields(graphqlMethodName, { type: config.type });\n\n // Log meta\n if (config.log) {\n console.log({ allowedFields });\n }\n\n const fieldsData = this.prepareFields(config.fields, {\n allowed: allowedFields,\n });\n\n fields = fieldsData.fieldsString;\n }\n\n if (fields && !fields.startsWith('{')) {\n fields = '{' + fields + '\\n}';\n }\n\n // Log fields\n if (config.log) {\n console.log({ fields });\n }\n\n // Get allowed args\n const allowedArgs = meta.getArgs(graphqlMethodName, { type: config.type });\n\n // Log allowed args\n if (config.log) {\n console.log({ allowedArgs });\n }\n\n const argsData = this.prepareArguments(config.arguments, {\n allowed: allowedArgs,\n });\n\n // Log args data\n if (config.log) {\n argsData.usedArgs.sort();\n argsData.schemaArgs.sort();\n const filtered = argsData.schemaArgs.filter((field) => !argsData.usedArgs.includes(field));\n const unused = this.graphQLTypeToStringArray(allowedArgs)\n .sort()\n .filter((field) => !argsData.usedArgs.includes(field));\n console.log({ argsData, filtered, unused });\n }\n\n let args = argsData?.argsString || '';\n if (args === '{}') {\n args = '';\n }\n\n // Log\n if (config.log) {\n console.log({ graphQL: graphqlMethodName, args, fields, type: config.type });\n }\n\n // Prepare request\n const request: any = {};\n\n // Prepare GraphQL\n const gQlFuncBody = fields\n ? ' {\\n' + graphqlMethodName + args + fields + '\\n}'\n : ' {\\n' + graphqlMethodName + args + '\\n}';\n let gQlBody = config.type + gQlFuncBody;\n\n // Handling for variables (e.g. for file uploads)\n if (Object.keys(argsData.variables).length) {\n // Preparations\n request.variables = {};\n let multipart = false;\n\n // Add surrounding\n gQlBody = config.type + ' Request(';\n for (const [key, item] of Object.entries(argsData.variables)) {\n gQlBody += '\\n$' + key + ':' + item.type + ',';\n request.variables[key] = item.value;\n if (item.type.startsWith('Upload')) {\n multipart = true;\n }\n }\n gQlBody = gQlBody.slice(0, -1) + '\\n)' + gQlFuncBody;\n\n // Set Multipart\n if (multipart) {\n request.context = {\n useMultipart: true,\n };\n }\n }\n const documentNode = gql(gQlBody);\n\n // Log\n if (config.log) {\n console.log({ documentNode });\n }\n\n // Set document node\n request[config.type] = documentNode;\n\n // Log\n if (config.log) {\n console.log({ request });\n }\n\n let func;\n if (config.type === GraphQLRequestType.MUTATION) {\n func = 'mutate';\n request[config.type] = documentNode;\n } else if (config.type === GraphQLRequestType.SUBSCRIPTION) {\n func = 'subscribe';\n request.query = documentNode;\n } else {\n func = config.type;\n request[config.type] = documentNode;\n }\n\n (this.apollo as any)[func](request).subscribe(\n (result: any) => {\n const data = result?.data?.[graphqlMethodName] !== undefined ? result.data[graphqlMethodName] : result;\n\n // Direct data\n if (!config.model) {\n subscriber.next(data);\n }\n\n // Map data as array\n else if (Array.isArray(data)) {\n subscriber.next(\n data.map((item) => {\n return config.model.map(item);\n })\n );\n }\n\n // Map data\n else {\n subscriber.next(config.model.map(data));\n }\n\n if (config.type !== GraphQLRequestType.SUBSCRIPTION) {\n // Done\n subscriber.complete();\n }\n },\n (error: any) => {\n subscriber.error(error);\n subscriber.complete();\n }\n );\n });\n });\n }\n\n /**\n * Get fields / args from IGraphQLTypeCollection\n */\n protected graphQLTypeToStringArray(graphQLType: GraphQLType, current = '', result = [], cacheNode = []) {\n if (!graphQLType) {\n return result;\n }\n if (current?.includes('.')) {\n cacheNode.push(current.split('.')[1]);\n } else if (current) {\n cacheNode.push(current);\n }\n for (const key of Object.keys(graphQLType.fields)) {\n if (current === key || cacheNode.includes(key)) {\n continue;\n }\n this.graphQLTypeToStringArray(graphQLType.fields[key], current ? current + '.' + key : key, result, cacheNode);\n }\n return result;\n }\n\n /**\n * Prepare arguments for GraphQL request\n */\n protected prepareArguments(\n args: any,\n options: {\n allowed?: GraphQLType;\n level?: number;\n levelKey?: string;\n parent?: string;\n schemaArgs?: string[];\n usedArgs?: string[];\n variables?: { [key: string]: { type: string; value: any } };\n } = {}\n ): {\n argsString: string;\n schemaArgs: string[];\n usedArgs: string[];\n variables: { [key: string]: { type: string; value: any } };\n } {\n // Init config variables\n const { allowed, levelKey, level, parent, schemaArgs, usedArgs, variables } = {\n allowed: null,\n levelKey: '',\n level: 1,\n parent: '',\n schemaArgs: [],\n usedArgs: [],\n variables: {},\n ...options,\n };\n\n // Check args\n if (args === undefined || args === null) {\n return { argsString: '', schemaArgs, usedArgs, variables };\n }\n\n // Init args\n const result = [];\n\n // Process array\n if (Array.isArray(args)) {\n const allowedKeys = allowed ? Object.keys(allowed.fields) : null;\n for (const item of args) {\n let key = null;\n if (allowed) {\n if (!allowedKeys || allowedKeys.length < 1) {\n break;\n }\n key = allowedKeys.shift();\n }\n\n // Process value\n result.push(\n this.prepareArguments(item, {\n allowed: key ? allowed.fields[key] : null,\n levelKey: key,\n level: level + 1,\n parent: parent + key + '.',\n schemaArgs,\n usedArgs,\n variables,\n }).argsString\n );\n }\n\n // Encapsulation of the array result\n if (result.length) {\n // Complete result, encapsulated via round brackets\n if (level === 1) {\n return { argsString: '(' + result.join(', ') + ')', schemaArgs, usedArgs, variables };\n }\n\n // Deeper result part, encapsulated via square brackets\n else {\n return { argsString: '[' + result.join(', ') + ']', schemaArgs, usedArgs, variables };\n }\n }\n }\n\n // Process object\n else if (typeof args === 'object') {\n // Check for Upload type for variable handling\n if (allowed?.type === 'Upload') {\n const name = levelKey + '_' + Helper.getUID(6);\n variables[name] = { type: allowed.type + (allowed.isRequired ? '!' : ''), value: args };\n return { argsString: '$' + name, schemaArgs, usedArgs, variables };\n }\n\n // Check object is empty\n if (args && Object.keys(args).length === 0 && Object.getPrototypeOf(args) === Object.prototype) {\n return { argsString: '{}', schemaArgs, usedArgs, variables };\n }\n\n // Process all object entries\n for (const [key, value] of Object.entries(args)) {\n // Init data for current entry\n const currentKey = parent + key;\n schemaArgs.push(currentKey);\n\n // If the allowed key handling is enabled and the current key is not included in the list of allowed keys,\n // the current key will be skipped\n if (allowed && !allowed.fields[key]) {\n continue;\n }\n\n // Skip value if not exists\n if (value === undefined) {\n continue;\n }\n\n // Set null e.g. for resetting\n if (value === null) {\n result.push(key + ':' + null);\n continue;\n }\n\n // Add current key to metadata\n usedArgs.push(currentKey);\n\n // Process GraphQLEnum\n if (value instanceof GraphQLEnum) {\n result.push(key + ':' + value.value);\n continue;\n }\n\n if (this.moduleConfig.securePasswordTransfer && key === 'password') {\n result.push(key + ':' + `\"${sha256(value as string)}\"`);\n continue;\n }\n\n // Process array\n else if (Array.isArray(value)) {\n result.push(\n key +\n ': [' +\n value.map(\n (item) =>\n this.prepareArguments(item, {\n allowed: allowed.fields[key],\n levelKey: key,\n level: level + 1,\n parent: currentKey + '.',\n schemaArgs,\n usedArgs,\n variables,\n }).argsString\n ) +\n ']'\n );\n continue;\n }\n\n // Prepare additional result string\n let additionalResult = key + ': ';\n\n // Value is a date object\n if (typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]') {\n additionalResult += `\"\"\"${(value as Date).toString()}\"\"\"`;\n }\n\n // Value is a string\n else if (typeof value === 'string') {\n // Enum (doesn't need quotation marks)\n if (allowed.fields[key].isEnum) {\n additionalResult += value;\n }\n\n // String\n else {\n additionalResult += `\"${value.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n')}\"`;\n }\n }\n\n // Value is a simple boolean or a number\n else if (typeof value === 'boolean' || typeof value === 'number') {\n additionalResult += value;\n }\n\n // Others\n else {\n const prepareOptions = {\n allowed: allowed.fields[key],\n levelKey: key,\n level: level + 1,\n parent: currentKey + '.',\n schemaArgs,\n usedArgs,\n variables,\n };\n try {\n additionalResult += this.prepareArguments(value, prepareOptions).argsString;\n } catch (e) {\n console.error('Error during preparing arguments', value, prepareOptions);\n throw e;\n }\n }\n\n // Push deeper part into result array\n result.push(additionalResult);\n }\n\n // Encapsulation of the object result\n if (result.length) {\n // Complete result, encapsulated via round brackets\n if (level === 1) {\n return { argsString: '(' + result.join(', ') + ')', schemaArgs, usedArgs, variables };\n }\n\n // Deeper result part, encapsulated via curly brackets\n else {\n return { argsString: '{' + result.join(', ') + '}', schemaArgs, usedArgs, variables };\n }\n }\n }\n\n // Prepare and process other / unknown values as JSON\n else {\n return { argsString: JSON.stringify(args), schemaArgs, usedArgs, variables };\n }\n }\n\n /**\n * Prepare fields for GraphQL request\n */\n protected prepareFields(\n fields: any,\n options: {\n allowed?: GraphQLType;\n schemaFields?: string[];\n usedFields?: string[];\n parent?: string;\n spaces?: number;\n tab?: number;\n } = {}\n ): { schemaFields: string[]; fieldsString: string; usedFields: string[] } {\n // Config\n const { allowed, parent, schemaFields, spaces, tab, usedFields } = {\n allowed: null,\n parent: '',\n schemaFields: [],\n spaces: 2,\n tab: 1,\n usedFields: [],\n ...options,\n };\n\n // Init fields string\n let fieldsString = '';\n\n // Check fields\n if (!fields) {\n return { fieldsString, schemaFields, usedFields };\n }\n\n // Process string\n if (typeof fields === 'string') {\n if (allowed && !allowed.fields[fields]) {\n return { fieldsString, schemaFields, usedFields };\n }\n return { fieldsString: '\\n' + ' '.repeat(spaces).repeat(tab) + fields, schemaFields, usedFields };\n }\n\n // Process array\n else if (Array.isArray(fields)) {\n for (const item of fields) {\n if (typeof item === 'object') {\n fieldsString =\n fieldsString +\n this.prepareFields(item, {\n allowed, // item is object or array\n parent,\n spaces,\n schemaFields,\n tab: tab + 1,\n usedFields,\n }).fieldsString;\n continue;\n }\n const currentPath = parent + item;\n schemaFields.push(currentPath);\n if (allowed && !allowed.fields[item]) {\n continue;\n }\n usedFields.push(currentPath);\n fieldsString =\n fieldsString +\n this.prepareFields(item, {\n allowed: null, // item is string\n parent: currentPath + '.',\n spaces,\n schemaFields,\n tab: tab + 1,\n usedFields,\n }).fieldsString;\n }\n }\n\n // Process object\n else if (typeof fields === 'object') {\n for (const [key, val] of Object.entries(fields)) {\n const currentPath = parent + key;\n schemaFields.push(currentPath);\n if (allowed && !allowed.fields[key]) {\n continue;\n }\n usedFields.push(currentPath);\n if (typeof val !== 'object' || !Object.keys(val).length) {\n fieldsString = fieldsString + '\\n' + ' '.repeat(spaces).repeat(tab) + key;\n } else {\n fieldsString =\n fieldsString +\n '\\n' +\n ' '.repeat(spaces).repeat(tab) +\n key +\n ' ' +\n '{' +\n this.prepareFields(val, {\n allowed: allowed.fields[key], // val is object or array\n parent: currentPath + '.',\n spaces,\n schemaFields,\n tab: tab + 1,\n usedFields,\n }).fieldsString +\n '\\n' +\n ' '.repeat(spaces).repeat(tab) +\n '}';\n }\n }\n }\n\n // Return result\n return { fieldsString, schemaFields, usedFields };\n }\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Storage service for local data storage\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class StorageService {\n /**\n * Storage\n */\n protected storage: any = null;\n\n /**\n * Prefix for storage keys\n */\n protected prefix = '';\n\n /**\n * Initializations\n */\n constructor(\n @Inject(BASE_MODULE_CONFIG) private moduleConfig: BaseModuleConfig,\n @Inject(PLATFORM_ID) private platformId: object\n ) {\n // Set storage\n const type = moduleConfig.storageType ? moduleConfig.storageType : 'local';\n if (isPlatformBrowser(this.platformId)) {\n if (type === 'session') {\n this.storage = sessionStorage;\n } else {\n if (localStorage) {\n this.storage = localStorage;\n } else {\n this.storage = null;\n }\n }\n }\n\n // Set prefix\n this.prefix = '';\n if (moduleConfig.prefix) {\n this.prefix += moduleConfig.prefix + '_';\n }\n if (moduleConfig.version) {\n this.prefix += moduleConfig.version + '_';\n }\n }\n\n /**\n * Save itemKeys\n *\n * If you want to save one item, use itemKeys and value parameters like these:\n * save('KEY_OF_THE_ITEM', ITEM)\n *\n * If you want to save multiple items, use itemKeys only (value parameter will be ignored):\n * save({'KEY_OF_ITEM_1': ITEM_1, 'KEY_OF_ITEM_2': ITEM_2, ...})\n */\n public save(itemKeys: string | { [key: string]: any }, value?: any): boolean {\n // Check local storage\n if (!this.storage) {\n return false;\n }\n\n // Check item keys and value\n if (\n !itemKeys ||\n (typeof itemKeys === 'object' && !Object.keys(itemKeys).length) ||\n (typeof itemKeys === 'string' && value === undefined)\n ) {\n return false;\n }\n\n if (typeof itemKeys === 'object') {\n for (const [itemKey, itemValue] of Object.entries(itemKeys)) {\n this.storage.setItem(this.prefix + itemKey, JSON.stringify(itemValue));\n }\n return true;\n }\n\n this.storage.setItem(this.prefix + itemKeys, JSON.stringify(value));\n return true;\n }\n\n /**\n * Load items via key(s)\n */\n public load(itemKeys: string | string[]): any {\n // Check local storage\n if (!this.storage) {\n return;\n }\n\n // Check item keys\n if (!itemKeys || (Array.isArray(itemKeys) && !itemKeys.length)) {\n return null;\n }\n\n if (Array.isArray(itemKeys)) {\n const back = {};\n itemKeys.forEach((itemKey) => {\n const loadedItem = this.storage.getItem(this.prefix + itemKey);\n if (loadedItem) {\n back[itemKey] = JSON.parse(loadedItem);\n } else {\n back[itemKey] = null;\n }\n });\n return back;\n }\n\n let value = this.storage.getItem(this.prefix + itemKeys);\n if (value) {\n value = JSON.parse(value);\n }\n\n return value;\n }\n\n /**\n * Remove item from storage\n *\n * @param itemKeys keys or key to remove\n */\n public remove(itemKeys: string | string[]): boolean {\n // Check local storage\n if (!this.storage) {\n return false;\n }\n\n if (Array.isArray(itemKeys)) {\n itemKeys.forEach((key) => {\n this.storage.removeItem(this.prefix + key);\n });\n return true;\n }\n\n this.storage.removeItem(this.prefix + itemKeys);\n return true;\n }\n\n /**\n * Clear local storage\n */\n public reset(): void {\n this.storage.clear();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { RestartableClient } from '../functions/ws-client.function';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WsService {\n client: RestartableClient;\n\n reconnect() {\n this.client?.restart();\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { BasicUser } from '../classes/basic-user.class';\nimport { StorageService } from './storage.service';\nimport { WsService } from './ws.service';\nimport { GraphQLService } from './graphql.service';\nimport { Router } from '@angular/router';\n\n/**\n * Authentication service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n // Subjects\n private _currentUser: BehaviorSubject<BasicUser> = new BehaviorSubject<BasicUser>(null);\n private _token: BehaviorSubject<string> = new BehaviorSubject<string>(null);\n private _refreshToken: BehaviorSubject<string> = new BehaviorSubject<string>(null);\n\n /**\n * Constructor\n */\n constructor(\n private storageService: StorageService,\n private wsService: WsService,\n private injector: Injector,\n private router: Router\n ) {\n this.loadFromStorage();\n }\n\n requestNewToken(): Observable<{ token: string; refreshToken: string }> {\n return new Observable<{ token: string; refreshToken: string }>((subscriber) => {\n this.injector\n .get(GraphQLService)\n .graphQl('refreshToken', {\n fields: ['token', 'refreshToken'],\n })\n .subscribe({\n next: (response) => {\n this.token = response.token;\n this.refreshToken = response.refreshToken;\n subscriber.next(response);\n subscriber.complete();\n },\n error: (err) => {\n subscriber.error(err);\n },\n });\n });\n }\n\n loadFromStorage() {\n if (localStorage) {\n this.token = this.storageService.load('token') as string;\n this.refreshToken = this.storageService.load('refreshToken') as string;\n this.currentUser = this.storageService.load('currentUser') as BasicUser;\n }\n }\n\n /**\n * Logout\n */\n public logout(redirect = true): Observable<boolean> {\n return new Observable((subscriber) => {\n this.injector\n .get(GraphQLService)\n .graphQl('logout', {\n fields: [],\n })\n .subscribe({\n next: () => {\n this.clearSession(redirect);\n subscriber.next(true);\n subscriber.complete();\n },\n error: (err) => {\n subscriber.error(err);\n },\n });\n });\n }\n\n clearSession(redirect = true) {\n this.storageService.remove(['token', 'refreshToken', 'currentUser']);\n this.currentUser = null;\n this.token = null;\n this.refreshToken = null;\n\n if (redirect) {\n this.router.navigate(['/auth']);\n }\n }\n\n // #################################################################\n // Current User\n // #################################################################\n\n get currentUser(): BasicUser {\n if (!localStorage) {\n return undefined;\n }\n\n return this._currentUser.value;\n }\n\n set currentUser(user: BasicUser) {\n this._currentUser.next(user);\n this.storageService.save('currentUser', user);\n }\n\n get currentUserObservable(): Observable<BasicUser> {\n return this._currentUser.asObservable();\n }\n\n // #################################################################\n // Token\n // #################################################################\n\n get token(): string {\n if (!localStorage) {\n return undefined;\n }\n\n return this._token.value;\n }\n\n set token(token: string) {\n this._token.next(token);\n this.storageService.save('token', token);\n this.wsService.reconnect();\n }\n\n get tokenObservable(): Observable<string> {\n if (!this._token.value) {\n this.loadFromStorage();\n }\n\n return this._token.asObservable();\n }\n\n // #################################################################\n // refreshToken\n // #################################################################\n\n get refreshToken(): string {\n if (!localStorage) {\n return undefined;\n }\n\n return this._refreshToken.value;\n }\n\n set refreshToken(refreshToken: string) {\n this._refreshToken.next(refreshToken);\n this.storageService.save('refreshToken', refreshToken);\n }\n\n get refreshTokenObservable(): Observable<string> {\n if (!this._refreshToken.value) {\n this.loadFromStorage();\n }\n\n return this._refreshToken.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * Loader service for loading indication\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoaderService {\n isLoading = new BehaviorSubject<boolean>(false);\n private lastStartTime!: number;\n\n /**\n * Start loading manually\n */\n start() {\n if (!this.isLoading.value) {\n this.isLoading.next(true);\n this.lastStartTime = new Date().getTime();\n }\n }\n\n /**\n * Stop loading manually\n *\n * @param duration\n */\n stop(duration: number = 1800) {\n const diffMs = new Date().getTime() - this.lastStartTime;\n\n if (diffMs >= duration) {\n this.isLoading.next(false);\n return;\n }\n\n setTimeout(() => {\n this.isLoading.next(false);\n }, duration - diffMs);\n }\n\n /**\n * Get loader as observable\n */\n getAsObservable(): Observable<boolean> {\n return this.isLoading.asObservable();\n }\n\n /**\n * Load until observable done\n *\n * @param observable\n * @param duration\n */\n loadUntilObservable(observable: Observable<unknown>, duration: number = 1800): Observable<unknown> {\n return new Observable<unknown>((subscriber) => {\n const startFrom = new Date().getTime();\n this.isLoading.next(true);\n observable.subscribe({\n next: (value) => {\n const diffMs = new Date().getTime() - startFrom;\n if (diffMs >= duration) {\n subscriber.next(value);\n subscriber.complete();\n this.isLoading.next(false);\n return;\n }\n\n setTimeout(() => {\n subscriber.next(value);\n subscriber.complete();\n this.isLoading.next(false);\n }, duration - diffMs);\n },\n error: (error) => subscriber.error(error),\n });\n });\n }\n}\n","import { Apollo } from 'apollo-angular';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GraphQLService } from './graphql.service';\nimport { GraphQLMetaService } from './graphql-meta.service';\nimport { IGraphQLPlusOptions } from '../interfaces/graphql-plus-options.interfacen';\nimport { LoaderService } from './loader.service';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\n\n/**\n * GraphQL plus service, for extra error handling and loading indication\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class GraphQLPlusService extends GraphQLService {\n /**\n * Include services\n */\n constructor(\n protected apollo: Apollo,\n protected graphqlMetaService: GraphQLMetaService,\n protected loaderService: LoaderService,\n @Inject(BASE_MODULE_CONFIG) protected moduleConfig: BaseModuleConfig\n ) {\n super(apollo, graphqlMetaService, moduleConfig);\n }\n\n public graphQl(graphql: string, options: IGraphQLPlusOptions = {}): Observable<any> {\n this.handleLoader('start', options);\n\n return new Observable((subscriber) => {\n super.graphQl(graphql, options).subscribe(\n (response) => {\n if (response && response.errors) {\n this.handleError(response.errors, options.excludedErrors);\n subscriber.error(response);\n this.handleLoader('stop', options);\n subscriber.complete();\n }\n\n subscriber.next(response);\n this.handleLoader('stop', options);\n if (options.type !== GraphQLRequestType.SUBSCRIPTION) {\n subscriber.complete();\n }\n },\n (error) => {\n if (!options.ignoreErrors) {\n this.handleError(error, options.excludedErrors);\n }\n subscriber.error(error);\n this.handleLoader('stop', options);\n subscriber.complete();\n }\n );\n });\n }\n\n handleLoader(state: 'start' | 'stop', options: IGraphQLPlusOptions): void {\n if (options.loading) {\n if (state === 'start') {\n this.loaderService.start();\n } else if (state === 'stop') {\n this.loaderService.stop();\n }\n }\n }\n\n handleError(error: Error, excludedErrors: any = null): void {\n if (excludedErrors) {\n if (Array.isArray(excludedErrors)) {\n excludedErrors.forEach((excludedError) => {\n if (error.message.includes(excludedError.toLowerCase())) {\n return;\n }\n });\n } else if (error.message.toLowerCase().includes(excludedErrors?.toLowerCase())) {\n return;\n }\n }\n\n this.displayError(error);\n }\n\n displayError(error: any): void {\n console.error(error);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Helper } from '../classes/helper.class';\n\n/**\n * Image service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ImageService {\n /**\n * Preaload images (for lazy handling)\n *\n * @param options\n * @protected\n */\n public preLoadImages(options?: {\n doneFunction?: () => Promise<any> | any | void;\n elements?:\n | Element\n | Element[]\n | HTMLCollectionOf<Element>\n | Node\n | NodeList\n | Document\n | HTMLElement\n | HTMLElement[];\n regExp?: RegExp;\n }): Promise<any> {\n // Init configuration\n const config = {\n doneFunnction: undefined,\n elements: document,\n regExp: undefined,\n ...options,\n };\n\n return new Promise((resolve) => {\n // Convert element(s) into array\n if (!Array.isArray(config.elements)) {\n // NodeList or HTMLCollection\n if (Helper.isNodeList(config.elements)) {\n config.elements = Array.from(config.elements as HTMLCollection | NodeList) as Element[];\n }\n\n // Single element\n else {\n config.elements = [config.elements] as Element[];\n }\n }\n\n // Init loading\n const promises = [];\n\n // Get all images\n let images: HTMLImageElement[] = [];\n config.elements.forEach((element) => {\n images = images.concat(Array.from(element.getElementsByTagName('img')));\n });\n\n // Prepare images\n for (let image of images) {\n const src = image.getAttribute('src');\n\n // Check if changes are necessary and possible\n if (\n (image.complete && image.naturalHeight !== 0) || // already laoded\n !src || // Image has no src\n config.regExp?.test(src) // Test if src matches regular expression\n ) {\n continue;\n }\n\n // Replace lazy loading image with immediately loading image\n if (image.getAttribute('loading') === 'lazy') {\n const newImage = document.createElement('img');\n Array.from(image.attributes).forEach((attr) => {\n if (attr.name !== 'loading' && attr.name !== 'src') {\n newImage.setAttribute(attr.name, attr.value);\n }\n });\n image.replaceWith(newImage);\n image = newImage;\n }\n\n // Wait for laoding\n promises.push(this.loadImage(image, src));\n }\n\n // Wait until all images loaded\n Promise.all(promises)\n .catch((e) => console.error('Error during image loading', e))\n .finally(async () => {\n // Return result\n let result;\n if (config.doneFunnction) {\n result = await config.doneFunction();\n }\n resolve(result);\n });\n });\n }\n\n /**\n * Load image for image element\n *\n * @param imageElement\n * @param src\n * @protected\n */\n public async loadImage(imageElement: HTMLImageElement, src?: string) {\n src = src || imageElement.src;\n return new Promise((resolve, reject) => {\n imageElement.onload = () => resolve(imageElement);\n imageElement.onerror = reject;\n imageElement.src = src;\n });\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\nimport { ImageService } from './image.service';\n\n/**\n * Scroll service for autoscroll to specific fragments\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ScrollService {\n /**\n * Current scroll promise\n *\n * @protected\n */\n protected scrollPromise: Promise<void>;\n\n /**\n * Resolve function of current scroll promise\n *\n * @protected\n */\n protected scrollPromiseResolve: (value: void | PromiseLike<void>) => void;\n\n /**\n * Is a scroll listener set\n *\n * @protected\n */\n protected scrollListener = false;\n\n /**\n * Current scroll timer;\n *\n * @protected\n */\n protected scrollTimer = -1;\n\n /**\n * Scroll offset\n */\n protected readonly scrollOffset: number;\n\n /**\n * Detection offset\n * Should be >= scrollOffset\n */\n protected readonly detectionOffset: number;\n\n /**\n * Sampling rate for scroll done detection\n */\n protected readonly scrollSamplingRate: number;\n\n /**\n * Initializer\n */\n constructor(\n protected router: Router,\n @Inject(BASE_MODULE_CONFIG) protected moduleConfig: BaseModuleConfig,\n protected imageService: ImageService\n ) {\n const config = {\n scrollDetectionOffset: 200,\n scrollOffset: 100,\n scrollSamplingRate: 100,\n ...moduleConfig,\n };\n\n this.detectionOffset = config.scrollDetectionOffset;\n this.scrollOffset = config.scrollOffset;\n this.scrollSamplingRate = config.scrollSamplingRate;\n }\n\n /**\n * Scroll to structureElement with specific ID\n */\n async scrollTo(\n id: string,\n options: {\n checkUrl?: boolean;\n loadImagesBefore?: boolean;\n resetStyles?: boolean;\n setOverflow?: boolean;\n stopPropagation?: boolean;\n } = {}\n ) {\n // Prepare config\n const config = {\n checkUrl: false,\n loadImagesBefore: true,\n resetStyles: false,\n setOverflow: true,\n stopPropagation: true,\n ...options,\n };\n\n // Check current URL\n if (config.checkUrl && this.router.url !== '/' && !this.router.url.startsWith('/#')) {\n await this.router.navigate(['/'], { fragment: id });\n return !config.stopPropagation;\n }\n\n // Check if target element exits\n const el = document.getElementById(id);\n if (!el) {\n console.error('Missing scroll element with ID:', id);\n return !config.stopPropagation;\n }\n\n // Check if body overflow is visible\n // This is necessary for scroll handling\n const body = document.querySelector('body');\n let undoOverflowChanges = false;\n const scrollBodyStyles = JSON.parse(JSON.stringify(window.getComputedStyle(body)));\n if (config.setOverflow && (scrollBodyStyles.overflowX !== 'visible' || scrollBodyStyles.overflowY !== 'visible')) {\n // Set body overflow to visible\n console.warn('Style of body element for overflowX and overflowY will be set to \"visible\" for scrolling!');\n body.style.overflowX = 'visible';\n body.style.overflowY = 'visible';\n undoOverflowChanges = true;\n }\n\n // Load images before scrolling (once)\n if (config.loadImagesBefore) {\n await this.imageService.preLoadImages();\n }\n\n // Get get bounding rect of target element\n const cords = el.getBoundingClientRect();\n\n // Scroll to element\n window.scrollBy({ top: cords.top - this.scrollOffset, behavior: 'smooth' });\n await this.scrollDone({\n doneFunction: () => {\n // Undo changes\n if (undoOverflowChanges && config.resetStyles) {\n body.style.overflowX = scrollBodyStyles.overflowX;\n body.style.overflowY = scrollBodyStyles.overflowY;\n console.warn('Original style of body element for overflowX and overflowY is set.');\n }\n },\n });\n\n // Return stop propagation configuration\n return !config.stopPropagation;\n }\n\n /**\n * Get last active structureElement\n */\n getLastActiveElement(list?): string {\n const currentScrollPosition = window.scrollY;\n const elementsWithId = document.querySelectorAll('[id]');\n let lastId = null;\n let lastPosition = 0 - this.detectionOffset - 1;\n elementsWithId.forEach((element) => {\n const cords = element.getBoundingClientRect();\n const top = cords.top + window.pageYOffset - this.detectionOffset;\n if (\n (!list || !list.length || list.includes(element.id)) && // In list\n top < currentScrollPosition && // In active area\n lastPosition < top // Higher than the last one\n ) {\n lastId = element.id;\n lastPosition = top;\n }\n });\n return lastId;\n }\n\n /**\n * Check if ID is active\n */\n isActive(id, list?, isFirst?) {\n const lastActiveElement = this.getLastActiveElement(list);\n return id === lastActiveElement || (lastActiveElement === null && isFirst);\n }\n\n /**\n * Scroll done promise\n */\n public async scrollDone(options: { doneFunction?: () => any | void } = {}): Promise<any> {\n // Init configuration\n const config = {\n doneFunction: undefined,\n ...options,\n };\n\n // Wait for scroll done\n await this.scrollDoneDetection();\n\n // Get result\n if (config.doneFunction) {\n return config.doneFunction();\n }\n }\n\n /**\n * Scroll done detecton\n *\n * @protected\n */\n protected scrollDoneDetection(): Promise<void> {\n // Return current scroll promise (Singelton)\n if (this.scrollPromise) {\n return this.scrollPromise;\n }\n\n // Create current scroll promise\n this.scrollPromise = new Promise((resolve) => {\n this.scrollPromiseResolve = resolve;\n if (this.scrollTimer !== -1) {\n window.clearTimeout(this.scrollTimer);\n }\n this.scrollTimer = window.setTimeout(() => {\n window.removeEventListener('scroll', this.scrollDoneDetection.bind(this));\n this.scrollPromise = undefined;\n resolve();\n }, this.scrollSamplingRate);\n });\n\n // Lisitening to scroll event;\n window.addEventListener('scroll', this.scrollDoneDetection.bind(this));\n\n // Return promise\n return this.scrollPromise;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { DOCUMENT } from '@angular/common';\nimport { ScrollService } from './scroll.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormsService {\n constructor(@Inject(DOCUMENT) private document: Document, private scrollService: ScrollService) {}\n\n public validateAllFormFields(formGroup: any) {\n Object.keys(formGroup.controls).forEach((field) => {\n const control = formGroup.get(field);\n if (control instanceof UntypedFormControl) {\n control.markAsTouched({ onlySelf: true });\n } else if (control instanceof UntypedFormGroup) {\n this.validateAllFormFields(control);\n }\n });\n }\n\n public findInvalidControls(formGroup: UntypedFormGroup): string[] {\n return this.getInvalidControl(formGroup);\n }\n\n private getInvalidControl(formGroup: UntypedFormGroup, invalid?, parents: any = []) {\n let result = invalid ? [...invalid] : [];\n let nestedParents = [...[], ...parents];\n\n const controls = formGroup.controls;\n Object.keys(formGroup.controls).forEach((name) => {\n if (controls[name].invalid) {\n if ((controls[name] as any)?.controls) {\n nestedParents.push(name);\n result = this.getInvalidControl(controls[name] as any, result, nestedParents);\n nestedParents = [];\n } else {\n result.push(nestedParents.length ? nestedParents.join('.') + '.' + name : name);\n }\n }\n });\n\n return result;\n }\n\n public scrollToInvalidControl(form: any) {\n const invalidForm: string = this.findInvalidControls(form)[0];\n this.scrollService.scrollTo(invalidForm);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Apollo } from 'apollo-angular';\nimport { map } from 'rxjs';\nimport { Auth } from '../classes/auth.class';\nimport { BasicUser } from '../classes/basic-user.class';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\nimport { AuthService } from './auth.service';\nimport { GraphQLMetaService } from './graphql-meta.service';\nimport { GraphQLPlusService } from './graphql-plus.service';\nimport { LoaderService } from './loader.service';\nimport { BASE_MODULE_CONFIG, BaseModuleConfig } from '../interfaces/base-module-config.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService extends GraphQLPlusService {\n constructor(\n protected apollo: Apollo,\n protected graphqlMetaService: GraphQLMetaService,\n protected loaderService: LoaderService,\n protected authService: AuthService,\n @Inject(BASE_MODULE_CONFIG) protected moduleConfig: BaseModuleConfig\n ) {\n super(apollo, graphqlMetaService, loaderService, moduleConfig);\n }\n\n /**\n * Login\n *\n * @param input\n */\n login(input: { email: string; password: string }) {\n return this.graphQl('signIn', {\n arguments: { input: { ...input, deviceDescription: navigator?.userAgent } },\n fields: ['refreshToken', 'token', { user: ['id', 'firstName', 'lastName', 'email', 'roles', 'avatar'] }],\n loading: true,\n }).pipe(\n map((response: Auth) => {\n this.authService.token = response.token;\n this.authService.refreshToken = response.refreshToken;\n this.authService.currentUser = response.user;\n\n return Auth.map({\n token: response.token,\n refreshToken: response.refreshToken,\n user: BasicUser.map(response.user),\n });\n })\n );\n }\n\n /**\n * Register\n *\n * @param input\n */\n register(input: { firstName: string; lastName: string; email: string; password: string }) {\n return this.graphQl('signUp', {\n arguments: { input: { ...input, deviceDescription: navigator?.userAgent } },\n fields: ['refreshToken', 'token', { user: ['id', 'firstName', 'lastName', 'email', 'roles', 'avatar'] }],\n loading: true,\n }).pipe(\n map((response: Auth) => {\n this.authService.token = response.token;\n this.authService.refreshToken = response.refreshToken;\n this.authService.currentUser = response.user;\n\n return Auth.map({\n token: response.token,\n refreshToken: response.refreshToken,\n user: BasicUser.map(response.user),\n });\n })\n );\n }\n\n /**\n * This function will make a GraphQL query to the server, and return the result\n *\n * @param id - The id of the user you want to get\n * @returns A GraphQLRequest object.\n */\n get(id: string) {\n return this.graphQl('getUser', {\n arguments: { id },\n fields: ['id', 'firstName', 'lastName', 'email', 'roles', 'avatar'],\n type: GraphQLRequestType.QUERY,\n loading: true,\n });\n }\n\n /**\n * Request password reset mail\n *\n * @param email\n */\n requestPasswordResetMail(email: string) {\n return this.graphQl('requestPasswordResetMail', {\n arguments: { email },\n fields: [],\n type: GraphQLRequestType.QUERY,\n loading: true,\n });\n }\n\n /**\n * Change password of current user\n *\n * @param id\n * @param password\n */\n changePassword(id: string, password: string) {\n return this.graphQl('updateUser', {\n arguments: { id, input: { password } },\n fields: ['id'],\n type: GraphQLRequestType.MUTATION,\n loading: true,\n });\n }\n\n /**\n * Set new password by token\n *\n * @param token\n * @param password\n */\n resetPassword(token: string, password: string) {\n return this.graphQl('resetPassword', {\n arguments: { token, password },\n type: GraphQLRequestType.MUTATION,\n loading: true,\n });\n }\n\n /**\n * Delete user by id\n *\n * @param id\n */\n delete(id: string) {\n return this.graphQl('deleteUser', {\n arguments: { id },\n fields: ['id'],\n type: GraphQLRequestType.MUTATION,\n loading: true,\n });\n }\n\n /**\n * Verify user by token\n *\n * @param token\n */\n verifyUser(token: string) {\n return this.graphQl('verifyUser', {\n arguments: { token },\n type: GraphQLRequestType.MUTATION,\n loading: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Toast } from '../interfaces/toast.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n private toastsObservables = new BehaviorSubject<Toast[]>([]);\n\n get toastsAsObservable() {\n return this.toastsObservables.asObservable();\n }\n\n /**\n * Show new toast\n *\n * @param toast\n * @param duration\n */\n show(toast: Toast, duration = 2300) {\n const value = this.toastsObservables.value;\n value.push(toast);\n this.toastsObservables.next(value);\n\n if (duration) {\n setTimeout(() => {\n const currentToasts = this.toastsObservables.value;\n const foundIndex = currentToasts.findIndex((e) => e.id === toast.id);\n\n if (foundIndex > -1) {\n currentToasts.splice(foundIndex, 1);\n this.toastsObservables.next(currentToasts);\n }\n }, duration);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, filter } from 'rxjs';\nimport { ActivatedRouteSnapshot, Data, NavigationEnd, Router } from '@angular/router';\nimport { Breadcrumb } from '../interfaces/breadcrumb.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService {\n private readonly _breadcrumbs = new BehaviorSubject<Breadcrumb[]>([]);\n\n set breadcrumbs(value: Breadcrumb[]) {\n this._breadcrumbs.next(value);\n }\n\n get breadcrumbsObservable() {\n return this._breadcrumbs.asObservable();\n }\n\n constructor(private router: Router) {\n this.subscribeToRouteChanges();\n }\n\n /**\n * Subscribe to route changes and add element to breadcrumb\n */\n subscribeToRouteChanges() {\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((event) => {\n const root = this.router.routerState.snapshot.root;\n const breadcrumbs: Breadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n this.breadcrumbs = breadcrumbs;\n });\n }\n\n /**\n * Add element to breadcrumb\n *\n * @param route\n * @param parentUrl\n * @param breadcrumbs\n * @private\n */\n private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\n if (route) {\n const routeUrl = parentUrl.concat(route.url.map((url) => url.path));\n\n if (route.data?.breadcrumb) {\n const breadcrumb = {\n label: this.getLabel(route.data),\n url: '/' + routeUrl.join('/'),\n };\n breadcrumbs.push(breadcrumb);\n }\n\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n }\n\n /**\n * Get label for breadcrumb\n *\n * @param data\n * @private\n */\n private getLabel(data: Data) {\n return typeof data.breadcrumb === 'function' ? data.breadcrumb(data) : data.breadcrumb;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router, NavigationEnd } from '@angular/router';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n private history: string[] = [];\n\n constructor(private router: Router, private location: Location) {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n\n /**\n * If the history stack is empty, navigate to the home page, otherwise go back to the previous page\n */\n back(): void {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n } else {\n this.router.navigateByUrl('/');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { GraphQLRequestType } from '../enums/graphql-request-type.enum';\nimport { GraphQLService } from './graphql.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CmsService {\n constructor(private graphQLService: GraphQLService) {}\n /**\n * It calls the graphQLService to delete the object with the id of the object that is currently being edited\n */\n deleteObject(id: string, modelName: string) {\n return new Promise((resolve, reject) => {\n if (confirm('Möchtest du das Objekt wirklich löschen?')) {\n this.graphQLService\n .graphQl('delete' + this.capitalizeFirstLetter(modelName), {\n arguments: { id },\n fields: ['id'],\n type: GraphQLRequestType.MUTATION,\n })\n .subscribe({\n next: (value) => {\n resolve(value);\n },\n error: (err) => {\n reject(err);\n console.error('Error on delete object', err);\n },\n });\n }\n });\n }\n\n /**\n * It sends a GraphQL mutation to the server to duplicate the object\n */\n async duplicateObject(id: string, modelName: string): Promise<any> {\n return new Promise((resolve, reject) => {\n if (confirm('Möchtest du das Objekt wirklich duplizieren?')) {\n this.graphQLService\n .graphQl('duplicate' + this.capitalizeFirstLetter(modelName), {\n arguments: { id },\n fields: ['id'],\n type: GraphQLRequestType.MUTATION,\n })\n .subscribe({\n next: (value) => {\n resolve(value);\n },\n error: (err) => {\n reject(err);\n console.error('Error on duplicate object', err);\n },\n });\n }\n });\n }\n\n /**\n * It takes a string, capitalizes the first letter, and returns the modified string\n *\n * @param value - The string to capitalize.\n * @returns The first letter of the string is being capitalized and the rest of the string is being returned.\n */\n capitalizeFirstLetter(value: string) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n }\n\n /**\n * Transform first letter to lowercase\n */\n lowerCaseFirstLetter(value: string) {\n return value.charAt(0).toLowerCase() + value.slice(1);\n }\n}\n","import { Injectable } from '@angular/core';\nimport Compressor from 'compressorjs';\nimport { CompressOptions } from '../interfaces/compress-options.interface';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FileService {\n constructor(private authService: AuthService, private httpClient: HttpClient) {}\n\n /**\n * Compress file with options and return file\n */\n compress(file: File, options?: CompressOptions): Promise<File> {\n const config = {\n quality: 0.6,\n checkOrientation: false,\n ...options,\n };\n\n return new Promise((resolve, reject) => {\n new Compressor(file, {\n success(result: Blob | File) {\n // Check if result is blob for convert to file\n if (result instanceof Blob) {\n resolve(new File([result], (result as any).name));\n } else {\n resolve(result);\n }\n },\n error(err) {\n reject(err.message);\n },\n ...config,\n });\n });\n }\n\n /**\n * Upload file to server\n */\n async upload(url: string, path: string, file: File, compressOptions?: CompressOptions): Promise<{ id: string }> {\n return new Promise(async (resolve, reject) => {\n if (compressOptions) {\n file = await this.compress(file, compressOptions);\n }\n\n const data = new FormData();\n data.append('file', file);\n\n const httpOptions = {\n headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.authService.token,\n }),\n };\n\n this.httpClient.post(url + path, data, httpOptions).subscribe(\n (result: any) => {\n resolve(result);\n },\n (err) => {\n reject(err);\n }\n );\n });\n }\n\n delete(url: string, path: string, id: string) {\n return new Promise(async (resolve, reject) => {\n const httpOptions = {\n headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.authService.token,\n }),\n };\n\n this.httpClient.delete(url + path + id, httpOptions).subscribe(\n (result) => {\n resolve(result);\n },\n (err) => {\n reject(err);\n }\n );\n });\n }\n}\n","/**\n * Comparison operator enum\n */\nexport enum ComparisonOperatorEnum {\n EQ = 'EQ',\n GT = 'GT',\n GTE = 'GTE',\n IN = 'IN',\n LT = 'LT',\n LTE = 'LTE',\n NE = 'NE',\n NIN = 'NIN',\n REGEX = 'REGEX',\n}\n","/**\n * Logical operator enum\n */\nexport enum LogicalOperatorEnum {\n AND = 'AND',\n NOR = 'NOR',\n OR = 'OR',\n}\n","export enum SortOrderEnum {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n","export enum ToastType {\n ERROR = 'error',\n WARNING = 'warning',\n INFO = 'info',\n SUCCESS = 'success',\n}\n","export enum SkeletonType {\n LINE = 'LINE',\n RECTANGLE = 'RECTANGLE',\n AVATAR = 'AVATAR',\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport class Validation {\n static match(controlName: string, checkControlName: string): ValidatorFn {\n return (controls: AbstractControl) => {\n const control = controls.get(controlName);\n const checkControl = controls.get(checkControlName);\n\n if (checkControl?.errors && !checkControl.errors?.matching) {\n return null;\n }\n\n if (control?.value !== checkControl?.value) {\n controls.get(checkControlName)?.setErrors({ matching: true });\n return { matching: true };\n } else {\n if (controls.get(checkControlName)?.errors && controls.get(checkControlName)?.errors['matching']) {\n delete controls.get(checkControlName)?.errors['matching'];\n }\n\n return null;\n }\n };\n }\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function fullEmail(): any {\n return (control: AbstractControl) => {\n const EMAIL_REGEXP =\n /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\n return !EMAIL_REGEXP.test(control.value) ? { invalidEmail: true } : null;\n };\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function securePasswordValidator(): any {\n return (control: AbstractControl) => {\n const PASSWORD_REGEX = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9]).{8,}$/i;\n return !PASSWORD_REGEX.test(control.value) ? { invalidSecurePassword: true } : null;\n };\n}\n","import { createClient, Client, ClientOptions } from 'graphql-ws';\n\nexport interface RestartableClient extends Client {\n restart(): void;\n}\n\nexport function createRestartableClient(options: ClientOptions): RestartableClient {\n let restartRequested = false;\n let restart = () => {\n restartRequested = true;\n };\n\n const { on = undefined } = options;\n\n const client = createClient({\n ...options,\n on: {\n ...on,\n connected: (socket: any) => {\n // @ts-ignore\n on?.connected?.(socket);\n\n restart = () => {\n if (socket.readyState === WebSocket.OPEN) {\n // if the socket is still open for the restart, do the restart\n socket.close(4205, 'Client Restart');\n } else {\n // otherwise the socket might've closed, indicate that you want\n // a restart on the next connected event\n restartRequested = true;\n }\n };\n\n // just in case you were eager to restart\n if (restartRequested) {\n restartRequested = false;\n restart();\n }\n },\n },\n });\n\n return {\n ...client,\n restart: () => restart(),\n };\n}\n","/**\n * Exports for public API\n */\n\n// Classes\nexport * from './classes/basic-user.class';\nexport * from './classes/graphql-enum.class';\nexport * from './classes/graphql-meta.class';\nexport * from './classes/graphql-type.class';\nexport * from './classes/helper.class';\nexport * from './classes/standard.class';\nexport * from './classes/auth.class';\nexport * from './classes/sort.class';\n\n// Decorators\nexport * from './decorators/debounce.decorator';\n\n// Services\nexport * from './services/auth.service';\nexport * from './services/graphql.service';\nexport * from './services/graphql-meta.service';\nexport * from './services/graphql-plus.service';\nexport * from './services/forms.service';\nexport * from './services/storage.service';\nexport * from './services/ws.service';\nexport * from './services/user.service';\nexport * from './services/loader.service';\nexport * from './services/scroll.service';\nexport * from './services/image.service';\nexport * from './services/toast.service';\nexport * from './services/breadcrumb.service';\nexport * from './services/navigation.service';\nexport * from './services/cms.service';\nexport * from './services/file.service';\n\n// Enums\nexport * from './enums/comparison-operator.enum';\nexport * from './enums/graphql-request-type.enum';\nexport * from './enums/logical-operator.enum';\nexport * from './enums/sort-order.enum';\nexport * from './enums/toast-type.enum';\nexport * from './enums/skeleton-type.enum';\n\n// Interfaces\nexport * from './interfaces/base-module-config.interface';\nexport * from './interfaces/can-component-deactivate.interface';\nexport * from './interfaces/combined-filter-input.interface';\nexport * from './interfaces/field.interface';\nexport * from './interfaces/field-object.interface';\nexport * from './interfaces/filter-input.interface';\nexport * from './interfaces/graphql-options.interface';\nexport * from './interfaces/graphql-plus-options.interfacen';\nexport * from './interfaces/graphql-type-collection.interface';\nexport * from './interfaces/graphql-fields-object.interface';\nexport * from './interfaces/single-filter-input.interface';\nexport * from './interfaces/sort-input.interface';\nexport * from './interfaces/find-args.interface';\nexport * from './interfaces/time-components.interface';\nexport * from './interfaces/toast.interface';\nexport * from './interfaces/breadcrumb.interface';\nexport * from './interfaces/graphql-crud-type.interface';\nexport * from './interfaces/compress-options.interface';\nexport * from './interfaces/cropping-options.interface';\nexport * from './interfaces/cms-enum-values.interface';\nexport * from './interfaces/cms-field-config.interface';\nexport * from './interfaces/cms-model-config.interface';\nexport * from './interfaces/cms-table-field.interface';\nexport * from './interfaces/login-config.interface';\nexport * from './interfaces/register-config.interface';\n\n// Types\nexport * from './types/storage.type';\nexport * from './types/graphql-fields.type';\n\n// Validators\nexport * from './validators/match.validator';\nexport * from './validators/email.validator';\nexport * from './validators/secure-password.validator';\n\n// Functions\nexport * from './functions/ws-client.function';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StorageService","i2.WsService","i3","i2.ImageService","i1.ScrollService","map","i1","i1.GraphQLService","i1.AuthService","i2"],"mappings":"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"}
package/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@lenne.tech/ng-base" />
5
- export * from './public-api';
package/public-api.d.ts DELETED
@@ -1,17 +0,0 @@
1
- /**
2
- * Exports for public API
3
- */
4
- export * from './src/base.module';
5
- export * from './src/decorators/auto-unsubscribe.decorator';
6
- export * from './src/directives/lazy-load.directive';
7
- export * from './src/directives/match-height.directive';
8
- export * from './src/directives/resizable.directive';
9
- export * from './src/factories/apollo-options.factory';
10
- export * from './src/guards/auth.guard';
11
- export * from './src/guards/can-deactivate.guard';
12
- export * from './src/guards/logout.guard';
13
- export * from './src/pipes/safe-html.pipe';
14
- export * from './src/pipes/date-ago.pipe';
15
- export * from './src/services/fullscreen.service';
16
- export * from './src/services/seo.service';
17
- export * from './src/services/theme.service';
@@ -1,10 +0,0 @@
1
- import { BasicUser } from './basic-user.class';
2
- import { Standard } from './standard.class';
3
- export declare class Auth extends Standard {
4
- refreshToken: string;
5
- token: string;
6
- user: BasicUser;
7
- map(data: Partial<this> | {
8
- [key: string]: any;
9
- }): this;
10
- }
@@ -1,27 +0,0 @@
1
- import { Standard } from './standard.class';
2
- /**
3
- * User class
4
- */
5
- export declare class BasicUser extends Standard {
6
- id: string;
7
- email: string;
8
- avatar?: string;
9
- firstName: string;
10
- lastName: string;
11
- roles: string[];
12
- username: string;
13
- /**
14
- * Mapping
15
- */
16
- map(data: Partial<this> | {
17
- [key: string]: any;
18
- }): this;
19
- /**
20
- * Checks whether the user has at least one of the required roles
21
- */
22
- hasRole(roles: string | string[]): boolean;
23
- /**
24
- * Checks whether the user has all required roles
25
- */
26
- hasAllRoles(roles: string | string[]): boolean;
27
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * GraphQL enum
3
- */
4
- export declare class GraphQLEnum {
5
- value: string;
6
- constructor(value: any);
7
- }
@@ -1,66 +0,0 @@
1
- import { GraphQLNamedType, GraphQLSchema } from 'graphql';
2
- import { GraphQLRequestType } from '../enums/graphql-request-type.enum';
3
- import { GraphQLType } from './graphql-type.class';
4
- import { GraphqlCrudType } from '../interfaces/graphql-crud-type.interface';
5
- /**
6
- * GraphQL meta
7
- */
8
- export declare class GraphQLMeta {
9
- protected schema: GraphQLSchema;
10
- protected args: Record<string, any>;
11
- protected fields: Record<string, any>;
12
- /**
13
- * Integrate schema
14
- */
15
- constructor(schema: GraphQLSchema);
16
- /**
17
- * Get an object with GraphQLRequestType (operation type) as keys and method (fields) names as value
18
- */
19
- getMethodNames(): Record<string, string[]>;
20
- /**
21
- * Get GraphQLRequestTypes (operation types) via method (field) name
22
- */
23
- getRequestTypesViaMethod(methodName: string): string[];
24
- /**
25
- * We're going to get the query and mutation types from the schema, then we're going to loop through the fields of each
26
- * type and check if the field name starts with `find`, `create`, `update`, or `delete`. If it does, we're going to add
27
- * the model name to the `possibleTypes` array
28
- *
29
- * @returns An array of objects with the name of the model, and the CRUD operations that are available for that model.
30
- */
31
- getTypes(logging?: boolean): GraphqlCrudType[];
32
- /**
33
- * Get arguments of GraphQL function
34
- */
35
- getArgs(functionName: string, options?: {
36
- cache?: boolean;
37
- freeze?: boolean;
38
- type?: GraphQLRequestType;
39
- }): GraphQLType;
40
- /**
41
- * Get fields of GraphQL function
42
- */
43
- getFields(functionName: string, options?: {
44
- cache?: boolean;
45
- freeze?: boolean;
46
- type?: GraphQLRequestType;
47
- }): GraphQLType;
48
- /**
49
- * Get GraphQL function
50
- */
51
- protected getFunction(name: string, options?: {
52
- type?: GraphQLRequestType;
53
- }): Record<string, any>;
54
- /**
55
- * Get type
56
- */
57
- protected getType(name: string): GraphQLNamedType | null | undefined;
58
- /**
59
- * Get (deep) type name
60
- */
61
- protected getTypeName(type: any): any;
62
- /**
63
- * Get deep type data
64
- */
65
- protected getDeepType(type: any, prepared?: Record<string, any>, setMetaData?: boolean): GraphQLType;
66
- }
@@ -1,13 +0,0 @@
1
- import { Standard } from './standard.class';
2
- /**
3
- * GraphQL type
4
- */
5
- export declare class GraphQLType extends Standard {
6
- type: string;
7
- fields: Record<string, GraphQLType>;
8
- isRequired: boolean;
9
- isItemRequired: boolean;
10
- isList: boolean;
11
- isEnum: boolean;
12
- validEnums: string[];
13
- }