@wavemaker/app-ng-runtime 12.0.0-next.45190 → 12.0.0-next.45196

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 (106) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +7 -7
  2. app-ng-runtime/build-task/esm2022/containers/accordion/accordion-pane/accordion-pane.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +3 -3
  4. app-ng-runtime/build-task/esm2022/containers/wizard/wizard.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -3
  6. app-ng-runtime/build-task/esm2022/input/chips/chips.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +2 -2
  8. app-ng-runtime/build-task/fesm2022/index.mjs +7 -7
  9. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  10. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +6 -1
  11. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +1 -0
  12. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +7 -2
  13. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +6 -1
  14. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  15. app-ng-runtime/components/base/bundles/index.umd.js +0 -5
  16. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +1 -6
  17. app-ng-runtime/components/base/fesm2022/index.mjs +0 -5
  18. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  19. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +2 -0
  20. app-ng-runtime/components/basic/default/bundles/index.umd.js +18 -7
  21. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +13 -5
  22. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +7 -4
  23. app-ng-runtime/components/basic/default/fesm2022/index.mjs +18 -7
  24. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  25. app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
  26. app-ng-runtime/components/basic/progress/bundles/index.umd.js +7 -3
  27. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +8 -4
  28. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +7 -3
  29. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  30. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -0
  31. app-ng-runtime/components/basic/search/bundles/index.umd.js +7 -2
  32. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +8 -3
  33. app-ng-runtime/components/basic/search/fesm2022/index.mjs +7 -2
  34. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/basic/search/search.component.d.ts +3 -2
  36. app-ng-runtime/components/chart/bundles/index.umd.js +2 -1
  37. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +3 -2
  38. app-ng-runtime/components/chart/fesm2022/index.mjs +2 -1
  39. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  40. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
  41. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
  42. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
  43. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
  44. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
  45. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  46. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +6 -6
  47. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +7 -7
  48. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +6 -6
  49. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  50. app-ng-runtime/components/data/list/bundles/index.umd.js +20 -12
  51. app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +10 -1
  52. app-ng-runtime/components/data/list/esm2022/list.component.mjs +13 -13
  53. app-ng-runtime/components/data/list/fesm2022/index.mjs +21 -13
  54. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  55. app-ng-runtime/components/input/chips/bundles/index.umd.js +24 -7
  56. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +25 -8
  57. app-ng-runtime/components/input/chips/fesm2022/index.mjs +24 -7
  58. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  59. app-ng-runtime/components/input/default/bundles/index.umd.js +21 -5
  60. app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +3 -3
  61. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +20 -4
  62. app-ng-runtime/components/input/default/fesm2022/index.mjs +21 -5
  63. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  64. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +3 -1
  65. app-ng-runtime/components/input/epoch/bundles/index.umd.js +22 -14
  66. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +13 -6
  67. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +4 -4
  68. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  69. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +4 -4
  70. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +19 -11
  71. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  72. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +80 -64
  73. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +80 -65
  74. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +3 -2
  75. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +81 -65
  76. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  77. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +7 -2
  78. app-ng-runtime/components/input/rating/bundles/index.umd.js +2 -2
  79. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +3 -3
  80. app-ng-runtime/components/input/rating/fesm2022/index.mjs +2 -2
  81. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  82. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
  83. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
  84. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
  85. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  86. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +10 -3
  87. app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +11 -4
  88. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +10 -3
  89. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  90. app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
  91. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -2
  92. app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +3 -3
  93. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -2
  94. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  95. app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +1 -1
  96. app-ng-runtime/package.json +1 -1
  97. app-ng-runtime/runtime/base/bundles/index.umd.js +4 -0
  98. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +5 -1
  99. app-ng-runtime/runtime/base/fesm2022/index.mjs +4 -0
  100. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  101. app-ng-runtime/scripts/datatable/datatable.js +9 -5
  102. app-ng-runtime/variables/bundles/index.umd.js +34 -16
  103. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
  104. app-ng-runtime/variables/fesm2022/index.mjs +34 -16
  105. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  106. app-ng-runtime/variables/manager/variable/web-socket-variable.manager.d.ts +0 -4
@@ -166,7 +166,7 @@ var AnimationType;
166
166
  class LeftPanelDirective extends StylableComponent {
167
167
  static { this.initializeProps = registerProps(); }
168
168
  //If "spa" attribute is set LayoutDirective will present and PageDirective is undefined else PageDirective will present and LayoutDirective is undefined
169
- constructor(app, page, layout, inj, router, explicitContext, navtype) {
169
+ constructor(app, page, layout, inj, router, explicitContext, navtype, navHeight) {
170
170
  super(inj, WIDGET_CONFIG, explicitContext);
171
171
  this.app = app;
172
172
  this.page = page;
@@ -190,6 +190,10 @@ class LeftPanelDirective extends StylableComponent {
190
190
  if (!navtype)
191
191
  navtype = 'drawer';
192
192
  this.$element.addClass(getNavClass(navtype));
193
+ if (navHeight) {
194
+ this.$element.addClass(getNavClass(navHeight));
195
+ addClass(this.$page[0], getNavClass(navHeight));
196
+ }
193
197
  }
194
198
  collapse() {
195
199
  addClass(this.nativeElement, 'swipee-transition');
@@ -341,7 +345,7 @@ class LeftPanelDirective extends StylableComponent {
341
345
  }
342
346
  });
343
347
  }
344
- static { this.ɵfac = function LeftPanelDirective_Factory(t) { return new (t || LeftPanelDirective)(i0.ɵɵdirectiveInject(i1.App), i0.ɵɵdirectiveInject(i2.PageDirective, 8), i0.ɵɵdirectiveInject(i2.LayoutDirective, 8), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0.ɵɵinjectAttribute('nav-type')); }; }
348
+ static { this.ɵfac = function LeftPanelDirective_Factory(t) { return new (t || LeftPanelDirective)(i0.ɵɵdirectiveInject(i1.App), i0.ɵɵdirectiveInject(i2.PageDirective, 8), i0.ɵɵdirectiveInject(i2.LayoutDirective, 8), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0.ɵɵinjectAttribute('navtype'), i0.ɵɵinjectAttribute('navheight')); }; }
345
349
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: LeftPanelDirective, selectors: [["", "wmLeftPanel", ""]], exportAs: ["wmLeftPanel"], features: [i0.ɵɵProvidersFeature([
346
350
  provideAsWidgetRef(LeftPanelDirective)
347
351
  ]), i0.ɵɵInheritDefinitionFeature] }); }
@@ -366,7 +370,10 @@ class LeftPanelDirective extends StylableComponent {
366
370
  type: Optional
367
371
  }] }, { type: undefined, decorators: [{
368
372
  type: Attribute,
369
- args: ['nav-type']
373
+ args: ['navtype']
374
+ }] }, { type: undefined, decorators: [{
375
+ type: Attribute,
376
+ args: ['navheight']
370
377
  }] }], null); })();
371
378
 
372
379
  const components = [
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/page/left-panel/src/left-panel.props.ts","../../../../../projects/components/widgets/page/left-panel/src/left-panel.animator.ts","../../../../../projects/components/widgets/page/left-panel/src/left-panel.directive.ts","../../../../../projects/components/widgets/page/left-panel/src/left-panel.module.ts","../../../../../projects/components/widgets/page/left-panel/src/index.ts"],"sourcesContent":["import {PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-left-panel',\n new Map(\n [\n ['animation', {value: 'slide-in', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['columnwidth', { value: 3, ...PROP_NUMBER}],\n ['content', PROP_STRING],\n ['gestures', {value: 'on', ... PROP_STRING}],\n ['name', PROP_STRING],\n ['xscolumnwidth', { value: 10, ...PROP_NUMBER}],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING]\n ]\n )\n );\n};\n","import { SwipeAnimation } from '@swipey';\n\nimport { $appDigest } from '@wm/core';\n\nimport { AnimationType, LeftPanelDirective } from './left-panel.directive';\n\nexport class LeftPanelAnimator extends SwipeAnimation {\n private _$animatedElements;\n private _expanded: boolean;\n private _leftPanelWidth: number;\n private _maxX: number;\n private _pageContainerWidth: number;\n private _width: number;\n\n constructor(private leftPanel: LeftPanelDirective) {\n super();\n this.init(this.leftPanel.$ele, this.leftPanel.$page);\n }\n\n public bounds(e, length): {} {\n let offset = 0;\n this.setGesturesEnabled(this.leftPanel.isGesturesEnabled());\n if (!this._width) {\n this._pageContainerWidth = this.leftPanel.$page.width();\n this._leftPanelWidth = this.leftPanel.$ele.width();\n this._maxX = this._leftPanelWidth / this._pageContainerWidth * 100;\n this._width = this.leftPanel.animation === AnimationType.SLIDE_IN ? this._pageContainerWidth : this._leftPanelWidth;\n }\n this._expanded = this.leftPanel.expanded;\n\n if (this._expanded) {\n return {\n 'center': this._leftPanelWidth,\n 'lower': -(this._leftPanelWidth - offset)\n };\n }\n if (this.leftPanel.app.isTabletApplicationType) {\n offset = 53.32;\n }\n if (e && (e.pageX || (e.touches && e.touches[0].pageX)) > offset + 100) {\n return {\n strict: true\n };\n }\n return {\n 'center': 0,\n 'upper': this._leftPanelWidth - offset\n };\n }\n\n public context() {\n return {\n 'w': this._width,\n 'pageW': this._pageContainerWidth,\n 'leftW': this._leftPanelWidth,\n 'maxX': this._maxX,\n 'limit': (min: number, v: number, max: number) => {\n if (v < min) {\n return min;\n }\n if (v > max) {\n return max;\n }\n return v;\n }\n };\n }\n\n public animation() {\n this._$animatedElements = this.leftPanel.$ele;\n if (this.leftPanel.animation === AnimationType.SLIDE_IN) {\n this._$animatedElements = this._$animatedElements.add(this.leftPanel.$page);\n if (this.leftPanel.app.isTabletApplicationType) {\n return [\n {\n 'target': this.leftPanel.$ele,\n 'css': {\n 'transform': 'translate3d(${{ limit(-100, -($d * 100 / leftW), 0) + \\'%\\' }}, 0, 0)'\n }\n },\n {\n 'target': this.leftPanel.$page,\n 'css': {\n 'transform': 'translate3d(${{ (($d) * 100 / pageW) + \\'%\\' }}, 0, 0)',\n 'width': '${{ (pageW - $d) + \\'px\\' }}',\n 'z-index': 101\n }\n }\n ];\n }\n return [\n {\n 'target': this.leftPanel.$ele,\n 'css': {\n 'transform': 'translate3d(-100%, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n }\n },\n {\n 'target': this.leftPanel.$page,\n 'css': {\n 'transform': 'translate3d(${{ limit( 0, ((($D + $d) * 100 / w)), maxX ) + \\'%\\' }}, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n }\n }];\n } else {\n return {\n 'transform': 'translate3d(${{ limit( -100, ((($D + $d) * 100 / w) - 100), 0 ) + \\'%\\'}}, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n };\n }\n }\n\n public onLower(): void {\n this._expanded = false;\n this.leftPanel.collapse();\n this.resetTransition();\n $appDigest();\n }\n\n public onUpper(): void {\n this._expanded = true;\n this.leftPanel.expand();\n this.resetTransition();\n $appDigest();\n }\n\n private resetTransition() {\n if (this._$animatedElements) {\n /*\n * This timeout is for preventing UI flicker at the end of animation.\n */\n setTimeout(() => {\n this._$animatedElements.css({\n 'transform': '',\n 'opacity': '',\n 'z-index': '',\n 'width': ''\n });\n }, 100);\n }\n }\n}\n","import {Attribute, Directive, Inject, Injector, Optional} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\nimport {App, addClass, removeClass, switchClass, toggleClass, isMobile, getNavClass } from '@wm/core';\nimport { APPLY_STYLES_TYPE, getKeyboardFocusableElements, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { LayoutDirective, PageDirective } from '@wm/components/page';\n\nimport { registerProps } from './left-panel.props';\nimport { LeftPanelAnimator } from './left-panel.animator';\n\nconst DEFAULT_CLS = 'app-left-panel left-panel-collapsed';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-left-panel',\n hostClass: DEFAULT_CLS\n};\n\nexport enum AnimationType {\n SLIDE_IN = 'slide-in',\n SLIDE_OVER = 'slide-over'\n}\n\n@Directive({\n selector: '[wmLeftPanel]',\n providers: [\n provideAsWidgetRef(LeftPanelDirective)\n ],\n exportAs: 'wmLeftPanel'\n})\nexport class LeftPanelDirective extends StylableComponent {\n static initializeProps = registerProps();\n\n public animation: AnimationType;\n public columnwidth: number;\n public expanded: boolean;\n public gestures: string;\n public xscolumnwidth: number;\n\n public $ele;\n public $page;\n\n private _destroyCollapseActionListener: () => void;\n private _leftPanelAnimator;\n\n //If \"spa\" attribute is set LayoutDirective will present and PageDirective is undefined else PageDirective will present and LayoutDirective is undefined\n constructor(public app: App, @Optional() private page: PageDirective, @Optional() private layout: LayoutDirective, inj: Injector, router: Router, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, @Attribute('nav-type') navtype: string) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n this.$ele = this.$element;\n this.$page = this.getAttr('spa') && layout && layout.$element || page && page.$element;\n addClass(this.$page[0], 'left-panel-collapsed-container');\n if (this.columnwidth) {\n this.setLeftPanelWidth(['md', 'sm'], this.columnwidth);\n }\n if (this.app.isTabletApplicationType) {\n addClass(this.nativeElement, 'wm-tablet-app-left-panel');\n }\n const onRouteChange = router.events.subscribe(e => {\n if (e instanceof NavigationStart) {\n this.collapse();\n }\n });\n this.registerDestroyListener(() => onRouteChange.unsubscribe());\n if(!navtype) navtype = 'drawer';\n this.$element.addClass(getNavClass(navtype));\n }\n\n public collapse(): void {\n addClass(this.nativeElement, 'swipee-transition');\n switchClass(this.nativeElement, 'left-panel-collapsed', 'left-panel-expanded');\n if (this.expanded) {\n setTimeout(() => {\n const leftNavButton = $('.app-header-action');\n leftNavButton.attr('aria-expanded', 'false');\n leftNavButton.focus();\n }, 50);\n }\n if (isMobile()) {\n addClass(this.nativeElement, 'hidden');\n }\n this.expanded = false;\n switchClass(this.$page[0], 'left-panel-collapsed-container', 'left-panel-expanded-container');\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], null, this.columnwidth);\n this.setPageWidthAndPosition(['xs'], null, this.xscolumnwidth);\n }\n if (this._destroyCollapseActionListener) {\n this._destroyCollapseActionListener();\n }\n (this.getAttr(\"spa\") && this.layout || this.page).notify('wmLeftPanel:collapse');\n }\n\n public expand(): void {\n removeClass(this.nativeElement, 'hidden');\n removeClass(this.nativeElement, 'swipee-transition');\n switchClass(this.nativeElement, 'left-panel-expanded', 'left-panel-collapsed');\n this.expanded = true;\n if (!(this.app.isTabletApplicationType && this.animation === AnimationType.SLIDE_IN)) {\n this._destroyCollapseActionListener = this.listenForCollapseAction();\n }\n switchClass(this.$page[0], 'left-panel-expanded-container', 'left-panel-collapsed-container');\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], this.columnwidth);\n this.setPageWidthAndPosition(['xs'], this.xscolumnwidth);\n }\n (this.getAttr(\"spa\") && this.layout || this.page).notify('wmLeftPanel:expand');\n $('.app-header-action').attr('aria-expanded', `${this.expanded}`);\n const focusableElements = getKeyboardFocusableElements(this.nativeElement);\n const firstFocusableElement = focusableElements[0];\n const lastFocusableElement = focusableElements[focusableElements.length - 1];\n setTimeout(() => {\n $(firstFocusableElement).focus();\n }, 50);\n $(firstFocusableElement).on('keydown', (event) => {\n if (event.shiftKey && event.key === 'Tab') {\n this.collapse();\n }\n });\n $(lastFocusableElement).on('keydown', (event) => {\n if (event.key === 'Tab') {\n this.collapse();\n }\n });\n this.$element.on('keydown', (event) => {\n if (event.key === 'Escape') {\n this.collapse();\n }\n });\n }\n\n public isGesturesEnabled(): boolean {\n return this.gestures === 'on';\n }\n\n public isVisible(): boolean {\n return this.expanded;\n }\n\n public onPropertyChange(key, nv, ov) {\n switch (key) {\n case 'animation' :\n if (nv === AnimationType.SLIDE_IN) {\n removeClass(this.$page[0], 'slide-over-left-panel-container');\n addClass(this.$page[0], 'slide-in-left-panel-container');\n this.setPageWidthAndPosition(['md', 'sm'], this.columnwidth);\n this.setPageWidthAndPosition(['xs'], this.xscolumnwidth);\n } else if (nv === AnimationType.SLIDE_OVER) {\n removeClass(this.$page[0], 'slide-in-left-panel-container');\n addClass(this.$page[0], 'slide-over-left-panel-container');\n }\n this._leftPanelAnimator = new LeftPanelAnimator(this);\n switchClass(this.nativeElement, nv, ov);\n break;\n case 'columnwidth':\n this.setLeftPanelWidth(['md', 'sm'], nv, ov);\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], nv, ov);\n }\n break;\n case 'expanded':\n toggleClass(this.nativeElement, 'left-panel-expanded', nv);\n toggleClass(this.nativeElement, 'left-panel-collapsed', !nv);\n break;\n case 'xscolumnwidth':\n this.setLeftPanelWidth(['xs'], nv, ov);\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['xs'], nv, ov);\n }\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n public toggle(): void {\n if (this.app.isTabletApplicationType) {\n setTimeout(() => {\n this.expanded ? this.collapse() : this.expand();\n }, 50);\n } else {\n this.$ele.swipeAnimation(this.expanded ? 'gotoLower' : 'gotoUpper');\n }\n }\n\n private listenForCollapseAction(): () => void {\n const eventName = 'click.leftNavToggle';\n let skipEvent = false;\n this.$ele.on(eventName, () => {\n skipEvent = true;\n });\n this.$page.on(eventName, () => {\n if (!skipEvent) {\n this.toggle();\n }\n skipEvent = false;\n });\n return () => {\n this.$ele.off(eventName);\n this.$page.off(eventName);\n };\n }\n\n private setLeftPanelWidth(devices: string[], newVal: number, oldVal?: number) {\n devices.forEach(device => {\n if (newVal) {\n addClass(this.nativeElement, `col-${device}-${newVal}`);\n }\n if (oldVal) {\n removeClass(this.nativeElement, `col-${device}-${oldVal}`);\n }\n });\n }\n\n private setPageWidthAndPosition(devices: string[], newVal: number, oldVal?: number) {\n devices.forEach(device => {\n if (newVal) {\n addClass(this.$page[0], `left-panel-container-${device}-${12 - newVal}`);\n }\n if (oldVal) {\n removeClass(this.$page[0], `left-panel-container-${device}-${12 - oldVal}`);\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { LeftPanelDirective } from './left-panel.directive';\n\nconst components = [\n LeftPanelDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class LeftPanelModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/page/left-panel/src/left-panel.props.ts","../../../../../projects/components/widgets/page/left-panel/src/left-panel.animator.ts","../../../../../projects/components/widgets/page/left-panel/src/left-panel.directive.ts","../../../../../projects/components/widgets/page/left-panel/src/left-panel.module.ts","../../../../../projects/components/widgets/page/left-panel/src/index.ts"],"sourcesContent":["import {PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-left-panel',\n new Map(\n [\n ['animation', {value: 'slide-in', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['columnwidth', { value: 3, ...PROP_NUMBER}],\n ['content', PROP_STRING],\n ['gestures', {value: 'on', ... PROP_STRING}],\n ['name', PROP_STRING],\n ['xscolumnwidth', { value: 10, ...PROP_NUMBER}],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING]\n ]\n )\n );\n};\n","import { SwipeAnimation } from '@swipey';\n\nimport { $appDigest } from '@wm/core';\n\nimport { AnimationType, LeftPanelDirective } from './left-panel.directive';\n\nexport class LeftPanelAnimator extends SwipeAnimation {\n private _$animatedElements;\n private _expanded: boolean;\n private _leftPanelWidth: number;\n private _maxX: number;\n private _pageContainerWidth: number;\n private _width: number;\n\n constructor(private leftPanel: LeftPanelDirective) {\n super();\n this.init(this.leftPanel.$ele, this.leftPanel.$page);\n }\n\n public bounds(e, length): {} {\n let offset = 0;\n this.setGesturesEnabled(this.leftPanel.isGesturesEnabled());\n if (!this._width) {\n this._pageContainerWidth = this.leftPanel.$page.width();\n this._leftPanelWidth = this.leftPanel.$ele.width();\n this._maxX = this._leftPanelWidth / this._pageContainerWidth * 100;\n this._width = this.leftPanel.animation === AnimationType.SLIDE_IN ? this._pageContainerWidth : this._leftPanelWidth;\n }\n this._expanded = this.leftPanel.expanded;\n\n if (this._expanded) {\n return {\n 'center': this._leftPanelWidth,\n 'lower': -(this._leftPanelWidth - offset)\n };\n }\n if (this.leftPanel.app.isTabletApplicationType) {\n offset = 53.32;\n }\n if (e && (e.pageX || (e.touches && e.touches[0].pageX)) > offset + 100) {\n return {\n strict: true\n };\n }\n return {\n 'center': 0,\n 'upper': this._leftPanelWidth - offset\n };\n }\n\n public context() {\n return {\n 'w': this._width,\n 'pageW': this._pageContainerWidth,\n 'leftW': this._leftPanelWidth,\n 'maxX': this._maxX,\n 'limit': (min: number, v: number, max: number) => {\n if (v < min) {\n return min;\n }\n if (v > max) {\n return max;\n }\n return v;\n }\n };\n }\n\n public animation() {\n this._$animatedElements = this.leftPanel.$ele;\n if (this.leftPanel.animation === AnimationType.SLIDE_IN) {\n this._$animatedElements = this._$animatedElements.add(this.leftPanel.$page);\n if (this.leftPanel.app.isTabletApplicationType) {\n return [\n {\n 'target': this.leftPanel.$ele,\n 'css': {\n 'transform': 'translate3d(${{ limit(-100, -($d * 100 / leftW), 0) + \\'%\\' }}, 0, 0)'\n }\n },\n {\n 'target': this.leftPanel.$page,\n 'css': {\n 'transform': 'translate3d(${{ (($d) * 100 / pageW) + \\'%\\' }}, 0, 0)',\n 'width': '${{ (pageW - $d) + \\'px\\' }}',\n 'z-index': 101\n }\n }\n ];\n }\n return [\n {\n 'target': this.leftPanel.$ele,\n 'css': {\n 'transform': 'translate3d(-100%, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n }\n },\n {\n 'target': this.leftPanel.$page,\n 'css': {\n 'transform': 'translate3d(${{ limit( 0, ((($D + $d) * 100 / w)), maxX ) + \\'%\\' }}, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n }\n }];\n } else {\n return {\n 'transform': 'translate3d(${{ limit( -100, ((($D + $d) * 100 / w) - 100), 0 ) + \\'%\\'}}, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n };\n }\n }\n\n public onLower(): void {\n this._expanded = false;\n this.leftPanel.collapse();\n this.resetTransition();\n $appDigest();\n }\n\n public onUpper(): void {\n this._expanded = true;\n this.leftPanel.expand();\n this.resetTransition();\n $appDigest();\n }\n\n private resetTransition() {\n if (this._$animatedElements) {\n /*\n * This timeout is for preventing UI flicker at the end of animation.\n */\n setTimeout(() => {\n this._$animatedElements.css({\n 'transform': '',\n 'opacity': '',\n 'z-index': '',\n 'width': ''\n });\n }, 100);\n }\n }\n}\n","import {Attribute, Directive, Inject, Injector, Optional} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\nimport {App, addClass, removeClass, switchClass, toggleClass, isMobile, getNavClass } from '@wm/core';\nimport { APPLY_STYLES_TYPE, getKeyboardFocusableElements, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { LayoutDirective, PageDirective } from '@wm/components/page';\n\nimport { registerProps } from './left-panel.props';\nimport { LeftPanelAnimator } from './left-panel.animator';\n\nconst DEFAULT_CLS = 'app-left-panel left-panel-collapsed';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-left-panel',\n hostClass: DEFAULT_CLS\n};\n\nexport enum AnimationType {\n SLIDE_IN = 'slide-in',\n SLIDE_OVER = 'slide-over'\n}\n\n@Directive({\n selector: '[wmLeftPanel]',\n providers: [\n provideAsWidgetRef(LeftPanelDirective)\n ],\n exportAs: 'wmLeftPanel'\n})\nexport class LeftPanelDirective extends StylableComponent {\n static initializeProps = registerProps();\n\n public animation: AnimationType;\n public columnwidth: number;\n public expanded: boolean;\n public gestures: string;\n public xscolumnwidth: number;\n\n public $ele;\n public $page;\n\n private _destroyCollapseActionListener: () => void;\n private _leftPanelAnimator;\n\n //If \"spa\" attribute is set LayoutDirective will present and PageDirective is undefined else PageDirective will present and LayoutDirective is undefined\n constructor(public app: App, @Optional() private page: PageDirective, @Optional() private layout: LayoutDirective, inj: Injector, router: Router, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, @Attribute('navtype') navtype: string, @Attribute('navheight') navHeight: string) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n this.$ele = this.$element;\n this.$page = this.getAttr('spa') && layout && layout.$element || page && page.$element;\n addClass(this.$page[0], 'left-panel-collapsed-container');\n if (this.columnwidth) {\n this.setLeftPanelWidth(['md', 'sm'], this.columnwidth);\n }\n if (this.app.isTabletApplicationType) {\n addClass(this.nativeElement, 'wm-tablet-app-left-panel');\n }\n const onRouteChange = router.events.subscribe(e => {\n if (e instanceof NavigationStart) {\n this.collapse();\n }\n });\n this.registerDestroyListener(() => onRouteChange.unsubscribe());\n if(!navtype) navtype = 'drawer';\n this.$element.addClass(getNavClass(navtype));\n if (navHeight) {\n this.$element.addClass(getNavClass(navHeight));\n addClass(this.$page[0], getNavClass(navHeight));\n }\n }\n\n public collapse(): void {\n addClass(this.nativeElement, 'swipee-transition');\n switchClass(this.nativeElement, 'left-panel-collapsed', 'left-panel-expanded');\n if (this.expanded) {\n setTimeout(() => {\n const leftNavButton = $('.app-header-action');\n leftNavButton.attr('aria-expanded', 'false');\n leftNavButton.focus();\n }, 50);\n }\n if (isMobile()) {\n addClass(this.nativeElement, 'hidden');\n }\n this.expanded = false;\n switchClass(this.$page[0], 'left-panel-collapsed-container', 'left-panel-expanded-container');\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], null, this.columnwidth);\n this.setPageWidthAndPosition(['xs'], null, this.xscolumnwidth);\n }\n if (this._destroyCollapseActionListener) {\n this._destroyCollapseActionListener();\n }\n (this.getAttr(\"spa\") && this.layout || this.page).notify('wmLeftPanel:collapse');\n }\n\n public expand(): void {\n removeClass(this.nativeElement, 'hidden');\n removeClass(this.nativeElement, 'swipee-transition');\n switchClass(this.nativeElement, 'left-panel-expanded', 'left-panel-collapsed');\n this.expanded = true;\n if (!(this.app.isTabletApplicationType && this.animation === AnimationType.SLIDE_IN)) {\n this._destroyCollapseActionListener = this.listenForCollapseAction();\n }\n switchClass(this.$page[0], 'left-panel-expanded-container', 'left-panel-collapsed-container');\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], this.columnwidth);\n this.setPageWidthAndPosition(['xs'], this.xscolumnwidth);\n }\n (this.getAttr(\"spa\") && this.layout || this.page).notify('wmLeftPanel:expand');\n $('.app-header-action').attr('aria-expanded', `${this.expanded}`);\n const focusableElements = getKeyboardFocusableElements(this.nativeElement);\n const firstFocusableElement = focusableElements[0];\n const lastFocusableElement = focusableElements[focusableElements.length - 1];\n setTimeout(() => {\n $(firstFocusableElement).focus();\n }, 50);\n $(firstFocusableElement).on('keydown', (event) => {\n if (event.shiftKey && event.key === 'Tab') {\n this.collapse();\n }\n });\n $(lastFocusableElement).on('keydown', (event) => {\n if (event.key === 'Tab') {\n this.collapse();\n }\n });\n this.$element.on('keydown', (event) => {\n if (event.key === 'Escape') {\n this.collapse();\n }\n });\n }\n\n public isGesturesEnabled(): boolean {\n return this.gestures === 'on';\n }\n\n public isVisible(): boolean {\n return this.expanded;\n }\n\n public onPropertyChange(key, nv, ov) {\n switch (key) {\n case 'animation' :\n if (nv === AnimationType.SLIDE_IN) {\n removeClass(this.$page[0], 'slide-over-left-panel-container');\n addClass(this.$page[0], 'slide-in-left-panel-container');\n this.setPageWidthAndPosition(['md', 'sm'], this.columnwidth);\n this.setPageWidthAndPosition(['xs'], this.xscolumnwidth);\n } else if (nv === AnimationType.SLIDE_OVER) {\n removeClass(this.$page[0], 'slide-in-left-panel-container');\n addClass(this.$page[0], 'slide-over-left-panel-container');\n }\n this._leftPanelAnimator = new LeftPanelAnimator(this);\n switchClass(this.nativeElement, nv, ov);\n break;\n case 'columnwidth':\n this.setLeftPanelWidth(['md', 'sm'], nv, ov);\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], nv, ov);\n }\n break;\n case 'expanded':\n toggleClass(this.nativeElement, 'left-panel-expanded', nv);\n toggleClass(this.nativeElement, 'left-panel-collapsed', !nv);\n break;\n case 'xscolumnwidth':\n this.setLeftPanelWidth(['xs'], nv, ov);\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['xs'], nv, ov);\n }\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n public toggle(): void {\n if (this.app.isTabletApplicationType) {\n setTimeout(() => {\n this.expanded ? this.collapse() : this.expand();\n }, 50);\n } else {\n this.$ele.swipeAnimation(this.expanded ? 'gotoLower' : 'gotoUpper');\n }\n }\n\n private listenForCollapseAction(): () => void {\n const eventName = 'click.leftNavToggle';\n let skipEvent = false;\n this.$ele.on(eventName, () => {\n skipEvent = true;\n });\n this.$page.on(eventName, () => {\n if (!skipEvent) {\n this.toggle();\n }\n skipEvent = false;\n });\n return () => {\n this.$ele.off(eventName);\n this.$page.off(eventName);\n };\n }\n\n private setLeftPanelWidth(devices: string[], newVal: number, oldVal?: number) {\n devices.forEach(device => {\n if (newVal) {\n addClass(this.nativeElement, `col-${device}-${newVal}`);\n }\n if (oldVal) {\n removeClass(this.nativeElement, `col-${device}-${oldVal}`);\n }\n });\n }\n\n private setPageWidthAndPosition(devices: string[], newVal: number, oldVal?: number) {\n devices.forEach(device => {\n if (newVal) {\n addClass(this.$page[0], `left-panel-container-${device}-${12 - newVal}`);\n }\n if (oldVal) {\n removeClass(this.$page[0], `left-panel-container-${device}-${12 - oldVal}`);\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { LeftPanelDirective } from './left-panel.directive';\n\nconst components = [\n LeftPanelDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class LeftPanelModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export declare class LeftPanelDirective extends StylableComponent {
22
22
  $page: any;
23
23
  private _destroyCollapseActionListener;
24
24
  private _leftPanelAnimator;
25
- constructor(app: App, page: PageDirective, layout: LayoutDirective, inj: Injector, router: Router, explicitContext: any, navtype: string);
25
+ constructor(app: App, page: PageDirective, layout: LayoutDirective, inj: Injector, router: Router, explicitContext: any, navtype: string, navHeight: string);
26
26
  collapse(): void;
27
27
  expand(): void;
28
28
  isGesturesEnabled(): boolean;
@@ -32,6 +32,6 @@ export declare class LeftPanelDirective extends StylableComponent {
32
32
  private listenForCollapseAction;
33
33
  private setLeftPanelWidth;
34
34
  private setPageWidthAndPosition;
35
- static ɵfac: i0.ɵɵFactoryDeclaration<LeftPanelDirective, [null, { optional: true; }, { optional: true; }, null, null, { optional: true; }, { attribute: "nav-type"; }]>;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<LeftPanelDirective, [null, { optional: true; }, { optional: true; }, null, null, { optional: true; }, { attribute: "navtype"; }, { attribute: "navheight"; }]>;
36
36
  static ɵdir: i0.ɵɵDirectiveDeclaration<LeftPanelDirective, "[wmLeftPanel]", ["wmLeftPanel"], {}, {}, never, never, false, never>;
37
37
  }
@@ -56,7 +56,7 @@
56
56
  super.onPropertyChange(key, nv, ov);
57
57
  }
58
58
  }
59
- static { this.ɵfac = function RightPanelDirective_Factory(t) { return new (t || RightPanelDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinjectAttribute('nav-type')); }; }
59
+ static { this.ɵfac = function RightPanelDirective_Factory(t) { return new (t || RightPanelDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinjectAttribute('navtype')); }; }
60
60
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: RightPanelDirective, selectors: [["", "wmRightPanel", ""]], exportAs: ["wmRightPanel"], features: [i0__namespace.ɵɵProvidersFeature([
61
61
  base.provideAsWidgetRef(RightPanelDirective)
62
62
  ]), i0__namespace.ɵɵInheritDefinitionFeature] }); }
@@ -77,7 +77,7 @@
77
77
  type: i0.Optional
78
78
  }] }, { type: undefined, decorators: [{
79
79
  type: i0.Attribute,
80
- args: ['nav-type']
80
+ args: ['navtype']
81
81
  }] }], null); })();
82
82
 
83
83
  const components = [
@@ -25,7 +25,7 @@ export class RightPanelDirective extends StylableComponent {
25
25
  super.onPropertyChange(key, nv, ov);
26
26
  }
27
27
  }
28
- static { this.ɵfac = function RightPanelDirective_Factory(t) { return new (t || RightPanelDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0.ɵɵinjectAttribute('nav-type')); }; }
28
+ static { this.ɵfac = function RightPanelDirective_Factory(t) { return new (t || RightPanelDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0.ɵɵinjectAttribute('navtype')); }; }
29
29
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: RightPanelDirective, selectors: [["", "wmRightPanel", ""]], exportAs: ["wmRightPanel"], features: [i0.ɵɵProvidersFeature([
30
30
  provideAsWidgetRef(RightPanelDirective)
31
31
  ]), i0.ɵɵInheritDefinitionFeature] }); }
@@ -46,6 +46,6 @@ export class RightPanelDirective extends StylableComponent {
46
46
  type: Optional
47
47
  }] }, { type: undefined, decorators: [{
48
48
  type: Attribute,
49
- args: ['nav-type']
49
+ args: ['navtype']
50
50
  }] }], null); })();
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHQtcGFuZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL3BhZ2UvcmlnaHQtcGFuZWwvc3JjL3JpZ2h0LXBhbmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFcEQsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUM7QUFDdEMsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsU0FBUyxFQUFFLFdBQVc7Q0FDekIsQ0FBQztBQVNGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxpQkFBaUI7YUFDL0Msb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFDekMsWUFBWSxHQUFhLEVBQTBDLGVBQW9CLEVBQXlCLE9BQWU7UUFDM0gsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELElBQUcsQ0FBQyxPQUFPO1lBQUUsT0FBTyxHQUFHLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFRO1FBQzNDLElBQUksR0FBRyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRSxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO29GQWhCUSxtQkFBbUIsMERBRU8sa0JBQWtCLDJCQUErQyxVQUFVO29FQUZyRyxtQkFBbUIsc0dBTGpCO2dCQUNQLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDO2FBQzFDOztpRkFHUSxtQkFBbUI7Y0FQL0IsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFNBQVMsRUFBRTtvQkFDUCxrQkFBa0IscUJBQXFCO2lCQUMxQztnQkFDRCxRQUFRLEVBQUUsY0FBYzthQUMzQjs7c0JBRytCLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFROztzQkFBMEIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgSW5qZWN0LCBJbmplY3RvciwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge2dldE5hdkNsYXNzLCBzd2l0Y2hDbGFzc30gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBBUFBMWV9TVFlMRVNfVFlQRSwgSVdpZGdldENvbmZpZywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9yaWdodC1wYW5lbC5wcm9wcyc7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2FwcC1yaWdodC1wYW5lbCc7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1yaWdodC1wYW5lbCcsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMU1xufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21SaWdodFBhbmVsXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihSaWdodFBhbmVsRGlyZWN0aXZlKVxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICd3bVJpZ2h0UGFuZWwnXG59KVxuZXhwb3J0IGNsYXNzIFJpZ2h0UGFuZWxEaXJlY3RpdmUgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnksIEBBdHRyaWJ1dGUoJ25hdi10eXBlJykgbmF2dHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcblxuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLCBBUFBMWV9TVFlMRVNfVFlQRS5DT05UQUlORVIpO1xuICAgICAgICBpZighbmF2dHlwZSkgbmF2dHlwZSA9ICdkcmF3ZXInO1xuICAgICAgICB0aGlzLiRlbGVtZW50LmFkZENsYXNzKGdldE5hdkNsYXNzKG5hdnR5cGUpKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuICAgICAgICBpZiAoa2V5ID09PSAnY29sdW1ud2lkdGgnKSB7XG4gICAgICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGBjb2wtc20tJHtudn1gLCBvdiA/IGAgY29sLXNtLSR7b3Z9YCA6ICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHQtcGFuZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL3BhZ2UvcmlnaHQtcGFuZWwvc3JjL3JpZ2h0LXBhbmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFcEQsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUM7QUFDdEMsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsU0FBUyxFQUFFLFdBQVc7Q0FDekIsQ0FBQztBQVNGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxpQkFBaUI7YUFDL0Msb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFDekMsWUFBWSxHQUFhLEVBQTBDLGVBQW9CLEVBQXdCLE9BQWU7UUFDMUgsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELElBQUcsQ0FBQyxPQUFPO1lBQUUsT0FBTyxHQUFHLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFRO1FBQzNDLElBQUksR0FBRyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRSxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO29GQWhCUSxtQkFBbUIsMERBRU8sa0JBQWtCLDJCQUErQyxTQUFTO29FQUZwRyxtQkFBbUIsc0dBTGpCO2dCQUNQLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDO2FBQzFDOztpRkFHUSxtQkFBbUI7Y0FQL0IsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFNBQVMsRUFBRTtvQkFDUCxrQkFBa0IscUJBQXFCO2lCQUMxQztnQkFDRCxRQUFRLEVBQUUsY0FBYzthQUMzQjs7c0JBRytCLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFROztzQkFBMEIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgSW5qZWN0LCBJbmplY3RvciwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge2dldE5hdkNsYXNzLCBzd2l0Y2hDbGFzc30gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBBUFBMWV9TVFlMRVNfVFlQRSwgSVdpZGdldENvbmZpZywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9yaWdodC1wYW5lbC5wcm9wcyc7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2FwcC1yaWdodC1wYW5lbCc7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1yaWdodC1wYW5lbCcsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMU1xufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21SaWdodFBhbmVsXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihSaWdodFBhbmVsRGlyZWN0aXZlKVxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICd3bVJpZ2h0UGFuZWwnXG59KVxuZXhwb3J0IGNsYXNzIFJpZ2h0UGFuZWxEaXJlY3RpdmUgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnksIEBBdHRyaWJ1dGUoJ25hdnR5cGUnKSBuYXZ0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuXG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUik7XG4gICAgICAgIGlmKCFuYXZ0eXBlKSBuYXZ0eXBlID0gJ2RyYXdlcic7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3MoZ2V0TmF2Q2xhc3MobmF2dHlwZSkpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdjb2x1bW53aWR0aCcpIHtcbiAgICAgICAgICAgIHN3aXRjaENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYGNvbC1zbS0ke252fWAsIG92ID8gYCBjb2wtc20tJHtvdn1gIDogJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -37,7 +37,7 @@ class RightPanelDirective extends StylableComponent {
37
37
  super.onPropertyChange(key, nv, ov);
38
38
  }
39
39
  }
40
- static { this.ɵfac = function RightPanelDirective_Factory(t) { return new (t || RightPanelDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0.ɵɵinjectAttribute('nav-type')); }; }
40
+ static { this.ɵfac = function RightPanelDirective_Factory(t) { return new (t || RightPanelDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0.ɵɵinjectAttribute('navtype')); }; }
41
41
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: RightPanelDirective, selectors: [["", "wmRightPanel", ""]], exportAs: ["wmRightPanel"], features: [i0.ɵɵProvidersFeature([
42
42
  provideAsWidgetRef(RightPanelDirective)
43
43
  ]), i0.ɵɵInheritDefinitionFeature] }); }
@@ -58,7 +58,7 @@ class RightPanelDirective extends StylableComponent {
58
58
  type: Optional
59
59
  }] }, { type: undefined, decorators: [{
60
60
  type: Attribute,
61
- args: ['nav-type']
61
+ args: ['navtype']
62
62
  }] }], null); })();
63
63
 
64
64
  const components = [
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/page/right-panel/src/right-panel.props.ts","../../../../../projects/components/widgets/page/right-panel/src/right-panel.directive.ts","../../../../../projects/components/widgets/page/right-panel/src/right-panel.module.ts","../../../../../projects/components/widgets/page/right-panel/src/index.ts"],"sourcesContent":["import {PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-right-panel',\n new Map(\n [\n ['class', PROP_STRING],\n ['columnwidth', PROP_NUMBER],\n ['content', PROP_STRING],\n ['name', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING]\n ]\n )\n );\n};\n","import {Attribute, Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {getNavClass, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './right-panel.props';\n\nconst DEFAULT_CLS = 'app-right-panel';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-right-panel',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n selector: '[wmRightPanel]',\n providers: [\n provideAsWidgetRef(RightPanelDirective)\n ],\n exportAs: 'wmRightPanel'\n})\nexport class RightPanelDirective extends StylableComponent {\n static initializeProps = registerProps();\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, @Attribute('nav-type') navtype: string) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n if(!navtype) navtype = 'drawer';\n this.$element.addClass(getNavClass(navtype));\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'columnwidth') {\n switchClass(this.nativeElement, `col-sm-${nv}`, ov ? ` col-sm-${ov}` : '');\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { RightPanelDirective } from './right-panel.directive';\n\nconst components = [\n RightPanelDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class RightPanelModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/page/right-panel/src/right-panel.props.ts","../../../../../projects/components/widgets/page/right-panel/src/right-panel.directive.ts","../../../../../projects/components/widgets/page/right-panel/src/right-panel.module.ts","../../../../../projects/components/widgets/page/right-panel/src/index.ts"],"sourcesContent":["import {PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-right-panel',\n new Map(\n [\n ['class', PROP_STRING],\n ['columnwidth', PROP_NUMBER],\n ['content', PROP_STRING],\n ['name', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING]\n ]\n )\n );\n};\n","import {Attribute, Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {getNavClass, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './right-panel.props';\n\nconst DEFAULT_CLS = 'app-right-panel';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-right-panel',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n selector: '[wmRightPanel]',\n providers: [\n provideAsWidgetRef(RightPanelDirective)\n ],\n exportAs: 'wmRightPanel'\n})\nexport class RightPanelDirective extends StylableComponent {\n static initializeProps = registerProps();\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, @Attribute('navtype') navtype: string) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n if(!navtype) navtype = 'drawer';\n this.$element.addClass(getNavClass(navtype));\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'columnwidth') {\n switchClass(this.nativeElement, `col-sm-${nv}`, ov ? ` col-sm-${ov}` : '');\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { RightPanelDirective } from './right-panel.directive';\n\nconst components = [\n RightPanelDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class RightPanelModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -5,6 +5,6 @@ export declare class RightPanelDirective extends StylableComponent {
5
5
  static initializeProps: void;
6
6
  constructor(inj: Injector, explicitContext: any, navtype: string);
7
7
  onPropertyChange(key: string, nv: any, ov?: any): void;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<RightPanelDirective, [null, { optional: true; }, { attribute: "nav-type"; }]>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<RightPanelDirective, [null, { optional: true; }, { attribute: "navtype"; }]>;
9
9
  static ɵdir: i0.ɵɵDirectiveDeclaration<RightPanelDirective, "[wmRightPanel]", ["wmRightPanel"], {}, {}, never, never, false, never>;
10
10
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/app-ng-runtime",
3
- "version": "12.0.0-next.45190",
3
+ "version": "12.0.0-next.45196",
4
4
  "description": "All modules required for a wavemaker application.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1442,6 +1442,10 @@
1442
1442
  this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));
1443
1443
  this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));
1444
1444
  }
1445
+ this.containerWidget.onErroSubject.asObservable().subscribe(() => {
1446
+ if (this['onValidStatusChange'])
1447
+ return this['onValidStatusChange']();
1448
+ });
1445
1449
  super.init();
1446
1450
  }
1447
1451
  registerWidgets() {
@@ -66,6 +66,10 @@ export class BaseCustomWidgetComponent extends FragmentMonitor {
66
66
  this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));
67
67
  this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));
68
68
  }
69
+ this.containerWidget.onErroSubject.asObservable().subscribe(() => {
70
+ if (this['onValidStatusChange'])
71
+ return this['onValidStatusChange']();
72
+ });
69
73
  super.init();
70
74
  }
71
75
  registerWidgets() {
@@ -300,4 +304,4 @@ export class BaseCustomWidgetComponent extends FragmentMonitor {
300
304
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseCustomWidgetComponent, [{
301
305
  type: Directive
302
306
  }], null, null); })();
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jdXN0b20td2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvY29tcG9uZW50cy9iYXNlLWN1c3RvbS13aWRnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLSCxTQUFTLEVBQ1QsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFFbkIsR0FBRyxFQUNILElBQUksRUFDSixRQUFRLEVBQ1IsbUJBQW1CLEVBQ25CLFlBQVksRUFFWixNQUFNLEVBQ04sSUFBSSxFQUNQLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBdUIsU0FBUyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBSTdFLDBDQUEwQztBQUcxQyxNQUFNLE9BQWdCLHlCQUEwQixTQUFRLGVBQWU7SUFEdkU7O1FBR0ksZUFBVSxHQUFRLEVBQUUsQ0FBQztRQXFCckIsbUJBQWMsR0FBRyxLQUFLLENBQUM7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O1FBQ0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLGdCQUFnQixLQUFLLENBQUM7SUFFdEIsT0FBTyxDQUFDLE1BQU87SUFDZixDQUFDO3dRQWpXaUIseUJBQXlCLFNBQXpCLHlCQUF5QjtvRUFBekIseUJBQXlCOztpRkFBekIseUJBQXlCO2NBRDlDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgJGludm9rZVdhdGNoZXJzLFxuICAgIEFic3RyYWN0STE4blNlcnZpY2UsXG4gICAgQWJzdHJhY3ROYXZpZ2F0aW9uU2VydmljZSxcbiAgICBBcHAsXG4gICAgbm9vcCxcbiAgICBWaWV3cG9ydCxcbiAgICBTY3JpcHRMb2FkZXJTZXJ2aWNlLFxuICAgIFV0aWxzU2VydmljZSxcbiAgICByZWdpc3RlckZuQnlFeHByLFxuICAgICR3YXRjaCxcbiAgICBpc0lFLCBpc0RlZmluZWRcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtnZXRXaWRnZXRQcm9wc0J5VHlwZSwgV2lkZ2V0UmVmfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IFBhZ2VEaXJlY3RpdmUsIFNwYVBhZ2VEaXJlY3RpdmUgfSBmcm9tICdAd20vY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7UHJlZmFiRGlyZWN0aXZlfSBmcm9tICdAd20vY29tcG9uZW50cy9wcmVmYWInO1xuaW1wb3J0IHsgVmFyaWFibGVzU2VydmljZSB9IGZyb20gJ0B3bS92YXJpYWJsZXMnO1xuaW1wb3J0IHsgQ3VzdG9td2lkZ2V0Q29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQgeyBGcmFnbWVudE1vbml0b3IgfSBmcm9tICcuLi91dGlsL2ZyYWdtZW50LW1vbml0b3InO1xuaW1wb3J0IHsgQXBwTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHAubWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7Y29tbW9uUGFydGlhbFdpZGdldHN9IGZyb20gXCIuL2Jhc2UtcGFydGlhbC5jb21wb25lbnRcIjtcbmltcG9ydCB7Y2FwaXRhbGl6ZSwgZm9yRWFjaH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHtDaGVja2JveHNldENvbXBvbmVudCwgUmFkaW9zZXRDb21wb25lbnR9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dFwiO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbi8vIGV4cG9ydCBjb25zdCBjb21tb25QYXJ0aWFsV2lkZ2V0cyA9IHt9O1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ3VzdG9tV2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgRnJhZ21lbnRNb25pdG9yIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBXaWRnZXRzOiBhbnk7XG4gICAgQmFzZVdpZGdldDogYW55ID0ge307XG4gICAgVmFyaWFibGVzOiBhbnk7XG4gICAgQWN0aW9uczogYW55O1xuICAgIEFwcDogQXBwO1xuICAgIGluamVjdG9yOiBJbmplY3RvcjtcbiAgICBjdXN0b21XaWRnZXROYW1lOiBzdHJpbmc7XG4gICAgYWN0aXZlUGFnZU5hbWU6IHN0cmluZztcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gICAgYXBwTWFuYWdlcjogQXBwTWFuYWdlclNlcnZpY2U7XG4gICAgbmF2aWdhdGlvblNlcnZpY2U6IEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2U7XG4gICAgcm91dGVyOiBSb3V0ZXI7XG4gICAgcHJvcHM6IGFueTtcbiAgICBjb250YWluZXJXaWRnZXQ6IGFueTtcbiAgICBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZTtcbiAgICBhcHBMb2NhbGU6IGFueTtcbiAgICAvLyBAVmlld0NoaWxkKFBhcnRpYWxEaXJlY3RpdmUpIHBhcnRpYWxEaXJlY3RpdmU7XG4gICAgcGFnZURpcmVjdGl2ZTogUGFnZURpcmVjdGl2ZSB8IFNwYVBhZ2VEaXJlY3RpdmU7XG4gICAgUHJlZmFiOiBQcmVmYWJEaXJlY3RpdmU7XG4gICAgc2NyaXB0TG9hZGVyU2VydmljZTogU2NyaXB0TG9hZGVyU2VydmljZTtcbiAgICBjdXN0b213aWRnZXRDb25maWdQcm92aWRlcjogQ3VzdG9td2lkZ2V0Q29uZmlnUHJvdmlkZXI7XG4gICAgVmlld3BvcnQ6IFZpZXdwb3J0O1xuICAgIGNvbXBpbGVDb250ZW50ID0gZmFsc2U7XG4gICAgc3BhOiBib29sZWFuO1xuICAgIGV2ZW50czogYW55O1xuXG4gICAgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICAgIHZpZXdJbml0JCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSB2aWV3UGFyZW50OiBhbnk7XG5cbiAgICBhYnN0cmFjdCBldmFsVXNlclNjcmlwdChwcmVmYWJDb250ZXh0OiBhbnksIGFwcENvbnRleHQ6IGFueSwgdXRpbHM6IGFueSk7XG5cbiAgICBhYnN0cmFjdCBnZXRWYXJpYWJsZXMoKTtcblxuICAgIGdldENvbnRhaW5lcldpZGdldEluamVjdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXJXaWRnZXQuaW5qIHx8IHRoaXMuY29udGFpbmVyV2lkZ2V0LmluamVjdG9yO1xuICAgIH1cblxuICAgIGluaXQoKSB7XG4gICAgICAgIGxldCByZXNvbHZlRm46IEZ1bmN0aW9uO1xuICAgICAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlcyk9PiByZXNvbHZlRm4gPSByZXMpXG4gICAgICAgIHRoaXMuQXBwID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcCkgOiBpbmplY3QoQXBwKTtcbiAgICAgICAgLy9tYWtpbmcgdGhlIGNvZGUgY29tcGF0aWJsZSBpbiBib3RoIHRoZSBKSVQgYW5kIEFPVCBtb2Rlc1xuICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldCA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChXaWRnZXRSZWYpIDogaW5qZWN0KFdpZGdldFJlZik7XG4gICAgICAgIHRoaXMuaTE4blNlcnZpY2UgPSB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoQWJzdHJhY3RJMThuU2VydmljZSkgOiBpbmplY3QoQWJzdHJhY3RJMThuU2VydmljZSk7XG4gICAgICAgIHRoaXMuc2NyaXB0TG9hZGVyU2VydmljZSA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChTY3JpcHRMb2FkZXJTZXJ2aWNlKSA6IGluamVjdChTY3JpcHRMb2FkZXJTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5WaWV3cG9ydCA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChWaWV3cG9ydCkgOiBpbmplY3QoVmlld3BvcnQpO1xuICAgICAgICB0aGlzLmN1c3RvbXdpZGdldENvbmZpZ1Byb3ZpZGVyID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KEN1c3RvbXdpZGdldENvbmZpZ1Byb3ZpZGVyKSA6IGluamVjdChDdXN0b213aWRnZXRDb25maWdQcm92aWRlcik7XG4gICAgICAgIC8vIHRoaXMudmlld0NvbnRhaW5lclJlZiA9IHRoaXMuZ2V0Q29udGFpbmVyV2lkZ2V0SW5qZWN0b3IoKS5nZXQoVmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIC8vIFJlcGxhY2luZyB0aGlzLmdldENvbnRhaW5lcldpZGdldEluamVjdG9yKCkudmlldy5jb21wb25lbnQgYXMgdmlld1BhcmVudFxuICAgICAgICAvLyB0aGlzLnZpZXdQYXJlbnQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkucGFyZW50SW5qZWN0b3IuX2xWaWV3WzhdO1xuICAgICAgICB0aGlzLnZpZXdQYXJlbnQgPSB0aGlzLmNvbnRhaW5lcldpZGdldC52aWV3UGFyZW50O1xuXG4gICAgICAgIGlmICh0aGlzLnZpZXdQYXJlbnQucmVnaXN0ZXJGcmFnbWVudCkge1xuICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50LnJlZ2lzdGVyRnJhZ21lbnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlZ2lzdGVyIGZ1bmN0aW9ucyBmb3IgYmluZGluZyBldmFsdWF0aW9uXG4gICAgICAgIHRoaXMucmVnaXN0ZXJFeHByZXNzaW9ucygpO1xuICAgICAgICB0aGlzLmluaXRVc2VyU2NyaXB0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJQcm9wc0luQ29udGFpbmVyV2lkZ2V0KHJlc29sdmVGbik7XG4gICAgICAgIC8vIFVzaW5nIHByb21pc2UgdG8gbWFrZSBzdXJlIHRoZSBwcm9wcyBhcmUgcmVnaXN0ZXJlZCBpbiB0aGUgY29udGFpbmVyIHdpZGdldCBiZWZvcmUgcmVnaXN0ZXJpbmcgZXZlbnRzLCBPdGhlcndpc2Ugbm8gZXZlbnRzIHdpbGwgYmUgcmVnaXN0ZXJlZFxuICAgICAgICBwcm9taXNlLnRoZW4oKCkgPT4gdGhpcy5yZWdpc3RlckV2ZW50cygpKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyV2lkZ2V0cygpO1xuICAgICAgICB0aGlzLmluaXRWYXJpYWJsZXMoKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VOYW1lID0gdGhpcy5BcHAuYWN0aXZlUGFnZU5hbWU7IC8vIFRvZG86IHJlbW92ZSB0aGlzXG4gICAgICAgIHRoaXMucmVnaXN0ZXJQcm9wcygpO1xuICAgICAgICB0aGlzLmRlZmluZUkxOG5Qcm9wcygpO1xuXG4gICAgICAgIHRoaXMudmlld0luaXQkLnN1YnNjcmliZShub29wLCBub29wLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb3BzID0gdGhpcy5jb250YWluZXJXaWRnZXQucHJvcHM7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmKHRoaXMuc3BhKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VEaXJlY3RpdmUgPSB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoU3BhUGFnZURpcmVjdGl2ZSkgOiBpbmplY3QoU3BhUGFnZURpcmVjdGl2ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VEaXJlY3RpdmUgPSB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoUGFnZURpcmVjdGl2ZSkgOiBpbmplY3QoUGFnZURpcmVjdGl2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFnZURpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcih0aGlzLnBhZ2VEaXJlY3RpdmUuc3Vic2NyaWJlKCdhdHRhY2gnLCBkYXRhID0+IHRoaXMubmdPbkF0dGFjaChkYXRhLnJlZnJlc2hEYXRhKSkpO1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcih0aGlzLnBhZ2VEaXJlY3RpdmUuc3Vic2NyaWJlKCdkZXRhY2gnLCAoKSA9PiB0aGlzLm5nT25EZXRhY2goKSkpO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmluaXQoKTtcbiAgICB9XG5cbiAgICByZWdpc3RlcldpZGdldHMoKSB7XG4gICAgICAgIC8vIGNvbW1vbiBwYXJ0aWFsIHdpZGdldHMgc2hvdWxkIGJlIGFjY2Vzc2libGUgZnJvbSBwYWdlXG4gICAgICAgIHRoaXMuV2lkZ2V0cyA9IE9iamVjdC5jcmVhdGUoY29tbW9uUGFydGlhbFdpZGdldHMpO1xuXG4gICAgICAgIC8vIGV4cG9zZSBjdXJyZW50IHBhZ2Ugd2lkZ2V0cyBvbiBhcHBcbiAgICAgICAgKHRoaXMuQXBwIGFzIGFueSkuV2lkZ2V0cyA9IE9iamVjdC5jcmVhdGUodGhpcy5XaWRnZXRzKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplQ29tcG9uZW50RGF0YShjaGlsZHJlbikge1xuICAgICAgICBBcnJheS5mcm9tKGNoaWxkcmVuKS5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZighY2hpbGQuaGFzQXR0cmlidXRlKCd3bWN1c3RvbXdpZGdldCcpKVxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudERhdGEoY2hpbGQuY2hpbGRyZW4pO1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXNBdHRyID0gY2hpbGQuZ2V0QXR0cmlidXRlKCdhcycpIHx8ICcnO1xuICAgICAgICAgICAgICAgIGlmICghYXNBdHRyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGJhc2VXaWRnZXQsIHNwbGl0QXJyID0gYXNBdHRyLnNwbGl0KCctJyksIG1vZGlmaWVkQXJyID0gW107XG4gICAgICAgICAgICAgICAgbW9kaWZpZWRBcnIgPSBzcGxpdEFyci5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpdGVtID0gaXRlbSAhPT0gJ3dtJyA/IGNhcGl0YWxpemUoaXRlbSkgOiBpdGVtO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBiYXNlV2lkZ2V0ID0gbW9kaWZpZWRBcnIuam9pbignJyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChiYXNlV2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3dtQ2hlY2tib3hzZXQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tiYXNlV2lkZ2V0XSA9IG5ldyBDaGVja2JveHNldENvbXBvbmVudCh0aGlzLmluamVjdG9yLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tiYXNlV2lkZ2V0XVtcIl9zZWxlY3RcIl0gPSAoaXRlbTogYW55LCAkZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JFYWNoKHRoaXNbYmFzZVdpZGdldF0uZGF0YXNldEl0ZW1zLCAoZGF0YXNldEl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhc2V0SXRlbS5rZXkgPT09IGl0ZW0ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YXNldEl0ZW0uc2VsZWN0ZWQgPSAhZGF0YXNldEl0ZW0uc2VsZWN0ZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGF0YXNldEl0ZW0uc2VsZWN0ZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzLnB1c2goZGF0YXNldEl0ZW0ua2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Jhc2VXaWRnZXRdLnRyaWdnZXJJbnZva2VPbkNoYW5nZShrZXlzLCAkZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3dtUmFkaW9zZXQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tiYXNlV2lkZ2V0XSA9IG5ldyBSYWRpb3NldENvbXBvbmVudCh0aGlzLmluamVjdG9yLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tiYXNlV2lkZ2V0XVtcIl9zZWxlY3RcIl0gPSAoaXRlbTogYW55LCAkZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYmFzZVdpZGdldF0udHJpZ2dlckludm9rZU9uQ2hhbmdlKGl0ZW0ua2V5LCAkZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIHRoaXMuY29udGFpbmVyV2lkZ2V0LiRhdHRycykge1xuICAgICAgICAgICAgICAgICAgICBpZihrZXkuc3RhcnRzV2l0aCgnYmFzZS0nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGlmaWVkS2V5ID0ga2V5LnJlcGxhY2UoJ2Jhc2UtJywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tiYXNlV2lkZ2V0XVttb2RpZmllZEtleV0gPSB2YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYobW9kaWZpZWRLZXkgPT09ICdkYXRhdmFsdWUnICYmIHRoaXMuY29udGFpbmVyV2lkZ2V0LmZvcm1Db250cm9sKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LnVwZGF0ZURhdGFWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpc1tiYXNlV2lkZ2V0XS5pbml0RGF0YXNldEl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXRbYmFzZVdpZGdldF0gPSB0aGlzW2Jhc2VXaWRnZXRdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWdpc3RlckJhc2VXaWRnZXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudERhdGEodGhpcy5jb250YWluZXJXaWRnZXQubmF0aXZlRWxlbWVudC5jaGlsZHJlbik7XG4gICAgfVxuXG4gICAgaW52b2tlRXZlbnQgPSAoZXZlbnROYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5ldmVudHNbZXZlbnROYW1lXSgpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyRXZlbnRzKCkge1xuICAgICAgICB0aGlzLmV2ZW50cyA9IHt9O1xuICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC5ldmVudEhhbmRsZXJzLmZvckVhY2goKGNhbGxiYWNrOiBhbnksIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50c1trZXldID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC5pbnZva2VFdmVudENhbGxiYWNrKGtleSwgeyRldmVudDogYXJnc1swXSwgJGRhdGE6IGFyZ3NbMV19KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKGZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnN1YnNjcmliZShub29wLCBub29wLCAoKSA9PiBmbigpKTtcbiAgICB9XG5cbiAgICByZWdpc3RlckNoYW5nZUxpc3RlbmVycygpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXQucmVnaXN0ZXJQcm9wZXJ0eUNoYW5nZUxpc3RlbmVyKHRoaXMub25Qcm9wZXJ0eUNoYW5nZSk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LnJlZ2lzdGVyU3R5bGVDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uUHJvcGVydHlDaGFuZ2UpO1xuICAgIH1cblxuICAgIGdldCBkYXRhdmFsdWUoKSB7XG4gICAgICAgIGlmKHRoaXNbJ2dldERhdGF2YWx1ZSddKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXNbJ2dldERhdGF2YWx1ZSddKCk7XG4gICAgfVxuXG4gICAgc2V0IGRhdGF2YWx1ZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLmRhdGF2YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGluaXRVc2VyU2NyaXB0KCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gcGFydGlhbHMgaW5zaWRlIHByZWZhYiBzaG91bGQgaGF2ZSBhY2Nlc3MgdG8gUHJlZmFiIHByb3BlcnRpZXMgYW5kIGV2ZW50c1xuICAgICAgICAgICAgaWYgKHRoaXMudmlld1BhcmVudC5wcmVmYWJOYW1lKSB7XG4gICAgICAgICAgICAgICAgLy8gZm9yIHBhcnRpYWwgd2l0aGluIHBhcnRpYWwgd2l0aGluIHByZWZhYnMsIGp1c3QgYXNzaWduIHRoZSBwYXJlbnQgcGFydGlhbCdzIHByZWZhYiBvYmplY3RcbiAgICAgICAgICAgICAgICBpZiAodGhpcy52aWV3UGFyZW50LlByZWZhYikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLlByZWZhYiA9IHRoaXMudmlld1BhcmVudC5QcmVmYWI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5QcmVmYWIgPSB0aGlzLnZpZXdQYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ldmFsVXNlclNjcmlwdCh0aGlzLCB0aGlzLkFwcCwgdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KFV0aWxzU2VydmljZSkgOiBpbmplY3QoVXRpbHNTZXJ2aWNlKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGluIGV2YWx1YXRpbmcgcGFydGlhbCAoJHt0aGlzLmN1c3RvbVdpZGdldE5hbWV9KSBzY3JpcHRcXG5gLCBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRWYXJpYWJsZXMoKSB7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlc1NlcnZpY2UgPSB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoVmFyaWFibGVzU2VydmljZSkgOiBpbmplY3QoVmFyaWFibGVzU2VydmljZSk7XG5cbiAgICAgICAgLy8gZ2V0IHZhcmlhYmxlcyBhbmQgYWN0aW9ucyBpbnN0YW5jZXMgZm9yIHRoZSBwYWdlXG4gICAgICAgIGNvbnN0IHZhcmlhYmxlQ29sbGVjdGlvbiA9IHZhcmlhYmxlc1NlcnZpY2UucmVnaXN0ZXIodGhpcy5jdXN0b21XaWRnZXROYW1lLCB0aGlzLmdldFZhcmlhYmxlcygpLCB0aGlzKTtcblxuICAgICAgICAvLyBjcmVhdGUgbmFtZXNwYWNlIGZvciBWYXJpYWJsZXMgbmFkIEFjdGlvbnMgb24gcGFnZS9wYXJ0aWFsLCB3aGljaCBpbmhlcml0cyB0aGUgVmFyaWFibGVzIGFuZCBBY3Rpb25zIGZyb20gQXBwIGluc3RhbmNlXG4gICAgICAgIHRoaXMuVmFyaWFibGVzID0gT2JqZWN0LmNyZWF0ZSh0aGlzLkFwcC5WYXJpYWJsZXMpO1xuICAgICAgICB0aGlzLkFjdGlvbnMgPSBPYmplY3QuY3JlYXRlKHRoaXMuQXBwLkFjdGlvbnMpO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LlZhcmlhYmxlcyA9IHRoaXMuVmFyaWFibGVzO1xuICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC5BY3Rpb25zID0gdGhpcy5BY3Rpb25zO1xuXG4gICAgICAgIC8vIGFzc2lnbiBhbGwgdGhlIHBhZ2UgdmFyaWFibGVzIHRvIHRoZSBwYWdlSW5zdGFuY2VcbiAgICAgICAgT2JqZWN0LmVudHJpZXModmFyaWFibGVDb2xsZWN0aW9uLlZhcmlhYmxlcykuZm9yRWFjaCgoW25hbWUsIHZhcmlhYmxlXSkgPT4gdGhpcy5WYXJpYWJsZXNbbmFtZV0gPSB2YXJpYWJsZSk7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlQ29sbGVjdGlvbi5BY3Rpb25zKS5mb3JFYWNoKChbbmFtZSwgYWN0aW9uXSkgPT4gdGhpcy5BY3Rpb25zW25hbWVdID0gYWN0aW9uKTtcblxuXG4gICAgICAgIHRoaXMudmlld0luaXQkLnN1YnNjcmliZShub29wLCBub29wLCAoKSA9PiB7XG4gICAgICAgICAgICAvLyBURU1QOiB0cmlnZ2VyaW5nIHdhdGNoZXJzIHNvIHZhcmlhYmxlcyB3YXRjaGluZyBvdmVyIHBhcmFtcyBhcmUgdXBkYXRlZFxuICAgICAgICAgICAgJGludm9rZVdhdGNoZXJzKHRydWUsIHRydWUpO1xuICAgICAgICAgICAgdmFyaWFibGVDb2xsZWN0aW9uLmNhbGxiYWNrKHZhcmlhYmxlQ29sbGVjdGlvbi5WYXJpYWJsZXMpLmNhdGNoKG5vb3ApO1xuICAgICAgICAgICAgdmFyaWFibGVDb2xsZWN0aW9uLmNhbGxiYWNrKHZhcmlhYmxlQ29sbGVjdGlvbi5BY3Rpb25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZnVuY3Rpb24gdG8gcmVnaXN0ZXIgYmluZCBleHByZXNzaW9ucyBnZW5lcmF0ZWQgaW4gdGhpcyBwYXJ0aWFsIGluc3RhbmNlXG4gICAgICogZ2V0RXhwcmVzc2lvbnMgZnVuY3Rpb24gaXMgZGVmaW5lZCBpbiB0aGUgZ2VuZXJhdGVkIHBhZ2UuY29tcC50cyBmaWxlXG4gICAgICogQHBhcmFtIGV4cHJlc3Npb25zLCBtYXAgb2YgYmluZCBleHByZXNzaW9uIHZzIGdlbmVyYXRlZCBmdW5jdGlvblxuICAgICAqL1xuICAgIHJlZ2lzdGVyRXhwcmVzc2lvbnMoKSB7XG4gICAgICAgIC8vIGNvbnN0IGV4cHJlc3Npb25zID0gdGhpcy5nZXRFeHByZXNzaW9ucygpO1xuICAgICAgICAvLyBfLmVhY2goZXhwcmVzc2lvbnMsIChmbiwgZXhwcik9PntcbiAgICAgICAgLy8gICAgIHJlZ2lzdGVyRm5CeUV4cHIoZXhwciwgZm5bMF0sIGZuWzFdKTtcbiAgICAgICAgLy8gfSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJQcm9wcygpIHtcbiAgICAgICAgdGhpcy5wcm9wcyA9IHRoaXMuY29udGFpbmVyV2lkZ2V0LnByb3BzO1xuICAgIH1cblxuICAgIGRlZmluZUkxOG5Qcm9wcygpIHtcbiAgICAgICAgdGhpcy5hcHBMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLmdldEFwcExvY2FsZSgpO1xuICAgIH1cblxuICAgIGludm9rZU9uUmVhZHkoKSB7XG4gICAgICAgIGxldCBwYXJhbXM7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcldpZGdldC51c2VyQ29tcG9uZW50UGFyYW1zKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSB0aGlzLmNvbnRhaW5lcldpZGdldC51c2VyQ29tcG9uZW50UGFyYW1zO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25SZWFkeShwYXJhbXMpO1xuICAgICAgICBpZiAodGhpcy52aWV3UGFyZW50LnJlc29sdmVGcmFnbWVudCkge1xuICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50LnJlc29sdmVGcmFnbWVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkU2NyaXB0cygpIHtcbiAgICAgICAgLy8gcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgIC8vICAgICBjb25zdCBzY3JpcHRzUmVxdWlyZWQgPSB0aGlzLnBhcnRpYWxEaXJlY3RpdmUuJGVsZW1lbnQuYXR0cignc2NyaXB0cy10by1sb2FkJyk7XG4gICAgICAgIC8vICAgICBpZiAoc2NyaXB0c1JlcXVpcmVkKSB7XG4gICAgICAgIC8vICAgICAgICAgdGhpcy5zY3JpcHRMb2FkZXJTZXJ2aWNlXG4gICAgICAgIC8vICAgICAgICAgICAgIC5sb2FkKC4uLnNjcmlwdHNSZXF1aXJlZC5zcGxpdCgnLCcpKVxuICAgICAgICAvLyAgICAgICAgICAgICAudGhlbihyZXNvbHZlKTtcbiAgICAgICAgLy8gICAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9KTtcbiAgICB9XG4gICAgcmVnaXN0ZXJQcm9wc0luQ29udGFpbmVyV2lkZ2V0KHJlc29sdmVGbjogRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5jdXN0b213aWRnZXRDb25maWdQcm92aWRlci5nZXRDb25maWcodGhpcy5jdXN0b21XaWRnZXROYW1lKS50aGVuKChjb25maWcpID0+IHtcbiAgICAgICAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcygoY29uZmlnLnByb3BlcnRpZXMgfHwge30pKS5mb3JFYWNoKChba2V5LCBwcm9wXTogW3N0cmluZywgYW55XSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZXhwcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBfLnRyaW0ocHJvcC52YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKF8uc3RhcnRzV2l0aCh2YWx1ZSwgJ2JpbmQ6JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cHIgPSB2YWx1ZS5yZXBsYWNlKCdiaW5kOicsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBrZXksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldDogKCkgPT4gdGhpcy5jb250YWluZXJXaWRnZXRba2V5XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldDogbnYgPT4gdGhpcy5jb250YWluZXJXaWRnZXQud2lkZ2V0W2tleV0gPSBudlxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZXhwcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9bVG9kby1DU1BdOiBleHByIHdpbGwgYmUgZ2VuZXJhdGVkIHdpdGggcHJlZmFiLmNvbXAuZXhwci50c1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2F0Y2goZXhwciwgdGhpcywge30sIG52ID0+IHRoaXMuY29udGFpbmVyV2lkZ2V0LndpZGdldFtrZXldID0gbnYpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LnNldFByb3BzKGNvbmZpZywgcmVzb2x2ZUZuKTtcbiAgICAgICAgICAgIC8vIFJlYXNzaWduaW5nIHRoZSBwcm94eSBoYW5kbGVyIGZvciBwcmVmYWIgaW5ib3VuZCBwcm9wZXJ0aWVzIGFzIHdlXG4gICAgICAgICAgICAvLyB3aWxsIGdldCB0aGVtIG9ubHkgYWZ0ZXIgdGhlIHByZWZhYiBjb25maWcgY2FsbC5cbiAgICAgICAgICAgIGlmIChpc0lFKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC53aWRnZXQgPSB0aGlzLmNvbnRhaW5lcldpZGdldC5jcmVhdGVQcm94eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIG11dGUoKSB7XG4gICAgICAgIGNvbnN0IG0gPSBvID0+IHsgbyAmJiBvLm11dGUgJiYgby5tdXRlKCk7IH07XG4gICAgICAgIF8uZWFjaCh0aGlzLldpZGdldHMsIG0pO1xuICAgICAgICBfLmVhY2godGhpcy5WYXJpYWJsZXMsIG0pO1xuICAgICAgICBfLmVhY2godGhpcy5BY3Rpb25zLCBtKTtcbiAgICB9XG5cbiAgICB1bm11dGUoKSB7XG4gICAgICAgIGNvbnN0IHVtID0gbyA9PiB7IG8gJiYgby51bm11dGUgJiYgby51bm11dGUoKTsgfTtcbiAgICAgICAgXy5lYWNoKHRoaXMuV2lkZ2V0cywgdW0pO1xuICAgICAgICBfLmVhY2godGhpcy5WYXJpYWJsZXMsIHVtKTtcbiAgICAgICAgXy5lYWNoKHRoaXMuQWN0aW9ucywgdW0pO1xuICAgIH1cblxuICAgIC8vIG5nT25Jbml0KCkge1xuICAgIC8vICAgICB0aGlzLmluaXQoKTtcbiAgICAvLyB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJDaGFuZ2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckJhc2VXaWRnZXQoKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmlld0luaXQkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mcmFnbWVudHNMb2FkZWQkLnN1YnNjcmliZShub29wLCBub29wLCAoKSA9PiB0aGlzLmludm9rZU9uUmVhZHkoKSk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgbmdPbkF0dGFjaChyZWZyZXNoRGF0YSkge1xuICAgICAgICB0aGlzLnVubXV0ZSgpO1xuICAgICAgICBpZiAocmVmcmVzaERhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZnJlc2ggPSB2ID0+IHsgdiAmJiB2LnN0YXJ0VXBkYXRlICYmIHYuaW52b2tlICYmIHYuaW52b2tlKCk7IH07XG4gICAgICAgICAgICBfLmVhY2godGhpcy5WYXJpYWJsZXMsIHJlZnJlc2gpO1xuICAgICAgICAgICAgXy5lYWNoKHRoaXMuQWN0aW9ucywgcmVmcmVzaCk7XG4gICAgICAgIH1cbiAgICAgICAgXy5lYWNoKHRoaXMuV2lkZ2V0cywgdyA9PiB3ICYmIHcubmdPbkF0dGFjaCAmJiB3Lm5nT25BdHRhY2goKSk7XG4gICAgfVxuXG4gICAgbmdPbkRldGFjaCgpIHtcbiAgICAgICAgdGhpcy5tdXRlKCk7XG4gICAgICAgIF8uZWFjaCh0aGlzLldpZGdldHMsIHcgPT4gdyAmJiB3Lm5nT25EZXRhY2ggJiYgdy5uZ09uRGV0YWNoKCkpO1xuICAgIH1cblxuICAgIC8vIHVzZXIgb3ZlcnJpZGVzIHRoaXNcbiAgICBvblByb3BlcnR5Q2hhbmdlKCkgeyB9XG5cbiAgICBvblJlYWR5KHBhcmFtcz8pIHtcbiAgICB9XG59XG4iXX0=
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jdXN0b20td2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvY29tcG9uZW50cy9iYXNlLWN1c3RvbS13aWRnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLSCxTQUFTLEVBQ1QsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFFbkIsR0FBRyxFQUNILElBQUksRUFDSixRQUFRLEVBQ1IsbUJBQW1CLEVBQ25CLFlBQVksRUFFWixNQUFNLEVBQ04sSUFBSSxFQUNQLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBdUIsU0FBUyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBSTdFLDBDQUEwQztBQUcxQyxNQUFNLE9BQWdCLHlCQUEwQixTQUFRLGVBQWU7SUFEdkU7O1FBR0ksZUFBVSxHQUFRLEVBQUUsQ0FBQztRQXFCckIsbUJBQWMsR0FBRyxLQUFLLENBQUM7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LENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLGdCQUFnQixLQUFLLENBQUM7SUFFdEIsT0FBTyxDQUFDLE1BQU87SUFDZixDQUFDO3dRQXJXaUIseUJBQXlCLFNBQXpCLHlCQUF5QjtvRUFBekIseUJBQXlCOztpRkFBekIseUJBQXlCO2NBRDlDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgJGludm9rZVdhdGNoZXJzLFxuICAgIEFic3RyYWN0STE4blNlcnZpY2UsXG4gICAgQWJzdHJhY3ROYXZpZ2F0aW9uU2VydmljZSxcbiAgICBBcHAsXG4gICAgbm9vcCxcbiAgICBWaWV3cG9ydCxcbiAgICBTY3JpcHRMb2FkZXJTZXJ2aWNlLFxuICAgIFV0aWxzU2VydmljZSxcbiAgICByZWdpc3RlckZuQnlFeHByLFxuICAgICR3YXRjaCxcbiAgICBpc0lFLCBpc0RlZmluZWRcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtnZXRXaWRnZXRQcm9wc0J5VHlwZSwgV2lkZ2V0UmVmfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IFBhZ2VEaXJlY3RpdmUsIFNwYVBhZ2VEaXJlY3RpdmUgfSBmcm9tICdAd20vY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7UHJlZmFiRGlyZWN0aXZlfSBmcm9tICdAd20vY29tcG9uZW50cy9wcmVmYWInO1xuaW1wb3J0IHsgVmFyaWFibGVzU2VydmljZSB9IGZyb20gJ0B3bS92YXJpYWJsZXMnO1xuaW1wb3J0IHsgQ3VzdG9td2lkZ2V0Q29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQgeyBGcmFnbWVudE1vbml0b3IgfSBmcm9tICcuLi91dGlsL2ZyYWdtZW50LW1vbml0b3InO1xuaW1wb3J0IHsgQXBwTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHAubWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7Y29tbW9uUGFydGlhbFdpZGdldHN9IGZyb20gXCIuL2Jhc2UtcGFydGlhbC5jb21wb25lbnRcIjtcbmltcG9ydCB7Y2FwaXRhbGl6ZSwgZm9yRWFjaH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHtDaGVja2JveHNldENvbXBvbmVudCwgUmFkaW9zZXRDb21wb25lbnR9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dFwiO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbi8vIGV4cG9ydCBjb25zdCBjb21tb25QYXJ0aWFsV2lkZ2V0cyA9IHt9O1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ3VzdG9tV2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgRnJhZ21lbnRNb25pdG9yIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBXaWRnZXRzOiBhbnk7XG4gICAgQmFzZVdpZGdldDogYW55ID0ge307XG4gICAgVmFyaWFibGVzOiBhbnk7XG4gICAgQWN0aW9uczogYW55O1xuICAgIEFwcDogQXBwO1xuICAgIGluamVjdG9yOiBJbmplY3RvcjtcbiAgICBjdXN0b21XaWRnZXROYW1lOiBzdHJpbmc7XG4gICAgYWN0aXZlUGFnZU5hbWU6IHN0cmluZztcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gICAgYXBwTWFuYWdlcjogQXBwTWFuYWdlclNlcnZpY2U7XG4gICAgbmF2aWdhdGlvblNlcnZpY2U6IEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2U7XG4gICAgcm91dGVyOiBSb3V0ZXI7XG4gICAgcHJvcHM6IGFueTtcbiAgICBjb250YWluZXJXaWRnZXQ6IGFueTtcbiAgICBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZTtcbiAgICBhcHBMb2NhbGU6IGFueTtcbiAgICAvLyBAVmlld0NoaWxkKFBhcnRpYWxEaXJlY3RpdmUpIHBhcnRpYWxEaXJlY3RpdmU7XG4gICAgcGFnZURpcmVjdGl2ZTogUGFnZURpcmVjdGl2ZSB8IFNwYVBhZ2VEaXJlY3RpdmU7XG4gICAgUHJlZmFiOiBQcmVmYWJEaXJlY3RpdmU7XG4gICAgc2NyaXB0TG9hZGVyU2VydmljZTogU2NyaXB0TG9hZGVyU2VydmljZTtcbiAgICBjdXN0b213aWRnZXRDb25maWdQcm92aWRlcjogQ3VzdG9td2lkZ2V0Q29uZmlnUHJvdmlkZXI7XG4gICAgVmlld3BvcnQ6IFZpZXdwb3J0O1xuICAgIGNvbXBpbGVDb250ZW50ID0gZmFsc2U7XG4gICAgc3BhOiBib29sZWFuO1xuICAgIGV2ZW50czogYW55O1xuXG4gICAgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICAgIHZpZXdJbml0JCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSB2aWV3UGFyZW50OiBhbnk7XG5cbiAgICBhYnN0cmFjdCBldmFsVXNlclNjcmlwdChwcmVmYWJDb250ZXh0OiBhbnksIGFwcENvbnRleHQ6IGFueSwgdXRpbHM6IGFueSk7XG5cbiAgICBhYnN0cmFjdCBnZXRWYXJpYWJsZXMoKTtcblxuICAgIGdldENvbnRhaW5lcldpZGdldEluamVjdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXJXaWRnZXQuaW5qIHx8IHRoaXMuY29udGFpbmVyV2lkZ2V0LmluamVjdG9yO1xuICAgIH1cblxuICAgIGluaXQoKSB7XG4gICAgICAgIGxldCByZXNvbHZlRm46IEZ1bmN0aW9uO1xuICAgICAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlcyk9PiByZXNvbHZlRm4gPSByZXMpXG4gICAgICAgIHRoaXMuQXBwID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcCkgOiBpbmplY3QoQXBwKTtcbiAgICAgICAgLy9tYWtpbmcgdGhlIGNvZGUgY29tcGF0aWJsZSBpbiBib3RoIHRoZSBKSVQgYW5kIEFPVCBtb2Rlc1xuICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldCA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChXaWRnZXRSZWYpIDogaW5qZWN0KFdpZGdldFJlZik7XG4gICAgICAgIHRoaXMuaTE4blNlcnZpY2UgPSB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoQWJzdHJhY3RJMThuU2VydmljZSkgOiBpbmplY3QoQWJzdHJhY3RJMThuU2VydmljZSk7XG4gICAgICAgIHRoaXMuc2NyaXB0TG9hZGVyU2VydmljZSA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChTY3JpcHRMb2FkZXJTZXJ2aWNlKSA6IGluamVjdChTY3JpcHRMb2FkZXJTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5WaWV3cG9ydCA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChWaWV3cG9ydCkgOiBpbmplY3QoVmlld3BvcnQpO1xuICAgICAgICB0aGlzLmN1c3RvbXdpZGdldENvbmZpZ1Byb3ZpZGVyID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KEN1c3RvbXdpZGdldENvbmZpZ1Byb3ZpZGVyKSA6IGluamVjdChDdXN0b213aWRnZXRDb25maWdQcm92aWRlcik7XG4gICAgICAgIC8vIHRoaXMudmlld0NvbnRhaW5lclJlZiA9IHRoaXMuZ2V0Q29udGFpbmVyV2lkZ2V0SW5qZWN0b3IoKS5nZXQoVmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIC8vIFJlcGxhY2luZyB0aGlzLmdldENvbnRhaW5lcldpZGdldEluamVjdG9yKCkudmlldy5jb21wb25lbnQgYXMgdmlld1BhcmVudFxuICAgICAgICAvLyB0aGlzLnZpZXdQYXJlbnQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkucGFyZW50SW5qZWN0b3IuX2xWaWV3WzhdO1xuICAgICAgICB0aGlzLnZpZXdQYXJlbnQgPSB0aGlzLmNvbnRhaW5lcldpZGdldC52aWV3UGFyZW50O1xuXG4gICAgICAgIGlmICh0aGlzLnZpZXdQYXJlbnQucmVnaXN0ZXJGcmFnbWVudCkge1xuICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50LnJlZ2lzdGVyRnJhZ21lbnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlZ2lzdGVyIGZ1bmN0aW9ucyBmb3IgYmluZGluZyBldmFsdWF0aW9uXG4gICAgICAgIHRoaXMucmVnaXN0ZXJFeHByZXNzaW9ucygpO1xuICAgICAgICB0aGlzLmluaXRVc2VyU2NyaXB0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJQcm9wc0luQ29udGFpbmVyV2lkZ2V0KHJlc29sdmVGbik7XG4gICAgICAgIC8vIFVzaW5nIHByb21pc2UgdG8gbWFrZSBzdXJlIHRoZSBwcm9wcyBhcmUgcmVnaXN0ZXJlZCBpbiB0aGUgY29udGFpbmVyIHdpZGdldCBiZWZvcmUgcmVnaXN0ZXJpbmcgZXZlbnRzLCBPdGhlcndpc2Ugbm8gZXZlbnRzIHdpbGwgYmUgcmVnaXN0ZXJlZFxuICAgICAgICBwcm9taXNlLnRoZW4oKCkgPT4gdGhpcy5yZWdpc3RlckV2ZW50cygpKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyV2lkZ2V0cygpO1xuICAgICAgICB0aGlzLmluaXRWYXJpYWJsZXMoKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VOYW1lID0gdGhpcy5BcHAuYWN0aXZlUGFnZU5hbWU7IC8vIFRvZG86IHJlbW92ZSB0aGlzXG4gICAgICAgIHRoaXMucmVnaXN0ZXJQcm9wcygpO1xuICAgICAgICB0aGlzLmRlZmluZUkxOG5Qcm9wcygpO1xuXG4gICAgICAgIHRoaXMudmlld0luaXQkLnN1YnNjcmliZShub29wLCBub29wLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb3BzID0gdGhpcy5jb250YWluZXJXaWRnZXQucHJvcHM7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmKHRoaXMuc3BhKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VEaXJlY3RpdmUgPSB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoU3BhUGFnZURpcmVjdGl2ZSkgOiBpbmplY3QoU3BhUGFnZURpcmVjdGl2ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VEaXJlY3RpdmUgPSB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoUGFnZURpcmVjdGl2ZSkgOiBpbmplY3QoUGFnZURpcmVjdGl2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFnZURpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcih0aGlzLnBhZ2VEaXJlY3RpdmUuc3Vic2NyaWJlKCdhdHRhY2gnLCBkYXRhID0+IHRoaXMubmdPbkF0dGFjaChkYXRhLnJlZnJlc2hEYXRhKSkpO1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcih0aGlzLnBhZ2VEaXJlY3RpdmUuc3Vic2NyaWJlKCdkZXRhY2gnLCAoKSA9PiB0aGlzLm5nT25EZXRhY2goKSkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0Lm9uRXJyb1N1YmplY3QuYXNPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmKHRoaXNbJ29uVmFsaWRTdGF0dXNDaGFuZ2UnXSlcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1snb25WYWxpZFN0YXR1c0NoYW5nZSddKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBzdXBlci5pbml0KCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJXaWRnZXRzKCkge1xuICAgICAgICAvLyBjb21tb24gcGFydGlhbCB3aWRnZXRzIHNob3VsZCBiZSBhY2Nlc3NpYmxlIGZyb20gcGFnZVxuICAgICAgICB0aGlzLldpZGdldHMgPSBPYmplY3QuY3JlYXRlKGNvbW1vblBhcnRpYWxXaWRnZXRzKTtcblxuICAgICAgICAvLyBleHBvc2UgY3VycmVudCBwYWdlIHdpZGdldHMgb24gYXBwXG4gICAgICAgICh0aGlzLkFwcCBhcyBhbnkpLldpZGdldHMgPSBPYmplY3QuY3JlYXRlKHRoaXMuV2lkZ2V0cyk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUNvbXBvbmVudERhdGEoY2hpbGRyZW4pIHtcbiAgICAgICAgQXJyYXkuZnJvbShjaGlsZHJlbikuZm9yRWFjaCgoY2hpbGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYoIWNoaWxkLmhhc0F0dHJpYnV0ZSgnd21jdXN0b213aWRnZXQnKSlcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVDb21wb25lbnREYXRhKGNoaWxkLmNoaWxkcmVuKTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFzQXR0ciA9IGNoaWxkLmdldEF0dHJpYnV0ZSgnYXMnKSB8fCAnJztcbiAgICAgICAgICAgICAgICBpZiAoIWFzQXR0cikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBiYXNlV2lkZ2V0LCBzcGxpdEFyciA9IGFzQXR0ci5zcGxpdCgnLScpLCBtb2RpZmllZEFyciA9IFtdO1xuICAgICAgICAgICAgICAgIG1vZGlmaWVkQXJyID0gc3BsaXRBcnIubWFwKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IGl0ZW0gIT09ICd3bScgPyBjYXBpdGFsaXplKGl0ZW0pIDogaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYmFzZVdpZGdldCA9IG1vZGlmaWVkQXJyLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoYmFzZVdpZGdldCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd3bUNoZWNrYm94c2V0JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYmFzZVdpZGdldF0gPSBuZXcgQ2hlY2tib3hzZXRDb21wb25lbnQodGhpcy5pbmplY3RvciwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYmFzZVdpZGdldF1bXCJfc2VsZWN0XCJdID0gKGl0ZW06IGFueSwgJGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yRWFjaCh0aGlzW2Jhc2VXaWRnZXRdLmRhdGFzZXRJdGVtcywgKGRhdGFzZXRJdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGF0YXNldEl0ZW0ua2V5ID09PSBpdGVtLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFzZXRJdGVtLnNlbGVjdGVkID0gIWRhdGFzZXRJdGVtLnNlbGVjdGVkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGFzZXRJdGVtLnNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKGRhdGFzZXRJdGVtLmtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tiYXNlV2lkZ2V0XS50cmlnZ2VySW52b2tlT25DaGFuZ2Uoa2V5cywgJGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd3bVJhZGlvc2V0JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYmFzZVdpZGdldF0gPSBuZXcgUmFkaW9zZXRDb21wb25lbnQodGhpcy5pbmplY3RvciwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYmFzZVdpZGdldF1bXCJfc2VsZWN0XCJdID0gKGl0ZW06IGFueSwgJGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Jhc2VXaWRnZXRdLnRyaWdnZXJJbnZva2VPbkNoYW5nZShpdGVtLmtleSwgJGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiB0aGlzLmNvbnRhaW5lcldpZGdldC4kYXR0cnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoa2V5LnN0YXJ0c1dpdGgoJ2Jhc2UtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtb2RpZmllZEtleSA9IGtleS5yZXBsYWNlKCdiYXNlLScsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYmFzZVdpZGdldF1bbW9kaWZpZWRLZXldID0gdmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1vZGlmaWVkS2V5ID09PSAnZGF0YXZhbHVlJyAmJiB0aGlzLmNvbnRhaW5lcldpZGdldC5mb3JtQ29udHJvbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC51cGRhdGVEYXRhVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXNbYmFzZVdpZGdldF0uaW5pdERhdGFzZXRJdGVtcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0W2Jhc2VXaWRnZXRdID0gdGhpc1tiYXNlV2lkZ2V0XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJCYXNlV2lkZ2V0KCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVDb21wb25lbnREYXRhKHRoaXMuY29udGFpbmVyV2lkZ2V0Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIGludm9rZUV2ZW50ID0gKGV2ZW50TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnRzW2V2ZW50TmFtZV0oKTtcbiAgICB9XG5cbiAgICByZWdpc3RlckV2ZW50cygpIHtcbiAgICAgICAgdGhpcy5ldmVudHMgPSB7fTtcbiAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXQuZXZlbnRIYW5kbGVycy5mb3JFYWNoKChjYWxsYmFjazogYW55LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldmVudHNba2V5XSA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXQuaW52b2tlRXZlbnRDYWxsYmFjayhrZXksIHskZXZlbnQ6IGFyZ3NbMF0sICRkYXRhOiBhcmdzWzFdfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcihmbjogRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5zdWJzY3JpYmUobm9vcCwgbm9vcCwgKCkgPT4gZm4oKSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJDaGFuZ2VMaXN0ZW5lcnMoKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LnJlZ2lzdGVyUHJvcGVydHlDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uUHJvcGVydHlDaGFuZ2UpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC5yZWdpc3RlclN0eWxlQ2hhbmdlTGlzdGVuZXIodGhpcy5vblByb3BlcnR5Q2hhbmdlKTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICBpZih0aGlzWydnZXREYXRhdmFsdWUnXSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzWydnZXREYXRhdmFsdWUnXSgpO1xuICAgIH1cblxuICAgIHNldCBkYXRhdmFsdWUodmFsdWUpIHtcbiAgICAgICAgdGhpcy5kYXRhdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBpbml0VXNlclNjcmlwdCgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIHBhcnRpYWxzIGluc2lkZSBwcmVmYWIgc2hvdWxkIGhhdmUgYWNjZXNzIHRvIFByZWZhYiBwcm9wZXJ0aWVzIGFuZCBldmVudHNcbiAgICAgICAgICAgIGlmICh0aGlzLnZpZXdQYXJlbnQucHJlZmFiTmFtZSkge1xuICAgICAgICAgICAgICAgIC8vIGZvciBwYXJ0aWFsIHdpdGhpbiBwYXJ0aWFsIHdpdGhpbiBwcmVmYWJzLCBqdXN0IGFzc2lnbiB0aGUgcGFyZW50IHBhcnRpYWwncyBwcmVmYWIgb2JqZWN0XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmlld1BhcmVudC5QcmVmYWIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5QcmVmYWIgPSB0aGlzLnZpZXdQYXJlbnQuUHJlZmFiO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUHJlZmFiID0gdGhpcy52aWV3UGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZXZhbFVzZXJTY3JpcHQodGhpcywgdGhpcy5BcHAsIHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChVdGlsc1NlcnZpY2UpIDogaW5qZWN0KFV0aWxzU2VydmljZSkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBpbiBldmFsdWF0aW5nIHBhcnRpYWwgKCR7dGhpcy5jdXN0b21XaWRnZXROYW1lfSkgc2NyaXB0XFxuYCwgZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0VmFyaWFibGVzKCkge1xuICAgICAgICBjb25zdCB2YXJpYWJsZXNTZXJ2aWNlID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KFZhcmlhYmxlc1NlcnZpY2UpIDogaW5qZWN0KFZhcmlhYmxlc1NlcnZpY2UpO1xuXG4gICAgICAgIC8vIGdldCB2YXJpYWJsZXMgYW5kIGFjdGlvbnMgaW5zdGFuY2VzIGZvciB0aGUgcGFnZVxuICAgICAgICBjb25zdCB2YXJpYWJsZUNvbGxlY3Rpb24gPSB2YXJpYWJsZXNTZXJ2aWNlLnJlZ2lzdGVyKHRoaXMuY3VzdG9tV2lkZ2V0TmFtZSwgdGhpcy5nZXRWYXJpYWJsZXMoKSwgdGhpcyk7XG5cbiAgICAgICAgLy8gY3JlYXRlIG5hbWVzcGFjZSBmb3IgVmFyaWFibGVzIG5hZCBBY3Rpb25zIG9uIHBhZ2UvcGFydGlhbCwgd2hpY2ggaW5oZXJpdHMgdGhlIFZhcmlhYmxlcyBhbmQgQWN0aW9ucyBmcm9tIEFwcCBpbnN0YW5jZVxuICAgICAgICB0aGlzLlZhcmlhYmxlcyA9IE9iamVjdC5jcmVhdGUodGhpcy5BcHAuVmFyaWFibGVzKTtcbiAgICAgICAgdGhpcy5BY3Rpb25zID0gT2JqZWN0LmNyZWF0ZSh0aGlzLkFwcC5BY3Rpb25zKTtcblxuICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC5WYXJpYWJsZXMgPSB0aGlzLlZhcmlhYmxlcztcbiAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXQuQWN0aW9ucyA9IHRoaXMuQWN0aW9ucztcblxuICAgICAgICAvLyBhc3NpZ24gYWxsIHRoZSBwYWdlIHZhcmlhYmxlcyB0byB0aGUgcGFnZUluc3RhbmNlXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlQ29sbGVjdGlvbi5WYXJpYWJsZXMpLmZvckVhY2goKFtuYW1lLCB2YXJpYWJsZV0pID0+IHRoaXMuVmFyaWFibGVzW25hbWVdID0gdmFyaWFibGUpO1xuICAgICAgICBPYmplY3QuZW50cmllcyh2YXJpYWJsZUNvbGxlY3Rpb24uQWN0aW9ucykuZm9yRWFjaCgoW25hbWUsIGFjdGlvbl0pID0+IHRoaXMuQWN0aW9uc1tuYW1lXSA9IGFjdGlvbik7XG5cblxuICAgICAgICB0aGlzLnZpZXdJbml0JC5zdWJzY3JpYmUobm9vcCwgbm9vcCwgKCkgPT4ge1xuICAgICAgICAgICAgLy8gVEVNUDogdHJpZ2dlcmluZyB3YXRjaGVycyBzbyB2YXJpYWJsZXMgd2F0Y2hpbmcgb3ZlciBwYXJhbXMgYXJlIHVwZGF0ZWRcbiAgICAgICAgICAgICRpbnZva2VXYXRjaGVycyh0cnVlLCB0cnVlKTtcbiAgICAgICAgICAgIHZhcmlhYmxlQ29sbGVjdGlvbi5jYWxsYmFjayh2YXJpYWJsZUNvbGxlY3Rpb24uVmFyaWFibGVzKS5jYXRjaChub29wKTtcbiAgICAgICAgICAgIHZhcmlhYmxlQ29sbGVjdGlvbi5jYWxsYmFjayh2YXJpYWJsZUNvbGxlY3Rpb24uQWN0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyIGJpbmQgZXhwcmVzc2lvbnMgZ2VuZXJhdGVkIGluIHRoaXMgcGFydGlhbCBpbnN0YW5jZVxuICAgICAqIGdldEV4cHJlc3Npb25zIGZ1bmN0aW9uIGlzIGRlZmluZWQgaW4gdGhlIGdlbmVyYXRlZCBwYWdlLmNvbXAudHMgZmlsZVxuICAgICAqIEBwYXJhbSBleHByZXNzaW9ucywgbWFwIG9mIGJpbmQgZXhwcmVzc2lvbiB2cyBnZW5lcmF0ZWQgZnVuY3Rpb25cbiAgICAgKi9cbiAgICByZWdpc3RlckV4cHJlc3Npb25zKCkge1xuICAgICAgICAvLyBjb25zdCBleHByZXNzaW9ucyA9IHRoaXMuZ2V0RXhwcmVzc2lvbnMoKTtcbiAgICAgICAgLy8gXy5lYWNoKGV4cHJlc3Npb25zLCAoZm4sIGV4cHIpPT57XG4gICAgICAgIC8vICAgICByZWdpc3RlckZuQnlFeHByKGV4cHIsIGZuWzBdLCBmblsxXSk7XG4gICAgICAgIC8vIH0pO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyUHJvcHMoKSB7XG4gICAgICAgIHRoaXMucHJvcHMgPSB0aGlzLmNvbnRhaW5lcldpZGdldC5wcm9wcztcbiAgICB9XG5cbiAgICBkZWZpbmVJMThuUHJvcHMoKSB7XG4gICAgICAgIHRoaXMuYXBwTG9jYWxlID0gdGhpcy5pMThuU2VydmljZS5nZXRBcHBMb2NhbGUoKTtcbiAgICB9XG5cbiAgICBpbnZva2VPblJlYWR5KCkge1xuICAgICAgICBsZXQgcGFyYW1zO1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXJXaWRnZXQudXNlckNvbXBvbmVudFBhcmFtcykge1xuICAgICAgICAgICAgcGFyYW1zID0gdGhpcy5jb250YWluZXJXaWRnZXQudXNlckNvbXBvbmVudFBhcmFtcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uUmVhZHkocGFyYW1zKTtcbiAgICAgICAgaWYgKHRoaXMudmlld1BhcmVudC5yZXNvbHZlRnJhZ21lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudmlld1BhcmVudC5yZXNvbHZlRnJhZ21lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFNjcmlwdHMoKSB7XG4gICAgICAgIC8vIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgICAvLyAgICAgY29uc3Qgc2NyaXB0c1JlcXVpcmVkID0gdGhpcy5wYXJ0aWFsRGlyZWN0aXZlLiRlbGVtZW50LmF0dHIoJ3NjcmlwdHMtdG8tbG9hZCcpO1xuICAgICAgICAvLyAgICAgaWYgKHNjcmlwdHNSZXF1aXJlZCkge1xuICAgICAgICAvLyAgICAgICAgIHRoaXMuc2NyaXB0TG9hZGVyU2VydmljZVxuICAgICAgICAvLyAgICAgICAgICAgICAubG9hZCguLi5zY3JpcHRzUmVxdWlyZWQuc3BsaXQoJywnKSlcbiAgICAgICAgLy8gICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSk7XG4gICAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfSk7XG4gICAgfVxuICAgIHJlZ2lzdGVyUHJvcHNJbkNvbnRhaW5lcldpZGdldChyZXNvbHZlRm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMuY3VzdG9td2lkZ2V0Q29uZmlnUHJvdmlkZXIuZ2V0Q29uZmlnKHRoaXMuY3VzdG9tV2lkZ2V0TmFtZSkudGhlbigoY29uZmlnKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoKGNvbmZpZy5wcm9wZXJ0aWVzIHx8IHt9KSkuZm9yRWFjaCgoW2tleSwgcHJvcF06IFtzdHJpbmcsIGFueV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGV4cHI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gXy50cmltKHByb3AudmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChfLnN0YXJ0c1dpdGgodmFsdWUsICdiaW5kOicpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHByID0gdmFsdWUucmVwbGFjZSgnYmluZDonLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywga2V5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IHRoaXMuY29udGFpbmVyV2lkZ2V0W2tleV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IG52ID0+IHRoaXMuY29udGFpbmVyV2lkZ2V0LndpZGdldFtrZXldID0gbnZcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4cHIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vW1RvZG8tQ1NQXTogZXhwciB3aWxsIGJlIGdlbmVyYXRlZCB3aXRoIHByZWZhYi5jb21wLmV4cHIudHNcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdhdGNoKGV4cHIsIHRoaXMsIHt9LCBudiA9PiB0aGlzLmNvbnRhaW5lcldpZGdldC53aWRnZXRba2V5XSA9IG52KVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC5zZXRQcm9wcyhjb25maWcsIHJlc29sdmVGbik7XG4gICAgICAgICAgICAvLyBSZWFzc2lnbmluZyB0aGUgcHJveHkgaGFuZGxlciBmb3IgcHJlZmFiIGluYm91bmQgcHJvcGVydGllcyBhcyB3ZVxuICAgICAgICAgICAgLy8gd2lsbCBnZXQgdGhlbSBvbmx5IGFmdGVyIHRoZSBwcmVmYWIgY29uZmlnIGNhbGwuXG4gICAgICAgICAgICBpZiAoaXNJRSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXQud2lkZ2V0ID0gdGhpcy5jb250YWluZXJXaWRnZXQuY3JlYXRlUHJveHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBtdXRlKCkge1xuICAgICAgICBjb25zdCBtID0gbyA9PiB7IG8gJiYgby5tdXRlICYmIG8ubXV0ZSgpOyB9O1xuICAgICAgICBfLmVhY2godGhpcy5XaWRnZXRzLCBtKTtcbiAgICAgICAgXy5lYWNoKHRoaXMuVmFyaWFibGVzLCBtKTtcbiAgICAgICAgXy5lYWNoKHRoaXMuQWN0aW9ucywgbSk7XG4gICAgfVxuXG4gICAgdW5tdXRlKCkge1xuICAgICAgICBjb25zdCB1bSA9IG8gPT4geyBvICYmIG8udW5tdXRlICYmIG8udW5tdXRlKCk7IH07XG4gICAgICAgIF8uZWFjaCh0aGlzLldpZGdldHMsIHVtKTtcbiAgICAgICAgXy5lYWNoKHRoaXMuVmFyaWFibGVzLCB1bSk7XG4gICAgICAgIF8uZWFjaCh0aGlzLkFjdGlvbnMsIHVtKTtcbiAgICB9XG5cbiAgICAvLyBuZ09uSW5pdCgpIHtcbiAgICAvLyAgICAgdGhpcy5pbml0KCk7XG4gICAgLy8gfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyQ2hhbmdlTGlzdGVuZXJzKCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJCYXNlV2lkZ2V0KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdJbml0JC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZnJhZ21lbnRzTG9hZGVkJC5zdWJzY3JpYmUobm9vcCwgbm9vcCwgKCkgPT4gdGhpcy5pbnZva2VPblJlYWR5KCkpO1xuICAgICAgICAgICAgfSwgMTAwKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG5nT25BdHRhY2gocmVmcmVzaERhdGEpIHtcbiAgICAgICAgdGhpcy51bm11dGUoKTtcbiAgICAgICAgaWYgKHJlZnJlc2hEYXRhKSB7XG4gICAgICAgICAgICBjb25zdCByZWZyZXNoID0gdiA9PiB7IHYgJiYgdi5zdGFydFVwZGF0ZSAmJiB2Lmludm9rZSAmJiB2Lmludm9rZSgpOyB9O1xuICAgICAgICAgICAgXy5lYWNoKHRoaXMuVmFyaWFibGVzLCByZWZyZXNoKTtcbiAgICAgICAgICAgIF8uZWFjaCh0aGlzLkFjdGlvbnMsIHJlZnJlc2gpO1xuICAgICAgICB9XG4gICAgICAgIF8uZWFjaCh0aGlzLldpZGdldHMsIHcgPT4gdyAmJiB3Lm5nT25BdHRhY2ggJiYgdy5uZ09uQXR0YWNoKCkpO1xuICAgIH1cblxuICAgIG5nT25EZXRhY2goKSB7XG4gICAgICAgIHRoaXMubXV0ZSgpO1xuICAgICAgICBfLmVhY2godGhpcy5XaWRnZXRzLCB3ID0+IHcgJiYgdy5uZ09uRGV0YWNoICYmIHcubmdPbkRldGFjaCgpKTtcbiAgICB9XG5cbiAgICAvLyB1c2VyIG92ZXJyaWRlcyB0aGlzXG4gICAgb25Qcm9wZXJ0eUNoYW5nZSgpIHsgfVxuXG4gICAgb25SZWFkeShwYXJhbXM/KSB7XG4gICAgfVxufVxuIl19
@@ -1501,6 +1501,10 @@ class BaseCustomWidgetComponent extends FragmentMonitor {
1501
1501
  this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));
1502
1502
  this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));
1503
1503
  }
1504
+ this.containerWidget.onErroSubject.asObservable().subscribe(() => {
1505
+ if (this['onValidStatusChange'])
1506
+ return this['onValidStatusChange']();
1507
+ });
1504
1508
  super.init();
1505
1509
  }
1506
1510
  registerWidgets() {