barsa-novin-ray-core 0.0.2

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 (270) hide show
  1. package/README.md +25 -0
  2. package/esm2020/barsa-novin-ray-core.mjs +5 -0
  3. package/esm2020/lib/abstract-classes/application-base.mjs +24 -0
  4. package/esm2020/lib/abstract-classes/barsa-api.mjs +40 -0
  5. package/esm2020/lib/abstract-classes/field-base.mjs +167 -0
  6. package/esm2020/lib/abstract-classes/files-validation-helper.mjs +71 -0
  7. package/esm2020/lib/abstract-classes/form-base.mjs +101 -0
  8. package/esm2020/lib/abstract-classes/form-props.base.mjs +79 -0
  9. package/esm2020/lib/abstract-classes/form-toolbar-base.mjs +45 -0
  10. package/esm2020/lib/abstract-classes/index.mjs +21 -0
  11. package/esm2020/lib/abstract-classes/layout-item-base.mjs +33 -0
  12. package/esm2020/lib/abstract-classes/layout-panel-base.mjs +80 -0
  13. package/esm2020/lib/abstract-classes/models.mjs +172 -0
  14. package/esm2020/lib/abstract-classes/module-with-dynamic-components.mjs +2 -0
  15. package/esm2020/lib/abstract-classes/number-base.mjs +117 -0
  16. package/esm2020/lib/abstract-classes/page-base.mjs +97 -0
  17. package/esm2020/lib/abstract-classes/report-base.mjs +231 -0
  18. package/esm2020/lib/abstract-classes/report-item-base.mjs +53 -0
  19. package/esm2020/lib/abstract-classes/report-view-base.component.mjs +262 -0
  20. package/esm2020/lib/abstract-classes/system-base.mjs +24 -0
  21. package/esm2020/lib/auth-guard.mjs +37 -0
  22. package/esm2020/lib/barsa-novin-ray-core-routing.module.mjs +18 -0
  23. package/esm2020/lib/barsa-novin-ray-core.module.mjs +271 -0
  24. package/esm2020/lib/base-ulv-setting.component.mjs +37 -0
  25. package/esm2020/lib/base.component.mjs +59 -0
  26. package/esm2020/lib/base.module.mjs +28 -0
  27. package/esm2020/lib/constants.mjs +441 -0
  28. package/esm2020/lib/container.component.mjs +76 -0
  29. package/esm2020/lib/custom-route-reuse-strategy.mjs +32 -0
  30. package/esm2020/lib/date-services/date-hijri.service.mjs +127 -0
  31. package/esm2020/lib/date-services/date-info.mjs +2 -0
  32. package/esm2020/lib/date-services/date-miladi.service.mjs +124 -0
  33. package/esm2020/lib/date-services/date-shamsi.service.mjs +129 -0
  34. package/esm2020/lib/date-services/date.service.mjs +139 -0
  35. package/esm2020/lib/date-services/index.mjs +6 -0
  36. package/esm2020/lib/device.mjs +663 -0
  37. package/esm2020/lib/directives/anchor-scroll.directive.mjs +24 -0
  38. package/esm2020/lib/directives/attr-rtl.directive.mjs +35 -0
  39. package/esm2020/lib/directives/base.directive.mjs +51 -0
  40. package/esm2020/lib/directives/column-resizer.directive.mjs +39 -0
  41. package/esm2020/lib/directives/dynamic-command.directive.mjs +43 -0
  42. package/esm2020/lib/directives/ellipsify.directive.mjs +72 -0
  43. package/esm2020/lib/directives/field-binding.directive.mjs +17 -0
  44. package/esm2020/lib/directives/img-lazy.directive.mjs +75 -0
  45. package/esm2020/lib/directives/index.mjs +19 -0
  46. package/esm2020/lib/directives/intersection-observer.directive.mjs +49 -0
  47. package/esm2020/lib/directives/items-renderer.directive.mjs +59 -0
  48. package/esm2020/lib/directives/numbers-only-input.directive.mjs +26 -0
  49. package/esm2020/lib/directives/placeHolder.directive.mjs +15 -0
  50. package/esm2020/lib/directives/render-ulv-paging.directive.mjs +58 -0
  51. package/esm2020/lib/directives/render-ulv-viewer.directive.mjs +60 -0
  52. package/esm2020/lib/directives/table-resizer.directive.mjs +235 -0
  53. package/esm2020/lib/directives/ulv-command.directive.mjs +41 -0
  54. package/esm2020/lib/directives/until-inview.directive.mjs +51 -0
  55. package/esm2020/lib/dynamic-component/base-dynamic.component.mjs +89 -0
  56. package/esm2020/lib/dynamic-component/base-form-toolbaritem-props.mjs +50 -0
  57. package/esm2020/lib/dynamic-component/base-item-content-props.mjs +70 -0
  58. package/esm2020/lib/dynamic-component/base-view-content-props.mjs +26 -0
  59. package/esm2020/lib/dynamic-component/base-view-item-props.mjs +374 -0
  60. package/esm2020/lib/dynamic-component/base-view-props.mjs +127 -0
  61. package/esm2020/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +36 -0
  62. package/esm2020/lib/dynamic-component/dynamic-form.component.mjs +62 -0
  63. package/esm2020/lib/dynamic-component/dynamic-item.component.mjs +60 -0
  64. package/esm2020/lib/dynamic-component/index.mjs +10 -0
  65. package/esm2020/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +16 -0
  66. package/esm2020/lib/field-ui/field-ui.component.mjs +116 -0
  67. package/esm2020/lib/form/form.component.mjs +151 -0
  68. package/esm2020/lib/form-new/form-new.component.mjs +30 -0
  69. package/esm2020/lib/from-intersection-observer.mjs +53 -0
  70. package/esm2020/lib/global-error-handler.mjs +26 -0
  71. package/esm2020/lib/modal-root.component.mjs +31 -0
  72. package/esm2020/lib/not-found/not-found.component.mjs +16 -0
  73. package/esm2020/lib/pipes/barsa-icon-dict.pipe.mjs +18 -0
  74. package/esm2020/lib/pipes/bbb-translate.pipe.mjs +29 -0
  75. package/esm2020/lib/pipes/can-upload.pipe.mjs +30 -0
  76. package/esm2020/lib/pipes/context-menu.pipe.mjs +40 -0
  77. package/esm2020/lib/pipes/control-ui.pipe.mjs +31 -0
  78. package/esm2020/lib/pipes/convert-to-style.pipe.mjs +32 -0
  79. package/esm2020/lib/pipes/date-time-to-caption.pipe.mjs +34 -0
  80. package/esm2020/lib/pipes/fileinfo-count.pipe.mjs +20 -0
  81. package/esm2020/lib/pipes/filter-columns-by-details.pipe.mjs +20 -0
  82. package/esm2020/lib/pipes/filter-string.pipe.mjs +44 -0
  83. package/esm2020/lib/pipes/filter-tab.pipe.mjs +19 -0
  84. package/esm2020/lib/pipes/filter-toolbar-control.pipe.mjs +16 -0
  85. package/esm2020/lib/pipes/filter.pipe.mjs +33 -0
  86. package/esm2020/lib/pipes/find-column-by-db-name.pipe.mjs +17 -0
  87. package/esm2020/lib/pipes/fiori-icon.pipe.mjs +42 -0
  88. package/esm2020/lib/pipes/groupby.pipe.mjs +48 -0
  89. package/esm2020/lib/pipes/header-facet-value.pipe.mjs +22 -0
  90. package/esm2020/lib/pipes/index.mjs +33 -0
  91. package/esm2020/lib/pipes/list-count.pipe.mjs +17 -0
  92. package/esm2020/lib/pipes/merge-fields-to-columns.pipe.mjs +42 -0
  93. package/esm2020/lib/pipes/mo-info-ulv-data.pipe.mjs +24 -0
  94. package/esm2020/lib/pipes/mo-report-value-concat.pipe.mjs +35 -0
  95. package/esm2020/lib/pipes/mo-report-value.pipe.mjs +28 -0
  96. package/esm2020/lib/pipes/mo-value.pipe.mjs +31 -0
  97. package/esm2020/lib/pipes/multiple-groupby.pipe.mjs +97 -0
  98. package/esm2020/lib/pipes/numeral.pipe.mjs +40 -0
  99. package/esm2020/lib/pipes/picture-field-source.pipe.mjs +22 -0
  100. package/esm2020/lib/pipes/remove-newline.pipe.mjs +20 -0
  101. package/esm2020/lib/pipes/seperator-fix.pipe.mjs +23 -0
  102. package/esm2020/lib/pipes/sort.pipe.mjs +48 -0
  103. package/esm2020/lib/pipes/tlbButtons.pipe.mjs +58 -0
  104. package/esm2020/lib/pipes/total-summary.pipe.mjs +16 -0
  105. package/esm2020/lib/pipes/visible-value.pipe.mjs +24 -0
  106. package/esm2020/lib/portal-page/portal-page.component.mjs +13 -0
  107. package/esm2020/lib/redirect-home-guard.mjs +28 -0
  108. package/esm2020/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +33 -0
  109. package/esm2020/lib/report-container/report-container.component.mjs +52 -0
  110. package/esm2020/lib/resolvers/index.mjs +5 -0
  111. package/esm2020/lib/resolvers/portal-dynamic-page.resolver.mjs +49 -0
  112. package/esm2020/lib/resolvers/portal-form-page.resolver.mjs +18 -0
  113. package/esm2020/lib/resolvers/portal-page.resolver.mjs +30 -0
  114. package/esm2020/lib/resolvers/portal-report-page.resolver.mjs +37 -0
  115. package/esm2020/lib/root-page/root-page.component.mjs +21 -0
  116. package/esm2020/lib/root-portal/root-portal.component.mjs +51 -0
  117. package/esm2020/lib/services/api.service.mjs +60 -0
  118. package/esm2020/lib/services/barsa-dialog.service.mjs +80 -0
  119. package/esm2020/lib/services/breadcrumb.service.mjs +60 -0
  120. package/esm2020/lib/services/container.service.mjs +36 -0
  121. package/esm2020/lib/services/dynamic-component.service.mjs +55 -0
  122. package/esm2020/lib/services/form-panel.service.mjs +235 -0
  123. package/esm2020/lib/services/form.service.mjs +14 -0
  124. package/esm2020/lib/services/horizontal-layout.service.mjs +16 -0
  125. package/esm2020/lib/services/index.mjs +16 -0
  126. package/esm2020/lib/services/layout.service.mjs +42 -0
  127. package/esm2020/lib/services/log.service.mjs +50 -0
  128. package/esm2020/lib/services/network-status.service.mjs +15 -0
  129. package/esm2020/lib/services/portal.service.mjs +638 -0
  130. package/esm2020/lib/services/ui.service.mjs +23 -0
  131. package/esm2020/lib/services/ulvmain.service.mjs +594 -0
  132. package/esm2020/lib/services/upload.service.mjs +75 -0
  133. package/esm2020/public-api.mjs +33 -0
  134. package/fesm2015/barsa-novin-ray-core.mjs +9047 -0
  135. package/fesm2015/barsa-novin-ray-core.mjs.map +1 -0
  136. package/fesm2020/barsa-novin-ray-core.mjs +8945 -0
  137. package/fesm2020/barsa-novin-ray-core.mjs.map +1 -0
  138. package/index.d.ts +5 -0
  139. package/lib/abstract-classes/application-base.d.ts +53 -0
  140. package/lib/abstract-classes/barsa-api.d.ts +28 -0
  141. package/lib/abstract-classes/field-base.d.ts +81 -0
  142. package/lib/abstract-classes/files-validation-helper.d.ts +15 -0
  143. package/lib/abstract-classes/form-base.d.ts +59 -0
  144. package/lib/abstract-classes/form-props.base.d.ts +45 -0
  145. package/lib/abstract-classes/form-toolbar-base.d.ts +17 -0
  146. package/lib/abstract-classes/index.d.ts +20 -0
  147. package/lib/abstract-classes/layout-item-base.d.ts +15 -0
  148. package/lib/abstract-classes/layout-panel-base.d.ts +24 -0
  149. package/lib/abstract-classes/models.d.ts +660 -0
  150. package/lib/abstract-classes/module-with-dynamic-components.d.ts +4 -0
  151. package/lib/abstract-classes/number-base.d.ts +20 -0
  152. package/lib/abstract-classes/page-base.d.ts +31 -0
  153. package/lib/abstract-classes/report-base.d.ts +97 -0
  154. package/lib/abstract-classes/report-item-base.d.ts +33 -0
  155. package/lib/abstract-classes/report-view-base.component.d.ts +130 -0
  156. package/lib/abstract-classes/system-base.d.ts +45 -0
  157. package/lib/auth-guard.d.ts +12 -0
  158. package/lib/barsa-novin-ray-core-routing.module.d.ts +7 -0
  159. package/lib/barsa-novin-ray-core.module.d.ts +88 -0
  160. package/lib/base-ulv-setting.component.d.ts +18 -0
  161. package/lib/base.component.d.ts +15 -0
  162. package/lib/base.module.d.ts +13 -0
  163. package/lib/constants.d.ts +89 -0
  164. package/lib/container.component.d.ts +33 -0
  165. package/lib/custom-route-reuse-strategy.d.ts +11 -0
  166. package/lib/date-services/date-hijri.service.d.ts +40 -0
  167. package/lib/date-services/date-info.d.ts +15 -0
  168. package/lib/date-services/date-miladi.service.d.ts +39 -0
  169. package/lib/date-services/date-shamsi.service.d.ts +40 -0
  170. package/lib/date-services/date.service.d.ts +54 -0
  171. package/lib/date-services/index.d.ts +5 -0
  172. package/lib/device.d.ts +15 -0
  173. package/lib/directives/anchor-scroll.directive.d.ts +7 -0
  174. package/lib/directives/attr-rtl.directive.d.ts +13 -0
  175. package/lib/directives/base.directive.d.ts +13 -0
  176. package/lib/directives/column-resizer.directive.d.ts +13 -0
  177. package/lib/directives/dynamic-command.directive.d.ts +12 -0
  178. package/lib/directives/ellipsify.directive.d.ts +17 -0
  179. package/lib/directives/field-binding.directive.d.ts +7 -0
  180. package/lib/directives/img-lazy.directive.d.ts +20 -0
  181. package/lib/directives/index.d.ts +18 -0
  182. package/lib/directives/intersection-observer.directive.d.ts +17 -0
  183. package/lib/directives/items-renderer.directive.d.ts +17 -0
  184. package/lib/directives/numbers-only-input.directive.d.ts +9 -0
  185. package/lib/directives/placeHolder.directive.d.ts +6 -0
  186. package/lib/directives/render-ulv-paging.directive.d.ts +19 -0
  187. package/lib/directives/render-ulv-viewer.directive.d.ts +19 -0
  188. package/lib/directives/table-resizer.directive.d.ts +47 -0
  189. package/lib/directives/ulv-command.directive.d.ts +11 -0
  190. package/lib/directives/until-inview.directive.d.ts +17 -0
  191. package/lib/dynamic-component/base-dynamic.component.d.ts +26 -0
  192. package/lib/dynamic-component/base-form-toolbaritem-props.d.ts +28 -0
  193. package/lib/dynamic-component/base-item-content-props.d.ts +40 -0
  194. package/lib/dynamic-component/base-view-content-props.d.ts +11 -0
  195. package/lib/dynamic-component/base-view-item-props.d.ts +95 -0
  196. package/lib/dynamic-component/base-view-props.d.ts +65 -0
  197. package/lib/dynamic-component/dynamic-form-toolbar-item.component.d.ts +18 -0
  198. package/lib/dynamic-component/dynamic-form.component.d.ts +33 -0
  199. package/lib/dynamic-component/dynamic-item.component.d.ts +30 -0
  200. package/lib/dynamic-component/index.d.ts +9 -0
  201. package/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.d.ts +7 -0
  202. package/lib/field-ui/field-ui.component.d.ts +27 -0
  203. package/lib/form/form.component.d.ts +36 -0
  204. package/lib/form-new/form-new.component.d.ts +23 -0
  205. package/lib/from-intersection-observer.d.ts +7 -0
  206. package/lib/global-error-handler.d.ts +8 -0
  207. package/lib/modal-root.component.d.ts +15 -0
  208. package/lib/not-found/not-found.component.d.ts +8 -0
  209. package/lib/pipes/barsa-icon-dict.pipe.d.ts +9 -0
  210. package/lib/pipes/bbb-translate.pipe.d.ts +7 -0
  211. package/lib/pipes/can-upload.pipe.d.ts +8 -0
  212. package/lib/pipes/context-menu.pipe.d.ts +11 -0
  213. package/lib/pipes/control-ui.pipe.d.ts +9 -0
  214. package/lib/pipes/convert-to-style.pipe.d.ts +8 -0
  215. package/lib/pipes/date-time-to-caption.pipe.d.ts +9 -0
  216. package/lib/pipes/fileinfo-count.pipe.d.ts +10 -0
  217. package/lib/pipes/filter-columns-by-details.pipe.d.ts +8 -0
  218. package/lib/pipes/filter-string.pipe.d.ts +11 -0
  219. package/lib/pipes/filter-tab.pipe.d.ts +7 -0
  220. package/lib/pipes/filter-toolbar-control.pipe.d.ts +8 -0
  221. package/lib/pipes/filter.pipe.d.ts +10 -0
  222. package/lib/pipes/find-column-by-db-name.pipe.d.ts +8 -0
  223. package/lib/pipes/fiori-icon.pipe.d.ts +7 -0
  224. package/lib/pipes/groupby.pipe.d.ts +7 -0
  225. package/lib/pipes/header-facet-value.pipe.d.ts +8 -0
  226. package/lib/pipes/index.d.ts +32 -0
  227. package/lib/pipes/list-count.pipe.d.ts +8 -0
  228. package/lib/pipes/merge-fields-to-columns.pipe.d.ts +10 -0
  229. package/lib/pipes/mo-info-ulv-data.pipe.d.ts +7 -0
  230. package/lib/pipes/mo-report-value-concat.pipe.d.ts +9 -0
  231. package/lib/pipes/mo-report-value.pipe.d.ts +12 -0
  232. package/lib/pipes/mo-value.pipe.d.ts +9 -0
  233. package/lib/pipes/multiple-groupby.pipe.d.ts +23 -0
  234. package/lib/pipes/numeral.pipe.d.ts +9 -0
  235. package/lib/pipes/picture-field-source.pipe.d.ts +8 -0
  236. package/lib/pipes/remove-newline.pipe.d.ts +8 -0
  237. package/lib/pipes/seperator-fix.pipe.d.ts +7 -0
  238. package/lib/pipes/sort.pipe.d.ts +9 -0
  239. package/lib/pipes/tlbButtons.pipe.d.ts +9 -0
  240. package/lib/pipes/total-summary.pipe.d.ts +8 -0
  241. package/lib/pipes/visible-value.pipe.d.ts +8 -0
  242. package/lib/portal-page/portal-page.component.d.ts +6 -0
  243. package/lib/redirect-home-guard.d.ts +13 -0
  244. package/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.d.ts +14 -0
  245. package/lib/report-container/report-container.component.d.ts +24 -0
  246. package/lib/resolvers/index.d.ts +4 -0
  247. package/lib/resolvers/portal-dynamic-page.resolver.d.ts +12 -0
  248. package/lib/resolvers/portal-form-page.resolver.d.ts +8 -0
  249. package/lib/resolvers/portal-page.resolver.d.ts +12 -0
  250. package/lib/resolvers/portal-report-page.resolver.d.ts +12 -0
  251. package/lib/root-page/root-page.component.d.ts +10 -0
  252. package/lib/root-portal/root-portal.component.d.ts +14 -0
  253. package/lib/services/api.service.d.ts +18 -0
  254. package/lib/services/barsa-dialog.service.d.ts +31 -0
  255. package/lib/services/breadcrumb.service.d.ts +14 -0
  256. package/lib/services/container.service.d.ts +14 -0
  257. package/lib/services/dynamic-component.service.d.ts +13 -0
  258. package/lib/services/form-panel.service.d.ts +83 -0
  259. package/lib/services/form.service.d.ts +8 -0
  260. package/lib/services/horizontal-layout.service.d.ts +7 -0
  261. package/lib/services/index.d.ts +15 -0
  262. package/lib/services/layout.service.d.ts +23 -0
  263. package/lib/services/log.service.d.ts +17 -0
  264. package/lib/services/network-status.service.d.ts +7 -0
  265. package/lib/services/portal.service.d.ts +130 -0
  266. package/lib/services/ui.service.d.ts +14 -0
  267. package/lib/services/ulvmain.service.d.ts +178 -0
  268. package/lib/services/upload.service.d.ts +18 -0
  269. package/package.json +38 -0
  270. package/public-api.d.ts +29 -0
@@ -0,0 +1,97 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { from } from 'rxjs';
3
+ import { takeUntil, map, filter, tap, concatMap } from 'rxjs/operators';
4
+ import { BarsaApi } from './barsa-api';
5
+ import { ContainerComponent } from '../container.component';
6
+ import * as i0 from "@angular/core";
7
+ export class PageBaseComponent extends ContainerComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.hasRoute = true;
11
+ this.fullscreen = true;
12
+ }
13
+ ngAfterViewInit() {
14
+ super.ngAfterViewInit();
15
+ this.addModulesToDom();
16
+ }
17
+ addModulesToDom() {
18
+ this.getData$()
19
+ .pipe(filter((c) => c != null))
20
+ .subscribe((pageData) => {
21
+ this.renderPlaceHolders(pageData);
22
+ });
23
+ }
24
+ getData$() {
25
+ if (this.isRoot) {
26
+ return this._portalService.portalData$;
27
+ }
28
+ return this._activatedRoute.data.pipe(map((data) => data.pageData), takeUntil(this._onDestroy$));
29
+ }
30
+ renderPlaceHolders(pageData) {
31
+ this.pageData = pageData;
32
+ const modules = this.getModules(pageData);
33
+ this.addModulesToPage(modules);
34
+ }
35
+ preparePlaceholder(placeHolderElement, placeHolderName, pageData) {
36
+ // remove old attached component . when we use rxjs for update data
37
+ const hasChild = placeHolderElement.hasChildNodes();
38
+ if (hasChild) {
39
+ placeHolderElement.removeChild(placeHolderElement.childNodes[0]);
40
+ }
41
+ const placeHolders = this.getPlaceHolders(pageData);
42
+ const placeHolder = placeHolders.find((c) => c.Name === placeHolderName);
43
+ if (placeHolder != null) {
44
+ const modules = this.getModules(pageData);
45
+ const module = modules.find((c) => c.PlaceHolder.Id === placeHolder.Id);
46
+ if (module) {
47
+ const controlUi = this.getModuleControlUi(module.Component);
48
+ placeHolderElement.appendChild(controlUi);
49
+ }
50
+ }
51
+ else {
52
+ console.error('placeholder not found ' + placeHolderName);
53
+ }
54
+ }
55
+ getModuleControlUi(component) {
56
+ const controlUi = document.createElement(component.Selector);
57
+ controlUi.settings = component.Settings;
58
+ controlUi.activatedRoute = this._activatedRoute;
59
+ return controlUi;
60
+ }
61
+ addModulesToPage(modules) {
62
+ modules = modules.sort((a, b) => (Number(a.OrderNumber) > Number(b.OrderNumber) ? 1 : -1));
63
+ from(modules)
64
+ .pipe(takeUntil(this._onDestroy$), concatMap((module) => this.getComponentFactory(module.Component).pipe(tap((controlUi) => {
65
+ controlUi.instance.settings = module.Component.Settings;
66
+ controlUi.instance.activatedRoute = this._activatedRoute;
67
+ if (this.containerRef) {
68
+ this.containerRef.insert(controlUi.hostView);
69
+ }
70
+ else {
71
+ this._vcr.insert(controlUi.hostView);
72
+ }
73
+ }))))
74
+ .subscribe(() => this._cdr.detectChanges());
75
+ }
76
+ getComponentFactory(uiComponent) {
77
+ return this._portalService.getComponent(uiComponent.Module, uiComponent.ModuleFileName, uiComponent.Name, uiComponent.Selector, this._injector);
78
+ }
79
+ getPlaceHolders(pageData) {
80
+ const placeholders = BarsaApi.Common.Util.TryGetValue(pageData, 'Component.Settings.PlaceHolders.MoDataList', []);
81
+ return placeholders;
82
+ }
83
+ getModules(pageData) {
84
+ return BarsaApi.Common.Util.TryGetValue(pageData, 'ModuleList.MoDataList', []);
85
+ }
86
+ }
87
+ PageBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PageBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
88
+ PageBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PageBaseComponent, selector: "bnrc-page-base", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PageBaseComponent, decorators: [{
90
+ type: Component,
91
+ args: [{
92
+ selector: 'bnrc-page-base',
93
+ template: '',
94
+ changeDetection: ChangeDetectionStrategy.OnPush
95
+ }]
96
+ }] });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL3BhZ2UtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsSUFBSSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBTzVELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFMekQ7O1FBVUksYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixlQUFVLEdBQUcsSUFBSSxDQUFDO0tBeUdyQjtJQXRHRyxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ1MsZUFBZTtRQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFO2FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDUyxRQUFRO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMs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LFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50UmVmLCBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgbWFwLCBmaWx0ZXIsIHRhcCwgY29uY2F0TWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYmFyc2EtYXBpJztcbmltcG9ydCB7IE1vZHVsZURhdGFNb2RlbCwgUGFnZURhdGFNb2RlbCwgUGxhY2VIb2xkZXJEYXRhTW9kZWwsIFBvcnRhbERhdGFNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRhaW5lci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JucmMtcGFnZS1iYXNlJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUJhc2VDb21wb25lbnQgZXh0ZW5kcyBDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwb3J0YWxEYXRhJDogT2JzZXJ2YWJsZTxQb3J0YWxEYXRhTW9kZWw+O1xuICAgIHBvcnRhbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIGlzUm9vdDogYm9vbGVhbjtcbiAgICBoYXNSb3V0ZXJPdXRsZXQ6IFBsYWNlSG9sZGVyRGF0YU1vZGVsO1xuICAgIGhhc1JvdXRlID0gdHJ1ZTtcbiAgICBmdWxsc2NyZWVuID0gdHJ1ZTtcbiAgICBwYWdlRGF0YTogUGFnZURhdGFNb2RlbCB8IG51bGw7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICB0aGlzLmFkZE1vZHVsZXNUb0RvbSgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgYWRkTW9kdWxlc1RvRG9tKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldERhdGEkKClcbiAgICAgICAgICAgIC5waXBlKGZpbHRlcigoYykgPT4gYyAhPSBudWxsKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHBhZ2VEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJQbGFjZUhvbGRlcnMocGFnZURhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXREYXRhJCgpOiBPYnNlcnZhYmxlPFBvcnRhbERhdGFNb2RlbCB8IG51bGw+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNSb290KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9ydGFsU2VydmljZS5wb3J0YWxEYXRhJDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZhdGVkUm91dGUuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKChkYXRhKSA9PiBkYXRhLnBhZ2VEYXRhKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW5kZXJQbGFjZUhvbGRlcnMocGFnZURhdGE6IFBhZ2VEYXRhTW9kZWwgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZURhdGEgPSBwYWdlRGF0YTtcbiAgICAgICAgY29uc3QgbW9kdWxlcyA9IHRoaXMuZ2V0TW9kdWxlcyhwYWdlRGF0YSk7XG4gICAgICAgIHRoaXMuYWRkTW9kdWxlc1RvUGFnZShtb2R1bGVzKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHByZXBhcmVQbGFjZWhvbGRlcihcbiAgICAgICAgcGxhY2VIb2xkZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQsXG4gICAgICAgIHBsYWNlSG9sZGVyTmFtZTogc3RyaW5nLFxuICAgICAgICBwYWdlRGF0YTogUGFnZURhdGFNb2RlbCB8IG51bGxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgLy8gcmVtb3ZlIG9sZCBhdHRhY2hlZCBjb21wb25lbnQgLiB3aGVuIHdlIHVzZSByeGpzIGZvciB1cGRhdGUgZGF0YVxuICAgICAgICBjb25zdCBoYXNDaGlsZCA9IHBsYWNlSG9sZGVyRWxlbWVudC5oYXNDaGlsZE5vZGVzKCk7XG4gICAgICAgIGlmIChoYXNDaGlsZCkge1xuICAgICAgICAgICAgcGxhY2VIb2xkZXJFbGVtZW50LnJlbW92ZUNoaWxkKHBsYWNlSG9sZGVyRWxlbWVudC5jaGlsZE5vZGVzWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwbGFjZUhvbGRlcnMgPSB0aGlzLmdldFBsYWNlSG9sZGVycyhwYWdlRGF0YSk7XG4gICAgICAgIGNvbnN0IHBsYWNlSG9sZGVyID0gcGxhY2VIb2xkZXJzLmZpbmQoKGMpID0+IGMuTmFtZSA9PT0gcGxhY2VIb2xkZXJOYW1lKTtcbiAgICAgICAgaWYgKHBsYWNlSG9sZGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vZHVsZXMgPSB0aGlzLmdldE1vZHVsZXMocGFnZURhdGEpO1xuICAgICAgICAgICAgY29uc3QgbW9kdWxlID0gbW9kdWxlcy5maW5kKChjKSA9PiBjLlBsYWNlSG9sZGVyLklkID09PSBwbGFjZUhvbGRlci5JZCk7XG4gICAgICAgICAgICBpZiAobW9kdWxlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbFVpID0gdGhpcy5nZXRNb2R1bGVDb250cm9sVWkobW9kdWxlLkNvbXBvbmVudCk7XG4gICAgICAgICAgICAgICAgcGxhY2VIb2xkZXJFbGVtZW50LmFwcGVuZENoaWxkKGNvbnRyb2xVaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdwbGFjZWhvbGRlciBub3QgZm91bmQgJyArIHBsYWNlSG9sZGVyTmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldE1vZHVsZUNvbnRyb2xVaShjb21wb25lbnQpOiBhbnkge1xuICAgICAgICBjb25zdCBjb250cm9sVWkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGNvbXBvbmVudC5TZWxlY3RvcikgYXMgYW55O1xuICAgICAgICBjb250cm9sVWkuc2V0dGluZ3MgPSBjb21wb25lbnQuU2V0dGluZ3M7XG4gICAgICAgIGNvbnRyb2xVaS5hY3RpdmF0ZWRSb3V0ZSA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlO1xuICAgICAgICByZXR1cm4gY29udHJvbFVpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgYWRkTW9kdWxlc1RvUGFnZShtb2R1bGVzOiBBcnJheTxhbnk+KTogdm9pZCB7XG4gICAgICAgIG1vZHVsZXMgPSBtb2R1bGVzLnNvcnQoKGEsIGIpID0+IChOdW1iZXIoYS5PcmRlck51bWJlcikgPiBOdW1iZXIoYi5PcmRlck51bWJlcikgPyAxIDogLTEpKTtcbiAgICAgICAgZnJvbShtb2R1bGVzKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGNvbmNhdE1hcCgobW9kdWxlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldENvbXBvbmVudEZhY3RvcnkobW9kdWxlLkNvbXBvbmVudCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoY29udHJvbFVpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFVpLmluc3RhbmNlLnNldHRpbmdzID0gbW9kdWxlLkNvbXBvbmVudC5TZXR0aW5ncztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVWkuaW5zdGFuY2UuYWN0aXZhdGVkUm91dGUgPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXJSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJSZWYuaW5zZXJ0KGNvbnRyb2xVaS5ob3N0Vmlldyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmNyLmluc2VydChjb250cm9sVWkuaG9zdFZpZXcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCkpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50RmFjdG9yeSh1aUNvbXBvbmVudDoge1xuICAgICAgICBTZWxlY3Rvcjogc3RyaW5nO1xuICAgICAgICBOYW1lOiBzdHJpbmc7XG4gICAgICAgIE1vZHVsZTogc3RyaW5nO1xuICAgICAgICBNb2R1bGVGaWxlTmFtZTogc3RyaW5nO1xuICAgIH0pOiBPYnNlcnZhYmxlPENvbXBvbmVudFJlZjxhbnk+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wb3J0YWxTZXJ2aWNlLmdldENvbXBvbmVudChcbiAgICAgICAgICAgIHVpQ29tcG9uZW50Lk1vZHVsZSxcbiAgICAgICAgICAgIHVpQ29tcG9uZW50Lk1vZHVsZUZpbGVOYW1lLFxuICAgICAgICAgICAgdWlDb21wb25lbnQuTmFtZSxcbiAgICAgICAgICAgIHVpQ29tcG9uZW50LlNlbGVjdG9yLFxuICAgICAgICAgICAgdGhpcy5faW5qZWN0b3JcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0UGxhY2VIb2xkZXJzKHBhZ2VEYXRhKTogQXJyYXk8UGxhY2VIb2xkZXJEYXRhTW9kZWw+IHtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgICAgICBwYWdlRGF0YSxcbiAgICAgICAgICAgICdDb21wb25lbnQuU2V0dGluZ3MuUGxhY2VIb2xkZXJzLk1vRGF0YUxpc3QnLFxuICAgICAgICAgICAgW11cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHBsYWNlaG9sZGVycztcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldE1vZHVsZXMocGFnZURhdGEpOiBBcnJheTxNb2R1bGVEYXRhTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHBhZ2VEYXRhLCAnTW9kdWxlTGlzdC5Nb0RhdGFMaXN0JywgW10pO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,231 @@
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, 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.fullscreen$ = this._ulvMainService.fullscreen$;
46
+ this.deviceSize$ = this._portalService.deviceSize$;
47
+ this.hideToolbar$ = this._ulvMainService.hideToolbar$;
48
+ this.newInlineEditMo$ = this._ulvMainService.newInlineEditMo$;
49
+ this.conditionalFormats$ = this._ulvMainService.conditionalFormats$;
50
+ this.cartableTemplates$ = this._ulvMainService.cartableTemplates$;
51
+ this.cartableChildsMo$ = this._ulvMainService.cartableChildsMo$;
52
+ this.title$ = this._ulvMainService.title$.pipe(pluck('text'));
53
+ this.menuItems$ = this._ulvMainService.menuItems$;
54
+ this.pagingSetting$ = this._ulvMainService.pagingSetting$;
55
+ this.toolbarEnable$ = this._ulvMainService.enable$;
56
+ this.mask$ = this._ulvMainService.viwerMask$.pipe(debounceTime(200));
57
+ this.selectedMo$ = this._ulvMainService.moDataList$.pipe(map((items) => items.find((c) => c.$IsChecked)));
58
+ this.moDataList$ = this._ulvMainService.moDataList$.pipe(tap((items) => this._setAllChecked(items)));
59
+ this.context.on({
60
+ MoDataListChanged: this._moDataListChanged.bind(this),
61
+ GridSettingChanged: this._gridSettingChanged.bind(this)
62
+ });
63
+ // in gheire faal bood chon moshkel eijad mikard
64
+ // va dar ulv event baiad raise shavad
65
+ // ke data amade shode va ulvmainservice an ra begirad.gozaresh mortabet
66
+ this._ulvMainService.reSetMoDataList(this.context.moDataList);
67
+ let gridSetting = this.defaultGridSetting;
68
+ if (this.context.GetGridSetting) {
69
+ gridSetting = this.context.GetGridSetting() || this.defaultGridSetting;
70
+ }
71
+ this._setVisibleColumns();
72
+ gridSetting.SortSettingList || (gridSetting.SortSettingList = []);
73
+ this.updateGridSetting(gridSetting, false, false);
74
+ this.allColumns = this.context.allColumns || [];
75
+ this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters', null);
76
+ this.id = getUniqueId(4);
77
+ this.itemSelector = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUiRow.Selector');
78
+ if (!this.itemSelector) {
79
+ console.warn('no selector defined for report item row template.');
80
+ }
81
+ this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters');
82
+ const fieldSettings = BarsaApi.Common.Util.TryGetValue(this.parameters, 'FieldSettings.MoDataList', []);
83
+ fieldSettings.forEach((c) => {
84
+ this.fields[c.ComponentParameter.$Caption] = c.$Caption;
85
+ });
86
+ }
87
+ ngAfterViewInit() {
88
+ super.ngAfterViewInit();
89
+ this.deviceSize$
90
+ .pipe(takeUntil(this._onDestroy$), tap((deviceSize) => this._deviceSizeChanged(deviceSize)))
91
+ .subscribe();
92
+ this._portalService.windowResize$.pipe(takeUntil(this._onDestroy$)).subscribe(() => this._windowResized());
93
+ this.context?.fireEvent('afterrender', this);
94
+ }
95
+ ngOnDestroy() {
96
+ super.ngOnDestroy();
97
+ this.context.un('MoDataListChanged', this._moDataListChanged);
98
+ this.context.un('GridSettingChanged', this._gridSettingChanged);
99
+ }
100
+ _gridSettingChanged(setting) {
101
+ this.gridSettingSource.next(setting);
102
+ }
103
+ _moDataListChanged(moDataList) {
104
+ this._ulvMainService.reSetMoDataList(moDataList);
105
+ }
106
+ _setAllChecked(items) {
107
+ this._allCheckedSource.next(!items.some((c) => !c.$IsChecked));
108
+ }
109
+ _handleColumnsResized(e) {
110
+ const gridSetting = this.gridSettingSource.getValue();
111
+ const { columns, resized } = e;
112
+ const colList = gridSetting.ColSettingList;
113
+ resized.forEach((column1) => {
114
+ const resizedColumn = columns.find((c) => c.Name === column1.name);
115
+ const column = colList.find((c) => c.Name === resizedColumn?.Name);
116
+ if (column) {
117
+ column.Width = column1.width;
118
+ }
119
+ else if (resizedColumn) {
120
+ colList.push({ IsHidden: resizedColumn.Hidden, Name: resizedColumn.Name, Width: column1.width });
121
+ }
122
+ });
123
+ this.updateGridSetting(gridSetting, false);
124
+ this._setVisibleColumns();
125
+ }
126
+ _setVisibleColumns() {
127
+ const columns = GetAllColumnsSorted(this.context);
128
+ this._visibleColumnsSource.next(columns.filter((c) => !c.Hidden));
129
+ }
130
+ applyGroupby() {
131
+ const sortList = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.GridSetting.SortSettingList', []);
132
+ this.groupbySource.next(sortList.filter((c) => c.IsGrouped));
133
+ }
134
+ _raiseRowClick(index, mo) {
135
+ this.context?.fireEvent('rowdblclick', this.context, index, mo);
136
+ }
137
+ /* eslint-disable */
138
+ _deviceSizeChanged(_) { }
139
+ _windowResized() { }
140
+ _openMo(mo, i) {
141
+ this._raiseRowClick(i, mo);
142
+ }
143
+ updateGridSetting(setting, isSort = false, raiseEvent = true) {
144
+ if (!setting) {
145
+ return;
146
+ }
147
+ this.context.Setting.View.GridSetting = setting;
148
+ this.gridSettingSource.next(setting);
149
+ this.applyGroupby();
150
+ if (isSort) {
151
+ setting.Event = 'SortChange';
152
+ }
153
+ else {
154
+ setting.Event = '';
155
+ }
156
+ this._deviceSizeChanged(this._portalService.deviceSize);
157
+ if (raiseEvent) {
158
+ this.context.fireEvent('UserSettingChange', this.context, setting);
159
+ }
160
+ }
161
+ _ulvCommandClicked(mo, index) {
162
+ this._removeCheckedAll();
163
+ this._select(mo, index);
164
+ }
165
+ _checkedAll() {
166
+ const moDataList = this.moDataList;
167
+ moDataList.forEach((mo) => (mo.$IsChecked = true));
168
+ this._ulvMainService.reSetMoDataList();
169
+ this.context.fireEvent('rowSelectAll', this.context);
170
+ }
171
+ _removeCheckedAll() {
172
+ this._deselctAll();
173
+ this.context.fireEvent('rowDeselectAll', this.context);
174
+ }
175
+ _deselctAll() {
176
+ const moDataList = this.moDataList;
177
+ moDataList.forEach((mo) => (mo.$IsChecked = false));
178
+ this._ulvMainService.reSetMoDataList();
179
+ }
180
+ _deselect(mo, index) {
181
+ mo.$IsChecked = false;
182
+ this._ulvMainService.reSetMoDataList();
183
+ this.context.fireEvent('rowdeselect', this.context, index, mo);
184
+ return mo;
185
+ }
186
+ _select(mo, index) {
187
+ // this._deselctAll();
188
+ mo.$IsChecked = true;
189
+ this._ulvMainService.reSetMoDataList();
190
+ this.context.fireEvent('rowselect', this.context, index, mo);
191
+ return mo;
192
+ }
193
+ _doCheckedAll(checked) {
194
+ if (checked) {
195
+ this._checkedAll();
196
+ }
197
+ else {
198
+ this._removeCheckedAll();
199
+ }
200
+ }
201
+ _getSelected() {
202
+ const selectedMo = this.moDataList.find((mo) => mo.$IsChecked);
203
+ if (!selectedMo) {
204
+ return null;
205
+ }
206
+ selectedMo.json = selectedMo;
207
+ return selectedMo;
208
+ }
209
+ refreshContextMoDataList(moDataList) {
210
+ this.context.fireEvent('RefreshContextMoDataList', moDataList);
211
+ }
212
+ }
213
+ ReportBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ReportBaseComponent, deps: [{ token: i1.PortalService }, { token: i2.UlvMainService }], target: i0.ɵɵFactoryTarget.Component });
214
+ ReportBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", 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 });
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ReportBaseComponent, decorators: [{
216
+ type: Component,
217
+ args: [{
218
+ selector: 'bnrc-report-base',
219
+ template: '',
220
+ changeDetection: ChangeDetectionStrategy.OnPush
221
+ }]
222
+ }], ctorParameters: function () { return [{ type: i1.PortalService }, { type: i2.UlvMainService }]; }, propDecorators: { context: [{
223
+ type: Input
224
+ }], currentPage: [{
225
+ type: Input
226
+ }], pageChange: [{
227
+ type: Output
228
+ }], pageSizeChange: [{
229
+ type: Output
230
+ }] } });
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvcmVwb3J0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFJTix1QkFBdUIsRUFDMUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUF3QnZDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBcURsRCxZQUFzQixjQUE2QixFQUFZLGVBQStCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUE5Q3BGLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RCx1QkFBa0IsR0FBRztZQUNqQixjQUFjLEVBQUUsRUFBRTtZQUNsQixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsRUFBRTtZQUNuQixNQUFNLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFLRixpQkFBWSxHQUF5RSxJQUFJLENBQUM7UUEyQmhGLDBCQUFxQixHQUFHLElBQUksZUFB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QUwvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDtpSUFFWSxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIElucHV0LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT3V0cHV0LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgcGx1Y2ssIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2V0QWxsQ29sdW1uc1NvcnRlZCwgZ2V0VW5pcXVlSWQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUG9ydGFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BvcnRhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFVsdk1haW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdWx2bWFpbi5zZXJ2aWNlJztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9iYXJzYS1hcGknO1xuaW1wb3J0IHtcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIEdyaWRTZXR0aW5nLFxuICAgIENvbFNldHRpbmcsXG4gICAgUmVwb3J0Vmlld0NvbHVtbixcbiAgICBTb3J0U2V0dGluZyxcbiAgICBNZW51SXRlbSxcbiAgICBQYWdpbmdTZXR0aW5nLFxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcbiAgICBjb2x1bW5zUmVzaXplZEV2ZW50QXJncyxcbiAgICBGb3JtU2V0dGluZ1xufSBmcm9tICcuL21vZGVscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0U2V0dGluZyB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIElkOiBzdHJpbmc7XG4gICAgRXh0cmE6IGFueTtcbn1cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYm5yYy1yZXBvcnQtYmFzZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydEJhc2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICBTZXR0aW5nOiBSZXBvcnRTZXR0aW5nO1xuICAgIH07XG4gICAgQElucHV0KCkgY3VycmVudFBhZ2U6IG51bWJlcjtcblxuICAgIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBkZWZhdWx0R3JpZFNldHRpbmcgPSB7XG4gICAgICAgIENvbFNldHRpbmdMaXN0OiBbXSxcbiAgICAgICAgQXV0b1NpemVDb2x1bW5zOiBmYWxzZSxcbiAgICAgICAgU29ydFNldHRpbmdMaXN0OiBbXSxcbiAgICAgICAgSGlkZGVuOiB0cnVlXG4gICAgfTtcbiAgICBpdGVtU2VsZWN0b3I6IHN0cmluZztcbiAgICBhbGxDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XG4gICAgaWQ6IHN0cmluZztcblxuICAgIHNvcnRTZXR0aW5nczogeyBJc0dyb3VwZWQ6IGJvb2xlYW47IE5hbWU6IHN0cmluZzsgU29ydERpcmVjdGlvbjogc3RyaW5nIH1bXSB8IG51bGwgPSBudWxsO1xuICAgIHBhcmFtZXRlcnM6IGFueTtcbiAgICBmaWVsZHM6IGFueTtcbiAgICBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuXG4gICAgdmlzaWJsZUNvbHVtbnMkOiBPYnNlcnZhYmxlPFJlcG9ydFZpZXdDb2x1bW5bXT47XG4gICAgc2VhcmNoVGVybSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBtb0RhdGFMaXN0JDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+O1xuICAgIGdyaWRTZXR0aW5nJDogT2JzZXJ2YWJsZTxHcmlkU2V0dGluZz47XG4gICAgZ3JvdXBieSQ6IE9ic2VydmFibGU8U29ydFNldHRpbmdbXT47XG4gICAgYWxsQ2hlY2tlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcGFnaW5nU2V0dGluZyQ6IE9ic2VydmFibGU8UGFnaW5nU2V0dGluZyB8IG51bGw+O1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XG4gICAgbWFzayQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgdGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgaW5EaWFsb2ckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGZ1bGxzY3JlZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIG1lbnVJdGVtcyQ6IE9ic2VydmFibGU8TWVudUl0ZW1bXT47XG4gICAgdG9vbGJhckJ1dHRvbnMkOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgICB0b29sYmFyRW5hYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoaWRlVG9vbGJhciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgc2VsZWN0ZWRNbyQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbCB8IHVuZGVmaW5lZD47XG4gICAgY29uZGl0aW9uYWxGb3JtYXRzJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgbmV3SW5saW5lRWRpdE1vJDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbD47XG4gICAgY2FydGFibGVUZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogRm9ybVNldHRpbmcgfSB8IG51bGw+O1xuICAgIGNhcnRhYmxlQ2hpbGRzTW8kOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogTWV0YW9iamVjdERhdGFNb2RlbCB9IHwgbnVsbD47XG5cbiAgICBwcm90ZWN0ZWQgX3Zpc2libGVDb2x1bW5zU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZXBvcnRWaWV3Q29sdW1uW10+KFtdKTtcbiAgICBwcm90ZWN0ZWQgc2VhcmNoVGVybVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJvdGVjdGVkIGdyaWRTZXR0aW5nU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxHcmlkU2V0dGluZz4odGhpcy5kZWZhdWx0R3JpZFNldHRpbmcpO1xuICAgIHByb3RlY3RlZCBncm91cGJ5U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTb3J0U2V0dGluZ1tdPihbXSk7XG4gICAgcHJpdmF0ZSBfYWxsQ2hlY2tlZFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLCBwcm90ZWN0ZWQgX3Vsdk1haW5TZXJ2aWNlOiBVbHZNYWluU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnZpc2libGVDb2x1bW5zJCA9IHRoaXMuX3Zpc2libGVDb2x1bW5zU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLnNlYXJjaFRlcm0kID0gdGhpcy5zZWFyY2hUZXJtU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nJCA9IHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuZ3JvdXBieSQgPSB0aGlzLmdyb3VwYnlTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuYWxsQ2hlY2tlZCQgPSB0aGlzLl9hbGxDaGVja2VkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLmZpZWxkcyA9IHt9O1xuICAgICAgICB0aGlzLnRvb2xiYXJCdXR0b25zJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnRvb2xiYXJCdXR0b25zJDtcbiAgICB9XG4gICAgZ2V0IG1vRGF0YUxpc3QoKTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm1vRGF0YUxpc3RTb3VyY2UuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY29udGV4dC5yZW5kZXJlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaW5EaWFsb2ckID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaW5EaWFsb2ckO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW4kID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuZnVsbHNjcmVlbiQ7XG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkO1xuICAgICAgICB0aGlzLmhpZGVUb29sYmFyJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVUb29sYmFyJDtcbiAgICAgICAgdGhpcy5uZXdJbmxpbmVFZGl0TW8kID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubmV3SW5saW5lRWRpdE1vJDtcbiAgICAgICAgdGhpcy5jb25kaXRpb25hbEZvcm1hdHMkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuY29uZGl0aW9uYWxGb3JtYXRzJDtcbiAgICAgICAgdGhpcy5jYXJ0YWJsZVRlbXBsYXRlcyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5jYXJ0YWJsZVRlbXBsYXRlcyQ7XG4gICAgICAgIHRoaXMuY2FydGFibGVDaGlsZHNNbyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5jYXJ0YWJsZUNoaWxkc01vJDtcbiAgICAgICAgdGhpcy50aXRsZSQgPSB0aGlzLl91bHZNYWluU2VydmljZS50aXRsZSQucGlwZShwbHVjaygndGV4dCcpKTtcbiAgICAgICAgdGhpcy5tZW51SXRlbXMkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubWVudUl0ZW1zJDtcbiAgICAgICAgdGhpcy5wYWdpbmdTZXR0aW5nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnBhZ2luZ1NldHRpbmckO1xuICAgICAgICB0aGlzLnRvb2xiYXJFbmFibGUkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuZW5hYmxlJDtcbiAgICAgICAgdGhpcy5tYXNrJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnZpd2VyTWFzayQucGlwZShkZWJvdW5jZVRpbWUoMjAwKSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNbyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5tb0RhdGFMaXN0JC5waXBlKG1hcCgoaXRlbXMpID0+IGl0ZW1zLmZpbmQoKGMpID0+IGMuJElzQ2hlY2tlZCkpKTtcbiAgICAgICAgdGhpcy5tb0RhdGFMaXN0JCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm1vRGF0YUxpc3QkLnBpcGUodGFwKChpdGVtcykgPT4gdGhpcy5fc2V0QWxsQ2hlY2tlZChpdGVtcykpKTtcbiAgICAgICAgdGhpcy5jb250ZXh0Lm9uKHtcbiAgICAgICAgICAgIE1vRGF0YUxpc3RDaGFuZ2VkOiB0aGlzLl9tb0RhdGFMaXN0Q2hhbmdlZC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgR3JpZFNldHRpbmdDaGFuZ2VkOiB0aGlzLl9ncmlkU2V0dGluZ0NoYW5nZWQuYmluZCh0aGlzKVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gaW4gZ2hlaXJlIGZhYWwgYm9vZCBjaG9uIG1vc2hrZWwgZWlqYWQgbWlrYXJkXG4gICAgICAgIC8vIHZhIGRhciB1bHYgZXZlbnQgYmFpYWQgcmFpc2Ugc2hhdmFkXG4gICAgICAgIC8vIGtlIGRhdGEgYW1hZGUgc2hvZGUgdmEgdWx2bWFpbnNlcnZpY2UgYW4gcmEgYmVnaXJhZC5nb3phcmVzaCBtb3J0YWJldFxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QodGhpcy5jb250ZXh0Lm1vRGF0YUxpc3QpO1xuICAgICAgICBsZXQgZ3JpZFNldHRpbmcgPSB0aGlzLmRlZmF1bHRHcmlkU2V0dGluZztcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dC5HZXRHcmlkU2V0dGluZykge1xuICAgICAgICAgICAgZ3JpZFNldHRpbmcgPSB0aGlzLmNvbnRleHQuR2V0R3JpZFNldHRpbmcoKSB8fCB0aGlzLmRlZmF1bHRHcmlkU2V0dGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NldFZpc2libGVDb2x1bW5zKCk7XG5cbiAgICAgICAgZ3JpZFNldHRpbmcuU29ydFNldHRpbmdMaXN0IHx8PSBbXTtcbiAgICAgICAgdGhpcy51cGRhdGVHcmlkU2V0dGluZyhncmlkU2V0dGluZywgZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5hbGxDb2x1bW5zID0gdGhpcy5jb250ZXh0LmFsbENvbHVtbnMgfHwgW107XG4gICAgICAgIHRoaXMucGFyYW1ldGVycyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzJyxcbiAgICAgICAgICAgIG51bGxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5pZCA9IGdldFVuaXF1ZUlkKDQpO1xuXG4gICAgICAgIHRoaXMuaXRlbVNlbGVjdG9yID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpUm93LlNlbGVjdG9yJyk7XG4gICAgICAgIGlmICghdGhpcy5pdGVtU2VsZWN0b3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybignbm8gc2VsZWN0b3IgZGVmaW5lZCBmb3IgcmVwb3J0IGl0ZW0gcm93IHRlbXBsYXRlLicpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFyYW1ldGVycyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzJyk7XG4gICAgICAgIGNvbnN0IGZpZWxkU2V0dGluZ3MgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLnBhcmFtZXRlcnMsICdGaWVsZFNldHRpbmdzLk1vRGF0YUxpc3QnLCBbXSk7XG5cbiAgICAgICAgZmllbGRTZXR0aW5ncy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkc1tjLkNvbXBvbmVudFBhcmFtZXRlci4kQ2FwdGlvbl0gPSBjLiRDYXB0aW9uO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICB0YXAoKGRldmljZVNpemUpID0+IHRoaXMuX2RldmljZVNpemVDaGFuZ2VkKGRldmljZVNpemUpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLndpbmRvd1Jlc2l6ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl93aW5kb3dSZXNpemVkKCkpO1xuICAgICAgICB0aGlzLmNvbnRleHQ/LmZpcmVFdmVudCgnYWZ0ZXJyZW5kZXInLCB0aGlzKTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuY29udGV4dC51bignTW9EYXRhTGlzdENoYW5nZWQnLCB0aGlzLl9tb0RhdGFMaXN0Q2hhbmdlZCk7XG4gICAgICAgIHRoaXMuY29udGV4dC51bignR3JpZFNldHRpbmdDaGFuZ2VkJywgdGhpcy5fZ3JpZFNldHRpbmdDaGFuZ2VkKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9ncmlkU2V0dGluZ0NoYW5nZWQoc2V0dGluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nU291cmNlLm5leHQoc2V0dGluZyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfbW9EYXRhTGlzdENoYW5nZWQobW9EYXRhTGlzdCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QobW9EYXRhTGlzdCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0QWxsQ2hlY2tlZChpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FsbENoZWNrZWRTb3VyY2UubmV4dCghaXRlbXMuc29tZSgoYykgPT4gIWMuJElzQ2hlY2tlZCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfaGFuZGxlQ29sdW1uc1Jlc2l6ZWQoZTogY29sdW1uc1Jlc2l6ZWRFdmVudEFyZ3MpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZ3JpZFNldHRpbmc6IEdyaWRTZXR0aW5nID0gdGhpcy5ncmlkU2V0dGluZ1NvdXJjZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCB7IGNvbHVtbnMsIHJlc2l6ZWQgfSA9IGU7XG4gICAgICAgIGNvbnN0IGNvbExpc3Q6IENvbFNldHRpbmdbXSA9IGdyaWRTZXR0aW5nLkNvbFNldHRpbmdMaXN0O1xuICAgICAgICByZXNpemVkLmZvckVhY2goKGNvbHVtbjEpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc2l6ZWRDb2x1bW4gPSBjb2x1bW5zLmZpbmQoKGMpID0+IGMuTmFtZSA9PT0gY29sdW1uMS5uYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbExpc3QuZmluZCgoYykgPT4gYy5OYW1lID09PSByZXNpemVkQ29sdW1uPy5OYW1lKTtcbiAgICAgICAgICAgIGlmIChjb2x1bW4pIHtcbiAgICAgICAgICAgICAgICBjb2x1bW4uV2lkdGggPSBjb2x1bW4xLndpZHRoO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNpemVkQ29sdW1uKSB7XG4gICAgICAgICAgICAgICAgY29sTGlzdC5wdXNoKHsgSXNIaWRkZW46IHJlc2l6ZWRDb2x1bW4uSGlkZGVuLCBOYW1lOiByZXNpemVkQ29sdW1uLk5hbWUsIFdpZHRoOiBjb2x1bW4xLndpZHRoIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51cGRhdGVHcmlkU2V0dGluZyhncmlkU2V0dGluZywgZmFsc2UpO1xuICAgICAgICB0aGlzLl9zZXRWaXNpYmxlQ29sdW1ucygpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFZpc2libGVDb2x1bW5zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gR2V0QWxsQ29sdW1uc1NvcnRlZCh0aGlzLmNvbnRleHQpO1xuICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uc1NvdXJjZS5uZXh0KGNvbHVtbnMuZmlsdGVyKChjKSA9PiAhYy5IaWRkZW4pKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGFwcGx5R3JvdXBieSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc29ydExpc3Q6IFNvcnRTZXR0aW5nW10gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgICAgICdTZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcuU29ydFNldHRpbmdMaXN0JyxcbiAgICAgICAgICAgIFtdXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZ3JvdXBieVNvdXJjZS5uZXh0KHNvcnRMaXN0LmZpbHRlcigoYykgPT4gYy5Jc0dyb3VwZWQpKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yYWlzZVJvd0NsaWNrKGluZGV4LCBtbyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQ/LmZpcmVFdmVudCgncm93ZGJsY2xpY2snLCB0aGlzLmNvbnRleHQsIGluZGV4LCBtbyk7XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgcHJvdGVjdGVkIF9kZXZpY2VTaXplQ2hhbmdlZChfOiBzdHJpbmcpOiB2b2lkIHt9XG4gICAgcHJvdGVjdGVkIF93aW5kb3dSZXNpemVkKCk6IHZvaWQge31cblxuICAgIHByb3RlY3RlZCBfb3Blbk1vKG1vLCBpKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JhaXNlUm93Q2xpY2soaSwgbW8pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVHcmlkU2V0dGluZyhzZXR0aW5nLCBpc1NvcnQgPSBmYWxzZSwgcmFpc2VFdmVudCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFzZXR0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0LlNldHRpbmcuVmlldy5HcmlkU2V0dGluZyA9IHNldHRpbmc7XG4gICAgICAgIHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UubmV4dChzZXR0aW5nKTtcbiAgICAgICAgdGhpcy5hcHBseUdyb3VwYnkoKTtcbiAgICAgICAgaWYgKGlzU29ydCkge1xuICAgICAgICAgICAgc2V0dGluZy5FdmVudCA9ICdTb3J0Q2hhbmdlJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldHRpbmcuRXZlbnQgPSAnJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kZXZpY2VTaXplQ2hhbmdlZCh0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUpO1xuICAgICAgICBpZiAocmFpc2VFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnVXNlclNldHRpbmdDaGFuZ2UnLCB0aGlzLmNvbnRleHQsIHNldHRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfdWx2Q29tbWFuZENsaWNrZWQobW8sIGluZGV4KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZUNoZWNrZWRBbGwoKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0KG1vLCBpbmRleCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfY2hlY2tlZEFsbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbW9EYXRhTGlzdCA9IHRoaXMubW9EYXRhTGlzdDtcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4gKG1vLiRJc0NoZWNrZWQgPSB0cnVlKSk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlU2V0TW9EYXRhTGlzdCgpO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdyb3dTZWxlY3RBbGwnLCB0aGlzLmNvbnRleHQpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3JlbW92ZUNoZWNrZWRBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc2VsY3RBbGwoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93RGVzZWxlY3RBbGwnLCB0aGlzLmNvbnRleHQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZGVzZWxjdEFsbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbW9EYXRhTGlzdCA9IHRoaXMubW9EYXRhTGlzdDtcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4gKG1vLiRJc0NoZWNrZWQgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9kZXNlbGVjdChtbywgaW5kZXgpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICAgICAgbW8uJElzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93ZGVzZWxlY3QnLCB0aGlzLmNvbnRleHQsIGluZGV4LCBtbyk7XG4gICAgICAgIHJldHVybiBtbztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3NlbGVjdChtbywgaW5kZXgpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICAgICAgLy8gICAgdGhpcy5fZGVzZWxjdEFsbCgpO1xuICAgICAgICBtby4kSXNDaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KCk7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd3NlbGVjdCcsIHRoaXMuY29udGV4dCwgaW5kZXgsIG1vKTtcbiAgICAgICAgcmV0dXJuIG1vO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZG9DaGVja2VkQWxsKGNoZWNrZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrZWRBbGwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNoZWNrZWRBbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZ2V0U2VsZWN0ZWQoKTogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGwge1xuICAgICAgICBjb25zdCBzZWxlY3RlZE1vID0gdGhpcy5tb0RhdGFMaXN0LmZpbmQoKG1vKSA9PiBtby4kSXNDaGVja2VkKTtcbiAgICAgICAgaWYgKCFzZWxlY3RlZE1vKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RlZE1vLmpzb24gPSBzZWxlY3RlZE1vO1xuICAgICAgICByZXR1cm4gc2VsZWN0ZWRNbztcbiAgICB9XG4gICAgcHJvdGVjdGVkIHJlZnJlc2hDb250ZXh0TW9EYXRhTGlzdChtb0RhdGFMaXN0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1JlZnJlc2hDb250ZXh0TW9EYXRhTGlzdCcsIG1vRGF0YUxpc3QpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,53 @@
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
+ }
25
+ ReportItemBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ReportItemBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
+ ReportItemBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", 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 });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ReportItemBaseComponent, decorators: [{
28
+ type: Component,
29
+ args: [{
30
+ selector: 'bnrc-report-item-base',
31
+ template: '',
32
+ changeDetection: ChangeDetectionStrategy.OnPush
33
+ }]
34
+ }], ctorParameters: function () { return []; }, propDecorators: { itemClick: [{
35
+ type: Output
36
+ }], classNames2: [{
37
+ type: HostBinding,
38
+ args: ['class']
39
+ }], classNames: [{
40
+ type: Input
41
+ }], context: [{
42
+ type: Input
43
+ }], mo: [{
44
+ type: Input
45
+ }], allColumns: [{
46
+ type: Input
47
+ }], index: [{
48
+ type: Input
49
+ }], onClick: [{
50
+ type: HostListener,
51
+ args: ['click', ['$event.target']]
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWl0ZW0tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvYWJzdHJhY3QtY2xhc3Nlcy9yZXBvcnQtaXRlbS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFlBQVksRUFFWix1QkFBdUIsRUFDMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBbUJ2QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQWF0RDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBYkYsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFTaEMsVUFBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBS2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsMkNBQTJDLENBQUMsQ0FBQztRQUM5RyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV4RyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O29IQWhDUSx1QkFBdUI7d0dBQXZCLHVCQUF1QixnVkFIdEIsRUFBRTsyRkFHSCx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzBFQUVhLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ2UsV0FBVztzQkFBaEMsV0FBVzt1QkFBQyxPQUFPO2dCQUNYLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUlHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFTTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbnB1dCxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25Jbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9iYXJzYS1hcGknO1xuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFJlcG9ydFNldHRpbmcgfSBmcm9tICcuL3JlcG9ydC1iYXNlJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFNldHRpbmdzIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgQ29tcG9uZW50UGFyYW1ldGVyOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIFJlbGF0ZWRGaWVsZDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRJdGVtU2V0dGluZyBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xuICAgIEZpZWxkU2V0dGluZ3M6IHtcbiAgICAgICAgTW9EYXRhTGlzdDogQXJyYXk8RmllbGRTZXR0aW5ncz47XG4gICAgfTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdibnJjLXJlcG9ydC1pdGVtLWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZXBvcnRJdGVtQmFzZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZXMyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgY2xhc3NOYW1lczogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICBTZXR0aW5nOiBSZXBvcnRTZXR0aW5nO1xuICAgIH0gfCBudWxsO1xuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBJbnB1dCgpIGFsbENvbHVtbnM6IGFueVtdO1xuICAgIEBJbnB1dCgpIGluZGV4ID0gLTE7XG4gICAgZmllbGRzOiBhbnk7XG4gICAgcGFyYW1ldGVyczogUmVwb3J0SXRlbVNldHRpbmcgfCBudWxsO1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmZpZWxkcyA9IHt9O1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXG4gICAgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2suZW1pdCh7IGluZGV4OiB0aGlzLmluZGV4LCBtbzogdGhpcy5tbyB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5jbGFzc05hbWVzMiA9IHRoaXMuY2xhc3NOYW1lcztcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpUm93LlBhcmFtZXRlcnMnKTtcbiAgICAgICAgY29uc3QgZmllbGRTZXR0aW5ncyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMucGFyYW1ldGVycywgJ0ZpZWxkU2V0dGluZ3MuTW9EYXRhTGlzdCcsIFtdKTtcblxuICAgICAgICBmaWVsZFNldHRpbmdzLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmllbGRzW2MuQ29tcG9uZW50UGFyYW1ldGVyLiRDYXB0aW9uXSA9IGMuJENhcHRpb247XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==