@sumaris-net/ngx-components 1.23.8 → 2.0.0-rc1

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 (714) hide show
  1. package/doc/build.md +2 -2
  2. package/esm2020/public_api.mjs +274 -0
  3. package/esm2020/public_test_api.mjs +46 -0
  4. package/esm2020/src/app/admin/admin-routing.module.mjs +41 -0
  5. package/esm2020/src/app/admin/admin.module.mjs +49 -0
  6. package/esm2020/src/app/admin/services/filter/person.filter.mjs +59 -0
  7. package/esm2020/src/app/admin/services/person.service.mjs +161 -0
  8. package/esm2020/src/app/admin/services/validator/person.validator.mjs +34 -0
  9. package/esm2020/src/app/admin/users/list/users.mjs +227 -0
  10. package/esm2020/src/app/core/about/modal-about.mjs +71 -0
  11. package/esm2020/src/app/core/account/account.mjs +230 -0
  12. package/esm2020/src/app/core/auth/form/form-auth.mjs +131 -0
  13. package/esm2020/src/app/core/auth/modal/modal-auth.mjs +72 -0
  14. package/esm2020/src/app/core/core.module.mjs +223 -0
  15. package/esm2020/src/app/core/core.testing.module.mjs +72 -0
  16. package/esm2020/src/app/core/form/editor.class.mjs +608 -0
  17. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +406 -0
  18. package/esm2020/src/app/core/form/entity-editor.class.mjs +669 -0
  19. package/esm2020/src/app/core/form/entity-metadata.component.mjs +25 -0
  20. package/esm2020/src/app/core/form/form-buttons-bar.component.mjs +71 -0
  21. package/esm2020/src/app/core/form/form.class.mjs +334 -0
  22. package/esm2020/src/app/core/form/form.utils.mjs +264 -0
  23. package/esm2020/src/app/core/form/list.form.mjs +221 -0
  24. package/esm2020/src/app/core/form/properties.form.mjs +126 -0
  25. package/esm2020/src/app/core/graphql/graphql.module.mjs +22 -0
  26. package/esm2020/src/app/core/graphql/graphql.service.mjs +730 -0
  27. package/esm2020/src/app/core/graphql/graphql.utils.mjs +117 -0
  28. package/esm2020/src/app/core/home/home.mjs +257 -0
  29. package/esm2020/src/app/core/icon/icon.component.mjs +41 -0
  30. package/esm2020/src/app/core/icon/icon.module.mjs +29 -0
  31. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +337 -0
  32. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +33 -0
  33. package/esm2020/src/app/core/menu/menu.component.mjs +317 -0
  34. package/{esm2015/src/app/core/menu/menu.model.js → esm2020/src/app/core/menu/menu.model.mjs} +0 -0
  35. package/esm2020/src/app/core/menu/menu.module.mjs +45 -0
  36. package/{esm2015/src/app/core/menu/menu.service.js → esm2020/src/app/core/menu/menu.service.mjs} +9 -7
  37. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +27 -0
  38. package/esm2020/src/app/core/peer/select-peer.modal.mjs +130 -0
  39. package/esm2020/src/app/core/peer/select-peer.module.mjs +35 -0
  40. package/esm2020/src/app/core/register/confirm/confirm.mjs +81 -0
  41. package/esm2020/src/app/core/register/form/form-register.mjs +181 -0
  42. package/esm2020/src/app/core/register/modal/modal-register.mjs +52 -0
  43. package/esm2020/src/app/core/register/register.module.mjs +42 -0
  44. package/esm2020/src/app/core/services/account.service.mjs +1112 -0
  45. package/esm2020/src/app/core/services/auth-guard.service.mjs +71 -0
  46. package/esm2020/src/app/core/services/base-entity-service.class.mjs +433 -0
  47. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +219 -0
  48. package/{esm2015/src/app/core/services/base58.js → esm2020/src/app/core/services/base58.mjs} +0 -0
  49. package/{esm2015/src/app/core/services/config/core.config.js → esm2020/src/app/core/services/config/core.config.mjs} +0 -0
  50. package/esm2020/src/app/core/services/config.service.mjs +354 -0
  51. package/{esm2015/src/app/core/services/crypto.service.js → esm2020/src/app/core/services/crypto.service.mjs} +7 -5
  52. package/{esm2015/src/app/core/services/errors.js → esm2020/src/app/core/services/errors.mjs} +0 -0
  53. package/esm2020/src/app/core/services/local-settings.service.mjs +442 -0
  54. package/esm2020/src/app/core/services/model/account.model.mjs +50 -0
  55. package/esm2020/src/app/core/services/model/config.model.mjs +89 -0
  56. package/esm2020/src/app/core/services/model/department.model.mjs +30 -0
  57. package/esm2020/src/app/core/services/model/entity.decorators.mjs +107 -0
  58. package/esm2020/src/app/core/services/model/entity.model.mjs +242 -0
  59. package/{esm2015/src/app/core/services/model/filter.model.js → esm2020/src/app/core/services/model/filter.model.mjs} +0 -0
  60. package/{esm2015/src/app/core/services/model/history.model.js → esm2020/src/app/core/services/model/history.model.mjs} +0 -0
  61. package/{esm2015/src/app/core/services/model/model.enum.js → esm2020/src/app/core/services/model/model.enum.mjs} +0 -0
  62. package/esm2020/src/app/core/services/model/peer.model.mjs +68 -0
  63. package/esm2020/src/app/core/services/model/person.model.mjs +83 -0
  64. package/esm2020/src/app/core/services/model/referential.model.mjs +145 -0
  65. package/esm2020/src/app/core/services/model/settings.model.mjs +75 -0
  66. package/esm2020/src/app/core/services/network.service.mjs +602 -0
  67. package/esm2020/src/app/core/services/network.utils.mjs +16 -0
  68. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +38 -0
  69. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +23 -0
  70. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +23 -0
  71. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +37 -0
  72. package/esm2020/src/app/core/services/platform.service.mjs +476 -0
  73. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +422 -0
  74. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +449 -0
  75. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +23 -0
  76. package/esm2020/src/app/core/services/testing/referential.validator.mjs +45 -0
  77. package/esm2020/src/app/core/services/validator/account.validator.mjs +52 -0
  78. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +47 -0
  79. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +66 -0
  80. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +29 -0
  81. package/esm2020/src/app/core/settings/settings.page.mjs +290 -0
  82. package/esm2020/src/app/core/table/actions-column.component.mjs +96 -0
  83. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +385 -0
  84. package/esm2020/src/app/core/table/memory-table.class.mjs +53 -0
  85. package/esm2020/src/app/core/table/table-select-columns.component.mjs +43 -0
  86. package/esm2020/src/app/core/table/table.class.mjs +1654 -0
  87. package/{esm2015/src/app/core/table/table.utils.js → esm2020/src/app/core/table/table.utils.mjs} +0 -0
  88. package/esm2020/src/app/core/table/testing/table.testing.mjs +264 -0
  89. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +38 -0
  90. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +37 -0
  91. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +45 -0
  92. package/esm2020/src/app/core/text-popover/text-form.component.mjs +84 -0
  93. package/esm2020/src/app/core/text-popover/text-popover.component.mjs +92 -0
  94. package/esm2020/src/app/shared/alerts.mjs +238 -0
  95. package/esm2020/src/app/shared/audio/audio.mjs +201 -0
  96. package/esm2020/src/app/shared/audio/audio.testing.mjs +31 -0
  97. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +45 -0
  98. package/esm2020/src/app/shared/capacitor/keyboard.mjs +40 -0
  99. package/esm2020/src/app/shared/capacitor/plugins.mjs +9 -0
  100. package/{esm2015/src/app/shared/constants.js → esm2020/src/app/shared/constants.mjs} +2 -1
  101. package/esm2020/src/app/shared/dates.mjs +134 -0
  102. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +92 -0
  103. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +30 -0
  104. package/esm2020/src/app/shared/directives/directives.module.mjs +43 -0
  105. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +53 -0
  106. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +31 -0
  107. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +59 -0
  108. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +40 -0
  109. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +17 -0
  110. package/esm2020/src/app/shared/events.mjs +64 -0
  111. package/esm2020/src/app/shared/file/csv.utils.mjs +74 -0
  112. package/esm2020/src/app/shared/file/file.service.mjs +117 -0
  113. package/esm2020/src/app/shared/file/file.utils.mjs +113 -0
  114. package/esm2020/src/app/shared/file/images.utils.mjs +161 -0
  115. package/{esm2015/src/app/shared/file/uri.utils.js → esm2020/src/app/shared/file/uri.utils.mjs} +0 -0
  116. package/{esm2015/src/app/shared/focusable.js → esm2020/src/app/shared/focusable.mjs} +0 -0
  117. package/esm2020/src/app/shared/form/field.component.mjs +241 -0
  118. package/{esm2015/src/app/shared/form/field.model.js → esm2020/src/app/shared/form/field.model.mjs} +1 -1
  119. package/esm2020/src/app/shared/form/loading-spinner.mjs +36 -0
  120. package/esm2020/src/app/shared/forms.mjs +355 -0
  121. package/esm2020/src/app/shared/functions.mjs +417 -0
  122. package/{esm2015/src/app/shared/gesture/gesture-config.js → esm2020/src/app/shared/gesture/gesture-config.mjs} +7 -5
  123. package/esm2020/src/app/shared/gesture/hammer.utils.mjs +2 -0
  124. package/{esm2015/src/app/shared/graph/colors.utils.js → esm2020/src/app/shared/graph/colors.utils.mjs} +0 -0
  125. package/esm2020/src/app/shared/graph/graph-colors.mjs +254 -0
  126. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +57 -0
  127. package/esm2020/src/app/shared/help/help.modal.mjs +53 -0
  128. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +23 -0
  129. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +84 -0
  130. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +42 -0
  131. package/esm2020/src/app/shared/http/http.utils.mjs +52 -0
  132. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +279 -0
  133. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +46 -0
  134. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +27 -0
  135. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +89 -0
  136. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +33 -0
  137. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +56 -0
  138. package/esm2020/src/app/shared/image/image.model.mjs +2 -0
  139. package/esm2020/src/app/shared/image/image.module.mjs +29 -0
  140. package/esm2020/src/app/shared/image/image.service.mjs +99 -0
  141. package/{esm2015/src/app/shared/inputs.js → esm2020/src/app/shared/inputs.mjs} +4 -4
  142. package/{esm2015/src/app/shared/interceptors/progess.interceptor.js → esm2020/src/app/shared/interceptors/progess.interceptor.mjs} +0 -0
  143. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +47 -0
  144. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +836 -0
  145. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +78 -0
  146. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +19 -0
  147. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +205 -0
  148. package/esm2020/src/app/shared/material/badge/badge-icon.directive.mjs +143 -0
  149. package/esm2020/src/app/shared/material/badge/badge-icon.module.mjs +32 -0
  150. package/esm2020/src/app/shared/material/badge/badge-icon.test.mjs +27 -0
  151. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +68 -0
  152. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +253 -0
  153. package/esm2020/src/app/shared/material/chips/chips.module.mjs +76 -0
  154. package/esm2020/src/app/shared/material/chips/material.chips.mjs +692 -0
  155. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +136 -0
  156. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +91 -0
  157. package/esm2020/src/app/shared/material/datetime/material.date.mjs +392 -0
  158. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +327 -0
  159. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +416 -0
  160. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +110 -0
  161. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +111 -0
  162. package/esm2020/src/app/shared/material/duration/duration.module.mjs +67 -0
  163. package/{esm2015/src/app/shared/material/duration/duration.utils.js → esm2020/src/app/shared/material/duration/duration.utils.mjs} +0 -0
  164. package/esm2020/src/app/shared/material/duration/material.duration.mjs +257 -0
  165. package/esm2020/src/app/shared/material/latlong/latlong.utils.mjs +266 -0
  166. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +381 -0
  167. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +67 -0
  168. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +74 -0
  169. package/{esm2015/src/app/shared/material/material.animations.js → esm2020/src/app/shared/material/material.animations.mjs} +0 -0
  170. package/esm2020/src/app/shared/material/material.module.mjs +224 -0
  171. package/{esm2015/src/app/shared/material/material.testing.module.js → esm2020/src/app/shared/material/material.testing.module.mjs} +68 -34
  172. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +98 -0
  173. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +80 -0
  174. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +190 -0
  175. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +17 -0
  176. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +162 -0
  177. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +37 -0
  178. package/{esm2015/src/app/shared/material/numpad/numpad.model.js → esm2020/src/app/shared/material/numpad/numpad.model.mjs} +1 -1
  179. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +60 -0
  180. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +46 -0
  181. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +42 -0
  182. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +22 -0
  183. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +334 -0
  184. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +51 -0
  185. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +65 -0
  186. package/esm2020/src/app/shared/observables.mjs +96 -0
  187. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +114 -0
  188. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +23 -0
  189. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +49 -0
  190. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +42 -0
  191. package/{esm2015/src/app/shared/pipes/date-from-now.pipe.js → esm2020/src/app/shared/pipes/date-from-now.pipe.mjs} +13 -12
  192. package/{esm2015/src/app/shared/pipes/duration.pipe.js → esm2020/src/app/shared/pipes/duration.pipe.mjs} +13 -12
  193. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +62 -0
  194. package/esm2020/src/app/shared/pipes/form.pipes.mjs +187 -0
  195. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +48 -0
  196. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +46 -0
  197. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +63 -0
  198. package/esm2020/src/app/shared/pipes/math.pipes.mjs +59 -0
  199. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +21 -0
  200. package/{esm2015/src/app/shared/pipes/number-format.pipe.js → esm2020/src/app/shared/pipes/number-format.pipe.mjs} +14 -9
  201. package/esm2020/src/app/shared/pipes/pipes.module.mjs +206 -0
  202. package/esm2020/src/app/shared/pipes/property.pipes.mjs +96 -0
  203. package/esm2020/src/app/shared/pipes/string.pipes.mjs +69 -0
  204. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +43 -0
  205. package/esm2020/src/app/shared/platforms.mjs +49 -0
  206. package/esm2020/src/app/shared/services/entity-service.class.mjs +19 -0
  207. package/esm2020/src/app/shared/services/job.utils.mjs +92 -0
  208. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +253 -0
  209. package/esm2020/src/app/shared/services/progress-bar.service.mjs +32 -0
  210. package/esm2020/src/app/shared/services/startable-service.class.mjs +94 -0
  211. package/esm2020/src/app/shared/services/storage/storage.service.mjs +132 -0
  212. package/esm2020/src/app/shared/services/storage/storage.utils.mjs +13 -0
  213. package/esm2020/src/app/shared/services/translate-context.service.mjs +81 -0
  214. package/esm2020/src/app/shared/services/validator-service.class.mjs +2 -0
  215. package/esm2020/src/app/shared/services.mjs +62 -0
  216. package/esm2020/src/app/shared/shared-routing.module.mjs +63 -0
  217. package/esm2020/src/app/shared/shared.module.mjs +208 -0
  218. package/esm2020/src/app/shared/shared.testing.module.mjs +76 -0
  219. package/esm2020/src/app/shared/testing/tests.page.mjs +33 -0
  220. package/esm2020/src/app/shared/toast/toast.testing.mjs +52 -0
  221. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +45 -0
  222. package/esm2020/src/app/shared/toast/toasts.mjs +121 -0
  223. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +58 -0
  224. package/esm2020/src/app/shared/toolbar/toolbar.mjs +226 -0
  225. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +53 -0
  226. package/{esm2015/src/app/shared/types.js → esm2020/src/app/shared/types.mjs} +0 -0
  227. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +57 -0
  228. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +45 -0
  229. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +97 -0
  230. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +204 -0
  231. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +20 -0
  232. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +104 -0
  233. package/esm2020/src/app/shared/validator/validators.mjs +544 -0
  234. package/{esm2015/src/app/shared/version/versions.js → esm2020/src/app/shared/version/versions.mjs} +0 -0
  235. package/esm2020/src/app/social/job/job.model.mjs +26 -0
  236. package/esm2020/src/app/social/job/job.module.mjs +35 -0
  237. package/esm2020/src/app/social/job/job.service.mjs +59 -0
  238. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +201 -0
  239. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +22 -0
  240. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +51 -0
  241. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +33 -0
  242. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +35 -0
  243. package/esm2020/src/app/social/message/message.form.mjs +81 -0
  244. package/esm2020/src/app/social/message/message.modal.mjs +93 -0
  245. package/esm2020/src/app/social/message/message.model.mjs +65 -0
  246. package/esm2020/src/app/social/message/message.module.mjs +35 -0
  247. package/esm2020/src/app/social/message/message.service.mjs +84 -0
  248. package/{esm2015/src/app/social/social.errors.js → esm2020/src/app/social/social.errors.mjs} +0 -0
  249. package/esm2020/src/app/social/social.module.mjs +47 -0
  250. package/esm2020/src/app/social/social.testing.module.mjs +51 -0
  251. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +97 -0
  252. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +212 -0
  253. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +228 -0
  254. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +107 -0
  255. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +35 -0
  256. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +111 -0
  257. package/esm2020/src/app/social/user-event/user-event.model.mjs +2 -0
  258. package/esm2020/src/app/social/user-event/user-event.module.mjs +39 -0
  259. package/esm2020/src/app/social/user-event/user-event.service.mjs +486 -0
  260. package/{esm2015/src/app/vendor.js → esm2020/src/app/vendor.mjs} +1 -1
  261. package/esm2020/src/environments/environment.class.mjs +5 -0
  262. package/esm2020/src/environments/environment.mjs +86 -0
  263. package/esm2020/sumaris-net.ngx-components.mjs +5 -0
  264. package/fesm2015/sumaris-net.ngx-components.mjs +32493 -0
  265. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -0
  266. package/fesm2020/sumaris-net.ngx-components.mjs +31739 -0
  267. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -0
  268. package/index.d.ts +5 -0
  269. package/package.json +25 -34
  270. package/public_api.d.ts +23 -28
  271. package/public_test_api.d.ts +37 -0
  272. package/resources/README.md +8 -0
  273. package/src/app/admin/admin-routing.module.d.ts +7 -0
  274. package/src/app/admin/admin.module.d.ts +11 -0
  275. package/src/app/admin/services/person.service.d.ts +3 -0
  276. package/src/app/admin/services/validator/person.validator.d.ts +8 -5
  277. package/src/app/admin/users/list/users.d.ts +10 -7
  278. package/src/app/core/about/modal-about.d.ts +3 -0
  279. package/src/app/core/account/account.d.ts +11 -8
  280. package/src/app/core/auth/form/form-auth.d.ts +6 -3
  281. package/src/app/core/auth/modal/modal-auth.d.ts +3 -0
  282. package/src/app/core/core.module.d.ts +36 -0
  283. package/src/app/core/core.testing.module.d.ts +9 -0
  284. package/src/app/core/form/editor.class.d.ts +7 -2
  285. package/src/app/core/form/entity-editor-modal.class.d.ts +7 -4
  286. package/src/app/core/form/entity-editor.class.d.ts +4 -1
  287. package/src/app/core/form/entity-metadata.component.d.ts +3 -0
  288. package/src/app/core/form/form-buttons-bar.component.d.ts +3 -0
  289. package/src/app/core/form/form.class.d.ts +12 -9
  290. package/src/app/core/form/form.utils.d.ts +4 -4
  291. package/src/app/core/form/list.form.d.ts +10 -7
  292. package/src/app/core/form/properties.form.d.ts +10 -7
  293. package/src/app/core/graphql/graphql.module.d.ts +5 -0
  294. package/src/app/core/graphql/graphql.service.d.ts +9 -2
  295. package/src/app/core/graphql/graphql.utils.d.ts +8 -0
  296. package/src/app/core/home/home.d.ts +4 -1
  297. package/src/app/core/icon/icon.component.d.ts +5 -2
  298. package/src/app/core/icon/icon.module.d.ts +7 -0
  299. package/src/app/core/install/install-upgrade-card.component.d.ts +5 -2
  300. package/src/app/core/install/install-upgrade-card.module.d.ts +10 -0
  301. package/src/app/core/menu/menu.component.d.ts +7 -5
  302. package/src/app/core/menu/menu.module.d.ts +8 -0
  303. package/src/app/core/menu/menu.service.d.ts +3 -0
  304. package/src/app/core/offline/update-offline-mode-card.component.d.ts +3 -0
  305. package/src/app/core/peer/select-peer.modal.d.ts +7 -4
  306. package/src/app/core/peer/select-peer.module.d.ts +9 -0
  307. package/src/app/core/register/confirm/confirm.d.ts +3 -0
  308. package/src/app/core/register/form/form-register.d.ts +10 -7
  309. package/src/app/core/register/modal/modal-register.d.ts +3 -0
  310. package/src/app/core/register/register.module.d.ts +12 -0
  311. package/src/app/core/services/account.service.d.ts +5 -2
  312. package/src/app/core/services/auth-guard.service.d.ts +3 -0
  313. package/src/app/core/services/base-entity-service.class.d.ts +3 -0
  314. package/src/app/core/services/base-graphql-service.class.d.ts +3 -0
  315. package/src/app/core/services/config.service.d.ts +4 -1
  316. package/src/app/core/services/crypto.service.d.ts +3 -0
  317. package/src/app/core/services/local-settings.service.d.ts +5 -1
  318. package/src/app/core/services/model/referential.model.d.ts +1 -1
  319. package/src/app/core/services/network.service.d.ts +6 -5
  320. package/src/app/core/services/pipes/account.pipes.d.ts +7 -0
  321. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +4 -0
  322. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +4 -0
  323. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +7 -0
  324. package/src/app/core/services/platform.service.d.ts +22 -21
  325. package/src/app/core/services/storage/entities-storage.service.d.ts +5 -2
  326. package/src/app/core/services/storage/entity-store.class.d.ts +3 -3
  327. package/src/app/core/services/testing/referential.validator.d.ts +8 -5
  328. package/src/app/core/services/validator/account.validator.d.ts +6 -3
  329. package/src/app/core/services/validator/base.validator.class.d.ts +8 -5
  330. package/src/app/core/services/validator/local-settings.validator.d.ts +8 -5
  331. package/src/app/core/services/validator/user-settings.validator.d.ts +6 -3
  332. package/src/app/core/settings/settings.page.d.ts +8 -5
  333. package/src/app/core/table/actions-column.component.d.ts +3 -0
  334. package/src/app/core/table/entities-table-datasource.class.d.ts +11 -9
  335. package/src/app/core/table/memory-table.class.d.ts +3 -0
  336. package/src/app/core/table/table-select-columns.component.d.ts +4 -5
  337. package/src/app/core/table/table.class.d.ts +53 -34
  338. package/src/app/core/table/testing/table.testing.d.ts +13 -15
  339. package/src/app/core/table/testing/table.testing.module.d.ts +9 -0
  340. package/src/app/core/text-popover/testing/text-popover.testing.d.ts +4 -1
  341. package/src/app/core/text-popover/testing/text-popover.testing.module.d.ts +9 -0
  342. package/src/app/core/text-popover/text-form.component.d.ts +7 -4
  343. package/src/app/core/text-popover/text-popover.component.d.ts +3 -0
  344. package/src/app/shared/alerts.d.ts +4 -4
  345. package/src/app/shared/audio/audio.d.ts +20 -11
  346. package/src/app/shared/audio/audio.testing.d.ts +13 -0
  347. package/src/app/shared/audio/audio.testing.module.d.ts +11 -0
  348. package/src/app/shared/capacitor/keyboard.d.ts +16 -0
  349. package/src/app/shared/capacitor/plugins.d.ts +7 -0
  350. package/src/app/shared/constants.d.ts +1 -0
  351. package/src/app/shared/directives/autofocus.directive.d.ts +9 -7
  352. package/src/app/shared/directives/autotitle.directive.d.ts +3 -0
  353. package/src/app/shared/directives/directives.module.d.ts +10 -0
  354. package/src/app/shared/directives/drag-and-drop.directive.d.ts +3 -0
  355. package/src/app/shared/directives/ng-var.directive.d.ts +3 -0
  356. package/src/app/shared/directives/resizable/resizable.component.d.ts +3 -0
  357. package/src/app/shared/directives/resizable/resizable.directive.d.ts +3 -0
  358. package/src/app/shared/directives/resizable/resizable.module.d.ts +6 -0
  359. package/src/app/shared/file/file.service.d.ts +3 -0
  360. package/src/app/shared/file/file.utils.d.ts +1 -1
  361. package/src/app/shared/form/field.component.d.ts +9 -3
  362. package/src/app/shared/form/field.model.d.ts +2 -2
  363. package/src/app/shared/form/loading-spinner.d.ts +3 -0
  364. package/src/app/shared/forms.d.ts +12 -12
  365. package/src/app/shared/gesture/gesture-config.d.ts +3 -0
  366. package/src/app/shared/gesture/hammer.utils.d.ts +11 -11
  367. package/src/app/shared/guard/component-dirty.guard.d.ts +3 -0
  368. package/src/app/shared/help/help.modal.d.ts +4 -1
  369. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +3 -0
  370. package/src/app/shared/hotkeys/hotkeys.service.d.ts +4 -1
  371. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +9 -0
  372. package/src/app/shared/image/gallery/image-gallery.component.d.ts +77 -0
  373. package/src/app/shared/image/gallery/image-gallery.module.d.ts +12 -0
  374. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +12 -0
  375. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +33 -0
  376. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +15 -0
  377. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +12 -0
  378. package/src/app/shared/image/image.model.d.ts +5 -0
  379. package/src/app/shared/image/image.module.d.ts +8 -0
  380. package/src/app/shared/image/image.service.d.ts +32 -0
  381. package/src/app/shared/inputs.d.ts +3 -3
  382. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +36 -0
  383. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +11 -40
  384. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +19 -0
  385. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +4 -0
  386. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +12 -9
  387. package/src/app/shared/material/badge/badge-icon.directive.d.ts +6 -4
  388. package/src/app/shared/material/badge/badge-icon.module.d.ts +8 -0
  389. package/src/app/shared/material/badge/badge-icon.test.d.ts +4 -1
  390. package/src/app/shared/material/boolean/boolean.module.d.ts +17 -0
  391. package/src/app/shared/material/boolean/material.boolean.d.ts +7 -4
  392. package/src/app/shared/material/chips/chips.module.d.ts +19 -0
  393. package/src/app/shared/material/chips/material.chips.d.ts +11 -8
  394. package/src/app/shared/material/chips/testing/chips.test.d.ts +8 -5
  395. package/src/app/shared/material/datetime/datetime.module.d.ts +22 -0
  396. package/src/app/shared/material/datetime/material.date.d.ts +11 -9
  397. package/src/app/shared/material/datetime/material.dateshort.d.ts +10 -9
  398. package/src/app/shared/material/datetime/material.datetime.d.ts +13 -12
  399. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +11 -9
  400. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +11 -9
  401. package/src/app/shared/material/duration/duration.module.d.ts +16 -0
  402. package/src/app/shared/material/duration/material.duration.d.ts +8 -5
  403. package/src/app/shared/material/latlong/material.latlong.d.ts +8 -5
  404. package/src/app/shared/material/latlong/material.latlong.module.d.ts +17 -0
  405. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +10 -7
  406. package/src/app/shared/material/material.module.d.ts +43 -0
  407. package/src/app/shared/material/material.testing.module.d.ts +19 -0
  408. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +3 -0
  409. package/src/app/shared/material/numpad/numpad.component.d.ts +4 -1
  410. package/src/app/shared/material/numpad/numpad.container.d.ts +5 -2
  411. package/src/app/shared/material/numpad/numpad.content.d.ts +3 -0
  412. package/src/app/shared/material/numpad/numpad.directive.d.ts +4 -1
  413. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +3 -0
  414. package/src/app/shared/material/numpad/numpad.model.d.ts +1 -1
  415. package/src/app/shared/material/numpad/numpad.module.d.ts +14 -0
  416. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +7 -4
  417. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +3 -0
  418. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +3 -0
  419. package/src/app/shared/material/swipe/material.swipe.d.ts +6 -3
  420. package/src/app/shared/material/swipe/swipe.module.d.ts +13 -0
  421. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +7 -4
  422. package/src/app/shared/pipes/arrays.pipe.d.ts +15 -0
  423. package/src/app/shared/pipes/colors.pipe.d.ts +9 -0
  424. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +4 -0
  425. package/src/app/shared/pipes/date-format.pipe.d.ts +4 -0
  426. package/src/app/shared/pipes/date-from-now.pipe.d.ts +4 -0
  427. package/src/app/shared/pipes/duration.pipe.d.ts +4 -0
  428. package/src/app/shared/pipes/file-size.pipe.d.ts +3 -0
  429. package/src/app/shared/pipes/form.pipes.d.ts +18 -5
  430. package/src/app/shared/pipes/highlight.pipe.d.ts +4 -0
  431. package/src/app/shared/pipes/latlong-format.pipe.d.ts +7 -0
  432. package/src/app/shared/pipes/maps.pipe.d.ts +10 -0
  433. package/src/app/shared/pipes/math.pipes.d.ts +10 -0
  434. package/src/app/shared/pipes/ng-init.pipe.d.ts +3 -0
  435. package/src/app/shared/pipes/number-format.pipe.d.ts +4 -0
  436. package/src/app/shared/pipes/pipes.module.d.ts +24 -0
  437. package/src/app/shared/pipes/property.pipes.d.ts +6 -0
  438. package/src/app/shared/pipes/string.pipes.d.ts +11 -0
  439. package/src/app/shared/pipes/translate-context.pipe.d.ts +7 -0
  440. package/src/app/shared/platforms.d.ts +1 -0
  441. package/src/app/shared/services/entity-service.class.d.ts +3 -0
  442. package/src/app/shared/services/memory-entity-service.class.d.ts +3 -0
  443. package/src/app/shared/services/progress-bar.service.d.ts +4 -1
  444. package/src/app/shared/services/storage/storage.service.d.ts +23 -0
  445. package/src/app/shared/services/storage/storage.utils.d.ts +19 -0
  446. package/src/app/shared/services/translate-context.service.d.ts +3 -0
  447. package/src/app/shared/services/validator-service.class.d.ts +2 -2
  448. package/src/app/shared/shared-routing.module.d.ts +7 -0
  449. package/src/app/shared/shared.module.d.ts +23 -0
  450. package/src/app/shared/shared.testing.module.d.ts +12 -0
  451. package/src/app/shared/testing/tests.page.d.ts +3 -0
  452. package/src/app/shared/toast/toast.testing.d.ts +3 -0
  453. package/src/app/shared/toast/toast.testing.module.d.ts +9 -0
  454. package/src/app/shared/toolbar/modal-toolbar.d.ts +5 -2
  455. package/src/app/shared/toolbar/toolbar.d.ts +9 -5
  456. package/src/app/shared/toolbar/toolbar.module.d.ts +15 -0
  457. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +4 -1
  458. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +9 -0
  459. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +3 -0
  460. package/src/app/shared/upload-file/upload-file.component.d.ts +3 -0
  461. package/src/app/shared/validator/form-error-adapter.class.d.ts +3 -0
  462. package/src/app/shared/validator/validators.d.ts +9 -9
  463. package/src/app/social/job/job.module.d.ts +9 -0
  464. package/src/app/social/job/job.service.d.ts +3 -0
  465. package/src/app/social/job/progression/job-progression.component.d.ts +4 -1
  466. package/src/app/social/job/progression/job-progression.list.d.ts +3 -0
  467. package/src/app/social/job/testing/job-progression.testing.d.ts +3 -0
  468. package/src/app/social/job/testing/job-progression.testing.service.d.ts +3 -0
  469. package/src/app/social/job/testing/job.testing.module.d.ts +9 -0
  470. package/src/app/social/message/message.form.d.ts +5 -2
  471. package/src/app/social/message/message.modal.d.ts +5 -2
  472. package/src/app/social/message/message.module.d.ts +9 -0
  473. package/src/app/social/message/message.service.d.ts +3 -0
  474. package/src/app/social/social.module.d.ts +10 -0
  475. package/src/app/social/social.testing.module.d.ts +9 -0
  476. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -1
  477. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +7 -4
  478. package/src/app/social/user-event/testing/user-event.testing.d.ts +3 -0
  479. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +1 -0
  480. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +9 -0
  481. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +5 -1
  482. package/src/app/social/user-event/user-event.model.d.ts +3 -2
  483. package/src/app/social/user-event/user-event.module.d.ts +10 -0
  484. package/src/app/social/user-event/user-event.service.d.ts +16 -11
  485. package/src/assets/audio/beep-notification.mp3 +0 -0
  486. package/src/assets/i18n/fr.json +9 -2
  487. package/src/environments/environment.class.d.ts +2 -0
  488. package/src/environments/environment.d.ts +1 -1
  489. package/src/theme/_icons.scss +1 -1
  490. package/src/theme/_material.globals.scss +29 -31
  491. package/src/theme/_material.scss +3 -2
  492. package/src/theme/_mixins.scss +4 -4
  493. package/src/theme/_ngx-components.scss +6 -0
  494. package/src/theme/_print.scss +24 -0
  495. package/bundles/sumaris-net.ngx-components.umd.js +0 -35297
  496. package/bundles/sumaris-net.ngx-components.umd.js.map +0 -1
  497. package/bundles/sumaris-net.ngx-components.umd.min.js +0 -25
  498. package/bundles/sumaris-net.ngx-components.umd.min.js.map +0 -1
  499. package/esm2015/public_api.js +0 -244
  500. package/esm2015/src/app/admin/admin-routing.module.js +0 -34
  501. package/esm2015/src/app/admin/admin.module.js +0 -34
  502. package/esm2015/src/app/admin/services/filter/person.filter.js +0 -59
  503. package/esm2015/src/app/admin/services/person.service.js +0 -175
  504. package/esm2015/src/app/admin/services/validator/person.validator.js +0 -37
  505. package/esm2015/src/app/admin/users/list/users.js +0 -216
  506. package/esm2015/src/app/core/about/modal-about.js +0 -63
  507. package/esm2015/src/app/core/account/account.js +0 -240
  508. package/esm2015/src/app/core/auth/form/form-auth.js +0 -134
  509. package/esm2015/src/app/core/auth/modal/modal-auth.js +0 -78
  510. package/esm2015/src/app/core/core.module.js +0 -127
  511. package/esm2015/src/app/core/core.testing.module.js +0 -51
  512. package/esm2015/src/app/core/form/editor.class.js +0 -632
  513. package/esm2015/src/app/core/form/entity-editor-modal.class.js +0 -421
  514. package/esm2015/src/app/core/form/entity-editor.class.js +0 -696
  515. package/esm2015/src/app/core/form/entity-metadata.component.js +0 -22
  516. package/esm2015/src/app/core/form/form-buttons-bar.component.js +0 -63
  517. package/esm2015/src/app/core/form/form.class.js +0 -338
  518. package/esm2015/src/app/core/form/form.utils.js +0 -264
  519. package/esm2015/src/app/core/form/list.form.js +0 -219
  520. package/esm2015/src/app/core/form/properties.form.js +0 -119
  521. package/esm2015/src/app/core/graphql/graphql.module.js +0 -18
  522. package/esm2015/src/app/core/graphql/graphql.service.js +0 -734
  523. package/esm2015/src/app/core/graphql/graphql.utils.js +0 -107
  524. package/esm2015/src/app/core/home/home.js +0 -265
  525. package/esm2015/src/app/core/icon/icon.component.js +0 -32
  526. package/esm2015/src/app/core/icon/icon.module.js +0 -26
  527. package/esm2015/src/app/core/install/install-upgrade-card.component.js +0 -358
  528. package/esm2015/src/app/core/menu/menu.component.js +0 -329
  529. package/esm2015/src/app/core/menu/menu.module.js +0 -28
  530. package/esm2015/src/app/core/offline/update-offline-mode-card.component.js +0 -26
  531. package/esm2015/src/app/core/peer/select-peer.modal.js +0 -134
  532. package/esm2015/src/app/core/register/confirm/confirm.js +0 -86
  533. package/esm2015/src/app/core/register/form/form-register.js +0 -172
  534. package/esm2015/src/app/core/register/modal/modal-register.js +0 -55
  535. package/esm2015/src/app/core/services/account.service.js +0 -1165
  536. package/esm2015/src/app/core/services/auth-guard.service.js +0 -77
  537. package/esm2015/src/app/core/services/base-entity-service.class.js +0 -455
  538. package/esm2015/src/app/core/services/base-graphql-service.class.js +0 -221
  539. package/esm2015/src/app/core/services/config.service.js +0 -385
  540. package/esm2015/src/app/core/services/local-settings.service.js +0 -460
  541. package/esm2015/src/app/core/services/model/account.model.js +0 -50
  542. package/esm2015/src/app/core/services/model/config.model.js +0 -89
  543. package/esm2015/src/app/core/services/model/department.model.js +0 -30
  544. package/esm2015/src/app/core/services/model/entity.decorators.js +0 -104
  545. package/esm2015/src/app/core/services/model/entity.model.js +0 -245
  546. package/esm2015/src/app/core/services/model/peer.model.js +0 -68
  547. package/esm2015/src/app/core/services/model/person.model.js +0 -83
  548. package/esm2015/src/app/core/services/model/referential.model.js +0 -147
  549. package/esm2015/src/app/core/services/model/settings.model.js +0 -75
  550. package/esm2015/src/app/core/services/network.service.js +0 -639
  551. package/esm2015/src/app/core/services/network.utils.js +0 -19
  552. package/esm2015/src/app/core/services/pipes/account.pipes.js +0 -28
  553. package/esm2015/src/app/core/services/pipes/department-to-string.pipe.js +0 -18
  554. package/esm2015/src/app/core/services/pipes/person-to-string.pipe.js +0 -18
  555. package/esm2015/src/app/core/services/pipes/usage-mode.pipes.js +0 -27
  556. package/esm2015/src/app/core/services/platform.service.js +0 -549
  557. package/esm2015/src/app/core/services/storage/entities-storage.service.js +0 -452
  558. package/esm2015/src/app/core/services/storage/entity-store.class.js +0 -461
  559. package/esm2015/src/app/core/services/testing/referential-filter.model.js +0 -23
  560. package/esm2015/src/app/core/services/testing/referential.validator.js +0 -44
  561. package/esm2015/src/app/core/services/validator/account.validator.js +0 -55
  562. package/esm2015/src/app/core/services/validator/base.validator.class.js +0 -48
  563. package/esm2015/src/app/core/services/validator/local-settings.validator.js +0 -72
  564. package/esm2015/src/app/core/services/validator/user-settings.validator.js +0 -30
  565. package/esm2015/src/app/core/settings/settings.page.js +0 -305
  566. package/esm2015/src/app/core/table/actions-column.component.js +0 -74
  567. package/esm2015/src/app/core/table/entities-table-datasource.class.js +0 -389
  568. package/esm2015/src/app/core/table/memory-table.class.js +0 -59
  569. package/esm2015/src/app/core/table/table-select-columns.component.js +0 -44
  570. package/esm2015/src/app/core/table/table.class.js +0 -1651
  571. package/esm2015/src/app/core/table/testing/table.testing.js +0 -241
  572. package/esm2015/src/app/core/table/testing/table.testing.module.js +0 -26
  573. package/esm2015/src/app/core/text-popover/testing/text-popover.testing.js +0 -37
  574. package/esm2015/src/app/core/text-popover/testing/text-popover.testing.module.js +0 -33
  575. package/esm2015/src/app/core/text-popover/text-form.component.js +0 -72
  576. package/esm2015/src/app/core/text-popover/text-popover.component.js +0 -90
  577. package/esm2015/src/app/shared/alerts.js +0 -251
  578. package/esm2015/src/app/shared/audio/audio.js +0 -178
  579. package/esm2015/src/app/shared/dates.js +0 -134
  580. package/esm2015/src/app/shared/directives/autofocus.directive.js +0 -90
  581. package/esm2015/src/app/shared/directives/autotitle.directive.js +0 -27
  582. package/esm2015/src/app/shared/directives/directives.module.js +0 -30
  583. package/esm2015/src/app/shared/directives/drag-and-drop.directive.js +0 -43
  584. package/esm2015/src/app/shared/directives/ng-var.directive.js +0 -32
  585. package/esm2015/src/app/shared/directives/resizable/resizable.component.js +0 -54
  586. package/esm2015/src/app/shared/directives/resizable/resizable.directive.js +0 -34
  587. package/esm2015/src/app/shared/directives/resizable/resizable.module.js +0 -12
  588. package/esm2015/src/app/shared/events.js +0 -61
  589. package/esm2015/src/app/shared/file/csv.utils.js +0 -70
  590. package/esm2015/src/app/shared/file/file.service.js +0 -121
  591. package/esm2015/src/app/shared/file/file.utils.js +0 -116
  592. package/esm2015/src/app/shared/file/images.utils.js +0 -166
  593. package/esm2015/src/app/shared/form/field.component.js +0 -206
  594. package/esm2015/src/app/shared/form/loading-spinner.js +0 -24
  595. package/esm2015/src/app/shared/forms.js +0 -339
  596. package/esm2015/src/app/shared/functions.js +0 -418
  597. package/esm2015/src/app/shared/gesture/hammer.utils.js +0 -2
  598. package/esm2015/src/app/shared/graph/graph-colors.js +0 -256
  599. package/esm2015/src/app/shared/guard/component-dirty.guard.js +0 -61
  600. package/esm2015/src/app/shared/help/help.modal.js +0 -56
  601. package/esm2015/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.js +0 -20
  602. package/esm2015/src/app/shared/hotkeys/hotkeys.service.js +0 -91
  603. package/esm2015/src/app/shared/hotkeys/shared-hotkeys.module.js +0 -29
  604. package/esm2015/src/app/shared/http/http.utils.js +0 -57
  605. package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +0 -825
  606. package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.module.js +0 -46
  607. package/esm2015/src/app/shared/material/autocomplete/testing/autocomplete.test.js +0 -200
  608. package/esm2015/src/app/shared/material/badge/badge-icon.directive.js +0 -135
  609. package/esm2015/src/app/shared/material/badge/badge-icon.module.js +0 -23
  610. package/esm2015/src/app/shared/material/badge/badge-icon.test.js +0 -17
  611. package/esm2015/src/app/shared/material/boolean/boolean.module.js +0 -41
  612. package/esm2015/src/app/shared/material/boolean/material.boolean.js +0 -223
  613. package/esm2015/src/app/shared/material/chips/chips.module.js +0 -45
  614. package/esm2015/src/app/shared/material/chips/material.chips.js +0 -636
  615. package/esm2015/src/app/shared/material/chips/testing/chips.test.js +0 -138
  616. package/esm2015/src/app/shared/material/datetime/datetime.module.js +0 -54
  617. package/esm2015/src/app/shared/material/datetime/material.date.js +0 -375
  618. package/esm2015/src/app/shared/material/datetime/material.dateshort.js +0 -316
  619. package/esm2015/src/app/shared/material/datetime/material.datetime.js +0 -398
  620. package/esm2015/src/app/shared/material/datetime/testing/mat-date-time.test.js +0 -110
  621. package/esm2015/src/app/shared/material/datetime/testing/mat-date.test.js +0 -108
  622. package/esm2015/src/app/shared/material/duration/duration.module.js +0 -40
  623. package/esm2015/src/app/shared/material/duration/material.duration.js +0 -246
  624. package/esm2015/src/app/shared/material/latlong/latlong.utils.js +0 -249
  625. package/esm2015/src/app/shared/material/latlong/material.latlong.js +0 -350
  626. package/esm2015/src/app/shared/material/latlong/material.latlong.module.js +0 -41
  627. package/esm2015/src/app/shared/material/latlong/testing/latlong.test.js +0 -70
  628. package/esm2015/src/app/shared/material/material.module.js +0 -93
  629. package/esm2015/src/app/shared/material/numpad/numpad.append-to-input.directive.js +0 -96
  630. package/esm2015/src/app/shared/material/numpad/numpad.component.js +0 -73
  631. package/esm2015/src/app/shared/material/numpad/numpad.container.js +0 -149
  632. package/esm2015/src/app/shared/material/numpad/numpad.content.js +0 -14
  633. package/esm2015/src/app/shared/material/numpad/numpad.directive.js +0 -148
  634. package/esm2015/src/app/shared/material/numpad/numpad.dom-service.js +0 -37
  635. package/esm2015/src/app/shared/material/numpad/numpad.module.js +0 -39
  636. package/esm2015/src/app/shared/material/numpad/testing/numpad.test.js +0 -44
  637. package/esm2015/src/app/shared/material/paginator/material.paginator-i18n.js +0 -44
  638. package/esm2015/src/app/shared/material/stepper/material.stepper-i18n.js +0 -24
  639. package/esm2015/src/app/shared/material/swipe/material.swipe.js +0 -308
  640. package/esm2015/src/app/shared/material/swipe/swipe.module.js +0 -33
  641. package/esm2015/src/app/shared/material/swipe/testing/swipe.test.js +0 -68
  642. package/esm2015/src/app/shared/observables.js +0 -99
  643. package/esm2015/src/app/shared/pipes/arrays.pipe.js +0 -92
  644. package/esm2015/src/app/shared/pipes/date-diff-duration.pipe.js +0 -50
  645. package/esm2015/src/app/shared/pipes/date-format.pipe.js +0 -43
  646. package/esm2015/src/app/shared/pipes/file-size.pipe.js +0 -58
  647. package/esm2015/src/app/shared/pipes/form.pipes.js +0 -177
  648. package/esm2015/src/app/shared/pipes/highlight.pipe.js +0 -43
  649. package/esm2015/src/app/shared/pipes/latlong-format.pipe.js +0 -36
  650. package/esm2015/src/app/shared/pipes/maps.pipe.js +0 -48
  651. package/esm2015/src/app/shared/pipes/math.pipes.js +0 -44
  652. package/esm2015/src/app/shared/pipes/ng-init.pipe.js +0 -18
  653. package/esm2015/src/app/shared/pipes/pipes.module.js +0 -115
  654. package/esm2015/src/app/shared/pipes/property.pipes.js +0 -98
  655. package/esm2015/src/app/shared/pipes/string.pipes.js +0 -53
  656. package/esm2015/src/app/shared/pipes/translate-context.pipe.js +0 -36
  657. package/esm2015/src/app/shared/platforms.js +0 -45
  658. package/esm2015/src/app/shared/services/entity-service.class.js +0 -17
  659. package/esm2015/src/app/shared/services/job.utils.js +0 -96
  660. package/esm2015/src/app/shared/services/memory-entity-service.class.js +0 -260
  661. package/esm2015/src/app/shared/services/progress-bar.service.js +0 -30
  662. package/esm2015/src/app/shared/services/startable-service.class.js +0 -98
  663. package/esm2015/src/app/shared/services/storage.utils.js +0 -41
  664. package/esm2015/src/app/shared/services/translate-context.service.js +0 -83
  665. package/esm2015/src/app/shared/services/validator-service.class.js +0 -2
  666. package/esm2015/src/app/shared/services.js +0 -61
  667. package/esm2015/src/app/shared/shared-routing.module.js +0 -54
  668. package/esm2015/src/app/shared/shared.module.js +0 -135
  669. package/esm2015/src/app/shared/shared.testing.module.js +0 -33
  670. package/esm2015/src/app/shared/testing/tests.page.js +0 -34
  671. package/esm2015/src/app/shared/toast/toast.testing.js +0 -39
  672. package/esm2015/src/app/shared/toast/toast.testing.module.js +0 -33
  673. package/esm2015/src/app/shared/toast/toasts.js +0 -119
  674. package/esm2015/src/app/shared/toolbar/modal-toolbar.js +0 -53
  675. package/esm2015/src/app/shared/toolbar/toolbar.js +0 -213
  676. package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.js +0 -59
  677. package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.module.js +0 -33
  678. package/esm2015/src/app/shared/upload-file/upload-file-popover.component.js +0 -98
  679. package/esm2015/src/app/shared/upload-file/upload-file.component.js +0 -202
  680. package/esm2015/src/app/shared/upload-file/upload-file.model.js +0 -20
  681. package/esm2015/src/app/shared/validator/form-error-adapter.class.js +0 -99
  682. package/esm2015/src/app/shared/validator/validators.js +0 -537
  683. package/esm2015/src/app/social/job/job.model.js +0 -26
  684. package/esm2015/src/app/social/job/job.module.js +0 -25
  685. package/esm2015/src/app/social/job/job.service.js +0 -54
  686. package/esm2015/src/app/social/job/progression/job-progression.component.js +0 -200
  687. package/esm2015/src/app/social/job/progression/job-progression.list.js +0 -20
  688. package/esm2015/src/app/social/job/testing/job-progression.testing.js +0 -48
  689. package/esm2015/src/app/social/job/testing/job-progression.testing.service.js +0 -30
  690. package/esm2015/src/app/social/job/testing/job.testing.module.js +0 -25
  691. package/esm2015/src/app/social/message/message.form.js +0 -73
  692. package/esm2015/src/app/social/message/message.modal.js +0 -96
  693. package/esm2015/src/app/social/message/message.model.js +0 -65
  694. package/esm2015/src/app/social/message/message.module.js +0 -25
  695. package/esm2015/src/app/social/message/message.service.js +0 -87
  696. package/esm2015/src/app/social/social.module.js +0 -28
  697. package/esm2015/src/app/social/social.testing.module.js +0 -39
  698. package/esm2015/src/app/social/user-event/notification/user-event-notification.icon.js +0 -95
  699. package/esm2015/src/app/social/user-event/notification/user-event-notification.list.js +0 -203
  700. package/esm2015/src/app/social/user-event/testing/user-event.testing.js +0 -230
  701. package/esm2015/src/app/social/user-event/testing/user-event.testing.model.js +0 -103
  702. package/esm2015/src/app/social/user-event/testing/user-event.testing.module.js +0 -25
  703. package/esm2015/src/app/social/user-event/testing/user-event.testing.service.js +0 -117
  704. package/esm2015/src/app/social/user-event/user-event.model.js +0 -2
  705. package/esm2015/src/app/social/user-event/user-event.module.js +0 -27
  706. package/esm2015/src/app/social/user-event/user-event.service.js +0 -509
  707. package/esm2015/src/environments/environment.class.js +0 -5
  708. package/esm2015/src/environments/environment.js +0 -81
  709. package/esm2015/sumaris-net.ngx-components.js +0 -21
  710. package/fesm2015/sumaris-net.ngx-components.js +0 -29932
  711. package/fesm2015/sumaris-net.ngx-components.js.map +0 -1
  712. package/src/app/shared/services/storage.utils.d.ts +0 -13
  713. package/sumaris-net.ngx-components.d.ts +0 -20
  714. package/sumaris-net.ngx-components.metadata.json +0 -1
@@ -1,74 +0,0 @@
1
- import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { MatColumnDef, MatTable } from '@angular/material/table';
3
- import { MatMenuTrigger } from '@angular/material/menu';
4
- import { isNil, toBoolean } from '../../shared/functions';
5
- export class ActionsColumnComponent {
6
- constructor(table, cd) {
7
- this.table = table;
8
- this.cd = cd;
9
- this.stickyEnd = false;
10
- this.optionsTitle = 'COMMON.BTN_OPTIONS';
11
- this.optionsClick = new EventEmitter();
12
- this.cancelOrDeleteClick = new EventEmitter();
13
- this.confirmAndAddClick = new EventEmitter();
14
- this.backward = new EventEmitter();
15
- this.forward = new EventEmitter();
16
- if (!table)
17
- throw new Error(`[actions-column] this column component must be inside a MatTable component`);
18
- }
19
- ngOnInit() {
20
- this.cd.detectChanges();
21
- this.table.addColumnDef(this.columnDef);
22
- this.canCancel = toBoolean(this.canCancel, this.cancelOrDeleteClick.observers.length > 0);
23
- this.canDelete = toBoolean(this.canDelete, this.cancelOrDeleteClick.observers.length > 0);
24
- this.canConfirmAndAdd = toBoolean(this.canConfirmAndAdd, this.confirmAndAddClick.observers.length > 0);
25
- this.canBackward = toBoolean(this.canBackward, this.backward.observers.length > 0);
26
- this.canForward = toBoolean(this.canForward, this.forward.observers.length > 0);
27
- if (isNil(this.dirtyIcon)) {
28
- this.dirtyIcon = 'star';
29
- }
30
- }
31
- ngOnDestroy() {
32
- this.table.removeColumnDef(this.columnDef);
33
- this.optionsClick.complete();
34
- this.optionsClick.unsubscribe();
35
- this.cancelOrDeleteClick.complete();
36
- this.cancelOrDeleteClick.unsubscribe();
37
- this.confirmAndAddClick.complete();
38
- this.confirmAndAddClick.unsubscribe();
39
- this.backward.complete();
40
- this.backward.unsubscribe();
41
- this.forward.complete();
42
- this.forward.unsubscribe();
43
- }
44
- }
45
- ActionsColumnComponent.decorators = [
46
- { type: Component, args: [{
47
- selector: 'app-actions-column',
48
- template: "<ng-container matColumnDef=\"actions\" [stickyEnd]=\"stickyEnd\">\n <th mat-header-cell *matHeaderCellDef [class]=\"classList\" [class.mat-column-sticky]=\"stickyEnd\">\n <button mat-icon-button\n *ngIf=\"optionsClick.observers | isNotEmptyArray\"\n [title]=\"optionsTitle | translate\"\n (click)=\"optionsClick.emit($event)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <ng-content select=\"[matHeader]\"></ng-content>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class]=\"classList\">\n <ng-container *ngIf=\"row.editing; else view\">\n\n <!-- pending -->\n <ion-spinner *ngIf=\"row.validator?.pending\" name=\"dots\" class=\"center\"></ion-spinner>\n\n <!-- new row -->\n <ng-container *ngIf=\"row.id === -1; else existingRow\">\n\n <!-- delete button -->\n <button mat-icon-button color=\"light\"\n *ngIf=\"canDelete && row.validator.invalid\"\n [title]=\"'COMMON.BTN_DELETE' | translate\"\n (click)=\"cancelOrDeleteClick.emit({event: $event, row: row})\">\n <mat-icon>delete_outline</mat-icon>\n </button>\n\n <!-- add button -->\n <button mat-icon-button color=\"light\"\n *ngIf=\"!canForward && canConfirmAndAdd && row.validator.valid\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"confirmAndAddClick.emit({event: $event, row: row})\">\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- next button (invisible - focusable only) -->\n <button style=\"color: transparent; width: 0; padding: 0; margin: 0;\"\n *ngIf=\"canForward && row.validator.valid\"\n (focus)=\"this.forward.emit({event: $event, row: row})\">\n </button>\n </ng-container>\n\n <!-- existing row -->\n <ng-template #existingRow>\n <!-- cancel button -->\n <button mat-icon-button color=\"light\"\n *ngIf=\"canCancel && row.validator.dirty\"\n [title]=\"'COMMON.BTN_UNDO' | translate\"\n (click)=\"cancelOrDeleteClick.emit({event: $event, row: row})\">\n <mat-icon>undo</mat-icon>\n </button>\n\n <!-- next button (invisible - focusable only) -->\n <button style=\"color: transparent; width: 0; padding: 0; margin: 0;\"\n *ngIf=\"canForward && row.validator.valid\"\n (focus)=\"this.forward.emit({event: $event, row: row})\">\n </button>\n </ng-template>\n\n </ng-container>\n\n <ng-template #view>\n <!-- dirty icon -->\n <ion-icon *ngIf=\"dirtyIcon && row.validator?.dirty\" [name]=\"dirtyIcon\" color=\"accent\" class=\"dirty-icon\"></ion-icon>\n\n <!-- backward button (invisible - focusable only) -->\n <button mat-icon-button style=\"color: transparent; width: 0; padding: 0; margin: 0;\"\n *ngIf=\"canBackward\"\n (focus)=\"this.backward.emit({event: $event, row: row})\">\n </button>\n </ng-template>\n\n <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: row }\"></ng-container>\n </td>\n\n <td mat-footer-cell *matFooterCellDef>\n <ng-content select=\"[matFooter]\"></ng-content>\n </td>\n</ng-container>\n"
49
- },] }
50
- ];
51
- ActionsColumnComponent.ctorParameters = () => [
52
- { type: MatTable },
53
- { type: ChangeDetectorRef }
54
- ];
55
- ActionsColumnComponent.propDecorators = {
56
- columnDef: [{ type: ViewChild, args: [MatColumnDef,] }],
57
- matMenuTrigger: [{ type: ViewChild, args: [MatMenuTrigger,] }],
58
- stickyEnd: [{ type: Input }],
59
- canCancel: [{ type: Input }],
60
- canDelete: [{ type: Input }],
61
- canBackward: [{ type: Input }],
62
- canForward: [{ type: Input }],
63
- canConfirmAndAdd: [{ type: Input }],
64
- dirtyIcon: [{ type: Input }],
65
- optionsTitle: [{ type: Input }],
66
- classList: [{ type: Input, args: ['class',] }],
67
- cellTemplate: [{ type: Input }],
68
- optionsClick: [{ type: Output }],
69
- cancelOrDeleteClick: [{ type: Output }],
70
- confirmAndAddClick: [{ type: Output }],
71
- backward: [{ type: Output }],
72
- forward: [{ type: Output }]
73
- };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3RhYmxlL2FjdGlvbnMtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBZSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUUvRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQU14RCxNQUFNLE9BQU8sc0JBQXNCO0lBc0JqQyxZQUFvQixLQUFvQixFQUNwQixFQUFxQjtRQURyQixVQUFLLEdBQUwsS0FBSyxDQUFlO1FBQ3BCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBbEJoQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBT2xCLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7UUFJbkMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzNDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUE0QyxDQUFDO1FBQ25GLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUE0QyxDQUFDO1FBQ2xGLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBNEMsQ0FBQztRQUN4RSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQTRDLENBQUM7UUFPL0UsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDRFQUE0RSxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkcsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdCLENBQUM7OztZQTNERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsMHZHQUE4QzthQUMvQzs7O1lBUnFCLFFBQVE7WUFEdEIsaUJBQWlCOzs7d0JBWXRCLFNBQVMsU0FBQyxZQUFZOzZCQUN0QixTQUFTLFNBQUMsY0FBYzt3QkFFeEIsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSzt5QkFDTCxLQUFLOytCQUNMLEtBQUs7d0JBQ0wsS0FBSzsyQkFDTCxLQUFLO3dCQUNMLEtBQUssU0FBQyxPQUFPOzJCQUNiLEtBQUs7MkJBRUwsTUFBTTtrQ0FDTixNQUFNO2lDQUNOLE1BQU07dUJBQ04sTUFBTTtzQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0Q29sdW1uRGVmLCBNYXRUYWJsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHtUYWJsZUVsZW1lbnR9IGZyb20gJ0BlLWlzL25neC1tYXRlcmlhbC10YWJsZSc7XG5pbXBvcnQge01hdE1lbnVUcmlnZ2VyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7aXNOaWwsIHRvQm9vbGVhbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hY3Rpb25zLWNvbHVtbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb25zLWNvbHVtbi5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbnNDb2x1bW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZChNYXRDb2x1bW5EZWYpIGNvbHVtbkRlZjogTWF0Q29sdW1uRGVmO1xuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKSBtYXRNZW51VHJpZ2dlcjogTWF0TWVudVRyaWdnZXI7XG5cbiAgQElucHV0KCkgc3RpY2t5RW5kID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhbkNhbmNlbDogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FuRGVsZXRlOiBib29sZWFuO1xuICBASW5wdXQoKSBjYW5CYWNrd2FyZDogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FuRm9yd2FyZDogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FuQ29uZmlybUFuZEFkZDogYm9vbGVhbjtcbiAgQElucHV0KCkgZGlydHlJY29uOiBib29sZWFufHN0cmluZztcbiAgQElucHV0KCkgb3B0aW9uc1RpdGxlID0gJ0NPTU1PTi5CVE5fT1BUSU9OUyc7XG4gIEBJbnB1dCgnY2xhc3MnKSBjbGFzc0xpc3Q6IHN0cmluZztcbiAgQElucHV0KCkgY2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBPdXRwdXQoKSBvcHRpb25zQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFVJRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxPckRlbGV0ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7IGV2ZW50OiBFdmVudDsgcm93OiBUYWJsZUVsZW1lbnQ8YW55PiB9PigpO1xuICBAT3V0cHV0KCkgY29uZmlybUFuZEFkZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7IGV2ZW50OiBFdmVudDsgcm93OiBUYWJsZUVsZW1lbnQ8YW55PiB9PigpO1xuICBAT3V0cHV0KCkgYmFja3dhcmQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnQ6IEV2ZW50OyByb3c6IFRhYmxlRWxlbWVudDxhbnk+IH0+KCk7XG4gIEBPdXRwdXQoKSBmb3J3YXJkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGV2ZW50OiBFdmVudDsgcm93OiBUYWJsZUVsZW1lbnQ8YW55PiB9PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFibGU6IE1hdFRhYmxlPGFueT4sXG4gICAgICAgICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAvLyBUT0RPIGF1dG8gY29uZmlndXJlIHVzaW5nIEFwcFRhYmxlID8gKG5lZWQgYSBmb3J3YXJkUmVmKCkgaW4gdGhlIHRhYmxlIGNvbXBvbmVudFxuICAgICAgICAgICAgICAvL0BPcHRpb25hbCgpIHByaXZhdGUgYXBwVGFibGU6IEFwcFRhYmxlPGFueT5cbiAgKSB7XG4gICAgaWYgKCF0YWJsZSkgdGhyb3cgbmV3IEVycm9yKGBbYWN0aW9ucy1jb2x1bW5dIHRoaXMgY29sdW1uIGNvbXBvbmVudCBtdXN0IGJlIGluc2lkZSBhIE1hdFRhYmxlIGNvbXBvbmVudGApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy50YWJsZS5hZGRDb2x1bW5EZWYodGhpcy5jb2x1bW5EZWYpO1xuICAgIHRoaXMuY2FuQ2FuY2VsID0gdG9Cb29sZWFuKHRoaXMuY2FuQ2FuY2VsLCB0aGlzLmNhbmNlbE9yRGVsZXRlQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDApO1xuICAgIHRoaXMuY2FuRGVsZXRlID0gdG9Cb29sZWFuKHRoaXMuY2FuRGVsZXRlLCB0aGlzLmNhbmNlbE9yRGVsZXRlQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDApO1xuICAgIHRoaXMuY2FuQ29uZmlybUFuZEFkZCA9IHRvQm9vbGVhbih0aGlzLmNhbkNvbmZpcm1BbmRBZGQsIHRoaXMuY29uZmlybUFuZEFkZENsaWNrLm9ic2VydmVycy5sZW5ndGggPiAwKTtcbiAgICB0aGlzLmNhbkJhY2t3YXJkID0gdG9Cb29sZWFuKHRoaXMuY2FuQmFja3dhcmQsIHRoaXMuYmFja3dhcmQub2JzZXJ2ZXJzLmxlbmd0aCA+IDApO1xuICAgIHRoaXMuY2FuRm9yd2FyZCA9IHRvQm9vbGVhbih0aGlzLmNhbkZvcndhcmQsIHRoaXMuZm9yd2FyZC5vYnNlcnZlcnMubGVuZ3RoID4gMCk7XG4gICAgaWYgKGlzTmlsKHRoaXMuZGlydHlJY29uKSkge1xuICAgICAgdGhpcy5kaXJ0eUljb24gPSAnc3Rhcic7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy50YWJsZS5yZW1vdmVDb2x1bW5EZWYodGhpcy5jb2x1bW5EZWYpO1xuICAgIHRoaXMub3B0aW9uc0NsaWNrLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vcHRpb25zQ2xpY2sudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNhbmNlbE9yRGVsZXRlQ2xpY2suY29tcGxldGUoKTtcbiAgICB0aGlzLmNhbmNlbE9yRGVsZXRlQ2xpY2sudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNvbmZpcm1BbmRBZGRDbGljay5jb21wbGV0ZSgpO1xuICAgIHRoaXMuY29uZmlybUFuZEFkZENsaWNrLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5iYWNrd2FyZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuYmFja3dhcmQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZvcndhcmQuY29tcGxldGUoKTtcbiAgICB0aGlzLmZvcndhcmQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
@@ -1,389 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { TableDataSource } from '@e-is/ngx-material-table';
3
- import { BehaviorSubject, Subject } from 'rxjs';
4
- import { ErrorCodes } from '../services/errors';
5
- import { catchError, debounceTime, map, takeUntil } from 'rxjs/operators';
6
- import { Directive } from '@angular/core';
7
- import { firstFalsePromise } from '../../shared/observables';
8
- import { isEmptyArray, isNotEmptyArray, removeEnd } from '../../shared/functions';
9
- import { AppTableUtils } from './table.utils';
10
- import { environment } from '../../../environments/environment';
11
- // @dynamic
12
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
13
- export class EntitiesTableDataSource extends TableDataSource {
14
- /**
15
- * Creates a new TableDataSource instance, that can be used as datasource of `@angular/cdk` data-table.
16
- *
17
- * @param dataService A service to load and save data
18
- * @param dataType Type of data contained by the Table. If not specified, then `data` with at least one element must be specified.
19
- * @param environment
20
- * @param validatorService Service that create instances of the FormGroup used to validate row fields.
21
- * @param config Additional configuration for table.
22
- */
23
- constructor(dataType, dataService, validatorService, options) {
24
- super([], dataType, validatorService, Object.assign({ keepOriginalDataAfterConfirm: false, readOnly: false, saveOnlyDirtyRows: false }, options));
25
- this.dataService = dataService;
26
- this._debug = false;
27
- this._creating = false;
28
- this._saving = false;
29
- this._stopWatching$ = new Subject();
30
- this._fetchMoreFn = null;
31
- this.loadingSubject = new BehaviorSubject(undefined);
32
- this._entityName = removeEnd((new dataType()).__typename || 'UnknownVO', 'VO');
33
- this._debug = (options === null || options === void 0 ? void 0 : options.suppressErrors) === false && !environment.production;
34
- }
35
- /**
36
- * @deprecated Use watchAllOptions or saveAllOptions
37
- */
38
- get serviceOptions() {
39
- return this.config.dataServiceOptions
40
- || Object.assign(Object.assign({}, this.watchAllOptions), this.saveAllOptions);
41
- }
42
- /**
43
- * @deprecated Use watchAllOptions or saveAllOptions
44
- */
45
- set serviceOptions(value) {
46
- console.warn('dataSource.serviceOptions is deprecated! Please use \'watchAllOptions\' or \'saveAllOptions\' instead');
47
- this.config.dataServiceOptions = value;
48
- }
49
- get watchAllOptions() {
50
- return this.config.watchAllOptions;
51
- }
52
- set watchAllOptions(value) {
53
- this.config.watchAllOptions = value;
54
- }
55
- get saveAllOptions() {
56
- return this.config.saveAllOptions;
57
- }
58
- set saveAllOptions(value) {
59
- this.config.saveAllOptions = value;
60
- }
61
- get loaded() {
62
- return this.loadingSubject.value === false; // Should be false when undefined (initial state)
63
- }
64
- get loading() {
65
- return this.loadingSubject.value !== false; // Should be true when undefined (initial state)
66
- }
67
- ngOnDestroy() {
68
- this._stopWatching$.next();
69
- this._stopWatching$.complete();
70
- this._stopWatching$.unsubscribe();
71
- this.loadingSubject.complete();
72
- this.loadingSubject.unsubscribe();
73
- }
74
- watchAll(offset, size, sortBy, sortDirection, filter) {
75
- this._stopWatching$.next();
76
- this._fetchMoreFn = null;
77
- this.markAsLoading();
78
- return this.dataService.watchAll(offset, size, sortBy, sortDirection, filter, this.serviceOptions)
79
- .pipe(catchError(err => this.handleError(err, 'ERROR.LOAD_DATA_ERROR')), map((res) => {
80
- if (this._saving) {
81
- console.info(`[table-datasource] Received ${this._entityName} data (from service), but still saving: skip`);
82
- }
83
- else if (this.hasSomeEditingRow()) {
84
- console.warn(`[table-datasource] Received ${this._entityName} data, while some row still editing: skip; Please check save() implementation in the table!`);
85
- }
86
- else {
87
- this.updateDatasource((res.data || []));
88
- this._fetchMoreFn = res.fetchMore;
89
- }
90
- return res;
91
- }),
92
- // Stop this pipe next time we call watchAll()
93
- takeUntil(this._stopWatching$)
94
- // ⚠ Notice: Don't put any operator after takeUntil to avoid potential subscription leaks
95
- );
96
- }
97
- updateDatasourceFromRows(rows) {
98
- var _a;
99
- // Avoid to update dataSourceSubject, when not need
100
- if ((_a = this.datasourceSubject.observers) === null || _a === void 0 ? void 0 : _a.length) {
101
- if (!this.config.suppressErrors)
102
- console.warn('[table-datasource] Update datasource subject. Please prefer using \'rowsSubject\' instead of \'datasourceSubject\'');
103
- super.updateDatasourceFromRows(rows);
104
- }
105
- else {
106
- console.debug('[table-datasource] Skipping datasourceSubject update (not used yet).');
107
- }
108
- }
109
- save() {
110
- return __awaiter(this, void 0, void 0, function* () {
111
- if (this.config.readOnly) {
112
- console.error('[table-datasource] Enable to save, because config.readOnly=true');
113
- return false;
114
- }
115
- // Saving twice (should never occur)
116
- if (this._saving) {
117
- console.warn(`[table-datasource] Trying to save ${this._entityName} rows twice. Skip`);
118
- return false;
119
- }
120
- this._saving = true;
121
- this.markAsLoading();
122
- const onlyDirtyRows = this.config.saveOnlyDirtyRows;
123
- try {
124
- if (this._debug)
125
- console.debug(`[table-datasource] Saving ${this._entityName} rows... {onlyDirtyRows: ${onlyDirtyRows}}`);
126
- // Get all rows
127
- const rows = this.getRows();
128
- // Finish editing all rows
129
- const invalidRows = rows.filter(row => row.editing && !row.confirmEditCreate());
130
- // Cannot finish some rows: error
131
- if (invalidRows.length) {
132
- // log errors
133
- if (this._debug)
134
- invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._entityName} row #${row.id}`));
135
- // Stop with an error
136
- throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
137
- }
138
- let data;
139
- let dataToSave;
140
- if (this.validatorService) {
141
- dataToSave = [];
142
- data = rows.map(row => {
143
- const currentData = new this.dataConstructor();
144
- currentData.fromObject(row.currentData);
145
- // Filter to keep only dirty row
146
- if (onlyDirtyRows && row.validator.dirty)
147
- dataToSave.push(currentData);
148
- return currentData;
149
- });
150
- if (!onlyDirtyRows)
151
- dataToSave = data;
152
- }
153
- // Or use the current data without conversion (when no validator service used)
154
- else {
155
- data = rows.map(row => row.currentData);
156
- // save all data, as we don't have any dirty marker
157
- dataToSave = data;
158
- }
159
- // If no data to save: exit
160
- if (onlyDirtyRows && !dataToSave.length) {
161
- if (this._debug)
162
- console.debug(`[table-datasource] No ${this._entityName} data to save. Skip`);
163
- return false;
164
- }
165
- if (this._debug)
166
- console.debug(`[table-datasource] Asking service to save this ${this._entityName} data:`, dataToSave);
167
- yield this.dataService.saveAll(dataToSave, this.serviceOptions);
168
- if (this._debug)
169
- console.debug(`[table-datasource] Saving ${this._entityName} data [OK]`);
170
- // LP 23/03/2021: update datasource is necessary but can be changed to a refetch() on QueryRef (must be created and registered in GraphqlService.watchQuery)
171
- this.updateDatasource(data, { emitEvent: false });
172
- return true;
173
- }
174
- catch (error) {
175
- if (this._debug)
176
- console.error('[table-datasource] Error while saving: ' + error && error.message || error);
177
- throw error;
178
- }
179
- finally {
180
- this._saving = false;
181
- this.markAsLoaded();
182
- }
183
- });
184
- }
185
- updateDatasource(data, opts) {
186
- if (this._debug)
187
- console.debug(`[table-datasource] Updating datasource with data:`, data);
188
- super.updateDatasource(data, opts);
189
- if (!opts || opts.emitEvent !== false) {
190
- this.markAsLoaded();
191
- }
192
- }
193
- connect(collectionViewer) {
194
- // DEBUG console.debug("[entities-datasource] connect");
195
- return super.connect(collectionViewer);
196
- }
197
- disconnect(collectionViewer) {
198
- super.disconnect(collectionViewer);
199
- this._stopWatching$.next();
200
- }
201
- waitIdle(debounceTimeMs) {
202
- return firstFalsePromise(this.loadingSubject
203
- .asObservable()
204
- .pipe(debounceTime(debounceTimeMs || 100) // if not started yet, wait
205
- ));
206
- }
207
- confirmCreate(row) {
208
- if (!super.confirmCreate(row))
209
- return false;
210
- if (row.editing && row.validator) {
211
- console.warn('[table-datasource] Row still has {editing: true} after confirmCreate()! Force editing to false');
212
- row.validator.disable({ onlySelf: true, emitEvent: false });
213
- }
214
- return true;
215
- }
216
- confirmEdit(row) {
217
- if (!super.confirmEdit(row))
218
- return false;
219
- if (row.editing && row.validator) {
220
- console.warn('[table-datasource] Row still has {editing: true} after confirmEdit()! Force editing to false');
221
- row.validator.disable({ onlySelf: true, emitEvent: false });
222
- }
223
- return true;
224
- }
225
- startEdit(row) {
226
- if (!super.startEdit(row))
227
- return false;
228
- if (!row.editing && row.validator) {
229
- console.warn('[table-datasource] Row still has {editing: false} after startEdit()! Force editing');
230
- row.validator.enable({ onlySelf: true, emitEvent: false });
231
- }
232
- }
233
- handleError(error, message) {
234
- const errorMsg = error && error.message || error;
235
- console.error(`[table-datasource] Service ${this._entityName} sent error: ${errorMsg}`, error);
236
- this.markAsLoaded();
237
- throw new Error(message || errorMsg);
238
- }
239
- handleServiceError(error) {
240
- const errorMsg = error && error.message || error;
241
- console.error(`[table-datasource] Service ${this._entityName} sent error: ${errorMsg}`, error);
242
- this.markAsLoaded();
243
- throw error;
244
- }
245
- delete(id) {
246
- // If new row: not need to propagate to the dataService
247
- if (id === -1) {
248
- return super.delete(id);
249
- }
250
- const row = this.getRow(id);
251
- if (!row) {
252
- console.error(`[table-datasource] Row to delete with id=${id} not found`);
253
- return;
254
- }
255
- this.markAsLoading();
256
- this.dataService.deleteAll([row.currentData], this.serviceOptions)
257
- .catch(err => this.handleServiceError(err))
258
- .then(() => {
259
- setTimeout(() => {
260
- // make sure row has been deleted (because GrapQHl cache remove can failed)
261
- const present = this.getRow(id) === row;
262
- if (present)
263
- super.delete(id);
264
- this.markAsLoaded();
265
- }, 300);
266
- });
267
- }
268
- deleteAll(rows) {
269
- const _super = Object.create(null, {
270
- delete: { get: () => super.delete }
271
- });
272
- return __awaiter(this, void 0, void 0, function* () {
273
- this.markAsLoading();
274
- const data = this.getDataFromRows(rows);
275
- try {
276
- // Call service deletion
277
- yield this.dataService.deleteAll(data, this.serviceOptions);
278
- // Workaround, to be sure all rows have been deleted
279
- // Sometime, the service miss deletion, or GraphQl cache remove failed.
280
- // In this case, apply missing deletion using the super.delete() function
281
- const rowNotDeleted = this.getRows().filter(row => rows.includes(row));
282
- if (isNotEmptyArray(rowNotDeleted)) {
283
- console.warn(`[table-datasource] Force deletion of ${rowNotDeleted.length} rows! Please check that data service update the cache, after deletion`);
284
- rowNotDeleted
285
- // Start at the end
286
- .sort((a, b) => a.id > b.id ? -1 : 1)
287
- .forEach(r => _super.delete.call(this, r.id));
288
- }
289
- }
290
- catch (err) {
291
- // Handle service error
292
- this.handleServiceError(err);
293
- }
294
- finally {
295
- this.loadingSubject.next(false);
296
- }
297
- });
298
- }
299
- getRow(id) {
300
- return super.getRow(id);
301
- }
302
- getRows() {
303
- return this.rowsSubject.getValue();
304
- }
305
- hasSomeEditingRow() {
306
- return (this.rowsSubject.value || []).some(row => row.editing);
307
- }
308
- createNew(insertAt, options = { editing: true }) {
309
- const _super = Object.create(null, {
310
- createNew: { get: () => super.createNew }
311
- });
312
- var _a;
313
- return __awaiter(this, void 0, void 0, function* () {
314
- if (this._creating)
315
- return; // Avoid multiple call (should never occur)
316
- this._creating = true;
317
- try {
318
- const row = yield _super.createNew.call(this, insertAt, options);
319
- if (!row)
320
- return;
321
- if ((_a = this.config) === null || _a === void 0 ? void 0 : _a.onRowCreated) {
322
- try {
323
- yield this.config.onRowCreated(row);
324
- }
325
- catch (err) {
326
- // Log, then continue
327
- console.error(err && err.message || err, err);
328
- }
329
- }
330
- return row;
331
- }
332
- finally {
333
- this._creating = false;
334
- }
335
- });
336
- }
337
- getData() {
338
- const rows = this.getRows();
339
- return this.getDataFromRows(rows);
340
- }
341
- fetchMore(opts) {
342
- const _super = Object.create(null, {
343
- updateDatasource: { get: () => super.updateDatasource }
344
- });
345
- return __awaiter(this, void 0, void 0, function* () {
346
- if (!this._fetchMoreFn)
347
- return false; // Avoid multiple call
348
- if (this.hasSomeEditingRow()) {
349
- console.warn(`Cannot fetch more ${this._entityName} because some row) still editing`);
350
- return;
351
- }
352
- console.debug(`Will fetching more row(s) still...`);
353
- // Forget the fetchMore function, to avoid multiple call
354
- const fetchMoreFn = this._fetchMoreFn;
355
- this._fetchMoreFn = null;
356
- // Fetch next page
357
- const res = yield fetchMoreFn();
358
- // Skip if empty (no more data)
359
- if (isEmptyArray(res === null || res === void 0 ? void 0 : res.data))
360
- return false;
361
- // Update the data source
362
- _super.updateDatasource.call(this, (this.currentData || []).concat(...res.data), opts);
363
- // Remember fetchMore
364
- this._fetchMoreFn = res.fetchMore;
365
- return true;
366
- });
367
- }
368
- /* -- protected method -- */
369
- markAsLoading() {
370
- if (this.loadingSubject.value !== true) {
371
- this.loadingSubject.next(true);
372
- }
373
- }
374
- markAsLoaded() {
375
- if (this.loadingSubject.value !== false) {
376
- this.loadingSubject.next(false);
377
- }
378
- }
379
- }
380
- EntitiesTableDataSource.decorators = [
381
- { type: Directive }
382
- ];
383
- EntitiesTableDataSource.ctorParameters = () => [
384
- { type: Function },
385
- { type: undefined },
386
- { type: undefined },
387
- { type: undefined }
388
- ];
389
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMtdGFibGUtZGF0YXNvdXJjZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS90YWJsZS9lbnRpdGllcy10YWJsZS1kYXRhc291cmNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFpQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTFELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUtuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQVEsWUFBWSxFQUFFLGVBQWUsRUFBWSxTQUFTLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQXlCOUQsV0FBVztBQUVYLGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sdUJBU1QsU0FBUSxlQUF3QjtJQXFEbEM7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLFFBQW9CLEVBQ0osV0FBdUMsRUFDdkQsZ0JBQW9CLEVBQ3BCLE9BQVc7UUFDckIsS0FBSyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLGtCQUNsQyw0QkFBNEIsRUFBRSxLQUFLLEVBQ25DLFFBQVEsRUFBRSxLQUFLLEVBQ2YsaUJBQWlCLEVBQUUsS0FBSyxJQUNyQixPQUFPLEVBQ1YsQ0FBQztRQVJ1QixnQkFBVyxHQUFY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V0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFFekIsa0JBQWtCO1lBQ2xCLE1BQU0sR0FBRyxHQUFrQixNQUFNLFdBQVcsRUFBRSxDQUFDO1lBRS9DLCtCQUErQjtZQUMvQixJQUFJLFlBQVksQ0FBQyxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsSUFBSSxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBRTFDLHlCQUF5QjtZQUN6QixPQUFNLGdCQUFnQixZQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFO1lBRTNFLHFCQUFxQjtZQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQUE7SUFFRCw0QkFBNEI7SUFFNUIsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRTtZQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7OztZQXZhRixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUYWJsZURhdGFTb3VyY2UsIFRhYmxlRWxlbWVudCwgVmFsaWRhdG9yU2VydmljZX0gZnJvbSAnQGUtaXMvbmd4LW1hdGVyaWFsLXRhYmxlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RW50aXR5LCBJRW50aXR5fSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtFcnJvckNvZGVzfSBmcm9tICcuLi9zZXJ2aWNlcy9lcnJvcnMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIG1hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0RpcmVjdGl2ZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U29ydERpcmVjdGlvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge0NvbGxlY3Rpb25WaWV3ZXJ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge1RhYmxlRGF0YVNvdXJjZUNvbmZpZ30gZnJvbSAnQGUtaXMvbmd4LW1hdGVyaWFsLXRhYmxlL3NyYy9hcHAvbmd4LW1hdGVyaWFsLXRhYmxlL3RhYmxlLWRhdGEtc291cmNlJztcbmltcG9ydCB7RW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLCBGZXRjaE1vcmVGbiwgSUVudGl0aWVzU2VydmljZSwgTG9hZFJlc3VsdH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7Zmlyc3RGYWxzZVByb21pc2V9IGZyb20gJy4uLy4uL3NoYXJlZC9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge0JlYW5zLCBpc0VtcHR5QXJyYXksIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWwsIHJlbW92ZUVuZH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQge0FwcFRhYmxlVXRpbHN9IGZyb20gJy4vdGFibGUudXRpbHMnO1xuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0aWVzVGFibGVEYXRhU291cmNlQ29uZmlnPFxuICBUIGV4dGVuZHMgRW50aXR5PFQsIElEPixcbiAgSUQgPSBudW1iZXIsXG4gIFdPIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zID0gRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLFxuICBTTyA9IGFueVxuICA+IGV4dGVuZHMgVGFibGVEYXRhU291cmNlQ29uZmlnIHtcblxuICBvblJvd0NyZWF0ZWQ/OiAocm93OiBUYWJsZUVsZW1lbnQ8VD4pID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuICBzYXZlT25seURpcnR5Um93cz86IGJvb2xlYW47XG4gIHJlYWRPbmx5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGRhdGFTZXJ2aWNlT3B0aW9ucz86IFdPICYgU087IC8vIE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBkYXRhU2VydmljZS53YXRjaEFsbCgpIGFuZCBkYXRhU2VydmljZS5zYXZlQWxsKClcblxuICB3YXRjaEFsbE9wdGlvbnM/OiBXTzsgLy8gT3B0aW9ucyBwYXNzZWQgdG8gdGhlIGRhdGFTZXJ2aWNlLnNhdmVBbGwoKVxuICBzYXZlQWxsT3B0aW9ucz86IFNPOyAvLyBPcHRpb25zIHBhc3NlZCB0byB0aGUgZGF0YVNlcnZpY2Uuc2F2ZUFsbCgpXG5cbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBFbnRpdGllc1RhYmxlRGF0YVNvdXJjZTxcbiAgVCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LFxuICBGID0gYW55LFxuICBJRCA9IG51bWJlcixcbiAgV08gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMsXG4gIFNPID0gYW55LFxuICBWIGV4dGVuZHMgVmFsaWRhdG9yU2VydmljZSA9IFZhbGlkYXRvclNlcnZpY2UsXG4gIEMgZXh0ZW5kcyBFbnRpdGllc1RhYmxlRGF0YVNvdXJjZUNvbmZpZzxULCBJRCwgV08sIFNPPiA9IEVudGl0aWVzVGFibGVEYXRhU291cmNlQ29uZmlnPFQsIElELCBXTywgU08+LFxuICA+XG4gICAgZXh0ZW5kcyBUYWJsZURhdGFTb3VyY2U8VCwgViwgQz5cbiAgICBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZW50aXR5TmFtZTogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBfZGVidWcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9jcmVhdGluZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX3NhdmluZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX3N0b3BXYXRjaGluZyQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHByb3RlY3RlZCBfZmV0Y2hNb3JlRm46IEZldGNoTW9yZUZuPExvYWRSZXN1bHQ8VD4+ID0gbnVsbDtcblxuICBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHdhdGNoQWxsT3B0aW9ucyBvciBzYXZlQWxsT3B0aW9uc1xuICAgKi9cbiAgZ2V0IHNlcnZpY2VPcHRpb25zKCk6IFdPICYgU08ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5kYXRhU2VydmljZU9wdGlvbnNcbiAgICAgIHx8IHsuLi50aGlzLndhdGNoQWxsT3B0aW9ucywgLi4udGhpcy5zYXZlQWxsT3B0aW9uc307XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHdhdGNoQWxsT3B0aW9ucyBvciBzYXZlQWxsT3B0aW9uc1xuICAgKi9cbiAgc2V0IHNlcnZpY2VPcHRpb25zKHZhbHVlOiBXTyAmIFNPKSAge1xuICAgIGNvbnNvbGUud2FybignZGF0YVNvdXJjZS5zZXJ2aWNlT3B0aW9ucyBpcyBkZXByZWNhdGVkISBQbGVhc2UgdXNlIFxcJ3dhdGNoQWxsT3B0aW9uc1xcJyBvciBcXCdzYXZlQWxsT3B0aW9uc1xcJyBpbnN0ZWFkJyk7XG4gICAgdGhpcy5jb25maWcuZGF0YVNlcnZpY2VPcHRpb25zID0gdmFsdWU7XG4gIH1cblxuICBnZXQgd2F0Y2hBbGxPcHRpb25zKCk6IFdPIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcud2F0Y2hBbGxPcHRpb25zO1xuICB9XG5cbiAgc2V0IHdhdGNoQWxsT3B0aW9ucyh2YWx1ZTogV08pICB7XG4gICAgdGhpcy5jb25maWcud2F0Y2hBbGxPcHRpb25zID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc2F2ZUFsbE9wdGlvbnMoKTogU08ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5zYXZlQWxsT3B0aW9ucztcbiAgfVxuXG4gIHNldCBzYXZlQWxsT3B0aW9ucyh2YWx1ZTogU08pICB7XG4gICAgdGhpcy5jb25maWcuc2F2ZUFsbE9wdGlvbnMgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBsb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGluZ1N1YmplY3QudmFsdWUgPT09IGZhbHNlOyAvLyBTaG91bGQgYmUgZmFsc2Ugd2hlbiB1bmRlZmluZWQgKGluaXRpYWwgc3RhdGUpXG4gIH1cblxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZSAhPT0gZmFsc2U7IC8vIFNob3VsZCBiZSB0cnVlIHdoZW4gdW5kZWZpbmVkIChpbml0aWFsIHN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgVGFibGVEYXRhU291cmNlIGluc3RhbmNlLCB0aGF0IGNhbiBiZSB1c2VkIGFzIGRhdGFzb3VyY2Ugb2YgYEBhbmd1bGFyL2Nka2AgZGF0YS10YWJsZS5cbiAgICpcbiAgICogQHBhcmFtIGRhdGFTZXJ2aWNlIEEgc2VydmljZSB0byBsb2FkIGFuZCBzYXZlIGRhdGFcbiAgICogQHBhcmFtIGRhdGFUeXBlIFR5cGUgb2YgZGF0YSBjb250YWluZWQgYnkgdGhlIFRhYmxlLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGVuIGBkYXRhYCB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50IG11c3QgYmUgc3BlY2lmaWVkLlxuICAgKiBAcGFyYW0gZW52aXJvbm1lbnRcbiAgICogQHBhcmFtIHZhbGlkYXRvclNlcnZpY2UgU2VydmljZSB0aGF0IGNyZWF0ZSBpbnN0YW5jZXMgb2YgdGhlIEZvcm1Hcm91cCB1c2VkIHRvIHZhbGlkYXRlIHJvdyBmaWVsZHMuXG4gICAqIEBwYXJhbSBjb25maWcgQWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0YWJsZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRhdGFUeXBlOiBuZXcoKSA9PiBULFxuICAgICAgICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YVNlcnZpY2U6IElFbnRpdGllc1NlcnZpY2U8VCwgRiwgV08+LFxuICAgICAgICAgICAgICB2YWxpZGF0b3JTZXJ2aWNlPzogVixcbiAgICAgICAgICAgICAgb3B0aW9ucz86IEMpIHtcbiAgICBzdXBlcihbXSwgZGF0YVR5cGUsIHZhbGlkYXRvclNlcnZpY2UsIHtcbiAgICAgIGtlZXBPcmlnaW5hbERhdGFBZnRlckNvbmZpcm06IGZhbHNlLFxuICAgICAgcmVhZE9ubHk6IGZhbHNlLFxuICAgICAgc2F2ZU9ubHlEaXJ0eVJvd3M6IGZhbHNlLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZW50aXR5TmFtZSA9IHJlbW92ZUVuZCgobmV3IGRhdGFUeXBlKCkpLl9fdHlwZW5hbWUgfHwgJ1Vua25vd25WTycsICdWTycpO1xuICAgIHRoaXMuX2RlYnVnID0gb3B0aW9ucz8uc3VwcHJlc3NFcnJvcnMgPT09IGZhbHNlICYmICFlbnZpcm9ubWVudC5wcm9kdWN0aW9uO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3RvcFdhdGNoaW5nJC5uZXh0KCk7XG4gICAgdGhpcy5fc3RvcFdhdGNoaW5nJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3N0b3BXYXRjaGluZyQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmxvYWRpbmdTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5sb2FkaW5nU3ViamVjdC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgd2F0Y2hBbGwob2Zmc2V0OiBudW1iZXIsXG4gICAgICAgICAgIHNpemU6IG51bWJlcixcbiAgICAgICAgICAgc29ydEJ5Pzogc3RyaW5nLFxuICAgICAgICAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICAgICAgICAgZmlsdGVyPzogUGFydGlhbDxGPik6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj4ge1xuXG4gICAgdGhpcy5fc3RvcFdhdGNoaW5nJC5uZXh0KCk7XG4gICAgdGhpcy5fZmV0Y2hNb3JlRm4gPSBudWxsO1xuICAgIHRoaXMubWFya0FzTG9hZGluZygpO1xuXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uud2F0Y2hBbGwob2Zmc2V0LCBzaXplLCBzb3J0QnksIHNvcnREaXJlY3Rpb24sIGZpbHRlciwgdGhpcy5zZXJ2aWNlT3B0aW9ucyBhcyBXTylcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgJ0VSUk9SLkxPQURfREFUQV9FUlJPUicpKSxcbiAgICAgICAgbWFwKChyZXM6IExvYWRSZXN1bHQ8VD4pID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fc2F2aW5nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmluZm8oYFt0YWJsZS1kYXRhc291cmNlXSBSZWNlaXZlZCAke3RoaXMuX2VudGl0eU5hbWV9IGRhdGEgKGZyb20gc2VydmljZSksIGJ1dCBzdGlsbCBzYXZpbmc6IHNraXBgKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzU29tZUVkaXRpbmdSb3coKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBbdGFibGUtZGF0YXNvdXJjZV0gUmVjZWl2ZWQgJHt0aGlzLl9lbnRpdHlOYW1lfSBkYXRhLCB3aGlsZSBzb21lIHJvdyBzdGlsbCBlZGl0aW5nOiBza2lwOyBQbGVhc2UgY2hlY2sgc2F2ZSgpIGltcGxlbWVudGF0aW9uIGluIHRoZSB0YWJsZSFgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhc291cmNlKChyZXMuZGF0YSB8fCBbXSkgYXMgVFtdKTtcbiAgICAgICAgICAgIHRoaXMuX2ZldGNoTW9yZUZuID0gcmVzLmZldGNoTW9yZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSksXG4gICAgICAgIC8vIFN0b3AgdGhpcyBwaXBlIG5leHQgdGltZSB3ZSBjYWxsIHdhdGNoQWxsKClcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3N0b3BXYXRjaGluZyQpXG4gICAgICAgIC8vIOKaoCBOb3RpY2U6IERvbid0IHB1dCBhbnkgb3BlcmF0b3IgYWZ0ZXIgdGFrZVVudGlsIHRvIGF2b2lkIHBvdGVudGlhbCBzdWJzY3JpcHRpb24gbGVha3NcbiAgICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlRGF0YXNvdXJjZUZyb21Sb3dzKHJvd3M6IFRhYmxlRWxlbWVudDxUPltdKSB7XG4gICAgLy8gQXZvaWQgdG8gdXBkYXRlIGRhdGFTb3VyY2VTdWJqZWN0LCB3aGVuIG5vdCBuZWVkXG4gICAgaWYgKHRoaXMuZGF0YXNvdXJjZVN1YmplY3Qub2JzZXJ2ZXJzPy5sZW5ndGgpIHtcbiAgICAgIGlmICghdGhpcy5jb25maWcuc3VwcHJlc3NFcnJvcnMpIGNvbnNvbGUud2FybignW3RhYmxlLWRhdGFzb3VyY2VdIFVwZGF0ZSBkYXRhc291cmNlIHN1YmplY3QuIFBsZWFzZSBwcmVmZXIgdXNpbmcgXFwncm93c1N1YmplY3RcXCcgaW5zdGVhZCBvZiBcXCdkYXRhc291cmNlU3ViamVjdFxcJycpO1xuICAgICAgc3VwZXIudXBkYXRlRGF0YXNvdXJjZUZyb21Sb3dzKHJvd3MpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ1t0YWJsZS1kYXRhc291cmNlXSBTa2lwcGluZyBkYXRhc291cmNlU3ViamVjdCB1cGRhdGUgKG5vdCB1c2VkIHlldCkuJyk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5jb25maWcucmVhZE9ubHkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWJsZS1kYXRhc291cmNlXSBFbmFibGUgdG8gc2F2ZSwgYmVjYXVzZSBjb25maWcucmVhZE9ubHk9dHJ1ZScpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBTYXZpbmcgdHdpY2UgKHNob3VsZCBuZXZlciBvY2N1cilcbiAgICBpZiAodGhpcy5fc2F2aW5nKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFt0YWJsZS1kYXRhc291cmNlXSBUcnlpbmcgdG8gc2F2ZSAke3RoaXMuX2VudGl0eU5hbWV9IHJvd3MgdHdpY2UuIFNraXBgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLl9zYXZpbmcgPSB0cnVlO1xuICAgIHRoaXMubWFya0FzTG9hZGluZygpO1xuXG4gICAgY29uc3Qgb25seURpcnR5Um93cyA9IHRoaXMuY29uZmlnLnNhdmVPbmx5RGlydHlSb3dzO1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW3RhYmxlLWRhdGFzb3VyY2VdIFNhdmluZyAke3RoaXMuX2VudGl0eU5hbWV9IHJvd3MuLi4ge29ubHlEaXJ0eVJvd3M6ICR7b25seURpcnR5Um93c319YCk7XG5cbiAgICAgIC8vIEdldCBhbGwgcm93c1xuICAgICAgY29uc3Qgcm93cyA9IHRoaXMuZ2V0Um93cygpO1xuXG4gICAgICAvLyBGaW5pc2ggZWRpdGluZyBhbGwgcm93c1xuICAgICAgY29uc3QgaW52YWxpZFJvd3MgPSByb3dzLmZpbHRlcihyb3cgPT4gcm93LmVkaXRpbmcgJiYgIXJvdy5jb25maXJtRWRpdENyZWF0ZSgpKTtcblxuICAgICAgLy8gQ2Fubm90IGZpbmlzaCBzb21lIHJvd3M6IGVycm9yXG4gICAgICBpZiAoaW52YWxpZFJvd3MubGVuZ3RoKSB7XG4gICAgICAgIC8vIGxvZyBlcnJvcnNcbiAgICAgICAgaWYgKHRoaXMuX2RlYnVnKSBpbnZhbGlkUm93cy5mb3JFYWNoKHJvdyA9PiBBcHBUYWJsZVV0aWxzLmxvZ1Jvd0Vycm9ycyhyb3csIGBbdGFibGUtZGF0YXNvdXJjZV0gJHt0aGlzLl9lbnRpdHlOYW1lfSByb3cgIyR7cm93LmlkfWApKTtcbiAgICAgICAgLy8gU3RvcCB3aXRoIGFuIGVycm9yXG4gICAgICAgIHRocm93IHtjb2RlOiBFcnJvckNvZGVzLlRBQkxFX0lOVkFMSURfUk9XX0VSUk9SLCBtZXNzYWdlOiAnRVJST1IuVEFCTEVfSU5WQUxJRF9ST1dfRVJST1InfTtcbiAgICAgIH1cblxuICAgICAgbGV0IGRhdGE6IFRbXTtcbiAgICAgIGxldCBkYXRhVG9TYXZlOiBUW107XG5cbiAgICAgIGlmICh0aGlzLnZhbGlkYXRvclNlcnZpY2UpIHtcbiAgICAgICAgZGF0YVRvU2F2ZSA9IFtdO1xuICAgICAgICBkYXRhID0gcm93cy5tYXAocm93ID0+IHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IG5ldyB0aGlzLmRhdGFDb25zdHJ1Y3RvcigpIGFzIFQ7XG4gICAgICAgICAgY3VycmVudERhdGEuZnJvbU9iamVjdChyb3cuY3VycmVudERhdGEpO1xuICAgICAgICAgIC8vIEZpbHRlciB0byBrZWVwIG9ubHkgZGlydHkgcm93XG4gICAgICAgICAgaWYgKG9ubHlEaXJ0eVJvd3MgJiYgcm93LnZhbGlkYXRvci5kaXJ0eSkgZGF0YVRvU2F2ZS5wdXNoKGN1cnJlbnREYXRhKTtcbiAgICAgICAgICByZXR1cm4gY3VycmVudERhdGE7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIW9ubHlEaXJ0eVJvd3MpIGRhdGFUb1NhdmUgPSBkYXRhO1xuICAgICAgfVxuICAgICAgLy8gT3IgdXNlIHRoZSBjdXJyZW50IGRhdGEgd2l0aG91dCBjb252ZXJzaW9uICh3aGVuIG5vIHZhbGlkYXRvciBzZXJ2aWNlIHVzZWQpXG4gICAgICBlbHNlIHtcbiAgICAgICAgZGF0YSA9IHJvd3MubWFwKHJvdyA9PiByb3cuY3VycmVudERhdGEpO1xuICAgICAgICAvLyBzYXZlIGFsbCBkYXRhLCBhcyB3ZSBkb24ndCBoYXZlIGFueSBkaXJ0eSBtYXJrZXJcbiAgICAgICAgZGF0YVRvU2F2ZSA9IGRhdGE7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIG5vIGRhdGEgdG8gc2F2ZTogZXhpdFxuICAgICAgaWYgKG9ubHlEaXJ0eVJvd3MgJiYgIWRhdGFUb1NhdmUubGVuZ3RoKSB7XG4gICAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW3RhYmxlLWRhdGFzb3VyY2VdIE5vICR7dGhpcy5fZW50aXR5TmFtZX0gZGF0YSB0byBzYXZlLiBTa2lwYCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGBbdGFibGUtZGF0YXNvdXJjZV0gQXNraW5nIHNlcnZpY2UgdG8gc2F2ZSB0aGlzICR7dGhpcy5fZW50aXR5TmFtZX0gZGF0YTpgLCBkYXRhVG9TYXZlKTtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YVNlcnZpY2Uuc2F2ZUFsbChkYXRhVG9TYXZlLCB0aGlzLnNlcnZpY2VPcHRpb25zKTtcblxuICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGBbdGFibGUtZGF0YXNvdXJjZV0gU2F2aW5nICR7dGhpcy5fZW50aXR5TmFtZX0gZGF0YSBbT0tdYCk7XG5cbiAgICAgIC8vIExQIDIzLzAzLzIwMjE6IHVwZGF0ZSBkYXRhc291cmNlIGlzIG5lY2Vzc2FyeSBidXQgY2FuIGJlIGNoYW5nZWQgdG8gYSByZWZldGNoKCkgb24gUXVlcnlSZWYgKG11c3QgYmUgY3JlYXRlZCBhbmQgcmVnaXN0ZXJlZCBpbiBHcmFwaHFsU2VydmljZS53YXRjaFF1ZXJ5KVxuICAgICAgdGhpcy51cGRhdGVEYXRhc291cmNlKGRhdGEsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZXJyb3IoJ1t0YWJsZS1kYXRhc291cmNlXSBFcnJvciB3aGlsZSBzYXZpbmc6ICcgKyBlcnJvciAmJiBlcnJvci5tZXNzYWdlIHx8IGVycm9yKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9zYXZpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMubWFya0FzTG9hZGVkKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRGF0YXNvdXJjZShkYXRhOiBUW10sIG9wdHM/OiB7IGVtaXRFdmVudDogYm9vbGVhbiB9KSB7XG4gICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGBbdGFibGUtZGF0YXNvdXJjZV0gVXBkYXRpbmcgZGF0YXNvdXJjZSB3aXRoIGRhdGE6YCwgZGF0YSk7XG5cbiAgICBzdXBlci51cGRhdGVEYXRhc291cmNlKGRhdGEsIG9wdHMpO1xuXG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5tYXJrQXNMb2FkZWQoKTtcbiAgICB9XG4gIH1cblxuICBjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiBPYnNlcnZhYmxlPFRhYmxlRWxlbWVudDxUPltdIHwgUmVhZG9ubHlBcnJheTxUYWJsZUVsZW1lbnQ8VD4+PiB7XG4gICAgLy8gREVCVUcgY29uc29sZS5kZWJ1ZyhcIltlbnRpdGllcy1kYXRhc291cmNlXSBjb25uZWN0XCIpO1xuICAgIHJldHVybiBzdXBlci5jb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXIpO1xuICB9XG5cbiAgZGlzY29ubmVjdChjb2xsZWN0aW9uVmlld2VyPzogQ29sbGVjdGlvblZpZXdlcikge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3QoY29sbGVjdGlvblZpZXdlcik7XG4gICAgdGhpcy5fc3RvcFdhdGNoaW5nJC5uZXh0KCk7XG4gIH1cblxuICB3YWl0SWRsZShkZWJvdW5jZVRpbWVNcz86IG51bWJlcik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIGZpcnN0RmFsc2VQcm9taXNlKHRoaXMubG9hZGluZ1N1YmplY3RcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZShkZWJvdW5jZVRpbWVNcyB8fCAxMDApIC8vIGlmIG5vdCBzdGFydGVkIHlldCwgd2FpdFxuICAgICAgKSk7XG4gIH1cblxuICBjb25maXJtQ3JlYXRlKHJvdzogVGFibGVFbGVtZW50PFQ+KSB7XG4gICAgaWYgKCFzdXBlci5jb25maXJtQ3JlYXRlKHJvdykpIHJldHVybiBmYWxzZTtcbiAgICBpZiAocm93LmVkaXRpbmcgJiYgcm93LnZhbGlkYXRvcikge1xuICAgICAgY29uc29sZS53YXJuKCdbdGFibGUtZGF0YXNvdXJjZV0gUm93IHN0aWxsIGhhcyB7ZWRpdGluZzogdHJ1ZX0gYWZ0ZXIgY29uZmlybUNyZWF0ZSgpISBGb3JjZSBlZGl0aW5nIHRvIGZhbHNlJyk7XG4gICAgICByb3cudmFsaWRhdG9yLmRpc2FibGUoe29ubHlTZWxmOiB0cnVlLCBlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uZmlybUVkaXQocm93OiBUYWJsZUVsZW1lbnQ8VD4pOiBib29sZWFuIHtcbiAgICBpZiAoIXN1cGVyLmNvbmZpcm1FZGl0KHJvdykpIHJldHVybiBmYWxzZTtcbiAgICBpZiAocm93LmVkaXRpbmcgJiYgcm93LnZhbGlkYXRvcikge1xuICAgICAgY29uc29sZS53YXJuKCdbdGFibGUtZGF0YXNvdXJjZV0gUm93IHN0aWxsIGhhcyB7ZWRpdGluZzogdHJ1ZX0gYWZ0ZXIgY29uZmlybUVkaXQoKSEgRm9yY2UgZWRpdGluZyB0byBmYWxzZScpO1xuICAgICAgcm93LnZhbGlkYXRvci5kaXNhYmxlKHtvbmx5U2VsZjogdHJ1ZSwgZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXJ0RWRpdChyb3c6IFRhYmxlRWxlbWVudDxUPik6IGJvb2xlYW4ge1xuICAgIGlmICghc3VwZXIuc3RhcnRFZGl0KHJvdykpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoIXJvdy5lZGl0aW5nICYmIHJvdy52YWxpZGF0b3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignW3RhYmxlLWRhdGFzb3VyY2VdIFJvdyBzdGlsbCBoYXMge2VkaXRpbmc6IGZhbHNlfSBhZnRlciBzdGFydEVkaXQoKSEgRm9yY2UgZWRpdGluZycpO1xuICAgICAgcm93LnZhbGlkYXRvci5lbmFibGUoe29ubHlTZWxmOiB0cnVlLCBlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSwgbWVzc2FnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2FkUmVzdWx0PFQ+PiB7XG4gICAgY29uc3QgZXJyb3JNc2cgPSBlcnJvciAmJiBlcnJvci5tZXNzYWdlIHx8IGVycm9yO1xuICAgIGNvbnNvbGUuZXJyb3IoYFt0YWJsZS1kYXRhc291cmNlXSBTZXJ2aWNlICR7dGhpcy5fZW50aXR5TmFtZX0gc2VudCBlcnJvcjogJHtlcnJvck1zZ31gLCBlcnJvcik7XG4gICAgdGhpcy5tYXJrQXNMb2FkZWQoKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSB8fCBlcnJvck1zZyk7XG4gIH1cblxuICBoYW5kbGVTZXJ2aWNlRXJyb3IoZXJyb3I6IGFueSkge1xuICAgIGNvbnN0IGVycm9yTXNnID0gZXJyb3IgJiYgZXJyb3IubWVzc2FnZSB8fCBlcnJvcjtcbiAgICBjb25zb2xlLmVycm9yKGBbdGFibGUtZGF0YXNvdXJjZV0gU2VydmljZSAke3RoaXMuX2VudGl0eU5hbWV9IHNlbnQgZXJyb3I6ICR7ZXJyb3JNc2d9YCwgZXJyb3IpO1xuICAgIHRoaXMubWFya0FzTG9hZGVkKCk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBkZWxldGUoaWQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIC8vIElmIG5ldyByb3c6IG5vdCBuZWVkIHRvIHByb3BhZ2F0ZSB0byB0aGUgZGF0YVNlcnZpY2VcbiAgICBpZiAoaWQgPT09IC0xKSB7XG4gICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKGlkKTtcbiAgICB9XG5cbiAgICBjb25zdCByb3cgPSB0aGlzLmdldFJvdyhpZCk7XG4gICAgaWYgKCFyb3cpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFt0YWJsZS1kYXRhc291cmNlXSBSb3cgdG8gZGVsZXRlIHdpdGggaWQ9JHtpZH0gbm90IGZvdW5kYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tYXJrQXNMb2FkaW5nKCk7XG5cbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmRlbGV0ZUFsbChbcm93LmN1cnJlbnREYXRhXSwgdGhpcy5zZXJ2aWNlT3B0aW9ucylcbiAgICAgIC5jYXRjaChlcnIgPT4gdGhpcy5oYW5kbGVTZXJ2aWNlRXJyb3IoZXJyKSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgLy8gbWFrZSBzdXJlIHJvdyBoYXMgYmVlbiBkZWxldGVkIChiZWNhdXNlIEdyYXBRSGwgY2FjaGUgcmVtb3ZlIGNhbiBmYWlsZWQpXG4gICAgICAgICAgY29uc3QgcHJlc2VudCA9IHRoaXMuZ2V0Um93KGlkKSA9PT0gcm93O1xuICAgICAgICAgIGlmIChwcmVzZW50KSBzdXBlci5kZWxldGUoaWQpO1xuXG4gICAgICAgICAgdGhpcy5tYXJrQXNMb2FkZWQoKTtcbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKHJvd3M6IFRhYmxlRWxlbWVudDxUPltdKTogUHJvbWlzZTxhbnk+IHtcblxuICAgIHRoaXMubWFya0FzTG9hZGluZygpO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0RGF0YUZyb21Sb3dzKHJvd3MpO1xuXG4gICAgdHJ5IHtcblxuICAgICAgLy8gQ2FsbCBzZXJ2aWNlIGRlbGV0aW9uXG4gICAgICBhd2FpdCB0aGlzLmRhdGFTZXJ2aWNlLmRlbGV0ZUFsbChkYXRhLCB0aGlzLnNlcnZpY2VPcHRpb25zKTtcblxuICAgICAgLy8gV29ya2Fyb3VuZCwgdG8gYmUgc3VyZSBhbGwgcm93cyBoYXZlIGJlZW4gZGVsZXRlZFxuICAgICAgLy8gU29tZXRpbWUsIHRoZSBzZXJ2aWNlIG1pc3MgZGVsZXRpb24sIG9yIEdyYXBoUWwgY2FjaGUgcmVtb3ZlIGZhaWxlZC5cbiAgICAgIC8vIEluIHRoaXMgY2FzZSwgYXBwbHkgbWlzc2luZyBkZWxldGlvbiB1c2luZyB0aGUgc3VwZXIuZGVsZXRlKCkgZnVuY3Rpb25cbiAgICAgIGNvbnN0IHJvd05vdERlbGV0ZWQgPSB0aGlzLmdldFJvd3MoKS5maWx0ZXIocm93ID0+IHJvd3MuaW5jbHVkZXMocm93KSk7XG4gICAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHJvd05vdERlbGV0ZWQpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgW3RhYmxlLWRhdGFzb3VyY2VdIEZvcmNlIGRlbGV0aW9uIG9mICR7cm93Tm90RGVsZXRlZC5sZW5ndGh9IHJvd3MhIFBsZWFzZSBjaGVjayB0aGF0IGRhdGEgc2VydmljZSB1cGRhdGUgdGhlIGNhY2hlLCBhZnRlciBkZWxldGlvbmApO1xuICAgICAgICByb3dOb3REZWxldGVkXG4gICAgICAgICAgLy8gU3RhcnQgYXQgdGhlIGVuZFxuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmlkID4gYi5pZCA/IC0xIDogMSlcbiAgICAgICAgICAuZm9yRWFjaChyID0+IHN1cGVyLmRlbGV0ZShyLmlkKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIEhhbmRsZSBzZXJ2aWNlIGVycm9yXG4gICAgICB0aGlzLmhhbmRsZVNlcnZpY2VFcnJvcihlcnIpO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um93KGlkOiBudW1iZXIpOiBUYWJsZUVsZW1lbnQ8VD4ge1xuICAgIHJldHVybiBzdXBlci5nZXRSb3coaWQpO1xuICB9XG5cbiAgZ2V0Um93cygpOiBUYWJsZUVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIHRoaXMucm93c1N1YmplY3QuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGhhc1NvbWVFZGl0aW5nUm93KCkge1xuICAgIHJldHVybiAodGhpcy5yb3dzU3ViamVjdC52YWx1ZSB8fCBbXSkuc29tZShyb3cgPT4gcm93LmVkaXRpbmcpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlTmV3KGluc2VydEF0PzogbnVtYmVyLCBvcHRpb25zID0ge2VkaXRpbmc6IHRydWV9KTogUHJvbWlzZTxUYWJsZUVsZW1lbnQ8VD58dW5kZWZpbmVkPiB7XG4gICAgaWYgKHRoaXMuX2NyZWF0aW5nKSByZXR1cm47IC8vIEF2b2lkIG11bHRpcGxlIGNhbGwgKHNob3VsZCBuZXZlciBvY2N1cilcblxuICAgIHRoaXMuX2NyZWF0aW5nID0gdHJ1ZTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByb3cgPSBhd2FpdCBzdXBlci5jcmVhdGVOZXcoaW5zZXJ0QXQsIG9wdGlvbnMpO1xuICAgICAgaWYgKCFyb3cpIHJldHVybjtcblxuICAgICAgaWYgKHRoaXMuY29uZmlnPy5vblJvd0NyZWF0ZWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpZy5vblJvd0NyZWF0ZWQocm93KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSAge1xuICAgICAgICAgIC8vIExvZywgdGhlbiBjb250aW51ZVxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyICYmIGVyci5tZXNzYWdlIHx8IGVyciwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcm93O1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX2NyZWF0aW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGF0YSgpOiBUW10ge1xuICAgIGNvbnN0IHJvd3MgPSB0aGlzLmdldFJvd3MoKTtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRhRnJvbVJvd3Mocm93cyk7XG4gIH1cblxuICBhc3luYyBmZXRjaE1vcmUob3B0cz86IHsgZW1pdEV2ZW50OiBib29sZWFuIH0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIXRoaXMuX2ZldGNoTW9yZUZuKSByZXR1cm4gZmFsc2U7IC8vIEF2b2lkIG11bHRpcGxlIGNhbGxcbiAgICBpZiAodGhpcy5oYXNTb21lRWRpdGluZ1JvdygpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYENhbm5vdCBmZXRjaCBtb3JlICR7dGhpcy5fZW50aXR5TmFtZX0gYmVjYXVzZSBzb21lIHJvdykgc3RpbGwgZWRpdGluZ2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zb2xlLmRlYnVnKGBXaWxsIGZldGNoaW5nIG1vcmUgcm93KHMpIHN0aWxsLi4uYCk7XG5cbiAgICAvLyBGb3JnZXQgdGhlIGZldGNoTW9yZSBmdW5jdGlvbiwgdG8gYXZvaWQgbXVsdGlwbGUgY2FsbFxuICAgIGNvbnN0IGZldGNoTW9yZUZuID0gdGhpcy5fZmV0Y2hNb3JlRm47XG4gICAgdGhpcy5fZmV0Y2hNb3JlRm4gPSBudWxsO1xuXG4gICAgLy8gRmV0Y2ggbmV4dCBwYWdlXG4gICAgY29uc3QgcmVzOiBMb2FkUmVzdWx0PFQ+ID0gYXdhaXQgZmV0Y2hNb3JlRm4oKTtcblxuICAgIC8vIFNraXAgaWYgZW1wdHkgKG5vIG1vcmUgZGF0YSlcbiAgICBpZiAoaXNFbXB0eUFycmF5KHJlcz8uZGF0YSkpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIFVwZGF0ZSB0aGUgZGF0YSBzb3VyY2VcbiAgICBzdXBlci51cGRhdGVEYXRhc291cmNlKCh0aGlzLmN1cnJlbnREYXRhIHx8IFtdKS5jb25jYXQoLi4ucmVzLmRhdGEpLCBvcHRzKTtcblxuICAgIC8vIFJlbWVtYmVyIGZldGNoTW9yZVxuICAgIHRoaXMuX2ZldGNoTW9yZUZuID0gcmVzLmZldGNoTW9yZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2QgLS0gKi9cblxuICBtYXJrQXNMb2FkaW5nKCkge1xuICAgIGlmICh0aGlzLmxvYWRpbmdTdWJqZWN0LnZhbHVlICE9PSB0cnVlKSB7XG4gICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgbWFya0FzTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLmxvYWRpbmdTdWJqZWN0LnZhbHVlICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,59 +0,0 @@
1
- import { Directive, Injector, Input } from '@angular/core';
2
- import { ValidatorService } from '@e-is/ngx-material-table';
3
- import { EntitiesTableDataSource } from './entities-table-datasource.class';
4
- import { AppTable } from './table.class';
5
- import { InMemoryEntitiesService } from '../../shared/services/memory-entity-service.class';
6
- // @dynamic
7
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
8
- export class AppInMemoryTable extends AppTable {
9
- constructor(injector, columns, dataType, memoryDataService, validatorService, options, filter) {
10
- super(injector, columns, new EntitiesTableDataSource(dataType, memoryDataService, validatorService, options), filter);
11
- this.columns = columns;
12
- this.dataType = dataType;
13
- this.memoryDataService = memoryDataService;
14
- this.validatorService = validatorService;
15
- this.canEdit = false;
16
- this.canDelete = false;
17
- this.autoLoad = false; // waiting value to be set
18
- }
19
- set value(data) {
20
- this.setValue(data);
21
- }
22
- get value() {
23
- return this.memoryDataService.value;
24
- }
25
- ngOnInit() {
26
- super.ngOnInit();
27
- }
28
- setValue(value, opts) {
29
- // Reset previous error
30
- if (this.error) {
31
- this.setError(null);
32
- this.markForCheck();
33
- }
34
- this.memoryDataService.value = value;
35
- if (!opts || opts.emitEvent !== false) {
36
- this.onRefresh.emit();
37
- }
38
- }
39
- equals(t1, t2) {
40
- return this.memoryDataService.equals(t1, t2);
41
- }
42
- }
43
- AppInMemoryTable.decorators = [
44
- { type: Directive }
45
- ];
46
- AppInMemoryTable.ctorParameters = () => [
47
- { type: Injector },
48
- { type: Array },
49
- { type: Function },
50
- { type: InMemoryEntitiesService },
51
- { type: ValidatorService },
52
- { type: undefined },
53
- { type: undefined }
54
- ];
55
- AppInMemoryTable.propDecorators = {
56
- canEdit: [{ type: Input }],
57
- canDelete: [{ type: Input }]
58
- };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LXRhYmxlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3RhYmxlL21lbW9yeS10YWJsZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFnQyx1QkFBdUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFMUYsV0FBVztBQUVYLGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLGdCQUlsQixTQUFRLFFBQWtCO0lBYTVCLFlBQ0UsUUFBa0IsRUFDUixPQUFpQixFQUNqQixRQUFxQixFQUNyQixpQkFBb0QsRUFDcEQsZ0JBQWtDLEVBQzVDLE9BQThDLEVBQzlDLE1BQVU7UUFFVixLQUFLLENBQUMsUUFBUSxFQUNaLE9BQU8sRUFDUCxJQUFJLHVCQUF1QixDQUFXLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsRUFDN0YsTUFBTSxDQUFDLENBQUM7UUFWQSxZQUFPLEdBQVAsT0FBTyxDQUFVO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQztRQUNwRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBaEJyQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUF3QnpCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsMEJBQTBCO0lBQ25ELENBQUM7SUF2QkQsSUFBSSxLQUFLLENBQUMsSUFBUztRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQW1CRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVSxFQUFFLElBQThCO1FBQ2pELHVCQUF1QjtRQUN2QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7WUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFUyxNQUFNLENBQUMsRUFBSyxFQUFFLEVBQUs7UUFDM0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDOzs7WUF0REYsU0FBUzs7O1lBUlMsUUFBUTs7O1lBS25CLHVCQUF1QjtZQUp2QixnQkFBZ0I7Ozs7O3NCQWVyQixLQUFLO3dCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5qZWN0b3IsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VmFsaWRhdG9yU2VydmljZX0gZnJvbSAnQGUtaXMvbmd4LW1hdGVyaWFsLXRhYmxlJztcbmltcG9ydCB7RW50aXRpZXNUYWJsZURhdGFTb3VyY2VDb25maWcsIEVudGl0aWVzVGFibGVEYXRhU291cmNlfSBmcm9tICcuL2VudGl0aWVzLXRhYmxlLWRhdGFzb3VyY2UuY2xhc3MnO1xuaW1wb3J0IHtBcHBUYWJsZX0gZnJvbSAnLi90YWJsZS5jbGFzcyc7XG5pbXBvcnQge0lFbnRpdHl9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQge0luTWVtb3J5RW50aXRpZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzJztcblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwSW5NZW1vcnlUYWJsZTxcbiAgVCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LFxuICBGID0gYW55LFxuICBJRCA9IG51bWJlclxuICA+IGV4dGVuZHMgQXBwVGFibGU8VCwgRiwgSUQ+IHtcblxuICBASW5wdXQoKSBjYW5FZGl0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhbkRlbGV0ZSA9IGZhbHNlO1xuXG4gIHNldCB2YWx1ZShkYXRhOiBUW10pIHtcbiAgICB0aGlzLnNldFZhbHVlKGRhdGEpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMubWVtb3J5RGF0YVNlcnZpY2UudmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBjb2x1bW5zOiBzdHJpbmdbXSxcbiAgICBwcm90ZWN0ZWQgZGF0YVR5cGU6IG5ldyAoKSA9PiBULFxuICAgIHByb3RlY3RlZCBtZW1vcnlEYXRhU2VydmljZTogSW5NZW1vcnlFbnRpdGllc1NlcnZpY2U8VCwgRiwgSUQ+LFxuICAgIHByb3RlY3RlZCB2YWxpZGF0b3JTZXJ2aWNlOiBWYWxpZGF0b3JTZXJ2aWNlLFxuICAgIG9wdGlvbnM/OiBFbnRpdGllc1RhYmxlRGF0YVNvdXJjZUNvbmZpZzxULCBJRD4sXG4gICAgZmlsdGVyPzogRlxuICApIHtcbiAgICBzdXBlcihpbmplY3RvcixcbiAgICAgIGNvbHVtbnMsXG4gICAgICBuZXcgRW50aXRpZXNUYWJsZURhdGFTb3VyY2U8VCwgRiwgSUQ+KGRhdGFUeXBlLCBtZW1vcnlEYXRhU2VydmljZSwgdmFsaWRhdG9yU2VydmljZSwgb3B0aW9ucyksXG4gICAgICBmaWx0ZXIpO1xuXG4gICAgdGhpcy5hdXRvTG9hZCA9IGZhbHNlOyAvLyB3YWl0aW5nIHZhbHVlIHRvIGJlIHNldFxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBUW10sIG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIC8vIFJlc2V0IHByZXZpb3VzIGVycm9yXG4gICAgaWYgKHRoaXMuZXJyb3IpIHtcbiAgICAgIHRoaXMuc2V0RXJyb3IobnVsbCk7XG4gICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgICB0aGlzLm1lbW9yeURhdGFTZXJ2aWNlLnZhbHVlID0gdmFsdWU7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5vblJlZnJlc2guZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBlcXVhbHModDE6IFQsIHQyOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWVtb3J5RGF0YVNlcnZpY2UuZXF1YWxzKHQxLCB0Mik7XG4gIH1cbn1cblxuIl19