@sumaris-net/ngx-components 2.6.17 → 4.0.0-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (721) hide show
  1. package/esm2022/public_api.mjs +337 -0
  2. package/{esm2020 → esm2022}/src/app/admin/admin-routing.module.mjs +8 -8
  3. package/{esm2020 → esm2022}/src/app/admin/admin.module.mjs +11 -11
  4. package/esm2022/src/app/admin/services/filter/person.filter.mjs +68 -0
  5. package/esm2022/src/app/admin/services/person.service.mjs +174 -0
  6. package/esm2022/src/app/admin/services/validator/person.validator.mjs +72 -0
  7. package/esm2022/src/app/admin/users/users.mjs +273 -0
  8. package/esm2022/src/app/admin/users/users.module.mjs +58 -0
  9. package/esm2022/src/app/core/about/about.modal.mjs +84 -0
  10. package/{esm2020 → esm2022}/src/app/core/about/about.module.mjs +9 -9
  11. package/{esm2020 → esm2022}/src/app/core/account/account.module.mjs +22 -22
  12. package/esm2022/src/app/core/account/account.page.mjs +335 -0
  13. package/esm2022/src/app/core/account/new-token.modal.mjs +125 -0
  14. package/esm2022/src/app/core/account/token.table.mjs +141 -0
  15. package/esm2022/src/app/core/auth/auth.form.mjs +140 -0
  16. package/esm2022/src/app/core/auth/auth.modal.mjs +76 -0
  17. package/{esm2020 → esm2022}/src/app/core/auth/auth.module.mjs +16 -16
  18. package/{esm2020 → esm2022}/src/app/core/core.module.mjs +87 -87
  19. package/esm2022/src/app/core/core.testing.module.mjs +93 -0
  20. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +109 -0
  21. package/{esm2020 → esm2022}/src/app/core/form/buttons/form-buttons-bar.module.mjs +10 -10
  22. package/esm2022/src/app/core/form/entity/editor.class.mjs +713 -0
  23. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +436 -0
  24. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +724 -0
  25. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +24 -0
  26. package/{esm2020 → esm2022}/src/app/core/form/entity/entity.module.mjs +11 -11
  27. package/esm2022/src/app/core/form/form.class.mjs +353 -0
  28. package/{esm2020 → esm2022}/src/app/core/form/form.module.mjs +30 -30
  29. package/{esm2020 → esm2022}/src/app/core/form/form.utils.mjs +69 -60
  30. package/esm2022/src/app/core/form/list/list.form.mjs +233 -0
  31. package/{esm2020 → esm2022}/src/app/core/form/list/list.module.mjs +10 -10
  32. package/esm2022/src/app/core/form/properties/properties.form.mjs +143 -0
  33. package/{esm2020 → esm2022}/src/app/core/form/properties/properties.module.mjs +13 -13
  34. package/esm2022/src/app/core/form/properties/properties.table.mjs +269 -0
  35. package/esm2022/src/app/core/form/properties/property.validator.mjs +24 -0
  36. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +95 -0
  37. package/{esm2020 → esm2022}/src/app/core/form/properties/testing/properties-form.testing.module.mjs +11 -11
  38. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +73 -0
  39. package/{esm2020 → esm2022}/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -10
  40. package/esm2022/src/app/core/form/text-popover/text-form.component.mjs +97 -0
  41. package/{esm2020 → esm2022}/src/app/core/form/text-popover/text-popover.component.mjs +26 -20
  42. package/{esm2020 → esm2022}/src/app/core/form/text-popover/text-popover.module.mjs +12 -12
  43. package/{esm2020 → esm2022}/src/app/core/graphql/graphql.module.mjs +5 -5
  44. package/esm2022/src/app/core/graphql/graphql.service.mjs +787 -0
  45. package/{esm2020 → esm2022}/src/app/core/graphql/graphql.utils.mjs +2 -1
  46. package/esm2022/src/app/core/home/home.mjs +283 -0
  47. package/esm2022/src/app/core/home/home.module.mjs +51 -0
  48. package/esm2022/src/app/core/icon/icon.component.mjs +40 -0
  49. package/{esm2020 → esm2022}/src/app/core/icon/icon.module.mjs +7 -7
  50. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +358 -0
  51. package/{esm2020 → esm2022}/src/app/core/install/install-upgrade-card.module.mjs +10 -10
  52. package/esm2022/src/app/core/menu/menu.component.mjs +260 -0
  53. package/esm2022/src/app/core/menu/menu.model.mjs +268 -0
  54. package/esm2022/src/app/core/menu/menu.module.mjs +52 -0
  55. package/esm2022/src/app/core/menu/menu.service.mjs +665 -0
  56. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +109 -0
  57. package/{esm2020 → esm2022}/src/app/core/menu/testing/menu-other.testing.mjs +4 -4
  58. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +122 -0
  59. package/{esm2020 → esm2022}/src/app/core/menu/testing/menu.testing.module.mjs +12 -12
  60. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +29 -0
  61. package/{esm2020 → esm2022}/src/app/core/offline/update-offline-mode-card.module.mjs +10 -10
  62. package/esm2022/src/app/core/peer/select-peer.modal.mjs +192 -0
  63. package/{esm2020 → esm2022}/src/app/core/peer/select-peer.module.mjs +13 -13
  64. package/esm2022/src/app/core/register/register-confirm.page.mjs +88 -0
  65. package/esm2022/src/app/core/register/register.form.mjs +194 -0
  66. package/esm2022/src/app/core/register/register.modal.mjs +55 -0
  67. package/{esm2020 → esm2022}/src/app/core/register/register.module.mjs +13 -13
  68. package/esm2022/src/app/core/services/account.service.mjs +1217 -0
  69. package/esm2022/src/app/core/services/auth-guard.service.mjs +76 -0
  70. package/esm2022/src/app/core/services/base-entity-service.class.mjs +482 -0
  71. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +224 -0
  72. package/esm2022/src/app/core/services/base58.mjs +79 -0
  73. package/{esm2020 → esm2022}/src/app/core/services/config/core.config.mjs +4 -4
  74. package/esm2022/src/app/core/services/config.service.mjs +365 -0
  75. package/esm2022/src/app/core/services/crypto.service.mjs +107 -0
  76. package/esm2022/src/app/core/services/local-settings.service.mjs +468 -0
  77. package/esm2022/src/app/core/services/model/account.model.mjs +153 -0
  78. package/esm2022/src/app/core/services/model/config.model.mjs +105 -0
  79. package/esm2022/src/app/core/services/model/department.model.mjs +33 -0
  80. package/esm2022/src/app/core/services/model/entity.decorators.mjs +97 -0
  81. package/esm2022/src/app/core/services/model/entity.model.mjs +228 -0
  82. package/esm2022/src/app/core/services/model/peer.model.mjs +82 -0
  83. package/esm2022/src/app/core/services/model/person.model.mjs +109 -0
  84. package/esm2022/src/app/core/services/model/referential.model.mjs +185 -0
  85. package/esm2022/src/app/core/services/model/token.model.mjs +52 -0
  86. package/esm2022/src/app/core/services/network.service.mjs +608 -0
  87. package/{esm2020 → esm2022}/src/app/core/services/pipes/account.pipes.mjs +9 -9
  88. package/{esm2020 → esm2022}/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
  89. package/{esm2020 → esm2022}/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
  90. package/{esm2020 → esm2022}/src/app/core/services/pipes/usage-mode.pipes.mjs +9 -9
  91. package/esm2022/src/app/core/services/platform.service.mjs +546 -0
  92. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +434 -0
  93. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +458 -0
  94. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +25 -0
  95. package/esm2022/src/app/core/services/testing/referential.validator.mjs +46 -0
  96. package/esm2022/src/app/core/services/validator/account.validator.mjs +45 -0
  97. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +49 -0
  98. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +67 -0
  99. package/{esm2020 → esm2022}/src/app/core/services/validator/user-settings.validator.mjs +4 -4
  100. package/{esm2020 → esm2022}/src/app/core/services/validator/user-token.validator.mjs +4 -4
  101. package/{esm2020 → esm2022}/src/app/core/settings/settings.module.mjs +9 -9
  102. package/esm2022/src/app/core/settings/settings.page.mjs +328 -0
  103. package/esm2022/src/app/core/table/actions-column.component.mjs +115 -0
  104. package/esm2022/src/app/core/table/async-table.class.mjs +1735 -0
  105. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +386 -0
  106. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +401 -0
  107. package/esm2022/src/app/core/table/memory-table.class.mjs +57 -0
  108. package/esm2022/src/app/core/table/table-select-columns.component.mjs +46 -0
  109. package/esm2022/src/app/core/table/table.class.mjs +1771 -0
  110. package/esm2022/src/app/core/table/table.model.mjs +16 -0
  111. package/{esm2020 → esm2022}/src/app/core/table/table.module.mjs +12 -12
  112. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +28 -0
  113. package/esm2022/src/app/core/table/testing/table.testing.mjs +291 -0
  114. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +50 -0
  115. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +25 -0
  116. package/esm2022/src/app/core/table/testing/table2.testing.mjs +250 -0
  117. package/esm2022/src/app/shared/audio/audio.mjs +251 -0
  118. package/esm2022/src/app/shared/audio/audio.testing.mjs +32 -0
  119. package/{esm2020 → esm2022}/src/app/shared/audio/audio.testing.module.mjs +10 -10
  120. package/esm2022/src/app/shared/capacitor/keyboard.mjs +42 -0
  121. package/esm2022/src/app/shared/capacitor/plugins.mjs +9 -0
  122. package/esm2022/src/app/shared/dates.mjs +149 -0
  123. package/esm2022/src/app/shared/debug/debug.component.mjs +40 -0
  124. package/{esm2020 → esm2022}/src/app/shared/debug/debug.module.mjs +14 -14
  125. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +98 -0
  126. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +32 -0
  127. package/{esm2020 → esm2022}/src/app/shared/directives/directives.module.mjs +13 -13
  128. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +52 -0
  129. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +33 -0
  130. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +62 -0
  131. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +45 -0
  132. package/{esm2020 → esm2022}/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
  133. package/esm2022/src/app/shared/file/file.service.mjs +122 -0
  134. package/{esm2020 → esm2022}/src/app/shared/file/file.utils.mjs +2 -2
  135. package/esm2022/src/app/shared/form/field.component.mjs +353 -0
  136. package/{esm2020 → esm2022}/src/app/shared/form/field.model.mjs +1 -1
  137. package/esm2022/src/app/shared/form/loading-spinner.mjs +35 -0
  138. package/{esm2020 → esm2022}/src/app/shared/functions.mjs +5 -4
  139. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +82 -0
  140. package/esm2022/src/app/shared/gesture/gesture-config.mjs +46 -0
  141. package/esm2022/src/app/shared/graph/graph-colors.mjs +219 -0
  142. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +59 -0
  143. package/esm2022/src/app/shared/help/help.modal.mjs +63 -0
  144. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +24 -0
  145. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +85 -0
  146. package/{esm2020 → esm2022}/src/app/shared/hotkeys/shared-hotkeys.module.mjs +13 -13
  147. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +388 -0
  148. package/{esm2020 → esm2022}/src/app/shared/image/gallery/image-gallery.module.mjs +22 -22
  149. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +26 -0
  150. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +90 -0
  151. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +41 -0
  152. package/{esm2020 → esm2022}/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +16 -16
  153. package/{esm2020 → esm2022}/src/app/shared/image/image.module.mjs +11 -11
  154. package/esm2022/src/app/shared/image/image.service.mjs +104 -0
  155. package/esm2022/src/app/shared/inputs.mjs +231 -0
  156. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +28 -0
  157. package/esm2022/src/app/shared/logging/logging-service.class.mjs +128 -0
  158. package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.module.mjs +8 -8
  159. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +49 -0
  160. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +961 -0
  161. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +82 -0
  162. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +217 -0
  163. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +209 -0
  164. package/{esm2020 → esm2022}/src/app/shared/material/badge/badge.module.mjs +9 -9
  165. package/esm2022/src/app/shared/material/badge/badge.test.mjs +42 -0
  166. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +72 -0
  167. package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +266 -0
  168. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +271 -0
  169. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +54 -0
  170. package/esm2022/src/app/shared/material/chips/chips.module.mjs +76 -0
  171. package/esm2022/src/app/shared/material/chips/material.chips.mjs +719 -0
  172. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +148 -0
  173. package/{esm2020 → esm2022}/src/app/shared/material/datetime/datetime.module.mjs +38 -38
  174. package/esm2022/src/app/shared/material/datetime/material.date.mjs +396 -0
  175. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +406 -0
  176. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +523 -0
  177. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +125 -0
  178. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +122 -0
  179. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +115 -0
  180. package/esm2022/src/app/shared/material/duration/duration.module.mjs +70 -0
  181. package/{esm2020 → esm2022}/src/app/shared/material/duration/duration.utils.mjs +2 -2
  182. package/esm2022/src/app/shared/material/duration/material.duration.mjs +273 -0
  183. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +79 -0
  184. package/{esm2020 → esm2022}/src/app/shared/material/latlong/latlong.utils.mjs +3 -3
  185. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +415 -0
  186. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +72 -0
  187. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +113 -0
  188. package/esm2022/src/app/shared/material/material.module.mjs +224 -0
  189. package/esm2022/src/app/shared/material/material.testing.module.mjs +210 -0
  190. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +104 -0
  191. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +83 -0
  192. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +203 -0
  193. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +19 -0
  194. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +168 -0
  195. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +36 -0
  196. package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +16 -0
  197. package/{esm2020 → esm2022}/src/app/shared/material/numpad/numpad.module.mjs +21 -21
  198. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +48 -0
  199. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +48 -0
  200. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +23 -0
  201. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +368 -0
  202. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +56 -0
  203. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +67 -0
  204. package/esm2022/src/app/shared/material/testing/common.test.mjs +105 -0
  205. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +212 -0
  206. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +49 -0
  207. package/{esm2020 → esm2022}/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  208. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +69 -0
  209. package/{esm2020 → esm2022}/src/app/shared/pipes/arrays.pipe.mjs +25 -25
  210. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +27 -0
  211. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +51 -0
  212. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +72 -0
  213. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +28 -0
  214. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +36 -0
  215. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +60 -0
  216. package/esm2022/src/app/shared/pipes/form.pipes.mjs +194 -0
  217. package/{esm2020 → esm2022}/src/app/shared/pipes/highlight.pipe.mjs +5 -5
  218. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +42 -0
  219. package/{esm2020 → esm2022}/src/app/shared/pipes/maps.pipe.mjs +13 -13
  220. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +118 -0
  221. package/{esm2020 → esm2022}/src/app/shared/pipes/math.pipes.mjs +13 -13
  222. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +19 -0
  223. package/{esm2020 → esm2022}/src/app/shared/pipes/number-format.pipe.mjs +5 -5
  224. package/esm2022/src/app/shared/pipes/pipes.module.mjs +256 -0
  225. package/esm2022/src/app/shared/pipes/property.pipes.mjs +97 -0
  226. package/esm2022/src/app/shared/pipes/string.pipes.mjs +135 -0
  227. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +44 -0
  228. package/esm2022/src/app/shared/pipes/types.pipes.mjs +58 -0
  229. package/esm2022/src/app/shared/rx-state.module.mjs +23 -0
  230. package/esm2022/src/app/shared/services/entity-service.class.mjs +7 -0
  231. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +347 -0
  232. package/esm2022/src/app/shared/services/progress-bar.service.mjs +31 -0
  233. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +121 -0
  234. package/esm2022/src/app/shared/services/startable-service.class.mjs +113 -0
  235. package/esm2022/src/app/shared/services/translate-context.service.mjs +104 -0
  236. package/{esm2020 → esm2022}/src/app/shared/shared-routing.module.mjs +11 -11
  237. package/esm2022/src/app/shared/shared.module.mjs +217 -0
  238. package/{esm2020 → esm2022}/src/app/shared/shared.testing.module.mjs +40 -40
  239. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +286 -0
  240. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +46 -0
  241. package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +7 -7
  242. package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing.module.mjs +6 -6
  243. package/esm2022/src/app/shared/storage/storage.service.mjs +134 -0
  244. package/{esm2020 → esm2022}/src/app/shared/storage/storage.utils.mjs +1 -1
  245. package/esm2022/src/app/shared/testing/observable.test.mjs +96 -0
  246. package/esm2022/src/app/shared/testing/tests.page.mjs +37 -0
  247. package/esm2022/src/app/shared/toast/toast.testing.mjs +52 -0
  248. package/{esm2020 → esm2022}/src/app/shared/toast/toast.testing.module.mjs +10 -10
  249. package/esm2022/src/app/shared/toast/toasts.mjs +144 -0
  250. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +60 -0
  251. package/esm2022/src/app/shared/toolbar/toolbar.mjs +264 -0
  252. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +57 -0
  253. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +59 -0
  254. package/{esm2020 → esm2022}/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -10
  255. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +107 -0
  256. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +211 -0
  257. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +27 -0
  258. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +106 -0
  259. package/esm2022/src/app/shared/validator/validators.mjs +580 -0
  260. package/esm2022/src/app/shared/version/versions.mjs +81 -0
  261. package/esm2022/src/app/social/job/job.module.mjs +42 -0
  262. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +35 -0
  263. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +232 -0
  264. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +50 -0
  265. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +28 -0
  266. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +73 -0
  267. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +43 -0
  268. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +53 -0
  269. package/{esm2020 → esm2022}/src/app/social/job/testing/job.testing.module.mjs +9 -9
  270. package/esm2022/src/app/social/message/message.form.mjs +88 -0
  271. package/esm2022/src/app/social/message/message.modal.mjs +102 -0
  272. package/esm2022/src/app/social/message/message.model.mjs +71 -0
  273. package/esm2022/src/app/social/message/message.module.mjs +35 -0
  274. package/esm2022/src/app/social/message/message.service.mjs +88 -0
  275. package/{esm2020 → esm2022}/src/app/social/social.module.mjs +19 -19
  276. package/{esm2020 → esm2022}/src/app/social/social.testing.module.mjs +10 -10
  277. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +123 -0
  278. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +263 -0
  279. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +233 -0
  280. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +128 -0
  281. package/{esm2020 → esm2022}/src/app/social/user-event/testing/user-event.testing.module.mjs +9 -9
  282. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +116 -0
  283. package/esm2022/src/app/social/user-event/user-event.module.mjs +43 -0
  284. package/esm2022/src/app/social/user-event/user-event.service.mjs +498 -0
  285. package/esm2022/src/environments/environment.class.mjs +47 -0
  286. package/esm2022/src/environments/environment.mjs +94 -0
  287. package/{fesm2020 → fesm2022}/sumaris-net.ngx-components.mjs +12191 -10087
  288. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -0
  289. package/package.json +11 -16
  290. package/public_api.d.ts +12 -5
  291. package/src/app/admin/users/users.d.ts +1 -1
  292. package/src/app/admin/users/users.module.d.ts +2 -1
  293. package/src/app/core/about/about.modal.d.ts +1 -1
  294. package/src/app/core/account/account.page.d.ts +3 -4
  295. package/src/app/core/account/new-token.modal.d.ts +1 -1
  296. package/src/app/core/account/token.table.d.ts +1 -1
  297. package/src/app/core/auth/auth.form.d.ts +1 -1
  298. package/src/app/core/auth/auth.modal.d.ts +1 -1
  299. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +2 -2
  300. package/src/app/core/form/entity/editor.class.d.ts +4 -4
  301. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +1 -1
  302. package/src/app/core/form/entity/entity-editor.class.d.ts +6 -10
  303. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  304. package/src/app/core/form/form.class.d.ts +1 -1
  305. package/src/app/core/form/list/list.form.d.ts +1 -1
  306. package/src/app/core/form/properties/properties.form.d.ts +1 -1
  307. package/src/app/core/form/properties/properties.table.d.ts +2 -3
  308. package/src/app/core/form/properties/property.validator.d.ts +1 -1
  309. package/src/app/core/form/properties/testing/properties-form.test.d.ts +1 -1
  310. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +1 -1
  311. package/src/app/core/form/text-popover/text-form.component.d.ts +1 -1
  312. package/src/app/core/form/text-popover/text-popover.component.d.ts +1 -1
  313. package/src/app/core/home/home.d.ts +1 -1
  314. package/src/app/core/home/home.module.d.ts +4 -3
  315. package/src/app/core/icon/icon.component.d.ts +1 -1
  316. package/src/app/core/install/install-upgrade-card.component.d.ts +1 -1
  317. package/src/app/core/menu/menu.component.d.ts +4 -8
  318. package/src/app/core/menu/menu.model.d.ts +0 -1
  319. package/src/app/core/menu/menu.module.d.ts +3 -5
  320. package/src/app/core/menu/menu.service.d.ts +1 -3
  321. package/src/app/core/menu/sub-menu-tab.directive.d.ts +1 -1
  322. package/src/app/core/menu/testing/menu-other.testing.d.ts +1 -1
  323. package/src/app/core/menu/testing/menu.testing.d.ts +1 -1
  324. package/src/app/core/offline/update-offline-mode-card.component.d.ts +1 -1
  325. package/src/app/core/peer/select-peer.modal.d.ts +1 -1
  326. package/src/app/core/register/register-confirm.page.d.ts +1 -1
  327. package/src/app/core/register/register.form.d.ts +1 -1
  328. package/src/app/core/register/register.modal.d.ts +1 -1
  329. package/src/app/core/services/account.service.d.ts +0 -4
  330. package/src/app/core/services/base-entity-service.class.d.ts +2 -2
  331. package/src/app/core/services/base-graphql-service.class.d.ts +1 -1
  332. package/src/app/core/services/config/core.config.d.ts +1 -1
  333. package/src/app/core/services/model/person.model.d.ts +1 -1
  334. package/src/app/core/services/model/referential.model.d.ts +1 -2
  335. package/src/app/core/services/model/settings.model.d.ts +1 -1
  336. package/src/app/core/services/network.types.d.ts +2 -2
  337. package/src/app/core/services/storage/entity-store.class.d.ts +1 -1
  338. package/src/app/core/services/validator/base.validator.class.d.ts +1 -1
  339. package/src/app/core/settings/settings.page.d.ts +1 -1
  340. package/src/app/core/table/actions-column.component.d.ts +2 -2
  341. package/src/app/core/table/async-table.class.d.ts +1 -1
  342. package/src/app/core/table/entities-async-table-datasource.class.d.ts +1 -1
  343. package/src/app/core/table/entities-table-datasource.class.d.ts +1 -1
  344. package/src/app/core/table/memory-table.class.d.ts +3 -3
  345. package/src/app/core/table/table-select-columns.component.d.ts +1 -1
  346. package/src/app/core/table/table.class.d.ts +3 -3
  347. package/src/app/core/table/table.model.d.ts +1 -1
  348. package/src/app/core/table/testing/table.testing.d.ts +5 -4
  349. package/src/app/core/table/testing/table.testing.module.d.ts +8 -5
  350. package/src/app/core/table/testing/table2-validator.service.d.ts +15 -0
  351. package/src/app/core/table/testing/table2.testing.d.ts +45 -0
  352. package/src/app/shared/audio/audio.d.ts +1 -1
  353. package/src/app/shared/audio/audio.testing.d.ts +1 -1
  354. package/src/app/shared/debug/debug.component.d.ts +1 -1
  355. package/src/app/shared/directives/autofocus.directive.d.ts +1 -1
  356. package/src/app/shared/directives/autotitle.directive.d.ts +1 -1
  357. package/src/app/shared/directives/drag-and-drop.directive.d.ts +1 -1
  358. package/src/app/shared/directives/ng-var.directive.d.ts +1 -1
  359. package/src/app/shared/directives/resizable/resizable.component.d.ts +1 -1
  360. package/src/app/shared/directives/resizable/resizable.directive.d.ts +1 -1
  361. package/src/app/shared/events.d.ts +1 -1
  362. package/src/app/shared/form/field.component.d.ts +4 -5
  363. package/src/app/shared/form/field.model.d.ts +2 -0
  364. package/src/app/shared/form/loading-spinner.d.ts +1 -1
  365. package/src/app/shared/functions.d.ts +2 -2
  366. package/src/app/shared/help/help.modal.d.ts +2 -2
  367. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +1 -1
  368. package/src/app/shared/hotkeys/hotkeys.service.d.ts +3 -3
  369. package/src/app/shared/image/gallery/image-gallery.component.d.ts +3 -3
  370. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +2 -2
  371. package/src/app/shared/inputs.d.ts +1 -1
  372. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +9 -9
  373. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +10 -9
  374. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +1 -1
  375. package/src/app/shared/material/badge/badge.directive.d.ts +1 -1
  376. package/src/app/shared/material/badge/badge.test.d.ts +1 -1
  377. package/src/app/shared/material/boolean/boolean.module.d.ts +12 -11
  378. package/src/app/shared/material/boolean/material-boolean2.d.ts +66 -0
  379. package/src/app/shared/material/boolean/material.boolean.d.ts +5 -4
  380. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +21 -0
  381. package/src/app/shared/material/chips/material.chips.d.ts +8 -9
  382. package/src/app/shared/material/chips/testing/chips.test.d.ts +2 -2
  383. package/src/app/shared/material/datetime/datetime.module.d.ts +2 -2
  384. package/src/app/shared/material/datetime/material.date.d.ts +5 -4
  385. package/src/app/shared/material/datetime/material.dateshort.d.ts +8 -7
  386. package/src/app/shared/material/datetime/material.datetime.d.ts +8 -6
  387. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +7 -1
  388. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +3 -1
  389. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +3 -1
  390. package/src/app/shared/material/duration/duration.module.d.ts +6 -5
  391. package/src/app/shared/material/duration/material.duration.d.ts +6 -5
  392. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +22 -0
  393. package/src/app/shared/material/latlong/material.latlong.d.ts +8 -7
  394. package/src/app/shared/material/latlong/material.latlong.module.d.ts +9 -8
  395. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +3 -1
  396. package/src/app/shared/material/material.testing.module.d.ts +22 -18
  397. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +1 -1
  398. package/src/app/shared/material/numpad/numpad.component.d.ts +1 -1
  399. package/src/app/shared/material/numpad/numpad.container.d.ts +1 -1
  400. package/src/app/shared/material/numpad/numpad.content.d.ts +1 -1
  401. package/src/app/shared/material/numpad/numpad.directive.d.ts +1 -1
  402. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +3 -3
  403. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +1 -1
  404. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -3
  405. package/src/app/shared/material/swipe/material.swipe.d.ts +6 -6
  406. package/src/app/shared/material/swipe/swipe.module.d.ts +2 -1
  407. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +1 -1
  408. package/src/app/shared/material/testing/common.test.d.ts +25 -0
  409. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +1 -1
  410. package/src/app/shared/named-filter/named-filter.service.d.ts +1 -1
  411. package/src/app/shared/pipes/maskito.pipe.d.ts +16 -0
  412. package/src/app/shared/pipes/ng-init.pipe.d.ts +1 -1
  413. package/src/app/shared/pipes/pipes.module.d.ts +5 -4
  414. package/src/app/shared/pipes/string.pipes.d.ts +6 -0
  415. package/src/app/shared/pipes/types.pipes.d.ts +7 -0
  416. package/src/app/shared/rx-state.module.d.ts +10 -0
  417. package/src/app/shared/services/entity-service.class.d.ts +1 -1
  418. package/src/app/shared/services/job.utils.d.ts +1 -1
  419. package/src/app/shared/services/memory-entity-service.class.d.ts +1 -1
  420. package/src/app/shared/services/startable-observable-service.class.d.ts +3 -0
  421. package/src/app/shared/services/startable-service.class.d.ts +3 -0
  422. package/src/app/shared/shared.module.d.ts +7 -9
  423. package/src/app/shared/storage/storage-explorer.component.d.ts +1 -1
  424. package/src/app/shared/storage/storage-explorer.module.d.ts +3 -3
  425. package/src/app/shared/storage/storage.service.d.ts +1 -1
  426. package/src/app/shared/storage/storage.utils.d.ts +1 -1
  427. package/src/app/shared/testing/observable.test.d.ts +1 -1
  428. package/src/app/shared/testing/tests.page.d.ts +1 -1
  429. package/src/app/shared/toast/toast.testing.d.ts +1 -1
  430. package/src/app/shared/toolbar/modal-toolbar.d.ts +1 -1
  431. package/src/app/shared/toolbar/toolbar.d.ts +1 -1
  432. package/src/app/shared/toolbar/toolbar.module.d.ts +4 -3
  433. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +1 -1
  434. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +1 -1
  435. package/src/app/shared/upload-file/upload-file.component.d.ts +1 -1
  436. package/src/app/shared/upload-file/upload-file.model.d.ts +2 -2
  437. package/src/app/social/job/progression/job-progression.component.d.ts +17 -3
  438. package/src/app/social/job/progression/job-progression.icon.d.ts +24 -10
  439. package/src/app/social/job/progression/job-progression.list.d.ts +3 -3
  440. package/src/app/social/job/progression/job-progression.model.d.ts +0 -1
  441. package/src/app/social/job/testing/job-progression.testing.d.ts +3 -6
  442. package/src/app/social/message/message.form.d.ts +2 -8
  443. package/src/app/social/message/message.modal.d.ts +1 -5
  444. package/src/app/social/message/message.model.d.ts +0 -2
  445. package/src/app/social/message/message.module.d.ts +1 -2
  446. package/src/app/social/message/message.service.d.ts +3 -8
  447. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -3
  448. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +1 -1
  449. package/src/app/social/user-event/testing/user-event.testing.d.ts +1 -1
  450. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -1
  451. package/src/app/social/user-event/user-event.model.d.ts +2 -2
  452. package/src/app/social/user-event/user-event.module.d.ts +3 -2
  453. package/src/app/social/user-event/user-event.service.d.ts +1 -6
  454. package/src/assets/i18n/en-US.json +17 -15
  455. package/src/assets/i18n/en.json +17 -15
  456. package/src/assets/i18n/fr.json +7 -6
  457. package/src/assets/img/logo/logo-eis.png +0 -0
  458. package/src/assets/manifest.json +1 -1
  459. package/src/environments/environment.class.d.ts +0 -1
  460. package/src/theme/_material.globals.scss +51 -19
  461. package/src/theme/_material.scss +15 -15
  462. package/src/theme/_mixins.scss +3 -3
  463. package/src/theme/_ngx-components.globals.scss +6 -1
  464. package/src/theme/_ngx-components.scss +262 -534
  465. package/src/theme/_ngx-components.table.scss +599 -0
  466. package/src/theme/_theme.scss +1 -0
  467. package/esm2020/public_api.mjs +0 -330
  468. package/esm2020/src/app/admin/services/filter/person.filter.mjs +0 -59
  469. package/esm2020/src/app/admin/services/person.service.mjs +0 -170
  470. package/esm2020/src/app/admin/services/validator/person.validator.mjs +0 -71
  471. package/esm2020/src/app/admin/users/users.mjs +0 -250
  472. package/esm2020/src/app/admin/users/users.module.mjs +0 -54
  473. package/esm2020/src/app/core/about/about.modal.mjs +0 -71
  474. package/esm2020/src/app/core/account/account.page.mjs +0 -319
  475. package/esm2020/src/app/core/account/new-token.modal.mjs +0 -115
  476. package/esm2020/src/app/core/account/token.table.mjs +0 -137
  477. package/esm2020/src/app/core/auth/auth.form.mjs +0 -131
  478. package/esm2020/src/app/core/auth/auth.modal.mjs +0 -72
  479. package/esm2020/src/app/core/core.testing.module.mjs +0 -86
  480. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -107
  481. package/esm2020/src/app/core/form/entity/editor.class.mjs +0 -683
  482. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -422
  483. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +0 -696
  484. package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +0 -25
  485. package/esm2020/src/app/core/form/form.class.mjs +0 -345
  486. package/esm2020/src/app/core/form/list/list.form.mjs +0 -222
  487. package/esm2020/src/app/core/form/properties/properties.form.mjs +0 -132
  488. package/esm2020/src/app/core/form/properties/properties.table.mjs +0 -267
  489. package/esm2020/src/app/core/form/properties/property.validator.mjs +0 -23
  490. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +0 -90
  491. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -70
  492. package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +0 -89
  493. package/esm2020/src/app/core/graphql/graphql.service.mjs +0 -778
  494. package/esm2020/src/app/core/home/home.mjs +0 -257
  495. package/esm2020/src/app/core/home/home.module.mjs +0 -48
  496. package/esm2020/src/app/core/icon/icon.component.mjs +0 -41
  497. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +0 -344
  498. package/esm2020/src/app/core/menu/menu.component.mjs +0 -242
  499. package/esm2020/src/app/core/menu/menu.model.mjs +0 -247
  500. package/esm2020/src/app/core/menu/menu.module.mjs +0 -57
  501. package/esm2020/src/app/core/menu/menu.service.mjs +0 -660
  502. package/esm2020/src/app/core/menu/sub-menu-tab.directive.mjs +0 -98
  503. package/esm2020/src/app/core/menu/testing/menu.testing.mjs +0 -121
  504. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +0 -27
  505. package/esm2020/src/app/core/peer/select-peer.modal.mjs +0 -183
  506. package/esm2020/src/app/core/register/register-confirm.page.mjs +0 -81
  507. package/esm2020/src/app/core/register/register.form.mjs +0 -183
  508. package/esm2020/src/app/core/register/register.modal.mjs +0 -52
  509. package/esm2020/src/app/core/services/account.service.mjs +0 -1233
  510. package/esm2020/src/app/core/services/auth-guard.service.mjs +0 -71
  511. package/esm2020/src/app/core/services/base-entity-service.class.mjs +0 -468
  512. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +0 -221
  513. package/esm2020/src/app/core/services/base58.mjs +0 -78
  514. package/esm2020/src/app/core/services/config.service.mjs +0 -355
  515. package/esm2020/src/app/core/services/crypto.service.mjs +0 -107
  516. package/esm2020/src/app/core/services/local-settings.service.mjs +0 -460
  517. package/esm2020/src/app/core/services/model/account.model.mjs +0 -147
  518. package/esm2020/src/app/core/services/model/config.model.mjs +0 -92
  519. package/esm2020/src/app/core/services/model/department.model.mjs +0 -30
  520. package/esm2020/src/app/core/services/model/entity.decorators.mjs +0 -97
  521. package/esm2020/src/app/core/services/model/entity.model.mjs +0 -225
  522. package/esm2020/src/app/core/services/model/peer.model.mjs +0 -68
  523. package/esm2020/src/app/core/services/model/person.model.mjs +0 -97
  524. package/esm2020/src/app/core/services/model/referential.model.mjs +0 -167
  525. package/esm2020/src/app/core/services/model/token.model.mjs +0 -48
  526. package/esm2020/src/app/core/services/network.service.mjs +0 -590
  527. package/esm2020/src/app/core/services/platform.service.mjs +0 -534
  528. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +0 -428
  529. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +0 -449
  530. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +0 -23
  531. package/esm2020/src/app/core/services/testing/referential.validator.mjs +0 -45
  532. package/esm2020/src/app/core/services/validator/account.validator.mjs +0 -41
  533. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +0 -47
  534. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +0 -66
  535. package/esm2020/src/app/core/settings/settings.page.mjs +0 -312
  536. package/esm2020/src/app/core/table/actions-column.component.mjs +0 -102
  537. package/esm2020/src/app/core/table/async-table.class.mjs +0 -1698
  538. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
  539. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +0 -399
  540. package/esm2020/src/app/core/table/memory-table.class.mjs +0 -53
  541. package/esm2020/src/app/core/table/table-select-columns.component.mjs +0 -43
  542. package/esm2020/src/app/core/table/table.class.mjs +0 -1733
  543. package/esm2020/src/app/core/table/table.model.mjs +0 -12
  544. package/esm2020/src/app/core/table/testing/table-validator.service.mjs +0 -27
  545. package/esm2020/src/app/core/table/testing/table.testing.mjs +0 -281
  546. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +0 -38
  547. package/esm2020/src/app/shared/audio/audio.mjs +0 -248
  548. package/esm2020/src/app/shared/audio/audio.testing.mjs +0 -31
  549. package/esm2020/src/app/shared/capacitor/keyboard.mjs +0 -40
  550. package/esm2020/src/app/shared/capacitor/plugins.mjs +0 -9
  551. package/esm2020/src/app/shared/dates.mjs +0 -149
  552. package/esm2020/src/app/shared/debug/debug.component.mjs +0 -39
  553. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +0 -93
  554. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +0 -30
  555. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +0 -53
  556. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +0 -31
  557. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +0 -59
  558. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +0 -40
  559. package/esm2020/src/app/shared/file/file.service.mjs +0 -117
  560. package/esm2020/src/app/shared/form/field.component.mjs +0 -332
  561. package/esm2020/src/app/shared/form/loading-spinner.mjs +0 -36
  562. package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +0 -80
  563. package/esm2020/src/app/shared/gesture/gesture-config.mjs +0 -49
  564. package/esm2020/src/app/shared/graph/graph-colors.mjs +0 -212
  565. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +0 -57
  566. package/esm2020/src/app/shared/help/help.modal.mjs +0 -53
  567. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  568. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +0 -84
  569. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +0 -368
  570. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -27
  571. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -90
  572. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -39
  573. package/esm2020/src/app/shared/image/image.service.mjs +0 -98
  574. package/esm2020/src/app/shared/inputs.mjs +0 -231
  575. package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  576. package/esm2020/src/app/shared/logging/logging-service.class.mjs +0 -121
  577. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -47
  578. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -920
  579. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -78
  580. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -209
  581. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +0 -199
  582. package/esm2020/src/app/shared/material/badge/badge.test.mjs +0 -41
  583. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +0 -68
  584. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +0 -253
  585. package/esm2020/src/app/shared/material/chips/chips.module.mjs +0 -76
  586. package/esm2020/src/app/shared/material/chips/material.chips.mjs +0 -696
  587. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +0 -143
  588. package/esm2020/src/app/shared/material/datetime/material.date.mjs +0 -376
  589. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +0 -385
  590. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +0 -499
  591. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -108
  592. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -110
  593. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -103
  594. package/esm2020/src/app/shared/material/duration/duration.module.mjs +0 -67
  595. package/esm2020/src/app/shared/material/duration/material.duration.mjs +0 -257
  596. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +0 -382
  597. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
  598. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -102
  599. package/esm2020/src/app/shared/material/material.module.mjs +0 -224
  600. package/esm2020/src/app/shared/material/material.testing.module.mjs +0 -168
  601. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -98
  602. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +0 -80
  603. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +0 -190
  604. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +0 -17
  605. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +0 -162
  606. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -37
  607. package/esm2020/src/app/shared/material/numpad/numpad.model.mjs +0 -15
  608. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -46
  609. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -46
  610. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -22
  611. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +0 -344
  612. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +0 -52
  613. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -64
  614. package/esm2020/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -202
  615. package/esm2020/src/app/shared/named-filter/named-filter.model.mjs +0 -45
  616. package/esm2020/src/app/shared/named-filter/named-filter.service.mjs +0 -63
  617. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +0 -25
  618. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -48
  619. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +0 -66
  620. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +0 -27
  621. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +0 -34
  622. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +0 -62
  623. package/esm2020/src/app/shared/pipes/form.pipes.mjs +0 -187
  624. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +0 -46
  625. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +0 -21
  626. package/esm2020/src/app/shared/pipes/pipes.module.mjs +0 -239
  627. package/esm2020/src/app/shared/pipes/property.pipes.mjs +0 -93
  628. package/esm2020/src/app/shared/pipes/string.pipes.mjs +0 -121
  629. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +0 -43
  630. package/esm2020/src/app/shared/pipes/types.pipes.mjs +0 -45
  631. package/esm2020/src/app/shared/services/entity-service.class.mjs +0 -7
  632. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +0 -339
  633. package/esm2020/src/app/shared/services/progress-bar.service.mjs +0 -33
  634. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +0 -118
  635. package/esm2020/src/app/shared/services/startable-service.class.mjs +0 -110
  636. package/esm2020/src/app/shared/services/translate-context.service.mjs +0 -103
  637. package/esm2020/src/app/shared/shared.module.mjs +0 -231
  638. package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +0 -268
  639. package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +0 -47
  640. package/esm2020/src/app/shared/storage/storage.service.mjs +0 -132
  641. package/esm2020/src/app/shared/testing/observable.test.mjs +0 -95
  642. package/esm2020/src/app/shared/testing/tests.page.mjs +0 -33
  643. package/esm2020/src/app/shared/toast/toast.testing.mjs +0 -51
  644. package/esm2020/src/app/shared/toast/toasts.mjs +0 -144
  645. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +0 -58
  646. package/esm2020/src/app/shared/toolbar/toolbar.mjs +0 -251
  647. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +0 -53
  648. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -58
  649. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -97
  650. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +0 -204
  651. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +0 -20
  652. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +0 -104
  653. package/esm2020/src/app/shared/validator/validators.mjs +0 -580
  654. package/esm2020/src/app/shared/version/versions.mjs +0 -81
  655. package/esm2020/src/app/social/job/job.module.mjs +0 -42
  656. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -20
  657. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +0 -216
  658. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +0 -43
  659. package/esm2020/src/app/social/job/progression/job-progression.model.mjs +0 -23
  660. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +0 -71
  661. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +0 -52
  662. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +0 -55
  663. package/esm2020/src/app/social/message/message.form.mjs +0 -136
  664. package/esm2020/src/app/social/message/message.modal.mjs +0 -99
  665. package/esm2020/src/app/social/message/message.model.mjs +0 -67
  666. package/esm2020/src/app/social/message/message.module.mjs +0 -22
  667. package/esm2020/src/app/social/message/message.service.mjs +0 -105
  668. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -114
  669. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -246
  670. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +0 -227
  671. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -112
  672. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -111
  673. package/esm2020/src/app/social/user-event/user-event.module.mjs +0 -39
  674. package/esm2020/src/app/social/user-event/user-event.service.mjs +0 -501
  675. package/esm2020/src/environments/environment.class.mjs +0 -5
  676. package/esm2020/src/environments/environment.loader.mjs +0 -79
  677. package/esm2020/src/environments/environment.mjs +0 -97
  678. package/fesm2015/sumaris-net.ngx-components.mjs +0 -40966
  679. package/fesm2015/sumaris-net.ngx-components.mjs.map +0 -1
  680. package/fesm2020/sumaris-net.ngx-components.mjs.map +0 -1
  681. package/resources/README.md +0 -7
  682. package/src/assets/environments/environment-test.json +0 -6
  683. package/src/environments/environment.loader.d.ts +0 -26
  684. /package/{esm2020 → esm2022}/src/app/core/services/errors.mjs +0 -0
  685. /package/{esm2020 → esm2022}/src/app/core/services/model/filter.model.mjs +0 -0
  686. /package/{esm2020 → esm2022}/src/app/core/services/model/history.model.mjs +0 -0
  687. /package/{esm2020 → esm2022}/src/app/core/services/model/model.enum.mjs +0 -0
  688. /package/{esm2020 → esm2022}/src/app/core/services/model/settings.model.mjs +0 -0
  689. /package/{esm2020 → esm2022}/src/app/core/services/model/tree-item-entity.model.mjs +0 -0
  690. /package/{esm2020 → esm2022}/src/app/core/services/network.types.mjs +0 -0
  691. /package/{esm2020 → esm2022}/src/app/core/services/network.utils.mjs +0 -0
  692. /package/{esm2020 → esm2022}/src/app/core/table/table.utils.mjs +0 -0
  693. /package/{esm2020 → esm2022}/src/app/shared/alerts.mjs +0 -0
  694. /package/{esm2020 → esm2022}/src/app/shared/constants.mjs +0 -0
  695. /package/{esm2020 → esm2022}/src/app/shared/debug/debug-service.class.mjs +0 -0
  696. /package/{esm2020 → esm2022}/src/app/shared/events.mjs +0 -0
  697. /package/{esm2020 → esm2022}/src/app/shared/file/csv.utils.mjs +0 -0
  698. /package/{esm2020 → esm2022}/src/app/shared/file/images.utils.mjs +0 -0
  699. /package/{esm2020 → esm2022}/src/app/shared/file/json.utils.mjs +0 -0
  700. /package/{esm2020 → esm2022}/src/app/shared/file/uri.utils.mjs +0 -0
  701. /package/{esm2020 → esm2022}/src/app/shared/focusable.mjs +0 -0
  702. /package/{esm2020 → esm2022}/src/app/shared/forms.mjs +0 -0
  703. /package/{esm2020 → esm2022}/src/app/shared/gesture/hammer.utils.mjs +0 -0
  704. /package/{esm2020 → esm2022}/src/app/shared/graph/colors.utils.mjs +0 -0
  705. /package/{esm2020 → esm2022}/src/app/shared/http/http.utils.mjs +0 -0
  706. /package/{esm2020 → esm2022}/src/app/shared/image/image.model.mjs +0 -0
  707. /package/{esm2020 → esm2022}/src/app/shared/logging/log-level.model.mjs +0 -0
  708. /package/{esm2020 → esm2022}/src/app/shared/logging/logger.model.mjs +0 -0
  709. /package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.config.mjs +0 -0
  710. /package/{esm2020 → esm2022}/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -0
  711. /package/{esm2020 → esm2022}/src/app/shared/material/material.animations.mjs +0 -0
  712. /package/{esm2020 → esm2022}/src/app/shared/modules.mjs +0 -0
  713. /package/{esm2020 → esm2022}/src/app/shared/observables.mjs +0 -0
  714. /package/{esm2020 → esm2022}/src/app/shared/platforms.mjs +0 -0
  715. /package/{esm2020 → esm2022}/src/app/shared/services/job.utils.mjs +0 -0
  716. /package/{esm2020 → esm2022}/src/app/shared/services/validator-service.class.mjs +0 -0
  717. /package/{esm2020 → esm2022}/src/app/shared/services.mjs +0 -0
  718. /package/{esm2020 → esm2022}/src/app/shared/types.mjs +0 -0
  719. /package/{esm2020 → esm2022}/src/app/social/social.errors.mjs +0 -0
  720. /package/{esm2020 → esm2022}/src/app/social/user-event/user-event.model.mjs +0 -0
  721. /package/{esm2020 → esm2022}/sumaris-net.ngx-components.mjs +0 -0
@@ -1,253 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Optional, Output, ViewChild } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { isNil, isNotNil, toNumber } from '../../functions';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@ngx-translate/core";
6
- import * as i2 from "@angular/forms";
7
- import * as i3 from "@angular/common";
8
- import * as i4 from "@ionic/angular";
9
- import * as i5 from "@angular/material/form-field";
10
- import * as i6 from "@angular/material/input";
11
- import * as i7 from "@angular/material/radio";
12
- import * as i8 from "@angular/material/checkbox";
13
- const DEFAULT_VALUE_ACCESSOR = {
14
- provide: NG_VALUE_ACCESSOR,
15
- useExisting: forwardRef(() => MatBooleanField),
16
- multi: true
17
- };
18
- const noop = () => {
19
- };
20
- export class MatBooleanField {
21
- constructor(translate, formBuilder, cd, formGroupDir) {
22
- this.translate = translate;
23
- this.formBuilder = formBuilder;
24
- this.cd = cd;
25
- this.formGroupDir = formGroupDir;
26
- this._onChangeCallback = noop;
27
- this._onTouchedCallback = noop;
28
- this._writing = false;
29
- this.showRadio = false;
30
- this.disabled = false;
31
- this.floatLabel = 'auto';
32
- this.readonly = false;
33
- this.required = false;
34
- this.compact = false;
35
- this.yesLabel = 'COMMON.YES';
36
- this.noLabel = 'COMMON.NO';
37
- this.showButtonIcons = true;
38
- this.yesIcon = 'checkmark';
39
- this.noIcon = 'close';
40
- this.onPressEnter = new EventEmitter();
41
- this.onBlur = new EventEmitter();
42
- }
43
- set tabindex(value) {
44
- if (this._tabindex !== value) {
45
- this._tabindex = value;
46
- setTimeout(() => this.updateTabIndex());
47
- }
48
- }
49
- get tabindex() {
50
- return this._tabindex;
51
- }
52
- get value() {
53
- return this._value;
54
- }
55
- set value(v) {
56
- if (v !== this._value) {
57
- this._value = v;
58
- this._onChangeCallback(v);
59
- }
60
- }
61
- ngOnInit() {
62
- this.formControl = this.formControl || this.formControlName && this.formGroupDir && this.formGroupDir.form.get(this.formControlName);
63
- if (!this.formControl)
64
- throw new Error('Missing mandatory attribute \'formControl\' or \'formControlName\' in <mat-boolean-field>.');
65
- this.style = this.style || (this.compact ? 'checkbox' : 'radio');
66
- if (this.style === 'button') {
67
- this.buttonsColCount = toNumber(this.buttonsColCount, 2);
68
- }
69
- // Force show radio if label always on top
70
- this.showRadio = this.showRadio || this.floatLabel === 'always';
71
- this.updateTabIndex();
72
- }
73
- writeValue(value, event) {
74
- if (this._writing)
75
- return;
76
- this._writing = true;
77
- if (value !== this._value) {
78
- this._value = value;
79
- this.showRadio = this.floatLabel === 'always' || isNotNil(this._value);
80
- if (isNotNil(this.tabindex)) {
81
- setTimeout(() => this.updateTabIndex());
82
- }
83
- }
84
- this._writing = false;
85
- if (this.style === 'button') {
86
- if (value !== this.formControl.value) {
87
- this.formControl.patchValue(value, { emitEvent: false });
88
- this._onChangeCallback(value);
89
- }
90
- if (event)
91
- this.onPressEnter.emit(event);
92
- }
93
- this.markForCheck();
94
- }
95
- registerOnChange(fn) {
96
- this._onChangeCallback = fn;
97
- }
98
- registerOnTouched(fn) {
99
- this._onTouchedCallback = fn;
100
- }
101
- setDisabledState(isDisabled) {
102
- this.disabled = isDisabled;
103
- }
104
- _onBlur(event) {
105
- this.checkIfTouched();
106
- this.onBlur.emit(event);
107
- }
108
- _onFocusFakeInput(event) {
109
- event.preventDefault();
110
- // Hide the fake input
111
- if (this.fakeInput) {
112
- this.fakeInput.nativeElement.classList.add('hidden');
113
- this.fakeInput.nativeElement.tabIndex = -1;
114
- }
115
- // Focus on first button
116
- this.focus();
117
- }
118
- focus() {
119
- this.showRadio = true;
120
- setTimeout(() => {
121
- if (this.yesButton) {
122
- this.yesButton.focus();
123
- }
124
- else if (this.checkboxButton) {
125
- this.checkboxButton.focus();
126
- }
127
- this.updateTabIndex();
128
- });
129
- this.markForCheck();
130
- }
131
- onRadioValueChanged(event) {
132
- if (this._writing)
133
- return; // Skip if call by self
134
- this._writing = true;
135
- this._value = event.value;
136
- this.checkIfTouched();
137
- this._onChangeCallback(event.value);
138
- this._writing = false;
139
- }
140
- onCheckboxValueChanged(event) {
141
- if (this._writing)
142
- return; // Skip if call by self
143
- this._writing = true;
144
- this._value = event.checked;
145
- this.checkIfTouched();
146
- this._onChangeCallback(event.checked);
147
- this._writing = false;
148
- }
149
- /* -- private method -- */
150
- checkIfTouched() {
151
- if (this.formControl.touched) {
152
- this.markForCheck();
153
- this._onTouchedCallback();
154
- }
155
- }
156
- /**
157
- * This is a special case, because, this component has a temporary component displayed before the first focus event
158
- */
159
- updateTabIndex() {
160
- if (isNil(this._tabindex) || this._tabindex === -1)
161
- return;
162
- if (this.fakeInput) {
163
- if (this.showRadio) {
164
- this.fakeInput.nativeElement.classList.add('hidden');
165
- this.fakeInput.nativeElement.tabIndex = -1;
166
- }
167
- else {
168
- this.fakeInput.nativeElement.classList.remove('hidden');
169
- this.fakeInput.nativeElement.tabIndex = this._tabindex;
170
- }
171
- }
172
- if (this.yesButton) {
173
- this.yesButton._inputElement.nativeElement.tabIndex = this.showRadio ? this._tabindex : -1;
174
- this.noButton._inputElement.nativeElement.tabIndex = this.showRadio ? this._tabindex + 1 : -1;
175
- }
176
- else if (this.checkboxButton) {
177
- this.checkboxButton._inputElement.nativeElement.tabIndex = this.showRadio ? this._tabindex : -1;
178
- }
179
- this.markForCheck();
180
- }
181
- markForCheck() {
182
- this.cd.markForCheck();
183
- }
184
- }
185
- MatBooleanField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MatBooleanField, deps: [{ token: i1.TranslateService }, { token: i2.UntypedFormBuilder }, { token: i0.ChangeDetectorRef }, { token: i2.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
186
- MatBooleanField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MatBooleanField, selector: "mat-boolean-field", inputs: { disabled: "disabled", formControl: "formControl", formControlName: "formControlName", placeholder: "placeholder", floatLabel: "floatLabel", appearance: "appearance", readonly: "readonly", required: "required", compact: "compact", style: "style", buttonsColCount: "buttonsColCount", classList: ["class", "classList"], yesLabel: "yesLabel", noLabel: "noLabel", showButtonIcons: "showButtonIcons", yesIcon: "yesIcon", noIcon: "noIcon", tabindex: "tabindex", value: "value" }, outputs: { onPressEnter: "keyup.enter", onBlur: "onBlur" }, providers: [
187
- DEFAULT_VALUE_ACCESSOR
188
- ], viewQueries: [{ propertyName: "yesButton", first: true, predicate: ["yesButton"], descendants: true }, { propertyName: "noButton", first: true, predicate: ["noButton"], descendants: true }, { propertyName: "checkboxButton", first: true, predicate: ["checkboxButton"], descendants: true }, { propertyName: "fakeInput", first: true, predicate: ["fakeInput"], descendants: true }], ngImport: i0, template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(value == null ? 'COMMON.EMPTY_OPTION' : (value === true ? yesLabel : noLabel)) | translate }}</ion-text>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button>&nbsp;\n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <mat-label *ngIf=\"placeholder; else noPlaceHolder\">\n {{ placeholder }}\n </mat-label>\n <ng-template #noPlaceHolder>\n <ion-label>&nbsp;</ion-label>\n </ng-template>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===null\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n [appearance]=\"appearance\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n *ngIf=\"formControl.enabled || (formControl.value != null); else emptyLabel\"\n [style.--buttons-col-count]=\"buttonsColCount\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n [disabled]=\"formControl.disabled\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n [disabled]=\"formControl.disabled\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #emptyLabel>\n <ion-label translate>COMMON.EMPTY_OPTION</ion-label>\n </ng-template>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n </ng-container>\n\n</ng-template>\n\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n<ng-template #matSuffixTemplate>\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n", styles: [":host{width:100%}.mat-form-field.mat-boolean-field-radio{margin-top:-2px}.mat-form-field.mat-boolean-field-button{margin-top:-4px}.mat-form-field .mat-form-field-buttons{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}.mat-form-field .mat-form-field-buttons .mat-form-field-button{--button-padding-end: 2px;--flex-basis: calc(100% / var(--buttons-col-count, 2) - var(--button-padding-end));flex:0 1 var(--flex-basis);max-width:min(var(--flex-basis),150px);text-transform:capitalize;white-space:normal;padding-inline-end:var(--button-padding-end)!important;padding-bottom:var(--button-padding-end)!important;height:40px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i7.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i7.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
189
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MatBooleanField, decorators: [{
190
- type: Component,
191
- args: [{ selector: 'mat-boolean-field', providers: [
192
- DEFAULT_VALUE_ACCESSOR
193
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(value == null ? 'COMMON.EMPTY_OPTION' : (value === true ? yesLabel : noLabel)) | translate }}</ion-text>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button>&nbsp;\n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <mat-label *ngIf=\"placeholder; else noPlaceHolder\">\n {{ placeholder }}\n </mat-label>\n <ng-template #noPlaceHolder>\n <ion-label>&nbsp;</ion-label>\n </ng-template>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===null\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n [appearance]=\"appearance\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n *ngIf=\"formControl.enabled || (formControl.value != null); else emptyLabel\"\n [style.--buttons-col-count]=\"buttonsColCount\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n [disabled]=\"formControl.disabled\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n [disabled]=\"formControl.disabled\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #emptyLabel>\n <ion-label translate>COMMON.EMPTY_OPTION</ion-label>\n </ng-template>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n </ng-container>\n\n</ng-template>\n\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n<ng-template #matSuffixTemplate>\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n", styles: [":host{width:100%}.mat-form-field.mat-boolean-field-radio{margin-top:-2px}.mat-form-field.mat-boolean-field-button{margin-top:-4px}.mat-form-field .mat-form-field-buttons{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}.mat-form-field .mat-form-field-buttons .mat-form-field-button{--button-padding-end: 2px;--flex-basis: calc(100% / var(--buttons-col-count, 2) - var(--button-padding-end));flex:0 1 var(--flex-basis);max-width:min(var(--flex-basis),150px);text-transform:capitalize;white-space:normal;padding-inline-end:var(--button-padding-end)!important;padding-bottom:var(--button-padding-end)!important;height:40px}\n"] }]
194
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }, { type: i2.FormGroupDirective, decorators: [{
195
- type: Optional
196
- }] }]; }, propDecorators: { disabled: [{
197
- type: Input
198
- }], formControl: [{
199
- type: Input
200
- }], formControlName: [{
201
- type: Input
202
- }], placeholder: [{
203
- type: Input
204
- }], floatLabel: [{
205
- type: Input
206
- }], appearance: [{
207
- type: Input
208
- }], readonly: [{
209
- type: Input
210
- }], required: [{
211
- type: Input
212
- }], compact: [{
213
- type: Input
214
- }], style: [{
215
- type: Input
216
- }], buttonsColCount: [{
217
- type: Input
218
- }], classList: [{
219
- type: Input,
220
- args: ['class']
221
- }], yesLabel: [{
222
- type: Input
223
- }], noLabel: [{
224
- type: Input
225
- }], showButtonIcons: [{
226
- type: Input
227
- }], yesIcon: [{
228
- type: Input
229
- }], noIcon: [{
230
- type: Input
231
- }], onPressEnter: [{
232
- type: Output,
233
- args: ['keyup.enter']
234
- }], onBlur: [{
235
- type: Output
236
- }], tabindex: [{
237
- type: Input
238
- }], value: [{
239
- type: Input
240
- }], yesButton: [{
241
- type: ViewChild,
242
- args: ['yesButton']
243
- }], noButton: [{
244
- type: ViewChild,
245
- args: ['noButton']
246
- }], checkboxButton: [{
247
- type: ViewChild,
248
- args: ['checkboxButton']
249
- }], fakeInput: [{
250
- type: ViewChild,
251
- args: ['fakeInput']
252
- }] } });
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuYm9vbGVhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2Jvb2xlYW4vbWF0ZXJpYWwuYm9vbGVhbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2Jvb2xlYW4vbWF0ZXJpYWwuYm9vbGVhbi5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQVksU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxMLE9BQU8sRUFBb0YsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVySSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQUs1RCxNQUFNLHNCQUFzQixHQUFhO0lBQ3ZDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDOUMsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBR0YsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVdGLE1BQU0sT0FBTyxlQUFlO0lBOEQxQixZQUNVLFNBQTJCLEVBQzNCLFdBQStCLEVBQy9CLEVBQXFCLEVBQ1QsWUFBZ0M7UUFINUMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ1QsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBakU5QyxzQkFBaUIsR0FBcUIsSUFBSSxDQUFDO1FBQzNDLHVCQUFrQixHQUFlLElBQUksQ0FBQztRQUN0QyxhQUFR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QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxNQUFNO3VCQUFDLGFBQWE7Z0JBSXJCLE1BQU07c0JBREwsTUFBTTtnQkFHTSxRQUFRO3NCQUFwQixLQUFLO2dCQWdCRixLQUFLO3NCQURSLEtBQUs7Z0JBUWtCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDQyxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ1EsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0gsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgUHJvdmlkZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGbG9hdExhYmVsVHlwZSwgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBpc05pbCwgaXNOb3ROaWwsIHRvTnVtYmVyIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IElucHV0RWxlbWVudCB9IGZyb20gJy4uLy4uL2lucHV0cyc7XG5pbXBvcnQgeyBNYXRSYWRpb0J1dHRvbiwgTWF0UmFkaW9DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRDaGVja2JveCwgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5cbmNvbnN0IERFRkFVTFRfVkFMVUVfQUNDRVNTT1I6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTWF0Qm9vbGVhbkZpZWxkKSxcbiAgbXVsdGk6IHRydWVcbn07XG5cblxuY29uc3Qgbm9vcCA9ICgpID0+IHtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdC1ib29sZWFuLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hdGVyaWFsLmJvb2xlYW4uaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hdGVyaWFsLmJvb2xlYW4uc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBERUZBVUxUX1ZBTFVFX0FDQ0VTU09SXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1hdEJvb2xlYW5GaWVsZCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIElucHV0RWxlbWVudCB7XG4gIHByaXZhdGUgX29uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIF9vblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG4gIHByaXZhdGUgX3dyaXRpbmcgPSBmYWxzZTtcblxuICBfdmFsdWU6IGJvb2xlYW47XG4gIF90YWJpbmRleDogbnVtYmVyO1xuXG4gIHNob3dSYWRpbyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSBmbG9hdExhYmVsOiBGbG9hdExhYmVsVHlwZSA9ICdhdXRvJztcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgY29tcGFjdCA9IGZhbHNlO1xuICBASW5wdXQoKSBzdHlsZTogJ3JhZGlvJyB8ICdjaGVja2JveCcgfCAnYnV0dG9uJztcbiAgQElucHV0KCkgYnV0dG9uc0NvbENvdW50OiBudW1iZXI7XG4gIEBJbnB1dCgnY2xhc3MnKSBjbGFzc0xpc3Q6IHN0cmluZztcbiAgQElucHV0KCkgeWVzTGFiZWwgPSAnQ09NTU9OLllFUyc7XG4gIEBJbnB1dCgpIG5vTGFiZWwgPSAnQ09NTU9OLk5PJztcbiAgQElucHV0KCkgc2hvd0J1dHRvbkljb25zID0gdHJ1ZTtcbiAgQElucHV0KCkgeWVzSWNvbiA9ICdjaGVja21hcmsnO1xuICBASW5wdXQoKSBub0ljb24gPSAnY2xvc2UnO1xuXG4gIEBPdXRwdXQoJ2tleXVwLmVudGVyJylcbiAgb25QcmVzc0VudGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcblxuICBASW5wdXQoKSBzZXQgdGFiaW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl90YWJpbmRleCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX3RhYmluZGV4ID0gdmFsdWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlVGFiSW5kZXgoKSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHRhYmluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYmluZGV4O1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh2KTtcbiAgICB9XG4gIH1cblxuICBAVmlld0NoaWxkKCd5ZXNCdXR0b24nKSB5ZXNCdXR0b246IE1hdFJhZGlvQnV0dG9uO1xuICBAVmlld0NoaWxkKCdub0J1dHRvbicpIG5vQnV0dG9uOiBNYXRSYWRpb0J1dHRvbjtcbiAgQFZpZXdDaGlsZCgnY2hlY2tib3hCdXR0b24nKSBjaGVja2JveEJ1dHRvbjogTWF0Q2hlY2tib3g7XG4gIEBWaWV3Q2hpbGQoJ2Zha2VJbnB1dCcpIGZha2VJbnB1dDogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBmb3JtR3JvdXBEaXI6IEZvcm1Hcm91cERpcmVjdGl2ZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Db250cm9sIHx8IHRoaXMuZm9ybUNvbnRyb2xOYW1lICYmIHRoaXMuZm9ybUdyb3VwRGlyICYmIHRoaXMuZm9ybUdyb3VwRGlyLmZvcm0uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gICAgaWYgKCF0aGlzLmZvcm1Db250cm9sKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgbWFuZGF0b3J5IGF0dHJpYnV0ZSBcXCdmb3JtQ29udHJvbFxcJyBvciBcXCdmb3JtQ29udHJvbE5hbWVcXCcgaW4gPG1hdC1ib29sZWFuLWZpZWxkPi4nKTtcblxuICAgIHRoaXMuc3R5bGUgPSB0aGlzLnN0eWxlIHx8ICh0aGlzLmNvbXBhY3QgPyAnY2hlY2tib3gnIDogJ3JhZGlvJyk7XG5cbiAgICBpZiAodGhpcy5zdHlsZSA9PT0gJ2J1dHRvbicpIHtcbiAgICAgIHRoaXMuYnV0dG9uc0NvbENvdW50ID0gdG9OdW1iZXIodGhpcy5idXR0b25zQ29sQ291bnQsIDIpO1xuICAgIH1cblxuICAgIC8vIEZvcmNlIHNob3cgcmFkaW8gaWYgbGFiZWwgYWx3YXlzIG9uIHRvcFxuICAgIHRoaXMuc2hvd1JhZGlvID0gdGhpcy5zaG93UmFkaW8gfHwgdGhpcy5mbG9hdExhYmVsID09PSAnYWx3YXlzJztcblxuICAgIHRoaXMudXBkYXRlVGFiSW5kZXgoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl93cml0aW5nKSByZXR1cm47XG5cbiAgICB0aGlzLl93cml0aW5nID0gdHJ1ZTtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX3ZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5zaG93UmFkaW8gPSB0aGlzLmZsb2F0TGFiZWwgPT09ICdhbHdheXMnIHx8IGlzTm90TmlsKHRoaXMuX3ZhbHVlKTtcbiAgICAgIGlmIChpc05vdE5pbCh0aGlzLnRhYmluZGV4KSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlVGFiSW5kZXgoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX3dyaXRpbmcgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLnN0eWxlID09PSAnYnV0dG9uJykge1xuICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLmZvcm1Db250cm9sLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQpIHRoaXMub25QcmVzc0VudGVyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cblxuICBfb25CbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgdGhpcy5jaGVja0lmVG91Y2hlZCgpO1xuICAgIHRoaXMub25CbHVyLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgX29uRm9jdXNGYWtlSW5wdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gSGlkZSB0aGUgZmFrZSBpbnB1dFxuICAgIGlmICh0aGlzLmZha2VJbnB1dCkge1xuICAgICAgdGhpcy5mYWtlSW5wdXQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgIHRoaXMuZmFrZUlucHV0Lm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPSAtMTtcbiAgICB9XG5cbiAgICAvLyBGb2N1cyBvbiBmaXJzdCBidXR0b25cbiAgICB0aGlzLmZvY3VzKCk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLnNob3dSYWRpbyA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy55ZXNCdXR0b24pIHtcbiAgICAgICAgdGhpcy55ZXNCdXR0b24uZm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHRoaXMuY2hlY2tib3hCdXR0b24pIHtcbiAgICAgICAgdGhpcy5jaGVja2JveEJ1dHRvbi5mb2N1cygpO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVUYWJJbmRleCgpO1xuICAgIH0pO1xuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvblJhZGlvVmFsdWVDaGFuZ2VkKGV2ZW50OiBNYXRSYWRpb0NoYW5nZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl93cml0aW5nKSByZXR1cm47IC8vIFNraXAgaWYgY2FsbCBieSBzZWxmXG4gICAgdGhpcy5fd3JpdGluZyA9IHRydWU7XG4gICAgdGhpcy5fdmFsdWUgPSBldmVudC52YWx1ZTtcbiAgICB0aGlzLmNoZWNrSWZUb3VjaGVkKCk7XG4gICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayhldmVudC52YWx1ZSk7XG4gICAgdGhpcy5fd3JpdGluZyA9IGZhbHNlO1xuICB9XG5cbiAgb25DaGVja2JveFZhbHVlQ2hhbmdlZChldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fd3JpdGluZykgcmV0dXJuOyAvLyBTa2lwIGlmIGNhbGwgYnkgc2VsZlxuICAgIHRoaXMuX3dyaXRpbmcgPSB0cnVlO1xuICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuY2hlY2tlZDtcbiAgICB0aGlzLmNoZWNrSWZUb3VjaGVkKCk7XG4gICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayhldmVudC5jaGVja2VkKTtcbiAgICB0aGlzLl93cml0aW5nID0gZmFsc2U7XG4gIH1cblxuICAvKiAtLSBwcml2YXRlIG1ldGhvZCAtLSAqL1xuXG4gIHByaXZhdGUgY2hlY2tJZlRvdWNoZWQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudG91Y2hlZCkge1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuX29uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2UsIGJlY2F1c2UsIHRoaXMgY29tcG9uZW50IGhhcyBhIHRlbXBvcmFyeSBjb21wb25lbnQgZGlzcGxheWVkIGJlZm9yZSB0aGUgZmlyc3QgZm9jdXMgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlVGFiSW5kZXgoKSB7XG4gICAgaWYgKGlzTmlsKHRoaXMuX3RhYmluZGV4KSB8fCB0aGlzLl90YWJpbmRleCA9PT0gLTEpIHJldHVybjtcblxuICAgIGlmICh0aGlzLmZha2VJbnB1dCkge1xuICAgICAgaWYgKHRoaXMuc2hvd1JhZGlvKSB7XG4gICAgICAgIHRoaXMuZmFrZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XG4gICAgICAgIHRoaXMuZmFrZUlucHV0Lm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPSAtMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZmFrZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7XG4gICAgICAgIHRoaXMuZmFrZUlucHV0Lm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPSB0aGlzLl90YWJpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMueWVzQnV0dG9uKSB7XG4gICAgICB0aGlzLnllc0J1dHRvbi5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPSB0aGlzLnNob3dSYWRpbyA/IHRoaXMuX3RhYmluZGV4IDogLTE7XG4gICAgICB0aGlzLm5vQnV0dG9uLl9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC50YWJJbmRleCA9IHRoaXMuc2hvd1JhZGlvID8gdGhpcy5fdGFiaW5kZXggKyAxIDogLTE7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNoZWNrYm94QnV0dG9uKSB7XG4gICAgICB0aGlzLmNoZWNrYm94QnV0dG9uLl9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC50YWJJbmRleCA9IHRoaXMuc2hvd1JhZGlvID8gdGhpcy5fdGFiaW5kZXggOiAtMTtcbiAgICB9XG4gICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuXG4iLCI8bWF0LWZvcm0tZmllbGQgICpuZ0lmPVwicmVhZG9ubHk7IGVsc2Ugd3JpdGFibGVcIlxuICAgICAgICAgICAgICAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1kaXNhYmxlZCB7e2NsYXNzTGlzdH19XCI+XG4gIDxkaXYgbWF0UHJlZml4PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtYXRQcmVmaXhUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGlucHV0IG1hdElucHV0IGhpZGRlbiB0eXBlPVwidGV4dFwiIHJlYWRvbmx5XG4gICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCI+XG4gIDxpb24tdGV4dD57eyh2YWx1ZSA9PSBudWxsID8gJ0NPTU1PTi5FTVBUWV9PUFRJT04nIDogKHZhbHVlID09PSB0cnVlID8geWVzTGFiZWwgOiBub0xhYmVsKSkgfCB0cmFuc2xhdGUgfX08L2lvbi10ZXh0PlxuICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWF0U3VmZml4VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L21hdC1mb3JtLWZpZWxkPlxuXG48bmctdGVtcGxhdGUgI3dyaXRhYmxlPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzdHlsZVwiPlxuXG4gICAgPCEtLSBSYWRpbyAtLT5cbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nU3dpdGNoQ2FzZT1cIidyYWRpbydcIlxuICAgICAgICAgICAgICAgICAgICBbZmxvYXRMYWJlbF09XCJzaG93UmFkaW8gJiYgKCFmbG9hdExhYmVsIHx8IGZsb2F0TGFiZWwgPT09ICdhdXRvJykgPyAnYWx3YXlzJzogZmxvYXRMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1ib29sZWFuLWZpZWxkIG1hdC1ib29sZWFuLWZpZWxkLXJhZGlvIHt7Y2xhc3NMaXN0fX1cIj5cbiAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJwbGFjZWhvbGRlciAmJiBmbG9hdExhYmVsIT09J25ldmVyJ1wiPlxuICAgICAgICB7e3BsYWNlaG9sZGVyfX1cbiAgICAgICAgPHNwYW4gW2hpZGRlbl09XCJzaG93UmFkaW9cIj4oe3t5ZXNMYWJlbHx0cmFuc2xhdGV9fS97eydDT01NT04uTk8nfHRyYW5zbGF0ZX19KTwvc3Bhbj5cbiAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPGRpdiBtYXRQcmVmaXg+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtYXRQcmVmaXhUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgI2Zha2VJbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5PVwidHJ1ZVwiXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgICAgICAoZm9jdXMpPVwiX29uRm9jdXNGYWtlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICBbY2xhc3MuY2RrLXZpc3VhbGx5LWhpZGRlbl09XCJzaG93UmFkaW9cIlxuICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiPlxuXG4gICAgICA8IS0tIHJhZGlvIGJ1dHRvbiAtLT5cbiAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgW2hpZGRlbl09XCIhc2hvd1JhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblJhZGlvVmFsdWVDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gI3llc0J1dHRvbiBbdmFsdWVdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxzcGFuPnt7eWVzTGFiZWx8dHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gI25vQnV0dG9uIFt2YWx1ZV09XCJmYWxzZVwiPlxuICAgICAgICAgIDxzcGFuPnt7bm9MYWJlbHx0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKVwiIHRyYW5zbGF0ZT5FUlJPUi5GSUVMRF9SRVFVSVJFRDwvbWF0LWVycm9yPlxuXG4gICAgICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1hdFN1ZmZpeFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPCEtLSBDaGVja2JveCAtLT5cbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIlxuICAgICAgICAgICAgICAgICAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LWJvb2xlYW4tZmllbGQgbWF0LWJvb2xlYW4tZmllbGQtY2hlY2tib3gge3tjbGFzc0xpc3R9fVwiPlxuICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cInBsYWNlaG9sZGVyICYmICFzaG93UmFkaW9cIj5cbiAgICAgICAge3twbGFjZWhvbGRlcn19XG4gICAgICA8L21hdC1sYWJlbD5cbiAgICAgIDxkaXYgbWF0UHJlZml4PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWF0UHJlZml4VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlucHV0IG1hdElucHV0ICNtYXRJbnB1dFxuICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgICAgICAgKGZvY3VzKT1cIl9vbkZvY3VzRmFrZUlucHV0KCRldmVudClcIlxuICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgW2NsYXNzLmNkay12aXN1YWxseS1oaWRkZW5dPVwic2hvd1JhZGlvXCJcbiAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIj5cblxuICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cInBsYWNlaG9sZGVyOyBlbHNlIG5vUGxhY2VIb2xkZXJcIj5cbiAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPG5nLXRlbXBsYXRlICNub1BsYWNlSG9sZGVyPlxuICAgICAgICA8aW9uLWxhYmVsPiZuYnNwOzwvaW9uLWxhYmVsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPCEtLSBjaGVja2JveCwgd2hlbiBjb21wYWN0IC0tPlxuICAgICAgPG1hdC1jaGVja2JveCAjY2hlY2tib3hCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoZWNrYm94VmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJ2YWx1ZT09PW51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFzaG93UmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIj5cbiAgICAgIDwvbWF0LWNoZWNrYm94PlxuXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiB0cmFuc2xhdGU+RVJST1IuRklFTERfUkVRVUlSRUQ8L21hdC1lcnJvcj5cblxuICAgICAgPGRpdiBtYXRTdWZmaXg+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtYXRTdWZmaXhUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDwhLS0gQnV0dG9ucyAtLT5cbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nU3dpdGNoQ2FzZT1cIididXR0b24nXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbCA9PT0gJ25ldmVyJyA/ICduZXZlcicgOiAnYWx3YXlzJ1wiXG4gICAgICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1ib29sZWFuLWZpZWxkIG1hdC1ib29sZWFuLWZpZWxkLWJ1dHRvbiB7e2NsYXNzTGlzdH19XCI+XG4gICAgICA8ZGl2IG1hdFByZWZpeD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1hdFByZWZpeFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIGhpZGRlblxuICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1idXR0b25zXCJcbiAgICAgICAgICAgKm5nSWY9XCJmb3JtQ29udHJvbC5lbmFibGVkIHx8IChmb3JtQ29udHJvbC52YWx1ZSAhPSBudWxsKTsgZWxzZSBlbXB0eUxhYmVsXCJcbiAgICAgICAgICAgW3N0eWxlLi0tYnV0dG9ucy1jb2wtY291bnRdPVwiYnV0dG9uc0NvbENvdW50XCI+XG4gICAgICAgIDwhLS0geWVzIC0tPlxuICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJfdGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwid3JpdGVWYWx1ZSh0cnVlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIndyaXRlVmFsdWUodHJ1ZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJfdmFsdWUgPT0gbnVsbCA/ICd0ZXJ0aWFyeScgOiAoX3ZhbHVlID09PSB0cnVlKSA/ICdhY2NlbnQnIDogJ2xpZ2h0J1wiPlxuICAgICAgICAgIDxpb24taWNvbiAqbmdJZj1cInNob3dCdXR0b25JY29ucyAmJiB5ZXNJY29uOyBsZXQgaWNvblwiIHNsb3Q9XCJzdGFydFwiIFtuYW1lXT1cImljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIHt7eWVzTGFiZWx8dHJhbnNsYXRlfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuXG4gICAgICAgIDwhLS0gTm8gYnV0dG9uIC0tPlxuICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJfdGFiaW5kZXggIT09IHVuZGVmaW5lZCA/IChfdGFiaW5kZXggKyAxKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtQ29udHJvbC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ3cml0ZVZhbHVlKGZhbHNlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIndyaXRlVmFsdWUoZmFsc2UsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiX3ZhbHVlID09IG51bGwgPyAndGVydGlhcnknIDogKF92YWx1ZSA9PT0gZmFsc2UpID8gJ2FjY2VudCcgOiAnbGlnaHQnXCI+XG4gICAgICAgICAgPGlvbi1pY29uICpuZ0lmPVwic2hvd0J1dHRvbkljb25zICYmIG5vSWNvbjsgbGV0IGljb25cIiBzbG90PVwic3RhcnRcIiBbbmFtZV09XCJpY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB7e25vTGFiZWx8dHJhbnNsYXRlfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlMYWJlbD5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uRU1QVFlfT1BUSU9OPC9pb24tbGFiZWw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiB0cmFuc2xhdGU+RVJST1IuRklFTERfUkVRVUlSRUQ8L21hdC1lcnJvcj5cbiAgICAgIDxkaXYgbWF0U3VmZml4PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWF0U3VmZml4VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvbmctdGVtcGxhdGU+XG5cblxuPG5nLXRlbXBsYXRlICNtYXRQcmVmaXhUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNtYXRTdWZmaXhUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,76 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { MatChipsField } from './material.chips';
3
- import { MatChipsModule } from '@angular/material/chips';
4
- import { CommonModule } from '@angular/common';
5
- import { IonicModule } from '@ionic/angular';
6
- import { ReactiveFormsModule } from '@angular/forms';
7
- import { SharedPipesModule } from '../../pipes/pipes.module';
8
- import { SharedDirectivesModule } from '../../directives/directives.module';
9
- import { MatCommonModule } from '@angular/material/core';
10
- import { MatAutocompleteModule } from '@angular/material/autocomplete';
11
- import { MatFormFieldModule } from '@angular/material/form-field';
12
- import { MatInputModule } from '@angular/material/input';
13
- import { MatIconModule } from '@angular/material/icon';
14
- import { MatButtonModule } from '@angular/material/button';
15
- import { MatSelectModule } from '@angular/material/select';
16
- import { TranslateModule } from '@ngx-translate/core';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@ngx-translate/core";
19
- export class SharedMatChipsModule {
20
- }
21
- SharedMatChipsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SharedMatChipsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
- SharedMatChipsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: SharedMatChipsModule, declarations: [MatChipsField], imports: [CommonModule,
23
- IonicModule,
24
- ReactiveFormsModule,
25
- SharedPipesModule,
26
- SharedDirectivesModule,
27
- MatCommonModule,
28
- MatAutocompleteModule,
29
- MatFormFieldModule,
30
- MatInputModule,
31
- MatIconModule,
32
- MatButtonModule,
33
- MatSelectModule,
34
- MatChipsModule, i1.TranslateModule], exports: [MatChipsField] });
35
- SharedMatChipsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SharedMatChipsModule, imports: [CommonModule,
36
- IonicModule,
37
- ReactiveFormsModule,
38
- SharedPipesModule,
39
- SharedDirectivesModule,
40
- MatCommonModule,
41
- MatAutocompleteModule,
42
- MatFormFieldModule,
43
- MatInputModule,
44
- MatIconModule,
45
- MatButtonModule,
46
- MatSelectModule,
47
- MatChipsModule,
48
- TranslateModule.forChild()] });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SharedMatChipsModule, decorators: [{
50
- type: NgModule,
51
- args: [{
52
- imports: [
53
- CommonModule,
54
- IonicModule,
55
- ReactiveFormsModule,
56
- SharedPipesModule,
57
- SharedDirectivesModule,
58
- MatCommonModule,
59
- MatAutocompleteModule,
60
- MatFormFieldModule,
61
- MatInputModule,
62
- MatIconModule,
63
- MatButtonModule,
64
- MatSelectModule,
65
- MatChipsModule,
66
- TranslateModule.forChild(),
67
- ],
68
- declarations: [
69
- MatChipsField
70
- ],
71
- exports: [
72
- MatChipsField
73
- ]
74
- }]
75
- }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvY2hpcHMvY2hpcHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUEwQnBELE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7a0hBQXBCLG9CQUFvQixpQkFON0IsYUFBYSxhQWhCYixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsc0JBQXNCO1FBQ3RCLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZUFBZTtRQUNmLGVBQWU7UUFDZixjQUFjLGlDQU9kLGFBQWE7a0hBR0osb0JBQW9CLFlBdEI3QixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsc0JBQXNCO1FBQ3RCLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZUFBZTtRQUNmLGVBQWU7UUFDZixjQUFjO1FBQ2QsZUFBZSxDQUFDLFFBQVEsRUFBRTsyRkFTakIsb0JBQW9CO2tCQXhCaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlLENBQUMsUUFBUSxFQUFFO3FCQUMzQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osYUFBYTtxQkFDZDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsYUFBYTtxQkFDZDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRDaGlwc0ZpZWxkfSBmcm9tICcuL21hdGVyaWFsLmNoaXBzJztcbmltcG9ydCB7TWF0Q2hpcHNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtJb25pY01vZHVsZX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1NoYXJlZFBpcGVzTW9kdWxlfSBmcm9tICcuLi8uLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHtTaGFyZWREaXJlY3RpdmVzTW9kdWxlfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlJztcbmltcG9ydCB7TWF0Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRTZWxlY3RNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTaGFyZWRQaXBlc01vZHVsZSxcbiAgICBTaGFyZWREaXJlY3RpdmVzTW9kdWxlLFxuICAgIE1hdENvbW1vbk1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWF0Q2hpcHNGaWVsZFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWF0Q2hpcHNGaWVsZFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZE1hdENoaXBzTW9kdWxlIHtcblxufVxuIl19