barsa-novin-ray-core 2.2.73 → 2.2.74

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 (232) hide show
  1. package/fesm2022/barsa-novin-ray-core.mjs +628 -649
  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.service.d.ts +1 -1
  6. package/lib/directives/base.directive.d.ts +1 -1
  7. package/lib/dynamic-component/base-view-item-props.d.ts +4 -4
  8. package/lib/resolvers/login-settings.resolver.d.ts +1 -1
  9. package/lib/resolvers/tile-group-breadcrumb.resolver.d.ts +1 -1
  10. package/lib/services/notification.service.d.ts +2 -2
  11. package/lib/services/portal.service.d.ts +1 -1
  12. package/package.json +3 -5
  13. package/esm2022/barsa-novin-ray-core.mjs +0 -5
  14. package/esm2022/lib/abstract-classes/application-base.mjs +0 -25
  15. package/esm2022/lib/abstract-classes/barsa-api.mjs +0 -43
  16. package/esm2022/lib/abstract-classes/base-column-props.mjs +0 -89
  17. package/esm2022/lib/abstract-classes/base.component.mjs +0 -60
  18. package/esm2022/lib/abstract-classes/field-base.mjs +0 -244
  19. package/esm2022/lib/abstract-classes/files-validation-helper.mjs +0 -75
  20. package/esm2022/lib/abstract-classes/form-base.mjs +0 -164
  21. package/esm2022/lib/abstract-classes/form-field-report-page.component.mjs +0 -54
  22. package/esm2022/lib/abstract-classes/form-page-base.mjs +0 -132
  23. package/esm2022/lib/abstract-classes/form-page.component.mjs +0 -53
  24. package/esm2022/lib/abstract-classes/form-props.base.mjs +0 -100
  25. package/esm2022/lib/abstract-classes/form-toolbar-base.mjs +0 -57
  26. package/esm2022/lib/abstract-classes/index.mjs +0 -25
  27. package/esm2022/lib/abstract-classes/layout-item-base.mjs +0 -49
  28. package/esm2022/lib/abstract-classes/layout-panel-base.mjs +0 -68
  29. package/esm2022/lib/abstract-classes/linear-list-helper.mjs +0 -135
  30. package/esm2022/lib/abstract-classes/models.mjs +0 -184
  31. package/esm2022/lib/abstract-classes/module-with-dynamic-components.mjs +0 -2
  32. package/esm2022/lib/abstract-classes/number-base.mjs +0 -201
  33. package/esm2022/lib/abstract-classes/page-base.mjs +0 -98
  34. package/esm2022/lib/abstract-classes/page-with-form-handler-base.mjs +0 -41
  35. package/esm2022/lib/abstract-classes/report-base.mjs +0 -266
  36. package/esm2022/lib/abstract-classes/report-item-base.mjs +0 -54
  37. package/esm2022/lib/abstract-classes/report-view-base.component.mjs +0 -450
  38. package/esm2022/lib/abstract-classes/system-base.mjs +0 -25
  39. package/esm2022/lib/abstract-classes/tile-props.mjs +0 -49
  40. package/esm2022/lib/auth-guard.mjs +0 -48
  41. package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +0 -311
  42. package/esm2022/lib/barsa-novin-ray-core.module.mjs +0 -522
  43. package/esm2022/lib/base-ulv-setting.component.mjs +0 -46
  44. package/esm2022/lib/base.module.mjs +0 -28
  45. package/esm2022/lib/button-loading/button-loading.component.mjs +0 -20
  46. package/esm2022/lib/constants.mjs +0 -963
  47. package/esm2022/lib/container.component.mjs +0 -100
  48. package/esm2022/lib/controllers/base-controller.mjs +0 -9
  49. package/esm2022/lib/controllers/base-view.mjs +0 -24
  50. package/esm2022/lib/controllers/index.mjs +0 -4
  51. package/esm2022/lib/controllers/models.mjs +0 -2
  52. package/esm2022/lib/custom-route-reuse-strategy.mjs +0 -32
  53. package/esm2022/lib/date-services/date-hijri.service.mjs +0 -146
  54. package/esm2022/lib/date-services/date-info.mjs +0 -2
  55. package/esm2022/lib/date-services/date-miladi.service.mjs +0 -124
  56. package/esm2022/lib/date-services/date-shamsi.service.mjs +0 -148
  57. package/esm2022/lib/date-services/date.service.mjs +0 -149
  58. package/esm2022/lib/date-services/index.mjs +0 -6
  59. package/esm2022/lib/device.mjs +0 -663
  60. package/esm2022/lib/directives/absolute-div-body.directive.mjs +0 -46
  61. package/esm2022/lib/directives/anchor-scroll.directive.mjs +0 -25
  62. package/esm2022/lib/directives/attr-rtl.directive.mjs +0 -36
  63. package/esm2022/lib/directives/base.directive.mjs +0 -55
  64. package/esm2022/lib/directives/body-click.directive.mjs +0 -36
  65. package/esm2022/lib/directives/column-resizer.directive.mjs +0 -40
  66. package/esm2022/lib/directives/copy.directive.mjs +0 -60
  67. package/esm2022/lib/directives/count-down.directive.mjs +0 -109
  68. package/esm2022/lib/directives/dynamic-command.directive.mjs +0 -43
  69. package/esm2022/lib/directives/dynamic-style.directive.mjs +0 -66
  70. package/esm2022/lib/directives/ellapsis-text.directive.mjs +0 -70
  71. package/esm2022/lib/directives/ellipsify.directive.mjs +0 -73
  72. package/esm2022/lib/directives/field-binding.directive.mjs +0 -18
  73. package/esm2022/lib/directives/fill-empty-space.mjs +0 -89
  74. package/esm2022/lib/directives/form-close.directive.mjs +0 -33
  75. package/esm2022/lib/directives/img-lazy.directive.mjs +0 -82
  76. package/esm2022/lib/directives/index.mjs +0 -42
  77. package/esm2022/lib/directives/intersection-observer.directive.mjs +0 -52
  78. package/esm2022/lib/directives/items-renderer.directive.mjs +0 -60
  79. package/esm2022/lib/directives/label-mandatory.directive.mjs +0 -49
  80. package/esm2022/lib/directives/load-external-files.directive.mjs +0 -38
  81. package/esm2022/lib/directives/mobile.directive.mjs +0 -30
  82. package/esm2022/lib/directives/nowraptext.directive.mjs +0 -27
  83. package/esm2022/lib/directives/numbers-only-input.directive.mjs +0 -27
  84. package/esm2022/lib/directives/placeHolder.directive.mjs +0 -16
  85. package/esm2022/lib/directives/prevent-default.directive.mjs +0 -21
  86. package/esm2022/lib/directives/print-files.directive.mjs +0 -39
  87. package/esm2022/lib/directives/render-ulv-paging.directive.mjs +0 -81
  88. package/esm2022/lib/directives/render-ulv-viewer.directive.mjs +0 -76
  89. package/esm2022/lib/directives/render-ulv.directive.mjs +0 -52
  90. package/esm2022/lib/directives/route-form-change.directive.mjs +0 -38
  91. package/esm2022/lib/directives/save-image.directive.mjs +0 -28
  92. package/esm2022/lib/directives/splide-slider.directive.mjs +0 -113
  93. package/esm2022/lib/directives/stop-propagation.directive.mjs +0 -21
  94. package/esm2022/lib/directives/table-resizer.directive.mjs +0 -236
  95. package/esm2022/lib/directives/ulv-command.directive.mjs +0 -43
  96. package/esm2022/lib/directives/until-inview.directive.mjs +0 -53
  97. package/esm2022/lib/directives/webotp.directive.mjs +0 -49
  98. package/esm2022/lib/directives/workflow-choice-command.directive.mjs +0 -61
  99. package/esm2022/lib/dynamic-component/base-dynamic.component.mjs +0 -97
  100. package/esm2022/lib/dynamic-component/base-form-toolbaritem-props.mjs +0 -53
  101. package/esm2022/lib/dynamic-component/base-item-content-props.mjs +0 -83
  102. package/esm2022/lib/dynamic-component/base-view-content-props.mjs +0 -27
  103. package/esm2022/lib/dynamic-component/base-view-item-props.mjs +0 -552
  104. package/esm2022/lib/dynamic-component/base-view-props.mjs +0 -163
  105. package/esm2022/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +0 -38
  106. package/esm2022/lib/dynamic-component/dynamic-form.component.mjs +0 -69
  107. package/esm2022/lib/dynamic-component/dynamic-item.component.mjs +0 -78
  108. package/esm2022/lib/dynamic-component/dynamic-layout.component.mjs +0 -64
  109. package/esm2022/lib/dynamic-component/index.mjs +0 -11
  110. package/esm2022/lib/empty-page/empty-page.component.mjs +0 -49
  111. package/esm2022/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +0 -16
  112. package/esm2022/lib/field-ui/field-ui.component.mjs +0 -149
  113. package/esm2022/lib/form/form.component.mjs +0 -212
  114. package/esm2022/lib/form-new/form-new.component.mjs +0 -31
  115. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.mjs +0 -54
  116. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page.module.mjs +0 -29
  117. package/esm2022/lib/form-page-routing/constants.mjs +0 -9
  118. package/esm2022/lib/form-page-routing/index.mjs +0 -3
  119. package/esm2022/lib/from-intersection-observer.mjs +0 -53
  120. package/esm2022/lib/global-error-handler.mjs +0 -26
  121. package/esm2022/lib/injdection-tokens.mjs +0 -8
  122. package/esm2022/lib/modal-root.component.mjs +0 -34
  123. package/esm2022/lib/not-found/not-found.component.mjs +0 -16
  124. package/esm2022/lib/not-internet/not-internet.component.mjs +0 -21
  125. package/esm2022/lib/pipes/barsa-icon-dict.pipe.mjs +0 -20
  126. package/esm2022/lib/pipes/bbb-translate.pipe.mjs +0 -36
  127. package/esm2022/lib/pipes/can-upload.pipe.mjs +0 -27
  128. package/esm2022/lib/pipes/card-media-size.pipe.mjs +0 -21
  129. package/esm2022/lib/pipes/column-custom-component.pipe.mjs +0 -41
  130. package/esm2022/lib/pipes/column-customui.pipe.mjs +0 -33
  131. package/esm2022/lib/pipes/column-icon.pipe.mjs +0 -23
  132. package/esm2022/lib/pipes/column-value.pipe.mjs +0 -35
  133. package/esm2022/lib/pipes/column-valueof-parameters.pipe.mjs +0 -34
  134. package/esm2022/lib/pipes/combo-row-img.pipe.mjs +0 -17
  135. package/esm2022/lib/pipes/context-menu.pipe.mjs +0 -41
  136. package/esm2022/lib/pipes/control-ui.pipe.mjs +0 -32
  137. package/esm2022/lib/pipes/convert-to-style.pipe.mjs +0 -33
  138. package/esm2022/lib/pipes/date-time-to-caption.pipe.mjs +0 -35
  139. package/esm2022/lib/pipes/fileinfo-count.pipe.mjs +0 -21
  140. package/esm2022/lib/pipes/filter-columns-by-details.pipe.mjs +0 -23
  141. package/esm2022/lib/pipes/filter-inline-action-list.pipe.mjs +0 -19
  142. package/esm2022/lib/pipes/filter-string.pipe.mjs +0 -45
  143. package/esm2022/lib/pipes/filter-tab.pipe.mjs +0 -20
  144. package/esm2022/lib/pipes/filter-toolbar-control.pipe.mjs +0 -17
  145. package/esm2022/lib/pipes/filter-workflow-mobile.pipe.mjs +0 -25
  146. package/esm2022/lib/pipes/filter.pipe.mjs +0 -34
  147. package/esm2022/lib/pipes/find-column-by-db-name.pipe.mjs +0 -28
  148. package/esm2022/lib/pipes/find-preview-column.pipe.mjs +0 -20
  149. package/esm2022/lib/pipes/fiori-icon.pipe.mjs +0 -43
  150. package/esm2022/lib/pipes/groupby.pipe.mjs +0 -64
  151. package/esm2022/lib/pipes/header-facet-value.pipe.mjs +0 -23
  152. package/esm2022/lib/pipes/hide-accept-cancel-buttons.pipe.mjs +0 -24
  153. package/esm2022/lib/pipes/hide-columns-inmobile.pipe.mjs +0 -23
  154. package/esm2022/lib/pipes/index.mjs +0 -55
  155. package/esm2022/lib/pipes/isimage.pipe.mjs +0 -20
  156. package/esm2022/lib/pipes/list-count.pipe.mjs +0 -18
  157. package/esm2022/lib/pipes/merge-fields-to-columns.pipe.mjs +0 -43
  158. package/esm2022/lib/pipes/mo-info-ulv-data.pipe.mjs +0 -59
  159. package/esm2022/lib/pipes/mo-info-ulv-paging.pipe.mjs +0 -17
  160. package/esm2022/lib/pipes/mo-report-value-concat.pipe.mjs +0 -36
  161. package/esm2022/lib/pipes/mo-report-value.pipe.mjs +0 -18
  162. package/esm2022/lib/pipes/mo-value.pipe.mjs +0 -19
  163. package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +0 -91
  164. package/esm2022/lib/pipes/numeral.pipe.mjs +0 -44
  165. package/esm2022/lib/pipes/picture-field-source.pipe.mjs +0 -23
  166. package/esm2022/lib/pipes/remove-newline.pipe.mjs +0 -21
  167. package/esm2022/lib/pipes/replace.pipe.mjs +0 -18
  168. package/esm2022/lib/pipes/reverse.pipe.mjs +0 -23
  169. package/esm2022/lib/pipes/rownumber.pipe.mjs +0 -26
  170. package/esm2022/lib/pipes/sanitize-text.pipe.mjs +0 -21
  171. package/esm2022/lib/pipes/seperator-fix.pipe.mjs +0 -24
  172. package/esm2022/lib/pipes/sort.pipe.mjs +0 -49
  173. package/esm2022/lib/pipes/string-to-number.pipe.mjs +0 -26
  174. package/esm2022/lib/pipes/th-image-icon.pipe.mjs +0 -22
  175. package/esm2022/lib/pipes/tlbButtons.pipe.mjs +0 -60
  176. package/esm2022/lib/pipes/toolbar-settings.pipe.mjs +0 -27
  177. package/esm2022/lib/pipes/total-summary.pipe.mjs +0 -17
  178. package/esm2022/lib/pipes/tree-item-isexpanded.pipe.mjs +0 -26
  179. package/esm2022/lib/pipes/visible-value.pipe.mjs +0 -19
  180. package/esm2022/lib/portal-page/portal-page.component.mjs +0 -24
  181. package/esm2022/lib/portal-page/portal-sidebar.component.mjs +0 -37
  182. package/esm2022/lib/redirect-home-guard.mjs +0 -51
  183. package/esm2022/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +0 -12
  184. package/esm2022/lib/report-container/report-container.component.mjs +0 -63
  185. package/esm2022/lib/resizable-module/resizable.component.mjs +0 -31
  186. package/esm2022/lib/resizable-module/resizable.directive.mjs +0 -42
  187. package/esm2022/lib/resizable-module/resizable.module.mjs +0 -17
  188. package/esm2022/lib/resolvers/index.mjs +0 -7
  189. package/esm2022/lib/resolvers/login-settings.resolver.mjs +0 -18
  190. package/esm2022/lib/resolvers/portal-dynamic-page.resolver.mjs +0 -49
  191. package/esm2022/lib/resolvers/portal-form-page.resolver.mjs +0 -18
  192. package/esm2022/lib/resolvers/portal-page.resolver.mjs +0 -30
  193. package/esm2022/lib/resolvers/portal-report-page.resolver.mjs +0 -37
  194. package/esm2022/lib/resolvers/tile-group-breadcrumb.resolver.mjs +0 -30
  195. package/esm2022/lib/root-page/root-page.component.mjs +0 -21
  196. package/esm2022/lib/root-portal/root-portal.component.mjs +0 -236
  197. package/esm2022/lib/server-connection-error/server-connection-error.component.mjs +0 -19
  198. package/esm2022/lib/services/api.service.mjs +0 -63
  199. package/esm2022/lib/services/audio-recording.service.mjs +0 -95
  200. package/esm2022/lib/services/barsa-dialog.service.mjs +0 -80
  201. package/esm2022/lib/services/barsa-storage.service.mjs +0 -78
  202. package/esm2022/lib/services/breadcrumb.service.mjs +0 -64
  203. package/esm2022/lib/services/column.service.mjs +0 -20
  204. package/esm2022/lib/services/container.service.mjs +0 -69
  205. package/esm2022/lib/services/dynamic-component.service.mjs +0 -55
  206. package/esm2022/lib/services/form-panel.service.mjs +0 -394
  207. package/esm2022/lib/services/form.service.mjs +0 -14
  208. package/esm2022/lib/services/groupby.service.mjs +0 -21
  209. package/esm2022/lib/services/horizontal-layout.service.mjs +0 -16
  210. package/esm2022/lib/services/index.mjs +0 -32
  211. package/esm2022/lib/services/indexeddb.service.mjs +0 -34
  212. package/esm2022/lib/services/layout-main-content.service.mjs +0 -19
  213. package/esm2022/lib/services/layout.service.mjs +0 -42
  214. package/esm2022/lib/services/local-storage.service.mjs +0 -32
  215. package/esm2022/lib/services/log.service.mjs +0 -50
  216. package/esm2022/lib/services/network-status.service.mjs +0 -15
  217. package/esm2022/lib/services/notification-popup.service.mjs +0 -2
  218. package/esm2022/lib/services/notification-sw.service.mjs +0 -180
  219. package/esm2022/lib/services/notification.service.mjs +0 -189
  220. package/esm2022/lib/services/portal.service.mjs +0 -950
  221. package/esm2022/lib/services/prompt-update.service.mjs +0 -56
  222. package/esm2022/lib/services/routing.service.mjs +0 -60
  223. package/esm2022/lib/services/save-scoll-position.service.mjs +0 -29
  224. package/esm2022/lib/services/service-worker-communication.service.mjs +0 -120
  225. package/esm2022/lib/services/tabpage.service.mjs +0 -13
  226. package/esm2022/lib/services/toast.service.mjs +0 -2
  227. package/esm2022/lib/services/ui.service.mjs +0 -23
  228. package/esm2022/lib/services/ulvmain.service.mjs +0 -824
  229. package/esm2022/lib/services/upload.service.mjs +0 -166
  230. package/esm2022/lib/services/video-recording.service.mjs +0 -115
  231. package/esm2022/lib/unlimit-session/unlimit-session.component.mjs +0 -40
  232. package/esm2022/public-api.mjs +0 -42
@@ -1,266 +0,0 @@
1
- import { Input, Component, EventEmitter, Output, ChangeDetectionStrategy } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { debounceTime, map, pluck, takeUntil, tap } from 'rxjs/operators';
4
- import { BaseComponent } from './base.component';
5
- import { GetAllColumnsSorted, getResetGridSettings, getUniqueId } from '../constants';
6
- import { BarsaApi } from './barsa-api';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../services/portal.service";
9
- import * as i2 from "../services/ulvmain.service";
10
- export class ReportBaseComponent extends BaseComponent {
11
- constructor(_portalService, _ulvMainService) {
12
- super();
13
- this._portalService = _portalService;
14
- this._ulvMainService = _ulvMainService;
15
- this.pageChange = new EventEmitter();
16
- this.pageSizeChange = new EventEmitter();
17
- this.defaultGridSetting = {
18
- ColSettingList: [],
19
- AutoSizeColumns: false,
20
- SortSettingList: [],
21
- Hidden: true
22
- };
23
- this.sortSettings = null;
24
- this._visibleColumnsSource = new BehaviorSubject([]);
25
- this.searchTermSource = new BehaviorSubject('');
26
- this.gridSettingSource = new BehaviorSubject(this.defaultGridSetting);
27
- this.groupbySource = new BehaviorSubject([]);
28
- this._allCheckedSource = new BehaviorSubject(false);
29
- this.visibleColumns$ = this._visibleColumnsSource.asObservable();
30
- this.searchTerm$ = this.searchTermSource.asObservable();
31
- this.gridSetting$ = this.gridSettingSource.asObservable();
32
- this.groupby$ = this.groupbySource.asObservable();
33
- this.allChecked$ = this._allCheckedSource.asObservable();
34
- this.fields = {};
35
- this.toolbarButtons$ = this._ulvMainService.toolbarButtons$;
36
- }
37
- get moDataList() {
38
- return this._ulvMainService.moDataListSource.getValue();
39
- }
40
- ngOnInit() {
41
- super.ngOnInit();
42
- this.rendered = true;
43
- this.context.rendered = true;
44
- this.inDialog$ = this._ulvMainService.inDialog$;
45
- this.cssBackground$ = this._ulvMainService.cssBackground$;
46
- this.isMultiSelect$ = this._ulvMainService.isMultiSelect$;
47
- this.fullscreen$ = this._ulvMainService.fullscreen$;
48
- this.hideSearchpanel$ = this._ulvMainService.hideSearchpanel$;
49
- this.deviceSize$ = this._portalService.deviceSize$;
50
- this.hideToolbar$ = this._ulvMainService.hideToolbar$;
51
- this.newInlineEditMo$ = this._ulvMainService.newInlineEditMo$;
52
- this.conditionalFormats$ = this._ulvMainService.conditionalFormats$;
53
- this.cartableTemplates$ = this._ulvMainService.cartableTemplates$;
54
- this.cartableChildsMo$ = this._ulvMainService.cartableChildsMo$;
55
- this.title$ = this._ulvMainService.title$.pipe(pluck('text'));
56
- this.menuItems$ = this._ulvMainService.menuItems$;
57
- this.pagingSetting$ = this._ulvMainService.pagingSetting$;
58
- this.toolbarEnable$ = this._ulvMainService.enable$;
59
- this.gridFreeColumnSizing$ = this._ulvMainService.gridFreeColumnSizing$;
60
- this.mask$ = this._ulvMainService.viwerMask$.pipe(debounceTime(200));
61
- this.selectedMo$ = this._ulvMainService.moDataList$.pipe(map((items) => items.find((c) => c.$IsChecked)));
62
- this.moDataList$ = this._ulvMainService.moDataList$.pipe(tap((items) => this._setAllChecked(items)));
63
- this.selectedCount$ = this._ulvMainService.selectedCount$;
64
- this.context.on({
65
- scope: this,
66
- MoDataListChanged: this._moDataListChanged,
67
- GridSettingChanged: this._gridSettingChanged
68
- });
69
- // in gheire faal bood chon moshkel eijad mikard
70
- // va dar ulv event baiad raise shavad
71
- // ke data amade shode va ulvmainservice an ra begirad.gozaresh mortabet
72
- this._ulvMainService.reSetMoDataList(this.context.moDataList);
73
- let gridSetting = this.defaultGridSetting;
74
- if (this.context.GetGridSetting) {
75
- gridSetting = this.context.GetGridSetting() || this.defaultGridSetting;
76
- }
77
- this._setVisibleColumns();
78
- gridSetting.SortSettingList ||= [];
79
- this.allColumns = this.context.allColumns || [];
80
- this.updateGridSetting(gridSetting, false, false);
81
- this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters', null);
82
- this.id = getUniqueId(4);
83
- this.itemSelector = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUiRow.Selector');
84
- this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters');
85
- const fieldSettings = BarsaApi.Common.Util.TryGetValue(this.parameters, 'FieldSettings.MoDataList', []);
86
- fieldSettings.forEach((c) => {
87
- this.fields[c.ComponentParameter.$Caption] = c.$Caption;
88
- });
89
- this._ulvMainService.context.RefreshAllCmdUi();
90
- }
91
- ngAfterViewInit() {
92
- super.ngAfterViewInit();
93
- this.deviceSize$
94
- .pipe(takeUntil(this._onDestroy$), tap((deviceSize) => this._deviceSizeChanged(deviceSize)))
95
- .subscribe();
96
- this._portalService.windowResize$.pipe(takeUntil(this._onDestroy$)).subscribe(() => this._windowResized());
97
- this.context?.fireEvent('afterrender', this);
98
- }
99
- ngOnDestroy() {
100
- super.ngOnDestroy();
101
- this.context.un('MoDataListChanged', this._moDataListChanged);
102
- this.context.un('GridSettingChanged', this._gridSettingChanged);
103
- }
104
- onResetGridSettings() {
105
- const allColumns = this.allColumns.map((c) => ({
106
- ...c,
107
- Hidden: false,
108
- Width: 0,
109
- $Width: undefined,
110
- $Width2: undefined
111
- }));
112
- const gridSettings = getResetGridSettings(allColumns, this.context);
113
- this.updateGridSetting(gridSettings, false, true);
114
- }
115
- _columnSummary(e) {
116
- this.context.fireEvent('columnSummary', this.context, e.moArr, e.column, e.groupLevel, e.groupName, e.summaryFn);
117
- }
118
- _gridSettingChanged(setting) {
119
- this.gridSettingSource.next(setting);
120
- }
121
- _moDataListChanged(moDataList) {
122
- this._ulvMainService.reSetMoDataList(moDataList);
123
- }
124
- _setAllChecked(items) {
125
- this._allCheckedSource.next(items.length > 0 && !items.some((c) => !c.$IsChecked));
126
- }
127
- _handleColumnsResized(e) {
128
- const gridSetting = this.gridSettingSource.getValue();
129
- const { columns, resized } = e;
130
- const colList = gridSetting.ColSettingList;
131
- resized.forEach((column1) => {
132
- const resizedColumn = columns.find((c) => c.Name === column1.name);
133
- if (!colList) {
134
- return;
135
- }
136
- const column = colList.find((c) => c.Name === resizedColumn?.Name);
137
- if (column) {
138
- column.Width = column1.width;
139
- }
140
- else if (resizedColumn) {
141
- colList.push({ IsHidden: resizedColumn.Hidden, Name: resizedColumn.Name, Width: column1.width });
142
- }
143
- });
144
- this._raiseEventUserSettingChanged(gridSetting);
145
- }
146
- _setVisibleColumns() {
147
- const columns = GetAllColumnsSorted(this.context);
148
- this._visibleColumnsSource.next(columns.filter((c) => !c.Hidden));
149
- }
150
- applyGroupby() {
151
- const sortList = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.GridSetting.SortSettingList', []);
152
- this.groupbySource.next(sortList.filter((c) => c.IsGrouped));
153
- }
154
- _raiseRowClick(index, mo) {
155
- this.context?.fireEvent('rowdblclick', this.context, index, mo);
156
- }
157
- /* eslint-disable */
158
- _deviceSizeChanged(_) { }
159
- _windowResized() { }
160
- _openMo(mo, i) {
161
- this._raiseRowClick(i, mo);
162
- }
163
- updateGridSetting(setting, isSort = false, raiseEvent = true) {
164
- if (!setting) {
165
- return;
166
- }
167
- this.context.Setting.View.GridSetting = setting;
168
- this.gridSettingSource.next(setting);
169
- this.applyGroupby();
170
- if (isSort) {
171
- setting.Event = 'SortChange';
172
- }
173
- else {
174
- setting.Event = '';
175
- }
176
- this._setVisibleColumns();
177
- this._deviceSizeChanged(this._portalService.deviceSize);
178
- if (raiseEvent) {
179
- this._raiseEventUserSettingChanged(setting);
180
- }
181
- }
182
- updateSortSettings(sortSettings, raiseEvent = true) {
183
- const gridSettings = this.context.Setting.View.GridSetting;
184
- gridSettings.SortSettingList = sortSettings;
185
- this.gridSettingSource.next(gridSettings);
186
- this.applyGroupby();
187
- gridSettings.Event = 'SortChange';
188
- if (raiseEvent) {
189
- this._raiseEventUserSettingChanged(gridSettings);
190
- }
191
- }
192
- _raiseEventUserSettingChanged(gridSetting) {
193
- this.context.fireEvent('UserSettingChange', this.context, gridSetting);
194
- }
195
- _ulvCommandClicked(mo, index) {
196
- this._removeCheckedAll();
197
- this._select(mo, index);
198
- }
199
- _checkedAll() {
200
- const moDataList = this.moDataList;
201
- moDataList.forEach((mo) => (mo.$IsChecked = true));
202
- this._ulvMainService.reSetMoDataList();
203
- this.context.fireEvent('rowSelectAll', this.context);
204
- }
205
- _removeCheckedAll() {
206
- this._deselctAll();
207
- // this.context.fireEvent('rowDeselectAll', this.context);
208
- }
209
- _deselctAll() {
210
- const moDataList = this.moDataList;
211
- moDataList.forEach((mo) => (mo.$IsChecked = false));
212
- this._ulvMainService.reSetMoDataList();
213
- }
214
- _deselect(mo, index) {
215
- mo.$IsChecked = false;
216
- this._ulvMainService.reSetMoDataList();
217
- this.context.fireEvent('rowdeselect', this.context, index, mo);
218
- return mo;
219
- }
220
- _select(mo, index) {
221
- // this._deselctAll();
222
- mo.$IsChecked = true;
223
- this._ulvMainService.reSetMoDataList();
224
- this.context.fireEvent('rowselect', this.context, index, mo);
225
- return mo;
226
- }
227
- _doCheckedAll(checked) {
228
- if (checked) {
229
- this._checkedAll();
230
- }
231
- else {
232
- this._removeCheckedAll();
233
- }
234
- }
235
- _getSelected() {
236
- const selectedMo = this.moDataList.find((mo) => mo.$IsChecked);
237
- if (!selectedMo) {
238
- return null;
239
- }
240
- selectedMo.json = selectedMo;
241
- return selectedMo;
242
- }
243
- refreshContextMoDataList(moDataList) {
244
- this.context.fireEvent('RefreshContextMoDataList', moDataList);
245
- }
246
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReportBaseComponent, deps: [{ token: i1.PortalService }, { token: i2.UlvMainService }], target: i0.ɵɵFactoryTarget.Component }); }
247
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ReportBaseComponent, selector: "bnrc-report-base", inputs: { context: "context", currentPage: "currentPage" }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
248
- }
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReportBaseComponent, decorators: [{
250
- type: Component,
251
- args: [{
252
- selector: 'bnrc-report-base',
253
- template: '',
254
- changeDetection: ChangeDetectionStrategy.OnPush,
255
- standalone: false
256
- }]
257
- }], ctorParameters: () => [{ type: i1.PortalService }, { type: i2.UlvMainService }], propDecorators: { context: [{
258
- type: Input
259
- }], currentPage: [{
260
- type: Input
261
- }], pageChange: [{
262
- type: Output
263
- }], pageSizeChange: [{
264
- type: Output
265
- }] } });
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvcmVwb3J0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFJTix1QkFBdUIsRUFDMUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3RGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUEyQnZDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBeURsRCxZQUFzQixjQUE2QixFQUFZLGVBQStCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFsRHBGLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RCx1QkFBa0IsR0FBRztZQUNqQixjQUFjLEVBQUUsRUFBRTtZQUNsQixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsRUFBRTtZQUNuQixNQUFNLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFLRixpQkFBWSxHQUF5RSxJQUFJLENBQUM7UUErQmhGLDBCQUFxQixH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QUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBRVMsWUFBWTtRQUNsQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNkLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxVQUFVLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUM3QixPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBQ1Msd0JBQXdCLENBQUMsVUFBVTtRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDOytHQXBUUSxtQkFBbUI7bUdBQW5CLG1CQUFtQixvTkFKbEIsRUFBRTs7NEZBSUgsbUJBQW1CO2tCQU4vQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsS0FBSztpQkFDcEI7K0dBRVksT0FBTztzQkFBZixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIElucHV0LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHBsdWNrLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2V0QWxsQ29sdW1uc1NvcnRlZCwgZ2V0UmVzZXRHcmlkU2V0dGluZ3MsIGdldFVuaXF1ZUlkIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgUG9ydGFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BvcnRhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVWx2TWFpblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91bHZtYWluLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYmFyc2EtYXBpJztcclxuaW1wb3J0IHtcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBHcmlkU2V0dGluZyxcclxuICAgIENvbFNldHRpbmcsXHJcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxyXG4gICAgU29ydFNldHRpbmcsXHJcbiAgICBNZW51SXRlbSxcclxuICAgIFBhZ2luZ1NldHRpbmcsXHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBjb2x1bW5zUmVzaXplZEV2ZW50QXJncyxcclxuICAgIEZvcm1TZXR0aW5nLFxyXG4gICAgQ29sdW1uU3VtbWFyeVR5cGUsXHJcbiAgICBDc3NCYWNrZ3JvdW5kXHJcbn0gZnJvbSAnLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRTZXR0aW5nIHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgIElkOiBzdHJpbmc7XHJcbiAgICBFeHRyYTogYW55O1xyXG59XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdibnJjLXJlcG9ydC1iYXNlJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydEJhc2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgY29udGV4dDoge1xyXG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgICAgICBTZXR0aW5nOiBSZXBvcnRTZXR0aW5nO1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpIGN1cnJlbnRQYWdlOiBudW1iZXI7XHJcblxyXG4gICAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAgIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAgIGRlZmF1bHRHcmlkU2V0dGluZyA9IHtcclxuICAgICAgICBDb2xTZXR0aW5nTGlzdDogW10sXHJcbiAgICAgICAgQXV0b1NpemVDb2x1bW5zOiBmYWxzZSxcclxuICAgICAgICBTb3J0U2V0dGluZ0xpc3Q6IFtdLFxyXG4gICAgICAgIEhpZGRlbjogdHJ1ZVxyXG4gICAgfTtcclxuICAgIGl0ZW1TZWxlY3Rvcjogc3RyaW5nO1xyXG4gICAgYWxsQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xyXG4gICAgaWQ6IHN0cmluZztcclxuXHJcbiAgICBzb3J0U2V0dGluZ3M6IHsgSXNHcm91cGVkOiBib29sZWFuOyBOYW1lOiBzdHJpbmc7IFNvcnREaXJlY3Rpb246IHN0cmluZyB9W10gfCBudWxsID0gbnVsbDtcclxuICAgIHBhcmFtZXRlcnM6IGFueTtcclxuICAgIGZpZWxkczogYW55O1xyXG5cclxuICAgIGNzc0JhY2tncm91bmQkOiBPYnNlcnZhYmxlPENzc0JhY2tncm91bmQgfCBudWxsPjtcclxuICAgIHZpc2libGVDb2x1bW5zJDogT2JzZXJ2YWJsZTxSZXBvcnRWaWV3Q29sdW1uW10+O1xyXG4gICAgc2VhcmNoVGVybSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIG1vRGF0YUxpc3QkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XHJcbiAgICBncmlkU2V0dGluZyQ6IE9ic2VydmFibGU8R3JpZFNldHRpbmc+O1xyXG4gICAgZ3JvdXBieSQ6IE9ic2VydmFibGU8U29ydFNldHRpbmdbXT47XHJcbiAgICBhbGxDaGVja2VkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHBhZ2luZ1NldHRpbmckOiBPYnNlcnZhYmxlPFBhZ2luZ1NldHRpbmcgfCBudWxsPjtcclxuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XHJcbiAgICBtYXNrJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgaW5EaWFsb2ckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgaXNNdWx0aVNlbGVjdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBmdWxsc2NyZWVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIG1lbnVJdGVtcyQ6IE9ic2VydmFibGU8TWVudUl0ZW1bXT47XHJcbiAgICB0b29sYmFyQnV0dG9ucyQ6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgdG9vbGJhckVuYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBoaWRlVG9vbGJhciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBoaWRlU2VhcmNocGFuZWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgc2VsZWN0ZWRNbyQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbCB8IHVuZGVmaW5lZD47XHJcbiAgICBjb25kaXRpb25hbEZvcm1hdHMkOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgIG5ld0lubGluZUVkaXRNbyQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGw+O1xyXG4gICAgY2FydGFibGVUZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogRm9ybVNldHRpbmcgfSB8IG51bGw+O1xyXG4gICAgY2FydGFibGVDaGlsZHNNbyQ6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gfCBudWxsPjtcclxuICAgIHNlbGVjdGVkQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICBncmlkRnJlZUNvbHVtblNpemluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gICAgcHJvdGVjdGVkIF92aXNpYmxlQ29sdW1uc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVwb3J0Vmlld0NvbHVtbltdPihbXSk7XHJcbiAgICBwcm90ZWN0ZWQgc2VhcmNoVGVybVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcbiAgICBwcm90ZWN0ZWQgZ3JpZFNldHRpbmdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEdyaWRTZXR0aW5nPih0aGlzLmRlZmF1bHRHcmlkU2V0dGluZyk7XHJcbiAgICBwcm90ZWN0ZWQgZ3JvdXBieVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U29ydFNldHRpbmdbXT4oW10pO1xyXG4gICAgcHJpdmF0ZSBfYWxsQ2hlY2tlZFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSwgcHJvdGVjdGVkIF91bHZNYWluU2VydmljZTogVWx2TWFpblNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnMkID0gdGhpcy5fdmlzaWJsZUNvbHVtbnNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtJCA9IHRoaXMuc2VhcmNoVGVybVNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nJCA9IHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5ncm91cGJ5JCA9IHRoaXMuZ3JvdXBieVNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB0aGlzLmFsbENoZWNrZWQkID0gdGhpcy5fYWxsQ2hlY2tlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB0aGlzLmZpZWxkcyA9IHt9O1xyXG4gICAgICAgIHRoaXMudG9vbGJhckJ1dHRvbnMkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UudG9vbGJhckJ1dHRvbnMkO1xyXG4gICAgfVxyXG4gICAgZ2V0IG1vRGF0YUxpc3QoKTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdWx2TWFpblNlcnZpY2UubW9EYXRhTGlzdFNvdXJjZS5nZXRWYWx1ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LnJlbmRlcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmluRGlhbG9nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmluRGlhbG9nJDtcclxuICAgICAgICB0aGlzLmNzc0JhY2tncm91bmQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuY3NzQmFja2dyb3VuZCQ7XHJcbiAgICAgICAgdGhpcy5pc011bHRpU2VsZWN0JCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmlzTXVsdGlTZWxlY3QkO1xyXG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbiQgPSB0aGlzLl91bHZNYWluU2VydmljZS5mdWxsc2NyZWVuJDtcclxuICAgICAgICB0aGlzLmhpZGVTZWFyY2hwYW5lbCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5oaWRlU2VhcmNocGFuZWwkO1xyXG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkO1xyXG4gICAgICAgIHRoaXMuaGlkZVRvb2xiYXIkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaGlkZVRvb2xiYXIkO1xyXG4gICAgICAgIHRoaXMubmV3SW5saW5lRWRpdE1vJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm5ld0lubGluZUVkaXRNbyQ7XHJcbiAgICAgICAgdGhpcy5jb25kaXRpb25hbEZvcm1hdHMkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuY29uZGl0aW9uYWxGb3JtYXRzJDtcclxuICAgICAgICB0aGlzLmNhcnRhYmxlVGVtcGxhdGVzJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNhcnRhYmxlVGVtcGxhdGVzJDtcclxuICAgICAgICB0aGlzLmNhcnRhYmxlQ2hpbGRzTW8kID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuY2FydGFibGVDaGlsZHNNbyQ7XHJcbiAgICAgICAgdGhpcy50aXRsZSQgPSB0aGlzLl91bHZNYWluU2VydmljZS50aXRsZSQucGlwZShwbHVjaygndGV4dCcpKTtcclxuICAgICAgICB0aGlzLm1lbnVJdGVtcyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5tZW51SXRlbXMkO1xyXG4gICAgICAgIHRoaXMucGFnaW5nU2V0dGluZyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5wYWdpbmdTZXR0aW5nJDtcclxuICAgICAgICB0aGlzLnRvb2xiYXJFbmFibGUkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuZW5hYmxlJDtcclxuICAgICAgICB0aGlzLmdyaWRGcmVlQ29sdW1uU2l6aW5nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmdyaWRGcmVlQ29sdW1uU2l6aW5nJDtcclxuICAgICAgICB0aGlzLm1hc2skID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uudml3ZXJNYXNrJC5waXBlKGRlYm91bmNlVGltZSgyMDApKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW8kID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubW9EYXRhTGlzdCQucGlwZShtYXAoKGl0ZW1zKSA9PiBpdGVtcy5maW5kKChjKSA9PiBjLiRJc0NoZWNrZWQpKSk7XHJcbiAgICAgICAgdGhpcy5tb0RhdGFMaXN0JCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm1vRGF0YUxpc3QkLnBpcGUodGFwKChpdGVtcykgPT4gdGhpcy5fc2V0QWxsQ2hlY2tlZChpdGVtcykpKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VsZWN0ZWRDb3VudCQ7XHJcblxyXG4gICAgICAgIHRoaXMuY29udGV4dC5vbih7XHJcbiAgICAgICAgICAgIHNjb3BlOiB0aGlzLFxyXG4gICAgICAgICAgICBNb0RhdGFMaXN0Q2hhbmdlZDogdGhpcy5fbW9EYXRhTGlzdENoYW5nZWQsXHJcbiAgICAgICAgICAgIEdyaWRTZXR0aW5nQ2hhbmdlZDogdGhpcy5fZ3JpZFNldHRpbmdDaGFuZ2VkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gaW4gZ2hlaXJlIGZhYWwgYm9vZCBjaG9uIG1vc2hrZWwgZWlqYWQgbWlrYXJkXHJcbiAgICAgICAgLy8gdmEgZGFyIHVsdiBldmVudCBiYWlhZCByYWlzZSBzaGF2YWRcclxuICAgICAgICAvLyBrZSBkYXRhIGFtYWRlIHNob2RlIHZhIHVsdm1haW5zZXJ2aWNlIGFuIHJhIGJlZ2lyYWQuZ296YXJlc2ggbW9ydGFiZXRcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QodGhpcy5jb250ZXh0Lm1vRGF0YUxpc3QpO1xyXG5cclxuICAgICAgICBsZXQgZ3JpZFNldHRpbmcgPSB0aGlzLmRlZmF1bHRHcmlkU2V0dGluZztcclxuICAgICAgICBpZiAodGhpcy5jb250ZXh0LkdldEdyaWRTZXR0aW5nKSB7XHJcbiAgICAgICAgICAgIGdyaWRTZXR0aW5nID0gdGhpcy5jb250ZXh0LkdldEdyaWRTZXR0aW5nKCkgfHwgdGhpcy5kZWZhdWx0R3JpZFNldHRpbmc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zZXRWaXNpYmxlQ29sdW1ucygpO1xyXG5cclxuICAgICAgICBncmlkU2V0dGluZy5Tb3J0U2V0dGluZ0xpc3QgfHw9IFtdO1xyXG4gICAgICAgIHRoaXMuYWxsQ29sdW1ucyA9IHRoaXMuY29udGV4dC5hbGxDb2x1bW5zIHx8IFtdO1xyXG4gICAgICAgIHRoaXMudXBkYXRlR3JpZFNldHRpbmcoZ3JpZFNldHRpbmcsIGZhbHNlLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcclxuICAgICAgICAgICAgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzJyxcclxuICAgICAgICAgICAgbnVsbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5pZCA9IGdldFVuaXF1ZUlkKDQpO1xyXG5cclxuICAgICAgICB0aGlzLml0ZW1TZWxlY3RvciA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaVJvdy5TZWxlY3RvcicpO1xyXG5cclxuICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycycpO1xyXG4gICAgICAgIGNvbnN0IGZpZWxkU2V0dGluZ3MgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLnBhcmFtZXRlcnMsICdGaWVsZFNldHRpbmdzLk1vRGF0YUxpc3QnLCBbXSk7XHJcblxyXG4gICAgICAgIGZpZWxkU2V0dGluZ3MuZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZpZWxkc1tjLkNvbXBvbmVudFBhcmFtZXRlci4kQ2FwdGlvbl0gPSBjLiRDYXB0aW9uO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNvbnRleHQuUmVmcmVzaEFsbENtZFVpKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLmRldmljZVNpemUkXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgdGFwKChkZXZpY2VTaXplKSA9PiB0aGlzLl9kZXZpY2VTaXplQ2hhbmdlZChkZXZpY2VTaXplKSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fd2luZG93UmVzaXplZCgpKTtcclxuICAgICAgICB0aGlzLmNvbnRleHQ/LmZpcmVFdmVudCgnYWZ0ZXJyZW5kZXInLCB0aGlzKTtcclxuICAgIH1cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdNb0RhdGFMaXN0Q2hhbmdlZCcsIHRoaXMuX21vRGF0YUxpc3RDaGFuZ2VkKTtcclxuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ0dyaWRTZXR0aW5nQ2hhbmdlZCcsIHRoaXMuX2dyaWRTZXR0aW5nQ2hhbmdlZCk7XHJcbiAgICB9XHJcbiAgICBvblJlc2V0R3JpZFNldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFsbENvbHVtbnMgPSB0aGlzLmFsbENvbHVtbnMubWFwKChjKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi5jLFxyXG4gICAgICAgICAgICBIaWRkZW46IGZhbHNlLFxyXG4gICAgICAgICAgICBXaWR0aDogMCxcclxuICAgICAgICAgICAgJFdpZHRoOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICRXaWR0aDI6IHVuZGVmaW5lZFxyXG4gICAgICAgIH0pKTtcclxuICAgICAgICBjb25zdCBncmlkU2V0dGluZ3MgPSBnZXRSZXNldEdyaWRTZXR0aW5ncyhhbGxDb2x1bW5zLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlR3JpZFNldHRpbmcoZ3JpZFNldHRpbmdzLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2NvbHVtblN1bW1hcnkoZTogQ29sdW1uU3VtbWFyeVR5cGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KFxyXG4gICAgICAgICAgICAnY29sdW1uU3VtbWFyeScsXHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcclxuICAgICAgICAgICAgZS5tb0FycixcclxuICAgICAgICAgICAgZS5jb2x1bW4sXHJcbiAgICAgICAgICAgIGUuZ3JvdXBMZXZlbCxcclxuICAgICAgICAgICAgZS5ncm91cE5hbWUsXHJcbiAgICAgICAgICAgIGUuc3VtbWFyeUZuXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfZ3JpZFNldHRpbmdDaGFuZ2VkKHNldHRpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nU291cmNlLm5leHQoc2V0dGluZyk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX21vRGF0YUxpc3RDaGFuZ2VkKG1vRGF0YUxpc3QpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QobW9EYXRhTGlzdCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3NldEFsbENoZWNrZWQoaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2FsbENoZWNrZWRTb3VyY2UubmV4dChpdGVtcy5sZW5ndGggPiAwICYmICFpdGVtcy5zb21lKChjKSA9PiAhYy4kSXNDaGVja2VkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVDb2x1bW5zUmVzaXplZChlOiBjb2x1bW5zUmVzaXplZEV2ZW50QXJncyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGdyaWRTZXR0aW5nOiBHcmlkU2V0dGluZyA9IHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UuZ2V0VmFsdWUoKTtcclxuICAgICAgICBjb25zdCB7IGNvbHVtbnMsIHJlc2l6ZWQgfSA9IGU7XHJcbiAgICAgICAgY29uc3QgY29sTGlzdDogQ29sU2V0dGluZ1tdID0gZ3JpZFNldHRpbmcuQ29sU2V0dGluZ0xpc3Q7XHJcbiAgICAgICAgcmVzaXplZC5mb3JFYWNoKChjb2x1bW4xKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc2l6ZWRDb2x1bW4gPSBjb2x1bW5zLmZpbmQoKGMpID0+IGMuTmFtZSA9PT0gY29sdW1uMS5uYW1lKTtcclxuICAgICAgICAgICAgaWYgKCFjb2xMaXN0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgY29sdW1uID0gY29sTGlzdC5maW5kKChjKSA9PiBjLk5hbWUgPT09IHJlc2l6ZWRDb2x1bW4/Lk5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoY29sdW1uKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW4uV2lkdGggPSBjb2x1bW4xLndpZHRoO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc2l6ZWRDb2x1bW4pIHtcclxuICAgICAgICAgICAgICAgIGNvbExpc3QucHVzaCh7IElzSGlkZGVuOiByZXNpemVkQ29sdW1uLkhpZGRlbiwgTmFtZTogcmVzaXplZENvbHVtbi5OYW1lLCBXaWR0aDogY29sdW1uMS53aWR0aCB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3JhaXNlRXZlbnRVc2VyU2V0dGluZ0NoYW5nZWQoZ3JpZFNldHRpbmcpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRWaXNpYmxlQ29sdW1ucygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb2x1bW5zID0gR2V0QWxsQ29sdW1uc1NvcnRlZCh0aGlzLmNvbnRleHQpO1xyXG4gICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5zU291cmNlLm5leHQoY29sdW1ucy5maWx0ZXIoKGMpID0+ICFjLkhpZGRlbikpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIGFwcGx5R3JvdXBieSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzb3J0TGlzdDogU29ydFNldHRpbmdbXSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQsXHJcbiAgICAgICAgICAgICdTZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcuU29ydFNldHRpbmdMaXN0JyxcclxuICAgICAgICAgICAgW11cclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBieVNvdXJjZS5uZXh0KHNvcnRMaXN0LmZpbHRlcigoYykgPT4gYy5Jc0dyb3VwZWQpKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfcmFpc2VSb3dDbGljayhpbmRleCwgbW8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQ/LmZpcmVFdmVudCgncm93ZGJsY2xpY2snLCB0aGlzLmNvbnRleHQsIGluZGV4LCBtbyk7XHJcbiAgICB9XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgcHJvdGVjdGVkIF9kZXZpY2VTaXplQ2hhbmdlZChfOiBzdHJpbmcpOiB2b2lkIHt9XHJcbiAgICBwcm90ZWN0ZWQgX3dpbmRvd1Jlc2l6ZWQoKTogdm9pZCB7fVxyXG5cclxuICAgIHByb3RlY3RlZCBfb3Blbk1vKG1vLCBpKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmFpc2VSb3dDbGljayhpLCBtbyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUdyaWRTZXR0aW5nKHNldHRpbmcsIGlzU29ydCA9IGZhbHNlLCByYWlzZUV2ZW50ID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghc2V0dGluZykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29udGV4dC5TZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcgPSBzZXR0aW5nO1xyXG4gICAgICAgIHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UubmV4dChzZXR0aW5nKTtcclxuICAgICAgICB0aGlzLmFwcGx5R3JvdXBieSgpO1xyXG4gICAgICAgIGlmIChpc1NvcnQpIHtcclxuICAgICAgICAgICAgc2V0dGluZy5FdmVudCA9ICdTb3J0Q2hhbmdlJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzZXR0aW5nLkV2ZW50ID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3NldFZpc2libGVDb2x1bW5zKCk7XHJcbiAgICAgICAgdGhpcy5fZGV2aWNlU2l6ZUNoYW5nZWQodGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplKTtcclxuICAgICAgICBpZiAocmFpc2VFdmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl9yYWlzZUV2ZW50VXNlclNldHRpbmdDaGFuZ2VkKHNldHRpbmcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByb3RlY3RlZCB1cGRhdGVTb3J0U2V0dGluZ3Moc29ydFNldHRpbmdzLCByYWlzZUV2ZW50ID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGdyaWRTZXR0aW5ncyA9IHRoaXMuY29udGV4dC5TZXR0aW5nLlZpZXcuR3JpZFNldHRpbmc7XHJcbiAgICAgICAgZ3JpZFNldHRpbmdzLlNvcnRTZXR0aW5nTGlzdCA9IHNvcnRTZXR0aW5ncztcclxuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nU291cmNlLm5leHQoZ3JpZFNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLmFwcGx5R3JvdXBieSgpO1xyXG4gICAgICAgIGdyaWRTZXR0aW5ncy5FdmVudCA9ICdTb3J0Q2hhbmdlJztcclxuICAgICAgICBpZiAocmFpc2VFdmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl9yYWlzZUV2ZW50VXNlclNldHRpbmdDaGFuZ2VkKGdyaWRTZXR0aW5ncyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9yYWlzZUV2ZW50VXNlclNldHRpbmdDaGFuZ2VkKGdyaWRTZXR0aW5nOiBHcmlkU2V0dGluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1VzZXJTZXR0aW5nQ2hhbmdlJywgdGhpcy5jb250ZXh0LCBncmlkU2V0dGluZyk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3VsdkNvbW1hbmRDbGlja2VkKG1vLCBpbmRleCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbW92ZUNoZWNrZWRBbGwoKTtcclxuICAgICAgICB0aGlzLl9zZWxlY3QobW8sIGluZGV4KTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfY2hlY2tlZEFsbCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBtb0RhdGFMaXN0ID0gdGhpcy5tb0RhdGFMaXN0O1xyXG4gICAgICAgIG1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IChtby4kSXNDaGVja2VkID0gdHJ1ZSkpO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlU2V0TW9EYXRhTGlzdCgpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd1NlbGVjdEFsbCcsIHRoaXMuY29udGV4dCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3JlbW92ZUNoZWNrZWRBbGwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGVzZWxjdEFsbCgpO1xyXG4gICAgICAgIC8vIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd0Rlc2VsZWN0QWxsJywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX2Rlc2VsY3RBbGwoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbW9EYXRhTGlzdCA9IHRoaXMubW9EYXRhTGlzdDtcclxuICAgICAgICBtb0RhdGFMaXN0LmZvckVhY2goKG1vKSA9PiAobW8uJElzQ2hlY2tlZCA9IGZhbHNlKSk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2Rlc2VsZWN0KG1vLCBpbmRleCk6IE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgICAgIG1vLiRJc0NoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QoKTtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdyb3dkZXNlbGVjdCcsIHRoaXMuY29udGV4dCwgaW5kZXgsIG1vKTtcclxuICAgICAgICByZXR1cm4gbW87XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9zZWxlY3QobW8sIGluZGV4KTogTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICAgICAgLy8gICAgdGhpcy5fZGVzZWxjdEFsbCgpO1xyXG4gICAgICAgIG1vLiRJc0NoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlU2V0TW9EYXRhTGlzdCgpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd3NlbGVjdCcsIHRoaXMuY29udGV4dCwgaW5kZXgsIG1vKTtcclxuICAgICAgICByZXR1cm4gbW87XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9kb0NoZWNrZWRBbGwoY2hlY2tlZCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChjaGVja2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrZWRBbGwoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9yZW1vdmVDaGVja2VkQWxsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfZ2V0U2VsZWN0ZWQoKTogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkTW8gPSB0aGlzLm1vRGF0YUxpc3QuZmluZCgobW8pID0+IG1vLiRJc0NoZWNrZWQpO1xyXG4gICAgICAgIGlmICghc2VsZWN0ZWRNbykge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2VsZWN0ZWRNby5qc29uID0gc2VsZWN0ZWRNbztcclxuICAgICAgICByZXR1cm4gc2VsZWN0ZWRNbztcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCByZWZyZXNoQ29udGV4dE1vRGF0YUxpc3QobW9EYXRhTGlzdCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1JlZnJlc2hDb250ZXh0TW9EYXRhTGlzdCcsIG1vRGF0YUxpc3QpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,54 +0,0 @@
1
- import { Input, Component, HostBinding, HostListener, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
2
- import { BaseComponent } from './base.component';
3
- import { BarsaApi } from './barsa-api';
4
- import * as i0 from "@angular/core";
5
- export class ReportItemBaseComponent extends BaseComponent {
6
- constructor() {
7
- super();
8
- this.itemClick = new EventEmitter();
9
- this.index = -1;
10
- this.fields = {};
11
- }
12
- onClick() {
13
- this.itemClick.emit({ index: this.index, mo: this.mo });
14
- }
15
- ngOnInit() {
16
- super.ngOnInit();
17
- this.classNames2 = this.classNames;
18
- this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUiRow.Parameters');
19
- const fieldSettings = BarsaApi.Common.Util.TryGetValue(this.parameters, 'FieldSettings.MoDataList', []);
20
- fieldSettings.forEach((c) => {
21
- this.fields[c.ComponentParameter.$Caption] = c.$Caption;
22
- });
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReportItemBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ReportItemBaseComponent, selector: "bnrc-report-item-base", inputs: { classNames: "classNames", context: "context", mo: "mo", allColumns: "allColumns", index: "index" }, outputs: { itemClick: "itemClick" }, host: { listeners: { "click": "onClick($event.target)" }, properties: { "class": "this.classNames2" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReportItemBaseComponent, decorators: [{
28
- type: Component,
29
- args: [{
30
- selector: 'bnrc-report-item-base',
31
- template: '',
32
- changeDetection: ChangeDetectionStrategy.OnPush,
33
- standalone: false
34
- }]
35
- }], ctorParameters: () => [], propDecorators: { itemClick: [{
36
- type: Output
37
- }], classNames2: [{
38
- type: HostBinding,
39
- args: ['class']
40
- }], classNames: [{
41
- type: Input
42
- }], context: [{
43
- type: Input
44
- }], mo: [{
45
- type: Input
46
- }], allColumns: [{
47
- type: Input
48
- }], index: [{
49
- type: Input
50
- }], onClick: [{
51
- type: HostListener,
52
- args: ['click', ['$event.target']]
53
- }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWl0ZW0tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvYWJzdHJhY3QtY2xhc3Nlcy9yZXBvcnQtaXRlbS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFlBQVksRUFFWix1QkFBdUIsRUFDMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBb0J2QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQWF0RDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBYkYsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFTaEMsVUFBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBS2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsMkNBQTJDLENBQUMsQ0FBQztRQUM5RyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV4RyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBaENRLHVCQUF1QjttR0FBdkIsdUJBQXVCLGdWQUp0QixFQUFFOzs0RkFJSCx1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxLQUFLO2lCQUNwQjt3REFFYSxTQUFTO3NCQUFsQixNQUFNO2dCQUNlLFdBQVc7c0JBQWhDLFdBQVc7dUJBQUMsT0FBTztnQkFDWCxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFJRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBU04sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBJbnB1dCxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgT25Jbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYmFyc2EtYXBpJztcclxuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgUmVwb3J0U2V0dGluZyB9IGZyb20gJy4vcmVwb3J0LWJhc2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFNldHRpbmdzIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBDb21wb25lbnRQYXJhbWV0ZXI6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBSZWxhdGVkRmllbGQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydEl0ZW1TZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBGaWVsZFNldHRpbmdzOiB7XHJcbiAgICAgICAgTW9EYXRhTGlzdDogQXJyYXk8RmllbGRTZXR0aW5ncz47XHJcbiAgICB9O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYm5yYy1yZXBvcnQtaXRlbS1iYXNlJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydEl0ZW1CYXNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZXMyOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBjbGFzc05hbWVzOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBjb250ZXh0OiB7XHJcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gICAgICAgIFNldHRpbmc6IFJlcG9ydFNldHRpbmc7XHJcbiAgICB9IHwgbnVsbDtcclxuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgYWxsQ29sdW1uczogYW55W107XHJcbiAgICBASW5wdXQoKSBpbmRleCA9IC0xO1xyXG4gICAgZmllbGRzOiBhbnk7XHJcbiAgICBwYXJhbWV0ZXJzOiBSZXBvcnRJdGVtU2V0dGluZyB8IG51bGw7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuZmllbGRzID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcclxuICAgIG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2suZW1pdCh7IGluZGV4OiB0aGlzLmluZGV4LCBtbzogdGhpcy5tbyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuY2xhc3NOYW1lczIgPSB0aGlzLmNsYXNzTmFtZXM7XHJcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpUm93LlBhcmFtZXRlcnMnKTtcclxuICAgICAgICBjb25zdCBmaWVsZFNldHRpbmdzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5wYXJhbWV0ZXJzLCAnRmllbGRTZXR0aW5ncy5Nb0RhdGFMaXN0JywgW10pO1xyXG5cclxuICAgICAgICBmaWVsZFNldHRpbmdzLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWVsZHNbYy5Db21wb25lbnRQYXJhbWV0ZXIuJENhcHRpb25dID0gYy4kQ2FwdGlvbjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=