@sumaris-net/ngx-components 18.11.0 → 18.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1383) hide show
  1. package/.editorconfig +24 -0
  2. package/.eslintrc.json +95 -0
  3. package/.gitattribute +1 -0
  4. package/.github/CONTRIBUTING.md +10 -0
  5. package/.github/ISSUE_TEMPLATE.md +6 -0
  6. package/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  7. package/.github/github_disclaimer.md +14 -0
  8. package/.gitlab-ci.yml +46 -0
  9. package/.graphqlconfig +15 -0
  10. package/.prettierignore +9 -0
  11. package/.prettierrc.json +17 -0
  12. package/angular.json +236 -0
  13. package/capacitor.config.ts +49 -0
  14. package/doc/changelog.md +4 -0
  15. package/graphql.config.yml +13 -0
  16. package/ionic.config.json +7 -0
  17. package/karma.conf.js +38 -0
  18. package/ng-package.json +21 -0
  19. package/ngcc.config.js +9 -0
  20. package/package.json +132 -19
  21. package/public_api.ts +426 -0
  22. package/resources/README.md +7 -0
  23. package/resources/icon/TODO.md +11 -0
  24. package/resources/icon.png +0 -0
  25. package/resources/icon.png.md5 +1 -0
  26. package/resources/icon.xcf +0 -0
  27. package/resources/ios/icon/icon-1024.png +0 -0
  28. package/resources/ios/icon/icon-108@2x.png +0 -0
  29. package/resources/ios/icon/icon-20.png +0 -0
  30. package/resources/ios/icon/icon-20@2x.png +0 -0
  31. package/resources/ios/icon/icon-20@3x.png +0 -0
  32. package/resources/ios/icon/icon-24@2x.png +0 -0
  33. package/resources/ios/icon/icon-27.5@2x.png +0 -0
  34. package/resources/ios/icon/icon-29.png +0 -0
  35. package/resources/ios/icon/icon-29@2x.png +0 -0
  36. package/resources/ios/icon/icon-29@3x.png +0 -0
  37. package/resources/ios/icon/icon-40.png +0 -0
  38. package/resources/ios/icon/icon-40@2x.png +0 -0
  39. package/resources/ios/icon/icon-40@3x.png +0 -0
  40. package/resources/ios/icon/icon-44@2x.png +0 -0
  41. package/resources/ios/icon/icon-50.png +0 -0
  42. package/resources/ios/icon/icon-50@2x.png +0 -0
  43. package/resources/ios/icon/icon-60.png +0 -0
  44. package/resources/ios/icon/icon-60@2x.png +0 -0
  45. package/resources/ios/icon/icon-60@3x.png +0 -0
  46. package/resources/ios/icon/icon-72.png +0 -0
  47. package/resources/ios/icon/icon-72@2x.png +0 -0
  48. package/resources/ios/icon/icon-76.png +0 -0
  49. package/resources/ios/icon/icon-76@2x.png +0 -0
  50. package/resources/ios/icon/icon-83.5@2x.png +0 -0
  51. package/resources/ios/icon/icon-86@2x.png +0 -0
  52. package/resources/ios/icon/icon-98@2x.png +0 -0
  53. package/resources/ios/icon/icon-small.png +0 -0
  54. package/resources/ios/icon/icon-small@2x.png +0 -0
  55. package/resources/ios/icon/icon-small@3x.png +0 -0
  56. package/resources/ios/icon/icon.png +0 -0
  57. package/resources/ios/icon/icon@2x.png +0 -0
  58. package/resources/ios/splash/Default-1792h~iphone.png +0 -0
  59. package/resources/ios/splash/Default-2436h.png +0 -0
  60. package/resources/ios/splash/Default-2688h~iphone.png +0 -0
  61. package/resources/ios/splash/Default-568h@2x~iphone.png +0 -0
  62. package/resources/ios/splash/Default-667h.png +0 -0
  63. package/resources/ios/splash/Default-736h.png +0 -0
  64. package/resources/ios/splash/Default-Landscape-1792h~iphone.png +0 -0
  65. package/resources/ios/splash/Default-Landscape-2436h.png +0 -0
  66. package/resources/ios/splash/Default-Landscape-2688h~iphone.png +0 -0
  67. package/resources/ios/splash/Default-Landscape-736h.png +0 -0
  68. package/resources/ios/splash/Default-Landscape@2x~ipad.png +0 -0
  69. package/resources/ios/splash/Default-Landscape@~ipadpro.png +0 -0
  70. package/resources/ios/splash/Default-Landscape~ipad.png +0 -0
  71. package/resources/ios/splash/Default-Portrait@2x~ipad.png +0 -0
  72. package/resources/ios/splash/Default-Portrait@~ipadpro.png +0 -0
  73. package/resources/ios/splash/Default-Portrait~ipad.png +0 -0
  74. package/resources/ios/splash/Default@2x~iphone.png +0 -0
  75. package/resources/ios/splash/Default@2x~universal~anyany.png +0 -0
  76. package/resources/ios/splash/Default~iphone.png +0 -0
  77. package/resources/splash.png +0 -0
  78. package/resources/splash.png.md5 +1 -0
  79. package/scripts/build-android.sh +18 -0
  80. package/scripts/docker-start.sh +6 -0
  81. package/scripts/emulate-android.sh +17 -0
  82. package/scripts/env-android.sh +83 -0
  83. package/scripts/env-clean.sh +23 -0
  84. package/scripts/env-global.sh +154 -0
  85. package/scripts/install-android-sdk-tools.sh +73 -0
  86. package/scripts/ionic-update.sh +24 -0
  87. package/scripts/node/build-i18n.js +37 -0
  88. package/scripts/node/playground.ts +9 -0
  89. package/scripts/node/resources.js +108 -0
  90. package/scripts/release.sh +162 -0
  91. package/scripts/run-android.sh +59 -0
  92. package/scripts/test.sh +19 -0
  93. package/src/app/admin/admin-routing.module.ts +26 -0
  94. package/src/app/admin/admin.module.ts +20 -0
  95. package/src/app/admin/services/filter/person.filter.ts +86 -0
  96. package/src/app/admin/services/person.service.ts +244 -0
  97. package/src/app/admin/services/validator/person.validator.ts +86 -0
  98. package/src/app/admin/users/users.html +613 -0
  99. package/src/app/admin/users/users.module.ts +32 -0
  100. package/src/app/admin/users/users.scss +80 -0
  101. package/src/app/admin/users/users.ts +387 -0
  102. package/src/app/app-routing.module.ts +165 -0
  103. package/src/app/app.component.html +14 -0
  104. package/src/app/app.component.scss +4 -0
  105. package/src/app/app.component.ts +252 -0
  106. package/src/app/app.module.ts +355 -0
  107. package/src/app/core/about/about.modal.html +145 -0
  108. package/src/app/core/about/about.modal.scss +22 -0
  109. package/src/app/core/about/about.modal.ts +69 -0
  110. package/src/app/core/about/about.module.ts +14 -0
  111. package/src/app/core/account/account.module.ts +43 -0
  112. package/src/app/core/account/account.page.html +329 -0
  113. package/src/app/core/account/account.page.scss +20 -0
  114. package/src/app/core/account/account.page.ts +389 -0
  115. package/src/app/core/account/new-token.form.html +90 -0
  116. package/src/app/core/account/new-token.form.ts +99 -0
  117. package/src/app/core/account/new-token.modal.html +52 -0
  118. package/src/app/core/account/new-token.modal.ts +68 -0
  119. package/src/app/core/account/password/change-password.form.html +62 -0
  120. package/src/app/core/account/password/change-password.form.scss +0 -0
  121. package/src/app/core/account/password/change-password.form.ts +58 -0
  122. package/src/app/core/account/password/change-password.module.ts +14 -0
  123. package/src/app/core/account/password/change-password.page.html +41 -0
  124. package/src/app/core/account/password/change-password.page.scss +49 -0
  125. package/src/app/core/account/password/change-password.page.ts +158 -0
  126. package/src/app/core/account/token.table.html +160 -0
  127. package/src/app/core/account/token.table.scss +7 -0
  128. package/src/app/core/account/token.table.ts +160 -0
  129. package/src/app/core/auth/auth.form.html +108 -0
  130. package/src/app/core/auth/auth.form.scss +0 -0
  131. package/src/app/core/auth/auth.form.ts +165 -0
  132. package/src/app/core/auth/auth.modal.html +50 -0
  133. package/src/app/core/auth/auth.modal.scss +0 -0
  134. package/src/app/core/auth/auth.modal.ts +78 -0
  135. package/src/app/core/auth/auth.module.ts +35 -0
  136. package/src/app/core/auth/reset-password.modal.html +59 -0
  137. package/src/app/core/auth/reset-password.modal.ts +83 -0
  138. package/src/app/core/core.module.ts +72 -0
  139. package/src/app/core/core.testing.module.ts +80 -0
  140. package/src/app/core/form/array/form-array.ts +409 -0
  141. package/src/app/core/form/array/testing/form-array-test.module.ts +15 -0
  142. package/src/app/core/form/array/testing/form-array.test.html +196 -0
  143. package/src/app/core/form/array/testing/form-array.test.ts +119 -0
  144. package/src/app/core/form/buttons/form-buttons-bar.component.html +82 -0
  145. package/src/app/core/form/buttons/form-buttons-bar.component.scss +19 -0
  146. package/src/app/core/form/buttons/form-buttons-bar.component.ts +89 -0
  147. package/src/app/core/form/buttons/form-buttons-bar.module.ts +20 -0
  148. package/src/app/core/form/entity/editor.class.ts +295 -0
  149. package/src/app/core/form/entity/entity-editor-modal.class.ts +494 -0
  150. package/src/app/core/form/entity/entity-editor.class.ts +894 -0
  151. package/src/app/core/form/entity/entity-metadata.component.html +57 -0
  152. package/src/app/core/form/entity/entity-metadata.component.scss +40 -0
  153. package/src/app/core/form/entity/entity-metadata.component.ts +18 -0
  154. package/src/app/core/form/entity/entity.module.ts +20 -0
  155. package/src/app/core/form/entity/tab-editor.class.ts +224 -0
  156. package/src/app/core/form/form-container.class.ts +380 -0
  157. package/src/app/core/form/form.class.ts +377 -0
  158. package/src/app/core/form/form.module.ts +38 -0
  159. package/src/app/core/form/form.utils.ts +305 -0
  160. package/src/app/core/form/list/list.form.html +68 -0
  161. package/src/app/core/form/list/list.form.scss +40 -0
  162. package/src/app/core/form/list/list.form.ts +266 -0
  163. package/src/app/core/form/list/list.module.ts +20 -0
  164. package/src/app/core/form/properties/properties.form.html +160 -0
  165. package/src/app/core/form/properties/properties.form.scss +21 -0
  166. package/src/app/core/form/properties/properties.form.ts +331 -0
  167. package/src/app/core/form/properties/properties.module.ts +24 -0
  168. package/src/app/core/form/properties/properties.table.html +228 -0
  169. package/src/app/core/form/properties/properties.table.scss +0 -0
  170. package/src/app/core/form/properties/properties.table.ts +275 -0
  171. package/src/app/core/form/properties/properties.utils.ts +391 -0
  172. package/src/app/core/form/properties/property.validator.ts +82 -0
  173. package/src/app/core/form/properties/testing/properties-form.test.html +23 -0
  174. package/src/app/core/form/properties/testing/properties-form.test.ts +109 -0
  175. package/src/app/core/form/properties/testing/properties-form.testing.module.ts +14 -0
  176. package/src/app/core/form/text-popover/testing/text-popover.testing.html +50 -0
  177. package/src/app/core/form/text-popover/testing/text-popover.testing.module.ts +21 -0
  178. package/src/app/core/form/text-popover/testing/text-popover.testing.ts +76 -0
  179. package/src/app/core/form/text-popover/text-popover.component.html +89 -0
  180. package/src/app/core/form/text-popover/text-popover.component.scss +7 -0
  181. package/src/app/core/form/text-popover/text-popover.component.ts +176 -0
  182. package/src/app/core/form/text-popover/text-popover.module.ts +19 -0
  183. package/src/app/core/form/username/username.form.html +27 -0
  184. package/src/app/core/form/username/username.form.ts +44 -0
  185. package/src/app/core/form/username/username.module.ts +12 -0
  186. package/src/app/core/graphql/graphql.module.ts +7 -0
  187. package/src/app/core/graphql/graphql.service.ts +962 -0
  188. package/src/app/core/graphql/graphql.utils.ts +166 -0
  189. package/src/app/core/home/home.html +295 -0
  190. package/src/app/core/home/home.module.ts +27 -0
  191. package/src/app/core/home/home.scss +279 -0
  192. package/src/app/core/home/home.ts +422 -0
  193. package/src/app/core/icon/icon.component.html +19 -0
  194. package/src/app/core/icon/icon.component.ts +22 -0
  195. package/src/app/core/icon/icon.module.ts +13 -0
  196. package/src/app/core/install/install-upgrade-card.component.html +144 -0
  197. package/src/app/core/install/install-upgrade-card.component.scss +3 -0
  198. package/src/app/core/install/install-upgrade-card.component.ts +445 -0
  199. package/src/app/core/install/install-upgrade-card.module.ts +18 -0
  200. package/src/app/core/menu/menu.component.html +219 -0
  201. package/src/app/core/menu/menu.component.scss +304 -0
  202. package/src/app/core/menu/menu.component.ts +251 -0
  203. package/src/app/core/menu/menu.filter.ts +28 -0
  204. package/src/app/core/menu/menu.model.ts +356 -0
  205. package/src/app/core/menu/menu.module.ts +27 -0
  206. package/src/app/core/menu/menu.service.ts +727 -0
  207. package/src/app/core/menu/sub-menu-tab.directive.ts +99 -0
  208. package/src/app/core/menu/testing/menu-other.testing.ts +57 -0
  209. package/src/app/core/menu/testing/menu.testing.html +143 -0
  210. package/src/app/core/menu/testing/menu.testing.module.ts +52 -0
  211. package/src/app/core/menu/testing/menu.testing.scss +5 -0
  212. package/src/app/core/menu/testing/menu.testing.ts +175 -0
  213. package/src/app/core/offline/update-offline-mode-card.component.html +39 -0
  214. package/src/app/core/offline/update-offline-mode-card.component.scss +3 -0
  215. package/src/app/core/offline/update-offline-mode-card.component.ts +23 -0
  216. package/src/app/core/offline/update-offline-mode-card.module.ts +20 -0
  217. package/src/app/core/peer/select-peer.modal.html +317 -0
  218. package/src/app/core/peer/select-peer.modal.scss +41 -0
  219. package/src/app/core/peer/select-peer.modal.ts +366 -0
  220. package/src/app/core/peer/select-peer.module.ts +23 -0
  221. package/src/app/core/register/register-confirm.page.html +51 -0
  222. package/src/app/core/register/register-confirm.page.scss +56 -0
  223. package/src/app/core/register/register-confirm.page.ts +90 -0
  224. package/src/app/core/register/register.form.html +143 -0
  225. package/src/app/core/register/register.form.scss +10 -0
  226. package/src/app/core/register/register.form.ts +218 -0
  227. package/src/app/core/register/register.modal.html +66 -0
  228. package/src/app/core/register/register.modal.ts +50 -0
  229. package/src/app/core/register/register.module.ts +15 -0
  230. package/src/app/core/services/account.service.ts +1567 -0
  231. package/src/app/core/services/auth-guard.service.ts +70 -0
  232. package/src/app/core/services/base-entity-service.class.ts +659 -0
  233. package/src/app/core/services/base-graphql-service.class.ts +319 -0
  234. package/src/app/core/services/base58.ts +90 -0
  235. package/src/app/core/services/config/core.config.ts +263 -0
  236. package/src/app/core/services/config.service.ts +425 -0
  237. package/src/app/core/services/crypto.service.ts +126 -0
  238. package/src/app/core/services/errors.ts +80 -0
  239. package/src/app/core/services/local-settings.service.spec.ts +39 -0
  240. package/src/app/core/services/local-settings.service.ts +605 -0
  241. package/src/app/core/services/model/account.model.ts +188 -0
  242. package/src/app/core/services/model/config.model.ts +116 -0
  243. package/src/app/core/services/model/department.model.ts +34 -0
  244. package/src/app/core/services/model/entity.decorators.ts +110 -0
  245. package/src/app/core/services/model/entity.model.ts +409 -0
  246. package/src/app/core/services/model/filter.model.ts +127 -0
  247. package/src/app/core/services/model/history.model.ts +25 -0
  248. package/src/app/core/services/model/model.enum.ts +10 -0
  249. package/src/app/core/services/model/node-feature.model.ts +31 -0
  250. package/src/app/core/services/model/peer.model.ts +119 -0
  251. package/src/app/core/services/model/person.model.ts +122 -0
  252. package/src/app/core/services/model/referential.model.ts +253 -0
  253. package/src/app/core/services/model/settings.model.ts +37 -0
  254. package/src/app/core/services/model/token.model.ts +60 -0
  255. package/src/app/core/services/model/tree-item-entity.model.ts +230 -0
  256. package/src/app/core/services/network.service.spec.ts +47 -0
  257. package/src/app/core/services/network.service.ts +761 -0
  258. package/src/app/core/services/network.types.ts +7 -0
  259. package/src/app/core/services/network.utils.ts +83 -0
  260. package/src/app/core/services/pipes/account.pipes.ts +22 -0
  261. package/src/app/core/services/pipes/department-to-string.pipe.ts +13 -0
  262. package/src/app/core/services/pipes/person-to-string.pipe.ts +13 -0
  263. package/src/app/core/services/pipes/pipes.module.ts +30 -0
  264. package/src/app/core/services/pipes/referential-to-string.pipe.ts +18 -0
  265. package/src/app/core/services/pipes/usage-mode.pipes.ts +23 -0
  266. package/src/app/core/services/platform.service.spec.ts +50 -0
  267. package/src/app/core/services/platform.service.ts +694 -0
  268. package/src/app/core/services/storage/entities-storage.service.ts +557 -0
  269. package/src/app/core/services/storage/entity-store.class.ts +589 -0
  270. package/src/app/core/services/testing/local-settings.config.ts +35 -0
  271. package/src/app/core/services/testing/referential-filter.model.ts +28 -0
  272. package/src/app/core/services/testing/referential.validator.ts +58 -0
  273. package/src/app/core/services/testing/user-settings.config.ts +77 -0
  274. package/src/app/core/services/validator/account.validator.ts +50 -0
  275. package/src/app/core/services/validator/base.validator.class.ts +51 -0
  276. package/src/app/core/services/validator/local-settings.validator.ts +59 -0
  277. package/src/app/core/services/validator/user-settings.validator.ts +22 -0
  278. package/src/app/core/services/validator/user-token.validator.ts +54 -0
  279. package/src/app/core/settings/settings.module.ts +15 -0
  280. package/src/app/core/settings/settings.page.html +300 -0
  281. package/src/app/core/settings/settings.page.ts +455 -0
  282. package/src/app/core/table/async-table.class.ts +2019 -0
  283. package/src/app/core/table/column/actions-column.component.html +219 -0
  284. package/src/app/core/table/column/actions-column.component.scss +17 -0
  285. package/src/app/core/table/column/actions-column.component.ts +83 -0
  286. package/src/app/core/table/column/nav-actions-column.component.html +119 -0
  287. package/src/app/core/table/column/nav-actions-column.component.ts +108 -0
  288. package/src/app/core/table/column/row-field.component.html +43 -0
  289. package/src/app/core/table/column/row-field.component.scss +0 -0
  290. package/src/app/core/table/column/row-field.component.ts +63 -0
  291. package/src/app/core/table/entities-async-table-datasource.class.ts +501 -0
  292. package/src/app/core/table/entities-table-datasource.class.ts +499 -0
  293. package/src/app/core/table/memory-table.class.ts +56 -0
  294. package/src/app/core/table/table-select-columns.component.html +56 -0
  295. package/src/app/core/table/table-select-columns.component.ts +49 -0
  296. package/src/app/core/table/table.class.ts +2080 -0
  297. package/src/app/core/table/table.model.ts +39 -0
  298. package/src/app/core/table/table.module.ts +28 -0
  299. package/src/app/core/table/table.pipes.ts +87 -0
  300. package/src/app/core/table/table.utils.ts +42 -0
  301. package/src/app/core/table/testing/multi-table.testing.html +456 -0
  302. package/src/app/core/table/testing/multi-table.testing.ts +263 -0
  303. package/src/app/core/table/testing/table-validator.service.ts +29 -0
  304. package/src/app/core/table/testing/table.testing.html +556 -0
  305. package/src/app/core/table/testing/table.testing.module.ts +16 -0
  306. package/src/app/core/table/testing/table.testing.scss +32 -0
  307. package/src/app/core/table/testing/table.testing.ts +329 -0
  308. package/src/app/core/table/testing/table2-validator.service.ts +19 -0
  309. package/src/app/core/table/testing/table2.testing.html +470 -0
  310. package/src/app/core/table/testing/table2.testing.scss +25 -0
  311. package/src/app/core/table/testing/table2.testing.ts +274 -0
  312. package/src/app/shared/alerts.ts +296 -0
  313. package/src/app/shared/audio/audio.testing.html +29 -0
  314. package/src/app/shared/audio/audio.testing.module.ts +21 -0
  315. package/src/app/shared/audio/audio.testing.ts +27 -0
  316. package/src/app/shared/audio/audio.ts +273 -0
  317. package/src/app/shared/base64.utils.ts +66 -0
  318. package/src/app/shared/capacitor/keyboard.ts +38 -0
  319. package/src/app/shared/capacitor/plugins.ts +12 -0
  320. package/src/app/shared/constants.ts +19 -0
  321. package/src/app/shared/dates.ts +206 -0
  322. package/src/app/shared/debug/debug-service.class.ts +7 -0
  323. package/src/app/shared/debug/debug.component.html +13 -0
  324. package/src/app/shared/debug/debug.component.scss +21 -0
  325. package/src/app/shared/debug/debug.component.spec.ts +24 -0
  326. package/src/app/shared/debug/debug.component.ts +25 -0
  327. package/src/app/shared/debug/debug.module.ts +14 -0
  328. package/src/app/shared/directives/autofocus.directive.ts +93 -0
  329. package/src/app/shared/directives/autoresize.directive.ts +67 -0
  330. package/src/app/shared/directives/autotitle.directive.ts +17 -0
  331. package/src/app/shared/directives/directives.module.ts +16 -0
  332. package/src/app/shared/directives/drag-and-drop.directive.ts +46 -0
  333. package/src/app/shared/directives/ng-var.directive.ts +31 -0
  334. package/src/app/shared/directives/resizable/resizable.component.ts +48 -0
  335. package/src/app/shared/directives/resizable/resizable.directive.ts +43 -0
  336. package/src/app/shared/directives/resizable/resizable.module.ts +9 -0
  337. package/src/app/shared/directives/resizable/resizable.style.scss +37 -0
  338. package/src/app/shared/directives/resizable/resizable.template.html +6 -0
  339. package/src/app/shared/directives/throttled-click.directive.ts +36 -0
  340. package/src/app/shared/events.ts +93 -0
  341. package/src/app/shared/file/csv.utils.ts +123 -0
  342. package/src/app/shared/file/file.service.ts +129 -0
  343. package/src/app/shared/file/file.utils.ts +142 -0
  344. package/src/app/shared/file/images.utils.ts +214 -0
  345. package/src/app/shared/file/json.utils.ts +82 -0
  346. package/src/app/shared/file/uri.utils.ts +31 -0
  347. package/src/app/shared/file/url.utils.ts +163 -0
  348. package/src/app/shared/focusable.ts +8 -0
  349. package/src/app/shared/form/field.component.html +380 -0
  350. package/src/app/shared/form/field.component.scss +7 -0
  351. package/src/app/shared/form/field.component.ts +344 -0
  352. package/src/app/shared/form/field.model.ts +158 -0
  353. package/src/app/shared/form/loading-spinner.ts +16 -0
  354. package/src/app/shared/forms.ts +577 -0
  355. package/src/app/shared/functions.spec.ts +197 -0
  356. package/src/app/shared/functions.ts +694 -0
  357. package/src/app/shared/geolocation/geolocation.utils.ts +105 -0
  358. package/src/app/shared/gesture/gesture-config.ts +43 -0
  359. package/src/app/shared/gesture/hammer.utils.ts +14 -0
  360. package/src/app/shared/graph/colors.utils.ts +69 -0
  361. package/src/app/shared/graph/graph-colors.ts +270 -0
  362. package/src/app/shared/guard/component-dirty.guard.ts +67 -0
  363. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.html +11 -0
  364. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.scss +37 -0
  365. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.ts +14 -0
  366. package/src/app/shared/hotkeys/hotkeys.service.ts +165 -0
  367. package/src/app/shared/hotkeys/shared-hotkeys.module.ts +15 -0
  368. package/src/app/shared/http/http.utils.ts +95 -0
  369. package/src/app/shared/image/gallery/image-gallery.component.html +282 -0
  370. package/src/app/shared/image/gallery/image-gallery.component.scss +218 -0
  371. package/src/app/shared/image/gallery/image-gallery.component.ts +434 -0
  372. package/src/app/shared/image/gallery/image-gallery.module.ts +35 -0
  373. package/src/app/shared/image/gallery/testing/gallegry.model.testing.ts +23 -0
  374. package/src/app/shared/image/gallery/testing/gallery.service.testing.ts +99 -0
  375. package/src/app/shared/image/gallery/testing/gallery.testing.html +27 -0
  376. package/src/app/shared/image/gallery/testing/gallery.testing.module.ts +39 -0
  377. package/src/app/shared/image/gallery/testing/gallery.testing.ts +34 -0
  378. package/src/app/shared/image/image.model.ts +8 -0
  379. package/src/app/shared/image/image.module.ts +12 -0
  380. package/src/app/shared/image/image.service.ts +111 -0
  381. package/src/app/shared/image/image.testing.module.ts +16 -0
  382. package/src/app/shared/inputs.ts +330 -0
  383. package/src/app/shared/interceptors/progess.interceptor.ts +24 -0
  384. package/src/app/shared/logging/log-level.model.ts +53 -0
  385. package/src/app/shared/logging/logger.model.ts +117 -0
  386. package/src/app/shared/logging/logging-service.class.ts +131 -0
  387. package/src/app/shared/logging/logging-service.config.ts +29 -0
  388. package/src/app/shared/logging/logging-service.module.ts +19 -0
  389. package/src/app/shared/markdown/markdown.component.html +55 -0
  390. package/src/app/shared/markdown/markdown.component.scss +75 -0
  391. package/src/app/shared/markdown/markdown.component.ts +350 -0
  392. package/src/app/shared/markdown/markdown.directive.ts +28 -0
  393. package/src/app/shared/markdown/markdown.modal.html +42 -0
  394. package/src/app/shared/markdown/markdown.modal.ts +91 -0
  395. package/src/app/shared/markdown/markdown.module.ts +65 -0
  396. package/src/app/shared/markdown/markdown.service.ts +234 -0
  397. package/src/app/shared/markdown/markdown.utils.ts +90 -0
  398. package/src/app/shared/markdown/testing/markdown.test.html +50 -0
  399. package/src/app/shared/markdown/testing/markdown.test.ts +49 -0
  400. package/src/app/shared/markdown/testing/markdown.testing.module.ts +22 -0
  401. package/src/app/shared/material/autocomplete/material.autocomplete.config.ts +127 -0
  402. package/src/app/shared/material/autocomplete/material.autocomplete.html +400 -0
  403. package/src/app/shared/material/autocomplete/material.autocomplete.module.ts +41 -0
  404. package/src/app/shared/material/autocomplete/material.autocomplete.scss +54 -0
  405. package/src/app/shared/material/autocomplete/material.autocomplete.ts +1375 -0
  406. package/src/app/shared/material/autocomplete/material.autocomplete.utils.ts +21 -0
  407. package/src/app/shared/material/autocomplete/testing/autocomplete.test.html +1164 -0
  408. package/src/app/shared/material/autocomplete/testing/autocomplete.test.spec.ts +33 -0
  409. package/src/app/shared/material/autocomplete/testing/autocomplete.test.ts +272 -0
  410. package/src/app/shared/material/badge/badge.directive.ts +217 -0
  411. package/src/app/shared/material/badge/badge.module.ts +12 -0
  412. package/src/app/shared/material/badge/badge.test.html +275 -0
  413. package/src/app/shared/material/badge/badge.test.ts +34 -0
  414. package/src/app/shared/material/boolean/boolean.module.ts +36 -0
  415. package/src/app/shared/material/boolean/material.boolean.html +271 -0
  416. package/src/app/shared/material/boolean/material.boolean.scss +27 -0
  417. package/src/app/shared/material/boolean/material.boolean.ts +343 -0
  418. package/src/app/shared/material/boolean/testing/boolean.test.page.html +469 -0
  419. package/src/app/shared/material/boolean/testing/boolean.test.page.ts +66 -0
  420. package/src/app/shared/material/chips/chips.module.ts +38 -0
  421. package/src/app/shared/material/chips/material.chips.html +233 -0
  422. package/src/app/shared/material/chips/material.chips.scss +67 -0
  423. package/src/app/shared/material/chips/material.chips.ts +834 -0
  424. package/src/app/shared/material/chips/testing/chips.test.html +207 -0
  425. package/src/app/shared/material/chips/testing/chips.test.ts +169 -0
  426. package/src/app/shared/material/datetime/datetime.module.ts +42 -0
  427. package/src/app/shared/material/datetime/material.date.html +186 -0
  428. package/src/app/shared/material/datetime/material.date.scss +17 -0
  429. package/src/app/shared/material/datetime/material.date.ts +512 -0
  430. package/src/app/shared/material/datetime/material.dateshort.html +194 -0
  431. package/src/app/shared/material/datetime/material.dateshort.scss +23 -0
  432. package/src/app/shared/material/datetime/material.dateshort.ts +497 -0
  433. package/src/app/shared/material/datetime/material.datetime.html +325 -0
  434. package/src/app/shared/material/datetime/material.datetime.scss +87 -0
  435. package/src/app/shared/material/datetime/material.datetime.ts +758 -0
  436. package/src/app/shared/material/datetime/testing/mat-date-time.test.html +794 -0
  437. package/src/app/shared/material/datetime/testing/mat-date-time.test.ts +155 -0
  438. package/src/app/shared/material/datetime/testing/mat-date.test.html +564 -0
  439. package/src/app/shared/material/datetime/testing/mat-date.test.ts +145 -0
  440. package/src/app/shared/material/datetime/testing/mat-dateshort.test.html +530 -0
  441. package/src/app/shared/material/datetime/testing/mat-dateshort.test.ts +133 -0
  442. package/src/app/shared/material/duration/duration.module.ts +33 -0
  443. package/src/app/shared/material/duration/duration.utils.ts +18 -0
  444. package/src/app/shared/material/duration/material.duration.html +116 -0
  445. package/src/app/shared/material/duration/material.duration.scss +28 -0
  446. package/src/app/shared/material/duration/material.duration.ts +308 -0
  447. package/src/app/shared/material/duration/testing/mat-duration.test.html +170 -0
  448. package/src/app/shared/material/duration/testing/mat-duration.test.ts +88 -0
  449. package/src/app/shared/material/latlong/latlong.utils.ts +376 -0
  450. package/src/app/shared/material/latlong/material.latlong-input.html +95 -0
  451. package/src/app/shared/material/latlong/material.latlong-input.scss +66 -0
  452. package/src/app/shared/material/latlong/material.latlong-input.ts +445 -0
  453. package/src/app/shared/material/latlong/material.latlong.html +90 -0
  454. package/src/app/shared/material/latlong/material.latlong.module.ts +37 -0
  455. package/src/app/shared/material/latlong/material.latlong.scss +0 -0
  456. package/src/app/shared/material/latlong/material.latlong.ts +203 -0
  457. package/src/app/shared/material/latlong/testing/latlong.test.html +1008 -0
  458. package/src/app/shared/material/latlong/testing/latlong.test.ts +144 -0
  459. package/src/app/shared/material/material.animations.ts +269 -0
  460. package/src/app/shared/material/material.config.ts +5 -0
  461. package/src/app/shared/material/material.module.ts +94 -0
  462. package/src/app/shared/material/material.testing.module.ts +192 -0
  463. package/src/app/shared/material/memory/memory.utils.ts +57 -0
  464. package/src/app/shared/material/numpad/numpad.animation.ts +1 -0
  465. package/src/app/shared/material/numpad/numpad.append-to-input.directive.ts +110 -0
  466. package/src/app/shared/material/numpad/numpad.component.ts +73 -0
  467. package/src/app/shared/material/numpad/numpad.container.html +37 -0
  468. package/src/app/shared/material/numpad/numpad.container.scss +55 -0
  469. package/src/app/shared/material/numpad/numpad.container.ts +152 -0
  470. package/src/app/shared/material/numpad/numpad.content.html +13 -0
  471. package/src/app/shared/material/numpad/numpad.content.ts +10 -0
  472. package/src/app/shared/material/numpad/numpad.directive.ts +159 -0
  473. package/src/app/shared/material/numpad/numpad.dom-service.ts +35 -0
  474. package/src/app/shared/material/numpad/numpad.model.ts +53 -0
  475. package/src/app/shared/material/numpad/numpad.module.ts +18 -0
  476. package/src/app/shared/material/numpad/testing/numpad.test.html +146 -0
  477. package/src/app/shared/material/numpad/testing/numpad.test.ts +44 -0
  478. package/src/app/shared/material/paginator/material.paginator-i18n.ts +47 -0
  479. package/src/app/shared/material/stepper/material.stepper-i18n.ts +17 -0
  480. package/src/app/shared/material/swipe/material.swipe.html +85 -0
  481. package/src/app/shared/material/swipe/material.swipe.scss +55 -0
  482. package/src/app/shared/material/swipe/material.swipe.ts +366 -0
  483. package/src/app/shared/material/swipe/swipe.module.ts +29 -0
  484. package/src/app/shared/material/swipe/testing/swipe.test.html +112 -0
  485. package/src/app/shared/material/swipe/testing/swipe.test.ts +74 -0
  486. package/src/app/shared/material/test/test-component.css +22 -0
  487. package/src/app/shared/material/test/test-component.html +40 -0
  488. package/src/app/shared/material/test/test-component.ts +295 -0
  489. package/src/app/shared/material/testing/common.test.html +227 -0
  490. package/src/app/shared/material/testing/common.test.ts +126 -0
  491. package/src/app/shared/material/text/testing/text-form.testing.html +213 -0
  492. package/src/app/shared/material/text/testing/text-form.testing.ts +30 -0
  493. package/src/app/shared/material/text/text-form.component.html +63 -0
  494. package/src/app/shared/material/text/text-form.component.scss +8 -0
  495. package/src/app/shared/material/text/text-form.component.ts +177 -0
  496. package/src/app/shared/material/text/text-form.module.ts +36 -0
  497. package/src/app/shared/modules.ts +12 -0
  498. package/src/app/shared/named-filter/named-filter-selector.component.html +77 -0
  499. package/src/app/shared/named-filter/named-filter-selector.component.scss +3 -0
  500. package/src/app/shared/named-filter/named-filter-selector.component.ts +287 -0
  501. package/src/app/shared/named-filter/named-filter.model.ts +64 -0
  502. package/src/app/shared/named-filter/named-filter.module.ts +15 -0
  503. package/src/app/shared/named-filter/named-filter.service.ts +100 -0
  504. package/src/app/shared/named-filter/testing/named-filter-selector.testing.html +61 -0
  505. package/src/app/shared/named-filter/testing/named-filter-selector.testing.ts +80 -0
  506. package/src/app/shared/named-filter/testing/named-filter.testing.module.ts +20 -0
  507. package/src/app/shared/named-filter/testing/named-filter.testing.service.ts +83 -0
  508. package/src/app/shared/observables.ts +139 -0
  509. package/src/app/shared/pipes/arrays.pipe.ts +153 -0
  510. package/src/app/shared/pipes/badge.pipes.ts +17 -0
  511. package/src/app/shared/pipes/colors.pipe.ts +24 -0
  512. package/src/app/shared/pipes/date-diff-duration.pipe.ts +53 -0
  513. package/src/app/shared/pipes/date-format.pipe.ts +73 -0
  514. package/src/app/shared/pipes/date-from-now.pipe.ts +17 -0
  515. package/src/app/shared/pipes/dates.pipe.ts +13 -0
  516. package/src/app/shared/pipes/display-with.pipe.ts +13 -0
  517. package/src/app/shared/pipes/duration.pipe.spec.ts +41 -0
  518. package/src/app/shared/pipes/duration.pipe.ts +28 -0
  519. package/src/app/shared/pipes/file-size.pipe.ts +50 -0
  520. package/src/app/shared/pipes/form.pipes.ts +209 -0
  521. package/src/app/shared/pipes/highlight.pipe.ts +41 -0
  522. package/src/app/shared/pipes/html.pipes.ts +49 -0
  523. package/src/app/shared/pipes/latlong-format.pipe.ts +28 -0
  524. package/src/app/shared/pipes/maps.pipe.ts +41 -0
  525. package/src/app/shared/pipes/maskito.pipe.ts +68 -0
  526. package/src/app/shared/pipes/math.pipes.ts +46 -0
  527. package/src/app/shared/pipes/ng-init.pipe.ts +13 -0
  528. package/src/app/shared/pipes/number-format.pipe.ts +11 -0
  529. package/src/app/shared/pipes/observable.pipes.ts +45 -0
  530. package/src/app/shared/pipes/pipes.module.ts +162 -0
  531. package/src/app/shared/pipes/property.pipes.ts +115 -0
  532. package/src/app/shared/pipes/selection.pipes.ts +165 -0
  533. package/src/app/shared/pipes/string.pipes.ts +128 -0
  534. package/src/app/shared/pipes/translate-context.pipe.ts +27 -0
  535. package/src/app/shared/pipes/types.pipes.ts +52 -0
  536. package/src/app/shared/pipes/url.pipes.ts +36 -0
  537. package/src/app/shared/platforms.ts +99 -0
  538. package/src/app/shared/print/print.service.ts +337 -0
  539. package/src/app/shared/regexps.ts +112 -0
  540. package/src/app/shared/rx-state/rx-state.decorators.ts +281 -0
  541. package/src/app/shared/rx-state/rx-state.module.ts +11 -0
  542. package/src/app/shared/rx-state/rx-state.types.ts +5 -0
  543. package/src/app/shared/services/entity-service.class.ts +120 -0
  544. package/src/app/shared/services/job.utils.ts +124 -0
  545. package/src/app/shared/services/memory-entity-service.class.ts +435 -0
  546. package/src/app/shared/services/progress-bar.service.ts +40 -0
  547. package/src/app/shared/services/startable-observable-service.class.ts +129 -0
  548. package/src/app/shared/services/startable-service.class.ts +120 -0
  549. package/src/app/shared/services/storage.utils.ts +53 -0
  550. package/src/app/shared/services/translate-context.service.ts +112 -0
  551. package/src/app/shared/services/validator-service.class.ts +13 -0
  552. package/src/app/shared/services.ts +134 -0
  553. package/src/app/shared/shared-routing.module.ts +69 -0
  554. package/src/app/shared/shared.module.spec.ts +13 -0
  555. package/src/app/shared/shared.module.ts +168 -0
  556. package/src/app/shared/shared.testing.module.ts +61 -0
  557. package/src/app/shared/storage/storage-explorer.component.html +160 -0
  558. package/src/app/shared/storage/storage-explorer.component.scss +37 -0
  559. package/src/app/shared/storage/storage-explorer.component.spec.ts +24 -0
  560. package/src/app/shared/storage/storage-explorer.component.ts +268 -0
  561. package/src/app/shared/storage/storage-explorer.module.ts +24 -0
  562. package/src/app/shared/storage/storage-explorer.testing-routing.module.ts +19 -0
  563. package/src/app/shared/storage/storage-explorer.testing.module.ts +19 -0
  564. package/src/app/shared/storage/storage.service.ts +131 -0
  565. package/src/app/shared/storage/storage.utils.ts +25 -0
  566. package/src/app/shared/testing/maskito.test.html +40 -0
  567. package/src/app/shared/testing/maskito.test.ts +33 -0
  568. package/src/app/shared/testing/observable.test.html +53 -0
  569. package/src/app/shared/testing/observable.test.scss +3 -0
  570. package/src/app/shared/testing/observable.test.ts +101 -0
  571. package/src/app/shared/testing/tests.page.html +22 -0
  572. package/src/app/shared/testing/tests.page.ts +32 -0
  573. package/src/app/shared/toast/toast.testing.html +50 -0
  574. package/src/app/shared/toast/toast.testing.module.ts +22 -0
  575. package/src/app/shared/toast/toast.testing.ts +52 -0
  576. package/src/app/shared/toast/toasts.ts +161 -0
  577. package/src/app/shared/toolbar/modal-toolbar.html +30 -0
  578. package/src/app/shared/toolbar/modal-toolbar.scss +0 -0
  579. package/src/app/shared/toolbar/modal-toolbar.ts +64 -0
  580. package/src/app/shared/toolbar/toolbar.html +68 -0
  581. package/src/app/shared/toolbar/toolbar.module.ts +18 -0
  582. package/src/app/shared/toolbar/toolbar.scss +0 -0
  583. package/src/app/shared/toolbar/toolbar.ts +262 -0
  584. package/src/app/shared/types.ts +44 -0
  585. package/src/app/shared/upload-file/testing/upload-file.testing.html +30 -0
  586. package/src/app/shared/upload-file/testing/upload-file.testing.module.ts +21 -0
  587. package/src/app/shared/upload-file/testing/upload-file.testing.ts +65 -0
  588. package/src/app/shared/upload-file/upload-file-popover.component.html +46 -0
  589. package/src/app/shared/upload-file/upload-file-popover.component.scss +6 -0
  590. package/src/app/shared/upload-file/upload-file-popover.component.ts +115 -0
  591. package/src/app/shared/upload-file/upload-file.component.html +57 -0
  592. package/src/app/shared/upload-file/upload-file.component.scss +60 -0
  593. package/src/app/shared/upload-file/upload-file.component.ts +222 -0
  594. package/src/app/shared/upload-file/upload-file.model.ts +40 -0
  595. package/src/app/shared/validator/form-error-adapter.class.ts +136 -0
  596. package/src/app/shared/validator/validators.ts +725 -0
  597. package/src/app/shared/version/versions.ts +89 -0
  598. package/src/app/social/job/job.module.ts +14 -0
  599. package/src/app/social/job/progression/job-progression.component.html +19 -0
  600. package/src/app/social/job/progression/job-progression.component.scss +15 -0
  601. package/src/app/social/job/progression/job-progression.component.ts +39 -0
  602. package/src/app/social/job/progression/job-progression.icon.html +30 -0
  603. package/src/app/social/job/progression/job-progression.icon.scss +7 -0
  604. package/src/app/social/job/progression/job-progression.icon.ts +276 -0
  605. package/src/app/social/job/progression/job-progression.list.html +25 -0
  606. package/src/app/social/job/progression/job-progression.list.scss +17 -0
  607. package/src/app/social/job/progression/job-progression.list.ts +40 -0
  608. package/src/app/social/job/progression/job-progression.model.ts +26 -0
  609. package/src/app/social/job/progression/job-progression.service.ts +97 -0
  610. package/src/app/social/job/testing/job-progression.testing.html +11 -0
  611. package/src/app/social/job/testing/job-progression.testing.service.ts +33 -0
  612. package/src/app/social/job/testing/job-progression.testing.ts +28 -0
  613. package/src/app/social/job/testing/job.testing.module.ts +13 -0
  614. package/src/app/social/message/message.form.html +71 -0
  615. package/src/app/social/message/message.form.scss +6 -0
  616. package/src/app/social/message/message.form.ts +128 -0
  617. package/src/app/social/message/message.modal.html +68 -0
  618. package/src/app/social/message/message.modal.ts +117 -0
  619. package/src/app/social/message/message.model.ts +78 -0
  620. package/src/app/social/message/message.module.ts +14 -0
  621. package/src/app/social/message/message.service.ts +104 -0
  622. package/src/app/social/social.errors.ts +10 -0
  623. package/src/app/social/social.module.ts +23 -0
  624. package/src/app/social/social.testing.module.ts +33 -0
  625. package/src/app/social/user-event/notification/user-event-notification.icon.html +17 -0
  626. package/src/app/social/user-event/notification/user-event-notification.icon.ts +112 -0
  627. package/src/app/social/user-event/notification/user-event-notification.list.html +142 -0
  628. package/src/app/social/user-event/notification/user-event-notification.list.scss +73 -0
  629. package/src/app/social/user-event/notification/user-event-notification.list.ts +270 -0
  630. package/src/app/social/user-event/testing/user-event.testing.html +26 -0
  631. package/src/app/social/user-event/testing/user-event.testing.model.ts +142 -0
  632. package/src/app/social/user-event/testing/user-event.testing.module.ts +13 -0
  633. package/src/app/social/user-event/testing/user-event.testing.service.ts +161 -0
  634. package/src/app/social/user-event/testing/user-event.testing.ts +282 -0
  635. package/src/app/social/user-event/user-event.model.ts +55 -0
  636. package/src/app/social/user-event/user-event.module.ts +15 -0
  637. package/src/app/social/user-event/user-event.service.ts +686 -0
  638. package/src/assets/manifest.json +1 -1
  639. package/src/browserslist +9 -0
  640. package/src/environments/environment.class.ts +106 -0
  641. package/src/environments/environment.loader.ts +90 -0
  642. package/src/environments/environment.prod.ts +49 -0
  643. package/src/environments/environment.test.ts +92 -0
  644. package/src/environments/environment.ts +126 -0
  645. package/src/favicon.ico +0 -0
  646. package/src/global.scss +13 -0
  647. package/src/index.html +76 -0
  648. package/src/main.ts +18 -0
  649. package/src/polyfills.ts +34 -0
  650. package/src/schema.graphql +4381 -0
  651. package/src/service-worker.js +31 -0
  652. package/src/test.ts +30 -0
  653. package/tsconfig.app.json +15 -0
  654. package/tsconfig.json +47 -0
  655. package/tsconfig.spec.json +18 -0
  656. package/esm2022/public_api.mjs +0 -380
  657. package/esm2022/src/app/admin/admin-routing.module.mjs +0 -34
  658. package/esm2022/src/app/admin/admin.module.mjs +0 -32
  659. package/esm2022/src/app/admin/services/filter/person.filter.mjs +0 -76
  660. package/esm2022/src/app/admin/services/person.service.mjs +0 -184
  661. package/esm2022/src/app/admin/services/validator/person.validator.mjs +0 -72
  662. package/esm2022/src/app/admin/users/users.mjs +0 -379
  663. package/esm2022/src/app/admin/users/users.module.mjs +0 -56
  664. package/esm2022/src/app/core/about/about.modal.mjs +0 -86
  665. package/esm2022/src/app/core/about/about.module.mjs +0 -22
  666. package/esm2022/src/app/core/account/account.module.mjs +0 -75
  667. package/esm2022/src/app/core/account/account.page.mjs +0 -364
  668. package/esm2022/src/app/core/account/new-token.form.mjs +0 -106
  669. package/esm2022/src/app/core/account/new-token.modal.mjs +0 -66
  670. package/esm2022/src/app/core/account/password/change-password.form.mjs +0 -63
  671. package/esm2022/src/app/core/account/password/change-password.module.mjs +0 -22
  672. package/esm2022/src/app/core/account/password/change-password.page.mjs +0 -150
  673. package/esm2022/src/app/core/account/token.table.mjs +0 -157
  674. package/esm2022/src/app/core/auth/auth.form.mjs +0 -159
  675. package/esm2022/src/app/core/auth/auth.modal.mjs +0 -76
  676. package/esm2022/src/app/core/auth/auth.module.mjs +0 -56
  677. package/esm2022/src/app/core/auth/reset-password.modal.mjs +0 -89
  678. package/esm2022/src/app/core/core.module.mjs +0 -151
  679. package/esm2022/src/app/core/core.testing.module.mjs +0 -107
  680. package/esm2022/src/app/core/form/array/form-array.mjs +0 -328
  681. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +0 -23
  682. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +0 -94
  683. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -108
  684. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +0 -31
  685. package/esm2022/src/app/core/form/entity/editor.class.mjs +0 -268
  686. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -420
  687. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +0 -741
  688. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +0 -24
  689. package/esm2022/src/app/core/form/entity/entity.module.mjs +0 -32
  690. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +0 -190
  691. package/esm2022/src/app/core/form/form-container.class.mjs +0 -340
  692. package/esm2022/src/app/core/form/form.class.mjs +0 -337
  693. package/esm2022/src/app/core/form/form.module.mjs +0 -70
  694. package/esm2022/src/app/core/form/form.utils.mjs +0 -205
  695. package/esm2022/src/app/core/form/list/list.form.mjs +0 -235
  696. package/esm2022/src/app/core/form/list/list.module.mjs +0 -31
  697. package/esm2022/src/app/core/form/properties/properties.form.mjs +0 -317
  698. package/esm2022/src/app/core/form/properties/properties.module.mjs +0 -37
  699. package/esm2022/src/app/core/form/properties/properties.table.mjs +0 -264
  700. package/esm2022/src/app/core/form/properties/properties.utils.mjs +0 -304
  701. package/esm2022/src/app/core/form/properties/property.validator.mjs +0 -70
  702. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +0 -104
  703. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +0 -23
  704. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -73
  705. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +0 -30
  706. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +0 -161
  707. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +0 -31
  708. package/esm2022/src/app/core/form/username/username.form.mjs +0 -55
  709. package/esm2022/src/app/core/form/username/username.module.mjs +0 -20
  710. package/esm2022/src/app/core/graphql/graphql.module.mjs +0 -14
  711. package/esm2022/src/app/core/graphql/graphql.service.mjs +0 -781
  712. package/esm2022/src/app/core/graphql/graphql.utils.mjs +0 -119
  713. package/esm2022/src/app/core/home/home.mjs +0 -382
  714. package/esm2022/src/app/core/home/home.module.mjs +0 -46
  715. package/esm2022/src/app/core/icon/icon.component.mjs +0 -40
  716. package/esm2022/src/app/core/icon/icon.module.mjs +0 -20
  717. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +0 -394
  718. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +0 -31
  719. package/esm2022/src/app/core/menu/menu.component.mjs +0 -258
  720. package/esm2022/src/app/core/menu/menu.model.mjs +0 -272
  721. package/esm2022/src/app/core/menu/menu.module.mjs +0 -47
  722. package/esm2022/src/app/core/menu/menu.service.mjs +0 -666
  723. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +0 -109
  724. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +0 -50
  725. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +0 -158
  726. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +0 -60
  727. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +0 -28
  728. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +0 -31
  729. package/esm2022/src/app/core/peer/select-peer.modal.mjs +0 -344
  730. package/esm2022/src/app/core/peer/select-peer.module.mjs +0 -36
  731. package/esm2022/src/app/core/register/register-confirm.page.mjs +0 -90
  732. package/esm2022/src/app/core/register/register.form.mjs +0 -194
  733. package/esm2022/src/app/core/register/register.modal.mjs +0 -55
  734. package/esm2022/src/app/core/register/register.module.mjs +0 -23
  735. package/esm2022/src/app/core/services/account.service.mjs +0 -1358
  736. package/esm2022/src/app/core/services/auth-guard.service.mjs +0 -74
  737. package/esm2022/src/app/core/services/base-entity-service.class.mjs +0 -485
  738. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +0 -230
  739. package/esm2022/src/app/core/services/base58.mjs +0 -83
  740. package/esm2022/src/app/core/services/config/core.config.mjs +0 -258
  741. package/esm2022/src/app/core/services/config.service.mjs +0 -384
  742. package/esm2022/src/app/core/services/crypto.service.mjs +0 -107
  743. package/esm2022/src/app/core/services/errors.mjs +0 -54
  744. package/esm2022/src/app/core/services/local-settings.service.mjs +0 -516
  745. package/esm2022/src/app/core/services/model/account.model.mjs +0 -178
  746. package/esm2022/src/app/core/services/model/config.model.mjs +0 -107
  747. package/esm2022/src/app/core/services/model/department.model.mjs +0 -35
  748. package/esm2022/src/app/core/services/model/entity.decorators.mjs +0 -97
  749. package/esm2022/src/app/core/services/model/entity.model.mjs +0 -338
  750. package/esm2022/src/app/core/services/model/filter.model.mjs +0 -93
  751. package/esm2022/src/app/core/services/model/history.model.mjs +0 -2
  752. package/esm2022/src/app/core/services/model/model.enum.mjs +0 -11
  753. package/esm2022/src/app/core/services/model/node-feature.model.mjs +0 -31
  754. package/esm2022/src/app/core/services/model/peer.model.mjs +0 -113
  755. package/esm2022/src/app/core/services/model/person.model.mjs +0 -114
  756. package/esm2022/src/app/core/services/model/referential.model.mjs +0 -205
  757. package/esm2022/src/app/core/services/model/settings.model.mjs +0 -6
  758. package/esm2022/src/app/core/services/model/token.model.mjs +0 -57
  759. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +0 -195
  760. package/esm2022/src/app/core/services/network.service.mjs +0 -638
  761. package/esm2022/src/app/core/services/network.types.mjs +0 -2
  762. package/esm2022/src/app/core/services/network.utils.mjs +0 -35
  763. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +0 -38
  764. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +0 -23
  765. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +0 -23
  766. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +0 -54
  767. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +0 -21
  768. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +0 -37
  769. package/esm2022/src/app/core/services/platform.service.mjs +0 -627
  770. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +0 -427
  771. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +0 -450
  772. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +0 -25
  773. package/esm2022/src/app/core/services/testing/referential.validator.mjs +0 -46
  774. package/esm2022/src/app/core/services/validator/account.validator.mjs +0 -45
  775. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +0 -49
  776. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +0 -57
  777. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +0 -27
  778. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +0 -55
  779. package/esm2022/src/app/core/settings/settings.module.mjs +0 -23
  780. package/esm2022/src/app/core/settings/settings.page.mjs +0 -403
  781. package/esm2022/src/app/core/table/async-table.class.mjs +0 -1811
  782. package/esm2022/src/app/core/table/column/actions-column.component.mjs +0 -130
  783. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +0 -117
  784. package/esm2022/src/app/core/table/column/row-field.component.mjs +0 -116
  785. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +0 -404
  786. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +0 -405
  787. package/esm2022/src/app/core/table/memory-table.class.mjs +0 -57
  788. package/esm2022/src/app/core/table/table-select-columns.component.mjs +0 -46
  789. package/esm2022/src/app/core/table/table.class.mjs +0 -1867
  790. package/esm2022/src/app/core/table/table.model.mjs +0 -21
  791. package/esm2022/src/app/core/table/table.module.mjs +0 -51
  792. package/esm2022/src/app/core/table/table.pipes.mjs +0 -77
  793. package/esm2022/src/app/core/table/table.utils.mjs +0 -34
  794. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +0 -32
  795. package/esm2022/src/app/core/table/testing/table.testing.mjs +0 -329
  796. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +0 -25
  797. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +0 -25
  798. package/esm2022/src/app/core/table/testing/table2.testing.mjs +0 -273
  799. package/esm2022/src/app/shared/alerts.mjs +0 -243
  800. package/esm2022/src/app/shared/audio/audio.mjs +0 -255
  801. package/esm2022/src/app/shared/audio/audio.testing.mjs +0 -32
  802. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +0 -30
  803. package/esm2022/src/app/shared/capacitor/keyboard.mjs +0 -42
  804. package/esm2022/src/app/shared/capacitor/plugins.mjs +0 -9
  805. package/esm2022/src/app/shared/constants.mjs +0 -16
  806. package/esm2022/src/app/shared/dates.mjs +0 -180
  807. package/esm2022/src/app/shared/debug/debug-service.class.mjs +0 -3
  808. package/esm2022/src/app/shared/debug/debug.component.mjs +0 -44
  809. package/esm2022/src/app/shared/debug/debug.module.mjs +0 -23
  810. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +0 -91
  811. package/esm2022/src/app/shared/directives/autoresize.directive.mjs +0 -75
  812. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +0 -30
  813. package/esm2022/src/app/shared/directives/directives.module.mjs +0 -24
  814. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +0 -52
  815. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +0 -33
  816. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +0 -62
  817. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +0 -45
  818. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +0 -17
  819. package/esm2022/src/app/shared/directives/throttled-click.directive.mjs +0 -43
  820. package/esm2022/src/app/shared/events.mjs +0 -64
  821. package/esm2022/src/app/shared/file/csv.utils.mjs +0 -97
  822. package/esm2022/src/app/shared/file/file.service.mjs +0 -118
  823. package/esm2022/src/app/shared/file/file.utils.mjs +0 -117
  824. package/esm2022/src/app/shared/file/images.utils.mjs +0 -186
  825. package/esm2022/src/app/shared/file/json.utils.mjs +0 -58
  826. package/esm2022/src/app/shared/file/uri.utils.mjs +0 -29
  827. package/esm2022/src/app/shared/file/url.utils.mjs +0 -164
  828. package/esm2022/src/app/shared/focusable.mjs +0 -6
  829. package/esm2022/src/app/shared/form/field.component.mjs +0 -393
  830. package/esm2022/src/app/shared/form/field.model.mjs +0 -82
  831. package/esm2022/src/app/shared/form/loading-spinner.mjs +0 -35
  832. package/esm2022/src/app/shared/forms.mjs +0 -510
  833. package/esm2022/src/app/shared/functions.mjs +0 -672
  834. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +0 -86
  835. package/esm2022/src/app/shared/gesture/gesture-config.mjs +0 -46
  836. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +0 -2
  837. package/esm2022/src/app/shared/graph/colors.utils.mjs +0 -60
  838. package/esm2022/src/app/shared/graph/graph-colors.mjs +0 -214
  839. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +0 -65
  840. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  841. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +0 -147
  842. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +0 -24
  843. package/esm2022/src/app/shared/http/http.utils.mjs +0 -56
  844. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +0 -443
  845. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +0 -62
  846. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -26
  847. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -87
  848. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -37
  849. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +0 -59
  850. package/esm2022/src/app/shared/image/image.model.mjs +0 -2
  851. package/esm2022/src/app/shared/image/image.module.mjs +0 -24
  852. package/esm2022/src/app/shared/image/image.service.mjs +0 -109
  853. package/esm2022/src/app/shared/inputs.mjs +0 -279
  854. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  855. package/esm2022/src/app/shared/logging/log-level.model.mjs +0 -48
  856. package/esm2022/src/app/shared/logging/logger.model.mjs +0 -47
  857. package/esm2022/src/app/shared/logging/logging-service.class.mjs +0 -125
  858. package/esm2022/src/app/shared/logging/logging-service.config.mjs +0 -2
  859. package/esm2022/src/app/shared/logging/logging-service.module.mjs +0 -30
  860. package/esm2022/src/app/shared/markdown/markdown.component.mjs +0 -321
  861. package/esm2022/src/app/shared/markdown/markdown.directive.mjs +0 -34
  862. package/esm2022/src/app/shared/markdown/markdown.modal.mjs +0 -99
  863. package/esm2022/src/app/shared/markdown/markdown.module.mjs +0 -87
  864. package/esm2022/src/app/shared/markdown/markdown.service.mjs +0 -204
  865. package/esm2022/src/app/shared/markdown/markdown.utils.mjs +0 -87
  866. package/esm2022/src/app/shared/markdown/testing/markdown.test.mjs +0 -55
  867. package/esm2022/src/app/shared/markdown/testing/markdown.testing.module.mjs +0 -30
  868. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -46
  869. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -1313
  870. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -79
  871. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -18
  872. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -242
  873. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +0 -251
  874. package/esm2022/src/app/shared/material/badge/badge.module.mjs +0 -20
  875. package/esm2022/src/app/shared/material/badge/badge.test.mjs +0 -42
  876. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +0 -67
  877. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +0 -371
  878. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -72
  879. package/esm2022/src/app/shared/material/chips/chips.module.mjs +0 -71
  880. package/esm2022/src/app/shared/material/chips/material.chips.mjs +0 -836
  881. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +0 -151
  882. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +0 -76
  883. package/esm2022/src/app/shared/material/datetime/material.date.mjs +0 -471
  884. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +0 -457
  885. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +0 -693
  886. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -136
  887. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -127
  888. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -118
  889. package/esm2022/src/app/shared/material/duration/duration.module.mjs +0 -61
  890. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +0 -16
  891. package/esm2022/src/app/shared/material/duration/material.duration.mjs +0 -283
  892. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -85
  893. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +0 -319
  894. package/esm2022/src/app/shared/material/latlong/material.latlong-input.mjs +0 -432
  895. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +0 -231
  896. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +0 -68
  897. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -137
  898. package/esm2022/src/app/shared/material/material.animations.mjs +0 -200
  899. package/esm2022/src/app/shared/material/material.config.mjs +0 -3
  900. package/esm2022/src/app/shared/material/material.module.mjs +0 -229
  901. package/esm2022/src/app/shared/material/material.testing.module.mjs +0 -245
  902. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -51
  903. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -23
  904. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +0 -379
  905. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +0 -52
  906. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -67
  907. package/esm2022/src/app/shared/material/test/test-component.mjs +0 -264
  908. package/esm2022/src/app/shared/material/testing/common.test.mjs +0 -111
  909. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +0 -42
  910. package/esm2022/src/app/shared/material/text/text-form.component.mjs +0 -205
  911. package/esm2022/src/app/shared/material/text/text-form.module.mjs +0 -63
  912. package/esm2022/src/app/shared/modules.mjs +0 -12
  913. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -303
  914. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +0 -49
  915. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +0 -24
  916. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +0 -69
  917. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +0 -74
  918. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +0 -28
  919. package/esm2022/src/app/shared/observables.mjs +0 -100
  920. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +0 -217
  921. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +0 -24
  922. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +0 -29
  923. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -50
  924. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +0 -72
  925. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +0 -28
  926. package/esm2022/src/app/shared/pipes/dates.pipe.mjs +0 -18
  927. package/esm2022/src/app/shared/pipes/display-with.pipe.mjs +0 -23
  928. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +0 -34
  929. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +0 -53
  930. package/esm2022/src/app/shared/pipes/form.pipes.mjs +0 -219
  931. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +0 -50
  932. package/esm2022/src/app/shared/pipes/html.pipes.mjs +0 -69
  933. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +0 -42
  934. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +0 -65
  935. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +0 -67
  936. package/esm2022/src/app/shared/pipes/math.pipes.mjs +0 -77
  937. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +0 -19
  938. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +0 -17
  939. package/esm2022/src/app/shared/pipes/observable.pipes.mjs +0 -61
  940. package/esm2022/src/app/shared/pipes/pipes.module.mjs +0 -285
  941. package/esm2022/src/app/shared/pipes/property.pipes.mjs +0 -135
  942. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +0 -179
  943. package/esm2022/src/app/shared/pipes/string.pipes.mjs +0 -183
  944. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +0 -44
  945. package/esm2022/src/app/shared/pipes/types.pipes.mjs +0 -74
  946. package/esm2022/src/app/shared/pipes/url.pipes.mjs +0 -43
  947. package/esm2022/src/app/shared/platforms.mjs +0 -81
  948. package/esm2022/src/app/shared/print/print.service.mjs +0 -305
  949. package/esm2022/src/app/shared/regexps.mjs +0 -96
  950. package/esm2022/src/app/shared/rx-state/rx-state.decorators.mjs +0 -71
  951. package/esm2022/src/app/shared/rx-state/rx-state.module.mjs +0 -19
  952. package/esm2022/src/app/shared/rx-state/rx-state.types.mjs +0 -2
  953. package/esm2022/src/app/shared/services/entity-service.class.mjs +0 -10
  954. package/esm2022/src/app/shared/services/job.utils.mjs +0 -92
  955. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +0 -353
  956. package/esm2022/src/app/shared/services/progress-bar.service.mjs +0 -31
  957. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +0 -118
  958. package/esm2022/src/app/shared/services/startable-service.class.mjs +0 -107
  959. package/esm2022/src/app/shared/services/translate-context.service.mjs +0 -107
  960. package/esm2022/src/app/shared/services/validator-service.class.mjs +0 -2
  961. package/esm2022/src/app/shared/services.mjs +0 -85
  962. package/esm2022/src/app/shared/shared-routing.module.mjs +0 -72
  963. package/esm2022/src/app/shared/shared.module.mjs +0 -229
  964. package/esm2022/src/app/shared/shared.testing.module.mjs +0 -108
  965. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +0 -279
  966. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +0 -42
  967. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +0 -27
  968. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +0 -25
  969. package/esm2022/src/app/shared/storage/storage.service.mjs +0 -134
  970. package/esm2022/src/app/shared/storage/storage.utils.mjs +0 -13
  971. package/esm2022/src/app/shared/testing/maskito.test.mjs +0 -41
  972. package/esm2022/src/app/shared/testing/observable.test.mjs +0 -94
  973. package/esm2022/src/app/shared/testing/tests.page.mjs +0 -37
  974. package/esm2022/src/app/shared/toast/toast.testing.mjs +0 -54
  975. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +0 -31
  976. package/esm2022/src/app/shared/toast/toasts.mjs +0 -134
  977. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +0 -62
  978. package/esm2022/src/app/shared/toolbar/toolbar.mjs +0 -267
  979. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +0 -26
  980. package/esm2022/src/app/shared/types.mjs +0 -2
  981. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -59
  982. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +0 -30
  983. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -109
  984. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +0 -216
  985. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +0 -26
  986. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +0 -114
  987. package/esm2022/src/app/shared/validator/validators.mjs +0 -621
  988. package/esm2022/src/app/shared/version/versions.mjs +0 -81
  989. package/esm2022/src/app/social/job/job.module.mjs +0 -23
  990. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +0 -35
  991. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +0 -235
  992. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +0 -47
  993. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +0 -29
  994. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +0 -91
  995. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +0 -38
  996. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +0 -34
  997. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +0 -22
  998. package/esm2022/src/app/social/message/message.form.mjs +0 -141
  999. package/esm2022/src/app/social/message/message.modal.mjs +0 -110
  1000. package/esm2022/src/app/social/message/message.model.mjs +0 -75
  1001. package/esm2022/src/app/social/message/message.module.mjs +0 -22
  1002. package/esm2022/src/app/social/message/message.service.mjs +0 -110
  1003. package/esm2022/src/app/social/social.errors.mjs +0 -10
  1004. package/esm2022/src/app/social/social.module.mjs +0 -22
  1005. package/esm2022/src/app/social/social.testing.module.mjs +0 -40
  1006. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -127
  1007. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -260
  1008. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +0 -257
  1009. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -129
  1010. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +0 -22
  1011. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -128
  1012. package/esm2022/src/app/social/user-event/user-event.model.mjs +0 -2
  1013. package/esm2022/src/app/social/user-event/user-event.module.mjs +0 -23
  1014. package/esm2022/src/app/social/user-event/user-event.service.mjs +0 -512
  1015. package/esm2022/src/environments/environment.class.mjs +0 -65
  1016. package/esm2022/src/environments/environment.loader.mjs +0 -77
  1017. package/esm2022/src/environments/environment.mjs +0 -109
  1018. package/esm2022/sumaris-net.ngx-components.mjs +0 -5
  1019. package/fesm2022/sumaris-net.ngx-components.mjs +0 -48596
  1020. package/fesm2022/sumaris-net.ngx-components.mjs.map +0 -1
  1021. package/index.d.ts +0 -5
  1022. package/public_api.d.ts +0 -344
  1023. package/src/app/admin/admin-routing.module.d.ts +0 -9
  1024. package/src/app/admin/admin.module.d.ts +0 -10
  1025. package/src/app/admin/services/filter/person.filter.d.ts +0 -22
  1026. package/src/app/admin/services/person.service.d.ts +0 -37
  1027. package/src/app/admin/services/validator/person.validator.d.ts +0 -23
  1028. package/src/app/admin/users/users.d.ts +0 -61
  1029. package/src/app/admin/users/users.module.d.ts +0 -14
  1030. package/src/app/core/about/about.modal.d.ts +0 -32
  1031. package/src/app/core/about/about.module.d.ts +0 -11
  1032. package/src/app/core/account/account.module.d.ts +0 -18
  1033. package/src/app/core/account/account.page.d.ts +0 -83
  1034. package/src/app/core/account/new-token.form.d.ts +0 -29
  1035. package/src/app/core/account/new-token.modal.d.ts +0 -29
  1036. package/src/app/core/account/password/change-password.form.d.ts +0 -19
  1037. package/src/app/core/account/password/change-password.module.d.ts +0 -11
  1038. package/src/app/core/account/password/change-password.page.d.ts +0 -36
  1039. package/src/app/core/account/token.table.d.ts +0 -27
  1040. package/src/app/core/auth/auth.form.d.ts +0 -38
  1041. package/src/app/core/auth/auth.modal.d.ts +0 -24
  1042. package/src/app/core/auth/auth.module.d.ts +0 -13
  1043. package/src/app/core/auth/reset-password.modal.d.ts +0 -29
  1044. package/src/app/core/core.module.d.ts +0 -28
  1045. package/src/app/core/core.testing.module.d.ts +0 -15
  1046. package/src/app/core/form/array/form-array.d.ts +0 -137
  1047. package/src/app/core/form/array/testing/form-array-test.module.d.ts +0 -12
  1048. package/src/app/core/form/array/testing/form-array.test.d.ts +0 -26
  1049. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +0 -37
  1050. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +0 -9
  1051. package/src/app/core/form/entity/editor.class.d.ts +0 -84
  1052. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +0 -126
  1053. package/src/app/core/form/entity/entity-editor.class.d.ts +0 -204
  1054. package/src/app/core/form/entity/entity-metadata.component.d.ts +0 -13
  1055. package/src/app/core/form/entity/entity.module.d.ts +0 -10
  1056. package/src/app/core/form/entity/tab-editor.class.d.ts +0 -66
  1057. package/src/app/core/form/form-container.class.d.ts +0 -127
  1058. package/src/app/core/form/form.class.d.ts +0 -144
  1059. package/src/app/core/form/form.module.d.ts +0 -14
  1060. package/src/app/core/form/form.utils.d.ts +0 -260
  1061. package/src/app/core/form/list/list.form.d.ts +0 -81
  1062. package/src/app/core/form/list/list.module.d.ts +0 -9
  1063. package/src/app/core/form/properties/properties.form.d.ts +0 -92
  1064. package/src/app/core/form/properties/properties.module.d.ts +0 -11
  1065. package/src/app/core/form/properties/properties.table.d.ts +0 -72
  1066. package/src/app/core/form/properties/properties.utils.d.ts +0 -59
  1067. package/src/app/core/form/properties/property.validator.d.ts +0 -27
  1068. package/src/app/core/form/properties/testing/properties-form.test.d.ts +0 -22
  1069. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +0 -12
  1070. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +0 -16
  1071. package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +0 -11
  1072. package/src/app/core/form/text-popover/text-popover.component.d.ts +0 -80
  1073. package/src/app/core/form/text-popover/text-popover.module.d.ts +0 -9
  1074. package/src/app/core/form/username/username.form.d.ts +0 -19
  1075. package/src/app/core/form/username/username.module.d.ts +0 -9
  1076. package/src/app/core/graphql/graphql.module.d.ts +0 -7
  1077. package/src/app/core/graphql/graphql.service.d.ts +0 -142
  1078. package/src/app/core/graphql/graphql.utils.d.ts +0 -47
  1079. package/src/app/core/home/home.d.ts +0 -109
  1080. package/src/app/core/home/home.module.d.ts +0 -14
  1081. package/src/app/core/icon/icon.component.d.ts +0 -13
  1082. package/src/app/core/icon/icon.module.d.ts +0 -9
  1083. package/src/app/core/install/install-upgrade-card.component.d.ts +0 -63
  1084. package/src/app/core/install/install-upgrade-card.module.d.ts +0 -9
  1085. package/src/app/core/menu/menu.component.d.ts +0 -66
  1086. package/src/app/core/menu/menu.model.d.ts +0 -144
  1087. package/src/app/core/menu/menu.module.d.ts +0 -12
  1088. package/src/app/core/menu/menu.service.d.ts +0 -93
  1089. package/src/app/core/menu/sub-menu-tab.directive.d.ts +0 -29
  1090. package/src/app/core/menu/testing/menu-other.testing.d.ts +0 -15
  1091. package/src/app/core/menu/testing/menu.testing.d.ts +0 -51
  1092. package/src/app/core/menu/testing/menu.testing.module.d.ts +0 -12
  1093. package/src/app/core/offline/update-offline-mode-card.component.d.ts +0 -11
  1094. package/src/app/core/offline/update-offline-mode-card.module.d.ts +0 -9
  1095. package/src/app/core/peer/select-peer.modal.d.ts +0 -101
  1096. package/src/app/core/peer/select-peer.module.d.ts +0 -12
  1097. package/src/app/core/register/register-confirm.page.d.ts +0 -24
  1098. package/src/app/core/register/register.form.d.ts +0 -49
  1099. package/src/app/core/register/register.modal.d.ts +0 -14
  1100. package/src/app/core/register/register.module.d.ts +0 -12
  1101. package/src/app/core/services/account.service.d.ts +0 -207
  1102. package/src/app/core/services/auth-guard.service.d.ts +0 -17
  1103. package/src/app/core/services/base-entity-service.class.d.ts +0 -135
  1104. package/src/app/core/services/base-graphql-service.class.d.ts +0 -77
  1105. package/src/app/core/services/base58.d.ts +0 -7
  1106. package/src/app/core/services/config/core.config.d.ts +0 -46
  1107. package/src/app/core/services/config.service.d.ts +0 -63
  1108. package/src/app/core/services/crypto.service.d.ts +0 -44
  1109. package/src/app/core/services/errors.d.ts +0 -65
  1110. package/src/app/core/services/local-settings.service.d.ts +0 -99
  1111. package/src/app/core/services/model/account.model.d.ts +0 -56
  1112. package/src/app/core/services/model/config.model.d.ts +0 -36
  1113. package/src/app/core/services/model/department.model.d.ts +0 -11
  1114. package/src/app/core/services/model/entity.decorators.d.ts +0 -17
  1115. package/src/app/core/services/model/entity.model.d.ts +0 -133
  1116. package/src/app/core/services/model/filter.model.d.ts +0 -37
  1117. package/src/app/core/services/model/history.model.d.ts +0 -20
  1118. package/src/app/core/services/model/model.enum.d.ts +0 -7
  1119. package/src/app/core/services/model/node-feature.model.d.ts +0 -14
  1120. package/src/app/core/services/model/peer.model.d.ts +0 -35
  1121. package/src/app/core/services/model/person.model.d.ts +0 -37
  1122. package/src/app/core/services/model/referential.model.d.ts +0 -84
  1123. package/src/app/core/services/model/settings.model.d.ts +0 -29
  1124. package/src/app/core/services/model/token.model.d.ts +0 -22
  1125. package/src/app/core/services/model/tree-item-entity.model.d.ts +0 -53
  1126. package/src/app/core/services/network.service.d.ts +0 -159
  1127. package/src/app/core/services/network.types.d.ts +0 -4
  1128. package/src/app/core/services/network.utils.d.ts +0 -38
  1129. package/src/app/core/services/pipes/account.pipes.d.ts +0 -15
  1130. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +0 -9
  1131. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +0 -11
  1132. package/src/app/core/services/pipes/pipes.module.d.ts +0 -11
  1133. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +0 -13
  1134. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +0 -15
  1135. package/src/app/core/services/platform.service.d.ts +0 -110
  1136. package/src/app/core/services/storage/entities-storage.service.d.ts +0 -108
  1137. package/src/app/core/services/storage/entity-store.class.d.ts +0 -113
  1138. package/src/app/core/services/testing/referential-filter.model.d.ts +0 -9
  1139. package/src/app/core/services/testing/referential.validator.d.ts +0 -22
  1140. package/src/app/core/services/validator/account.validator.d.ts +0 -24
  1141. package/src/app/core/services/validator/base.validator.class.d.ts +0 -21
  1142. package/src/app/core/services/validator/local-settings.validator.d.ts +0 -18
  1143. package/src/app/core/services/validator/user-settings.validator.d.ts +0 -10
  1144. package/src/app/core/services/validator/user-token.validator.d.ts +0 -13
  1145. package/src/app/core/settings/settings.module.d.ts +0 -12
  1146. package/src/app/core/settings/settings.page.d.ts +0 -88
  1147. package/src/app/core/table/async-table.class.d.ts +0 -395
  1148. package/src/app/core/table/column/actions-column.component.d.ts +0 -62
  1149. package/src/app/core/table/column/nav-actions-column.component.d.ts +0 -46
  1150. package/src/app/core/table/column/row-field.component.d.ts +0 -40
  1151. package/src/app/core/table/entities-async-table-datasource.class.d.ts +0 -100
  1152. package/src/app/core/table/entities-table-datasource.class.d.ts +0 -103
  1153. package/src/app/core/table/memory-table.class.d.ts +0 -25
  1154. package/src/app/core/table/table-select-columns.component.d.ts +0 -22
  1155. package/src/app/core/table/table.class.d.ts +0 -400
  1156. package/src/app/core/table/table.model.d.ts +0 -31
  1157. package/src/app/core/table/table.module.d.ts +0 -14
  1158. package/src/app/core/table/table.pipes.d.ts +0 -29
  1159. package/src/app/core/table/table.utils.d.ts +0 -13
  1160. package/src/app/core/table/testing/table-validator.service.d.ts +0 -17
  1161. package/src/app/core/table/testing/table.testing.d.ts +0 -54
  1162. package/src/app/core/table/testing/table.testing.module.d.ts +0 -14
  1163. package/src/app/core/table/testing/table2-validator.service.d.ts +0 -15
  1164. package/src/app/core/table/testing/table2.testing.d.ts +0 -48
  1165. package/src/app/shared/alerts.d.ts +0 -55
  1166. package/src/app/shared/audio/audio.d.ts +0 -45
  1167. package/src/app/shared/audio/audio.testing.d.ts +0 -13
  1168. package/src/app/shared/audio/audio.testing.module.d.ts +0 -11
  1169. package/src/app/shared/capacitor/keyboard.d.ts +0 -16
  1170. package/src/app/shared/capacitor/plugins.d.ts +0 -7
  1171. package/src/app/shared/constants.d.ts +0 -13
  1172. package/src/app/shared/dates.d.ts +0 -61
  1173. package/src/app/shared/debug/debug-service.class.d.ts +0 -5
  1174. package/src/app/shared/debug/debug.component.d.ts +0 -14
  1175. package/src/app/shared/debug/debug.module.d.ts +0 -12
  1176. package/src/app/shared/directives/autofocus.directive.d.ts +0 -18
  1177. package/src/app/shared/directives/autoresize.directive.d.ts +0 -20
  1178. package/src/app/shared/directives/autotitle.directive.d.ts +0 -11
  1179. package/src/app/shared/directives/directives.module.d.ts +0 -14
  1180. package/src/app/shared/directives/drag-and-drop.directive.d.ts +0 -17
  1181. package/src/app/shared/directives/ng-var.directive.d.ts +0 -12
  1182. package/src/app/shared/directives/resizable/resizable.component.d.ts +0 -21
  1183. package/src/app/shared/directives/resizable/resizable.directive.d.ts +0 -12
  1184. package/src/app/shared/directives/resizable/resizable.module.d.ts +0 -8
  1185. package/src/app/shared/directives/throttled-click.directive.d.ts +0 -16
  1186. package/src/app/shared/events.d.ts +0 -29
  1187. package/src/app/shared/file/csv.utils.d.ts +0 -30
  1188. package/src/app/shared/file/file.service.d.ts +0 -23
  1189. package/src/app/shared/file/file.utils.d.ts +0 -20
  1190. package/src/app/shared/file/images.utils.d.ts +0 -36
  1191. package/src/app/shared/file/json.utils.d.ts +0 -19
  1192. package/src/app/shared/file/uri.utils.d.ts +0 -8
  1193. package/src/app/shared/file/url.utils.d.ts +0 -77
  1194. package/src/app/shared/focusable.d.ts +0 -4
  1195. package/src/app/shared/form/field.component.d.ts +0 -85
  1196. package/src/app/shared/form/field.model.d.ts +0 -82
  1197. package/src/app/shared/form/loading-spinner.d.ts +0 -8
  1198. package/src/app/shared/forms.d.ts +0 -135
  1199. package/src/app/shared/functions.d.ts +0 -206
  1200. package/src/app/shared/geolocation/geolocation.utils.d.ts +0 -19
  1201. package/src/app/shared/gesture/gesture-config.d.ts +0 -15
  1202. package/src/app/shared/gesture/hammer.utils.d.ts +0 -16
  1203. package/src/app/shared/graph/colors.utils.d.ts +0 -17
  1204. package/src/app/shared/graph/graph-colors.d.ts +0 -63
  1205. package/src/app/shared/guard/component-dirty.guard.d.ts +0 -14
  1206. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +0 -8
  1207. package/src/app/shared/hotkeys/hotkeys.service.d.ts +0 -48
  1208. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +0 -11
  1209. package/src/app/shared/http/http.utils.d.ts +0 -28
  1210. package/src/app/shared/image/gallery/image-gallery.component.d.ts +0 -137
  1211. package/src/app/shared/image/gallery/image-gallery.module.d.ts +0 -15
  1212. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +0 -12
  1213. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +0 -33
  1214. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +0 -16
  1215. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +0 -13
  1216. package/src/app/shared/image/image.model.d.ts +0 -7
  1217. package/src/app/shared/image/image.module.d.ts +0 -8
  1218. package/src/app/shared/image/image.service.d.ts +0 -36
  1219. package/src/app/shared/inputs.d.ts +0 -36
  1220. package/src/app/shared/interceptors/progess.interceptor.d.ts +0 -8
  1221. package/src/app/shared/logging/log-level.model.d.ts +0 -38
  1222. package/src/app/shared/logging/logger.model.d.ts +0 -68
  1223. package/src/app/shared/logging/logging-service.class.d.ts +0 -39
  1224. package/src/app/shared/logging/logging-service.config.d.ts +0 -25
  1225. package/src/app/shared/logging/logging-service.module.d.ts +0 -9
  1226. package/src/app/shared/markdown/markdown.component.d.ts +0 -86
  1227. package/src/app/shared/markdown/markdown.directive.d.ts +0 -13
  1228. package/src/app/shared/markdown/markdown.modal.d.ts +0 -49
  1229. package/src/app/shared/markdown/markdown.module.d.ts +0 -17
  1230. package/src/app/shared/markdown/markdown.service.d.ts +0 -37
  1231. package/src/app/shared/markdown/markdown.utils.d.ts +0 -26
  1232. package/src/app/shared/markdown/testing/markdown.test.d.ts +0 -18
  1233. package/src/app/shared/markdown/testing/markdown.testing.module.d.ts +0 -12
  1234. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +0 -74
  1235. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +0 -211
  1236. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +0 -22
  1237. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +0 -5
  1238. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +0 -48
  1239. package/src/app/shared/material/badge/badge.directive.d.ts +0 -43
  1240. package/src/app/shared/material/badge/badge.module.d.ts +0 -10
  1241. package/src/app/shared/material/badge/badge.test.d.ts +0 -21
  1242. package/src/app/shared/material/boolean/boolean.module.d.ts +0 -20
  1243. package/src/app/shared/material/boolean/material.boolean.d.ts +0 -93
  1244. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +0 -26
  1245. package/src/app/shared/material/chips/chips.module.d.ts +0 -21
  1246. package/src/app/shared/material/chips/material.chips.d.ts +0 -164
  1247. package/src/app/shared/material/chips/testing/chips.test.d.ts +0 -32
  1248. package/src/app/shared/material/datetime/datetime.module.d.ts +0 -24
  1249. package/src/app/shared/material/datetime/material.date.d.ts +0 -90
  1250. package/src/app/shared/material/datetime/material.dateshort.d.ts +0 -89
  1251. package/src/app/shared/material/datetime/material.datetime.d.ts +0 -116
  1252. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +0 -37
  1253. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +0 -32
  1254. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +0 -31
  1255. package/src/app/shared/material/duration/duration.module.d.ts +0 -18
  1256. package/src/app/shared/material/duration/duration.utils.d.ts +0 -2
  1257. package/src/app/shared/material/duration/material.duration.d.ts +0 -64
  1258. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +0 -23
  1259. package/src/app/shared/material/latlong/latlong.utils.d.ts +0 -59
  1260. package/src/app/shared/material/latlong/material.latlong-input.d.ts +0 -85
  1261. package/src/app/shared/material/latlong/material.latlong.d.ts +0 -90
  1262. package/src/app/shared/material/latlong/material.latlong.module.d.ts +0 -21
  1263. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +0 -28
  1264. package/src/app/shared/material/material.animations.d.ts +0 -8
  1265. package/src/app/shared/material/material.config.d.ts +0 -3
  1266. package/src/app/shared/material/material.module.d.ts +0 -45
  1267. package/src/app/shared/material/material.testing.module.d.ts +0 -32
  1268. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -12
  1269. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +0 -10
  1270. package/src/app/shared/material/swipe/material.swipe.d.ts +0 -89
  1271. package/src/app/shared/material/swipe/swipe.module.d.ts +0 -16
  1272. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +0 -22
  1273. package/src/app/shared/material/test/test-component.d.ts +0 -75
  1274. package/src/app/shared/material/testing/common.test.d.ts +0 -25
  1275. package/src/app/shared/material/text/testing/text-form.testing.d.ts +0 -19
  1276. package/src/app/shared/material/text/text-form.component.d.ts +0 -66
  1277. package/src/app/shared/material/text/text-form.module.d.ts +0 -16
  1278. package/src/app/shared/modules.d.ts +0 -9
  1279. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +0 -62
  1280. package/src/app/shared/named-filter/named-filter.model.d.ts +0 -32
  1281. package/src/app/shared/named-filter/named-filter.module.d.ts +0 -13
  1282. package/src/app/shared/named-filter/named-filter.service.d.ts +0 -32
  1283. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +0 -34
  1284. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +0 -10
  1285. package/src/app/shared/observables.d.ts +0 -30
  1286. package/src/app/shared/pipes/arrays.pipe.d.ts +0 -82
  1287. package/src/app/shared/pipes/badge.pipes.d.ts +0 -7
  1288. package/src/app/shared/pipes/colors.pipe.d.ts +0 -9
  1289. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +0 -25
  1290. package/src/app/shared/pipes/date-format.pipe.d.ts +0 -35
  1291. package/src/app/shared/pipes/date-from-now.pipe.d.ts +0 -12
  1292. package/src/app/shared/pipes/dates.pipe.d.ts +0 -10
  1293. package/src/app/shared/pipes/display-with.pipe.d.ts +0 -8
  1294. package/src/app/shared/pipes/duration.pipe.d.ts +0 -23
  1295. package/src/app/shared/pipes/file-size.pipe.d.ts +0 -30
  1296. package/src/app/shared/pipes/form.pipes.d.ts +0 -69
  1297. package/src/app/shared/pipes/highlight.pipe.d.ts +0 -11
  1298. package/src/app/shared/pipes/html.pipes.d.ts +0 -22
  1299. package/src/app/shared/pipes/latlong-format.pipe.d.ts +0 -20
  1300. package/src/app/shared/pipes/maps.pipe.d.ts +0 -23
  1301. package/src/app/shared/pipes/maskito.pipe.d.ts +0 -14
  1302. package/src/app/shared/pipes/math.pipes.d.ts +0 -26
  1303. package/src/app/shared/pipes/ng-init.pipe.d.ts +0 -8
  1304. package/src/app/shared/pipes/number-format.pipe.d.ts +0 -9
  1305. package/src/app/shared/pipes/observable.pipes.d.ts +0 -25
  1306. package/src/app/shared/pipes/pipes.module.d.ts +0 -35
  1307. package/src/app/shared/pipes/property.pipes.d.ts +0 -41
  1308. package/src/app/shared/pipes/selection.pipes.d.ts +0 -62
  1309. package/src/app/shared/pipes/string.pipes.d.ts +0 -68
  1310. package/src/app/shared/pipes/translate-context.pipe.d.ts +0 -17
  1311. package/src/app/shared/pipes/types.pipes.d.ts +0 -30
  1312. package/src/app/shared/pipes/url.pipes.d.ts +0 -27
  1313. package/src/app/shared/platforms.d.ts +0 -16
  1314. package/src/app/shared/print/print.service.d.ts +0 -94
  1315. package/src/app/shared/regexps.d.ts +0 -32
  1316. package/src/app/shared/rx-state/rx-state.decorators.d.ts +0 -7
  1317. package/src/app/shared/rx-state/rx-state.module.d.ts +0 -10
  1318. package/src/app/shared/rx-state/rx-state.types.d.ts +0 -4
  1319. package/src/app/shared/services/entity-service.class.d.ts +0 -75
  1320. package/src/app/shared/services/job.utils.d.ts +0 -20
  1321. package/src/app/shared/services/memory-entity-service.class.d.ts +0 -79
  1322. package/src/app/shared/services/progress-bar.service.d.ts +0 -20
  1323. package/src/app/shared/services/startable-observable-service.class.d.ts +0 -36
  1324. package/src/app/shared/services/startable-service.class.d.ts +0 -37
  1325. package/src/app/shared/services/translate-context.service.d.ts +0 -29
  1326. package/src/app/shared/services/validator-service.class.d.ts +0 -11
  1327. package/src/app/shared/services.d.ts +0 -17
  1328. package/src/app/shared/shared-routing.module.d.ts +0 -23
  1329. package/src/app/shared/shared.module.d.ts +0 -33
  1330. package/src/app/shared/shared.testing.module.d.ts +0 -20
  1331. package/src/app/shared/storage/storage-explorer.component.d.ts +0 -59
  1332. package/src/app/shared/storage/storage-explorer.module.d.ts +0 -13
  1333. package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +0 -9
  1334. package/src/app/shared/storage/storage-explorer.testing.module.d.ts +0 -10
  1335. package/src/app/shared/storage/storage.service.d.ts +0 -22
  1336. package/src/app/shared/storage/storage.utils.d.ts +0 -19
  1337. package/src/app/shared/testing/maskito.test.d.ts +0 -10
  1338. package/src/app/shared/testing/observable.test.d.ts +0 -25
  1339. package/src/app/shared/testing/tests.page.d.ts +0 -20
  1340. package/src/app/shared/toast/toast.testing.d.ts +0 -15
  1341. package/src/app/shared/toast/toast.testing.module.d.ts +0 -12
  1342. package/src/app/shared/toast/toasts.d.ts +0 -16
  1343. package/src/app/shared/toolbar/modal-toolbar.d.ts +0 -21
  1344. package/src/app/shared/toolbar/toolbar.d.ts +0 -70
  1345. package/src/app/shared/toolbar/toolbar.module.d.ts +0 -16
  1346. package/src/app/shared/types.d.ts +0 -36
  1347. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +0 -21
  1348. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +0 -11
  1349. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +0 -41
  1350. package/src/app/shared/upload-file/upload-file.component.d.ts +0 -50
  1351. package/src/app/shared/upload-file/upload-file.model.d.ts +0 -30
  1352. package/src/app/shared/validator/form-error-adapter.class.d.ts +0 -33
  1353. package/src/app/shared/validator/validators.d.ts +0 -139
  1354. package/src/app/shared/version/versions.d.ts +0 -26
  1355. package/src/app/social/job/job.module.d.ts +0 -12
  1356. package/src/app/social/job/progression/job-progression.component.d.ts +0 -23
  1357. package/src/app/social/job/progression/job-progression.icon.d.ts +0 -62
  1358. package/src/app/social/job/progression/job-progression.list.d.ts +0 -19
  1359. package/src/app/social/job/progression/job-progression.model.d.ts +0 -10
  1360. package/src/app/social/job/progression/job-progression.service.d.ts +0 -33
  1361. package/src/app/social/job/testing/job-progression.testing.d.ts +0 -13
  1362. package/src/app/social/job/testing/job-progression.testing.service.d.ts +0 -9
  1363. package/src/app/social/job/testing/job.testing.module.d.ts +0 -11
  1364. package/src/app/social/message/message.form.d.ts +0 -36
  1365. package/src/app/social/message/message.modal.d.ts +0 -43
  1366. package/src/app/social/message/message.model.d.ts +0 -33
  1367. package/src/app/social/message/message.module.d.ts +0 -12
  1368. package/src/app/social/message/message.service.d.ts +0 -32
  1369. package/src/app/social/social.errors.d.ts +0 -9
  1370. package/src/app/social/social.module.d.ts +0 -20
  1371. package/src/app/social/social.testing.module.d.ts +0 -13
  1372. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +0 -32
  1373. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +0 -71
  1374. package/src/app/social/user-event/testing/user-event.testing.d.ts +0 -35
  1375. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -42
  1376. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +0 -11
  1377. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +0 -42
  1378. package/src/app/social/user-event/user-event.model.d.ts +0 -44
  1379. package/src/app/social/user-event/user-event.module.d.ts +0 -13
  1380. package/src/app/social/user-event/user-event.service.d.ts +0 -124
  1381. package/src/environments/environment.class.d.ts +0 -75
  1382. package/src/environments/environment.d.ts +0 -2
  1383. package/src/environments/environment.loader.d.ts +0 -24
@@ -1,305 +0,0 @@
1
- import { Toasts } from '../toast/toasts';
2
- import { Inject, Injectable } from '@angular/core';
3
- import { DOCUMENT } from '@angular/common';
4
- import { isNil, isNilOrBlank, isNotNil, isNotNilOrBlank } from '../functions';
5
- import { waitForTrue } from '../observables';
6
- import { mergeMap, timer } from 'rxjs';
7
- import { isChrome } from '../platforms';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@ionic/angular";
10
- import * as i2 from "@ngx-translate/core";
11
- import * as i3 from "../storage/storage.service";
12
- export const PRINT_LOADING_STORAGE_KEY_PREFIX = 'print-loading-';
13
- export const PRINT_ID_QUERY_PARAM = 'print-id';
14
- export class PrintService {
15
- toastController;
16
- translate;
17
- storage;
18
- document;
19
- _printId = 0;
20
- constructor(toastController, translate, storage, document) {
21
- this.toastController = toastController;
22
- this.translate = translate;
23
- this.storage = storage;
24
- this.document = document;
25
- }
26
- nextJobId() {
27
- return ++this._printId;
28
- }
29
- /**
30
- * Extracts and returns the job ID from a given URL.
31
- *
32
- * @param {string} [url] - The URL from which to extract the job ID. If not provided, `window.location.href` will be used.
33
- * @return {number | undefined} The extracted job ID as a number, or `undefined` if the job ID is not present or invalid.
34
- */
35
- getJobId(url) {
36
- url = url || window.location.href;
37
- const matches = url.match(/print-id=(\d+)/);
38
- return matches?.[1] || undefined;
39
- }
40
- /**
41
- * Determines whether the provided URL or the current page's URL contains
42
- * a specific query parameter, indicating it's a printing-related URL.
43
- *
44
- * @param {string} [url] - The optional URL to check. If not provided, the current page's URL is used.
45
- * @param {string} [queryParam='print-id'] - The query parameter to look for, defaulting to 'print-id'.
46
- * @return {boolean} Returns true if the query parameter is found in the URL; otherwise, false.
47
- */
48
- isPrintingUrl(url, queryParam = 'print-id') {
49
- let query;
50
- if (isNotNilOrBlank(url))
51
- query = new URL(url).search;
52
- query = query || window.location.search || '?';
53
- return query.indexOf(queryParam) !== -1;
54
- }
55
- async printElement(element, opts) {
56
- if (!element)
57
- throw new Error("Missing required 'element' argument");
58
- return this.printHTML(element.innerHTML, opts);
59
- }
60
- async printHTML(html, opts) {
61
- if (!html)
62
- throw new Error("Missing required 'html' argument");
63
- // Create iframe
64
- const iframe = this.createPrintIframeByHtml(html, opts);
65
- return this.printIframe(iframe, opts);
66
- }
67
- /**
68
- * Prints the content of a URL by rendering it in an iframe.
69
- *
70
- * @param {string} url The URL of the content to print. This parameter is required.
71
- * @param {Omit<PrintOptions, 'style'>} [opts] Optional settings for printing, excluding the 'style' option.
72
- * @return {Promise<number>} A promise that resolves to the ID of the print job.
73
- */
74
- async printUrl(url, opts) {
75
- if (isNilOrBlank(url))
76
- throw new Error("Missing required 'url' argument");
77
- const jobId = opts?.id ?? this.nextJobId();
78
- // Create iframe
79
- const iframe = this.createPrintIframeByUrl(url, { id: jobId });
80
- // Launch the print job
81
- return this.printIframe(iframe, opts);
82
- }
83
- /**
84
- * Prints the content of the specified iframe element.
85
- *
86
- * @param {HTMLIFrameElement} iframe - The iframe element whose content needs to be printed. Must be a valid and loaded iframe element.
87
- * @param {PrintOptions} [opts] - Optional parameters for the print operation, which may include options for toast messages and job configuration.
88
- * @return {Promise<number>} A promise that resolves to the unique ID of the print job.
89
- * @throws Will throw an error if the required 'iframe' argument is missing or invalid.
90
- */
91
- async printIframe(iframe, opts) {
92
- if (!iframe)
93
- throw new Error("Missing required 'iframe' argument");
94
- const jobId = opts?.id ?? this.nextJobId();
95
- const toastId = `printing-${jobId}`;
96
- const showLoadingToast = opts?.showToast !== false;
97
- if (showLoadingToast)
98
- await this.showToast({
99
- id: toastId,
100
- message: opts?.toastMessage || 'COMMON.PLEASE_WAIT',
101
- duration: 0,
102
- });
103
- try {
104
- // Wait end of iframe load
105
- await this.waitIdle(iframe, { id: jobId });
106
- // Print (and wait end of print)
107
- await this.print(iframe);
108
- return jobId;
109
- }
110
- catch (err) {
111
- console.error('[print-service] Failed to create hidden iframe', err);
112
- }
113
- finally {
114
- iframe.remove();
115
- if (showLoadingToast)
116
- await this.toastController.dismiss(null, null, toastId);
117
- }
118
- }
119
- async markAsLoading(id) {
120
- console.debug(`[print-service] Mark print job #${id} as loading`);
121
- await this.storage.set(PRINT_LOADING_STORAGE_KEY_PREFIX + id, '1');
122
- }
123
- async markAsLoaded(id) {
124
- console.debug(`[print-service] Mark print job #${id} as loaded`);
125
- await this.storage.remove(PRINT_LOADING_STORAGE_KEY_PREFIX + id);
126
- }
127
- async isLoaded(id) {
128
- const result = await this.storage.get(PRINT_LOADING_STORAGE_KEY_PREFIX + id);
129
- return isNil(result);
130
- }
131
- async isLoading(id) {
132
- return !(await this.isLoaded(id));
133
- }
134
- /* -- protected functions -- */
135
- createPrintIframeByUrl(url, opts) {
136
- // Make sure to add the job id inside the URL (e.g. to allow getJobIdFromUrl() to retrieve it)
137
- if (isNotNil(opts?.id)) {
138
- const newUrl = new URL(url);
139
- newUrl.searchParams.set(PRINT_ID_QUERY_PARAM, '' + opts.id);
140
- url = newUrl.href;
141
- }
142
- // Create a iframe with the given url
143
- const iframe = this.document.createElement('iframe');
144
- iframe.classList.add('cdk-visually-hidden');
145
- iframe.style.width = '100%';
146
- iframe.style.height = '100%';
147
- this.document.body.appendChild(iframe);
148
- iframe.src = url;
149
- return iframe;
150
- }
151
- createPrintIframeByHtml(html, opts) {
152
- if (!html)
153
- throw new Error("Missing required 'html' argument");
154
- const lang = this.document.documentElement?.lang || 'en';
155
- // Create an empty iframe
156
- const iframe = this.document.createElement('iframe');
157
- iframe.classList.add('cdk-visually-hidden');
158
- iframe.style.width = '100%';
159
- iframe.style.height = '100%';
160
- this.document.body.appendChild(iframe);
161
- // Write iframe content
162
- const iframeDocument = iframe.contentDocument || iframe.contentWindow?.document;
163
- if (iframeDocument) {
164
- iframeDocument.open();
165
- iframeDocument.write(`
166
- <!DOCTYPE html>
167
- <html lang="${lang}" class="print-pdf">
168
- <head>
169
- <title>${opts?.title || ''}</title>
170
- <style>
171
- @media print {
172
- body {
173
- font-family: 'Roboto', Helvetica, Arial, sans-serif;
174
- margin: 0;
175
- padding: 0;
176
- overflow: hidden;
177
- }
178
- img {
179
- max-width: 100%;
180
- height: auto;
181
- page-break-inside: avoid;
182
- }
183
- }
184
- ${opts?.inlineStyle || ''}
185
- </style>
186
- </head>
187
- <body>
188
- ${html}
189
- </body>
190
- </html>
191
- `);
192
- iframeDocument.close();
193
- }
194
- // Set iframe style
195
- // FIXME - Ignore style injection, because it failed in Firefox (e.g. on user manual) and Chrome (e.g. in privacy policy)
196
- // Nothing appear in the print dialog
197
- //this.applyDocumentStyleToIframe(iframe);
198
- return iframe;
199
- }
200
- /**
201
- * Applies the styles from the provided document, including external stylesheets and inline styles,
202
- * to the specified iframe's document.
203
- *
204
- * @param {HTMLIFrameElement} iframe - The iframe to which the styles are applied.
205
- * @return {void} Does not return a value.
206
- */
207
- applyDocumentStyleToIframe(iframe) {
208
- const iframeDocument = iframe.contentDocument || iframe.contentWindow?.document;
209
- if (iframeDocument) {
210
- // Récupérer tous les styles (liens CSS)
211
- const links = Array.from(this.document.querySelectorAll('style,link[rel="stylesheet"]'));
212
- links.forEach((element) => {
213
- // Insert inline style
214
- if (element.tagName === 'STYLE') {
215
- const newStyle = iframeDocument.createElement('style');
216
- newStyle.innerHTML = element.innerHTML;
217
- iframeDocument.head.appendChild(newStyle);
218
- console.debug('[print-service] Add style to iframe', newStyle);
219
- }
220
- // Insert link to stylesheet file
221
- else if (element.tagName === 'LINK' && element.getAttribute('href')) {
222
- const newLink = iframeDocument.createElement('link');
223
- newLink.rel = 'stylesheet';
224
- newLink.href = element.getAttribute('href');
225
- iframeDocument.head.appendChild(newLink);
226
- console.debug('[print-service] Add stylesheet to iframe: ', newLink.href);
227
- }
228
- });
229
- }
230
- }
231
- async waitIdle(iframe, opts) {
232
- // Wait job finished
233
- const printId = opts?.id ?? this._printId;
234
- await waitForTrue(timer(500, 500).pipe(mergeMap(() => this.isLoaded(printId))), { timeout: opts?.timeout });
235
- // Wait end of iframe load
236
- await new Promise((resolve, reject) => {
237
- const iframeWindow = iframe.contentWindow?.window || iframe.contentWindow;
238
- if (iframeWindow.document.readyState === 'complete') {
239
- resolve();
240
- }
241
- else {
242
- // Stop if timeout reached
243
- if (opts?.timeout > 0) {
244
- setTimeout(() => reject('timeout'), opts.timeout);
245
- }
246
- const readyListener = () => {
247
- if (iframeWindow.document.readyState === 'complete') {
248
- resolve();
249
- iframeWindow.document.removeEventListener('readystatechange', readyListener);
250
- }
251
- };
252
- iframeWindow.document.addEventListener('readystatechange', readyListener);
253
- }
254
- });
255
- }
256
- /**
257
- * Triggers the print functionality of the given iframe and resolves or rejects based on the print completion or timeout.
258
- *
259
- * @param {HTMLIFrameElement} iframe - The iframe element to be printed.
260
- * @param {{timeout?: number}} [opts] - An optional configuration object.
261
- * @param {number} [opts.timeout] - The maximum time in milliseconds to wait for the print to complete before rejecting the promise.
262
- * @return {Promise<void>} A promise that resolves after the print is completed or rejects if a timeout occurs.
263
- */
264
- print(iframe, opts) {
265
- return new Promise((resolve, reject) => {
266
- const iframeWindow = iframe.contentWindow?.window || iframe.contentWindow;
267
- // Stop if timeout reached
268
- if (opts?.timeout > 0) {
269
- setTimeout(() => reject('timeout'), opts.timeout);
270
- }
271
- // On Chrome
272
- if (isChrome(window)) {
273
- // Wait after print event, to resolve the promise
274
- const afterPrintListener = () => {
275
- console.debug('[print-service] After print');
276
- resolve();
277
- // Remove the listener
278
- iframeWindow.removeEventListener('afterprint', afterPrintListener);
279
- };
280
- iframeWindow.addEventListener('afterprint', afterPrintListener);
281
- iframe.contentWindow.window.print();
282
- }
283
- // Otherwise (e.g. Firefox)
284
- else {
285
- iframe.contentWindow.window.print();
286
- resolve();
287
- }
288
- });
289
- }
290
- async showToast(opts) {
291
- if (!this.toastController)
292
- throw new Error("Missing toastController in component's constructor");
293
- return await Toasts.show(this.toastController, this.translate, opts);
294
- }
295
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintService, deps: [{ token: i1.ToastController }, { token: i2.TranslateService }, { token: i3.StorageService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
296
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintService, providedIn: 'root' });
297
- }
298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintService, decorators: [{
299
- type: Injectable,
300
- args: [{ providedIn: 'root' }]
301
- }], ctorParameters: () => [{ type: i1.ToastController }, { type: i2.TranslateService }, { type: i3.StorageService }, { type: Document, decorators: [{
302
- type: Inject,
303
- args: [DOCUMENT]
304
- }] }] });
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3ByaW50L3ByaW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUkzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFVeEMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsZ0JBQWdCLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0FBRy9DLE1BQU0sT0FBTyxZQUFZO0lBSVg7SUFDQTtJQUNBO0lBQ2tCO0lBTnRCLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFFckIsWUFDWSxlQUFnQyxFQUNoQyxTQUEyQixFQUMzQixPQUF1QixFQUNMLFFBQWtCO1FBSHBDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUNMLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDN0MsQ0FBQztJQUVKLFNBQVM7UUFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFR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UUFDakcsT0FBTyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7d0dBdlRVLFlBQVksK0dBT2IsUUFBUTs0R0FQUCxZQUFZLGNBREMsTUFBTTs7NEZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFRN0IsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hvd1RvYXN0T3B0aW9ucywgVG9hc3RzIH0gZnJvbSAnLi4vdG9hc3QvdG9hc3RzJztcbmltcG9ydCB7IE92ZXJsYXlFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zdG9yYWdlL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBpc05pbCwgaXNOaWxPckJsYW5rLCBpc05vdE5pbCwgaXNOb3ROaWxPckJsYW5rIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JUcnVlIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc0Nocm9tZSB9IGZyb20gJy4uL3BsYXRmb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpbnRPcHRpb25zIHtcbiAgaWQ/OiBzdHJpbmcgfCBudW1iZXI7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBzaG93VG9hc3Q/OiBib29sZWFuO1xuICB0b2FzdE1lc3NhZ2U/OiBzdHJpbmc7XG4gIHN0eWxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgUFJJTlRfTE9BRElOR19TVE9SQUdFX0tFWV9QUkVGSVggPSAncHJpbnQtbG9hZGluZy0nO1xuZXhwb3J0IGNvbnN0IFBSSU5UX0lEX1FVRVJZX1BBUkFNID0gJ3ByaW50LWlkJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcmludFNlcnZpY2Uge1xuICBwcml2YXRlIF9wcmludElkID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgdG9hc3RDb250cm9sbGVyOiBUb2FzdENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgc3RvcmFnZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJvdGVjdGVkIGRvY3VtZW50OiBEb2N1bWVudFxuICApIHt9XG5cbiAgbmV4dEpvYklkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICsrdGhpcy5fcHJpbnRJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBhbmQgcmV0dXJucyB0aGUgam9iIElEIGZyb20gYSBnaXZlbiBVUkwuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbdXJsXSAtIFRoZSBVUkwgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBqb2IgSUQuIElmIG5vdCBwcm92aWRlZCwgYHdpbmRvdy5sb2NhdGlvbi5ocmVmYCB3aWxsIGJlIHVzZWQuXG4gICAqIEByZXR1cm4ge251bWJlciB8IHVuZGVmaW5lZH0gVGhlIGV4dHJhY3RlZCBqb2IgSUQgYXMgYSBudW1iZXIsIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBqb2IgSUQgaXMgbm90IHByZXNlbnQgb3IgaW52YWxpZC5cbiAgICovXG4gIGdldEpvYklkKHVybD86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgdXJsID0gdXJsIHx8IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIGNvbnN0IG1hdGNoZXMgPSB1cmwubWF0Y2goL3ByaW50LWlkPShcXGQrKS8pO1xuICAgIHJldHVybiBtYXRjaGVzPy5bMV0gfHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgcHJvdmlkZWQgVVJMIG9yIHRoZSBjdXJyZW50IHBhZ2UncyBVUkwgY29udGFpbnNcbiAgICogYSBzcGVjaWZpYyBxdWVyeSBwYXJhbWV0ZXIsIGluZGljYXRpbmcgaXQncyBhIHByaW50aW5nLXJlbGF0ZWQgVVJMLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3VybF0gLSBUaGUgb3B0aW9uYWwgVVJMIHRvIGNoZWNrLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBjdXJyZW50IHBhZ2UncyBVUkwgaXMgdXNlZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtxdWVyeVBhcmFtPSdwcmludC1pZCddIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlciB0byBsb29rIGZvciwgZGVmYXVsdGluZyB0byAncHJpbnQtaWQnLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXJ5IHBhcmFtZXRlciBpcyBmb3VuZCBpbiB0aGUgVVJMOyBvdGhlcndpc2UsIGZhbHNlLlxuICAgKi9cbiAgaXNQcmludGluZ1VybCh1cmw/OiBzdHJpbmcsIHF1ZXJ5UGFyYW06IHN0cmluZyA9ICdwcmludC1pZCcpOiBib29sZWFuIHtcbiAgICBsZXQgcXVlcnk6IHN0cmluZztcbiAgICBpZiAoaXNOb3ROaWxPckJsYW5rKHVybCkpIHF1ZXJ5ID0gbmV3IFVSTCh1cmwpLnNlYXJjaDtcbiAgICBxdWVyeSA9IHF1ZXJ5IHx8IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggfHwgJz8nO1xuICAgIHJldHVybiBxdWVyeS5pbmRleE9mKHF1ZXJ5UGFyYW0pICE9PSAtMTtcbiAgfVxuXG4gIGFzeW5jIHByaW50RWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgb3B0cz86IFByaW50T3B0aW9ucyk6IFByb21pc2U8bnVtYmVyIHwgc3RyaW5nPiB7XG4gICAgaWYgKCFlbGVtZW50KSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkICdlbGVtZW50JyBhcmd1bWVudFwiKTtcblxuICAgIHJldHVybiB0aGlzLnByaW50SFRNTChlbGVtZW50LmlubmVySFRNTCwgb3B0cyk7XG4gIH1cblxuICBhc3luYyBwcmludEhUTUwoaHRtbDogc3RyaW5nLCBvcHRzPzogUHJpbnRPcHRpb25zKTogUHJvbWlzZTxudW1iZXIgfCBzdHJpbmc+IHtcbiAgICBpZiAoIWh0bWwpIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgcmVxdWlyZWQgJ2h0bWwnIGFyZ3VtZW50XCIpO1xuXG4gICAgLy8gQ3JlYXRlIGlmcmFtZVxuICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuY3JlYXRlUHJpbnRJZnJhbWVCeUh0bWwoaHRtbCwgb3B0cyk7XG5cbiAgICByZXR1cm4gdGhpcy5wcmludElmcmFtZShpZnJhbWUsIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaW50cyB0aGUgY29udGVudCBvZiBhIFVSTCBieSByZW5kZXJpbmcgaXQgaW4gYW4gaWZyYW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgb2YgdGhlIGNvbnRlbnQgdG8gcHJpbnQuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkLlxuICAgKiBAcGFyYW0ge09taXQ8UHJpbnRPcHRpb25zLCAnc3R5bGUnPn0gW29wdHNdIE9wdGlvbmFsIHNldHRpbmdzIGZvciBwcmludGluZywgZXhjbHVkaW5nIHRoZSAnc3R5bGUnIG9wdGlvbi5cbiAgICogQHJldHVybiB7UHJvbWlzZTxudW1iZXI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgSUQgb2YgdGhlIHByaW50IGpvYi5cbiAgICovXG4gIGFzeW5jIHByaW50VXJsKHVybDogc3RyaW5nLCBvcHRzPzogT21pdDxQcmludE9wdGlvbnMsICdzdHlsZSc+KTogUHJvbWlzZTxudW1iZXIgfCBzdHJpbmc+IHtcbiAgICBpZiAoaXNOaWxPckJsYW5rKHVybCkpIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgcmVxdWlyZWQgJ3VybCcgYXJndW1lbnRcIik7XG5cbiAgICBjb25zdCBqb2JJZCA9IG9wdHM/LmlkID8/IHRoaXMubmV4dEpvYklkKCk7XG5cbiAgICAvLyBDcmVhdGUgaWZyYW1lXG4gICAgY29uc3QgaWZyYW1lID0gdGhpcy5jcmVhdGVQcmludElmcmFtZUJ5VXJsKHVybCwgeyBpZDogam9iSWQgfSk7XG5cbiAgICAvLyBMYXVuY2ggdGhlIHByaW50IGpvYlxuICAgIHJldHVybiB0aGlzLnByaW50SWZyYW1lKGlmcmFtZSwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogUHJpbnRzIHRoZSBjb250ZW50IG9mIHRoZSBzcGVjaWZpZWQgaWZyYW1lIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7SFRNTElGcmFtZUVsZW1lbnR9IGlmcmFtZSAtIFRoZSBpZnJhbWUgZWxlbWVudCB3aG9zZSBjb250ZW50IG5lZWRzIHRvIGJlIHByaW50ZWQuIE11c3QgYmUgYSB2YWxpZCBhbmQgbG9hZGVkIGlmcmFtZSBlbGVtZW50LlxuICAgKiBAcGFyYW0ge1ByaW50T3B0aW9uc30gW29wdHNdIC0gT3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIHByaW50IG9wZXJhdGlvbiwgd2hpY2ggbWF5IGluY2x1ZGUgb3B0aW9ucyBmb3IgdG9hc3QgbWVzc2FnZXMgYW5kIGpvYiBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPG51bWJlcj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSB1bmlxdWUgSUQgb2YgdGhlIHByaW50IGpvYi5cbiAgICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSByZXF1aXJlZCAnaWZyYW1lJyBhcmd1bWVudCBpcyBtaXNzaW5nIG9yIGludmFsaWQuXG4gICAqL1xuICBhc3luYyBwcmludElmcmFtZShpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50LCBvcHRzPzogUHJpbnRPcHRpb25zKTogUHJvbWlzZTxudW1iZXIgfCBzdHJpbmc+IHtcbiAgICBpZiAoIWlmcmFtZSkgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyByZXF1aXJlZCAnaWZyYW1lJyBhcmd1bWVudFwiKTtcblxuICAgIGNvbnN0IGpvYklkID0gb3B0cz8uaWQgPz8gdGhpcy5uZXh0Sm9iSWQoKTtcbiAgICBjb25zdCB0b2FzdElkID0gYHByaW50aW5nLSR7am9iSWR9YDtcbiAgICBjb25zdCBzaG93TG9hZGluZ1RvYXN0ID0gb3B0cz8uc2hvd1RvYXN0ICE9PSBmYWxzZTtcbiAgICBpZiAoc2hvd0xvYWRpbmdUb2FzdClcbiAgICAgIGF3YWl0IHRoaXMuc2hvd1RvYXN0KHtcbiAgICAgICAgaWQ6IHRvYXN0SWQsXG4gICAgICAgIG1lc3NhZ2U6IG9wdHM/LnRvYXN0TWVzc2FnZSB8fCAnQ09NTU9OLlBMRUFTRV9XQUlUJyxcbiAgICAgICAgZHVyYXRpb246IDAsXG4gICAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBXYWl0IGVuZCBvZiBpZnJhbWUgbG9hZFxuICAgICAgYXdhaXQgdGhpcy53YWl0SWRsZShpZnJhbWUsIHsgaWQ6IGpvYklkIH0pO1xuXG4gICAgICAvLyBQcmludCAoYW5kIHdhaXQgZW5kIG9mIHByaW50KVxuICAgICAgYXdhaXQgdGhpcy5wcmludChpZnJhbWUpO1xuXG4gICAgICByZXR1cm4gam9iSWQ7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbcHJpbnQtc2VydmljZV0gRmFpbGVkIHRvIGNyZWF0ZSBoaWRkZW4gaWZyYW1lJywgZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWZyYW1lLnJlbW92ZSgpO1xuICAgICAgaWYgKHNob3dMb2FkaW5nVG9hc3QpIGF3YWl0IHRoaXMudG9hc3RDb250cm9sbGVyLmRpc21pc3MobnVsbCwgbnVsbCwgdG9hc3RJZCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbWFya0FzTG9hZGluZyhpZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgY29uc29sZS5kZWJ1ZyhgW3ByaW50LXNlcnZpY2VdIE1hcmsgcHJpbnQgam9iICMke2lkfSBhcyBsb2FkaW5nYCk7XG4gICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNldChQUklOVF9MT0FESU5HX1NUT1JBR0VfS0VZX1BSRUZJWCArIGlkLCAnMScpO1xuICB9XG5cbiAgYXN5bmMgbWFya0FzTG9hZGVkKGlkOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBjb25zb2xlLmRlYnVnKGBbcHJpbnQtc2VydmljZV0gTWFyayBwcmludCBqb2IgIyR7aWR9IGFzIGxvYWRlZGApO1xuICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5yZW1vdmUoUFJJTlRfTE9BRElOR19TVE9SQUdFX0tFWV9QUkVGSVggKyBpZCk7XG4gIH1cblxuICBhc3luYyBpc0xvYWRlZChpZDogc3RyaW5nIHwgbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldChQUklOVF9MT0FESU5HX1NUT1JBR0VfS0VZX1BSRUZJWCArIGlkKTtcbiAgICByZXR1cm4gaXNOaWwocmVzdWx0KTtcbiAgfVxuXG4gIGFzeW5jIGlzTG9hZGluZyhpZDogc3RyaW5nIHwgbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuICEoYXdhaXQgdGhpcy5pc0xvYWRlZChpZCkpO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIGZ1bmN0aW9ucyAtLSAqL1xuXG4gIHByb3RlY3RlZCBjcmVhdGVQcmludElmcmFtZUJ5VXJsKHVybDogc3RyaW5nLCBvcHRzPzogeyBpZD86IG51bWJlciB8IHN0cmluZyB9KTogSFRNTElGcmFtZUVsZW1lbnQge1xuICAgIC8vIE1ha2Ugc3VyZSB0byBhZGQgdGhlIGpvYiBpZCBpbnNpZGUgdGhlIFVSTCAoZS5nLiB0byBhbGxvdyBnZXRKb2JJZEZyb21VcmwoKSB0byByZXRyaWV2ZSBpdClcbiAgICBpZiAoaXNOb3ROaWwob3B0cz8uaWQpKSB7XG4gICAgICBjb25zdCBuZXdVcmwgPSBuZXcgVVJMKHVybCk7XG4gICAgICBuZXdVcmwuc2VhcmNoUGFyYW1zLnNldChQUklOVF9JRF9RVUVSWV9QQVJBTSwgJycgKyBvcHRzLmlkKTtcbiAgICAgIHVybCA9IG5ld1VybC5ocmVmO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIGlmcmFtZSB3aXRoIHRoZSBnaXZlbiB1cmxcbiAgICBjb25zdCBpZnJhbWUgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgIGlmcmFtZS5jbGFzc0xpc3QuYWRkKCdjZGstdmlzdWFsbHktaGlkZGVuJyk7XG4gICAgaWZyYW1lLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgIGlmcmFtZS5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gICAgaWZyYW1lLnNyYyA9IHVybDtcbiAgICByZXR1cm4gaWZyYW1lO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVByaW50SWZyYW1lQnlIdG1sKGh0bWw6IHN0cmluZywgb3B0cz86IHsgdGl0bGU/OiBzdHJpbmc7IGlubGluZVN0eWxlPzogc3RyaW5nIH0pOiBIVE1MSUZyYW1lRWxlbWVudCB7XG4gICAgaWYgKCFodG1sKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkICdodG1sJyBhcmd1bWVudFwiKTtcblxuICAgIGNvbnN0IGxhbmcgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudD8ubGFuZyB8fCAnZW4nO1xuXG4gICAgLy8gQ3JlYXRlIGFuIGVtcHR5IGlmcmFtZVxuICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgaWZyYW1lLmNsYXNzTGlzdC5hZGQoJ2Nkay12aXN1YWxseS1oaWRkZW4nKTtcbiAgICBpZnJhbWUuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgaWZyYW1lLnN0eWxlLmhlaWdodCA9ICcxMDAlJztcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcblxuICAgIC8vIFdyaXRlIGlmcmFtZSBjb250ZW50XG4gICAgY29uc3QgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudERvY3VtZW50IHx8IGlmcmFtZS5jb250ZW50V2luZG93Py5kb2N1bWVudDtcbiAgICBpZiAoaWZyYW1lRG9jdW1lbnQpIHtcbiAgICAgIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgICAgIGlmcmFtZURvY3VtZW50LndyaXRlKGBcbiAgICAgICAgPCFET0NUWVBFIGh0bWw+XG4gICAgICAgIDxodG1sIGxhbmc9XCIke2xhbmd9XCIgY2xhc3M9XCJwcmludC1wZGZcIj5cbiAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgIDx0aXRsZT4ke29wdHM/LnRpdGxlIHx8ICcnfTwvdGl0bGU+XG4gICAgICAgICAgICA8c3R5bGU+XG4gICAgICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgICBib2R5IHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ1JvYm90bycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAke29wdHM/LmlubGluZVN0eWxlIHx8ICcnfVxuICAgICAgICAgIDwvc3R5bGU+XG4gICAgICAgICAgPC9oZWFkPlxuICAgICAgICAgIDxib2R5PlxuICAgICAgICAgICAgJHtodG1sfVxuICAgICAgICAgIDwvYm9keT5cbiAgICAgICAgPC9odG1sPlxuICAgICAgYCk7XG4gICAgICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8vIFNldCBpZnJhbWUgc3R5bGVcbiAgICAvLyBGSVhNRSAtIElnbm9yZSBzdHlsZSBpbmplY3Rpb24sIGJlY2F1c2UgaXQgZmFpbGVkIGluIEZpcmVmb3ggKGUuZy4gb24gdXNlciBtYW51YWwpIGFuZCBDaHJvbWUgKGUuZy4gaW4gcHJpdmFjeSBwb2xpY3kpXG4gICAgLy8gICAgICAgICBOb3RoaW5nIGFwcGVhciBpbiB0aGUgcHJpbnQgZGlhbG9nXG4gICAgLy90aGlzLmFwcGx5RG9jdW1lbnRTdHlsZVRvSWZyYW1lKGlmcmFtZSk7XG5cbiAgICByZXR1cm4gaWZyYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIHN0eWxlcyBmcm9tIHRoZSBwcm92aWRlZCBkb2N1bWVudCwgaW5jbHVkaW5nIGV4dGVybmFsIHN0eWxlc2hlZXRzIGFuZCBpbmxpbmUgc3R5bGVzLFxuICAgKiB0byB0aGUgc3BlY2lmaWVkIGlmcmFtZSdzIGRvY3VtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0hUTUxJRnJhbWVFbGVtZW50fSBpZnJhbWUgLSBUaGUgaWZyYW1lIHRvIHdoaWNoIHRoZSBzdHlsZXMgYXJlIGFwcGxpZWQuXG4gICAqIEByZXR1cm4ge3ZvaWR9IERvZXMgbm90IHJldHVybiBhIHZhbHVlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFwcGx5RG9jdW1lbnRTdHlsZVRvSWZyYW1lKGlmcmFtZTogSFRNTElGcmFtZUVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgfHwgaWZyYW1lLmNvbnRlbnRXaW5kb3c/LmRvY3VtZW50O1xuICAgIGlmIChpZnJhbWVEb2N1bWVudCkge1xuICAgICAgLy8gUsOpY3Vww6lyZXIgdG91cyBsZXMgc3R5bGVzIChsaWVucyBDU1MpXG4gICAgICBjb25zdCBsaW5rcyA9IEFycmF5LmZyb20odGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZSxsaW5rW3JlbD1cInN0eWxlc2hlZXRcIl0nKSk7XG4gICAgICBsaW5rcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIC8vIEluc2VydCBpbmxpbmUgc3R5bGVcbiAgICAgICAgaWYgKGVsZW1lbnQudGFnTmFtZSA9PT0gJ1NUWUxFJykge1xuICAgICAgICAgIGNvbnN0IG5ld1N0eWxlID0gaWZyYW1lRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgICAgICBuZXdTdHlsZS5pbm5lckhUTUwgPSBlbGVtZW50LmlubmVySFRNTDtcbiAgICAgICAgICBpZnJhbWVEb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG5ld1N0eWxlKTtcblxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1twcmludC1zZXJ2aWNlXSBBZGQgc3R5bGUgdG8gaWZyYW1lJywgbmV3U3R5bGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5zZXJ0IGxpbmsgdG8gc3R5bGVzaGVldCBmaWxlXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQudGFnTmFtZSA9PT0gJ0xJTksnICYmIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdocmVmJykpIHtcbiAgICAgICAgICBjb25zdCBuZXdMaW5rID0gaWZyYW1lRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgIG5ld0xpbmsucmVsID0gJ3N0eWxlc2hlZXQnO1xuICAgICAgICAgIG5ld0xpbmsuaHJlZiA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdocmVmJyk7XG4gICAgICAgICAgaWZyYW1lRG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuZXdMaW5rKTtcblxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1twcmludC1zZXJ2aWNlXSBBZGQgc3R5bGVzaGVldCB0byBpZnJhbWU6ICcsIG5ld0xpbmsuaHJlZik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB3YWl0SWRsZShpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50LCBvcHRzPzogeyBpZD86IG51bWJlciB8IHN0cmluZzsgdGltZW91dD86IG51bWJlciB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gV2FpdCBqb2IgZmluaXNoZWRcbiAgICBjb25zdCBwcmludElkID0gb3B0cz8uaWQgPz8gdGhpcy5fcHJpbnRJZDtcbiAgICBhd2FpdCB3YWl0Rm9yVHJ1ZSh0aW1lcig1MDAsIDUwMCkucGlwZShtZXJnZU1hcCgoKSA9PiB0aGlzLmlzTG9hZGVkKHByaW50SWQpKSksIHsgdGltZW91dDogb3B0cz8udGltZW91dCB9KTtcblxuICAgIC8vIFdhaXQgZW5kIG9mIGlmcmFtZSBsb2FkXG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c/LndpbmRvdyB8fCBpZnJhbWUuY29udGVudFdpbmRvdztcbiAgICAgIGlmIChpZnJhbWVXaW5kb3cuZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTdG9wIGlmIHRpbWVvdXQgcmVhY2hlZFxuICAgICAgICBpZiAob3B0cz8udGltZW91dCA+IDApIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgndGltZW91dCcpLCBvcHRzLnRpbWVvdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVhZHlMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgICAgICBpZiAoaWZyYW1lV2luZG93LmRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcblxuICAgICAgICAgICAgaWZyYW1lV2luZG93LmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3JlYWR5c3RhdGVjaGFuZ2UnLCByZWFkeUxpc3RlbmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGlmcmFtZVdpbmRvdy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdyZWFkeXN0YXRlY2hhbmdlJywgcmVhZHlMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIHByaW50IGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGdpdmVuIGlmcmFtZSBhbmQgcmVzb2x2ZXMgb3IgcmVqZWN0cyBiYXNlZCBvbiB0aGUgcHJpbnQgY29tcGxldGlvbiBvciB0aW1lb3V0LlxuICAgKlxuICAgKiBAcGFyYW0ge0hUTUxJRnJhbWVFbGVtZW50fSBpZnJhbWUgLSBUaGUgaWZyYW1lIGVsZW1lbnQgdG8gYmUgcHJpbnRlZC5cbiAgICogQHBhcmFtIHt7dGltZW91dD86IG51bWJlcn19IFtvcHRzXSAtIEFuIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAcGFyYW0ge251bWJlcn0gW29wdHMudGltZW91dF0gLSBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgcHJpbnQgdG8gY29tcGxldGUgYmVmb3JlIHJlamVjdGluZyB0aGUgcHJvbWlzZS5cbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgdGhlIHByaW50IGlzIGNvbXBsZXRlZCBvciByZWplY3RzIGlmIGEgdGltZW91dCBvY2N1cnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcHJpbnQoaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCwgb3B0cz86IHsgdGltZW91dD86IG51bWJlciB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93Py53aW5kb3cgfHwgaWZyYW1lLmNvbnRlbnRXaW5kb3c7XG5cbiAgICAgIC8vIFN0b3AgaWYgdGltZW91dCByZWFjaGVkXG4gICAgICBpZiAob3B0cz8udGltZW91dCA+IDApIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoJ3RpbWVvdXQnKSwgb3B0cy50aW1lb3V0KTtcbiAgICAgIH1cblxuICAgICAgLy8gT24gQ2hyb21lXG4gICAgICBpZiAoaXNDaHJvbWUod2luZG93KSkge1xuICAgICAgICAvLyBXYWl0IGFmdGVyIHByaW50IGV2ZW50LCB0byByZXNvbHZlIHRoZSBwcm9taXNlXG4gICAgICAgIGNvbnN0IGFmdGVyUHJpbnRMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKCdbcHJpbnQtc2VydmljZV0gQWZ0ZXIgcHJpbnQnKTtcblxuICAgICAgICAgIHJlc29sdmUoKTtcblxuICAgICAgICAgIC8vIFJlbW92ZSB0aGUgbGlzdGVuZXJcbiAgICAgICAgICBpZnJhbWVXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWZ0ZXJwcmludCcsIGFmdGVyUHJpbnRMaXN0ZW5lcik7XG4gICAgICAgIH07XG4gICAgICAgIGlmcmFtZVdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdhZnRlcnByaW50JywgYWZ0ZXJQcmludExpc3RlbmVyKTtcbiAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cud2luZG93LnByaW50KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE90aGVyd2lzZSAoZS5nLiBGaXJlZm94KVxuICAgICAgZWxzZSB7XG4gICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LndpbmRvdy5wcmludCgpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNob3dUb2FzdDxUID0gYW55PihvcHRzOiBTaG93VG9hc3RPcHRpb25zKTogUHJvbWlzZTxPdmVybGF5RXZlbnREZXRhaWw8VD4+IHtcbiAgICBpZiAoIXRoaXMudG9hc3RDb250cm9sbGVyKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRvYXN0Q29udHJvbGxlciBpbiBjb21wb25lbnQncyBjb25zdHJ1Y3RvclwiKTtcbiAgICByZXR1cm4gYXdhaXQgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCBvcHRzKTtcbiAgfVxufVxuIl19
@@ -1,96 +0,0 @@
1
- export class RegExpUtils {
2
- static _cachedSearchRegexps = {};
3
- static _cachedSearchTexts = [];
4
- static MAX_CACHE_SIZE = 100;
5
- static SPECIAL_CHARACTERS_REGEXP = /[.\[\](){}\\$^|+*?]/g;
6
- static SPECIAL_CHARACTERS_REPLACEMENT_MAP = {
7
- // Escape some characters
8
- '.': '[.]', // Escape point
9
- '(': '\\(', // Escape parenthesis
10
- ')': '\\)', // Escape parenthesis
11
- '[': '\\[', // Escape character class opening bracket
12
- ']': '\\]', // Escape character class closing bracket
13
- '{': '\\{', // Escape quantifier opening brace
14
- '}': '\\}', // Escape quantifier closing brace
15
- '\\': '\\\\', // Escape backslash itself
16
- $: '\\$', // Escape dollar sign
17
- '^': '\\^', // Escape caret
18
- '|': '\\|', // Escape pipe (alternation)
19
- '+': '\\+', // Escape plus
20
- // Transform wildcard characters to regexp
21
- '?': '.', // Exactly one character
22
- '*': '.*', // Zero or more character
23
- };
24
- /**
25
- * Cleans the provided search text by trimming whitespace and removing or condensing
26
- * wildcard characters based on the specified options.
27
- * (e.g. 'a**' becomes 'a', '*' becomes '', etc.)
28
- *
29
- * @param {string} searchText - The search text to be cleaned.
30
- * @param {Object} [opts] - Optional settings for cleaning the search text.
31
- * @param {boolean} [opts.anySearch] - If true, the search text is cleaned for any match. If false, search as a prefix
32
- * @return {string} - The cleaned search text.
33
- */
34
- static cleanSearchText(searchText, opts = { trim: true }) {
35
- if (!searchText?.length)
36
- return searchText;
37
- // DEBUG
38
- //console.debug(`[regexp-utils] Cleaning searchText '${searchText}'`);
39
- searchText = searchText.replace(/[*]{2,}/g, '*'); // Replace many '*' into only one
40
- // Trim whitespace
41
- if (opts?.trim !== false) {
42
- searchText = searchText.trim();
43
- }
44
- // Remove trailing wildcard characters
45
- searchText = searchText.replace(/^[*]+$/g, '');
46
- // Clean any match expression
47
- if (searchText === '*')
48
- return '';
49
- return searchText;
50
- }
51
- /**
52
- * Compiles a regular expression from the provided search text, using a static cache to store
53
- * previously compiled regular expressions for faster retrieval.
54
- *
55
- * @param {string} searchText - The text to compile into a regular expression.
56
- * @param flags
57
- * @return {RegExp} - The compiled regular expression.
58
- */
59
- static compileSearchRegexp(searchText, flags = 'gi') {
60
- if (!searchText?.length)
61
- return null;
62
- // Use cached regexp if exists
63
- const cacheKey = searchText + '|' + flags;
64
- const cachedRegexp = this._cachedSearchRegexps[cacheKey];
65
- if (cachedRegexp)
66
- return cachedRegexp;
67
- const searchRegexpText = searchText.replace(this.SPECIAL_CHARACTERS_REGEXP, (match) => this.SPECIAL_CHARACTERS_REPLACEMENT_MAP[match] || match);
68
- // DEBUG
69
- //console.debug(`[regexp-utils] Computing new regexp '${searchRegexpText}' from searchText '${searchText}'`);
70
- const regexp = new RegExp(`[ ]*${searchRegexpText}`, flags);
71
- // If cache is full: remove older cache element
72
- if (this._cachedSearchTexts.length >= this.MAX_CACHE_SIZE) {
73
- // DEBUG
74
- //console.debug('[regexp-utils] Removing older cached regexp');
75
- // Clear half cache's elements
76
- while (this._cachedSearchTexts.length > this.MAX_CACHE_SIZE / 2) {
77
- const cacheKeyToEvict = this._cachedSearchTexts.shift();
78
- delete this._cachedSearchRegexps[cacheKeyToEvict];
79
- }
80
- }
81
- // Add to static cache
82
- this._cachedSearchRegexps[cacheKey] = regexp;
83
- this._cachedSearchTexts.push(cacheKey);
84
- return regexp;
85
- }
86
- static match(input, regexp) {
87
- return !!input?.match(regexp) || false;
88
- }
89
- static matchUpperCase(input, regexp) {
90
- return !!input?.toUpperCase().match(regexp) || false;
91
- }
92
- static hasWildcardCharacter(input) {
93
- return (input && (input.includes('*') || input.includes('?'))) || false;
94
- }
95
- }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXhwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3JlZ2V4cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQixXQUFXO0lBQ3ZCLE1BQU0sQ0FBQyxvQkFBb0IsR0FBOEIsRUFBRSxDQUFDO0lBQzVELE1BQU0sQ0FBQyxrQkFBa0IsR0FBYSxFQUFFLENBQUM7SUFFekMsTUFBTSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUM7SUFDNUIsTUFBTSxDQUFDLHlCQUF5QixHQUFHLHNCQUFzQixDQUFDO0lBQzFELE1BQU0sQ0FBQyxrQ0FBa0MsR0FBRztRQUNsRCx5QkFBeUI7UUFDekIsR0FBRyxFQUFFLEtBQUssRUFBRSxlQUFlO1FBQzNCLEdBQUcsRUFBRSxLQUFLLEVBQUUscUJBQXFCO1FBQ2pDLEdBQUcsRUFBRSxLQUFLLEVBQUUscUJBQXFCO1FBQ2pDLEdBQUcsRUFBRSxLQUFLLEVBQUUseUNBQXlDO1FBQ3JELEdBQUcsRUFBRSxLQUFLLEVBQUUseUNBQXlDO1FBQ3JELEdBQUcsRUFBRSxLQUFLLEVBQUUsa0NBQWtDO1FBQzlDLEdBQUcsRUFBRSxLQUFLLEVBQUUsa0NBQWtDO1FBQzlDLElBQUksRUFBRSxNQUFNLEVBQUUsMEJBQTBCO1FBQ3hDLENBQUMsRUFBRSxLQUFLLEVBQUUscUJBQXFCO1FBQy9CLEdBQUcsRUFBRSxLQUFLLEVBQUUsZUFBZTtRQUMzQixHQUFHLEVBQUUsS0FBSyxFQUFFLDRCQUE0QjtRQUN4QyxHQUFHLEVBQUUsS0FBSyxFQUFFLGNBQWM7UUFFMUIsMENBQTBDO1FBQzFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsd0JBQXdCO1FBQ2xDLEdBQUcsRUFBRSxJQUFJLEVBQUUseUJBQXlCO0tBQ3JDLENBQUM7SUFFRjs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQWtCLEVBQUUsT0FBMkIsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1FBQ2xGLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTTtZQUFFLE9BQU8sVUFBVSxDQUFDO1FBRTNDLFFBQVE7UUFDUixzRUFBc0U7UUFFdEUsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO1FBRW5GLGtCQUFrQjtRQUNsQixJQUFJLElBQUksRUFBRSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBRUQsc0NBQXNDO1FBQ3RDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUUvQyw2QkFBNkI7UUFDN0IsSUFBSSxVQUFVLEtBQUssR0FBRztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRWxDLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQWtCLEVBQUUsS0FBSyxHQUFHLElBQUk7UUFDekQsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFckMsOEJBQThCO1FBQzlCLE1BQU0sUUFBUSxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQzFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxJQUFJLFlBQVk7WUFBRSxPQUFPLFlBQVksQ0FBQztRQUV0QyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7UUFFaEosUUFBUTtRQUNSLDZHQUE2RztRQUU3RyxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLGdCQUFnQixFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFNUQsK0NBQStDO1FBQy9DLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUQsUUFBUTtZQUNSLCtEQUErRDtZQUUvRCw4QkFBOEI7WUFDOUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDeEQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNILENBQUM7UUFFRCxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUM3QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQWEsRUFBRSxNQUF1QjtRQUNqRCxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFhLEVBQUUsTUFBdUI7UUFDMUQsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFhO1FBQ3ZDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUMxRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlZ0V4cFV0aWxzIHtcbiAgcHJpdmF0ZSBzdGF0aWMgX2NhY2hlZFNlYXJjaFJlZ2V4cHM6IHsgW2tleTogc3RyaW5nXTogUmVnRXhwIH0gPSB7fTtcbiAgcHJpdmF0ZSBzdGF0aWMgX2NhY2hlZFNlYXJjaFRleHRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgc3RhdGljIE1BWF9DQUNIRV9TSVpFID0gMTAwO1xuICBwcml2YXRlIHN0YXRpYyBTUEVDSUFMX0NIQVJBQ1RFUlNfUkVHRVhQID0gL1suXFxbXFxdKCl7fVxcXFwkXnwrKj9dL2c7XG4gIHByaXZhdGUgc3RhdGljIFNQRUNJQUxfQ0hBUkFDVEVSU19SRVBMQUNFTUVOVF9NQVAgPSB7XG4gICAgLy8gRXNjYXBlIHNvbWUgY2hhcmFjdGVyc1xuICAgICcuJzogJ1suXScsIC8vIEVzY2FwZSBwb2ludFxuICAgICcoJzogJ1xcXFwoJywgLy8gRXNjYXBlIHBhcmVudGhlc2lzXG4gICAgJyknOiAnXFxcXCknLCAvLyBFc2NhcGUgcGFyZW50aGVzaXNcbiAgICAnWyc6ICdcXFxcWycsIC8vIEVzY2FwZSBjaGFyYWN0ZXIgY2xhc3Mgb3BlbmluZyBicmFja2V0XG4gICAgJ10nOiAnXFxcXF0nLCAvLyBFc2NhcGUgY2hhcmFjdGVyIGNsYXNzIGNsb3NpbmcgYnJhY2tldFxuICAgICd7JzogJ1xcXFx7JywgLy8gRXNjYXBlIHF1YW50aWZpZXIgb3BlbmluZyBicmFjZVxuICAgICd9JzogJ1xcXFx9JywgLy8gRXNjYXBlIHF1YW50aWZpZXIgY2xvc2luZyBicmFjZVxuICAgICdcXFxcJzogJ1xcXFxcXFxcJywgLy8gRXNjYXBlIGJhY2tzbGFzaCBpdHNlbGZcbiAgICAkOiAnXFxcXCQnLCAvLyBFc2NhcGUgZG9sbGFyIHNpZ25cbiAgICAnXic6ICdcXFxcXicsIC8vIEVzY2FwZSBjYXJldFxuICAgICd8JzogJ1xcXFx8JywgLy8gRXNjYXBlIHBpcGUgKGFsdGVybmF0aW9uKVxuICAgICcrJzogJ1xcXFwrJywgLy8gRXNjYXBlIHBsdXNcblxuICAgIC8vIFRyYW5zZm9ybSB3aWxkY2FyZCBjaGFyYWN0ZXJzIHRvIHJlZ2V4cFxuICAgICc/JzogJy4nLCAvLyBFeGFjdGx5IG9uZSBjaGFyYWN0ZXJcbiAgICAnKic6ICcuKicsIC8vIFplcm8gb3IgbW9yZSBjaGFyYWN0ZXJcbiAgfTtcblxuICAvKipcbiAgICogQ2xlYW5zIHRoZSBwcm92aWRlZCBzZWFyY2ggdGV4dCBieSB0cmltbWluZyB3aGl0ZXNwYWNlIGFuZCByZW1vdmluZyBvciBjb25kZW5zaW5nXG4gICAqIHdpbGRjYXJkIGNoYXJhY3RlcnMgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBvcHRpb25zLlxuICAgKiAoZS5nLiAnYSoqJyBiZWNvbWVzICdhJywgJyonIGJlY29tZXMgJycsIGV0Yy4pXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2hUZXh0IC0gVGhlIHNlYXJjaCB0ZXh0IHRvIGJlIGNsZWFuZWQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBPcHRpb25hbCBzZXR0aW5ncyBmb3IgY2xlYW5pbmcgdGhlIHNlYXJjaCB0ZXh0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmFueVNlYXJjaF0gLSBJZiB0cnVlLCB0aGUgc2VhcmNoIHRleHQgaXMgY2xlYW5lZCBmb3IgYW55IG1hdGNoLiBJZiBmYWxzZSwgc2VhcmNoIGFzIGEgcHJlZml4XG4gICAqIEByZXR1cm4ge3N0cmluZ30gLSBUaGUgY2xlYW5lZCBzZWFyY2ggdGV4dC5cbiAgICovXG4gIHN0YXRpYyBjbGVhblNlYXJjaFRleHQoc2VhcmNoVGV4dDogc3RyaW5nLCBvcHRzOiB7IHRyaW0/OiBib29sZWFuIH0gPSB7IHRyaW06IHRydWUgfSk6IHN0cmluZyB7XG4gICAgaWYgKCFzZWFyY2hUZXh0Py5sZW5ndGgpIHJldHVybiBzZWFyY2hUZXh0O1xuXG4gICAgLy8gREVCVUdcbiAgICAvL2NvbnNvbGUuZGVidWcoYFtyZWdleHAtdXRpbHNdIENsZWFuaW5nIHNlYXJjaFRleHQgJyR7c2VhcmNoVGV4dH0nYCk7XG5cbiAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKC9bKl17Mix9L2csICcqJyk7IC8vIFJlcGxhY2UgbWFueSAnKicgaW50byBvbmx5IG9uZVxuXG4gICAgLy8gVHJpbSB3aGl0ZXNwYWNlXG4gICAgaWYgKG9wdHM/LnRyaW0gIT09IGZhbHNlKSB7XG4gICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC50cmltKCk7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHdpbGRjYXJkIGNoYXJhY3RlcnNcbiAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKC9eWypdKyQvZywgJycpO1xuXG4gICAgLy8gQ2xlYW4gYW55IG1hdGNoIGV4cHJlc3Npb25cbiAgICBpZiAoc2VhcmNoVGV4dCA9PT0gJyonKSByZXR1cm4gJyc7XG5cbiAgICByZXR1cm4gc2VhcmNoVGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21waWxlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBmcm9tIHRoZSBwcm92aWRlZCBzZWFyY2ggdGV4dCwgdXNpbmcgYSBzdGF0aWMgY2FjaGUgdG8gc3RvcmVcbiAgICogcHJldmlvdXNseSBjb21waWxlZCByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBmYXN0ZXIgcmV0cmlldmFsLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoVGV4dCAtIFRoZSB0ZXh0IHRvIGNvbXBpbGUgaW50byBhIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAgICogQHBhcmFtIGZsYWdzXG4gICAqIEByZXR1cm4ge1JlZ0V4cH0gLSBUaGUgY29tcGlsZWQgcmVndWxhciBleHByZXNzaW9uLlxuICAgKi9cbiAgc3RhdGljIGNvbXBpbGVTZWFyY2hSZWdleHAoc2VhcmNoVGV4dDogc3RyaW5nLCBmbGFncyA9ICdnaScpOiBSZWdFeHAge1xuICAgIGlmICghc2VhcmNoVGV4dD8ubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICAgIC8vIFVzZSBjYWNoZWQgcmVnZXhwIGlmIGV4aXN0c1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gc2VhcmNoVGV4dCArICd8JyArIGZsYWdzO1xuICAgIGNvbnN0IGNhY2hlZFJlZ2V4cCA9IHRoaXMuX2NhY2hlZFNlYXJjaFJlZ2V4cHNbY2FjaGVLZXldO1xuICAgIGlmIChjYWNoZWRSZWdleHApIHJldHVybiBjYWNoZWRSZWdleHA7XG5cbiAgICBjb25zdCBzZWFyY2hSZWdleHBUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHRoaXMuU1BFQ0lBTF9DSEFSQUNURVJTX1JFR0VYUCwgKG1hdGNoKSA9PiB0aGlzLlNQRUNJQUxfQ0hBUkFDVEVSU19SRVBMQUNFTUVOVF9NQVBbbWF0Y2hdIHx8IG1hdGNoKTtcblxuICAgIC8vIERFQlVHXG4gICAgLy9jb25zb2xlLmRlYnVnKGBbcmVnZXhwLXV0aWxzXSBDb21wdXRpbmcgbmV3IHJlZ2V4cCAnJHtzZWFyY2hSZWdleHBUZXh0fScgZnJvbSBzZWFyY2hUZXh0ICcke3NlYXJjaFRleHR9J2ApO1xuXG4gICAgY29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cChgWyBdKiR7c2VhcmNoUmVnZXhwVGV4dH1gLCBmbGFncyk7XG5cbiAgICAvLyBJZiBjYWNoZSBpcyBmdWxsOiByZW1vdmUgb2xkZXIgY2FjaGUgZWxlbWVudFxuICAgIGlmICh0aGlzLl9jYWNoZWRTZWFyY2hUZXh0cy5sZW5ndGggPj0gdGhpcy5NQVhfQ0FDSEVfU0laRSkge1xuICAgICAgLy8gREVCVUdcbiAgICAgIC8vY29uc29sZS5kZWJ1ZygnW3JlZ2V4cC11dGlsc10gUmVtb3Zpbmcgb2xkZXIgY2FjaGVkIHJlZ2V4cCcpO1xuXG4gICAgICAvLyBDbGVhciBoYWxmIGNhY2hlJ3MgZWxlbWVudHNcbiAgICAgIHdoaWxlICh0aGlzLl9jYWNoZWRTZWFyY2hUZXh0cy5sZW5ndGggPiB0aGlzLk1BWF9DQUNIRV9TSVpFIC8gMikge1xuICAgICAgICBjb25zdCBjYWNoZUtleVRvRXZpY3QgPSB0aGlzLl9jYWNoZWRTZWFyY2hUZXh0cy5zaGlmdCgpO1xuICAgICAgICBkZWxldGUgdGhpcy5fY2FjaGVkU2VhcmNoUmVnZXhwc1tjYWNoZUtleVRvRXZpY3RdO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCB0byBzdGF0aWMgY2FjaGVcbiAgICB0aGlzLl9jYWNoZWRTZWFyY2hSZWdleHBzW2NhY2hlS2V5XSA9IHJlZ2V4cDtcbiAgICB0aGlzLl9jYWNoZWRTZWFyY2hUZXh0cy5wdXNoKGNhY2hlS2V5KTtcblxuICAgIHJldHVybiByZWdleHA7XG4gIH1cblxuICBzdGF0aWMgbWF0Y2goaW5wdXQ6IHN0cmluZywgcmVnZXhwOiBzdHJpbmcgfCBSZWdFeHApOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFpbnB1dD8ubWF0Y2gocmVnZXhwKSB8fCBmYWxzZTtcbiAgfVxuXG4gIHN0YXRpYyBtYXRjaFVwcGVyQ2FzZShpbnB1dDogc3RyaW5nLCByZWdleHA6IHN0cmluZyB8IFJlZ0V4cCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWlucHV0Py50b1VwcGVyQ2FzZSgpLm1hdGNoKHJlZ2V4cCkgfHwgZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgaGFzV2lsZGNhcmRDaGFyYWN0ZXIoaW5wdXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoaW5wdXQgJiYgKGlucHV0LmluY2x1ZGVzKCcqJykgfHwgaW5wdXQuaW5jbHVkZXMoJz8nKSkpIHx8IGZhbHNlO1xuICB9XG59XG4iXX0=
@@ -1,71 +0,0 @@
1
- import { RxState } from '@rx-angular/state';
2
- const STATE_VAR_NAME_KEY = '__stateName';
3
- const DEFAULT_STATE_VAR_NAME = '_state';
4
- let production = false;
5
- export function enableRxStateProdMode() {
6
- production = true;
7
- }
8
- export function RxStateRegister() {
9
- return function (target, key) {
10
- // DEBUG
11
- //console.debug(`${target.constructor?.name} @State() ${key}`);
12
- if (target[STATE_VAR_NAME_KEY])
13
- throw new Error('Cannot define more than one @State() in class hierarchy');
14
- Object.defineProperty(target, STATE_VAR_NAME_KEY, {
15
- value: key,
16
- writable: false,
17
- enumerable: false,
18
- configurable: false,
19
- });
20
- };
21
- }
22
- export function RxStateProperty(statePropertyName, projectValueReducer) {
23
- return function (target, key) {
24
- // DEBUG
25
- //console.debug(`${target.constructor?.name} @StateProperty() ${key}`);
26
- statePropertyName = statePropertyName || key;
27
- const state = target instanceof RxState ? null : target[STATE_VAR_NAME_KEY] || DEFAULT_STATE_VAR_NAME;
28
- const stateObj = state ? `this.${state}` : `this`;
29
- // property getter
30
- const getMethodName = '_get' + key.charAt(0).toUpperCase() + key.slice(1);
31
- const setMethodName = '_set' + key.charAt(0).toUpperCase() + key.slice(1);
32
- const reducerMethodName = '_reduce' + key.charAt(0).toUpperCase() + key.slice(1);
33
- const checkStateExists = stateObj !== 'this' && !production
34
- ? `\n if (!${stateObj}) throw new Error('Missing state! Please add a RxState in class: ' + this.constructor.name);`
35
- : '';
36
- const reducer = projectValueReducer ? `(state) => this.${reducerMethodName}(state, value)` : '() => value';
37
- const getter = new Function(`return function ${getMethodName}(){\n return ${stateObj}.get('${statePropertyName}');\n}`)();
38
- const setter = new Function(`return function ${setMethodName}(value){${checkStateExists}\n ${stateObj}.set('${statePropertyName}', ${reducer});\n}`)();
39
- target[getMethodName] = getter;
40
- target[setMethodName] = setter;
41
- if (projectValueReducer)
42
- target[reducerMethodName] = projectValueReducer;
43
- Object.defineProperty(target, key, {
44
- get: getter,
45
- set: setter,
46
- enumerable: true,
47
- configurable: true,
48
- });
49
- };
50
- }
51
- export function RxStateSelect(statePropertyName, opts) {
52
- return function (target, key) {
53
- // DEBUG
54
- //console.debug(`${target.constructor?.name} @RxStateSelect() ${key}`);
55
- statePropertyName = statePropertyName || key.replace(/\$?$/, '');
56
- const state = target instanceof RxState ? null : target[STATE_VAR_NAME_KEY] || opts?.stateName || DEFAULT_STATE_VAR_NAME;
57
- const stateObj = state ? `this.${state}` : `this`;
58
- const _key = '_' + key;
59
- // property getter
60
- const getMethodName = '_get' + statePropertyName.charAt(0).toUpperCase() + (statePropertyName.length > 1 ? statePropertyName.slice(1) : '') + '$';
61
- const observableObj = statePropertyName === '$' ? `${stateObj}.$` : `${stateObj}.select('${statePropertyName.split('.').join("', '")}')`;
62
- const getter = new Function(`return function ${getMethodName}(){\n if (!this.${_key}) this.${_key} = ${observableObj};\n return this.${_key};\n}`)();
63
- target[getMethodName] = getter;
64
- Object.defineProperty(target, key, {
65
- get: getter,
66
- enumerable: true,
67
- configurable: false,
68
- });
69
- };
70
- }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtc3RhdGUuZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3J4LXN0YXRlL3J4LXN0YXRlLmRlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRSxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQztBQUN6QyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQUV4QyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7QUFDdkIsTUFBTSxVQUFVLHFCQUFxQjtJQUNuQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZTtJQUM3QixPQUFPLFVBQVUsTUFBbUIsRUFBRSxHQUFXO1FBQy9DLFFBQVE7UUFDUiwrREFBK0Q7UUFFL0QsSUFBSSxNQUFNLENBQUMsa0JBQWtCLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7UUFFM0csTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7WUFDaEQsS0FBSyxFQUFFLEdBQUc7WUFDVixRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixpQkFBOEIsRUFDOUIsbUJBQWtEO0lBRWxELE9BQU8sVUFBVSxNQUFtQixFQUFFLEdBQVc7UUFDL0MsUUFBUTtRQUNSLHVFQUF1RTtRQUV2RSxpQkFBaUIsR0FBSSxpQkFBNEIsSUFBSSxHQUFHLENBQUM7UUFDekQsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFN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QUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUVsSixNQUFNLGFBQWEsR0FBRyxpQkFBaUIsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxZQUFZLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6SSxNQUFNLE1BQU0sR0FBRyxJQUFJLFFBQVEsQ0FDekIsbUJBQW1CLGFBQWEsbUJBQW1CLElBQUksVUFBVSxJQUFJLE1BQU0sYUFBYSxvQkFBb0IsSUFBSSxNQUFNLENBQ3ZILEVBQUUsQ0FBQztRQUVKLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxNQUFNLENBQUM7UUFFL0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ2pDLEdBQUcsRUFBRSxNQUFNO1lBQ1gsVUFBVSxFQUFFLElBQUk7WUFDaEIsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3RWYWx1ZVJlZHVjZXIsIFJ4U3RhdGUgfSBmcm9tICdAcngtYW5ndWxhci9zdGF0ZSc7XG5cbmRlY2xhcmUgdHlwZSBDb25zdHJ1Y3RvciA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueTtcbmNvbnN0IFNUQVRFX1ZBUl9OQU1FX0tFWSA9ICdfX3N0YXRlTmFtZSc7XG5jb25zdCBERUZBVUxUX1NUQVRFX1ZBUl9OQU1FID0gJ19zdGF0ZSc7XG5cbmxldCBwcm9kdWN0aW9uID0gZmFsc2U7XG5leHBvcnQgZnVuY3Rpb24gZW5hYmxlUnhTdGF0ZVByb2RNb2RlKCkge1xuICBwcm9kdWN0aW9uID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJ4U3RhdGVSZWdpc3RlcigpOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBDb25zdHJ1Y3Rvciwga2V5OiBzdHJpbmcpIHtcbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZyhgJHt0YXJnZXQuY29uc3RydWN0b3I/Lm5hbWV9IEBTdGF0ZSgpICR7a2V5fWApO1xuXG4gICAgaWYgKHRhcmdldFtTVEFURV9WQVJfTkFNRV9LRVldKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZpbmUgbW9yZSB0aGFuIG9uZSBAU3RhdGUoKSBpbiBjbGFzcyBoaWVyYXJjaHknKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIFNUQVRFX1ZBUl9OQU1FX0tFWSwge1xuICAgICAgdmFsdWU6IGtleSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJ4U3RhdGVQcm9wZXJ0eTxUID0gYW55LCBLIGV4dGVuZHMga2V5b2YgVCA9IGFueSwgViBleHRlbmRzIFRbS10gPSBhbnk+KFxuICBzdGF0ZVByb3BlcnR5TmFtZT86IHN0cmluZyB8IEssXG4gIHByb2plY3RWYWx1ZVJlZHVjZXI/OiBQcm9qZWN0VmFsdWVSZWR1Y2VyPFQsIEssIFY+XG4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBDb25zdHJ1Y3Rvciwga2V5OiBzdHJpbmcpIHtcbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZyhgJHt0YXJnZXQuY29uc3RydWN0b3I/Lm5hbWV9IEBTdGF0ZVByb3BlcnR5KCkgJHtrZXl9YCk7XG5cbiAgICBzdGF0ZVByb3BlcnR5TmFtZSA9IChzdGF0ZVByb3BlcnR5TmFtZSBhcyBzdHJpbmcpIHx8IGtleTtcbiAgICBjb25zdCBzdGF0ZSA9IHRhcmdldCBpbnN0YW5jZW9mIFJ4U3RhdGUgPyBudWxsIDogdGFyZ2V0W1NUQVRFX1ZBUl9OQU1FX0tFWV0gfHwgREVGQVVMVF9TVEFURV9WQVJfTkFNRTtcbiAgICBjb25zdCBzdGF0ZU9iaiA9IHN0YXRlID8gYHRoaXMuJHtzdGF0ZX1gIDogYHRoaXNgO1xuXG4gICAgLy8gcHJvcGVydHkgZ2V0dGVyXG4gICAgY29uc3QgZ2V0TWV0aG9kTmFtZSA9ICdfZ2V0JyArIGtleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGtleS5zbGljZSgxKTtcbiAgICBjb25zdCBzZXRNZXRob2ROYW1lID0gJ19zZXQnICsga2V5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsga2V5LnNsaWNlKDEpO1xuICAgIGNvbnN0IHJlZHVjZXJNZXRob2ROYW1lID0gJ19yZWR1Y2UnICsga2V5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsga2V5LnNsaWNlKDEpO1xuXG4gICAgY29uc3QgY2hlY2tTdGF0ZUV4aXN0cyA9XG4gICAgICBzdGF0ZU9iaiAhPT0gJ3RoaXMnICYmICFwcm9kdWN0aW9uXG4gICAgICAgID8gYFxcbiAgaWYgKCEke3N0YXRlT2JqfSkgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHN0YXRlISBQbGVhc2UgYWRkIGEgUnhTdGF0ZSBpbiBjbGFzczogJyArIHRoaXMuY29uc3RydWN0b3IubmFtZSk7YFxuICAgICAgICA6ICcnO1xuXG4gICAgY29uc3QgcmVkdWNlciA9IHByb2plY3RWYWx1ZVJlZHVjZXIgPyBgKHN0YXRlKSA9PiB0aGlzLiR7cmVkdWNlck1ldGhvZE5hbWV9KHN0YXRlLCB2YWx1ZSlgIDogJygpID0+IHZhbHVlJztcbiAgICBjb25zdCBnZXR0ZXIgPSBuZXcgRnVuY3Rpb24oYHJldHVybiBmdW5jdGlvbiAke2dldE1ldGhvZE5hbWV9KCl7XFxuICByZXR1cm4gJHtzdGF0ZU9ian0uZ2V0KCcke3N0YXRlUHJvcGVydHlOYW1lfScpO1xcbn1gKSgpO1xuICAgIGNvbnN0IHNldHRlciA9IG5ldyBGdW5jdGlvbihcbiAgICAgIGByZXR1cm4gZnVuY3Rpb24gJHtzZXRNZXRob2ROYW1lfSh2YWx1ZSl7JHtjaGVja1N0YXRlRXhpc3RzfVxcbiAgJHtzdGF0ZU9ian0uc2V0KCcke3N0YXRlUHJvcGVydHlOYW1lfScsICR7cmVkdWNlcn0pO1xcbn1gXG4gICAgKSgpO1xuXG4gICAgdGFyZ2V0W2dldE1ldGhvZE5hbWVdID0gZ2V0dGVyO1xuICAgIHRhcmdldFtzZXRNZXRob2ROYW1lXSA9IHNldHRlcjtcbiAgICBpZiAocHJvamVjdFZhbHVlUmVkdWNlcikgdGFyZ2V0W3JlZHVjZXJNZXRob2ROYW1lXSA9IHByb2plY3RWYWx1ZVJlZHVjZXI7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcbiAgICAgIGdldDogZ2V0dGVyLFxuICAgICAgc2V0OiBzZXR0ZXIsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUnhTdGF0ZVNlbGVjdDxUID0gYW55PihzdGF0ZVByb3BlcnR5TmFtZT86IHN0cmluZyB8IGtleW9mIFQgfCAnJCcsIG9wdHM/OiB7IHN0YXRlTmFtZT86IHN0cmluZyB9KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogQ29uc3RydWN0b3IsIGtleTogc3RyaW5nKSB7XG4gICAgLy8gREVCVUdcbiAgICAvL2NvbnNvbGUuZGVidWcoYCR7dGFyZ2V0LmNvbnN0cnVjdG9yPy5uYW1lfSBAUnhTdGF0ZVNlbGVjdCgpICR7a2V5fWApO1xuXG4gICAgc3RhdGVQcm9wZXJ0eU5hbWUgPSAoc3RhdGVQcm9wZXJ0eU5hbWUgYXMgc3RyaW5nKSB8fCBrZXkucmVwbGFjZSgvXFwkPyQvLCAnJyk7XG4gICAgY29uc3Qgc3RhdGUgPSB0YXJnZXQgaW5zdGFuY2VvZiBSeFN0YXRlID8gbnVsbCA6IHRhcmdldFtTVEFURV9WQVJfTkFNRV9LRVldIHx8IG9wdHM/LnN0YXRlTmFtZSB8fCBERUZBVUxUX1NUQVRFX1ZBUl9OQU1FO1xuICAgIGNvbnN0IHN0YXRlT2JqID0gc3RhdGUgPyBgdGhpcy4ke3N0YXRlfWAgOiBgdGhpc2A7XG5cbiAgICBjb25zdCBfa2V5ID0gJ18nICsga2V5O1xuXG4gICAgLy8gcHJvcGVydHkgZ2V0dGVyXG4gICAgY29uc3QgZ2V0TWV0aG9kTmFtZSA9ICdfZ2V0JyArIHN0YXRlUHJvcGVydHlOYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgKHN0YXRlUHJvcGVydHlOYW1lLmxlbmd0aCA+IDEgPyBzdGF0ZVByb3BlcnR5TmFtZS5zbGljZSgxKSA6ICcnKSArICckJztcblxuICAgIGNvbnN0IG9ic2VydmFibGVPYmogPSBzdGF0ZVByb3BlcnR5TmFtZSA9PT0gJyQnID8gYCR7c3RhdGVPYmp9LiRgIDogYCR7c3RhdGVPYmp9LnNlbGVjdCgnJHtzdGF0ZVByb3BlcnR5TmFtZS5zcGxpdCgnLicpLmpvaW4oXCInLCAnXCIpfScpYDtcbiAgICBjb25zdCBnZXR0ZXIgPSBuZXcgRnVuY3Rpb24oXG4gICAgICBgcmV0dXJuIGZ1bmN0aW9uICR7Z2V0TWV0aG9kTmFtZX0oKXtcXG4gaWYgKCF0aGlzLiR7X2tleX0pIHRoaXMuJHtfa2V5fSA9ICR7b2JzZXJ2YWJsZU9ian07XFxuICByZXR1cm4gdGhpcy4ke19rZXl9O1xcbn1gXG4gICAgKSgpO1xuXG4gICAgdGFyZ2V0W2dldE1ldGhvZE5hbWVdID0gZ2V0dGVyO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XG4gICAgICBnZXQ6IGdldHRlcixcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9O1xufVxuIl19
@@ -1,19 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { RxFor } from '@rx-angular/template/for';
3
- import { RxIf } from '@rx-angular/template/if';
4
- import { RxPush } from '@rx-angular/template/push';
5
- import { RxLet } from '@rx-angular/template/let';
6
- import * as i0 from "@angular/core";
7
- export class RxStateModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RxStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RxStateModule, imports: [RxPush, RxFor, RxIf, RxLet], exports: [RxPush, RxFor, RxIf, RxLet] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RxStateModule });
11
- }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RxStateModule, decorators: [{
13
- type: NgModule,
14
- args: [{
15
- imports: [RxPush, RxFor, RxIf, RxLet],
16
- exports: [RxPush, RxFor, RxIf, RxLet],
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtc3RhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcngtc3RhdGUvcngtc3RhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU1qRCxNQUFNLE9BQU8sYUFBYTt3R0FBYixhQUFhO3lHQUFiLGFBQWEsWUFIZCxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLGFBQzFCLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUs7eUdBRXpCLGFBQWE7OzRGQUFiLGFBQWE7a0JBSnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJ4Rm9yIH0gZnJvbSAnQHJ4LWFuZ3VsYXIvdGVtcGxhdGUvZm9yJztcbmltcG9ydCB7IFJ4SWYgfSBmcm9tICdAcngtYW5ndWxhci90ZW1wbGF0ZS9pZic7XG5pbXBvcnQgeyBSeFB1c2ggfSBmcm9tICdAcngtYW5ndWxhci90ZW1wbGF0ZS9wdXNoJztcbmltcG9ydCB7IFJ4TGV0IH0gZnJvbSAnQHJ4LWFuZ3VsYXIvdGVtcGxhdGUvbGV0JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1J4UHVzaCwgUnhGb3IsIFJ4SWYsIFJ4TGV0XSxcbiAgZXhwb3J0czogW1J4UHVzaCwgUnhGb3IsIFJ4SWYsIFJ4TGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgUnhTdGF0ZU1vZHVsZSB7fVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtc3RhdGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9yeC1zdGF0ZS9yeC1zdGF0ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBPYnNlcnZlZDxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVCBhcyBgJHtzdHJpbmcgJiBLfSRgXTogT2JzZXJ2YWJsZTxUW0tdPjtcbn07XG4iXX0=
@@ -1,10 +0,0 @@
1
- export function mergeLoadResult(res1, res2) {
2
- return {
3
- data: (res1.data || []).concat(...res2.data),
4
- total: (res1.total || res1.data?.length || 0) + (res2.total || res2.data?.length || 0),
5
- };
6
- }
7
- export function isEntityService(service) {
8
- return service && service.load && service.save && service.delete;
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4R0EsTUFBTSxVQUFVLGVBQWUsQ0FBSSxJQUFtQixFQUFFLElBQW1CO0lBQ3pFLE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0tBQ3ZGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBUSxPQUFZO0lBQ2pELE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO0FBQ25FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGZXRjaFBvbGljeSwgV2F0Y2hRdWVyeUZldGNoUG9saWN5IH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBFbXB0eU9iamVjdCB9IGZyb20gJy4uLy4uL2NvcmUvZ3JhcGhxbC9ncmFwaHFsLnV0aWxzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBhZ2Uge1xuICBvZmZzZXQ6IG51bWJlcjtcbiAgc2l6ZTogbnVtYmVyO1xuICBzb3J0Qnk/OiBzdHJpbmc7XG4gIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uO1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIEZldGNoTW9yZUZuPFIsIFYgPSBFbXB0eU9iamVjdD4gPSAodmFyaWFibGVzPzogVikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIExvYWRSZXN1bHQ8VD4ge1xuICBkYXRhOiBUW107XG4gIHRvdGFsPzogbnVtYmVyO1xuICBlcnJvcnM/OiBhbnlbXTtcbiAgZmV0Y2hNb3JlPzogRmV0Y2hNb3JlRm48TG9hZFJlc3VsdDxUPj47XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgU3VnZ2VzdEZuPFQsIEY+ID0gKFxuICB2YWx1ZTogYW55LFxuICBmaWx0ZXI/OiBGLFxuICBzb3J0Qnk/OiBzdHJpbmcgfCBrZXlvZiBULFxuICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgb3B0cz86IHtcbiAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICAgIG9mZnNldD86IG51bWJlcjtcbiAgICBzaXplPzogbnVtYmVyO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfVxuKSA9PiBQcm9taXNlPFRbXSB8IExvYWRSZXN1bHQ8VD4+O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3VnZ2VzdFNlcnZpY2U8VCwgRj4ge1xuICBzdWdnZXN0OiBTdWdnZXN0Rm48VCwgRj47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnM8RSA9IGFueT4ge1xuICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICB0cmFzaD86IGJvb2xlYW47XG4gIHRvRW50aXR5PzogYm9vbGVhbiB8ICgoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpID0+IEUpO1xuICBxdWVyeT86IGFueTtcbiAgdmFyaWFibGVzPzogYW55O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlV2F0Y2hPcHRpb25zPFQgPSBhbnk+IHtcbiAgZmV0Y2hQb2xpY3k/OiBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3k7XG4gIHRyYXNoPzogYm9vbGVhbjtcbiAgdG9FbnRpdHk/OiBib29sZWFuIHwgKChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gVCk7XG4gIHF1ZXJ5PzogYW55O1xuICB2YXJpYWJsZXM/OiBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlTGlzdGVuQ2hhbmdlc09wdGlvbnM8VCA9IGFueT4ge1xuICBpbnRlcnZhbD86IG51bWJlcjtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgdG9FbnRpdHk/OiBib29sZWFuIHwgKChzb3VyY2U6IGFueSkgPT4gVCk7XG4gIHF1ZXJ5PzogYW55O1xuICB2YXJpYWJsZXM/OiBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElFbnRpdHlTZXJ2aWNlPFQsIElEID0gYW55LCBMTyA9IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9uczxUPj4ge1xuICBsb2FkKGlkOiBJRCwgb3B0cz86IExPKTogUHJvbWlzZTxUPjtcblxuICBjYW5Vc2VyV3JpdGUoZGF0YTogVCwgb3B0cz86IGFueSk6IGJvb2xlYW47XG5cbiAgc2F2ZShkYXRhOiBULCBvcHRzPzogYW55KTogUHJvbWlzZTxUPjtcblxuICBkZWxldGUoZGF0YTogVCwgb3B0cz86IGFueSk6IFByb21pc2U8YW55PjtcblxuICBsaXN0ZW5DaGFuZ2VzKGlkOiBJRCwgb3B0cz86IGFueSk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uczxUID0gYW55PiBleHRlbmRzIEVudGl0eVNlcnZpY2VMb2FkT3B0aW9uczxUPiB7XG4gIHdpdGhUb3RhbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM8VCA9IGFueT4gZXh0ZW5kcyBFbnRpdHlTZXJ2aWNlV2F0Y2hPcHRpb25zPFQ+IHtcbiAgd2l0aFRvdGFsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElFbnRpdGllc1NlcnZpY2U8VCwgRiwgTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyA9IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxUPj4ge1xuICAvLyBUT0RPIGNoYW5nZSB0byByZXF1aXJlZCAoaW4gYSBmdXR1cmUgdmVyc2lvbilcbiAgcmVhZG9ubHkgZGVmYXVsdEZldGNoUG9saWN5PzogV2F0Y2hRdWVyeUZldGNoUG9saWN5O1xuXG4gIHdhdGNoQWxsKG9mZnNldDogbnVtYmVyLCBzaXplOiBudW1iZXIsIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sIGZpbHRlcj86IFBhcnRpYWw8Rj4sIG9wdGlvbnM/OiBPKTogT2JzZXJ2YWJsZTxMb2FkUmVzdWx0PFQ+PjtcblxuICAvLyBUT0RPXG4gIC8qd2F0Y2hQYWdlKFxuICAgIHBhZ2U6IFBhZ2U8VD4sXG4gICAgZmlsdGVyPzogRixcbiAgICBvcHRpb25zPzogT1xuICApOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+OyovXG5cbiAgc2F2ZUFsbChkYXRhOiBUW10sIG9wdHM/OiBhbnkpOiBQcm9taXNlPFRbXT47XG5cbiAgZGVsZXRlQWxsKGRhdGE6IFRbXSwgb3B0cz86IGFueSk6IFByb21pc2U8YW55PjtcblxuICBhc0ZpbHRlcihmaWx0ZXI6IFBhcnRpYWw8Rj4pOiBGO1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIExvYWRSZXN1bHRCeVBhZ2VGbjxUPiA9IChvZmZzZXQ6IG51bWJlciwgc2l6ZTogbnVtYmVyKSA9PiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIElFbnRpdHlGdWxsU2VydmljZTxULCBJRCwgRiwgTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyAmIEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucz5cbiAgZXh0ZW5kcyBJRW50aXR5U2VydmljZTxULCBJRCwgTz4sXG4gICAgSUVudGl0aWVzU2VydmljZTxULCBGLCBPPiB7fVxuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VMb2FkUmVzdWx0PFQ+KHJlczE6IExvYWRSZXN1bHQ8VD4sIHJlczI6IExvYWRSZXN1bHQ8VD4pOiBMb2FkUmVzdWx0PFQ+IHtcbiAgcmV0dXJuIHtcbiAgICBkYXRhOiAocmVzMS5kYXRhIHx8IFtdKS5jb25jYXQoLi4ucmVzMi5kYXRhKSxcbiAgICB0b3RhbDogKHJlczEudG90YWwgfHwgcmVzMS5kYXRhPy5sZW5ndGggfHwgMCkgKyAocmVzMi50b3RhbCB8fCByZXMyLmRhdGE/Lmxlbmd0aCB8fCAwKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW50aXR5U2VydmljZTxULCBJRD4oc2VydmljZTogYW55KTogc2VydmljZSBpcyBJRW50aXR5U2VydmljZTxULCBJRD4ge1xuICByZXR1cm4gc2VydmljZSAmJiBzZXJ2aWNlLmxvYWQgJiYgc2VydmljZS5zYXZlICYmIHNlcnZpY2UuZGVsZXRlO1xufVxuIl19