@sumaris-net/ngx-components 18.12.0 → 18.12.2

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/doc/changelog.md +3 -0
  2. package/esm2022/public_api.mjs +380 -0
  3. package/esm2022/src/app/admin/admin-routing.module.mjs +34 -0
  4. package/esm2022/src/app/admin/admin.module.mjs +32 -0
  5. package/esm2022/src/app/admin/services/filter/person.filter.mjs +76 -0
  6. package/esm2022/src/app/admin/services/person.service.mjs +184 -0
  7. package/esm2022/src/app/admin/services/validator/person.validator.mjs +72 -0
  8. package/esm2022/src/app/admin/users/users.mjs +379 -0
  9. package/esm2022/src/app/admin/users/users.module.mjs +56 -0
  10. package/esm2022/src/app/core/about/about.modal.mjs +86 -0
  11. package/esm2022/src/app/core/about/about.module.mjs +22 -0
  12. package/esm2022/src/app/core/account/account.module.mjs +75 -0
  13. package/esm2022/src/app/core/account/account.page.mjs +364 -0
  14. package/esm2022/src/app/core/account/new-token.form.mjs +106 -0
  15. package/esm2022/src/app/core/account/new-token.modal.mjs +66 -0
  16. package/esm2022/src/app/core/account/password/change-password.form.mjs +63 -0
  17. package/esm2022/src/app/core/account/password/change-password.module.mjs +22 -0
  18. package/esm2022/src/app/core/account/password/change-password.page.mjs +150 -0
  19. package/esm2022/src/app/core/account/token.table.mjs +157 -0
  20. package/esm2022/src/app/core/auth/auth.form.mjs +159 -0
  21. package/esm2022/src/app/core/auth/auth.modal.mjs +76 -0
  22. package/esm2022/src/app/core/auth/auth.module.mjs +56 -0
  23. package/esm2022/src/app/core/auth/reset-password.modal.mjs +89 -0
  24. package/esm2022/src/app/core/core.module.mjs +151 -0
  25. package/esm2022/src/app/core/core.testing.module.mjs +107 -0
  26. package/esm2022/src/app/core/form/array/form-array.mjs +328 -0
  27. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +23 -0
  28. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +94 -0
  29. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +108 -0
  30. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +31 -0
  31. package/esm2022/src/app/core/form/entity/editor.class.mjs +268 -0
  32. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +420 -0
  33. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +741 -0
  34. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +24 -0
  35. package/esm2022/src/app/core/form/entity/entity.module.mjs +32 -0
  36. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +190 -0
  37. package/esm2022/src/app/core/form/form-container.class.mjs +340 -0
  38. package/esm2022/src/app/core/form/form.class.mjs +337 -0
  39. package/esm2022/src/app/core/form/form.module.mjs +70 -0
  40. package/esm2022/src/app/core/form/form.utils.mjs +205 -0
  41. package/esm2022/src/app/core/form/list/list.form.mjs +235 -0
  42. package/esm2022/src/app/core/form/list/list.module.mjs +31 -0
  43. package/esm2022/src/app/core/form/properties/properties.form.mjs +317 -0
  44. package/esm2022/src/app/core/form/properties/properties.module.mjs +37 -0
  45. package/esm2022/src/app/core/form/properties/properties.table.mjs +264 -0
  46. package/esm2022/src/app/core/form/properties/properties.utils.mjs +304 -0
  47. package/esm2022/src/app/core/form/properties/property.validator.mjs +70 -0
  48. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +104 -0
  49. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +23 -0
  50. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +73 -0
  51. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +30 -0
  52. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +161 -0
  53. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +31 -0
  54. package/esm2022/src/app/core/form/username/username.form.mjs +55 -0
  55. package/esm2022/src/app/core/form/username/username.module.mjs +20 -0
  56. package/esm2022/src/app/core/graphql/graphql.module.mjs +14 -0
  57. package/esm2022/src/app/core/graphql/graphql.service.mjs +781 -0
  58. package/esm2022/src/app/core/graphql/graphql.utils.mjs +119 -0
  59. package/esm2022/src/app/core/home/home.mjs +382 -0
  60. package/esm2022/src/app/core/home/home.module.mjs +46 -0
  61. package/esm2022/src/app/core/icon/icon.component.mjs +40 -0
  62. package/esm2022/src/app/core/icon/icon.module.mjs +20 -0
  63. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +394 -0
  64. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +31 -0
  65. package/esm2022/src/app/core/menu/menu.component.mjs +258 -0
  66. package/esm2022/src/app/core/menu/menu.model.mjs +272 -0
  67. package/esm2022/src/app/core/menu/menu.module.mjs +47 -0
  68. package/esm2022/src/app/core/menu/menu.service.mjs +666 -0
  69. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +109 -0
  70. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +50 -0
  71. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +158 -0
  72. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +60 -0
  73. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +28 -0
  74. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +31 -0
  75. package/esm2022/src/app/core/peer/select-peer.modal.mjs +344 -0
  76. package/esm2022/src/app/core/peer/select-peer.module.mjs +36 -0
  77. package/esm2022/src/app/core/register/register-confirm.page.mjs +90 -0
  78. package/esm2022/src/app/core/register/register.form.mjs +194 -0
  79. package/esm2022/src/app/core/register/register.modal.mjs +55 -0
  80. package/esm2022/src/app/core/register/register.module.mjs +23 -0
  81. package/esm2022/src/app/core/services/account.service.mjs +1358 -0
  82. package/esm2022/src/app/core/services/auth-guard.service.mjs +74 -0
  83. package/esm2022/src/app/core/services/base-entity-service.class.mjs +485 -0
  84. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +230 -0
  85. package/esm2022/src/app/core/services/base58.mjs +83 -0
  86. package/esm2022/src/app/core/services/config/core.config.mjs +258 -0
  87. package/esm2022/src/app/core/services/config.service.mjs +384 -0
  88. package/esm2022/src/app/core/services/crypto.service.mjs +107 -0
  89. package/esm2022/src/app/core/services/errors.mjs +54 -0
  90. package/esm2022/src/app/core/services/local-settings.service.mjs +516 -0
  91. package/esm2022/src/app/core/services/model/account.model.mjs +178 -0
  92. package/esm2022/src/app/core/services/model/config.model.mjs +107 -0
  93. package/esm2022/src/app/core/services/model/department.model.mjs +35 -0
  94. package/esm2022/src/app/core/services/model/entity.decorators.mjs +97 -0
  95. package/esm2022/src/app/core/services/model/entity.model.mjs +338 -0
  96. package/esm2022/src/app/core/services/model/filter.model.mjs +93 -0
  97. package/esm2022/src/app/core/services/model/history.model.mjs +2 -0
  98. package/esm2022/src/app/core/services/model/model.enum.mjs +11 -0
  99. package/esm2022/src/app/core/services/model/node-feature.model.mjs +31 -0
  100. package/esm2022/src/app/core/services/model/peer.model.mjs +113 -0
  101. package/esm2022/src/app/core/services/model/person.model.mjs +114 -0
  102. package/esm2022/src/app/core/services/model/referential.model.mjs +205 -0
  103. package/esm2022/src/app/core/services/model/settings.model.mjs +6 -0
  104. package/esm2022/src/app/core/services/model/token.model.mjs +57 -0
  105. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +195 -0
  106. package/esm2022/src/app/core/services/network.service.mjs +638 -0
  107. package/esm2022/src/app/core/services/network.types.mjs +2 -0
  108. package/esm2022/src/app/core/services/network.utils.mjs +35 -0
  109. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +38 -0
  110. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +23 -0
  111. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +23 -0
  112. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +54 -0
  113. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +21 -0
  114. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +37 -0
  115. package/esm2022/src/app/core/services/platform.service.mjs +627 -0
  116. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +427 -0
  117. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +450 -0
  118. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +25 -0
  119. package/esm2022/src/app/core/services/testing/referential.validator.mjs +46 -0
  120. package/esm2022/src/app/core/services/validator/account.validator.mjs +45 -0
  121. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +49 -0
  122. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +57 -0
  123. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +27 -0
  124. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +55 -0
  125. package/esm2022/src/app/core/settings/settings.module.mjs +23 -0
  126. package/esm2022/src/app/core/settings/settings.page.mjs +403 -0
  127. package/esm2022/src/app/core/table/async-table.class.mjs +1811 -0
  128. package/esm2022/src/app/core/table/column/actions-column.component.mjs +130 -0
  129. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +117 -0
  130. package/esm2022/src/app/core/table/column/row-field.component.mjs +116 -0
  131. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +404 -0
  132. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +405 -0
  133. package/esm2022/src/app/core/table/memory-table.class.mjs +57 -0
  134. package/esm2022/src/app/core/table/table-select-columns.component.mjs +46 -0
  135. package/esm2022/src/app/core/table/table.class.mjs +1867 -0
  136. package/esm2022/src/app/core/table/table.model.mjs +21 -0
  137. package/esm2022/src/app/core/table/table.module.mjs +51 -0
  138. package/esm2022/src/app/core/table/table.pipes.mjs +77 -0
  139. package/esm2022/src/app/core/table/table.utils.mjs +34 -0
  140. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +32 -0
  141. package/esm2022/src/app/core/table/testing/table.testing.mjs +329 -0
  142. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +25 -0
  143. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +25 -0
  144. package/esm2022/src/app/core/table/testing/table2.testing.mjs +273 -0
  145. package/esm2022/src/app/shared/alerts.mjs +243 -0
  146. package/esm2022/src/app/shared/audio/audio.mjs +255 -0
  147. package/esm2022/src/app/shared/audio/audio.testing.mjs +32 -0
  148. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +30 -0
  149. package/esm2022/src/app/shared/capacitor/keyboard.mjs +42 -0
  150. package/esm2022/src/app/shared/capacitor/plugins.mjs +9 -0
  151. package/esm2022/src/app/shared/constants.mjs +16 -0
  152. package/esm2022/src/app/shared/dates.mjs +180 -0
  153. package/esm2022/src/app/shared/debug/debug-service.class.mjs +3 -0
  154. package/esm2022/src/app/shared/debug/debug.component.mjs +44 -0
  155. package/esm2022/src/app/shared/debug/debug.module.mjs +23 -0
  156. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +91 -0
  157. package/esm2022/src/app/shared/directives/autoresize.directive.mjs +75 -0
  158. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +30 -0
  159. package/esm2022/src/app/shared/directives/directives.module.mjs +24 -0
  160. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +52 -0
  161. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +33 -0
  162. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +62 -0
  163. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +45 -0
  164. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +17 -0
  165. package/esm2022/src/app/shared/directives/throttled-click.directive.mjs +43 -0
  166. package/esm2022/src/app/shared/events.mjs +64 -0
  167. package/esm2022/src/app/shared/file/csv.utils.mjs +97 -0
  168. package/esm2022/src/app/shared/file/file.service.mjs +118 -0
  169. package/esm2022/src/app/shared/file/file.utils.mjs +117 -0
  170. package/esm2022/src/app/shared/file/images.utils.mjs +186 -0
  171. package/esm2022/src/app/shared/file/json.utils.mjs +58 -0
  172. package/esm2022/src/app/shared/file/uri.utils.mjs +29 -0
  173. package/esm2022/src/app/shared/file/url.utils.mjs +164 -0
  174. package/esm2022/src/app/shared/focusable.mjs +6 -0
  175. package/esm2022/src/app/shared/form/field.component.mjs +393 -0
  176. package/esm2022/src/app/shared/form/field.model.mjs +82 -0
  177. package/esm2022/src/app/shared/form/loading-spinner.mjs +35 -0
  178. package/esm2022/src/app/shared/forms.mjs +510 -0
  179. package/esm2022/src/app/shared/functions.mjs +672 -0
  180. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +86 -0
  181. package/esm2022/src/app/shared/gesture/gesture-config.mjs +46 -0
  182. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +2 -0
  183. package/esm2022/src/app/shared/graph/colors.utils.mjs +60 -0
  184. package/esm2022/src/app/shared/graph/graph-colors.mjs +214 -0
  185. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +65 -0
  186. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +23 -0
  187. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +147 -0
  188. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +24 -0
  189. package/esm2022/src/app/shared/http/http.utils.mjs +56 -0
  190. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +443 -0
  191. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +62 -0
  192. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +26 -0
  193. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +87 -0
  194. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +37 -0
  195. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +59 -0
  196. package/esm2022/src/app/shared/image/image.model.mjs +2 -0
  197. package/esm2022/src/app/shared/image/image.module.mjs +24 -0
  198. package/esm2022/src/app/shared/image/image.service.mjs +109 -0
  199. package/esm2022/src/app/shared/inputs.mjs +279 -0
  200. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +27 -0
  201. package/esm2022/src/app/shared/logging/log-level.model.mjs +48 -0
  202. package/esm2022/src/app/shared/logging/logger.model.mjs +47 -0
  203. package/esm2022/src/app/shared/logging/logging-service.class.mjs +125 -0
  204. package/esm2022/src/app/shared/logging/logging-service.config.mjs +2 -0
  205. package/esm2022/src/app/shared/logging/logging-service.module.mjs +30 -0
  206. package/esm2022/src/app/shared/markdown/markdown.component.mjs +321 -0
  207. package/esm2022/src/app/shared/markdown/markdown.directive.mjs +34 -0
  208. package/esm2022/src/app/shared/markdown/markdown.modal.mjs +99 -0
  209. package/esm2022/src/app/shared/markdown/markdown.module.mjs +87 -0
  210. package/esm2022/src/app/shared/markdown/markdown.service.mjs +204 -0
  211. package/esm2022/src/app/shared/markdown/markdown.utils.mjs +87 -0
  212. package/esm2022/src/app/shared/markdown/testing/markdown.test.mjs +55 -0
  213. package/esm2022/src/app/shared/markdown/testing/markdown.testing.module.mjs +30 -0
  214. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +46 -0
  215. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +1313 -0
  216. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +79 -0
  217. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +18 -0
  218. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +242 -0
  219. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +251 -0
  220. package/esm2022/src/app/shared/material/badge/badge.module.mjs +20 -0
  221. package/esm2022/src/app/shared/material/badge/badge.test.mjs +42 -0
  222. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +67 -0
  223. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +371 -0
  224. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +72 -0
  225. package/esm2022/src/app/shared/material/chips/chips.module.mjs +71 -0
  226. package/esm2022/src/app/shared/material/chips/material.chips.mjs +836 -0
  227. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +151 -0
  228. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +76 -0
  229. package/esm2022/src/app/shared/material/datetime/material.date.mjs +471 -0
  230. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +457 -0
  231. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +693 -0
  232. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +136 -0
  233. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +127 -0
  234. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +118 -0
  235. package/esm2022/src/app/shared/material/duration/duration.module.mjs +61 -0
  236. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +16 -0
  237. package/esm2022/src/app/shared/material/duration/material.duration.mjs +283 -0
  238. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +85 -0
  239. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +319 -0
  240. package/esm2022/src/app/shared/material/latlong/material.latlong-input.mjs +432 -0
  241. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +231 -0
  242. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +68 -0
  243. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +137 -0
  244. package/esm2022/src/app/shared/material/material.animations.mjs +200 -0
  245. package/esm2022/src/app/shared/material/material.config.mjs +3 -0
  246. package/esm2022/src/app/shared/material/material.module.mjs +229 -0
  247. package/esm2022/src/app/shared/material/material.testing.module.mjs +245 -0
  248. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +51 -0
  249. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +23 -0
  250. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +379 -0
  251. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +52 -0
  252. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +67 -0
  253. package/esm2022/src/app/shared/material/test/test-component.mjs +264 -0
  254. package/esm2022/src/app/shared/material/testing/common.test.mjs +111 -0
  255. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +42 -0
  256. package/esm2022/src/app/shared/material/text/text-form.component.mjs +205 -0
  257. package/esm2022/src/app/shared/material/text/text-form.module.mjs +63 -0
  258. package/esm2022/src/app/shared/modules.mjs +12 -0
  259. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +303 -0
  260. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +49 -0
  261. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +24 -0
  262. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +69 -0
  263. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +74 -0
  264. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +28 -0
  265. package/esm2022/src/app/shared/observables.mjs +100 -0
  266. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +217 -0
  267. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +24 -0
  268. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +29 -0
  269. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +50 -0
  270. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +72 -0
  271. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +28 -0
  272. package/esm2022/src/app/shared/pipes/dates.pipe.mjs +18 -0
  273. package/esm2022/src/app/shared/pipes/display-with.pipe.mjs +23 -0
  274. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +34 -0
  275. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +53 -0
  276. package/esm2022/src/app/shared/pipes/form.pipes.mjs +219 -0
  277. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +50 -0
  278. package/esm2022/src/app/shared/pipes/html.pipes.mjs +69 -0
  279. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +42 -0
  280. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +65 -0
  281. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +67 -0
  282. package/esm2022/src/app/shared/pipes/math.pipes.mjs +77 -0
  283. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +19 -0
  284. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +17 -0
  285. package/esm2022/src/app/shared/pipes/observable.pipes.mjs +63 -0
  286. package/esm2022/src/app/shared/pipes/pipes.module.mjs +285 -0
  287. package/esm2022/src/app/shared/pipes/property.pipes.mjs +135 -0
  288. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +179 -0
  289. package/esm2022/src/app/shared/pipes/string.pipes.mjs +183 -0
  290. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +44 -0
  291. package/esm2022/src/app/shared/pipes/types.pipes.mjs +74 -0
  292. package/esm2022/src/app/shared/pipes/url.pipes.mjs +43 -0
  293. package/esm2022/src/app/shared/platforms.mjs +81 -0
  294. package/esm2022/src/app/shared/print/print.service.mjs +305 -0
  295. package/esm2022/src/app/shared/regexps.mjs +96 -0
  296. package/esm2022/src/app/shared/rx-state/rx-state.decorators.mjs +217 -0
  297. package/esm2022/src/app/shared/rx-state/rx-state.module.mjs +19 -0
  298. package/esm2022/src/app/shared/rx-state/rx-state.types.mjs +2 -0
  299. package/esm2022/src/app/shared/services/entity-service.class.mjs +10 -0
  300. package/esm2022/src/app/shared/services/job.utils.mjs +92 -0
  301. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +353 -0
  302. package/esm2022/src/app/shared/services/progress-bar.service.mjs +31 -0
  303. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +118 -0
  304. package/esm2022/src/app/shared/services/startable-service.class.mjs +107 -0
  305. package/esm2022/src/app/shared/services/translate-context.service.mjs +107 -0
  306. package/esm2022/src/app/shared/services/validator-service.class.mjs +2 -0
  307. package/esm2022/src/app/shared/services.mjs +85 -0
  308. package/esm2022/src/app/shared/shared-routing.module.mjs +72 -0
  309. package/esm2022/src/app/shared/shared.module.mjs +229 -0
  310. package/esm2022/src/app/shared/shared.testing.module.mjs +108 -0
  311. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +279 -0
  312. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +42 -0
  313. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +27 -0
  314. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +25 -0
  315. package/esm2022/src/app/shared/storage/storage.service.mjs +134 -0
  316. package/esm2022/src/app/shared/storage/storage.utils.mjs +13 -0
  317. package/esm2022/src/app/shared/testing/maskito.test.mjs +41 -0
  318. package/esm2022/src/app/shared/testing/observable.test.mjs +94 -0
  319. package/esm2022/src/app/shared/testing/tests.page.mjs +37 -0
  320. package/esm2022/src/app/shared/toast/toast.testing.mjs +54 -0
  321. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +31 -0
  322. package/esm2022/src/app/shared/toast/toasts.mjs +134 -0
  323. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +62 -0
  324. package/esm2022/src/app/shared/toolbar/toolbar.mjs +267 -0
  325. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +26 -0
  326. package/esm2022/src/app/shared/types.mjs +2 -0
  327. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +59 -0
  328. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +30 -0
  329. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +109 -0
  330. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +216 -0
  331. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +26 -0
  332. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +114 -0
  333. package/esm2022/src/app/shared/validator/validators.mjs +621 -0
  334. package/esm2022/src/app/shared/version/versions.mjs +81 -0
  335. package/esm2022/src/app/social/job/job.module.mjs +23 -0
  336. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +35 -0
  337. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +235 -0
  338. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +47 -0
  339. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +29 -0
  340. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +91 -0
  341. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +38 -0
  342. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +34 -0
  343. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +22 -0
  344. package/esm2022/src/app/social/message/message.form.mjs +141 -0
  345. package/esm2022/src/app/social/message/message.modal.mjs +110 -0
  346. package/esm2022/src/app/social/message/message.model.mjs +75 -0
  347. package/esm2022/src/app/social/message/message.module.mjs +22 -0
  348. package/esm2022/src/app/social/message/message.service.mjs +110 -0
  349. package/esm2022/src/app/social/social.errors.mjs +10 -0
  350. package/esm2022/src/app/social/social.module.mjs +22 -0
  351. package/esm2022/src/app/social/social.testing.module.mjs +40 -0
  352. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +127 -0
  353. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +260 -0
  354. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +257 -0
  355. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +129 -0
  356. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +22 -0
  357. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +128 -0
  358. package/esm2022/src/app/social/user-event/user-event.model.mjs +2 -0
  359. package/esm2022/src/app/social/user-event/user-event.module.mjs +23 -0
  360. package/esm2022/src/app/social/user-event/user-event.service.mjs +512 -0
  361. package/esm2022/src/environments/environment.class.mjs +65 -0
  362. package/esm2022/src/environments/environment.loader.mjs +77 -0
  363. package/esm2022/src/environments/environment.mjs +109 -0
  364. package/esm2022/sumaris-net.ngx-components.mjs +5 -0
  365. package/fesm2022/sumaris-net.ngx-components.mjs +48744 -0
  366. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -0
  367. package/index.d.ts +5 -0
  368. package/package.json +19 -132
  369. package/public_api.d.ts +344 -0
  370. package/src/app/admin/admin-routing.module.d.ts +9 -0
  371. package/src/app/admin/admin.module.d.ts +10 -0
  372. package/src/app/admin/services/filter/person.filter.d.ts +22 -0
  373. package/src/app/admin/services/person.service.d.ts +37 -0
  374. package/src/app/admin/services/validator/person.validator.d.ts +23 -0
  375. package/src/app/admin/users/users.d.ts +61 -0
  376. package/src/app/admin/users/users.module.d.ts +14 -0
  377. package/src/app/core/about/about.modal.d.ts +32 -0
  378. package/src/app/core/about/about.module.d.ts +11 -0
  379. package/src/app/core/account/account.module.d.ts +18 -0
  380. package/src/app/core/account/account.page.d.ts +83 -0
  381. package/src/app/core/account/new-token.form.d.ts +29 -0
  382. package/src/app/core/account/new-token.modal.d.ts +29 -0
  383. package/src/app/core/account/password/change-password.form.d.ts +19 -0
  384. package/src/app/core/account/password/change-password.module.d.ts +11 -0
  385. package/src/app/core/account/password/change-password.page.d.ts +36 -0
  386. package/src/app/core/account/token.table.d.ts +27 -0
  387. package/src/app/core/auth/auth.form.d.ts +38 -0
  388. package/src/app/core/auth/auth.modal.d.ts +24 -0
  389. package/src/app/core/auth/auth.module.d.ts +13 -0
  390. package/src/app/core/auth/reset-password.modal.d.ts +29 -0
  391. package/src/app/core/core.module.d.ts +28 -0
  392. package/src/app/core/core.testing.module.d.ts +15 -0
  393. package/src/app/core/form/array/form-array.d.ts +137 -0
  394. package/src/app/core/form/array/testing/form-array-test.module.d.ts +12 -0
  395. package/src/app/core/form/array/testing/form-array.test.d.ts +26 -0
  396. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +37 -0
  397. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +9 -0
  398. package/src/app/core/form/entity/editor.class.d.ts +84 -0
  399. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +126 -0
  400. package/src/app/core/form/entity/entity-editor.class.d.ts +204 -0
  401. package/src/app/core/form/entity/entity-metadata.component.d.ts +13 -0
  402. package/src/app/core/form/entity/entity.module.d.ts +10 -0
  403. package/src/app/core/form/entity/tab-editor.class.d.ts +66 -0
  404. package/src/app/core/form/form-container.class.d.ts +127 -0
  405. package/src/app/core/form/form.class.d.ts +144 -0
  406. package/src/app/core/form/form.module.d.ts +14 -0
  407. package/src/app/core/form/form.utils.d.ts +260 -0
  408. package/src/app/core/form/list/list.form.d.ts +81 -0
  409. package/src/app/core/form/list/list.module.d.ts +9 -0
  410. package/src/app/core/form/properties/properties.form.d.ts +92 -0
  411. package/src/app/core/form/properties/properties.module.d.ts +11 -0
  412. package/src/app/core/form/properties/properties.table.d.ts +72 -0
  413. package/src/app/core/form/properties/properties.utils.d.ts +59 -0
  414. package/src/app/core/form/properties/property.validator.d.ts +27 -0
  415. package/src/app/core/form/properties/testing/properties-form.test.d.ts +22 -0
  416. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
  417. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +16 -0
  418. package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +11 -0
  419. package/src/app/core/form/text-popover/text-popover.component.d.ts +80 -0
  420. package/src/app/core/form/text-popover/text-popover.module.d.ts +9 -0
  421. package/src/app/core/form/username/username.form.d.ts +19 -0
  422. package/src/app/core/form/username/username.module.d.ts +9 -0
  423. package/src/app/core/graphql/graphql.module.d.ts +7 -0
  424. package/src/app/core/graphql/graphql.service.d.ts +142 -0
  425. package/src/app/core/graphql/graphql.utils.d.ts +47 -0
  426. package/src/app/core/home/home.d.ts +109 -0
  427. package/src/app/core/home/home.module.d.ts +14 -0
  428. package/src/app/core/icon/icon.component.d.ts +13 -0
  429. package/src/app/core/icon/icon.module.d.ts +9 -0
  430. package/src/app/core/install/install-upgrade-card.component.d.ts +63 -0
  431. package/src/app/core/install/install-upgrade-card.module.d.ts +9 -0
  432. package/src/app/core/menu/menu.component.d.ts +66 -0
  433. package/src/app/core/menu/menu.model.d.ts +144 -0
  434. package/src/app/core/menu/menu.module.d.ts +12 -0
  435. package/src/app/core/menu/menu.service.d.ts +93 -0
  436. package/src/app/core/menu/sub-menu-tab.directive.d.ts +29 -0
  437. package/src/app/core/menu/testing/menu-other.testing.d.ts +15 -0
  438. package/src/app/core/menu/testing/menu.testing.d.ts +51 -0
  439. package/src/app/core/menu/testing/menu.testing.module.d.ts +12 -0
  440. package/src/app/core/offline/update-offline-mode-card.component.d.ts +11 -0
  441. package/src/app/core/offline/update-offline-mode-card.module.d.ts +9 -0
  442. package/src/app/core/peer/select-peer.modal.d.ts +101 -0
  443. package/src/app/core/peer/select-peer.module.d.ts +12 -0
  444. package/src/app/core/register/register-confirm.page.d.ts +24 -0
  445. package/src/app/core/register/register.form.d.ts +49 -0
  446. package/src/app/core/register/register.modal.d.ts +14 -0
  447. package/src/app/core/register/register.module.d.ts +12 -0
  448. package/src/app/core/services/account.service.d.ts +207 -0
  449. package/src/app/core/services/auth-guard.service.d.ts +17 -0
  450. package/src/app/core/services/base-entity-service.class.d.ts +135 -0
  451. package/src/app/core/services/base-graphql-service.class.d.ts +77 -0
  452. package/src/app/core/services/base58.d.ts +7 -0
  453. package/src/app/core/services/config/core.config.d.ts +46 -0
  454. package/src/app/core/services/config.service.d.ts +63 -0
  455. package/src/app/core/services/crypto.service.d.ts +44 -0
  456. package/src/app/core/services/errors.d.ts +65 -0
  457. package/src/app/core/services/local-settings.service.d.ts +99 -0
  458. package/src/app/core/services/model/account.model.d.ts +56 -0
  459. package/src/app/core/services/model/config.model.d.ts +36 -0
  460. package/src/app/core/services/model/department.model.d.ts +11 -0
  461. package/src/app/core/services/model/entity.decorators.d.ts +17 -0
  462. package/src/app/core/services/model/entity.model.d.ts +133 -0
  463. package/src/app/core/services/model/filter.model.d.ts +37 -0
  464. package/src/app/core/services/model/history.model.d.ts +20 -0
  465. package/src/app/core/services/model/model.enum.d.ts +7 -0
  466. package/src/app/core/services/model/node-feature.model.d.ts +14 -0
  467. package/src/app/core/services/model/peer.model.d.ts +35 -0
  468. package/src/app/core/services/model/person.model.d.ts +37 -0
  469. package/src/app/core/services/model/referential.model.d.ts +84 -0
  470. package/src/app/core/services/model/settings.model.d.ts +29 -0
  471. package/src/app/core/services/model/token.model.d.ts +22 -0
  472. package/src/app/core/services/model/tree-item-entity.model.d.ts +53 -0
  473. package/src/app/core/services/network.service.d.ts +159 -0
  474. package/src/app/core/services/network.types.d.ts +4 -0
  475. package/src/app/core/services/network.utils.d.ts +38 -0
  476. package/src/app/core/services/pipes/account.pipes.d.ts +15 -0
  477. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +9 -0
  478. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +11 -0
  479. package/src/app/core/services/pipes/pipes.module.d.ts +11 -0
  480. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +13 -0
  481. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +15 -0
  482. package/src/app/core/services/platform.service.d.ts +110 -0
  483. package/src/app/core/services/storage/entities-storage.service.d.ts +108 -0
  484. package/src/app/core/services/storage/entity-store.class.d.ts +113 -0
  485. package/src/app/core/services/testing/referential-filter.model.d.ts +9 -0
  486. package/src/app/core/services/testing/referential.validator.d.ts +22 -0
  487. package/src/app/core/services/validator/account.validator.d.ts +24 -0
  488. package/src/app/core/services/validator/base.validator.class.d.ts +21 -0
  489. package/src/app/core/services/validator/local-settings.validator.d.ts +18 -0
  490. package/src/app/core/services/validator/user-settings.validator.d.ts +10 -0
  491. package/src/app/core/services/validator/user-token.validator.d.ts +13 -0
  492. package/src/app/core/settings/settings.module.d.ts +12 -0
  493. package/src/app/core/settings/settings.page.d.ts +88 -0
  494. package/src/app/core/table/async-table.class.d.ts +395 -0
  495. package/src/app/core/table/column/actions-column.component.d.ts +62 -0
  496. package/src/app/core/table/column/nav-actions-column.component.d.ts +46 -0
  497. package/src/app/core/table/column/row-field.component.d.ts +40 -0
  498. package/src/app/core/table/entities-async-table-datasource.class.d.ts +100 -0
  499. package/src/app/core/table/entities-table-datasource.class.d.ts +103 -0
  500. package/src/app/core/table/memory-table.class.d.ts +25 -0
  501. package/src/app/core/table/table-select-columns.component.d.ts +22 -0
  502. package/src/app/core/table/table.class.d.ts +400 -0
  503. package/src/app/core/table/table.model.d.ts +31 -0
  504. package/src/app/core/table/table.module.d.ts +14 -0
  505. package/src/app/core/table/table.pipes.d.ts +29 -0
  506. package/src/app/core/table/table.utils.d.ts +13 -0
  507. package/src/app/core/table/testing/table-validator.service.d.ts +17 -0
  508. package/src/app/core/table/testing/table.testing.d.ts +54 -0
  509. package/src/app/core/table/testing/table.testing.module.d.ts +14 -0
  510. package/src/app/core/table/testing/table2-validator.service.d.ts +15 -0
  511. package/src/app/core/table/testing/table2.testing.d.ts +48 -0
  512. package/src/app/shared/alerts.d.ts +55 -0
  513. package/src/app/shared/audio/audio.d.ts +45 -0
  514. package/src/app/shared/audio/audio.testing.d.ts +13 -0
  515. package/src/app/shared/audio/audio.testing.module.d.ts +11 -0
  516. package/src/app/shared/capacitor/keyboard.d.ts +16 -0
  517. package/src/app/shared/capacitor/plugins.d.ts +7 -0
  518. package/src/app/shared/constants.d.ts +13 -0
  519. package/src/app/shared/dates.d.ts +61 -0
  520. package/src/app/shared/debug/debug-service.class.d.ts +5 -0
  521. package/src/app/shared/debug/debug.component.d.ts +14 -0
  522. package/src/app/shared/debug/debug.module.d.ts +12 -0
  523. package/src/app/shared/directives/autofocus.directive.d.ts +18 -0
  524. package/src/app/shared/directives/autoresize.directive.d.ts +20 -0
  525. package/src/app/shared/directives/autotitle.directive.d.ts +11 -0
  526. package/src/app/shared/directives/directives.module.d.ts +14 -0
  527. package/src/app/shared/directives/drag-and-drop.directive.d.ts +17 -0
  528. package/src/app/shared/directives/ng-var.directive.d.ts +12 -0
  529. package/src/app/shared/directives/resizable/resizable.component.d.ts +21 -0
  530. package/src/app/shared/directives/resizable/resizable.directive.d.ts +12 -0
  531. package/src/app/shared/directives/resizable/resizable.module.d.ts +8 -0
  532. package/src/app/shared/directives/throttled-click.directive.d.ts +16 -0
  533. package/src/app/shared/events.d.ts +29 -0
  534. package/src/app/shared/file/csv.utils.d.ts +30 -0
  535. package/src/app/shared/file/file.service.d.ts +23 -0
  536. package/src/app/shared/file/file.utils.d.ts +20 -0
  537. package/src/app/shared/file/images.utils.d.ts +36 -0
  538. package/src/app/shared/file/json.utils.d.ts +19 -0
  539. package/src/app/shared/file/uri.utils.d.ts +8 -0
  540. package/src/app/shared/file/url.utils.d.ts +77 -0
  541. package/src/app/shared/focusable.d.ts +4 -0
  542. package/src/app/shared/form/field.component.d.ts +85 -0
  543. package/src/app/shared/form/field.model.d.ts +82 -0
  544. package/src/app/shared/form/loading-spinner.d.ts +8 -0
  545. package/src/app/shared/forms.d.ts +135 -0
  546. package/src/app/shared/functions.d.ts +206 -0
  547. package/src/app/shared/geolocation/geolocation.utils.d.ts +19 -0
  548. package/src/app/shared/gesture/gesture-config.d.ts +15 -0
  549. package/src/app/shared/gesture/hammer.utils.d.ts +16 -0
  550. package/src/app/shared/graph/colors.utils.d.ts +17 -0
  551. package/src/app/shared/graph/graph-colors.d.ts +63 -0
  552. package/src/app/shared/guard/component-dirty.guard.d.ts +14 -0
  553. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +8 -0
  554. package/src/app/shared/hotkeys/hotkeys.service.d.ts +48 -0
  555. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +11 -0
  556. package/src/app/shared/http/http.utils.d.ts +28 -0
  557. package/src/app/shared/image/gallery/image-gallery.component.d.ts +137 -0
  558. package/src/app/shared/image/gallery/image-gallery.module.d.ts +15 -0
  559. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +12 -0
  560. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +33 -0
  561. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +16 -0
  562. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +13 -0
  563. package/src/app/shared/image/image.model.d.ts +7 -0
  564. package/src/app/shared/image/image.module.d.ts +8 -0
  565. package/src/app/shared/image/image.service.d.ts +36 -0
  566. package/src/app/shared/inputs.d.ts +36 -0
  567. package/src/app/shared/interceptors/progess.interceptor.d.ts +8 -0
  568. package/src/app/shared/logging/log-level.model.d.ts +38 -0
  569. package/src/app/shared/logging/logger.model.d.ts +68 -0
  570. package/src/app/shared/logging/logging-service.class.d.ts +39 -0
  571. package/src/app/shared/logging/logging-service.config.d.ts +25 -0
  572. package/src/app/shared/logging/logging-service.module.d.ts +9 -0
  573. package/src/app/shared/markdown/markdown.component.d.ts +86 -0
  574. package/src/app/shared/markdown/markdown.directive.d.ts +13 -0
  575. package/src/app/shared/markdown/markdown.modal.d.ts +49 -0
  576. package/src/app/shared/markdown/markdown.module.d.ts +17 -0
  577. package/src/app/shared/markdown/markdown.service.d.ts +37 -0
  578. package/src/app/shared/markdown/markdown.utils.d.ts +26 -0
  579. package/src/app/shared/markdown/testing/markdown.test.d.ts +18 -0
  580. package/src/app/shared/markdown/testing/markdown.testing.module.d.ts +12 -0
  581. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +74 -0
  582. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +211 -0
  583. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +22 -0
  584. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +5 -0
  585. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +48 -0
  586. package/src/app/shared/material/badge/badge.directive.d.ts +43 -0
  587. package/src/app/shared/material/badge/badge.module.d.ts +10 -0
  588. package/src/app/shared/material/badge/badge.test.d.ts +21 -0
  589. package/src/app/shared/material/boolean/boolean.module.d.ts +20 -0
  590. package/src/app/shared/material/boolean/material.boolean.d.ts +93 -0
  591. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +26 -0
  592. package/src/app/shared/material/chips/chips.module.d.ts +21 -0
  593. package/src/app/shared/material/chips/material.chips.d.ts +164 -0
  594. package/src/app/shared/material/chips/testing/chips.test.d.ts +32 -0
  595. package/src/app/shared/material/datetime/datetime.module.d.ts +24 -0
  596. package/src/app/shared/material/datetime/material.date.d.ts +90 -0
  597. package/src/app/shared/material/datetime/material.dateshort.d.ts +89 -0
  598. package/src/app/shared/material/datetime/material.datetime.d.ts +116 -0
  599. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +37 -0
  600. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +32 -0
  601. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +31 -0
  602. package/src/app/shared/material/duration/duration.module.d.ts +18 -0
  603. package/src/app/shared/material/duration/duration.utils.d.ts +2 -0
  604. package/src/app/shared/material/duration/material.duration.d.ts +64 -0
  605. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +23 -0
  606. package/src/app/shared/material/latlong/latlong.utils.d.ts +59 -0
  607. package/src/app/shared/material/latlong/material.latlong-input.d.ts +85 -0
  608. package/src/app/shared/material/latlong/material.latlong.d.ts +90 -0
  609. package/src/app/shared/material/latlong/material.latlong.module.d.ts +21 -0
  610. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +28 -0
  611. package/src/app/shared/material/material.animations.d.ts +8 -0
  612. package/src/app/shared/material/material.config.d.ts +3 -0
  613. package/src/app/shared/material/material.module.d.ts +45 -0
  614. package/src/app/shared/material/material.testing.module.d.ts +32 -0
  615. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +12 -0
  616. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +10 -0
  617. package/src/app/shared/material/swipe/material.swipe.d.ts +89 -0
  618. package/src/app/shared/material/swipe/swipe.module.d.ts +16 -0
  619. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +22 -0
  620. package/src/app/shared/material/test/test-component.d.ts +75 -0
  621. package/src/app/shared/material/testing/common.test.d.ts +25 -0
  622. package/src/app/shared/material/text/testing/text-form.testing.d.ts +19 -0
  623. package/src/app/shared/material/text/text-form.component.d.ts +66 -0
  624. package/src/app/shared/material/text/text-form.module.d.ts +16 -0
  625. package/src/app/shared/modules.d.ts +9 -0
  626. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +62 -0
  627. package/src/app/shared/named-filter/named-filter.model.d.ts +32 -0
  628. package/src/app/shared/named-filter/named-filter.module.d.ts +13 -0
  629. package/src/app/shared/named-filter/named-filter.service.d.ts +32 -0
  630. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +34 -0
  631. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +10 -0
  632. package/src/app/shared/observables.d.ts +30 -0
  633. package/src/app/shared/pipes/arrays.pipe.d.ts +82 -0
  634. package/src/app/shared/pipes/badge.pipes.d.ts +7 -0
  635. package/src/app/shared/pipes/colors.pipe.d.ts +9 -0
  636. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +25 -0
  637. package/src/app/shared/pipes/date-format.pipe.d.ts +35 -0
  638. package/src/app/shared/pipes/date-from-now.pipe.d.ts +12 -0
  639. package/src/app/shared/pipes/dates.pipe.d.ts +10 -0
  640. package/src/app/shared/pipes/display-with.pipe.d.ts +8 -0
  641. package/src/app/shared/pipes/duration.pipe.d.ts +23 -0
  642. package/src/app/shared/pipes/file-size.pipe.d.ts +30 -0
  643. package/src/app/shared/pipes/form.pipes.d.ts +69 -0
  644. package/src/app/shared/pipes/highlight.pipe.d.ts +11 -0
  645. package/src/app/shared/pipes/html.pipes.d.ts +22 -0
  646. package/src/app/shared/pipes/latlong-format.pipe.d.ts +20 -0
  647. package/src/app/shared/pipes/maps.pipe.d.ts +23 -0
  648. package/src/app/shared/pipes/maskito.pipe.d.ts +14 -0
  649. package/src/app/shared/pipes/math.pipes.d.ts +26 -0
  650. package/src/app/shared/pipes/ng-init.pipe.d.ts +8 -0
  651. package/src/app/shared/pipes/number-format.pipe.d.ts +9 -0
  652. package/src/app/shared/pipes/observable.pipes.d.ts +25 -0
  653. package/src/app/shared/pipes/pipes.module.d.ts +35 -0
  654. package/src/app/shared/pipes/property.pipes.d.ts +41 -0
  655. package/src/app/shared/pipes/selection.pipes.d.ts +62 -0
  656. package/src/app/shared/pipes/string.pipes.d.ts +68 -0
  657. package/src/app/shared/pipes/translate-context.pipe.d.ts +17 -0
  658. package/src/app/shared/pipes/types.pipes.d.ts +30 -0
  659. package/src/app/shared/pipes/url.pipes.d.ts +27 -0
  660. package/src/app/shared/platforms.d.ts +16 -0
  661. package/src/app/shared/print/print.service.d.ts +94 -0
  662. package/src/app/shared/regexps.d.ts +32 -0
  663. package/src/app/shared/rx-state/rx-state.decorators.d.ts +43 -0
  664. package/src/app/shared/rx-state/rx-state.module.d.ts +10 -0
  665. package/src/app/shared/rx-state/rx-state.types.d.ts +4 -0
  666. package/src/app/shared/services/entity-service.class.d.ts +75 -0
  667. package/src/app/shared/services/job.utils.d.ts +20 -0
  668. package/src/app/shared/services/memory-entity-service.class.d.ts +79 -0
  669. package/src/app/shared/services/progress-bar.service.d.ts +20 -0
  670. package/src/app/shared/services/startable-observable-service.class.d.ts +36 -0
  671. package/src/app/shared/services/startable-service.class.d.ts +37 -0
  672. package/src/app/shared/services/translate-context.service.d.ts +29 -0
  673. package/src/app/shared/services/validator-service.class.d.ts +11 -0
  674. package/src/app/shared/services.d.ts +17 -0
  675. package/src/app/shared/shared-routing.module.d.ts +23 -0
  676. package/src/app/shared/shared.module.d.ts +33 -0
  677. package/src/app/shared/shared.testing.module.d.ts +20 -0
  678. package/src/app/shared/storage/storage-explorer.component.d.ts +59 -0
  679. package/src/app/shared/storage/storage-explorer.module.d.ts +13 -0
  680. package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +9 -0
  681. package/src/app/shared/storage/storage-explorer.testing.module.d.ts +10 -0
  682. package/src/app/shared/storage/storage.service.d.ts +22 -0
  683. package/src/app/shared/storage/storage.utils.d.ts +19 -0
  684. package/src/app/shared/testing/maskito.test.d.ts +10 -0
  685. package/src/app/shared/testing/observable.test.d.ts +25 -0
  686. package/src/app/shared/testing/tests.page.d.ts +20 -0
  687. package/src/app/shared/toast/toast.testing.d.ts +15 -0
  688. package/src/app/shared/toast/toast.testing.module.d.ts +12 -0
  689. package/src/app/shared/toast/toasts.d.ts +16 -0
  690. package/src/app/shared/toolbar/modal-toolbar.d.ts +21 -0
  691. package/src/app/shared/toolbar/toolbar.d.ts +70 -0
  692. package/src/app/shared/toolbar/toolbar.module.d.ts +16 -0
  693. package/src/app/shared/types.d.ts +36 -0
  694. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +21 -0
  695. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +11 -0
  696. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +41 -0
  697. package/src/app/shared/upload-file/upload-file.component.d.ts +50 -0
  698. package/src/app/shared/upload-file/upload-file.model.d.ts +30 -0
  699. package/src/app/shared/validator/form-error-adapter.class.d.ts +33 -0
  700. package/src/app/shared/validator/validators.d.ts +139 -0
  701. package/src/app/shared/version/versions.d.ts +26 -0
  702. package/src/app/social/job/job.module.d.ts +12 -0
  703. package/src/app/social/job/progression/job-progression.component.d.ts +23 -0
  704. package/src/app/social/job/progression/job-progression.icon.d.ts +62 -0
  705. package/src/app/social/job/progression/job-progression.list.d.ts +19 -0
  706. package/src/app/social/job/progression/job-progression.model.d.ts +10 -0
  707. package/src/app/social/job/progression/job-progression.service.d.ts +33 -0
  708. package/src/app/social/job/testing/job-progression.testing.d.ts +13 -0
  709. package/src/app/social/job/testing/job-progression.testing.service.d.ts +9 -0
  710. package/src/app/social/job/testing/job.testing.module.d.ts +11 -0
  711. package/src/app/social/message/message.form.d.ts +36 -0
  712. package/src/app/social/message/message.modal.d.ts +43 -0
  713. package/src/app/social/message/message.model.d.ts +33 -0
  714. package/src/app/social/message/message.module.d.ts +12 -0
  715. package/src/app/social/message/message.service.d.ts +32 -0
  716. package/src/app/social/social.errors.d.ts +9 -0
  717. package/src/app/social/social.module.d.ts +20 -0
  718. package/src/app/social/social.testing.module.d.ts +13 -0
  719. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +32 -0
  720. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +71 -0
  721. package/src/app/social/user-event/testing/user-event.testing.d.ts +35 -0
  722. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +42 -0
  723. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +11 -0
  724. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +42 -0
  725. package/src/app/social/user-event/user-event.model.d.ts +44 -0
  726. package/src/app/social/user-event/user-event.module.d.ts +13 -0
  727. package/src/app/social/user-event/user-event.service.d.ts +124 -0
  728. package/src/assets/manifest.json +1 -1
  729. package/src/environments/environment.class.d.ts +75 -0
  730. package/src/environments/environment.d.ts +2 -0
  731. package/src/environments/environment.loader.d.ts +24 -0
  732. package/.editorconfig +0 -24
  733. package/.eslintrc.json +0 -95
  734. package/.gitattribute +0 -1
  735. package/.github/CONTRIBUTING.md +0 -10
  736. package/.github/ISSUE_TEMPLATE.md +0 -6
  737. package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
  738. package/.github/github_disclaimer.md +0 -14
  739. package/.gitlab-ci.yml +0 -46
  740. package/.graphqlconfig +0 -15
  741. package/.prettierignore +0 -9
  742. package/.prettierrc.json +0 -17
  743. package/angular.json +0 -236
  744. package/capacitor.config.ts +0 -49
  745. package/graphql.config.yml +0 -13
  746. package/ionic.config.json +0 -7
  747. package/karma.conf.js +0 -38
  748. package/ng-package.json +0 -21
  749. package/ngcc.config.js +0 -9
  750. package/public_api.ts +0 -426
  751. package/resources/README.md +0 -7
  752. package/resources/icon/TODO.md +0 -11
  753. package/resources/icon.png +0 -0
  754. package/resources/icon.png.md5 +0 -1
  755. package/resources/icon.xcf +0 -0
  756. package/resources/ios/icon/icon-1024.png +0 -0
  757. package/resources/ios/icon/icon-108@2x.png +0 -0
  758. package/resources/ios/icon/icon-20.png +0 -0
  759. package/resources/ios/icon/icon-20@2x.png +0 -0
  760. package/resources/ios/icon/icon-20@3x.png +0 -0
  761. package/resources/ios/icon/icon-24@2x.png +0 -0
  762. package/resources/ios/icon/icon-27.5@2x.png +0 -0
  763. package/resources/ios/icon/icon-29.png +0 -0
  764. package/resources/ios/icon/icon-29@2x.png +0 -0
  765. package/resources/ios/icon/icon-29@3x.png +0 -0
  766. package/resources/ios/icon/icon-40.png +0 -0
  767. package/resources/ios/icon/icon-40@2x.png +0 -0
  768. package/resources/ios/icon/icon-40@3x.png +0 -0
  769. package/resources/ios/icon/icon-44@2x.png +0 -0
  770. package/resources/ios/icon/icon-50.png +0 -0
  771. package/resources/ios/icon/icon-50@2x.png +0 -0
  772. package/resources/ios/icon/icon-60.png +0 -0
  773. package/resources/ios/icon/icon-60@2x.png +0 -0
  774. package/resources/ios/icon/icon-60@3x.png +0 -0
  775. package/resources/ios/icon/icon-72.png +0 -0
  776. package/resources/ios/icon/icon-72@2x.png +0 -0
  777. package/resources/ios/icon/icon-76.png +0 -0
  778. package/resources/ios/icon/icon-76@2x.png +0 -0
  779. package/resources/ios/icon/icon-83.5@2x.png +0 -0
  780. package/resources/ios/icon/icon-86@2x.png +0 -0
  781. package/resources/ios/icon/icon-98@2x.png +0 -0
  782. package/resources/ios/icon/icon-small.png +0 -0
  783. package/resources/ios/icon/icon-small@2x.png +0 -0
  784. package/resources/ios/icon/icon-small@3x.png +0 -0
  785. package/resources/ios/icon/icon.png +0 -0
  786. package/resources/ios/icon/icon@2x.png +0 -0
  787. package/resources/ios/splash/Default-1792h~iphone.png +0 -0
  788. package/resources/ios/splash/Default-2436h.png +0 -0
  789. package/resources/ios/splash/Default-2688h~iphone.png +0 -0
  790. package/resources/ios/splash/Default-568h@2x~iphone.png +0 -0
  791. package/resources/ios/splash/Default-667h.png +0 -0
  792. package/resources/ios/splash/Default-736h.png +0 -0
  793. package/resources/ios/splash/Default-Landscape-1792h~iphone.png +0 -0
  794. package/resources/ios/splash/Default-Landscape-2436h.png +0 -0
  795. package/resources/ios/splash/Default-Landscape-2688h~iphone.png +0 -0
  796. package/resources/ios/splash/Default-Landscape-736h.png +0 -0
  797. package/resources/ios/splash/Default-Landscape@2x~ipad.png +0 -0
  798. package/resources/ios/splash/Default-Landscape@~ipadpro.png +0 -0
  799. package/resources/ios/splash/Default-Landscape~ipad.png +0 -0
  800. package/resources/ios/splash/Default-Portrait@2x~ipad.png +0 -0
  801. package/resources/ios/splash/Default-Portrait@~ipadpro.png +0 -0
  802. package/resources/ios/splash/Default-Portrait~ipad.png +0 -0
  803. package/resources/ios/splash/Default@2x~iphone.png +0 -0
  804. package/resources/ios/splash/Default@2x~universal~anyany.png +0 -0
  805. package/resources/ios/splash/Default~iphone.png +0 -0
  806. package/resources/splash.png +0 -0
  807. package/resources/splash.png.md5 +0 -1
  808. package/scripts/build-android.sh +0 -18
  809. package/scripts/docker-start.sh +0 -6
  810. package/scripts/emulate-android.sh +0 -17
  811. package/scripts/env-android.sh +0 -83
  812. package/scripts/env-clean.sh +0 -23
  813. package/scripts/env-global.sh +0 -154
  814. package/scripts/install-android-sdk-tools.sh +0 -73
  815. package/scripts/ionic-update.sh +0 -24
  816. package/scripts/node/build-i18n.js +0 -37
  817. package/scripts/node/playground.ts +0 -9
  818. package/scripts/node/resources.js +0 -108
  819. package/scripts/release.sh +0 -162
  820. package/scripts/run-android.sh +0 -59
  821. package/scripts/test.sh +0 -19
  822. package/src/app/admin/admin-routing.module.ts +0 -26
  823. package/src/app/admin/admin.module.ts +0 -20
  824. package/src/app/admin/services/filter/person.filter.ts +0 -86
  825. package/src/app/admin/services/person.service.ts +0 -244
  826. package/src/app/admin/services/validator/person.validator.ts +0 -86
  827. package/src/app/admin/users/users.html +0 -613
  828. package/src/app/admin/users/users.module.ts +0 -32
  829. package/src/app/admin/users/users.scss +0 -80
  830. package/src/app/admin/users/users.ts +0 -387
  831. package/src/app/app-routing.module.ts +0 -165
  832. package/src/app/app.component.html +0 -14
  833. package/src/app/app.component.scss +0 -4
  834. package/src/app/app.component.ts +0 -252
  835. package/src/app/app.module.ts +0 -355
  836. package/src/app/core/about/about.modal.html +0 -145
  837. package/src/app/core/about/about.modal.scss +0 -22
  838. package/src/app/core/about/about.modal.ts +0 -69
  839. package/src/app/core/about/about.module.ts +0 -14
  840. package/src/app/core/account/account.module.ts +0 -43
  841. package/src/app/core/account/account.page.html +0 -329
  842. package/src/app/core/account/account.page.scss +0 -20
  843. package/src/app/core/account/account.page.ts +0 -389
  844. package/src/app/core/account/new-token.form.html +0 -90
  845. package/src/app/core/account/new-token.form.ts +0 -99
  846. package/src/app/core/account/new-token.modal.html +0 -52
  847. package/src/app/core/account/new-token.modal.ts +0 -68
  848. package/src/app/core/account/password/change-password.form.html +0 -62
  849. package/src/app/core/account/password/change-password.form.scss +0 -0
  850. package/src/app/core/account/password/change-password.form.ts +0 -58
  851. package/src/app/core/account/password/change-password.module.ts +0 -14
  852. package/src/app/core/account/password/change-password.page.html +0 -41
  853. package/src/app/core/account/password/change-password.page.scss +0 -49
  854. package/src/app/core/account/password/change-password.page.ts +0 -158
  855. package/src/app/core/account/token.table.html +0 -160
  856. package/src/app/core/account/token.table.scss +0 -7
  857. package/src/app/core/account/token.table.ts +0 -160
  858. package/src/app/core/auth/auth.form.html +0 -108
  859. package/src/app/core/auth/auth.form.scss +0 -0
  860. package/src/app/core/auth/auth.form.ts +0 -165
  861. package/src/app/core/auth/auth.modal.html +0 -50
  862. package/src/app/core/auth/auth.modal.scss +0 -0
  863. package/src/app/core/auth/auth.modal.ts +0 -78
  864. package/src/app/core/auth/auth.module.ts +0 -35
  865. package/src/app/core/auth/reset-password.modal.html +0 -59
  866. package/src/app/core/auth/reset-password.modal.ts +0 -83
  867. package/src/app/core/core.module.ts +0 -72
  868. package/src/app/core/core.testing.module.ts +0 -80
  869. package/src/app/core/form/array/form-array.ts +0 -409
  870. package/src/app/core/form/array/testing/form-array-test.module.ts +0 -15
  871. package/src/app/core/form/array/testing/form-array.test.html +0 -196
  872. package/src/app/core/form/array/testing/form-array.test.ts +0 -119
  873. package/src/app/core/form/buttons/form-buttons-bar.component.html +0 -82
  874. package/src/app/core/form/buttons/form-buttons-bar.component.scss +0 -19
  875. package/src/app/core/form/buttons/form-buttons-bar.component.ts +0 -89
  876. package/src/app/core/form/buttons/form-buttons-bar.module.ts +0 -20
  877. package/src/app/core/form/entity/editor.class.ts +0 -295
  878. package/src/app/core/form/entity/entity-editor-modal.class.ts +0 -494
  879. package/src/app/core/form/entity/entity-editor.class.ts +0 -894
  880. package/src/app/core/form/entity/entity-metadata.component.html +0 -57
  881. package/src/app/core/form/entity/entity-metadata.component.scss +0 -40
  882. package/src/app/core/form/entity/entity-metadata.component.ts +0 -18
  883. package/src/app/core/form/entity/entity.module.ts +0 -20
  884. package/src/app/core/form/entity/tab-editor.class.ts +0 -224
  885. package/src/app/core/form/form-container.class.ts +0 -380
  886. package/src/app/core/form/form.class.ts +0 -377
  887. package/src/app/core/form/form.module.ts +0 -38
  888. package/src/app/core/form/form.utils.ts +0 -305
  889. package/src/app/core/form/list/list.form.html +0 -68
  890. package/src/app/core/form/list/list.form.scss +0 -40
  891. package/src/app/core/form/list/list.form.ts +0 -266
  892. package/src/app/core/form/list/list.module.ts +0 -20
  893. package/src/app/core/form/properties/properties.form.html +0 -160
  894. package/src/app/core/form/properties/properties.form.scss +0 -21
  895. package/src/app/core/form/properties/properties.form.ts +0 -331
  896. package/src/app/core/form/properties/properties.module.ts +0 -24
  897. package/src/app/core/form/properties/properties.table.html +0 -228
  898. package/src/app/core/form/properties/properties.table.scss +0 -0
  899. package/src/app/core/form/properties/properties.table.ts +0 -275
  900. package/src/app/core/form/properties/properties.utils.ts +0 -391
  901. package/src/app/core/form/properties/property.validator.ts +0 -82
  902. package/src/app/core/form/properties/testing/properties-form.test.html +0 -23
  903. package/src/app/core/form/properties/testing/properties-form.test.ts +0 -109
  904. package/src/app/core/form/properties/testing/properties-form.testing.module.ts +0 -14
  905. package/src/app/core/form/text-popover/testing/text-popover.testing.html +0 -50
  906. package/src/app/core/form/text-popover/testing/text-popover.testing.module.ts +0 -21
  907. package/src/app/core/form/text-popover/testing/text-popover.testing.ts +0 -76
  908. package/src/app/core/form/text-popover/text-popover.component.html +0 -89
  909. package/src/app/core/form/text-popover/text-popover.component.scss +0 -7
  910. package/src/app/core/form/text-popover/text-popover.component.ts +0 -176
  911. package/src/app/core/form/text-popover/text-popover.module.ts +0 -19
  912. package/src/app/core/form/username/username.form.html +0 -27
  913. package/src/app/core/form/username/username.form.ts +0 -44
  914. package/src/app/core/form/username/username.module.ts +0 -12
  915. package/src/app/core/graphql/graphql.module.ts +0 -7
  916. package/src/app/core/graphql/graphql.service.ts +0 -962
  917. package/src/app/core/graphql/graphql.utils.ts +0 -166
  918. package/src/app/core/home/home.html +0 -295
  919. package/src/app/core/home/home.module.ts +0 -27
  920. package/src/app/core/home/home.scss +0 -279
  921. package/src/app/core/home/home.ts +0 -422
  922. package/src/app/core/icon/icon.component.html +0 -19
  923. package/src/app/core/icon/icon.component.ts +0 -22
  924. package/src/app/core/icon/icon.module.ts +0 -13
  925. package/src/app/core/install/install-upgrade-card.component.html +0 -144
  926. package/src/app/core/install/install-upgrade-card.component.scss +0 -3
  927. package/src/app/core/install/install-upgrade-card.component.ts +0 -445
  928. package/src/app/core/install/install-upgrade-card.module.ts +0 -18
  929. package/src/app/core/menu/menu.component.html +0 -219
  930. package/src/app/core/menu/menu.component.scss +0 -304
  931. package/src/app/core/menu/menu.component.ts +0 -251
  932. package/src/app/core/menu/menu.filter.ts +0 -28
  933. package/src/app/core/menu/menu.model.ts +0 -356
  934. package/src/app/core/menu/menu.module.ts +0 -27
  935. package/src/app/core/menu/menu.service.ts +0 -727
  936. package/src/app/core/menu/sub-menu-tab.directive.ts +0 -99
  937. package/src/app/core/menu/testing/menu-other.testing.ts +0 -57
  938. package/src/app/core/menu/testing/menu.testing.html +0 -143
  939. package/src/app/core/menu/testing/menu.testing.module.ts +0 -52
  940. package/src/app/core/menu/testing/menu.testing.scss +0 -5
  941. package/src/app/core/menu/testing/menu.testing.ts +0 -175
  942. package/src/app/core/offline/update-offline-mode-card.component.html +0 -39
  943. package/src/app/core/offline/update-offline-mode-card.component.scss +0 -3
  944. package/src/app/core/offline/update-offline-mode-card.component.ts +0 -23
  945. package/src/app/core/offline/update-offline-mode-card.module.ts +0 -20
  946. package/src/app/core/peer/select-peer.modal.html +0 -317
  947. package/src/app/core/peer/select-peer.modal.scss +0 -41
  948. package/src/app/core/peer/select-peer.modal.ts +0 -366
  949. package/src/app/core/peer/select-peer.module.ts +0 -23
  950. package/src/app/core/register/register-confirm.page.html +0 -51
  951. package/src/app/core/register/register-confirm.page.scss +0 -56
  952. package/src/app/core/register/register-confirm.page.ts +0 -90
  953. package/src/app/core/register/register.form.html +0 -143
  954. package/src/app/core/register/register.form.scss +0 -10
  955. package/src/app/core/register/register.form.ts +0 -218
  956. package/src/app/core/register/register.modal.html +0 -66
  957. package/src/app/core/register/register.modal.ts +0 -50
  958. package/src/app/core/register/register.module.ts +0 -15
  959. package/src/app/core/services/account.service.ts +0 -1567
  960. package/src/app/core/services/auth-guard.service.ts +0 -70
  961. package/src/app/core/services/base-entity-service.class.ts +0 -659
  962. package/src/app/core/services/base-graphql-service.class.ts +0 -319
  963. package/src/app/core/services/base58.ts +0 -90
  964. package/src/app/core/services/config/core.config.ts +0 -263
  965. package/src/app/core/services/config.service.ts +0 -425
  966. package/src/app/core/services/crypto.service.ts +0 -126
  967. package/src/app/core/services/errors.ts +0 -80
  968. package/src/app/core/services/local-settings.service.spec.ts +0 -39
  969. package/src/app/core/services/local-settings.service.ts +0 -605
  970. package/src/app/core/services/model/account.model.ts +0 -188
  971. package/src/app/core/services/model/config.model.ts +0 -116
  972. package/src/app/core/services/model/department.model.ts +0 -34
  973. package/src/app/core/services/model/entity.decorators.ts +0 -110
  974. package/src/app/core/services/model/entity.model.ts +0 -409
  975. package/src/app/core/services/model/filter.model.ts +0 -127
  976. package/src/app/core/services/model/history.model.ts +0 -25
  977. package/src/app/core/services/model/model.enum.ts +0 -10
  978. package/src/app/core/services/model/node-feature.model.ts +0 -31
  979. package/src/app/core/services/model/peer.model.ts +0 -119
  980. package/src/app/core/services/model/person.model.ts +0 -122
  981. package/src/app/core/services/model/referential.model.ts +0 -253
  982. package/src/app/core/services/model/settings.model.ts +0 -37
  983. package/src/app/core/services/model/token.model.ts +0 -60
  984. package/src/app/core/services/model/tree-item-entity.model.ts +0 -230
  985. package/src/app/core/services/network.service.spec.ts +0 -47
  986. package/src/app/core/services/network.service.ts +0 -761
  987. package/src/app/core/services/network.types.ts +0 -7
  988. package/src/app/core/services/network.utils.ts +0 -83
  989. package/src/app/core/services/pipes/account.pipes.ts +0 -22
  990. package/src/app/core/services/pipes/department-to-string.pipe.ts +0 -13
  991. package/src/app/core/services/pipes/person-to-string.pipe.ts +0 -13
  992. package/src/app/core/services/pipes/pipes.module.ts +0 -30
  993. package/src/app/core/services/pipes/referential-to-string.pipe.ts +0 -18
  994. package/src/app/core/services/pipes/usage-mode.pipes.ts +0 -23
  995. package/src/app/core/services/platform.service.spec.ts +0 -50
  996. package/src/app/core/services/platform.service.ts +0 -694
  997. package/src/app/core/services/storage/entities-storage.service.ts +0 -557
  998. package/src/app/core/services/storage/entity-store.class.ts +0 -589
  999. package/src/app/core/services/testing/local-settings.config.ts +0 -35
  1000. package/src/app/core/services/testing/referential-filter.model.ts +0 -28
  1001. package/src/app/core/services/testing/referential.validator.ts +0 -58
  1002. package/src/app/core/services/testing/user-settings.config.ts +0 -77
  1003. package/src/app/core/services/validator/account.validator.ts +0 -50
  1004. package/src/app/core/services/validator/base.validator.class.ts +0 -51
  1005. package/src/app/core/services/validator/local-settings.validator.ts +0 -59
  1006. package/src/app/core/services/validator/user-settings.validator.ts +0 -22
  1007. package/src/app/core/services/validator/user-token.validator.ts +0 -54
  1008. package/src/app/core/settings/settings.module.ts +0 -15
  1009. package/src/app/core/settings/settings.page.html +0 -300
  1010. package/src/app/core/settings/settings.page.ts +0 -455
  1011. package/src/app/core/table/async-table.class.ts +0 -2019
  1012. package/src/app/core/table/column/actions-column.component.html +0 -219
  1013. package/src/app/core/table/column/actions-column.component.scss +0 -17
  1014. package/src/app/core/table/column/actions-column.component.ts +0 -83
  1015. package/src/app/core/table/column/nav-actions-column.component.html +0 -119
  1016. package/src/app/core/table/column/nav-actions-column.component.ts +0 -108
  1017. package/src/app/core/table/column/row-field.component.html +0 -43
  1018. package/src/app/core/table/column/row-field.component.scss +0 -0
  1019. package/src/app/core/table/column/row-field.component.ts +0 -63
  1020. package/src/app/core/table/entities-async-table-datasource.class.ts +0 -501
  1021. package/src/app/core/table/entities-table-datasource.class.ts +0 -499
  1022. package/src/app/core/table/memory-table.class.ts +0 -56
  1023. package/src/app/core/table/table-select-columns.component.html +0 -56
  1024. package/src/app/core/table/table-select-columns.component.ts +0 -49
  1025. package/src/app/core/table/table.class.ts +0 -2080
  1026. package/src/app/core/table/table.model.ts +0 -39
  1027. package/src/app/core/table/table.module.ts +0 -28
  1028. package/src/app/core/table/table.pipes.ts +0 -87
  1029. package/src/app/core/table/table.utils.ts +0 -42
  1030. package/src/app/core/table/testing/multi-table.testing.html +0 -456
  1031. package/src/app/core/table/testing/multi-table.testing.ts +0 -263
  1032. package/src/app/core/table/testing/table-validator.service.ts +0 -29
  1033. package/src/app/core/table/testing/table.testing.html +0 -556
  1034. package/src/app/core/table/testing/table.testing.module.ts +0 -16
  1035. package/src/app/core/table/testing/table.testing.scss +0 -32
  1036. package/src/app/core/table/testing/table.testing.ts +0 -329
  1037. package/src/app/core/table/testing/table2-validator.service.ts +0 -19
  1038. package/src/app/core/table/testing/table2.testing.html +0 -470
  1039. package/src/app/core/table/testing/table2.testing.scss +0 -25
  1040. package/src/app/core/table/testing/table2.testing.ts +0 -274
  1041. package/src/app/shared/alerts.ts +0 -296
  1042. package/src/app/shared/audio/audio.testing.html +0 -29
  1043. package/src/app/shared/audio/audio.testing.module.ts +0 -21
  1044. package/src/app/shared/audio/audio.testing.ts +0 -27
  1045. package/src/app/shared/audio/audio.ts +0 -273
  1046. package/src/app/shared/base64.utils.ts +0 -66
  1047. package/src/app/shared/capacitor/keyboard.ts +0 -38
  1048. package/src/app/shared/capacitor/plugins.ts +0 -12
  1049. package/src/app/shared/constants.ts +0 -19
  1050. package/src/app/shared/dates.ts +0 -206
  1051. package/src/app/shared/debug/debug-service.class.ts +0 -7
  1052. package/src/app/shared/debug/debug.component.html +0 -13
  1053. package/src/app/shared/debug/debug.component.scss +0 -21
  1054. package/src/app/shared/debug/debug.component.spec.ts +0 -24
  1055. package/src/app/shared/debug/debug.component.ts +0 -25
  1056. package/src/app/shared/debug/debug.module.ts +0 -14
  1057. package/src/app/shared/directives/autofocus.directive.ts +0 -93
  1058. package/src/app/shared/directives/autoresize.directive.ts +0 -67
  1059. package/src/app/shared/directives/autotitle.directive.ts +0 -17
  1060. package/src/app/shared/directives/directives.module.ts +0 -16
  1061. package/src/app/shared/directives/drag-and-drop.directive.ts +0 -46
  1062. package/src/app/shared/directives/ng-var.directive.ts +0 -31
  1063. package/src/app/shared/directives/resizable/resizable.component.ts +0 -48
  1064. package/src/app/shared/directives/resizable/resizable.directive.ts +0 -43
  1065. package/src/app/shared/directives/resizable/resizable.module.ts +0 -9
  1066. package/src/app/shared/directives/resizable/resizable.style.scss +0 -37
  1067. package/src/app/shared/directives/resizable/resizable.template.html +0 -6
  1068. package/src/app/shared/directives/throttled-click.directive.ts +0 -36
  1069. package/src/app/shared/events.ts +0 -93
  1070. package/src/app/shared/file/csv.utils.ts +0 -123
  1071. package/src/app/shared/file/file.service.ts +0 -129
  1072. package/src/app/shared/file/file.utils.ts +0 -142
  1073. package/src/app/shared/file/images.utils.ts +0 -214
  1074. package/src/app/shared/file/json.utils.ts +0 -82
  1075. package/src/app/shared/file/uri.utils.ts +0 -31
  1076. package/src/app/shared/file/url.utils.ts +0 -163
  1077. package/src/app/shared/focusable.ts +0 -8
  1078. package/src/app/shared/form/field.component.html +0 -380
  1079. package/src/app/shared/form/field.component.scss +0 -7
  1080. package/src/app/shared/form/field.component.ts +0 -344
  1081. package/src/app/shared/form/field.model.ts +0 -158
  1082. package/src/app/shared/form/loading-spinner.ts +0 -16
  1083. package/src/app/shared/forms.ts +0 -577
  1084. package/src/app/shared/functions.spec.ts +0 -197
  1085. package/src/app/shared/functions.ts +0 -694
  1086. package/src/app/shared/geolocation/geolocation.utils.ts +0 -105
  1087. package/src/app/shared/gesture/gesture-config.ts +0 -43
  1088. package/src/app/shared/gesture/hammer.utils.ts +0 -14
  1089. package/src/app/shared/graph/colors.utils.ts +0 -69
  1090. package/src/app/shared/graph/graph-colors.ts +0 -270
  1091. package/src/app/shared/guard/component-dirty.guard.ts +0 -67
  1092. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.html +0 -11
  1093. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.scss +0 -37
  1094. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.ts +0 -14
  1095. package/src/app/shared/hotkeys/hotkeys.service.ts +0 -165
  1096. package/src/app/shared/hotkeys/shared-hotkeys.module.ts +0 -15
  1097. package/src/app/shared/http/http.utils.ts +0 -95
  1098. package/src/app/shared/image/gallery/image-gallery.component.html +0 -282
  1099. package/src/app/shared/image/gallery/image-gallery.component.scss +0 -218
  1100. package/src/app/shared/image/gallery/image-gallery.component.ts +0 -434
  1101. package/src/app/shared/image/gallery/image-gallery.module.ts +0 -35
  1102. package/src/app/shared/image/gallery/testing/gallegry.model.testing.ts +0 -23
  1103. package/src/app/shared/image/gallery/testing/gallery.service.testing.ts +0 -99
  1104. package/src/app/shared/image/gallery/testing/gallery.testing.html +0 -27
  1105. package/src/app/shared/image/gallery/testing/gallery.testing.module.ts +0 -39
  1106. package/src/app/shared/image/gallery/testing/gallery.testing.ts +0 -34
  1107. package/src/app/shared/image/image.model.ts +0 -8
  1108. package/src/app/shared/image/image.module.ts +0 -12
  1109. package/src/app/shared/image/image.service.ts +0 -111
  1110. package/src/app/shared/image/image.testing.module.ts +0 -16
  1111. package/src/app/shared/inputs.ts +0 -330
  1112. package/src/app/shared/interceptors/progess.interceptor.ts +0 -24
  1113. package/src/app/shared/logging/log-level.model.ts +0 -53
  1114. package/src/app/shared/logging/logger.model.ts +0 -117
  1115. package/src/app/shared/logging/logging-service.class.ts +0 -131
  1116. package/src/app/shared/logging/logging-service.config.ts +0 -29
  1117. package/src/app/shared/logging/logging-service.module.ts +0 -19
  1118. package/src/app/shared/markdown/markdown.component.html +0 -55
  1119. package/src/app/shared/markdown/markdown.component.scss +0 -75
  1120. package/src/app/shared/markdown/markdown.component.ts +0 -350
  1121. package/src/app/shared/markdown/markdown.directive.ts +0 -28
  1122. package/src/app/shared/markdown/markdown.modal.html +0 -42
  1123. package/src/app/shared/markdown/markdown.modal.ts +0 -91
  1124. package/src/app/shared/markdown/markdown.module.ts +0 -65
  1125. package/src/app/shared/markdown/markdown.service.ts +0 -234
  1126. package/src/app/shared/markdown/markdown.utils.ts +0 -90
  1127. package/src/app/shared/markdown/testing/markdown.test.html +0 -50
  1128. package/src/app/shared/markdown/testing/markdown.test.ts +0 -49
  1129. package/src/app/shared/markdown/testing/markdown.testing.module.ts +0 -22
  1130. package/src/app/shared/material/autocomplete/material.autocomplete.config.ts +0 -127
  1131. package/src/app/shared/material/autocomplete/material.autocomplete.html +0 -400
  1132. package/src/app/shared/material/autocomplete/material.autocomplete.module.ts +0 -41
  1133. package/src/app/shared/material/autocomplete/material.autocomplete.scss +0 -54
  1134. package/src/app/shared/material/autocomplete/material.autocomplete.ts +0 -1375
  1135. package/src/app/shared/material/autocomplete/material.autocomplete.utils.ts +0 -21
  1136. package/src/app/shared/material/autocomplete/testing/autocomplete.test.html +0 -1164
  1137. package/src/app/shared/material/autocomplete/testing/autocomplete.test.spec.ts +0 -33
  1138. package/src/app/shared/material/autocomplete/testing/autocomplete.test.ts +0 -272
  1139. package/src/app/shared/material/badge/badge.directive.ts +0 -217
  1140. package/src/app/shared/material/badge/badge.module.ts +0 -12
  1141. package/src/app/shared/material/badge/badge.test.html +0 -275
  1142. package/src/app/shared/material/badge/badge.test.ts +0 -34
  1143. package/src/app/shared/material/boolean/boolean.module.ts +0 -36
  1144. package/src/app/shared/material/boolean/material.boolean.html +0 -271
  1145. package/src/app/shared/material/boolean/material.boolean.scss +0 -27
  1146. package/src/app/shared/material/boolean/material.boolean.ts +0 -343
  1147. package/src/app/shared/material/boolean/testing/boolean.test.page.html +0 -469
  1148. package/src/app/shared/material/boolean/testing/boolean.test.page.ts +0 -66
  1149. package/src/app/shared/material/chips/chips.module.ts +0 -38
  1150. package/src/app/shared/material/chips/material.chips.html +0 -233
  1151. package/src/app/shared/material/chips/material.chips.scss +0 -67
  1152. package/src/app/shared/material/chips/material.chips.ts +0 -834
  1153. package/src/app/shared/material/chips/testing/chips.test.html +0 -207
  1154. package/src/app/shared/material/chips/testing/chips.test.ts +0 -169
  1155. package/src/app/shared/material/datetime/datetime.module.ts +0 -42
  1156. package/src/app/shared/material/datetime/material.date.html +0 -186
  1157. package/src/app/shared/material/datetime/material.date.scss +0 -17
  1158. package/src/app/shared/material/datetime/material.date.ts +0 -512
  1159. package/src/app/shared/material/datetime/material.dateshort.html +0 -194
  1160. package/src/app/shared/material/datetime/material.dateshort.scss +0 -23
  1161. package/src/app/shared/material/datetime/material.dateshort.ts +0 -497
  1162. package/src/app/shared/material/datetime/material.datetime.html +0 -325
  1163. package/src/app/shared/material/datetime/material.datetime.scss +0 -87
  1164. package/src/app/shared/material/datetime/material.datetime.ts +0 -758
  1165. package/src/app/shared/material/datetime/testing/mat-date-time.test.html +0 -794
  1166. package/src/app/shared/material/datetime/testing/mat-date-time.test.ts +0 -155
  1167. package/src/app/shared/material/datetime/testing/mat-date.test.html +0 -564
  1168. package/src/app/shared/material/datetime/testing/mat-date.test.ts +0 -145
  1169. package/src/app/shared/material/datetime/testing/mat-dateshort.test.html +0 -530
  1170. package/src/app/shared/material/datetime/testing/mat-dateshort.test.ts +0 -133
  1171. package/src/app/shared/material/duration/duration.module.ts +0 -33
  1172. package/src/app/shared/material/duration/duration.utils.ts +0 -18
  1173. package/src/app/shared/material/duration/material.duration.html +0 -116
  1174. package/src/app/shared/material/duration/material.duration.scss +0 -28
  1175. package/src/app/shared/material/duration/material.duration.ts +0 -308
  1176. package/src/app/shared/material/duration/testing/mat-duration.test.html +0 -170
  1177. package/src/app/shared/material/duration/testing/mat-duration.test.ts +0 -88
  1178. package/src/app/shared/material/latlong/latlong.utils.ts +0 -376
  1179. package/src/app/shared/material/latlong/material.latlong-input.html +0 -95
  1180. package/src/app/shared/material/latlong/material.latlong-input.scss +0 -66
  1181. package/src/app/shared/material/latlong/material.latlong-input.ts +0 -445
  1182. package/src/app/shared/material/latlong/material.latlong.html +0 -90
  1183. package/src/app/shared/material/latlong/material.latlong.module.ts +0 -37
  1184. package/src/app/shared/material/latlong/material.latlong.scss +0 -0
  1185. package/src/app/shared/material/latlong/material.latlong.ts +0 -203
  1186. package/src/app/shared/material/latlong/testing/latlong.test.html +0 -1008
  1187. package/src/app/shared/material/latlong/testing/latlong.test.ts +0 -144
  1188. package/src/app/shared/material/material.animations.ts +0 -269
  1189. package/src/app/shared/material/material.config.ts +0 -5
  1190. package/src/app/shared/material/material.module.ts +0 -94
  1191. package/src/app/shared/material/material.testing.module.ts +0 -192
  1192. package/src/app/shared/material/memory/memory.utils.ts +0 -57
  1193. package/src/app/shared/material/numpad/numpad.animation.ts +0 -1
  1194. package/src/app/shared/material/numpad/numpad.append-to-input.directive.ts +0 -110
  1195. package/src/app/shared/material/numpad/numpad.component.ts +0 -73
  1196. package/src/app/shared/material/numpad/numpad.container.html +0 -37
  1197. package/src/app/shared/material/numpad/numpad.container.scss +0 -55
  1198. package/src/app/shared/material/numpad/numpad.container.ts +0 -152
  1199. package/src/app/shared/material/numpad/numpad.content.html +0 -13
  1200. package/src/app/shared/material/numpad/numpad.content.ts +0 -10
  1201. package/src/app/shared/material/numpad/numpad.directive.ts +0 -159
  1202. package/src/app/shared/material/numpad/numpad.dom-service.ts +0 -35
  1203. package/src/app/shared/material/numpad/numpad.model.ts +0 -53
  1204. package/src/app/shared/material/numpad/numpad.module.ts +0 -18
  1205. package/src/app/shared/material/numpad/testing/numpad.test.html +0 -146
  1206. package/src/app/shared/material/numpad/testing/numpad.test.ts +0 -44
  1207. package/src/app/shared/material/paginator/material.paginator-i18n.ts +0 -47
  1208. package/src/app/shared/material/stepper/material.stepper-i18n.ts +0 -17
  1209. package/src/app/shared/material/swipe/material.swipe.html +0 -85
  1210. package/src/app/shared/material/swipe/material.swipe.scss +0 -55
  1211. package/src/app/shared/material/swipe/material.swipe.ts +0 -366
  1212. package/src/app/shared/material/swipe/swipe.module.ts +0 -29
  1213. package/src/app/shared/material/swipe/testing/swipe.test.html +0 -112
  1214. package/src/app/shared/material/swipe/testing/swipe.test.ts +0 -74
  1215. package/src/app/shared/material/test/test-component.css +0 -22
  1216. package/src/app/shared/material/test/test-component.html +0 -40
  1217. package/src/app/shared/material/test/test-component.ts +0 -295
  1218. package/src/app/shared/material/testing/common.test.html +0 -227
  1219. package/src/app/shared/material/testing/common.test.ts +0 -126
  1220. package/src/app/shared/material/text/testing/text-form.testing.html +0 -213
  1221. package/src/app/shared/material/text/testing/text-form.testing.ts +0 -30
  1222. package/src/app/shared/material/text/text-form.component.html +0 -63
  1223. package/src/app/shared/material/text/text-form.component.scss +0 -8
  1224. package/src/app/shared/material/text/text-form.component.ts +0 -177
  1225. package/src/app/shared/material/text/text-form.module.ts +0 -36
  1226. package/src/app/shared/modules.ts +0 -12
  1227. package/src/app/shared/named-filter/named-filter-selector.component.html +0 -77
  1228. package/src/app/shared/named-filter/named-filter-selector.component.scss +0 -3
  1229. package/src/app/shared/named-filter/named-filter-selector.component.ts +0 -287
  1230. package/src/app/shared/named-filter/named-filter.model.ts +0 -64
  1231. package/src/app/shared/named-filter/named-filter.module.ts +0 -15
  1232. package/src/app/shared/named-filter/named-filter.service.ts +0 -100
  1233. package/src/app/shared/named-filter/testing/named-filter-selector.testing.html +0 -61
  1234. package/src/app/shared/named-filter/testing/named-filter-selector.testing.ts +0 -80
  1235. package/src/app/shared/named-filter/testing/named-filter.testing.module.ts +0 -20
  1236. package/src/app/shared/named-filter/testing/named-filter.testing.service.ts +0 -83
  1237. package/src/app/shared/observables.ts +0 -139
  1238. package/src/app/shared/pipes/arrays.pipe.ts +0 -153
  1239. package/src/app/shared/pipes/badge.pipes.ts +0 -17
  1240. package/src/app/shared/pipes/colors.pipe.ts +0 -24
  1241. package/src/app/shared/pipes/date-diff-duration.pipe.ts +0 -53
  1242. package/src/app/shared/pipes/date-format.pipe.ts +0 -73
  1243. package/src/app/shared/pipes/date-from-now.pipe.ts +0 -17
  1244. package/src/app/shared/pipes/dates.pipe.ts +0 -13
  1245. package/src/app/shared/pipes/display-with.pipe.ts +0 -13
  1246. package/src/app/shared/pipes/duration.pipe.spec.ts +0 -41
  1247. package/src/app/shared/pipes/duration.pipe.ts +0 -28
  1248. package/src/app/shared/pipes/file-size.pipe.ts +0 -50
  1249. package/src/app/shared/pipes/form.pipes.ts +0 -209
  1250. package/src/app/shared/pipes/highlight.pipe.ts +0 -41
  1251. package/src/app/shared/pipes/html.pipes.ts +0 -49
  1252. package/src/app/shared/pipes/latlong-format.pipe.ts +0 -28
  1253. package/src/app/shared/pipes/maps.pipe.ts +0 -41
  1254. package/src/app/shared/pipes/maskito.pipe.ts +0 -68
  1255. package/src/app/shared/pipes/math.pipes.ts +0 -46
  1256. package/src/app/shared/pipes/ng-init.pipe.ts +0 -13
  1257. package/src/app/shared/pipes/number-format.pipe.ts +0 -11
  1258. package/src/app/shared/pipes/observable.pipes.ts +0 -45
  1259. package/src/app/shared/pipes/pipes.module.ts +0 -162
  1260. package/src/app/shared/pipes/property.pipes.ts +0 -115
  1261. package/src/app/shared/pipes/selection.pipes.ts +0 -165
  1262. package/src/app/shared/pipes/string.pipes.ts +0 -128
  1263. package/src/app/shared/pipes/translate-context.pipe.ts +0 -27
  1264. package/src/app/shared/pipes/types.pipes.ts +0 -52
  1265. package/src/app/shared/pipes/url.pipes.ts +0 -36
  1266. package/src/app/shared/platforms.ts +0 -99
  1267. package/src/app/shared/print/print.service.ts +0 -337
  1268. package/src/app/shared/regexps.ts +0 -112
  1269. package/src/app/shared/rx-state/rx-state.decorators.ts +0 -281
  1270. package/src/app/shared/rx-state/rx-state.module.ts +0 -11
  1271. package/src/app/shared/rx-state/rx-state.types.ts +0 -5
  1272. package/src/app/shared/services/entity-service.class.ts +0 -120
  1273. package/src/app/shared/services/job.utils.ts +0 -124
  1274. package/src/app/shared/services/memory-entity-service.class.ts +0 -435
  1275. package/src/app/shared/services/progress-bar.service.ts +0 -40
  1276. package/src/app/shared/services/startable-observable-service.class.ts +0 -129
  1277. package/src/app/shared/services/startable-service.class.ts +0 -120
  1278. package/src/app/shared/services/storage.utils.ts +0 -53
  1279. package/src/app/shared/services/translate-context.service.ts +0 -112
  1280. package/src/app/shared/services/validator-service.class.ts +0 -13
  1281. package/src/app/shared/services.ts +0 -134
  1282. package/src/app/shared/shared-routing.module.ts +0 -69
  1283. package/src/app/shared/shared.module.spec.ts +0 -13
  1284. package/src/app/shared/shared.module.ts +0 -168
  1285. package/src/app/shared/shared.testing.module.ts +0 -61
  1286. package/src/app/shared/storage/storage-explorer.component.html +0 -160
  1287. package/src/app/shared/storage/storage-explorer.component.scss +0 -37
  1288. package/src/app/shared/storage/storage-explorer.component.spec.ts +0 -24
  1289. package/src/app/shared/storage/storage-explorer.component.ts +0 -268
  1290. package/src/app/shared/storage/storage-explorer.module.ts +0 -24
  1291. package/src/app/shared/storage/storage-explorer.testing-routing.module.ts +0 -19
  1292. package/src/app/shared/storage/storage-explorer.testing.module.ts +0 -19
  1293. package/src/app/shared/storage/storage.service.ts +0 -131
  1294. package/src/app/shared/storage/storage.utils.ts +0 -25
  1295. package/src/app/shared/testing/maskito.test.html +0 -40
  1296. package/src/app/shared/testing/maskito.test.ts +0 -33
  1297. package/src/app/shared/testing/observable.test.html +0 -53
  1298. package/src/app/shared/testing/observable.test.scss +0 -3
  1299. package/src/app/shared/testing/observable.test.ts +0 -101
  1300. package/src/app/shared/testing/tests.page.html +0 -22
  1301. package/src/app/shared/testing/tests.page.ts +0 -32
  1302. package/src/app/shared/toast/toast.testing.html +0 -50
  1303. package/src/app/shared/toast/toast.testing.module.ts +0 -22
  1304. package/src/app/shared/toast/toast.testing.ts +0 -52
  1305. package/src/app/shared/toast/toasts.ts +0 -161
  1306. package/src/app/shared/toolbar/modal-toolbar.html +0 -30
  1307. package/src/app/shared/toolbar/modal-toolbar.scss +0 -0
  1308. package/src/app/shared/toolbar/modal-toolbar.ts +0 -64
  1309. package/src/app/shared/toolbar/toolbar.html +0 -68
  1310. package/src/app/shared/toolbar/toolbar.module.ts +0 -18
  1311. package/src/app/shared/toolbar/toolbar.scss +0 -0
  1312. package/src/app/shared/toolbar/toolbar.ts +0 -262
  1313. package/src/app/shared/types.ts +0 -44
  1314. package/src/app/shared/upload-file/testing/upload-file.testing.html +0 -30
  1315. package/src/app/shared/upload-file/testing/upload-file.testing.module.ts +0 -21
  1316. package/src/app/shared/upload-file/testing/upload-file.testing.ts +0 -65
  1317. package/src/app/shared/upload-file/upload-file-popover.component.html +0 -46
  1318. package/src/app/shared/upload-file/upload-file-popover.component.scss +0 -6
  1319. package/src/app/shared/upload-file/upload-file-popover.component.ts +0 -115
  1320. package/src/app/shared/upload-file/upload-file.component.html +0 -57
  1321. package/src/app/shared/upload-file/upload-file.component.scss +0 -60
  1322. package/src/app/shared/upload-file/upload-file.component.ts +0 -222
  1323. package/src/app/shared/upload-file/upload-file.model.ts +0 -40
  1324. package/src/app/shared/validator/form-error-adapter.class.ts +0 -136
  1325. package/src/app/shared/validator/validators.ts +0 -725
  1326. package/src/app/shared/version/versions.ts +0 -89
  1327. package/src/app/social/job/job.module.ts +0 -14
  1328. package/src/app/social/job/progression/job-progression.component.html +0 -19
  1329. package/src/app/social/job/progression/job-progression.component.scss +0 -15
  1330. package/src/app/social/job/progression/job-progression.component.ts +0 -39
  1331. package/src/app/social/job/progression/job-progression.icon.html +0 -30
  1332. package/src/app/social/job/progression/job-progression.icon.scss +0 -7
  1333. package/src/app/social/job/progression/job-progression.icon.ts +0 -276
  1334. package/src/app/social/job/progression/job-progression.list.html +0 -25
  1335. package/src/app/social/job/progression/job-progression.list.scss +0 -17
  1336. package/src/app/social/job/progression/job-progression.list.ts +0 -40
  1337. package/src/app/social/job/progression/job-progression.model.ts +0 -26
  1338. package/src/app/social/job/progression/job-progression.service.ts +0 -97
  1339. package/src/app/social/job/testing/job-progression.testing.html +0 -11
  1340. package/src/app/social/job/testing/job-progression.testing.service.ts +0 -33
  1341. package/src/app/social/job/testing/job-progression.testing.ts +0 -28
  1342. package/src/app/social/job/testing/job.testing.module.ts +0 -13
  1343. package/src/app/social/message/message.form.html +0 -71
  1344. package/src/app/social/message/message.form.scss +0 -6
  1345. package/src/app/social/message/message.form.ts +0 -128
  1346. package/src/app/social/message/message.modal.html +0 -68
  1347. package/src/app/social/message/message.modal.ts +0 -117
  1348. package/src/app/social/message/message.model.ts +0 -78
  1349. package/src/app/social/message/message.module.ts +0 -14
  1350. package/src/app/social/message/message.service.ts +0 -104
  1351. package/src/app/social/social.errors.ts +0 -10
  1352. package/src/app/social/social.module.ts +0 -23
  1353. package/src/app/social/social.testing.module.ts +0 -33
  1354. package/src/app/social/user-event/notification/user-event-notification.icon.html +0 -17
  1355. package/src/app/social/user-event/notification/user-event-notification.icon.ts +0 -112
  1356. package/src/app/social/user-event/notification/user-event-notification.list.html +0 -142
  1357. package/src/app/social/user-event/notification/user-event-notification.list.scss +0 -73
  1358. package/src/app/social/user-event/notification/user-event-notification.list.ts +0 -270
  1359. package/src/app/social/user-event/testing/user-event.testing.html +0 -26
  1360. package/src/app/social/user-event/testing/user-event.testing.model.ts +0 -142
  1361. package/src/app/social/user-event/testing/user-event.testing.module.ts +0 -13
  1362. package/src/app/social/user-event/testing/user-event.testing.service.ts +0 -161
  1363. package/src/app/social/user-event/testing/user-event.testing.ts +0 -282
  1364. package/src/app/social/user-event/user-event.model.ts +0 -55
  1365. package/src/app/social/user-event/user-event.module.ts +0 -15
  1366. package/src/app/social/user-event/user-event.service.ts +0 -686
  1367. package/src/browserslist +0 -9
  1368. package/src/environments/environment.class.ts +0 -106
  1369. package/src/environments/environment.loader.ts +0 -90
  1370. package/src/environments/environment.prod.ts +0 -49
  1371. package/src/environments/environment.test.ts +0 -92
  1372. package/src/environments/environment.ts +0 -126
  1373. package/src/favicon.ico +0 -0
  1374. package/src/global.scss +0 -13
  1375. package/src/index.html +0 -76
  1376. package/src/main.ts +0 -18
  1377. package/src/polyfills.ts +0 -34
  1378. package/src/schema.graphql +0 -4381
  1379. package/src/service-worker.js +0 -31
  1380. package/src/test.ts +0 -30
  1381. package/tsconfig.app.json +0 -15
  1382. package/tsconfig.json +0 -47
  1383. package/tsconfig.spec.json +0 -18
@@ -0,0 +1,340 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { BehaviorSubject, Subject, Subscription } from 'rxjs';
3
+ import { AppFormProvider, AppFormUtils } from './form.utils';
4
+ import { waitForFalse, waitForTrue } from '../../shared/observables';
5
+ import { AppTable } from '../table/table.class';
6
+ import { AppForm } from './form.class';
7
+ import { AppEditor } from './entity/editor.class';
8
+ import { AbstractControl } from '@angular/forms';
9
+ import { AppAsyncTable } from '../table/async-table.class';
10
+ import * as i0 from "@angular/core";
11
+ // eslint-disable-next-line @angular-eslint/directive-class-suffix
12
+ export class AppFormContainer {
13
+ _children;
14
+ _childrenPath;
15
+ _subscription = new Subscription();
16
+ _logPrefix = '[form-container] ';
17
+ _enabled = false;
18
+ destroySubject = new Subject();
19
+ // TODO use RxState instead ?
20
+ enabledSubject = new BehaviorSubject(false);
21
+ readySubject = new BehaviorSubject(false);
22
+ loadingSubject = new BehaviorSubject(true);
23
+ dirtySubject = new BehaviorSubject(false);
24
+ touchedSubject = new BehaviorSubject(false);
25
+ errorSubject = new BehaviorSubject(undefined);
26
+ get children() {
27
+ return this._children;
28
+ }
29
+ get tables() {
30
+ return this._children && this._children.filter((c) => c instanceof AppTable);
31
+ }
32
+ get asyncTables() {
33
+ return this._children && this._children.filter((c) => c instanceof AppAsyncTable);
34
+ }
35
+ get forms() {
36
+ return this._children && this._children.filter((c) => c instanceof AppForm);
37
+ }
38
+ get editors() {
39
+ return this._children && this._children.filter((c) => c instanceof AppEditor);
40
+ }
41
+ get error() {
42
+ return this.errorSubject.value;
43
+ }
44
+ set error(error) {
45
+ this.setError(error);
46
+ }
47
+ get loading() {
48
+ return this.loadingSubject.value || (this._children && this._children.findIndex((c) => c.enabled && c.loading) !== -1) || false;
49
+ }
50
+ get loaded() {
51
+ return (!this.loadingSubject.value && (!this._children || this._children.findIndex((c) => c.enabled && c.loading) === -1)) || false;
52
+ }
53
+ get dirty() {
54
+ return this.dirtySubject.value || (this._children && this._children.findIndex((c) => c.enabled && c.dirty) !== -1) || false;
55
+ }
56
+ get valid() {
57
+ // Important: Should be not invalid AND not pending, so use '!valid' (DO NOT use 'invalid')
58
+ return !this._children || this._children.findIndex((c) => c.enabled && !c.valid) === -1;
59
+ }
60
+ get invalid() {
61
+ return (this._children && this._children.findIndex((c) => c.enabled && c.invalid) !== -1) || false;
62
+ }
63
+ get pending() {
64
+ return (this._children && this._children.findIndex((c) => c.enabled && c.pending) !== -1) || false;
65
+ }
66
+ get empty() {
67
+ return !this._enabled;
68
+ }
69
+ get touched() {
70
+ return this.touchedSubject.value || (this._children && this._children.findIndex((c) => c.enabled && c.touched) !== -1) || false;
71
+ }
72
+ get untouched() {
73
+ return (!this.touchedSubject.value && (!this._children || this._children.findIndex((c) => c.enabled && c.touched) === -1)) || false;
74
+ }
75
+ get enabled() {
76
+ return this._enabled;
77
+ }
78
+ get disabled() {
79
+ return !this._enabled;
80
+ }
81
+ get destroyed() {
82
+ return this.destroySubject?.closed !== false;
83
+ }
84
+ debug = false;
85
+ constructor() { }
86
+ ngOnInit() {
87
+ // Can be override by sub classes
88
+ }
89
+ ngOnDestroy() {
90
+ this._subscription.unsubscribe();
91
+ this.readySubject.unsubscribe();
92
+ this.loadingSubject.unsubscribe();
93
+ this.touchedSubject.unsubscribe();
94
+ this.errorSubject.unsubscribe();
95
+ this.destroySubject.next();
96
+ this.destroySubject.unsubscribe();
97
+ }
98
+ addForm(path, form) {
99
+ if (!form)
100
+ throw new Error('Trying to register an undefined child form');
101
+ this._children = this._children || [];
102
+ if (typeof form === 'function') {
103
+ this._children.push(new AppFormProvider(form));
104
+ }
105
+ else {
106
+ this._children.push(form);
107
+ }
108
+ this._childrenPath = this._childrenPath || [];
109
+ this._childrenPath.push(path || null);
110
+ }
111
+ addForms(forms) {
112
+ (forms || []).forEach((form) => this.addForm(null, form));
113
+ }
114
+ removeForm(form) {
115
+ if (!form)
116
+ throw new Error('Trying to remove an undefined child form');
117
+ const index = typeof form == 'string' ? (this._childrenPath || []).findIndex((c) => c === form) : (this._children || []).findIndex((c) => c === form);
118
+ if (index !== -1) {
119
+ this._childrenPath.splice(index, 1);
120
+ return this._children.splice(index, 1)?.[0];
121
+ }
122
+ return undefined;
123
+ }
124
+ disable(opts) {
125
+ this._enabled = false;
126
+ this._children?.forEach((c) => c.disable(opts));
127
+ // Emit event
128
+ if (!opts || opts.emitEvent !== false) {
129
+ if (this.enabledSubject.value !== false) {
130
+ this.enabledSubject.next(false);
131
+ }
132
+ if (!this.loading)
133
+ this.markForCheck();
134
+ }
135
+ }
136
+ enable(opts) {
137
+ this._enabled = true;
138
+ this._children?.forEach((c) => c.enable(opts));
139
+ // Emit event
140
+ if (!opts || opts.emitEvent !== false) {
141
+ if (this.enabledSubject.value !== true) {
142
+ this.enabledSubject.next(true);
143
+ }
144
+ if (!this.loading)
145
+ this.markForCheck();
146
+ }
147
+ }
148
+ markAsPristine(opts) {
149
+ this.error = null;
150
+ if (this.dirtySubject.value !== false) {
151
+ this.dirtySubject.next(false);
152
+ }
153
+ this._children?.forEach((c) => c.markAsPristine(opts));
154
+ if (!this.loading && (!opts || opts.emitEvent !== false))
155
+ this.markForCheck();
156
+ }
157
+ markAsUntouched(opts) {
158
+ if (this.touchedSubject.value !== false) {
159
+ this.touchedSubject.next(false);
160
+ }
161
+ this._children?.forEach((c) => c.markAsUntouched());
162
+ if (!this.loading && (!opts || opts.emitEvent !== false))
163
+ this.markForCheck();
164
+ }
165
+ /**
166
+ * @deprecated prefer to use markAllAsTouched()
167
+ * @param opts
168
+ */
169
+ markAsTouched(opts) {
170
+ if (!this.touchedSubject.value !== true) {
171
+ this.touchedSubject.next(true);
172
+ }
173
+ this._children?.forEach((c) => c.markAsTouched(opts));
174
+ if (!this.loading && (!opts || opts.emitEvent !== false))
175
+ this.markForCheck();
176
+ }
177
+ markAllAsTouched(opts) {
178
+ if (this.touchedSubject.value !== true) {
179
+ this.touchedSubject.next(true);
180
+ }
181
+ this._children?.forEach((c) => c.markAllAsTouched(opts));
182
+ if (!this.loading && (!opts || opts.emitEvent !== false))
183
+ this.markForCheck();
184
+ }
185
+ markAsDirty(opts) {
186
+ if (this.dirtySubject.value !== true) {
187
+ this.dirtySubject.next(true);
188
+ if (!this.loading && (!opts || opts.emitEvent !== false))
189
+ this.markForCheck();
190
+ }
191
+ }
192
+ markAsLoading(opts) {
193
+ if (!this.loadingSubject.closed && this.loadingSubject.value !== true) {
194
+ this.loadingSubject.next(true);
195
+ if (!opts || opts.emitEvent !== false) {
196
+ this.markForCheck();
197
+ }
198
+ }
199
+ }
200
+ markAsLoaded(opts) {
201
+ if (!this.loadingSubject.closed && this.loadingSubject.value !== false) {
202
+ this.loadingSubject.next(false);
203
+ if (!opts || opts.onlySelf !== true) {
204
+ // Emit to children forms and editors
205
+ // note: tables should be changed by parent
206
+ this.forms?.forEach((f) => f.markAsLoaded(opts));
207
+ this.editors?.forEach((e) => e.markAsLoaded(opts));
208
+ }
209
+ if (!opts || opts.emitEvent !== false) {
210
+ this.markForCheck();
211
+ }
212
+ }
213
+ }
214
+ markAsReady(opts) {
215
+ this._children?.forEach((c) => c.markAsReady(opts));
216
+ if (!this.readySubject.closed && this.readySubject.value !== true) {
217
+ this.readySubject.next(true);
218
+ // If subclasses implements OnReady
219
+ if (typeof this['ngOnReady'] === 'function') {
220
+ this.ngOnReady();
221
+ }
222
+ }
223
+ }
224
+ /**
225
+ * Wait form is ready
226
+ *
227
+ * @param opts
228
+ */
229
+ ready(opts) {
230
+ if (this.readySubject.value)
231
+ return Promise.resolve();
232
+ return waitForTrue(this.readySubject, { stop: this.destroySubject, ...opts });
233
+ }
234
+ /**
235
+ * Wait form is not busy (=loaded)
236
+ *
237
+ * @param opts
238
+ */
239
+ waitIdle(opts) {
240
+ if (!this.loadingSubject.value)
241
+ return Promise.resolve();
242
+ return waitForFalse(this.loadingSubject, { stop: this.destroySubject, ...opts });
243
+ }
244
+ logFormErrors(prefix) {
245
+ if (this.debug)
246
+ console.debug('[editor] Editor not valid. Checking where (forms, tables)...');
247
+ this._children?.forEach((c, index) => {
248
+ const path = this._childrenPath[index];
249
+ this.logChildrenErrors(c, prefix, path);
250
+ });
251
+ }
252
+ /* -- protected methods -- */
253
+ registerSubscription(sub) {
254
+ this._subscription.add(sub);
255
+ }
256
+ unregisterSubscription(sub) {
257
+ this._subscription.remove(sub);
258
+ }
259
+ setError(value, opts) {
260
+ // Compare using '!=' to detect null and undefined as same value
261
+ if (this.errorSubject.value != value) {
262
+ this.errorSubject.next(value);
263
+ if (!opts || opts.emitEvent !== false)
264
+ this.markForCheck();
265
+ }
266
+ }
267
+ resetError(opts) {
268
+ this.setError(undefined, opts);
269
+ }
270
+ markForCheck() {
271
+ // Should be overwritten by subclasses
272
+ if (this.debug)
273
+ console.warn('markForCheck() has been called, but is not overwritten by component ' + this.constructor.name);
274
+ }
275
+ logChildrenErrors(c, prefix, path) {
276
+ prefix = prefix || this._logPrefix;
277
+ // If editor
278
+ if (c instanceof AppEditor) {
279
+ if (!c.empty && !c.valid) {
280
+ if (c.pending) {
281
+ const path = c.constructor.name.toLowerCase();
282
+ console.warn(`${prefix} -> ${path}: waiting while pending...`);
283
+ AppFormUtils.waitWhilePending(c, { timeout: 1000 }).then(() => c.logFormErrors(prefix));
284
+ }
285
+ else {
286
+ c.logFormErrors(prefix);
287
+ }
288
+ }
289
+ }
290
+ // Angular form control
291
+ else if (c instanceof AbstractControl) {
292
+ AppFormUtils.logFormErrors(c, prefix, path);
293
+ }
294
+ // If form provider: get delegate
295
+ else if (c instanceof AppFormProvider) {
296
+ if (!c.empty && !c.valid) {
297
+ c.waitDelegate({ timeout: 1000 }).then((delegate) => this.logChildrenErrors(delegate, prefix, path));
298
+ }
299
+ }
300
+ // If table
301
+ else if (c instanceof AppTable) {
302
+ if (c.invalid && c.editedRow && c.editedRow.validator) {
303
+ const path = c.constructor.name.toLowerCase();
304
+ AppFormUtils.logFormErrors(c.editedRow.validator, prefix, path);
305
+ }
306
+ }
307
+ else if (c instanceof AppAsyncTable) {
308
+ if (c.invalid && c.dataSource?.hasSomeEditingRow()) {
309
+ const path = c.constructor.name.toLowerCase();
310
+ c.dataSource.getEditingRows().forEach((editedRow) => {
311
+ AppFormUtils.logFormErrors(editedRow.validator, prefix, path);
312
+ });
313
+ }
314
+ }
315
+ // If form
316
+ else if (c instanceof AppForm) {
317
+ if (!c.empty && !c.valid) {
318
+ if (c.pending) {
319
+ const path = c.constructor.name.toLowerCase();
320
+ console.warn(`${prefix} -> ${path}: waiting while pending...`);
321
+ AppFormUtils.waitWhilePending(c, { timeout: 1000 }).then(() => this.logChildrenErrors(c.form, prefix, path));
322
+ }
323
+ else {
324
+ AppFormUtils.logFormErrors(c.form, prefix);
325
+ }
326
+ }
327
+ }
328
+ else {
329
+ console.warn(`${prefix} Unknown children sub-form: `, c);
330
+ }
331
+ }
332
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppFormContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
333
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AppFormContainer, inputs: { debug: "debug" }, ngImport: i0 });
334
+ }
335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppFormContainer, decorators: [{
336
+ type: Directive
337
+ }], ctorParameters: () => [], propDecorators: { debug: [{
338
+ type: Input
339
+ }] } });
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250YWluZXIuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9mb3JtLWNvbnRhaW5lci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFxQyxNQUFNLGNBQWMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFrQixXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFlM0Qsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBZ0IsZ0JBQWdCO0lBQzVCLFNBQVMsQ0FBYTtJQUN0QixhQUFhLENBQVc7SUFDeEIsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDakMsVUFBVSxHQUFHLG1CQUFtQixDQUFDO0lBQ2pDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFUixjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUV4RCw2QkFBNkI7SUFDcEIsY0FBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3JELFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNuRCxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7SUFDcEQsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ25ELGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNyRCxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVMsU0FBUyxDQUFDLENBQUM7SUFFL0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxRQUFRLENBQXFCLENBQUM7SUFDcEcsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLGFBQWEsQ0FBMEIsQ0FBQztJQUM5RyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksT0FBTyxDQUFvQixDQUFDO0lBQ2xHLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxTQUFTLENBQWlCLENBQUM7SUFDakcsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ2xJLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN0SSxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQzlILENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCwyRkFBMkY7UUFDM0YsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUNyRyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ2xJLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN0SSxD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LElBQUksQ0FBQyxHQUFHLE1BQU0sT0FBTyxJQUFJLDRCQUE0QixDQUFDLENBQUM7b0JBQy9ELFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQy9HLENBQUM7cUJBQU0sQ0FBQztvQkFDTixZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzdDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSw4QkFBOEIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDO0lBQ0gsQ0FBQzt3R0FsV21CLGdCQUFnQjs0RkFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUZyQyxTQUFTO3dEQWdHQyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcEZvcm1Qcm92aWRlciwgQXBwRm9ybVV0aWxzLCBJQXBwRm9ybSwgSUFwcEZvcm1HZXR0ZXIsIE9uUmVhZHkgfSBmcm9tICcuL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHsgd2FpdEZvckZhbHNlLCBXYWl0Rm9yT3B0aW9ucywgd2FpdEZvclRydWUgfSBmcm9tICcuLi8uLi9zaGFyZWQvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHsgQXBwVGFibGUgfSBmcm9tICcuLi90YWJsZS90YWJsZS5jbGFzcyc7XG5pbXBvcnQgeyBBcHBGb3JtIH0gZnJvbSAnLi9mb3JtLmNsYXNzJztcbmltcG9ydCB7IEFwcEVkaXRvciB9IGZyb20gJy4vZW50aXR5L2VkaXRvci5jbGFzcyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBcHBBc3luY1RhYmxlIH0gZnJvbSAnLi4vdGFibGUvYXN5bmMtdGFibGUuY2xhc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBcHBGb3JtQ29udGFpbmVyPFQgPSBhbnk+IGV4dGVuZHMgSUFwcEZvcm08VD4ge1xuICBjaGlsZHJlbjogSUFwcEZvcm1bXTtcbiAgdGFibGVzOiBBcHBUYWJsZTxhbnk+W107XG4gIGFzeW5jVGFibGVzOiBBcHBBc3luY1RhYmxlPGFueT5bXTtcbiAgZm9ybXM6IEFwcEZvcm08YW55PltdO1xuICBlZGl0b3JzOiBBcHBFZGl0b3I8YW55PltdO1xuXG4gIGFkZEZvcm0ocGF0aDogc3RyaW5nLCBmb3JtPzogSUFwcEZvcm0gfCBJQXBwRm9ybUdldHRlcik6IHZvaWQ7XG4gIGFkZEZvcm1zKGZvcm1zOiAoSUFwcEZvcm0gfCBJQXBwRm9ybUdldHRlcilbXSk6IHZvaWQ7XG4gIHJlbW92ZUZvcm0oZm9ybTogc3RyaW5nIHwgSUFwcEZvcm0gfCBJQXBwRm9ybUdldHRlcik6IElBcHBGb3JtIHwgSUFwcEZvcm1HZXR0ZXI7XG59XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwRm9ybUNvbnRhaW5lcjxUID0gYW55PiBpbXBsZW1lbnRzIElBcHBGb3JtQ29udGFpbmVyPFQ+LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2NoaWxkcmVuOiBJQXBwRm9ybVtdO1xuICBwcml2YXRlIF9jaGlsZHJlblBhdGg6IHN0cmluZ1tdO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByb3RlY3RlZCBfbG9nUHJlZml4ID0gJ1tmb3JtLWNvbnRhaW5lcl0gJztcbiAgcHJvdGVjdGVkIF9lbmFibGVkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3lTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvLyBUT0RPIHVzZSBSeFN0YXRlIGluc3RlYWQgP1xuICByZWFkb25seSBlbmFibGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSByZWFkeVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgbG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBkaXJ0eVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgdG91Y2hlZFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgZXJyb3JTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZCk7XG5cbiAgZ2V0IGNoaWxkcmVuKCk6IElBcHBGb3JtW10ge1xuICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbjtcbiAgfVxuXG4gIGdldCB0YWJsZXMoKTogQXBwVGFibGU8YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW4gJiYgKHRoaXMuX2NoaWxkcmVuLmZpbHRlcigoYykgPT4gYyBpbnN0YW5jZW9mIEFwcFRhYmxlKSBhcyBBcHBUYWJsZTxhbnk+W10pO1xuICB9XG5cbiAgZ2V0IGFzeW5jVGFibGVzKCk6IEFwcEFzeW5jVGFibGU8YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW4gJiYgKHRoaXMuX2NoaWxkcmVuLmZpbHRlcigoYykgPT4gYyBpbnN0YW5jZW9mIEFwcEFzeW5jVGFibGUpIGFzIEFwcEFzeW5jVGFibGU8YW55PltdKTtcbiAgfVxuXG4gIGdldCBmb3JtcygpOiBBcHBGb3JtPGFueT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaWxkcmVuICYmICh0aGlzLl9jaGlsZHJlbi5maWx0ZXIoKGMpID0+IGMgaW5zdGFuY2VvZiBBcHBGb3JtKSBhcyBBcHBGb3JtPGFueT5bXSk7XG4gIH1cblxuICBnZXQgZWRpdG9ycygpOiBBcHBFZGl0b3I8YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW4gJiYgKHRoaXMuX2NoaWxkcmVuLmZpbHRlcigoYykgPT4gYyBpbnN0YW5jZW9mIEFwcEVkaXRvcikgYXMgQXBwRWRpdG9yW10pO1xuICB9XG5cbiAgZ2V0IGVycm9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgc2V0IGVycm9yKGVycm9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldEVycm9yKGVycm9yKTtcbiAgfVxuXG4gIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdWJqZWN0LnZhbHVlIHx8ICh0aGlzLl9jaGlsZHJlbiAmJiB0aGlzLl9jaGlsZHJlbi5maW5kSW5kZXgoKGMpID0+IGMuZW5hYmxlZCAmJiBjLmxvYWRpbmcpICE9PSAtMSkgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgbG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoIXRoaXMubG9hZGluZ1N1YmplY3QudmFsdWUgJiYgKCF0aGlzLl9jaGlsZHJlbiB8fCB0aGlzLl9jaGlsZHJlbi5maW5kSW5kZXgoKGMpID0+IGMuZW5hYmxlZCAmJiBjLmxvYWRpbmcpID09PSAtMSkpIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpcnR5U3ViamVjdC52YWx1ZSB8fCAodGhpcy5fY2hpbGRyZW4gJiYgdGhpcy5fY2hpbGRyZW4uZmluZEluZGV4KChjKSA9PiBjLmVuYWJsZWQgJiYgYy5kaXJ0eSkgIT09IC0xKSB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICAvLyBJbXBvcnRhbnQ6IFNob3VsZCBiZSBub3QgaW52YWxpZCBBTkQgbm90IHBlbmRpbmcsIHNvIHVzZSAnIXZhbGlkJyAoRE8gTk9UIHVzZSAnaW52YWxpZCcpXG4gICAgcmV0dXJuICF0aGlzLl9jaGlsZHJlbiB8fCB0aGlzLl9jaGlsZHJlbi5maW5kSW5kZXgoKGMpID0+IGMuZW5hYmxlZCAmJiAhYy52YWxpZCkgPT09IC0xO1xuICB9XG5cbiAgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLl9jaGlsZHJlbiAmJiB0aGlzLl9jaGlsZHJlbi5maW5kSW5kZXgoKGMpID0+IGMuZW5hYmxlZCAmJiBjLmludmFsaWQpICE9PSAtMSkgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgcGVuZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuX2NoaWxkcmVuICYmIHRoaXMuX2NoaWxkcmVuLmZpbmRJbmRleCgoYykgPT4gYy5lbmFibGVkICYmIGMucGVuZGluZykgIT09IC0xKSB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX2VuYWJsZWQ7XG4gIH1cblxuICBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b3VjaGVkU3ViamVjdC52YWx1ZSB8fCAodGhpcy5fY2hpbGRyZW4gJiYgdGhpcy5fY2hpbGRyZW4uZmluZEluZGV4KChjKSA9PiBjLmVuYWJsZWQgJiYgYy50b3VjaGVkKSAhPT0gLTEpIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHVudG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKCF0aGlzLnRvdWNoZWRTdWJqZWN0LnZhbHVlICYmICghdGhpcy5fY2hpbGRyZW4gfHwgdGhpcy5fY2hpbGRyZW4uZmluZEluZGV4KChjKSA9PiBjLmVuYWJsZWQgJiYgYy50b3VjaGVkKSA9PT0gLTEpKSB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fZW5hYmxlZDtcbiAgfVxuXG4gIGdldCBkZXN0cm95ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGVzdHJveVN1YmplY3Q/LmNsb3NlZCAhPT0gZmFsc2U7XG4gIH1cblxuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIENhbiBiZSBvdmVycmlkZSBieSBzdWIgY2xhc3Nlc1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnJlYWR5U3ViamVjdC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubG9hZGluZ1N1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnRvdWNoZWRTdWJqZWN0LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5lcnJvclN1YmplY3QudW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuZGVzdHJveVN1YmplY3QubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveVN1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGFkZEZvcm0ocGF0aDogc3RyaW5nLCBmb3JtPzogSUFwcEZvcm0gfCBJQXBwRm9ybUdldHRlcikge1xuICAgIGlmICghZm9ybSkgdGhyb3cgbmV3IEVycm9yKCdUcnlpbmcgdG8gcmVnaXN0ZXIgYW4gdW5kZWZpbmVkIGNoaWxkIGZvcm0nKTtcbiAgICB0aGlzLl9jaGlsZHJlbiA9IHRoaXMuX2NoaWxkcmVuIHx8IFtdO1xuICAgIGlmICh0eXBlb2YgZm9ybSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5fY2hpbGRyZW4ucHVzaChuZXcgQXBwRm9ybVByb3ZpZGVyKGZvcm0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fY2hpbGRyZW4ucHVzaChmb3JtKTtcbiAgICB9XG4gICAgdGhpcy5fY2hpbGRyZW5QYXRoID0gdGhpcy5fY2hpbGRyZW5QYXRoIHx8IFtdO1xuICAgIHRoaXMuX2NoaWxkcmVuUGF0aC5wdXNoKHBhdGggfHwgbnVsbCk7XG4gIH1cblxuICBhZGRGb3Jtcyhmb3JtczogKElBcHBGb3JtIHwgSUFwcEZvcm1HZXR0ZXIpW10pIHtcbiAgICAoZm9ybXMgfHwgW10pLmZvckVhY2goKGZvcm0pID0+IHRoaXMuYWRkRm9ybShudWxsLCBmb3JtKSk7XG4gIH1cblxuICByZW1vdmVGb3JtKGZvcm06IHN0cmluZyB8IElBcHBGb3JtIHwgSUFwcEZvcm1HZXR0ZXIpOiBJQXBwRm9ybSB8IElBcHBGb3JtR2V0dGVyIHtcbiAgICBpZiAoIWZvcm0pIHRocm93IG5ldyBFcnJvcignVHJ5aW5nIHRvIHJlbW92ZSBhbiB1bmRlZmluZWQgY2hpbGQgZm9ybScpO1xuICAgIGNvbnN0IGluZGV4ID1cbiAgICAgIHR5cGVvZiBmb3JtID09ICdzdHJpbmcnID8gKHRoaXMuX2NoaWxkcmVuUGF0aCB8fCBbXSkuZmluZEluZGV4KChjKSA9PiBjID09PSBmb3JtKSA6ICh0aGlzLl9jaGlsZHJlbiB8fCBbXSkuZmluZEluZGV4KChjKSA9PiBjID09PSBmb3JtKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLl9jaGlsZHJlblBhdGguc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbi5zcGxpY2UoaW5kZXgsIDEpPy5bMF07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBkaXNhYmxlKG9wdHM/OiB7IG9ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5fZW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuX2NoaWxkcmVuPy5mb3JFYWNoKChjKSA9PiBjLmRpc2FibGUob3B0cykpO1xuXG4gICAgLy8gRW1pdCBldmVudFxuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHtcbiAgICAgIGlmICh0aGlzLmVuYWJsZWRTdWJqZWN0LnZhbHVlICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLmVuYWJsZWRTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmxvYWRpbmcpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgZW5hYmxlKG9wdHM/OiB7IG9ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5fZW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5fY2hpbGRyZW4/LmZvckVhY2goKGMpID0+IGMuZW5hYmxlKG9wdHMpKTtcblxuICAgIC8vIEVtaXQgZXZlbnRcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICBpZiAodGhpcy5lbmFibGVkU3ViamVjdC52YWx1ZSAhPT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLmVuYWJsZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMubG9hZGluZykgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBtYXJrQXNQcmlzdGluZShvcHRzPzogeyBvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIHRoaXMuZXJyb3IgPSBudWxsO1xuICAgIGlmICh0aGlzLmRpcnR5U3ViamVjdC52YWx1ZSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuZGlydHlTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLl9jaGlsZHJlbj8uZm9yRWFjaCgoYykgPT4gYy5tYXJrQXNQcmlzdGluZShvcHRzKSk7XG4gICAgaWYgKCF0aGlzLmxvYWRpbmcgJiYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXJrQXNVbnRvdWNoZWQob3B0cz86IHsgb25seVNlbGY/OiBib29sZWFuOyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pIHtcbiAgICBpZiAodGhpcy50b3VjaGVkU3ViamVjdC52YWx1ZSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMudG91Y2hlZFN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMuX2NoaWxkcmVuPy5mb3JFYWNoKChjKSA9PiBjLm1hcmtBc1VudG91Y2hlZCgpKTtcbiAgICBpZiAoIXRoaXMubG9hZGluZyAmJiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBwcmVmZXIgdG8gdXNlIG1hcmtBbGxBc1RvdWNoZWQoKVxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgbWFya0FzVG91Y2hlZChvcHRzPzogeyBvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIGlmICghdGhpcy50b3VjaGVkU3ViamVjdC52YWx1ZSAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy50b3VjaGVkU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cbiAgICB0aGlzLl9jaGlsZHJlbj8uZm9yRWFjaCgoYykgPT4gYy5tYXJrQXNUb3VjaGVkKG9wdHMpKTtcbiAgICBpZiAoIXRoaXMubG9hZGluZyAmJiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG1hcmtBbGxBc1RvdWNoZWQob3B0cz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSB7XG4gICAgaWYgKHRoaXMudG91Y2hlZFN1YmplY3QudmFsdWUgIT09IHRydWUpIHtcbiAgICAgIHRoaXMudG91Y2hlZFN1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5fY2hpbGRyZW4/LmZvckVhY2goKGMpID0+IGMubWFya0FsbEFzVG91Y2hlZChvcHRzKSk7XG4gICAgaWYgKCF0aGlzLmxvYWRpbmcgJiYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eShvcHRzPzogeyBvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLmRpcnR5U3ViamVjdC52YWx1ZSAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5kaXJ0eVN1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgIGlmICghdGhpcy5sb2FkaW5nICYmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtBc0xvYWRpbmcob3B0cz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSB7XG4gICAgaWYgKCF0aGlzLmxvYWRpbmdTdWJqZWN0LmNsb3NlZCAmJiB0aGlzLmxvYWRpbmdTdWJqZWN0LnZhbHVlICE9PSB0cnVlKSB7XG4gICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG5cbiAgICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBtYXJrQXNMb2FkZWQob3B0cz86IHsgb25seVNlbGY/OiBib29sZWFuOyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pIHtcbiAgICBpZiAoIXRoaXMubG9hZGluZ1N1YmplY3QuY2xvc2VkICYmIHRoaXMubG9hZGluZ1N1YmplY3QudmFsdWUgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgaWYgKCFvcHRzIHx8IG9wdHMub25seVNlbGYgIT09IHRydWUpIHtcbiAgICAgICAgLy8gRW1pdCB0byBjaGlsZHJlbiBmb3JtcyBhbmQgZWRpdG9yc1xuICAgICAgICAvLyBub3RlOiB0YWJsZXMgc2hvdWxkIGJlIGNoYW5nZWQgYnkgcGFyZW50XG4gICAgICAgIHRoaXMuZm9ybXM/LmZvckVhY2goKGYpID0+IGYubWFya0FzTG9hZGVkKG9wdHMpKTtcbiAgICAgICAgdGhpcy5lZGl0b3JzPy5mb3JFYWNoKChlKSA9PiBlLm1hcmtBc0xvYWRlZChvcHRzKSk7XG4gICAgICB9XG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbWFya0FzUmVhZHkob3B0cz86IHsgb25seVNlbGY/OiBib29sZWFuOyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pIHtcbiAgICB0aGlzLl9jaGlsZHJlbj8uZm9yRWFjaCgoYykgPT4gYy5tYXJrQXNSZWFkeShvcHRzKSk7XG4gICAgaWYgKCF0aGlzLnJlYWR5U3ViamVjdC5jbG9zZWQgJiYgdGhpcy5yZWFkeVN1YmplY3QudmFsdWUgIT09IHRydWUpIHtcbiAgICAgIHRoaXMucmVhZHlTdWJqZWN0Lm5leHQodHJ1ZSk7XG5cbiAgICAgIC8vIElmIHN1YmNsYXNzZXMgaW1wbGVtZW50cyBPblJlYWR5XG4gICAgICBpZiAodHlwZW9mIHRoaXNbJ25nT25SZWFkeSddID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICh0aGlzIGFzIGFueSBhcyBPblJlYWR5KS5uZ09uUmVhZHkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2FpdCBmb3JtIGlzIHJlYWR5XG4gICAqXG4gICAqIEBwYXJhbSBvcHRzXG4gICAqL1xuICByZWFkeShvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5yZWFkeVN1YmplY3QudmFsdWUpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICByZXR1cm4gd2FpdEZvclRydWUodGhpcy5yZWFkeVN1YmplY3QsIHsgc3RvcDogdGhpcy5kZXN0cm95U3ViamVjdCwgLi4ub3B0cyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0IGZvcm0gaXMgbm90IGJ1c3kgKD1sb2FkZWQpXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzXG4gICAqL1xuICB3YWl0SWRsZShvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMubG9hZGluZ1N1YmplY3QudmFsdWUpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICByZXR1cm4gd2FpdEZvckZhbHNlKHRoaXMubG9hZGluZ1N1YmplY3QsIHsgc3RvcDogdGhpcy5kZXN0cm95U3ViamVjdCwgLi4ub3B0cyB9KTtcbiAgfVxuXG4gIGxvZ0Zvcm1FcnJvcnMocHJlZml4Pzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1tlZGl0b3JdIEVkaXRvciBub3QgdmFsaWQuIENoZWNraW5nIHdoZXJlIChmb3JtcywgdGFibGVzKS4uLicpO1xuICAgIHRoaXMuX2NoaWxkcmVuPy5mb3JFYWNoKChjLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgcGF0aCA9IHRoaXMuX2NoaWxkcmVuUGF0aFtpbmRleF07XG4gICAgICB0aGlzLmxvZ0NoaWxkcmVuRXJyb3JzKGMsIHByZWZpeCwgcGF0aCk7XG4gICAgfSk7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCByZWdpc3RlclN1YnNjcmlwdGlvbihzdWI6IFN1YnNjcmlwdGlvbikge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnJlZ2lzdGVyU3Vic2NyaXB0aW9uKHN1YjogU3Vic2NyaXB0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnJlbW92ZShzdWIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEVycm9yKHZhbHVlOiBzdHJpbmcsIG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIC8vIENvbXBhcmUgdXNpbmcgJyE9JyB0byBkZXRlY3QgbnVsbCBhbmQgdW5kZWZpbmVkIGFzIHNhbWUgdmFsdWVcbiAgICBpZiAodGhpcy5lcnJvclN1YmplY3QudmFsdWUgIT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuZXJyb3JTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzZXRFcnJvcihvcHRzPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pIHtcbiAgICB0aGlzLnNldEVycm9yKHVuZGVmaW5lZCwgb3B0cyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIC8vIFNob3VsZCBiZSBvdmVyd3JpdHRlbiBieSBzdWJjbGFzc2VzXG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUud2FybignbWFya0ZvckNoZWNrKCkgaGFzIGJlZW4gY2FsbGVkLCBidXQgaXMgbm90IG92ZXJ3cml0dGVuIGJ5IGNvbXBvbmVudCAnICsgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsb2dDaGlsZHJlbkVycm9ycyhjOiBJQXBwRm9ybSB8IEFic3RyYWN0Q29udHJvbCwgcHJlZml4Pzogc3RyaW5nLCBwYXRoPzogc3RyaW5nKSB7XG4gICAgcHJlZml4ID0gcHJlZml4IHx8IHRoaXMuX2xvZ1ByZWZpeDtcbiAgICAvLyBJZiBlZGl0b3JcbiAgICBpZiAoYyBpbnN0YW5jZW9mIEFwcEVkaXRvcikge1xuICAgICAgaWYgKCFjLmVtcHR5ICYmICFjLnZhbGlkKSB7XG4gICAgICAgIGlmIChjLnBlbmRpbmcpIHtcbiAgICAgICAgICBjb25zdCBwYXRoID0gYy5jb25zdHJ1Y3Rvci5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgY29uc29sZS53YXJuKGAke3ByZWZpeH0gLT4gJHtwYXRofTogd2FpdGluZyB3aGlsZSBwZW5kaW5nLi4uYCk7XG4gICAgICAgICAgQXBwRm9ybVV0aWxzLndhaXRXaGlsZVBlbmRpbmcoYywgeyB0aW1lb3V0OiAxMDAwIH0pLnRoZW4oKCkgPT4gYy5sb2dGb3JtRXJyb3JzKHByZWZpeCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGMubG9nRm9ybUVycm9ycyhwcmVmaXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEFuZ3VsYXIgZm9ybSBjb250cm9sXG4gICAgZWxzZSBpZiAoYyBpbnN0YW5jZW9mIEFic3RyYWN0Q29udHJvbCkge1xuICAgICAgQXBwRm9ybVV0aWxzLmxvZ0Zvcm1FcnJvcnMoYywgcHJlZml4LCBwYXRoKTtcbiAgICB9XG4gICAgLy8gSWYgZm9ybSBwcm92aWRlcjogZ2V0IGRlbGVnYXRlXG4gICAgZWxzZSBpZiAoYyBpbnN0YW5jZW9mIEFwcEZvcm1Qcm92aWRlcikge1xuICAgICAgaWYgKCFjLmVtcHR5ICYmICFjLnZhbGlkKSB7XG4gICAgICAgIGMud2FpdERlbGVnYXRlKHsgdGltZW91dDogMTAwMCB9KS50aGVuKChkZWxlZ2F0ZSkgPT4gdGhpcy5sb2dDaGlsZHJlbkVycm9ycyhkZWxlZ2F0ZSwgcHJlZml4LCBwYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIElmIHRhYmxlXG4gICAgZWxzZSBpZiAoYyBpbnN0YW5jZW9mIEFwcFRhYmxlKSB7XG4gICAgICBpZiAoYy5pbnZhbGlkICYmIGMuZWRpdGVkUm93ICYmIGMuZWRpdGVkUm93LnZhbGlkYXRvcikge1xuICAgICAgICBjb25zdCBwYXRoID0gYy5jb25zdHJ1Y3Rvci5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIEFwcEZvcm1VdGlscy5sb2dGb3JtRXJyb3JzKGMuZWRpdGVkUm93LnZhbGlkYXRvciwgcHJlZml4LCBwYXRoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGMgaW5zdGFuY2VvZiBBcHBBc3luY1RhYmxlKSB7XG4gICAgICBpZiAoYy5pbnZhbGlkICYmIGMuZGF0YVNvdXJjZT8uaGFzU29tZUVkaXRpbmdSb3coKSkge1xuICAgICAgICBjb25zdCBwYXRoID0gYy5jb25zdHJ1Y3Rvci5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGMuZGF0YVNvdXJjZS5nZXRFZGl0aW5nUm93cygpLmZvckVhY2goKGVkaXRlZFJvdykgPT4ge1xuICAgICAgICAgIEFwcEZvcm1VdGlscy5sb2dGb3JtRXJyb3JzKGVkaXRlZFJvdy52YWxpZGF0b3IsIHByZWZpeCwgcGF0aCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBJZiBmb3JtXG4gICAgZWxzZSBpZiAoYyBpbnN0YW5jZW9mIEFwcEZvcm0pIHtcbiAgICAgIGlmICghYy5lbXB0eSAmJiAhYy52YWxpZCkge1xuICAgICAgICBpZiAoYy5wZW5kaW5nKSB7XG4gICAgICAgICAgY29uc3QgcGF0aCA9IGMuY29uc3RydWN0b3IubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIGNvbnNvbGUud2FybihgJHtwcmVmaXh9IC0+ICR7cGF0aH06IHdhaXRpbmcgd2hpbGUgcGVuZGluZy4uLmApO1xuICAgICAgICAgIEFwcEZvcm1VdGlscy53YWl0V2hpbGVQZW5kaW5nKGMsIHsgdGltZW91dDogMTAwMCB9KS50aGVuKCgpID0+IHRoaXMubG9nQ2hpbGRyZW5FcnJvcnMoYy5mb3JtLCBwcmVmaXgsIHBhdGgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBBcHBGb3JtVXRpbHMubG9nRm9ybUVycm9ycyhjLmZvcm0sIHByZWZpeCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKGAke3ByZWZpeH0gVW5rbm93biBjaGlsZHJlbiBzdWItZm9ybTogYCwgYyk7XG4gICAgfVxuICB9XG59XG4iXX0=