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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (739) hide show
  1. package/doc/build.md +2 -2
  2. package/doc/changelog.md +8 -0
  3. package/esm2020/public_api.mjs +278 -0
  4. package/esm2020/public_test_api.mjs +46 -0
  5. package/esm2020/src/app/admin/admin-routing.module.mjs +41 -0
  6. package/esm2020/src/app/admin/admin.module.mjs +34 -0
  7. package/esm2020/src/app/admin/services/filter/person.filter.mjs +59 -0
  8. package/esm2020/src/app/admin/services/person.service.mjs +161 -0
  9. package/esm2020/src/app/admin/services/validator/person.validator.mjs +34 -0
  10. package/esm2020/src/app/admin/users/list/users.mjs +233 -0
  11. package/esm2020/src/app/admin/users/list/users.module.mjs +58 -0
  12. package/esm2020/src/app/core/about/modal-about.mjs +71 -0
  13. package/esm2020/src/app/core/account/account.mjs +230 -0
  14. package/esm2020/src/app/core/auth/form/form-auth.mjs +131 -0
  15. package/esm2020/src/app/core/auth/modal/modal-auth.mjs +72 -0
  16. package/esm2020/src/app/core/core.module.mjs +223 -0
  17. package/esm2020/src/app/core/core.testing.module.mjs +86 -0
  18. package/esm2020/src/app/core/form/editor.class.mjs +672 -0
  19. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +407 -0
  20. package/esm2020/src/app/core/form/entity-editor.class.mjs +646 -0
  21. package/esm2020/src/app/core/form/entity-metadata.component.mjs +25 -0
  22. package/esm2020/src/app/core/form/form-buttons-bar.component.mjs +71 -0
  23. package/esm2020/src/app/core/form/form.class.mjs +337 -0
  24. package/esm2020/src/app/core/form/form.utils.mjs +299 -0
  25. package/esm2020/src/app/core/form/list.form.mjs +222 -0
  26. package/esm2020/src/app/core/form/properties/properties.form.mjs +129 -0
  27. package/esm2020/src/app/core/form/properties/property.validator.mjs +23 -0
  28. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +90 -0
  29. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +39 -0
  30. package/esm2020/src/app/core/graphql/graphql.module.mjs +22 -0
  31. package/esm2020/src/app/core/graphql/graphql.service.mjs +730 -0
  32. package/esm2020/src/app/core/graphql/graphql.utils.mjs +117 -0
  33. package/esm2020/src/app/core/home/home.mjs +257 -0
  34. package/esm2020/src/app/core/icon/icon.component.mjs +41 -0
  35. package/esm2020/src/app/core/icon/icon.module.mjs +29 -0
  36. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +337 -0
  37. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +33 -0
  38. package/esm2020/src/app/core/menu/menu.component.mjs +317 -0
  39. package/{esm2015/src/app/core/menu/menu.model.js → esm2020/src/app/core/menu/menu.model.mjs} +0 -0
  40. package/esm2020/src/app/core/menu/menu.module.mjs +45 -0
  41. package/{esm2015/src/app/core/menu/menu.service.js → esm2020/src/app/core/menu/menu.service.mjs} +9 -7
  42. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +27 -0
  43. package/esm2020/src/app/core/peer/select-peer.modal.mjs +130 -0
  44. package/esm2020/src/app/core/peer/select-peer.module.mjs +35 -0
  45. package/esm2020/src/app/core/register/confirm/confirm.mjs +81 -0
  46. package/esm2020/src/app/core/register/form/form-register.mjs +181 -0
  47. package/esm2020/src/app/core/register/modal/modal-register.mjs +52 -0
  48. package/esm2020/src/app/core/register/register.module.mjs +42 -0
  49. package/esm2020/src/app/core/services/account.service.mjs +1112 -0
  50. package/esm2020/src/app/core/services/auth-guard.service.mjs +71 -0
  51. package/esm2020/src/app/core/services/base-entity-service.class.mjs +432 -0
  52. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +219 -0
  53. package/{esm2015/src/app/core/services/base58.js → esm2020/src/app/core/services/base58.mjs} +0 -0
  54. package/{esm2015/src/app/core/services/config/core.config.js → esm2020/src/app/core/services/config/core.config.mjs} +0 -0
  55. package/esm2020/src/app/core/services/config.service.mjs +354 -0
  56. package/{esm2015/src/app/core/services/crypto.service.js → esm2020/src/app/core/services/crypto.service.mjs} +7 -5
  57. package/{esm2015/src/app/core/services/errors.js → esm2020/src/app/core/services/errors.mjs} +0 -0
  58. package/esm2020/src/app/core/services/local-settings.service.mjs +442 -0
  59. package/esm2020/src/app/core/services/model/account.model.mjs +50 -0
  60. package/esm2020/src/app/core/services/model/config.model.mjs +89 -0
  61. package/esm2020/src/app/core/services/model/department.model.mjs +30 -0
  62. package/esm2020/src/app/core/services/model/entity.decorators.mjs +107 -0
  63. package/esm2020/src/app/core/services/model/entity.model.mjs +242 -0
  64. package/{esm2015/src/app/core/services/model/filter.model.js → esm2020/src/app/core/services/model/filter.model.mjs} +0 -0
  65. package/{esm2015/src/app/core/services/model/history.model.js → esm2020/src/app/core/services/model/history.model.mjs} +0 -0
  66. package/{esm2015/src/app/core/services/model/model.enum.js → esm2020/src/app/core/services/model/model.enum.mjs} +0 -0
  67. package/esm2020/src/app/core/services/model/peer.model.mjs +68 -0
  68. package/esm2020/src/app/core/services/model/person.model.mjs +83 -0
  69. package/esm2020/src/app/core/services/model/referential.model.mjs +145 -0
  70. package/esm2020/src/app/core/services/model/settings.model.mjs +75 -0
  71. package/esm2020/src/app/core/services/network.service.mjs +595 -0
  72. package/esm2020/src/app/core/services/network.utils.mjs +16 -0
  73. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +38 -0
  74. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +23 -0
  75. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +23 -0
  76. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +37 -0
  77. package/esm2020/src/app/core/services/platform.service.mjs +476 -0
  78. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +422 -0
  79. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +449 -0
  80. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +23 -0
  81. package/esm2020/src/app/core/services/testing/referential.validator.mjs +45 -0
  82. package/esm2020/src/app/core/services/validator/account.validator.mjs +52 -0
  83. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +47 -0
  84. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +66 -0
  85. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +29 -0
  86. package/esm2020/src/app/core/settings/settings.page.mjs +290 -0
  87. package/esm2020/src/app/core/table/actions-column.component.mjs +96 -0
  88. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +394 -0
  89. package/esm2020/src/app/core/table/memory-table.class.mjs +53 -0
  90. package/esm2020/src/app/core/table/table-select-columns.component.mjs +43 -0
  91. package/esm2020/src/app/core/table/table.class.mjs +1666 -0
  92. package/esm2020/src/app/core/table/table.utils.mjs +13 -0
  93. package/esm2020/src/app/core/table/testing/table.testing.mjs +264 -0
  94. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +38 -0
  95. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +37 -0
  96. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +45 -0
  97. package/esm2020/src/app/core/text-popover/text-form.component.mjs +84 -0
  98. package/esm2020/src/app/core/text-popover/text-popover.component.mjs +92 -0
  99. package/esm2020/src/app/shared/alerts.mjs +238 -0
  100. package/esm2020/src/app/shared/audio/audio.mjs +201 -0
  101. package/esm2020/src/app/shared/audio/audio.testing.mjs +31 -0
  102. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +45 -0
  103. package/esm2020/src/app/shared/capacitor/keyboard.mjs +40 -0
  104. package/esm2020/src/app/shared/capacitor/plugins.mjs +9 -0
  105. package/{esm2015/src/app/shared/constants.js → esm2020/src/app/shared/constants.mjs} +2 -1
  106. package/esm2020/src/app/shared/dates.mjs +134 -0
  107. package/esm2020/src/app/shared/debug/debug.component.mjs +39 -0
  108. package/esm2020/src/app/shared/debug/debug.module.mjs +44 -0
  109. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +92 -0
  110. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +30 -0
  111. package/esm2020/src/app/shared/directives/directives.module.mjs +43 -0
  112. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +53 -0
  113. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +31 -0
  114. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +59 -0
  115. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +40 -0
  116. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +17 -0
  117. package/esm2020/src/app/shared/events.mjs +64 -0
  118. package/esm2020/src/app/shared/file/csv.utils.mjs +74 -0
  119. package/esm2020/src/app/shared/file/file.service.mjs +117 -0
  120. package/esm2020/src/app/shared/file/file.utils.mjs +113 -0
  121. package/esm2020/src/app/shared/file/images.utils.mjs +161 -0
  122. package/{esm2015/src/app/shared/file/uri.utils.js → esm2020/src/app/shared/file/uri.utils.mjs} +0 -0
  123. package/{esm2015/src/app/shared/focusable.js → esm2020/src/app/shared/focusable.mjs} +0 -0
  124. package/esm2020/src/app/shared/form/field.component.mjs +244 -0
  125. package/{esm2015/src/app/shared/form/field.model.js → esm2020/src/app/shared/form/field.model.mjs} +1 -1
  126. package/esm2020/src/app/shared/form/loading-spinner.mjs +36 -0
  127. package/esm2020/src/app/shared/forms.mjs +374 -0
  128. package/esm2020/src/app/shared/functions.mjs +430 -0
  129. package/{esm2015/src/app/shared/gesture/gesture-config.js → esm2020/src/app/shared/gesture/gesture-config.mjs} +7 -5
  130. package/esm2020/src/app/shared/gesture/hammer.utils.mjs +2 -0
  131. package/{esm2015/src/app/shared/graph/colors.utils.js → esm2020/src/app/shared/graph/colors.utils.mjs} +0 -0
  132. package/esm2020/src/app/shared/graph/graph-colors.mjs +254 -0
  133. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +57 -0
  134. package/esm2020/src/app/shared/help/help.modal.mjs +53 -0
  135. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +23 -0
  136. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +84 -0
  137. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +42 -0
  138. package/esm2020/src/app/shared/http/http.utils.mjs +52 -0
  139. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +279 -0
  140. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +46 -0
  141. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +27 -0
  142. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +89 -0
  143. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +33 -0
  144. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +56 -0
  145. package/esm2020/src/app/shared/image/image.model.mjs +2 -0
  146. package/esm2020/src/app/shared/image/image.module.mjs +29 -0
  147. package/esm2020/src/app/shared/image/image.service.mjs +99 -0
  148. package/{esm2015/src/app/shared/inputs.js → esm2020/src/app/shared/inputs.mjs} +4 -4
  149. package/{esm2015/src/app/shared/interceptors/progess.interceptor.js → esm2020/src/app/shared/interceptors/progess.interceptor.mjs} +0 -0
  150. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +47 -0
  151. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +836 -0
  152. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +78 -0
  153. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +19 -0
  154. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +205 -0
  155. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +157 -0
  156. package/esm2020/src/app/shared/material/badge/badge.module.mjs +32 -0
  157. package/esm2020/src/app/shared/material/badge/badge.test.mjs +26 -0
  158. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +68 -0
  159. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +253 -0
  160. package/esm2020/src/app/shared/material/chips/chips.module.mjs +76 -0
  161. package/esm2020/src/app/shared/material/chips/material.chips.mjs +691 -0
  162. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +136 -0
  163. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +91 -0
  164. package/esm2020/src/app/shared/material/datetime/material.date.mjs +388 -0
  165. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +327 -0
  166. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +434 -0
  167. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +110 -0
  168. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +111 -0
  169. package/esm2020/src/app/shared/material/duration/duration.module.mjs +67 -0
  170. package/{esm2015/src/app/shared/material/duration/duration.utils.js → esm2020/src/app/shared/material/duration/duration.utils.mjs} +0 -0
  171. package/esm2020/src/app/shared/material/duration/material.duration.mjs +257 -0
  172. package/esm2020/src/app/shared/material/latlong/latlong.utils.mjs +266 -0
  173. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +381 -0
  174. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +67 -0
  175. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +74 -0
  176. package/{esm2015/src/app/shared/material/material.animations.js → esm2020/src/app/shared/material/material.animations.mjs} +0 -0
  177. package/esm2020/src/app/shared/material/material.module.mjs +224 -0
  178. package/esm2020/src/app/shared/material/material.testing.module.mjs +145 -0
  179. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +98 -0
  180. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +80 -0
  181. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +190 -0
  182. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +17 -0
  183. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +162 -0
  184. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +37 -0
  185. package/{esm2015/src/app/shared/material/numpad/numpad.model.js → esm2020/src/app/shared/material/numpad/numpad.model.mjs} +1 -1
  186. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +60 -0
  187. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +46 -0
  188. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +42 -0
  189. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +22 -0
  190. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +334 -0
  191. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +51 -0
  192. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +65 -0
  193. package/esm2020/src/app/shared/observables.mjs +96 -0
  194. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +135 -0
  195. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +23 -0
  196. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +49 -0
  197. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +42 -0
  198. package/{esm2015/src/app/shared/pipes/date-from-now.pipe.js → esm2020/src/app/shared/pipes/date-from-now.pipe.mjs} +13 -12
  199. package/{esm2015/src/app/shared/pipes/duration.pipe.js → esm2020/src/app/shared/pipes/duration.pipe.mjs} +13 -12
  200. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +62 -0
  201. package/esm2020/src/app/shared/pipes/form.pipes.mjs +187 -0
  202. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +48 -0
  203. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +46 -0
  204. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +63 -0
  205. package/esm2020/src/app/shared/pipes/math.pipes.mjs +59 -0
  206. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +21 -0
  207. package/{esm2015/src/app/shared/pipes/number-format.pipe.js → esm2020/src/app/shared/pipes/number-format.pipe.mjs} +14 -9
  208. package/esm2020/src/app/shared/pipes/pipes.module.mjs +210 -0
  209. package/esm2020/src/app/shared/pipes/property.pipes.mjs +96 -0
  210. package/esm2020/src/app/shared/pipes/string.pipes.mjs +69 -0
  211. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +43 -0
  212. package/esm2020/src/app/shared/platforms.mjs +49 -0
  213. package/esm2020/src/app/shared/services/entity-service.class.mjs +7 -0
  214. package/esm2020/src/app/shared/services/job.utils.mjs +92 -0
  215. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +331 -0
  216. package/esm2020/src/app/shared/services/progress-bar.service.mjs +32 -0
  217. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +119 -0
  218. package/esm2020/src/app/shared/services/startable-service.class.mjs +105 -0
  219. package/esm2020/src/app/shared/services/storage/storage.service.mjs +132 -0
  220. package/esm2020/src/app/shared/services/storage/storage.utils.mjs +13 -0
  221. package/esm2020/src/app/shared/services/translate-context.service.mjs +81 -0
  222. package/esm2020/src/app/shared/services/validator-service.class.mjs +2 -0
  223. package/esm2020/src/app/shared/services.mjs +62 -0
  224. package/esm2020/src/app/shared/shared-routing.module.mjs +63 -0
  225. package/esm2020/src/app/shared/shared.module.mjs +208 -0
  226. package/esm2020/src/app/shared/shared.testing.module.mjs +76 -0
  227. package/esm2020/src/app/shared/testing/tests.page.mjs +33 -0
  228. package/esm2020/src/app/shared/toast/toast.testing.mjs +51 -0
  229. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +45 -0
  230. package/esm2020/src/app/shared/toast/toasts.mjs +144 -0
  231. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +58 -0
  232. package/esm2020/src/app/shared/toolbar/toolbar.mjs +226 -0
  233. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +53 -0
  234. package/{esm2015/src/app/shared/types.js → esm2020/src/app/shared/types.mjs} +0 -0
  235. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +57 -0
  236. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +45 -0
  237. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +97 -0
  238. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +204 -0
  239. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +20 -0
  240. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +104 -0
  241. package/esm2020/src/app/shared/validator/validators.mjs +544 -0
  242. package/{esm2015/src/app/shared/version/versions.js → esm2020/src/app/shared/version/versions.mjs} +0 -0
  243. package/esm2020/src/app/social/job/job.model.mjs +26 -0
  244. package/esm2020/src/app/social/job/job.module.mjs +35 -0
  245. package/esm2020/src/app/social/job/job.service.mjs +71 -0
  246. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +210 -0
  247. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +22 -0
  248. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +53 -0
  249. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +55 -0
  250. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +35 -0
  251. package/esm2020/src/app/social/message/message.form.mjs +81 -0
  252. package/esm2020/src/app/social/message/message.modal.mjs +93 -0
  253. package/esm2020/src/app/social/message/message.model.mjs +65 -0
  254. package/esm2020/src/app/social/message/message.module.mjs +35 -0
  255. package/esm2020/src/app/social/message/message.service.mjs +84 -0
  256. package/{esm2015/src/app/social/social.errors.js → esm2020/src/app/social/social.errors.mjs} +0 -0
  257. package/esm2020/src/app/social/social.module.mjs +47 -0
  258. package/esm2020/src/app/social/social.testing.module.mjs +51 -0
  259. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +108 -0
  260. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +212 -0
  261. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +228 -0
  262. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +107 -0
  263. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +35 -0
  264. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +111 -0
  265. package/esm2020/src/app/social/user-event/user-event.model.mjs +2 -0
  266. package/esm2020/src/app/social/user-event/user-event.module.mjs +39 -0
  267. package/esm2020/src/app/social/user-event/user-event.service.mjs +486 -0
  268. package/{esm2015/src/app/vendor.js → esm2020/src/app/vendor.mjs} +3 -3
  269. package/esm2020/src/environments/environment.class.mjs +5 -0
  270. package/esm2020/src/environments/environment.mjs +86 -0
  271. package/esm2020/sumaris-net.ngx-components.mjs +5 -0
  272. package/fesm2015/sumaris-net.ngx-components.mjs +33173 -0
  273. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -0
  274. package/fesm2020/sumaris-net.ngx-components.mjs +32440 -0
  275. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -0
  276. package/index.d.ts +5 -0
  277. package/package.json +27 -32
  278. package/public_api.d.ts +29 -31
  279. package/public_test_api.d.ts +37 -0
  280. package/resources/README.md +8 -0
  281. package/src/app/admin/admin-routing.module.d.ts +7 -0
  282. package/src/app/admin/admin.module.d.ts +7 -0
  283. package/src/app/admin/services/person.service.d.ts +3 -0
  284. package/src/app/admin/services/validator/person.validator.d.ts +8 -5
  285. package/src/app/admin/users/list/users.d.ts +11 -7
  286. package/src/app/admin/users/list/users.module.d.ts +14 -0
  287. package/src/app/core/about/modal-about.d.ts +3 -0
  288. package/src/app/core/account/account.d.ts +11 -8
  289. package/src/app/core/auth/form/form-auth.d.ts +6 -3
  290. package/src/app/core/auth/modal/modal-auth.d.ts +3 -0
  291. package/src/app/core/core.module.d.ts +36 -0
  292. package/src/app/core/core.testing.module.d.ts +10 -0
  293. package/src/app/core/form/editor.class.d.ts +6 -1
  294. package/src/app/core/form/entity-editor-modal.class.d.ts +7 -4
  295. package/src/app/core/form/entity-editor.class.d.ts +4 -1
  296. package/src/app/core/form/entity-metadata.component.d.ts +3 -0
  297. package/src/app/core/form/form-buttons-bar.component.d.ts +3 -0
  298. package/src/app/core/form/form.class.d.ts +12 -9
  299. package/src/app/core/form/form.utils.d.ts +5 -5
  300. package/src/app/core/form/list.form.d.ts +10 -7
  301. package/src/app/core/form/properties/properties.form.d.ts +43 -0
  302. package/src/app/core/form/properties/property.validator.d.ts +13 -0
  303. package/src/app/core/form/properties/testing/properties-form.test.d.ts +19 -0
  304. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
  305. package/src/app/core/graphql/graphql.module.d.ts +5 -0
  306. package/src/app/core/graphql/graphql.service.d.ts +9 -2
  307. package/src/app/core/graphql/graphql.utils.d.ts +8 -0
  308. package/src/app/core/home/home.d.ts +4 -1
  309. package/src/app/core/icon/icon.component.d.ts +5 -2
  310. package/src/app/core/icon/icon.module.d.ts +7 -0
  311. package/src/app/core/install/install-upgrade-card.component.d.ts +5 -2
  312. package/src/app/core/install/install-upgrade-card.module.d.ts +10 -0
  313. package/src/app/core/menu/menu.component.d.ts +7 -5
  314. package/src/app/core/menu/menu.module.d.ts +8 -0
  315. package/src/app/core/menu/menu.service.d.ts +3 -0
  316. package/src/app/core/offline/update-offline-mode-card.component.d.ts +3 -0
  317. package/src/app/core/peer/select-peer.modal.d.ts +7 -4
  318. package/src/app/core/peer/select-peer.module.d.ts +9 -0
  319. package/src/app/core/register/confirm/confirm.d.ts +3 -0
  320. package/src/app/core/register/form/form-register.d.ts +10 -7
  321. package/src/app/core/register/modal/modal-register.d.ts +3 -0
  322. package/src/app/core/register/register.module.d.ts +12 -0
  323. package/src/app/core/services/account.service.d.ts +5 -2
  324. package/src/app/core/services/auth-guard.service.d.ts +3 -0
  325. package/src/app/core/services/base-entity-service.class.d.ts +3 -0
  326. package/src/app/core/services/base-graphql-service.class.d.ts +3 -0
  327. package/src/app/core/services/config.service.d.ts +4 -1
  328. package/src/app/core/services/crypto.service.d.ts +3 -0
  329. package/src/app/core/services/local-settings.service.d.ts +5 -1
  330. package/src/app/core/services/model/referential.model.d.ts +1 -1
  331. package/src/app/core/services/network.service.d.ts +6 -5
  332. package/src/app/core/services/pipes/account.pipes.d.ts +7 -0
  333. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +4 -0
  334. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +4 -0
  335. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +7 -0
  336. package/src/app/core/services/platform.service.d.ts +22 -21
  337. package/src/app/core/services/storage/entities-storage.service.d.ts +5 -2
  338. package/src/app/core/services/storage/entity-store.class.d.ts +3 -3
  339. package/src/app/core/services/testing/referential.validator.d.ts +8 -5
  340. package/src/app/core/services/validator/account.validator.d.ts +6 -3
  341. package/src/app/core/services/validator/base.validator.class.d.ts +8 -5
  342. package/src/app/core/services/validator/local-settings.validator.d.ts +8 -5
  343. package/src/app/core/services/validator/user-settings.validator.d.ts +6 -3
  344. package/src/app/core/settings/settings.page.d.ts +8 -5
  345. package/src/app/core/table/actions-column.component.d.ts +3 -0
  346. package/src/app/core/table/entities-table-datasource.class.d.ts +16 -15
  347. package/src/app/core/table/memory-table.class.d.ts +3 -0
  348. package/src/app/core/table/table-select-columns.component.d.ts +4 -5
  349. package/src/app/core/table/table.class.d.ts +52 -34
  350. package/src/app/core/table/table.utils.d.ts +2 -1
  351. package/src/app/core/table/testing/table.testing.d.ts +13 -15
  352. package/src/app/core/table/testing/table.testing.module.d.ts +9 -0
  353. package/src/app/core/text-popover/testing/text-popover.testing.d.ts +4 -1
  354. package/src/app/core/text-popover/testing/text-popover.testing.module.d.ts +9 -0
  355. package/src/app/core/text-popover/text-form.component.d.ts +7 -4
  356. package/src/app/core/text-popover/text-popover.component.d.ts +3 -0
  357. package/src/app/shared/alerts.d.ts +4 -4
  358. package/src/app/shared/audio/audio.d.ts +20 -11
  359. package/src/app/shared/audio/audio.testing.d.ts +13 -0
  360. package/src/app/shared/audio/audio.testing.module.d.ts +11 -0
  361. package/src/app/shared/capacitor/keyboard.d.ts +16 -0
  362. package/src/app/shared/capacitor/plugins.d.ts +7 -0
  363. package/src/app/shared/constants.d.ts +1 -0
  364. package/src/app/shared/debug/debug.component.d.ts +13 -0
  365. package/src/app/shared/debug/debug.module.d.ts +12 -0
  366. package/src/app/shared/directives/autofocus.directive.d.ts +9 -7
  367. package/src/app/shared/directives/autotitle.directive.d.ts +3 -0
  368. package/src/app/shared/directives/directives.module.d.ts +10 -0
  369. package/src/app/shared/directives/drag-and-drop.directive.d.ts +3 -0
  370. package/src/app/shared/directives/ng-var.directive.d.ts +3 -0
  371. package/src/app/shared/directives/resizable/resizable.component.d.ts +3 -0
  372. package/src/app/shared/directives/resizable/resizable.directive.d.ts +3 -0
  373. package/src/app/shared/directives/resizable/resizable.module.d.ts +6 -0
  374. package/src/app/shared/file/file.service.d.ts +3 -0
  375. package/src/app/shared/file/file.utils.d.ts +1 -1
  376. package/src/app/shared/form/field.component.d.ts +12 -3
  377. package/src/app/shared/form/field.model.d.ts +2 -2
  378. package/src/app/shared/form/loading-spinner.d.ts +3 -0
  379. package/src/app/shared/forms.d.ts +13 -13
  380. package/src/app/shared/gesture/gesture-config.d.ts +3 -0
  381. package/src/app/shared/gesture/hammer.utils.d.ts +11 -11
  382. package/src/app/shared/graph/graph-colors.d.ts +8 -7
  383. package/src/app/shared/guard/component-dirty.guard.d.ts +3 -0
  384. package/src/app/shared/help/help.modal.d.ts +4 -1
  385. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +3 -0
  386. package/src/app/shared/hotkeys/hotkeys.service.d.ts +4 -1
  387. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +9 -0
  388. package/src/app/shared/image/gallery/image-gallery.component.d.ts +77 -0
  389. package/src/app/shared/image/gallery/image-gallery.module.d.ts +12 -0
  390. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +12 -0
  391. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +33 -0
  392. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +15 -0
  393. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +12 -0
  394. package/src/app/shared/image/image.model.d.ts +5 -0
  395. package/src/app/shared/image/image.module.d.ts +8 -0
  396. package/src/app/shared/image/image.service.d.ts +32 -0
  397. package/src/app/shared/inputs.d.ts +3 -3
  398. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +36 -0
  399. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +11 -40
  400. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +19 -0
  401. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +4 -0
  402. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +12 -9
  403. package/src/app/shared/material/badge/badge.directive.d.ts +28 -0
  404. package/src/app/shared/material/badge/badge.module.d.ts +10 -0
  405. package/src/app/shared/material/badge/badge.test.d.ts +12 -0
  406. package/src/app/shared/material/boolean/boolean.module.d.ts +17 -0
  407. package/src/app/shared/material/boolean/material.boolean.d.ts +7 -4
  408. package/src/app/shared/material/chips/chips.module.d.ts +19 -0
  409. package/src/app/shared/material/chips/material.chips.d.ts +11 -8
  410. package/src/app/shared/material/chips/testing/chips.test.d.ts +8 -5
  411. package/src/app/shared/material/datetime/datetime.module.d.ts +22 -0
  412. package/src/app/shared/material/datetime/material.date.d.ts +19 -18
  413. package/src/app/shared/material/datetime/material.dateshort.d.ts +10 -9
  414. package/src/app/shared/material/datetime/material.datetime.d.ts +21 -20
  415. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +11 -9
  416. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +11 -9
  417. package/src/app/shared/material/duration/duration.module.d.ts +16 -0
  418. package/src/app/shared/material/duration/material.duration.d.ts +8 -5
  419. package/src/app/shared/material/latlong/material.latlong.d.ts +8 -5
  420. package/src/app/shared/material/latlong/material.latlong.module.d.ts +17 -0
  421. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +10 -7
  422. package/src/app/shared/material/material.module.d.ts +43 -0
  423. package/src/app/shared/material/material.testing.module.d.ts +19 -0
  424. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +3 -0
  425. package/src/app/shared/material/numpad/numpad.component.d.ts +4 -1
  426. package/src/app/shared/material/numpad/numpad.container.d.ts +5 -2
  427. package/src/app/shared/material/numpad/numpad.content.d.ts +3 -0
  428. package/src/app/shared/material/numpad/numpad.directive.d.ts +4 -1
  429. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +3 -0
  430. package/src/app/shared/material/numpad/numpad.model.d.ts +1 -1
  431. package/src/app/shared/material/numpad/numpad.module.d.ts +14 -0
  432. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +7 -4
  433. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +3 -0
  434. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +3 -0
  435. package/src/app/shared/material/swipe/material.swipe.d.ts +6 -3
  436. package/src/app/shared/material/swipe/swipe.module.d.ts +13 -0
  437. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +7 -4
  438. package/src/app/shared/pipes/arrays.pipe.d.ts +17 -0
  439. package/src/app/shared/pipes/colors.pipe.d.ts +9 -0
  440. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +4 -0
  441. package/src/app/shared/pipes/date-format.pipe.d.ts +4 -0
  442. package/src/app/shared/pipes/date-from-now.pipe.d.ts +4 -0
  443. package/src/app/shared/pipes/duration.pipe.d.ts +4 -0
  444. package/src/app/shared/pipes/file-size.pipe.d.ts +3 -0
  445. package/src/app/shared/pipes/form.pipes.d.ts +18 -5
  446. package/src/app/shared/pipes/highlight.pipe.d.ts +4 -0
  447. package/src/app/shared/pipes/latlong-format.pipe.d.ts +7 -0
  448. package/src/app/shared/pipes/maps.pipe.d.ts +10 -0
  449. package/src/app/shared/pipes/math.pipes.d.ts +10 -0
  450. package/src/app/shared/pipes/ng-init.pipe.d.ts +3 -0
  451. package/src/app/shared/pipes/number-format.pipe.d.ts +4 -0
  452. package/src/app/shared/pipes/pipes.module.d.ts +24 -0
  453. package/src/app/shared/pipes/property.pipes.d.ts +6 -0
  454. package/src/app/shared/pipes/string.pipes.d.ts +11 -0
  455. package/src/app/shared/pipes/translate-context.pipe.d.ts +7 -0
  456. package/src/app/shared/platforms.d.ts +1 -0
  457. package/src/app/shared/services/memory-entity-service.class.d.ts +3 -0
  458. package/src/app/shared/services/progress-bar.service.d.ts +4 -1
  459. package/src/app/shared/services/startable-observable-service.class.d.ts +1 -1
  460. package/src/app/shared/services/startable-service.class.d.ts +1 -1
  461. package/src/app/shared/services/storage/storage.service.d.ts +23 -0
  462. package/src/app/shared/services/storage/storage.utils.d.ts +19 -0
  463. package/src/app/shared/services/translate-context.service.d.ts +3 -0
  464. package/src/app/shared/services/validator-service.class.d.ts +2 -2
  465. package/src/app/shared/shared-routing.module.d.ts +7 -0
  466. package/src/app/shared/shared.module.d.ts +23 -0
  467. package/src/app/shared/shared.testing.module.d.ts +12 -0
  468. package/src/app/shared/testing/tests.page.d.ts +3 -0
  469. package/src/app/shared/toast/toast.testing.d.ts +6 -5
  470. package/src/app/shared/toast/toast.testing.module.d.ts +9 -0
  471. package/src/app/shared/toast/toasts.d.ts +5 -2
  472. package/src/app/shared/toolbar/modal-toolbar.d.ts +5 -2
  473. package/src/app/shared/toolbar/toolbar.d.ts +9 -5
  474. package/src/app/shared/toolbar/toolbar.module.d.ts +15 -0
  475. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +4 -1
  476. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +9 -0
  477. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +3 -0
  478. package/src/app/shared/upload-file/upload-file.component.d.ts +3 -0
  479. package/src/app/shared/validator/form-error-adapter.class.d.ts +3 -0
  480. package/src/app/shared/validator/validators.d.ts +9 -9
  481. package/src/app/social/job/job.module.d.ts +9 -0
  482. package/src/app/social/job/job.service.d.ts +3 -0
  483. package/src/app/social/job/progression/job-progression.icon.d.ts +4 -1
  484. package/src/app/social/job/progression/job-progression.list.d.ts +3 -0
  485. package/src/app/social/job/testing/job-progression.testing.d.ts +3 -0
  486. package/src/app/social/job/testing/job-progression.testing.service.d.ts +3 -0
  487. package/src/app/social/job/testing/job.testing.module.d.ts +9 -0
  488. package/src/app/social/message/message.form.d.ts +5 -2
  489. package/src/app/social/message/message.modal.d.ts +5 -2
  490. package/src/app/social/message/message.module.d.ts +9 -0
  491. package/src/app/social/message/message.service.d.ts +3 -0
  492. package/src/app/social/social.module.d.ts +10 -0
  493. package/src/app/social/social.testing.module.d.ts +9 -0
  494. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -1
  495. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +7 -4
  496. package/src/app/social/user-event/testing/user-event.testing.d.ts +3 -0
  497. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +1 -0
  498. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +9 -0
  499. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +5 -1
  500. package/src/app/social/user-event/user-event.model.d.ts +3 -2
  501. package/src/app/social/user-event/user-event.module.d.ts +10 -0
  502. package/src/app/social/user-event/user-event.service.d.ts +16 -11
  503. package/src/assets/audio/beep-notification.mp3 +0 -0
  504. package/src/assets/i18n/fr.json +9 -2
  505. package/src/environments/environment.class.d.ts +2 -0
  506. package/src/environments/environment.d.ts +1 -1
  507. package/src/theme/_icons.scss +1 -1
  508. package/src/theme/_material.globals.scss +29 -31
  509. package/src/theme/_material.scss +32 -6
  510. package/src/theme/_mixins.scss +4 -4
  511. package/src/theme/_ngx-components.scss +27 -0
  512. package/src/theme/_print.scss +24 -0
  513. package/bundles/sumaris-net.ngx-components.umd.js +0 -35755
  514. package/bundles/sumaris-net.ngx-components.umd.js.map +0 -1
  515. package/bundles/sumaris-net.ngx-components.umd.min.js +0 -25
  516. package/bundles/sumaris-net.ngx-components.umd.min.js.map +0 -1
  517. package/esm2015/public_api.js +0 -245
  518. package/esm2015/src/app/admin/admin-routing.module.js +0 -34
  519. package/esm2015/src/app/admin/admin.module.js +0 -34
  520. package/esm2015/src/app/admin/services/filter/person.filter.js +0 -59
  521. package/esm2015/src/app/admin/services/person.service.js +0 -175
  522. package/esm2015/src/app/admin/services/validator/person.validator.js +0 -37
  523. package/esm2015/src/app/admin/users/list/users.js +0 -216
  524. package/esm2015/src/app/core/about/modal-about.js +0 -63
  525. package/esm2015/src/app/core/account/account.js +0 -240
  526. package/esm2015/src/app/core/auth/form/form-auth.js +0 -134
  527. package/esm2015/src/app/core/auth/modal/modal-auth.js +0 -78
  528. package/esm2015/src/app/core/core.module.js +0 -127
  529. package/esm2015/src/app/core/core.testing.module.js +0 -51
  530. package/esm2015/src/app/core/form/editor.class.js +0 -698
  531. package/esm2015/src/app/core/form/entity-editor-modal.class.js +0 -422
  532. package/esm2015/src/app/core/form/entity-editor.class.js +0 -676
  533. package/esm2015/src/app/core/form/entity-metadata.component.js +0 -22
  534. package/esm2015/src/app/core/form/form-buttons-bar.component.js +0 -63
  535. package/esm2015/src/app/core/form/form.class.js +0 -342
  536. package/esm2015/src/app/core/form/form.utils.js +0 -299
  537. package/esm2015/src/app/core/form/list.form.js +0 -219
  538. package/esm2015/src/app/core/form/properties.form.js +0 -119
  539. package/esm2015/src/app/core/graphql/graphql.module.js +0 -18
  540. package/esm2015/src/app/core/graphql/graphql.service.js +0 -734
  541. package/esm2015/src/app/core/graphql/graphql.utils.js +0 -106
  542. package/esm2015/src/app/core/home/home.js +0 -265
  543. package/esm2015/src/app/core/icon/icon.component.js +0 -32
  544. package/esm2015/src/app/core/icon/icon.module.js +0 -26
  545. package/esm2015/src/app/core/install/install-upgrade-card.component.js +0 -358
  546. package/esm2015/src/app/core/menu/menu.component.js +0 -329
  547. package/esm2015/src/app/core/menu/menu.module.js +0 -28
  548. package/esm2015/src/app/core/offline/update-offline-mode-card.component.js +0 -26
  549. package/esm2015/src/app/core/peer/select-peer.modal.js +0 -134
  550. package/esm2015/src/app/core/register/confirm/confirm.js +0 -86
  551. package/esm2015/src/app/core/register/form/form-register.js +0 -172
  552. package/esm2015/src/app/core/register/modal/modal-register.js +0 -55
  553. package/esm2015/src/app/core/services/account.service.js +0 -1165
  554. package/esm2015/src/app/core/services/auth-guard.service.js +0 -77
  555. package/esm2015/src/app/core/services/base-entity-service.class.js +0 -454
  556. package/esm2015/src/app/core/services/base-graphql-service.class.js +0 -221
  557. package/esm2015/src/app/core/services/config.service.js +0 -385
  558. package/esm2015/src/app/core/services/local-settings.service.js +0 -460
  559. package/esm2015/src/app/core/services/model/account.model.js +0 -50
  560. package/esm2015/src/app/core/services/model/config.model.js +0 -89
  561. package/esm2015/src/app/core/services/model/department.model.js +0 -30
  562. package/esm2015/src/app/core/services/model/entity.decorators.js +0 -104
  563. package/esm2015/src/app/core/services/model/entity.model.js +0 -245
  564. package/esm2015/src/app/core/services/model/peer.model.js +0 -68
  565. package/esm2015/src/app/core/services/model/person.model.js +0 -83
  566. package/esm2015/src/app/core/services/model/referential.model.js +0 -147
  567. package/esm2015/src/app/core/services/model/settings.model.js +0 -75
  568. package/esm2015/src/app/core/services/network.service.js +0 -631
  569. package/esm2015/src/app/core/services/network.utils.js +0 -19
  570. package/esm2015/src/app/core/services/pipes/account.pipes.js +0 -28
  571. package/esm2015/src/app/core/services/pipes/department-to-string.pipe.js +0 -18
  572. package/esm2015/src/app/core/services/pipes/person-to-string.pipe.js +0 -18
  573. package/esm2015/src/app/core/services/pipes/usage-mode.pipes.js +0 -27
  574. package/esm2015/src/app/core/services/platform.service.js +0 -549
  575. package/esm2015/src/app/core/services/storage/entities-storage.service.js +0 -452
  576. package/esm2015/src/app/core/services/storage/entity-store.class.js +0 -461
  577. package/esm2015/src/app/core/services/testing/referential-filter.model.js +0 -23
  578. package/esm2015/src/app/core/services/testing/referential.validator.js +0 -44
  579. package/esm2015/src/app/core/services/validator/account.validator.js +0 -55
  580. package/esm2015/src/app/core/services/validator/base.validator.class.js +0 -48
  581. package/esm2015/src/app/core/services/validator/local-settings.validator.js +0 -72
  582. package/esm2015/src/app/core/services/validator/user-settings.validator.js +0 -30
  583. package/esm2015/src/app/core/settings/settings.page.js +0 -305
  584. package/esm2015/src/app/core/table/actions-column.component.js +0 -74
  585. package/esm2015/src/app/core/table/entities-table-datasource.class.js +0 -405
  586. package/esm2015/src/app/core/table/memory-table.class.js +0 -59
  587. package/esm2015/src/app/core/table/table-select-columns.component.js +0 -44
  588. package/esm2015/src/app/core/table/table.class.js +0 -1677
  589. package/esm2015/src/app/core/table/table.utils.js +0 -13
  590. package/esm2015/src/app/core/table/testing/table.testing.js +0 -242
  591. package/esm2015/src/app/core/table/testing/table.testing.module.js +0 -26
  592. package/esm2015/src/app/core/text-popover/testing/text-popover.testing.js +0 -37
  593. package/esm2015/src/app/core/text-popover/testing/text-popover.testing.module.js +0 -33
  594. package/esm2015/src/app/core/text-popover/text-form.component.js +0 -72
  595. package/esm2015/src/app/core/text-popover/text-popover.component.js +0 -90
  596. package/esm2015/src/app/shared/alerts.js +0 -251
  597. package/esm2015/src/app/shared/audio/audio.js +0 -178
  598. package/esm2015/src/app/shared/dates.js +0 -134
  599. package/esm2015/src/app/shared/directives/autofocus.directive.js +0 -90
  600. package/esm2015/src/app/shared/directives/autotitle.directive.js +0 -27
  601. package/esm2015/src/app/shared/directives/directives.module.js +0 -30
  602. package/esm2015/src/app/shared/directives/drag-and-drop.directive.js +0 -43
  603. package/esm2015/src/app/shared/directives/ng-var.directive.js +0 -32
  604. package/esm2015/src/app/shared/directives/resizable/resizable.component.js +0 -54
  605. package/esm2015/src/app/shared/directives/resizable/resizable.directive.js +0 -34
  606. package/esm2015/src/app/shared/directives/resizable/resizable.module.js +0 -12
  607. package/esm2015/src/app/shared/events.js +0 -61
  608. package/esm2015/src/app/shared/file/csv.utils.js +0 -70
  609. package/esm2015/src/app/shared/file/file.service.js +0 -120
  610. package/esm2015/src/app/shared/file/file.utils.js +0 -116
  611. package/esm2015/src/app/shared/file/images.utils.js +0 -166
  612. package/esm2015/src/app/shared/form/field.component.js +0 -206
  613. package/esm2015/src/app/shared/form/loading-spinner.js +0 -24
  614. package/esm2015/src/app/shared/forms.js +0 -358
  615. package/esm2015/src/app/shared/functions.js +0 -431
  616. package/esm2015/src/app/shared/gesture/hammer.utils.js +0 -2
  617. package/esm2015/src/app/shared/graph/graph-colors.js +0 -205
  618. package/esm2015/src/app/shared/guard/component-dirty.guard.js +0 -61
  619. package/esm2015/src/app/shared/help/help.modal.js +0 -56
  620. package/esm2015/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.js +0 -20
  621. package/esm2015/src/app/shared/hotkeys/hotkeys.service.js +0 -91
  622. package/esm2015/src/app/shared/hotkeys/shared-hotkeys.module.js +0 -29
  623. package/esm2015/src/app/shared/http/http.utils.js +0 -57
  624. package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +0 -825
  625. package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.module.js +0 -46
  626. package/esm2015/src/app/shared/material/autocomplete/testing/autocomplete.test.js +0 -200
  627. package/esm2015/src/app/shared/material/badge/badge-icon.directive.js +0 -135
  628. package/esm2015/src/app/shared/material/badge/badge-icon.module.js +0 -23
  629. package/esm2015/src/app/shared/material/badge/badge-icon.test.js +0 -17
  630. package/esm2015/src/app/shared/material/boolean/boolean.module.js +0 -41
  631. package/esm2015/src/app/shared/material/boolean/material.boolean.js +0 -223
  632. package/esm2015/src/app/shared/material/chips/chips.module.js +0 -45
  633. package/esm2015/src/app/shared/material/chips/material.chips.js +0 -636
  634. package/esm2015/src/app/shared/material/chips/testing/chips.test.js +0 -138
  635. package/esm2015/src/app/shared/material/datetime/datetime.module.js +0 -54
  636. package/esm2015/src/app/shared/material/datetime/material.date.js +0 -375
  637. package/esm2015/src/app/shared/material/datetime/material.dateshort.js +0 -316
  638. package/esm2015/src/app/shared/material/datetime/material.datetime.js +0 -398
  639. package/esm2015/src/app/shared/material/datetime/testing/mat-date-time.test.js +0 -110
  640. package/esm2015/src/app/shared/material/datetime/testing/mat-date.test.js +0 -108
  641. package/esm2015/src/app/shared/material/duration/duration.module.js +0 -40
  642. package/esm2015/src/app/shared/material/duration/material.duration.js +0 -246
  643. package/esm2015/src/app/shared/material/latlong/latlong.utils.js +0 -249
  644. package/esm2015/src/app/shared/material/latlong/material.latlong.js +0 -350
  645. package/esm2015/src/app/shared/material/latlong/material.latlong.module.js +0 -41
  646. package/esm2015/src/app/shared/material/latlong/testing/latlong.test.js +0 -70
  647. package/esm2015/src/app/shared/material/material.module.js +0 -93
  648. package/esm2015/src/app/shared/material/material.testing.module.js +0 -111
  649. package/esm2015/src/app/shared/material/numpad/numpad.append-to-input.directive.js +0 -96
  650. package/esm2015/src/app/shared/material/numpad/numpad.component.js +0 -73
  651. package/esm2015/src/app/shared/material/numpad/numpad.container.js +0 -149
  652. package/esm2015/src/app/shared/material/numpad/numpad.content.js +0 -14
  653. package/esm2015/src/app/shared/material/numpad/numpad.directive.js +0 -148
  654. package/esm2015/src/app/shared/material/numpad/numpad.dom-service.js +0 -37
  655. package/esm2015/src/app/shared/material/numpad/numpad.module.js +0 -39
  656. package/esm2015/src/app/shared/material/numpad/testing/numpad.test.js +0 -44
  657. package/esm2015/src/app/shared/material/paginator/material.paginator-i18n.js +0 -44
  658. package/esm2015/src/app/shared/material/stepper/material.stepper-i18n.js +0 -24
  659. package/esm2015/src/app/shared/material/swipe/material.swipe.js +0 -308
  660. package/esm2015/src/app/shared/material/swipe/swipe.module.js +0 -33
  661. package/esm2015/src/app/shared/material/swipe/testing/swipe.test.js +0 -68
  662. package/esm2015/src/app/shared/observables.js +0 -99
  663. package/esm2015/src/app/shared/pipes/arrays.pipe.js +0 -110
  664. package/esm2015/src/app/shared/pipes/date-diff-duration.pipe.js +0 -50
  665. package/esm2015/src/app/shared/pipes/date-format.pipe.js +0 -43
  666. package/esm2015/src/app/shared/pipes/file-size.pipe.js +0 -58
  667. package/esm2015/src/app/shared/pipes/form.pipes.js +0 -177
  668. package/esm2015/src/app/shared/pipes/highlight.pipe.js +0 -43
  669. package/esm2015/src/app/shared/pipes/latlong-format.pipe.js +0 -36
  670. package/esm2015/src/app/shared/pipes/maps.pipe.js +0 -48
  671. package/esm2015/src/app/shared/pipes/math.pipes.js +0 -44
  672. package/esm2015/src/app/shared/pipes/ng-init.pipe.js +0 -18
  673. package/esm2015/src/app/shared/pipes/pipes.module.js +0 -117
  674. package/esm2015/src/app/shared/pipes/property.pipes.js +0 -98
  675. package/esm2015/src/app/shared/pipes/string.pipes.js +0 -53
  676. package/esm2015/src/app/shared/pipes/translate-context.pipe.js +0 -36
  677. package/esm2015/src/app/shared/platforms.js +0 -45
  678. package/esm2015/src/app/shared/services/entity-service.class.js +0 -8
  679. package/esm2015/src/app/shared/services/job.utils.js +0 -96
  680. package/esm2015/src/app/shared/services/memory-entity-service.class.js +0 -342
  681. package/esm2015/src/app/shared/services/progress-bar.service.js +0 -30
  682. package/esm2015/src/app/shared/services/startable-observable-service.class.js +0 -124
  683. package/esm2015/src/app/shared/services/startable-service.class.js +0 -110
  684. package/esm2015/src/app/shared/services/storage.utils.js +0 -41
  685. package/esm2015/src/app/shared/services/translate-context.service.js +0 -83
  686. package/esm2015/src/app/shared/services/validator-service.class.js +0 -2
  687. package/esm2015/src/app/shared/services.js +0 -61
  688. package/esm2015/src/app/shared/shared-routing.module.js +0 -54
  689. package/esm2015/src/app/shared/shared.module.js +0 -135
  690. package/esm2015/src/app/shared/shared.testing.module.js +0 -33
  691. package/esm2015/src/app/shared/testing/tests.page.js +0 -34
  692. package/esm2015/src/app/shared/toast/toast.testing.js +0 -39
  693. package/esm2015/src/app/shared/toast/toast.testing.module.js +0 -33
  694. package/esm2015/src/app/shared/toast/toasts.js +0 -119
  695. package/esm2015/src/app/shared/toolbar/modal-toolbar.js +0 -53
  696. package/esm2015/src/app/shared/toolbar/toolbar.js +0 -213
  697. package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.js +0 -59
  698. package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.module.js +0 -33
  699. package/esm2015/src/app/shared/upload-file/upload-file-popover.component.js +0 -98
  700. package/esm2015/src/app/shared/upload-file/upload-file.component.js +0 -202
  701. package/esm2015/src/app/shared/upload-file/upload-file.model.js +0 -20
  702. package/esm2015/src/app/shared/validator/form-error-adapter.class.js +0 -99
  703. package/esm2015/src/app/shared/validator/validators.js +0 -537
  704. package/esm2015/src/app/social/job/job.model.js +0 -26
  705. package/esm2015/src/app/social/job/job.module.js +0 -25
  706. package/esm2015/src/app/social/job/job.service.js +0 -66
  707. package/esm2015/src/app/social/job/progression/job-progression.icon.js +0 -208
  708. package/esm2015/src/app/social/job/progression/job-progression.list.js +0 -20
  709. package/esm2015/src/app/social/job/testing/job-progression.testing.js +0 -49
  710. package/esm2015/src/app/social/job/testing/job-progression.testing.service.js +0 -52
  711. package/esm2015/src/app/social/job/testing/job.testing.module.js +0 -25
  712. package/esm2015/src/app/social/message/message.form.js +0 -73
  713. package/esm2015/src/app/social/message/message.modal.js +0 -96
  714. package/esm2015/src/app/social/message/message.model.js +0 -65
  715. package/esm2015/src/app/social/message/message.module.js +0 -25
  716. package/esm2015/src/app/social/message/message.service.js +0 -87
  717. package/esm2015/src/app/social/social.module.js +0 -28
  718. package/esm2015/src/app/social/social.testing.module.js +0 -39
  719. package/esm2015/src/app/social/user-event/notification/user-event-notification.icon.js +0 -106
  720. package/esm2015/src/app/social/user-event/notification/user-event-notification.list.js +0 -203
  721. package/esm2015/src/app/social/user-event/testing/user-event.testing.js +0 -230
  722. package/esm2015/src/app/social/user-event/testing/user-event.testing.model.js +0 -103
  723. package/esm2015/src/app/social/user-event/testing/user-event.testing.module.js +0 -25
  724. package/esm2015/src/app/social/user-event/testing/user-event.testing.service.js +0 -117
  725. package/esm2015/src/app/social/user-event/user-event.model.js +0 -2
  726. package/esm2015/src/app/social/user-event/user-event.module.js +0 -27
  727. package/esm2015/src/app/social/user-event/user-event.service.js +0 -509
  728. package/esm2015/src/environments/environment.class.js +0 -5
  729. package/esm2015/src/environments/environment.js +0 -81
  730. package/esm2015/sumaris-net.ngx-components.js +0 -21
  731. package/fesm2015/sumaris-net.ngx-components.js +0 -30297
  732. package/fesm2015/sumaris-net.ngx-components.js.map +0 -1
  733. package/src/app/core/form/properties.form.d.ts +0 -40
  734. package/src/app/shared/material/badge/badge-icon.directive.d.ts +0 -28
  735. package/src/app/shared/material/badge/badge-icon.module.d.ts +0 -2
  736. package/src/app/shared/material/badge/badge-icon.test.d.ts +0 -9
  737. package/src/app/shared/services/storage.utils.d.ts +0 -13
  738. package/sumaris-net.ngx-components.d.ts +0 -20
  739. package/sumaris-net.ngx-components.metadata.json +0 -1
@@ -0,0 +1,89 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { map } from 'rxjs/operators';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { StartableService } from '../../../services/startable-service.class';
6
+ import { isNil, isNotNil } from '../../../functions';
7
+ import { Entity, EntityUtils } from '../../../../core/services/model/entity.model';
8
+ import { EntityClass } from '../../../../core/services/model/entity.decorators';
9
+ import { EntityFilter } from '../../../../core/services/model/filter.model';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ionic/angular";
12
+ // @dynamic
13
+ let ImageAttachment = class ImageAttachment extends Entity {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.dataUrl = null;
17
+ this.url = null;
18
+ this.title = null;
19
+ }
20
+ fromObject(source, opts) {
21
+ super.fromObject(source, opts);
22
+ this.url = source.url;
23
+ this.dataUrl = source.dataUrl;
24
+ this.title = source.title;
25
+ }
26
+ };
27
+ ImageAttachment = __decorate([
28
+ EntityClass({ typename: 'ImageAttachmentVO' })
29
+ ], ImageAttachment);
30
+ export { ImageAttachment };
31
+ // @dynamic
32
+ let ImageAttachmentFilter = class ImageAttachmentFilter extends EntityFilter {
33
+ };
34
+ ImageAttachmentFilter = __decorate([
35
+ EntityClass({ typename: 'ImageAttachmentFilterVO' })
36
+ ], ImageAttachmentFilter);
37
+ export { ImageAttachmentFilter };
38
+ export class ImageAttachmentService extends StartableService {
39
+ constructor(platform) {
40
+ super(platform);
41
+ this.platform = platform;
42
+ this.$images = new BehaviorSubject([
43
+ { id: 0, url: 'https://test.sumaris.net/assets/img/bg/ray-1.jpg', title: 'ray #1' },
44
+ { id: 1, url: 'https://test.sumaris.net/assets/img/bg/ray-2.jpg', title: 'ray #2' }
45
+ ]);
46
+ console.debug('[gallery-testing-service] Create service');
47
+ }
48
+ ngOnStart() {
49
+ return Promise.resolve(undefined);
50
+ }
51
+ watchAll(offset, size, sortBy, sortDirection, filter, opts) {
52
+ console.debug('[gallery-testing-service] Watching images...');
53
+ return this.$images
54
+ .pipe(map(images => {
55
+ let data = (images || []).map(ImageAttachment.fromObject);
56
+ data = EntityUtils.sort(data, sortBy, sortDirection);
57
+ console.debug(`[gallery-testing-service] Loaded ${data.length} images...`);
58
+ return { data, total: data.length };
59
+ }));
60
+ }
61
+ async saveAll(entities, opts) {
62
+ console.debug('[gallery-service-testing] Saving images...' + JSON.stringify(entities));
63
+ if (!entities)
64
+ return [];
65
+ let currentId = this.$images.value.reduce((res, image) => Math.max(res, +image?.id || 0), 0);
66
+ entities.filter(item => isNil(item.id))
67
+ .forEach(item => {
68
+ item.id = ++currentId;
69
+ });
70
+ this.$images.next([
71
+ ...this.$images.value,
72
+ ...entities
73
+ ]);
74
+ }
75
+ async deleteAll(entities, opts) {
76
+ const deletedIds = (entities || []).map(item => item.id).filter(isNotNil);
77
+ const filteredData = (this.$images.value).filter(item => !deletedIds.includes(item.id));
78
+ this.$images.next(filteredData);
79
+ }
80
+ asFilter(filter) {
81
+ return ImageAttachmentFilter.fromObject(filter);
82
+ }
83
+ }
84
+ ImageAttachmentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageAttachmentService, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
85
+ ImageAttachmentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageAttachmentService });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageAttachmentService, decorators: [{
87
+ type: Injectable
88
+ }], ctorParameters: function () { return [{ type: i1.Platform }]; } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5zZXJ2aWNlLnRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9nYWxsZXJ5L3Rlc3RpbmcvZ2FsbGVyeS5zZXJ2aWNlLnRlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFHM0UsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLFdBQVcsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUU5RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOENBQThDLENBQUM7OztBQUcxRSxXQUFXO0FBRVgsSUFBYSxlQUFlLEdBQTVCLE1BQWEsZUFBZ0IsU0FBUSxNQUF1QjtJQUE1RDs7UUFJRSxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBQ3ZCLFFBQUcsR0FBVyxJQUFJLENBQUM7UUFDbkIsVUFBSyxHQUFXLElBQUksQ0FBQztJQVF2QixDQUFDO0lBTkMsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FB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LEdBQUcsUUFBUTtTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQTJCLEVBQUUsSUFBVTtRQUNyRCxNQUFNLFVBQVUsR0FBRyxDQUFDLFFBQVEsSUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU8scUJBQXFCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7O21IQXpEVSxzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtTb3J0RGlyZWN0aW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N0YXJ0YWJsZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0YXJ0YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7RW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLCBJRW50aXRpZXNTZXJ2aWNlLCBMb2FkUmVzdWx0fSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge2lzTmlsLCBpc05vdE5pbH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7RW50aXR5LCBFbnRpdHlVdGlsc30gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtFbnRpdHlDbGFzc30gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkuZGVjb3JhdG9ycyc7XG5pbXBvcnQge0ltYWdlfSBmcm9tICcuLi8uLi9pbWFnZS5tb2RlbCc7XG5pbXBvcnQge0VudGl0eUZpbHRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9maWx0ZXIubW9kZWwnO1xuXG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ0ltYWdlQXR0YWNobWVudFZPJyB9KVxuZXhwb3J0IGNsYXNzIEltYWdlQXR0YWNobWVudCBleHRlbmRzIEVudGl0eTxJbWFnZUF0dGFjaG1lbnQ+IGltcGxlbWVudHMgSW1hZ2Uge1xuXG4gIHN0YXRpYyBmcm9tT2JqZWN0OiAoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpID0+IEltYWdlQXR0YWNobWVudDtcblxuICBkYXRhVXJsOiBzdHJpbmcgPSBudWxsO1xuICB1cmw6IHN0cmluZyA9IG51bGw7XG4gIHRpdGxlOiBzdHJpbmcgPSBudWxsO1xuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy51cmwgPSBzb3VyY2UudXJsO1xuICAgIHRoaXMuZGF0YVVybCA9IHNvdXJjZS5kYXRhVXJsO1xuICAgIHRoaXMudGl0bGUgPSBzb3VyY2UudGl0bGU7XG4gIH1cbn1cblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7IHR5cGVuYW1lOiAnSW1hZ2VBdHRhY2htZW50RmlsdGVyVk8nIH0pXG5leHBvcnQgY2xhc3MgSW1hZ2VBdHRhY2htZW50RmlsdGVyIGV4dGVuZHMgRW50aXR5RmlsdGVyPEltYWdlQXR0YWNobWVudEZpbHRlciwgSW1hZ2VBdHRhY2htZW50PiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gSW1hZ2VBdHRhY2htZW50RmlsdGVyO1xuXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbWFnZUF0dGFjaG1lbnRTZXJ2aWNlIGV4dGVuZHMgU3RhcnRhYmxlU2VydmljZVxuICBpbXBsZW1lbnRzIElFbnRpdGllc1NlcnZpY2U8SW1hZ2VBdHRhY2htZW50LCBJbWFnZUF0dGFjaG1lbnRGaWx0ZXI+IHtcblxuICAkaW1hZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPEltYWdlQXR0YWNobWVudD5bXT4oW1xuICAgIHtpZDogMCwgdXJsOiAnaHR0cHM6Ly90ZXN0LnN1bWFyaXMubmV0L2Fzc2V0cy9pbWcvYmcvcmF5LTEuanBnJywgdGl0bGU6ICdyYXkgIzEnfSxcbiAgICB7aWQ6IDEsIHVybDogJ2h0dHBzOi8vdGVzdC5zdW1hcmlzLm5ldC9hc3NldHMvaW1nL2JnL3JheS0yLmpwZycsIHRpdGxlOiAncmF5ICMyJ31cbiAgXSk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybVxuICApIHtcbiAgICBzdXBlcihwbGF0Zm9ybSk7XG4gICAgY29uc29sZS5kZWJ1ZygnW2dhbGxlcnktdGVzdGluZy1zZXJ2aWNlXSBDcmVhdGUgc2VydmljZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5nT25TdGFydCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHdhdGNoQWxsKG9mZnNldDogbnVtYmVyLCBzaXplOiBudW1iZXIsIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sIGZpbHRlcj86IEltYWdlQXR0YWNobWVudEZpbHRlciwgb3B0cz86IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyAmIHsgcXVlcnk/OiBhbnkgfSk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxJbWFnZUF0dGFjaG1lbnQ+PiB7XG4gICAgY29uc29sZS5kZWJ1ZygnW2dhbGxlcnktdGVzdGluZy1zZXJ2aWNlXSBXYXRjaGluZyBpbWFnZXMuLi4nKTtcbiAgICByZXR1cm4gdGhpcy4kaW1hZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGltYWdlcyA9PiB7XG4gICAgICAgICAgbGV0IGRhdGEgPSAoaW1hZ2VzIHx8IFtdKS5tYXAoSW1hZ2VBdHRhY2htZW50LmZyb21PYmplY3QpO1xuXG4gICAgICAgICAgZGF0YSA9IEVudGl0eVV0aWxzLnNvcnQoZGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcblxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoYFtnYWxsZXJ5LXRlc3Rpbmctc2VydmljZV0gTG9hZGVkICR7ZGF0YS5sZW5ndGh9IGltYWdlcy4uLmApO1xuXG4gICAgICAgICAgcmV0dXJuIHtkYXRhLCB0b3RhbDogZGF0YS5sZW5ndGh9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVBbGwoZW50aXRpZXM6IEltYWdlQXR0YWNobWVudFtdLCBvcHRzPzogYW55KTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tnYWxsZXJ5LXNlcnZpY2UtdGVzdGluZ10gU2F2aW5nIGltYWdlcy4uLicgKyBKU09OLnN0cmluZ2lmeShlbnRpdGllcykpO1xuICAgIGlmICghZW50aXRpZXMpIHJldHVybiBbXTtcblxuICAgIGxldCBjdXJyZW50SWQgPSB0aGlzLiRpbWFnZXMudmFsdWUucmVkdWNlKChyZXMsIGltYWdlKSA9PiBNYXRoLm1heChyZXMsICtpbWFnZT8uaWQgfHwgMCksIDApO1xuICAgIGVudGl0aWVzLmZpbHRlcihpdGVtID0+IGlzTmlsKGl0ZW0uaWQpKVxuICAgICAgLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0uaWQgPSArK2N1cnJlbnRJZDtcbiAgICB9KTtcbiAgICB0aGlzLiRpbWFnZXMubmV4dChbXG4gICAgICAuLi50aGlzLiRpbWFnZXMudmFsdWUsXG4gICAgICAuLi5lbnRpdGllc1xuICAgIF0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKGVudGl0aWVzOiBJbWFnZUF0dGFjaG1lbnRbXSwgb3B0cz86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZGVsZXRlZElkcyA9IChlbnRpdGllc3x8W10pLm1hcChpdGVtID0+IGl0ZW0uaWQpLmZpbHRlcihpc05vdE5pbCk7XG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gKHRoaXMuJGltYWdlcy52YWx1ZSkuZmlsdGVyKGl0ZW0gPT4gIWRlbGV0ZWRJZHMuaW5jbHVkZXMoaXRlbS5pZCkpO1xuICAgIHRoaXMuJGltYWdlcy5uZXh0KGZpbHRlcmVkRGF0YSk7XG4gIH1cblxuICBhc0ZpbHRlcihmaWx0ZXI6IGFueSkge1xuICAgIHJldHVybiBJbWFnZUF0dGFjaG1lbnRGaWx0ZXIuZnJvbU9iamVjdChmaWx0ZXIpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Component } from '@angular/core';
2
+ import { ImageAttachment, ImageAttachmentService, } from './gallery.service.testing';
3
+ import { EntitiesTableDataSource } from '../../../../core/table/entities-table-datasource.class';
4
+ import { Subscription } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./gallery.service.testing";
7
+ import * as i2 from "@ionic/angular";
8
+ import * as i3 from "../image-gallery.component";
9
+ export class GalleryTestPage {
10
+ constructor(dataService) {
11
+ this.dataService = dataService;
12
+ this._subscription = new Subscription();
13
+ this.dataSource = new EntitiesTableDataSource(ImageAttachment, this.dataService);
14
+ }
15
+ ngOnInit() {
16
+ this._subscription.add(this.dataSource.watchAll(0, 100, null, null, null)
17
+ .subscribe());
18
+ }
19
+ ngOnDestroy() {
20
+ this._subscription.unsubscribe();
21
+ }
22
+ }
23
+ GalleryTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: GalleryTestPage, deps: [{ token: i1.ImageAttachmentService }], target: i0.ɵɵFactoryTarget.Component });
24
+ GalleryTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: GalleryTestPage, selector: "app-gallery-test-page", providers: [
25
+ { provide: ImageAttachmentService, useClass: ImageAttachmentService }
26
+ ], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <app-image-gallery [dataSource]=\"dataSource\">\n </app-image-gallery>\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "component", type: i3.AppImageGalleryComponent, selector: "app-image-gallery", inputs: ["debug", "readOnly", "disabled", "showToolbar", "mobile", "mode", "confirmBeforeDelete", "dataSource"] }] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: GalleryTestPage, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'app-gallery-test-page', providers: [
30
+ { provide: ImageAttachmentService, useClass: ImageAttachmentService }
31
+ ], template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <app-image-gallery [dataSource]=\"dataSource\">\n </app-image-gallery>\n</ion-content>\n" }]
32
+ }], ctorParameters: function () { return [{ type: i1.ImageAttachmentService }]; } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvaW1hZ2UvZ2FsbGVyeS90ZXN0aW5nL2dhbGxlcnkudGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2ltYWdlL2dhbGxlcnkvdGVzdGluZy9nYWxsZXJ5LnRlc3RpbmcuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxFQUFFLHNCQUFzQixHQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDL0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFVbEMsTUFBTSxPQUFPLGVBQWU7SUFLMUIsWUFBc0IsV0FBbUM7UUFBbkMsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO1FBSGpELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxlQUFVLEdBQUcsSUFBSSx1QkFBdUIsQ0FBeUMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUc3SCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7YUFDckUsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7NEdBZlUsZUFBZTtnR0FBZixlQUFlLGdEQUpmO1FBQ1QsRUFBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFDO0tBQ3BFLDBCQ1hILCtVQWVBOzJGREZhLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsdUJBQXVCLGFBRXRCO3dCQUNULEVBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBQztxQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJbWFnZUF0dGFjaG1lbnQsIEltYWdlQXR0YWNobWVudFNlcnZpY2UsfSBmcm9tICcuL2dhbGxlcnkuc2VydmljZS50ZXN0aW5nJztcbmltcG9ydCB7RW50aXRpZXNUYWJsZURhdGFTb3VyY2V9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdGFibGUvZW50aXRpZXMtdGFibGUtZGF0YXNvdXJjZS5jbGFzcyc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ltYWdlQXR0YWNobWVudEZpbHRlcn0gZnJvbSAnLi9nYWxsZWdyeS5tb2RlbC50ZXN0aW5nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWdhbGxlcnktdGVzdC1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbGxlcnkudGVzdGluZy5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge3Byb3ZpZGU6IEltYWdlQXR0YWNobWVudFNlcnZpY2UsIHVzZUNsYXNzOiBJbWFnZUF0dGFjaG1lbnRTZXJ2aWNlfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEdhbGxlcnlUZXN0UGFnZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHJlYWRvbmx5IGRhdGFTb3VyY2UgPSBuZXcgRW50aXRpZXNUYWJsZURhdGFTb3VyY2U8SW1hZ2VBdHRhY2htZW50LCBJbWFnZUF0dGFjaG1lbnRGaWx0ZXI+KEltYWdlQXR0YWNobWVudCwgdGhpcy5kYXRhU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBJbWFnZUF0dGFjaG1lbnRTZXJ2aWNlKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHRoaXMuZGF0YVNvdXJjZS53YXRjaEFsbCgwLDEwMCwgbnVsbCwgbnVsbCwgbnVsbClcbiAgICAgIC5zdWJzY3JpYmUoKSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICA8aW9uLWJhY2stYnV0dG9uPjwvaW9uLWJhY2stYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlPkltYWdlIGdhbGxlcnk8L2lvbi10aXRsZT5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50PlxuICA8YXBwLWltYWdlLWdhbGxlcnkgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiPlxuICA8L2FwcC1pbWFnZS1nYWxsZXJ5PlxuPC9pb24tY29udGVudD5cbiJdfQ==
@@ -0,0 +1,56 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { TranslateModule } from '@ngx-translate/core';
3
+ import { RouterModule } from '@angular/router';
4
+ import { GalleryTestPage } from './gallery.testing';
5
+ import { CommonModule } from '@angular/common';
6
+ import { IonicModule } from '@ionic/angular';
7
+ import { ImageGalleryModule } from '../image-gallery.module';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@ngx-translate/core";
10
+ import * as i2 from "@angular/router";
11
+ const routes = [
12
+ {
13
+ path: 'gallery',
14
+ pathMatch: 'full',
15
+ component: GalleryTestPage
16
+ },
17
+ ];
18
+ export class ImageGalleryTestingModule {
19
+ }
20
+ ImageGalleryTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ ImageGalleryTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, declarations: [
22
+ // Components
23
+ GalleryTestPage], imports: [CommonModule,
24
+ IonicModule,
25
+ ImageGalleryModule, i1.TranslateModule, i2.RouterModule, i1.TranslateModule], exports: [RouterModule,
26
+ // Components
27
+ GalleryTestPage] });
28
+ ImageGalleryTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, imports: [CommonModule,
29
+ IonicModule,
30
+ ImageGalleryModule,
31
+ TranslateModule.forChild(),
32
+ RouterModule.forChild(routes),
33
+ TranslateModule.forChild(), RouterModule] });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, decorators: [{
35
+ type: NgModule,
36
+ args: [{
37
+ imports: [
38
+ CommonModule,
39
+ IonicModule,
40
+ ImageGalleryModule,
41
+ TranslateModule.forChild(),
42
+ RouterModule.forChild(routes),
43
+ TranslateModule.forChild(),
44
+ ],
45
+ declarations: [
46
+ // Components
47
+ GalleryTestPage
48
+ ],
49
+ exports: [
50
+ RouterModule,
51
+ // Components
52
+ GalleryTestPage
53
+ ]
54
+ }]
55
+ }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS50ZXN0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2ltYWdlL2dhbGxlcnkvdGVzdGluZy9nYWxsZXJ5LnRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUUzRCxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxTQUFTO1FBQ2YsU0FBUyxFQUFFLE1BQU07UUFDakIsU0FBUyxFQUFFLGVBQWU7S0FDM0I7Q0FDRixDQUFBO0FBc0JELE1BQU0sT0FBTyx5QkFBeUI7O3NIQUF6Qix5QkFBeUI7dUhBQXpCLHlCQUF5QjtRQVZsQyxhQUFhO1FBQ2IsZUFBZSxhQVRmLFlBQVk7UUFDWixXQUFXO1FBQ1gsa0JBQWtCLHNFQVVsQixZQUFZO1FBRVosYUFBYTtRQUNiLGVBQWU7dUhBR04seUJBQXlCLFlBbEJsQyxZQUFZO1FBQ1osV0FBVztRQUNYLGtCQUFrQjtRQUNsQixlQUFlLENBQUMsUUFBUSxFQUFFO1FBQzFCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQzdCLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFPMUIsWUFBWTsyRkFNSCx5QkFBeUI7a0JBcEJyQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixlQUFlLENBQUMsUUFBUSxFQUFFO3dCQUMxQixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzt3QkFDN0IsZUFBZSxDQUFDLFFBQVEsRUFBRTtxQkFDM0I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBRVosYUFBYTt3QkFDYixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7R2FsbGVyeVRlc3RQYWdlfSBmcm9tICcuL2dhbGxlcnkudGVzdGluZyc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7SW9uaWNNb2R1bGV9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7SW1hZ2VHYWxsZXJ5TW9kdWxlfSBmcm9tICcuLi9pbWFnZS1nYWxsZXJ5Lm1vZHVsZSc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJ2dhbGxlcnknLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogR2FsbGVyeVRlc3RQYWdlXG4gIH0sXG5dXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgSW1hZ2VHYWxsZXJ5TW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAvLyBDb21wb25lbnRzXG4gICAgR2FsbGVyeVRlc3RQYWdlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGUsXG5cbiAgICAvLyBDb21wb25lbnRzXG4gICAgR2FsbGVyeVRlc3RQYWdlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VHYWxsZXJ5VGVzdGluZ01vZHVsZSB7XG5cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9pbWFnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJbWFnZSB7XG4gIGRhdGFVcmw6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xufVxuXG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ImageGalleryModule } from './gallery/image-gallery.module';
4
+ import * as i0 from "@angular/core";
5
+ export class ImageModule {
6
+ }
7
+ ImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ ImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: ImageModule, imports: [CommonModule,
9
+ ImageGalleryModule], exports: [
10
+ // Sub module
11
+ ImageGalleryModule] });
12
+ ImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageModule, imports: [CommonModule,
13
+ ImageGalleryModule,
14
+ // Sub module
15
+ ImageGalleryModule] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ imports: [
20
+ CommonModule,
21
+ ImageGalleryModule
22
+ ],
23
+ exports: [
24
+ // Sub module
25
+ ImageGalleryModule
26
+ ]
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvaW1hZ2UvaW1hZ2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFhcEUsTUFBTSxPQUFPLFdBQVc7O3dHQUFYLFdBQVc7eUdBQVgsV0FBVyxZQVJwQixZQUFZO1FBQ1osa0JBQWtCO1FBR2xCLGFBQWE7UUFDYixrQkFBa0I7eUdBR1QsV0FBVyxZQVJwQixZQUFZO1FBQ1osa0JBQWtCO1FBR2xCLGFBQWE7UUFDYixrQkFBa0I7MkZBR1QsV0FBVztrQkFWdkIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLGtCQUFrQjtxQkFDbkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEltYWdlR2FsbGVyeU1vZHVsZSB9IGZyb20gJy4vZ2FsbGVyeS9pbWFnZS1nYWxsZXJ5Lm1vZHVsZSc7XG5pbXBvcnQgeyBJbWFnZVNlcnZpY2UgfSBmcm9tICcuL2ltYWdlLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEltYWdlR2FsbGVyeU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgLy8gU3ViIG1vZHVsZVxuICAgIEltYWdlR2FsbGVyeU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlTW9kdWxlIHtcbn1cbiJdfQ==
@@ -0,0 +1,99 @@
1
+ import { Inject, Injectable, Optional } from '@angular/core';
2
+ import { StartableService } from '../services/startable-service.class';
3
+ import { ENVIRONMENT } from '../../../environments/environment.class';
4
+ import { FilesUtils } from '../file/file.utils';
5
+ import { ImagesUtils } from '../file/images.utils';
6
+ import { isEmptyArray } from '../functions';
7
+ import { Capacitor } from '@capacitor/core';
8
+ import { Camera, CameraResultType } from '@capacitor/camera';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../core/services/platform.service";
11
+ import * as i2 from "../../core/services/local-settings.service";
12
+ import * as i3 from "@ngx-translate/core";
13
+ import * as i4 from "@ionic/angular";
14
+ import * as i5 from "../../../environments/environment.class";
15
+ //import {Camera, DestinationType, EncodingType, MediaType, PictureSourceType} from '@awesome-cordova-plugins/camera/ngx';
16
+ export class ImageService extends StartableService {
17
+ constructor(platform, settings, translate, popoverController,
18
+ // protected camera: Camera,
19
+ actionSheetController, environment) {
20
+ super(platform);
21
+ this.platform = platform;
22
+ this.settings = settings;
23
+ this.translate = translate;
24
+ this.popoverController = popoverController;
25
+ this.actionSheetController = actionSheetController;
26
+ this.environment = environment;
27
+ this.defaultMaxHeight = 1024;
28
+ this.defaultMaxWidth = 1024;
29
+ this._debug = !environment.production;
30
+ if (this._debug)
31
+ console.debug(`[image] Creating service`);
32
+ }
33
+ async ngOnStart() {
34
+ try {
35
+ const camera = Capacitor.isPluginAvailable('Camera');
36
+ console.info(`[image] Starting... {camera: ${camera}}`);
37
+ }
38
+ catch (err) {
39
+ console.error('Cannot check Camera plugin: ' + (err?.message || err));
40
+ }
41
+ }
42
+ async add(event, opts) {
43
+ if (!this.started)
44
+ await this.ready();
45
+ // If desktop: open upload popover
46
+ if (!this.platform.isCordova()) {
47
+ return this.addUploadedImages(event, opts);
48
+ }
49
+ console.info(`[image-service] Adding image...`);
50
+ try {
51
+ const data = await Camera.getPhoto({
52
+ height: this.defaultMaxHeight,
53
+ width: this.defaultMaxWidth,
54
+ promptLabelCancel: this.translate.instant('COMMON.BTN_CANCEL'),
55
+ promptLabelPicture: this.translate.instant('IMAGE.BTN_CAMERA_SOURCE'),
56
+ resultType: CameraResultType.DataUrl,
57
+ ...opts
58
+ });
59
+ if (!data)
60
+ return undefined;
61
+ return [{
62
+ dataUrl: data.dataUrl
63
+ }];
64
+ }
65
+ catch (err) {
66
+ console.info(`[image-service] Error while adding image: ${err?.message || err} -> ${err?.originalStack || ''}`);
67
+ return undefined;
68
+ }
69
+ }
70
+ async addUploadedImages(event, opts) {
71
+ const { data } = await FilesUtils.showUploadPopover(this.popoverController, event, {
72
+ uniqueFile: true,
73
+ fileExtension: '.png, .jpg',
74
+ instantUpload: true,
75
+ uploadFn: (file) => ImagesUtils.readAsDataURL(file, {
76
+ maxWidth: this.defaultMaxWidth,
77
+ maxHeight: this.defaultMaxHeight,
78
+ ...opts
79
+ })
80
+ });
81
+ if (isEmptyArray(data))
82
+ return; // No files uploaded: skip
83
+ return (data || [])
84
+ .map(file => file.response.body) // Get response body = data as base64
85
+ .map(dataUrl => ({ dataUrl }));
86
+ }
87
+ }
88
+ ImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageService, deps: [{ token: i1.PlatformService }, { token: i2.LocalSettingsService }, { token: i3.TranslateService }, { token: i4.PopoverController }, { token: i4.ActionSheetController }, { token: ENVIRONMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
89
+ ImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageService, providedIn: 'root' });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageService, decorators: [{
91
+ type: Injectable,
92
+ args: [{ providedIn: 'root' }]
93
+ }], ctorParameters: function () { return [{ type: i1.PlatformService }, { type: i2.LocalSettingsService }, { type: i3.TranslateService }, { type: i4.PopoverController }, { type: i4.ActionSheetController }, { type: i5.Environment, decorators: [{
94
+ type: Inject,
95
+ args: [ENVIRONMENT]
96
+ }, {
97
+ type: Optional
98
+ }] }]; } });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2ltYWdlL2ltYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSTNELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxXQUFXLEVBQWMsTUFBTSx5Q0FBeUMsQ0FBQztBQUdqRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHMUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQUV6RSwwSEFBMEg7QUFJMUgsTUFBTSxPQUFPLFlBQWEsU0FBUSxnQkFBZ0I7SUFLaEQsWUFBc0IsUUFBeUIsRUFDekIsUUFBOEIsRUFDOUIsU0FBMkIsRUFDM0IsaUJBQW9DO0lBQzVELHlDQUF5QztJQUNqQixxQkFBNEMsRUFDWCxXQUF5QjtRQUU5RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFSSSxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFzQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBRXBDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDWCxnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQVR4RSxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIs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LENBQUMscUNBQXFDO2FBQ3JFLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQU8sRUFBQyxPQUFPLEVBQUMsQ0FBQSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7eUdBMUVVLFlBQVksMkxBV0gsV0FBVzs2R0FYcEIsWUFBWSxjQURBLE1BQU07MkZBQ2xCLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkFZakIsTUFBTTsyQkFBQyxXQUFXOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aW9uU2hlZXRCdXR0b24sIEFjdGlvblNoZWV0Q29udHJvbGxlciwgUG9wb3ZlckNvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7U3RhcnRhYmxlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvc3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtFTlZJUk9OTUVOVCwgRW52aXJvbm1lbnR9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQge1BsYXRmb3JtU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9wbGF0Zm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7TG9jYWxTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQge0ZpbGVzVXRpbHN9IGZyb20gJy4uL2ZpbGUvZmlsZS51dGlscyc7XG5pbXBvcnQge0ltYWdlc1V0aWxzfSBmcm9tICcuLi9maWxlL2ltYWdlcy51dGlscyc7XG5pbXBvcnQge2lzRW1wdHlBcnJheX0gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuaW1wb3J0IHtJbWFnZX0gZnJvbSAnLi9pbWFnZS5tb2RlbCc7XG5pbXBvcnQge0NhcGFjaXRvcn0gZnJvbSAnQGNhcGFjaXRvci9jb3JlJztcbmltcG9ydCB7Q2FtZXJhLCBDYW1lcmFSZXN1bHRUeXBlLCBJbWFnZU9wdGlvbnN9IGZyb20gJ0BjYXBhY2l0b3IvY2FtZXJhJztcblxuLy9pbXBvcnQge0NhbWVyYSwgRGVzdGluYXRpb25UeXBlLCBFbmNvZGluZ1R5cGUsIE1lZGlhVHlwZSwgUGljdHVyZVNvdXJjZVR5cGV9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9jYW1lcmEvbmd4JztcblxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBJbWFnZVNlcnZpY2UgZXh0ZW5kcyBTdGFydGFibGVTZXJ2aWNlIHtcblxuICBwcml2YXRlIGRlZmF1bHRNYXhIZWlnaHQgPSAxMDI0O1xuICBwcml2YXRlIGRlZmF1bHRNYXhXaWR0aCA9IDEwMjQ7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBzZXR0aW5nczogTG9jYWxTZXR0aW5nc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXIsXG4vLyAgICAgICAgICAgICAgcHJvdGVjdGVkIGNhbWVyYTogQ2FtZXJhLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgYWN0aW9uU2hlZXRDb250cm9sbGVyOiBBY3Rpb25TaGVldENvbnRyb2xsZXIsXG4gICAgICAgICAgICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBlbnZpcm9ubWVudD86IEVudmlyb25tZW50XG4gICkge1xuICAgIHN1cGVyKHBsYXRmb3JtKTtcbiAgICB0aGlzLl9kZWJ1ZyA9ICFlbnZpcm9ubWVudC5wcm9kdWN0aW9uO1xuICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW2ltYWdlXSBDcmVhdGluZyBzZXJ2aWNlYCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0YXJ0KCk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhbWVyYSA9IENhcGFjaXRvci5pc1BsdWdpbkF2YWlsYWJsZSgnQ2FtZXJhJyk7XG4gICAgICBjb25zb2xlLmluZm8oYFtpbWFnZV0gU3RhcnRpbmcuLi4ge2NhbWVyYTogJHtjYW1lcmF9fWApO1xuICAgIH0gY2F0Y2goZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYW5ub3QgY2hlY2sgQ2FtZXJhIHBsdWdpbjogJyArIChlcnI/Lm1lc3NhZ2UgfHwgZXJyKSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkKGV2ZW50PzogRXZlbnQsIG9wdHM/OiB7bWF4SGVpZ2h0PzogbnVtYmVyOyBtYXdXaWR0aD86IG51bWJlcjsgcXVhbGl0eT86IG51bWJlcn0pOiBQcm9taXNlPEltYWdlW118dW5kZWZpbmVkPiB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgIC8vIElmIGRlc2t0b3A6IG9wZW4gdXBsb2FkIHBvcG92ZXJcbiAgICBpZiAoIXRoaXMucGxhdGZvcm0uaXNDb3Jkb3ZhKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFkZFVwbG9hZGVkSW1hZ2VzKGV2ZW50LCBvcHRzKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmluZm8oYFtpbWFnZS1zZXJ2aWNlXSBBZGRpbmcgaW1hZ2UuLi5gKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgQ2FtZXJhLmdldFBob3RvKHtcbiAgICAgICAgaGVpZ2h0OiB0aGlzLmRlZmF1bHRNYXhIZWlnaHQsXG4gICAgICAgIHdpZHRoOiB0aGlzLmRlZmF1bHRNYXhXaWR0aCxcbiAgICAgICAgcHJvbXB0TGFiZWxDYW5jZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0NPTU1PTi5CVE5fQ0FOQ0VMJyksXG4gICAgICAgIHByb21wdExhYmVsUGljdHVyZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnSU1BR0UuQlROX0NBTUVSQV9TT1VSQ0UnKSxcbiAgICAgICAgcmVzdWx0VHlwZTogQ2FtZXJhUmVzdWx0VHlwZS5EYXRhVXJsLFxuICAgICAgICAuLi5vcHRzXG4gICAgICB9KTtcbiAgICAgIGlmICghZGF0YSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgcmV0dXJuIFs8SW1hZ2U+e1xuICAgICAgICBkYXRhVXJsOiBkYXRhLmRhdGFVcmxcbiAgICAgIH1dO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmluZm8oYFtpbWFnZS1zZXJ2aWNlXSBFcnJvciB3aGlsZSBhZGRpbmcgaW1hZ2U6ICR7ZXJyPy5tZXNzYWdlIHx8IGVycn0gLT4gJHtlcnI/Lm9yaWdpbmFsU3RhY2sgfHwgJyd9YCk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBhZGRVcGxvYWRlZEltYWdlcyhldmVudD86IEV2ZW50LCBvcHRzPzoge21heEhlaWdodD86IG51bWJlcjsgbWF3V2lkdGg/OiBudW1iZXI7IHF1YWxpdHk/OiBudW1iZXJ9KTogUHJvbWlzZTxJbWFnZVtdfHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgRmlsZXNVdGlscy5zaG93VXBsb2FkUG9wb3Zlcih0aGlzLnBvcG92ZXJDb250cm9sbGVyLCBldmVudCwge1xuICAgICAgdW5pcXVlRmlsZTogdHJ1ZSxcbiAgICAgIGZpbGVFeHRlbnNpb246ICcucG5nLCAuanBnJyxcbiAgICAgIGluc3RhbnRVcGxvYWQ6IHRydWUsXG4gICAgICB1cGxvYWRGbjogKGZpbGUpID0+IEltYWdlc1V0aWxzLnJlYWRBc0RhdGFVUkwoZmlsZSwge1xuICAgICAgICBtYXhXaWR0aDogdGhpcy5kZWZhdWx0TWF4V2lkdGgsXG4gICAgICAgIG1heEhlaWdodDogdGhpcy5kZWZhdWx0TWF4SGVpZ2h0LFxuICAgICAgICAuLi5vcHRzXG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgaWYgKGlzRW1wdHlBcnJheShkYXRhKSkgcmV0dXJuOyAvLyBObyBmaWxlcyB1cGxvYWRlZDogc2tpcFxuICAgIHJldHVybiAoZGF0YSB8fCBbXSlcbiAgICAgIC5tYXAoZmlsZSA9PiBmaWxlLnJlc3BvbnNlLmJvZHkpIC8vIEdldCByZXNwb25zZSBib2R5ID0gZGF0YSBhcyBiYXNlNjRcbiAgICAgIC5tYXAoZGF0YVVybCA9PiA8SW1hZ2U+e2RhdGFVcmx9KTtcbiAgfVxufVxuIl19
@@ -176,7 +176,7 @@ export function canHaveFocus(input, opts) {
176
176
  && (!opts.excludeEmptyInput || isNilOrBlank(input.value));
177
177
  }
178
178
  export function getFocusableInputElements(elements, opts) {
179
- opts = Object.assign({ sortByTabIndex: false, excludeEmptyInput: false }, opts);
179
+ opts = { sortByTabIndex: false, excludeEmptyInput: false, ...opts };
180
180
  // Focus to first input
181
181
  const filteredElements = elements
182
182
  // Transform to input
@@ -203,7 +203,7 @@ export function focusNextInput(event, elements, opts) {
203
203
  // Get current index
204
204
  const minTabindex = event && isInputElement(event.target) ? (event.target.tabIndex || event.target.tabindex) : undefined;
205
205
  // Get focusable input elements
206
- const focusableInputs = getFocusableInputElements(elements, Object.assign({ minTabindex }, opts));
206
+ const focusableInputs = getFocusableInputElements(elements, { minTabindex, ...opts });
207
207
  if (isNotEmptyArray(focusableInputs)) {
208
208
  // Focus on first inputs
209
209
  focusableInputs[0].focus();
@@ -220,7 +220,7 @@ export function focusPreviousInput(event, elements, opts) {
220
220
  // Get current index
221
221
  const maxTabindex = event && isInputElement(event.target) ? (event.target.tabIndex || event.target.tabindex) : undefined;
222
222
  // Get focusable input elements
223
- const focusableInputs = getFocusableInputElements(elements, Object.assign({ maxTabindex }, opts));
223
+ const focusableInputs = getFocusableInputElements(elements, { maxTabindex, ...opts });
224
224
  if (isNotEmptyArray(focusableInputs)) {
225
225
  // Focus on last inputs
226
226
  focusableInputs[focusableInputs.length - 1].focus();
@@ -228,4 +228,4 @@ export function focusPreviousInput(event, elements, opts) {
228
228
  }
229
229
  return false;
230
230
  }
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBbUIsa0JBQWtCLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDakUsT0FBTyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBS2hHLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFjO0lBQy9DLElBQUksS0FBSyxDQUFDLGdCQUFnQjtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ3pDLE1BQU0sS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUFjLENBQUM7SUFDcEMsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV4QixvQkFBb0I7SUFDcEIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRTVDLElBQUksT0FBTyxLQUFLLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRTtRQUMzQyxJQUFJO1lBQ0YsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLHFEQUFxRCxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7S0FDRjtJQUVELElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUU7UUFDL0MsSUFBSTtZQUNGLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9B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UUFBUSxrQkFBRyxXQUFXLElBQUssSUFBSSxFQUFFLENBQUM7SUFFcEcsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDcEMsdUJBQXVCO1FBQ3ZCLGVBQWUsQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VsZW1lbnRSZWYsIFF1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZvY3VzYWJsZUVsZW1lbnQsIGlzRm9jdXNhYmxlRWxlbWVudH0gZnJvbSAnLi9mb2N1c2FibGUnO1xuaW1wb3J0IHtpc05pbCwgaXNOaWxPckJsYW5rLCBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsLCB0b0Jvb2xlYW4sIHRvTnVtYmVyfSBmcm9tICcuL2Z1bmN0aW9ucyc7XG5cblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJbnB1dENvbnRlbnQoZXZlbnQ6IFVJRXZlbnQpIHtcbiAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgaW5wdXQgPSAoZXZlbnQudGFyZ2V0IGFzIGFueSk7XG4gIGlmICghaW5wdXQpIHJldHVybiB0cnVlO1xuXG4gIC8vIE5vdGhpbmcgdG8gc2VsZWN0XG4gIGlmIChpc05pbE9yQmxhbmsoaW5wdXQudmFsdWUpKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBpbnB1dC5zZWxlY3RSYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRyeSB7XG4gICAgICBpbnB1dC5zZWxlY3RSYW5nZShpbnB1dC52YWx1ZS5sZW5ndGgsIDApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3Qgc2VsZWN0IGlucHV0IGNvbnRlbnQsIHVzaW5nIHNlbGVjdFJhbmdlKCknLCBlcnIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQuc2VsZWN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlucHV0LnNlbGVjdCgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3Qgc2VsZWN0IGlucHV0IGNvbnRlbnQsIHVzaW5nIHNlbGVjdCgpJywgZXJyKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJbnB1dFJhbmdlKGlucHV0OiBhbnksIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg/OiBudW1iZXIpIHtcbiAgaWYgKGlucHV0ICYmIHR5cGVvZiBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuXG4gICAgLy8gTm8gY29udGVudFxuICAgIGlmIChpc05pbE9yQmxhbmsoaW5wdXQudmFsdWUpKSByZXR1cm4gZmFsc2U7XG5cbiAgICB0cnkge1xuICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnRJbmRleCwgaXNOb3ROaWwoZW5kSW5kZXgpID8gZW5kSW5kZXggOiBzdGFydEluZGV4KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCBzZWxlY3QgaW5wdXQgcmFuZ2UnLCBlcnIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhcmV0UG9zaXRpb24oaW5wdXQ6IGFueSk6IG51bWJlciB7XG4gIGlmIChpbnB1dCAmJiBpbnB1dC5zZWxlY3Rpb25TdGFydCkge1xuICAgIHJldHVybiBpbnB1dC5zZWxlY3Rpb25EaXJlY3Rpb24gP1xuICAgICAgKGlucHV0LnNlbGVjdGlvbkRpcmVjdGlvbiA9PT0gJ2JhY2t3YXJkJyA/IGlucHV0LnNlbGVjdGlvblN0YXJ0IDogaW5wdXQuc2VsZWN0aW9uRW5kKSA6IGlucHV0LnNlbGVjdGlvblN0YXJ0O1xuICB9XG4gIHJldHVybiAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVJbnB1dENhcmV0VG9TZXBhcmF0b3IoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHNlcGFyYXRvcjogc3RyaW5nLCBmb3J3YXJkPzogYm9vbGVhbikge1xuICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAhc2VwYXJhdG9yKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGlucHV0ID0gKGV2ZW50LnRhcmdldCBhcyBhbnkpO1xuICBpZiAoIWlucHV0KSByZXR1cm4gdHJ1ZTtcblxuICBjb25zdCBjYXJldFBvc2l0aW9uID0gZ2V0Q2FyZXRQb3NpdGlvbihpbnB1dCk7XG5cbiAgLy8gREVCVUdcbiAgLy9jb25zb2xlLmRlYnVnKCdjYXJldFBvc2l0aW9uPScsIGNhcmV0UG9zaXRpb24pO1xuXG4gIGlmIChjYXJldFBvc2l0aW9uID09PSAtMSkgcmV0dXJuIHRydWU7IC8vIENhcmV0IHBvcyBub3QgZm91bmQ6IHNraXBcblxuICAvLyBHZXQgaW5wdXQgdmFsdWVcbiAgY29uc3QgdmFsdWUgPSBpbnB1dC52YWx1ZSBhcyBzdHJpbmc7XG5cbiAgLy8gTm8gY29udGVudDogc2tpcFxuICBpZiAoaXNOaWxPckJsYW5rKHZhbHVlKSkgcmV0dXJuIGZhbHNlO1xuXG4gIHRyeSB7XG5cblxuICAgIGlmICh2YWx1ZSAmJiBjYXJldFBvc2l0aW9uIDw9IHZhbHVlLmxlbmd0aCkge1xuICAgICAgLy8gREVCVUdcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIklucHV0IHRleHQgdmFsdWU6IFwiLCB2YWx1ZSk7XG4gICAgICAvL2NvbnNvbGUuZGVidWcoXCJDdXJzb3IgYXQ6IFwiLCBjYXJldFBvc2l0aW9uKTtcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlRleHQgYWZ0ZXIgY3Vyc29yOiBcIiwgdmFsdWUuc3Vic3RyKGNhcmV0UG9zaXRpb24pKTtcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIk5leHQgc2VwYXJhdG9yIGF0OiBcIiwgdmFsdWUuaW5kZXhPZihzZXBhcmF0b3IsIGNhcmV0UG9zaXRpb24pKTtcblxuICAgICAgZm9yd2FyZCA9IGZvcndhcmQgIT09IGZhbHNlO1xuXG4gICAgICBjb25zdCBzZXBhcmF0b3JJbmRleCA9IChmb3J3YXJkID8gdmFsdWUuaW5kZXhPZihzZXBhcmF0b3IsIGNhcmV0UG9zaXRpb24pIDogdmFsdWUubGFzdEluZGV4T2Yoc2VwYXJhdG9yLCBjYXJldFBvc2l0aW9uKSk7XG4gICAgICBpZiAoc2VwYXJhdG9ySW5kZXggIT09IC0xICYmICgoZm9yd2FyZCAmJiBzZXBhcmF0b3JJbmRleCArIDEgPCB2YWx1ZS5sZW5ndGgpXG4gICAgICAgIHx8ICghZm9yd2FyZCAmJiBzZXBhcmF0b3JJbmRleCA+IDApKSkge1xuICAgICAgICBpZiAoaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UpIHtcbiAgICAgICAgICAvLyBNb3ZlIGFmdGVyIHRoZSBuZXh0IHNlcGFyYXRvclxuICAgICAgICAgIGlmIChzZWxlY3RJbnB1dFJhbmdlKGlucHV0LCBzZXBhcmF0b3JJbmRleCArIChmb3J3YXJkID8gMSA6IC0xKSkpIHtcbiAgICAgICAgICAgIC8vIFN0b3AgdGhlIGtleWJvYXJkIGV2ZW50XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgbW92ZSBjYXJldCB0byBuZXh0IHNlcGFyYXRvcicsIGVycik7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyTnVtYmVySW5wdXQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGFsbG93RGVjaW1hbHM6IGJvb2xlYW4sIGRlY2ltYWxTZXBhcmF0b3I/OiBzdHJpbmcpIHtcbiAgLy9pbnB1dCBudW1iZXIgZW50ZXJlZCBvciBvbmUgb2YgdGhlIDQgZGlyZWN0aW9uIHVwLCBkb3duLCBsZWZ0IGFuZCByaWdodFxuICBpZiAoKGV2ZW50LndoaWNoID49IDQ4ICYmIGV2ZW50LndoaWNoIDw9IDU3KSB8fCAoZXZlbnQud2hpY2ggPj0gMzcgJiYgZXZlbnQud2hpY2ggPD0gNDApKSB7XG4gICAgLy9jb25zb2xlLmRlYnVnKCdpbnB1dCBudW1iZXIgZW50ZXJlZCA6JyArIGV2ZW50LndoaWNoICsgJyAnICsgZXZlbnQua2V5Q29kZSArICcgJyArIGV2ZW50LmNoYXJDb2RlKTtcbiAgICAvLyBPS1xuICB9XG4gIC8vIERlY2ltYWwgc2VwYXJhdG9yXG4gIGVsc2UgaWYgKGFsbG93RGVjaW1hbHMgJiYgKCghZGVjaW1hbFNlcGFyYXRvciAmJiAoZXZlbnQua2V5ID09PSAnLicgfHwgZXZlbnQua2V5ID09PSAnLCcpKVxuICAgIHx8IChkZWNpbWFsU2VwYXJhdG9yICYmIGV2ZW50LmtleSA9PT0gZGVjaW1hbFNlcGFyYXRvcikpKSB7XG4gICAgLy9jb25zb2xlLmRlYnVnKCdpbnB1dCBkZWNpbWFsIHNlcGFyYXRvciBlbnRlcmVkIDonICsgZXZlbnQuY29kZSk7XG4gICAgLy8gT0tcbiAgfSBlbHNlIHtcbiAgICAvL2lucHV0IGNvbW1hbmQgZW50ZXJlZCBvZiBkZWxldGUsIGJhY2tzcGFjZSBvciBvbmUgb2YgdGhlIDQgZGlyZWN0aW9uIHVwLCBkb3duLCBsZWZ0IGFuZCByaWdodCwgb3IgbmVnYXRpdmUgc2lnblxuICAgIGlmICgoZXZlbnQua2V5Q29kZSA+PSAzNyAmJiBldmVudC5rZXlDb2RlIDw9IDQwKSB8fCBldmVudC5rZXlDb2RlID09IDQ2IHx8IGV2ZW50LndoaWNoID09IDggfHwgZXZlbnQua2V5Q29kZSA9PSA5IHx8IGV2ZW50LmtleUNvZGUgPT0gNDUpIHtcbiAgICAgIC8vY29uc29sZS5kZWJ1ZygnaW5wdXQgY29tbWFuZCBlbnRlcmVkIDonICsgZXZlbnQud2hpY2ggKyAnICcgKyBldmVudC5rZXlDb2RlICsgJyAnICsgZXZlbnQuY2hhckNvZGUpO1xuICAgICAgLy8gT0tcbiAgICB9XG4gICAgLy8gQ2FuY2VsIG90aGVyIGtleWJvYXJkIGV2ZW50c1xuICAgIGVsc2Uge1xuICAgICAgLy9jb25zb2xlLmRlYnVnKCdpbnB1dCBub3QgbnVtYmVyIGVudGVyZWQgOicgKyBldmVudC53aGljaCArICcgJyArIGV2ZW50LmtleUNvZGUgKyAnICcgKyBldmVudC5jaGFyQ29kZSArICcgJyArIGV2ZW50LmNvZGUgKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb2N1c0lucHV0KGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcbiAgY29uc3QgaW5wdXRFbGVtZW50ID0gYXNJbnB1dEVsZW1lbnQoZWxlbWVudCk7XG4gIGlmIChpbnB1dEVsZW1lbnQpXG4gICAgaW5wdXRFbGVtZW50LmZvY3VzKCk7XG4gIGVsc2Uge1xuICAgIGNvbnNvbGUud2FybignVHJ5aW5nIHRvIGZvY3VzIG9uIHRoaXMgZWxlbWVudDonLCBlbGVtZW50KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VGFiSW5kZXgoZWxlbWVudDogRWxlbWVudFJlZiwgdGFiSW5kZXg6IG51bWJlcikge1xuICBpZihpc0lucHV0RWxlbWVudChlbGVtZW50KSkge1xuICAgIGVsZW1lbnQudGFiaW5kZXggPSB0YWJJbmRleDtcbiAgfVxuICBlbHNlIGlmIChlbGVtZW50ICYmIGlzSW5wdXRFbGVtZW50KGVsZW1lbnQubmF0aXZlRWxlbWVudCkpIHtcbiAgICBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPSB0YWJJbmRleDtcbiAgfVxuICBlbHNlIHtcbiAgICBjb25zb2xlLndhcm4oJ1RyeWluZyB0byBjaGFuZ2UgdGFiaW5kZXggb24gdGhpcyBlbGVtZW50OicsIGVsZW1lbnQpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRFbGVtZW50IGV4dGVuZHMgRm9jdXNhYmxlRWxlbWVudCB7XG4gIHRhYmluZGV4PzogbnVtYmVyO1xuICB0YWJJbmRleD86IG51bWJlcjtcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB2YWx1ZTogYW55O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5wdXRFbGVtZW50KG9iamVjdDogYW55KTogb2JqZWN0IGlzIElucHV0RWxlbWVudCB7XG4gIHJldHVybiBpc0ZvY3VzYWJsZUVsZW1lbnQob2JqZWN0KVxuICAgICYmICgndmFsdWUnIGluIG9iamVjdFxuICAgICAgLy8gaGFzIHZhbHVlIGlzIG5vdCBhbHdheXMgc2V0IChuZWl0aGVyIHRhYmluZGV4KSBjaGVjayBvbiAyIHByb3BlcnRpZXMgd2l0aCBhIGxvZ2ljYWwgT1JcbiAgICAgIHx8ICgndGFiaW5kZXgnIGluIG9iamVjdCB8fCAndGFiSW5kZXgnIGluIG9iamVjdCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNJbnB1dEVsZW1lbnQob2JqZWN0OiBFbGVtZW50UmVmKTogSW5wdXRFbGVtZW50fHVuZGVmaW5lZCB7XG4gIGlmIChvYmplY3QpIHtcbiAgICBpZiAoaXNJbnB1dEVsZW1lbnQob2JqZWN0KSkgcmV0dXJuIG9iamVjdDtcbiAgICBpZiAob2JqZWN0Lm5hdGl2ZUVsZW1lbnQgJiYgaXNJbnB1dEVsZW1lbnQob2JqZWN0Lm5hdGl2ZUVsZW1lbnQpKSByZXR1cm4gb2JqZWN0Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRhYmluZGV4Q29tcGFyYXRvcihhOiBJbnB1dEVsZW1lbnQsIGI6IElucHV0RWxlbWVudCkge1xuICBjb25zdCB2YWx1ZUEgPSBhLnRhYmluZGV4IHx8IGEudGFiSW5kZXg7XG4gIGNvbnN0IHZhbHVlQiA9IGIudGFiaW5kZXggfHwgYi50YWJJbmRleDtcbiAgcmV0dXJuIHZhbHVlQSA9PT0gdmFsdWVCID8gMCA6ICh2YWx1ZUEgPiB2YWx1ZUIgPyAxIDogLTEpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbkdhaW5Gb2N1c09wdGlvbnMge1xuICBtaW5UYWJpbmRleD86IG51bWJlcjtcbiAgbWF4VGFiaW5kZXg/OiBudW1iZXI7XG4gIGV4Y2x1ZGVFbXB0eUlucHV0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRGb2N1c2FibGVJbnB1dE9wdGlvbnMgZXh0ZW5kcyBDYW5HYWluRm9jdXNPcHRpb25zIHtcbiAgc29ydEJ5VGFiSW5kZXg/OiBib29sZWFuO1xuICBkZWJ1Zz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW5IYXZlRm9jdXMoaW5wdXQ6IElucHV0RWxlbWVudCwgb3B0cz86IENhbkdhaW5Gb2N1c09wdGlvbnMpOiBib29sZWFuIHtcbiAgaWYgKCFpbnB1dCkgcmV0dXJuIGZhbHNlO1xuICAvLyBFeGNsdWRlIGRpc2FibGVkIGVsZW1lbnRcbiAgcmV0dXJuICF0b0Jvb2xlYW4oaW5wdXQuZGlzYWJsZWQsIGZhbHNlKVxuICAgIC8vIEV4Y2x1ZGUgaGlkZGVuIGVsZW1lbnRcbiAgICAmJiAhdG9Cb29sZWFuKGlucHV0LmhpZGRlbiwgZmFsc2UpXG4gICAgLy8gRXhjbHVkZSBtaW5UYWJJbmRleCA8IGVsZW1lbnQudGFiSW5kZXhcbiAgICAmJiAoaXNOaWwob3B0cy5taW5UYWJpbmRleCkgfHwgdG9OdW1iZXIoaW5wdXQudGFiSW5kZXgsIGlucHV0LnRhYmluZGV4KSA+IG9wdHMubWluVGFiaW5kZXgpXG4gICAgLy8gRXhjbHVkZSBtYXhUYWJJbmRleCA+IGVsZW1lbnQudGFiSW5kZXhcbiAgICAmJiAoaXNOaWwob3B0cy5tYXhUYWJpbmRleCkgfHwgdG9OdW1iZXIoaW5wdXQudGFiSW5kZXgsIGlucHV0LnRhYmluZGV4KSA8IG9wdHMubWF4VGFiaW5kZXgpXG4gICAgLy8gRXhjbHVkZSBuaWwgaW5wdXQgdmFsdWVcbiAgICAmJiAoIW9wdHMuZXhjbHVkZUVtcHR5SW5wdXQgfHwgaXNOaWxPckJsYW5rKGlucHV0LnZhbHVlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2N1c2FibGVJbnB1dEVsZW1lbnRzKGVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4sIG9wdHM/OiBHZXRGb2N1c2FibGVJbnB1dE9wdGlvbnMpOiBJbnB1dEVsZW1lbnRbXSB7XG4gIG9wdHMgPSB7c29ydEJ5VGFiSW5kZXg6IGZhbHNlLCBleGNsdWRlRW1wdHlJbnB1dDogZmFsc2UsIC4uLm9wdHN9O1xuXG4gIC8vIEZvY3VzIHRvIGZpcnN0IGlucHV0XG4gIGNvbnN0IGZpbHRlcmVkRWxlbWVudHM6IElucHV0RWxlbWVudFtdID0gZWxlbWVudHNcblxuICAgIC8vIFRyYW5zZm9ybSB0byBpbnB1dFxuICAgIC5tYXAoYXNJbnB1dEVsZW1lbnQpXG5cbiAgICAuZmlsdGVyKGlucHV0ID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVkID0gY2FuSGF2ZUZvY3VzKGlucHV0LCBvcHRzKTtcbiAgICAgIC8vIERFQlVHXG4gICAgICBpZiAoaW5wdXQgJiYgb3B0cy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW2lucHV0c10gRm9jdXNhYmxlIGlucHV0IHtjYW5Gb2N1czogJHtpbmNsdWRlZH0sIHRhYkluZGV4OiAke2lucHV0LnRhYkluZGV4fHxpbnB1dC50YWJpbmRleH19YCwgaW5wdXQpO1xuICAgICAgcmV0dXJuIGluY2x1ZGVkO1xuICAgIH0pO1xuXG4gIC8vIFNvcnQgYnkgdGFiSW5kZXhcbiAgaWYgKG9wdHMuc29ydEJ5VGFiSW5kZXgpIHtcbiAgICByZXR1cm4gZmlsdGVyZWRFbGVtZW50cy5zb3J0KHRhYmluZGV4Q29tcGFyYXRvcik7XG4gIH1cblxuICByZXR1cm4gZmlsdGVyZWRFbGVtZW50cztcblxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBmb2N1c05leHRJbnB1dChldmVudDogVUlFdmVudHx1bmRlZmluZWQsIGVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4sIG9wdHM/OiBHZXRGb2N1c2FibGVJbnB1dE9wdGlvbnMpOiBib29sZWFuIHtcblxuICAvLyBDYW5jZWxsaW5nIGV2ZW50IChlLmcuIHdoZW4gZW1pdHRlZCBieSAoa2V5ZG93bi50YWIpIClcbiAgaWYgKGV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8vIEdldCBjdXJyZW50IGluZGV4XG4gIGNvbnN0IG1pblRhYmluZGV4ID0gZXZlbnQgJiYgaXNJbnB1dEVsZW1lbnQoZXZlbnQudGFyZ2V0KSA/IChldmVudC50YXJnZXQudGFiSW5kZXggfHwgZXZlbnQudGFyZ2V0LnRhYmluZGV4KSA6IHVuZGVmaW5lZDtcblxuICAvLyBHZXQgZm9jdXNhYmxlIGlucHV0IGVsZW1lbnRzXG4gIGNvbnN0IGZvY3VzYWJsZUlucHV0czogSW5wdXRFbGVtZW50W10gPSBnZXRGb2N1c2FibGVJbnB1dEVsZW1lbnRzKGVsZW1lbnRzLCB7bWluVGFiaW5kZXgsIC4uLm9wdHN9KTtcblxuICBpZiAoaXNOb3RFbXB0eUFycmF5KGZvY3VzYWJsZUlucHV0cykpIHtcbiAgICAvLyBGb2N1cyBvbiBmaXJzdCBpbnB1dHNcbiAgICBmb2N1c2FibGVJbnB1dHNbMF0uZm9jdXMoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzUHJldmlvdXNJbnB1dChldmVudDogVUlFdmVudHx1bmRlZmluZWQsIGVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4sIG9wdHM/OiBHZXRGb2N1c2FibGVJbnB1dE9wdGlvbnMpOiBib29sZWFuIHtcblxuICAvLyBDYW5jZWxsaW5nIGV2ZW50IChlLmcuIHdoZW4gZW1pdHRlZCBieSAoa2V5ZG93bi50YWIpIClcbiAgaWYgKGV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8vIEdldCBjdXJyZW50IGluZGV4XG4gIGNvbnN0IG1heFRhYmluZGV4ID0gZXZlbnQgJiYgaXNJbnB1dEVsZW1lbnQoZXZlbnQudGFyZ2V0KSA/IChldmVudC50YXJnZXQudGFiSW5kZXggfHwgZXZlbnQudGFyZ2V0LnRhYmluZGV4KSA6IHVuZGVmaW5lZDtcblxuICAvLyBHZXQgZm9jdXNhYmxlIGlucHV0IGVsZW1lbnRzXG4gIGNvbnN0IGZvY3VzYWJsZUlucHV0czogSW5wdXRFbGVtZW50W10gPSBnZXRGb2N1c2FibGVJbnB1dEVsZW1lbnRzKGVsZW1lbnRzLCB7bWF4VGFiaW5kZXgsIC4uLm9wdHN9KTtcblxuICBpZiAoaXNOb3RFbXB0eUFycmF5KGZvY3VzYWJsZUlucHV0cykpIHtcbiAgICAvLyBGb2N1cyBvbiBsYXN0IGlucHV0c1xuICAgIGZvY3VzYWJsZUlucHV0c1tmb2N1c2FibGVJbnB1dHMubGVuZ3RoIC0xXS5mb2N1cygpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4iXX0=
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBbUIsa0JBQWtCLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDakUsT0FBTyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBS2hHLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFZO0lBQzdDLElBQUksS0FBSyxDQUFDLGdCQUFnQjtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ3pDLE1BQU0sS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUFjLENBQUM7SUFDcEMsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV4QixvQkFBb0I7SUFDcEIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRTVDLElBQUksT0FBTyxLQUFLLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRTtRQUMzQyxJQUFJO1lBQ0YsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLHFEQUFxRCxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7S0FDRjtJQUVELElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUU7UUFDL0MsSUFBSTtZQUNGLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9B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ZUFBZSxHQUFtQix5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsRUFBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBRXBHLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ3BDLHVCQUF1QjtRQUN2QixlQUFlLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbGVtZW50UmVmLCBRdWVyeUxpc3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb2N1c2FibGVFbGVtZW50LCBpc0ZvY3VzYWJsZUVsZW1lbnR9IGZyb20gJy4vZm9jdXNhYmxlJztcbmltcG9ydCB7aXNOaWwsIGlzTmlsT3JCbGFuaywgaXNOb3RFbXB0eUFycmF5LCBpc05vdE5pbCwgdG9Cb29sZWFuLCB0b051bWJlcn0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuXG5cblxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0SW5wdXRDb250ZW50KGV2ZW50OiBFdmVudCkge1xuICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBpbnB1dCA9IChldmVudC50YXJnZXQgYXMgYW55KTtcbiAgaWYgKCFpbnB1dCkgcmV0dXJuIHRydWU7XG5cbiAgLy8gTm90aGluZyB0byBzZWxlY3RcbiAgaWYgKGlzTmlsT3JCbGFuayhpbnB1dC52YWx1ZSkpIHJldHVybiBmYWxzZTtcblxuICBpZiAodHlwZW9mIGlucHV0LnNlbGVjdFJhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlucHV0LnNlbGVjdFJhbmdlKGlucHV0LnZhbHVlLmxlbmd0aCwgMCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCBzZWxlY3QgaW5wdXQgY29udGVudCwgdXNpbmcgc2VsZWN0UmFuZ2UoKScsIGVycik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlucHV0ICYmIHR5cGVvZiBpbnB1dC5zZWxlY3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgaW5wdXQuc2VsZWN0KCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCBzZWxlY3QgaW5wdXQgY29udGVudCwgdXNpbmcgc2VsZWN0KCknLCBlcnIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdElucHV0UmFuZ2UoaW5wdXQ6IGFueSwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleD86IG51bWJlcikge1xuICBpZiAoaW5wdXQgJiYgdHlwZW9mIGlucHV0LnNldFNlbGVjdGlvblJhbmdlID09PSAnZnVuY3Rpb24nKSB7XG5cbiAgICAvLyBObyBjb250ZW50XG4gICAgaWYgKGlzTmlsT3JCbGFuayhpbnB1dC52YWx1ZSkpIHJldHVybiBmYWxzZTtcblxuICAgIHRyeSB7XG4gICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydEluZGV4LCBpc05vdE5pbChlbmRJbmRleCkgPyBlbmRJbmRleCA6IHN0YXJ0SW5kZXgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IHNlbGVjdCBpbnB1dCByYW5nZScsIGVycik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FyZXRQb3NpdGlvbihpbnB1dDogYW55KTogbnVtYmVyIHtcbiAgaWYgKGlucHV0ICYmIGlucHV0LnNlbGVjdGlvblN0YXJ0KSB7XG4gICAgcmV0dXJuIGlucHV0LnNlbGVjdGlvbkRpcmVjdGlvbiA/XG4gICAgICAoaW5wdXQuc2VsZWN0aW9uRGlyZWN0aW9uID09PSAnYmFja3dhcmQnID8gaW5wdXQuc2VsZWN0aW9uU3RhcnQgOiBpbnB1dC5zZWxlY3Rpb25FbmQpIDogaW5wdXQuc2VsZWN0aW9uU3RhcnQ7XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW92ZUlucHV0Q2FyZXRUb1NlcGFyYXRvcihldmVudDogS2V5Ym9hcmRFdmVudCwgc2VwYXJhdG9yOiBzdHJpbmcsIGZvcndhcmQ/OiBib29sZWFuKSB7XG4gIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkIHx8ICFzZXBhcmF0b3IpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgaW5wdXQgPSAoZXZlbnQudGFyZ2V0IGFzIGFueSk7XG4gIGlmICghaW5wdXQpIHJldHVybiB0cnVlO1xuXG4gIGNvbnN0IGNhcmV0UG9zaXRpb24gPSBnZXRDYXJldFBvc2l0aW9uKGlucHV0KTtcblxuICAvLyBERUJVR1xuICAvL2NvbnNvbGUuZGVidWcoJ2NhcmV0UG9zaXRpb249JywgY2FyZXRQb3NpdGlvbik7XG5cbiAgaWYgKGNhcmV0UG9zaXRpb24gPT09IC0xKSByZXR1cm4gdHJ1ZTsgLy8gQ2FyZXQgcG9zIG5vdCBmb3VuZDogc2tpcFxuXG4gIC8vIEdldCBpbnB1dCB2YWx1ZVxuICBjb25zdCB2YWx1ZSA9IGlucHV0LnZhbHVlIGFzIHN0cmluZztcblxuICAvLyBObyBjb250ZW50OiBza2lwXG4gIGlmIChpc05pbE9yQmxhbmsodmFsdWUpKSByZXR1cm4gZmFsc2U7XG5cbiAgdHJ5IHtcblxuXG4gICAgaWYgKHZhbHVlICYmIGNhcmV0UG9zaXRpb24gPD0gdmFsdWUubGVuZ3RoKSB7XG4gICAgICAvLyBERUJVR1xuICAgICAgLy9jb25zb2xlLmRlYnVnKFwiSW5wdXQgdGV4dCB2YWx1ZTogXCIsIHZhbHVlKTtcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIkN1cnNvciBhdDogXCIsIGNhcmV0UG9zaXRpb24pO1xuICAgICAgLy9jb25zb2xlLmRlYnVnKFwiVGV4dCBhZnRlciBjdXJzb3I6IFwiLCB2YWx1ZS5zdWJzdHIoY2FyZXRQb3NpdGlvbikpO1xuICAgICAgLy9jb25zb2xlLmRlYnVnKFwiTmV4dCBzZXBhcmF0b3IgYXQ6IFwiLCB2YWx1ZS5pbmRleE9mKHNlcGFyYXRvciwgY2FyZXRQb3NpdGlvbikpO1xuXG4gICAgICBmb3J3YXJkID0gZm9yd2FyZCAhPT0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IHNlcGFyYXRvckluZGV4ID0gKGZvcndhcmQgPyB2YWx1ZS5pbmRleE9mKHNlcGFyYXRvciwgY2FyZXRQb3NpdGlvbikgOiB2YWx1ZS5sYXN0SW5kZXhPZihzZXBhcmF0b3IsIGNhcmV0UG9zaXRpb24pKTtcbiAgICAgIGlmIChzZXBhcmF0b3JJbmRleCAhPT0gLTEgJiYgKChmb3J3YXJkICYmIHNlcGFyYXRvckluZGV4ICsgMSA8IHZhbHVlLmxlbmd0aClcbiAgICAgICAgfHwgKCFmb3J3YXJkICYmIHNlcGFyYXRvckluZGV4ID4gMCkpKSB7XG4gICAgICAgIGlmIChpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSkge1xuICAgICAgICAgIC8vIE1vdmUgYWZ0ZXIgdGhlIG5leHQgc2VwYXJhdG9yXG4gICAgICAgICAgaWYgKHNlbGVjdElucHV0UmFuZ2UoaW5wdXQsIHNlcGFyYXRvckluZGV4ICsgKGZvcndhcmQgPyAxIDogLTEpKSkge1xuICAgICAgICAgICAgLy8gU3RvcCB0aGUga2V5Ym9hcmQgZXZlbnRcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCBtb3ZlIGNhcmV0IHRvIG5leHQgc2VwYXJhdG9yJywgZXJyKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJOdW1iZXJJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCwgYWxsb3dEZWNpbWFsczogYm9vbGVhbiwgZGVjaW1hbFNlcGFyYXRvcj86IHN0cmluZykge1xuICAvL2lucHV0IG51bWJlciBlbnRlcmVkIG9yIG9uZSBvZiB0aGUgNCBkaXJlY3Rpb24gdXAsIGRvd24sIGxlZnQgYW5kIHJpZ2h0XG4gIGlmICgoZXZlbnQud2hpY2ggPj0gNDggJiYgZXZlbnQud2hpY2ggPD0gNTcpIHx8IChldmVudC53aGljaCA+PSAzNyAmJiBldmVudC53aGljaCA8PSA0MCkpIHtcbiAgICAvL2NvbnNvbGUuZGVidWcoJ2lucHV0IG51bWJlciBlbnRlcmVkIDonICsgZXZlbnQud2hpY2ggKyAnICcgKyBldmVudC5rZXlDb2RlICsgJyAnICsgZXZlbnQuY2hhckNvZGUpO1xuICAgIC8vIE9LXG4gIH1cbiAgLy8gRGVjaW1hbCBzZXBhcmF0b3JcbiAgZWxzZSBpZiAoYWxsb3dEZWNpbWFscyAmJiAoKCFkZWNpbWFsU2VwYXJhdG9yICYmIChldmVudC5rZXkgPT09ICcuJyB8fCBldmVudC5rZXkgPT09ICcsJykpXG4gICAgfHwgKGRlY2ltYWxTZXBhcmF0b3IgJiYgZXZlbnQua2V5ID09PSBkZWNpbWFsU2VwYXJhdG9yKSkpIHtcbiAgICAvL2NvbnNvbGUuZGVidWcoJ2lucHV0IGRlY2ltYWwgc2VwYXJhdG9yIGVudGVyZWQgOicgKyBldmVudC5jb2RlKTtcbiAgICAvLyBPS1xuICB9IGVsc2Uge1xuICAgIC8vaW5wdXQgY29tbWFuZCBlbnRlcmVkIG9mIGRlbGV0ZSwgYmFja3NwYWNlIG9yIG9uZSBvZiB0aGUgNCBkaXJlY3Rpb24gdXAsIGRvd24sIGxlZnQgYW5kIHJpZ2h0LCBvciBuZWdhdGl2ZSBzaWduXG4gICAgaWYgKChldmVudC5rZXlDb2RlID49IDM3ICYmIGV2ZW50LmtleUNvZGUgPD0gNDApIHx8IGV2ZW50LmtleUNvZGUgPT0gNDYgfHwgZXZlbnQud2hpY2ggPT0gOCB8fCBldmVudC5rZXlDb2RlID09IDkgfHwgZXZlbnQua2V5Q29kZSA9PSA0NSkge1xuICAgICAgLy9jb25zb2xlLmRlYnVnKCdpbnB1dCBjb21tYW5kIGVudGVyZWQgOicgKyBldmVudC53aGljaCArICcgJyArIGV2ZW50LmtleUNvZGUgKyAnICcgKyBldmVudC5jaGFyQ29kZSk7XG4gICAgICAvLyBPS1xuICAgIH1cbiAgICAvLyBDYW5jZWwgb3RoZXIga2V5Ym9hcmQgZXZlbnRzXG4gICAgZWxzZSB7XG4gICAgICAvL2NvbnNvbGUuZGVidWcoJ2lucHV0IG5vdCBudW1iZXIgZW50ZXJlZCA6JyArIGV2ZW50LndoaWNoICsgJyAnICsgZXZlbnQua2V5Q29kZSArICcgJyArIGV2ZW50LmNoYXJDb2RlICsgJyAnICsgZXZlbnQuY29kZSApO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzSW5wdXQoZWxlbWVudDogRWxlbWVudFJlZikge1xuICBjb25zdCBpbnB1dEVsZW1lbnQgPSBhc0lucHV0RWxlbWVudChlbGVtZW50KTtcbiAgaWYgKGlucHV0RWxlbWVudClcbiAgICBpbnB1dEVsZW1lbnQuZm9jdXMoKTtcbiAgZWxzZSB7XG4gICAgY29uc29sZS53YXJuKCdUcnlpbmcgdG8gZm9jdXMgb24gdGhpcyBlbGVtZW50OicsIGVsZW1lbnQpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRUYWJJbmRleChlbGVtZW50OiBFbGVtZW50UmVmLCB0YWJJbmRleDogbnVtYmVyKSB7XG4gIGlmKGlzSW5wdXRFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgZWxlbWVudC50YWJpbmRleCA9IHRhYkluZGV4O1xuICB9XG4gIGVsc2UgaWYgKGVsZW1lbnQgJiYgaXNJbnB1dEVsZW1lbnQoZWxlbWVudC5uYXRpdmVFbGVtZW50KSkge1xuICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC50YWJJbmRleCA9IHRhYkluZGV4O1xuICB9XG4gIGVsc2Uge1xuICAgIGNvbnNvbGUud2FybignVHJ5aW5nIHRvIGNoYW5nZSB0YWJpbmRleCBvbiB0aGlzIGVsZW1lbnQ6JywgZWxlbWVudCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dEVsZW1lbnQgZXh0ZW5kcyBGb2N1c2FibGVFbGVtZW50IHtcbiAgdGFiaW5kZXg/OiBudW1iZXI7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHZhbHVlOiBhbnk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNJbnB1dEVsZW1lbnQob2JqZWN0OiBhbnkpOiBvYmplY3QgaXMgSW5wdXRFbGVtZW50IHtcbiAgcmV0dXJuIGlzRm9jdXNhYmxlRWxlbWVudChvYmplY3QpXG4gICAgJiYgKCd2YWx1ZScgaW4gb2JqZWN0XG4gICAgICAvLyBoYXMgdmFsdWUgaXMgbm90IGFsd2F5cyBzZXQgKG5laXRoZXIgdGFiaW5kZXgpIGNoZWNrIG9uIDIgcHJvcGVydGllcyB3aXRoIGEgbG9naWNhbCBPUlxuICAgICAgfHwgKCd0YWJpbmRleCcgaW4gb2JqZWN0IHx8ICd0YWJJbmRleCcgaW4gb2JqZWN0KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc0lucHV0RWxlbWVudChvYmplY3Q6IEVsZW1lbnRSZWYpOiBJbnB1dEVsZW1lbnR8dW5kZWZpbmVkIHtcbiAgaWYgKG9iamVjdCkge1xuICAgIGlmIChpc0lucHV0RWxlbWVudChvYmplY3QpKSByZXR1cm4gb2JqZWN0O1xuICAgIGlmIChvYmplY3QubmF0aXZlRWxlbWVudCAmJiBpc0lucHV0RWxlbWVudChvYmplY3QubmF0aXZlRWxlbWVudCkpIHJldHVybiBvYmplY3QubmF0aXZlRWxlbWVudDtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFiaW5kZXhDb21wYXJhdG9yKGE6IElucHV0RWxlbWVudCwgYjogSW5wdXRFbGVtZW50KSB7XG4gIGNvbnN0IHZhbHVlQSA9IGEudGFiaW5kZXggfHwgYS50YWJJbmRleDtcbiAgY29uc3QgdmFsdWVCID0gYi50YWJpbmRleCB8fCBiLnRhYkluZGV4O1xuICByZXR1cm4gdmFsdWVBID09PSB2YWx1ZUIgPyAwIDogKHZhbHVlQSA+IHZhbHVlQiA/IDEgOiAtMSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuR2FpbkZvY3VzT3B0aW9ucyB7XG4gIG1pblRhYmluZGV4PzogbnVtYmVyO1xuICBtYXhUYWJpbmRleD86IG51bWJlcjtcbiAgZXhjbHVkZUVtcHR5SW5wdXQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEZvY3VzYWJsZUlucHV0T3B0aW9ucyBleHRlbmRzIENhbkdhaW5Gb2N1c09wdGlvbnMge1xuICBzb3J0QnlUYWJJbmRleD86IGJvb2xlYW47XG4gIGRlYnVnPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbkhhdmVGb2N1cyhpbnB1dDogSW5wdXRFbGVtZW50LCBvcHRzPzogQ2FuR2FpbkZvY3VzT3B0aW9ucyk6IGJvb2xlYW4ge1xuICBpZiAoIWlucHV0KSByZXR1cm4gZmFsc2U7XG4gIC8vIEV4Y2x1ZGUgZGlzYWJsZWQgZWxlbWVudFxuICByZXR1cm4gIXRvQm9vbGVhbihpbnB1dC5kaXNhYmxlZCwgZmFsc2UpXG4gICAgLy8gRXhjbHVkZSBoaWRkZW4gZWxlbWVudFxuICAgICYmICF0b0Jvb2xlYW4oaW5wdXQuaGlkZGVuLCBmYWxzZSlcbiAgICAvLyBFeGNsdWRlIG1pblRhYkluZGV4IDwgZWxlbWVudC50YWJJbmRleFxuICAgICYmIChpc05pbChvcHRzLm1pblRhYmluZGV4KSB8fCB0b051bWJlcihpbnB1dC50YWJJbmRleCwgaW5wdXQudGFiaW5kZXgpID4gb3B0cy5taW5UYWJpbmRleClcbiAgICAvLyBFeGNsdWRlIG1heFRhYkluZGV4ID4gZWxlbWVudC50YWJJbmRleFxuICAgICYmIChpc05pbChvcHRzLm1heFRhYmluZGV4KSB8fCB0b051bWJlcihpbnB1dC50YWJJbmRleCwgaW5wdXQudGFiaW5kZXgpIDwgb3B0cy5tYXhUYWJpbmRleClcbiAgICAvLyBFeGNsdWRlIG5pbCBpbnB1dCB2YWx1ZVxuICAgICYmICghb3B0cy5leGNsdWRlRW1wdHlJbnB1dCB8fCBpc05pbE9yQmxhbmsoaW5wdXQudmFsdWUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvY3VzYWJsZUlucHV0RWxlbWVudHMoZWxlbWVudHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPiwgb3B0cz86IEdldEZvY3VzYWJsZUlucHV0T3B0aW9ucyk6IElucHV0RWxlbWVudFtdIHtcbiAgb3B0cyA9IHtzb3J0QnlUYWJJbmRleDogZmFsc2UsIGV4Y2x1ZGVFbXB0eUlucHV0OiBmYWxzZSwgLi4ub3B0c307XG5cbiAgLy8gRm9jdXMgdG8gZmlyc3QgaW5wdXRcbiAgY29uc3QgZmlsdGVyZWRFbGVtZW50czogSW5wdXRFbGVtZW50W10gPSBlbGVtZW50c1xuXG4gICAgLy8gVHJhbnNmb3JtIHRvIGlucHV0XG4gICAgLm1hcChhc0lucHV0RWxlbWVudClcblxuICAgIC5maWx0ZXIoaW5wdXQgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZWQgPSBjYW5IYXZlRm9jdXMoaW5wdXQsIG9wdHMpO1xuICAgICAgLy8gREVCVUdcbiAgICAgIGlmIChpbnB1dCAmJiBvcHRzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGBbaW5wdXRzXSBGb2N1c2FibGUgaW5wdXQge2NhbkZvY3VzOiAke2luY2x1ZGVkfSwgdGFiSW5kZXg6ICR7aW5wdXQudGFiSW5kZXh8fGlucHV0LnRhYmluZGV4fX1gLCBpbnB1dCk7XG4gICAgICByZXR1cm4gaW5jbHVkZWQ7XG4gICAgfSk7XG5cbiAgLy8gU29ydCBieSB0YWJJbmRleFxuICBpZiAob3B0cy5zb3J0QnlUYWJJbmRleCkge1xuICAgIHJldHVybiBmaWx0ZXJlZEVsZW1lbnRzLnNvcnQodGFiaW5kZXhDb21wYXJhdG9yKTtcbiAgfVxuXG4gIHJldHVybiBmaWx0ZXJlZEVsZW1lbnRzO1xuXG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzTmV4dElucHV0KGV2ZW50OiBFdmVudHx1bmRlZmluZWQsIGVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4sIG9wdHM/OiBHZXRGb2N1c2FibGVJbnB1dE9wdGlvbnMpOiBib29sZWFuIHtcblxuICAvLyBDYW5jZWxsaW5nIGV2ZW50IChlLmcuIHdoZW4gZW1pdHRlZCBieSAoa2V5ZG93bi50YWIpIClcbiAgaWYgKGV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8vIEdldCBjdXJyZW50IGluZGV4XG4gIGNvbnN0IG1pblRhYmluZGV4ID0gZXZlbnQgJiYgaXNJbnB1dEVsZW1lbnQoZXZlbnQudGFyZ2V0KSA/IChldmVudC50YXJnZXQudGFiSW5kZXggfHwgZXZlbnQudGFyZ2V0LnRhYmluZGV4KSA6IHVuZGVmaW5lZDtcblxuICAvLyBHZXQgZm9jdXNhYmxlIGlucHV0IGVsZW1lbnRzXG4gIGNvbnN0IGZvY3VzYWJsZUlucHV0czogSW5wdXRFbGVtZW50W10gPSBnZXRGb2N1c2FibGVJbnB1dEVsZW1lbnRzKGVsZW1lbnRzLCB7bWluVGFiaW5kZXgsIC4uLm9wdHN9KTtcblxuICBpZiAoaXNOb3RFbXB0eUFycmF5KGZvY3VzYWJsZUlucHV0cykpIHtcbiAgICAvLyBGb2N1cyBvbiBmaXJzdCBpbnB1dHNcbiAgICBmb2N1c2FibGVJbnB1dHNbMF0uZm9jdXMoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzUHJldmlvdXNJbnB1dChldmVudDogRXZlbnR8dW5kZWZpbmVkLCBlbGVtZW50czogUXVlcnlMaXN0PEVsZW1lbnRSZWY+LCBvcHRzPzogR2V0Rm9jdXNhYmxlSW5wdXRPcHRpb25zKTogYm9vbGVhbiB7XG5cbiAgLy8gQ2FuY2VsbGluZyBldmVudCAoZS5nLiB3aGVuIGVtaXR0ZWQgYnkgKGtleWRvd24udGFiKSApXG4gIGlmIChldmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICAvLyBHZXQgY3VycmVudCBpbmRleFxuICBjb25zdCBtYXhUYWJpbmRleCA9IGV2ZW50ICYmIGlzSW5wdXRFbGVtZW50KGV2ZW50LnRhcmdldCkgPyAoZXZlbnQudGFyZ2V0LnRhYkluZGV4IHx8IGV2ZW50LnRhcmdldC50YWJpbmRleCkgOiB1bmRlZmluZWQ7XG5cbiAgLy8gR2V0IGZvY3VzYWJsZSBpbnB1dCBlbGVtZW50c1xuICBjb25zdCBmb2N1c2FibGVJbnB1dHM6IElucHV0RWxlbWVudFtdID0gZ2V0Rm9jdXNhYmxlSW5wdXRFbGVtZW50cyhlbGVtZW50cywge21heFRhYmluZGV4LCAuLi5vcHRzfSk7XG5cbiAgaWYgKGlzTm90RW1wdHlBcnJheShmb2N1c2FibGVJbnB1dHMpKSB7XG4gICAgLy8gRm9jdXMgb24gbGFzdCBpbnB1dHNcbiAgICBmb2N1c2FibGVJbnB1dHNbZm9jdXNhYmxlSW5wdXRzLmxlbmd0aCAtMV0uZm9jdXMoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuIl19
@@ -0,0 +1,47 @@
1
+ import { MatAutocompleteFieldUtils } from './material.autocomplete.utils';
2
+ export class MatAutocompleteConfigHolder {
3
+ constructor(options) {
4
+ this.options = options;
5
+ this.fields = {};
6
+ // Store the function from options (e.g. get from user settings)
7
+ // or create a default function
8
+ this.getUserAttributes = options?.getUserAttributes ||
9
+ ((fieldName, defaultAttributes) => defaultAttributes || ['label', 'name']);
10
+ }
11
+ add(fieldName, options) {
12
+ if (!fieldName) {
13
+ throw new Error('Unable to add config, with name: ' + (fieldName || 'undefined'));
14
+ }
15
+ options = options || {};
16
+ const suggestFn = options.suggestFn
17
+ || (options.service && ((v, f) => options.service.suggest(v, f)))
18
+ || undefined;
19
+ const attributes = (this.getUserAttributes(fieldName, options.attributes) || ['label', 'name']);
20
+ // Keep original the function from options, when exists
21
+ const attributesOrFn = attributes.map((a, index) => typeof a === 'function' && options.attributes[index] || a);
22
+ const filter = {
23
+ searchAttribute: attributes.length === 1 ? attributes[0] : undefined,
24
+ searchAttributes: attributes.length > 1 ? attributes : undefined,
25
+ ...options.filter
26
+ };
27
+ const displayWith = options.displayWith || MatAutocompleteFieldUtils.createDisplayFn(attributes, options.multiple);
28
+ const equals = options.equals || MatAutocompleteFieldUtils.defaultEquals;
29
+ const config = {
30
+ ...options,
31
+ attributes: attributesOrFn,
32
+ suggestFn,
33
+ filter,
34
+ displayWith,
35
+ equals
36
+ };
37
+ this.fields[fieldName] = config;
38
+ return config;
39
+ }
40
+ get(fieldName) {
41
+ if (!fieldName) {
42
+ throw new Error('Unable to add config, with name: ' + (fieldName || 'undefined'));
43
+ }
44
+ return this.fields[fieldName] || this.add(fieldName);
45
+ }
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuYXV0b2NvbXBsZXRlLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9tYXRlcmlhbC5hdXRvY29tcGxldGUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBMkJ4RSxNQUFNLE9BQU8sMkJBQTJCO0lBT3RDLFlBQW9CLE9BRW5CO1FBRm1CLFlBQU8sR0FBUCxPQUFPLENBRTFCO1FBUkQsV0FBTSxHQUVGLEVBQUUsQ0FBQztRQU9MLGdFQUFnRTtRQUNoRSwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sRUFBRSxpQkFBaUI7WUFDakQsQ0FBQyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLENBQUMsaUJBQWlCLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsR0FBRyxDQUFtQixTQUFpQixFQUFFLE9BQThDO1FBQ3JGLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxHQUFHLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDbkY7UUFDRCxPQUFPLEdBQUcsT0FBTyxJQUFvQyxFQUFFLENBQUM7UUFDeEQsTUFBTSxTQUFTLEdBQW9CLE9BQU8sQ0FBQyxTQUFTO2VBQy9DLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7ZUFDOUQsU0FBUyxDQUFDO1FBQ2YsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLHVEQUF1RDtRQUN2RCxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssVUFBVSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0csTUFBTSxNQUFNLEdBQWU7WUFDekIsZUFBZSxFQUFFLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDcEUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNoRSxHQUFHLE9BQU8sQ0FBQyxNQUFNO1NBQ2xCLENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ILE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUkseUJBQXlCLENBQUMsYUFBYSxDQUFDO1FBRXpFLE1BQU0sTUFBTSxHQUErQjtZQUN6QyxHQUFHLE9BQU87WUFDVixVQUFVLEVBQUUsY0FBYztZQUMxQixTQUFTO1lBQ1QsTUFBTTtZQUNOLFdBQVc7WUFDWCxNQUFNO1NBQ1AsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2hDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxHQUFHLENBQVUsU0FBaUI7UUFDNUIsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLEdBQUcsQ0FBQyxTQUFTLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQztTQUNuRjtRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBa0MsQ0FBQztJQUN4RixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvYWRSZXN1bHQsIFN1Z2dlc3RGbiwgU3VnZ2VzdFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlRmllbGRVdGlsc30gZnJvbSAnLi9tYXRlcmlhbC5hdXRvY29tcGxldGUudXRpbHMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGlzcGxheUZuLCBFcXVhbHNGbn0gZnJvbSAnLi4vLi4vZm9ybS9maWVsZC5tb2RlbCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZzxUID0gYW55LCBGID0gYW55PiB7XG4gIGF0dHJpYnV0ZXM6IHN0cmluZ1tdO1xuICBzdWdnZXN0Rm4/OiAodmFsdWU6IGFueSwgb3B0aW9ucz86IGFueSkgPT4gUHJvbWlzZTxUW10gfCBMb2FkUmVzdWx0PFQ+PjtcbiAgZmlsdGVyPzogUGFydGlhbDxGPjtcbiAgaXRlbXM/OiBPYnNlcnZhYmxlPFRbXT4gfCBUW107XG4gIGNvbHVtblNpemVzPzogKG51bWJlciB8ICdhdXRvJyB8IHVuZGVmaW5lZClbXTtcbiAgY29sdW1uTmFtZXM/OiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdO1xuICBtdWx0aXBsZT86IGJvb2xlYW47XG4gIGRpc3BsYXlXaXRoPzogRGlzcGxheUZuO1xuICBlcXVhbHM/OiBFcXVhbHNGbjsgLy8gVXNlZCBieSA8bWF0LWNoaXBzLWZpZWxkPlxuICBzaG93QWxsT25Gb2N1cz86IGJvb2xlYW47XG4gIHNob3dQYW5lbE9uRm9jdXM/OiBib29sZWFuO1xuICBjbGFzcz86IHN0cmluZztcbiAgbW9iaWxlPzogYm9vbGVhbjtcbiAgZGVib3VuY2VUaW1lPzogbnVtYmVyO1xuICBzdWdnZXN0TGVuZ3RoVGhyZXNob2xkPzogbnVtYmVyO1xuICBoaWdobGlnaHRBY2NlbnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWF0QXV0b2NvbXBsZXRlRmllbGRBZGRPcHRpb25zPFQgPSBhbnksIEYgPSBhbnk+IGV4dGVuZHMgUGFydGlhbDxNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZzxULCBGPj4ge1xuICBzZXJ2aWNlPzogU3VnZ2VzdFNlcnZpY2U8VCwgRj47XG59XG5cbmV4cG9ydCBjbGFzcyBNYXRBdXRvY29tcGxldGVDb25maWdIb2xkZXIge1xuICBmaWVsZHM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZztcbiAgfSA9IHt9O1xuXG4gIGdldFVzZXJBdHRyaWJ1dGVzOiAoZmllbGROYW1lOiBzdHJpbmcsIGRlZmF1bHRBdHRyaWJ1dGVzPzogc3RyaW5nW10pID0+IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9ucz86IHtcbiAgICBnZXRVc2VyQXR0cmlidXRlczogKGZpZWxkTmFtZTogc3RyaW5nLCBkZWZhdWx0QXR0cmlidXRlcz86IHN0cmluZ1tdKSA9PiBzdHJpbmdbXTtcbiAgfSkge1xuICAgIC8vIFN0b3JlIHRoZSBmdW5jdGlvbiBmcm9tIG9wdGlvbnMgKGUuZy4gZ2V0IGZyb20gdXNlciBzZXR0aW5ncylcbiAgICAvLyBvciBjcmVhdGUgYSBkZWZhdWx0IGZ1bmN0aW9uXG4gICAgdGhpcy5nZXRVc2VyQXR0cmlidXRlcyA9IG9wdGlvbnM/LmdldFVzZXJBdHRyaWJ1dGVzIHx8XG4gICAgICAoKGZpZWxkTmFtZSwgZGVmYXVsdEF0dHJpYnV0ZXMpID0+IGRlZmF1bHRBdHRyaWJ1dGVzIHx8IFsnbGFiZWwnLCAnbmFtZSddKTtcbiAgfVxuXG4gIGFkZDxUID0gYW55LCBGID0gYW55PihmaWVsZE5hbWU6IHN0cmluZywgb3B0aW9ucz86IE1hdEF1dG9jb21wbGV0ZUZpZWxkQWRkT3B0aW9uczxULCBGPik6IE1hdEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnPFQsIEY+IHtcbiAgICBpZiAoIWZpZWxkTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gYWRkIGNvbmZpZywgd2l0aCBuYW1lOiAnICsgKGZpZWxkTmFtZSB8fCAndW5kZWZpbmVkJykpO1xuICAgIH1cbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCA8TWF0QXV0b2NvbXBsZXRlRmllbGRBZGRPcHRpb25zPnt9O1xuICAgIGNvbnN0IHN1Z2dlc3RGbjogU3VnZ2VzdEZuPFQsIEY+ID0gb3B0aW9ucy5zdWdnZXN0Rm5cbiAgICAgIHx8IChvcHRpb25zLnNlcnZpY2UgJiYgKCh2LCBmKSA9PiBvcHRpb25zLnNlcnZpY2Uuc3VnZ2VzdCh2LCBmKSkpXG4gICAgICB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9ICh0aGlzLmdldFVzZXJBdHRyaWJ1dGVzKGZpZWxkTmFtZSwgb3B0aW9ucy5hdHRyaWJ1dGVzKSB8fCBbJ2xhYmVsJywgJ25hbWUnXSk7XG4gICAgLy8gS2VlcCBvcmlnaW5hbCB0aGUgZnVuY3Rpb24gZnJvbSBvcHRpb25zLCB3aGVuIGV4aXN0c1xuICAgIGNvbnN0IGF0dHJpYnV0ZXNPckZuID0gYXR0cmlidXRlcy5tYXAoKGEsIGluZGV4KSA9PiB0eXBlb2YgYSA9PT0gJ2Z1bmN0aW9uJyAmJiBvcHRpb25zLmF0dHJpYnV0ZXNbaW5kZXhdIHx8IGEpO1xuICAgIGNvbnN0IGZpbHRlcjogUGFydGlhbDxGPiA9IHtcbiAgICAgIHNlYXJjaEF0dHJpYnV0ZTogYXR0cmlidXRlcy5sZW5ndGggPT09IDEgPyBhdHRyaWJ1dGVzWzBdIDogdW5kZWZpbmVkLFxuICAgICAgc2VhcmNoQXR0cmlidXRlczogYXR0cmlidXRlcy5sZW5ndGggPiAxID8gYXR0cmlidXRlcyA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wdGlvbnMuZmlsdGVyXG4gICAgfTtcbiAgICBjb25zdCBkaXNwbGF5V2l0aCA9IG9wdGlvbnMuZGlzcGxheVdpdGggfHwgTWF0QXV0b2NvbXBsZXRlRmllbGRVdGlscy5jcmVhdGVEaXNwbGF5Rm4oYXR0cmlidXRlcywgb3B0aW9ucy5tdWx0aXBsZSk7XG4gICAgY29uc3QgZXF1YWxzID0gb3B0aW9ucy5lcXVhbHMgfHwgTWF0QXV0b2NvbXBsZXRlRmllbGRVdGlscy5kZWZhdWx0RXF1YWxzO1xuXG4gICAgY29uc3QgY29uZmlnOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzT3JGbixcbiAgICAgIHN1Z2dlc3RGbixcbiAgICAgIGZpbHRlcixcbiAgICAgIGRpc3BsYXlXaXRoLFxuICAgICAgZXF1YWxzXG4gICAgfTtcblxuICAgIHRoaXMuZmllbGRzW2ZpZWxkTmFtZV0gPSBjb25maWc7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIGdldDxUID0gYW55PihmaWVsZE5hbWU6IHN0cmluZyk6IE1hdEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnPFQ+IHtcbiAgICBpZiAoIWZpZWxkTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gYWRkIGNvbmZpZywgd2l0aCBuYW1lOiAnICsgKGZpZWxkTmFtZSB8fCAndW5kZWZpbmVkJykpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5maWVsZHNbZmllbGROYW1lXSB8fCB0aGlzLmFkZChmaWVsZE5hbWUpIGFzIE1hdEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnPFQ+O1xuICB9XG59XG4iXX0=