@sumaris-net/ngx-components 1.23.44 → 2.0.0-rc3

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 (739) hide show
  1. package/doc/build.md +2 -2
  2. package/doc/changelog.md +8 -0
  3. package/esm2020/public_api.mjs +278 -0
  4. package/esm2020/public_test_api.mjs +46 -0
  5. package/esm2020/src/app/admin/admin-routing.module.mjs +41 -0
  6. package/esm2020/src/app/admin/admin.module.mjs +34 -0
  7. package/esm2020/src/app/admin/services/filter/person.filter.mjs +59 -0
  8. package/esm2020/src/app/admin/services/person.service.mjs +161 -0
  9. package/esm2020/src/app/admin/services/validator/person.validator.mjs +34 -0
  10. package/esm2020/src/app/admin/users/list/users.mjs +233 -0
  11. package/esm2020/src/app/admin/users/list/users.module.mjs +58 -0
  12. package/esm2020/src/app/core/about/modal-about.mjs +71 -0
  13. package/esm2020/src/app/core/account/account.mjs +230 -0
  14. package/esm2020/src/app/core/auth/form/form-auth.mjs +131 -0
  15. package/esm2020/src/app/core/auth/modal/modal-auth.mjs +72 -0
  16. package/esm2020/src/app/core/core.module.mjs +223 -0
  17. package/esm2020/src/app/core/core.testing.module.mjs +86 -0
  18. package/esm2020/src/app/core/form/editor.class.mjs +672 -0
  19. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +407 -0
  20. package/esm2020/src/app/core/form/entity-editor.class.mjs +646 -0
  21. package/esm2020/src/app/core/form/entity-metadata.component.mjs +25 -0
  22. package/esm2020/src/app/core/form/form-buttons-bar.component.mjs +71 -0
  23. package/esm2020/src/app/core/form/form.class.mjs +337 -0
  24. package/esm2020/src/app/core/form/form.utils.mjs +299 -0
  25. package/esm2020/src/app/core/form/list.form.mjs +222 -0
  26. package/esm2020/src/app/core/form/properties/properties.form.mjs +129 -0
  27. package/esm2020/src/app/core/form/properties/property.validator.mjs +23 -0
  28. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +90 -0
  29. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +39 -0
  30. package/esm2020/src/app/core/graphql/graphql.module.mjs +22 -0
  31. package/esm2020/src/app/core/graphql/graphql.service.mjs +730 -0
  32. package/esm2020/src/app/core/graphql/graphql.utils.mjs +117 -0
  33. package/esm2020/src/app/core/home/home.mjs +257 -0
  34. package/esm2020/src/app/core/icon/icon.component.mjs +41 -0
  35. package/esm2020/src/app/core/icon/icon.module.mjs +29 -0
  36. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +337 -0
  37. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +33 -0
  38. package/esm2020/src/app/core/menu/menu.component.mjs +317 -0
  39. package/{esm2015/src/app/core/menu/menu.model.js → esm2020/src/app/core/menu/menu.model.mjs} +0 -0
  40. package/esm2020/src/app/core/menu/menu.module.mjs +45 -0
  41. package/{esm2015/src/app/core/menu/menu.service.js → esm2020/src/app/core/menu/menu.service.mjs} +9 -7
  42. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +27 -0
  43. package/esm2020/src/app/core/peer/select-peer.modal.mjs +130 -0
  44. package/esm2020/src/app/core/peer/select-peer.module.mjs +35 -0
  45. package/esm2020/src/app/core/register/confirm/confirm.mjs +81 -0
  46. package/esm2020/src/app/core/register/form/form-register.mjs +181 -0
  47. package/esm2020/src/app/core/register/modal/modal-register.mjs +52 -0
  48. package/esm2020/src/app/core/register/register.module.mjs +42 -0
  49. package/esm2020/src/app/core/services/account.service.mjs +1112 -0
  50. package/esm2020/src/app/core/services/auth-guard.service.mjs +71 -0
  51. package/esm2020/src/app/core/services/base-entity-service.class.mjs +432 -0
  52. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +219 -0
  53. package/{esm2015/src/app/core/services/base58.js → esm2020/src/app/core/services/base58.mjs} +0 -0
  54. package/{esm2015/src/app/core/services/config/core.config.js → esm2020/src/app/core/services/config/core.config.mjs} +0 -0
  55. package/esm2020/src/app/core/services/config.service.mjs +354 -0
  56. package/{esm2015/src/app/core/services/crypto.service.js → esm2020/src/app/core/services/crypto.service.mjs} +7 -5
  57. package/{esm2015/src/app/core/services/errors.js → esm2020/src/app/core/services/errors.mjs} +0 -0
  58. package/esm2020/src/app/core/services/local-settings.service.mjs +442 -0
  59. package/esm2020/src/app/core/services/model/account.model.mjs +50 -0
  60. package/esm2020/src/app/core/services/model/config.model.mjs +89 -0
  61. package/esm2020/src/app/core/services/model/department.model.mjs +30 -0
  62. package/esm2020/src/app/core/services/model/entity.decorators.mjs +107 -0
  63. package/esm2020/src/app/core/services/model/entity.model.mjs +242 -0
  64. package/{esm2015/src/app/core/services/model/filter.model.js → esm2020/src/app/core/services/model/filter.model.mjs} +0 -0
  65. package/{esm2015/src/app/core/services/model/history.model.js → esm2020/src/app/core/services/model/history.model.mjs} +0 -0
  66. package/{esm2015/src/app/core/services/model/model.enum.js → esm2020/src/app/core/services/model/model.enum.mjs} +0 -0
  67. package/esm2020/src/app/core/services/model/peer.model.mjs +68 -0
  68. package/esm2020/src/app/core/services/model/person.model.mjs +83 -0
  69. package/esm2020/src/app/core/services/model/referential.model.mjs +145 -0
  70. package/esm2020/src/app/core/services/model/settings.model.mjs +75 -0
  71. package/esm2020/src/app/core/services/network.service.mjs +595 -0
  72. package/esm2020/src/app/core/services/network.utils.mjs +16 -0
  73. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +38 -0
  74. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +23 -0
  75. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +23 -0
  76. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +37 -0
  77. package/esm2020/src/app/core/services/platform.service.mjs +476 -0
  78. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +422 -0
  79. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +449 -0
  80. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +23 -0
  81. package/esm2020/src/app/core/services/testing/referential.validator.mjs +45 -0
  82. package/esm2020/src/app/core/services/validator/account.validator.mjs +52 -0
  83. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +47 -0
  84. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +66 -0
  85. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +29 -0
  86. package/esm2020/src/app/core/settings/settings.page.mjs +290 -0
  87. package/esm2020/src/app/core/table/actions-column.component.mjs +96 -0
  88. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +394 -0
  89. package/esm2020/src/app/core/table/memory-table.class.mjs +53 -0
  90. package/esm2020/src/app/core/table/table-select-columns.component.mjs +43 -0
  91. package/esm2020/src/app/core/table/table.class.mjs +1666 -0
  92. package/esm2020/src/app/core/table/table.utils.mjs +13 -0
  93. package/esm2020/src/app/core/table/testing/table.testing.mjs +264 -0
  94. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +38 -0
  95. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +37 -0
  96. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +45 -0
  97. package/esm2020/src/app/core/text-popover/text-form.component.mjs +84 -0
  98. package/esm2020/src/app/core/text-popover/text-popover.component.mjs +92 -0
  99. package/esm2020/src/app/shared/alerts.mjs +238 -0
  100. package/esm2020/src/app/shared/audio/audio.mjs +201 -0
  101. package/esm2020/src/app/shared/audio/audio.testing.mjs +31 -0
  102. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +45 -0
  103. package/esm2020/src/app/shared/capacitor/keyboard.mjs +40 -0
  104. package/esm2020/src/app/shared/capacitor/plugins.mjs +9 -0
  105. package/{esm2015/src/app/shared/constants.js → esm2020/src/app/shared/constants.mjs} +2 -1
  106. package/esm2020/src/app/shared/dates.mjs +134 -0
  107. package/esm2020/src/app/shared/debug/debug.component.mjs +39 -0
  108. package/esm2020/src/app/shared/debug/debug.module.mjs +44 -0
  109. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +92 -0
  110. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +30 -0
  111. package/esm2020/src/app/shared/directives/directives.module.mjs +43 -0
  112. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +53 -0
  113. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +31 -0
  114. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +59 -0
  115. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +40 -0
  116. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +17 -0
  117. package/esm2020/src/app/shared/events.mjs +64 -0
  118. package/esm2020/src/app/shared/file/csv.utils.mjs +74 -0
  119. package/esm2020/src/app/shared/file/file.service.mjs +117 -0
  120. package/esm2020/src/app/shared/file/file.utils.mjs +113 -0
  121. package/esm2020/src/app/shared/file/images.utils.mjs +161 -0
  122. package/{esm2015/src/app/shared/file/uri.utils.js → esm2020/src/app/shared/file/uri.utils.mjs} +0 -0
  123. package/{esm2015/src/app/shared/focusable.js → esm2020/src/app/shared/focusable.mjs} +0 -0
  124. package/esm2020/src/app/shared/form/field.component.mjs +244 -0
  125. package/{esm2015/src/app/shared/form/field.model.js → esm2020/src/app/shared/form/field.model.mjs} +1 -1
  126. package/esm2020/src/app/shared/form/loading-spinner.mjs +36 -0
  127. package/esm2020/src/app/shared/forms.mjs +374 -0
  128. package/esm2020/src/app/shared/functions.mjs +430 -0
  129. package/{esm2015/src/app/shared/gesture/gesture-config.js → esm2020/src/app/shared/gesture/gesture-config.mjs} +7 -5
  130. package/esm2020/src/app/shared/gesture/hammer.utils.mjs +2 -0
  131. package/{esm2015/src/app/shared/graph/colors.utils.js → esm2020/src/app/shared/graph/colors.utils.mjs} +0 -0
  132. package/esm2020/src/app/shared/graph/graph-colors.mjs +254 -0
  133. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +57 -0
  134. package/esm2020/src/app/shared/help/help.modal.mjs +53 -0
  135. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +23 -0
  136. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +84 -0
  137. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +42 -0
  138. package/esm2020/src/app/shared/http/http.utils.mjs +52 -0
  139. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +279 -0
  140. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +46 -0
  141. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +27 -0
  142. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +89 -0
  143. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +33 -0
  144. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +56 -0
  145. package/esm2020/src/app/shared/image/image.model.mjs +2 -0
  146. package/esm2020/src/app/shared/image/image.module.mjs +29 -0
  147. package/esm2020/src/app/shared/image/image.service.mjs +99 -0
  148. package/{esm2015/src/app/shared/inputs.js → esm2020/src/app/shared/inputs.mjs} +4 -4
  149. package/{esm2015/src/app/shared/interceptors/progess.interceptor.js → esm2020/src/app/shared/interceptors/progess.interceptor.mjs} +0 -0
  150. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +47 -0
  151. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +836 -0
  152. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +78 -0
  153. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +19 -0
  154. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +205 -0
  155. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +157 -0
  156. package/esm2020/src/app/shared/material/badge/badge.module.mjs +32 -0
  157. package/esm2020/src/app/shared/material/badge/badge.test.mjs +26 -0
  158. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +68 -0
  159. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +253 -0
  160. package/esm2020/src/app/shared/material/chips/chips.module.mjs +76 -0
  161. package/esm2020/src/app/shared/material/chips/material.chips.mjs +691 -0
  162. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +136 -0
  163. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +91 -0
  164. package/esm2020/src/app/shared/material/datetime/material.date.mjs +388 -0
  165. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +327 -0
  166. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +434 -0
  167. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +110 -0
  168. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +111 -0
  169. package/esm2020/src/app/shared/material/duration/duration.module.mjs +67 -0
  170. package/{esm2015/src/app/shared/material/duration/duration.utils.js → esm2020/src/app/shared/material/duration/duration.utils.mjs} +0 -0
  171. package/esm2020/src/app/shared/material/duration/material.duration.mjs +257 -0
  172. package/esm2020/src/app/shared/material/latlong/latlong.utils.mjs +266 -0
  173. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +381 -0
  174. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +67 -0
  175. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +74 -0
  176. package/{esm2015/src/app/shared/material/material.animations.js → esm2020/src/app/shared/material/material.animations.mjs} +0 -0
  177. package/esm2020/src/app/shared/material/material.module.mjs +224 -0
  178. package/esm2020/src/app/shared/material/material.testing.module.mjs +145 -0
  179. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +98 -0
  180. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +80 -0
  181. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +190 -0
  182. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +17 -0
  183. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +162 -0
  184. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +37 -0
  185. package/{esm2015/src/app/shared/material/numpad/numpad.model.js → esm2020/src/app/shared/material/numpad/numpad.model.mjs} +1 -1
  186. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +60 -0
  187. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +46 -0
  188. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +42 -0
  189. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +22 -0
  190. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +334 -0
  191. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +51 -0
  192. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +65 -0
  193. package/esm2020/src/app/shared/observables.mjs +96 -0
  194. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +135 -0
  195. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +23 -0
  196. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +49 -0
  197. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +42 -0
  198. package/{esm2015/src/app/shared/pipes/date-from-now.pipe.js → esm2020/src/app/shared/pipes/date-from-now.pipe.mjs} +13 -12
  199. package/{esm2015/src/app/shared/pipes/duration.pipe.js → esm2020/src/app/shared/pipes/duration.pipe.mjs} +13 -12
  200. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +62 -0
  201. package/esm2020/src/app/shared/pipes/form.pipes.mjs +187 -0
  202. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +48 -0
  203. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +46 -0
  204. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +63 -0
  205. package/esm2020/src/app/shared/pipes/math.pipes.mjs +59 -0
  206. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +21 -0
  207. package/{esm2015/src/app/shared/pipes/number-format.pipe.js → esm2020/src/app/shared/pipes/number-format.pipe.mjs} +14 -9
  208. package/esm2020/src/app/shared/pipes/pipes.module.mjs +210 -0
  209. package/esm2020/src/app/shared/pipes/property.pipes.mjs +96 -0
  210. package/esm2020/src/app/shared/pipes/string.pipes.mjs +69 -0
  211. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +43 -0
  212. package/esm2020/src/app/shared/platforms.mjs +49 -0
  213. package/esm2020/src/app/shared/services/entity-service.class.mjs +7 -0
  214. package/esm2020/src/app/shared/services/job.utils.mjs +92 -0
  215. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +331 -0
  216. package/esm2020/src/app/shared/services/progress-bar.service.mjs +32 -0
  217. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +119 -0
  218. package/esm2020/src/app/shared/services/startable-service.class.mjs +105 -0
  219. package/esm2020/src/app/shared/services/storage/storage.service.mjs +132 -0
  220. package/esm2020/src/app/shared/services/storage/storage.utils.mjs +13 -0
  221. package/esm2020/src/app/shared/services/translate-context.service.mjs +81 -0
  222. package/esm2020/src/app/shared/services/validator-service.class.mjs +2 -0
  223. package/esm2020/src/app/shared/services.mjs +62 -0
  224. package/esm2020/src/app/shared/shared-routing.module.mjs +63 -0
  225. package/esm2020/src/app/shared/shared.module.mjs +208 -0
  226. package/esm2020/src/app/shared/shared.testing.module.mjs +76 -0
  227. package/esm2020/src/app/shared/testing/tests.page.mjs +33 -0
  228. package/esm2020/src/app/shared/toast/toast.testing.mjs +51 -0
  229. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +45 -0
  230. package/esm2020/src/app/shared/toast/toasts.mjs +144 -0
  231. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +58 -0
  232. package/esm2020/src/app/shared/toolbar/toolbar.mjs +226 -0
  233. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +53 -0
  234. package/{esm2015/src/app/shared/types.js → esm2020/src/app/shared/types.mjs} +0 -0
  235. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +57 -0
  236. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +45 -0
  237. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +97 -0
  238. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +204 -0
  239. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +20 -0
  240. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +104 -0
  241. package/esm2020/src/app/shared/validator/validators.mjs +544 -0
  242. package/{esm2015/src/app/shared/version/versions.js → esm2020/src/app/shared/version/versions.mjs} +0 -0
  243. package/esm2020/src/app/social/job/job.model.mjs +26 -0
  244. package/esm2020/src/app/social/job/job.module.mjs +35 -0
  245. package/esm2020/src/app/social/job/job.service.mjs +71 -0
  246. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +210 -0
  247. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +22 -0
  248. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +53 -0
  249. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +55 -0
  250. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +35 -0
  251. package/esm2020/src/app/social/message/message.form.mjs +81 -0
  252. package/esm2020/src/app/social/message/message.modal.mjs +93 -0
  253. package/esm2020/src/app/social/message/message.model.mjs +65 -0
  254. package/esm2020/src/app/social/message/message.module.mjs +35 -0
  255. package/esm2020/src/app/social/message/message.service.mjs +84 -0
  256. package/{esm2015/src/app/social/social.errors.js → esm2020/src/app/social/social.errors.mjs} +0 -0
  257. package/esm2020/src/app/social/social.module.mjs +47 -0
  258. package/esm2020/src/app/social/social.testing.module.mjs +51 -0
  259. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +108 -0
  260. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +212 -0
  261. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +228 -0
  262. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +107 -0
  263. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +35 -0
  264. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +111 -0
  265. package/esm2020/src/app/social/user-event/user-event.model.mjs +2 -0
  266. package/esm2020/src/app/social/user-event/user-event.module.mjs +39 -0
  267. package/esm2020/src/app/social/user-event/user-event.service.mjs +486 -0
  268. package/{esm2015/src/app/vendor.js → esm2020/src/app/vendor.mjs} +3 -3
  269. package/esm2020/src/environments/environment.class.mjs +5 -0
  270. package/esm2020/src/environments/environment.mjs +86 -0
  271. package/esm2020/sumaris-net.ngx-components.mjs +5 -0
  272. package/fesm2015/sumaris-net.ngx-components.mjs +33173 -0
  273. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -0
  274. package/fesm2020/sumaris-net.ngx-components.mjs +32440 -0
  275. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -0
  276. package/index.d.ts +5 -0
  277. package/package.json +27 -32
  278. package/public_api.d.ts +29 -31
  279. package/public_test_api.d.ts +37 -0
  280. package/resources/README.md +8 -0
  281. package/src/app/admin/admin-routing.module.d.ts +7 -0
  282. package/src/app/admin/admin.module.d.ts +7 -0
  283. package/src/app/admin/services/person.service.d.ts +3 -0
  284. package/src/app/admin/services/validator/person.validator.d.ts +8 -5
  285. package/src/app/admin/users/list/users.d.ts +11 -7
  286. package/src/app/admin/users/list/users.module.d.ts +14 -0
  287. package/src/app/core/about/modal-about.d.ts +3 -0
  288. package/src/app/core/account/account.d.ts +11 -8
  289. package/src/app/core/auth/form/form-auth.d.ts +6 -3
  290. package/src/app/core/auth/modal/modal-auth.d.ts +3 -0
  291. package/src/app/core/core.module.d.ts +36 -0
  292. package/src/app/core/core.testing.module.d.ts +10 -0
  293. package/src/app/core/form/editor.class.d.ts +6 -1
  294. package/src/app/core/form/entity-editor-modal.class.d.ts +7 -4
  295. package/src/app/core/form/entity-editor.class.d.ts +4 -1
  296. package/src/app/core/form/entity-metadata.component.d.ts +3 -0
  297. package/src/app/core/form/form-buttons-bar.component.d.ts +3 -0
  298. package/src/app/core/form/form.class.d.ts +12 -9
  299. package/src/app/core/form/form.utils.d.ts +5 -5
  300. package/src/app/core/form/list.form.d.ts +10 -7
  301. package/src/app/core/form/properties/properties.form.d.ts +43 -0
  302. package/src/app/core/form/properties/property.validator.d.ts +13 -0
  303. package/src/app/core/form/properties/testing/properties-form.test.d.ts +19 -0
  304. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
  305. package/src/app/core/graphql/graphql.module.d.ts +5 -0
  306. package/src/app/core/graphql/graphql.service.d.ts +9 -2
  307. package/src/app/core/graphql/graphql.utils.d.ts +8 -0
  308. package/src/app/core/home/home.d.ts +4 -1
  309. package/src/app/core/icon/icon.component.d.ts +5 -2
  310. package/src/app/core/icon/icon.module.d.ts +7 -0
  311. package/src/app/core/install/install-upgrade-card.component.d.ts +5 -2
  312. package/src/app/core/install/install-upgrade-card.module.d.ts +10 -0
  313. package/src/app/core/menu/menu.component.d.ts +7 -5
  314. package/src/app/core/menu/menu.module.d.ts +8 -0
  315. package/src/app/core/menu/menu.service.d.ts +3 -0
  316. package/src/app/core/offline/update-offline-mode-card.component.d.ts +3 -0
  317. package/src/app/core/peer/select-peer.modal.d.ts +7 -4
  318. package/src/app/core/peer/select-peer.module.d.ts +9 -0
  319. package/src/app/core/register/confirm/confirm.d.ts +3 -0
  320. package/src/app/core/register/form/form-register.d.ts +10 -7
  321. package/src/app/core/register/modal/modal-register.d.ts +3 -0
  322. package/src/app/core/register/register.module.d.ts +12 -0
  323. package/src/app/core/services/account.service.d.ts +5 -2
  324. package/src/app/core/services/auth-guard.service.d.ts +3 -0
  325. package/src/app/core/services/base-entity-service.class.d.ts +3 -0
  326. package/src/app/core/services/base-graphql-service.class.d.ts +3 -0
  327. package/src/app/core/services/config.service.d.ts +4 -1
  328. package/src/app/core/services/crypto.service.d.ts +3 -0
  329. package/src/app/core/services/local-settings.service.d.ts +5 -1
  330. package/src/app/core/services/model/referential.model.d.ts +1 -1
  331. package/src/app/core/services/network.service.d.ts +6 -5
  332. package/src/app/core/services/pipes/account.pipes.d.ts +7 -0
  333. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +4 -0
  334. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +4 -0
  335. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +7 -0
  336. package/src/app/core/services/platform.service.d.ts +22 -21
  337. package/src/app/core/services/storage/entities-storage.service.d.ts +5 -2
  338. package/src/app/core/services/storage/entity-store.class.d.ts +3 -3
  339. package/src/app/core/services/testing/referential.validator.d.ts +8 -5
  340. package/src/app/core/services/validator/account.validator.d.ts +6 -3
  341. package/src/app/core/services/validator/base.validator.class.d.ts +8 -5
  342. package/src/app/core/services/validator/local-settings.validator.d.ts +8 -5
  343. package/src/app/core/services/validator/user-settings.validator.d.ts +6 -3
  344. package/src/app/core/settings/settings.page.d.ts +8 -5
  345. package/src/app/core/table/actions-column.component.d.ts +3 -0
  346. package/src/app/core/table/entities-table-datasource.class.d.ts +16 -15
  347. package/src/app/core/table/memory-table.class.d.ts +3 -0
  348. package/src/app/core/table/table-select-columns.component.d.ts +4 -5
  349. package/src/app/core/table/table.class.d.ts +52 -34
  350. package/src/app/core/table/table.utils.d.ts +2 -1
  351. package/src/app/core/table/testing/table.testing.d.ts +13 -15
  352. package/src/app/core/table/testing/table.testing.module.d.ts +9 -0
  353. package/src/app/core/text-popover/testing/text-popover.testing.d.ts +4 -1
  354. package/src/app/core/text-popover/testing/text-popover.testing.module.d.ts +9 -0
  355. package/src/app/core/text-popover/text-form.component.d.ts +7 -4
  356. package/src/app/core/text-popover/text-popover.component.d.ts +3 -0
  357. package/src/app/shared/alerts.d.ts +4 -4
  358. package/src/app/shared/audio/audio.d.ts +20 -11
  359. package/src/app/shared/audio/audio.testing.d.ts +13 -0
  360. package/src/app/shared/audio/audio.testing.module.d.ts +11 -0
  361. package/src/app/shared/capacitor/keyboard.d.ts +16 -0
  362. package/src/app/shared/capacitor/plugins.d.ts +7 -0
  363. package/src/app/shared/constants.d.ts +1 -0
  364. package/src/app/shared/debug/debug.component.d.ts +13 -0
  365. package/src/app/shared/debug/debug.module.d.ts +12 -0
  366. package/src/app/shared/directives/autofocus.directive.d.ts +9 -7
  367. package/src/app/shared/directives/autotitle.directive.d.ts +3 -0
  368. package/src/app/shared/directives/directives.module.d.ts +10 -0
  369. package/src/app/shared/directives/drag-and-drop.directive.d.ts +3 -0
  370. package/src/app/shared/directives/ng-var.directive.d.ts +3 -0
  371. package/src/app/shared/directives/resizable/resizable.component.d.ts +3 -0
  372. package/src/app/shared/directives/resizable/resizable.directive.d.ts +3 -0
  373. package/src/app/shared/directives/resizable/resizable.module.d.ts +6 -0
  374. package/src/app/shared/file/file.service.d.ts +3 -0
  375. package/src/app/shared/file/file.utils.d.ts +1 -1
  376. package/src/app/shared/form/field.component.d.ts +12 -3
  377. package/src/app/shared/form/field.model.d.ts +2 -2
  378. package/src/app/shared/form/loading-spinner.d.ts +3 -0
  379. package/src/app/shared/forms.d.ts +13 -13
  380. package/src/app/shared/gesture/gesture-config.d.ts +3 -0
  381. package/src/app/shared/gesture/hammer.utils.d.ts +11 -11
  382. package/src/app/shared/graph/graph-colors.d.ts +8 -7
  383. package/src/app/shared/guard/component-dirty.guard.d.ts +3 -0
  384. package/src/app/shared/help/help.modal.d.ts +4 -1
  385. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +3 -0
  386. package/src/app/shared/hotkeys/hotkeys.service.d.ts +4 -1
  387. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +9 -0
  388. package/src/app/shared/image/gallery/image-gallery.component.d.ts +77 -0
  389. package/src/app/shared/image/gallery/image-gallery.module.d.ts +12 -0
  390. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +12 -0
  391. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +33 -0
  392. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +15 -0
  393. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +12 -0
  394. package/src/app/shared/image/image.model.d.ts +5 -0
  395. package/src/app/shared/image/image.module.d.ts +8 -0
  396. package/src/app/shared/image/image.service.d.ts +32 -0
  397. package/src/app/shared/inputs.d.ts +3 -3
  398. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +36 -0
  399. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +11 -40
  400. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +19 -0
  401. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +4 -0
  402. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +12 -9
  403. package/src/app/shared/material/badge/badge.directive.d.ts +28 -0
  404. package/src/app/shared/material/badge/badge.module.d.ts +10 -0
  405. package/src/app/shared/material/badge/badge.test.d.ts +12 -0
  406. package/src/app/shared/material/boolean/boolean.module.d.ts +17 -0
  407. package/src/app/shared/material/boolean/material.boolean.d.ts +7 -4
  408. package/src/app/shared/material/chips/chips.module.d.ts +19 -0
  409. package/src/app/shared/material/chips/material.chips.d.ts +11 -8
  410. package/src/app/shared/material/chips/testing/chips.test.d.ts +8 -5
  411. package/src/app/shared/material/datetime/datetime.module.d.ts +22 -0
  412. package/src/app/shared/material/datetime/material.date.d.ts +19 -18
  413. package/src/app/shared/material/datetime/material.dateshort.d.ts +10 -9
  414. package/src/app/shared/material/datetime/material.datetime.d.ts +21 -20
  415. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +11 -9
  416. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +11 -9
  417. package/src/app/shared/material/duration/duration.module.d.ts +16 -0
  418. package/src/app/shared/material/duration/material.duration.d.ts +8 -5
  419. package/src/app/shared/material/latlong/material.latlong.d.ts +8 -5
  420. package/src/app/shared/material/latlong/material.latlong.module.d.ts +17 -0
  421. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +10 -7
  422. package/src/app/shared/material/material.module.d.ts +43 -0
  423. package/src/app/shared/material/material.testing.module.d.ts +19 -0
  424. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +3 -0
  425. package/src/app/shared/material/numpad/numpad.component.d.ts +4 -1
  426. package/src/app/shared/material/numpad/numpad.container.d.ts +5 -2
  427. package/src/app/shared/material/numpad/numpad.content.d.ts +3 -0
  428. package/src/app/shared/material/numpad/numpad.directive.d.ts +4 -1
  429. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +3 -0
  430. package/src/app/shared/material/numpad/numpad.model.d.ts +1 -1
  431. package/src/app/shared/material/numpad/numpad.module.d.ts +14 -0
  432. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +7 -4
  433. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +3 -0
  434. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +3 -0
  435. package/src/app/shared/material/swipe/material.swipe.d.ts +6 -3
  436. package/src/app/shared/material/swipe/swipe.module.d.ts +13 -0
  437. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +7 -4
  438. package/src/app/shared/pipes/arrays.pipe.d.ts +17 -0
  439. package/src/app/shared/pipes/colors.pipe.d.ts +9 -0
  440. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +4 -0
  441. package/src/app/shared/pipes/date-format.pipe.d.ts +4 -0
  442. package/src/app/shared/pipes/date-from-now.pipe.d.ts +4 -0
  443. package/src/app/shared/pipes/duration.pipe.d.ts +4 -0
  444. package/src/app/shared/pipes/file-size.pipe.d.ts +3 -0
  445. package/src/app/shared/pipes/form.pipes.d.ts +18 -5
  446. package/src/app/shared/pipes/highlight.pipe.d.ts +4 -0
  447. package/src/app/shared/pipes/latlong-format.pipe.d.ts +7 -0
  448. package/src/app/shared/pipes/maps.pipe.d.ts +10 -0
  449. package/src/app/shared/pipes/math.pipes.d.ts +10 -0
  450. package/src/app/shared/pipes/ng-init.pipe.d.ts +3 -0
  451. package/src/app/shared/pipes/number-format.pipe.d.ts +4 -0
  452. package/src/app/shared/pipes/pipes.module.d.ts +24 -0
  453. package/src/app/shared/pipes/property.pipes.d.ts +6 -0
  454. package/src/app/shared/pipes/string.pipes.d.ts +11 -0
  455. package/src/app/shared/pipes/translate-context.pipe.d.ts +7 -0
  456. package/src/app/shared/platforms.d.ts +1 -0
  457. package/src/app/shared/services/memory-entity-service.class.d.ts +3 -0
  458. package/src/app/shared/services/progress-bar.service.d.ts +4 -1
  459. package/src/app/shared/services/startable-observable-service.class.d.ts +1 -1
  460. package/src/app/shared/services/startable-service.class.d.ts +1 -1
  461. package/src/app/shared/services/storage/storage.service.d.ts +23 -0
  462. package/src/app/shared/services/storage/storage.utils.d.ts +19 -0
  463. package/src/app/shared/services/translate-context.service.d.ts +3 -0
  464. package/src/app/shared/services/validator-service.class.d.ts +2 -2
  465. package/src/app/shared/shared-routing.module.d.ts +7 -0
  466. package/src/app/shared/shared.module.d.ts +23 -0
  467. package/src/app/shared/shared.testing.module.d.ts +12 -0
  468. package/src/app/shared/testing/tests.page.d.ts +3 -0
  469. package/src/app/shared/toast/toast.testing.d.ts +6 -5
  470. package/src/app/shared/toast/toast.testing.module.d.ts +9 -0
  471. package/src/app/shared/toast/toasts.d.ts +5 -2
  472. package/src/app/shared/toolbar/modal-toolbar.d.ts +5 -2
  473. package/src/app/shared/toolbar/toolbar.d.ts +9 -5
  474. package/src/app/shared/toolbar/toolbar.module.d.ts +15 -0
  475. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +4 -1
  476. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +9 -0
  477. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +3 -0
  478. package/src/app/shared/upload-file/upload-file.component.d.ts +3 -0
  479. package/src/app/shared/validator/form-error-adapter.class.d.ts +3 -0
  480. package/src/app/shared/validator/validators.d.ts +9 -9
  481. package/src/app/social/job/job.module.d.ts +9 -0
  482. package/src/app/social/job/job.service.d.ts +3 -0
  483. package/src/app/social/job/progression/job-progression.icon.d.ts +4 -1
  484. package/src/app/social/job/progression/job-progression.list.d.ts +3 -0
  485. package/src/app/social/job/testing/job-progression.testing.d.ts +3 -0
  486. package/src/app/social/job/testing/job-progression.testing.service.d.ts +3 -0
  487. package/src/app/social/job/testing/job.testing.module.d.ts +9 -0
  488. package/src/app/social/message/message.form.d.ts +5 -2
  489. package/src/app/social/message/message.modal.d.ts +5 -2
  490. package/src/app/social/message/message.module.d.ts +9 -0
  491. package/src/app/social/message/message.service.d.ts +3 -0
  492. package/src/app/social/social.module.d.ts +10 -0
  493. package/src/app/social/social.testing.module.d.ts +9 -0
  494. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -1
  495. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +7 -4
  496. package/src/app/social/user-event/testing/user-event.testing.d.ts +3 -0
  497. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +1 -0
  498. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +9 -0
  499. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +5 -1
  500. package/src/app/social/user-event/user-event.model.d.ts +3 -2
  501. package/src/app/social/user-event/user-event.module.d.ts +10 -0
  502. package/src/app/social/user-event/user-event.service.d.ts +16 -11
  503. package/src/assets/audio/beep-notification.mp3 +0 -0
  504. package/src/assets/i18n/fr.json +9 -2
  505. package/src/environments/environment.class.d.ts +2 -0
  506. package/src/environments/environment.d.ts +1 -1
  507. package/src/theme/_icons.scss +1 -1
  508. package/src/theme/_material.globals.scss +29 -31
  509. package/src/theme/_material.scss +32 -6
  510. package/src/theme/_mixins.scss +4 -4
  511. package/src/theme/_ngx-components.scss +27 -0
  512. package/src/theme/_print.scss +24 -0
  513. package/bundles/sumaris-net.ngx-components.umd.js +0 -35755
  514. package/bundles/sumaris-net.ngx-components.umd.js.map +0 -1
  515. package/bundles/sumaris-net.ngx-components.umd.min.js +0 -25
  516. package/bundles/sumaris-net.ngx-components.umd.min.js.map +0 -1
  517. package/esm2015/public_api.js +0 -245
  518. package/esm2015/src/app/admin/admin-routing.module.js +0 -34
  519. package/esm2015/src/app/admin/admin.module.js +0 -34
  520. package/esm2015/src/app/admin/services/filter/person.filter.js +0 -59
  521. package/esm2015/src/app/admin/services/person.service.js +0 -175
  522. package/esm2015/src/app/admin/services/validator/person.validator.js +0 -37
  523. package/esm2015/src/app/admin/users/list/users.js +0 -216
  524. package/esm2015/src/app/core/about/modal-about.js +0 -63
  525. package/esm2015/src/app/core/account/account.js +0 -240
  526. package/esm2015/src/app/core/auth/form/form-auth.js +0 -134
  527. package/esm2015/src/app/core/auth/modal/modal-auth.js +0 -78
  528. package/esm2015/src/app/core/core.module.js +0 -127
  529. package/esm2015/src/app/core/core.testing.module.js +0 -51
  530. package/esm2015/src/app/core/form/editor.class.js +0 -698
  531. package/esm2015/src/app/core/form/entity-editor-modal.class.js +0 -422
  532. package/esm2015/src/app/core/form/entity-editor.class.js +0 -676
  533. package/esm2015/src/app/core/form/entity-metadata.component.js +0 -22
  534. package/esm2015/src/app/core/form/form-buttons-bar.component.js +0 -63
  535. package/esm2015/src/app/core/form/form.class.js +0 -342
  536. package/esm2015/src/app/core/form/form.utils.js +0 -299
  537. package/esm2015/src/app/core/form/list.form.js +0 -219
  538. package/esm2015/src/app/core/form/properties.form.js +0 -119
  539. package/esm2015/src/app/core/graphql/graphql.module.js +0 -18
  540. package/esm2015/src/app/core/graphql/graphql.service.js +0 -734
  541. package/esm2015/src/app/core/graphql/graphql.utils.js +0 -106
  542. package/esm2015/src/app/core/home/home.js +0 -265
  543. package/esm2015/src/app/core/icon/icon.component.js +0 -32
  544. package/esm2015/src/app/core/icon/icon.module.js +0 -26
  545. package/esm2015/src/app/core/install/install-upgrade-card.component.js +0 -358
  546. package/esm2015/src/app/core/menu/menu.component.js +0 -329
  547. package/esm2015/src/app/core/menu/menu.module.js +0 -28
  548. package/esm2015/src/app/core/offline/update-offline-mode-card.component.js +0 -26
  549. package/esm2015/src/app/core/peer/select-peer.modal.js +0 -134
  550. package/esm2015/src/app/core/register/confirm/confirm.js +0 -86
  551. package/esm2015/src/app/core/register/form/form-register.js +0 -172
  552. package/esm2015/src/app/core/register/modal/modal-register.js +0 -55
  553. package/esm2015/src/app/core/services/account.service.js +0 -1165
  554. package/esm2015/src/app/core/services/auth-guard.service.js +0 -77
  555. package/esm2015/src/app/core/services/base-entity-service.class.js +0 -454
  556. package/esm2015/src/app/core/services/base-graphql-service.class.js +0 -221
  557. package/esm2015/src/app/core/services/config.service.js +0 -385
  558. package/esm2015/src/app/core/services/local-settings.service.js +0 -460
  559. package/esm2015/src/app/core/services/model/account.model.js +0 -50
  560. package/esm2015/src/app/core/services/model/config.model.js +0 -89
  561. package/esm2015/src/app/core/services/model/department.model.js +0 -30
  562. package/esm2015/src/app/core/services/model/entity.decorators.js +0 -104
  563. package/esm2015/src/app/core/services/model/entity.model.js +0 -245
  564. package/esm2015/src/app/core/services/model/peer.model.js +0 -68
  565. package/esm2015/src/app/core/services/model/person.model.js +0 -83
  566. package/esm2015/src/app/core/services/model/referential.model.js +0 -147
  567. package/esm2015/src/app/core/services/model/settings.model.js +0 -75
  568. package/esm2015/src/app/core/services/network.service.js +0 -631
  569. package/esm2015/src/app/core/services/network.utils.js +0 -19
  570. package/esm2015/src/app/core/services/pipes/account.pipes.js +0 -28
  571. package/esm2015/src/app/core/services/pipes/department-to-string.pipe.js +0 -18
  572. package/esm2015/src/app/core/services/pipes/person-to-string.pipe.js +0 -18
  573. package/esm2015/src/app/core/services/pipes/usage-mode.pipes.js +0 -27
  574. package/esm2015/src/app/core/services/platform.service.js +0 -549
  575. package/esm2015/src/app/core/services/storage/entities-storage.service.js +0 -452
  576. package/esm2015/src/app/core/services/storage/entity-store.class.js +0 -461
  577. package/esm2015/src/app/core/services/testing/referential-filter.model.js +0 -23
  578. package/esm2015/src/app/core/services/testing/referential.validator.js +0 -44
  579. package/esm2015/src/app/core/services/validator/account.validator.js +0 -55
  580. package/esm2015/src/app/core/services/validator/base.validator.class.js +0 -48
  581. package/esm2015/src/app/core/services/validator/local-settings.validator.js +0 -72
  582. package/esm2015/src/app/core/services/validator/user-settings.validator.js +0 -30
  583. package/esm2015/src/app/core/settings/settings.page.js +0 -305
  584. package/esm2015/src/app/core/table/actions-column.component.js +0 -74
  585. package/esm2015/src/app/core/table/entities-table-datasource.class.js +0 -405
  586. package/esm2015/src/app/core/table/memory-table.class.js +0 -59
  587. package/esm2015/src/app/core/table/table-select-columns.component.js +0 -44
  588. package/esm2015/src/app/core/table/table.class.js +0 -1677
  589. package/esm2015/src/app/core/table/table.utils.js +0 -13
  590. package/esm2015/src/app/core/table/testing/table.testing.js +0 -242
  591. package/esm2015/src/app/core/table/testing/table.testing.module.js +0 -26
  592. package/esm2015/src/app/core/text-popover/testing/text-popover.testing.js +0 -37
  593. package/esm2015/src/app/core/text-popover/testing/text-popover.testing.module.js +0 -33
  594. package/esm2015/src/app/core/text-popover/text-form.component.js +0 -72
  595. package/esm2015/src/app/core/text-popover/text-popover.component.js +0 -90
  596. package/esm2015/src/app/shared/alerts.js +0 -251
  597. package/esm2015/src/app/shared/audio/audio.js +0 -178
  598. package/esm2015/src/app/shared/dates.js +0 -134
  599. package/esm2015/src/app/shared/directives/autofocus.directive.js +0 -90
  600. package/esm2015/src/app/shared/directives/autotitle.directive.js +0 -27
  601. package/esm2015/src/app/shared/directives/directives.module.js +0 -30
  602. package/esm2015/src/app/shared/directives/drag-and-drop.directive.js +0 -43
  603. package/esm2015/src/app/shared/directives/ng-var.directive.js +0 -32
  604. package/esm2015/src/app/shared/directives/resizable/resizable.component.js +0 -54
  605. package/esm2015/src/app/shared/directives/resizable/resizable.directive.js +0 -34
  606. package/esm2015/src/app/shared/directives/resizable/resizable.module.js +0 -12
  607. package/esm2015/src/app/shared/events.js +0 -61
  608. package/esm2015/src/app/shared/file/csv.utils.js +0 -70
  609. package/esm2015/src/app/shared/file/file.service.js +0 -120
  610. package/esm2015/src/app/shared/file/file.utils.js +0 -116
  611. package/esm2015/src/app/shared/file/images.utils.js +0 -166
  612. package/esm2015/src/app/shared/form/field.component.js +0 -206
  613. package/esm2015/src/app/shared/form/loading-spinner.js +0 -24
  614. package/esm2015/src/app/shared/forms.js +0 -358
  615. package/esm2015/src/app/shared/functions.js +0 -431
  616. package/esm2015/src/app/shared/gesture/hammer.utils.js +0 -2
  617. package/esm2015/src/app/shared/graph/graph-colors.js +0 -205
  618. package/esm2015/src/app/shared/guard/component-dirty.guard.js +0 -61
  619. package/esm2015/src/app/shared/help/help.modal.js +0 -56
  620. package/esm2015/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.js +0 -20
  621. package/esm2015/src/app/shared/hotkeys/hotkeys.service.js +0 -91
  622. package/esm2015/src/app/shared/hotkeys/shared-hotkeys.module.js +0 -29
  623. package/esm2015/src/app/shared/http/http.utils.js +0 -57
  624. package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +0 -825
  625. package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.module.js +0 -46
  626. package/esm2015/src/app/shared/material/autocomplete/testing/autocomplete.test.js +0 -200
  627. package/esm2015/src/app/shared/material/badge/badge-icon.directive.js +0 -135
  628. package/esm2015/src/app/shared/material/badge/badge-icon.module.js +0 -23
  629. package/esm2015/src/app/shared/material/badge/badge-icon.test.js +0 -17
  630. package/esm2015/src/app/shared/material/boolean/boolean.module.js +0 -41
  631. package/esm2015/src/app/shared/material/boolean/material.boolean.js +0 -223
  632. package/esm2015/src/app/shared/material/chips/chips.module.js +0 -45
  633. package/esm2015/src/app/shared/material/chips/material.chips.js +0 -636
  634. package/esm2015/src/app/shared/material/chips/testing/chips.test.js +0 -138
  635. package/esm2015/src/app/shared/material/datetime/datetime.module.js +0 -54
  636. package/esm2015/src/app/shared/material/datetime/material.date.js +0 -375
  637. package/esm2015/src/app/shared/material/datetime/material.dateshort.js +0 -316
  638. package/esm2015/src/app/shared/material/datetime/material.datetime.js +0 -398
  639. package/esm2015/src/app/shared/material/datetime/testing/mat-date-time.test.js +0 -110
  640. package/esm2015/src/app/shared/material/datetime/testing/mat-date.test.js +0 -108
  641. package/esm2015/src/app/shared/material/duration/duration.module.js +0 -40
  642. package/esm2015/src/app/shared/material/duration/material.duration.js +0 -246
  643. package/esm2015/src/app/shared/material/latlong/latlong.utils.js +0 -249
  644. package/esm2015/src/app/shared/material/latlong/material.latlong.js +0 -350
  645. package/esm2015/src/app/shared/material/latlong/material.latlong.module.js +0 -41
  646. package/esm2015/src/app/shared/material/latlong/testing/latlong.test.js +0 -70
  647. package/esm2015/src/app/shared/material/material.module.js +0 -93
  648. package/esm2015/src/app/shared/material/material.testing.module.js +0 -111
  649. package/esm2015/src/app/shared/material/numpad/numpad.append-to-input.directive.js +0 -96
  650. package/esm2015/src/app/shared/material/numpad/numpad.component.js +0 -73
  651. package/esm2015/src/app/shared/material/numpad/numpad.container.js +0 -149
  652. package/esm2015/src/app/shared/material/numpad/numpad.content.js +0 -14
  653. package/esm2015/src/app/shared/material/numpad/numpad.directive.js +0 -148
  654. package/esm2015/src/app/shared/material/numpad/numpad.dom-service.js +0 -37
  655. package/esm2015/src/app/shared/material/numpad/numpad.module.js +0 -39
  656. package/esm2015/src/app/shared/material/numpad/testing/numpad.test.js +0 -44
  657. package/esm2015/src/app/shared/material/paginator/material.paginator-i18n.js +0 -44
  658. package/esm2015/src/app/shared/material/stepper/material.stepper-i18n.js +0 -24
  659. package/esm2015/src/app/shared/material/swipe/material.swipe.js +0 -308
  660. package/esm2015/src/app/shared/material/swipe/swipe.module.js +0 -33
  661. package/esm2015/src/app/shared/material/swipe/testing/swipe.test.js +0 -68
  662. package/esm2015/src/app/shared/observables.js +0 -99
  663. package/esm2015/src/app/shared/pipes/arrays.pipe.js +0 -110
  664. package/esm2015/src/app/shared/pipes/date-diff-duration.pipe.js +0 -50
  665. package/esm2015/src/app/shared/pipes/date-format.pipe.js +0 -43
  666. package/esm2015/src/app/shared/pipes/file-size.pipe.js +0 -58
  667. package/esm2015/src/app/shared/pipes/form.pipes.js +0 -177
  668. package/esm2015/src/app/shared/pipes/highlight.pipe.js +0 -43
  669. package/esm2015/src/app/shared/pipes/latlong-format.pipe.js +0 -36
  670. package/esm2015/src/app/shared/pipes/maps.pipe.js +0 -48
  671. package/esm2015/src/app/shared/pipes/math.pipes.js +0 -44
  672. package/esm2015/src/app/shared/pipes/ng-init.pipe.js +0 -18
  673. package/esm2015/src/app/shared/pipes/pipes.module.js +0 -117
  674. package/esm2015/src/app/shared/pipes/property.pipes.js +0 -98
  675. package/esm2015/src/app/shared/pipes/string.pipes.js +0 -53
  676. package/esm2015/src/app/shared/pipes/translate-context.pipe.js +0 -36
  677. package/esm2015/src/app/shared/platforms.js +0 -45
  678. package/esm2015/src/app/shared/services/entity-service.class.js +0 -8
  679. package/esm2015/src/app/shared/services/job.utils.js +0 -96
  680. package/esm2015/src/app/shared/services/memory-entity-service.class.js +0 -342
  681. package/esm2015/src/app/shared/services/progress-bar.service.js +0 -30
  682. package/esm2015/src/app/shared/services/startable-observable-service.class.js +0 -124
  683. package/esm2015/src/app/shared/services/startable-service.class.js +0 -110
  684. package/esm2015/src/app/shared/services/storage.utils.js +0 -41
  685. package/esm2015/src/app/shared/services/translate-context.service.js +0 -83
  686. package/esm2015/src/app/shared/services/validator-service.class.js +0 -2
  687. package/esm2015/src/app/shared/services.js +0 -61
  688. package/esm2015/src/app/shared/shared-routing.module.js +0 -54
  689. package/esm2015/src/app/shared/shared.module.js +0 -135
  690. package/esm2015/src/app/shared/shared.testing.module.js +0 -33
  691. package/esm2015/src/app/shared/testing/tests.page.js +0 -34
  692. package/esm2015/src/app/shared/toast/toast.testing.js +0 -39
  693. package/esm2015/src/app/shared/toast/toast.testing.module.js +0 -33
  694. package/esm2015/src/app/shared/toast/toasts.js +0 -119
  695. package/esm2015/src/app/shared/toolbar/modal-toolbar.js +0 -53
  696. package/esm2015/src/app/shared/toolbar/toolbar.js +0 -213
  697. package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.js +0 -59
  698. package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.module.js +0 -33
  699. package/esm2015/src/app/shared/upload-file/upload-file-popover.component.js +0 -98
  700. package/esm2015/src/app/shared/upload-file/upload-file.component.js +0 -202
  701. package/esm2015/src/app/shared/upload-file/upload-file.model.js +0 -20
  702. package/esm2015/src/app/shared/validator/form-error-adapter.class.js +0 -99
  703. package/esm2015/src/app/shared/validator/validators.js +0 -537
  704. package/esm2015/src/app/social/job/job.model.js +0 -26
  705. package/esm2015/src/app/social/job/job.module.js +0 -25
  706. package/esm2015/src/app/social/job/job.service.js +0 -66
  707. package/esm2015/src/app/social/job/progression/job-progression.icon.js +0 -208
  708. package/esm2015/src/app/social/job/progression/job-progression.list.js +0 -20
  709. package/esm2015/src/app/social/job/testing/job-progression.testing.js +0 -49
  710. package/esm2015/src/app/social/job/testing/job-progression.testing.service.js +0 -52
  711. package/esm2015/src/app/social/job/testing/job.testing.module.js +0 -25
  712. package/esm2015/src/app/social/message/message.form.js +0 -73
  713. package/esm2015/src/app/social/message/message.modal.js +0 -96
  714. package/esm2015/src/app/social/message/message.model.js +0 -65
  715. package/esm2015/src/app/social/message/message.module.js +0 -25
  716. package/esm2015/src/app/social/message/message.service.js +0 -87
  717. package/esm2015/src/app/social/social.module.js +0 -28
  718. package/esm2015/src/app/social/social.testing.module.js +0 -39
  719. package/esm2015/src/app/social/user-event/notification/user-event-notification.icon.js +0 -106
  720. package/esm2015/src/app/social/user-event/notification/user-event-notification.list.js +0 -203
  721. package/esm2015/src/app/social/user-event/testing/user-event.testing.js +0 -230
  722. package/esm2015/src/app/social/user-event/testing/user-event.testing.model.js +0 -103
  723. package/esm2015/src/app/social/user-event/testing/user-event.testing.module.js +0 -25
  724. package/esm2015/src/app/social/user-event/testing/user-event.testing.service.js +0 -117
  725. package/esm2015/src/app/social/user-event/user-event.model.js +0 -2
  726. package/esm2015/src/app/social/user-event/user-event.module.js +0 -27
  727. package/esm2015/src/app/social/user-event/user-event.service.js +0 -509
  728. package/esm2015/src/environments/environment.class.js +0 -5
  729. package/esm2015/src/environments/environment.js +0 -81
  730. package/esm2015/sumaris-net.ngx-components.js +0 -21
  731. package/fesm2015/sumaris-net.ngx-components.js +0 -30297
  732. package/fesm2015/sumaris-net.ngx-components.js.map +0 -1
  733. package/src/app/core/form/properties.form.d.ts +0 -40
  734. package/src/app/shared/material/badge/badge-icon.directive.d.ts +0 -28
  735. package/src/app/shared/material/badge/badge-icon.module.d.ts +0 -2
  736. package/src/app/shared/material/badge/badge-icon.test.d.ts +0 -9
  737. package/src/app/shared/services/storage.utils.d.ts +0 -13
  738. package/sumaris-net.ngx-components.d.ts +0 -20
  739. package/sumaris-net.ngx-components.metadata.json +0 -1
@@ -0,0 +1,68 @@
1
+ /* -- Network -- */
2
+ var Peer_1;
3
+ import { __decorate } from "tslib";
4
+ import { isNilOrBlank, isNotNil, isNotNilOrBlank, noTrailingSlash } from '../../../shared/functions';
5
+ import { Entity } from './entity.model';
6
+ import { EntityClass } from './entity.decorators';
7
+ // @dynamic
8
+ let Peer = Peer_1 = class Peer extends Entity {
9
+ constructor() {
10
+ super(Peer_1.TYPENAME);
11
+ }
12
+ static parseUrl(peerUrl) {
13
+ const url = new URL(peerUrl);
14
+ return this.fromObject({
15
+ dns: url.hostname,
16
+ port: isNilOrBlank(url.port) ? undefined : url.port,
17
+ useSsl: url.protocol && (url.protocol.startsWith('https') || url.protocol.startsWith('wss')),
18
+ path: noTrailingSlash(url.pathname)
19
+ });
20
+ }
21
+ static path(peer, ...paths) {
22
+ if (!peer)
23
+ throw new Error('Missing required argument \'peer\'!');
24
+ // Remove starting slashes
25
+ paths = (paths || []).map(path => {
26
+ if (path.startsWith('./'))
27
+ return path.substring(2);
28
+ if (path.startsWith('/'))
29
+ return path.substring(1);
30
+ return path;
31
+ }).filter(isNotNilOrBlank);
32
+ return [noTrailingSlash(this.fromObject(peer).url)].concat(...paths).join('/');
33
+ }
34
+ asObject(options) {
35
+ return super.asObject(options);
36
+ }
37
+ fromObject(source) {
38
+ super.fromObject(source);
39
+ this.dns = source.dns || source.host;
40
+ this.ipv4 = source.ipv4;
41
+ this.ipv6 = source.ipv6;
42
+ this.port = isNotNil(source.port) ? +source.port : undefined;
43
+ this.pubkey = source.pubkey;
44
+ this.useSsl = source.useSsl || (this.port === 443);
45
+ this.path = source.path || '';
46
+ }
47
+ equals(other) {
48
+ return super.equals(other) && this.pubkey === other.pubkey && this.url === other.url;
49
+ }
50
+ /**
51
+ * Return the peer URL (without trailing slash)
52
+ */
53
+ get url() {
54
+ return (this.useSsl ? 'https://' : 'http://') + this.hostAndPort + (this.path || '');
55
+ }
56
+ get hostAndPort() {
57
+ return (this.dns || this.ipv4 || this.ipv6) +
58
+ ((this.port && this.port !== 80 && this.port !== 443) ? ':' + this.port : '');
59
+ }
60
+ get reachable() {
61
+ return this.status && this.status === 'UP';
62
+ }
63
+ };
64
+ Peer = Peer_1 = __decorate([
65
+ EntityClass({ typename: 'PeerVO' })
66
+ ], Peer);
67
+ export { Peer };
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9wZWVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFtQjs7O0FBRW5CLE9BQU8sRUFBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRyxPQUFPLEVBQVksTUFBTSxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxXQUFXO0FBRVgsSUFBYSxJQUFJLFlBQWpCLE1BQWEsSUFBSyxTQUFRLE1BQVk7SUF1Q3BDO1FBQ0UsS0FBSyxDQUFDLE1BQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBckNELE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBZTtRQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDckIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRO1lBQ2pCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJO1lBQ25ELE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUYsSUFBSSxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxD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SSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQztJQUM3QyxDQUFDO0NBQ0YsQ0FBQTtBQTdFWSxJQUFJO0lBRGhCLFdBQVcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQztHQUNyQixJQUFJLENBNkVoQjtTQTdFWSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLyogLS0gTmV0d29yayAtLSAqL1xuXG5pbXBvcnQge2lzTmlsT3JCbGFuaywgaXNOb3ROaWwsIGlzTm90TmlsT3JCbGFuaywgbm9UcmFpbGluZ1NsYXNofSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7Q2xvbmVhYmxlLCBFbnRpdHksIEVudGl0eUFzT2JqZWN0T3B0aW9uc30gZnJvbSAnLi9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtFbnRpdHlDbGFzc30gZnJvbSAnLi9lbnRpdHkuZGVjb3JhdG9ycyc7XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3Moe3R5cGVuYW1lOiAnUGVlclZPJ30pXG5leHBvcnQgY2xhc3MgUGVlciBleHRlbmRzIEVudGl0eTxQZWVyPiBpbXBsZW1lbnRzIENsb25lYWJsZTxQZWVyPiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gUGVlcjtcblxuICBzdGF0aWMgcGFyc2VVcmwocGVlclVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChwZWVyVXJsKTtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0KHtcbiAgICAgIGRuczogdXJsLmhvc3RuYW1lLFxuICAgICAgcG9ydDogaXNOaWxPckJsYW5rKHVybC5wb3J0KSA/IHVuZGVmaW5lZCA6IHVybC5wb3J0LFxuICAgICAgdXNlU3NsOiB1cmwucHJvdG9jb2wgJiYgKHVybC5wcm90b2NvbC5zdGFydHNXaXRoKCdodHRwcycpIHx8IHVybC5wcm90b2NvbC5zdGFydHNXaXRoKCd3c3MnKSksXG4gICAgICBwYXRoOiBub1RyYWlsaW5nU2xhc2godXJsLnBhdGhuYW1lKVxuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBwYXRoKHBlZXI6IFBlZXIsIC4uLnBhdGhzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKCFwZWVyKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQgXFwncGVlclxcJyEnKTtcbiAgICAvLyBSZW1vdmUgc3RhcnRpbmcgc2xhc2hlc1xuICAgIHBhdGhzID0gKHBhdGhzIHx8IFtdKS5tYXAocGF0aCA9PiB7XG4gICAgICBpZiAocGF0aC5zdGFydHNXaXRoKCcuLycpKSByZXR1cm4gcGF0aC5zdWJzdHJpbmcoMik7XG4gICAgICBpZiAocGF0aC5zdGFydHNXaXRoKCcvJykpIHJldHVybiBwYXRoLnN1YnN0cmluZygxKTtcbiAgICAgIHJldHVybiBwYXRoO1xuICAgIH0pLmZpbHRlcihpc05vdE5pbE9yQmxhbmspO1xuICAgIHJldHVybiBbbm9UcmFpbGluZ1NsYXNoKHRoaXMuZnJvbU9iamVjdChwZWVyKS51cmwpXS5jb25jYXQoLi4ucGF0aHMpLmpvaW4oJy8nKTtcbiAgfVxuXG4gIGRuczogc3RyaW5nO1xuICBpcHY0OiBzdHJpbmc7XG4gIGlwdjY6IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICB1c2VTc2w6IGJvb2xlYW47XG4gIHB1YmtleTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuXG4gIGZhdmljb246IHN0cmluZztcbiAgc3RhdHVzOiAnVVAnIHwgJ0RPV04nO1xuICBzb2Z0d2FyZU5hbWU6IHN0cmluZztcbiAgc29mdHdhcmVWZXJzaW9uOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihQZWVyLlRZUEVOQU1FKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdGlvbnM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIHJldHVybiBzdXBlci5hc09iamVjdChvcHRpb25zKTtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgdGhpcy5kbnMgPSBzb3VyY2UuZG5zIHx8IHNvdXJjZS5ob3N0O1xuICAgIHRoaXMuaXB2NCA9IHNvdXJjZS5pcHY0O1xuICAgIHRoaXMuaXB2NiA9IHNvdXJjZS5pcHY2O1xuICAgIHRoaXMucG9ydCA9IGlzTm90TmlsKHNvdXJjZS5wb3J0KSA/ICtzb3VyY2UucG9ydCA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnB1YmtleSA9IHNvdXJjZS5wdWJrZXk7XG4gICAgdGhpcy51c2VTc2wgPSBzb3VyY2UudXNlU3NsIHx8ICh0aGlzLnBvcnQgPT09IDQ0Myk7XG4gICAgdGhpcy5wYXRoID0gc291cmNlLnBhdGggfHwgJyc7XG4gIH1cblxuICBlcXVhbHMob3RoZXI6IFBlZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuZXF1YWxzKG90aGVyKSAmJiB0aGlzLnB1YmtleSA9PT0gb3RoZXIucHVia2V5ICYmIHRoaXMudXJsID09PSBvdGhlci51cmw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBwZWVyIFVSTCAod2l0aG91dCB0cmFpbGluZyBzbGFzaClcbiAgICovXG4gIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMudXNlU3NsID8gJ2h0dHBzOi8vJyA6ICdodHRwOi8vJykgKyB0aGlzLmhvc3RBbmRQb3J0ICsgKHRoaXMucGF0aCB8fCAnJyk7XG4gIH1cblxuICBnZXQgaG9zdEFuZFBvcnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuZG5zIHx8IHRoaXMuaXB2NCB8fCB0aGlzLmlwdjYpICtcbiAgICAgICgodGhpcy5wb3J0ICYmIHRoaXMucG9ydCAhPT0gODAgJiYgdGhpcy5wb3J0ICE9PSA0NDMpID8gJzonICsgdGhpcy5wb3J0IDogJycpO1xuICB9XG5cbiAgZ2V0IHJlYWNoYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgJiYgdGhpcy5zdGF0dXMgPT09ICdVUCc7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,83 @@
1
+ var Person_1;
2
+ import { __decorate } from "tslib";
3
+ import { Entity } from './entity.model';
4
+ import { Department } from './department.model';
5
+ import { fromDateISOString, toDateISOString } from '../../../shared/dates';
6
+ import { EntityClass } from './entity.decorators';
7
+ import { isEmptyArray } from '../../../shared/functions';
8
+ export const PRIORITIZED_AUTHORITIES = Object.freeze(['ADMIN', 'SUPERVISOR', 'USER', 'GUEST']);
9
+ // @dynamic
10
+ let Person = Person_1 = class Person extends Entity {
11
+ constructor(__typename) {
12
+ super(__typename || Person_1.TYPENAME);
13
+ this.department = null;
14
+ }
15
+ asObject(opts) {
16
+ if (opts && opts.minify) {
17
+ return {
18
+ id: this.id,
19
+ __typename: opts.keepTypename && this.__typename || undefined,
20
+ firstName: this.firstName,
21
+ lastName: this.lastName
22
+ };
23
+ }
24
+ const target = super.asObject(opts);
25
+ target.department = this.department && this.department.asObject(opts) || undefined;
26
+ target.profiles = this.profiles && this.profiles.slice(0) || [];
27
+ // Set profile list from the main profile
28
+ target.profiles = this.mainProfile && [this.mainProfile] || target.profiles;
29
+ target.creationDate = toDateISOString(this.creationDate);
30
+ if (!opts || opts.minify !== true)
31
+ target.mainProfile = PersonUtils.getMainProfile(target.profiles);
32
+ return target;
33
+ }
34
+ fromObject(source) {
35
+ super.fromObject(source);
36
+ this.firstName = source.firstName;
37
+ this.lastName = source.lastName;
38
+ this.email = source.email;
39
+ this.creationDate = fromDateISOString(source.creationDate);
40
+ this.pubkey = source.pubkey;
41
+ this.username = source.username;
42
+ this.usernameExtranet = source.usernameExtranet;
43
+ this.avatar = source.avatar;
44
+ this.statusId = source.statusId;
45
+ this.department = source.department && Department.fromObject(source.department) || undefined;
46
+ this.profiles = source.profiles && source.profiles.slice(0) || [];
47
+ // Add main profile to the list, if need
48
+ if (source.mainProfile && !this.profiles.find(p => p === source.mainProfile)) {
49
+ this.profiles = this.profiles.concat(source.mainProfile);
50
+ }
51
+ this.mainProfile = PersonUtils.getMainProfile(this.profiles);
52
+ }
53
+ };
54
+ Person = Person_1 = __decorate([
55
+ EntityClass({ typename: 'PersonVO' })
56
+ ], Person);
57
+ export { Person };
58
+ export class PersonUtils {
59
+ static getMainProfile(profiles) {
60
+ if (isEmptyArray(profiles))
61
+ return 'GUEST';
62
+ return PRIORITIZED_AUTHORITIES.find(label => profiles.includes(label)) || 'GUEST';
63
+ }
64
+ static getMainProfileIndex(profiles) {
65
+ if (isEmptyArray(profiles))
66
+ return PRIORITIZED_AUTHORITIES.length - 1; // return last (lower) profile
67
+ const index = PRIORITIZED_AUTHORITIES.findIndex(label => profiles.includes(label));
68
+ return (index !== -1) ? index : (PRIORITIZED_AUTHORITIES.length - 1);
69
+ }
70
+ static hasUpperOrEqualsProfile(actualProfiles, expectedProfile) {
71
+ const expectedProfileIndex = PRIORITIZED_AUTHORITIES.indexOf(expectedProfile);
72
+ return expectedProfileIndex !== -1 && PersonUtils.getMainProfileIndex(actualProfiles) <= expectedProfileIndex;
73
+ }
74
+ static personToString(obj) {
75
+ if (!obj || !obj.id)
76
+ return undefined;
77
+ return obj.lastName + ' ' + obj.firstName;
78
+ }
79
+ static personsToString(data, separator) {
80
+ return (data || []).map(PersonUtils.personToString).join(separator || ', ');
81
+ }
82
+ }
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFJdkQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBRTdILFdBQVc7QUFFWCxJQUFhLE1BQU0sY0FBbkIsTUFBYSxNQUVULFNBQVEsTUFBNkM7SUFpQnZELFlBQVksVUFBbUI7UUFDN0IsS0FBSyxDQUFDLFVBQVUsSUFBSSxRQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFQdkMsZUFBVSxHQUFlLElBQUksQ0FBQztJQVE5QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWlDO1FBQ3hDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUc7WUFDeEIsT0FBTztnQkFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxTQUFTO2dCQUM3RCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUN4QixDQUFDO1NBQ0g7UUFD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QUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9tZW50fSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9uc30gZnJvbSAnLi9yZWZlcmVudGlhbC5tb2RlbCc7XG5pbXBvcnQge0VudGl0eX0gZnJvbSAnLi9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtEZXBhcnRtZW50fSBmcm9tICcuL2RlcGFydG1lbnQubW9kZWwnO1xuaW1wb3J0IHtmcm9tRGF0ZUlTT1N0cmluZywgdG9EYXRlSVNPU3RyaW5nfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGF0ZXMnO1xuaW1wb3J0IHtFbnRpdHlDbGFzc30gZnJvbSAnLi9lbnRpdHkuZGVjb3JhdG9ycyc7XG5pbXBvcnQge2lzRW1wdHlBcnJheX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5cblxuZXhwb3J0IHR5cGUgVXNlclByb2ZpbGVMYWJlbCA9ICdBRE1JTicgfCAnVVNFUicgfCAnU1VQRVJWSVNPUicgfCAnR1VFU1QnO1xuZXhwb3J0IGNvbnN0IFBSSU9SSVRJWkVEX0FVVEhPUklUSUVTOiBSZWFkb25seTxVc2VyUHJvZmlsZUxhYmVsW10+ID0gT2JqZWN0LmZyZWV6ZShbJ0FETUlOJywgJ1NVUEVSVklTT1InLCAnVVNFUicsICdHVUVTVCddKTtcblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdQZXJzb25WTyd9KVxuZXhwb3J0IGNsYXNzIFBlcnNvbjxcbiAgVCBleHRlbmRzIFBlcnNvbjxhbnk+ID0gUGVyc29uPGFueT5cbiAgPiBleHRlbmRzIEVudGl0eTxULCBudW1iZXIsIFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zPiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gIFBlcnNvbjtcblxuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgcHVia2V5OiBzdHJpbmc7XG4gIGF2YXRhcjogc3RyaW5nO1xuICBjcmVhdGlvbkRhdGU6IERhdGUgfCBNb21lbnQ7XG4gIHN0YXR1c0lkOiBudW1iZXI7XG4gIGRlcGFydG1lbnQ6IERlcGFydG1lbnQgPSBudWxsO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICB1c2VybmFtZUV4dHJhbmV0OiBzdHJpbmc7XG4gIHByb2ZpbGVzOiBzdHJpbmdbXTtcbiAgbWFpblByb2ZpbGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfX3R5cGVuYW1lPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoX190eXBlbmFtZSB8fCBQZXJzb24uVFlQRU5BTUUpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zKTogYW55IHtcbiAgICBpZiAob3B0cyAmJiBvcHRzLm1pbmlmeSkgIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICBfX3R5cGVuYW1lOiBvcHRzLmtlZXBUeXBlbmFtZSAmJiB0aGlzLl9fdHlwZW5hbWUgfHwgdW5kZWZpbmVkLFxuICAgICAgICBmaXJzdE5hbWU6IHRoaXMuZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZTogdGhpcy5sYXN0TmFtZVxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBzdXBlci5hc09iamVjdChvcHRzKTtcbiAgICB0YXJnZXQuZGVwYXJ0bWVudCA9IHRoaXMuZGVwYXJ0bWVudCAmJiB0aGlzLmRlcGFydG1lbnQuYXNPYmplY3Qob3B0cykgfHwgdW5kZWZpbmVkO1xuICAgIHRhcmdldC5wcm9maWxlcyA9IHRoaXMucHJvZmlsZXMgJiYgdGhpcy5wcm9maWxlcy5zbGljZSgwKSB8fCBbXTtcbiAgICAvLyBTZXQgcHJvZmlsZSBsaXN0IGZyb20gdGhlIG1haW4gcHJvZmlsZVxuICAgIHRhcmdldC5wcm9maWxlcyA9IHRoaXMubWFpblByb2ZpbGUgJiYgW3RoaXMubWFpblByb2ZpbGVdIHx8IHRhcmdldC5wcm9maWxlcztcbiAgICB0YXJnZXQuY3JlYXRpb25EYXRlID0gdG9EYXRlSVNPU3RyaW5nKHRoaXMuY3JlYXRpb25EYXRlKTtcblxuICAgIGlmICghb3B0cyB8fCBvcHRzLm1pbmlmeSAhPT0gdHJ1ZSkgdGFyZ2V0Lm1haW5Qcm9maWxlID0gUGVyc29uVXRpbHMuZ2V0TWFpblByb2ZpbGUodGFyZ2V0LnByb2ZpbGVzKTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSkge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB0aGlzLmZpcnN0TmFtZSA9IHNvdXJjZS5maXJzdE5hbWU7XG4gICAgdGhpcy5sYXN0TmFtZSA9IHNvdXJjZS5sYXN0TmFtZTtcbiAgICB0aGlzLmVtYWlsID0gc291cmNlLmVtYWlsO1xuICAgIHRoaXMuY3JlYXRpb25EYXRlID0gZnJvbURhdGVJU09TdHJpbmcoc291cmNlLmNyZWF0aW9uRGF0ZSk7XG4gICAgdGhpcy5wdWJrZXkgPSBzb3VyY2UucHVia2V5O1xuICAgIHRoaXMudXNlcm5hbWUgPSBzb3VyY2UudXNlcm5hbWU7XG4gICAgdGhpcy51c2VybmFtZUV4dHJhbmV0ID0gc291cmNlLnVzZXJuYW1lRXh0cmFuZXQ7XG4gICAgdGhpcy5hdmF0YXIgPSBzb3VyY2UuYXZhdGFyO1xuICAgIHRoaXMuc3RhdHVzSWQgPSBzb3VyY2Uuc3RhdHVzSWQ7XG4gICAgdGhpcy5kZXBhcnRtZW50ID0gc291cmNlLmRlcGFydG1lbnQgJiYgRGVwYXJ0bWVudC5mcm9tT2JqZWN0KHNvdXJjZS5kZXBhcnRtZW50KSB8fCB1bmRlZmluZWQ7XG4gICAgdGhpcy5wcm9maWxlcyA9IHNvdXJjZS5wcm9maWxlcyAmJiBzb3VyY2UucHJvZmlsZXMuc2xpY2UoMCkgfHwgW107XG4gICAgLy8gQWRkIG1haW4gcHJvZmlsZSB0byB0aGUgbGlzdCwgaWYgbmVlZFxuICAgIGlmIChzb3VyY2UubWFpblByb2ZpbGUgJiYgIXRoaXMucHJvZmlsZXMuZmluZChwID0+IHAgPT09IHNvdXJjZS5tYWluUHJvZmlsZSkpIHtcbiAgICAgIHRoaXMucHJvZmlsZXMgPSB0aGlzLnByb2ZpbGVzLmNvbmNhdChzb3VyY2UubWFpblByb2ZpbGUpO1xuICAgIH1cbiAgICB0aGlzLm1haW5Qcm9maWxlID0gUGVyc29uVXRpbHMuZ2V0TWFpblByb2ZpbGUodGhpcy5wcm9maWxlcyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcnNvblV0aWxzIHtcbiAgc3RhdGljIGdldE1haW5Qcm9maWxlKHByb2ZpbGVzPzogc3RyaW5nW10pOiBVc2VyUHJvZmlsZUxhYmVsIHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KHByb2ZpbGVzKSkgcmV0dXJuICdHVUVTVCc7XG4gICAgcmV0dXJuIFBSSU9SSVRJWkVEX0FVVEhPUklUSUVTLmZpbmQobGFiZWwgPT4gcHJvZmlsZXMuaW5jbHVkZXMobGFiZWwpKSB8fCAnR1VFU1QnO1xuICB9XG5cbiAgc3RhdGljIGdldE1haW5Qcm9maWxlSW5kZXgocHJvZmlsZXM/OiBzdHJpbmdbXSk6IG51bWJlciB7XG4gICAgaWYgKGlzRW1wdHlBcnJheShwcm9maWxlcykpIHJldHVybiBQUklPUklUSVpFRF9BVVRIT1JJVElFUy5sZW5ndGggLSAxOyAvLyByZXR1cm4gbGFzdCAobG93ZXIpIHByb2ZpbGVcbiAgICBjb25zdCBpbmRleCA9IFBSSU9SSVRJWkVEX0FVVEhPUklUSUVTLmZpbmRJbmRleChsYWJlbCA9PiBwcm9maWxlcy5pbmNsdWRlcyhsYWJlbCkpO1xuICAgIHJldHVybiAoaW5kZXggIT09IC0xKSA/IGluZGV4IDogKFBSSU9SSVRJWkVEX0FVVEhPUklUSUVTLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgc3RhdGljIGhhc1VwcGVyT3JFcXVhbHNQcm9maWxlKGFjdHVhbFByb2ZpbGVzOiBzdHJpbmdbXSwgZXhwZWN0ZWRQcm9maWxlOiBVc2VyUHJvZmlsZUxhYmVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXhwZWN0ZWRQcm9maWxlSW5kZXggPSBQUklPUklUSVpFRF9BVVRIT1JJVElFUy5pbmRleE9mKGV4cGVjdGVkUHJvZmlsZSk7XG4gICAgcmV0dXJuIGV4cGVjdGVkUHJvZmlsZUluZGV4ICE9PSAtMSAmJiBQZXJzb25VdGlscy5nZXRNYWluUHJvZmlsZUluZGV4KGFjdHVhbFByb2ZpbGVzKSA8PSBleHBlY3RlZFByb2ZpbGVJbmRleDtcbiAgfVxuXG4gIHN0YXRpYyBwZXJzb25Ub1N0cmluZyhvYmo6IFBlcnNvbik6IHN0cmluZyB7XG4gICAgaWYgKCFvYmogfHwgIW9iai5pZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gb2JqLmxhc3ROYW1lICsgJyAnICsgb2JqLmZpcnN0TmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBwZXJzb25zVG9TdHJpbmcoZGF0YTogUGVyc29uW10sIHNlcGFyYXRvcj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChkYXRhIHx8IFtdKS5tYXAoUGVyc29uVXRpbHMucGVyc29uVG9TdHJpbmcpLmpvaW4oc2VwYXJhdG9yIHx8ICcsICcpO1xuICB9XG5cbn1cblxuXG5cblxuXG5cblxuIl19
@@ -0,0 +1,145 @@
1
+ var ReferentialRef_1;
2
+ import { __decorate } from "tslib";
3
+ import { joinPropertiesPath, splitById } from '../../../shared/functions';
4
+ import { Entity, EntityUtils } from './entity.model';
5
+ import { StatusIds } from './model.enum';
6
+ import { fromDateISOString, toDateISOString } from '../../../shared/dates';
7
+ import { EntityClass } from './entity.decorators';
8
+ export function referentialToString(obj, properties) {
9
+ return obj && obj.id && joinPropertiesPath(obj, properties || ['label', 'name']) || undefined;
10
+ }
11
+ export function referentialsToString(values, properties, separator) {
12
+ return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
13
+ }
14
+ export const StatusList = Object.freeze([
15
+ {
16
+ id: StatusIds.ENABLE,
17
+ icon: 'checkmark',
18
+ label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
19
+ },
20
+ {
21
+ id: StatusIds.DISABLE,
22
+ icon: 'close',
23
+ label: 'REFERENTIAL.STATUS_ENUM.DISABLE'
24
+ },
25
+ {
26
+ id: StatusIds.TEMPORARY,
27
+ icon: 'help',
28
+ label: 'REFERENTIAL.STATUS_ENUM.TEMPORARY'
29
+ }
30
+ ]);
31
+ export const StatusById = Object.freeze(splitById(StatusList));
32
+ //@dynamic
33
+ export class BaseReferential extends Entity {
34
+ constructor(__typename) {
35
+ super(__typename);
36
+ }
37
+ asObject(opts) {
38
+ if (opts && opts.minify) {
39
+ return {
40
+ id: this.id,
41
+ entityName: opts.keepEntityName && this.entityName || undefined,
42
+ __typename: opts.keepTypename && this.__typename || undefined
43
+ };
44
+ }
45
+ const target = super.asObject(opts);
46
+ target.creationDate = toDateISOString(this.creationDate);
47
+ if (opts && opts.keepTypename === false)
48
+ delete target.entityName;
49
+ return target;
50
+ }
51
+ fromObject(source, opts) {
52
+ super.fromObject(source, opts);
53
+ this.label = source.label;
54
+ this.name = source.name;
55
+ this.description = source.description;
56
+ this.comments = source.comments;
57
+ this.statusId = source.statusId;
58
+ this.validityStatusId = source.validityStatusId;
59
+ this.levelId = source.levelId && source.levelId !== 0 ? source.levelId : undefined; // Do not set as null (need for account.department, when register)
60
+ this.parentId = source.parentId;
61
+ this.creationDate = fromDateISOString(source.creationDate);
62
+ this.entityName = source.entityName;
63
+ }
64
+ equals(other) {
65
+ return super.equals(other) && this.entityName === other.entityName;
66
+ }
67
+ }
68
+ // @dynamic
69
+ let Referential = class Referential extends BaseReferential {
70
+ };
71
+ Referential = __decorate([
72
+ EntityClass({ typename: 'ReferentialVO' })
73
+ ], Referential);
74
+ export { Referential };
75
+ export class ReferentialUtils {
76
+ // FIXME: remove this
77
+ static fromObject(source) {
78
+ if (!source || source instanceof Referential)
79
+ return source;
80
+ const res = new Referential();
81
+ res.fromObject(source);
82
+ return res;
83
+ }
84
+ static isNotEmpty(obj) {
85
+ // A referential entity should always have a 'id' filled (can be negative is local and temporary)
86
+ return EntityUtils.isNotEmpty(obj, 'id');
87
+ }
88
+ static isEmpty(obj) {
89
+ return EntityUtils.isEmpty(obj, 'id');
90
+ }
91
+ static equals(o1, o2) {
92
+ return EntityUtils.equals(o1, o2, 'id');
93
+ }
94
+ }
95
+ /**
96
+ * Used to store an entity locally
97
+ */
98
+ export const MINIFY_ENTITY_FOR_LOCAL_STORAGE = Object.freeze({
99
+ minify: true,
100
+ keepTypename: true,
101
+ keepEntityName: true,
102
+ keepLocalId: true
103
+ });
104
+ /**
105
+ * Used to send an entity to a pod
106
+ */
107
+ export const MINIFY_ENTITY_FOR_POD = Object.freeze({
108
+ minify: true,
109
+ keepTypename: false,
110
+ keepEntityName: false,
111
+ keepLocalId: false
112
+ });
113
+ // @dynamic
114
+ let ReferentialRef = ReferentialRef_1 = class ReferentialRef extends Entity {
115
+ constructor() {
116
+ super(ReferentialRef_1.TYPENAME);
117
+ }
118
+ asObject(opts) {
119
+ if (opts && opts.minify) {
120
+ return {
121
+ id: this.id,
122
+ entityName: opts.keepEntityName && this.entityName || undefined,
123
+ __typename: opts.keepTypename && this.__typename || undefined
124
+ };
125
+ }
126
+ const target = super.asObject(opts);
127
+ if (opts && opts.keepEntityName === false)
128
+ delete target.entityName;
129
+ return target;
130
+ }
131
+ fromObject(source, opts) {
132
+ super.fromObject(source);
133
+ this.entityName = source.entityName || this.entityName;
134
+ this.label = source.label;
135
+ this.name = source.name;
136
+ this.description = source.description;
137
+ this.statusId = source.statusId;
138
+ this.levelId = source.levelId;
139
+ }
140
+ };
141
+ ReferentialRef = ReferentialRef_1 = __decorate([
142
+ EntityClass({ typename: 'ReferentialVO' })
143
+ ], ReferentialRef);
144
+ export { ReferentialRef };
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbnRpYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvcmVmZXJlbnRpYWwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDcEYsT0FBTyxFQUFDLE1BQU0sRUFBeUIsV0FBVyxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDekUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFzQixFQUFFLFVBQXFCO0lBQy9FLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUNoRyxDQUFDO0FBQ0QsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQXFCLEVBQUUsVUFBcUIsRUFBRSxTQUFrQjtJQUNuRyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUM7QUFDN0YsQ0FBQztBQVFELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBd0IsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMzRDtRQUNFLEVBQUUsRUFBRSxTQUFTLENBQUMsTUFBTTtRQUNwQixJQUFJ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Q0YsQ0FBQTtBQTdDWSxjQUFjO0lBRDFCLFdBQVcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUMsQ0FBQztHQUM1QixjQUFjLENBNkMxQjtTQTdDWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb21lbnR9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBqb2luUHJvcGVydGllc1BhdGgsIHNwbGl0QnlJZCwgdG9OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7RW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMsIEVudGl0eVV0aWxzLCBJRW50aXR5fSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQge1N0YXR1c0lkc30gZnJvbSAnLi9tb2RlbC5lbnVtJztcbmltcG9ydCB7ZnJvbURhdGVJU09TdHJpbmcsIHRvRGF0ZUlTT1N0cmluZ30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RhdGVzJztcbmltcG9ydCB7RW50aXR5Q2xhc3N9IGZyb20gJy4vZW50aXR5LmRlY29yYXRvcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbnRpYWxUb1N0cmluZyhvYmo6IFJlZmVyZW50aWFsIHwgYW55LCBwcm9wZXJ0aWVzPzogc3RyaW5nW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb2JqICYmIG9iai5pZCAmJiBqb2luUHJvcGVydGllc1BhdGgob2JqLCBwcm9wZXJ0aWVzIHx8IFsnbGFiZWwnLCAnbmFtZSddKSB8fCB1bmRlZmluZWQ7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbnRpYWxzVG9TdHJpbmcodmFsdWVzOiBSZWZlcmVudGlhbFtdLCBwcm9wZXJ0aWVzPzogc3RyaW5nW10sIHNlcGFyYXRvcj86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiAodmFsdWVzIHx8IFtdKS5tYXAodiA9PiByZWZlcmVudGlhbFRvU3RyaW5nKHYsIHByb3BlcnRpZXMpKS5qb2luKHNlcGFyYXRvciB8fCAnLCAnKTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElTdGF0dXMge1xuICBpZDogbnVtYmVyO1xuICBpY29uPzogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgU3RhdHVzTGlzdDogUmVhZG9ubHk8SVN0YXR1c1tdPiA9IE9iamVjdC5mcmVlemUoW1xuICB7XG4gICAgaWQ6IFN0YXR1c0lkcy5FTkFCTEUsXG4gICAgaWNvbjogJ2NoZWNrbWFyaycsXG4gICAgbGFiZWw6ICdSRUZFUkVOVElBTC5TVEFUVVNfRU5VTS5FTkFCTEUnXG4gIH0sXG4gIHtcbiAgICBpZDogU3RhdHVzSWRzLkRJU0FCTEUsXG4gICAgaWNvbjogJ2Nsb3NlJyxcbiAgICBsYWJlbDogJ1JFRkVSRU5USUFMLlNUQVRVU19FTlVNLkRJU0FCTEUnXG4gIH0sXG4gIHtcbiAgICBpZDogU3RhdHVzSWRzLlRFTVBPUkFSWSxcbiAgICBpY29uOiAnaGVscCcsXG4gICAgbGFiZWw6ICdSRUZFUkVOVElBTC5TVEFUVVNfRU5VTS5URU1QT1JBUlknXG4gIH1cbl0pO1xuXG5leHBvcnQgY29uc3QgU3RhdHVzQnlJZCA9IE9iamVjdC5mcmVlemUoc3BsaXRCeUlkKFN0YXR1c0xpc3QpKTtcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElSZWZlcmVudGlhbFJlZjxcbiAgVCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+ID0gSUVudGl0eTxhbnksIGFueT4sXG4gIElEID0gbnVtYmVyXG4gID5cbiAgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGxldmVsSWQ/OiBudW1iZXI7XG4gIHN0YXR1c0lkOiBudW1iZXI7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbn1cblxuLy9AZHluYW1pY1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VSZWZlcmVudGlhbDxcbiAgVCBleHRlbmRzIEJhc2VSZWZlcmVudGlhbDxULCBJRCwgQU8+LFxuICBJRCA9IG51bWJlcixcbiAgQU8gZXh0ZW5kcyBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyA9IFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zLFxuICBGTyA9IGFueVxuICA+XG4gIGV4dGVuZHMgRW50aXR5PFQsIElELCBBTywgRk8+XG4gIGltcGxlbWVudHMgSVJlZmVyZW50aWFsUmVmPFQsIElEPiB7XG5cbiAgbGFiZWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjb21tZW50czogc3RyaW5nO1xuICBjcmVhdGlvbkRhdGU6IERhdGUgfCBNb21lbnQ7XG4gIHN0YXR1c0lkOiBudW1iZXI7XG4gIHZhbGlkaXR5U3RhdHVzSWQ6IG51bWJlcjtcbiAgbGV2ZWxJZDogbnVtYmVyO1xuICBwYXJlbnRJZDogbnVtYmVyO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX190eXBlbmFtZT86IHN0cmluZykge1xuICAgIHN1cGVyKF9fdHlwZW5hbWUpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IEFPKTogYW55IHtcbiAgICBpZiAob3B0cyAmJiBvcHRzLm1pbmlmeSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgIGVudGl0eU5hbWU6IG9wdHMua2VlcEVudGl0eU5hbWUgJiYgdGhpcy5lbnRpdHlOYW1lIHx8IHVuZGVmaW5lZCwgLy8gRG9uJ3Qga2VlcCBieSBkZWZhdWx0XG4gICAgICAgIF9fdHlwZW5hbWU6IG9wdHMua2VlcFR5cGVuYW1lICYmIHRoaXMuX190eXBlbmFtZSB8fCB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmNyZWF0aW9uRGF0ZSA9IHRvRGF0ZUlTT1N0cmluZyh0aGlzLmNyZWF0aW9uRGF0ZSk7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5rZWVwVHlwZW5hbWUgPT09IGZhbHNlKSBkZWxldGUgdGFyZ2V0LmVudGl0eU5hbWU7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBGTykge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgICB0aGlzLmxhYmVsID0gc291cmNlLmxhYmVsO1xuICAgIHRoaXMubmFtZSA9IHNvdXJjZS5uYW1lO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBzb3VyY2UuZGVzY3JpcHRpb247XG4gICAgdGhpcy5jb21tZW50cyA9IHNvdXJjZS5jb21tZW50cztcbiAgICB0aGlzLnN0YXR1c0lkID0gc291cmNlLnN0YXR1c0lkO1xuICAgIHRoaXMudmFsaWRpdHlTdGF0dXNJZCAgPSBzb3VyY2UudmFsaWRpdHlTdGF0dXNJZDtcbiAgICB0aGlzLmxldmVsSWQgPSBzb3VyY2UubGV2ZWxJZCAmJiBzb3VyY2UubGV2ZWxJZCAhPT0gMCA/IHNvdXJjZS5sZXZlbElkIDogdW5kZWZpbmVkOyAvLyBEbyBub3Qgc2V0IGFzIG51bGwgKG5lZWQgZm9yIGFjY291bnQuZGVwYXJ0bWVudCwgd2hlbiByZWdpc3RlcilcbiAgICB0aGlzLnBhcmVudElkID0gc291cmNlLnBhcmVudElkO1xuICAgIHRoaXMuY3JlYXRpb25EYXRlID0gZnJvbURhdGVJU09TdHJpbmcoc291cmNlLmNyZWF0aW9uRGF0ZSk7XG4gICAgdGhpcy5lbnRpdHlOYW1lID0gc291cmNlLmVudGl0eU5hbWU7XG4gIH1cblxuICBlcXVhbHMob3RoZXI6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuZXF1YWxzKG90aGVyKSAmJiB0aGlzLmVudGl0eU5hbWUgPT09IG90aGVyLmVudGl0eU5hbWU7XG4gIH1cbn1cblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdSZWZlcmVudGlhbFZPJ30pXG5leHBvcnQgY2xhc3MgUmVmZXJlbnRpYWw8XG4gIFQgZXh0ZW5kcyBSZWZlcmVudGlhbDxULCBhbnk+ID0gUmVmZXJlbnRpYWw8YW55PixcbiAgSUQgPSBudW1iZXJcbiAgPlxuICBleHRlbmRzIEJhc2VSZWZlcmVudGlhbDxULCBJRD4ge1xuXG4gIHN0YXRpYyBmcm9tT2JqZWN0OiAoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpID0+IFJlZmVyZW50aWFsO1xufVxuXG5leHBvcnQgY2xhc3MgUmVmZXJlbnRpYWxVdGlscyB7XG4gIC8vIEZJWE1FOiByZW1vdmUgdGhpc1xuICBzdGF0aWMgZnJvbU9iamVjdChzb3VyY2U6IGFueSk6IFJlZmVyZW50aWFsIHtcbiAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UgaW5zdGFuY2VvZiBSZWZlcmVudGlhbCkgcmV0dXJuIHNvdXJjZTtcbiAgICBjb25zdCByZXMgPSBuZXcgUmVmZXJlbnRpYWwoKTtcbiAgICByZXMuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIHJldHVybiByZXMgYXMgUmVmZXJlbnRpYWw7XG4gIH1cblxuICBzdGF0aWMgaXNOb3RFbXB0eTxUIGV4dGVuZHMgSVJlZmVyZW50aWFsUmVmPFQ+PihvYmo6IFR8YW55KTogYm9vbGVhbiB7XG4gICAgLy8gQSByZWZlcmVudGlhbCBlbnRpdHkgc2hvdWxkIGFsd2F5cyBoYXZlIGEgJ2lkJyBmaWxsZWQgKGNhbiBiZSBuZWdhdGl2ZSBpcyBsb2NhbCBhbmQgdGVtcG9yYXJ5KVxuICAgIHJldHVybiBFbnRpdHlVdGlscy5pc05vdEVtcHR5KG9iaiwgJ2lkJyk7XG4gIH1cblxuICBzdGF0aWMgaXNFbXB0eTxUIGV4dGVuZHMgSVJlZmVyZW50aWFsUmVmPFQ+PihvYmo6IFR8YW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLmlzRW1wdHkob2JqLCAnaWQnKTtcbiAgfVxuXG4gIHN0YXRpYyBlcXVhbHM8VCBleHRlbmRzIElSZWZlcmVudGlhbFJlZjxUPj4obzE6IFR8YW55LCBvMjogVHxhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRW50aXR5VXRpbHMuZXF1YWxzKG8xLCBvMiwgJ2lkJyk7XG4gIH1cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zIHtcbiAga2VlcEVudGl0eU5hbWU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFVzZWQgdG8gc3RvcmUgYW4gZW50aXR5IGxvY2FsbHlcbiAqL1xuZXhwb3J0IGNvbnN0IE1JTklGWV9FTlRJVFlfRk9SX0xPQ0FMX1NUT1JBR0U6IFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zID0gT2JqZWN0LmZyZWV6ZSh7XG4gIG1pbmlmeTogdHJ1ZSxcbiAga2VlcFR5cGVuYW1lOiB0cnVlLFxuICBrZWVwRW50aXR5TmFtZTogdHJ1ZSxcbiAga2VlcExvY2FsSWQ6IHRydWVcbn0pO1xuXG4vKipcbiAqIFVzZWQgdG8gc2VuZCBhbiBlbnRpdHkgdG8gYSBwb2RcbiAqL1xuZXhwb3J0IGNvbnN0IE1JTklGWV9FTlRJVFlfRk9SX1BPRDogUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHtcbiAgbWluaWZ5OiB0cnVlLFxuICBrZWVwVHlwZW5hbWU6IGZhbHNlLFxuICBrZWVwRW50aXR5TmFtZTogZmFsc2UsXG4gIGtlZXBMb2NhbElkOiBmYWxzZVxufSk7XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3Moe3R5cGVuYW1lOiAnUmVmZXJlbnRpYWxWTyd9KVxuZXhwb3J0IGNsYXNzIFJlZmVyZW50aWFsUmVmPFxuICBUIGV4dGVuZHMgUmVmZXJlbnRpYWxSZWY8YW55LCBJRD4gPSBSZWZlcmVudGlhbFJlZjxhbnksIGFueT4sXG4gIElEID0gbnVtYmVyLFxuICBPIGV4dGVuZHMgUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgPSBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyxcbiAgRk8gPSBhbnlcbiAgPlxuICBleHRlbmRzIEVudGl0eTxULCBJRCwgTywgRk8+XG4gIGltcGxlbWVudHMgSVJlZmVyZW50aWFsUmVmPFQsIElEPiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gUmVmZXJlbnRpYWxSZWY7XG5cbiAgbGFiZWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXNJZDogbnVtYmVyO1xuICBsZXZlbElkOiBudW1iZXI7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihSZWZlcmVudGlhbFJlZi5UWVBFTkFNRSk7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogTyk6IGFueSB7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5taW5pZnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICBlbnRpdHlOYW1lOiBvcHRzLmtlZXBFbnRpdHlOYW1lICYmIHRoaXMuZW50aXR5TmFtZSB8fCB1bmRlZmluZWQsIC8vIERvbid0IGtlZXAgYnkgZGVmYXVsdFxuICAgICAgICBfX3R5cGVuYW1lOiBvcHRzLmtlZXBUeXBlbmFtZSAmJiB0aGlzLl9fdHlwZW5hbWUgfHwgdW5kZWZpbmVkXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQ6IGFueSA9IHN1cGVyLmFzT2JqZWN0KG9wdHMpO1xuICAgIGlmIChvcHRzICYmIG9wdHMua2VlcEVudGl0eU5hbWUgPT09IGZhbHNlKSBkZWxldGUgdGFyZ2V0LmVudGl0eU5hbWU7XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IEZPKSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIHRoaXMuZW50aXR5TmFtZSA9IHNvdXJjZS5lbnRpdHlOYW1lIHx8IHRoaXMuZW50aXR5TmFtZTtcbiAgICB0aGlzLmxhYmVsID0gc291cmNlLmxhYmVsO1xuICAgIHRoaXMubmFtZSA9IHNvdXJjZS5uYW1lO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBzb3VyY2UuZGVzY3JpcHRpb247XG4gICAgdGhpcy5zdGF0dXNJZCA9IHNvdXJjZS5zdGF0dXNJZDtcbiAgICB0aGlzLmxldmVsSWQgPSBzb3VyY2UubGV2ZWxJZDtcbiAgfVxufVxuIl19
@@ -0,0 +1,75 @@
1
+ var UserSettings_1;
2
+ import { __decorate } from "tslib";
3
+ import { equals, isNil } from '../../../shared/functions';
4
+ import { Entity } from './entity.model';
5
+ import { InjectionToken } from '@angular/core';
6
+ import { EntityClass } from './entity.decorators';
7
+ export const APP_LOCALES = new InjectionToken('locales');
8
+ // @dynamic
9
+ let UserSettings = UserSettings_1 = class UserSettings extends Entity {
10
+ constructor() {
11
+ super(UserSettings_1.TYPENAME);
12
+ }
13
+ asObject(opts) {
14
+ const target = super.asObject(opts);
15
+ if (opts?.minify) {
16
+ // Stringify content
17
+ target.content = this.content && JSON.stringify(target.content) || undefined;
18
+ }
19
+ return target;
20
+ }
21
+ fromObject(source, opts) {
22
+ super.fromObject(source);
23
+ this.locale = source.locale;
24
+ this.latLongFormat = source.latLongFormat;
25
+ if (isNil(source.content) || typeof source.content === 'object') {
26
+ this.content = source.content || {};
27
+ }
28
+ else {
29
+ this.content = source.content && JSON.parse(source.content) || {};
30
+ }
31
+ this.nonce = source.nonce;
32
+ }
33
+ merge(source, includesProperties) {
34
+ if (!source)
35
+ return; // Skip
36
+ // Reset content
37
+ this.content = {};
38
+ let hasChanges = false;
39
+ // For each property of source object
40
+ Object.keys(source)
41
+ .forEach(key => {
42
+ // If property exists in UserSettings class: store it directly
43
+ if (UserSettings_1.SETTINGS_PROPERTIES.includes(key)) {
44
+ if (!equals(this[key], source[key])) {
45
+ this[key] = source[key];
46
+ hasChanges = true;
47
+ }
48
+ }
49
+ // Else, store property into the 'content' map
50
+ else if (includesProperties && includesProperties.includes(key)) {
51
+ if (!equals(this.content[key], source[key])) {
52
+ this.content[key] = Object.assign({}, source[key]);
53
+ hasChanges = true;
54
+ }
55
+ }
56
+ });
57
+ return hasChanges;
58
+ }
59
+ asLocalSettings() {
60
+ const target = {};
61
+ UserSettings_1.SETTINGS_PROPERTIES.forEach(key => {
62
+ target[key] = this[key];
63
+ });
64
+ Object.keys(this.content).forEach(key => {
65
+ target[key] = this.content[key];
66
+ });
67
+ return target;
68
+ }
69
+ };
70
+ UserSettings.SETTINGS_PROPERTIES = ['locale', 'latLongFormat'];
71
+ UserSettings = UserSettings_1 = __decorate([
72
+ EntityClass({ typename: 'UserSettingsVO' })
73
+ ], UserSettings);
74
+ export { UserSettings };
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvc2V0dGluZ3MubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxNQUFNLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFTaEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFpQixTQUFTLENBQUMsQ0FBQztBQXVCekUsV0FBVztBQUVYLElBQWEsWUFBWSxvQkFBekIsTUFBYSxZQUFhLFNBQVEsTUFBb0I7SUFVcEQ7UUFDRSxLQUFLLENBQUMsY0FBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBNEI7UUFDbkMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDaEIsb0JBQW9CO1lBQ3BCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLENBQUM7U0FDOUU7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQStCLENBQUM7UUFDNUQsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDL0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuRTtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUEsS0FBSyxDQUFvQixNQUFTLEVBQUUsa0JBQStCO1FBQ2xFLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLE9BQU87UUFFNUIsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztRQUV2QixxQ0FBcUM7UUFDckMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2YsOERBQThEO1lBQzlELElBQUksY0FBWSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hCLFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQ25CO2FBQ0Y7WUFDRCw4Q0FBOEM7aUJBQ3pDLElBQUksa0JBQWtCLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQWMsQ0FBQyxFQUFDO2dCQUN6RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ25ELFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQ25CO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGNBQVksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRixDQUFBO0FBdkVRLGdDQUFtQixHQUFHLENBQXFCLFFBQVEsRUFBc0IsZUFBZSxDQUFjLENBQUE7QUFGbEcsWUFBWTtJQUR4QixXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQztHQUM3QixZQUFZLENBeUV4QjtTQXpFWSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtlcXVhbHMsIGlzTmlsfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7RW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnN9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7TGF0TG9uZ1BhdHRlcm59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tYXRlcmlhbC9sYXRsb25nL2xhdGxvbmcudXRpbHMnO1xuaW1wb3J0IHtQcm9wZXJ0aWVzTWFwLCBQcm9wZXJ0eX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbnRpdHlDbGFzc30gZnJvbSAnLi9lbnRpdHkuZGVjb3JhdG9ycyc7XG5pbXBvcnQge0hpc3RvcnlQYWdlUmVmZXJlbmNlfSBmcm9tICcuL2hpc3RvcnkubW9kZWwnO1xuXG5leHBvcnQgdHlwZSBVc2FnZU1vZGUgPSAnREVTSycgfCAnRklFTEQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTG9jYWxlQ29uZmlnIGV4dGVuZHMgUHJvcGVydHkge1xuICBjb3VudHJ5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgQVBQX0xPQ0FMRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9jYWxlQ29uZmlnW10+KCdsb2NhbGVzJyk7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBPZmZsaW5lRmVhdHVyZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFzdFN5bmNEYXRlPzogc3RyaW5nO1xuICBmaWx0ZXI/OiBhbnk7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBMb2NhbFNldHRpbmdzIHtcbiAgcGFnZXM/OiBhbnk7XG4gIHBlZXJVcmw/OiBzdHJpbmc7XG4gIGxhdExvbmdGb3JtYXQ6ICdERE1NU1MnIHwgJ0RETU0nIHwgJ0REJztcbiAgYWNjb3VudEluaGVyaXRhbmNlPzogYm9vbGVhbjtcbiAgbG9jYWxlOiBzdHJpbmc7XG4gIHVzYWdlTW9kZT86IFVzYWdlTW9kZTtcbiAgbW9iaWxlPzogYm9vbGVhbjtcbiAgcHJvcGVydGllcz86IFByb3BlcnRpZXNNYXA7XG4gIHBhZ2VIaXN0b3J5PzogSGlzdG9yeVBhZ2VSZWZlcmVuY2VbXTtcbiAgb2ZmbGluZUZlYXR1cmVzPzogKHN0cmluZyB8IE9mZmxpbmVGZWF0dXJlKVtdO1xuICBwYWdlSGlzdG9yeU1heFNpemU6IG51bWJlcjtcbn1cblxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHt0eXBlbmFtZTogJ1VzZXJTZXR0aW5nc1ZPJ30pXG5leHBvcnQgY2xhc3MgVXNlclNldHRpbmdzIGV4dGVuZHMgRW50aXR5PFVzZXJTZXR0aW5ncz4ge1xuXG4gIHN0YXRpYyBTRVRUSU5HU19QUk9QRVJUSUVTID0gWzxrZXlvZiBVc2VyU2V0dGluZ3M+J2xvY2FsZScsIDxrZXlvZiBVc2VyU2V0dGluZ3M+J2xhdExvbmdGb3JtYXQnXSBhcyBzdHJpbmdbXTtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gVXNlclNldHRpbmdzO1xuXG4gIGxvY2FsZTogc3RyaW5nO1xuICBsYXRMb25nRm9ybWF0OiBMYXRMb25nUGF0dGVybjtcbiAgY29udGVudDoge307XG4gIG5vbmNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVXNlclNldHRpbmdzLlRZUEVOQU1FKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHRhcmdldCA9IHN1cGVyLmFzT2JqZWN0KG9wdHMpO1xuICAgIGlmIChvcHRzPy5taW5pZnkpIHtcbiAgICAgIC8vIFN0cmluZ2lmeSBjb250ZW50XG4gICAgICB0YXJnZXQuY29udGVudCA9IHRoaXMuY29udGVudCAmJiBKU09OLnN0cmluZ2lmeSh0YXJnZXQuY29udGVudCkgfHwgdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB0aGlzLmxvY2FsZSA9IHNvdXJjZS5sb2NhbGU7XG4gICAgdGhpcy5sYXRMb25nRm9ybWF0ID0gc291cmNlLmxhdExvbmdGb3JtYXQgYXMgTGF0TG9uZ1BhdHRlcm47XG4gICAgaWYgKGlzTmlsKHNvdXJjZS5jb250ZW50KSB8fCB0eXBlb2Ygc291cmNlLmNvbnRlbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLmNvbnRlbnQgPSBzb3VyY2UuY29udGVudCB8fCB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250ZW50ID0gc291cmNlLmNvbnRlbnQgJiYgSlNPTi5wYXJzZShzb3VyY2UuY29udGVudCkgfHwge307XG4gICAgfVxuICAgIHRoaXMubm9uY2UgPSBzb3VyY2Uubm9uY2U7XG4gIH1cblxuICAgbWVyZ2U8UyA9IExvY2FsU2V0dGluZ3M+KHNvdXJjZTogUywgaW5jbHVkZXNQcm9wZXJ0aWVzOiAoa2V5b2YgUylbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghc291cmNlKSByZXR1cm47IC8vIFNraXBcblxuICAgIC8vIFJlc2V0IGNvbnRlbnRcbiAgICB0aGlzLmNvbnRlbnQgPSB7fTtcbiAgICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xuXG4gICAgLy8gRm9yIGVhY2ggcHJvcGVydHkgb2Ygc291cmNlIG9iamVjdFxuICAgIE9iamVjdC5rZXlzKHNvdXJjZSlcbiAgICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAvLyBJZiBwcm9wZXJ0eSBleGlzdHMgaW4gVXNlclNldHRpbmdzIGNsYXNzOiBzdG9yZSBpdCBkaXJlY3RseVxuICAgICAgaWYgKFVzZXJTZXR0aW5ncy5TRVRUSU5HU19QUk9QRVJUSUVTLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgaWYgKCFlcXVhbHModGhpc1trZXldLCBzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgICB0aGlzW2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gRWxzZSwgc3RvcmUgcHJvcGVydHkgaW50byB0aGUgJ2NvbnRlbnQnIG1hcFxuICAgICAgZWxzZSBpZiAoaW5jbHVkZXNQcm9wZXJ0aWVzICYmIGluY2x1ZGVzUHJvcGVydGllcy5pbmNsdWRlcyhrZXkgYXMga2V5b2YgUykpe1xuICAgICAgICBpZiAoIWVxdWFscyh0aGlzLmNvbnRlbnRba2V5XSwgc291cmNlW2tleV0pKSB7XG4gICAgICAgICAgdGhpcy5jb250ZW50W2tleV0gPSBPYmplY3QuYXNzaWduKHt9LCBzb3VyY2Vba2V5XSk7XG4gICAgICAgICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaGFzQ2hhbmdlcztcbiAgfVxuXG4gIGFzTG9jYWxTZXR0aW5ncygpOiBQYXJ0aWFsPExvY2FsU2V0dGluZ3M+IHtcbiAgICBjb25zdCB0YXJnZXQgPSB7fTtcbiAgICBVc2VyU2V0dGluZ3MuU0VUVElOR1NfUFJPUEVSVElFUy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0YXJnZXRba2V5XSA9IHRoaXNba2V5XTtcbiAgICB9KTtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmNvbnRlbnQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHRhcmdldFtrZXldID0gdGhpcy5jb250ZW50W2tleV07XG4gICAgfSk7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxufVxuIl19