@sumaris-net/ngx-components 18.12.0 → 18.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1382) hide show
  1. package/esm2022/public_api.mjs +380 -0
  2. package/esm2022/src/app/admin/admin-routing.module.mjs +34 -0
  3. package/esm2022/src/app/admin/admin.module.mjs +32 -0
  4. package/esm2022/src/app/admin/services/filter/person.filter.mjs +76 -0
  5. package/esm2022/src/app/admin/services/person.service.mjs +184 -0
  6. package/esm2022/src/app/admin/services/validator/person.validator.mjs +72 -0
  7. package/esm2022/src/app/admin/users/users.mjs +379 -0
  8. package/esm2022/src/app/admin/users/users.module.mjs +56 -0
  9. package/esm2022/src/app/core/about/about.modal.mjs +86 -0
  10. package/esm2022/src/app/core/about/about.module.mjs +22 -0
  11. package/esm2022/src/app/core/account/account.module.mjs +75 -0
  12. package/esm2022/src/app/core/account/account.page.mjs +364 -0
  13. package/esm2022/src/app/core/account/new-token.form.mjs +106 -0
  14. package/esm2022/src/app/core/account/new-token.modal.mjs +66 -0
  15. package/esm2022/src/app/core/account/password/change-password.form.mjs +63 -0
  16. package/esm2022/src/app/core/account/password/change-password.module.mjs +22 -0
  17. package/esm2022/src/app/core/account/password/change-password.page.mjs +150 -0
  18. package/esm2022/src/app/core/account/token.table.mjs +157 -0
  19. package/esm2022/src/app/core/auth/auth.form.mjs +159 -0
  20. package/esm2022/src/app/core/auth/auth.modal.mjs +76 -0
  21. package/esm2022/src/app/core/auth/auth.module.mjs +56 -0
  22. package/esm2022/src/app/core/auth/reset-password.modal.mjs +89 -0
  23. package/esm2022/src/app/core/core.module.mjs +151 -0
  24. package/esm2022/src/app/core/core.testing.module.mjs +107 -0
  25. package/esm2022/src/app/core/form/array/form-array.mjs +328 -0
  26. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +23 -0
  27. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +94 -0
  28. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +108 -0
  29. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +31 -0
  30. package/esm2022/src/app/core/form/entity/editor.class.mjs +268 -0
  31. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +420 -0
  32. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +741 -0
  33. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +24 -0
  34. package/esm2022/src/app/core/form/entity/entity.module.mjs +32 -0
  35. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +190 -0
  36. package/esm2022/src/app/core/form/form-container.class.mjs +340 -0
  37. package/esm2022/src/app/core/form/form.class.mjs +337 -0
  38. package/esm2022/src/app/core/form/form.module.mjs +70 -0
  39. package/esm2022/src/app/core/form/form.utils.mjs +205 -0
  40. package/esm2022/src/app/core/form/list/list.form.mjs +235 -0
  41. package/esm2022/src/app/core/form/list/list.module.mjs +31 -0
  42. package/esm2022/src/app/core/form/properties/properties.form.mjs +317 -0
  43. package/esm2022/src/app/core/form/properties/properties.module.mjs +37 -0
  44. package/esm2022/src/app/core/form/properties/properties.table.mjs +264 -0
  45. package/esm2022/src/app/core/form/properties/properties.utils.mjs +304 -0
  46. package/esm2022/src/app/core/form/properties/property.validator.mjs +70 -0
  47. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +104 -0
  48. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +23 -0
  49. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +73 -0
  50. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +30 -0
  51. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +161 -0
  52. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +31 -0
  53. package/esm2022/src/app/core/form/username/username.form.mjs +55 -0
  54. package/esm2022/src/app/core/form/username/username.module.mjs +20 -0
  55. package/esm2022/src/app/core/graphql/graphql.module.mjs +14 -0
  56. package/esm2022/src/app/core/graphql/graphql.service.mjs +781 -0
  57. package/esm2022/src/app/core/graphql/graphql.utils.mjs +119 -0
  58. package/esm2022/src/app/core/home/home.mjs +382 -0
  59. package/esm2022/src/app/core/home/home.module.mjs +46 -0
  60. package/esm2022/src/app/core/icon/icon.component.mjs +40 -0
  61. package/esm2022/src/app/core/icon/icon.module.mjs +20 -0
  62. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +394 -0
  63. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +31 -0
  64. package/esm2022/src/app/core/menu/menu.component.mjs +258 -0
  65. package/esm2022/src/app/core/menu/menu.model.mjs +272 -0
  66. package/esm2022/src/app/core/menu/menu.module.mjs +47 -0
  67. package/esm2022/src/app/core/menu/menu.service.mjs +666 -0
  68. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +109 -0
  69. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +50 -0
  70. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +158 -0
  71. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +60 -0
  72. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +28 -0
  73. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +31 -0
  74. package/esm2022/src/app/core/peer/select-peer.modal.mjs +344 -0
  75. package/esm2022/src/app/core/peer/select-peer.module.mjs +36 -0
  76. package/esm2022/src/app/core/register/register-confirm.page.mjs +90 -0
  77. package/esm2022/src/app/core/register/register.form.mjs +194 -0
  78. package/esm2022/src/app/core/register/register.modal.mjs +55 -0
  79. package/esm2022/src/app/core/register/register.module.mjs +23 -0
  80. package/esm2022/src/app/core/services/account.service.mjs +1358 -0
  81. package/esm2022/src/app/core/services/auth-guard.service.mjs +74 -0
  82. package/esm2022/src/app/core/services/base-entity-service.class.mjs +485 -0
  83. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +230 -0
  84. package/esm2022/src/app/core/services/base58.mjs +83 -0
  85. package/esm2022/src/app/core/services/config/core.config.mjs +258 -0
  86. package/esm2022/src/app/core/services/config.service.mjs +384 -0
  87. package/esm2022/src/app/core/services/crypto.service.mjs +107 -0
  88. package/esm2022/src/app/core/services/errors.mjs +54 -0
  89. package/esm2022/src/app/core/services/local-settings.service.mjs +516 -0
  90. package/esm2022/src/app/core/services/model/account.model.mjs +178 -0
  91. package/esm2022/src/app/core/services/model/config.model.mjs +107 -0
  92. package/esm2022/src/app/core/services/model/department.model.mjs +35 -0
  93. package/esm2022/src/app/core/services/model/entity.decorators.mjs +97 -0
  94. package/esm2022/src/app/core/services/model/entity.model.mjs +338 -0
  95. package/esm2022/src/app/core/services/model/filter.model.mjs +93 -0
  96. package/esm2022/src/app/core/services/model/history.model.mjs +2 -0
  97. package/esm2022/src/app/core/services/model/model.enum.mjs +11 -0
  98. package/esm2022/src/app/core/services/model/node-feature.model.mjs +31 -0
  99. package/esm2022/src/app/core/services/model/peer.model.mjs +113 -0
  100. package/esm2022/src/app/core/services/model/person.model.mjs +114 -0
  101. package/esm2022/src/app/core/services/model/referential.model.mjs +205 -0
  102. package/esm2022/src/app/core/services/model/settings.model.mjs +6 -0
  103. package/esm2022/src/app/core/services/model/token.model.mjs +57 -0
  104. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +195 -0
  105. package/esm2022/src/app/core/services/network.service.mjs +638 -0
  106. package/esm2022/src/app/core/services/network.types.mjs +2 -0
  107. package/esm2022/src/app/core/services/network.utils.mjs +35 -0
  108. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +38 -0
  109. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +23 -0
  110. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +23 -0
  111. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +54 -0
  112. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +21 -0
  113. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +37 -0
  114. package/esm2022/src/app/core/services/platform.service.mjs +627 -0
  115. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +427 -0
  116. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +450 -0
  117. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +25 -0
  118. package/esm2022/src/app/core/services/testing/referential.validator.mjs +46 -0
  119. package/esm2022/src/app/core/services/validator/account.validator.mjs +45 -0
  120. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +49 -0
  121. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +57 -0
  122. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +27 -0
  123. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +55 -0
  124. package/esm2022/src/app/core/settings/settings.module.mjs +23 -0
  125. package/esm2022/src/app/core/settings/settings.page.mjs +403 -0
  126. package/esm2022/src/app/core/table/async-table.class.mjs +1811 -0
  127. package/esm2022/src/app/core/table/column/actions-column.component.mjs +130 -0
  128. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +117 -0
  129. package/esm2022/src/app/core/table/column/row-field.component.mjs +116 -0
  130. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +404 -0
  131. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +405 -0
  132. package/esm2022/src/app/core/table/memory-table.class.mjs +57 -0
  133. package/esm2022/src/app/core/table/table-select-columns.component.mjs +46 -0
  134. package/esm2022/src/app/core/table/table.class.mjs +1867 -0
  135. package/esm2022/src/app/core/table/table.model.mjs +21 -0
  136. package/esm2022/src/app/core/table/table.module.mjs +51 -0
  137. package/esm2022/src/app/core/table/table.pipes.mjs +77 -0
  138. package/esm2022/src/app/core/table/table.utils.mjs +34 -0
  139. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +32 -0
  140. package/esm2022/src/app/core/table/testing/table.testing.mjs +329 -0
  141. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +25 -0
  142. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +25 -0
  143. package/esm2022/src/app/core/table/testing/table2.testing.mjs +273 -0
  144. package/esm2022/src/app/shared/alerts.mjs +243 -0
  145. package/esm2022/src/app/shared/audio/audio.mjs +255 -0
  146. package/esm2022/src/app/shared/audio/audio.testing.mjs +32 -0
  147. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +30 -0
  148. package/esm2022/src/app/shared/capacitor/keyboard.mjs +42 -0
  149. package/esm2022/src/app/shared/capacitor/plugins.mjs +9 -0
  150. package/esm2022/src/app/shared/constants.mjs +16 -0
  151. package/esm2022/src/app/shared/dates.mjs +180 -0
  152. package/esm2022/src/app/shared/debug/debug-service.class.mjs +3 -0
  153. package/esm2022/src/app/shared/debug/debug.component.mjs +44 -0
  154. package/esm2022/src/app/shared/debug/debug.module.mjs +23 -0
  155. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +91 -0
  156. package/esm2022/src/app/shared/directives/autoresize.directive.mjs +75 -0
  157. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +30 -0
  158. package/esm2022/src/app/shared/directives/directives.module.mjs +24 -0
  159. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +52 -0
  160. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +33 -0
  161. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +62 -0
  162. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +45 -0
  163. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +17 -0
  164. package/esm2022/src/app/shared/directives/throttled-click.directive.mjs +43 -0
  165. package/esm2022/src/app/shared/events.mjs +64 -0
  166. package/esm2022/src/app/shared/file/csv.utils.mjs +97 -0
  167. package/esm2022/src/app/shared/file/file.service.mjs +118 -0
  168. package/esm2022/src/app/shared/file/file.utils.mjs +117 -0
  169. package/esm2022/src/app/shared/file/images.utils.mjs +186 -0
  170. package/esm2022/src/app/shared/file/json.utils.mjs +58 -0
  171. package/esm2022/src/app/shared/file/uri.utils.mjs +29 -0
  172. package/esm2022/src/app/shared/file/url.utils.mjs +164 -0
  173. package/esm2022/src/app/shared/focusable.mjs +6 -0
  174. package/esm2022/src/app/shared/form/field.component.mjs +393 -0
  175. package/esm2022/src/app/shared/form/field.model.mjs +82 -0
  176. package/esm2022/src/app/shared/form/loading-spinner.mjs +35 -0
  177. package/esm2022/src/app/shared/forms.mjs +510 -0
  178. package/esm2022/src/app/shared/functions.mjs +672 -0
  179. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +86 -0
  180. package/esm2022/src/app/shared/gesture/gesture-config.mjs +46 -0
  181. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +2 -0
  182. package/esm2022/src/app/shared/graph/colors.utils.mjs +60 -0
  183. package/esm2022/src/app/shared/graph/graph-colors.mjs +214 -0
  184. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +65 -0
  185. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +23 -0
  186. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +147 -0
  187. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +24 -0
  188. package/esm2022/src/app/shared/http/http.utils.mjs +56 -0
  189. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +443 -0
  190. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +62 -0
  191. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +26 -0
  192. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +87 -0
  193. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +37 -0
  194. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +59 -0
  195. package/esm2022/src/app/shared/image/image.model.mjs +2 -0
  196. package/esm2022/src/app/shared/image/image.module.mjs +24 -0
  197. package/esm2022/src/app/shared/image/image.service.mjs +109 -0
  198. package/esm2022/src/app/shared/inputs.mjs +279 -0
  199. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +27 -0
  200. package/esm2022/src/app/shared/logging/log-level.model.mjs +48 -0
  201. package/esm2022/src/app/shared/logging/logger.model.mjs +47 -0
  202. package/esm2022/src/app/shared/logging/logging-service.class.mjs +125 -0
  203. package/esm2022/src/app/shared/logging/logging-service.config.mjs +2 -0
  204. package/esm2022/src/app/shared/logging/logging-service.module.mjs +30 -0
  205. package/esm2022/src/app/shared/markdown/markdown.component.mjs +321 -0
  206. package/esm2022/src/app/shared/markdown/markdown.directive.mjs +34 -0
  207. package/esm2022/src/app/shared/markdown/markdown.modal.mjs +99 -0
  208. package/esm2022/src/app/shared/markdown/markdown.module.mjs +87 -0
  209. package/esm2022/src/app/shared/markdown/markdown.service.mjs +204 -0
  210. package/esm2022/src/app/shared/markdown/markdown.utils.mjs +87 -0
  211. package/esm2022/src/app/shared/markdown/testing/markdown.test.mjs +55 -0
  212. package/esm2022/src/app/shared/markdown/testing/markdown.testing.module.mjs +30 -0
  213. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +46 -0
  214. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +1313 -0
  215. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +79 -0
  216. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +18 -0
  217. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +242 -0
  218. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +251 -0
  219. package/esm2022/src/app/shared/material/badge/badge.module.mjs +20 -0
  220. package/esm2022/src/app/shared/material/badge/badge.test.mjs +42 -0
  221. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +67 -0
  222. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +371 -0
  223. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +72 -0
  224. package/esm2022/src/app/shared/material/chips/chips.module.mjs +71 -0
  225. package/esm2022/src/app/shared/material/chips/material.chips.mjs +836 -0
  226. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +151 -0
  227. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +76 -0
  228. package/esm2022/src/app/shared/material/datetime/material.date.mjs +471 -0
  229. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +457 -0
  230. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +693 -0
  231. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +136 -0
  232. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +127 -0
  233. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +118 -0
  234. package/esm2022/src/app/shared/material/duration/duration.module.mjs +61 -0
  235. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +16 -0
  236. package/esm2022/src/app/shared/material/duration/material.duration.mjs +283 -0
  237. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +85 -0
  238. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +319 -0
  239. package/esm2022/src/app/shared/material/latlong/material.latlong-input.mjs +432 -0
  240. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +231 -0
  241. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +68 -0
  242. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +137 -0
  243. package/esm2022/src/app/shared/material/material.animations.mjs +200 -0
  244. package/esm2022/src/app/shared/material/material.config.mjs +3 -0
  245. package/esm2022/src/app/shared/material/material.module.mjs +229 -0
  246. package/esm2022/src/app/shared/material/material.testing.module.mjs +245 -0
  247. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +51 -0
  248. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +23 -0
  249. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +379 -0
  250. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +52 -0
  251. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +67 -0
  252. package/esm2022/src/app/shared/material/test/test-component.mjs +264 -0
  253. package/esm2022/src/app/shared/material/testing/common.test.mjs +111 -0
  254. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +42 -0
  255. package/esm2022/src/app/shared/material/text/text-form.component.mjs +205 -0
  256. package/esm2022/src/app/shared/material/text/text-form.module.mjs +63 -0
  257. package/esm2022/src/app/shared/modules.mjs +12 -0
  258. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +303 -0
  259. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +49 -0
  260. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +24 -0
  261. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +69 -0
  262. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +74 -0
  263. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +28 -0
  264. package/esm2022/src/app/shared/observables.mjs +100 -0
  265. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +217 -0
  266. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +24 -0
  267. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +29 -0
  268. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +50 -0
  269. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +72 -0
  270. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +28 -0
  271. package/esm2022/src/app/shared/pipes/dates.pipe.mjs +18 -0
  272. package/esm2022/src/app/shared/pipes/display-with.pipe.mjs +23 -0
  273. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +34 -0
  274. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +53 -0
  275. package/esm2022/src/app/shared/pipes/form.pipes.mjs +219 -0
  276. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +50 -0
  277. package/esm2022/src/app/shared/pipes/html.pipes.mjs +69 -0
  278. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +42 -0
  279. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +65 -0
  280. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +67 -0
  281. package/esm2022/src/app/shared/pipes/math.pipes.mjs +77 -0
  282. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +19 -0
  283. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +17 -0
  284. package/esm2022/src/app/shared/pipes/observable.pipes.mjs +61 -0
  285. package/esm2022/src/app/shared/pipes/pipes.module.mjs +285 -0
  286. package/esm2022/src/app/shared/pipes/property.pipes.mjs +135 -0
  287. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +179 -0
  288. package/esm2022/src/app/shared/pipes/string.pipes.mjs +183 -0
  289. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +44 -0
  290. package/esm2022/src/app/shared/pipes/types.pipes.mjs +74 -0
  291. package/esm2022/src/app/shared/pipes/url.pipes.mjs +43 -0
  292. package/esm2022/src/app/shared/platforms.mjs +81 -0
  293. package/esm2022/src/app/shared/print/print.service.mjs +305 -0
  294. package/esm2022/src/app/shared/regexps.mjs +96 -0
  295. package/esm2022/src/app/shared/rx-state/rx-state.decorators.mjs +217 -0
  296. package/esm2022/src/app/shared/rx-state/rx-state.module.mjs +19 -0
  297. package/esm2022/src/app/shared/rx-state/rx-state.types.mjs +2 -0
  298. package/esm2022/src/app/shared/services/entity-service.class.mjs +10 -0
  299. package/esm2022/src/app/shared/services/job.utils.mjs +92 -0
  300. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +353 -0
  301. package/esm2022/src/app/shared/services/progress-bar.service.mjs +31 -0
  302. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +118 -0
  303. package/esm2022/src/app/shared/services/startable-service.class.mjs +107 -0
  304. package/esm2022/src/app/shared/services/translate-context.service.mjs +107 -0
  305. package/esm2022/src/app/shared/services/validator-service.class.mjs +2 -0
  306. package/esm2022/src/app/shared/services.mjs +85 -0
  307. package/esm2022/src/app/shared/shared-routing.module.mjs +72 -0
  308. package/esm2022/src/app/shared/shared.module.mjs +229 -0
  309. package/esm2022/src/app/shared/shared.testing.module.mjs +108 -0
  310. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +279 -0
  311. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +42 -0
  312. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +27 -0
  313. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +25 -0
  314. package/esm2022/src/app/shared/storage/storage.service.mjs +134 -0
  315. package/esm2022/src/app/shared/storage/storage.utils.mjs +13 -0
  316. package/esm2022/src/app/shared/testing/maskito.test.mjs +41 -0
  317. package/esm2022/src/app/shared/testing/observable.test.mjs +94 -0
  318. package/esm2022/src/app/shared/testing/tests.page.mjs +37 -0
  319. package/esm2022/src/app/shared/toast/toast.testing.mjs +54 -0
  320. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +31 -0
  321. package/esm2022/src/app/shared/toast/toasts.mjs +134 -0
  322. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +62 -0
  323. package/esm2022/src/app/shared/toolbar/toolbar.mjs +267 -0
  324. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +26 -0
  325. package/esm2022/src/app/shared/types.mjs +2 -0
  326. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +59 -0
  327. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +30 -0
  328. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +109 -0
  329. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +216 -0
  330. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +26 -0
  331. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +114 -0
  332. package/esm2022/src/app/shared/validator/validators.mjs +621 -0
  333. package/esm2022/src/app/shared/version/versions.mjs +81 -0
  334. package/esm2022/src/app/social/job/job.module.mjs +23 -0
  335. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +35 -0
  336. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +235 -0
  337. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +47 -0
  338. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +29 -0
  339. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +91 -0
  340. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +38 -0
  341. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +34 -0
  342. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +22 -0
  343. package/esm2022/src/app/social/message/message.form.mjs +141 -0
  344. package/esm2022/src/app/social/message/message.modal.mjs +110 -0
  345. package/esm2022/src/app/social/message/message.model.mjs +75 -0
  346. package/esm2022/src/app/social/message/message.module.mjs +22 -0
  347. package/esm2022/src/app/social/message/message.service.mjs +110 -0
  348. package/esm2022/src/app/social/social.errors.mjs +10 -0
  349. package/esm2022/src/app/social/social.module.mjs +22 -0
  350. package/esm2022/src/app/social/social.testing.module.mjs +40 -0
  351. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +127 -0
  352. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +260 -0
  353. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +257 -0
  354. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +129 -0
  355. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +22 -0
  356. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +128 -0
  357. package/esm2022/src/app/social/user-event/user-event.model.mjs +2 -0
  358. package/esm2022/src/app/social/user-event/user-event.module.mjs +23 -0
  359. package/esm2022/src/app/social/user-event/user-event.service.mjs +512 -0
  360. package/esm2022/src/environments/environment.class.mjs +65 -0
  361. package/esm2022/src/environments/environment.loader.mjs +77 -0
  362. package/esm2022/src/environments/environment.mjs +109 -0
  363. package/esm2022/sumaris-net.ngx-components.mjs +5 -0
  364. package/fesm2022/sumaris-net.ngx-components.mjs +48742 -0
  365. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -0
  366. package/index.d.ts +5 -0
  367. package/package.json +19 -132
  368. package/public_api.d.ts +344 -0
  369. package/src/app/admin/admin-routing.module.d.ts +9 -0
  370. package/src/app/admin/admin.module.d.ts +10 -0
  371. package/src/app/admin/services/filter/person.filter.d.ts +22 -0
  372. package/src/app/admin/services/person.service.d.ts +37 -0
  373. package/src/app/admin/services/validator/person.validator.d.ts +23 -0
  374. package/src/app/admin/users/users.d.ts +61 -0
  375. package/src/app/admin/users/users.module.d.ts +14 -0
  376. package/src/app/core/about/about.modal.d.ts +32 -0
  377. package/src/app/core/about/about.module.d.ts +11 -0
  378. package/src/app/core/account/account.module.d.ts +18 -0
  379. package/src/app/core/account/account.page.d.ts +83 -0
  380. package/src/app/core/account/new-token.form.d.ts +29 -0
  381. package/src/app/core/account/new-token.modal.d.ts +29 -0
  382. package/src/app/core/account/password/change-password.form.d.ts +19 -0
  383. package/src/app/core/account/password/change-password.module.d.ts +11 -0
  384. package/src/app/core/account/password/change-password.page.d.ts +36 -0
  385. package/src/app/core/account/token.table.d.ts +27 -0
  386. package/src/app/core/auth/auth.form.d.ts +38 -0
  387. package/src/app/core/auth/auth.modal.d.ts +24 -0
  388. package/src/app/core/auth/auth.module.d.ts +13 -0
  389. package/src/app/core/auth/reset-password.modal.d.ts +29 -0
  390. package/src/app/core/core.module.d.ts +28 -0
  391. package/src/app/core/core.testing.module.d.ts +15 -0
  392. package/src/app/core/form/array/form-array.d.ts +137 -0
  393. package/src/app/core/form/array/testing/form-array-test.module.d.ts +12 -0
  394. package/src/app/core/form/array/testing/form-array.test.d.ts +26 -0
  395. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +37 -0
  396. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +9 -0
  397. package/src/app/core/form/entity/editor.class.d.ts +84 -0
  398. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +126 -0
  399. package/src/app/core/form/entity/entity-editor.class.d.ts +204 -0
  400. package/src/app/core/form/entity/entity-metadata.component.d.ts +13 -0
  401. package/src/app/core/form/entity/entity.module.d.ts +10 -0
  402. package/src/app/core/form/entity/tab-editor.class.d.ts +66 -0
  403. package/src/app/core/form/form-container.class.d.ts +127 -0
  404. package/src/app/core/form/form.class.d.ts +144 -0
  405. package/src/app/core/form/form.module.d.ts +14 -0
  406. package/src/app/core/form/form.utils.d.ts +260 -0
  407. package/src/app/core/form/list/list.form.d.ts +81 -0
  408. package/src/app/core/form/list/list.module.d.ts +9 -0
  409. package/src/app/core/form/properties/properties.form.d.ts +92 -0
  410. package/src/app/core/form/properties/properties.module.d.ts +11 -0
  411. package/src/app/core/form/properties/properties.table.d.ts +72 -0
  412. package/src/app/core/form/properties/properties.utils.d.ts +59 -0
  413. package/src/app/core/form/properties/property.validator.d.ts +27 -0
  414. package/src/app/core/form/properties/testing/properties-form.test.d.ts +22 -0
  415. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
  416. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +16 -0
  417. package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +11 -0
  418. package/src/app/core/form/text-popover/text-popover.component.d.ts +80 -0
  419. package/src/app/core/form/text-popover/text-popover.module.d.ts +9 -0
  420. package/src/app/core/form/username/username.form.d.ts +19 -0
  421. package/src/app/core/form/username/username.module.d.ts +9 -0
  422. package/src/app/core/graphql/graphql.module.d.ts +7 -0
  423. package/src/app/core/graphql/graphql.service.d.ts +142 -0
  424. package/src/app/core/graphql/graphql.utils.d.ts +47 -0
  425. package/src/app/core/home/home.d.ts +109 -0
  426. package/src/app/core/home/home.module.d.ts +14 -0
  427. package/src/app/core/icon/icon.component.d.ts +13 -0
  428. package/src/app/core/icon/icon.module.d.ts +9 -0
  429. package/src/app/core/install/install-upgrade-card.component.d.ts +63 -0
  430. package/src/app/core/install/install-upgrade-card.module.d.ts +9 -0
  431. package/src/app/core/menu/menu.component.d.ts +66 -0
  432. package/src/app/core/menu/menu.model.d.ts +144 -0
  433. package/src/app/core/menu/menu.module.d.ts +12 -0
  434. package/src/app/core/menu/menu.service.d.ts +93 -0
  435. package/src/app/core/menu/sub-menu-tab.directive.d.ts +29 -0
  436. package/src/app/core/menu/testing/menu-other.testing.d.ts +15 -0
  437. package/src/app/core/menu/testing/menu.testing.d.ts +51 -0
  438. package/src/app/core/menu/testing/menu.testing.module.d.ts +12 -0
  439. package/src/app/core/offline/update-offline-mode-card.component.d.ts +11 -0
  440. package/src/app/core/offline/update-offline-mode-card.module.d.ts +9 -0
  441. package/src/app/core/peer/select-peer.modal.d.ts +101 -0
  442. package/src/app/core/peer/select-peer.module.d.ts +12 -0
  443. package/src/app/core/register/register-confirm.page.d.ts +24 -0
  444. package/src/app/core/register/register.form.d.ts +49 -0
  445. package/src/app/core/register/register.modal.d.ts +14 -0
  446. package/src/app/core/register/register.module.d.ts +12 -0
  447. package/src/app/core/services/account.service.d.ts +207 -0
  448. package/src/app/core/services/auth-guard.service.d.ts +17 -0
  449. package/src/app/core/services/base-entity-service.class.d.ts +135 -0
  450. package/src/app/core/services/base-graphql-service.class.d.ts +77 -0
  451. package/src/app/core/services/base58.d.ts +7 -0
  452. package/src/app/core/services/config/core.config.d.ts +46 -0
  453. package/src/app/core/services/config.service.d.ts +63 -0
  454. package/src/app/core/services/crypto.service.d.ts +44 -0
  455. package/src/app/core/services/errors.d.ts +65 -0
  456. package/src/app/core/services/local-settings.service.d.ts +99 -0
  457. package/src/app/core/services/model/account.model.d.ts +56 -0
  458. package/src/app/core/services/model/config.model.d.ts +36 -0
  459. package/src/app/core/services/model/department.model.d.ts +11 -0
  460. package/src/app/core/services/model/entity.decorators.d.ts +17 -0
  461. package/src/app/core/services/model/entity.model.d.ts +133 -0
  462. package/src/app/core/services/model/filter.model.d.ts +37 -0
  463. package/src/app/core/services/model/history.model.d.ts +20 -0
  464. package/src/app/core/services/model/model.enum.d.ts +7 -0
  465. package/src/app/core/services/model/node-feature.model.d.ts +14 -0
  466. package/src/app/core/services/model/peer.model.d.ts +35 -0
  467. package/src/app/core/services/model/person.model.d.ts +37 -0
  468. package/src/app/core/services/model/referential.model.d.ts +84 -0
  469. package/src/app/core/services/model/settings.model.d.ts +29 -0
  470. package/src/app/core/services/model/token.model.d.ts +22 -0
  471. package/src/app/core/services/model/tree-item-entity.model.d.ts +53 -0
  472. package/src/app/core/services/network.service.d.ts +159 -0
  473. package/src/app/core/services/network.types.d.ts +4 -0
  474. package/src/app/core/services/network.utils.d.ts +38 -0
  475. package/src/app/core/services/pipes/account.pipes.d.ts +15 -0
  476. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +9 -0
  477. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +11 -0
  478. package/src/app/core/services/pipes/pipes.module.d.ts +11 -0
  479. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +13 -0
  480. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +15 -0
  481. package/src/app/core/services/platform.service.d.ts +110 -0
  482. package/src/app/core/services/storage/entities-storage.service.d.ts +108 -0
  483. package/src/app/core/services/storage/entity-store.class.d.ts +113 -0
  484. package/src/app/core/services/testing/referential-filter.model.d.ts +9 -0
  485. package/src/app/core/services/testing/referential.validator.d.ts +22 -0
  486. package/src/app/core/services/validator/account.validator.d.ts +24 -0
  487. package/src/app/core/services/validator/base.validator.class.d.ts +21 -0
  488. package/src/app/core/services/validator/local-settings.validator.d.ts +18 -0
  489. package/src/app/core/services/validator/user-settings.validator.d.ts +10 -0
  490. package/src/app/core/services/validator/user-token.validator.d.ts +13 -0
  491. package/src/app/core/settings/settings.module.d.ts +12 -0
  492. package/src/app/core/settings/settings.page.d.ts +88 -0
  493. package/src/app/core/table/async-table.class.d.ts +395 -0
  494. package/src/app/core/table/column/actions-column.component.d.ts +62 -0
  495. package/src/app/core/table/column/nav-actions-column.component.d.ts +46 -0
  496. package/src/app/core/table/column/row-field.component.d.ts +40 -0
  497. package/src/app/core/table/entities-async-table-datasource.class.d.ts +100 -0
  498. package/src/app/core/table/entities-table-datasource.class.d.ts +103 -0
  499. package/src/app/core/table/memory-table.class.d.ts +25 -0
  500. package/src/app/core/table/table-select-columns.component.d.ts +22 -0
  501. package/src/app/core/table/table.class.d.ts +400 -0
  502. package/src/app/core/table/table.model.d.ts +31 -0
  503. package/src/app/core/table/table.module.d.ts +14 -0
  504. package/src/app/core/table/table.pipes.d.ts +29 -0
  505. package/src/app/core/table/table.utils.d.ts +13 -0
  506. package/src/app/core/table/testing/table-validator.service.d.ts +17 -0
  507. package/src/app/core/table/testing/table.testing.d.ts +54 -0
  508. package/src/app/core/table/testing/table.testing.module.d.ts +14 -0
  509. package/src/app/core/table/testing/table2-validator.service.d.ts +15 -0
  510. package/src/app/core/table/testing/table2.testing.d.ts +48 -0
  511. package/src/app/shared/alerts.d.ts +55 -0
  512. package/src/app/shared/audio/audio.d.ts +45 -0
  513. package/src/app/shared/audio/audio.testing.d.ts +13 -0
  514. package/src/app/shared/audio/audio.testing.module.d.ts +11 -0
  515. package/src/app/shared/capacitor/keyboard.d.ts +16 -0
  516. package/src/app/shared/capacitor/plugins.d.ts +7 -0
  517. package/src/app/shared/constants.d.ts +13 -0
  518. package/src/app/shared/dates.d.ts +61 -0
  519. package/src/app/shared/debug/debug-service.class.d.ts +5 -0
  520. package/src/app/shared/debug/debug.component.d.ts +14 -0
  521. package/src/app/shared/debug/debug.module.d.ts +12 -0
  522. package/src/app/shared/directives/autofocus.directive.d.ts +18 -0
  523. package/src/app/shared/directives/autoresize.directive.d.ts +20 -0
  524. package/src/app/shared/directives/autotitle.directive.d.ts +11 -0
  525. package/src/app/shared/directives/directives.module.d.ts +14 -0
  526. package/src/app/shared/directives/drag-and-drop.directive.d.ts +17 -0
  527. package/src/app/shared/directives/ng-var.directive.d.ts +12 -0
  528. package/src/app/shared/directives/resizable/resizable.component.d.ts +21 -0
  529. package/src/app/shared/directives/resizable/resizable.directive.d.ts +12 -0
  530. package/src/app/shared/directives/resizable/resizable.module.d.ts +8 -0
  531. package/src/app/shared/directives/throttled-click.directive.d.ts +16 -0
  532. package/src/app/shared/events.d.ts +29 -0
  533. package/src/app/shared/file/csv.utils.d.ts +30 -0
  534. package/src/app/shared/file/file.service.d.ts +23 -0
  535. package/src/app/shared/file/file.utils.d.ts +20 -0
  536. package/src/app/shared/file/images.utils.d.ts +36 -0
  537. package/src/app/shared/file/json.utils.d.ts +19 -0
  538. package/src/app/shared/file/uri.utils.d.ts +8 -0
  539. package/src/app/shared/file/url.utils.d.ts +77 -0
  540. package/src/app/shared/focusable.d.ts +4 -0
  541. package/src/app/shared/form/field.component.d.ts +85 -0
  542. package/src/app/shared/form/field.model.d.ts +82 -0
  543. package/src/app/shared/form/loading-spinner.d.ts +8 -0
  544. package/src/app/shared/forms.d.ts +135 -0
  545. package/src/app/shared/functions.d.ts +206 -0
  546. package/src/app/shared/geolocation/geolocation.utils.d.ts +19 -0
  547. package/src/app/shared/gesture/gesture-config.d.ts +15 -0
  548. package/src/app/shared/gesture/hammer.utils.d.ts +16 -0
  549. package/src/app/shared/graph/colors.utils.d.ts +17 -0
  550. package/src/app/shared/graph/graph-colors.d.ts +63 -0
  551. package/src/app/shared/guard/component-dirty.guard.d.ts +14 -0
  552. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +8 -0
  553. package/src/app/shared/hotkeys/hotkeys.service.d.ts +48 -0
  554. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +11 -0
  555. package/src/app/shared/http/http.utils.d.ts +28 -0
  556. package/src/app/shared/image/gallery/image-gallery.component.d.ts +137 -0
  557. package/src/app/shared/image/gallery/image-gallery.module.d.ts +15 -0
  558. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +12 -0
  559. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +33 -0
  560. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +16 -0
  561. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +13 -0
  562. package/src/app/shared/image/image.model.d.ts +7 -0
  563. package/src/app/shared/image/image.module.d.ts +8 -0
  564. package/src/app/shared/image/image.service.d.ts +36 -0
  565. package/src/app/shared/inputs.d.ts +36 -0
  566. package/src/app/shared/interceptors/progess.interceptor.d.ts +8 -0
  567. package/src/app/shared/logging/log-level.model.d.ts +38 -0
  568. package/src/app/shared/logging/logger.model.d.ts +68 -0
  569. package/src/app/shared/logging/logging-service.class.d.ts +39 -0
  570. package/src/app/shared/logging/logging-service.config.d.ts +25 -0
  571. package/src/app/shared/logging/logging-service.module.d.ts +9 -0
  572. package/src/app/shared/markdown/markdown.component.d.ts +86 -0
  573. package/src/app/shared/markdown/markdown.directive.d.ts +13 -0
  574. package/src/app/shared/markdown/markdown.modal.d.ts +49 -0
  575. package/src/app/shared/markdown/markdown.module.d.ts +17 -0
  576. package/src/app/shared/markdown/markdown.service.d.ts +37 -0
  577. package/src/app/shared/markdown/markdown.utils.d.ts +26 -0
  578. package/src/app/shared/markdown/testing/markdown.test.d.ts +18 -0
  579. package/src/app/shared/markdown/testing/markdown.testing.module.d.ts +12 -0
  580. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +74 -0
  581. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +211 -0
  582. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +22 -0
  583. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +5 -0
  584. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +48 -0
  585. package/src/app/shared/material/badge/badge.directive.d.ts +43 -0
  586. package/src/app/shared/material/badge/badge.module.d.ts +10 -0
  587. package/src/app/shared/material/badge/badge.test.d.ts +21 -0
  588. package/src/app/shared/material/boolean/boolean.module.d.ts +20 -0
  589. package/src/app/shared/material/boolean/material.boolean.d.ts +93 -0
  590. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +26 -0
  591. package/src/app/shared/material/chips/chips.module.d.ts +21 -0
  592. package/src/app/shared/material/chips/material.chips.d.ts +164 -0
  593. package/src/app/shared/material/chips/testing/chips.test.d.ts +32 -0
  594. package/src/app/shared/material/datetime/datetime.module.d.ts +24 -0
  595. package/src/app/shared/material/datetime/material.date.d.ts +90 -0
  596. package/src/app/shared/material/datetime/material.dateshort.d.ts +89 -0
  597. package/src/app/shared/material/datetime/material.datetime.d.ts +116 -0
  598. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +37 -0
  599. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +32 -0
  600. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +31 -0
  601. package/src/app/shared/material/duration/duration.module.d.ts +18 -0
  602. package/src/app/shared/material/duration/duration.utils.d.ts +2 -0
  603. package/src/app/shared/material/duration/material.duration.d.ts +64 -0
  604. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +23 -0
  605. package/src/app/shared/material/latlong/latlong.utils.d.ts +59 -0
  606. package/src/app/shared/material/latlong/material.latlong-input.d.ts +85 -0
  607. package/src/app/shared/material/latlong/material.latlong.d.ts +90 -0
  608. package/src/app/shared/material/latlong/material.latlong.module.d.ts +21 -0
  609. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +28 -0
  610. package/src/app/shared/material/material.animations.d.ts +8 -0
  611. package/src/app/shared/material/material.config.d.ts +3 -0
  612. package/src/app/shared/material/material.module.d.ts +45 -0
  613. package/src/app/shared/material/material.testing.module.d.ts +32 -0
  614. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +12 -0
  615. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +10 -0
  616. package/src/app/shared/material/swipe/material.swipe.d.ts +89 -0
  617. package/src/app/shared/material/swipe/swipe.module.d.ts +16 -0
  618. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +22 -0
  619. package/src/app/shared/material/test/test-component.d.ts +75 -0
  620. package/src/app/shared/material/testing/common.test.d.ts +25 -0
  621. package/src/app/shared/material/text/testing/text-form.testing.d.ts +19 -0
  622. package/src/app/shared/material/text/text-form.component.d.ts +66 -0
  623. package/src/app/shared/material/text/text-form.module.d.ts +16 -0
  624. package/src/app/shared/modules.d.ts +9 -0
  625. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +62 -0
  626. package/src/app/shared/named-filter/named-filter.model.d.ts +32 -0
  627. package/src/app/shared/named-filter/named-filter.module.d.ts +13 -0
  628. package/src/app/shared/named-filter/named-filter.service.d.ts +32 -0
  629. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +34 -0
  630. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +10 -0
  631. package/src/app/shared/observables.d.ts +30 -0
  632. package/src/app/shared/pipes/arrays.pipe.d.ts +82 -0
  633. package/src/app/shared/pipes/badge.pipes.d.ts +7 -0
  634. package/src/app/shared/pipes/colors.pipe.d.ts +9 -0
  635. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +25 -0
  636. package/src/app/shared/pipes/date-format.pipe.d.ts +35 -0
  637. package/src/app/shared/pipes/date-from-now.pipe.d.ts +12 -0
  638. package/src/app/shared/pipes/dates.pipe.d.ts +10 -0
  639. package/src/app/shared/pipes/display-with.pipe.d.ts +8 -0
  640. package/src/app/shared/pipes/duration.pipe.d.ts +23 -0
  641. package/src/app/shared/pipes/file-size.pipe.d.ts +30 -0
  642. package/src/app/shared/pipes/form.pipes.d.ts +69 -0
  643. package/src/app/shared/pipes/highlight.pipe.d.ts +11 -0
  644. package/src/app/shared/pipes/html.pipes.d.ts +22 -0
  645. package/src/app/shared/pipes/latlong-format.pipe.d.ts +20 -0
  646. package/src/app/shared/pipes/maps.pipe.d.ts +23 -0
  647. package/src/app/shared/pipes/maskito.pipe.d.ts +14 -0
  648. package/src/app/shared/pipes/math.pipes.d.ts +26 -0
  649. package/src/app/shared/pipes/ng-init.pipe.d.ts +8 -0
  650. package/src/app/shared/pipes/number-format.pipe.d.ts +9 -0
  651. package/src/app/shared/pipes/observable.pipes.d.ts +25 -0
  652. package/src/app/shared/pipes/pipes.module.d.ts +35 -0
  653. package/src/app/shared/pipes/property.pipes.d.ts +41 -0
  654. package/src/app/shared/pipes/selection.pipes.d.ts +62 -0
  655. package/src/app/shared/pipes/string.pipes.d.ts +68 -0
  656. package/src/app/shared/pipes/translate-context.pipe.d.ts +17 -0
  657. package/src/app/shared/pipes/types.pipes.d.ts +30 -0
  658. package/src/app/shared/pipes/url.pipes.d.ts +27 -0
  659. package/src/app/shared/platforms.d.ts +16 -0
  660. package/src/app/shared/print/print.service.d.ts +94 -0
  661. package/src/app/shared/regexps.d.ts +32 -0
  662. package/src/app/shared/rx-state/rx-state.decorators.d.ts +43 -0
  663. package/src/app/shared/rx-state/rx-state.module.d.ts +10 -0
  664. package/src/app/shared/rx-state/rx-state.types.d.ts +4 -0
  665. package/src/app/shared/services/entity-service.class.d.ts +75 -0
  666. package/src/app/shared/services/job.utils.d.ts +20 -0
  667. package/src/app/shared/services/memory-entity-service.class.d.ts +79 -0
  668. package/src/app/shared/services/progress-bar.service.d.ts +20 -0
  669. package/src/app/shared/services/startable-observable-service.class.d.ts +36 -0
  670. package/src/app/shared/services/startable-service.class.d.ts +37 -0
  671. package/src/app/shared/services/translate-context.service.d.ts +29 -0
  672. package/src/app/shared/services/validator-service.class.d.ts +11 -0
  673. package/src/app/shared/services.d.ts +17 -0
  674. package/src/app/shared/shared-routing.module.d.ts +23 -0
  675. package/src/app/shared/shared.module.d.ts +33 -0
  676. package/src/app/shared/shared.testing.module.d.ts +20 -0
  677. package/src/app/shared/storage/storage-explorer.component.d.ts +59 -0
  678. package/src/app/shared/storage/storage-explorer.module.d.ts +13 -0
  679. package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +9 -0
  680. package/src/app/shared/storage/storage-explorer.testing.module.d.ts +10 -0
  681. package/src/app/shared/storage/storage.service.d.ts +22 -0
  682. package/src/app/shared/storage/storage.utils.d.ts +19 -0
  683. package/src/app/shared/testing/maskito.test.d.ts +10 -0
  684. package/src/app/shared/testing/observable.test.d.ts +25 -0
  685. package/src/app/shared/testing/tests.page.d.ts +20 -0
  686. package/src/app/shared/toast/toast.testing.d.ts +15 -0
  687. package/src/app/shared/toast/toast.testing.module.d.ts +12 -0
  688. package/src/app/shared/toast/toasts.d.ts +16 -0
  689. package/src/app/shared/toolbar/modal-toolbar.d.ts +21 -0
  690. package/src/app/shared/toolbar/toolbar.d.ts +70 -0
  691. package/src/app/shared/toolbar/toolbar.module.d.ts +16 -0
  692. package/src/app/shared/types.d.ts +36 -0
  693. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +21 -0
  694. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +11 -0
  695. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +41 -0
  696. package/src/app/shared/upload-file/upload-file.component.d.ts +50 -0
  697. package/src/app/shared/upload-file/upload-file.model.d.ts +30 -0
  698. package/src/app/shared/validator/form-error-adapter.class.d.ts +33 -0
  699. package/src/app/shared/validator/validators.d.ts +139 -0
  700. package/src/app/shared/version/versions.d.ts +26 -0
  701. package/src/app/social/job/job.module.d.ts +12 -0
  702. package/src/app/social/job/progression/job-progression.component.d.ts +23 -0
  703. package/src/app/social/job/progression/job-progression.icon.d.ts +62 -0
  704. package/src/app/social/job/progression/job-progression.list.d.ts +19 -0
  705. package/src/app/social/job/progression/job-progression.model.d.ts +10 -0
  706. package/src/app/social/job/progression/job-progression.service.d.ts +33 -0
  707. package/src/app/social/job/testing/job-progression.testing.d.ts +13 -0
  708. package/src/app/social/job/testing/job-progression.testing.service.d.ts +9 -0
  709. package/src/app/social/job/testing/job.testing.module.d.ts +11 -0
  710. package/src/app/social/message/message.form.d.ts +36 -0
  711. package/src/app/social/message/message.modal.d.ts +43 -0
  712. package/src/app/social/message/message.model.d.ts +33 -0
  713. package/src/app/social/message/message.module.d.ts +12 -0
  714. package/src/app/social/message/message.service.d.ts +32 -0
  715. package/src/app/social/social.errors.d.ts +9 -0
  716. package/src/app/social/social.module.d.ts +20 -0
  717. package/src/app/social/social.testing.module.d.ts +13 -0
  718. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +32 -0
  719. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +71 -0
  720. package/src/app/social/user-event/testing/user-event.testing.d.ts +35 -0
  721. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +42 -0
  722. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +11 -0
  723. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +42 -0
  724. package/src/app/social/user-event/user-event.model.d.ts +44 -0
  725. package/src/app/social/user-event/user-event.module.d.ts +13 -0
  726. package/src/app/social/user-event/user-event.service.d.ts +124 -0
  727. package/src/assets/manifest.json +1 -1
  728. package/src/environments/environment.class.d.ts +75 -0
  729. package/src/environments/environment.d.ts +2 -0
  730. package/src/environments/environment.loader.d.ts +24 -0
  731. package/.editorconfig +0 -24
  732. package/.eslintrc.json +0 -95
  733. package/.gitattribute +0 -1
  734. package/.github/CONTRIBUTING.md +0 -10
  735. package/.github/ISSUE_TEMPLATE.md +0 -6
  736. package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
  737. package/.github/github_disclaimer.md +0 -14
  738. package/.gitlab-ci.yml +0 -46
  739. package/.graphqlconfig +0 -15
  740. package/.prettierignore +0 -9
  741. package/.prettierrc.json +0 -17
  742. package/angular.json +0 -236
  743. package/capacitor.config.ts +0 -49
  744. package/graphql.config.yml +0 -13
  745. package/ionic.config.json +0 -7
  746. package/karma.conf.js +0 -38
  747. package/ng-package.json +0 -21
  748. package/ngcc.config.js +0 -9
  749. package/public_api.ts +0 -426
  750. package/resources/README.md +0 -7
  751. package/resources/icon/TODO.md +0 -11
  752. package/resources/icon.png +0 -0
  753. package/resources/icon.png.md5 +0 -1
  754. package/resources/icon.xcf +0 -0
  755. package/resources/ios/icon/icon-1024.png +0 -0
  756. package/resources/ios/icon/icon-108@2x.png +0 -0
  757. package/resources/ios/icon/icon-20.png +0 -0
  758. package/resources/ios/icon/icon-20@2x.png +0 -0
  759. package/resources/ios/icon/icon-20@3x.png +0 -0
  760. package/resources/ios/icon/icon-24@2x.png +0 -0
  761. package/resources/ios/icon/icon-27.5@2x.png +0 -0
  762. package/resources/ios/icon/icon-29.png +0 -0
  763. package/resources/ios/icon/icon-29@2x.png +0 -0
  764. package/resources/ios/icon/icon-29@3x.png +0 -0
  765. package/resources/ios/icon/icon-40.png +0 -0
  766. package/resources/ios/icon/icon-40@2x.png +0 -0
  767. package/resources/ios/icon/icon-40@3x.png +0 -0
  768. package/resources/ios/icon/icon-44@2x.png +0 -0
  769. package/resources/ios/icon/icon-50.png +0 -0
  770. package/resources/ios/icon/icon-50@2x.png +0 -0
  771. package/resources/ios/icon/icon-60.png +0 -0
  772. package/resources/ios/icon/icon-60@2x.png +0 -0
  773. package/resources/ios/icon/icon-60@3x.png +0 -0
  774. package/resources/ios/icon/icon-72.png +0 -0
  775. package/resources/ios/icon/icon-72@2x.png +0 -0
  776. package/resources/ios/icon/icon-76.png +0 -0
  777. package/resources/ios/icon/icon-76@2x.png +0 -0
  778. package/resources/ios/icon/icon-83.5@2x.png +0 -0
  779. package/resources/ios/icon/icon-86@2x.png +0 -0
  780. package/resources/ios/icon/icon-98@2x.png +0 -0
  781. package/resources/ios/icon/icon-small.png +0 -0
  782. package/resources/ios/icon/icon-small@2x.png +0 -0
  783. package/resources/ios/icon/icon-small@3x.png +0 -0
  784. package/resources/ios/icon/icon.png +0 -0
  785. package/resources/ios/icon/icon@2x.png +0 -0
  786. package/resources/ios/splash/Default-1792h~iphone.png +0 -0
  787. package/resources/ios/splash/Default-2436h.png +0 -0
  788. package/resources/ios/splash/Default-2688h~iphone.png +0 -0
  789. package/resources/ios/splash/Default-568h@2x~iphone.png +0 -0
  790. package/resources/ios/splash/Default-667h.png +0 -0
  791. package/resources/ios/splash/Default-736h.png +0 -0
  792. package/resources/ios/splash/Default-Landscape-1792h~iphone.png +0 -0
  793. package/resources/ios/splash/Default-Landscape-2436h.png +0 -0
  794. package/resources/ios/splash/Default-Landscape-2688h~iphone.png +0 -0
  795. package/resources/ios/splash/Default-Landscape-736h.png +0 -0
  796. package/resources/ios/splash/Default-Landscape@2x~ipad.png +0 -0
  797. package/resources/ios/splash/Default-Landscape@~ipadpro.png +0 -0
  798. package/resources/ios/splash/Default-Landscape~ipad.png +0 -0
  799. package/resources/ios/splash/Default-Portrait@2x~ipad.png +0 -0
  800. package/resources/ios/splash/Default-Portrait@~ipadpro.png +0 -0
  801. package/resources/ios/splash/Default-Portrait~ipad.png +0 -0
  802. package/resources/ios/splash/Default@2x~iphone.png +0 -0
  803. package/resources/ios/splash/Default@2x~universal~anyany.png +0 -0
  804. package/resources/ios/splash/Default~iphone.png +0 -0
  805. package/resources/splash.png +0 -0
  806. package/resources/splash.png.md5 +0 -1
  807. package/scripts/build-android.sh +0 -18
  808. package/scripts/docker-start.sh +0 -6
  809. package/scripts/emulate-android.sh +0 -17
  810. package/scripts/env-android.sh +0 -83
  811. package/scripts/env-clean.sh +0 -23
  812. package/scripts/env-global.sh +0 -154
  813. package/scripts/install-android-sdk-tools.sh +0 -73
  814. package/scripts/ionic-update.sh +0 -24
  815. package/scripts/node/build-i18n.js +0 -37
  816. package/scripts/node/playground.ts +0 -9
  817. package/scripts/node/resources.js +0 -108
  818. package/scripts/release.sh +0 -162
  819. package/scripts/run-android.sh +0 -59
  820. package/scripts/test.sh +0 -19
  821. package/src/app/admin/admin-routing.module.ts +0 -26
  822. package/src/app/admin/admin.module.ts +0 -20
  823. package/src/app/admin/services/filter/person.filter.ts +0 -86
  824. package/src/app/admin/services/person.service.ts +0 -244
  825. package/src/app/admin/services/validator/person.validator.ts +0 -86
  826. package/src/app/admin/users/users.html +0 -613
  827. package/src/app/admin/users/users.module.ts +0 -32
  828. package/src/app/admin/users/users.scss +0 -80
  829. package/src/app/admin/users/users.ts +0 -387
  830. package/src/app/app-routing.module.ts +0 -165
  831. package/src/app/app.component.html +0 -14
  832. package/src/app/app.component.scss +0 -4
  833. package/src/app/app.component.ts +0 -252
  834. package/src/app/app.module.ts +0 -355
  835. package/src/app/core/about/about.modal.html +0 -145
  836. package/src/app/core/about/about.modal.scss +0 -22
  837. package/src/app/core/about/about.modal.ts +0 -69
  838. package/src/app/core/about/about.module.ts +0 -14
  839. package/src/app/core/account/account.module.ts +0 -43
  840. package/src/app/core/account/account.page.html +0 -329
  841. package/src/app/core/account/account.page.scss +0 -20
  842. package/src/app/core/account/account.page.ts +0 -389
  843. package/src/app/core/account/new-token.form.html +0 -90
  844. package/src/app/core/account/new-token.form.ts +0 -99
  845. package/src/app/core/account/new-token.modal.html +0 -52
  846. package/src/app/core/account/new-token.modal.ts +0 -68
  847. package/src/app/core/account/password/change-password.form.html +0 -62
  848. package/src/app/core/account/password/change-password.form.scss +0 -0
  849. package/src/app/core/account/password/change-password.form.ts +0 -58
  850. package/src/app/core/account/password/change-password.module.ts +0 -14
  851. package/src/app/core/account/password/change-password.page.html +0 -41
  852. package/src/app/core/account/password/change-password.page.scss +0 -49
  853. package/src/app/core/account/password/change-password.page.ts +0 -158
  854. package/src/app/core/account/token.table.html +0 -160
  855. package/src/app/core/account/token.table.scss +0 -7
  856. package/src/app/core/account/token.table.ts +0 -160
  857. package/src/app/core/auth/auth.form.html +0 -108
  858. package/src/app/core/auth/auth.form.scss +0 -0
  859. package/src/app/core/auth/auth.form.ts +0 -165
  860. package/src/app/core/auth/auth.modal.html +0 -50
  861. package/src/app/core/auth/auth.modal.scss +0 -0
  862. package/src/app/core/auth/auth.modal.ts +0 -78
  863. package/src/app/core/auth/auth.module.ts +0 -35
  864. package/src/app/core/auth/reset-password.modal.html +0 -59
  865. package/src/app/core/auth/reset-password.modal.ts +0 -83
  866. package/src/app/core/core.module.ts +0 -72
  867. package/src/app/core/core.testing.module.ts +0 -80
  868. package/src/app/core/form/array/form-array.ts +0 -409
  869. package/src/app/core/form/array/testing/form-array-test.module.ts +0 -15
  870. package/src/app/core/form/array/testing/form-array.test.html +0 -196
  871. package/src/app/core/form/array/testing/form-array.test.ts +0 -119
  872. package/src/app/core/form/buttons/form-buttons-bar.component.html +0 -82
  873. package/src/app/core/form/buttons/form-buttons-bar.component.scss +0 -19
  874. package/src/app/core/form/buttons/form-buttons-bar.component.ts +0 -89
  875. package/src/app/core/form/buttons/form-buttons-bar.module.ts +0 -20
  876. package/src/app/core/form/entity/editor.class.ts +0 -295
  877. package/src/app/core/form/entity/entity-editor-modal.class.ts +0 -494
  878. package/src/app/core/form/entity/entity-editor.class.ts +0 -894
  879. package/src/app/core/form/entity/entity-metadata.component.html +0 -57
  880. package/src/app/core/form/entity/entity-metadata.component.scss +0 -40
  881. package/src/app/core/form/entity/entity-metadata.component.ts +0 -18
  882. package/src/app/core/form/entity/entity.module.ts +0 -20
  883. package/src/app/core/form/entity/tab-editor.class.ts +0 -224
  884. package/src/app/core/form/form-container.class.ts +0 -380
  885. package/src/app/core/form/form.class.ts +0 -377
  886. package/src/app/core/form/form.module.ts +0 -38
  887. package/src/app/core/form/form.utils.ts +0 -305
  888. package/src/app/core/form/list/list.form.html +0 -68
  889. package/src/app/core/form/list/list.form.scss +0 -40
  890. package/src/app/core/form/list/list.form.ts +0 -266
  891. package/src/app/core/form/list/list.module.ts +0 -20
  892. package/src/app/core/form/properties/properties.form.html +0 -160
  893. package/src/app/core/form/properties/properties.form.scss +0 -21
  894. package/src/app/core/form/properties/properties.form.ts +0 -331
  895. package/src/app/core/form/properties/properties.module.ts +0 -24
  896. package/src/app/core/form/properties/properties.table.html +0 -228
  897. package/src/app/core/form/properties/properties.table.scss +0 -0
  898. package/src/app/core/form/properties/properties.table.ts +0 -275
  899. package/src/app/core/form/properties/properties.utils.ts +0 -391
  900. package/src/app/core/form/properties/property.validator.ts +0 -82
  901. package/src/app/core/form/properties/testing/properties-form.test.html +0 -23
  902. package/src/app/core/form/properties/testing/properties-form.test.ts +0 -109
  903. package/src/app/core/form/properties/testing/properties-form.testing.module.ts +0 -14
  904. package/src/app/core/form/text-popover/testing/text-popover.testing.html +0 -50
  905. package/src/app/core/form/text-popover/testing/text-popover.testing.module.ts +0 -21
  906. package/src/app/core/form/text-popover/testing/text-popover.testing.ts +0 -76
  907. package/src/app/core/form/text-popover/text-popover.component.html +0 -89
  908. package/src/app/core/form/text-popover/text-popover.component.scss +0 -7
  909. package/src/app/core/form/text-popover/text-popover.component.ts +0 -176
  910. package/src/app/core/form/text-popover/text-popover.module.ts +0 -19
  911. package/src/app/core/form/username/username.form.html +0 -27
  912. package/src/app/core/form/username/username.form.ts +0 -44
  913. package/src/app/core/form/username/username.module.ts +0 -12
  914. package/src/app/core/graphql/graphql.module.ts +0 -7
  915. package/src/app/core/graphql/graphql.service.ts +0 -962
  916. package/src/app/core/graphql/graphql.utils.ts +0 -166
  917. package/src/app/core/home/home.html +0 -295
  918. package/src/app/core/home/home.module.ts +0 -27
  919. package/src/app/core/home/home.scss +0 -279
  920. package/src/app/core/home/home.ts +0 -422
  921. package/src/app/core/icon/icon.component.html +0 -19
  922. package/src/app/core/icon/icon.component.ts +0 -22
  923. package/src/app/core/icon/icon.module.ts +0 -13
  924. package/src/app/core/install/install-upgrade-card.component.html +0 -144
  925. package/src/app/core/install/install-upgrade-card.component.scss +0 -3
  926. package/src/app/core/install/install-upgrade-card.component.ts +0 -445
  927. package/src/app/core/install/install-upgrade-card.module.ts +0 -18
  928. package/src/app/core/menu/menu.component.html +0 -219
  929. package/src/app/core/menu/menu.component.scss +0 -304
  930. package/src/app/core/menu/menu.component.ts +0 -251
  931. package/src/app/core/menu/menu.filter.ts +0 -28
  932. package/src/app/core/menu/menu.model.ts +0 -356
  933. package/src/app/core/menu/menu.module.ts +0 -27
  934. package/src/app/core/menu/menu.service.ts +0 -727
  935. package/src/app/core/menu/sub-menu-tab.directive.ts +0 -99
  936. package/src/app/core/menu/testing/menu-other.testing.ts +0 -57
  937. package/src/app/core/menu/testing/menu.testing.html +0 -143
  938. package/src/app/core/menu/testing/menu.testing.module.ts +0 -52
  939. package/src/app/core/menu/testing/menu.testing.scss +0 -5
  940. package/src/app/core/menu/testing/menu.testing.ts +0 -175
  941. package/src/app/core/offline/update-offline-mode-card.component.html +0 -39
  942. package/src/app/core/offline/update-offline-mode-card.component.scss +0 -3
  943. package/src/app/core/offline/update-offline-mode-card.component.ts +0 -23
  944. package/src/app/core/offline/update-offline-mode-card.module.ts +0 -20
  945. package/src/app/core/peer/select-peer.modal.html +0 -317
  946. package/src/app/core/peer/select-peer.modal.scss +0 -41
  947. package/src/app/core/peer/select-peer.modal.ts +0 -366
  948. package/src/app/core/peer/select-peer.module.ts +0 -23
  949. package/src/app/core/register/register-confirm.page.html +0 -51
  950. package/src/app/core/register/register-confirm.page.scss +0 -56
  951. package/src/app/core/register/register-confirm.page.ts +0 -90
  952. package/src/app/core/register/register.form.html +0 -143
  953. package/src/app/core/register/register.form.scss +0 -10
  954. package/src/app/core/register/register.form.ts +0 -218
  955. package/src/app/core/register/register.modal.html +0 -66
  956. package/src/app/core/register/register.modal.ts +0 -50
  957. package/src/app/core/register/register.module.ts +0 -15
  958. package/src/app/core/services/account.service.ts +0 -1567
  959. package/src/app/core/services/auth-guard.service.ts +0 -70
  960. package/src/app/core/services/base-entity-service.class.ts +0 -659
  961. package/src/app/core/services/base-graphql-service.class.ts +0 -319
  962. package/src/app/core/services/base58.ts +0 -90
  963. package/src/app/core/services/config/core.config.ts +0 -263
  964. package/src/app/core/services/config.service.ts +0 -425
  965. package/src/app/core/services/crypto.service.ts +0 -126
  966. package/src/app/core/services/errors.ts +0 -80
  967. package/src/app/core/services/local-settings.service.spec.ts +0 -39
  968. package/src/app/core/services/local-settings.service.ts +0 -605
  969. package/src/app/core/services/model/account.model.ts +0 -188
  970. package/src/app/core/services/model/config.model.ts +0 -116
  971. package/src/app/core/services/model/department.model.ts +0 -34
  972. package/src/app/core/services/model/entity.decorators.ts +0 -110
  973. package/src/app/core/services/model/entity.model.ts +0 -409
  974. package/src/app/core/services/model/filter.model.ts +0 -127
  975. package/src/app/core/services/model/history.model.ts +0 -25
  976. package/src/app/core/services/model/model.enum.ts +0 -10
  977. package/src/app/core/services/model/node-feature.model.ts +0 -31
  978. package/src/app/core/services/model/peer.model.ts +0 -119
  979. package/src/app/core/services/model/person.model.ts +0 -122
  980. package/src/app/core/services/model/referential.model.ts +0 -253
  981. package/src/app/core/services/model/settings.model.ts +0 -37
  982. package/src/app/core/services/model/token.model.ts +0 -60
  983. package/src/app/core/services/model/tree-item-entity.model.ts +0 -230
  984. package/src/app/core/services/network.service.spec.ts +0 -47
  985. package/src/app/core/services/network.service.ts +0 -761
  986. package/src/app/core/services/network.types.ts +0 -7
  987. package/src/app/core/services/network.utils.ts +0 -83
  988. package/src/app/core/services/pipes/account.pipes.ts +0 -22
  989. package/src/app/core/services/pipes/department-to-string.pipe.ts +0 -13
  990. package/src/app/core/services/pipes/person-to-string.pipe.ts +0 -13
  991. package/src/app/core/services/pipes/pipes.module.ts +0 -30
  992. package/src/app/core/services/pipes/referential-to-string.pipe.ts +0 -18
  993. package/src/app/core/services/pipes/usage-mode.pipes.ts +0 -23
  994. package/src/app/core/services/platform.service.spec.ts +0 -50
  995. package/src/app/core/services/platform.service.ts +0 -694
  996. package/src/app/core/services/storage/entities-storage.service.ts +0 -557
  997. package/src/app/core/services/storage/entity-store.class.ts +0 -589
  998. package/src/app/core/services/testing/local-settings.config.ts +0 -35
  999. package/src/app/core/services/testing/referential-filter.model.ts +0 -28
  1000. package/src/app/core/services/testing/referential.validator.ts +0 -58
  1001. package/src/app/core/services/testing/user-settings.config.ts +0 -77
  1002. package/src/app/core/services/validator/account.validator.ts +0 -50
  1003. package/src/app/core/services/validator/base.validator.class.ts +0 -51
  1004. package/src/app/core/services/validator/local-settings.validator.ts +0 -59
  1005. package/src/app/core/services/validator/user-settings.validator.ts +0 -22
  1006. package/src/app/core/services/validator/user-token.validator.ts +0 -54
  1007. package/src/app/core/settings/settings.module.ts +0 -15
  1008. package/src/app/core/settings/settings.page.html +0 -300
  1009. package/src/app/core/settings/settings.page.ts +0 -455
  1010. package/src/app/core/table/async-table.class.ts +0 -2019
  1011. package/src/app/core/table/column/actions-column.component.html +0 -219
  1012. package/src/app/core/table/column/actions-column.component.scss +0 -17
  1013. package/src/app/core/table/column/actions-column.component.ts +0 -83
  1014. package/src/app/core/table/column/nav-actions-column.component.html +0 -119
  1015. package/src/app/core/table/column/nav-actions-column.component.ts +0 -108
  1016. package/src/app/core/table/column/row-field.component.html +0 -43
  1017. package/src/app/core/table/column/row-field.component.scss +0 -0
  1018. package/src/app/core/table/column/row-field.component.ts +0 -63
  1019. package/src/app/core/table/entities-async-table-datasource.class.ts +0 -501
  1020. package/src/app/core/table/entities-table-datasource.class.ts +0 -499
  1021. package/src/app/core/table/memory-table.class.ts +0 -56
  1022. package/src/app/core/table/table-select-columns.component.html +0 -56
  1023. package/src/app/core/table/table-select-columns.component.ts +0 -49
  1024. package/src/app/core/table/table.class.ts +0 -2080
  1025. package/src/app/core/table/table.model.ts +0 -39
  1026. package/src/app/core/table/table.module.ts +0 -28
  1027. package/src/app/core/table/table.pipes.ts +0 -87
  1028. package/src/app/core/table/table.utils.ts +0 -42
  1029. package/src/app/core/table/testing/multi-table.testing.html +0 -456
  1030. package/src/app/core/table/testing/multi-table.testing.ts +0 -263
  1031. package/src/app/core/table/testing/table-validator.service.ts +0 -29
  1032. package/src/app/core/table/testing/table.testing.html +0 -556
  1033. package/src/app/core/table/testing/table.testing.module.ts +0 -16
  1034. package/src/app/core/table/testing/table.testing.scss +0 -32
  1035. package/src/app/core/table/testing/table.testing.ts +0 -329
  1036. package/src/app/core/table/testing/table2-validator.service.ts +0 -19
  1037. package/src/app/core/table/testing/table2.testing.html +0 -470
  1038. package/src/app/core/table/testing/table2.testing.scss +0 -25
  1039. package/src/app/core/table/testing/table2.testing.ts +0 -274
  1040. package/src/app/shared/alerts.ts +0 -296
  1041. package/src/app/shared/audio/audio.testing.html +0 -29
  1042. package/src/app/shared/audio/audio.testing.module.ts +0 -21
  1043. package/src/app/shared/audio/audio.testing.ts +0 -27
  1044. package/src/app/shared/audio/audio.ts +0 -273
  1045. package/src/app/shared/base64.utils.ts +0 -66
  1046. package/src/app/shared/capacitor/keyboard.ts +0 -38
  1047. package/src/app/shared/capacitor/plugins.ts +0 -12
  1048. package/src/app/shared/constants.ts +0 -19
  1049. package/src/app/shared/dates.ts +0 -206
  1050. package/src/app/shared/debug/debug-service.class.ts +0 -7
  1051. package/src/app/shared/debug/debug.component.html +0 -13
  1052. package/src/app/shared/debug/debug.component.scss +0 -21
  1053. package/src/app/shared/debug/debug.component.spec.ts +0 -24
  1054. package/src/app/shared/debug/debug.component.ts +0 -25
  1055. package/src/app/shared/debug/debug.module.ts +0 -14
  1056. package/src/app/shared/directives/autofocus.directive.ts +0 -93
  1057. package/src/app/shared/directives/autoresize.directive.ts +0 -67
  1058. package/src/app/shared/directives/autotitle.directive.ts +0 -17
  1059. package/src/app/shared/directives/directives.module.ts +0 -16
  1060. package/src/app/shared/directives/drag-and-drop.directive.ts +0 -46
  1061. package/src/app/shared/directives/ng-var.directive.ts +0 -31
  1062. package/src/app/shared/directives/resizable/resizable.component.ts +0 -48
  1063. package/src/app/shared/directives/resizable/resizable.directive.ts +0 -43
  1064. package/src/app/shared/directives/resizable/resizable.module.ts +0 -9
  1065. package/src/app/shared/directives/resizable/resizable.style.scss +0 -37
  1066. package/src/app/shared/directives/resizable/resizable.template.html +0 -6
  1067. package/src/app/shared/directives/throttled-click.directive.ts +0 -36
  1068. package/src/app/shared/events.ts +0 -93
  1069. package/src/app/shared/file/csv.utils.ts +0 -123
  1070. package/src/app/shared/file/file.service.ts +0 -129
  1071. package/src/app/shared/file/file.utils.ts +0 -142
  1072. package/src/app/shared/file/images.utils.ts +0 -214
  1073. package/src/app/shared/file/json.utils.ts +0 -82
  1074. package/src/app/shared/file/uri.utils.ts +0 -31
  1075. package/src/app/shared/file/url.utils.ts +0 -163
  1076. package/src/app/shared/focusable.ts +0 -8
  1077. package/src/app/shared/form/field.component.html +0 -380
  1078. package/src/app/shared/form/field.component.scss +0 -7
  1079. package/src/app/shared/form/field.component.ts +0 -344
  1080. package/src/app/shared/form/field.model.ts +0 -158
  1081. package/src/app/shared/form/loading-spinner.ts +0 -16
  1082. package/src/app/shared/forms.ts +0 -577
  1083. package/src/app/shared/functions.spec.ts +0 -197
  1084. package/src/app/shared/functions.ts +0 -694
  1085. package/src/app/shared/geolocation/geolocation.utils.ts +0 -105
  1086. package/src/app/shared/gesture/gesture-config.ts +0 -43
  1087. package/src/app/shared/gesture/hammer.utils.ts +0 -14
  1088. package/src/app/shared/graph/colors.utils.ts +0 -69
  1089. package/src/app/shared/graph/graph-colors.ts +0 -270
  1090. package/src/app/shared/guard/component-dirty.guard.ts +0 -67
  1091. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.html +0 -11
  1092. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.scss +0 -37
  1093. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.ts +0 -14
  1094. package/src/app/shared/hotkeys/hotkeys.service.ts +0 -165
  1095. package/src/app/shared/hotkeys/shared-hotkeys.module.ts +0 -15
  1096. package/src/app/shared/http/http.utils.ts +0 -95
  1097. package/src/app/shared/image/gallery/image-gallery.component.html +0 -282
  1098. package/src/app/shared/image/gallery/image-gallery.component.scss +0 -218
  1099. package/src/app/shared/image/gallery/image-gallery.component.ts +0 -434
  1100. package/src/app/shared/image/gallery/image-gallery.module.ts +0 -35
  1101. package/src/app/shared/image/gallery/testing/gallegry.model.testing.ts +0 -23
  1102. package/src/app/shared/image/gallery/testing/gallery.service.testing.ts +0 -99
  1103. package/src/app/shared/image/gallery/testing/gallery.testing.html +0 -27
  1104. package/src/app/shared/image/gallery/testing/gallery.testing.module.ts +0 -39
  1105. package/src/app/shared/image/gallery/testing/gallery.testing.ts +0 -34
  1106. package/src/app/shared/image/image.model.ts +0 -8
  1107. package/src/app/shared/image/image.module.ts +0 -12
  1108. package/src/app/shared/image/image.service.ts +0 -111
  1109. package/src/app/shared/image/image.testing.module.ts +0 -16
  1110. package/src/app/shared/inputs.ts +0 -330
  1111. package/src/app/shared/interceptors/progess.interceptor.ts +0 -24
  1112. package/src/app/shared/logging/log-level.model.ts +0 -53
  1113. package/src/app/shared/logging/logger.model.ts +0 -117
  1114. package/src/app/shared/logging/logging-service.class.ts +0 -131
  1115. package/src/app/shared/logging/logging-service.config.ts +0 -29
  1116. package/src/app/shared/logging/logging-service.module.ts +0 -19
  1117. package/src/app/shared/markdown/markdown.component.html +0 -55
  1118. package/src/app/shared/markdown/markdown.component.scss +0 -75
  1119. package/src/app/shared/markdown/markdown.component.ts +0 -350
  1120. package/src/app/shared/markdown/markdown.directive.ts +0 -28
  1121. package/src/app/shared/markdown/markdown.modal.html +0 -42
  1122. package/src/app/shared/markdown/markdown.modal.ts +0 -91
  1123. package/src/app/shared/markdown/markdown.module.ts +0 -65
  1124. package/src/app/shared/markdown/markdown.service.ts +0 -234
  1125. package/src/app/shared/markdown/markdown.utils.ts +0 -90
  1126. package/src/app/shared/markdown/testing/markdown.test.html +0 -50
  1127. package/src/app/shared/markdown/testing/markdown.test.ts +0 -49
  1128. package/src/app/shared/markdown/testing/markdown.testing.module.ts +0 -22
  1129. package/src/app/shared/material/autocomplete/material.autocomplete.config.ts +0 -127
  1130. package/src/app/shared/material/autocomplete/material.autocomplete.html +0 -400
  1131. package/src/app/shared/material/autocomplete/material.autocomplete.module.ts +0 -41
  1132. package/src/app/shared/material/autocomplete/material.autocomplete.scss +0 -54
  1133. package/src/app/shared/material/autocomplete/material.autocomplete.ts +0 -1375
  1134. package/src/app/shared/material/autocomplete/material.autocomplete.utils.ts +0 -21
  1135. package/src/app/shared/material/autocomplete/testing/autocomplete.test.html +0 -1164
  1136. package/src/app/shared/material/autocomplete/testing/autocomplete.test.spec.ts +0 -33
  1137. package/src/app/shared/material/autocomplete/testing/autocomplete.test.ts +0 -272
  1138. package/src/app/shared/material/badge/badge.directive.ts +0 -217
  1139. package/src/app/shared/material/badge/badge.module.ts +0 -12
  1140. package/src/app/shared/material/badge/badge.test.html +0 -275
  1141. package/src/app/shared/material/badge/badge.test.ts +0 -34
  1142. package/src/app/shared/material/boolean/boolean.module.ts +0 -36
  1143. package/src/app/shared/material/boolean/material.boolean.html +0 -271
  1144. package/src/app/shared/material/boolean/material.boolean.scss +0 -27
  1145. package/src/app/shared/material/boolean/material.boolean.ts +0 -343
  1146. package/src/app/shared/material/boolean/testing/boolean.test.page.html +0 -469
  1147. package/src/app/shared/material/boolean/testing/boolean.test.page.ts +0 -66
  1148. package/src/app/shared/material/chips/chips.module.ts +0 -38
  1149. package/src/app/shared/material/chips/material.chips.html +0 -233
  1150. package/src/app/shared/material/chips/material.chips.scss +0 -67
  1151. package/src/app/shared/material/chips/material.chips.ts +0 -834
  1152. package/src/app/shared/material/chips/testing/chips.test.html +0 -207
  1153. package/src/app/shared/material/chips/testing/chips.test.ts +0 -169
  1154. package/src/app/shared/material/datetime/datetime.module.ts +0 -42
  1155. package/src/app/shared/material/datetime/material.date.html +0 -186
  1156. package/src/app/shared/material/datetime/material.date.scss +0 -17
  1157. package/src/app/shared/material/datetime/material.date.ts +0 -512
  1158. package/src/app/shared/material/datetime/material.dateshort.html +0 -194
  1159. package/src/app/shared/material/datetime/material.dateshort.scss +0 -23
  1160. package/src/app/shared/material/datetime/material.dateshort.ts +0 -497
  1161. package/src/app/shared/material/datetime/material.datetime.html +0 -325
  1162. package/src/app/shared/material/datetime/material.datetime.scss +0 -87
  1163. package/src/app/shared/material/datetime/material.datetime.ts +0 -758
  1164. package/src/app/shared/material/datetime/testing/mat-date-time.test.html +0 -794
  1165. package/src/app/shared/material/datetime/testing/mat-date-time.test.ts +0 -155
  1166. package/src/app/shared/material/datetime/testing/mat-date.test.html +0 -564
  1167. package/src/app/shared/material/datetime/testing/mat-date.test.ts +0 -145
  1168. package/src/app/shared/material/datetime/testing/mat-dateshort.test.html +0 -530
  1169. package/src/app/shared/material/datetime/testing/mat-dateshort.test.ts +0 -133
  1170. package/src/app/shared/material/duration/duration.module.ts +0 -33
  1171. package/src/app/shared/material/duration/duration.utils.ts +0 -18
  1172. package/src/app/shared/material/duration/material.duration.html +0 -116
  1173. package/src/app/shared/material/duration/material.duration.scss +0 -28
  1174. package/src/app/shared/material/duration/material.duration.ts +0 -308
  1175. package/src/app/shared/material/duration/testing/mat-duration.test.html +0 -170
  1176. package/src/app/shared/material/duration/testing/mat-duration.test.ts +0 -88
  1177. package/src/app/shared/material/latlong/latlong.utils.ts +0 -376
  1178. package/src/app/shared/material/latlong/material.latlong-input.html +0 -95
  1179. package/src/app/shared/material/latlong/material.latlong-input.scss +0 -66
  1180. package/src/app/shared/material/latlong/material.latlong-input.ts +0 -445
  1181. package/src/app/shared/material/latlong/material.latlong.html +0 -90
  1182. package/src/app/shared/material/latlong/material.latlong.module.ts +0 -37
  1183. package/src/app/shared/material/latlong/material.latlong.scss +0 -0
  1184. package/src/app/shared/material/latlong/material.latlong.ts +0 -203
  1185. package/src/app/shared/material/latlong/testing/latlong.test.html +0 -1008
  1186. package/src/app/shared/material/latlong/testing/latlong.test.ts +0 -144
  1187. package/src/app/shared/material/material.animations.ts +0 -269
  1188. package/src/app/shared/material/material.config.ts +0 -5
  1189. package/src/app/shared/material/material.module.ts +0 -94
  1190. package/src/app/shared/material/material.testing.module.ts +0 -192
  1191. package/src/app/shared/material/memory/memory.utils.ts +0 -57
  1192. package/src/app/shared/material/numpad/numpad.animation.ts +0 -1
  1193. package/src/app/shared/material/numpad/numpad.append-to-input.directive.ts +0 -110
  1194. package/src/app/shared/material/numpad/numpad.component.ts +0 -73
  1195. package/src/app/shared/material/numpad/numpad.container.html +0 -37
  1196. package/src/app/shared/material/numpad/numpad.container.scss +0 -55
  1197. package/src/app/shared/material/numpad/numpad.container.ts +0 -152
  1198. package/src/app/shared/material/numpad/numpad.content.html +0 -13
  1199. package/src/app/shared/material/numpad/numpad.content.ts +0 -10
  1200. package/src/app/shared/material/numpad/numpad.directive.ts +0 -159
  1201. package/src/app/shared/material/numpad/numpad.dom-service.ts +0 -35
  1202. package/src/app/shared/material/numpad/numpad.model.ts +0 -53
  1203. package/src/app/shared/material/numpad/numpad.module.ts +0 -18
  1204. package/src/app/shared/material/numpad/testing/numpad.test.html +0 -146
  1205. package/src/app/shared/material/numpad/testing/numpad.test.ts +0 -44
  1206. package/src/app/shared/material/paginator/material.paginator-i18n.ts +0 -47
  1207. package/src/app/shared/material/stepper/material.stepper-i18n.ts +0 -17
  1208. package/src/app/shared/material/swipe/material.swipe.html +0 -85
  1209. package/src/app/shared/material/swipe/material.swipe.scss +0 -55
  1210. package/src/app/shared/material/swipe/material.swipe.ts +0 -366
  1211. package/src/app/shared/material/swipe/swipe.module.ts +0 -29
  1212. package/src/app/shared/material/swipe/testing/swipe.test.html +0 -112
  1213. package/src/app/shared/material/swipe/testing/swipe.test.ts +0 -74
  1214. package/src/app/shared/material/test/test-component.css +0 -22
  1215. package/src/app/shared/material/test/test-component.html +0 -40
  1216. package/src/app/shared/material/test/test-component.ts +0 -295
  1217. package/src/app/shared/material/testing/common.test.html +0 -227
  1218. package/src/app/shared/material/testing/common.test.ts +0 -126
  1219. package/src/app/shared/material/text/testing/text-form.testing.html +0 -213
  1220. package/src/app/shared/material/text/testing/text-form.testing.ts +0 -30
  1221. package/src/app/shared/material/text/text-form.component.html +0 -63
  1222. package/src/app/shared/material/text/text-form.component.scss +0 -8
  1223. package/src/app/shared/material/text/text-form.component.ts +0 -177
  1224. package/src/app/shared/material/text/text-form.module.ts +0 -36
  1225. package/src/app/shared/modules.ts +0 -12
  1226. package/src/app/shared/named-filter/named-filter-selector.component.html +0 -77
  1227. package/src/app/shared/named-filter/named-filter-selector.component.scss +0 -3
  1228. package/src/app/shared/named-filter/named-filter-selector.component.ts +0 -287
  1229. package/src/app/shared/named-filter/named-filter.model.ts +0 -64
  1230. package/src/app/shared/named-filter/named-filter.module.ts +0 -15
  1231. package/src/app/shared/named-filter/named-filter.service.ts +0 -100
  1232. package/src/app/shared/named-filter/testing/named-filter-selector.testing.html +0 -61
  1233. package/src/app/shared/named-filter/testing/named-filter-selector.testing.ts +0 -80
  1234. package/src/app/shared/named-filter/testing/named-filter.testing.module.ts +0 -20
  1235. package/src/app/shared/named-filter/testing/named-filter.testing.service.ts +0 -83
  1236. package/src/app/shared/observables.ts +0 -139
  1237. package/src/app/shared/pipes/arrays.pipe.ts +0 -153
  1238. package/src/app/shared/pipes/badge.pipes.ts +0 -17
  1239. package/src/app/shared/pipes/colors.pipe.ts +0 -24
  1240. package/src/app/shared/pipes/date-diff-duration.pipe.ts +0 -53
  1241. package/src/app/shared/pipes/date-format.pipe.ts +0 -73
  1242. package/src/app/shared/pipes/date-from-now.pipe.ts +0 -17
  1243. package/src/app/shared/pipes/dates.pipe.ts +0 -13
  1244. package/src/app/shared/pipes/display-with.pipe.ts +0 -13
  1245. package/src/app/shared/pipes/duration.pipe.spec.ts +0 -41
  1246. package/src/app/shared/pipes/duration.pipe.ts +0 -28
  1247. package/src/app/shared/pipes/file-size.pipe.ts +0 -50
  1248. package/src/app/shared/pipes/form.pipes.ts +0 -209
  1249. package/src/app/shared/pipes/highlight.pipe.ts +0 -41
  1250. package/src/app/shared/pipes/html.pipes.ts +0 -49
  1251. package/src/app/shared/pipes/latlong-format.pipe.ts +0 -28
  1252. package/src/app/shared/pipes/maps.pipe.ts +0 -41
  1253. package/src/app/shared/pipes/maskito.pipe.ts +0 -68
  1254. package/src/app/shared/pipes/math.pipes.ts +0 -46
  1255. package/src/app/shared/pipes/ng-init.pipe.ts +0 -13
  1256. package/src/app/shared/pipes/number-format.pipe.ts +0 -11
  1257. package/src/app/shared/pipes/observable.pipes.ts +0 -45
  1258. package/src/app/shared/pipes/pipes.module.ts +0 -162
  1259. package/src/app/shared/pipes/property.pipes.ts +0 -115
  1260. package/src/app/shared/pipes/selection.pipes.ts +0 -165
  1261. package/src/app/shared/pipes/string.pipes.ts +0 -128
  1262. package/src/app/shared/pipes/translate-context.pipe.ts +0 -27
  1263. package/src/app/shared/pipes/types.pipes.ts +0 -52
  1264. package/src/app/shared/pipes/url.pipes.ts +0 -36
  1265. package/src/app/shared/platforms.ts +0 -99
  1266. package/src/app/shared/print/print.service.ts +0 -337
  1267. package/src/app/shared/regexps.ts +0 -112
  1268. package/src/app/shared/rx-state/rx-state.decorators.ts +0 -281
  1269. package/src/app/shared/rx-state/rx-state.module.ts +0 -11
  1270. package/src/app/shared/rx-state/rx-state.types.ts +0 -5
  1271. package/src/app/shared/services/entity-service.class.ts +0 -120
  1272. package/src/app/shared/services/job.utils.ts +0 -124
  1273. package/src/app/shared/services/memory-entity-service.class.ts +0 -435
  1274. package/src/app/shared/services/progress-bar.service.ts +0 -40
  1275. package/src/app/shared/services/startable-observable-service.class.ts +0 -129
  1276. package/src/app/shared/services/startable-service.class.ts +0 -120
  1277. package/src/app/shared/services/storage.utils.ts +0 -53
  1278. package/src/app/shared/services/translate-context.service.ts +0 -112
  1279. package/src/app/shared/services/validator-service.class.ts +0 -13
  1280. package/src/app/shared/services.ts +0 -134
  1281. package/src/app/shared/shared-routing.module.ts +0 -69
  1282. package/src/app/shared/shared.module.spec.ts +0 -13
  1283. package/src/app/shared/shared.module.ts +0 -168
  1284. package/src/app/shared/shared.testing.module.ts +0 -61
  1285. package/src/app/shared/storage/storage-explorer.component.html +0 -160
  1286. package/src/app/shared/storage/storage-explorer.component.scss +0 -37
  1287. package/src/app/shared/storage/storage-explorer.component.spec.ts +0 -24
  1288. package/src/app/shared/storage/storage-explorer.component.ts +0 -268
  1289. package/src/app/shared/storage/storage-explorer.module.ts +0 -24
  1290. package/src/app/shared/storage/storage-explorer.testing-routing.module.ts +0 -19
  1291. package/src/app/shared/storage/storage-explorer.testing.module.ts +0 -19
  1292. package/src/app/shared/storage/storage.service.ts +0 -131
  1293. package/src/app/shared/storage/storage.utils.ts +0 -25
  1294. package/src/app/shared/testing/maskito.test.html +0 -40
  1295. package/src/app/shared/testing/maskito.test.ts +0 -33
  1296. package/src/app/shared/testing/observable.test.html +0 -53
  1297. package/src/app/shared/testing/observable.test.scss +0 -3
  1298. package/src/app/shared/testing/observable.test.ts +0 -101
  1299. package/src/app/shared/testing/tests.page.html +0 -22
  1300. package/src/app/shared/testing/tests.page.ts +0 -32
  1301. package/src/app/shared/toast/toast.testing.html +0 -50
  1302. package/src/app/shared/toast/toast.testing.module.ts +0 -22
  1303. package/src/app/shared/toast/toast.testing.ts +0 -52
  1304. package/src/app/shared/toast/toasts.ts +0 -161
  1305. package/src/app/shared/toolbar/modal-toolbar.html +0 -30
  1306. package/src/app/shared/toolbar/modal-toolbar.scss +0 -0
  1307. package/src/app/shared/toolbar/modal-toolbar.ts +0 -64
  1308. package/src/app/shared/toolbar/toolbar.html +0 -68
  1309. package/src/app/shared/toolbar/toolbar.module.ts +0 -18
  1310. package/src/app/shared/toolbar/toolbar.scss +0 -0
  1311. package/src/app/shared/toolbar/toolbar.ts +0 -262
  1312. package/src/app/shared/types.ts +0 -44
  1313. package/src/app/shared/upload-file/testing/upload-file.testing.html +0 -30
  1314. package/src/app/shared/upload-file/testing/upload-file.testing.module.ts +0 -21
  1315. package/src/app/shared/upload-file/testing/upload-file.testing.ts +0 -65
  1316. package/src/app/shared/upload-file/upload-file-popover.component.html +0 -46
  1317. package/src/app/shared/upload-file/upload-file-popover.component.scss +0 -6
  1318. package/src/app/shared/upload-file/upload-file-popover.component.ts +0 -115
  1319. package/src/app/shared/upload-file/upload-file.component.html +0 -57
  1320. package/src/app/shared/upload-file/upload-file.component.scss +0 -60
  1321. package/src/app/shared/upload-file/upload-file.component.ts +0 -222
  1322. package/src/app/shared/upload-file/upload-file.model.ts +0 -40
  1323. package/src/app/shared/validator/form-error-adapter.class.ts +0 -136
  1324. package/src/app/shared/validator/validators.ts +0 -725
  1325. package/src/app/shared/version/versions.ts +0 -89
  1326. package/src/app/social/job/job.module.ts +0 -14
  1327. package/src/app/social/job/progression/job-progression.component.html +0 -19
  1328. package/src/app/social/job/progression/job-progression.component.scss +0 -15
  1329. package/src/app/social/job/progression/job-progression.component.ts +0 -39
  1330. package/src/app/social/job/progression/job-progression.icon.html +0 -30
  1331. package/src/app/social/job/progression/job-progression.icon.scss +0 -7
  1332. package/src/app/social/job/progression/job-progression.icon.ts +0 -276
  1333. package/src/app/social/job/progression/job-progression.list.html +0 -25
  1334. package/src/app/social/job/progression/job-progression.list.scss +0 -17
  1335. package/src/app/social/job/progression/job-progression.list.ts +0 -40
  1336. package/src/app/social/job/progression/job-progression.model.ts +0 -26
  1337. package/src/app/social/job/progression/job-progression.service.ts +0 -97
  1338. package/src/app/social/job/testing/job-progression.testing.html +0 -11
  1339. package/src/app/social/job/testing/job-progression.testing.service.ts +0 -33
  1340. package/src/app/social/job/testing/job-progression.testing.ts +0 -28
  1341. package/src/app/social/job/testing/job.testing.module.ts +0 -13
  1342. package/src/app/social/message/message.form.html +0 -71
  1343. package/src/app/social/message/message.form.scss +0 -6
  1344. package/src/app/social/message/message.form.ts +0 -128
  1345. package/src/app/social/message/message.modal.html +0 -68
  1346. package/src/app/social/message/message.modal.ts +0 -117
  1347. package/src/app/social/message/message.model.ts +0 -78
  1348. package/src/app/social/message/message.module.ts +0 -14
  1349. package/src/app/social/message/message.service.ts +0 -104
  1350. package/src/app/social/social.errors.ts +0 -10
  1351. package/src/app/social/social.module.ts +0 -23
  1352. package/src/app/social/social.testing.module.ts +0 -33
  1353. package/src/app/social/user-event/notification/user-event-notification.icon.html +0 -17
  1354. package/src/app/social/user-event/notification/user-event-notification.icon.ts +0 -112
  1355. package/src/app/social/user-event/notification/user-event-notification.list.html +0 -142
  1356. package/src/app/social/user-event/notification/user-event-notification.list.scss +0 -73
  1357. package/src/app/social/user-event/notification/user-event-notification.list.ts +0 -270
  1358. package/src/app/social/user-event/testing/user-event.testing.html +0 -26
  1359. package/src/app/social/user-event/testing/user-event.testing.model.ts +0 -142
  1360. package/src/app/social/user-event/testing/user-event.testing.module.ts +0 -13
  1361. package/src/app/social/user-event/testing/user-event.testing.service.ts +0 -161
  1362. package/src/app/social/user-event/testing/user-event.testing.ts +0 -282
  1363. package/src/app/social/user-event/user-event.model.ts +0 -55
  1364. package/src/app/social/user-event/user-event.module.ts +0 -15
  1365. package/src/app/social/user-event/user-event.service.ts +0 -686
  1366. package/src/browserslist +0 -9
  1367. package/src/environments/environment.class.ts +0 -106
  1368. package/src/environments/environment.loader.ts +0 -90
  1369. package/src/environments/environment.prod.ts +0 -49
  1370. package/src/environments/environment.test.ts +0 -92
  1371. package/src/environments/environment.ts +0 -126
  1372. package/src/favicon.ico +0 -0
  1373. package/src/global.scss +0 -13
  1374. package/src/index.html +0 -76
  1375. package/src/main.ts +0 -18
  1376. package/src/polyfills.ts +0 -34
  1377. package/src/schema.graphql +0 -4381
  1378. package/src/service-worker.js +0 -31
  1379. package/src/test.ts +0 -30
  1380. package/tsconfig.app.json +0 -15
  1381. package/tsconfig.json +0 -47
  1382. package/tsconfig.spec.json +0 -18
@@ -0,0 +1,30 @@
1
+ import { booleanAttribute, Directive, ElementRef, Inject, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AutoTitleDirective {
4
+ elementRef;
5
+ appAutoTitle = true;
6
+ constructor(elementRef) {
7
+ this.elementRef = elementRef;
8
+ }
9
+ ngAfterContentChecked() {
10
+ // Update title if different
11
+ if (this.elementRef.nativeElement && this.elementRef.nativeElement.title !== this.elementRef.nativeElement.textContent) {
12
+ this.elementRef.nativeElement.title = this.elementRef.nativeElement.textContent;
13
+ }
14
+ }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoTitleDirective, deps: [{ token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.13", type: AutoTitleDirective, selector: "ion-label[appAutoTitle], mat-label[appAutoTitle]", inputs: { appAutoTitle: ["appAutoTitle", "appAutoTitle", booleanAttribute] }, ngImport: i0 });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoTitleDirective, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: 'ion-label[appAutoTitle], mat-label[appAutoTitle]',
22
+ }]
23
+ }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
24
+ type: Inject,
25
+ args: [ElementRef]
26
+ }] }], propDecorators: { appAutoTitle: [{
27
+ type: Input,
28
+ args: [{ transform: booleanAttribute }]
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b3RpdGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvYXV0b3RpdGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLNUcsTUFBTSxPQUFPLGtCQUFrQjtJQUdvQjtJQUZULFlBQVksR0FBRyxJQUFJLENBQUM7SUFFNUQsWUFBaUQsVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7SUFBRyxDQUFDO0lBRXhGLHFCQUFxQjtRQUNuQiw0QkFBNEI7UUFDNUIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUNsRixDQUFDO0lBQ0gsQ0FBQzt3R0FWVSxrQkFBa0Isa0JBR1QsVUFBVTs0RkFIbkIsa0JBQWtCLHlIQUNULGdCQUFnQjs7NEZBRHpCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0RBQWtEO2lCQUM3RDs7MEJBSWMsTUFBTTsyQkFBQyxVQUFVO3lDQUZVLFlBQVk7c0JBQW5ELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBib29sZWFuQXR0cmlidXRlLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW9uLWxhYmVsW2FwcEF1dG9UaXRsZV0sIG1hdC1sYWJlbFthcHBBdXRvVGl0bGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b1RpdGxlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhcHBBdXRvVGl0bGUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge31cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgLy8gVXBkYXRlIHRpdGxlIGlmIGRpZmZlcmVudFxuICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCAmJiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50aXRsZSAhPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRpdGxlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IonicModule } from '@ionic/angular';
4
+ import { AutofocusDirective } from './autofocus.directive';
5
+ import { NgVarDirective } from './ng-var.directive';
6
+ import { DragAndDropDirective } from './drag-and-drop.directive';
7
+ import { AutoTitleDirective } from './autotitle.directive';
8
+ import { ThrottledClickDirective } from './throttled-click.directive';
9
+ import { AutoResizeDirective } from './autoresize.directive';
10
+ import * as i0 from "@angular/core";
11
+ export class SharedDirectivesModule {
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SharedDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SharedDirectivesModule, declarations: [AutofocusDirective, NgVarDirective, DragAndDropDirective, AutoTitleDirective, ThrottledClickDirective, AutoResizeDirective], imports: [CommonModule, IonicModule], exports: [AutofocusDirective, NgVarDirective, DragAndDropDirective, AutoTitleDirective, ThrottledClickDirective, AutoResizeDirective] });
14
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SharedDirectivesModule, imports: [CommonModule, IonicModule] });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SharedDirectivesModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ imports: [CommonModule, IonicModule],
20
+ declarations: [AutofocusDirective, NgVarDirective, DragAndDropDirective, AutoTitleDirective, ThrottledClickDirective, AutoResizeDirective],
21
+ exports: [AutofocusDirective, NgVarDirective, DragAndDropDirective, AutoTitleDirective, ThrottledClickDirective, AutoResizeDirective],
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBTzdELE1BQU0sT0FBTyxzQkFBc0I7d0dBQXRCLHNCQUFzQjt5R0FBdEIsc0JBQXNCLGlCQUhsQixrQkFBa0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLGFBRC9ILFlBQVksRUFBRSxXQUFXLGFBRXpCLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUI7eUdBRXpILHNCQUFzQixZQUp2QixZQUFZLEVBQUUsV0FBVzs7NEZBSXhCLHNCQUFzQjtrQkFMbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNwQyxZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUM7b0JBQzFJLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsQ0FBQztpQkFDdEkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9hdXRvZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5nVmFyRGlyZWN0aXZlIH0gZnJvbSAnLi9uZy12YXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyYWdBbmREcm9wRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmFnLWFuZC1kcm9wLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBdXRvVGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuL2F1dG90aXRsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGhyb3R0bGVkQ2xpY2tEaXJlY3RpdmUgfSBmcm9tICcuL3Rocm90dGxlZC1jbGljay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXV0b1Jlc2l6ZURpcmVjdGl2ZSB9IGZyb20gJy4vYXV0b3Jlc2l6ZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25pY01vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW0F1dG9mb2N1c0RpcmVjdGl2ZSwgTmdWYXJEaXJlY3RpdmUsIERyYWdBbmREcm9wRGlyZWN0aXZlLCBBdXRvVGl0bGVEaXJlY3RpdmUsIFRocm90dGxlZENsaWNrRGlyZWN0aXZlLCBBdXRvUmVzaXplRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0F1dG9mb2N1c0RpcmVjdGl2ZSwgTmdWYXJEaXJlY3RpdmUsIERyYWdBbmREcm9wRGlyZWN0aXZlLCBBdXRvVGl0bGVEaXJlY3RpdmUsIFRocm90dGxlZENsaWNrRGlyZWN0aXZlLCBBdXRvUmVzaXplRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkRGlyZWN0aXZlc01vZHVsZSB7fVxuIl19
@@ -0,0 +1,52 @@
1
+ import { Directive, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';
2
+ import { isNotEmptyArray } from '../functions';
3
+ import * as i0 from "@angular/core";
4
+ export class DragAndDropDirective {
5
+ fileOver;
6
+ fileDropped = new EventEmitter();
7
+ // Dragover listener
8
+ onDragOver(event) {
9
+ event.preventDefault();
10
+ event.stopPropagation();
11
+ this.fileOver = true;
12
+ }
13
+ // Dragleave listener
14
+ onDragLeave(event) {
15
+ event.preventDefault();
16
+ event.stopPropagation();
17
+ this.fileOver = false;
18
+ }
19
+ // Drop listener
20
+ ondrop(event) {
21
+ event.preventDefault();
22
+ event.stopPropagation();
23
+ this.fileOver = false;
24
+ const files = event.dataTransfer?.files;
25
+ if (isNotEmptyArray(files)) {
26
+ this.fileDropped.emit(files);
27
+ }
28
+ }
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragAndDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
30
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DragAndDropDirective, selector: "[appDragAndDrop]", outputs: { fileDropped: "fileDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "ondrop($event)" }, properties: { "class.fileover": "this.fileOver" } }, ngImport: i0 });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragAndDropDirective, decorators: [{
33
+ type: Directive,
34
+ args: [{
35
+ selector: '[appDragAndDrop]',
36
+ }]
37
+ }], propDecorators: { fileOver: [{
38
+ type: HostBinding,
39
+ args: ['class.fileover']
40
+ }], fileDropped: [{
41
+ type: Output
42
+ }], onDragOver: [{
43
+ type: HostListener,
44
+ args: ['dragover', ['$event']]
45
+ }], onDragLeave: [{
46
+ type: HostListener,
47
+ args: ['dragleave', ['$event']]
48
+ }], ondrop: [{
49
+ type: HostListener,
50
+ args: ['drop', ['$event']]
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL2RyYWctYW5kLWRyb3AuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBVy9DLE1BQU0sT0FBTyxvQkFBb0I7SUFDQSxRQUFRLENBQVU7SUFFdkMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFbkQsb0JBQW9CO0lBRXBCLFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELHFCQUFxQjtJQUVkLFdBQVcsQ0FBQyxLQUFZO1FBQzdCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQjtJQUVULE1BQU0sQ0FBQyxLQUFnQjtRQUM1QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDO1FBRXhDLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7d0dBaENVLG9CQUFvQjs0RkFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCOzhCQUVnQyxRQUFRO3NCQUF0QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFFbkIsV0FBVztzQkFBcEIsTUFBTTtnQkFJUCxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVM3QixXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTOUIsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzTm90RW1wdHlBcnJheSB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbmludGVyZmFjZSBEcm9wRXZlbnQgZXh0ZW5kcyBFdmVudCB7XG4gIGRhdGFUcmFuc2Zlcj86IHtcbiAgICBmaWxlcz86IEZpbGVbXTtcbiAgfTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FwcERyYWdBbmREcm9wXScsXG59KVxuZXhwb3J0IGNsYXNzIERyYWdBbmREcm9wRGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5maWxlb3ZlcicpIGZpbGVPdmVyOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBmaWxlRHJvcHBlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVtdPigpO1xuXG4gIC8vIERyYWdvdmVyIGxpc3RlbmVyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgb25EcmFnT3ZlcihldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZmlsZU92ZXIgPSB0cnVlO1xuICB9XG5cbiAgLy8gRHJhZ2xlYXZlIGxpc3RlbmVyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyYWdMZWF2ZShldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcbiAgfVxuXG4gIC8vIERyb3AgbGlzdGVuZXJcbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbmRyb3AoZXZlbnQ6IERyb3BFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5maWxlT3ZlciA9IGZhbHNlO1xuICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcztcblxuICAgIGlmIChpc05vdEVtcHR5QXJyYXkoZmlsZXMpKSB7XG4gICAgICB0aGlzLmZpbGVEcm9wcGVkLmVtaXQoZmlsZXMpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,33 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class NgVarDirective {
4
+ templateRef;
5
+ vcRef;
6
+ set ngVar(context) {
7
+ this.context.$implicit = this.context.ngVar = context;
8
+ if (!this.hasView) {
9
+ this.vcRef.createEmbeddedView(this.templateRef, this.context);
10
+ this.hasView = true;
11
+ }
12
+ }
13
+ context = {
14
+ $implicit: null,
15
+ ngVar: null,
16
+ };
17
+ hasView = false;
18
+ constructor(templateRef, vcRef) {
19
+ this.templateRef = templateRef;
20
+ this.vcRef = vcRef;
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgVarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
23
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NgVarDirective, selector: "[ngVar]", inputs: { ngVar: "ngVar" }, ngImport: i0 });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgVarDirective, decorators: [{
26
+ type: Directive,
27
+ args: [{
28
+ selector: '[ngVar]',
29
+ }]
30
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { ngVar: [{
31
+ type: Input
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvbmctdmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUMsTUFBTSxlQUFlLENBQUM7O0FBS2hGLE1BQU0sT0FBTyxjQUFjO0lBc0JmO0lBQ0E7SUF0QlYsSUFDSSxLQUFLLENBQUMsT0FBZ0I7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBRXRELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLE9BQU8sR0FHWDtRQUNGLFNBQVMsRUFBRSxJQUFJO1FBQ2YsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDO0lBRU0sT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV4QixZQUNVLFdBQTZCLEVBQzdCLEtBQXVCO1FBRHZCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFrQjtJQUM5QixDQUFDO3dHQXhCTyxjQUFjOzRGQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBSDFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7aUJBQ3BCOytHQUdLLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ1Zhcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ1ZhckRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpXG4gIHNldCBuZ1Zhcihjb250ZXh0OiB1bmtub3duKSB7XG4gICAgdGhpcy5jb250ZXh0LiRpbXBsaWNpdCA9IHRoaXMuY29udGV4dC5uZ1ZhciA9IGNvbnRleHQ7XG5cbiAgICBpZiAoIXRoaXMuaGFzVmlldykge1xuICAgICAgdGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5jb250ZXh0KTtcbiAgICAgIHRoaXMuaGFzVmlldyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb250ZXh0OiB7XG4gICAgJGltcGxpY2l0OiB1bmtub3duO1xuICAgIG5nVmFyOiB1bmtub3duO1xuICB9ID0ge1xuICAgICRpbXBsaWNpdDogbnVsbCxcbiAgICBuZ1ZhcjogbnVsbCxcbiAgfTtcblxuICBwcml2YXRlIGhhc1ZpZXcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxufVxuIl19
@@ -0,0 +1,62 @@
1
+ import { Component, EventEmitter, HostBinding, Input, Optional, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/table";
4
+ import * as i2 from "./resizable.directive";
5
+ export class ResizableComponent {
6
+ columnDef;
7
+ resizable;
8
+ sizeChanged = new EventEmitter();
9
+ width = null;
10
+ minWidth = null;
11
+ maxWidth = null;
12
+ debug = false;
13
+ constructor(columnDef) {
14
+ this.columnDef = columnDef;
15
+ }
16
+ onResize(width, opts) {
17
+ if (!this.resizable)
18
+ return;
19
+ if (this.debug)
20
+ console.info(`resize:${width}`);
21
+ this.width = width + 'px';
22
+ this.minWidth = width + 'px';
23
+ this.maxWidth = width + 'px';
24
+ if (!opts || opts.emitEvent) {
25
+ this.sizeChanged.emit(width);
26
+ }
27
+ }
28
+ onFit(opts) {
29
+ if (!this.resizable)
30
+ return;
31
+ if (this.debug)
32
+ console.info('fit');
33
+ this.width = 'auto';
34
+ this.minWidth = null;
35
+ this.maxWidth = null;
36
+ if (!opts || opts.emitEvent) {
37
+ this.sizeChanged.emit(undefined);
38
+ }
39
+ }
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResizableComponent, deps: [{ token: i1.MatColumnDef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResizableComponent, selector: "th[resizable]", inputs: { resizable: "resizable" }, outputs: { sizeChanged: "sizeChanged" }, host: { properties: { "style.width": "this.width", "style.min-width": "this.minWidth", "style.max-width": "this.maxWidth" } }, ngImport: i0, template: "<div class=\"wrapper\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n <div class=\"bar\" [class.cdk-visually-hidden]=\"!resizable\" (resizable)=\"onResize($event)\" (fit)=\"onFit()\"></div>\n</div>\n", styles: [":host:last-child .bar{display:none}.wrapper{display:flex;justify-content:flex-end;align-items:center}.content{flex:1}.bar{height:var(--app-table-header-height, 55px);width:10px;justify-self:flex-end;border-left:4px solid transparent;border-right:4px solid transparent;background:var(--ion-color-secondary);background-clip:content-box;cursor:ew-resize;opacity:0;transition:opacity .3s}.bar:hover,.bar:active{opacity:1}:host-context(.mat-table-sticky) .bar{width:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.ResizableDirective, selector: "[resizable]", outputs: ["resizable", "fit"] }] });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResizableComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'th[resizable]', template: "<div class=\"wrapper\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n <div class=\"bar\" [class.cdk-visually-hidden]=\"!resizable\" (resizable)=\"onResize($event)\" (fit)=\"onFit()\"></div>\n</div>\n", styles: [":host:last-child .bar{display:none}.wrapper{display:flex;justify-content:flex-end;align-items:center}.content{flex:1}.bar{height:var(--app-table-header-height, 55px);width:10px;justify-self:flex-end;border-left:4px solid transparent;border-right:4px solid transparent;background:var(--ion-color-secondary);background-clip:content-box;cursor:ew-resize;opacity:0;transition:opacity .3s}.bar:hover,.bar:active{opacity:1}:host-context(.mat-table-sticky) .bar{width:12px!important}\n"] }]
46
+ }], ctorParameters: () => [{ type: i1.MatColumnDef, decorators: [{
47
+ type: Optional
48
+ }] }], propDecorators: { resizable: [{
49
+ type: Input
50
+ }], sizeChanged: [{
51
+ type: Output
52
+ }], width: [{
53
+ type: HostBinding,
54
+ args: ['style.width']
55
+ }], minWidth: [{
56
+ type: HostBinding,
57
+ args: ['style.min-width']
58
+ }], maxWidth: [{
59
+ type: HostBinding,
60
+ args: ['style.max-width']
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL3Jlc2l6YWJsZS9yZXNpemFibGUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTOUYsTUFBTSxPQUFPLGtCQUFrQjtJQWVXO0lBZC9CLFNBQVMsQ0FBVTtJQUNsQixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUduRCxLQUFLLEdBQWtCLElBQUksQ0FBQztJQUc1QixRQUFRLEdBQWtCLElBQUksQ0FBQztJQUcvQixRQUFRLEdBQWtCLElBQUksQ0FBQztJQUV2QixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRXRCLFlBQXdDLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBRyxDQUFDO0lBRW5FLFFBQVEsQ0FBQyxLQUFhLEVBQUUsSUFBNkI7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBNkI7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQzt3R0FyQ1Usa0JBQWtCOzRGQUFsQixrQkFBa0IsaVFDVC9CLGtPQU1BOzs0RkRHYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBRUUsZUFBZTs7MEJBbUJaLFFBQVE7eUNBZFosU0FBUztzQkFBakIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdQLEtBQUs7c0JBREosV0FBVzt1QkFBQyxhQUFhO2dCQUkxQixRQUFRO3NCQURQLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUk5QixRQUFRO3NCQURQLFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q29sdW1uRGVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0aFtyZXNpemFibGVdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc2l6YWJsZS50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzaXphYmxlLnN0eWxlLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcmVzaXphYmxlOiBib29sZWFuO1xuICBAT3V0cHV0KCkgc2l6ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJylcbiAgd2lkdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoJylcbiAgbWluV2lkdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWF4LXdpZHRoJylcbiAgbWF4V2lkdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZGVidWcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGVmOiBNYXRDb2x1bW5EZWYpIHt9XG5cbiAgb25SZXNpemUod2lkdGg6IG51bWJlciwgb3B0cz86IHsgZW1pdEV2ZW50OiBib29sZWFuIH0pIHtcbiAgICBpZiAoIXRoaXMucmVzaXphYmxlKSByZXR1cm47XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuaW5mbyhgcmVzaXplOiR7d2lkdGh9YCk7XG4gICAgdGhpcy53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgICB0aGlzLm1pbldpZHRoID0gd2lkdGggKyAncHgnO1xuICAgIHRoaXMubWF4V2lkdGggPSB3aWR0aCArICdweCc7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50KSB7XG4gICAgICB0aGlzLnNpemVDaGFuZ2VkLmVtaXQod2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRml0KG9wdHM/OiB7IGVtaXRFdmVudDogYm9vbGVhbiB9KSB7XG4gICAgaWYgKCF0aGlzLnJlc2l6YWJsZSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmluZm8oJ2ZpdCcpO1xuICAgIHRoaXMud2lkdGggPSAnYXV0byc7XG4gICAgdGhpcy5taW5XaWR0aCA9IG51bGw7XG4gICAgdGhpcy5tYXhXaWR0aCA9IG51bGw7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50KSB7XG4gICAgICB0aGlzLnNpemVDaGFuZ2VkLmVtaXQodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJhclwiIFtjbGFzcy5jZGstdmlzdWFsbHktaGlkZGVuXT1cIiFyZXNpemFibGVcIiAocmVzaXphYmxlKT1cIm9uUmVzaXplKCRldmVudClcIiAoZml0KT1cIm9uRml0KClcIj48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,45 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Directive, ElementRef, Inject, Output } from '@angular/core';
3
+ import { bufferWhen, distinctUntilChanged, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';
4
+ import { fromEvent, interval } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export class ResizableDirective {
7
+ document;
8
+ elementRef;
9
+ resizable;
10
+ // fit: doubleclick
11
+ fit;
12
+ constructor(document, elementRef) {
13
+ this.document = document;
14
+ this.elementRef = elementRef;
15
+ // resize: mousedown -> mousemove -> mouseup
16
+ this.resizable = fromEvent(this.elementRef.nativeElement, 'mousedown').pipe(tap((e) => {
17
+ e.preventDefault();
18
+ e.stopPropagation();
19
+ }), switchMap(() => {
20
+ const { width, right } = this.elementRef.nativeElement.closest('th').getBoundingClientRect();
21
+ return fromEvent(this.document, 'mousemove').pipe(map(({ clientX }) => width + clientX - right), distinctUntilChanged(), takeUntil(fromEvent(this.document, 'mouseup')));
22
+ }));
23
+ // fit: doubleclick
24
+ this.fit = fromEvent(this.elementRef.nativeElement, 'click').pipe(bufferWhen(() => interval(500)), filter((ar) => ar.length === 2));
25
+ }
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResizableDirective, deps: [{ token: DOCUMENT }, { token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
27
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ResizableDirective, selector: "[resizable]", outputs: { resizable: "resizable", fit: "fit" }, ngImport: i0 });
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResizableDirective, decorators: [{
30
+ type: Directive,
31
+ args: [{
32
+ selector: '[resizable]',
33
+ }]
34
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
35
+ type: Inject,
36
+ args: [DOCUMENT]
37
+ }] }, { type: i0.ElementRef, decorators: [{
38
+ type: Inject,
39
+ args: [ElementRef]
40
+ }] }], propDecorators: { resizable: [{
41
+ type: Output
42
+ }], fit: [{
43
+ type: Output
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS3ZELE1BQU0sT0FBTyxrQkFBa0I7SUFTUTtJQUNFO0lBUjlCLFNBQVMsQ0FBcUI7SUFFdkMsbUJBQW1CO0lBRVYsR0FBRyxDQUEyQjtJQUV2QyxZQUNxQyxRQUFhLEVBQ1gsVUFBbUM7UUFEckMsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUNYLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBRXhFLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBYSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ3JGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3RixPQUFPLFNBQVMsQ0FBYSxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDM0QsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFDN0Msb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQy9DLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFhLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDM0UsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUMvQixNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQ2hDLENBQUM7SUFDSixDQUFDO3dHQWpDVSxrQkFBa0Isa0JBU25CLFFBQVEsYUFDUixVQUFVOzRGQVZULGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7OzBCQVVJLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxVQUFVO3lDQVJYLFNBQVM7c0JBRGpCLE1BQU07Z0JBS0UsR0FBRztzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYnVmZmVyV2hlbiwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBpbnRlcnZhbCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmVzaXphYmxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFJlc2l6YWJsZURpcmVjdGl2ZSB7XG4gIEBPdXRwdXQoKVxuICByZWFkb25seSByZXNpemFibGU6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAvLyBmaXQ6IGRvdWJsZWNsaWNrXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBmaXQ6IE9ic2VydmFibGU8TW91c2VFdmVudFtdPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBhbnksXG4gICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICkge1xuICAgIC8vIHJlc2l6ZTogbW91c2Vkb3duIC0+IG1vdXNlbW92ZSAtPiBtb3VzZXVwXG4gICAgdGhpcy5yZXNpemFibGUgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nKS5waXBlKFxuICAgICAgdGFwKChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgcmlnaHQgfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ3RoJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5kb2N1bWVudCwgJ21vdXNlbW92ZScpLnBpcGUoXG4gICAgICAgICAgbWFwKCh7IGNsaWVudFggfSkgPT4gd2lkdGggKyBjbGllbnRYIC0gcmlnaHQpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgdGFrZVVudGlsKGZyb21FdmVudCh0aGlzLmRvY3VtZW50LCAnbW91c2V1cCcpKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gZml0OiBkb3VibGVjbGlja1xuICAgIHRoaXMuZml0ID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5waXBlKFxuICAgICAgYnVmZmVyV2hlbigoKSA9PiBpbnRlcnZhbCg1MDApKSxcbiAgICAgIGZpbHRlcigoYXIpID0+IGFyLmxlbmd0aCA9PT0gMilcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { ResizableComponent } from './resizable.component';
3
+ import { ResizableDirective } from './resizable.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class ResizableModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ResizableModule, declarations: [ResizableComponent, ResizableDirective], exports: [ResizableComponent, ResizableDirective] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResizableModule });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResizableModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [ResizableComponent, ResizableDirective],
14
+ exports: [ResizableComponent, ResizableDirective],
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLGVBQWU7d0dBQWYsZUFBZTt5R0FBZixlQUFlLGlCQUhYLGtCQUFrQixFQUFFLGtCQUFrQixhQUMzQyxrQkFBa0IsRUFBRSxrQkFBa0I7eUdBRXJDLGVBQWU7OzRGQUFmLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXNpemFibGVDb21wb25lbnQgfSBmcm9tICcuL3Jlc2l6YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9yZXNpemFibGUuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmVzaXphYmxlQ29tcG9uZW50LCBSZXNpemFibGVEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbUmVzaXphYmxlQ29tcG9uZW50LCBSZXNpemFibGVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNpemFibGVNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Directive, EventEmitter, HostListener, Input, numberAttribute, Output } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { throttleTime } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class ThrottledClickDirective {
6
+ throttleTime = 500;
7
+ throttledClick = new EventEmitter();
8
+ clicks = new Subject();
9
+ subscription;
10
+ constructor() { }
11
+ clickEvent(event) {
12
+ if (event.defaultPrevented)
13
+ return;
14
+ event.stopPropagation();
15
+ this.clicks.next(event);
16
+ }
17
+ ngOnInit() {
18
+ this.subscription = this.clicks.pipe(throttleTime(this.throttleTime)).subscribe((e) => this.emitThrottledClick(e));
19
+ }
20
+ emitThrottledClick(e) {
21
+ this.throttledClick.emit(e);
22
+ }
23
+ ngOnDestroy() {
24
+ this.subscription?.unsubscribe();
25
+ }
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThrottledClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
27
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.13", type: ThrottledClickDirective, selector: "[appPreventDoubleClick],[throttledClick]", inputs: { throttleTime: ["throttleTime", "throttleTime", numberAttribute] }, outputs: { throttledClick: "throttledClick" }, host: { listeners: { "click": "clickEvent($event)" } }, ngImport: i0 });
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThrottledClickDirective, decorators: [{
30
+ type: Directive,
31
+ args: [{
32
+ selector: '[appPreventDoubleClick],[throttledClick]',
33
+ }]
34
+ }], ctorParameters: () => [], propDecorators: { throttleTime: [{
35
+ type: Input,
36
+ args: [{ transform: numberAttribute }]
37
+ }], throttledClick: [{
38
+ type: Output
39
+ }], clickEvent: [{
40
+ type: HostListener,
41
+ args: ['click', ['$event']]
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGVkLWNsaWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvdGhyb3R0bGVkLWNsaWNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLOUMsTUFBTSxPQUFPLHVCQUF1QjtJQUNLLFlBQVksR0FBRyxHQUFHLENBQUM7SUFFaEQsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFL0MsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDaEMsWUFBWSxDQUFlO0lBRW5DLGdCQUFlLENBQUM7SUFHaEIsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxLQUFLLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUNuQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxDQUFVO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO3dHQTNCVSx1QkFBdUI7NEZBQXZCLHVCQUF1QixpSEFDZCxlQUFlOzs0RkFEeEIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQ0FBMEM7aUJBQ3JEO3dEQUV3QyxZQUFZO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFFM0IsY0FBYztzQkFBdkIsTUFBTTtnQkFRUCxVQUFVO3NCQURULFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIG51bWJlckF0dHJpYnV0ZSwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thcHBQcmV2ZW50RG91YmxlQ2xpY2tdLFt0aHJvdHRsZWRDbGlja10nLFxufSlcbmV4cG9ydCBjbGFzcyBUaHJvdHRsZWRDbGlja0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGhyb3R0bGVUaW1lID0gNTAwO1xuXG4gIEBPdXRwdXQoKSB0aHJvdHRsZWRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VUlFdmVudD4oKTtcblxuICBwcml2YXRlIGNsaWNrcyA9IG5ldyBTdWJqZWN0PFVJRXZlbnQ+KCk7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgY2xpY2tFdmVudChldmVudDogVUlFdmVudCkge1xuICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbGlja3MubmV4dChldmVudCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY2xpY2tzLnBpcGUodGhyb3R0bGVUaW1lKHRoaXMudGhyb3R0bGVUaW1lKSkuc3Vic2NyaWJlKChlKSA9PiB0aGlzLmVtaXRUaHJvdHRsZWRDbGljayhlKSk7XG4gIH1cblxuICBlbWl0VGhyb3R0bGVkQ2xpY2soZTogVUlFdmVudCkge1xuICAgIHRoaXMudGhyb3R0bGVkQ2xpY2suZW1pdChlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,64 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { fromEvent, merge, timer } from 'rxjs';
3
+ import { filter } from 'rxjs/operators';
4
+ export function createPromiseEventEmitter() {
5
+ return new EventEmitter(true);
6
+ }
7
+ export function createPromiseEvent(eventType, promise, initArg) {
8
+ const detail = {
9
+ ...(initArg?.detail || {}),
10
+ ...promise,
11
+ };
12
+ return new CustomEvent(eventType, { detail });
13
+ }
14
+ export function emitPromiseEvent(emitter, eventType, initArg) {
15
+ return new Promise((resolve, reject) => {
16
+ const event = createPromiseEvent(eventType, {
17
+ success: resolve,
18
+ error: reject,
19
+ }, initArg);
20
+ emitter.emit(event);
21
+ });
22
+ }
23
+ /**
24
+ * Listen end of scroll.
25
+ * <p>
26
+ * The threshold distance from the bottom of the content to call the infinite output event when scrolled.
27
+ * The threshold value can be either a percent, or in pixels.
28
+ * For example, use the value of 10% for the infinite output event to get called when the user has scrolled
29
+ * 10% from the bottom of the page. Use the value 100px when the scroll is within 100 pixels from the bottom of the page.
30
+ * </p>
31
+ *
32
+ * @param element
33
+ * @param threshold default to '15%'
34
+ * @param dueTime
35
+ */
36
+ export function fromScrollEndEvent(element, threshold, dueTime) {
37
+ threshold = threshold || '15%';
38
+ let isEnd;
39
+ // Listen using percentage
40
+ if (threshold.endsWith('%')) {
41
+ const thresholdRatio = parseInt(threshold.slice(0, threshold.length - 1)) / 100;
42
+ isEnd = () => {
43
+ const endPosRatio = 1 - (element.scrollTop + element.offsetHeight) / element.scrollHeight;
44
+ return endPosRatio < thresholdRatio;
45
+ };
46
+ }
47
+ // Listen using pixels
48
+ else if (threshold.endsWith('px')) {
49
+ const thresholdPx = parseInt(threshold.slice(0, threshold.length - 2));
50
+ isEnd = () => {
51
+ const endPosPx = element.scrollHeight - (element.scrollTop + element.offsetHeight);
52
+ return endPosPx < thresholdPx;
53
+ };
54
+ }
55
+ else {
56
+ throw new Error("Invalid argument 'threshold'. Expected value unit: 'px' or '%' ");
57
+ }
58
+ // Check bottom reach, even if NO scroll event (e.g. when already reach the bottom)
59
+ if (dueTime > 0) {
60
+ return merge(fromEvent(element, 'scroll'), timer(dueTime)).pipe(filter(() => isEnd()));
61
+ }
62
+ return fromEvent(element, 'scroll').pipe(filter(() => isEnd()));
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVN4QyxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLE9BQU8sSUFBSSxZQUFZLENBQXFCLElBQUksQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFNBQWlCLEVBQ2pCLE9BQStCLEVBQy9CLE9BQTRCO0lBRTVCLE1BQU0sTUFBTSxHQUE0QjtRQUN0QyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDMUIsR0FBRyxPQUFPO0tBQ1gsQ0FBQztJQUNGLE9BQU8sSUFBSSxXQUFXLENBQTZCLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsT0FBeUMsRUFDekMsU0FBaUIsRUFDakIsT0FBNEI7SUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN4QyxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FDOUIsU0FBUyxFQUNUO1lBQ0UsT0FBTyxFQUFFLE9BQU87WUFDaEIsS0FBSyxFQUFFLE1BQU07U0FDZCxFQUNELE9BQU8sQ0FDUixDQUFDO1FBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFNRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBb0IsRUFBRSxTQUFrQixFQUFFLE9BQWdCO0lBQzNGLFNBQVMsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDO0lBQy9CLElBQUksS0FBb0IsQ0FBQztJQUV6QiwwQkFBMEI7SUFDMUIsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDaEYsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNYLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDMUYsT0FBTyxXQUFXLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxzQkFBc0I7U0FDakIsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RSxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25GLE9BQU8sUUFBUSxHQUFHLFdBQVcsQ0FBQztRQUNoQyxDQUFDLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsbUZBQW1GO0lBQ25GLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb21pc2VFdmVudFBheWxvYWQ8UiA9IGFueT4ge1xuICBzdWNjZXNzOiAodmFsdWU/OiBSKSA9PiB2b2lkO1xuICBlcnJvcjogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgUHJvbWlzZUV2ZW50PFIgPSBhbnksIEQgPSB2b2lkPiA9IEN1c3RvbUV2ZW50PFByb21pc2VFdmVudFBheWxvYWQ8Uj4gJiBEPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb21pc2VFdmVudEVtaXR0ZXI8UiA9IGFueSwgRCA9IHZvaWQ+KCk6IEV2ZW50RW1pdHRlcjxQcm9taXNlRXZlbnQ8UiwgRD4+IHtcbiAgcmV0dXJuIG5ldyBFdmVudEVtaXR0ZXI8UHJvbWlzZUV2ZW50PFIsIEQ+Pih0cnVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb21pc2VFdmVudDxUID0gdm9pZCwgRCA9IHZvaWQ+KFxuICBldmVudFR5cGU6IHN0cmluZyxcbiAgcHJvbWlzZTogUHJvbWlzZUV2ZW50UGF5bG9hZDxUPixcbiAgaW5pdEFyZz86IEN1c3RvbUV2ZW50SW5pdDxEPlxuKTogUHJvbWlzZUV2ZW50PFQsIEQ+IHtcbiAgY29uc3QgZGV0YWlsID0gPFByb21pc2VFdmVudFBheWxvYWQgJiBEPntcbiAgICAuLi4oaW5pdEFyZz8uZGV0YWlsIHx8IHt9KSxcbiAgICAuLi5wcm9taXNlLFxuICB9O1xuICByZXR1cm4gbmV3IEN1c3RvbUV2ZW50PFByb21pc2VFdmVudFBheWxvYWQ8VD4gJiBEPihldmVudFR5cGUsIHsgZGV0YWlsIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW1pdFByb21pc2VFdmVudDxSID0gYW55LCBEID0gdm9pZD4oXG4gIGVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxQcm9taXNlRXZlbnQ8UiwgRD4+LFxuICBldmVudFR5cGU6IHN0cmluZyxcbiAgaW5pdEFyZz86IEN1c3RvbUV2ZW50SW5pdDxEPlxuKTogUHJvbWlzZTxSPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxSPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgZXZlbnQgPSBjcmVhdGVQcm9taXNlRXZlbnQoXG4gICAgICBldmVudFR5cGUsXG4gICAgICB7XG4gICAgICAgIHN1Y2Nlc3M6IHJlc29sdmUsXG4gICAgICAgIGVycm9yOiByZWplY3QsXG4gICAgICB9LFxuICAgICAgaW5pdEFyZ1xuICAgICk7XG4gICAgZW1pdHRlci5lbWl0KGV2ZW50KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxldGFibGVFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgdGFyZ2V0OiBFdmVudFRhcmdldCAmIHsgY29tcGxldGU/OiAoKSA9PiB2b2lkIH07XG59XG5cbi8qKlxuICogTGlzdGVuIGVuZCBvZiBzY3JvbGwuXG4gKiA8cD5cbiAqICAgVGhlIHRocmVzaG9sZCBkaXN0YW5jZSBmcm9tIHRoZSBib3R0b20gb2YgdGhlIGNvbnRlbnQgdG8gY2FsbCB0aGUgaW5maW5pdGUgb3V0cHV0IGV2ZW50IHdoZW4gc2Nyb2xsZWQuXG4gKiAgIFRoZSB0aHJlc2hvbGQgdmFsdWUgY2FuIGJlIGVpdGhlciBhIHBlcmNlbnQsIG9yIGluIHBpeGVscy5cbiAqICAgRm9yIGV4YW1wbGUsIHVzZSB0aGUgdmFsdWUgb2YgMTAlIGZvciB0aGUgaW5maW5pdGUgb3V0cHV0IGV2ZW50IHRvIGdldCBjYWxsZWQgd2hlbiB0aGUgdXNlciBoYXMgc2Nyb2xsZWRcbiAqICAgMTAlIGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZS4gVXNlIHRoZSB2YWx1ZSAxMDBweCB3aGVuIHRoZSBzY3JvbGwgaXMgd2l0aGluIDEwMCBwaXhlbHMgZnJvbSB0aGUgYm90dG9tIG9mIHRoZSBwYWdlLlxuICogPC9wPlxuICpcbiAqIEBwYXJhbSBlbGVtZW50XG4gKiBAcGFyYW0gdGhyZXNob2xkIGRlZmF1bHQgdG8gJzE1JSdcbiAqIEBwYXJhbSBkdWVUaW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tU2Nyb2xsRW5kRXZlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIHRocmVzaG9sZD86IHN0cmluZywgZHVlVGltZT86IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gIHRocmVzaG9sZCA9IHRocmVzaG9sZCB8fCAnMTUlJztcbiAgbGV0IGlzRW5kOiAoKSA9PiBib29sZWFuO1xuXG4gIC8vIExpc3RlbiB1c2luZyBwZXJjZW50YWdlXG4gIGlmICh0aHJlc2hvbGQuZW5kc1dpdGgoJyUnKSkge1xuICAgIGNvbnN0IHRocmVzaG9sZFJhdGlvID0gcGFyc2VJbnQodGhyZXNob2xkLnNsaWNlKDAsIHRocmVzaG9sZC5sZW5ndGggLSAxKSkgLyAxMDA7XG4gICAgaXNFbmQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBlbmRQb3NSYXRpbyA9IDEgLSAoZWxlbWVudC5zY3JvbGxUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCkgLyBlbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICAgIHJldHVybiBlbmRQb3NSYXRpbyA8IHRocmVzaG9sZFJhdGlvO1xuICAgIH07XG4gIH1cblxuICAvLyBMaXN0ZW4gdXNpbmcgcGl4ZWxzXG4gIGVsc2UgaWYgKHRocmVzaG9sZC5lbmRzV2l0aCgncHgnKSkge1xuICAgIGNvbnN0IHRocmVzaG9sZFB4ID0gcGFyc2VJbnQodGhyZXNob2xkLnNsaWNlKDAsIHRocmVzaG9sZC5sZW5ndGggLSAyKSk7XG4gICAgaXNFbmQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBlbmRQb3NQeCA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gKGVsZW1lbnQuc2Nyb2xsVG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQpO1xuICAgICAgcmV0dXJuIGVuZFBvc1B4IDwgdGhyZXNob2xkUHg7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50ICd0aHJlc2hvbGQnLiBFeHBlY3RlZCB2YWx1ZSB1bml0OiAncHgnIG9yICclJyBcIik7XG4gIH1cblxuICAvLyBDaGVjayBib3R0b20gcmVhY2gsIGV2ZW4gaWYgTk8gc2Nyb2xsIGV2ZW50IChlLmcuIHdoZW4gYWxyZWFkeSByZWFjaCB0aGUgYm90dG9tKVxuICBpZiAoZHVlVGltZSA+IDApIHtcbiAgICByZXR1cm4gbWVyZ2UoZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKSwgdGltZXIoZHVlVGltZSkpLnBpcGUoZmlsdGVyKCgpID0+IGlzRW5kKCkpKTtcbiAgfVxuXG4gIHJldHVybiBmcm9tRXZlbnQoZWxlbWVudCwgJ3Njcm9sbCcpLnBpcGUoZmlsdGVyKCgpID0+IGlzRW5kKCkpKTtcbn1cbiJdfQ==
@@ -0,0 +1,97 @@
1
+ import { filter, map } from 'rxjs/operators';
2
+ import { HttpEventType } from '@angular/common/http';
3
+ import { FileResponse } from '../upload-file/upload-file.model';
4
+ import { FilesUtils } from './file.utils';
5
+ import { getPropertyByPath, isNil, isNotEmptyArray, isNotNil } from '../functions';
6
+ //@dynamic
7
+ export class CsvUtils {
8
+ static DEFAULT_SEPARATOR = ',';
9
+ static DEFAULT_ENCODING = 'UTF-8';
10
+ static exportToFile(rows, opts) {
11
+ if (!rows || !rows.length)
12
+ return; // Skip if empty
13
+ // Create text content
14
+ const separator = opts?.separator || ',';
15
+ const protectCellRegexp = new RegExp('/("|' + separator + '|\n)/g');
16
+ const includedProperties = opts?.includedProperties || Object.keys(rows[0]);
17
+ const filteredProperties = isNotEmptyArray(opts?.excludedProperties)
18
+ ? includedProperties.filter((k) => !opts?.excludedProperties.includes(k))
19
+ : includedProperties;
20
+ const headers = opts?.headers || includedProperties;
21
+ const textContent =
22
+ // Header row
23
+ headers.join(separator) +
24
+ '\n' +
25
+ // Data rows
26
+ rows
27
+ .map((row) => filteredProperties
28
+ .map((k) => {
29
+ const value = getPropertyByPath(row, k);
30
+ const cell = isNil(value) ? '' : value;
31
+ const formatter = opts?.formatters?.[k];
32
+ let cellStr = formatter ? formatter(cell) : cell instanceof Date ? cell.toLocaleString() : cell.toString().replace(/"/g, '""');
33
+ if (protectCellRegexp.test(cellStr)) {
34
+ cellStr = `"${cellStr}"`;
35
+ }
36
+ return cellStr;
37
+ })
38
+ .join(separator))
39
+ .join('\n');
40
+ // Write to file
41
+ FilesUtils.writeTextToFile(textContent, {
42
+ type: 'text/csv',
43
+ filename: 'export.csv',
44
+ ...opts,
45
+ });
46
+ }
47
+ static parseFile(file, opts) {
48
+ return FilesUtils.readAsText(file, opts?.encoding).pipe(map((e) => {
49
+ if (e.type === HttpEventType.UploadProgress) {
50
+ const loaded = Math.round(e.loaded * 0.8);
51
+ return { ...e, loaded };
52
+ }
53
+ else if (e instanceof FileResponse) {
54
+ const body = e.body;
55
+ const data = CsvUtils.parseCSV(body, opts);
56
+ return new FileResponse({ body: data });
57
+ }
58
+ }), filter(isNotNil));
59
+ }
60
+ static parseCSV(body, opts) {
61
+ const separator = opts?.separator || ',';
62
+ const skipEmptyLine = !opts || opts.skipEmptyLine !== false;
63
+ // Protect special characters (quote and /n)
64
+ body = body
65
+ .replace('""', '<quote>') // Protect double quote
66
+ .replace(/("[^\n"]+)\n\r?/gm, '"$1<br>') // Protect \n inside a quoted expression
67
+ .replace(/\n\r/gm, '\n'); // Windows CR
68
+ const headerAndRows = body.split('\n', 2);
69
+ const headers = headerAndRows[0].split(separator);
70
+ return body
71
+ .split('\n') // split into rows
72
+ .filter((line) => !skipEmptyLine || line.trim().length > 0) // Skip empty line
73
+ .map((line) => {
74
+ const cells = line
75
+ .split(separator, headers.length) // split into cells
76
+ .map((cell) => cell.replace(/^"([^"]*)"$/, '$1')) // Clean trailing quotes
77
+ .map((cell) => cell.replace('<quote>', '"')) // restore protected quote
78
+ .map((cell) => cell.replace('<br>', '\n')); // restore protected br
79
+ return cells;
80
+ });
81
+ }
82
+ static getLocalizedSeparator(translate, defaultSeparator = CsvUtils.DEFAULT_SEPARATOR) {
83
+ const key = 'FILE.CSV.SEPARATOR';
84
+ const separator = translate?.instant(key);
85
+ if (separator && separator !== key)
86
+ return separator;
87
+ return defaultSeparator;
88
+ }
89
+ static getLocalizedEncoding(translate, defaultEncoding = CsvUtils.DEFAULT_ENCODING) {
90
+ const key = 'FILE.CSV.ENCODING';
91
+ const encoding = translate?.instant(key);
92
+ if (encoding && encoding !== key)
93
+ return encoding;
94
+ return defaultEncoding;
95
+ }
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS9jc3YudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFhLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSW5GLFVBQVU7QUFDVixNQUFNLE9BQU8sUUFBUTtJQUNuQixNQUFNLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO0lBQy9CLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7SUFFbEMsTUFBTSxDQUFDLFlBQVksQ0FDakIsSUFBYyxFQUNkLElBU0M7UUFFRCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLENBQUMsZ0JBQWdCO1FBRW5ELHNCQUFzQjtRQUN0QixNQUFNLFNBQVMsR0FBRyxJQUFJLEVBQUUsU0FBUyxJQUFJLEdBQUcsQ0FBQztRQUN6QyxNQUFNLGlCQUFpQixHQUFHLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDcEUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEVBQUUsa0JBQWtCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxNQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUM7WUFDbEUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLEVBQUUsT0FBTyxJQUFJLGtCQUFrQixDQUFDO1FBQ3BELE1BQU0sV0FBVztRQUNmLGFBQWE7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUN2QixJQUFJO1lBQ0osWUFBWTtZQUNaLElBQUk7aUJBQ0QsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDWCxrQkFBa0I7aUJBQ2YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1QsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN2QyxNQUFNLFNBQVMsR0FBRyxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksT0FBTyxHQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN2SSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNwQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEdBQUcsQ0FBQztnQkFDM0IsQ0FBQztnQkFDRCxPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUNuQjtpQkFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEIsZ0JBQWdCO1FBQ2hCLFVBQVUsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFO1lBQ3RDLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVUsRUFBRSxJQUFnRDtRQUMzRSxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ3JELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDMUIsQ0FBQztpQkFBTSxJQUFJLENBQUMsWUFBWSxZQUFZLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDcEIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzNDLE9BQU8sSUFBSSxZQUFZLENBQWEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBWSxFQUFFLElBQXNEO1FBQ2xGLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxTQUFTLElBQUksR0FBRyxDQUFDO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDO1FBRTVELDRDQUE0QztRQUM1QyxJQUFJLEdBQUcsSUFBSTthQUNSLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsdUJBQXVCO2FBQ2hELE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsQ0FBQyx3Q0FBd0M7YUFDaEYsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFFekMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVsRCxPQUFPLElBQUk7YUFDUixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsa0JBQWtCO2FBQzlCLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBa0I7YUFDN0UsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWixNQUFNLEtBQUssR0FBRyxJQUFJO2lCQUNmLEtBQUssQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLG1CQUFtQjtpQkFDcEQsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtpQkFDekUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtpQkFDdEUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCO1lBQ3JFLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFNBQTRCLEVBQUUsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGlCQUFpQjtRQUN0RyxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQztRQUNqQyxNQUFNLFNBQVMsR0FBRyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksU0FBUyxJQUFJLFNBQVMsS0FBSyxHQUFHO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDckQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFNBQTJCLEVBQUUsZUFBZSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0I7UUFDbEcsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLFFBQVEsSUFBSSxRQUFRLEtBQUssR0FBRztZQUFFLE9BQU8sUUFBUSxDQUFDO1FBQ2xELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBGaWxlRXZlbnQsIEZpbGVSZXNwb25zZSB9IGZyb20gJy4uL3VwbG9hZC1maWxlL3VwbG9hZC1maWxlLm1vZGVsJztcbmltcG9ydCB7IEZpbGVzVXRpbHMgfSBmcm9tICcuL2ZpbGUudXRpbHMnO1xuaW1wb3J0IHsgZ2V0UHJvcGVydHlCeVBhdGgsIGlzTmlsLCBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IERpc3BsYXlGbiB9IGZyb20gJy4uL2Zvcm0vZmllbGQubW9kZWwnO1xuXG4vL0BkeW5hbWljXG5leHBvcnQgY2xhc3MgQ3N2VXRpbHMge1xuICBzdGF0aWMgREVGQVVMVF9TRVBBUkFUT1IgPSAnLCc7XG4gIHN0YXRpYyBERUZBVUxUX0VOQ09ESU5HID0gJ1VURi04JztcblxuICBzdGF0aWMgZXhwb3J0VG9GaWxlKFxuICAgIHJvd3M6IG9iamVjdFtdLFxuICAgIG9wdHM/OiB7XG4gICAgICBmaWxlbmFtZT86IHN0cmluZztcbiAgICAgIGhlYWRlcnM/OiBzdHJpbmdbXTtcbiAgICAgIGluY2x1ZGVkUHJvcGVydGllcz86IHN0cmluZ1tdO1xuICAgICAgZXhjbHVkZWRQcm9wZXJ0aWVzPzogc3RyaW5nW107XG4gICAgICBmb3JtYXR0ZXJzPzogeyBba2V5OiBzdHJpbmddOiBEaXNwbGF5Rm4gfTtcbiAgICAgIHNlcGFyYXRvcj86IHN0cmluZztcbiAgICAgIGVuY29kaW5nPzogc3RyaW5nO1xuICAgICAgdHlwZT86IHN0cmluZztcbiAgICB9XG4gICkge1xuICAgIGlmICghcm93cyB8fCAhcm93cy5sZW5ndGgpIHJldHVybjsgLy8gU2tpcCBpZiBlbXB0eVxuXG4gICAgLy8gQ3JlYXRlIHRleHQgY29udGVudFxuICAgIGNvbnN0IHNlcGFyYXRvciA9IG9wdHM/LnNlcGFyYXRvciB8fCAnLCc7XG4gICAgY29uc3QgcHJvdGVjdENlbGxSZWdleHAgPSBuZXcgUmVnRXhwKCcvKFwifCcgKyBzZXBhcmF0b3IgKyAnfFxcbikvZycpO1xuICAgIGNvbnN0IGluY2x1ZGVkUHJvcGVydGllcyA9IG9wdHM/LmluY2x1ZGVkUHJvcGVydGllcyB8fCBPYmplY3Qua2V5cyhyb3dzWzBdKTtcbiAgICBjb25zdCBmaWx0ZXJlZFByb3BlcnRpZXMgPSBpc05vdEVtcHR5QXJyYXkob3B0cz8uZXhjbHVkZWRQcm9wZXJ0aWVzKVxuICAgICAgPyBpbmNsdWRlZFByb3BlcnRpZXMuZmlsdGVyKChrKSA9PiAhb3B0cz8uZXhjbHVkZWRQcm9wZXJ0aWVzLmluY2x1ZGVzKGspKVxuICAgICAgOiBpbmNsdWRlZFByb3BlcnRpZXM7XG4gICAgY29uc3QgaGVhZGVycyA9IG9wdHM/LmhlYWRlcnMgfHwgaW5jbHVkZWRQcm9wZXJ0aWVzO1xuICAgIGNvbnN0IHRleHRDb250ZW50ID1cbiAgICAgIC8vIEhlYWRlciByb3dcbiAgICAgIGhlYWRlcnMuam9pbihzZXBhcmF0b3IpICtcbiAgICAgICdcXG4nICtcbiAgICAgIC8vIERhdGEgcm93c1xuICAgICAgcm93c1xuICAgICAgICAubWFwKChyb3cpID0+XG4gICAgICAgICAgZmlsdGVyZWRQcm9wZXJ0aWVzXG4gICAgICAgICAgICAubWFwKChrKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0UHJvcGVydHlCeVBhdGgocm93LCBrKTtcbiAgICAgICAgICAgICAgY29uc3QgY2VsbCA9IGlzTmlsKHZhbHVlKSA/ICcnIDogdmFsdWU7XG4gICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlciA9IG9wdHM/LmZvcm1hdHRlcnM/LltrXTtcbiAgICAgICAgICAgICAgbGV0IGNlbGxTdHI6IHN0cmluZyA9IGZvcm1hdHRlciA/IGZvcm1hdHRlcihjZWxsKSA6IGNlbGwgaW5zdGFuY2VvZiBEYXRlID8gY2VsbC50b0xvY2FsZVN0cmluZygpIDogY2VsbC50b1N0cmluZygpLnJlcGxhY2UoL1wiL2csICdcIlwiJyk7XG4gICAgICAgICAgICAgIGlmIChwcm90ZWN0Q2VsbFJlZ2V4cC50ZXN0KGNlbGxTdHIpKSB7XG4gICAgICAgICAgICAgICAgY2VsbFN0ciA9IGBcIiR7Y2VsbFN0cn1cImA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGNlbGxTdHI7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oc2VwYXJhdG9yKVxuICAgICAgICApXG4gICAgICAgIC5qb2luKCdcXG4nKTtcblxuICAgIC8vIFdyaXRlIHRvIGZpbGVcbiAgICBGaWxlc1V0aWxzLndyaXRlVGV4dFRvRmlsZSh0ZXh0Q29udGVudCwge1xuICAgICAgdHlwZTogJ3RleHQvY3N2JyxcbiAgICAgIGZpbGVuYW1lOiAnZXhwb3J0LmNzdicsXG4gICAgICAuLi5vcHRzLFxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlRmlsZShmaWxlOiBGaWxlLCBvcHRzPzogeyBzZXBhcmF0b3I/OiBzdHJpbmc7IGVuY29kaW5nPzogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPEZpbGVFdmVudDxzdHJpbmdbXVtdPj4ge1xuICAgIHJldHVybiBGaWxlc1V0aWxzLnJlYWRBc1RleHQoZmlsZSwgb3B0cz8uZW5jb2RpbmcpLnBpcGUoXG4gICAgICBtYXAoKGUpID0+IHtcbiAgICAgICAgaWYgKGUudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xuICAgICAgICAgIGNvbnN0IGxvYWRlZCA9IE1hdGgucm91bmQoZS5sb2FkZWQgKiAwLjgpO1xuICAgICAgICAgIHJldHVybiB7IC4uLmUsIGxvYWRlZCB9O1xuICAgICAgICB9IGVsc2UgaWYgKGUgaW5zdGFuY2VvZiBGaWxlUmVzcG9uc2UpIHtcbiAgICAgICAgICBjb25zdCBib2R5ID0gZS5ib2R5O1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBDc3ZVdGlscy5wYXJzZUNTVihib2R5LCBvcHRzKTtcbiAgICAgICAgICByZXR1cm4gbmV3IEZpbGVSZXNwb25zZTxzdHJpbmdbXVtdPih7IGJvZHk6IGRhdGEgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgZmlsdGVyKGlzTm90TmlsKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VDU1YoYm9keTogc3RyaW5nLCBvcHRzPzogeyBzZXBhcmF0b3I/OiBzdHJpbmc7IHNraXBFbXB0eUxpbmU/OiBib29sZWFuIH0pOiBzdHJpbmdbXVtdIHtcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBvcHRzPy5zZXBhcmF0b3IgfHwgJywnO1xuICAgIGNvbnN0IHNraXBFbXB0eUxpbmUgPSAhb3B0cyB8fCBvcHRzLnNraXBFbXB0eUxpbmUgIT09IGZhbHNlO1xuXG4gICAgLy8gUHJvdGVjdCBzcGVjaWFsIGNoYXJhY3RlcnMgKHF1b3RlIGFuZCAvbilcbiAgICBib2R5ID0gYm9keVxuICAgICAgLnJlcGxhY2UoJ1wiXCInLCAnPHF1b3RlPicpIC8vIFByb3RlY3QgZG91YmxlIHF1b3RlXG4gICAgICAucmVwbGFjZSgvKFwiW15cXG5cIl0rKVxcblxccj8vZ20sICdcIiQxPGJyPicpIC8vIFByb3RlY3QgXFxuIGluc2lkZSBhIHF1b3RlZCBleHByZXNzaW9uXG4gICAgICAucmVwbGFjZSgvXFxuXFxyL2dtLCAnXFxuJyk7IC8vIFdpbmRvd3MgQ1JcblxuICAgIGNvbnN0IGhlYWRlckFuZFJvd3MgPSBib2R5LnNwbGl0KCdcXG4nLCAyKTtcbiAgICBjb25zdCBoZWFkZXJzID0gaGVhZGVyQW5kUm93c1swXS5zcGxpdChzZXBhcmF0b3IpO1xuXG4gICAgcmV0dXJuIGJvZHlcbiAgICAgIC5zcGxpdCgnXFxuJykgLy8gc3BsaXQgaW50byByb3dzXG4gICAgICAuZmlsdGVyKChsaW5lKSA9PiAhc2tpcEVtcHR5TGluZSB8fCBsaW5lLnRyaW0oKS5sZW5ndGggPiAwKSAvLyBTa2lwIGVtcHR5IGxpbmVcbiAgICAgIC5tYXAoKGxpbmUpID0+IHtcbiAgICAgICAgY29uc3QgY2VsbHMgPSBsaW5lXG4gICAgICAgICAgLnNwbGl0KHNlcGFyYXRvciwgaGVhZGVycy5sZW5ndGgpIC8vIHNwbGl0IGludG8gY2VsbHNcbiAgICAgICAgICAubWFwKChjZWxsKSA9PiBjZWxsLnJlcGxhY2UoL15cIihbXlwiXSopXCIkLywgJyQxJykpIC8vIENsZWFuIHRyYWlsaW5nIHF1b3Rlc1xuICAgICAgICAgIC5tYXAoKGNlbGwpID0+IGNlbGwucmVwbGFjZSgnPHF1b3RlPicsICdcIicpKSAvLyByZXN0b3JlIHByb3RlY3RlZCBxdW90ZVxuICAgICAgICAgIC5tYXAoKGNlbGwpID0+IGNlbGwucmVwbGFjZSgnPGJyPicsICdcXG4nKSk7IC8vIHJlc3RvcmUgcHJvdGVjdGVkIGJyXG4gICAgICAgIHJldHVybiBjZWxscztcbiAgICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGdldExvY2FsaXplZFNlcGFyYXRvcih0cmFuc2xhdGU/OiBUcmFuc2xhdGVTZXJ2aWNlLCBkZWZhdWx0U2VwYXJhdG9yID0gQ3N2VXRpbHMuREVGQVVMVF9TRVBBUkFUT1IpOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleSA9ICdGSUxFLkNTVi5TRVBBUkFUT1InO1xuICAgIGNvbnN0IHNlcGFyYXRvciA9IHRyYW5zbGF0ZT8uaW5zdGFudChrZXkpO1xuICAgIGlmIChzZXBhcmF0b3IgJiYgc2VwYXJhdG9yICE9PSBrZXkpIHJldHVybiBzZXBhcmF0b3I7XG4gICAgcmV0dXJuIGRlZmF1bHRTZXBhcmF0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0TG9jYWxpemVkRW5jb2RpbmcodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBkZWZhdWx0RW5jb2RpbmcgPSBDc3ZVdGlscy5ERUZBVUxUX0VOQ09ESU5HKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXkgPSAnRklMRS5DU1YuRU5DT0RJTkcnO1xuICAgIGNvbnN0IGVuY29kaW5nID0gdHJhbnNsYXRlPy5pbnN0YW50KGtleSk7XG4gICAgaWYgKGVuY29kaW5nICYmIGVuY29kaW5nICE9PSBrZXkpIHJldHVybiBlbmNvZGluZztcbiAgICByZXR1cm4gZGVmYXVsdEVuY29kaW5nO1xuICB9XG59XG4iXX0=