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,58 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { delay, takeUntil, tap } from 'rxjs/operators';
3
+ import { BaseDirective } from './base.directive';
4
+ import { getComponentDefined, getUniqueId } from '../constants';
5
+ import { BarsaApi } from '../abstract-classes';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../services/portal.service";
8
+ export class RenderUlvPaginDirective extends BaseDirective {
9
+ constructor(_injector, _portalService, _vcr, _cdr) {
10
+ super();
11
+ this._injector = _injector;
12
+ this._portalService = _portalService;
13
+ this._vcr = _vcr;
14
+ this._cdr = _cdr;
15
+ }
16
+ async ngOnInit() {
17
+ super.ngOnInit();
18
+ this._render();
19
+ }
20
+ ngOnDestroy() {
21
+ super.ngOnDestroy();
22
+ this.component.destroy();
23
+ }
24
+ async _render() {
25
+ const context = this.context;
26
+ if (context) {
27
+ const customUiSetting = BarsaApi.Common.Util.TryGetValue(context.Setting, 'ClassNames.CustomUi', null);
28
+ const { moduleName, modulePath
29
+ // componentName,
30
+ // selector
31
+ } = getComponentDefined(context, customUiSetting);
32
+ this._portalService
33
+ .getComponent(moduleName, modulePath, 'UlvPaging', 'bsu-ulv-paging', this._injector)
34
+ .pipe(takeUntil(this._onDestroy$), delay(0), tap((component) => {
35
+ component.instance.id = getUniqueId(4);
36
+ component.instance.context = context;
37
+ this.component = component;
38
+ this._vcr.insert(component.hostView);
39
+ this._cdr.detectChanges();
40
+ }))
41
+ .subscribe();
42
+ }
43
+ }
44
+ }
45
+ RenderUlvPaginDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RenderUlvPaginDirective, deps: [{ token: i0.Injector }, { token: i1.PortalService }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
46
+ RenderUlvPaginDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: RenderUlvPaginDirective, selector: "[renderUlvPaging]", inputs: { mask: "mask", context: ["renderUlvPaging", "context"] }, usesInheritance: true, ngImport: i0 });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RenderUlvPaginDirective, decorators: [{
48
+ type: Directive,
49
+ args: [{
50
+ selector: '[renderUlvPaging]'
51
+ }]
52
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.PortalService }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { mask: [{
53
+ type: Input
54
+ }], context: [{
55
+ type: Input,
56
+ args: ['renderUlvPaging']
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXVsdi1wYWdpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3JlbmRlci11bHYtcGFnaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUVULEtBQUssRUFJUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUsvQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQUl0RCxZQUNZLFNBQW1CLEVBQ25CLGNBQTZCLEVBQzdCLElBQXNCLEVBQ3RCLElBQXVCO1FBRS9CLEtBQUssRUFBRSxDQUFDO1FBTEEsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFtQjtJQUduQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLFFBQVE7UUFDVixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFPO1FBQ1QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLE9BQU8sRUFBRTtZQUNULE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZHLE1BQU0sRUFDRixVQUFVLEVBQ1YsVUFBVTtZQUNWLGlCQUFpQjtZQUNqQixXQUFXO2NBQ2QsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFFbEQsSUFBSSxDQUFDLGNBQWM7aUJBQ2QsWUFBWSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7aUJBQ25GLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUMzQixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ1IsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO2dCQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQ0w7aUJBQ0EsU0FBUyxFQUFFLENBQUM7U0FDcEI7SUFDTCxDQUFDOztvSEE5Q1EsdUJBQXVCO3dHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO2lCQUNoQzswTEFFWSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ29CLE9BQU87c0JBQWhDLEtBQUs7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlbGF5LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZ2V0Q29tcG9uZW50RGVmaW5lZCwgZ2V0VW5pcXVlSWQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUG9ydGFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BvcnRhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi4vYWJzdHJhY3QtY2xhc3Nlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JlbmRlclVsdlBhZ2luZ10nXG59KVxuZXhwb3J0IGNsYXNzIFJlbmRlclVsdlBhZ2luRGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBtYXNrOiBib29sZWFuO1xuICAgIEBJbnB1dCgncmVuZGVyVWx2UGFnaW5nJykgY29udGV4dDtcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3ZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyKCk7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5kZXN0cm95KCk7XG4gICAgfVxuICAgIGFzeW5jIF9yZW5kZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHQ7XG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21VaVNldHRpbmcgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShjb250ZXh0LlNldHRpbmcsICdDbGFzc05hbWVzLkN1c3RvbVVpJywgbnVsbCk7XG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgbW9kdWxlTmFtZSxcbiAgICAgICAgICAgICAgICBtb2R1bGVQYXRoXG4gICAgICAgICAgICAgICAgLy8gY29tcG9uZW50TmFtZSxcbiAgICAgICAgICAgICAgICAvLyBzZWxlY3RvclxuICAgICAgICAgICAgfSA9IGdldENvbXBvbmVudERlZmluZWQoY29udGV4dCwgY3VzdG9tVWlTZXR0aW5nKTtcblxuICAgICAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXRDb21wb25lbnQobW9kdWxlTmFtZSwgbW9kdWxlUGF0aCwgJ1VsdlBhZ2luZycsICdic3UtdWx2LXBhZ2luZycsIHRoaXMuX2luamVjdG9yKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5KDApLFxuICAgICAgICAgICAgICAgICAgICB0YXAoKGNvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmlkID0gZ2V0VW5pcXVlSWQoNCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Zjci5pbnNlcnQoY29tcG9uZW50Lmhvc3RWaWV3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,60 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { delay, takeUntil, tap } from 'rxjs/operators';
3
+ import { BarsaApi } from '../abstract-classes';
4
+ import { BaseDirective } from './base.directive';
5
+ import { getComponentDefined, getUniqueId } from '../constants';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../services/portal.service";
8
+ export class RenderUlvViewerDirective extends BaseDirective {
9
+ constructor(_injector, _portalService, _vcr, _cdr) {
10
+ super();
11
+ this._injector = _injector;
12
+ this._portalService = _portalService;
13
+ this._vcr = _vcr;
14
+ this._cdr = _cdr;
15
+ }
16
+ ngAfterViewInit() {
17
+ super.ngAfterViewInit();
18
+ this._render();
19
+ }
20
+ ngOnDestroy() {
21
+ super.ngOnDestroy();
22
+ if (this.component) {
23
+ this.component.destroy();
24
+ }
25
+ }
26
+ _render() {
27
+ const context = this.viewer;
28
+ if (context) {
29
+ const customUiSetting = BarsaApi.Common.Util.TryGetValue(context.Setting, 'ClassNames.CustomUi', null);
30
+ const { moduleName, modulePath, componentName, selector } = getComponentDefined(context, customUiSetting);
31
+ this._portalService
32
+ .getComponent(moduleName, modulePath, componentName, selector, this._injector)
33
+ .pipe(takeUntil(this._onDestroy$), delay(0), tap((component) => {
34
+ component.instance.id = getUniqueId(4);
35
+ component.instance.context = context;
36
+ // component.instance.moDataList=BarsaApi.Common.Util.TryGetValue(context,'moDataList',[]);
37
+ context.controlUi = component.instance;
38
+ // context.viewer = component.instance;
39
+ this.component = component;
40
+ this._vcr.insert(component.hostView);
41
+ this._cdr.detectChanges();
42
+ }))
43
+ .subscribe();
44
+ }
45
+ }
46
+ }
47
+ RenderUlvViewerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RenderUlvViewerDirective, deps: [{ token: i0.Injector }, { token: i1.PortalService }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
48
+ RenderUlvViewerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: RenderUlvViewerDirective, selector: "[renderUlvViewer]", inputs: { mask: "mask", viewer: ["renderUlvViewer", "viewer"] }, usesInheritance: true, ngImport: i0 });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RenderUlvViewerDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{
52
+ selector: '[renderUlvViewer]'
53
+ }]
54
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.PortalService }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { mask: [{
55
+ type: Input
56
+ }], viewer: [{
57
+ type: Input,
58
+ args: ['renderUlvViewer']
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXVsdi12aWV3ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3JlbmRlci11bHYtdmlld2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUgsU0FBUyxFQUVULEtBQUssRUFHUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQU1oRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQUl2RCxZQUNZLFNBQW1CLEVBQ25CLGNBQTZCLEVBQzdCLElBQXNCLEVBQ3RCLElBQXVCO1FBRS9CLEtBQUssRUFBRSxDQUFDO1FBTEEsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFtQjtJQUduQyxDQUFDO0lBQ0QsZUFBZTtRQUNYLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNELFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDNUIsSUFBSSxPQUFPLEVBQUU7WUFDVCxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2RyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQzFHLElBQUksQ0FBQyxjQUFjO2lCQUNkLFlBQVksQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztpQkFDN0UsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQzNCLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDUixHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDZCxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztnQkFDckMsMkZBQTJGO2dCQUMzRixPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7Z0JBQ3ZDLHVDQUF1QztnQkFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FDTDtpQkFDQSxTQUFTLEVBQUUsQ0FBQztTQUNwQjtJQUNMLENBQUM7O3FIQTdDUSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7aUJBQ2hDOzBMQUVZLElBQUk7c0JBQVosS0FBSztnQkFDb0IsTUFBTTtzQkFBL0IsS0FBSzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlbGF5LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi4vYWJzdHJhY3QtY2xhc3Nlcyc7XG5cbmltcG9ydCB7IEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuL2Jhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IGdldENvbXBvbmVudERlZmluZWQsIGdldFVuaXF1ZUlkIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBvcnRhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wb3J0YWwuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JlbmRlclVsdlZpZXdlcl0nXG59KVxuZXhwb3J0IGNsYXNzIFJlbmRlclVsdlZpZXdlckRpcmVjdGl2ZSBleHRlbmRzIEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIG1hc2s6IGJvb2xlYW47XG4gICAgQElucHV0KCdyZW5kZXJVbHZWaWV3ZXInKSB2aWV3ZXI7XG4gICAgY29tcG9uZW50OiBDb21wb25lbnRSZWY8YW55PjtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF92Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyKCk7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfcmVuZGVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy52aWV3ZXI7XG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21VaVNldHRpbmcgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShjb250ZXh0LlNldHRpbmcsICdDbGFzc05hbWVzLkN1c3RvbVVpJywgbnVsbCk7XG4gICAgICAgICAgICBjb25zdCB7IG1vZHVsZU5hbWUsIG1vZHVsZVBhdGgsIGNvbXBvbmVudE5hbWUsIHNlbGVjdG9yIH0gPSBnZXRDb21wb25lbnREZWZpbmVkKGNvbnRleHQsIGN1c3RvbVVpU2V0dGluZyk7XG4gICAgICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldENvbXBvbmVudChtb2R1bGVOYW1lLCBtb2R1bGVQYXRoLCBjb21wb25lbnROYW1lLCBzZWxlY3RvciwgdGhpcy5faW5qZWN0b3IpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgZGVsYXkoMCksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuaWQgPSBnZXRVbmlxdWVJZCg0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbXBvbmVudC5pbnN0YW5jZS5tb0RhdGFMaXN0PUJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGNvbnRleHQsJ21vRGF0YUxpc3QnLFtdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuY29udHJvbFVpID0gY29tcG9uZW50Lmluc3RhbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dC52aWV3ZXIgPSBjb21wb25lbnQuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Zjci5pbnNlcnQoY29tcG9uZW50Lmhvc3RWaWV3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,235 @@
1
+ import { Directive, Input, HostListener, EventEmitter, Output } from '@angular/core';
2
+ import { fromEvent } from 'rxjs';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import { BaseDirective } from './base.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class TableResizerDirective extends BaseDirective {
7
+ constructor(el, renderer) {
8
+ super();
9
+ this.el = el;
10
+ this.renderer = renderer;
11
+ this.columnResized = new EventEmitter();
12
+ fromEvent(document, 'mouseup')
13
+ .pipe(takeUntil(this._onDestroy$))
14
+ .subscribe(() => {
15
+ this._mouseUp();
16
+ });
17
+ fromEvent(document, 'mousemove')
18
+ .pipe(takeUntil(this._onDestroy$))
19
+ .subscribe((e) => {
20
+ this._mouseMove(e);
21
+ });
22
+ }
23
+ get _table() {
24
+ return this.el.nativeElement;
25
+ }
26
+ moseDown(e) {
27
+ this._mouseDown(e);
28
+ }
29
+ moseMove(e) {
30
+ this._mouseMove(e);
31
+ }
32
+ ngAfterViewInit() {
33
+ if (this.rowResizer) {
34
+ this._putBodyCellsContentIntoDiv();
35
+ }
36
+ if (this.rowResizer) {
37
+ this._addRowsResizer();
38
+ }
39
+ this._setTableMode(this.fitWidth);
40
+ }
41
+ ngOnChanges(changes) {
42
+ super.ngOnChanges(changes);
43
+ const { fitWidth } = changes;
44
+ if (this.enableResizing && fitWidth && !fitWidth.firstChange) {
45
+ const newFitWidth = fitWidth.currentValue;
46
+ this._setTableMode(newFitWidth);
47
+ }
48
+ }
49
+ _initializeTable() {
50
+ this._initTable();
51
+ this._setTableMode(this.fitWidth);
52
+ }
53
+ _resizeRow(event) {
54
+ this._currentResizer = "Row" /* Resizer.Row */;
55
+ const elementFromPoint = document.elementFromPoint(event.pageX, event.pageY);
56
+ this._currentCell = elementFromPoint?.closest('td');
57
+ this._startY = event.pageY;
58
+ this._currentRowHeight = this._currentCell?.clientHeight || 0;
59
+ }
60
+ _resizeColumn(event) {
61
+ if (!this.fitWidth) {
62
+ this._setTableFreeSize();
63
+ }
64
+ this._currentResizer = "Column" /* Resizer.Column */;
65
+ const elementFromPoint = document.elementFromPoint(event.pageX, event.pageY);
66
+ this._currentCell = elementFromPoint?.closest('th');
67
+ this._startX = event.pageX;
68
+ this._currentColumnWidth = this._currentCell?.clientWidth || 0;
69
+ this._sideCell = this._getSideCell(this._currentCell);
70
+ this._sideColumnWidth = this._sideCell?.clientWidth;
71
+ }
72
+ _addRowsResizer() {
73
+ const table = this._table;
74
+ const rowsLabel = table.querySelectorAll('.vertical-label');
75
+ rowsLabel.forEach((cell) => {
76
+ const rowResizer = this.renderer.createElement('div');
77
+ this.renderer.appendChild(cell, rowResizer);
78
+ rowResizer.setAttribute('class', 'row-resizer');
79
+ this.renderer.setStyle(cell, 'height', 'inherit');
80
+ this.renderer.setStyle(cell, 'position', 'relative');
81
+ this.renderer.setAttribute(rowResizer, 'style', 'cursor: row-resize; height:8px; position:absolute;bottom:0;left:0;right:0');
82
+ });
83
+ }
84
+ _putBodyCellsContentIntoDiv() {
85
+ const table = this._table;
86
+ const bodyCells = table.querySelectorAll('body td:not(.vertical-label)');
87
+ bodyCells.forEach((cell) => {
88
+ const contentContainer = this.renderer.createElement('div');
89
+ cell.children.forEach((child) => {
90
+ contentContainer.appendChild(child);
91
+ });
92
+ this.renderer.setStyle(cell, 'overflow', 'hidden');
93
+ this.renderer.setStyle(cell, 'height', 'inherit');
94
+ this.renderer.setStyle(contentContainer, 'height', 'inherit');
95
+ this.renderer.setStyle(contentContainer, 'display', 'block');
96
+ cell.appendChild(contentContainer);
97
+ });
98
+ }
99
+ _getSideCell(currentCell) {
100
+ const currentRow = this._currentCell.parentNode?.children;
101
+ if (currentRow) {
102
+ const cellIndexInRow = Array.from(currentRow).indexOf(currentCell);
103
+ return Array.from(currentRow)[cellIndexInRow + 1];
104
+ }
105
+ return null;
106
+ }
107
+ _changeWidth(fitWidth, sideCell, currentCell, changedCurrentCellWidth, changedSideCellWidth) {
108
+ if (fitWidth) {
109
+ if (sideCell && changedCurrentCellWidth >= this.minWidth && changedSideCellWidth >= this.minWidth) {
110
+ this.renderer.setStyle(sideCell, 'width', changedSideCellWidth + 'px');
111
+ this.renderer.setStyle(sideCell, 'min-width', changedSideCellWidth + 'px');
112
+ this.renderer.setStyle(currentCell, 'width', changedCurrentCellWidth + 'px');
113
+ this.renderer.setStyle(currentCell, 'min-width', changedCurrentCellWidth + 'px');
114
+ }
115
+ }
116
+ else if (changedCurrentCellWidth >= this.minWidth) {
117
+ this.renderer.setStyle(currentCell, 'width', changedCurrentCellWidth + 'px');
118
+ this.renderer.setStyle(currentCell, 'min-width', changedCurrentCellWidth + 'px');
119
+ }
120
+ }
121
+ _changeHeight(currentCell, changedHeight, minHeight) {
122
+ if (changedHeight > minHeight) {
123
+ this.renderer.setStyle(currentCell.closest('tr'), 'height', changedHeight + 'px');
124
+ }
125
+ }
126
+ _initTable() {
127
+ if (this._isInitTable) {
128
+ return;
129
+ }
130
+ this._isInitTable = true;
131
+ const table = this._table;
132
+ const parent = table.parentElement;
133
+ this.renderer.setStyle(parent, 'overflow-x', this.fitWidth ? 'hidden' : 'auto');
134
+ // this.renderer.setStyle(parent, 'overflow-y', 'auto');
135
+ this.renderer.setStyle(parent, 'width', '100%');
136
+ }
137
+ _setTableMode(isFitWidth) {
138
+ if (isFitWidth) {
139
+ this._setTableFitSize();
140
+ }
141
+ }
142
+ _setTableFreeSize() {
143
+ const table = this._table;
144
+ this.renderer.setStyle(table, 'width', this.containerWidth + 'px');
145
+ this.renderer.setStyle(table, 'max-width', 'unset');
146
+ this.renderer.setStyle(table, 'min-width', this.containerWidth + 'px');
147
+ const headCells = table.querySelectorAll('th');
148
+ headCells.forEach((cell) => {
149
+ const width = cell.offsetWidth;
150
+ this.renderer.setStyle(cell, 'width', width + 'px');
151
+ this.renderer.setStyle(cell, 'min-width', width + 'px');
152
+ });
153
+ }
154
+ _setTableFitSize() {
155
+ const table = this._table;
156
+ this.renderer.setStyle(table, 'width', '100%');
157
+ this.renderer.setStyle(table, 'max-width', '100%');
158
+ }
159
+ _mouseDown(e) {
160
+ if (e.srcElement.className === 'row-resizer') {
161
+ this._resizeRow(e);
162
+ this.renderer.setStyle(this.el.nativeElement, 'cursor', 'row-resize');
163
+ }
164
+ else if (e.srcElement.className === 'column-resizer') {
165
+ this._resizeColumn(e);
166
+ this.renderer.setStyle(this.el.nativeElement, 'cursor', 'col-resize');
167
+ }
168
+ }
169
+ _mouseMove(e) {
170
+ if (e.buttons !== 0) {
171
+ if (this._currentResizer === "Column" /* Resizer.Column */) {
172
+ if (!this._isInitTable) {
173
+ this._initializeTable();
174
+ }
175
+ const endX = e.pageX;
176
+ const dx = endX - this._startX;
177
+ const changedCurrentCellWidth = this._currentColumnWidth - dx;
178
+ const changedSideCellWidth = this._sideColumnWidth + dx;
179
+ this._changeWidth(this.fitWidth, this._sideCell, this._currentCell, changedCurrentCellWidth, changedSideCellWidth);
180
+ }
181
+ else if (this._currentResizer === "Row" /* Resizer.Row */) {
182
+ const endY = e.pageY;
183
+ const dy = endY - this._startY;
184
+ const changedCurrentRowHeight = this._currentRowHeight + dy;
185
+ this._changeHeight(this._currentCell, changedCurrentRowHeight, this.minHeight);
186
+ }
187
+ }
188
+ }
189
+ _mouseUp() {
190
+ if (this._currentResizer) {
191
+ const table = this.el.nativeElement;
192
+ const headers = table.querySelectorAll('th');
193
+ const columnResized = [];
194
+ for (let i = 0; i < headers.length; i++) {
195
+ const header = headers[i];
196
+ const columnName = header.attributes['columnname']?.value;
197
+ if (typeof columnName !== 'undefined') {
198
+ columnResized.push({ name: columnName, width: header.offsetWidth });
199
+ }
200
+ }
201
+ this.columnResized.emit(columnResized);
202
+ }
203
+ this._currentResizer = null;
204
+ this.renderer.setStyle(this.el.nativeElement, 'cursor', 'default');
205
+ }
206
+ }
207
+ TableResizerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableResizerDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
208
+ TableResizerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: TableResizerDirective, selector: "[tableResizer]", inputs: { fitWidth: "fitWidth", minWidth: "minWidth", minHeight: "minHeight", containerWidth: "containerWidth", rowResizer: "rowResizer", enableResizing: "enableResizing" }, outputs: { columnResized: "columnResized" }, host: { listeners: { "mousedown": "moseDown($event)", "mousemove": "moseMove($event)" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableResizerDirective, decorators: [{
210
+ type: Directive,
211
+ args: [{
212
+ selector: '[tableResizer]'
213
+ }]
214
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { fitWidth: [{
215
+ type: Input
216
+ }], minWidth: [{
217
+ type: Input
218
+ }], minHeight: [{
219
+ type: Input
220
+ }], containerWidth: [{
221
+ type: Input
222
+ }], rowResizer: [{
223
+ type: Input
224
+ }], enableResizing: [{
225
+ type: Input
226
+ }], columnResized: [{
227
+ type: Output
228
+ }], moseDown: [{
229
+ type: HostListener,
230
+ args: ['mousedown', ['$event']]
231
+ }], moseMove: [{
232
+ type: HostListener,
233
+ args: ['mousemove', ['$event']]
234
+ }] } });
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcmVzaXplci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvdGFibGUtcmVzaXplci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBRUwsWUFBWSxFQU1aLFlBQVksRUFDWixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVNqRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQWlCcEQsWUFBb0IsRUFBYyxFQUFVLFFBQW1CO1FBQzNELEtBQUssRUFBRSxDQUFDO1FBRFEsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFWckQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQVluRSxTQUFTLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQzthQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7YUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDakMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FB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QUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2lCQUN2RTthQUNKO1lBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkUsQ0FBQzs7a0hBdFBRLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7eUhBRVksUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkE0QlAsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNckMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29sdW1uUmVzaXplZEFyZ3MgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzJztcbmltcG9ydCB7IEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuL2Jhc2UuZGlyZWN0aXZlJztcbmNvbnN0IGVudW0gUmVzaXplciB7XG4gICAgUm93ID0gJ1JvdycsXG4gICAgQ29sdW1uID0gJ0NvbHVtbidcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGFibGVSZXNpemVyXSdcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSZXNpemVyRGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGZpdFdpZHRoOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG1pbldpZHRoO1xuICAgIEBJbnB1dCgpIG1pbkhlaWdodDtcbiAgICBASW5wdXQoKSBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHJvd1Jlc2l6ZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZW5hYmxlUmVzaXppbmc6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIGNvbHVtblJlc2l6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PENvbHVtblJlc2l6ZWRBcmdzPj4oKTtcbiAgICBwcml2YXRlIF9jdXJyZW50Q2VsbDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfc2lkZUNlbGw7XG4gICAgcHJpdmF0ZSBfc3RhcnRYO1xuICAgIHByaXZhdGUgX3N0YXJ0WTtcbiAgICBwcml2YXRlIF9jdXJyZW50Q29sdW1uV2lkdGg7XG4gICAgcHJpdmF0ZSBfc2lkZUNvbHVtbldpZHRoO1xuICAgIHByaXZhdGUgX2N1cnJlbnRSb3dIZWlnaHQ7XG4gICAgcHJpdmF0ZSBfY3VycmVudFJlc2l6ZXI6IFJlc2l6ZXIgfCBudWxsO1xuICAgIHByaXZhdGUgX2lzSW5pdFRhYmxlOiBib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vdXNlVXAoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vdXNlTW92ZShlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIGdldCBfdGFibGUoKTogSFRNTFRhYmxlRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTFRhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIG1vc2VEb3duKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbW91c2VEb3duKGUpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gICAgbW9zZU1vdmUoZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tb3VzZU1vdmUoZSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yb3dSZXNpemVyKSB7XG4gICAgICAgICAgICB0aGlzLl9wdXRCb2R5Q2VsbHNDb250ZW50SW50b0RpdigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJvd1Jlc2l6ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2FkZFJvd3NSZXNpemVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0VGFibGVNb2RlKHRoaXMuZml0V2lkdGgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgZml0V2lkdGggfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh0aGlzLmVuYWJsZVJlc2l6aW5nICYmIGZpdFdpZHRoICYmICFmaXRXaWR0aC5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgY29uc3QgbmV3Rml0V2lkdGggPSBmaXRXaWR0aC5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9zZXRUYWJsZU1vZGUobmV3Rml0V2lkdGgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX2luaXRpYWxpemVUYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5pdFRhYmxlKCk7XG4gICAgICAgIHRoaXMuX3NldFRhYmxlTW9kZSh0aGlzLmZpdFdpZHRoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVzaXplUm93KGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRSZXNpemVyID0gUmVzaXplci5Sb3c7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRGcm9tUG9pbnQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGV2ZW50LnBhZ2VYLCBldmVudC5wYWdlWSk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRDZWxsID0gZWxlbWVudEZyb21Qb2ludD8uY2xvc2VzdCgndGQnKSBhcyBIVE1MVGFibGVDZWxsRWxlbWVudDtcbiAgICAgICAgdGhpcy5fc3RhcnRZID0gZXZlbnQucGFnZVk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRSb3dIZWlnaHQgPSB0aGlzLl9jdXJyZW50Q2VsbD8uY2xpZW50SGVpZ2h0IHx8IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVzaXplQ29sdW1uKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5maXRXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0VGFibGVGcmVlU2l6ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2N1cnJlbnRSZXNpemVyID0gUmVzaXplci5Db2x1bW47XG4gICAgICAgIGNvbnN0IGVsZW1lbnRGcm9tUG9pbnQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGV2ZW50LnBhZ2VYLCBldmVudC5wYWdlWSk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRDZWxsID0gZWxlbWVudEZyb21Qb2ludD8uY2xvc2VzdCgndGgnKSBhcyBIVE1MVGFibGVDZWxsRWxlbWVudDtcbiAgICAgICAgdGhpcy5fc3RhcnRYID0gZXZlbnQucGFnZVg7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRDb2x1bW5XaWR0aCA9IHRoaXMuX2N1cnJlbnRDZWxsPy5jbGllbnRXaWR0aCB8fCAwO1xuICAgICAgICB0aGlzLl9zaWRlQ2VsbCA9IHRoaXMuX2dldFNpZGVDZWxsKHRoaXMuX2N1cnJlbnRDZWxsKTtcbiAgICAgICAgdGhpcy5fc2lkZUNvbHVtbldpZHRoID0gdGhpcy5fc2lkZUNlbGw/LmNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2FkZFJvd3NSZXNpemVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWJsZSA9IHRoaXMuX3RhYmxlO1xuICAgICAgICBjb25zdCByb3dzTGFiZWwgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCcudmVydGljYWwtbGFiZWwnKTtcbiAgICAgICAgcm93c0xhYmVsLmZvckVhY2goKGNlbGwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJvd1Jlc2l6ZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGNlbGwsIHJvd1Jlc2l6ZXIpO1xuXG4gICAgICAgICAgICByb3dSZXNpemVyLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAncm93LXJlc2l6ZXInKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2VsbCwgJ2hlaWdodCcsICdpbmhlcml0Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGNlbGwsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgcm93UmVzaXplcixcbiAgICAgICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICdjdXJzb3I6IHJvdy1yZXNpemU7IGhlaWdodDo4cHg7IHBvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHV0Qm9keUNlbGxzQ29udGVudEludG9EaXYoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy5fdGFibGUgYXMgYW55O1xuICAgICAgICBjb25zdCBib2R5Q2VsbHMgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCdib2R5IHRkOm5vdCgudmVydGljYWwtbGFiZWwpJyk7XG4gICAgICAgIGJvZHlDZWxscy5mb3JFYWNoKChjZWxsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50Q29udGFpbmVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIGNlbGwuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICBjb250ZW50Q29udGFpbmVyLmFwcGVuZENoaWxkKGNoaWxkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjZWxsLCAnb3ZlcmZsb3cnLCAnaGlkZGVuJyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGNlbGwsICdoZWlnaHQnLCAnaW5oZXJpdCcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjb250ZW50Q29udGFpbmVyLCAnaGVpZ2h0JywgJ2luaGVyaXQnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY29udGVudENvbnRhaW5lciwgJ2Rpc3BsYXknLCAnYmxvY2snKTtcblxuICAgICAgICAgICAgY2VsbC5hcHBlbmRDaGlsZChjb250ZW50Q29udGFpbmVyKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0U2lkZUNlbGwoY3VycmVudENlbGwpOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb3cgPSB0aGlzLl9jdXJyZW50Q2VsbC5wYXJlbnROb2RlPy5jaGlsZHJlbjtcbiAgICAgICAgaWYgKGN1cnJlbnRSb3cpIHtcbiAgICAgICAgICAgIGNvbnN0IGNlbGxJbmRleEluUm93ID0gQXJyYXkuZnJvbShjdXJyZW50Um93KS5pbmRleE9mKGN1cnJlbnRDZWxsKTtcbiAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKGN1cnJlbnRSb3cpW2NlbGxJbmRleEluUm93ICsgMV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hhbmdlV2lkdGgoXG4gICAgICAgIGZpdFdpZHRoOiBib29sZWFuLFxuICAgICAgICBzaWRlQ2VsbCxcbiAgICAgICAgY3VycmVudENlbGwsXG4gICAgICAgIGNoYW5nZWRDdXJyZW50Q2VsbFdpZHRoLFxuICAgICAgICBjaGFuZ2VkU2lkZUNlbGxXaWR0aFxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoZml0V2lkdGgpIHtcbiAgICAgICAgICAgIGlmIChzaWRlQ2VsbCAmJiBjaGFuZ2VkQ3VycmVudENlbGxXaWR0aCA+PSB0aGlzLm1pbldpZHRoICYmIGNoYW5nZWRTaWRlQ2VsbFdpZHRoID49IHRoaXMubWluV2lkdGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNpZGVDZWxsLCAnd2lkdGgnLCBjaGFuZ2VkU2lkZUNlbGxXaWR0aCArICdweCcpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2lkZUNlbGwsICdtaW4td2lkdGgnLCBjaGFuZ2VkU2lkZUNlbGxXaWR0aCArICdweCcpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudENlbGwsICd3aWR0aCcsIGNoYW5nZWRDdXJyZW50Q2VsbFdpZHRoICsgJ3B4Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjdXJyZW50Q2VsbCwgJ21pbi13aWR0aCcsIGNoYW5nZWRDdXJyZW50Q2VsbFdpZHRoICsgJ3B4Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlZEN1cnJlbnRDZWxsV2lkdGggPj0gdGhpcy5taW5XaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjdXJyZW50Q2VsbCwgJ3dpZHRoJywgY2hhbmdlZEN1cnJlbnRDZWxsV2lkdGggKyAncHgnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudENlbGwsICdtaW4td2lkdGgnLCBjaGFuZ2VkQ3VycmVudENlbGxXaWR0aCArICdweCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hhbmdlSGVpZ2h0KGN1cnJlbnRDZWxsLCBjaGFuZ2VkSGVpZ2h0LCBtaW5IZWlnaHQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZWRIZWlnaHQgPiBtaW5IZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudENlbGwuY2xvc2VzdCgndHInKSwgJ2hlaWdodCcsIGNoYW5nZWRIZWlnaHQgKyAncHgnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9pbml0VGFibGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc0luaXRUYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzSW5pdFRhYmxlID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgdGFibGU6IEhUTUxUYWJsZUVsZW1lbnQgPSB0aGlzLl90YWJsZTtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGFibGUucGFyZW50RWxlbWVudDtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwYXJlbnQsICdvdmVyZmxvdy14JywgdGhpcy5maXRXaWR0aCA/ICdoaWRkZW4nIDogJ2F1dG8nKTtcbiAgICAgICAgLy8gdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwYXJlbnQsICdvdmVyZmxvdy15JywgJ2F1dG8nKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwYXJlbnQsICd3aWR0aCcsICcxMDAlJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0VGFibGVNb2RlKGlzRml0V2lkdGgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRml0V2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFRhYmxlRml0U2l6ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0VGFibGVGcmVlU2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLl90YWJsZTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0YWJsZSwgJ3dpZHRoJywgdGhpcy5jb250YWluZXJXaWR0aCArICdweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRhYmxlLCAnbWF4LXdpZHRoJywgJ3Vuc2V0Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGFibGUsICdtaW4td2lkdGgnLCB0aGlzLmNvbnRhaW5lcldpZHRoICsgJ3B4Jyk7XG4gICAgICAgIGNvbnN0IGhlYWRDZWxscyA9IHRhYmxlLnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJyk7XG4gICAgICAgIGhlYWRDZWxscy5mb3JFYWNoKChjZWxsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGNlbGwub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGNlbGwsICd3aWR0aCcsIHdpZHRoICsgJ3B4Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGNlbGwsICdtaW4td2lkdGgnLCB3aWR0aCArICdweCcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRUYWJsZUZpdFNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy5fdGFibGU7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGFibGUsICd3aWR0aCcsICcxMDAlJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGFibGUsICdtYXgtd2lkdGgnLCAnMTAwJScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX21vdXNlRG93bihlKTogdm9pZCB7XG4gICAgICAgIGlmIChlLnNyY0VsZW1lbnQuY2xhc3NOYW1lID09PSAncm93LXJlc2l6ZXInKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNpemVSb3coZSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2N1cnNvcicsICdyb3ctcmVzaXplJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZS5zcmNFbGVtZW50LmNsYXNzTmFtZSA9PT0gJ2NvbHVtbi1yZXNpemVyJykge1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplQ29sdW1uKGUpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdjdXJzb3InLCAnY29sLXJlc2l6ZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbW91c2VNb3ZlKGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUuYnV0dG9ucyAhPT0gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRSZXNpemVyID09PSBSZXNpemVyLkNvbHVtbikge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5faXNJbml0VGFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZVRhYmxlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGVuZFggPSBlLnBhZ2VYO1xuICAgICAgICAgICAgICAgIGNvbnN0IGR4ID0gZW5kWCAtIHRoaXMuX3N0YXJ0WDtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VkQ3VycmVudENlbGxXaWR0aCA9IHRoaXMuX2N1cnJlbnRDb2x1bW5XaWR0aCAtIGR4O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5nZWRTaWRlQ2VsbFdpZHRoID0gdGhpcy5fc2lkZUNvbHVtbldpZHRoICsgZHg7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlV2lkdGgoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZml0V2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NpZGVDZWxsLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Q2VsbCxcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlZEN1cnJlbnRDZWxsV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWRTaWRlQ2VsbFdpZHRoXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fY3VycmVudFJlc2l6ZXIgPT09IFJlc2l6ZXIuUm93KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kWSA9IGUucGFnZVk7XG4gICAgICAgICAgICAgICAgY29uc3QgZHkgPSBlbmRZIC0gdGhpcy5fc3RhcnRZO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5nZWRDdXJyZW50Um93SGVpZ2h0ID0gdGhpcy5fY3VycmVudFJvd0hlaWdodCArIGR5O1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUhlaWdodCh0aGlzLl9jdXJyZW50Q2VsbCwgY2hhbmdlZEN1cnJlbnRSb3dIZWlnaHQsIHRoaXMubWluSGVpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX21vdXNlVXAoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50UmVzaXplcikge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gdGFibGUucXVlcnlTZWxlY3RvckFsbCgndGgnKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtblJlc2l6ZWQ6IENvbHVtblJlc2l6ZWRBcmdzW10gPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGVhZGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlciA9IGhlYWRlcnNbaV07XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZSA9IGhlYWRlci5hdHRyaWJ1dGVzWydjb2x1bW5uYW1lJ10/LnZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29sdW1uTmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uUmVzaXplZC5wdXNoKHsgbmFtZTogY29sdW1uTmFtZSwgd2lkdGg6IGhlYWRlci5vZmZzZXRXaWR0aCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNvbHVtblJlc2l6ZWQuZW1pdChjb2x1bW5SZXNpemVkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jdXJyZW50UmVzaXplciA9IG51bGw7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnY3Vyc29yJywgJ2RlZmF1bHQnKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import { BaseDirective } from './base.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class UlvCommandDirective extends BaseDirective {
5
+ constructor() {
6
+ super();
7
+ this.commandClick = new EventEmitter();
8
+ }
9
+ onClick(event) {
10
+ const button = this.ulvCommandHandler;
11
+ event.stopPropagation();
12
+ event.preventDefault();
13
+ this.commandClick.emit(button);
14
+ setTimeout(() => {
15
+ // add settimeout because we need select row before execute row
16
+ if (button.Command && button.Command.Handler) {
17
+ button.Command.Handler(button);
18
+ }
19
+ else if (button.handler) {
20
+ button.handler.bind(button.scope)(button);
21
+ }
22
+ });
23
+ return false;
24
+ }
25
+ }
26
+ UlvCommandDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvCommandDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
27
+ UlvCommandDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: { ulvCommandHandler: "ulvCommandHandler" }, outputs: { commandClick: "commandClick" }, host: { listeners: { "click": "onClick($event)" } }, usesInheritance: true, ngImport: i0 });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvCommandDirective, decorators: [{
29
+ type: Directive,
30
+ args: [{
31
+ selector: '[ulvCommandHandler]'
32
+ }]
33
+ }], ctorParameters: function () { return []; }, propDecorators: { ulvCommandHandler: [{
34
+ type: Input
35
+ }], commandClick: [{
36
+ type: Output
37
+ }], onClick: [{
38
+ type: HostListener,
39
+ args: ['click', ['$event']]
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWNvbW1hbmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Vsdi1jb21tYW5kLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBS2pELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBR2xEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFGRixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHNUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ3RDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLCtEQUErRDtZQUMvRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQzFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzdDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOztnSEF0QlEsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO2lCQUNsQzswRUFFWSxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFLUCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vYmFzZS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t1bHZDb21tYW5kSGFuZGxlcl0nXG59KVxuZXhwb3J0IGNsYXNzIFVsdkNvbW1hbmREaXJlY3RpdmUgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlIHtcbiAgICBASW5wdXQoKSB1bHZDb21tYW5kSGFuZGxlcjogYW55O1xuICAgIEBPdXRwdXQoKSBjb21tYW5kQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkNsaWNrKGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgYnV0dG9uID0gdGhpcy51bHZDb21tYW5kSGFuZGxlcjtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuY29tbWFuZENsaWNrLmVtaXQoYnV0dG9uKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBhZGQgc2V0dGltZW91dCBiZWNhdXNlIHdlIG5lZWQgc2VsZWN0IHJvdyBiZWZvcmUgZXhlY3V0ZSByb3dcbiAgICAgICAgICAgIGlmIChidXR0b24uQ29tbWFuZCAmJiBidXR0b24uQ29tbWFuZC5IYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLkNvbW1hbmQuSGFuZGxlcihidXR0b24pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChidXR0b24uaGFuZGxlcikge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5oYW5kbGVyLmJpbmQoYnV0dG9uLnNjb3BlKShidXR0b24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,51 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import { BaseDirective } from './base.directive';
5
+ import { fromIntersectionObserver } from '../from-intersection-observer';
6
+ import * as i0 from "@angular/core";
7
+ export class UntilInViewDirective extends BaseDirective {
8
+ constructor(_templateRef, _vcr, _cdr) {
9
+ super();
10
+ this._templateRef = _templateRef;
11
+ this._vcr = _vcr;
12
+ this._cdr = _cdr;
13
+ this.intersectionDebounce = 100;
14
+ this.viewed$ = new Subject();
15
+ }
16
+ viewed() {
17
+ this.viewed$.next();
18
+ this._vcr.createEmbeddedView(this._templateRef);
19
+ this._cdr.detectChanges();
20
+ }
21
+ ngOnInit() {
22
+ super.ngOnInit();
23
+ const element = this.untilInView.nativeElement;
24
+ const config = {
25
+ root: null,
26
+ rootMargin: '0px',
27
+ threshold: 0
28
+ };
29
+ fromIntersectionObserver(element, config, this.intersectionDebounce)
30
+ .pipe(takeUntil(this.viewed$), takeUntil(this._onDestroy$))
31
+ .subscribe(() => {
32
+ this.viewed();
33
+ });
34
+ }
35
+ ngOnDestroy() {
36
+ this._onDestroy$.next();
37
+ }
38
+ }
39
+ UntilInViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UntilInViewDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
40
+ UntilInViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: UntilInViewDirective, selector: "[untilInView]", inputs: { untilInView: "untilInView", intersectionDebounce: "intersectionDebounce" }, usesInheritance: true, ngImport: i0 });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UntilInViewDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ selector: '[untilInView]'
45
+ }]
46
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { untilInView: [{
47
+ type: Input
48
+ }], intersectionDebounce: [{
49
+ type: Input
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtaW52aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy91bnRpbC1pbnZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsS0FBSyxFQUtSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFLekUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFJbkQsWUFDWSxZQUE4QixFQUM5QixJQUFzQixFQUN0QixJQUF1QjtRQUUvQixLQUFLLEVBQUUsQ0FBQztRQUpBLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUM5QixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUwxQix5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDNUIsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPdEMsQ0FBQztJQUVNLE1BQU07UUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFDL0MsTUFBTSxNQUFNLEdBQUc7WUFDWCxJQUFJLEVBQUUsSUFBSTtZQUNWLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxDQUFDO1NBQ2YsQ0FBQztRQUNGLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDO2FBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDOztpSEFuQ1Esb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtpQkFDNUI7aUtBRVksV0FBVztzQkFBbkIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZnJvbUludGVyc2VjdGlvbk9ic2VydmVyIH0gZnJvbSAnLi4vZnJvbS1pbnRlcnNlY3Rpb24tb2JzZXJ2ZXInO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t1bnRpbEluVmlld10nXG59KVxuZXhwb3J0IGNsYXNzIFVudGlsSW5WaWV3RGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB1bnRpbEluVmlldzogRWxlbWVudFJlZjtcbiAgICBASW5wdXQoKSBpbnRlcnNlY3Rpb25EZWJvdW5jZSA9IDEwMDtcbiAgICBwcml2YXRlIHZpZXdlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF90ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSBfdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHZpZXdlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3ZWQkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZVJlZik7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnVudGlsSW5WaWV3Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgIHJvb3Q6IG51bGwsXG4gICAgICAgICAgICByb290TWFyZ2luOiAnMHB4JyxcbiAgICAgICAgICAgIHRocmVzaG9sZDogMFxuICAgICAgICB9O1xuICAgICAgICBmcm9tSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZWxlbWVudCwgY29uZmlnLCB0aGlzLmludGVyc2VjdGlvbkRlYm91bmNlKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudmlld2VkJCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmlld2VkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,89 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { takeUntil, tap } from 'rxjs';
3
+ import { BaseComponent } from '../base.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../services";
6
+ export class BaseDynamicComponent extends BaseComponent {
7
+ constructor(_portalService, _injector) {
8
+ super();
9
+ this._portalService = _portalService;
10
+ this._injector = _injector;
11
+ this.events = new EventEmitter();
12
+ }
13
+ async ngOnInit() {
14
+ super.ngOnInit();
15
+ this._renderComponentInstance();
16
+ }
17
+ ngOnChanges(changes) {
18
+ if (!this._component?.instance) {
19
+ return;
20
+ }
21
+ // const changesKey = Object.keys(changes);
22
+ // changesKey
23
+ // .filter((c) => !changes[c].firstChange)
24
+ // .forEach((c) => (this._component.instance[c] = changes[c].currentValue));
25
+ this._component.instance.ngOnChanges(changes);
26
+ }
27
+ ngOnDestroy() {
28
+ this._destroyComponentInstance();
29
+ }
30
+ async _renderComponentInstance() {
31
+ this._destroyComponentInstance();
32
+ if (!this.component) {
33
+ return;
34
+ }
35
+ const { Module, ModuleFileName, Name, Selector } = this.component;
36
+ this._portalService
37
+ .getComponent(Module, ModuleFileName, Name, Selector, this._injector)
38
+ .pipe(takeUntil(this._onDestroy$))
39
+ .subscribe((componentRef) => {
40
+ this._container.insert(componentRef.hostView);
41
+ this._component = componentRef;
42
+ if (this.component.Parameters) {
43
+ this._component.instance.parameters = this.component.Parameters;
44
+ }
45
+ if (this.value) {
46
+ this._component.instance.value = this.value;
47
+ }
48
+ this.setComponentInputs();
49
+ const events = this._component.instance.events;
50
+ if (events) {
51
+ events
52
+ .pipe(takeUntil(this._onDestroy$), tap((c) => this.events.emit(c)))
53
+ .subscribe();
54
+ }
55
+ });
56
+ this.setComponentInputs();
57
+ }
58
+ setComponentInputs() {
59
+ const inputProperties = Object.keys(this).filter((c) => !c.startsWith('_') && c !== 'events');
60
+ inputProperties.forEach((c) => {
61
+ this._component.instance[c] = this[c];
62
+ });
63
+ }
64
+ _destroyComponentInstance() {
65
+ if (this._component) {
66
+ this._component.destroy();
67
+ }
68
+ }
69
+ }
70
+ BaseDynamicComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BaseDynamicComponent, deps: [{ token: i1.PortalService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
71
+ BaseDynamicComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BaseDynamicComponent, selector: "bnrc-dynamic-component", inputs: { component: "component", value: "value" }, outputs: { events: "events" }, viewQueries: [{ propertyName: "_container", first: true, predicate: ["componentContainer"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `<ng-container #componentContainer></ng-container>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BaseDynamicComponent, decorators: [{
73
+ type: Component,
74
+ args: [{
75
+ selector: 'bnrc-dynamic-component',
76
+ template: `<ng-container #componentContainer></ng-container>`,
77
+ changeDetection: ChangeDetectionStrategy.OnPush
78
+ }]
79
+ }], ctorParameters: function () { return [{ type: i1.PortalService }, { type: i0.Injector }]; }, propDecorators: { _container: [{
80
+ type: ViewChild,
81
+ args: ['componentContainer', { read: ViewContainerRef, static: true }]
82
+ }], component: [{
83
+ type: Input
84
+ }], value: [{
85
+ type: Input
86
+ }], events: [{
87
+ type: Output
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvZHluYW1pYy1jb21wb25lbnQvYmFzZS1keW5hbWljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBRVosS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBUWxELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO0lBT25ELFlBQXNCLGNBQTZCLEVBQVksU0FBbUI7UUFDOUUsS0FBSyxFQUFFLENBQUM7UUFEVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFGeEUsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO0lBSXJFLENBQUM7SUFDRCxLQUFLLENBQUMsUUFBUTtRQUNWLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRTtZQUM1QixPQUFPO1NBQ1Y7UUFDRCwyQ0FBMkM7UUFDM0MsYUFBYTtRQUNiLDhDQUE4QztRQUM5QyxnRkFBZ0Y7UUFFaEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxXQUFXO1FBQ1AsSUFBSSxD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QkFBYixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWpyYXlPbGdvIH0gZnJvbSAnLi4vYWJzdHJhY3QtY2xhc3Nlcyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9ydGFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdibnJjLWR5bmFtaWMtY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250YWluZXIgI2NvbXBvbmVudENvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VEeW5hbWljQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ2NvbXBvbmVudENvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgX2NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcbiAgICBASW5wdXQoKSBjb21wb25lbnQ6IEVqcmF5T2xnbztcbiAgICBASW5wdXQoKSB2YWx1ZTogYW55O1xuICAgIEBPdXRwdXQoKSBldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGl0bGU6IHN0cmluZzsgZGF0YT86IGFueSB9PigpO1xuICAgIHB1YmxpYyBfY29tcG9uZW50OiBDb21wb25lbnRSZWY8YW55PjtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9yZW5kZXJDb21wb25lbnRJbnN0YW5jZSgpO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY29tcG9uZW50Py5pbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnN0IGNoYW5nZXNLZXkgPSBPYmplY3Qua2V5cyhjaGFuZ2VzKTtcbiAgICAgICAgLy8gY2hhbmdlc0tleVxuICAgICAgICAvLyAgICAgLmZpbHRlcigoYykgPT4gIWNoYW5nZXNbY10uZmlyc3RDaGFuZ2UpXG4gICAgICAgIC8vICAgICAuZm9yRWFjaCgoYykgPT4gKHRoaXMuX2NvbXBvbmVudC5pbnN0YW5jZVtjXSA9IGNoYW5nZXNbY10uY3VycmVudFZhbHVlKSk7XG5cbiAgICAgICAgdGhpcy5fY29tcG9uZW50Lmluc3RhbmNlLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveUNvbXBvbmVudEluc3RhbmNlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIF9yZW5kZXJDb21wb25lbnRJbnN0YW5jZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fZGVzdHJveUNvbXBvbmVudEluc3RhbmNlKCk7XG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IE1vZHVsZSwgTW9kdWxlRmlsZU5hbWUsIE5hbWUsIFNlbGVjdG9yIH0gPSB0aGlzLmNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZVxuICAgICAgICAgICAgLmdldENvbXBvbmVudChNb2R1bGUsIE1vZHVsZUZpbGVOYW1lLCBOYW1lLCBTZWxlY3RvciwgdGhpcy5faW5qZWN0b3IpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyLmluc2VydChjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudCA9IGNvbXBvbmVudFJlZjtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb21wb25lbnQuUGFyYW1ldGVycykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnQuaW5zdGFuY2UucGFyYW1ldGVycyA9IHRoaXMuY29tcG9uZW50LlBhcmFtZXRlcnM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudC5pbnN0YW5jZS52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29tcG9uZW50SW5wdXRzKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnRzID0gdGhpcy5fY29tcG9uZW50Lmluc3RhbmNlLmV2ZW50cyBhcyBFdmVudEVtaXR0ZXI8eyB0aXRsZTogc3RyaW5nOyBkYXRhPzogYW55IH0+O1xuICAgICAgICAgICAgICAgIGlmIChldmVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChjKSA9PiB0aGlzLmV2ZW50cy5lbWl0KGMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNldENvbXBvbmVudElucHV0cygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRDb21wb25lbnRJbnB1dHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0UHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHRoaXMpLmZpbHRlcigoYykgPT4gIWMuc3RhcnRzV2l0aCgnXycpICYmIGMgIT09ICdldmVudHMnKTtcbiAgICAgICAgaW5wdXRQcm9wZXJ0aWVzLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudC5pbnN0YW5jZVtjXSA9IHRoaXNbY107XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZGVzdHJveUNvbXBvbmVudEluc3RhbmNlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnQuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19