@sumaris-net/ngx-components 2.0.0-rc8 → 2.0.0-rc9

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 (202) hide show
  1. package/esm2020/src/app/admin/admin-routing.module.mjs +4 -4
  2. package/esm2020/src/app/admin/admin.module.mjs +4 -4
  3. package/esm2020/src/app/admin/services/person.service.mjs +3 -3
  4. package/esm2020/src/app/admin/services/validator/person.validator.mjs +3 -3
  5. package/esm2020/src/app/admin/users/list/users.mjs +3 -3
  6. package/esm2020/src/app/admin/users/list/users.module.mjs +4 -4
  7. package/esm2020/src/app/core/about/modal-about.mjs +3 -3
  8. package/esm2020/src/app/core/account/account.mjs +3 -3
  9. package/esm2020/src/app/core/auth/form/form-auth.mjs +3 -3
  10. package/esm2020/src/app/core/auth/modal/modal-auth.mjs +3 -3
  11. package/esm2020/src/app/core/core.module.mjs +4 -4
  12. package/esm2020/src/app/core/core.testing.module.mjs +4 -4
  13. package/esm2020/src/app/core/form/editor.class.mjs +6 -6
  14. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +3 -3
  15. package/esm2020/src/app/core/form/entity-editor.class.mjs +3 -3
  16. package/esm2020/src/app/core/form/entity-metadata.component.mjs +3 -3
  17. package/esm2020/src/app/core/form/form-buttons-bar.component.mjs +3 -3
  18. package/esm2020/src/app/core/form/form.class.mjs +3 -3
  19. package/esm2020/src/app/core/form/list.form.mjs +3 -3
  20. package/esm2020/src/app/core/form/properties/properties.form.mjs +3 -3
  21. package/esm2020/src/app/core/form/properties/property.validator.mjs +3 -3
  22. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +3 -3
  23. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +4 -4
  24. package/esm2020/src/app/core/graphql/graphql.module.mjs +4 -4
  25. package/esm2020/src/app/core/graphql/graphql.service.mjs +3 -3
  26. package/esm2020/src/app/core/home/home.mjs +3 -3
  27. package/esm2020/src/app/core/icon/icon.component.mjs +3 -3
  28. package/esm2020/src/app/core/icon/icon.module.mjs +4 -4
  29. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +3 -3
  30. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +4 -4
  31. package/esm2020/src/app/core/menu/menu.component.mjs +3 -3
  32. package/esm2020/src/app/core/menu/menu.module.mjs +4 -4
  33. package/esm2020/src/app/core/menu/menu.service.mjs +3 -3
  34. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
  35. package/esm2020/src/app/core/peer/select-peer.modal.mjs +3 -3
  36. package/esm2020/src/app/core/peer/select-peer.module.mjs +4 -4
  37. package/esm2020/src/app/core/register/confirm/confirm.mjs +3 -3
  38. package/esm2020/src/app/core/register/form/form-register.mjs +3 -3
  39. package/esm2020/src/app/core/register/modal/modal-register.mjs +3 -3
  40. package/esm2020/src/app/core/register/register.module.mjs +4 -4
  41. package/esm2020/src/app/core/services/account.service.mjs +3 -3
  42. package/esm2020/src/app/core/services/auth-guard.service.mjs +3 -3
  43. package/esm2020/src/app/core/services/base-entity-service.class.mjs +3 -3
  44. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +3 -3
  45. package/esm2020/src/app/core/services/config.service.mjs +3 -3
  46. package/esm2020/src/app/core/services/crypto.service.mjs +3 -3
  47. package/esm2020/src/app/core/services/local-settings.service.mjs +3 -3
  48. package/esm2020/src/app/core/services/network.service.mjs +3 -3
  49. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +8 -8
  50. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
  51. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
  52. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
  53. package/esm2020/src/app/core/services/platform.service.mjs +3 -3
  54. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +3 -3
  55. package/esm2020/src/app/core/services/testing/referential.validator.mjs +3 -3
  56. package/esm2020/src/app/core/services/validator/account.validator.mjs +3 -3
  57. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +3 -3
  58. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  59. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +3 -3
  60. package/esm2020/src/app/core/settings/settings.page.mjs +3 -3
  61. package/esm2020/src/app/core/table/actions-column.component.mjs +3 -3
  62. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +3 -3
  63. package/esm2020/src/app/core/table/memory-table.class.mjs +3 -3
  64. package/esm2020/src/app/core/table/table-select-columns.component.mjs +3 -3
  65. package/esm2020/src/app/core/table/table.class.mjs +3 -3
  66. package/esm2020/src/app/core/table/testing/table.testing.mjs +3 -3
  67. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +4 -4
  68. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +3 -3
  69. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +4 -4
  70. package/esm2020/src/app/core/text-popover/text-form.component.mjs +3 -3
  71. package/esm2020/src/app/core/text-popover/text-popover.component.mjs +3 -3
  72. package/esm2020/src/app/shared/audio/audio.mjs +3 -3
  73. package/esm2020/src/app/shared/audio/audio.testing.mjs +3 -3
  74. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +4 -4
  75. package/esm2020/src/app/shared/capacitor/keyboard.mjs +3 -3
  76. package/esm2020/src/app/shared/debug/debug.component.mjs +3 -3
  77. package/esm2020/src/app/shared/debug/debug.module.mjs +4 -4
  78. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +3 -3
  79. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +3 -3
  80. package/esm2020/src/app/shared/directives/directives.module.mjs +4 -4
  81. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
  82. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +3 -3
  83. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  84. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
  85. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  86. package/esm2020/src/app/shared/file/file.service.mjs +3 -3
  87. package/esm2020/src/app/shared/form/field.component.mjs +3 -3
  88. package/esm2020/src/app/shared/form/loading-spinner.mjs +3 -3
  89. package/esm2020/src/app/shared/gesture/gesture-config.mjs +3 -3
  90. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +3 -3
  91. package/esm2020/src/app/shared/help/help.modal.mjs +3 -3
  92. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
  93. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
  94. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
  95. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
  96. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
  97. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
  98. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
  99. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
  100. package/esm2020/src/app/shared/image/image.module.mjs +4 -4
  101. package/esm2020/src/app/shared/image/image.service.mjs +3 -3
  102. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +3 -3
  103. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
  104. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  105. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +25 -6
  106. package/esm2020/src/app/shared/material/badge/badge.module.mjs +4 -4
  107. package/esm2020/src/app/shared/material/badge/badge.test.mjs +10 -8
  108. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +4 -4
  109. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +3 -3
  110. package/esm2020/src/app/shared/material/chips/chips.module.mjs +4 -4
  111. package/esm2020/src/app/shared/material/chips/material.chips.mjs +3 -3
  112. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  113. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +4 -4
  114. package/esm2020/src/app/shared/material/datetime/material.date.mjs +3 -3
  115. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +3 -3
  116. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +3 -3
  117. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +3 -3
  118. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +3 -3
  119. package/esm2020/src/app/shared/material/duration/duration.module.mjs +4 -4
  120. package/esm2020/src/app/shared/material/duration/material.duration.mjs +3 -3
  121. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +3 -3
  122. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
  123. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
  124. package/esm2020/src/app/shared/material/material.module.mjs +4 -4
  125. package/esm2020/src/app/shared/material/material.testing.module.mjs +6 -6
  126. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +3 -3
  127. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +3 -3
  128. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +3 -3
  129. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +3 -3
  130. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +3 -3
  131. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +3 -3
  132. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +4 -4
  133. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +3 -3
  134. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
  135. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
  136. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +3 -3
  137. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +4 -4
  138. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
  139. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +24 -24
  140. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +3 -3
  141. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
  142. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +4 -4
  143. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
  144. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +4 -4
  145. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +3 -3
  146. package/esm2020/src/app/shared/pipes/form.pipes.mjs +18 -18
  147. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +4 -4
  148. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
  149. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +12 -12
  150. package/esm2020/src/app/shared/pipes/math.pipes.mjs +12 -12
  151. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
  152. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +4 -4
  153. package/esm2020/src/app/shared/pipes/pipes.module.mjs +4 -4
  154. package/esm2020/src/app/shared/pipes/property.pipes.mjs +7 -7
  155. package/esm2020/src/app/shared/pipes/string.pipes.mjs +15 -15
  156. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
  157. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +3 -3
  158. package/esm2020/src/app/shared/services/progress-bar.service.mjs +3 -3
  159. package/esm2020/src/app/shared/services/storage/storage.service.mjs +3 -3
  160. package/esm2020/src/app/shared/services/translate-context.service.mjs +3 -3
  161. package/esm2020/src/app/shared/shared-routing.module.mjs +7 -7
  162. package/esm2020/src/app/shared/shared.module.mjs +4 -4
  163. package/esm2020/src/app/shared/shared.testing.module.mjs +4 -4
  164. package/esm2020/src/app/shared/testing/observable.test.mjs +3 -3
  165. package/esm2020/src/app/shared/testing/tests.page.mjs +3 -3
  166. package/esm2020/src/app/shared/toast/toast.testing.mjs +3 -3
  167. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +4 -4
  168. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +3 -3
  169. package/esm2020/src/app/shared/toolbar/toolbar.mjs +3 -3
  170. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +4 -4
  171. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
  172. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
  173. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
  174. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +3 -3
  175. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
  176. package/esm2020/src/app/social/job/job.module.mjs +4 -4
  177. package/esm2020/src/app/social/job/job.service.mjs +3 -3
  178. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +3 -3
  179. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +3 -3
  180. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +3 -3
  181. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +3 -3
  182. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +4 -4
  183. package/esm2020/src/app/social/message/message.form.mjs +3 -3
  184. package/esm2020/src/app/social/message/message.modal.mjs +3 -3
  185. package/esm2020/src/app/social/message/message.module.mjs +4 -4
  186. package/esm2020/src/app/social/message/message.service.mjs +3 -3
  187. package/esm2020/src/app/social/social.module.mjs +4 -4
  188. package/esm2020/src/app/social/social.testing.module.mjs +4 -4
  189. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +3 -3
  190. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +3 -3
  191. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +3 -3
  192. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
  193. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
  194. package/esm2020/src/app/social/user-event/user-event.module.mjs +4 -4
  195. package/esm2020/src/app/social/user-event/user-event.service.mjs +3 -3
  196. package/fesm2015/sumaris-net.ngx-components.mjs +761 -741
  197. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  198. package/fesm2020/sumaris-net.ngx-components.mjs +761 -741
  199. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  200. package/package.json +1 -1
  201. package/src/app/shared/material/badge/badge.directive.d.ts +3 -1
  202. package/src/app/shared/material/badge/badge.test.d.ts +1 -0
@@ -11,9 +11,9 @@ export class HotkeysDialogComponent {
11
11
  ngOnInit() {
12
12
  }
13
13
  }
14
- HotkeysDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: HotkeysDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
15
- HotkeysDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: HotkeysDialogComponent, selector: "ng-component", ngImport: i0, template: "<table>\n <tbody>\n <tr *ngFor=\"let keys of hotkeys\">\n <td>{{ keys[1] | translate }}</td>\n\n <td class=\"text-right\">\n <kbd>{{ keys[0] }}</kbd>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host table{border-collapse:collapse;width:100%;margin-bottom:1rem;color:#212529}:host th{font-weight:500;text-align:left;vertical-align:bottom;padding:.75rem;border-top:1px solid #dee2e6;border-bottom:2px solid #dee2e6}:host td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6;padding-left:0}:host kbd{margin-right:6px;background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px #c6cbd1;color:#444d56;display:inline-block;font-size:12px;line-height:10px;padding:3px 5px;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: HotkeysDialogComponent, decorators: [{
14
+ HotkeysDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: HotkeysDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
15
+ HotkeysDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: HotkeysDialogComponent, selector: "ng-component", ngImport: i0, template: "<table>\n <tbody>\n <tr *ngFor=\"let keys of hotkeys\">\n <td>{{ keys[1] | translate }}</td>\n\n <td class=\"text-right\">\n <kbd>{{ keys[0] }}</kbd>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host table{border-collapse:collapse;width:100%;margin-bottom:1rem;color:#212529}:host th{font-weight:500;text-align:left;vertical-align:bottom;padding:.75rem;border-top:1px solid #dee2e6;border-bottom:2px solid #dee2e6}:host td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6;padding-left:0}:host kbd{margin-right:6px;background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px #c6cbd1;color:#444d56;display:inline-block;font-size:12px;line-height:10px;padding:3px 5px;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: HotkeysDialogComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ template: "<table>\n <tbody>\n <tr *ngFor=\"let keys of hotkeys\">\n <td>{{ keys[1] | translate }}</td>\n\n <td class=\"text-right\">\n <kbd>{{ keys[0] }}</kbd>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host table{border-collapse:collapse;width:100%;margin-bottom:1rem;color:#212529}:host th{font-weight:500;text-align:left;vertical-align:bottom;padding:.75rem;border-top:1px solid #dee2e6;border-bottom:2px solid #dee2e6}:host td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6;padding-left:0}:host kbd{margin-right:6px;background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px #c6cbd1;color:#444d56;display:inline-block;font-size:12px;line-height:10px;padding:3px 5px;vertical-align:middle}\n"] }]
19
19
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -70,9 +70,9 @@ export class Hotkeys {
70
70
  });
71
71
  }
72
72
  }
73
- Hotkeys.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: Hotkeys, deps: [{ token: i1.EventManager }, { token: i2.MatDialog }, { token: DOCUMENT }, { token: i3.ModalController }, { token: i3.PopoverController }], target: i0.ɵɵFactoryTarget.Injectable });
74
- Hotkeys.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: Hotkeys, providedIn: 'root' });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: Hotkeys, decorators: [{
73
+ Hotkeys.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: Hotkeys, deps: [{ token: i1.EventManager }, { token: i2.MatDialog }, { token: DOCUMENT }, { token: i3.ModalController }, { token: i3.PopoverController }], target: i0.ɵɵFactoryTarget.Injectable });
74
+ Hotkeys.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: Hotkeys, providedIn: 'root' });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: Hotkeys, decorators: [{
76
76
  type: Injectable,
77
77
  args: [{
78
78
  providedIn: 'root'
@@ -9,17 +9,17 @@ import * as i0 from "@angular/core";
9
9
  import * as i1 from "@ngx-translate/core";
10
10
  export class SharedHotkeysModule {
11
11
  }
12
- SharedHotkeysModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: SharedHotkeysModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- SharedHotkeysModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: SharedHotkeysModule, declarations: [HotkeysDialogComponent], imports: [CommonModule,
12
+ SharedHotkeysModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedHotkeysModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ SharedHotkeysModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: SharedHotkeysModule, declarations: [HotkeysDialogComponent], imports: [CommonModule,
14
14
  MatCommonModule,
15
15
  MatDialogModule, i1.TranslateModule], exports: [HotkeysDialogComponent] });
16
- SharedHotkeysModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: SharedHotkeysModule, providers: [
16
+ SharedHotkeysModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedHotkeysModule, providers: [
17
17
  Hotkeys
18
18
  ], imports: [CommonModule,
19
19
  MatCommonModule,
20
20
  MatDialogModule,
21
21
  TranslateModule.forChild()] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: SharedHotkeysModule, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedHotkeysModule, decorators: [{
23
23
  type: NgModule,
24
24
  args: [{
25
25
  imports: [
@@ -243,9 +243,9 @@ export class AppImageGalleryComponent {
243
243
  }
244
244
  }
245
245
  }
246
- AppImageGalleryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: AppImageGalleryComponent, deps: [{ token: i1.ImageService }, { token: i2.Platform }, { token: i2.AlertController }, { token: i3.TranslateService }, { token: i0.ChangeDetectorRef }, { token: ENVIRONMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
247
- AppImageGalleryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: AppImageGalleryComponent, selector: "app-image-gallery", inputs: { debug: "debug", readOnly: "readOnly", disabled: "disabled", showToolbar: "showToolbar", mobile: "mobile", mode: "mode", confirmBeforeDelete: "confirmBeforeDelete", dataSource: "dataSource" }, viewQueries: [{ propertyName: "slides", first: true, predicate: ["slides"], descendants: true }, { propertyName: "zoomModal", first: true, predicate: ["zoomModal"], descendants: true }], ngImport: i0, template: "\n\n<ion-toolbar color=\"light\" *ngIf=\"showToolbar\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"!readOnly && !mobile && enabled\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"add()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <ion-buttons slot=\"end\">\n <!-- Toggle view mode -->\n <ion-segment (ionChange)=\"toggleViewMode($event)\" color=\"accent\"\n [value]=\"_colSize\">\n <ion-segment-button value=\"mosaic\">\n <mat-icon>view_module</mat-icon>\n </ion-segment-button>\n <ion-segment-button value=\"list\">\n <mat-icon>view_list</mat-icon>\n </ion-segment-button>\n </ion-segment>\n </ion-buttons>\n</ion-toolbar>\n\n<ion-content>\n <div *ngIf=\"mobile && zoomActive\" class=\"backdrop\" [style.opacity]=\"zoomScale\"></div>\n\n <ion-grid>\n <ion-row>\n <ion-col *ngFor=\"let row of rows; index as index\" [size]=\"_colSize\">\n <ion-card #card class=\"image-card\" (click)=\"clickRow(row, index)\"\n tappable\n @fadeInAnimation>\n <ng-container *ngIf=\"row|propertyGet: 'currentData'; let image\">\n <ion-slides #slides class=\"image-slide\" [options]=\"sliderOpts\" >\n <ion-slide>\n <div class=\"swiper-zoom-container\"\n (touchstart)=\"touchStart(card)\"\n (touchend)=\"touchEnd(card)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n\n <!-- title -->\n <ion-item lines=\"none\" color=\"light\" *ngIf=\"image.title || (!mobile && !readOnly)\">\n <ion-label *ngIf=\"image.title\">{{image.title}}</ion-label>\n <button mat-icon-button *ngIf=\"!readOnly\" slot=\"end\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n [disabled]=\"disabled\"\n (click)=\"delete($event, row)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ion-item>\n </ng-container>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n</ion-content>\n\n<!-- FAB button: add -->\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\"\n *ngIf=\"!readOnly && mobile\"\n [class.cdk-visually-hidden]=\"disabled\"\n @fadeInOutAnimation>\n\n <ion-fab-button color=\"tertiary\" (click)=\"add($event)\">\n <ion-icon name=\"camera\"></ion-icon>\n <ion-icon name=\"add\" class=\"icon-secondary\" style=\"left: 33px; top: 9px; font-size: 20px;\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n\n<!-- Zoom modal -->\n<ion-modal #zoomModal class=\"stack-modal zoom-modal\">\n <ng-template>\n <ion-content>\n <!-- zoom button -->\n <div class=\"top-buttons\" *ngIf=\"!mobile\">\n <ion-button (click)=\"zoom(modalSlides, true)\" color=\"light\">\n <ion-icon slot=\"icon-only\" name=\"add\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"zoom(modalSlides, false)\" color=\"light\">\n <ion-icon name=\"remove\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n <!-- navigation side buttons next/back -->\n <ng-container *ngIf=\"!mobile && (rows|isArrayLength:{greaterThan: 1})\">\n <div class=\"side-buttons prev\"\n (click)=\"slidePrev(modalSlides)\">\n <ion-icon name=\"chevron-back\"></ion-icon>\n </div>\n <div class=\"side-buttons next\"\n (click)=\"slideNext(modalSlides)\">\n <ion-icon name=\"chevron-forward\"></ion-icon>\n </div>\n </ng-container>\n <ion-slides #modalSlides [options]=\"modalSliderOpts\" >\n <ion-slide *ngFor=\"let row of rows; last as last\">\n <div class=\"swiper-zoom-container\" *ngIf=\"row|propertyGet: 'currentData'; let image\"\n (ngInit)=\"last && initModalSlides(modalSlides)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n </ion-content>\n\n <ion-footer>\n <ion-toolbar color=\"light\">\n <ion-row>\n <ion-col size=\"4\" class=\"ion-text-start\">\n <ion-button (click)=\"deleteFromModal($event, modalSlides)\" fill=\"clear\" color=\"danger\">\n <mat-icon slot=\"start\">delete</mat-icon>\n {{'COMMON.BTN_DELETE'|translate}}\n </ion-button>\n </ion-col>\n <ion-col size=\"4\">\n </ion-col>\n <ion-col size=\"4\" class=\"ion-text-end\">\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\" fill=\"clear\" *ngIf=\"mobile; else desktop\">\n <ion-icon slot=\"start\" name=\"close\"></ion-icon>\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n <ng-template #desktop>\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\">\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n </ng-template>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n", styles: ["mat-toolbar,.mat-toolbar-single-row{padding:0;height:42px}.image-slide,.image-card{overflow:visible}.image-card{z-index:9}.backdrop{height:100vh;width:100vw;background:black;position:absolute;z-index:10}.zoom-modal{-webkit-user-select:none;user-select:none}.zoom-modal .top-buttons{z-index:14;position:absolute;display:inline-grid;right:var(--ion-padding-start, 8px);top:var(--ion-padding-start, 8px)}.zoom-modal .side-buttons{--side-buttons-width: 120px;--side-buttons-margin: calc(var(--side-buttons-width) / 3);z-index:13;position:absolute;top:0;bottom:0;width:var(--side-buttons-width)}.zoom-modal .side-buttons ion-icon{top:50%;color:#fff;font-size:2.5rem;position:absolute;opacity:0;transition-duration:.15s;transition-timing-function:ease-in}.zoom-modal .side-buttons:hover{cursor:pointer}.zoom-modal .side-buttons:hover ion-icon{opacity:1}.zoom-modal .side-buttons.prev{left:0}.zoom-modal .side-buttons.prev ion-icon{left:var(--side-buttons-margin)}.zoom-modal .side-buttons.next{right:0}.zoom-modal .side-buttons.next ion-icon{right:var(--side-buttons-margin)}.zoom-modal ion-slides{height:100%;background:black}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonFab, selector: "ion-fab", inputs: ["activated", "edge", "horizontal", "vertical"] }, { kind: "component", type: i2.IonFabButton, selector: "ion-fab-button", inputs: ["activated", "closeIcon", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "show", "size", "target", "translucent", "type"] }, { kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i2.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "component", type: i2.IonSlide, selector: "ion-slide" }, { kind: "component", type: i2.IonSlides, selector: "ion-slides", inputs: ["mode", "options", "pager", "scrollbar"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal", inputs: ["animated", "keepContentsMounted", "backdropBreakpoint", "backdropDismiss", "breakpoints", "canDismiss", "cssClass", "enterAnimation", "event", "handle", "handleBehavior", "initialBreakpoint", "isOpen", "keyboardClose", "leaveAnimation", "mode", "presentingElement", "showBackdrop", "swipeToClose", "translucent", "trigger"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.NgInitDirective, selector: "[ngInit]", outputs: ["ngInit"] }, { kind: "pipe", type: i8.PropertyGetPipe, name: "propertyGet" }, { kind: "pipe", type: i9.ArrayLengthPipe, name: "isArrayLength" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [fadeInAnimation, fadeInOutAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: AppImageGalleryComponent, decorators: [{
246
+ AppImageGalleryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AppImageGalleryComponent, deps: [{ token: i1.ImageService }, { token: i2.Platform }, { token: i2.AlertController }, { token: i3.TranslateService }, { token: i0.ChangeDetectorRef }, { token: ENVIRONMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
247
+ AppImageGalleryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: AppImageGalleryComponent, selector: "app-image-gallery", inputs: { debug: "debug", readOnly: "readOnly", disabled: "disabled", showToolbar: "showToolbar", mobile: "mobile", mode: "mode", confirmBeforeDelete: "confirmBeforeDelete", dataSource: "dataSource" }, viewQueries: [{ propertyName: "slides", first: true, predicate: ["slides"], descendants: true }, { propertyName: "zoomModal", first: true, predicate: ["zoomModal"], descendants: true }], ngImport: i0, template: "\n\n<ion-toolbar color=\"light\" *ngIf=\"showToolbar\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"!readOnly && !mobile && enabled\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"add()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <ion-buttons slot=\"end\">\n <!-- Toggle view mode -->\n <ion-segment (ionChange)=\"toggleViewMode($event)\" color=\"accent\"\n [value]=\"_colSize\">\n <ion-segment-button value=\"mosaic\">\n <mat-icon>view_module</mat-icon>\n </ion-segment-button>\n <ion-segment-button value=\"list\">\n <mat-icon>view_list</mat-icon>\n </ion-segment-button>\n </ion-segment>\n </ion-buttons>\n</ion-toolbar>\n\n<ion-content>\n <div *ngIf=\"mobile && zoomActive\" class=\"backdrop\" [style.opacity]=\"zoomScale\"></div>\n\n <ion-grid>\n <ion-row>\n <ion-col *ngFor=\"let row of rows; index as index\" [size]=\"_colSize\">\n <ion-card #card class=\"image-card\" (click)=\"clickRow(row, index)\"\n tappable\n @fadeInAnimation>\n <ng-container *ngIf=\"row|propertyGet: 'currentData'; let image\">\n <ion-slides #slides class=\"image-slide\" [options]=\"sliderOpts\" >\n <ion-slide>\n <div class=\"swiper-zoom-container\"\n (touchstart)=\"touchStart(card)\"\n (touchend)=\"touchEnd(card)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n\n <!-- title -->\n <ion-item lines=\"none\" color=\"light\" *ngIf=\"image.title || (!mobile && !readOnly)\">\n <ion-label *ngIf=\"image.title\">{{image.title}}</ion-label>\n <button mat-icon-button *ngIf=\"!readOnly\" slot=\"end\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n [disabled]=\"disabled\"\n (click)=\"delete($event, row)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ion-item>\n </ng-container>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n</ion-content>\n\n<!-- FAB button: add -->\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\"\n *ngIf=\"!readOnly && mobile\"\n [class.cdk-visually-hidden]=\"disabled\"\n @fadeInOutAnimation>\n\n <ion-fab-button color=\"tertiary\" (click)=\"add($event)\">\n <ion-icon name=\"camera\"></ion-icon>\n <ion-icon name=\"add\" class=\"icon-secondary\" style=\"left: 33px; top: 9px; font-size: 20px;\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n\n<!-- Zoom modal -->\n<ion-modal #zoomModal class=\"stack-modal zoom-modal\">\n <ng-template>\n <ion-content>\n <!-- zoom button -->\n <div class=\"top-buttons\" *ngIf=\"!mobile\">\n <ion-button (click)=\"zoom(modalSlides, true)\" color=\"light\">\n <ion-icon slot=\"icon-only\" name=\"add\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"zoom(modalSlides, false)\" color=\"light\">\n <ion-icon name=\"remove\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n <!-- navigation side buttons next/back -->\n <ng-container *ngIf=\"!mobile && (rows|isArrayLength:{greaterThan: 1})\">\n <div class=\"side-buttons prev\"\n (click)=\"slidePrev(modalSlides)\">\n <ion-icon name=\"chevron-back\"></ion-icon>\n </div>\n <div class=\"side-buttons next\"\n (click)=\"slideNext(modalSlides)\">\n <ion-icon name=\"chevron-forward\"></ion-icon>\n </div>\n </ng-container>\n <ion-slides #modalSlides [options]=\"modalSliderOpts\" >\n <ion-slide *ngFor=\"let row of rows; last as last\">\n <div class=\"swiper-zoom-container\" *ngIf=\"row|propertyGet: 'currentData'; let image\"\n (ngInit)=\"last && initModalSlides(modalSlides)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n </ion-content>\n\n <ion-footer>\n <ion-toolbar color=\"light\">\n <ion-row>\n <ion-col size=\"4\" class=\"ion-text-start\">\n <ion-button (click)=\"deleteFromModal($event, modalSlides)\" fill=\"clear\" color=\"danger\">\n <mat-icon slot=\"start\">delete</mat-icon>\n {{'COMMON.BTN_DELETE'|translate}}\n </ion-button>\n </ion-col>\n <ion-col size=\"4\">\n </ion-col>\n <ion-col size=\"4\" class=\"ion-text-end\">\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\" fill=\"clear\" *ngIf=\"mobile; else desktop\">\n <ion-icon slot=\"start\" name=\"close\"></ion-icon>\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n <ng-template #desktop>\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\">\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n </ng-template>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n", styles: ["mat-toolbar,.mat-toolbar-single-row{padding:0;height:42px}.image-slide,.image-card{overflow:visible}.image-card{z-index:9}.backdrop{height:100vh;width:100vw;background:black;position:absolute;z-index:10}.zoom-modal{-webkit-user-select:none;user-select:none}.zoom-modal .top-buttons{z-index:14;position:absolute;display:inline-grid;right:var(--ion-padding-start, 8px);top:var(--ion-padding-start, 8px)}.zoom-modal .side-buttons{--side-buttons-width: 120px;--side-buttons-margin: calc(var(--side-buttons-width) / 3);z-index:13;position:absolute;top:0;bottom:0;width:var(--side-buttons-width)}.zoom-modal .side-buttons ion-icon{top:50%;color:#fff;font-size:2.5rem;position:absolute;opacity:0;transition-duration:.15s;transition-timing-function:ease-in}.zoom-modal .side-buttons:hover{cursor:pointer}.zoom-modal .side-buttons:hover ion-icon{opacity:1}.zoom-modal .side-buttons.prev{left:0}.zoom-modal .side-buttons.prev ion-icon{left:var(--side-buttons-margin)}.zoom-modal .side-buttons.next{right:0}.zoom-modal .side-buttons.next ion-icon{right:var(--side-buttons-margin)}.zoom-modal ion-slides{height:100%;background:black}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonFab, selector: "ion-fab", inputs: ["activated", "edge", "horizontal", "vertical"] }, { kind: "component", type: i2.IonFabButton, selector: "ion-fab-button", inputs: ["activated", "closeIcon", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "show", "size", "target", "translucent", "type"] }, { kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i2.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "component", type: i2.IonSlide, selector: "ion-slide" }, { kind: "component", type: i2.IonSlides, selector: "ion-slides", inputs: ["mode", "options", "pager", "scrollbar"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal", inputs: ["animated", "keepContentsMounted", "backdropBreakpoint", "backdropDismiss", "breakpoints", "canDismiss", "cssClass", "enterAnimation", "event", "handle", "handleBehavior", "initialBreakpoint", "isOpen", "keyboardClose", "leaveAnimation", "mode", "presentingElement", "showBackdrop", "swipeToClose", "translucent", "trigger"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.NgInitDirective, selector: "[ngInit]", outputs: ["ngInit"] }, { kind: "pipe", type: i8.PropertyGetPipe, name: "propertyGet" }, { kind: "pipe", type: i9.ArrayLengthPipe, name: "isArrayLength" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [fadeInAnimation, fadeInOutAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AppImageGalleryComponent, decorators: [{
249
249
  type: Component,
250
250
  args: [{ selector: 'app-image-gallery', animations: [fadeInAnimation, fadeInOutAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "\n\n<ion-toolbar color=\"light\" *ngIf=\"showToolbar\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"!readOnly && !mobile && enabled\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"add()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <ion-buttons slot=\"end\">\n <!-- Toggle view mode -->\n <ion-segment (ionChange)=\"toggleViewMode($event)\" color=\"accent\"\n [value]=\"_colSize\">\n <ion-segment-button value=\"mosaic\">\n <mat-icon>view_module</mat-icon>\n </ion-segment-button>\n <ion-segment-button value=\"list\">\n <mat-icon>view_list</mat-icon>\n </ion-segment-button>\n </ion-segment>\n </ion-buttons>\n</ion-toolbar>\n\n<ion-content>\n <div *ngIf=\"mobile && zoomActive\" class=\"backdrop\" [style.opacity]=\"zoomScale\"></div>\n\n <ion-grid>\n <ion-row>\n <ion-col *ngFor=\"let row of rows; index as index\" [size]=\"_colSize\">\n <ion-card #card class=\"image-card\" (click)=\"clickRow(row, index)\"\n tappable\n @fadeInAnimation>\n <ng-container *ngIf=\"row|propertyGet: 'currentData'; let image\">\n <ion-slides #slides class=\"image-slide\" [options]=\"sliderOpts\" >\n <ion-slide>\n <div class=\"swiper-zoom-container\"\n (touchstart)=\"touchStart(card)\"\n (touchend)=\"touchEnd(card)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n\n <!-- title -->\n <ion-item lines=\"none\" color=\"light\" *ngIf=\"image.title || (!mobile && !readOnly)\">\n <ion-label *ngIf=\"image.title\">{{image.title}}</ion-label>\n <button mat-icon-button *ngIf=\"!readOnly\" slot=\"end\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n [disabled]=\"disabled\"\n (click)=\"delete($event, row)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ion-item>\n </ng-container>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n</ion-content>\n\n<!-- FAB button: add -->\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\"\n *ngIf=\"!readOnly && mobile\"\n [class.cdk-visually-hidden]=\"disabled\"\n @fadeInOutAnimation>\n\n <ion-fab-button color=\"tertiary\" (click)=\"add($event)\">\n <ion-icon name=\"camera\"></ion-icon>\n <ion-icon name=\"add\" class=\"icon-secondary\" style=\"left: 33px; top: 9px; font-size: 20px;\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n\n<!-- Zoom modal -->\n<ion-modal #zoomModal class=\"stack-modal zoom-modal\">\n <ng-template>\n <ion-content>\n <!-- zoom button -->\n <div class=\"top-buttons\" *ngIf=\"!mobile\">\n <ion-button (click)=\"zoom(modalSlides, true)\" color=\"light\">\n <ion-icon slot=\"icon-only\" name=\"add\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"zoom(modalSlides, false)\" color=\"light\">\n <ion-icon name=\"remove\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n <!-- navigation side buttons next/back -->\n <ng-container *ngIf=\"!mobile && (rows|isArrayLength:{greaterThan: 1})\">\n <div class=\"side-buttons prev\"\n (click)=\"slidePrev(modalSlides)\">\n <ion-icon name=\"chevron-back\"></ion-icon>\n </div>\n <div class=\"side-buttons next\"\n (click)=\"slideNext(modalSlides)\">\n <ion-icon name=\"chevron-forward\"></ion-icon>\n </div>\n </ng-container>\n <ion-slides #modalSlides [options]=\"modalSliderOpts\" >\n <ion-slide *ngFor=\"let row of rows; last as last\">\n <div class=\"swiper-zoom-container\" *ngIf=\"row|propertyGet: 'currentData'; let image\"\n (ngInit)=\"last && initModalSlides(modalSlides)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n </ion-content>\n\n <ion-footer>\n <ion-toolbar color=\"light\">\n <ion-row>\n <ion-col size=\"4\" class=\"ion-text-start\">\n <ion-button (click)=\"deleteFromModal($event, modalSlides)\" fill=\"clear\" color=\"danger\">\n <mat-icon slot=\"start\">delete</mat-icon>\n {{'COMMON.BTN_DELETE'|translate}}\n </ion-button>\n </ion-col>\n <ion-col size=\"4\">\n </ion-col>\n <ion-col size=\"4\" class=\"ion-text-end\">\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\" fill=\"clear\" *ngIf=\"mobile; else desktop\">\n <ion-icon slot=\"start\" name=\"close\"></ion-icon>\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n <ng-template #desktop>\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\">\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n </ng-template>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n", styles: ["mat-toolbar,.mat-toolbar-single-row{padding:0;height:42px}.image-slide,.image-card{overflow:visible}.image-card{z-index:9}.backdrop{height:100vh;width:100vw;background:black;position:absolute;z-index:10}.zoom-modal{-webkit-user-select:none;user-select:none}.zoom-modal .top-buttons{z-index:14;position:absolute;display:inline-grid;right:var(--ion-padding-start, 8px);top:var(--ion-padding-start, 8px)}.zoom-modal .side-buttons{--side-buttons-width: 120px;--side-buttons-margin: calc(var(--side-buttons-width) / 3);z-index:13;position:absolute;top:0;bottom:0;width:var(--side-buttons-width)}.zoom-modal .side-buttons ion-icon{top:50%;color:#fff;font-size:2.5rem;position:absolute;opacity:0;transition-duration:.15s;transition-timing-function:ease-in}.zoom-modal .side-buttons:hover{cursor:pointer}.zoom-modal .side-buttons:hover ion-icon{opacity:1}.zoom-modal .side-buttons.prev{left:0}.zoom-modal .side-buttons.prev ion-icon{left:var(--side-buttons-margin)}.zoom-modal .side-buttons.next{right:0}.zoom-modal .side-buttons.next ion-icon{right:var(--side-buttons-margin)}.zoom-modal ion-slides{height:100%;background:black}\n"] }]
251
251
  }], ctorParameters: function () { return [{ type: i1.ImageService }, { type: i2.Platform }, { type: i2.AlertController }, { type: i3.TranslateService }, { type: i0.ChangeDetectorRef }, { type: i10.Environment, decorators: [{
@@ -9,8 +9,8 @@ import * as i0 from "@angular/core";
9
9
  import * as i1 from "@ngx-translate/core";
10
10
  export class ImageGalleryModule {
11
11
  }
12
- ImageGalleryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- ImageGalleryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryModule, declarations: [
12
+ ImageGalleryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageGalleryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ ImageGalleryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: ImageGalleryModule, declarations: [
14
14
  // Components
15
15
  AppImageGalleryComponent], imports: [CommonModule,
16
16
  IonicModule,
@@ -18,12 +18,12 @@ ImageGalleryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
18
18
  SharedPipesModule, i1.TranslateModule], exports: [
19
19
  // Components
20
20
  AppImageGalleryComponent] });
21
- ImageGalleryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryModule, imports: [CommonModule,
21
+ ImageGalleryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageGalleryModule, imports: [CommonModule,
22
22
  IonicModule,
23
23
  SharedMaterialModule,
24
24
  SharedPipesModule,
25
25
  TranslateModule.forChild()] });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryModule, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageGalleryModule, decorators: [{
27
27
  type: NgModule,
28
28
  args: [{
29
29
  imports: [
@@ -81,9 +81,9 @@ export class ImageAttachmentService extends StartableService {
81
81
  return ImageAttachmentFilter.fromObject(filter);
82
82
  }
83
83
  }
84
- ImageAttachmentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageAttachmentService, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
85
- ImageAttachmentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageAttachmentService });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageAttachmentService, decorators: [{
84
+ ImageAttachmentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageAttachmentService, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
85
+ ImageAttachmentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageAttachmentService });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageAttachmentService, decorators: [{
87
87
  type: Injectable
88
88
  }], ctorParameters: function () { return [{ type: i1.Platform }]; } });
89
89
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5zZXJ2aWNlLnRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9nYWxsZXJ5L3Rlc3RpbmcvZ2FsbGVyeS5zZXJ2aWNlLnRlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFHM0UsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLFdBQVcsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUU5RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOENBQThDLENBQUM7OztBQUcxRSxXQUFXO0FBRVgsSUFBYSxlQUFlLEdBQTVCLE1BQWEsZUFBZ0IsU0FBUSxNQUF1QjtJQUE1RDs7UUFJRSxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBQ3ZCLFFBQUcsR0FBVyxJQUFJLENBQUM7UUFDbkIsVUFBSyxHQUFXLElBQUksQ0FBQztJQVF2QixDQUFDO0lBTkMsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7Q0FDRixDQUFBO0FBZFksZUFBZTtJQUQzQixXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztHQUNsQyxlQUFlLENBYzNCO1NBZFksZUFBZTtBQWdCNUIsV0FBVztBQUVYLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXNCLFNBQVEsWUFBb0Q7Q0FJOUYsQ0FBQTtBQUpZLHFCQUFxQjtJQURqQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUUsQ0FBQztHQUN4QyxxQkFBcUIsQ0FJakM7U0FKWSxxQkFBcUI7QUFPbEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGdCQUFnQjtJQVExRCxZQUFzQixRQUFrQjtRQUV0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFGSSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTHhDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBNkI7WUFDeEQsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxrREFBa0QsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDO1lBQ2pGLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsa0RBQWtELEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBQztTQUNsRixDQUFDLENBQUM7UUFLRCxPQUFPLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVTLFNBQVM7UUFDakIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxNQUFlLEVBQUUsYUFBNkIsRUFBRSxNQUE4QixFQUFFLElBQW9EO1FBQ3pLLE9BQU8sQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUM5RCxPQUFPLElBQUksQ0FBQyxPQUFPO2FBQ2hCLElBQUksQ0FDSCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTFELElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFFckQsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsSUFBSSxDQUFDLE1BQU0sWUFBWSxDQUFDLENBQUM7WUFFM0UsT0FBTyxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUEyQixFQUFFLElBQVU7UUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV6QixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ3JCLEdBQUcsUUFBUTtTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQTJCLEVBQUUsSUFBVTtRQUNyRCxNQUFNLFVBQVUsR0FBRyxDQUFDLFFBQVEsSUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU8scUJBQXFCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7O21IQXpEVSxzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtTb3J0RGlyZWN0aW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N0YXJ0YWJsZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0YXJ0YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7RW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLCBJRW50aXRpZXNTZXJ2aWNlLCBMb2FkUmVzdWx0fSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge2lzTmlsLCBpc05vdE5pbH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7RW50aXR5LCBFbnRpdHlVdGlsc30gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtFbnRpdHlDbGFzc30gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkuZGVjb3JhdG9ycyc7XG5pbXBvcnQge0ltYWdlfSBmcm9tICcuLi8uLi9pbWFnZS5tb2RlbCc7XG5pbXBvcnQge0VudGl0eUZpbHRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9maWx0ZXIubW9kZWwnO1xuXG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ0ltYWdlQXR0YWNobWVudFZPJyB9KVxuZXhwb3J0IGNsYXNzIEltYWdlQXR0YWNobWVudCBleHRlbmRzIEVudGl0eTxJbWFnZUF0dGFjaG1lbnQ+IGltcGxlbWVudHMgSW1hZ2Uge1xuXG4gIHN0YXRpYyBmcm9tT2JqZWN0OiAoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpID0+IEltYWdlQXR0YWNobWVudDtcblxuICBkYXRhVXJsOiBzdHJpbmcgPSBudWxsO1xuICB1cmw6IHN0cmluZyA9IG51bGw7XG4gIHRpdGxlOiBzdHJpbmcgPSBudWxsO1xuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy51cmwgPSBzb3VyY2UudXJsO1xuICAgIHRoaXMuZGF0YVVybCA9IHNvdXJjZS5kYXRhVXJsO1xuICAgIHRoaXMudGl0bGUgPSBzb3VyY2UudGl0bGU7XG4gIH1cbn1cblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7IHR5cGVuYW1lOiAnSW1hZ2VBdHRhY2htZW50RmlsdGVyVk8nIH0pXG5leHBvcnQgY2xhc3MgSW1hZ2VBdHRhY2htZW50RmlsdGVyIGV4dGVuZHMgRW50aXR5RmlsdGVyPEltYWdlQXR0YWNobWVudEZpbHRlciwgSW1hZ2VBdHRhY2htZW50PiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gSW1hZ2VBdHRhY2htZW50RmlsdGVyO1xuXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbWFnZUF0dGFjaG1lbnRTZXJ2aWNlIGV4dGVuZHMgU3RhcnRhYmxlU2VydmljZVxuICBpbXBsZW1lbnRzIElFbnRpdGllc1NlcnZpY2U8SW1hZ2VBdHRhY2htZW50LCBJbWFnZUF0dGFjaG1lbnRGaWx0ZXI+IHtcblxuICAkaW1hZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPEltYWdlQXR0YWNobWVudD5bXT4oW1xuICAgIHtpZDogMCwgdXJsOiAnaHR0cHM6Ly90ZXN0LnN1bWFyaXMubmV0L2Fzc2V0cy9pbWcvYmcvcmF5LTEuanBnJywgdGl0bGU6ICdyYXkgIzEnfSxcbiAgICB7aWQ6IDEsIHVybDogJ2h0dHBzOi8vdGVzdC5zdW1hcmlzLm5ldC9hc3NldHMvaW1nL2JnL3JheS0yLmpwZycsIHRpdGxlOiAncmF5ICMyJ31cbiAgXSk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybVxuICApIHtcbiAgICBzdXBlcihwbGF0Zm9ybSk7XG4gICAgY29uc29sZS5kZWJ1ZygnW2dhbGxlcnktdGVzdGluZy1zZXJ2aWNlXSBDcmVhdGUgc2VydmljZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5nT25TdGFydCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHdhdGNoQWxsKG9mZnNldDogbnVtYmVyLCBzaXplOiBudW1iZXIsIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sIGZpbHRlcj86IEltYWdlQXR0YWNobWVudEZpbHRlciwgb3B0cz86IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyAmIHsgcXVlcnk/OiBhbnkgfSk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxJbWFnZUF0dGFjaG1lbnQ+PiB7XG4gICAgY29uc29sZS5kZWJ1ZygnW2dhbGxlcnktdGVzdGluZy1zZXJ2aWNlXSBXYXRjaGluZyBpbWFnZXMuLi4nKTtcbiAgICByZXR1cm4gdGhpcy4kaW1hZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGltYWdlcyA9PiB7XG4gICAgICAgICAgbGV0IGRhdGEgPSAoaW1hZ2VzIHx8IFtdKS5tYXAoSW1hZ2VBdHRhY2htZW50LmZyb21PYmplY3QpO1xuXG4gICAgICAgICAgZGF0YSA9IEVudGl0eVV0aWxzLnNvcnQoZGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcblxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoYFtnYWxsZXJ5LXRlc3Rpbmctc2VydmljZV0gTG9hZGVkICR7ZGF0YS5sZW5ndGh9IGltYWdlcy4uLmApO1xuXG4gICAgICAgICAgcmV0dXJuIHtkYXRhLCB0b3RhbDogZGF0YS5sZW5ndGh9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVBbGwoZW50aXRpZXM6IEltYWdlQXR0YWNobWVudFtdLCBvcHRzPzogYW55KTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tnYWxsZXJ5LXNlcnZpY2UtdGVzdGluZ10gU2F2aW5nIGltYWdlcy4uLicgKyBKU09OLnN0cmluZ2lmeShlbnRpdGllcykpO1xuICAgIGlmICghZW50aXRpZXMpIHJldHVybiBbXTtcblxuICAgIGxldCBjdXJyZW50SWQgPSB0aGlzLiRpbWFnZXMudmFsdWUucmVkdWNlKChyZXMsIGltYWdlKSA9PiBNYXRoLm1heChyZXMsICtpbWFnZT8uaWQgfHwgMCksIDApO1xuICAgIGVudGl0aWVzLmZpbHRlcihpdGVtID0+IGlzTmlsKGl0ZW0uaWQpKVxuICAgICAgLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0uaWQgPSArK2N1cnJlbnRJZDtcbiAgICB9KTtcbiAgICB0aGlzLiRpbWFnZXMubmV4dChbXG4gICAgICAuLi50aGlzLiRpbWFnZXMudmFsdWUsXG4gICAgICAuLi5lbnRpdGllc1xuICAgIF0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKGVudGl0aWVzOiBJbWFnZUF0dGFjaG1lbnRbXSwgb3B0cz86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZGVsZXRlZElkcyA9IChlbnRpdGllc3x8W10pLm1hcChpdGVtID0+IGl0ZW0uaWQpLmZpbHRlcihpc05vdE5pbCk7XG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gKHRoaXMuJGltYWdlcy52YWx1ZSkuZmlsdGVyKGl0ZW0gPT4gIWRlbGV0ZWRJZHMuaW5jbHVkZXMoaXRlbS5pZCkpO1xuICAgIHRoaXMuJGltYWdlcy5uZXh0KGZpbHRlcmVkRGF0YSk7XG4gIH1cblxuICBhc0ZpbHRlcihmaWx0ZXI6IGFueSkge1xuICAgIHJldHVybiBJbWFnZUF0dGFjaG1lbnRGaWx0ZXIuZnJvbU9iamVjdChmaWx0ZXIpO1xuICB9XG59XG4iXX0=
@@ -20,11 +20,11 @@ export class GalleryTestPage {
20
20
  this._subscription.unsubscribe();
21
21
  }
22
22
  }
23
- GalleryTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: GalleryTestPage, deps: [{ token: i1.ImageAttachmentService }], target: i0.ɵɵFactoryTarget.Component });
24
- GalleryTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: GalleryTestPage, selector: "app-gallery-test-page", providers: [
23
+ GalleryTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: GalleryTestPage, deps: [{ token: i1.ImageAttachmentService }], target: i0.ɵɵFactoryTarget.Component });
24
+ GalleryTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: GalleryTestPage, selector: "app-gallery-test-page", providers: [
25
25
  { provide: ImageAttachmentService, useClass: ImageAttachmentService }
26
26
  ], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <app-image-gallery [dataSource]=\"dataSource\">\n </app-image-gallery>\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "component", type: i3.AppImageGalleryComponent, selector: "app-image-gallery", inputs: ["debug", "readOnly", "disabled", "showToolbar", "mobile", "mode", "confirmBeforeDelete", "dataSource"] }] });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: GalleryTestPage, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: GalleryTestPage, decorators: [{
28
28
  type: Component,
29
29
  args: [{ selector: 'app-gallery-test-page', providers: [
30
30
  { provide: ImageAttachmentService, useClass: ImageAttachmentService }
@@ -17,21 +17,21 @@ const routes = [
17
17
  ];
18
18
  export class ImageGalleryTestingModule {
19
19
  }
20
- ImageGalleryTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- ImageGalleryTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, declarations: [
20
+ ImageGalleryTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageGalleryTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ ImageGalleryTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: ImageGalleryTestingModule, declarations: [
22
22
  // Components
23
23
  GalleryTestPage], imports: [CommonModule,
24
24
  IonicModule,
25
25
  ImageGalleryModule, i1.TranslateModule, i2.RouterModule, i1.TranslateModule], exports: [RouterModule,
26
26
  // Components
27
27
  GalleryTestPage] });
28
- ImageGalleryTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, imports: [CommonModule,
28
+ ImageGalleryTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageGalleryTestingModule, imports: [CommonModule,
29
29
  IonicModule,
30
30
  ImageGalleryModule,
31
31
  TranslateModule.forChild(),
32
32
  RouterModule.forChild(routes),
33
33
  TranslateModule.forChild(), RouterModule] });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageGalleryTestingModule, decorators: [{
35
35
  type: NgModule,
36
36
  args: [{
37
37
  imports: [
@@ -4,16 +4,16 @@ import { ImageGalleryModule } from './gallery/image-gallery.module';
4
4
  import * as i0 from "@angular/core";
5
5
  export class ImageModule {
6
6
  }
7
- ImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- ImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: ImageModule, imports: [CommonModule,
7
+ ImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ ImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: ImageModule, imports: [CommonModule,
9
9
  ImageGalleryModule], exports: [
10
10
  // Sub module
11
11
  ImageGalleryModule] });
12
- ImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageModule, imports: [CommonModule,
12
+ ImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageModule, imports: [CommonModule,
13
13
  ImageGalleryModule,
14
14
  // Sub module
15
15
  ImageGalleryModule] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageModule, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageModule, decorators: [{
17
17
  type: NgModule,
18
18
  args: [{
19
19
  imports: [
@@ -85,9 +85,9 @@ export class ImageService extends StartableService {
85
85
  .map(dataUrl => ({ dataUrl }));
86
86
  }
87
87
  }
88
- ImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageService, deps: [{ token: i1.PlatformService }, { token: i2.LocalSettingsService }, { token: i3.TranslateService }, { token: i4.PopoverController }, { token: i4.ActionSheetController }, { token: ENVIRONMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
89
- ImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageService, providedIn: 'root' });
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageService, decorators: [{
88
+ ImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageService, deps: [{ token: i1.PlatformService }, { token: i2.LocalSettingsService }, { token: i3.TranslateService }, { token: i4.PopoverController }, { token: i4.ActionSheetController }, { token: ENVIRONMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
89
+ ImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageService, providedIn: 'root' });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ImageService, decorators: [{
91
91
  type: Injectable,
92
92
  args: [{ providedIn: 'root' }]
93
93
  }], ctorParameters: function () { return [{ type: i1.PlatformService }, { type: i2.LocalSettingsService }, { type: i3.TranslateService }, { type: i4.PopoverController }, { type: i4.ActionSheetController }, { type: i5.Environment, decorators: [{
@@ -706,13 +706,13 @@ export class MatAutocompleteField {
706
706
  }
707
707
  }
708
708
  }
709
- MatAutocompleteField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: MatAutocompleteField, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
710
- MatAutocompleteField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: MatAutocompleteField, selector: "mat-autocomplete-field", inputs: { equals: "equals", logPrefix: "logPrefix", formControl: "formControl", formControlName: "formControlName", floatLabel: "floatLabel", appearance: "appearance", placeholder: "placeholder", suggestFn: "suggestFn", required: "required", mobile: "mobile", clearable: "clearable", debounceTime: "debounceTime", displayWith: "displayWith", displayAttributes: "displayAttributes", displayColumnSizes: "displayColumnSizes", displayColumnNames: "displayColumnNames", highlightAccent: "highlightAccent", showAllOnFocus: "showAllOnFocus", showPanelOnFocus: "showPanelOnFocus", autofocus: "autofocus", config: "config", i18nPrefix: "i18nPrefix", noResultMessage: "noResultMessage", classList: ["class", "classList"], panelWidth: "panelWidth", matAutocompletePosition: "matAutocompletePosition", multiple: "multiple", itemSize: "itemSize", fetchMoreThreshold: "fetchMoreThreshold", suggestLengthThreshold: "suggestLengthThreshold", showLoadingSpinner: "showLoadingSpinner", debug: "debug", showSearchBar: "showSearchBar", stickySearchBar: "stickySearchBar", filter: "filter", readonly: "readonly", tabindex: "tabindex", items: "items" }, outputs: { clicked: "click", blurred: "blur", focused: "focus", dropButtonClick: "dropButtonClick", keydownEscape: "keydown.escape", keyupEnter: "keyup.enter" }, providers: [{
709
+ MatAutocompleteField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: MatAutocompleteField, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
710
+ MatAutocompleteField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: MatAutocompleteField, selector: "mat-autocomplete-field", inputs: { equals: "equals", logPrefix: "logPrefix", formControl: "formControl", formControlName: "formControlName", floatLabel: "floatLabel", appearance: "appearance", placeholder: "placeholder", suggestFn: "suggestFn", required: "required", mobile: "mobile", clearable: "clearable", debounceTime: "debounceTime", displayWith: "displayWith", displayAttributes: "displayAttributes", displayColumnSizes: "displayColumnSizes", displayColumnNames: "displayColumnNames", highlightAccent: "highlightAccent", showAllOnFocus: "showAllOnFocus", showPanelOnFocus: "showPanelOnFocus", autofocus: "autofocus", config: "config", i18nPrefix: "i18nPrefix", noResultMessage: "noResultMessage", classList: ["class", "classList"], panelWidth: "panelWidth", matAutocompletePosition: "matAutocompletePosition", multiple: "multiple", itemSize: "itemSize", fetchMoreThreshold: "fetchMoreThreshold", suggestLengthThreshold: "suggestLengthThreshold", showLoadingSpinner: "showLoadingSpinner", debug: "debug", showSearchBar: "showSearchBar", stickySearchBar: "stickySearchBar", filter: "filter", readonly: "readonly", tabindex: "tabindex", items: "items" }, outputs: { clicked: "click", blurred: "blur", focused: "focus", dropButtonClick: "dropButtonClick", keydownEscape: "keydown.escape", keyupEnter: "keyup.enter" }, providers: [{
711
711
  provide: NG_VALUE_ACCESSOR,
712
712
  multi: true,
713
713
  useExisting: forwardRef(() => MatAutocompleteField)
714
714
  }], viewQueries: [{ propertyName: "matSelect", first: true, predicate: ["matSelect"], descendants: true }, { propertyName: "ionSearchbar", first: true, predicate: ["ionSearchbar"], descendants: true }, { propertyName: "matInputText", first: true, predicate: ["matInputText"], descendants: true }, { propertyName: "autocomplete", first: true, predicate: MatAutocomplete, descendants: true }, { propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }], ngImport: i0, template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <!-- readonly -->\n <mat-form-field *ngIf=\"_readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [title]=\"displayValue\"\n class=\"mat-form-field-disabled\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\" >\n <ion-text>{{displayWith(value)}}</ion-text>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n\n <ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- Mobile or Multiple (use <mat-select>) -->\n <mat-select #matSelect\n *ngIf=\"mobile || multiple; else desktopTemplate\"\n [disableRipple]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n [compareWith]=\"equals\"\n [multiple]=\"multiple\"\n [typeaheadDebounceInterval]=\"debounceTime * 10\"\n [required]=\"required\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- Search bar -->\n <mat-option class=\"mat-select-searchbar\" *ngIf=\"showSearchBar\"\n [class.mat-select-searchbar-sticky]=\"stickySearchBar\"\n disabled>\n <ion-searchbar #ionSearchbar\n inputmode=\"search\"\n autocomplete=\"off\"\n animated=\"true\"\n showClearButton=\"true\"\n [debounce]=\"debounceTime\"\n (ionClear)=\"markAsLoading()\"\n (ionInput)=\"markAsLoading()\"\n (ionChange)=\"ionSearchBarChanged($event)\"\n [placeholder]=\"'COMMON.BTN_SEARCH'|translate\"\n ></ion-searchbar>\n </mat-option>\n\n <!-- Headers -->\n <ion-row class=\"mat-select-header column ion-no-padding\"\n [class.multiple]=\"multiple\"\n [class.mat-select-searchbar-sticky]=\"showSearchBar && stickySearchBar\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required && !multiple && !clearable\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <ng-container *ngIf=\"$filteredItems | async as items; else loadingTemplate\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label><i>{{noResultMessage | translate}}</i></ion-label>\n </mat-option>\n\n <!-- Options -->\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initMatSelectInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- footer -->\n <mat-option *ngIf=\"itemCount as count\" class=\"mat-option-footer mat-autocomplete-footer ion-no-padding\" disabled>\n <ion-text class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </mat-option>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(displayValue | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-select>\n\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #desktopTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [required]=\"required\"\n (click)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowDown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [panelWidth]=\"panelWidth\">\n <!-- Headers -->\n <ion-row class=\"mat-autocomplete-header column ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- Options -->\n <ng-container *ngIf=\"$filteredItems | async as items; else loadingTemplate\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label><i>{{noResultMessage | translate}}</i></ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\"\n [title]=\"text.innerText\">\n <ion-text><span #text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></span></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(displayValue | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n\n <!-- footer -->\n <ion-row *ngIf=\"itemCount; let count\" class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n </mat-autocomplete>\n\n </ng-template>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n </ng-template>\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n</ion-grid>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n\n<ng-template #matSuffixTemplate>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"!mobile && !multiple\"\n (click)=\"dropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n\n<ng-template #headers>\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n</ng-template>\n\n", styles: [":host{display:inline-block;position:relative}:host.ion-text-wrap ion-label{white-space:normal!important}button[hidden]{display:none}mat-icon.select-arrow{color:#00000078;font-size:150%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i3.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.NgInitDirective, selector: "[ngInit]", outputs: ["ngInit"] }, { kind: "directive", type: i5.AutofocusDirective, selector: "[autofocus], input[appAutofocus]", inputs: ["appAutofocus", "autofocusDelay"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i9.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: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i12.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "directive", type: i13.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i14.PropertyGetPipe, name: "propertyGet" }, { kind: "pipe", type: i15.HighlightPipe, name: "highlight" }, { kind: "pipe", type: i16.EmptyArrayPipe, name: "isEmptyArray" }, { kind: "pipe", type: i17.StrLengthPipe, name: "strLength" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }], animations: [slideInOutAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
715
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: MatAutocompleteField, decorators: [{
715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: MatAutocompleteField, decorators: [{
716
716
  type: Component,
717
717
  args: [{ selector: 'mat-autocomplete-field', providers: [{
718
718
  provide: NG_VALUE_ACCESSOR,
@@ -18,8 +18,8 @@ import * as i0 from "@angular/core";
18
18
  import * as i1 from "@ngx-translate/core";
19
19
  export class SharedMatAutocompleteModule {
20
20
  }
21
- SharedMatAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: SharedMatAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
- SharedMatAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: SharedMatAutocompleteModule, declarations: [MatAutocompleteField], imports: [CommonModule,
21
+ SharedMatAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedMatAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
+ SharedMatAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: SharedMatAutocompleteModule, declarations: [MatAutocompleteField], imports: [CommonModule,
23
23
  IonicModule,
24
24
  ScrollingModule,
25
25
  ReactiveFormsModule,
@@ -33,7 +33,7 @@ SharedMatAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0
33
33
  MatButtonModule,
34
34
  MatSelectModule, i1.TranslateModule], exports: [MatAutocompleteModule,
35
35
  MatAutocompleteField] });
36
- SharedMatAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: SharedMatAutocompleteModule, imports: [CommonModule,
36
+ SharedMatAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedMatAutocompleteModule, imports: [CommonModule,
37
37
  IonicModule,
38
38
  ScrollingModule,
39
39
  ReactiveFormsModule,
@@ -47,7 +47,7 @@ SharedMatAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0
47
47
  MatButtonModule,
48
48
  MatSelectModule,
49
49
  TranslateModule.forChild(), MatAutocompleteModule] });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: SharedMatAutocompleteModule, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedMatAutocompleteModule, decorators: [{
51
51
  type: NgModule,
52
52
  args: [{
53
53
  imports: [