@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
@@ -1,1375 +0,0 @@
1
- import {
2
- AfterViewInit,
3
- booleanAttribute,
4
- ChangeDetectionStrategy,
5
- ChangeDetectorRef,
6
- Component,
7
- ElementRef,
8
- EventEmitter,
9
- forwardRef,
10
- Injector,
11
- Input,
12
- numberAttribute,
13
- OnDestroy,
14
- OnInit,
15
- Optional,
16
- Output,
17
- Renderer2,
18
- RendererStyleFlags2,
19
- ViewChild,
20
- } from '@angular/core';
21
- import { ControlValueAccessor, FormGroupDirective, NG_VALUE_ACCESSOR, UntypedFormControl, Validators } from '@angular/forms';
22
- import { BehaviorSubject, isObservable, merge, Observable, Subject, Subscription, timer } from 'rxjs';
23
- import { debounceTime, distinctUntilChanged, filter, map, mergeMap, startWith, switchMap, takeUntil, tap, throttleTime } from 'rxjs/operators';
24
- import { FetchMoreFn, LoadResult, SuggestFn } from '../../services/entity-service.class';
25
- import {
26
- changeCaseToUnderscore,
27
- findParentWithClass,
28
- isBlankString,
29
- isNil,
30
- isNilOrBlank,
31
- isNotEmptyArray,
32
- isNotNil,
33
- isNotNilBoolean,
34
- isNotNilObject,
35
- isNotNilOrBlank,
36
- isNotNilString,
37
- propertiesPathComparator,
38
- toNumber,
39
- } from '../../functions';
40
- import { focusInput, InputElement, selectInputContent, selectInputRange } from '../../inputs';
41
- import { firstNotNilPromise } from '../../observables';
42
- import { AppFloatLabelType, DisplayFn, EqualsFn } from '../../form/field.model';
43
- import { MatFormFieldAppearance, SubscriptSizing } from '@angular/material/form-field';
44
- import { MatSelect, MatSelectChange } from '@angular/material/select';
45
- import { MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';
46
- import { fromScrollEndEvent } from '../../events';
47
- import { IonSearchbar, ModalController } from '@ionic/angular';
48
- import { isMobile } from '../../platforms';
49
- import { suggestFromArray } from '../../services';
50
- import { SearchbarChangeEventDetail } from '@ionic/core/dist/types/components/searchbar/searchbar-interface';
51
- import { MatAutocompleteFieldUtils } from './material.autocomplete.utils';
52
- import { MatAutocompleteFieldConfig } from './material.autocomplete.config';
53
- import { DOCUMENT } from '@angular/common';
54
-
55
- import { DEFAULT_JOIN_PROPERTIES_SEPARATOR } from '../../constants';
56
- import { RegExpUtils } from '../../regexps';
57
-
58
- const noop = () => {};
59
- export interface MatAutocompleteFieldSelectChange {
60
- source: MatSelect | MatAutocomplete;
61
- value: any;
62
- }
63
-
64
- export interface MatAutocompleteFieldToggleFavorite {
65
- source: MatSelect | MatAutocomplete;
66
- value: any;
67
- }
68
-
69
- @Component({
70
- // eslint-disable-next-line @angular-eslint/component-selector
71
- selector: 'mat-autocomplete-field',
72
- styleUrls: ['./material.autocomplete.scss'],
73
- templateUrl: './material.autocomplete.html',
74
- providers: [
75
- {
76
- provide: NG_VALUE_ACCESSOR,
77
- multi: true,
78
- useExisting: forwardRef(() => MatAutocompleteField),
79
- },
80
- ],
81
- changeDetection: ChangeDetectionStrategy.OnPush,
82
- })
83
- export class MatAutocompleteField implements OnInit, AfterViewInit, OnDestroy, InputElement, ControlValueAccessor {
84
- private _onChangeCallback: (_: any) => void = noop;
85
- private _onTouchedCallback: () => void = noop;
86
-
87
- private _onFetchMoreCallback: FetchMoreFn<LoadResult<any>>;
88
- private _implicitValue: any;
89
- private _subscription = new Subscription();
90
- private _itemsSubscription: Subscription;
91
- private _openedSubscription: Subscription;
92
- private _$filter = new BehaviorSubject<any>(undefined);
93
- private _itemCount: number;
94
- private _suggestExecutionId: number = 0; // Identifier of the suggest job
95
- private _reload$ = new Subject<any>();
96
- private _destroy$ = new Subject<void>();
97
-
98
- protected _readonly = false;
99
- protected _tabindex: number;
100
- protected _$inputItems = new BehaviorSubject<any[]>(undefined);
101
- protected _$filteredItems = new BehaviorSubject<any[]>(undefined);
102
- protected _selectedItem: any;
103
- protected _displayValue = '';
104
- protected _moreItemsCount: number;
105
- protected _fetchMore$ = new EventEmitter<Event>();
106
- protected _defaultPanelWidth: string = null;
107
- protected _focused = false;
108
-
109
- protected get searchText(): string | undefined {
110
- return this.matInputText?.nativeElement.value ?? this.ionSearchbar?.value;
111
- }
112
-
113
- @Input() equals: EqualsFn;
114
- @Input() logPrefix = '[mat-autocomplete]';
115
- @Input() formControl: UntypedFormControl;
116
- @Input() formControlName: string = null;
117
- @Input() floatLabel: AppFloatLabelType = 'auto';
118
- @Input() label: string = null;
119
- @Input() appearance: MatFormFieldAppearance;
120
- @Input() subscriptSizing: SubscriptSizing;
121
- @Input() placeholder: string;
122
- @Input() suggestFn: SuggestFn<any, any>;
123
- @Input({ transform: booleanAttribute }) required = false;
124
- @Input({ transform: booleanAttribute }) hideRequiredMarker = false;
125
- @Input({ transform: booleanAttribute }) mobile: boolean;
126
- @Input({ transform: booleanAttribute }) clearable = false;
127
- @Input({ transform: numberAttribute }) debounceTime: number = null;
128
- @Input() displaySeparator: string | null;
129
- @Input() displayWith: DisplayFn | null;
130
- @Input() displayAttributes: string[];
131
- @Input() displayColumnSizes: (number | 'auto' | undefined)[];
132
- @Input() displayColumnNames: string[];
133
- @Input({ transform: booleanAttribute }) highlightAccent: boolean;
134
- @Input({ transform: booleanAttribute }) showAllOnFocus: boolean;
135
- @Input({ transform: booleanAttribute }) showPanelOnFocus: boolean;
136
- @Input({ transform: booleanAttribute }) reloadItemsOnFocus: boolean;
137
- @Input({ transform: booleanAttribute }) clearInvalidValueOnBlur: boolean;
138
- @Input({ transform: booleanAttribute }) autofocus = false;
139
- @Input() config: MatAutocompleteFieldConfig;
140
- @Input() i18nPrefix = 'REFERENTIAL.';
141
- @Input() noResultMessage = 'COMMON.NO_RESULT';
142
- @Input() panelClass: string;
143
- @Input() panelWidth: string;
144
- @Input({ transform: booleanAttribute }) disableRipple = false;
145
- @Input() matAutocompletePosition: 'auto' | 'above' | 'below';
146
- @Input({ transform: booleanAttribute }) multiple: boolean;
147
- @Input() fetchMoreThreshold = '15%';
148
- @Input({ transform: numberAttribute }) suggestLengthThreshold: number = null;
149
- @Input({ transform: booleanAttribute }) showLoadingSpinner = true;
150
- @Input({ transform: booleanAttribute }) debug = false;
151
- @Input({ transform: booleanAttribute }) showSearchBar = true;
152
- @Input({ transform: booleanAttribute }) stickySearchBar = false;
153
- @Input() applyImplicitValue: boolean | ((value: any) => boolean);
154
- @Input() dropButtonTitle: string;
155
- @Input() clearButtonTitle: string;
156
- @Input({ transform: booleanAttribute }) trimSearchText: boolean;
157
- @Input({ transform: booleanAttribute }) splitSearchText: boolean;
158
- @Input({ transform: booleanAttribute }) selectInputContentOnFocus: boolean;
159
- @Input({ transform: numberAttribute }) selectInputContentOnFocusDelay: number;
160
- @Input({ transform: booleanAttribute }) previewImplicitValue: boolean;
161
- @Input() showFavorites = true;
162
- @Input() toggleFavoriteTitle = 'COMMON.BTN_ADD_TO_FAVORITES';
163
- @Input() favoriteItems: any[] = [];
164
- @Input() colSizes: [number | 'auto', number | 'auto'] = [undefined, 'auto'];
165
-
166
- /**
167
- * @deprecated Use panelClass instead
168
- */
169
- @Input({ alias: 'class' }) set classList(value: string) {
170
- this.panelClass = value;
171
- }
172
-
173
- get classList(): string {
174
- return this.panelClass;
175
- }
176
-
177
- // eslint-disable-next-line @angular-eslint/no-output-native
178
- @Output('click') clicked = new EventEmitter<MouseEvent>();
179
- // eslint-disable-next-line @angular-eslint/no-output-native
180
- @Output('blur') blurred = new EventEmitter<FocusEvent>();
181
- // eslint-disable-next-line @angular-eslint/no-output-native
182
- @Output('focus') focused = new EventEmitter<FocusEvent>();
183
- @Output() dropButtonClick = new EventEmitter<Event>(true);
184
- @Output('keydown.escape') keydownEscape = new EventEmitter<Event>();
185
- @Output('keydown.backspace') keydownBackspace = new EventEmitter<Event>();
186
- @Output('keyup.enter') keyupEnter = new EventEmitter<Event>();
187
-
188
- @Output('selectionChange') selectionChange = new EventEmitter<MatAutocompleteFieldSelectChange>();
189
- @Output('openedChange') openedChange = new EventEmitter<boolean>();
190
- @Output('toggleFavorite') toggleFavorite = new EventEmitter<MatAutocompleteFieldToggleFavorite>();
191
-
192
- @ViewChild('matSelect') matSelect: MatSelect;
193
- @ViewChild('ionSearchbar') ionSearchbar: IonSearchbar;
194
- @ViewChild('matInputText') matInputText: ElementRef<HTMLInputElement>;
195
- @ViewChild(MatAutocomplete) autocomplete: MatAutocomplete;
196
- @ViewChild(MatAutocompleteTrigger) autocompleteTrigger: MatAutocompleteTrigger;
197
-
198
- constructor(
199
- protected injector: Injector,
200
- protected el: ElementRef<HTMLElement>,
201
- protected cd: ChangeDetectorRef,
202
- protected modalController: ModalController,
203
- protected renderer: Renderer2,
204
- @Optional() private formGroupDir: FormGroupDirective
205
- ) {}
206
-
207
- get itemCount(): number {
208
- return this._itemCount;
209
- }
210
-
211
- get canFetchMore(): boolean {
212
- return this._onFetchMoreCallback && this._moreItemsCount > 0;
213
- }
214
-
215
- @Input() set filter(value: any) {
216
- if (value !== this._$filter.value) {
217
- // DEBUG
218
- //console.debug(this.logPrefix + " Setting filter:", value);
219
- this._$filter.next(value);
220
- }
221
- }
222
-
223
- get filter(): any {
224
- return this._$filter.value;
225
- }
226
-
227
- @Input({ transform: booleanAttribute }) set readonly(value: boolean) {
228
- this._readonly = value;
229
- this.markForCheck();
230
- }
231
-
232
- get readonly(): boolean {
233
- return this._readonly;
234
- }
235
-
236
- @Input() set tabindex(value: number) {
237
- this._tabindex = value;
238
- this.markForCheck();
239
- }
240
-
241
- get tabindex(): number {
242
- return this._tabindex;
243
- }
244
-
245
- @Input() set items(value: Observable<any[]> | any[]) {
246
- // Remove previous subscription on items (if exists)
247
- if (this._itemsSubscription) {
248
- console.warn(this.logPrefix + ' Items received twice!');
249
- this._subscription.remove(this._itemsSubscription);
250
- this._itemsSubscription.unsubscribe();
251
- }
252
-
253
- if (isObservable(value)) {
254
- this._itemsSubscription = value.subscribe((v) => this._$inputItems.next(v));
255
- this._subscription.add(this._itemsSubscription);
256
- } else {
257
- if (value !== this._$inputItems.value) {
258
- this._$inputItems.next(value as any[]);
259
- }
260
- }
261
- }
262
-
263
- get items(): Observable<any[]> | any[] {
264
- return this._$inputItems;
265
- }
266
-
267
- get value(): any {
268
- return this.formControl.value;
269
- }
270
-
271
- get disabled(): boolean {
272
- return this._readonly || this.formControl.disabled;
273
- }
274
-
275
- get enabled(): boolean {
276
- return !this._readonly && this.formControl.enabled;
277
- }
278
-
279
- get loading(): boolean {
280
- return isNil(this._$filteredItems.value);
281
- }
282
-
283
- ngOnInit() {
284
- this.formControl =
285
- this.formControl ?? (this.formControlName && this.formGroupDir && (this.formGroupDir.form.get(this.formControlName) as UntypedFormControl));
286
- if (!this.formControl) throw new Error("Missing mandatory attribute 'formControl' or 'formControlName' in <mat-autocomplete-field>.");
287
-
288
- // Configuration from config object
289
- if (this.config) {
290
- this.suggestFn = this.suggestFn ?? this.config.suggestFn;
291
- if (!this.suggestFn && this.config.items) {
292
- this.items = this.config.items;
293
- }
294
- this.filter = this.filter ?? this.config.filter;
295
- this.displayAttributes = this.displayAttributes ?? this.config.attributes;
296
- this.displayColumnSizes = this.displayColumnSizes ?? this.config.columnSizes;
297
- this.displayColumnNames = this.displayColumnNames ?? this.config.columnNames;
298
- this.displaySeparator = this.displaySeparator ?? this.config.displayWithSeparator;
299
- this.displayWith = this.displayWith ?? this.config.displayWith;
300
- this.splitSearchText = this.splitSearchText ?? this.config.splitSearchText;
301
- this.trimSearchText = this.trimSearchText ?? this.config.trimSearchText;
302
- this.equals = this.equals ?? this.config.equals;
303
- this.multiple = this.multiple ?? this.config.multiple;
304
- this.mobile = this.mobile ?? this.config.mobile;
305
- this.suggestLengthThreshold = this.suggestLengthThreshold ?? this.config.suggestLengthThreshold;
306
- this.showAllOnFocus = this.showAllOnFocus ?? this.config.showAllOnFocus;
307
- this.showPanelOnFocus = this.showPanelOnFocus ?? this.config.showPanelOnFocus;
308
- this.reloadItemsOnFocus = this.reloadItemsOnFocus ?? this.config.reloadItemsOnFocus;
309
- this.panelClass = this.panelClass ?? this.config.panelClass ?? this.config.class;
310
- this.panelWidth = this.panelWidth ?? this.config.panelWidth;
311
- this.debounceTime = this.debounceTime ?? this.config.debounceTime;
312
- this.highlightAccent = this.highlightAccent ?? this.config.highlightAccent;
313
- this.applyImplicitValue = this.applyImplicitValue ?? this.config.applyImplicitValue;
314
- this.selectInputContentOnFocus = this.selectInputContentOnFocus ?? this.config.selectInputContentOnFocus;
315
- this.selectInputContentOnFocusDelay = this.selectInputContentOnFocusDelay ?? this.config.selectInputContentOnFocusDelay;
316
- this.clearInvalidValueOnBlur = this.clearInvalidValueOnBlur ?? this.config.clearInvalidValueOnBlur;
317
- this.previewImplicitValue = this.previewImplicitValue ?? this.config.previewImplicitValue;
318
- }
319
-
320
- // Default values
321
- this.required = isNotNilBoolean(this.required)
322
- ? this.required
323
- : this.formControl.validator === Validators.required || isBlankString(this.required);
324
- this.multiple = this.multiple ?? false;
325
- this.mobile = this.mobile ?? isMobile(window);
326
- this.displayAttributes = this.displayAttributes ?? this.filter?.attributes ?? ['label', 'name'];
327
- this.displaySeparator = this.displaySeparator ?? DEFAULT_JOIN_PROPERTIES_SEPARATOR;
328
- this.displayWith = this.displayWith || MatAutocompleteFieldUtils.createDisplayFn(this.displayAttributes, this.multiple, this.displaySeparator);
329
- this.splitSearchText = this.splitSearchText ?? true;
330
- this.trimSearchText = this.trimSearchText ?? !this.mobile; // True by default on desktop, but false in mobile (not need in the searchbar)
331
- this.equals = this.equals || MatAutocompleteFieldUtils.defaultEquals;
332
-
333
- this.displayColumnSizes =
334
- this.displayColumnSizes ||
335
- // if only column: auto size
336
- (this.displayAttributes.length === 1 && [undefined]) ||
337
- // Computed column size:
338
- // - if label then col size = 2
339
- // - if rankOrder then col size = 1
340
- // - ese => auto size
341
- this.displayAttributes.map((attr) => attr && (attr.endsWith('label') ? 3 : attr.endsWith('rankOrder') ? 2 : undefined));
342
- this.displayColumnNames = this.displayAttributes.map(
343
- (attr, index) => (this.displayColumnNames && this.displayColumnNames[index]) || this.i18nPrefix + changeCaseToUnderscore(attr).toUpperCase()
344
- );
345
-
346
- // No more need, because setting the panelWidth will force a width, instead of a min-width
347
- /*const panelClasses = this.panelClass?.split(/\s+/);
348
- this.panelWidth =
349
- this.panelWidth ??
350
- (panelClasses &&
351
- ((panelClasses.includes('min-width-medium') && '300px') ||
352
- (panelClasses.includes('min-width-large') && '400px') ||
353
- (panelClasses.includes('min-width-xlarge') && '450px') ||
354
- (panelClasses.includes('min-width-80vw') && '80vw') ||
355
- ((panelClasses.includes('full-width') || panelClasses.includes('full-size')) && '100vw')));*/
356
-
357
- this.suggestLengthThreshold = this.suggestLengthThreshold ?? 0;
358
- this.showAllOnFocus = this.showAllOnFocus ?? (this.mobile && this.suggestLengthThreshold <= 0);
359
- this.showPanelOnFocus = this.showPanelOnFocus ?? true;
360
- this.reloadItemsOnFocus = this.reloadItemsOnFocus ?? false;
361
- this.debounceTime = this.debounceTime ?? (this.mobile ? 650 : 250);
362
- this.highlightAccent = this.highlightAccent ?? false;
363
- this.matAutocompletePosition = this.matAutocompletePosition ?? 'auto';
364
- this.applyImplicitValue = this.applyImplicitValue ?? !this.mobile;
365
- this.selectInputContentOnFocus = this.selectInputContentOnFocus ?? false;
366
- this.selectInputContentOnFocusDelay = this.selectInputContentOnFocusDelay ?? 0;
367
- this.clearInvalidValueOnBlur = this.clearInvalidValueOnBlur ?? false;
368
- this.previewImplicitValue = this.previewImplicitValue ?? false;
369
-
370
- // No suggestFn: filter on the given items
371
- if (!this.suggestFn) {
372
- const suggestFromArrayFn: SuggestFn<any, any> = async (value, filter) =>
373
- // DEBUG
374
- //if (this.debug) console.debug(this.logPrefix + ' Calling suggestFromArray with value=', value);
375
-
376
- suggestFromArray(this._$inputItems.value, value, {
377
- searchAttributes: this.displayAttributes,
378
- ...filter,
379
- });
380
-
381
- // Wait (once) that items are loaded, then call suggest from array fn
382
- this.suggestFn = async (value, filter) => {
383
- if (isNil(this._$inputItems.value)) {
384
- // DEBUG
385
- //if (this.debug) console.debug(this.logPrefix + " Waiting items to be set...");
386
-
387
- await firstNotNilPromise(this._$inputItems, { stop: this._destroy$ });
388
-
389
- // DEBUG
390
- //if (this.debug) console.debug(this.logPrefix + " Received items:", this.inputItems$.value);
391
- }
392
- this.suggestFn = suggestFromArrayFn;
393
- return this.suggestFn(value, filter); // Loop
394
- };
395
- }
396
-
397
- // Send value to suggest when :
398
- // - is nil and '*', and no min length threshold
399
- // - is not nil and not a string type (e.g. object)
400
- // - is not nil and is a string, and has enough character
401
- const thresholdFilterFn = (value: any) =>
402
- this.suggestLengthThreshold <= 0 ||
403
- (isNotNil(value) && (!(typeof value === 'string') || (value !== '*' && value.trim().length >= this.suggestLengthThreshold)));
404
-
405
- const filteredItemsChanges = merge(
406
- // Reload event (no distinctUntilChanged() pipe, to force reload even if same value)
407
- this._reload$.pipe(
408
- filter(() => this.enabled),
409
- filter(thresholdFilterFn),
410
- tap(() => this.showLoadingSpinner && this.markAsLoading())
411
- ),
412
-
413
- // Search text (no distinctUntilChanged() because of the debounceTime() pipe)
414
- this.formControl.valueChanges.pipe(
415
- filter((value) => this.enabled && isNotNilString(value)),
416
- // Mark as loading (to show loading spinner) - as soon as possible, and before debounceTime
417
- tap(() => this.showLoadingSpinner && this.markAsLoading()),
418
- // Filter if not enough character
419
- filter((value) => {
420
- if ((value?.length || 0) < this.suggestLengthThreshold) {
421
- // Update display value, to enable the message "not enough characters"
422
- this._displayValue = value;
423
- return false;
424
- }
425
- return true;
426
- }),
427
- // Wait a debounce time
428
- debounceTime(this.debounceTime)
429
- // DEBUG
430
- //,tap((value) => this.debug && console.debug(this.logPrefix + ' Search text changes:', value))
431
- ),
432
-
433
- // Object set: use it (no distinctUntilChanged() pipe need)
434
- this.formControl.valueChanges.pipe(
435
- startWith<any>(this.formControl.value),
436
- filter((value) => isNotNilObject(value)),
437
- tap((value) => {
438
- // DEBUG
439
- //if (this.debug) console.debug(this.logPrefix + ' Received control value changes:', value);
440
-
441
- // Update the display value (if need)
442
- const displayValue = this.displayWith(value) || '';
443
- if (this._displayValue !== displayValue) {
444
- this._displayValue = displayValue;
445
-
446
- // Apply to the input[type=text] field
447
- this.setInputTextValue(this._displayValue);
448
- this.markForCheck();
449
- }
450
- }),
451
-
452
- // If multiple: do not recompute items (only for the first time, when loading)
453
- // when formControl value changes
454
- filter(() => this.loading || (!this.multiple && !this.showAllOnFocus))
455
- ),
456
-
457
- // Merge some observables, with a common distinctUntilChanged() pipe
458
- merge(
459
- // On dropdown button click (no debounceTime)
460
- this.dropButtonClick.pipe(filter((event) => !event || !event.defaultPrevented)),
461
- // Focus or click => Load all (no debounceTime)
462
- merge(this.focused, this.clicked)
463
- // Avoid too many call, e.g. when focused and clicked
464
- .pipe(throttleTime(100)),
465
- // DEBUG
466
- //.pipe(tap((_) => this.debug && console.debug(this.logPrefix + ' Received focused or clicked event'))),
467
- // Input items or filter changes
468
- merge(this._$inputItems, this._$filter).pipe(
469
- filter(() => !this.loading)
470
- // DEBUG
471
- //tap((_) => this.debug && console.debug(this.logPrefix + ' Received $inputItems or filter event'))
472
- )
473
- ).pipe(
474
- filter(() => this.enabled),
475
- map(() => (this.multiple ? this.searchText : this.showAllOnFocus ? '*' : this.formControl.value)),
476
- // Distinguish changes
477
- distinctUntilChanged((v1, v2) =>
478
- // If loading (not loaded yet), simulate that value changed to force load
479
- this.loading ? false : v1 === v2 || this.equals(v1, v2)
480
- ),
481
- // Make sure there is enough characters
482
- filter(thresholdFilterFn)
483
- // DEBUG
484
- //tap((value) => this.debug && console.debug(this.logPrefix + ' Received update event: ', value))
485
- )
486
- ).pipe(
487
- // Suggest values
488
- mergeMap((value) => this.suggest(value, this.filter)),
489
-
490
- // Ignore undefined result (e.g. when a newer suggest call is running)
491
- filter(isNotNil),
492
-
493
- // DEBUG
494
- //tap(items => this.debug && console.debug(this.logPrefix + ' Received from suggest: ', items)),
495
-
496
- // Store implicit value (will use it onBlur if not other value selected)
497
- tap((items) => !(this.mobile || this.multiple) && this.updateImplicitValue(items))
498
- );
499
-
500
- // Fetch more events
501
- const fetchMoreItemsChanges = this._fetchMore$.pipe(
502
- tap((event) => event?.preventDefault()), // Avoid to close the mat-select
503
- filter(() => this.canFetchMore),
504
- mergeMap(() => this.fetchMore()),
505
-
506
- // DEBUG
507
- //tap(moreItems => console.debug(this.logPrefix + ' Received from fetch More: ', moreItems)),
508
-
509
- // Concat to existing items
510
- map((moreItems) => (this._$filteredItems.value || []).concat(moreItems))
511
- );
512
-
513
- // Update filtered items
514
- this._subscription.add(
515
- merge(
516
- this._$inputItems,
517
-
518
- // Update items events
519
- filteredItemsChanges,
520
-
521
- // Fetch more events
522
- fetchMoreItemsChanges
523
- ).subscribe((items) => {
524
- // Make sure control value is inside (mat-select)
525
- // (otherwise current value will visually disappear)
526
- if (items) {
527
- const value = this.formControl.value;
528
- this._selectedItem = null;
529
-
530
- // If form value is missing: append to list
531
- if (isNotNil(value)) {
532
- if (this.multiple && Array.isArray(value)) {
533
- items = items.concat(value.filter((v) => !items.some((item) => this.equals(item, v))));
534
- } else {
535
- if (typeof value === 'object') {
536
- const index = items.findIndex((item) => this.equals(item, value));
537
- if (index !== -1) {
538
- this._selectedItem = items[index];
539
- } else {
540
- // Append current value to the list, if missing (mat-select only)
541
- if (this.mobile || this.multiple) {
542
- items = items.concat(value);
543
- }
544
- }
545
- }
546
- }
547
- }
548
- }
549
-
550
- // DEBUG
551
- //if (this.debug) console.debug(this.logPrefix + ' Received new filtered items', items);
552
-
553
- // Emit items
554
- this._$filteredItems.next(items);
555
- })
556
- );
557
-
558
- // Applying implicit value, on blur
559
- this._subscription.add(
560
- this.blurred
561
- .pipe(
562
- // Skip if multiple (no implicit value) or disable
563
- filter(() => !this.multiple && !this.mobile && this.enabled),
564
- // DEBUG
565
- //,tap(_ => this.debug && console.debug(this.logPrefix + ' Received blurred event')),
566
- map(() => this.formControl.value)
567
- )
568
- .subscribe((value) => {
569
- let invalidateFilteredItems = false;
570
- let moveCaretToBeginning = false;
571
-
572
- // DEBUG
573
- //if (this.debug) console.debug(this.logPrefix + ' Applying implicit value on blur', value);
574
-
575
- // When leave component without object, use implicit value if :
576
- // - an explicit value
577
- // - field is not empty (user fill something)
578
- // - OR field empty but is required
579
- if (isNotNil(this._implicitValue) && ((this.required && isNilOrBlank(value)) || (isNotNilOrBlank(value) && typeof value !== 'object'))) {
580
- this.writeValue(this._implicitValue);
581
- this.formControl.markAsPending({ emitEvent: false, onlySelf: true });
582
- this.formControl.updateValueAndValidity({ emitEvent: false, onlySelf: true });
583
- invalidateFilteredItems = this.showAllOnFocus || this.reloadItemsOnFocus;
584
- moveCaretToBeginning = true; // Move caret to the beginning (fix issue IMAGINE-469)
585
- }
586
- // No value and no implicit value
587
- else if (isNilOrBlank(value)) {
588
- this.writeValue(null);
589
- this.formControl.markAsPending({ emitEvent: false, onlySelf: true });
590
- this.formControl.updateValueAndValidity({ emitEvent: false, onlySelf: true });
591
- }
592
- // Has value, but no implicit value
593
- else {
594
- // Value is a valid object
595
- if (isNotNilObject(value)) {
596
- invalidateFilteredItems = this.showAllOnFocus || this.reloadItemsOnFocus;
597
- moveCaretToBeginning = true; // Move caret to the beginning (fix issue IMAGINE-469)
598
- }
599
- // Invalid valid value: clear search text
600
- else if (this.clearInvalidValueOnBlur && typeof value === 'string') {
601
- this.writeValue(null);
602
- this.formControl.markAsPending({ emitEvent: false, onlySelf: true });
603
- this.formControl.updateValueAndValidity({ emitEvent: false, onlySelf: true });
604
- invalidateFilteredItems = true;
605
- }
606
- }
607
-
608
- this._implicitValue = null; // reset the implicit value
609
- this.closePanel(); // Close panel
610
-
611
- // Invalidate loaded items
612
- if (invalidateFilteredItems) {
613
- this.markAsLoading(); // Should force next focus to reload items
614
- }
615
-
616
- // Move caret to the beginning (fix issue IMAGINE-469)
617
- if (moveCaretToBeginning) {
618
- // DEBUG
619
- //if (this.debug) console.debug(this.logPrefix + ' Moving caret to the beginning, on blur');
620
- selectInputRange(this.matInputText.nativeElement, 0, 0);
621
- }
622
- })
623
- );
624
-
625
- // Listen form control status change
626
- this._subscription.add(
627
- this.formControl.statusChanges
628
- .pipe(distinctUntilChanged())
629
- // Update component state
630
- .subscribe(() => this.checkIfTouched())
631
- );
632
-
633
- this._subscription.add(
634
- this.keydownEscape.subscribe((event) => {
635
- if (this.isOpen) {
636
- // Avoid form or page to manage escape event
637
- event?.stopPropagation();
638
- event?.preventDefault();
639
-
640
- // DEBUG
641
- //console.debug(this.logPrefix + " Closing the panel (keydown.escape)");
642
-
643
- this.closePanel();
644
- }
645
- })
646
- );
647
-
648
- // Select input content, on focus or press enter
649
- if (this.selectInputContentOnFocus && !this.mobile && !this.multiple) {
650
- this._subscription.add(
651
- merge(
652
- this.focused.pipe(
653
- filter((event) => !event.defaultPrevented)
654
- //tap((event) => event.preventDefault())
655
- ),
656
- this.keyupEnter.pipe(filter(() => isNotNilObject(this.formControl.value)))
657
- )
658
- .pipe(debounceTime(this.selectInputContentOnFocusDelay))
659
- .subscribe(() => {
660
- if (this.debug) console.debug(this.logPrefix + ' Selecting input content (focused)');
661
- selectInputContent(this.matInputText.nativeElement);
662
- })
663
- );
664
- }
665
-
666
- if (this.reloadItemsOnFocus) {
667
- this._subscription.add(
668
- this.focused.pipe(filter((event) => !this.loading && !event.defaultPrevented)).subscribe(() => {
669
- if (this.debug) console.debug(this.logPrefix + ' Reloading items (focused)');
670
- this.reloadItems();
671
- })
672
- );
673
- }
674
- }
675
-
676
- ngAfterViewInit() {
677
- this._fixMatSelectPositionAndSearchbar();
678
- }
679
-
680
- ngOnDestroy(): void {
681
- this._destroy$.next();
682
- this._destroy$.complete();
683
- this._subscription.unsubscribe();
684
- this._itemsSubscription?.unsubscribe();
685
- this._openedSubscription?.unsubscribe();
686
- this._$inputItems.complete();
687
- this._$inputItems.unsubscribe();
688
- this._$filteredItems.complete();
689
- this._$filteredItems.unsubscribe();
690
- this._reload$.complete();
691
- this._$filter.complete();
692
-
693
- this.dropButtonClick.complete();
694
- this.clicked.complete();
695
- this.blurred.complete();
696
- this.focused.complete();
697
- this.keydownEscape.complete();
698
- this.keyupEnter.complete();
699
- this._fetchMore$.complete();
700
-
701
- this._implicitValue = undefined;
702
- this.formControl = null;
703
- this.displayWith = null;
704
- this.equals = null;
705
- this.suggestFn = null;
706
- this._$filteredItems = null;
707
- this.config = null;
708
- this.panelClass = null;
709
-
710
- this._onChangeCallback = null;
711
- this._onTouchedCallback = null;
712
- this._onFetchMoreCallback = null;
713
-
714
- // Destroy the 'autocomplete' instance, to avoid memory leak
715
- this.autocomplete?.ngOnDestroy();
716
- }
717
-
718
- /**
719
- * Allow to reload content. Useful when filter has been changed but not detected
720
- */
721
- reloadItems(value?: any) {
722
- // DEBUG
723
- //if (this.debug) console.debug(this.logPrefix + ' Asking to reloadItems()', value);
724
- // Force a refresh
725
- this._reload$.next(value || (this.showAllOnFocus && this.suggestLengthThreshold <= 0 ? '*' : this.formControl.value));
726
-
727
- // Clear the search bar (only if hidden)
728
- if (this.matSelect && !this.matSelect.panelOpen && this.ionSearchbar) {
729
- this.ionSearchbar.value = null;
730
- }
731
- }
732
-
733
- writeValue(value: any): void {
734
- // DEBUG
735
- //if (this.debug) console.debug(this.logPrefix + ' Writing value: ', value);
736
-
737
- if (value !== this.formControl.value) {
738
- this.formControl.setValue(value, { emitEvent: false });
739
- this._displayValue = this.displayWith(value);
740
-
741
- this._onChangeCallback(value);
742
-
743
- // Check if need to update controls
744
- this.checkIfTouched();
745
- }
746
- }
747
-
748
- registerOnChange(fn: any): void {
749
- this._onChangeCallback = fn;
750
- }
751
-
752
- registerOnTouched(fn: any): void {
753
- this._onTouchedCallback = fn;
754
- }
755
-
756
- setDisabledState(isDisabled: boolean): void {
757
- if (isDisabled && this.autocomplete?.isOpen) {
758
- this.closePanel();
759
- }
760
- this.cd.markForCheck();
761
- }
762
-
763
- focus() {
764
- if (this.matSelect) {
765
- this.matSelect.focus();
766
- } else {
767
- focusInput(this.matInputText);
768
- }
769
- }
770
-
771
- filterInputTextFocusEvent(event: FocusEvent) {
772
- if (!event || event.defaultPrevented) {
773
- if (this.debug) console.debug(this.logPrefix + ' calling filterInputTextFocusEvent - event.defaultPrevented');
774
- return false;
775
- }
776
-
777
- // Ignore event from mat-option
778
- if (event.relatedTarget instanceof HTMLElement && event.relatedTarget.tagName === 'MAT-OPTION') {
779
- event.preventDefault();
780
- if (event.stopPropagation) event.stopPropagation();
781
- event.returnValue = false;
782
-
783
- // DEBUG
784
- //if (this.debug) console.debug(this.logPrefix + ' Cancelling focus event');
785
-
786
- return false;
787
- }
788
-
789
- // Already focused - fix issue sumaris-app#837 (2 panels opened at the same time)
790
- if (this._focused) return false;
791
-
792
- this._focused = true;
793
-
794
- // DEBUG
795
- //if (this.debug) console.debug(this.logPrefix + ' Select input content');
796
- const hasContent = isNotNilOrBlank((event.target as any)?.value);
797
-
798
- // If combo is empty, or if has content but should force to show panel on focus
799
- if (!hasContent || this.showPanelOnFocus || this.showAllOnFocus) {
800
- // DEBUG
801
- //if (this.debug) console.debug(this.logPrefix + ' Emit focus event');
802
-
803
- // Need a delay to prevent early focus event, just after a blur event (see issue sumaris-app#837 - 2 panels opened)
804
- setTimeout(() => {
805
- if (!this._focused) return; // Skip if blur event received
806
-
807
- this.focused.emit(event);
808
- }, 10);
809
-
810
- return true;
811
- }
812
- return false;
813
- }
814
-
815
- protected filterInputTextBlurEvent(event: FocusEvent) {
816
- if (!event || event.defaultPrevented) return;
817
-
818
- // DEBUG
819
- //if (this.debug) console.debug(this.logPrefix + ' filterInputTextBlurEvent', event);
820
-
821
- // Ignore event from mat-option
822
- if (
823
- (event.relatedTarget instanceof HTMLElement && event.relatedTarget.tagName === 'MAT-OPTION') ||
824
- // Or autocomplete panel is open because event.relatedTarget is null (cf. https://github.com/angular/components/issues/24182)
825
- (event.relatedTarget === null && this.autocomplete?.isOpen)
826
- ) {
827
- event.preventDefault();
828
- if (event.stopPropagation) event.stopPropagation();
829
- event.returnValue = false;
830
-
831
- // DEBUG
832
- //if (this.debug) console.debug(this.logPrefix + " Cancelling blur event");
833
-
834
- return;
835
- }
836
-
837
- // Already blurred: skip
838
- if (!this._focused) return;
839
-
840
- this._focused = false;
841
-
842
- // Need a delay to prevent early blur event without triggering formChange event
843
- setTimeout(() => {
844
- if (this._focused) return; // Skip if focus again
845
-
846
- this.blurred.emit(event);
847
- }, 100);
848
- }
849
-
850
- protected ionSearchBarChanged(event: Event) {
851
- if (!event || event.defaultPrevented || !this.matSelect.panelOpen) return;
852
- event.preventDefault();
853
- event.stopPropagation();
854
-
855
- // Get the value to search
856
- const value = (event as CustomEvent<SearchbarChangeEventDetail>)?.detail.value;
857
-
858
- // DEBUG
859
- //console.debug(this.logPrefix + " Received <ion-searchbar> changes", value);
860
-
861
- // Update the display value (in the visible form control)
862
- if (!this.multiple) {
863
- this._displayValue = value;
864
- }
865
-
866
- // Mark component as loading
867
- this.markAsLoading();
868
-
869
- // Reload items
870
- this.reloadItems(value);
871
-
872
- // TODO Find a way to avoid mat-select to give focus to an option, when typing
873
- /*if (this.multiple) {
874
- this.matSelect._elementRef;
875
- }*/
876
- }
877
-
878
- filterMatSelectFocusEvent(event: FocusEvent) {
879
- if (!event || event.defaultPrevented) return;
880
- // DEBUG
881
- //console.debug(this.logPrefix + ' Received <mat-select> focus event', event);
882
-
883
- // Emit event
884
- this.focused.emit(event);
885
- }
886
-
887
- filterMatSelectBlurEvent(event: FocusEvent) {
888
- if (!event || event.defaultPrevented) return;
889
-
890
- // DEBUG
891
- // console.debug(this.logPrefix + " Received <mat-select> blur event", event);
892
-
893
- if (
894
- event.relatedTarget instanceof HTMLElement &&
895
- // Ignore event from mat-option
896
- (event.relatedTarget.tagName === 'MAT-OPTION' ||
897
- (event.relatedTarget.tagName === 'DIV' && event.relatedTarget.classList.contains('mat-mdc-select-panel')) || // New MDC tag and class name (equivalent to event.relatedTarget.tagName === 'MAT-OPTION')
898
- (event.relatedTarget.tagName === 'INPUT' && event.relatedTarget.classList.contains('searchbar-input')))
899
- ) {
900
- event.preventDefault();
901
- if (event.stopPropagation) event.stopPropagation();
902
- event.returnValue = false;
903
- // DEBUG
904
- // console.debug(this.logPrefix + " Cancelling <mat-select> blur event");
905
- return false;
906
- }
907
-
908
- if (this._focused) {
909
- this._focused = false;
910
-
911
- this.blurred.emit(event);
912
- }
913
-
914
- return true;
915
- }
916
-
917
- clearValue(event?: Event) {
918
- this.closePanel();
919
- this.writeValue(null);
920
- event?.stopPropagation();
921
- if (this.ionSearchbar) {
922
- this.ionSearchbar.value = null;
923
- }
924
- this.markAsLoading();
925
- }
926
-
927
- _initAutocompleteInfiniteScroll(threshold?: string) {
928
- if (!this.autocomplete) return; // Skip
929
-
930
- // DEBUG
931
- //console.debug(this.logPrefix + ' Init autocomplete scroll listener');
932
-
933
- if (this._openedSubscription) {
934
- this._openedSubscription.unsubscribe();
935
- this._subscription.remove(this._openedSubscription);
936
- }
937
-
938
- const opened$: Observable<any> = this.autocomplete._isOpen ? timer(0) : this.autocomplete.opened.pipe(debounceTime(200));
939
- const scrollEnd$ = opened$.pipe(
940
- map(() => this.getAutocompletePanel()),
941
- filter(isNotNil),
942
- switchMap((panel) => fromScrollEndEvent(panel, threshold)),
943
- takeUntil(this.autocomplete.closed)
944
- );
945
-
946
- // Trigger fetch more, when end scroll reached
947
- this._openedSubscription = scrollEnd$.subscribe(() => this._fetchMore$.emit());
948
-
949
- // Register subscription
950
- this._subscription.add(this._openedSubscription);
951
- }
952
-
953
- _initMatSelectInfiniteScroll(threshold?: string) {
954
- if (!this.matSelect) return; // Skip
955
-
956
- // DEBUG
957
- console.debug(this.logPrefix + ' Init mat-select scroll listener');
958
-
959
- if (this._openedSubscription) {
960
- this._openedSubscription.unsubscribe();
961
- this._subscription.remove(this._openedSubscription);
962
- }
963
-
964
- const opened$: Observable<any> = this.matSelect.panelOpen ? timer(0) : this.matSelect._openedStream.pipe(debounceTime(200));
965
- const scrollEnd$ = opened$.pipe(
966
- map(() => this.getMatSelectPanel()),
967
- filter(isNotNil),
968
- switchMap((panel) => fromScrollEndEvent(panel, threshold)),
969
- takeUntil(this.matSelect._closedStream)
970
- );
971
-
972
- // Trigger fetch more, end end scroll reached
973
- this._openedSubscription = scrollEnd$.pipe(filter(() => this._moreItemsCount > 0)).subscribe(() => this._fetchMore$.emit());
974
-
975
- // Register subscription
976
- this._subscription.add(this._openedSubscription);
977
- }
978
-
979
- get isOpen(): boolean {
980
- return this.autocomplete?.isOpen || this.matSelect?.panelOpen || false;
981
- }
982
-
983
- closePanel() {
984
- if (this.autocomplete?.isOpen) {
985
- this.autocompleteTrigger?.closePanel();
986
- } else if (this.matSelect?.panelOpen) {
987
- this.matSelect?.close();
988
- }
989
- }
990
-
991
- /* -- protected method -- */
992
-
993
- protected markAsLoading() {
994
- if (this._$filteredItems.value) {
995
- if (this.debug) console.debug(this.logPrefix + ' Marking as loading');
996
-
997
- this._$filteredItems.next(undefined);
998
- this._itemCount = undefined;
999
- this._implicitValue = undefined;
1000
- this._onFetchMoreCallback = undefined;
1001
- this._moreItemsCount = 0;
1002
- this._selectedItem = null;
1003
- this.markForCheck();
1004
- }
1005
- }
1006
-
1007
- protected onSelectionChange(event: MatSelectChange) {
1008
- this.selectionChange.emit({ source: event.source, value: event.value });
1009
- }
1010
-
1011
- protected onOptionSelected(event: MatAutocompleteSelectedEvent) {
1012
- // DEBUG
1013
- //if (this.debug) console.debug(this.logPrefix + ' Option selected', event);
1014
-
1015
- this.selectionChange.emit({ source: event.source, value: event.option.value });
1016
- }
1017
-
1018
- protected toggleShowPanel(event: Event) {
1019
- if (this.isOpen) {
1020
- event?.preventDefault();
1021
- event?.stopPropagation();
1022
- this.closePanel();
1023
- } else {
1024
- this.dropButtonClick.emit(event);
1025
- }
1026
- }
1027
-
1028
- /* -- private method -- */
1029
-
1030
- private async suggest(value: any, filter: any | undefined): Promise<any[] | undefined> {
1031
- // Compute a new execution id
1032
- const id = ++this._suggestExecutionId;
1033
-
1034
- // Split string value, if allow (.e.g 'AAA - Item AAA' => 'AAA')
1035
- if (!(this.multiple || this.mobile) && typeof value === 'string') {
1036
- // Split search text (and keep only the first part)
1037
- if (this.splitSearchText && this.displaySeparator) {
1038
- const firstSeparatorIndex = value.indexOf(this.displaySeparator);
1039
- if (firstSeparatorIndex !== -1) {
1040
- value = value.substring(0, firstSeparatorIndex);
1041
- }
1042
- }
1043
-
1044
- // Trim search text
1045
- if (this.trimSearchText) {
1046
- value = value.trim();
1047
- }
1048
- }
1049
-
1050
- // Call suggestion function
1051
- let res = await this.suggestFn(value, filter);
1052
-
1053
- // Ignore the current result, if a newer execution has been launched
1054
- if (id !== this._suggestExecutionId) return undefined;
1055
-
1056
- // DEBUG
1057
- //if (this.debug) console.debug(this.logPrefix + ' Filtered items by suggestFn:', value, res);
1058
-
1059
- if (!res) {
1060
- this._itemCount = 0;
1061
- this._onFetchMoreCallback = undefined;
1062
- this._moreItemsCount = 0;
1063
- res = [];
1064
- } else if (Array.isArray(res)) {
1065
- res = res as any[];
1066
- this._itemCount = res?.length || 0;
1067
- this._onFetchMoreCallback = undefined;
1068
- this._moreItemsCount = 0;
1069
- } else {
1070
- const { data, total, fetchMore } = res as LoadResult<any>;
1071
- this._itemCount = toNumber(total, (data && data.length) || 0);
1072
- this._onFetchMoreCallback = fetchMore;
1073
- this._moreItemsCount = (fetchMore && this._itemCount - data.length) || 0;
1074
- res = data;
1075
- }
1076
-
1077
- // Add favorites
1078
- if (isNotEmptyArray(this.favoriteItems)) {
1079
- const showAllFavorites = !value || value === '*' || (isNotNilObject(value) && this.showAllOnFocus);
1080
- const sortAttributes = this.displayAttributes || (filter && ((filter.searchAttribute && [filter.searchAttribute]) || filter.searchAttributes));
1081
- const filteredFavoriteItems = showAllFavorites
1082
- ? this.favoriteItems.sort(propertiesPathComparator(sortAttributes))
1083
- : suggestFromArray(this.favoriteItems, value, this.filter)?.data;
1084
- if (isNotEmptyArray(filteredFavoriteItems)) {
1085
- filteredFavoriteItems.sort(propertiesPathComparator(this.displayAttributes));
1086
- res = filteredFavoriteItems.concat(res.filter((item) => !filteredFavoriteItems.some((favoriteItem) => this.equals(favoriteItem, item))));
1087
- }
1088
- }
1089
-
1090
- // DEBUG
1091
- if (this.debug) console.debug(this.logPrefix + ' Filtered items by suggestFn:', value, res);
1092
-
1093
- return res;
1094
- }
1095
-
1096
- private async fetchMore(): Promise<any[]> {
1097
- if (!this._onFetchMoreCallback) return [];
1098
-
1099
- // Save then remove fetch function (to avoid multi-call)
1100
- const fetchMoreFn = this._onFetchMoreCallback;
1101
- this._onFetchMoreCallback = undefined;
1102
-
1103
- let { data: items, total, fetchMore } = await fetchMoreFn();
1104
-
1105
- // Exclude favorites
1106
- if (isNotEmptyArray(this.favoriteItems)) {
1107
- items = items.filter((item) => !this.favoriteItems.some((favoriteItem) => this.equals(favoriteItem, item)));
1108
- }
1109
-
1110
- this._itemCount = total || this._itemCount;
1111
- this._onFetchMoreCallback = fetchMore;
1112
- this._moreItemsCount = Math.max(0, this._moreItemsCount - items.length); // Borne min = 0
1113
- return items;
1114
- }
1115
-
1116
- private updateImplicitValue(items: any[]) {
1117
- // Store implicit value (will use it onBlur if not other value selected)
1118
- if (!this.multiple && items?.length === 1) {
1119
- const implicitValue = items[0];
1120
- const applyImplicitValue = typeof this.applyImplicitValue === 'function' ? this.applyImplicitValue(implicitValue) : this.applyImplicitValue;
1121
- if (applyImplicitValue) {
1122
- this._implicitValue = implicitValue;
1123
-
1124
- // Preview the implicit in the input text (and select the added part)
1125
- if (this.previewImplicitValue && this.matInputText?.nativeElement) {
1126
- const searchText = this.matInputText.nativeElement.value;
1127
-
1128
- // Complete the search text, with the full implicit value applied
1129
- if (!RegExpUtils.hasWildcardCharacter(searchText)) {
1130
- const displayValue = this.displayWith(implicitValue);
1131
- if (displayValue.toUpperCase().startsWith(searchText.toUpperCase())) {
1132
- // Select the additional text to match the implicit value
1133
- this.setInputTextValue(displayValue, searchText.length, displayValue.length, 'backward');
1134
- }
1135
- }
1136
- }
1137
-
1138
- return;
1139
- }
1140
- // Continue : reste implicit value
1141
- }
1142
-
1143
- this._implicitValue = undefined;
1144
- }
1145
-
1146
- private checkIfTouched() {
1147
- if (this.formControl.touched) {
1148
- this.cd.markForCheck();
1149
- this._onTouchedCallback();
1150
- }
1151
- }
1152
-
1153
- private getAutocompletePanel(): HTMLElement {
1154
- const ele = this.autocomplete?.options.last?._getHostElement().parentElement;
1155
- if (!ele) {
1156
- // DEBUG
1157
- console.warn(this.logPrefix + ' Unable to find the autocomplete div...');
1158
- }
1159
- return ele;
1160
- }
1161
-
1162
- private getMatSelectPanel(): HTMLElement {
1163
- const ele = this.matSelect.options.last?._getHostElement().parentElement;
1164
- if (!ele) {
1165
- // DEBUG
1166
- console.warn(this.logPrefix + ' Unable to find the mat-select container...');
1167
- }
1168
- return ele;
1169
- }
1170
-
1171
- private markForCheck() {
1172
- this.cd.markForCheck();
1173
- }
1174
-
1175
- private _fixMatSelectPositionAndSearchbar() {
1176
- if (!this.matSelect) return;
1177
-
1178
- // Hide the panel (will be show when ready)
1179
- this.matSelect.panelClass = 'hidden';
1180
-
1181
- let searchBarSubscription: Subscription;
1182
- this._subscription.add(
1183
- this.matSelect.openedChange.subscribe(async (open) => {
1184
- if (open) {
1185
- const panelElement = this.matSelect.panel.nativeElement as HTMLElement;
1186
- const overlayPane = findParentWithClass(panelElement, 'cdk-overlay-pane');
1187
-
1188
- // Fix panel position, when overlay has an transformX (added when keyboard is shown)
1189
- this._fixMatSelectPanelPosition(overlayPane);
1190
-
1191
- // Fix overlay, for searchbar
1192
- if (this.showSearchBar) {
1193
- searchBarSubscription = await this._fixSearchbarOverlay(panelElement, overlayPane);
1194
- if (searchBarSubscription) this._subscription.add(searchBarSubscription);
1195
- }
1196
-
1197
- // Show the panel
1198
- this.renderer.removeClass(panelElement, 'hidden');
1199
- this.matSelect.panelClass = this.panelClass;
1200
- }
1201
- // ON close
1202
- else {
1203
- // Unsubscribe search bar workaround
1204
- if (searchBarSubscription) {
1205
- searchBarSubscription.unsubscribe();
1206
- this._subscription.remove(searchBarSubscription);
1207
- searchBarSubscription = null;
1208
-
1209
- // Hide panel again
1210
- this.matSelect.panelClass = 'hidden';
1211
- }
1212
- }
1213
- })
1214
- );
1215
- }
1216
-
1217
- private _fixMatSelectPanelPosition(overlayPane: HTMLElement) {
1218
- if (!overlayPane) return;
1219
-
1220
- // Remove the unwanted default translateX
1221
- this.renderer.setStyle(
1222
- overlayPane,
1223
- 'transform',
1224
- overlayPane.style.transform
1225
- .split(' ')
1226
- .filter((prop) => !prop.match(/^translateX/))
1227
- .join(' ')
1228
- );
1229
-
1230
- // Fix panel width to field width (it was not forced by @Input panelWidth)
1231
- if (!this.panelWidth) {
1232
- if (this.debug) console.debug(`${this.logPrefix} Fixing select panel width to the field size`);
1233
- const width = `${this.el.nativeElement.offsetWidth - 1}px`;
1234
- if (this._defaultPanelWidth !== width) {
1235
- this._defaultPanelWidth = width;
1236
- this.renderer.setStyle(overlayPane, 'width', width);
1237
- }
1238
- }
1239
-
1240
- // Fix panel's left, to avoid overflow on the right
1241
- const left = overlayPane.style.left;
1242
- if (isNotNilOrBlank(left) && !left.includes('calc(') && left.endsWith('px')) {
1243
- if (this.debug) console.debug(`${this.logPrefix} Fixing select panel left, to avoid overflow on the right`);
1244
- const width = `${overlayPane.clientWidth}px`;
1245
- const fixLeft = `calc(-${width} + min(${left} + ${width}, -32px + 100vw))`;
1246
- this.renderer.setStyle(overlayPane, 'left', fixLeft, RendererStyleFlags2.Important);
1247
- }
1248
-
1249
- // Fix panel's top, to avoid overflow on the bottom
1250
- const top = overlayPane.style.top;
1251
- if (isNotNilOrBlank(top) && !top.includes('calc(') && top.endsWith('px')) {
1252
- if (this.debug) console.debug(`${this.logPrefix} Fixing select panel top, to avoid overflow on the bottom`);
1253
- const height = `${overlayPane.clientHeight || 275}px`;
1254
- const fixTop = `calc(-${height} + min(${top} + ${height}, -32px + 100vh))`;
1255
- this.renderer.setStyle(overlayPane, 'top', fixTop, RendererStyleFlags2.Important);
1256
- }
1257
- }
1258
-
1259
- /**
1260
- * Hack : if we are in a IonModal, it's necessary to move the CdkOverlay container
1261
- * in the IonModal to might keep focus in IonSearchbar.
1262
- *
1263
- * @param panelElement
1264
- * @param overlayPane
1265
- * @private
1266
- */
1267
- private async _fixSearchbarOverlay(panelElement: HTMLElement, overlayPane: HTMLElement): Promise<Subscription | undefined> {
1268
- if (!this.matSelect || !this.ionSearchbar) return;
1269
-
1270
- const modalElement = await this.modalController.getTop();
1271
- if (!modalElement) return; // No modal: skip
1272
-
1273
- // Get the CDK overlay container
1274
- const overlayContainer = findParentWithClass(panelElement, 'cdk-overlay-container');
1275
- if (!overlayContainer) return;
1276
- const originalParent = overlayContainer.parentElement;
1277
-
1278
- // DEBUG
1279
- //if (this.debug)
1280
- console.debug(
1281
- `${this.logPrefix} Moving the "cdk-overlay" container from the "${originalParent?.tagName || 'body'}" to the "ion-modal" container`
1282
- );
1283
-
1284
- this.renderer.appendChild(modalElement, overlayContainer);
1285
-
1286
- const _document = this.injector.get(DOCUMENT);
1287
- const shiftLeft = (_document.defaultView.innerWidth - modalElement.firstElementChild.getBoundingClientRect().width) / 2;
1288
- const shiftTop = (_document.defaultView.innerHeight - modalElement.firstElementChild.getBoundingClientRect().height) / 2;
1289
-
1290
- this.renderer.setStyle(overlayPane, 'margin-top', `-${shiftTop}px`);
1291
- this.renderer.setStyle(overlayPane, 'margin-left', `-${shiftLeft}px`);
1292
-
1293
- // Return the reverse function, to replace the container in body
1294
- return new Subscription(() => {
1295
- // DEBUG
1296
- //if (this.debug)
1297
- console.debug(`${this.logPrefix} moving the "cdk-overlay" container from the "ion-modal" to the "body" container`);
1298
-
1299
- this.renderer.appendChild(originalParent /*this.document.body*/, overlayContainer);
1300
- });
1301
- }
1302
-
1303
- private setInputTextValue(value: string, selectionStartIndex?: number, selectionEndIndex?: number, direction?: 'backward' | 'forward') {
1304
- // Apply to the input[type=text] field
1305
- if (this.matInputText?.nativeElement) {
1306
- this.matInputText.nativeElement.value = value ?? '';
1307
- if (isNotNil(selectionStartIndex)) {
1308
- setTimeout(() => {
1309
- selectInputRange(this.matInputText.nativeElement, selectionStartIndex, selectionEndIndex, direction);
1310
- });
1311
- }
1312
- }
1313
- }
1314
-
1315
- protected onBackspace(event: Event): void {
1316
- const input = event?.target as HTMLInputElement;
1317
-
1318
- // If preview enabled, remove selection when press backspace (by default only the selection will be deleted)
1319
- if (this.previewImplicitValue && input) {
1320
- const selectionStart = input.selectionStart;
1321
- const selectionEnd = input.selectionEnd;
1322
- let value = input.value;
1323
-
1324
- // Make sure to remove the last typed character (by default only the selection will be deleted)
1325
- if (this._implicitValue && selectionStart > 0 && selectionStart < selectionEnd && value.length === selectionEnd) {
1326
- // DEBUG
1327
- //if (this.debug) console.debug(`${this.logPrefix} Backspace pressed, additional text from the implicit value`);
1328
-
1329
- event.preventDefault();
1330
-
1331
- // Define the new value by removing the text in the adjusted range
1332
- const newCaretPosition = selectionStart - 1;
1333
- value = newCaretPosition > 0 ? value.slice(0, newCaretPosition) : '';
1334
-
1335
- // clean implicit value
1336
- this._implicitValue = null;
1337
-
1338
- // Apply the new value and update the selection
1339
- this.setInputTextValue(value, newCaretPosition, selectionEnd);
1340
-
1341
- // Mark component as loading
1342
- this.markAsLoading();
1343
-
1344
- // Reload items
1345
- this.reloadItems(value);
1346
- }
1347
- }
1348
-
1349
- // Emit
1350
- this.keydownBackspace.emit(event);
1351
- }
1352
-
1353
- protected toggleFavoriteClick(event: UIEvent, value: any) {
1354
- if (isNil(value) || event?.defaultPrevented || !this.toggleFavorite.observed) return; // Skip
1355
-
1356
- // DEBUG
1357
- //if (this.debug) console.debug(this.logPrefix + ' Favorite item clicked', value);
1358
-
1359
- if (event) {
1360
- event.preventDefault();
1361
- event.stopPropagation();
1362
- event.stopImmediatePropagation();
1363
- }
1364
-
1365
- const isFavorite = this.favoriteItems?.some((favoriteItem) => this.equals(favoriteItem, value));
1366
- if (isFavorite) {
1367
- this.favoriteItems = this.favoriteItems.filter((favoriteItem) => !this.equals(favoriteItem, value));
1368
- } else {
1369
- this.favoriteItems = this.favoriteItems.concat(value);
1370
- }
1371
-
1372
- // Emit changes
1373
- this.toggleFavorite.emit({ source: this.matSelect || this.autocomplete, value: value });
1374
- }
1375
- }