@wavemaker/app-ng-runtime 11.14.0-rc.6276 → 11.14.1-3.6306

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 (63) hide show
  1. package/components/base/bundles/index.umd.js +89 -17
  2. package/components/base/esm2022/pipes/custom-pipes.mjs +10 -10
  3. package/components/base/esm2022/utils/widget-utils.mjs +5 -3
  4. package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
  5. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +7 -3
  6. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
  7. package/components/base/fesm2022/index.mjs +90 -18
  8. package/components/base/fesm2022/index.mjs.map +1 -1
  9. package/components/base/pipes/custom-pipes.d.ts +5 -5
  10. package/components/basic/label/bundles/index.umd.js +9 -1
  11. package/components/basic/label/esm2022/label.directive.mjs +10 -2
  12. package/components/basic/label/fesm2022/index.mjs +9 -1
  13. package/components/basic/label/fesm2022/index.mjs.map +1 -1
  14. package/components/data/table/bundles/index.umd.js +218 -11
  15. package/components/data/table/esm2022/table.component.mjs +219 -12
  16. package/components/data/table/fesm2022/index.mjs +218 -11
  17. package/components/data/table/fesm2022/index.mjs.map +1 -1
  18. package/components/data/table/table.component.d.ts +6 -2
  19. package/components/dialogs/default/bundles/index.umd.js +21 -18
  20. package/components/dialogs/default/dialog-header/dialog-header.component.d.ts +4 -1
  21. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +13 -10
  22. package/components/dialogs/default/fesm2022/index.mjs +9 -6
  23. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  24. package/components/navigation/menu/bundles/index.umd.js +5 -0
  25. package/components/navigation/menu/esm2022/menu.component.mjs +6 -1
  26. package/components/navigation/menu/fesm2022/index.mjs +5 -0
  27. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  28. package/components/navigation/popover/bundles/index.umd.js +6 -6
  29. package/components/navigation/popover/esm2022/popover.component.mjs +4 -4
  30. package/components/navigation/popover/fesm2022/index.mjs +3 -3
  31. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  32. package/components/navigation/popover/popover.component.d.ts +6 -0
  33. package/core/bundles/index.umd.js +332 -82
  34. package/core/esm2022/public_api.mjs +3 -3
  35. package/core/esm2022/types/types.mjs +1 -1
  36. package/core/esm2022/utils/utils.mjs +6 -2
  37. package/core/esm2022/utils/watcher.mjs +323 -81
  38. package/core/fesm2022/index.mjs +331 -84
  39. package/core/fesm2022/index.mjs.map +1 -1
  40. package/core/public_api.d.ts +2 -2
  41. package/core/types/types.d.ts +1 -0
  42. package/core/utils/utils.d.ts +1 -0
  43. package/core/utils/watcher.d.ts +26 -5
  44. package/npm-shrinkwrap.json +2 -2
  45. package/package-lock.json +2 -2
  46. package/package.json +1 -1
  47. package/runtime/base/bundles/index.umd.js +38 -2
  48. package/runtime/base/esm2022/components/app-component/app.component.mjs +7 -2
  49. package/runtime/base/esm2022/components/base-page.component.mjs +9 -2
  50. package/runtime/base/esm2022/components/base-partial.component.mjs +10 -2
  51. package/runtime/base/esm2022/components/base-prefab.component.mjs +10 -2
  52. package/runtime/base/esm2022/components/base-spa-page.component.mjs +9 -2
  53. package/runtime/base/esm2022/services/app.service.mjs +2 -1
  54. package/runtime/base/esm2022/services/pipe-provider.service.mjs +4 -4
  55. package/runtime/base/fesm2022/index.mjs +39 -3
  56. package/runtime/base/fesm2022/index.mjs.map +1 -1
  57. package/runtime/base/services/app.service.d.ts +1 -0
  58. package/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  59. package/scripts/datatable/datatable.js +19 -2
  60. package/transpiler/bundles/index.umd.js +1 -1
  61. package/transpiler/esm2022/imports.mjs +2 -2
  62. package/transpiler/fesm2022/index.mjs +1 -1
  63. package/transpiler/fesm2022/index.mjs.map +1 -1
@@ -75,6 +75,7 @@ export class AppRef {
75
75
  this.isApplicationType = wmProjectProperties.type === "APPLICATION" /* PROJECT_TYPE.APPLICATION */;
76
76
  this.isTemplateBundleType = wmProjectProperties.type === "TEMPLATEBUNDLE" /* PROJECT_TYPE.TEMPLATE_BUNDLE */;
77
77
  this.targetPlatform = wmProjectProperties.platformType;
78
+ this.isPrism = wmProjectProperties.template === "PRISM";
78
79
  this.httpService.registerOnSessionTimeout(this.on401.bind(this));
79
80
  this.appLocale = this.i18nService.getAppLocale();
80
81
  this.httpService.setLocale(this.appLocale);
@@ -196,4 +197,4 @@ export class AppRef {
196
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppRef, decorators: [{
197
198
  type: Injectable
198
199
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AbstractI18nService }, { type: i1.StatePersistence }, { type: i1.AbstractHttpService }, { type: i2.SecurityService }, { type: i3.RouteReuseStrategy }] });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ydW50aW1lLWJhc2Uvc3JjL3NlcnZpY2VzL2FwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWiwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixnQkFBZ0IsRUFDbkIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkUsT0FBTyxLQUFLLFNBQVMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQUMvQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVyRCxNQUFNLFdBQVcsR0FBRztJQUNoQixhQUFhLEVBQUUscUJBQXFCO0lBQ3BDLFdBQVcsRUFBRSxtQkFBbUI7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QUssQ0FBQyxFQUFFLENBQUM7WUFDbkIsS0FBSyxHQUFHLEVBQUUsQ0FBQTtRQUNkLENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRTdCLHVEQUF1RDtRQUN2RCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRTtZQUN0QyxNQUFNLFNBQVMsR0FBRyxTQUFTLEtBQUssY0FBYyxDQUFDLEtBQUssSUFBSSxTQUFTLEtBQUssY0FBYyxDQUFDLE9BQU8sQ0FBQztZQUU3RixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILG9FQUFvRTtRQUNwRSxJQUFJLGFBQWE7WUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUFBLENBQUM7K0dBakxPLE1BQU07bUhBQU4sTUFBTTs7NEZBQU4sTUFBTTtrQkFEbEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICAgIEFic3RyYWN0RGlhbG9nU2VydmljZSxcbiAgICBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgIEFic3RyYWN0STE4blNlcnZpY2UsXG4gICAgQWJzdHJhY3RTcGlubmVyU2VydmljZSxcbiAgICBBYnN0cmFjdFRvYXN0ZXJTZXJ2aWNlLFxuICAgIEV2ZW50Tm90aWZpZXIsXG4gICAgRmllbGRUeXBlU2VydmljZSxcbiAgICBGaWVsZFdpZGdldFNlcnZpY2UsXG4gICAgZ2V0V21Qcm9qZWN0UHJvcGVydGllcyxcbiAgICBpc0RlZmluZWQsXG4gICAgQ29uc3RhbnRTZXJ2aWNlLFxuICAgIFV0aWxzU2VydmljZSxcbiAgICBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXIsXG4gICAgU3RhdGVQZXJzaXN0ZW5jZSxcbiAgICBWaWV3cG9ydCxcbiAgICByZWdpc3RlckZuQnlFeHByXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IFNlY3VyaXR5U2VydmljZSB9IGZyb20gJ0B3bS9zZWN1cml0eSc7XG5cbmltcG9ydCB7IFdtRGVmYXVsdFJvdXRlUmV1c2VTdHJhdGVneSB9IGZyb20gJy4uL3V0aWwvd20tcm91dGUtcmV1c2Utc3RyYXRlZ3knO1xuaW1wb3J0IHsgUGlwZVNlcnZpY2UgfSBmcm9tIFwiLi9waXBlLnNlcnZpY2VcIjtcbmltcG9ydCB7IGVhY2gsIGdldCwgaXNFbXB0eSwgaXNPYmplY3QsIGlzU3RyaW5nIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0ICogYXMgbW9tZW50TGliIGZyb20gJ21vbWVudC10aW1lem9uZS9tb21lbnQtdGltZXpvbmUnO1xuaW1wb3J0IHsgTU9ERV9DT05TVEFOVFMgfSBmcm9tICdAd20vdmFyaWFibGVzJztcbmNvbnN0IG1vbWVudCA9IG1vbWVudExpYi5kZWZhdWx0IHx8IHdpbmRvd1snbW9tZW50J107XG5cbmNvbnN0IGluamVjdG9yTWFwID0ge1xuICAgIERpYWxvZ1NlcnZpY2U6IEFic3RyYWN0RGlhbG9nU2VydmljZSxcbiAgICBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICBQaXBlU2VydmljZTogUGlwZVNlcnZpY2UsXG4gICAgc3RhdGVQZXJzaXN0ZW5jZTogU3RhdGVQZXJzaXN0ZW5jZSxcbiAgICBTcGlubmVyU2VydmljZTogQWJzdHJhY3RTcGlubmVyU2VydmljZSxcbiAgICBTdGF0ZVBlcnNpc3RlbmNlU2VydmljZTogU3RhdGVQZXJzaXN0ZW5jZSxcbiAgICBWaWV3cG9ydDogVmlld3BvcnQsXG4gICAgVG9hc3RlclNlcnZpY2U6IEFic3RyYWN0VG9hc3RlclNlcnZpY2UsXG4gICAgVXRpbHM6IFV0aWxzU2VydmljZSxcbiAgICBDT05TVEFOVFM6IENvbnN0YW50U2VydmljZSxcbiAgICBGSUVMRF9UWVBFOiBGaWVsZFR5cGVTZXJ2aWNlLFxuICAgIEZJRUxEX1dJREdFVDogRmllbGRXaWRnZXRTZXJ2aWNlLFxuICAgIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXJcbn07XG5cbmNvbnN0IGVudW0gUFJPSkVDVF9UWVBFIHtcbiAgICBBUFBMSUNBVElPTiA9ICdBUFBMSUNBVElPTicsXG4gICAgUFJFRkFCID0gJ1BSRUZBQicsXG4gICAgVEVNUExBVEVfQlVORExFID0gJ1RFTVBMQVRFQlVORExFJ1xufVxuXG5jb25zdCBub29wID0gKC4uLmFyZ3MpID0+IHsgfTtcblxuLy8gV3JhcHMgaHR0cFNlcnZpY2UgdG8gYmVoYXZlIGFzIGFuZ3VsYXIgMS54ICRodHRwIHNlcnZpY2UuXG5jb25zdCBnZXRIdHRwRGVwZW5kZW5jeSA9IGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBodHRwU2VydmljZSA9IHRoaXMuaHR0cFNlcnZpY2U7XG4gICAgY29uc3QgZm4gPSBmdW5jdGlvbiAoa2V5LCBvcHRpb25zPykge1xuICAgICAgICBjb25zdCBhcmdzID0gQXJyYXkuZnJvbShhcmd1bWVudHMpLnNsaWNlKDEpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGh0dHBTZXJ2aWNlW2tleV0uYXBwbHkoaHR0cFNlcnZpY2UsIGFyZ3MpKTtcbiAgICB9O1xuICAgIGNvbnN0ICRodHRwID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkodW5kZWZpbmVkLCBbJ3NlbmQnLCAuLi5BcnJheS5mcm9tKGFyZ3VtZW50cyldKTtcbiAgICB9O1xuICAgIFsnZ2V0JywgJ3Bvc3QnLCAnaGVhZCcsICdwdXQnLCAnZGVsZXRlJywgJ2pzb25wJywgJ3BhdGNoJ10uZm9yRWFjaChrZXkgPT4gJGh0dHBba2V5XSA9IGZuLmJpbmQodW5kZWZpbmVkLCBrZXkpKTtcbiAgICByZXR1cm4gJGh0dHA7XG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXBwUmVmIHtcbiAgICBWYXJpYWJsZXM6IGFueSA9IHt9O1xuICAgIEFjdGlvbnM6IGFueSA9IHt9O1xuICAgIG9uQXBwVmFyaWFibGVzUmVhZHkgPSBub29wO1xuICAgIG9uQmVmb3JlQXBwUmVhZHkgPSBub29wO1xuICAgIG9uU2Vzc2lvblRpbWVvdXQgPSBub29wO1xuICAgIG9uUGFnZVJlYWR5ID0gbm9vcDtcbiAgICBvbkJlZm9yZVBhZ2VMZWF2ZSA9IG5vb3A7XG4gICAgb25CZWZvcmVTZXJ2aWNlQ2FsbCA9IG5vb3A7XG4gICAgb25TZXJ2aWNlU3VjY2VzcyA9IG5vb3A7XG4gICAgb25TZXJ2aWNlRXJyb3IgPSBub29wO1xuICAgIGR5bmFtaWNDb21wb25lbnRDb250YWluZXJSZWYgPSB7fTtcblxuICAgIHByb2plY3ROYW1lOiBzdHJpbmc7XG4gICAgaXNQcmVmYWJUeXBlOiBib29sZWFuO1xuICAgIGlzQXBwbGljYXRpb25UeXBlOiBib29sZWFuO1xuICAgIGlzVGFibGV0QXBwbGljYXRpb25UeXBlOiBib29sZWFuO1xuICAgIGlzVGVtcGxhdGVCdW5kbGVUeXBlOiBib29sZWFuO1xuXG4gICAgdGFyZ2V0UGxhdGZvcm06IHN0cmluZztcblxuICAgIGFwcExvY2FsZTogYW55O1xuICAgIG1vZGVzOiBhbnk7XG5cbiAgICBjaGFuZ2VMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLnNldFNlbGVjdGVkTG9jYWxlLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgZ2V0U2VsZWN0ZWRMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLmdldFNlbGVjdGVkTG9jYWxlLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgc2V0VGltZXpvbmUgPSB0aGlzLmkxOG5TZXJ2aWNlLnNldFRpbWV6b25lLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgc2V0d2lkZ2V0TG9jYWxlID0gdGhpcy5pMThuU2VydmljZS5zZXR3aWRnZXRMb2NhbGUuYmluZCh0aGlzLmkxOG5TZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgX2V2ZW50Tm90aWZpZXIgPSBuZXcgRXZlbnROb3RpZmllcigpO1xuXG4gICAgbGFuZGluZ1BhZ2VOYW1lID0gZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLmhvbWVQYWdlO1xuXG4gICAgcmVsb2FkKCkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzdGF0ZVBlcnNpc3RlbmNlOiBTdGF0ZVBlcnNpc3RlbmNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNlY3VyaXR5U2VydmljZTogU2VjdXJpdHlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlUmV1c2VTdHJhdGVneTogUm91dGVSZXVzZVN0cmF0ZWd5XG4gICAgKSB7XG5cbiAgICAgICAgY29uc3Qgd21Qcm9qZWN0UHJvcGVydGllcyA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKTtcblxuICAgICAgICB0aGlzLnByb2plY3ROYW1lID0gd21Qcm9qZWN0UHJvcGVydGllcy5uYW1lO1xuICAgICAgICB0aGlzLmlzUHJlZmFiVHlwZSA9IHdtUHJvamVjdFByb3BlcnRpZXMudHlwZSA9PT0gUFJPSkVDVF9UWVBFLlBSRUZBQjtcbiAgICAgICAgdGhpcy5pc0FwcGxpY2F0aW9uVHlwZSA9IHdtUHJvamVjdFByb3BlcnRpZXMudHlwZSA9PT0gUFJPSkVDVF9UWVBFLkFQUExJQ0FUSU9OO1xuICAgICAgICB0aGlzLmlzVGVtcGxhdGVCdW5kbGVUeXBlID0gd21Qcm9qZWN0UHJvcGVydGllcy50eXBlID09PSBQUk9KRUNUX1RZUEUuVEVNUExBVEVfQlVORExFO1xuICAgICAgICB0aGlzLnRhcmdldFBsYXRmb3JtID0gd21Qcm9qZWN0UHJvcGVydGllcy5wbGF0Zm9ybVR5cGU7XG5cbiAgICAgICAgdGhpcy5odHRwU2VydmljZS5yZWdpc3Rlck9uU2Vzc2lvblRpbWVvdXQodGhpcy5vbjQwMS5iaW5kKHRoaXMpKTtcblxuICAgICAgICB0aGlzLmFwcExvY2FsZSA9IHRoaXMuaTE4blNlcnZpY2UuZ2V0QXBwTG9jYWxlKCk7XG4gICAgICAgIHRoaXMuaHR0cFNlcnZpY2Uuc2V0TG9jYWxlKHRoaXMuYXBwTG9jYWxlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJQYWdlQ2FjaGUocGFnZU5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMucm91dGVSZXVzZVN0cmF0ZWd5IGluc3RhbmNlb2YgV21EZWZhdWx0Um91dGVSZXVzZVN0cmF0ZWd5KSB7XG4gICAgICAgICAgICAodGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgYXMgV21EZWZhdWx0Um91dGVSZXVzZVN0cmF0ZWd5KS5yZXNldChwYWdlTmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbm90aWZ5KGV2ZW50TmFtZTogc3RyaW5nLCAuLi5kYXRhOiBBcnJheTxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2V2ZW50Tm90aWZpZXIubm90aWZ5LmFwcGx5KHRoaXMuX2V2ZW50Tm90aWZpZXIsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcHVibGljIGltcG9ydE1vZHVsZShtb2R1bGVOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKG1vZHVsZU5hbWUgPT09ICdtb21lbnQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbW9tZW50O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG1vZHVsZU5hbWUgPT09ICdtb21lbnQtdHotZGF0YScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmkxOG5TZXJ2aWNlLnNldFRpbWV6b25lRWFybHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXREZXBlbmRlbmN5KGlualRva2VuKSB7XG4gICAgICAgIGlmIChpc1N0cmluZyhpbmpUb2tlbikpIHtcbiAgICAgICAgICAgIGlmIChpbmpUb2tlbiA9PT0gJ0h0dHBTZXJ2aWNlJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRIdHRwRGVwZW5kZW5jeS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHByb3ZpZGVySW5zdGFuY2UgPSBpbmplY3Rvck1hcFtpbmpUb2tlbl0gJiYgdGhpcy5pbmouZ2V0KGluamVjdG9yTWFwW2lualRva2VuXSk7XG4gICAgICAgICAgICBpZiAoIXByb3ZpZGVySW5zdGFuY2UgJiYgdGhpcy5pbmpbJ3JlY29yZHMnXT8udmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5pbmpbJ3JlY29yZHMnXS52YWx1ZXMoKTtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IHZhbHVlcz8ubmV4dCgpO1xuICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0ICYmICFuZXh0LmRvbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQ/LnZhbHVlPy52YWx1ZT8uY29uc3RydWN0b3I/LlNFUlZJQ0VfTkFNRSA9PT0gaW5qVG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0LnZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSB2YWx1ZXMubmV4dCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm92aWRlckluc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmluai5nZXQoaW5qVG9rZW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRyaWdnZXJzIHRoZSBvblNlc3Npb25UaW1lb3V0IGNhbGxiYWNrIGluIGFwcC5qc1xuICAgICAqL1xuICAgIG9uNDAxKCkge1xuICAgICAgICBjb25zdCB1c2VySW5mbyA9IGdldCh0aGlzLnNlY3VyaXR5U2VydmljZS5nZXQoKSwgJ3VzZXJJbmZvJyk7XG4gICAgICAgIC8vIGlmIGEgcHJldmlvdXMgdXNlciBleGlzdHMsIGEgc2Vzc2lvbiB0aW1lIG91dCB0cmlnZ2VyZWRcbiAgICAgICAgaWYgKCFpc0VtcHR5KHVzZXJJbmZvKSkge1xuICAgICAgICAgICAgdGhpcy5vblNlc3Npb25UaW1lb3V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3Vic2NyaWJlKGV2ZW50TmFtZSwgY2FsbGJhY2s6IChkYXRhOiBhbnkpID0+IHZvaWQpOiAoKSA9PiB2b2lkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V2ZW50Tm90aWZpZXIuc3Vic2NyaWJlKGV2ZW50TmFtZSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIHB1YmxpYyBub3RpZnlBcHAodGVtcGxhdGUsIHR5cGUsIHRpdGxlKSB7XG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbkFjdGlvbiA9IGdldCh0aGlzLCAnQWN0aW9ucy5hcHBOb3RpZmljYXRpb24nKTtcbiAgICAgICAgY29uc3QgRVhDTFVERV9OT1RJRklDQVRJT05fTUVTU0FHRVMgPSBbJ1BST0NFU1NfUkVKRUNURURfSU5fUVVFVUUnXTtcbiAgICAgICAgY29uc3Qgc2tpcERlZmF1bHROb3RpZmljYXRpb24gPSBFWENMVURFX05PVElGSUNBVElPTl9NRVNTQUdFUy5pbmRleE9mKHRlbXBsYXRlKSAhPT0gLTE7XG4gICAgICAgIGlmIChub3RpZmljYXRpb25BY3Rpb24pIHtcbiAgICAgICAgICAgIC8vIGRvIG5vdCBub3RpZnkgdGhlIGVycm9yIHRvIHRoZSBhcHAsIGp1c3QgdGhyb3cgaXQgaW4gY29uc29sZVxuICAgICAgICAgICAgaWYgKHNraXBEZWZhdWx0Tm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdBcHAgRXJyb3InLCB0ZW1wbGF0ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHlwZSA9IHR5cGUgfHwgJ3N1Y2Nlc3MnO1xuICAgICAgICAgICAgdGVtcGxhdGUgPSBub3RpZmljYXRpb25BY3Rpb24uZ2V0TWVzc2FnZSgpIHx8IHRlbXBsYXRlO1xuICAgICAgICAgICAgbm90aWZpY2F0aW9uQWN0aW9uLmludm9rZSh7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgdGl0bGU6IGlzRGVmaW5lZCh0aXRsZSkgPyB0aXRsZSA6IHR5cGUudG9VcHBlckNhc2UoKSxcbiAgICAgICAgICAgICAgICBjbGFzczogdHlwZSxcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdHlwZSBpcyBlcnJvciBkbyBub3QgY2xvc2UgdGhlIHRvYXN0clxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiB0eXBlLnRvVXBwZXJDYXNlKCkgPT09ICdFUlJPUicgPyAwIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVGhlIGRlZmF1bHQgQWN0aW9uIFwiYXBwTm90aWZpY2F0aW9uXCIgZG9lc25cXCd0IGV4aXN0IGluIHRoZSBhcHAuIEFwcCBub3RpZmllZCBmb2xsb3dpbmcgZXJyb3I6XFxuJywgdGVtcGxhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZnVuY3Rpb24gdG8gcmVnaXN0ZXIgYmluZCBleHByZXNzaW9ucyBmcm9tIGFwcCB2YXJpYWJsZXNcbiAgICAgKiBpdCB3aWxsIGJlIGNhbGxlZCBmcm9tIGFwcC5qcyBpbiBnZW5lcmF0ZWQgYW5ndWxhciBhcHBcbiAgICAgKiBAcGFyYW0gZXhwcmVzc2lvbnMsIG1hcCBvZiBiaW5kIGV4cHJlc3Npb24gdnMgZ2VuZXJhdGVkIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyRXhwcmVzc2lvbnMoZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgZWFjaChleHByZXNzaW9ucywgKGZuLCBleHByKSA9PiB7XG4gICAgICAgICAgICByZWdpc3RlckZuQnlFeHByKGV4cHIsIGZuWzBdLCBmblsxXSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldE1vZGUobW9kZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIHNob3VsZFBlcnNpc3QgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBodG1sRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaHRtbCcpWzBdO1xuICAgICAgICAvL2h0bWwgZWxlbWVudCBzYW5pdHkgY2hlY2tcbiAgICAgICAgaWYgKCFodG1sRWwpIHJldHVybjtcblxuICAgICAgICAvL21vZGVzIG9iamVjdCBzYW5pdHkgY2hlY2tcbiAgICAgICAgaWYgKCFpc09iamVjdChtb2RlcykpIHtcbiAgICAgICAgICAgIG1vZGVzID0ge31cbiAgICAgICAgfVxuXG4gICAgICAgIC8vbW9kZXMgYXJyYXkgc2FuaXR5IGNoZWNrXG4gICAgICAgIGNvbnN0IG1vZGVzQXJyID0gT2JqZWN0LmVudHJpZXMobW9kZXMpO1xuICAgICAgICBpZiAoIW1vZGVzQXJyLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIC8vbG9vcCBvdmVyIG1vZGVzIGFuZCBzZXQgZWFjaCBtb2RlIG9uIHRoZSBodG1sIGVsZW1lbnRcbiAgICAgICAgbW9kZXNBcnIuZm9yRWFjaCgoW21vZGVLZXksIG1vZGVWYWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzRGVmYXVsdCA9IG1vZGVWYWx1ZSA9PT0gTU9ERV9DT05TVEFOVFMuTElHSFQgfHwgbW9kZVZhbHVlID09PSBNT0RFX0NPTlNUQU5UUy5ERUZBVUxUO1xuXG4gICAgICAgICAgICBpZiAoaXNEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgaHRtbEVsLnJlbW92ZUF0dHJpYnV0ZShtb2RlS2V5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaHRtbEVsLnNldEF0dHJpYnV0ZShtb2RlS2V5LCBtb2RlVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvL2lmIHNob3VkbFBlcnNpc3QgaXMgdHJ1ZSwgc2V0IHRoZSBtb2RlcyBvYmplY3QgaW4gdGhlIGxvY2FsU3RvcmFnZVxuICAgICAgICBpZiAoc2hvdWxkUGVyc2lzdCkgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3dtLWFwcC1tb2RlcycsIEpTT04uc3RyaW5naWZ5KG1vZGVzKSk7XG4gICAgfTtcbn0iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ydW50aW1lLWJhc2Uvc3JjL3NlcnZpY2VzL2FwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWiwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixnQkFBZ0IsRUFDbkIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkUsT0FBTyxLQUFLLFNBQVMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQUMvQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVyRCxNQUFNLFdBQVcsR0FBRztJQUNoQixhQUFhLEVBQUUscUJBQXFCO0lBQ3BDLFdBQVcsRUFBRSxtQkFBbUI7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QyxNQUFNO1lBQUUsT0FBTztRQUVwQiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25CLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZCxDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUU3Qix1REFBdUQ7UUFDdkQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsTUFBTSxTQUFTLEdBQUcsU0FBUyxLQUFLLGNBQWMsQ0FBQyxLQUFLLElBQUksU0FBUyxLQUFLLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFFN0YsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxvRUFBb0U7UUFDcEUsSUFBSSxhQUFhO1lBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFBQSxDQUFDOytHQXBMTyxNQUFNO21IQUFOLE1BQU07OzRGQUFOLE1BQU07a0JBRGxCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVSZXVzZVN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtcbiAgICBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgQWJzdHJhY3RIdHRwU2VydmljZSxcbiAgICBBYnN0cmFjdEkxOG5TZXJ2aWNlLFxuICAgIEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsXG4gICAgQWJzdHJhY3RUb2FzdGVyU2VydmljZSxcbiAgICBFdmVudE5vdGlmaWVyLFxuICAgIEZpZWxkVHlwZVNlcnZpY2UsXG4gICAgRmllbGRXaWRnZXRTZXJ2aWNlLFxuICAgIGdldFdtUHJvamVjdFByb3BlcnRpZXMsXG4gICAgaXNEZWZpbmVkLFxuICAgIENvbnN0YW50U2VydmljZSxcbiAgICBVdGlsc1NlcnZpY2UsXG4gICAgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyLFxuICAgIFN0YXRlUGVyc2lzdGVuY2UsXG4gICAgVmlld3BvcnQsXG4gICAgcmVnaXN0ZXJGbkJ5RXhwclxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2UgfSBmcm9tICdAd20vc2VjdXJpdHknO1xuXG5pbXBvcnQgeyBXbURlZmF1bHRSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tICcuLi91dGlsL3dtLXJvdXRlLXJldXNlLXN0cmF0ZWd5JztcbmltcG9ydCB7IFBpcGVTZXJ2aWNlIH0gZnJvbSBcIi4vcGlwZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBlYWNoLCBnZXQsIGlzRW1wdHksIGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCAqIGFzIG1vbWVudExpYiBmcm9tICdtb21lbnQtdGltZXpvbmUvbW9tZW50LXRpbWV6b25lJztcbmltcG9ydCB7IE1PREVfQ09OU1RBTlRTIH0gZnJvbSAnQHdtL3ZhcmlhYmxlcyc7XG5jb25zdCBtb21lbnQgPSBtb21lbnRMaWIuZGVmYXVsdCB8fCB3aW5kb3dbJ21vbWVudCddO1xuXG5jb25zdCBpbmplY3Rvck1hcCA9IHtcbiAgICBEaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgaTE4blNlcnZpY2U6IEFic3RyYWN0STE4blNlcnZpY2UsXG4gICAgUGlwZVNlcnZpY2U6IFBpcGVTZXJ2aWNlLFxuICAgIHN0YXRlUGVyc2lzdGVuY2U6IFN0YXRlUGVyc2lzdGVuY2UsXG4gICAgU3Bpbm5lclNlcnZpY2U6IEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsXG4gICAgU3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2U6IFN0YXRlUGVyc2lzdGVuY2UsXG4gICAgVmlld3BvcnQ6IFZpZXdwb3J0LFxuICAgIFRvYXN0ZXJTZXJ2aWNlOiBBYnN0cmFjdFRvYXN0ZXJTZXJ2aWNlLFxuICAgIFV0aWxzOiBVdGlsc1NlcnZpY2UsXG4gICAgQ09OU1RBTlRTOiBDb25zdGFudFNlcnZpY2UsXG4gICAgRklFTERfVFlQRTogRmllbGRUeXBlU2VydmljZSxcbiAgICBGSUVMRF9XSURHRVQ6IEZpZWxkV2lkZ2V0U2VydmljZSxcbiAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZTogRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyXG59O1xuXG5jb25zdCBlbnVtIFBST0pFQ1RfVFlQRSB7XG4gICAgQVBQTElDQVRJT04gPSAnQVBQTElDQVRJT04nLFxuICAgIFBSRUZBQiA9ICdQUkVGQUInLFxuICAgIFRFTVBMQVRFX0JVTkRMRSA9ICdURU1QTEFURUJVTkRMRSdcbn1cblxuY29uc3Qgbm9vcCA9ICguLi5hcmdzKSA9PiB7IH07XG5cbi8vIFdyYXBzIGh0dHBTZXJ2aWNlIHRvIGJlaGF2ZSBhcyBhbmd1bGFyIDEueCAkaHR0cCBzZXJ2aWNlLlxuY29uc3QgZ2V0SHR0cERlcGVuZGVuY3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgaHR0cFNlcnZpY2UgPSB0aGlzLmh0dHBTZXJ2aWNlO1xuICAgIGNvbnN0IGZuID0gZnVuY3Rpb24gKGtleSwgb3B0aW9ucz8pIHtcbiAgICAgICAgY29uc3QgYXJncyA9IEFycmF5LmZyb20oYXJndW1lbnRzKS5zbGljZSgxKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShodHRwU2VydmljZVtrZXldLmFwcGx5KGh0dHBTZXJ2aWNlLCBhcmdzKSk7XG4gICAgfTtcbiAgICBjb25zdCAkaHR0cCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHVuZGVmaW5lZCwgWydzZW5kJywgLi4uQXJyYXkuZnJvbShhcmd1bWVudHMpXSk7XG4gICAgfTtcbiAgICBbJ2dldCcsICdwb3N0JywgJ2hlYWQnLCAncHV0JywgJ2RlbGV0ZScsICdqc29ucCcsICdwYXRjaCddLmZvckVhY2goa2V5ID0+ICRodHRwW2tleV0gPSBmbi5iaW5kKHVuZGVmaW5lZCwga2V5KSk7XG4gICAgcmV0dXJuICRodHRwO1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFwcFJlZiB7XG4gICAgVmFyaWFibGVzOiBhbnkgPSB7fTtcbiAgICBBY3Rpb25zOiBhbnkgPSB7fTtcbiAgICBvbkFwcFZhcmlhYmxlc1JlYWR5ID0gbm9vcDtcbiAgICBvbkJlZm9yZUFwcFJlYWR5ID0gbm9vcDtcbiAgICBvblNlc3Npb25UaW1lb3V0ID0gbm9vcDtcbiAgICBvblBhZ2VSZWFkeSA9IG5vb3A7XG4gICAgb25CZWZvcmVQYWdlTGVhdmUgPSBub29wO1xuICAgIG9uQmVmb3JlU2VydmljZUNhbGwgPSBub29wO1xuICAgIG9uU2VydmljZVN1Y2Nlc3MgPSBub29wO1xuICAgIG9uU2VydmljZUVycm9yID0gbm9vcDtcbiAgICBkeW5hbWljQ29tcG9uZW50Q29udGFpbmVyUmVmID0ge307XG5cbiAgICBwcm9qZWN0TmFtZTogc3RyaW5nO1xuICAgIGlzUHJlZmFiVHlwZTogYm9vbGVhbjtcbiAgICBpc0FwcGxpY2F0aW9uVHlwZTogYm9vbGVhbjtcbiAgICBpc1RhYmxldEFwcGxpY2F0aW9uVHlwZTogYm9vbGVhbjtcbiAgICBpc1RlbXBsYXRlQnVuZGxlVHlwZTogYm9vbGVhbjtcbiAgICBpc1ByaXNtOiBib29sZWFuO1xuXG4gICAgdGFyZ2V0UGxhdGZvcm06IHN0cmluZztcblxuICAgIGFwcExvY2FsZTogYW55O1xuICAgIG1vZGVzOiBhbnk7XG5cbiAgICBjaGFuZ2VMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLnNldFNlbGVjdGVkTG9jYWxlLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgZ2V0U2VsZWN0ZWRMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLmdldFNlbGVjdGVkTG9jYWxlLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgc2V0VGltZXpvbmUgPSB0aGlzLmkxOG5TZXJ2aWNlLnNldFRpbWV6b25lLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgc2V0d2lkZ2V0TG9jYWxlID0gdGhpcy5pMThuU2VydmljZS5zZXR3aWRnZXRMb2NhbGUuYmluZCh0aGlzLmkxOG5TZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgX2V2ZW50Tm90aWZpZXIgPSBuZXcgRXZlbnROb3RpZmllcigpO1xuXG4gICAgbGFuZGluZ1BhZ2VOYW1lID0gZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLmhvbWVQYWdlO1xuXG4gICAgcmVsb2FkKCkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzdGF0ZVBlcnNpc3RlbmNlOiBTdGF0ZVBlcnNpc3RlbmNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNlY3VyaXR5U2VydmljZTogU2VjdXJpdHlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlUmV1c2VTdHJhdGVneTogUm91dGVSZXVzZVN0cmF0ZWd5XG4gICAgKSB7XG5cbiAgICAgICAgY29uc3Qgd21Qcm9qZWN0UHJvcGVydGllcyA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKTtcblxuICAgICAgICB0aGlzLnByb2plY3ROYW1lID0gd21Qcm9qZWN0UHJvcGVydGllcy5uYW1lO1xuICAgICAgICB0aGlzLmlzUHJlZmFiVHlwZSA9IHdtUHJvamVjdFByb3BlcnRpZXMudHlwZSA9PT0gUFJPSkVDVF9UWVBFLlBSRUZBQjtcbiAgICAgICAgdGhpcy5pc0FwcGxpY2F0aW9uVHlwZSA9IHdtUHJvamVjdFByb3BlcnRpZXMudHlwZSA9PT0gUFJPSkVDVF9UWVBFLkFQUExJQ0FUSU9OO1xuICAgICAgICB0aGlzLmlzVGVtcGxhdGVCdW5kbGVUeXBlID0gd21Qcm9qZWN0UHJvcGVydGllcy50eXBlID09PSBQUk9KRUNUX1RZUEUuVEVNUExBVEVfQlVORExFO1xuICAgICAgICB0aGlzLnRhcmdldFBsYXRmb3JtID0gd21Qcm9qZWN0UHJvcGVydGllcy5wbGF0Zm9ybVR5cGU7XG4gICAgICAgIHRoaXMuaXNQcmlzbSA9IHdtUHJvamVjdFByb3BlcnRpZXMudGVtcGxhdGUgPT09IFwiUFJJU01cIjtcblxuXG4gICAgICAgIHRoaXMuaHR0cFNlcnZpY2UucmVnaXN0ZXJPblNlc3Npb25UaW1lb3V0KHRoaXMub240MDEuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgdGhpcy5hcHBMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLmdldEFwcExvY2FsZSgpO1xuICAgICAgICB0aGlzLmh0dHBTZXJ2aWNlLnNldExvY2FsZSh0aGlzLmFwcExvY2FsZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyUGFnZUNhY2hlKHBhZ2VOYW1lPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSBpbnN0YW5jZW9mIFdtRGVmYXVsdFJvdXRlUmV1c2VTdHJhdGVneSkge1xuICAgICAgICAgICAgKHRoaXMucm91dGVSZXVzZVN0cmF0ZWd5IGFzIFdtRGVmYXVsdFJvdXRlUmV1c2VTdHJhdGVneSkucmVzZXQocGFnZU5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5vdGlmeShldmVudE5hbWU6IHN0cmluZywgLi4uZGF0YTogQXJyYXk8YW55Pikge1xuICAgICAgICB0aGlzLl9ldmVudE5vdGlmaWVyLm5vdGlmeS5hcHBseSh0aGlzLl9ldmVudE5vdGlmaWVyLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbXBvcnRNb2R1bGUobW9kdWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmIChtb2R1bGVOYW1lID09PSAnbW9tZW50Jykge1xuICAgICAgICAgICAgcmV0dXJuIG1vbWVudDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChtb2R1bGVOYW1lID09PSAnbW9tZW50LXR6LWRhdGEnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pMThuU2VydmljZS5zZXRUaW1lem9uZUVhcmx5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGVwZW5kZW5jeShpbmpUb2tlbikge1xuICAgICAgICBpZiAoaXNTdHJpbmcoaW5qVG9rZW4pKSB7XG4gICAgICAgICAgICBpZiAoaW5qVG9rZW4gPT09ICdIdHRwU2VydmljZScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0SHR0cERlcGVuZGVuY3kuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBwcm92aWRlckluc3RhbmNlID0gaW5qZWN0b3JNYXBbaW5qVG9rZW5dICYmIHRoaXMuaW5qLmdldChpbmplY3Rvck1hcFtpbmpUb2tlbl0pO1xuICAgICAgICAgICAgaWYgKCFwcm92aWRlckluc3RhbmNlICYmIHRoaXMuaW5qWydyZWNvcmRzJ10/LnZhbHVlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuaW5qWydyZWNvcmRzJ10udmFsdWVzKCk7XG4gICAgICAgICAgICAgICAgbGV0IG5leHQgPSB2YWx1ZXM/Lm5leHQoKTtcbiAgICAgICAgICAgICAgICB3aGlsZSAobmV4dCAmJiAhbmV4dC5kb25lKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0Py52YWx1ZT8udmFsdWU/LmNvbnN0cnVjdG9yPy5TRVJWSUNFX05BTUUgPT09IGlualRva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dC52YWx1ZS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXh0ID0gdmFsdWVzLm5leHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcHJvdmlkZXJJbnN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5pbmouZ2V0KGlualRva2VuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0cmlnZ2VycyB0aGUgb25TZXNzaW9uVGltZW91dCBjYWxsYmFjayBpbiBhcHAuanNcbiAgICAgKi9cbiAgICBvbjQwMSgpIHtcbiAgICAgICAgY29uc3QgdXNlckluZm8gPSBnZXQodGhpcy5zZWN1cml0eVNlcnZpY2UuZ2V0KCksICd1c2VySW5mbycpO1xuICAgICAgICAvLyBpZiBhIHByZXZpb3VzIHVzZXIgZXhpc3RzLCBhIHNlc3Npb24gdGltZSBvdXQgdHJpZ2dlcmVkXG4gICAgICAgIGlmICghaXNFbXB0eSh1c2VySW5mbykpIHtcbiAgICAgICAgICAgIHRoaXMub25TZXNzaW9uVGltZW91dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN1YnNjcmliZShldmVudE5hbWUsIGNhbGxiYWNrOiAoZGF0YTogYW55KSA9PiB2b2lkKTogKCkgPT4gdm9pZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ldmVudE5vdGlmaWVyLnN1YnNjcmliZShldmVudE5hbWUsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbm90aWZ5QXBwKHRlbXBsYXRlLCB0eXBlLCB0aXRsZSkge1xuICAgICAgICBjb25zdCBub3RpZmljYXRpb25BY3Rpb24gPSBnZXQodGhpcywgJ0FjdGlvbnMuYXBwTm90aWZpY2F0aW9uJyk7XG4gICAgICAgIGNvbnN0IEVYQ0xVREVfTk9USUZJQ0FUSU9OX01FU1NBR0VTID0gWydQUk9DRVNTX1JFSkVDVEVEX0lOX1FVRVVFJ107XG4gICAgICAgIGNvbnN0IHNraXBEZWZhdWx0Tm90aWZpY2F0aW9uID0gRVhDTFVERV9OT1RJRklDQVRJT05fTUVTU0FHRVMuaW5kZXhPZih0ZW1wbGF0ZSkgIT09IC0xO1xuICAgICAgICBpZiAobm90aWZpY2F0aW9uQWN0aW9uKSB7XG4gICAgICAgICAgICAvLyBkbyBub3Qgbm90aWZ5IHRoZSBlcnJvciB0byB0aGUgYXBwLCBqdXN0IHRocm93IGl0IGluIGNvbnNvbGVcbiAgICAgICAgICAgIGlmIChza2lwRGVmYXVsdE5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignQXBwIEVycm9yJywgdGVtcGxhdGUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHR5cGUgPSB0eXBlIHx8ICdzdWNjZXNzJztcbiAgICAgICAgICAgIHRlbXBsYXRlID0gbm90aWZpY2F0aW9uQWN0aW9uLmdldE1lc3NhZ2UoKSB8fCB0ZW1wbGF0ZTtcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbkFjdGlvbi5pbnZva2Uoe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpc0RlZmluZWQodGl0bGUpID8gdGl0bGUgOiB0eXBlLnRvVXBwZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgY2xhc3M6IHR5cGUsXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHR5cGUgaXMgZXJyb3IgZG8gbm90IGNsb3NlIHRoZSB0b2FzdHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdHlwZS50b1VwcGVyQ2FzZSgpID09PSAnRVJST1InID8gMCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBkZWZhdWx0IEFjdGlvbiBcImFwcE5vdGlmaWNhdGlvblwiIGRvZXNuXFwndCBleGlzdCBpbiB0aGUgYXBwLiBBcHAgbm90aWZpZWQgZm9sbG93aW5nIGVycm9yOlxcbicsIHRlbXBsYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyIGJpbmQgZXhwcmVzc2lvbnMgZnJvbSBhcHAgdmFyaWFibGVzXG4gICAgICogaXQgd2lsbCBiZSBjYWxsZWQgZnJvbSBhcHAuanMgaW4gZ2VuZXJhdGVkIGFuZ3VsYXIgYXBwXG4gICAgICogQHBhcmFtIGV4cHJlc3Npb25zLCBtYXAgb2YgYmluZCBleHByZXNzaW9uIHZzIGdlbmVyYXRlZCBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3RlckV4cHJlc3Npb25zKGV4cHJlc3Npb25zKSB7XG4gICAgICAgIGVhY2goZXhwcmVzc2lvbnMsIChmbiwgZXhwcikgPT4ge1xuICAgICAgICAgICAgcmVnaXN0ZXJGbkJ5RXhwcihleHByLCBmblswXSwgZm5bMV0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRNb2RlKG1vZGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBzaG91bGRQZXJzaXN0ID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgaHRtbEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2h0bWwnKVswXTtcbiAgICAgICAgLy9odG1sIGVsZW1lbnQgc2FuaXR5IGNoZWNrXG4gICAgICAgIGlmICghaHRtbEVsKSByZXR1cm47XG5cbiAgICAgICAgLy9tb2RlcyBvYmplY3Qgc2FuaXR5IGNoZWNrXG4gICAgICAgIGlmICghaXNPYmplY3QobW9kZXMpKSB7XG4gICAgICAgICAgICBtb2RlcyA9IHt9XG4gICAgICAgIH1cblxuICAgICAgICAvL21vZGVzIGFycmF5IHNhbml0eSBjaGVja1xuICAgICAgICBjb25zdCBtb2Rlc0FyciA9IE9iamVjdC5lbnRyaWVzKG1vZGVzKTtcbiAgICAgICAgaWYgKCFtb2Rlc0Fyci5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICAvL2xvb3Agb3ZlciBtb2RlcyBhbmQgc2V0IGVhY2ggbW9kZSBvbiB0aGUgaHRtbCBlbGVtZW50XG4gICAgICAgIG1vZGVzQXJyLmZvckVhY2goKFttb2RlS2V5LCBtb2RlVmFsdWVdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0RlZmF1bHQgPSBtb2RlVmFsdWUgPT09IE1PREVfQ09OU1RBTlRTLkxJR0hUIHx8IG1vZGVWYWx1ZSA9PT0gTU9ERV9DT05TVEFOVFMuREVGQVVMVDtcblxuICAgICAgICAgICAgaWYgKGlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgIGh0bWxFbC5yZW1vdmVBdHRyaWJ1dGUobW9kZUtleSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGh0bWxFbC5zZXRBdHRyaWJ1dGUobW9kZUtleSwgbW9kZVZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy9pZiBzaG91ZGxQZXJzaXN0IGlzIHRydWUsIHNldCB0aGUgbW9kZXMgb2JqZWN0IGluIHRoZSBsb2NhbFN0b3JhZ2VcbiAgICAgICAgaWYgKHNob3VsZFBlcnNpc3QpIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd3bS1hcHAtbW9kZXMnLCBKU09OLnN0cmluZ2lmeShtb2RlcykpO1xuICAgIH07XG59Il19
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectorRef, Compiler, Injectable, Injector, KeyValueDiffers } from '@angular/core';
2
2
  import { AsyncPipe, CurrencyPipe, DatePipe, DecimalPipe, I18nPluralPipe, I18nSelectPipe, JsonPipe, KeyValuePipe, LowerCasePipe, NgLocalization, PercentPipe, SlicePipe, TitleCasePipe, UpperCasePipe } from '@angular/common';
3
3
  import { CustomPipe, FileExtensionFromMimePipe, FileIconClassPipe, FileSizePipe, FilterPipe, NumberToStringPipe, PrefixPipe, SanitizePipe, StateClassPipe, StringToNumberPipe, SuffixPipe, TemplateReplacePipe, TimeFromNowPipe, ToCurrencyPipe, ToDatePipe, ToNumberPipe, TrustAsPipe } from '@wm/components/base';
4
- import { AbstractI18nService, CustomPipeManager, getSessionStorageItem } from '@wm/core';
4
+ import { AbstractI18nService, App, CustomPipeManager, getSessionStorageItem } from '@wm/core';
5
5
  import { DomSanitizer } from "@angular/platform-browser";
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/platform-browser";
@@ -34,7 +34,7 @@ export class PipeProvider {
34
34
  this.preparePipeMeta(CurrencyPipe, 'currency', true, [this._locale]),
35
35
  this.preparePipeMeta(DatePipe, 'date', true, [this._locale]),
36
36
  this.preparePipeMeta(ToDatePipe, 'toDate', true, [
37
- new DatePipe(this._locale), undefined, this.injector.get(CustomPipeManager)
37
+ new DatePipe(this._locale), undefined, this.injector.get(App), this.injector.get(CustomPipeManager)
38
38
  ]),
39
39
  this.preparePipeMeta(ToNumberPipe, 'toNumber', true, [
40
40
  new DecimalPipe(this._locale),
@@ -51,7 +51,7 @@ export class PipeProvider {
51
51
  new DecimalPipe(this._locale)
52
52
  ]),
53
53
  this.preparePipeMeta(StringToNumberPipe, 'stringToNumber', true),
54
- this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(CustomPipeManager)]),
54
+ this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(App), this.injector.get(CustomPipeManager)]),
55
55
  this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),
56
56
  this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer]),
57
57
  this.preparePipeMeta(TemplateReplacePipe, 'templateReplace', true),
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
121
121
  providedIn: 'root'
122
122
  }]
123
123
  }], ctorParameters: () => [{ type: i0.Compiler }, { type: i0.Injector }, { type: i1.DomSanitizer }, { type: i2.AbstractI18nService }] });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9waXBlLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixRQUFRLEVBQ1IsV0FBVyxFQUNYLGNBQWMsRUFDZCxjQUFjLEVBQ2QsUUFBUSxFQUNSLFlBQVksRUFDWixhQUFhLEVBQ2IsY0FBYyxFQUNkLFdBQVcsRUFDWCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGFBQWEsRUFDaEIsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QixPQUFPLEVBQ0gsVUFBVSxFQUNWLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFlBQVksRUFDWixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGNBQWMsRUFDZCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN2RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFLdkQsTUFBTSxPQUFPLFlBQVk7SUFnQnJCLFdBQVc7UUFDUCxJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2IsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxpQkFBaUIs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LFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQUk7UUFDWixNQUFNLEVBQ0YsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQ3pDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQztZQUNELE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzsrR0ExSFEsWUFBWTttSEFBWixZQUFZLGNBRlQsTUFBTTs7NEZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21waWxlciwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIEtleVZhbHVlRGlmZmVycywgUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFzeW5jUGlwZSxcbiAgICBDdXJyZW5jeVBpcGUsXG4gICAgRGF0ZVBpcGUsXG4gICAgRGVjaW1hbFBpcGUsXG4gICAgSTE4blBsdXJhbFBpcGUsXG4gICAgSTE4blNlbGVjdFBpcGUsXG4gICAgSnNvblBpcGUsXG4gICAgS2V5VmFsdWVQaXBlLFxuICAgIExvd2VyQ2FzZVBpcGUsXG4gICAgTmdMb2NhbGl6YXRpb24sXG4gICAgUGVyY2VudFBpcGUsXG4gICAgU2xpY2VQaXBlLFxuICAgIFRpdGxlQ2FzZVBpcGUsXG4gICAgVXBwZXJDYXNlUGlwZVxufSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICAgIEN1c3RvbVBpcGUsXG4gICAgRmlsZUV4dGVuc2lvbkZyb21NaW1lUGlwZSxcbiAgICBGaWxlSWNvbkNsYXNzUGlwZSxcbiAgICBGaWxlU2l6ZVBpcGUsXG4gICAgRmlsdGVyUGlwZSxcbiAgICBOdW1iZXJUb1N0cmluZ1BpcGUsXG4gICAgUHJlZml4UGlwZSxcbiAgICBTYW5pdGl6ZVBpcGUsXG4gICAgU3RhdGVDbGFzc1BpcGUsXG4gICAgU3RyaW5nVG9OdW1iZXJQaXBlLFxuICAgIFN1ZmZpeFBpcGUsXG4gICAgVGVtcGxhdGVSZXBsYWNlUGlwZSxcbiAgICBUaW1lRnJvbU5vd1BpcGUsXG4gICAgVG9DdXJyZW5jeVBpcGUsXG4gICAgVG9EYXRlUGlwZSxcbiAgICBUb051bWJlclBpcGUsXG4gICAgVHJ1c3RBc1BpcGVcbn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge0Fic3RyYWN0STE4blNlcnZpY2UsIEN1c3RvbVBpcGVNYW5hZ2VyLCBnZXRTZXNzaW9uU3RvcmFnZUl0ZW19IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBpcGVQcm92aWRlciB7XG4gICAgX3BpcGVNZXRhO1xuICAgIF9sb2NhbGUgPSBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0oJ3NlbGVjdGVkTG9jYWxlJykgfHwgJ2VuJztcbiAgICBmb3JtYXRzQnlMb2NhbGU7XG4gICAgcHJlcGFyZVBpcGVNZXRhID0gKFxuICAgICAgICByZWZlcmVuY2U6IFBpcGUsXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgcHVyZTogYm9vbGVhbixcbiAgICAgICAgZGlEZXBzID0gW11cbiAgICApID0+ICh7XG4gICAgICAgIHR5cGU6IHsgcmVmZXJlbmNlLCBkaURlcHMgfSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcHVyZVxuICAgIH0pO1xuICAgIF9waXBlRGF0YSA9IFtdO1xuXG4gICAgc2V0UGlwZURhdGEoKSB7XG4gICAgICAgIHRoaXMuX3BpcGVEYXRhID0gW1xuICAgICAgICAgICAgLy8gVE9ETyB8IE5FRUQgVE8gQkUgVEVTVEVEXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShBc3luY1BpcGUsICdhc3luYycsIGZhbHNlLCBbQ2hhbmdlRGV0ZWN0b3JSZWZdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFNsaWNlUGlwZSwgJ3NsaWNlJywgZmFsc2UpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoUGVyY2VudFBpcGUsICdwZXJjZW50JywgdHJ1ZSwgW3RoaXMuX2xvY2FsZV0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoSTE4blBsdXJhbFBpcGUsICdpMThuUGx1cmFsJywgdHJ1ZSwgW1xuICAgICAgICAgICAgICAgIE5nTG9jYWxpemF0aW9uXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKEkxOG5TZWxlY3RQaXBlLCAnaTE4blNlbGVjdCcsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoS2V5VmFsdWVQaXBlLCAna2V5dmFsdWUnLCBmYWxzZSwgW1xuICAgICAgICAgICAgICAgIEtleVZhbHVlRGlmZmVyc1xuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShGaWxlSWNvbkNsYXNzUGlwZSwgJ2ZpbGVJY29uQ2xhc3MnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFxuICAgICAgICAgICAgICAgIEZpbGVFeHRlbnNpb25Gcm9tTWltZVBpcGUsXG4gICAgICAgICAgICAgICAgJ2ZpbGVFeHRlbnNpb25Gcm9tTWltZScsXG4gICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFN0YXRlQ2xhc3NQaXBlLCAnc3RhdGVDbGFzcycsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoRmlsZVNpemVQaXBlLCAnZmlsZXNpemUnLCB0cnVlKSxcbiAgICAgICAgICAgIC8vIFRFU1RFRFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoRmlsdGVyUGlwZSwgJ2ZpbHRlcicsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoVXBwZXJDYXNlUGlwZSwgJ3VwcGVyY2FzZScsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoTG93ZXJDYXNlUGlwZSwgJ2xvd2VyY2FzZScsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoSnNvblBpcGUsICdqc29uJywgZmFsc2UpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoRGVjaW1hbFBpcGUsICdudW1iZXInLCB0cnVlLCBbdGhpcy5fbG9jYWxlXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShUaXRsZUNhc2VQaXBlLCAndGl0bGVjYXNlJywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShDdXJyZW5jeVBpcGUsICdjdXJyZW5jeScsIHRydWUsIFt0aGlzLl9sb2NhbGVdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKERhdGVQaXBlLCAnZGF0ZScsIHRydWUsIFt0aGlzLl9sb2NhbGVdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRvRGF0ZVBpcGUsICd0b0RhdGUnLCB0cnVlLCBbXG4gICAgICAgICAgICAgICAgbmV3IERhdGVQaXBlKHRoaXMuX2xvY2FsZSksIHVuZGVmaW5lZCwgdGhpcy5pbmplY3Rvci5nZXQoQ3VzdG9tUGlwZU1hbmFnZXIpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRvTnVtYmVyUGlwZSwgJ3RvTnVtYmVyJywgdHJ1ZSwgW1xuICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsUGlwZSh0aGlzLl9sb2NhbGUpLFxuICAgICAgICAgICAgICAgIHRoaXMuaTE4c2VydmljZVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShUb0N1cnJlbmN5UGlwZSwgJ3RvQ3VycmVuY3knLCB0cnVlLCBbXG4gICAgICAgICAgICAgICAgbmV3IERlY2ltYWxQaXBlKHRoaXMuX2xvY2FsZSksXG4gICAgICAgICAgICAgICAgdGhpcy5pMThzZXJ2aWNlXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFByZWZpeFBpcGUsICdwcmVmaXgnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFN1ZmZpeFBpcGUsICdzdWZmaXgnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRpbWVGcm9tTm93UGlwZSwgJ3RpbWVGcm9tTm93JywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShOdW1iZXJUb1N0cmluZ1BpcGUsICdudW1iZXJUb1N0cmluZycsIHRydWUsIFtcbiAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbFBpcGUodGhpcy5fbG9jYWxlKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShTdHJpbmdUb051bWJlclBpcGUsICdzdHJpbmdUb051bWJlcicsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoQ3VzdG9tUGlwZSwgJ2N1c3RvbScsIHRydWUsIFt0aGlzLmluamVjdG9yLmdldChDdXN0b21QaXBlTWFuYWdlcildKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRydXN0QXNQaXBlLCAndHJ1c3RBcycsIHRydWUsIFt0aGlzLmRvbVNhbml0aXplcl0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoU2FuaXRpemVQaXBlLCAnc2FuaXRpemUnLCB0cnVlLCBbdGhpcy5kb21TYW5pdGl6ZXJdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRlbXBsYXRlUmVwbGFjZVBpcGUsICd0ZW1wbGF0ZVJlcGxhY2UnLCB0cnVlKSxcbiAgICAgICAgXTtcbiAgICB9XG5cblxuICAgIHVua25vd25QaXBlKG5hbWUpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFRoZSBwaXBlICcke25hbWV9JyBjb3VsZCBub3QgYmUgZm91bmRgKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBpbGVyOiBDb21waWxlciwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgZG9tU2FuaXRpemVyOkRvbVNhbml0aXplciwgcHJpdmF0ZSBpMThzZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuX3BpcGVNZXRhID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLnNldFBpcGVEYXRhKCk7XG4gICAgICAgIHRoaXMuX3BpcGVEYXRhLmZvckVhY2godiA9PiB7XG4gICAgICAgICAgICB0aGlzLl9waXBlTWV0YS5zZXQodi5uYW1lLCB2KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybWF0c0J5TG9jYWxlID0gdGhpcy5pMThzZXJ2aWNlPyB0aGlzLmkxOHNlcnZpY2UuZ2V0d2lkZ2V0TG9jYWxlKCkgOiB7fTtcbiAgICB9XG5cbiAgICBtZXRhKG5hbWUpIHtcbiAgICAgICAgY29uc3QgbWV0YSA9IHRoaXMuX3BpcGVNZXRhLmdldChuYW1lKTtcbiAgICAgICAgaWYgKCFtZXRhKSB7XG4gICAgICAgICAgICB0aGlzLnVua25vd25QaXBlKG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXRhO1xuICAgIH1cblxuICAgIGdldFBpcGVOYW1lVnNJc1B1cmVNYXAoKSB7XG4gICAgICAgIGNvbnN0IF9tYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuX3BpcGVNZXRhLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgIF9tYXAuc2V0KGssIHYucHVyZSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX21hcDtcbiAgICB9XG5cbiAgICByZXNvbHZlRGVwKGRlcCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoZGVwLnRva2VuLmlkZW50aWZpZXIucmVmZXJlbmNlKTtcbiAgICB9XG5cbiAgICBnZXRJbnN0YW5jZShuYW1lKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHR5cGU6IHsgcmVmZXJlbmNlOiByZWYsIGRpRGVwczogZGVwcyB9XG4gICAgICAgIH0gPSB0aGlzLm1ldGEobmFtZSk7XG4gICAgICAgIGlmICghcmVmKSB7XG4gICAgICAgICAgICB0aGlzLnVua25vd25QaXBlKG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkZXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyByZWYoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2goZGVwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXcgcmVmKC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9waXBlLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixRQUFRLEVBQ1IsV0FBVyxFQUNYLGNBQWMsRUFDZCxjQUFjLEVBQ2QsUUFBUSxFQUNSLFlBQVksRUFDWixhQUFhLEVBQ2IsY0FBYyxFQUNkLFdBQVcsRUFDWCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGFBQWEsRUFDaEIsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QixPQUFPLEVBQ0gsVUFBVSxFQUNWLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFlBQVksRUFDWixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGNBQWMsRUFDZCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDNUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7O0FBS3ZELE1BQU0sT0FBTyxZQUFZO0lBZ0JyQixXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNiLDJCQUEyQjtZQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENB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SUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBRztRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFJO1FBQ1osTUFBTSxFQUNGLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUN6QyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNyQixDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNoQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLENBQUM7WUFDRCxPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7K0dBMUhRLFlBQVk7bUhBQVosWUFBWSxjQUZULE1BQU07OzRGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcGlsZXIsIEluamVjdGFibGUsIEluamVjdG9yLCBLZXlWYWx1ZURpZmZlcnMsIFBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBc3luY1BpcGUsXG4gICAgQ3VycmVuY3lQaXBlLFxuICAgIERhdGVQaXBlLFxuICAgIERlY2ltYWxQaXBlLFxuICAgIEkxOG5QbHVyYWxQaXBlLFxuICAgIEkxOG5TZWxlY3RQaXBlLFxuICAgIEpzb25QaXBlLFxuICAgIEtleVZhbHVlUGlwZSxcbiAgICBMb3dlckNhc2VQaXBlLFxuICAgIE5nTG9jYWxpemF0aW9uLFxuICAgIFBlcmNlbnRQaXBlLFxuICAgIFNsaWNlUGlwZSxcbiAgICBUaXRsZUNhc2VQaXBlLFxuICAgIFVwcGVyQ2FzZVBpcGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgICBDdXN0b21QaXBlLFxuICAgIEZpbGVFeHRlbnNpb25Gcm9tTWltZVBpcGUsXG4gICAgRmlsZUljb25DbGFzc1BpcGUsXG4gICAgRmlsZVNpemVQaXBlLFxuICAgIEZpbHRlclBpcGUsXG4gICAgTnVtYmVyVG9TdHJpbmdQaXBlLFxuICAgIFByZWZpeFBpcGUsXG4gICAgU2FuaXRpemVQaXBlLFxuICAgIFN0YXRlQ2xhc3NQaXBlLFxuICAgIFN0cmluZ1RvTnVtYmVyUGlwZSxcbiAgICBTdWZmaXhQaXBlLFxuICAgIFRlbXBsYXRlUmVwbGFjZVBpcGUsXG4gICAgVGltZUZyb21Ob3dQaXBlLFxuICAgIFRvQ3VycmVuY3lQaXBlLFxuICAgIFRvRGF0ZVBpcGUsXG4gICAgVG9OdW1iZXJQaXBlLFxuICAgIFRydXN0QXNQaXBlXG59IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHtBYnN0cmFjdEkxOG5TZXJ2aWNlLCBBcHAsIEN1c3RvbVBpcGVNYW5hZ2VyLCBnZXRTZXNzaW9uU3RvcmFnZUl0ZW19IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBpcGVQcm92aWRlciB7XG4gICAgX3BpcGVNZXRhO1xuICAgIF9sb2NhbGUgPSBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0oJ3NlbGVjdGVkTG9jYWxlJykgfHwgJ2VuJztcbiAgICBmb3JtYXRzQnlMb2NhbGU7XG4gICAgcHJlcGFyZVBpcGVNZXRhID0gKFxuICAgICAgICByZWZlcmVuY2U6IFBpcGUsXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgcHVyZTogYm9vbGVhbixcbiAgICAgICAgZGlEZXBzID0gW11cbiAgICApID0+ICh7XG4gICAgICAgIHR5cGU6IHsgcmVmZXJlbmNlLCBkaURlcHMgfSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcHVyZVxuICAgIH0pO1xuICAgIF9waXBlRGF0YSA9IFtdO1xuXG4gICAgc2V0UGlwZURhdGEoKSB7XG4gICAgICAgIHRoaXMuX3BpcGVEYXRhID0gW1xuICAgICAgICAgICAgLy8gVE9ETyB8IE5FRUQgVE8gQkUgVEVTVEVEXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShBc3luY1BpcGUsICdhc3luYycsIGZhbHNlLCBbQ2hhbmdlRGV0ZWN0b3JSZWZdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFNsaWNlUGlwZSwgJ3NsaWNlJywgZmFsc2UpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoUGVyY2VudFBpcGUsICdwZXJjZW50JywgdHJ1ZSwgW3RoaXMuX2xvY2FsZV0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoSTE4blBsdXJhbFBpcGUsICdpMThuUGx1cmFsJywgdHJ1ZSwgW1xuICAgICAgICAgICAgICAgIE5nTG9jYWxpemF0aW9uXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKEkxOG5TZWxlY3RQaXBlLCAnaTE4blNlbGVjdCcsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoS2V5VmFsdWVQaXBlLCAna2V5dmFsdWUnLCBmYWxzZSwgW1xuICAgICAgICAgICAgICAgIEtleVZhbHVlRGlmZmVyc1xuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShGaWxlSWNvbkNsYXNzUGlwZSwgJ2ZpbGVJY29uQ2xhc3MnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFxuICAgICAgICAgICAgICAgIEZpbGVFeHRlbnNpb25Gcm9tTWltZVBpcGUsXG4gICAgICAgICAgICAgICAgJ2ZpbGVFeHRlbnNpb25Gcm9tTWltZScsXG4gICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFN0YXRlQ2xhc3NQaXBlLCAnc3RhdGVDbGFzcycsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoRmlsZVNpemVQaXBlLCAnZmlsZXNpemUnLCB0cnVlKSxcbiAgICAgICAgICAgIC8vIFRFU1RFRFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoRmlsdGVyUGlwZSwgJ2ZpbHRlcicsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoVXBwZXJDYXNlUGlwZSwgJ3VwcGVyY2FzZScsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoTG93ZXJDYXNlUGlwZSwgJ2xvd2VyY2FzZScsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoSnNvblBpcGUsICdqc29uJywgZmFsc2UpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoRGVjaW1hbFBpcGUsICdudW1iZXInLCB0cnVlLCBbdGhpcy5fbG9jYWxlXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShUaXRsZUNhc2VQaXBlLCAndGl0bGVjYXNlJywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShDdXJyZW5jeVBpcGUsICdjdXJyZW5jeScsIHRydWUsIFt0aGlzLl9sb2NhbGVdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKERhdGVQaXBlLCAnZGF0ZScsIHRydWUsIFt0aGlzLl9sb2NhbGVdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRvRGF0ZVBpcGUsICd0b0RhdGUnLCB0cnVlLCBbXG4gICAgICAgICAgICAgICAgbmV3IERhdGVQaXBlKHRoaXMuX2xvY2FsZSksIHVuZGVmaW5lZCwgdGhpcy5pbmplY3Rvci5nZXQoQXBwKSwgdGhpcy5pbmplY3Rvci5nZXQoQ3VzdG9tUGlwZU1hbmFnZXIpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRvTnVtYmVyUGlwZSwgJ3RvTnVtYmVyJywgdHJ1ZSwgW1xuICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsUGlwZSh0aGlzLl9sb2NhbGUpLFxuICAgICAgICAgICAgICAgIHRoaXMuaTE4c2VydmljZVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShUb0N1cnJlbmN5UGlwZSwgJ3RvQ3VycmVuY3knLCB0cnVlLCBbXG4gICAgICAgICAgICAgICAgbmV3IERlY2ltYWxQaXBlKHRoaXMuX2xvY2FsZSksXG4gICAgICAgICAgICAgICAgdGhpcy5pMThzZXJ2aWNlXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFByZWZpeFBpcGUsICdwcmVmaXgnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFN1ZmZpeFBpcGUsICdzdWZmaXgnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRpbWVGcm9tTm93UGlwZSwgJ3RpbWVGcm9tTm93JywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShOdW1iZXJUb1N0cmluZ1BpcGUsICdudW1iZXJUb1N0cmluZycsIHRydWUsIFtcbiAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbFBpcGUodGhpcy5fbG9jYWxlKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShTdHJpbmdUb051bWJlclBpcGUsICdzdHJpbmdUb051bWJlcicsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoQ3VzdG9tUGlwZSwgJ2N1c3RvbScsIHRydWUsIFt0aGlzLmluamVjdG9yLmdldChBcHApLCB0aGlzLmluamVjdG9yLmdldChDdXN0b21QaXBlTWFuYWdlcildKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRydXN0QXNQaXBlLCAndHJ1c3RBcycsIHRydWUsIFt0aGlzLmRvbVNhbml0aXplcl0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoU2FuaXRpemVQaXBlLCAnc2FuaXRpemUnLCB0cnVlLCBbdGhpcy5kb21TYW5pdGl6ZXJdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRlbXBsYXRlUmVwbGFjZVBpcGUsICd0ZW1wbGF0ZVJlcGxhY2UnLCB0cnVlKSxcbiAgICAgICAgXTtcbiAgICB9XG5cblxuICAgIHVua25vd25QaXBlKG5hbWUpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFRoZSBwaXBlICcke25hbWV9JyBjb3VsZCBub3QgYmUgZm91bmRgKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBpbGVyOiBDb21waWxlciwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgZG9tU2FuaXRpemVyOkRvbVNhbml0aXplciwgcHJpdmF0ZSBpMThzZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuX3BpcGVNZXRhID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLnNldFBpcGVEYXRhKCk7XG4gICAgICAgIHRoaXMuX3BpcGVEYXRhLmZvckVhY2godiA9PiB7XG4gICAgICAgICAgICB0aGlzLl9waXBlTWV0YS5zZXQodi5uYW1lLCB2KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybWF0c0J5TG9jYWxlID0gdGhpcy5pMThzZXJ2aWNlPyB0aGlzLmkxOHNlcnZpY2UuZ2V0d2lkZ2V0TG9jYWxlKCkgOiB7fTtcbiAgICB9XG5cbiAgICBtZXRhKG5hbWUpIHtcbiAgICAgICAgY29uc3QgbWV0YSA9IHRoaXMuX3BpcGVNZXRhLmdldChuYW1lKTtcbiAgICAgICAgaWYgKCFtZXRhKSB7XG4gICAgICAgICAgICB0aGlzLnVua25vd25QaXBlKG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXRhO1xuICAgIH1cblxuICAgIGdldFBpcGVOYW1lVnNJc1B1cmVNYXAoKSB7XG4gICAgICAgIGNvbnN0IF9tYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuX3BpcGVNZXRhLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgIF9tYXAuc2V0KGssIHYucHVyZSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX21hcDtcbiAgICB9XG5cbiAgICByZXNvbHZlRGVwKGRlcCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoZGVwLnRva2VuLmlkZW50aWZpZXIucmVmZXJlbmNlKTtcbiAgICB9XG5cbiAgICBnZXRJbnN0YW5jZShuYW1lKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHR5cGU6IHsgcmVmZXJlbmNlOiByZWYsIGRpRGVwczogZGVwcyB9XG4gICAgICAgIH0gPSB0aGlzLm1ldGEobmFtZSk7XG4gICAgICAgIGlmICghcmVmKSB7XG4gICAgICAgICAgICB0aGlzLnVua25vd25QaXBlKG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkZXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyByZWYoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2goZGVwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXcgcmVmKC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -5,7 +5,7 @@ import { ActivatedRoute, Router, RouterOutlet, NavigationStart, NavigationEnd, N
5
5
  import * as i5 from '@angular/common';
6
6
  import { DOCUMENT, ɵgetDOM as _getDOM, CommonModule, AsyncPipe, SlicePipe, PercentPipe, I18nPluralPipe, NgLocalization, I18nSelectPipe, KeyValuePipe, UpperCasePipe, LowerCasePipe, JsonPipe, DecimalPipe, TitleCasePipe, CurrencyPipe, DatePipe } from '@angular/common';
7
7
  import * as i1 from '@wm/core';
8
- import { $appDigest, isDefined, getWmProjectProperties, triggerFn, fetchContent, _WM_APP_PROJECT, stringStartsWith, loadStyleSheets, loadScripts, noop as noop$1, App, AbstractI18nService, ScriptLoaderService, Viewport, UtilsService, $invokeWatchers, registerFnByExpr, LRUCache, muteWatchers, AbstractNavigationService, isIos, isAndroid, unMuteWatchers, $watch, isIE, CustomPipeManager, getSessionStorageItem, setPipeProvider, DynamicComponentRefProvider, FieldWidgetService, FieldTypeService, ConstantService, AbstractToasterService, StatePersistence, AbstractSpinnerService, AbstractDialogService, EventNotifier, setCSS, setSessionStorageItem, replace, setNgZone, setAppRef, addClass, removeClass, extendProto, $parseExpr, AppDefaults, isObject as isObject$1, isIphone, isIpod, isIpad } from '@wm/core';
8
+ import { $appDigest, isDefined, getWmProjectProperties, triggerFn, fetchContent, _WM_APP_PROJECT, stringStartsWith, loadStyleSheets, loadScripts, noop as noop$1, App, AbstractI18nService, ScriptLoaderService, Viewport, UtilsService, $invokeWatchers, registerFnByExpr, $unwatchAllByScope, LRUCache, muteWatchers, AbstractNavigationService, isIos, isAndroid, unMuteWatchers, $watch, isIE, CustomPipeManager, getSessionStorageItem, setPipeProvider, DynamicComponentRefProvider, FieldWidgetService, FieldTypeService, ConstantService, AbstractToasterService, StatePersistence, AbstractSpinnerService, AbstractDialogService, EventNotifier, setCSS, setSessionStorageItem, replace, setNgZone, setAppRef, addClass, removeClass, extendProto, $parseExpr, AppDefaults, isObject as isObject$1, isIphone, isIpod, isIpad } from '@wm/core';
9
9
  import * as i2 from '@wm/security';
10
10
  import { SecurityService } from '@wm/security';
11
11
  import * as i4 from '@wm/variables';
@@ -923,6 +923,14 @@ class BasePartialComponent extends FragmentMonitor {
923
923
  });
924
924
  }
925
925
  ngOnDestroy() {
926
+ // MEMORY LEAK FIX: Unwatch all Partial-scoped watchers for THIS specific partial when partial is destroyed
927
+ // Only unwatch watchers for this partial, not all partials (other partials may still be on the page)
928
+ if (this.partialName) {
929
+ const removedCount = $unwatchAllByScope('Partial', this.partialName);
930
+ if (removedCount > 0) {
931
+ console.log(`🧹 Cleaned up ${removedCount} Partial-scoped watcher(s) for partial ${this.partialName}`);
932
+ }
933
+ }
926
934
  this.destroy$.complete();
927
935
  }
928
936
  ngOnAttach(refreshData) {
@@ -1368,6 +1376,13 @@ class BasePageComponent extends FragmentMonitor {
1368
1376
  });
1369
1377
  }
1370
1378
  ngOnDestroy() {
1379
+ // MEMORY LEAK FIX: Unwatch all Page-scoped watchers for THIS specific page when page is destroyed
1380
+ if (this.pageName) {
1381
+ const removedCount = $unwatchAllByScope('Page', this.pageName);
1382
+ if (removedCount > 0) {
1383
+ console.log(`🧹 Cleaned up ${removedCount} Page-scoped watcher(s) for page ${this.pageName}`);
1384
+ }
1385
+ }
1371
1386
  //this.captureApplicationThumbnail();
1372
1387
  this.savePageSnapShot();
1373
1388
  this.destroy$.complete();
@@ -1962,6 +1977,14 @@ class BasePrefabComponent extends FragmentMonitor {
1962
1977
  });
1963
1978
  }
1964
1979
  ngOnDestroy() {
1980
+ // MEMORY LEAK FIX: Unwatch all Prefab-scoped watchers for THIS specific prefab when prefab is destroyed
1981
+ // Only unwatch watchers for this prefab, not all prefabs (other prefabs may still be on the page)
1982
+ if (this.prefabName) {
1983
+ const removedCount = $unwatchAllByScope('Prefab', this.prefabName);
1984
+ if (removedCount > 0) {
1985
+ console.log(`🧹 Cleaned up ${removedCount} Prefab-scoped watcher(s) for prefab ${this.prefabName}`);
1986
+ }
1987
+ }
1965
1988
  this.destroy$.complete();
1966
1989
  }
1967
1990
  // user overrides this
@@ -2718,6 +2741,13 @@ class BaseSpaPageComponent extends FragmentMonitor {
2718
2741
  });
2719
2742
  }
2720
2743
  ngOnDestroy() {
2744
+ // MEMORY LEAK FIX: Unwatch all Page-scoped watchers for THIS specific page when page is destroyed
2745
+ if (this.pageName) {
2746
+ const removedCount = $unwatchAllByScope('Page', this.pageName);
2747
+ if (removedCount > 0) {
2748
+ console.log(`🧹 Cleaned up ${removedCount} Page-scoped watcher(s) for page ${this.pageName}`);
2749
+ }
2750
+ }
2721
2751
  this.savePageSnapShot();
2722
2752
  this.destroy$.complete();
2723
2753
  }
@@ -3107,7 +3137,7 @@ class PipeProvider {
3107
3137
  this.preparePipeMeta(CurrencyPipe, 'currency', true, [this._locale]),
3108
3138
  this.preparePipeMeta(DatePipe, 'date', true, [this._locale]),
3109
3139
  this.preparePipeMeta(ToDatePipe, 'toDate', true, [
3110
- new DatePipe(this._locale), undefined, this.injector.get(CustomPipeManager)
3140
+ new DatePipe(this._locale), undefined, this.injector.get(App), this.injector.get(CustomPipeManager)
3111
3141
  ]),
3112
3142
  this.preparePipeMeta(ToNumberPipe, 'toNumber', true, [
3113
3143
  new DecimalPipe(this._locale),
@@ -3124,7 +3154,7 @@ class PipeProvider {
3124
3154
  new DecimalPipe(this._locale)
3125
3155
  ]),
3126
3156
  this.preparePipeMeta(StringToNumberPipe, 'stringToNumber', true),
3127
- this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(CustomPipeManager)]),
3157
+ this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(App), this.injector.get(CustomPipeManager)]),
3128
3158
  this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),
3129
3159
  this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer]),
3130
3160
  this.preparePipeMeta(TemplateReplacePipe, 'templateReplace', true),
@@ -3286,6 +3316,7 @@ class AppRef {
3286
3316
  this.isApplicationType = wmProjectProperties.type === "APPLICATION" /* PROJECT_TYPE.APPLICATION */;
3287
3317
  this.isTemplateBundleType = wmProjectProperties.type === "TEMPLATEBUNDLE" /* PROJECT_TYPE.TEMPLATE_BUNDLE */;
3288
3318
  this.targetPlatform = wmProjectProperties.platformType;
3319
+ this.isPrism = wmProjectProperties.template === "PRISM";
3289
3320
  this.httpService.registerOnSessionTimeout(this.on401.bind(this));
3290
3321
  this.appLocale = this.i18nService.getAppLocale();
3291
3322
  this.httpService.setLocale(this.appLocale);
@@ -4567,6 +4598,11 @@ class AppComponent {
4567
4598
  $invokeWatchers();
4568
4599
  }
4569
4600
  ngOnDestroy() {
4601
+ // MEMORY LEAK FIX: Unwatch all App-scoped watchers when app is destroyed
4602
+ const removedCount = $unwatchAllByScope('App');
4603
+ if (removedCount > 0) {
4604
+ console.log(`🧹 Cleaned up ${removedCount} App-scoped watcher(s) on app destroy`);
4605
+ }
4570
4606
  if (this.navigationEndSubscription) {
4571
4607
  this.navigationEndSubscription.unsubscribe();
4572
4608
  }