barsa-novin-ray-core 2.2.73 → 2.2.75

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 (233) hide show
  1. package/fesm2022/barsa-novin-ray-core.mjs +630 -651
  2. package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
  3. package/lib/abstract-classes/field-base.d.ts +1 -1
  4. package/lib/abstract-classes/number-base.d.ts +1 -1
  5. package/lib/date-services/date-hijri.service.d.ts +1 -1
  6. package/lib/date-services/date.service.d.ts +1 -1
  7. package/lib/directives/base.directive.d.ts +1 -1
  8. package/lib/dynamic-component/base-view-item-props.d.ts +4 -4
  9. package/lib/resolvers/login-settings.resolver.d.ts +1 -1
  10. package/lib/resolvers/tile-group-breadcrumb.resolver.d.ts +1 -1
  11. package/lib/services/notification.service.d.ts +2 -2
  12. package/lib/services/portal.service.d.ts +1 -1
  13. package/package.json +3 -5
  14. package/esm2022/barsa-novin-ray-core.mjs +0 -5
  15. package/esm2022/lib/abstract-classes/application-base.mjs +0 -25
  16. package/esm2022/lib/abstract-classes/barsa-api.mjs +0 -43
  17. package/esm2022/lib/abstract-classes/base-column-props.mjs +0 -89
  18. package/esm2022/lib/abstract-classes/base.component.mjs +0 -60
  19. package/esm2022/lib/abstract-classes/field-base.mjs +0 -244
  20. package/esm2022/lib/abstract-classes/files-validation-helper.mjs +0 -75
  21. package/esm2022/lib/abstract-classes/form-base.mjs +0 -164
  22. package/esm2022/lib/abstract-classes/form-field-report-page.component.mjs +0 -54
  23. package/esm2022/lib/abstract-classes/form-page-base.mjs +0 -132
  24. package/esm2022/lib/abstract-classes/form-page.component.mjs +0 -53
  25. package/esm2022/lib/abstract-classes/form-props.base.mjs +0 -100
  26. package/esm2022/lib/abstract-classes/form-toolbar-base.mjs +0 -57
  27. package/esm2022/lib/abstract-classes/index.mjs +0 -25
  28. package/esm2022/lib/abstract-classes/layout-item-base.mjs +0 -49
  29. package/esm2022/lib/abstract-classes/layout-panel-base.mjs +0 -68
  30. package/esm2022/lib/abstract-classes/linear-list-helper.mjs +0 -135
  31. package/esm2022/lib/abstract-classes/models.mjs +0 -184
  32. package/esm2022/lib/abstract-classes/module-with-dynamic-components.mjs +0 -2
  33. package/esm2022/lib/abstract-classes/number-base.mjs +0 -201
  34. package/esm2022/lib/abstract-classes/page-base.mjs +0 -98
  35. package/esm2022/lib/abstract-classes/page-with-form-handler-base.mjs +0 -41
  36. package/esm2022/lib/abstract-classes/report-base.mjs +0 -266
  37. package/esm2022/lib/abstract-classes/report-item-base.mjs +0 -54
  38. package/esm2022/lib/abstract-classes/report-view-base.component.mjs +0 -450
  39. package/esm2022/lib/abstract-classes/system-base.mjs +0 -25
  40. package/esm2022/lib/abstract-classes/tile-props.mjs +0 -49
  41. package/esm2022/lib/auth-guard.mjs +0 -48
  42. package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +0 -311
  43. package/esm2022/lib/barsa-novin-ray-core.module.mjs +0 -522
  44. package/esm2022/lib/base-ulv-setting.component.mjs +0 -46
  45. package/esm2022/lib/base.module.mjs +0 -28
  46. package/esm2022/lib/button-loading/button-loading.component.mjs +0 -20
  47. package/esm2022/lib/constants.mjs +0 -963
  48. package/esm2022/lib/container.component.mjs +0 -100
  49. package/esm2022/lib/controllers/base-controller.mjs +0 -9
  50. package/esm2022/lib/controllers/base-view.mjs +0 -24
  51. package/esm2022/lib/controllers/index.mjs +0 -4
  52. package/esm2022/lib/controllers/models.mjs +0 -2
  53. package/esm2022/lib/custom-route-reuse-strategy.mjs +0 -32
  54. package/esm2022/lib/date-services/date-hijri.service.mjs +0 -146
  55. package/esm2022/lib/date-services/date-info.mjs +0 -2
  56. package/esm2022/lib/date-services/date-miladi.service.mjs +0 -124
  57. package/esm2022/lib/date-services/date-shamsi.service.mjs +0 -148
  58. package/esm2022/lib/date-services/date.service.mjs +0 -149
  59. package/esm2022/lib/date-services/index.mjs +0 -6
  60. package/esm2022/lib/device.mjs +0 -663
  61. package/esm2022/lib/directives/absolute-div-body.directive.mjs +0 -46
  62. package/esm2022/lib/directives/anchor-scroll.directive.mjs +0 -25
  63. package/esm2022/lib/directives/attr-rtl.directive.mjs +0 -36
  64. package/esm2022/lib/directives/base.directive.mjs +0 -55
  65. package/esm2022/lib/directives/body-click.directive.mjs +0 -36
  66. package/esm2022/lib/directives/column-resizer.directive.mjs +0 -40
  67. package/esm2022/lib/directives/copy.directive.mjs +0 -60
  68. package/esm2022/lib/directives/count-down.directive.mjs +0 -109
  69. package/esm2022/lib/directives/dynamic-command.directive.mjs +0 -43
  70. package/esm2022/lib/directives/dynamic-style.directive.mjs +0 -66
  71. package/esm2022/lib/directives/ellapsis-text.directive.mjs +0 -70
  72. package/esm2022/lib/directives/ellipsify.directive.mjs +0 -73
  73. package/esm2022/lib/directives/field-binding.directive.mjs +0 -18
  74. package/esm2022/lib/directives/fill-empty-space.mjs +0 -89
  75. package/esm2022/lib/directives/form-close.directive.mjs +0 -33
  76. package/esm2022/lib/directives/img-lazy.directive.mjs +0 -82
  77. package/esm2022/lib/directives/index.mjs +0 -42
  78. package/esm2022/lib/directives/intersection-observer.directive.mjs +0 -52
  79. package/esm2022/lib/directives/items-renderer.directive.mjs +0 -60
  80. package/esm2022/lib/directives/label-mandatory.directive.mjs +0 -49
  81. package/esm2022/lib/directives/load-external-files.directive.mjs +0 -38
  82. package/esm2022/lib/directives/mobile.directive.mjs +0 -30
  83. package/esm2022/lib/directives/nowraptext.directive.mjs +0 -27
  84. package/esm2022/lib/directives/numbers-only-input.directive.mjs +0 -27
  85. package/esm2022/lib/directives/placeHolder.directive.mjs +0 -16
  86. package/esm2022/lib/directives/prevent-default.directive.mjs +0 -21
  87. package/esm2022/lib/directives/print-files.directive.mjs +0 -39
  88. package/esm2022/lib/directives/render-ulv-paging.directive.mjs +0 -81
  89. package/esm2022/lib/directives/render-ulv-viewer.directive.mjs +0 -76
  90. package/esm2022/lib/directives/render-ulv.directive.mjs +0 -52
  91. package/esm2022/lib/directives/route-form-change.directive.mjs +0 -38
  92. package/esm2022/lib/directives/save-image.directive.mjs +0 -28
  93. package/esm2022/lib/directives/splide-slider.directive.mjs +0 -113
  94. package/esm2022/lib/directives/stop-propagation.directive.mjs +0 -21
  95. package/esm2022/lib/directives/table-resizer.directive.mjs +0 -236
  96. package/esm2022/lib/directives/ulv-command.directive.mjs +0 -43
  97. package/esm2022/lib/directives/until-inview.directive.mjs +0 -53
  98. package/esm2022/lib/directives/webotp.directive.mjs +0 -49
  99. package/esm2022/lib/directives/workflow-choice-command.directive.mjs +0 -61
  100. package/esm2022/lib/dynamic-component/base-dynamic.component.mjs +0 -97
  101. package/esm2022/lib/dynamic-component/base-form-toolbaritem-props.mjs +0 -53
  102. package/esm2022/lib/dynamic-component/base-item-content-props.mjs +0 -83
  103. package/esm2022/lib/dynamic-component/base-view-content-props.mjs +0 -27
  104. package/esm2022/lib/dynamic-component/base-view-item-props.mjs +0 -552
  105. package/esm2022/lib/dynamic-component/base-view-props.mjs +0 -163
  106. package/esm2022/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +0 -38
  107. package/esm2022/lib/dynamic-component/dynamic-form.component.mjs +0 -69
  108. package/esm2022/lib/dynamic-component/dynamic-item.component.mjs +0 -78
  109. package/esm2022/lib/dynamic-component/dynamic-layout.component.mjs +0 -64
  110. package/esm2022/lib/dynamic-component/index.mjs +0 -11
  111. package/esm2022/lib/empty-page/empty-page.component.mjs +0 -49
  112. package/esm2022/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +0 -16
  113. package/esm2022/lib/field-ui/field-ui.component.mjs +0 -149
  114. package/esm2022/lib/form/form.component.mjs +0 -212
  115. package/esm2022/lib/form-new/form-new.component.mjs +0 -31
  116. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.mjs +0 -54
  117. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page.module.mjs +0 -29
  118. package/esm2022/lib/form-page-routing/constants.mjs +0 -9
  119. package/esm2022/lib/form-page-routing/index.mjs +0 -3
  120. package/esm2022/lib/from-intersection-observer.mjs +0 -53
  121. package/esm2022/lib/global-error-handler.mjs +0 -26
  122. package/esm2022/lib/injdection-tokens.mjs +0 -8
  123. package/esm2022/lib/modal-root.component.mjs +0 -34
  124. package/esm2022/lib/not-found/not-found.component.mjs +0 -16
  125. package/esm2022/lib/not-internet/not-internet.component.mjs +0 -21
  126. package/esm2022/lib/pipes/barsa-icon-dict.pipe.mjs +0 -20
  127. package/esm2022/lib/pipes/bbb-translate.pipe.mjs +0 -36
  128. package/esm2022/lib/pipes/can-upload.pipe.mjs +0 -27
  129. package/esm2022/lib/pipes/card-media-size.pipe.mjs +0 -21
  130. package/esm2022/lib/pipes/column-custom-component.pipe.mjs +0 -41
  131. package/esm2022/lib/pipes/column-customui.pipe.mjs +0 -33
  132. package/esm2022/lib/pipes/column-icon.pipe.mjs +0 -23
  133. package/esm2022/lib/pipes/column-value.pipe.mjs +0 -35
  134. package/esm2022/lib/pipes/column-valueof-parameters.pipe.mjs +0 -34
  135. package/esm2022/lib/pipes/combo-row-img.pipe.mjs +0 -17
  136. package/esm2022/lib/pipes/context-menu.pipe.mjs +0 -41
  137. package/esm2022/lib/pipes/control-ui.pipe.mjs +0 -32
  138. package/esm2022/lib/pipes/convert-to-style.pipe.mjs +0 -33
  139. package/esm2022/lib/pipes/date-time-to-caption.pipe.mjs +0 -35
  140. package/esm2022/lib/pipes/fileinfo-count.pipe.mjs +0 -21
  141. package/esm2022/lib/pipes/filter-columns-by-details.pipe.mjs +0 -23
  142. package/esm2022/lib/pipes/filter-inline-action-list.pipe.mjs +0 -19
  143. package/esm2022/lib/pipes/filter-string.pipe.mjs +0 -45
  144. package/esm2022/lib/pipes/filter-tab.pipe.mjs +0 -20
  145. package/esm2022/lib/pipes/filter-toolbar-control.pipe.mjs +0 -17
  146. package/esm2022/lib/pipes/filter-workflow-mobile.pipe.mjs +0 -25
  147. package/esm2022/lib/pipes/filter.pipe.mjs +0 -34
  148. package/esm2022/lib/pipes/find-column-by-db-name.pipe.mjs +0 -28
  149. package/esm2022/lib/pipes/find-preview-column.pipe.mjs +0 -20
  150. package/esm2022/lib/pipes/fiori-icon.pipe.mjs +0 -43
  151. package/esm2022/lib/pipes/groupby.pipe.mjs +0 -64
  152. package/esm2022/lib/pipes/header-facet-value.pipe.mjs +0 -23
  153. package/esm2022/lib/pipes/hide-accept-cancel-buttons.pipe.mjs +0 -24
  154. package/esm2022/lib/pipes/hide-columns-inmobile.pipe.mjs +0 -23
  155. package/esm2022/lib/pipes/index.mjs +0 -55
  156. package/esm2022/lib/pipes/isimage.pipe.mjs +0 -20
  157. package/esm2022/lib/pipes/list-count.pipe.mjs +0 -18
  158. package/esm2022/lib/pipes/merge-fields-to-columns.pipe.mjs +0 -43
  159. package/esm2022/lib/pipes/mo-info-ulv-data.pipe.mjs +0 -59
  160. package/esm2022/lib/pipes/mo-info-ulv-paging.pipe.mjs +0 -17
  161. package/esm2022/lib/pipes/mo-report-value-concat.pipe.mjs +0 -36
  162. package/esm2022/lib/pipes/mo-report-value.pipe.mjs +0 -18
  163. package/esm2022/lib/pipes/mo-value.pipe.mjs +0 -19
  164. package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +0 -91
  165. package/esm2022/lib/pipes/numeral.pipe.mjs +0 -44
  166. package/esm2022/lib/pipes/picture-field-source.pipe.mjs +0 -23
  167. package/esm2022/lib/pipes/remove-newline.pipe.mjs +0 -21
  168. package/esm2022/lib/pipes/replace.pipe.mjs +0 -18
  169. package/esm2022/lib/pipes/reverse.pipe.mjs +0 -23
  170. package/esm2022/lib/pipes/rownumber.pipe.mjs +0 -26
  171. package/esm2022/lib/pipes/sanitize-text.pipe.mjs +0 -21
  172. package/esm2022/lib/pipes/seperator-fix.pipe.mjs +0 -24
  173. package/esm2022/lib/pipes/sort.pipe.mjs +0 -49
  174. package/esm2022/lib/pipes/string-to-number.pipe.mjs +0 -26
  175. package/esm2022/lib/pipes/th-image-icon.pipe.mjs +0 -22
  176. package/esm2022/lib/pipes/tlbButtons.pipe.mjs +0 -60
  177. package/esm2022/lib/pipes/toolbar-settings.pipe.mjs +0 -27
  178. package/esm2022/lib/pipes/total-summary.pipe.mjs +0 -17
  179. package/esm2022/lib/pipes/tree-item-isexpanded.pipe.mjs +0 -26
  180. package/esm2022/lib/pipes/visible-value.pipe.mjs +0 -19
  181. package/esm2022/lib/portal-page/portal-page.component.mjs +0 -24
  182. package/esm2022/lib/portal-page/portal-sidebar.component.mjs +0 -37
  183. package/esm2022/lib/redirect-home-guard.mjs +0 -51
  184. package/esm2022/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +0 -12
  185. package/esm2022/lib/report-container/report-container.component.mjs +0 -63
  186. package/esm2022/lib/resizable-module/resizable.component.mjs +0 -31
  187. package/esm2022/lib/resizable-module/resizable.directive.mjs +0 -42
  188. package/esm2022/lib/resizable-module/resizable.module.mjs +0 -17
  189. package/esm2022/lib/resolvers/index.mjs +0 -7
  190. package/esm2022/lib/resolvers/login-settings.resolver.mjs +0 -18
  191. package/esm2022/lib/resolvers/portal-dynamic-page.resolver.mjs +0 -49
  192. package/esm2022/lib/resolvers/portal-form-page.resolver.mjs +0 -18
  193. package/esm2022/lib/resolvers/portal-page.resolver.mjs +0 -30
  194. package/esm2022/lib/resolvers/portal-report-page.resolver.mjs +0 -37
  195. package/esm2022/lib/resolvers/tile-group-breadcrumb.resolver.mjs +0 -30
  196. package/esm2022/lib/root-page/root-page.component.mjs +0 -21
  197. package/esm2022/lib/root-portal/root-portal.component.mjs +0 -236
  198. package/esm2022/lib/server-connection-error/server-connection-error.component.mjs +0 -19
  199. package/esm2022/lib/services/api.service.mjs +0 -63
  200. package/esm2022/lib/services/audio-recording.service.mjs +0 -95
  201. package/esm2022/lib/services/barsa-dialog.service.mjs +0 -80
  202. package/esm2022/lib/services/barsa-storage.service.mjs +0 -78
  203. package/esm2022/lib/services/breadcrumb.service.mjs +0 -64
  204. package/esm2022/lib/services/column.service.mjs +0 -20
  205. package/esm2022/lib/services/container.service.mjs +0 -69
  206. package/esm2022/lib/services/dynamic-component.service.mjs +0 -55
  207. package/esm2022/lib/services/form-panel.service.mjs +0 -394
  208. package/esm2022/lib/services/form.service.mjs +0 -14
  209. package/esm2022/lib/services/groupby.service.mjs +0 -21
  210. package/esm2022/lib/services/horizontal-layout.service.mjs +0 -16
  211. package/esm2022/lib/services/index.mjs +0 -32
  212. package/esm2022/lib/services/indexeddb.service.mjs +0 -34
  213. package/esm2022/lib/services/layout-main-content.service.mjs +0 -19
  214. package/esm2022/lib/services/layout.service.mjs +0 -42
  215. package/esm2022/lib/services/local-storage.service.mjs +0 -32
  216. package/esm2022/lib/services/log.service.mjs +0 -50
  217. package/esm2022/lib/services/network-status.service.mjs +0 -15
  218. package/esm2022/lib/services/notification-popup.service.mjs +0 -2
  219. package/esm2022/lib/services/notification-sw.service.mjs +0 -180
  220. package/esm2022/lib/services/notification.service.mjs +0 -189
  221. package/esm2022/lib/services/portal.service.mjs +0 -950
  222. package/esm2022/lib/services/prompt-update.service.mjs +0 -56
  223. package/esm2022/lib/services/routing.service.mjs +0 -60
  224. package/esm2022/lib/services/save-scoll-position.service.mjs +0 -29
  225. package/esm2022/lib/services/service-worker-communication.service.mjs +0 -120
  226. package/esm2022/lib/services/tabpage.service.mjs +0 -13
  227. package/esm2022/lib/services/toast.service.mjs +0 -2
  228. package/esm2022/lib/services/ui.service.mjs +0 -23
  229. package/esm2022/lib/services/ulvmain.service.mjs +0 -824
  230. package/esm2022/lib/services/upload.service.mjs +0 -166
  231. package/esm2022/lib/services/video-recording.service.mjs +0 -115
  232. package/esm2022/lib/unlimit-session/unlimit-session.component.mjs +0 -40
  233. package/esm2022/public-api.mjs +0 -42
@@ -1,34 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class IndexedDbService {
4
- constructor() {
5
- this._db = null;
6
- }
7
- open(dbName, version) {
8
- const DBOpenRequest = window.indexedDB.open(dbName, version);
9
- // Register two event handlers to act on the database being opened successfully, or not
10
- DBOpenRequest.onerror = (event) => {
11
- // TODO: Handle error
12
- };
13
- DBOpenRequest.onsuccess = (event) => {
14
- // TODO: Handle success
15
- this._db = DBOpenRequest.result;
16
- };
17
- // This event handles the event whereby a new version of the database needs to be created
18
- // Either one has not been created before, or a new version number has been submitted via the
19
- // window.indexedDB.open line above
20
- // it is only implemented in recent browsers
21
- DBOpenRequest.onupgradeneeded = (event) => {
22
- // TODO: Handle upgradeneeded
23
- };
24
- }
25
- delete(dbName) {
26
- window.indexedDB.deleteDatabase(dbName);
27
- }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IndexedDbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IndexedDbService }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IndexedDbService, decorators: [{
32
- type: Injectable
33
- }], ctorParameters: () => [] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZGRiLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL2luZGV4ZWRkYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFekI7UUFEQSxRQUFHLEdBQXVCLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ2hCLElBQUksQ0FBQyxNQUFjLEVBQUUsT0FBZTtRQUNoQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0QsdUZBQXVGO1FBQ3ZGLGFBQWEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM5QixxQkFBcUI7UUFDekIsQ0FBQyxDQUFDO1FBRUYsYUFBYSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hDLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBQ0YseUZBQXlGO1FBQ3pGLDZGQUE2RjtRQUM3RixtQ0FBbUM7UUFDbkMsNENBQTRDO1FBQzVDLGFBQWEsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0Qyw2QkFBNkI7UUFDakMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNO1FBQ1QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQzsrR0F4QlEsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbmRleGVkRGJTZXJ2aWNlIHtcbiAgICBfZGI6IElEQkRhdGFiYXNlIHwgbnVsbCA9IG51bGw7XG4gICAgY29uc3RydWN0b3IoKSB7fVxuICAgIG9wZW4oZGJOYW1lOiBzdHJpbmcsIHZlcnNpb246IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBEQk9wZW5SZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRiTmFtZSwgdmVyc2lvbik7XG4gICAgICAgIC8vIFJlZ2lzdGVyIHR3byBldmVudCBoYW5kbGVycyB0byBhY3Qgb24gdGhlIGRhdGFiYXNlIGJlaW5nIG9wZW5lZCBzdWNjZXNzZnVsbHksIG9yIG5vdFxuICAgICAgICBEQk9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBlcnJvclxuICAgICAgICB9O1xuXG4gICAgICAgIERCT3BlblJlcXVlc3Qub25zdWNjZXNzID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAvLyBUT0RPOiBIYW5kbGUgc3VjY2Vzc1xuICAgICAgICAgICAgdGhpcy5fZGIgPSBEQk9wZW5SZXF1ZXN0LnJlc3VsdDtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVGhpcyBldmVudCBoYW5kbGVzIHRoZSBldmVudCB3aGVyZWJ5IGEgbmV3IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIG5lZWRzIHRvIGJlIGNyZWF0ZWRcbiAgICAgICAgLy8gRWl0aGVyIG9uZSBoYXMgbm90IGJlZW4gY3JlYXRlZCBiZWZvcmUsIG9yIGEgbmV3IHZlcnNpb24gbnVtYmVyIGhhcyBiZWVuIHN1Ym1pdHRlZCB2aWEgdGhlXG4gICAgICAgIC8vIHdpbmRvdy5pbmRleGVkREIub3BlbiBsaW5lIGFib3ZlXG4gICAgICAgIC8vIGl0IGlzIG9ubHkgaW1wbGVtZW50ZWQgaW4gcmVjZW50IGJyb3dzZXJzXG4gICAgICAgIERCT3BlblJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAvLyBUT0RPOiBIYW5kbGUgdXBncmFkZW5lZWRlZFxuICAgICAgICB9O1xuICAgIH1cbiAgICBkZWxldGUoZGJOYW1lKTogdm9pZCB7XG4gICAgICAgIHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJOYW1lKTtcbiAgICB9XG59XG4iXX0=
@@ -1,19 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { distinctUntilChanged } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- export class LayoutMainContentService {
6
- constructor() {
7
- this.mainContentHeightSource = new BehaviorSubject(0);
8
- this.mainContentHeight$ = this.mainContentHeightSource.asObservable().pipe(distinctUntilChanged());
9
- }
10
- setMainContentHeight(height) {
11
- this.mainContentHeightSource.next(height);
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutMainContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
14
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutMainContentService }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutMainContentService, decorators: [{
17
- type: Injectable
18
- }], ctorParameters: () => [] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW1haW4tY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXQtbWFpbi1jb250ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd0RCxNQUFNLE9BQU8sd0JBQXdCO0lBTWpDO1FBSFEsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFJN0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxNQUFjO1FBQy9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQzsrR0FYUSx3QkFBd0I7bUhBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTGF5b3V0TWFpbkNvbnRlbnRTZXJ2aWNlIHtcclxuICAgIG1haW5Db250ZW50SGVpZ2h0JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xyXG5cclxuICAgIHByaXZhdGUgbWFpbkNvbnRlbnRIZWlnaHRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcbiAgICBpZDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMubWFpbkNvbnRlbnRIZWlnaHQkID0gdGhpcy5tYWluQ29udGVudEhlaWdodFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgfVxyXG4gICAgc2V0TWFpbkNvbnRlbnRIZWlnaHQoaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1haW5Db250ZW50SGVpZ2h0U291cmNlLm5leHQoaGVpZ2h0KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,42 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, Subject } from 'rxjs';
3
- import { distinctUntilChanged } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- export class LayoutService {
6
- constructor() {
7
- this.rendered = new BehaviorSubject(false);
8
- this.maxWidth = new BehaviorSubject(0);
9
- this.refreshLayoutSource = new Subject();
10
- this.horizontalSource = new Subject();
11
- this._listOfHorizontal = [];
12
- this.rootRendered$ = this.rendered.asObservable();
13
- this.maxWidth$ = this.maxWidth.asObservable();
14
- this.refreshLayout$ = this.refreshLayoutSource.asObservable();
15
- this.horizontal$ = this.horizontalSource.asObservable().pipe(distinctUntilChanged((a, b) => a === b));
16
- }
17
- setRendered(val) {
18
- this.rendered.next(val);
19
- }
20
- setMaxWidth(val) {
21
- if (this.maxWidth.value < val) {
22
- this.maxWidth.next(val);
23
- }
24
- }
25
- refreshLayout() {
26
- this.refreshLayoutSource.next();
27
- }
28
- addHorizontal(id) {
29
- this._listOfHorizontal = [...this._listOfHorizontal, id];
30
- this.horizontalSource.next(this._listOfHorizontal);
31
- }
32
- removeHorizontal(id) {
33
- this._listOfHorizontal = this._listOfHorizontal.filter((c) => c !== id);
34
- this.horizontalSource.next(this._listOfHorizontal);
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutService }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutService, decorators: [{
40
- type: Injectable
41
- }], ctorParameters: () => [] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3RELE1BQU0sT0FBTyxhQUFhO0lBY3RCO1FBTlEsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9DLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUMxQyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFTLENBQUM7UUFDeEMsc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBR2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUNELFdBQVcsQ0FBQyxHQUFZO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxXQUFXLENBQUMsR0FBRztRQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxhQUFhLENBQUMsRUFBRTtRQUNaLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkQsQ0FBQzsrR0F0Q1EsYUFBYTttSEFBYixhQUFhOzs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMYXlvdXRTZXJ2aWNlIHtcclxuICAgIHJvb3RSZW5kZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBtYXhXaWR0aCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIHJlZnJlc2hMYXlvdXQkOiBPYnNlcnZhYmxlPHZvaWQ+O1xyXG4gICAgaG9yaXpvbnRhbCQ6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIGlzVGFiOiBib29sZWFuO1xyXG5cclxuICAgIHByaXZhdGUgcmVuZGVyZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHByaXZhdGUgbWF4V2lkdGggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcbiAgICBwcml2YXRlIHJlZnJlc2hMYXlvdXRTb3VyY2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcHJpdmF0ZSBob3Jpem9udGFsU291cmNlID0gbmV3IFN1YmplY3Q8YW55W10+KCk7XHJcbiAgICBwcml2YXRlIF9saXN0T2ZIb3Jpem9udGFsOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMucm9vdFJlbmRlcmVkJCA9IHRoaXMucmVuZGVyZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5tYXhXaWR0aCQgPSB0aGlzLm1heFdpZHRoLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaExheW91dCQgPSB0aGlzLnJlZnJlc2hMYXlvdXRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsJCA9IHRoaXMuaG9yaXpvbnRhbFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhID09PSBiKSk7XHJcbiAgICB9XHJcbiAgICBzZXRSZW5kZXJlZCh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVkLm5leHQodmFsKTtcclxuICAgIH1cclxuICAgIHNldE1heFdpZHRoKHZhbCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm1heFdpZHRoLnZhbHVlIDwgdmFsKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWF4V2lkdGgubmV4dCh2YWwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlZnJlc2hMYXlvdXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoTGF5b3V0U291cmNlLm5leHQoKTtcclxuICAgIH1cclxuICAgIGFkZEhvcml6b250YWwoaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9saXN0T2ZIb3Jpem9udGFsID0gWy4uLnRoaXMuX2xpc3RPZkhvcml6b250YWwsIGlkXTtcclxuICAgICAgICB0aGlzLmhvcml6b250YWxTb3VyY2UubmV4dCh0aGlzLl9saXN0T2ZIb3Jpem9udGFsKTtcclxuICAgIH1cclxuICAgIHJlbW92ZUhvcml6b250YWwoaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9saXN0T2ZIb3Jpem9udGFsID0gdGhpcy5fbGlzdE9mSG9yaXpvbnRhbC5maWx0ZXIoKGMpID0+IGMgIT09IGlkKTtcclxuICAgICAgICB0aGlzLmhvcml6b250YWxTb3VyY2UubmV4dCh0aGlzLl9saXN0T2ZIb3Jpem9udGFsKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,32 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class LocalStorageService {
4
- constructor() {
5
- this.localstorage = false;
6
- }
7
- setItem(key, value) {
8
- let valueOfKey = '';
9
- if (typeof value === 'object' || Array.isArray(value)) {
10
- valueOfKey = JSON.stringify(value);
11
- }
12
- else {
13
- valueOfKey = value;
14
- }
15
- localStorage.setItem(key, valueOfKey);
16
- }
17
- getItem(key) {
18
- return localStorage.getItem(key);
19
- }
20
- remove(key) {
21
- localStorage.removeItem(key);
22
- }
23
- clear() {
24
- localStorage.clear();
25
- }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
27
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageService }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageService, decorators: [{
30
- type: Injectable
31
- }], ctorParameters: () => [] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUU1QjtRQURBLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ04sQ0FBQztJQUNoQixPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDOUIsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNKLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztRQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBVztRQUNmLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLEdBQVc7UUFDZCxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxLQUFLO1FBQ0QsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBcEJRLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSB7XG4gICAgbG9jYWxzdG9yYWdlID0gZmFsc2U7XG4gICAgY29uc3RydWN0b3IoKSB7fVxuICAgIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgbGV0IHZhbHVlT2ZLZXkgPSAnJztcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlT2ZLZXkgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZU9mS2V5ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZU9mS2V5KTtcbiAgICB9XG4gICAgZ2V0SXRlbShrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICB9XG4gICAgcmVtb3ZlKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgfVxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,50 +0,0 @@
1
- // angular
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class LogService {
5
- static { this.DEBUG = {
6
- LEVEL_1: false, // .warn only
7
- LEVEL_2: false, // .error only
8
- LEVEL_3: false, // .log + all the above
9
- LEVEL_4: false, // .log + all the above + info
10
- LEVEL_5: false // just info (excluding all else)
11
- }; }
12
- // info (extra messages like analytics)
13
- // use LEVEL_5 to see only these
14
- info(...msg) {
15
- if (LogService.DEBUG.LEVEL_5 || LogService.DEBUG.LEVEL_4) {
16
- // extra messages
17
- /* eslint-disable */
18
- console.info(msg);
19
- }
20
- }
21
- // debug (standard output)
22
- debug(...msg) {
23
- if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3) {
24
- // console.debug does not work on {N} apps... use `log`
25
- /* eslint-disable */
26
- console.debug(msg);
27
- }
28
- }
29
- // error
30
- error(...err) {
31
- if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3 || LogService.DEBUG.LEVEL_2) {
32
- console.error(err);
33
- }
34
- }
35
- // warn
36
- warn(...warn) {
37
- if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3 || LogService.DEBUG.LEVEL_1) {
38
- console.warn(warn);
39
- }
40
- }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
42
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LogService, providedIn: 'root' }); }
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LogService, decorators: [{
45
- type: Injectable,
46
- args: [{
47
- providedIn: 'root'
48
- }]
49
- }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL2xvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWEzQyxNQUFNLE9BQU8sVUFBVTthQUNMLFVBQUssR0FBVztRQUMxQixPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWE7UUFDN0IsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjO1FBQzlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsdUJBQXVCO1FBQ3ZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsOEJBQThCO1FBQzlDLE9BQU8sRUFBRSxLQUFLLENBQUMsaUNBQWlDO0tBQ25ELEFBTmtCLENBTWpCO0lBRUYsdUNBQXVDO0lBQ3ZDLGdDQUFnQztJQUN6QixJQUFJLENBQUMsR0FBRyxHQUFlO1FBQzFCLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2RCxpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNMLENBQUM7SUFFRCwwQkFBMEI7SUFDbkIsS0FBSyxDQUFDLEdBQUcsR0FBZTtRQUMzQixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkQsdURBQXVEO1lBQ3ZELG9CQUFvQjtZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtJQUNELEtBQUssQ0FBQyxHQUFHLEdBQWU7UUFDM0IsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO0lBQ0EsSUFBSSxDQUFDLEdBQUcsSUFBZ0I7UUFDM0IsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7K0dBeENRLFVBQVU7bUhBQVYsVUFBVSxjQUZQLE1BQU07OzRGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEZWJ1ZyB7XHJcbiAgICBMRVZFTF8xOiBib29sZWFuO1xyXG4gICAgTEVWRUxfMjogYm9vbGVhbjtcclxuICAgIExFVkVMXzM6IGJvb2xlYW47XHJcbiAgICBMRVZFTF80OiBib29sZWFuO1xyXG4gICAgTEVWRUxfNTogYm9vbGVhbjtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dTZXJ2aWNlIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgREVCVUc6IElEZWJ1ZyA9IHtcclxuICAgICAgICBMRVZFTF8xOiBmYWxzZSwgLy8gLndhcm4gb25seVxyXG4gICAgICAgIExFVkVMXzI6IGZhbHNlLCAvLyAuZXJyb3Igb25seVxyXG4gICAgICAgIExFVkVMXzM6IGZhbHNlLCAvLyAubG9nICsgYWxsIHRoZSBhYm92ZVxyXG4gICAgICAgIExFVkVMXzQ6IGZhbHNlLCAvLyAubG9nICsgYWxsIHRoZSBhYm92ZSArIGluZm9cclxuICAgICAgICBMRVZFTF81OiBmYWxzZSAvLyBqdXN0IGluZm8gKGV4Y2x1ZGluZyBhbGwgZWxzZSlcclxuICAgIH07XHJcblxyXG4gICAgLy8gaW5mbyAoZXh0cmEgbWVzc2FnZXMgbGlrZSBhbmFseXRpY3MpXHJcbiAgICAvLyB1c2UgTEVWRUxfNSB0byBzZWUgb25seSB0aGVzZVxyXG4gICAgcHVibGljIGluZm8oLi4ubXNnOiBBcnJheTxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKExvZ1NlcnZpY2UuREVCVUcuTEVWRUxfNSB8fCBMb2dTZXJ2aWNlLkRFQlVHLkxFVkVMXzQpIHtcclxuICAgICAgICAgICAgLy8gZXh0cmEgbWVzc2FnZXNcclxuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgICAgICAgICAgY29uc29sZS5pbmZvKG1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGRlYnVnIChzdGFuZGFyZCBvdXRwdXQpXHJcbiAgICBwdWJsaWMgZGVidWcoLi4ubXNnOiBBcnJheTxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKExvZ1NlcnZpY2UuREVCVUcuTEVWRUxfNCB8fCBMb2dTZXJ2aWNlLkRFQlVHLkxFVkVMXzMpIHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5kZWJ1ZyBkb2VzIG5vdCB3b3JrIG9uIHtOfSBhcHBzLi4uIHVzZSBgbG9nYFxyXG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKG1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGVycm9yXHJcbiAgICBwdWJsaWMgZXJyb3IoLi4uZXJyOiBBcnJheTxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKExvZ1NlcnZpY2UuREVCVUcuTEVWRUxfNCB8fCBMb2dTZXJ2aWNlLkRFQlVHLkxFVkVMXzMgfHwgTG9nU2VydmljZS5ERUJVRy5MRVZFTF8yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gd2FyblxyXG4gICAgcHVibGljIHdhcm4oLi4ud2FybjogQXJyYXk8YW55Pik6IHZvaWQge1xyXG4gICAgICAgIGlmIChMb2dTZXJ2aWNlLkRFQlVHLkxFVkVMXzQgfHwgTG9nU2VydmljZS5ERUJVRy5MRVZFTF8zIHx8IExvZ1NlcnZpY2UuREVCVUcuTEVWRUxfMSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4od2Fybik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { fromEvent, merge, of } from 'rxjs';
3
- import { map } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- export class NetworkStatusService {
6
- get networkStatus$() {
7
- return merge(of(null), fromEvent(window, 'online'), fromEvent(window, 'offline')).pipe(map(() => navigator.onLine));
8
- }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkStatusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkStatusService }); }
11
- }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkStatusService, decorators: [{
13
- type: Injectable
14
- }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvc2VydmljZXMvbmV0d29yay1zdGF0dXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3JDLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsSUFBSSxjQUFjO1FBQ2QsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbEYsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FDOUIsQ0FBQztJQUNOLENBQUM7K0dBTFEsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOZXR3b3JrU3RhdHVzU2VydmljZSB7XHJcbiAgICBnZXQgbmV0d29ya1N0YXR1cyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIG1lcmdlKG9mKG51bGwpLCBmcm9tRXZlbnQod2luZG93LCAnb25saW5lJyksIGZyb21FdmVudCh3aW5kb3csICdvZmZsaW5lJykpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoKSA9PiBuYXZpZ2F0b3Iub25MaW5lKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXBvcHVwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1wb3B1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvblBvcHVwU2VydmljZSB7XHJcbiAgICBwb3B1cE5vdGlmeShtc2csIHRpdGxlLCB0eXBlLCBpbWFnZSwgbW8sIHVpT3B0aW9ucywgb3RoZXJPcHRpb25zKTtcclxufVxyXG4iXX0=
@@ -1,180 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { tap } from 'rxjs';
3
- import { BarsaApi } from '../abstract-classes';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./log.service";
6
- import * as i2 from "@angular/service-worker";
7
- import * as i3 from "./portal.service";
8
- export class ServiceWorkerNotificationService {
9
- constructor(_logService, _swPush, _portalService) {
10
- this._logService = _logService;
11
- this._swPush = _swPush;
12
- this._portalService = _portalService;
13
- this.hasRegistration = false;
14
- this._notificationPermissionAllowed = true;
15
- _logService.info(`swPush enable ${_swPush.isEnabled}`);
16
- _swPush.notificationClicks.pipe(tap((c) => console.log(c))).subscribe((e) => {
17
- if (!e.notification.tag) {
18
- return;
19
- }
20
- this.closeNotifications([e.notification.tag]);
21
- let actionTitle = e.action;
22
- if (actionTitle === '') {
23
- actionTitle = 'show';
24
- }
25
- if (!BarsaApi?.LoginFormData?.IsUserLoggedIn) {
26
- return;
27
- }
28
- this._portalService.ExecuteNotificationAction(e.notification.tag, actionTitle);
29
- // TODO:exeucte action
30
- // not handled!!
31
- });
32
- this.getSw().then((c) => (this.hasRegistration = !!c));
33
- this.handlePermission();
34
- }
35
- get isEnabled() {
36
- return this._swPush.isEnabled && this.hasRegistration && this._notificationPermissionAllowed;
37
- }
38
- handlePermission() {
39
- if (!navigator?.permissions?.query) {
40
- return;
41
- }
42
- return navigator.permissions
43
- .query({ name: 'notifications' })
44
- .then(this.permissionQuery.bind(this))
45
- .catch(this.permissionError.bind(this));
46
- }
47
- permissionQuery(result) {
48
- let newPrompt;
49
- if (result.state === 'granted') {
50
- // notifications allowed, go wild
51
- }
52
- else if (result.state === 'prompt') {
53
- // we can ask the user
54
- newPrompt = Notification.requestPermission();
55
- }
56
- else if (result.state === 'denied') {
57
- // notifications were disabled
58
- this._notificationPermissionAllowed = false;
59
- }
60
- result.onchange = () => console.log({ updatedPermission: result });
61
- return newPrompt || result;
62
- }
63
- permissionError(error) {
64
- this._notificationPermissionAllowed = false;
65
- console.error(error);
66
- }
67
- async getSw() {
68
- if (!navigator.serviceWorker) {
69
- this.hasRegistration = false;
70
- return undefined;
71
- }
72
- const x = await navigator.serviceWorker.getRegistration('custom-ngsw-worker.js');
73
- this.hasRegistration = !!x;
74
- return x;
75
- }
76
- async showNotification(payload) {
77
- const sw = await this.getSw();
78
- if (!sw) {
79
- return;
80
- }
81
- const { isRtl, lang, notificationItem } = payload;
82
- const tag = notificationItem.Tag;
83
- const dir = isRtl ? 'rtl' : 'ltr';
84
- const actions = !notificationItem.UiActions
85
- ? []
86
- : notificationItem.UiActions.map((action) => ({
87
- title: action.Title,
88
- icon: action.Icon,
89
- action: action.Title
90
- }));
91
- const moInfo = !tag ? `&moid=${notificationItem.Id}&tpid=${notificationItem.$TypeDefId}` : ``;
92
- const data = {
93
- onActionClick: {
94
- default: { operation: 'openWindow', url: `#/login?notificationTag=${tag}&action=show${moInfo}` }
95
- }
96
- };
97
- actions.forEach((action) => {
98
- data.onActionClick[action.title] = {
99
- operation: 'focusLastFocusedOrOpen',
100
- url: `#/login?notificationTag=${tag}&action=${action.title}`
101
- };
102
- });
103
- sw?.showNotification(notificationItem.Title, {
104
- dir,
105
- tag,
106
- body: notificationItem.Content,
107
- image: notificationItem.Image,
108
- icon: notificationItem.Icon ? notificationItem.Icon : '/notif.png',
109
- badge: '/notif.png',
110
- lang,
111
- actions,
112
- data
113
- });
114
- }
115
- _isSupported() {
116
- if (!('serviceWorker' in navigator)) {
117
- // Service Worker isn't supported on this browser, disable or hide UI.
118
- return false;
119
- }
120
- if (!('PushManager' in window)) {
121
- // Push isn't supported on this browser, disable or hide UI.
122
- return false;
123
- }
124
- return true;
125
- }
126
- _isActionsSupported() {
127
- return 'actions' in Notification.prototype;
128
- }
129
- _isIconSupported() {
130
- return 'icon' in Notification.prototype;
131
- }
132
- isBadgeSupported() {
133
- return 'badge' in Notification.prototype;
134
- }
135
- _isDirSupported() {
136
- return 'dir' in Notification.prototype;
137
- }
138
- isImageSupported() {
139
- return 'image' in Notification.prototype;
140
- }
141
- isTitleBodySupported() {
142
- return 'title' in Notification.prototype && 'body' in Notification.prototype;
143
- }
144
- isVibrateSupported() {
145
- return 'vibrate' in Notification.prototype;
146
- }
147
- isTimestampSupported() {
148
- return 'timestamp' in Notification.prototype;
149
- }
150
- isTagSupported() {
151
- return 'tag' in Notification.prototype;
152
- }
153
- isSoundSupported() {
154
- return 'sound' in Notification.prototype;
155
- }
156
- isSilentSupported() {
157
- return 'silent' in Notification.prototype;
158
- }
159
- isReqInterSupported() {
160
- return 'requireInteraction' in Notification.prototype;
161
- }
162
- async closeNotifications(tags) {
163
- const sw = await this.getSw();
164
- if (!sw) {
165
- return;
166
- }
167
- tags.forEach(async (tag) => {
168
- const notifs = await sw?.getNotifications({ tag });
169
- if (notifs?.length) {
170
- notifs.forEach((c) => c.close());
171
- }
172
- });
173
- }
174
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceWorkerNotificationService, deps: [{ token: i1.LogService }, { token: i2.SwPush }, { token: i3.PortalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
175
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceWorkerNotificationService }); }
176
- }
177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceWorkerNotificationService, decorators: [{
178
- type: Injectable
179
- }], ctorParameters: () => [{ type: i1.LogService }, { type: i2.SwPush }, { type: i3.PortalService }] });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXN3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsUUFBUSxFQUEyQyxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUt4RixNQUFNLE9BQU8sZ0NBQWdDO0lBR3pDLFlBQW9CLFdBQXVCLEVBQVUsT0FBZSxFQUFVLGNBQTZCO1FBQXZGLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBRjNHLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLG1DQUE4QixHQUFHLElBQUksQ0FBQztRQUUxQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEUsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRTlDLElBQUksV0FBVyxHQUFHLENBQUMsQ0FB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Q0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN3UHVzaCB9IGZyb20gJ0Bhbmd1bGFyL3NlcnZpY2Utd29ya2VyJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhcnNhQXBpLCBFeE5vdGlmaWNhdGlvblBheWxvYWQsIE5vdGlmaWNhdGlvbkl0ZW0gfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzJztcclxuaW1wb3J0IHsgTG9nU2VydmljZSB9IGZyb20gJy4vbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnLi9wb3J0YWwuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uU2VydmljZSB7XHJcbiAgICBoYXNSZWdpc3RyYXRpb24gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX25vdGlmaWNhdGlvblBlcm1pc3Npb25BbGxvd2VkID0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2xvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsIHByaXZhdGUgX3N3UHVzaDogU3dQdXNoLCBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlKSB7XHJcbiAgICAgICAgX2xvZ1NlcnZpY2UuaW5mbyhgc3dQdXNoIGVuYWJsZSAke19zd1B1c2guaXNFbmFibGVkfWApO1xyXG4gICAgICAgIF9zd1B1c2gubm90aWZpY2F0aW9uQ2xpY2tzLnBpcGUodGFwKChjKSA9PiBjb25zb2xlLmxvZyhjKSkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWUubm90aWZpY2F0aW9uLnRhZykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNsb3NlTm90aWZpY2F0aW9ucyhbZS5ub3RpZmljYXRpb24udGFnXSk7XHJcblxyXG4gICAgICAgICAgICBsZXQgYWN0aW9uVGl0bGUgPSBlLmFjdGlvbjtcclxuICAgICAgICAgICAgaWYgKGFjdGlvblRpdGxlID09PSAnJykge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uVGl0bGUgPSAnc2hvdyc7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghQmFyc2FBcGk/LkxvZ2luRm9ybURhdGE/LklzVXNlckxvZ2dlZEluKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5FeGVjdXRlTm90aWZpY2F0aW9uQWN0aW9uKGUubm90aWZpY2F0aW9uLnRhZywgYWN0aW9uVGl0bGUpO1xyXG5cclxuICAgICAgICAgICAgLy8gVE9ETzpleGV1Y3RlIGFjdGlvblxyXG4gICAgICAgICAgICAvLyBub3QgaGFuZGxlZCEhXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5nZXRTdygpLnRoZW4oKGMpID0+ICh0aGlzLmhhc1JlZ2lzdHJhdGlvbiA9ICEhYykpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlUGVybWlzc2lvbigpO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGdldCBpc0VuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N3UHVzaC5pc0VuYWJsZWQgJiYgdGhpcy5oYXNSZWdpc3RyYXRpb24gJiYgdGhpcy5fbm90aWZpY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQ7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGhhbmRsZVBlcm1pc3Npb24oKTogYW55IHtcclxuICAgICAgICBpZiAoIW5hdmlnYXRvcj8ucGVybWlzc2lvbnM/LnF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5wZXJtaXNzaW9uc1xyXG4gICAgICAgICAgICAucXVlcnkoeyBuYW1lOiAnbm90aWZpY2F0aW9ucycgfSlcclxuICAgICAgICAgICAgLnRoZW4odGhpcy5wZXJtaXNzaW9uUXVlcnkuYmluZCh0aGlzKSlcclxuICAgICAgICAgICAgLmNhdGNoKHRoaXMucGVybWlzc2lvbkVycm9yLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcGVybWlzc2lvblF1ZXJ5KHJlc3VsdCk6IGFueSB7XHJcbiAgICAgICAgbGV0IG5ld1Byb21wdDtcclxuXHJcbiAgICAgICAgaWYgKHJlc3VsdC5zdGF0ZSA9PT0gJ2dyYW50ZWQnKSB7XHJcbiAgICAgICAgICAgIC8vIG5vdGlmaWNhdGlvbnMgYWxsb3dlZCwgZ28gd2lsZFxyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnN0YXRlID09PSAncHJvbXB0Jykge1xyXG4gICAgICAgICAgICAvLyB3ZSBjYW4gYXNrIHRoZSB1c2VyXHJcbiAgICAgICAgICAgIG5ld1Byb21wdCA9IE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnN0YXRlID09PSAnZGVuaWVkJykge1xyXG4gICAgICAgICAgICAvLyBub3RpZmljYXRpb25zIHdlcmUgZGlzYWJsZWRcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlc3VsdC5vbmNoYW5nZSA9ICgpID0+IGNvbnNvbGUubG9nKHsgdXBkYXRlZFBlcm1pc3Npb246IHJlc3VsdCB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ld1Byb21wdCB8fCByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHBlcm1pc3Npb25FcnJvcihlcnJvcik6IGFueSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQgPSBmYWxzZTtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgYXN5bmMgZ2V0U3coKTogUHJvbWlzZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIHwgdW5kZWZpbmVkPiB7XHJcbiAgICAgICAgaWYgKCFuYXZpZ2F0b3Iuc2VydmljZVdvcmtlcikge1xyXG4gICAgICAgICAgICB0aGlzLmhhc1JlZ2lzdHJhdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB4ID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKCdjdXN0b20tbmdzdy13b3JrZXIuanMnKTtcclxuICAgICAgICB0aGlzLmhhc1JlZ2lzdHJhdGlvbiA9ICEheDtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBhc3luYyBzaG93Tm90aWZpY2F0aW9uKHBheWxvYWQ6IEV4Tm90aWZpY2F0aW9uUGF5bG9hZCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IHN3ID0gYXdhaXQgdGhpcy5nZXRTdygpO1xyXG4gICAgICAgIGlmICghc3cpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB7IGlzUnRsLCBsYW5nLCBub3RpZmljYXRpb25JdGVtIH06IHsgaXNSdGw6IGJvb2xlYW47IGxhbmc6IHN0cmluZzsgbm90aWZpY2F0aW9uSXRlbTogTm90aWZpY2F0aW9uSXRlbSB9ID1cclxuICAgICAgICAgICAgcGF5bG9hZDtcclxuICAgICAgICBjb25zdCB0YWcgPSBub3RpZmljYXRpb25JdGVtLlRhZztcclxuICAgICAgICBjb25zdCBkaXIgPSBpc1J0bCA/ICdydGwnIDogJ2x0cic7XHJcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9ICFub3RpZmljYXRpb25JdGVtLlVpQWN0aW9uc1xyXG4gICAgICAgICAgICA/IFtdXHJcbiAgICAgICAgICAgIDogbm90aWZpY2F0aW9uSXRlbS5VaUFjdGlvbnMubWFwKChhY3Rpb24pID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBhY3Rpb24uVGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgIGljb246IGFjdGlvbi5JY29uLFxyXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IGFjdGlvbi5UaXRsZVxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICBjb25zdCBtb0luZm8gPSAhdGFnID8gYCZtb2lkPSR7bm90aWZpY2F0aW9uSXRlbS5JZH0mdHBpZD0ke25vdGlmaWNhdGlvbkl0ZW0uJFR5cGVEZWZJZH1gIDogYGA7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICAgICAgb25BY3Rpb25DbGljazoge1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogeyBvcGVyYXRpb246ICdvcGVuV2luZG93JywgdXJsOiBgIy9sb2dpbj9ub3RpZmljYXRpb25UYWc9JHt0YWd9JmFjdGlvbj1zaG93JHttb0luZm99YCB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGRhdGEub25BY3Rpb25DbGlja1thY3Rpb24udGl0bGVdID0ge1xyXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnZm9jdXNMYXN0Rm9jdXNlZE9yT3BlbicsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGAjL2xvZ2luP25vdGlmaWNhdGlvblRhZz0ke3RhZ30mYWN0aW9uPSR7YWN0aW9uLnRpdGxlfWBcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc3c/LnNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSXRlbS5UaXRsZSwge1xyXG4gICAgICAgICAgICBkaXIsXHJcbiAgICAgICAgICAgIHRhZyxcclxuICAgICAgICAgICAgYm9keTogbm90aWZpY2F0aW9uSXRlbS5Db250ZW50LFxyXG4gICAgICAgICAgICBpbWFnZTogbm90aWZpY2F0aW9uSXRlbS5JbWFnZSxcclxuICAgICAgICAgICAgaWNvbjogbm90aWZpY2F0aW9uSXRlbS5JY29uID8gbm90aWZpY2F0aW9uSXRlbS5JY29uIDogJy9ub3RpZi5wbmcnLFxyXG4gICAgICAgICAgICBiYWRnZTogJy9ub3RpZi5wbmcnLFxyXG4gICAgICAgICAgICBsYW5nLFxyXG4gICAgICAgICAgICBhY3Rpb25zLFxyXG4gICAgICAgICAgICBkYXRhXHJcbiAgICAgICAgfSBhcyBhbnkpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfaXNTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCEoJ3NlcnZpY2VXb3JrZXInIGluIG5hdmlnYXRvcikpIHtcclxuICAgICAgICAgICAgLy8gU2VydmljZSBXb3JrZXIgaXNuJ3Qgc3VwcG9ydGVkIG9uIHRoaXMgYnJvd3NlciwgZGlzYWJsZSBvciBoaWRlIFVJLlxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoISgnUHVzaE1hbmFnZXInIGluIHdpbmRvdykpIHtcclxuICAgICAgICAgICAgLy8gUHVzaCBpc24ndCBzdXBwb3J0ZWQgb24gdGhpcyBicm93c2VyLCBkaXNhYmxlIG9yIGhpZGUgVUkuXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfaXNBY3Rpb25zU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAnYWN0aW9ucycgaW4gTm90aWZpY2F0aW9uLnByb3RvdHlwZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2lzSWNvblN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gJ2ljb24nIGluIE5vdGlmaWNhdGlvbi5wcm90b3R5cGU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGlzQmFkZ2VTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICdiYWRnZScgaW4gTm90aWZpY2F0aW9uLnByb3RvdHlwZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2lzRGlyU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAnZGlyJyBpbiBOb3RpZmljYXRpb24ucHJvdG90eXBlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBpc0ltYWdlU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAnaW1hZ2UnIGluIE5vdGlmaWNhdGlvbi5wcm90b3R5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1RpdGxlQm9keVN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gJ3RpdGxlJyBpbiBOb3RpZmljYXRpb24ucHJvdG90eXBlICYmICdib2R5JyBpbiBOb3RpZmljYXRpb24ucHJvdG90eXBlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBpc1ZpYnJhdGVTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICd2aWJyYXRlJyBpbiBOb3RpZmljYXRpb24ucHJvdG90eXBlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBpc1RpbWVzdGFtcFN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gJ3RpbWVzdGFtcCcgaW4gTm90aWZpY2F0aW9uLnByb3RvdHlwZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgaXNUYWdTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICd0YWcnIGluIE5vdGlmaWNhdGlvbi5wcm90b3R5cGU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGlzU291bmRTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICdzb3VuZCcgaW4gTm90aWZpY2F0aW9uLnByb3RvdHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzU2lsZW50U3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAnc2lsZW50JyBpbiBOb3RpZmljYXRpb24ucHJvdG90eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNSZXFJbnRlclN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gJ3JlcXVpcmVJbnRlcmFjdGlvbicgaW4gTm90aWZpY2F0aW9uLnByb3RvdHlwZTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBhc3luYyBjbG9zZU5vdGlmaWNhdGlvbnModGFnczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCBzdyA9IGF3YWl0IHRoaXMuZ2V0U3coKTtcclxuICAgICAgICBpZiAoIXN3KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGFncy5mb3JFYWNoKGFzeW5jICh0YWcpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgbm90aWZzOiBOb3RpZmljYXRpb25bXSB8IHVuZGVmaW5lZCA9IGF3YWl0IHN3Py5nZXROb3RpZmljYXRpb25zKHsgdGFnIH0pO1xyXG4gICAgICAgICAgICBpZiAobm90aWZzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIG5vdGlmcy5mb3JFYWNoKChjKSA9PiBjLmNsb3NlKCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19