@wavemaker/app-ng-runtime 11.9.0-next.27456 → 11.9.0-next.27462

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 (46) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +4 -4
  2. app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/basic/default/picture/picture.build.mjs +2 -2
  4. app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +2 -2
  6. app-ng-runtime/build-task/fesm2022/index.mjs +4 -4
  7. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  8. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
  9. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
  10. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  11. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  12. app-ng-runtime/components/basic/default/bundles/index.umd.js +1 -1
  13. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -2
  14. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  15. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +2 -1
  16. app-ng-runtime/components/basic/default/fesm2022/index.mjs +1 -1
  17. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  18. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  19. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +3 -3
  20. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +4 -4
  21. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +3 -3
  22. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  23. app-ng-runtime/components/input/default/bundles/index.umd.js +25 -19
  24. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +14 -9
  25. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +13 -12
  26. app-ng-runtime/components/input/default/fesm2022/index.mjs +25 -19
  27. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  28. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +5 -4
  29. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +6 -5
  30. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +5 -4
  31. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  32. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +2 -2
  33. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +3 -3
  34. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +2 -2
  35. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  36. app-ng-runtime/components/navigation/popover/popover.component.d.ts +2 -0
  37. app-ng-runtime/core/bundles/index.umd.js +5 -5
  38. app-ng-runtime/core/esm2022/utils/build-utils.mjs +6 -6
  39. app-ng-runtime/core/fesm2022/index.mjs +5 -5
  40. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  41. app-ng-runtime/package.json +1 -1
  42. app-ng-runtime/runtime/base/bundles/index.umd.js +3 -2
  43. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +4 -3
  44. app-ng-runtime/runtime/base/fesm2022/index.mjs +3 -2
  45. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  46. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
@@ -146,7 +146,7 @@ class AccordionPaneComponent extends StylableComponent {
146
146
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.reDrawableComponents = _t);
147
147
  } }, exportAs: ["wmAccordionPane"], features: [i0.ɵɵProvidersFeature([
148
148
  provideAsWidgetRef(AccordionPaneComponent)
149
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, ngContentSelectors: _c1, decls: 16, vars: 22, consts: [[1, "panel-heading", "clearfix", 3, "click", "ngClass"], [1, "panel-title"], ["href", "javascript:void(0);", "role", "button", 1, "accordion-toggle"], [1, "pull-left"], [3, "hidden"], [1, "heading", 3, "innerHTML"], [1, "description", 3, "innerHTML"], [1, "panel-actions"], ["type", "button", "aria-label", "Collapse/Expand", 1, "app-icon", "panel-action", "wi", 3, "title"], [3, "ngClass"], ["role", "tabpanel", "aria-labelledby", "panel description", 1, "panel-collapse", "collapse", 3, "ngClass"], ["partial-container-target", "", 1, "panel-body", 3, "wmSmoothscroll"]], template: function AccordionPaneComponent_Template(rf, ctx) { if (rf & 1) {
149
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, ngContentSelectors: _c1, decls: 16, vars: 22, consts: [[1, "panel-heading", "clearfix", 3, "click", "ngClass"], [1, "panel-title"], ["href", "javascript:void(0);", "role", "button", 1, "accordion-toggle"], [1, "pull-left"], [3, "hidden"], [1, "heading", 3, "innerHTML"], [1, "description", 3, "innerHTML"], [1, "panel-actions"], ["type", "button", "aria-label", "Collapse/Expand", 1, "app-icon", "panel-action", "wi", 3, "title"], [3, "ngClass"], [1, "panel-collapse", "collapse", 3, "ngClass"], ["partial-container-target", "", 1, "panel-body", 3, "wmSmoothscroll"]], template: function AccordionPaneComponent_Template(rf, ctx) { if (rf & 1) {
150
150
  i0.ɵɵprojectionDef();
151
151
  i0.ɵɵelementStart(0, "div", 0);
152
152
  i0.ɵɵlistener("click", function AccordionPaneComponent_Template_div_click_0_listener($event) { return ctx.toggle($event); });
@@ -168,7 +168,7 @@ class AccordionPaneComponent extends StylableComponent {
168
168
  } if (rf & 2) {
169
169
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(20, _c2, ctx.isActive));
170
170
  i0.ɵɵadvance(2);
171
- i0.ɵɵattribute("aria-label", ctx.title)("aria-expanded", ctx.isActive);
171
+ i0.ɵɵattribute("aria-expanded", ctx.isActive)("aria-label", ctx.badgevalue ? ctx.title + " " + ctx.badgevalue : ctx.title);
172
172
  i0.ɵɵadvance(2);
173
173
  i0.ɵɵclassMapInterpolate1("app-icon panel-icon ", ctx.iconclass, "");
174
174
  i0.ɵɵproperty("hidden", !ctx.iconclass);
@@ -195,7 +195,7 @@ class AccordionPaneComponent extends StylableComponent {
195
195
  type: Component,
196
196
  args: [{ selector: 'div[wmAccordionPane]', providers: [
197
197
  provideAsWidgetRef(AccordionPaneComponent)
198
- ], exportAs: 'wmAccordionPane', template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a href=\"javascript:void(0);\" role=\"button\" class=\"accordion-toggle\" [attr.aria-label]=\"title\" [attr.aria-expanded]=\"isActive\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n </h3>\n <div class=\"panel-actions\">\n <span class=\"label label-{{badgetype}}\">{{badgevalue}}</span>\n <button type=\"button\" aria-label=\"Collapse/Expand\" [attr.aria-expanded]=\"isActive\"\n class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </button>\n </div>\n</div>\n<div class=\"panel-collapse collapse\" role=\"tabpanel\" aria-labelledby=\"panel description\" [ngClass]=\"isActive ? 'collapse in' : 'collapse'\">\n <div class=\"panel-body\" [wmSmoothscroll]=\"smoothscroll\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n" }]
198
+ ], exportAs: 'wmAccordionPane', template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [attr.aria-label]=\"badgevalue ? title + ' ' + badgevalue : title\"\n class=\"accordion-toggle\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n </h3>\n <div class=\"panel-actions\">\n <span class=\"label label-{{badgetype}}\">{{badgevalue}}</span>\n <button type=\"button\" aria-label=\"Collapse/Expand\" [attr.aria-expanded]=\"isActive\"\n class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </button>\n </div>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" [wmSmoothscroll]=\"smoothscroll\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n" }]
199
199
  }], () => [{ type: i0.Injector }, { type: AccordionDirective }, { type: undefined, decorators: [{
200
200
  type: Inject,
201
201
  args: ['EXPLICIT_CONTEXT']
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/accordion/src/accordion.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.html","../../../../../projects/components/widgets/containers/accordion/src/accordion.directive.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion.module.ts","../../../../../projects/components/widgets/containers/accordion/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordion',\n new Map(\n [\n ['class', PROP_STRING],\n ['closeothers', {value: true, ...PROP_BOOLEAN}],\n ['dataset', PROP_ANY],\n ['defaultpaneindex', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING]\n ]\n )\n );\n};\n","import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordionpane',\n new Map(\n [\n ['active', PROP_BOOLEAN], // internal property\n ['badgetype', {value: 'default', ...PROP_STRING}],\n ['badgevalue', PROP_STRING],\n ['class', PROP_STRING],\n ['content', PROP_STRING],\n ['dynamicPaneIndex', PROP_NUMBER], // internal property\n ['iconclass', PROP_STRING],\n ['isdefaultpane', PROP_BOOLEAN],\n ['isdynamic', PROP_STRING], // internal property\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['smoothscroll', {value: false, ...PROP_BOOLEAN}],\n ['subheading', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', {value: 'Title', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {AfterViewInit, Component, ContentChildren, Inject, Injector, Optional} from '@angular/core';\n\nimport {noop, removeAttr} from '@wm/core';\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, RedrawableDirective, StylableComponent, styler, } from '@wm/components/base';\n\nimport { registerProps } from './accordion-pane.props';\nimport { AccordionDirective } from '../accordion.directive';\n\nconst DEFAULT_CLS = 'app-accordion-panel panel';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-accordionpane', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: 'div[wmAccordionPane]',\n templateUrl: './accordion-pane.component.html',\n providers: [\n provideAsWidgetRef(AccordionPaneComponent)\n ],\n exportAs: 'wmAccordionPane'\n})\nexport class AccordionPaneComponent extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n public isActive = false;\n public iconclass: string;\n public title: any;\n public subheading: string;\n public badgetype: any;\n public badgevalue: string;\n public smoothscroll: any;\n private $lazyLoad = noop;\n private isdynamic: boolean;\n\n public name: string;\n\n // reference to the components which needs a redraw(eg, grid, chart) when the height of this component changes\n @ContentChildren(RedrawableDirective, {descendants: true}) reDrawableComponents;\n\n constructor(inj: Injector, private accordionRef: AccordionDirective, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n // title property here serves the purpose of heading.\n // remove title property as attribute\n removeAttr(this.nativeElement, 'title');\n }\n\n /**\n * handles the pane expand\n * invoke $lazyLoad method which takes care of loading the partial when the content property is provided - lazyLoading or partial\n * invoke redraw on the re-drawable children\n * invoke expand callback\n * notify parent about the change\n * @param {Event} evt\n */\n public expand(evt?: Event) {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.$lazyLoad();\n this.redrawChildren();\n this.invokeEventCallback('expand', {$event: evt});\n this.notifyParent(true, evt);\n }\n\n /**\n * handles the pane collapse\n * invoke collapse callback\n * notify parent about the change\n * @param {Event} evt\n */\n public collapse(evt?: Event) {\n if (!this.isActive) {\n return;\n }\n this.isActive = false;\n this.invokeEventCallback('collapse', {$event: evt});\n this.notifyParent(false, evt);\n }\n\n public remove() {\n const paneIndex = (this as any).accordionRef.getPaneIndexByRef(this);\n if (this.isActive && this.accordionRef.panes.length > 1) {\n this === this.accordionRef.panes.last ? this.accordionRef.panes.toArray()[paneIndex - 1].expand() : this.accordionRef.panes.toArray()[paneIndex + 1].expand();\n }\n const availablePanes = this.accordionRef.panes.toArray();\n availablePanes.splice((this as any).accordionRef.getPaneIndexByRef(this), 1);\n this.accordionRef.panes.reset([...availablePanes]);\n this.nativeElement.remove();\n }\n\n public toggle(evt: Event) {\n if (this.isActive) {\n this.collapse(evt);\n } else {\n this.expand(evt);\n }\n }\n\n // Todo - Vinay externalize\n private redrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n }, 100);\n }\n\n private notifyParent(isExpand: boolean, evt: Event) {\n this.accordionRef.notifyChange(this, isExpand, evt);\n }\n\n onPropertyChange(key, nv, ov) {\n if (key === 'content') {\n if (this.isActive) {\n setTimeout(() => this.$lazyLoad(), 100);\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(\n this.nativeElement.querySelector('.panel-body') as HTMLElement,\n this,\n APPLY_STYLES_TYPE.INNER_SHELL\n );\n if (this.isdynamic) {\n this.accordionRef.registerDynamicPane(this);\n }\n }\n}\n","<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a href=\"javascript:void(0);\" role=\"button\" class=\"accordion-toggle\" [attr.aria-label]=\"title\" [attr.aria-expanded]=\"isActive\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n </h3>\n <div class=\"panel-actions\">\n <span class=\"label label-{{badgetype}}\">{{badgevalue}}</span>\n <button type=\"button\" aria-label=\"Collapse/Expand\" [attr.aria-expanded]=\"isActive\"\n class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </button>\n </div>\n</div>\n<div class=\"panel-collapse collapse\" role=\"tabpanel\" aria-labelledby=\"panel description\" [ngClass]=\"isActive ? 'collapse in' : 'collapse'\">\n <div class=\"panel-body\" [wmSmoothscroll]=\"smoothscroll\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n","import {AfterContentInit, ContentChildren, Directive, Inject, Injector, Optional, QueryList} from '@angular/core';\nimport {DynamicComponentRefProvider, noop, StatePersistence} from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n createArrayFrom,\n IWidgetConfig,\n provideAsWidgetRef,\n StylableComponent,\n styler\n} from '@wm/components/base';\n\nimport { registerProps } from './accordion.props';\nimport { AccordionPaneComponent } from './accordion-pane/accordion-pane.component';\nimport {find, forEach, get, indexOf, isArray, isNumber} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-accordion panel-group';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-accordion',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n selector: 'div[wmAccordion]',\n exportAs: 'wmAccordion',\n providers: [\n provideAsWidgetRef(AccordionDirective)\n ]\n})\nexport class AccordionDirective extends StylableComponent implements AfterContentInit {\n static initializeProps = registerProps();\n\n public defaultpaneindex: number;\n public closeothers: boolean;\n public statehandler: any;\n private statePersistence: StatePersistence;\n\n private activePaneIndex: number;\n private activePane: AccordionPaneComponent;\n private promiseResolverFn: Function;\n private dynamicComponentProvider;\n private _dynamicContext;\n private dynamicPaneIndex;\n private dynamicPanes;\n public fieldDefs;\n\n @ContentChildren(AccordionPaneComponent) panes: QueryList<AccordionPaneComponent>;\n\n constructor(inj: Injector, statePersistence: StatePersistence, dynamicComponentProvider: DynamicComponentRefProvider, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n let resolveFn: Function = noop;\n super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));\n this.promiseResolverFn = resolveFn;\n this.statePersistence = statePersistence;\n this.dynamicComponentProvider = dynamicComponentProvider;\n this.dynamicPanes = [];\n this.dynamicPaneIndex = 0;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);\n }\n\n /**\n * AccordionPane children components invoke this method to communicate with the parent\n * if isExpand is true and when closeothers is true, all the other panes are collapsed\n * if the evt argument is defined on-change callback will be invoked.\n * updates the activePane index property\n * @param {AccordionPaneComponent} paneRef\n * @param {boolean} isExpand\n * @param {Event} evt\n */\n public notifyChange(paneRef: AccordionPaneComponent, isExpand: boolean, evt: Event) {\n if (isExpand) {\n this.closePanesExcept(paneRef);\n const index = this.getPaneIndexByRef(paneRef);\n this.activePane = paneRef.getWidget();\n // if the event is defined invoke the change callback.\n // programmatic invocations of expand/collapse on accordion-pane will not trigger change event\n if (evt) {\n this.invokeEventCallback('change', {\n $event: evt,\n newPaneIndex: index,\n oldPaneIndex: this.activePaneIndex\n });\n }\n this.activePaneIndex = index;\n }\n const mode = this.statePersistence.computeMode(this.statehandler);\n if (evt && mode && mode.toLowerCase() !== 'none') {\n const activePanes = [];\n this.panes.forEach(function(pane) {\n if (pane.isActive) {\n activePanes.push(pane.name);\n }\n });\n if (activePanes.length) {\n this.statePersistence.setWidgetState(this, activePanes);\n } else {\n this.statePersistence.removeWidgetState(this);\n }\n }\n }\n\n /**\n * This method is used to register the dynamic panes.\n * After all panes are initialzed, update the querylist manually based on index.\n * @param paneRef - refrence of the tabpane\n */\n public registerDynamicPane(paneRef) {\n this.dynamicPanes.push(paneRef);\n const isLastPane = this.dynamicPanes.length === this.dynamicPaneIndex;\n if (isLastPane) {\n for (let i = 0; i < this.dynamicPanes.length; i++) {\n const newPaneRef = find(this.dynamicPanes, pane => pane.dynamicPaneIndex === i);\n const isDuplicatePane = find(this.panes.toArray(), newPaneRef);\n if (!isDuplicatePane) {\n this.panes.reset([...this.panes.toArray(), newPaneRef]);\n if (newPaneRef.active) {\n newPaneRef.expand();\n }\n }\n }\n }\n }\n\n /**\n * This method is to add the tabpane dynamically\n * @param tabpanes - list of tabpanes\n */\n public addPane(tabpanes) {\n if (!isArray(tabpanes)) {\n tabpanes = [tabpanes];\n }\n const paneNamesList = [];\n forEach(tabpanes, (pane, index) => {\n const isPaneAlreadyCreated = find(this.panes.toArray(), {name: pane.name});\n const isPaneNameExist = indexOf(paneNamesList, pane.name);\n // If user tries to add tabpane with the same name which is already exists then do not create the pane\n if (isPaneAlreadyCreated || isPaneNameExist > 0) {\n console.warn(`The tab pane with name ${pane.name} already exists`);\n return;\n }\n\n let paramMarkup = '';\n let propsTmpl = '';\n this.dynamicPaneIndex++;\n const name = pane.name ? pane.name : `accordionpane${this.panes.toArray().length + (index + 1)}`;\n paneNamesList.push(name);\n const partialParams = get(pane, 'params');\n\n forEach(pane, (value, key) => {\n if (key !== 'params') {\n propsTmpl = `${propsTmpl} ${key}=\"${value}\"`;\n }\n });\n forEach(partialParams, (value, key) => {\n paramMarkup = `${paramMarkup} <wm-param name=\"${key}\" value=\"${value}\"></wm-param>`;\n });\n const markup = `<wm-accordionpane dynamicPaneIndex=\"${this.dynamicPaneIndex - 1}\" isdynamic=\"true\" name=\"${name}\" ${propsTmpl}>\n ${paramMarkup}\n </wm-accordionpane>`;\n\n if (!this._dynamicContext) {\n this._dynamicContext = Object.create(this.viewParent);\n this._dynamicContext[this.getAttr('wmAccordian')] = this;\n }\n\n this.dynamicComponentProvider.addComponent(this.getNativeElement(), markup, this._dynamicContext, {inj: this.inj});\n });\n return paneNamesList;\n }\n\n /**\n * This method is to remove the tabpane\n * @param paneName - name of the pane\n */\n public removePane(paneName) {\n const paneRef = this.getPaneRefByName(paneName);\n if (paneRef) {\n paneRef.remove();\n }\n }\n\n private isValidPaneIndex(index: number): boolean {\n return (index >= 0 && index < this.panes.length);\n }\n\n private getPaneRefByName(name: string): AccordionPaneComponent {\n return find(this.panes.toArray(), {name: name});\n }\n\n private getPaneIndexByRef(paneRef: AccordionPaneComponent): number {\n return this.panes.toArray().indexOf(paneRef);\n }\n\n private getPaneRefByIndex(index: number): AccordionPaneComponent {\n return this.panes.toArray()[index];\n }\n\n // Except the pane provided close all other panes\n private closePanesExcept(paneRef: AccordionPaneComponent | number) {\n if (isNumber(paneRef)) {\n paneRef = this.getPaneRefByIndex(paneRef as number);\n }\n if (this.closeothers) {\n this.panes.forEach(pane => {\n if (pane !== paneRef) {\n pane.collapse();\n }\n });\n }\n }\n\n private expandPane(index: number) {\n this.closePanesExcept(index);\n this.panes.toArray()[index].expand();\n }\n private onDataChange(newVal) {\n this.fieldDefs = createArrayFrom(newVal);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'defaultpaneindex') {\n this.defaultpaneindex = nv;\n } else if (key === 'dataset') {\n this.onDataChange(nv);\n } else if (key === 'statehandler') {\n const widgetState = this.statePersistence.getWidgetState(this);\n let paneToSelect: any = [];\n if (nv !== 'none' && isArray(widgetState)) {\n widgetState.forEach(paneName => {\n paneToSelect = this.panes.filter(function(pane) {\n return paneName === pane.name;\n });\n if (!paneToSelect.length) {\n console.warn('Accordion pane name ' + paneName + ' in State is incorrect.');\n } else {\n this.expandPane(this.getPaneIndexByRef(paneToSelect[0]));\n }\n });\n } else {\n if (this.isValidPaneIndex(this.defaultpaneindex)) {\n this.expandPane(this.defaultpaneindex);\n }\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.promiseResolverFn();\n this.panes.changes.subscribe( slides => {\n if (this.panes.length) {\n this.expandPane(this.defaultpaneindex);\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { AccordionDirective } from './accordion.directive';\nimport { AccordionPaneComponent } from './accordion-pane/accordion-pane.component';\n\nconst components = [\n AccordionPaneComponent,\n AccordionDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class AccordionModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/accordion/src/accordion.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.html","../../../../../projects/components/widgets/containers/accordion/src/accordion.directive.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion.module.ts","../../../../../projects/components/widgets/containers/accordion/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordion',\n new Map(\n [\n ['class', PROP_STRING],\n ['closeothers', {value: true, ...PROP_BOOLEAN}],\n ['dataset', PROP_ANY],\n ['defaultpaneindex', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING]\n ]\n )\n );\n};\n","import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordionpane',\n new Map(\n [\n ['active', PROP_BOOLEAN], // internal property\n ['badgetype', {value: 'default', ...PROP_STRING}],\n ['badgevalue', PROP_STRING],\n ['class', PROP_STRING],\n ['content', PROP_STRING],\n ['dynamicPaneIndex', PROP_NUMBER], // internal property\n ['iconclass', PROP_STRING],\n ['isdefaultpane', PROP_BOOLEAN],\n ['isdynamic', PROP_STRING], // internal property\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['smoothscroll', {value: false, ...PROP_BOOLEAN}],\n ['subheading', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', {value: 'Title', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {AfterViewInit, Component, ContentChildren, Inject, Injector, Optional} from '@angular/core';\n\nimport {noop, removeAttr} from '@wm/core';\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, RedrawableDirective, StylableComponent, styler, } from '@wm/components/base';\n\nimport { registerProps } from './accordion-pane.props';\nimport { AccordionDirective } from '../accordion.directive';\n\nconst DEFAULT_CLS = 'app-accordion-panel panel';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-accordionpane', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: 'div[wmAccordionPane]',\n templateUrl: './accordion-pane.component.html',\n providers: [\n provideAsWidgetRef(AccordionPaneComponent)\n ],\n exportAs: 'wmAccordionPane'\n})\nexport class AccordionPaneComponent extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n public isActive = false;\n public iconclass: string;\n public title: any;\n public subheading: string;\n public badgetype: any;\n public badgevalue: string;\n public smoothscroll: any;\n private $lazyLoad = noop;\n private isdynamic: boolean;\n\n public name: string;\n\n // reference to the components which needs a redraw(eg, grid, chart) when the height of this component changes\n @ContentChildren(RedrawableDirective, {descendants: true}) reDrawableComponents;\n\n constructor(inj: Injector, private accordionRef: AccordionDirective, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n // title property here serves the purpose of heading.\n // remove title property as attribute\n removeAttr(this.nativeElement, 'title');\n }\n\n /**\n * handles the pane expand\n * invoke $lazyLoad method which takes care of loading the partial when the content property is provided - lazyLoading or partial\n * invoke redraw on the re-drawable children\n * invoke expand callback\n * notify parent about the change\n * @param {Event} evt\n */\n public expand(evt?: Event) {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.$lazyLoad();\n this.redrawChildren();\n this.invokeEventCallback('expand', {$event: evt});\n this.notifyParent(true, evt);\n }\n\n /**\n * handles the pane collapse\n * invoke collapse callback\n * notify parent about the change\n * @param {Event} evt\n */\n public collapse(evt?: Event) {\n if (!this.isActive) {\n return;\n }\n this.isActive = false;\n this.invokeEventCallback('collapse', {$event: evt});\n this.notifyParent(false, evt);\n }\n\n public remove() {\n const paneIndex = (this as any).accordionRef.getPaneIndexByRef(this);\n if (this.isActive && this.accordionRef.panes.length > 1) {\n this === this.accordionRef.panes.last ? this.accordionRef.panes.toArray()[paneIndex - 1].expand() : this.accordionRef.panes.toArray()[paneIndex + 1].expand();\n }\n const availablePanes = this.accordionRef.panes.toArray();\n availablePanes.splice((this as any).accordionRef.getPaneIndexByRef(this), 1);\n this.accordionRef.panes.reset([...availablePanes]);\n this.nativeElement.remove();\n }\n\n public toggle(evt: Event) {\n if (this.isActive) {\n this.collapse(evt);\n } else {\n this.expand(evt);\n }\n }\n\n // Todo - Vinay externalize\n private redrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n }, 100);\n }\n\n private notifyParent(isExpand: boolean, evt: Event) {\n this.accordionRef.notifyChange(this, isExpand, evt);\n }\n\n onPropertyChange(key, nv, ov) {\n if (key === 'content') {\n if (this.isActive) {\n setTimeout(() => this.$lazyLoad(), 100);\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(\n this.nativeElement.querySelector('.panel-body') as HTMLElement,\n this,\n APPLY_STYLES_TYPE.INNER_SHELL\n );\n if (this.isdynamic) {\n this.accordionRef.registerDynamicPane(this);\n }\n }\n}\n","<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [attr.aria-label]=\"badgevalue ? title + ' ' + badgevalue : title\"\n class=\"accordion-toggle\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n </h3>\n <div class=\"panel-actions\">\n <span class=\"label label-{{badgetype}}\">{{badgevalue}}</span>\n <button type=\"button\" aria-label=\"Collapse/Expand\" [attr.aria-expanded]=\"isActive\"\n class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </button>\n </div>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" [wmSmoothscroll]=\"smoothscroll\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n","import {AfterContentInit, ContentChildren, Directive, Inject, Injector, Optional, QueryList} from '@angular/core';\nimport {DynamicComponentRefProvider, noop, StatePersistence} from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n createArrayFrom,\n IWidgetConfig,\n provideAsWidgetRef,\n StylableComponent,\n styler\n} from '@wm/components/base';\n\nimport { registerProps } from './accordion.props';\nimport { AccordionPaneComponent } from './accordion-pane/accordion-pane.component';\nimport {find, forEach, get, indexOf, isArray, isNumber} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-accordion panel-group';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-accordion',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n selector: 'div[wmAccordion]',\n exportAs: 'wmAccordion',\n providers: [\n provideAsWidgetRef(AccordionDirective)\n ]\n})\nexport class AccordionDirective extends StylableComponent implements AfterContentInit {\n static initializeProps = registerProps();\n\n public defaultpaneindex: number;\n public closeothers: boolean;\n public statehandler: any;\n private statePersistence: StatePersistence;\n\n private activePaneIndex: number;\n private activePane: AccordionPaneComponent;\n private promiseResolverFn: Function;\n private dynamicComponentProvider;\n private _dynamicContext;\n private dynamicPaneIndex;\n private dynamicPanes;\n public fieldDefs;\n\n @ContentChildren(AccordionPaneComponent) panes: QueryList<AccordionPaneComponent>;\n\n constructor(inj: Injector, statePersistence: StatePersistence, dynamicComponentProvider: DynamicComponentRefProvider, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n let resolveFn: Function = noop;\n super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));\n this.promiseResolverFn = resolveFn;\n this.statePersistence = statePersistence;\n this.dynamicComponentProvider = dynamicComponentProvider;\n this.dynamicPanes = [];\n this.dynamicPaneIndex = 0;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);\n }\n\n /**\n * AccordionPane children components invoke this method to communicate with the parent\n * if isExpand is true and when closeothers is true, all the other panes are collapsed\n * if the evt argument is defined on-change callback will be invoked.\n * updates the activePane index property\n * @param {AccordionPaneComponent} paneRef\n * @param {boolean} isExpand\n * @param {Event} evt\n */\n public notifyChange(paneRef: AccordionPaneComponent, isExpand: boolean, evt: Event) {\n if (isExpand) {\n this.closePanesExcept(paneRef);\n const index = this.getPaneIndexByRef(paneRef);\n this.activePane = paneRef.getWidget();\n // if the event is defined invoke the change callback.\n // programmatic invocations of expand/collapse on accordion-pane will not trigger change event\n if (evt) {\n this.invokeEventCallback('change', {\n $event: evt,\n newPaneIndex: index,\n oldPaneIndex: this.activePaneIndex\n });\n }\n this.activePaneIndex = index;\n }\n const mode = this.statePersistence.computeMode(this.statehandler);\n if (evt && mode && mode.toLowerCase() !== 'none') {\n const activePanes = [];\n this.panes.forEach(function(pane) {\n if (pane.isActive) {\n activePanes.push(pane.name);\n }\n });\n if (activePanes.length) {\n this.statePersistence.setWidgetState(this, activePanes);\n } else {\n this.statePersistence.removeWidgetState(this);\n }\n }\n }\n\n /**\n * This method is used to register the dynamic panes.\n * After all panes are initialzed, update the querylist manually based on index.\n * @param paneRef - refrence of the tabpane\n */\n public registerDynamicPane(paneRef) {\n this.dynamicPanes.push(paneRef);\n const isLastPane = this.dynamicPanes.length === this.dynamicPaneIndex;\n if (isLastPane) {\n for (let i = 0; i < this.dynamicPanes.length; i++) {\n const newPaneRef = find(this.dynamicPanes, pane => pane.dynamicPaneIndex === i);\n const isDuplicatePane = find(this.panes.toArray(), newPaneRef);\n if (!isDuplicatePane) {\n this.panes.reset([...this.panes.toArray(), newPaneRef]);\n if (newPaneRef.active) {\n newPaneRef.expand();\n }\n }\n }\n }\n }\n\n /**\n * This method is to add the tabpane dynamically\n * @param tabpanes - list of tabpanes\n */\n public addPane(tabpanes) {\n if (!isArray(tabpanes)) {\n tabpanes = [tabpanes];\n }\n const paneNamesList = [];\n forEach(tabpanes, (pane, index) => {\n const isPaneAlreadyCreated = find(this.panes.toArray(), {name: pane.name});\n const isPaneNameExist = indexOf(paneNamesList, pane.name);\n // If user tries to add tabpane with the same name which is already exists then do not create the pane\n if (isPaneAlreadyCreated || isPaneNameExist > 0) {\n console.warn(`The tab pane with name ${pane.name} already exists`);\n return;\n }\n\n let paramMarkup = '';\n let propsTmpl = '';\n this.dynamicPaneIndex++;\n const name = pane.name ? pane.name : `accordionpane${this.panes.toArray().length + (index + 1)}`;\n paneNamesList.push(name);\n const partialParams = get(pane, 'params');\n\n forEach(pane, (value, key) => {\n if (key !== 'params') {\n propsTmpl = `${propsTmpl} ${key}=\"${value}\"`;\n }\n });\n forEach(partialParams, (value, key) => {\n paramMarkup = `${paramMarkup} <wm-param name=\"${key}\" value=\"${value}\"></wm-param>`;\n });\n const markup = `<wm-accordionpane dynamicPaneIndex=\"${this.dynamicPaneIndex - 1}\" isdynamic=\"true\" name=\"${name}\" ${propsTmpl}>\n ${paramMarkup}\n </wm-accordionpane>`;\n\n if (!this._dynamicContext) {\n this._dynamicContext = Object.create(this.viewParent);\n this._dynamicContext[this.getAttr('wmAccordian')] = this;\n }\n\n this.dynamicComponentProvider.addComponent(this.getNativeElement(), markup, this._dynamicContext, {inj: this.inj});\n });\n return paneNamesList;\n }\n\n /**\n * This method is to remove the tabpane\n * @param paneName - name of the pane\n */\n public removePane(paneName) {\n const paneRef = this.getPaneRefByName(paneName);\n if (paneRef) {\n paneRef.remove();\n }\n }\n\n private isValidPaneIndex(index: number): boolean {\n return (index >= 0 && index < this.panes.length);\n }\n\n private getPaneRefByName(name: string): AccordionPaneComponent {\n return find(this.panes.toArray(), {name: name});\n }\n\n private getPaneIndexByRef(paneRef: AccordionPaneComponent): number {\n return this.panes.toArray().indexOf(paneRef);\n }\n\n private getPaneRefByIndex(index: number): AccordionPaneComponent {\n return this.panes.toArray()[index];\n }\n\n // Except the pane provided close all other panes\n private closePanesExcept(paneRef: AccordionPaneComponent | number) {\n if (isNumber(paneRef)) {\n paneRef = this.getPaneRefByIndex(paneRef as number);\n }\n if (this.closeothers) {\n this.panes.forEach(pane => {\n if (pane !== paneRef) {\n pane.collapse();\n }\n });\n }\n }\n\n private expandPane(index: number) {\n this.closePanesExcept(index);\n this.panes.toArray()[index].expand();\n }\n private onDataChange(newVal) {\n this.fieldDefs = createArrayFrom(newVal);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'defaultpaneindex') {\n this.defaultpaneindex = nv;\n } else if (key === 'dataset') {\n this.onDataChange(nv);\n } else if (key === 'statehandler') {\n const widgetState = this.statePersistence.getWidgetState(this);\n let paneToSelect: any = [];\n if (nv !== 'none' && isArray(widgetState)) {\n widgetState.forEach(paneName => {\n paneToSelect = this.panes.filter(function(pane) {\n return paneName === pane.name;\n });\n if (!paneToSelect.length) {\n console.warn('Accordion pane name ' + paneName + ' in State is incorrect.');\n } else {\n this.expandPane(this.getPaneIndexByRef(paneToSelect[0]));\n }\n });\n } else {\n if (this.isValidPaneIndex(this.defaultpaneindex)) {\n this.expandPane(this.defaultpaneindex);\n }\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.promiseResolverFn();\n this.panes.changes.subscribe( slides => {\n if (this.panes.length) {\n this.expandPane(this.defaultpaneindex);\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { AccordionDirective } from './accordion.directive';\nimport { AccordionPaneComponent } from './accordion-pane/accordion-pane.component';\n\nconst components = [\n AccordionPaneComponent,\n AccordionDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class AccordionModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG"],"mappings":";;;;;;;;;;AAEO,MAAMA,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,cAAc,EACd,IAAI,GAAG,CACH;QACI,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QAC/C,CAAC,SAAS,EAAE,QAAQ,CAAC;QACrB,CAAC,kBAAkB,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;QAChD,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,eAAe,EAAE,EAAC,KAAK,EAAE,eAAe,EAAE,GAAI,WAAW,EAAC,CAAC;QAC5D,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QACxC,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,EAAC,CAAC;QACjD,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;QACxC,CAAC,MAAM,EAAE,WAAW,CAAC;AACxB,KAAA,CACJ,CACJ,CAAC;AACN,CAAC;;AClBM,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,kBAAkB,EAClB,IAAI,GAAG,CACH;AACI,QAAA,CAAC,QAAQ,EAAE,YAAY,CAAC;QACxB,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,EAAC,CAAC;QACjD,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,SAAS,EAAE,WAAW,CAAC;AACxB,QAAA,CAAC,kBAAkB,EAAE,WAAW,CAAC;QACjC,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,eAAe,EAAE,YAAY,CAAC;AAC/B,QAAA,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QACxC,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,EAAC,CAAC;QACjD,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;QACxC,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,EAAC,CAAC;AAC9C,KAAA,CACJ,CACJ,CAAC;AACN,CAAC;;;;;ACjBD,MAAMC,aAAW,GAAG,2BAA2B,CAAC;AAChD,MAAMC,eAAa,GAAkB,EAAC,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAED,aAAW,EAAC,CAAC;AAUxF,MAAO,sBAAuB,SAAQ,iBAAiB,CAAA;AAClD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB,EAAA;AAiBzC,IAAA,WAAA,CAAY,GAAa,EAAU,YAAgC,EAA0C,eAAoB,EAAA;AAC7H,QAAA,KAAK,CAAC,GAAG,EAAEC,eAAa,EAAE,eAAe,CAAC,CAAC;QADZ,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAoB;QAf5D,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAOhB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QAWrB,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;;;AAI1D,QAAA,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;KAC3C;AAED;;;;;;;AAOG;AACI,IAAA,MAAM,CAAC,GAAW,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;AACD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAChC;AAED;;;;;AAKG;AACI,IAAA,QAAQ,CAAC,GAAW,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,OAAO;SACV;AACD,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACjC;IAEM,MAAM,GAAA;QACT,MAAM,SAAS,GAAI,IAAY,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACrE,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACrD,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjK;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACzD,QAAA,cAAc,CAAC,MAAM,CAAE,IAAY,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;KAC/B;AAEM,IAAA,MAAM,CAAC,GAAU,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SACtB;aAAM;AACH,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACpB;KACJ;;IAGO,cAAc,GAAA;QAClB,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC3B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aACtD;SACJ,EAAE,GAAG,CAAC,CAAC;KACX;IAEO,YAAY,CAAC,QAAiB,EAAE,GAAU,EAAA;QAC9C,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;KACvD;AAED,IAAA,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAA;AACxB,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,UAAU,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;aAC3C;SACJ;aAAM;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;KACJ;IAED,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,MAAM,CACF,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAgB,EAC9D,IAAI,EACJ,iBAAiB,CAAC,WAAW,CAChC,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;SAC/C;KACJ;AAlHQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,8BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,sBAAsB,oGAkB8C,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAlBtF,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,KAAA,EAAA,iBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,qCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;wCAgBd,mBAAmB,EAAA,CAAA,CAAA,CAAA;;;;AArBzB,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,sBAAsB,CAAC;AAC7C,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,GAAA,EAAA,kBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,eAAA,EAAA,UAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,MAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,cAAA,EAAA,IAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,gBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YChBL,EAA4F,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AAAxD,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,CAAA,MAAA,EAAA,EAAA,OAAS,kBAAc,CAAC,EAAA,CAAA,CAAA;YACxD,EAAwB,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAGwB,CACjB,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACnB,EAAuE,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAC3E,EAAM,CAAA,YAAA,EAAA,CAAA;YACN,EAAuB,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AAEnB,YADA,yBAA+C,CACS,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC5D,EAAM,CAAA,YAAA,EAAA,EACN,EACH,CAAA;AAED,YADJ,8BAA2B,CACiB,CAAA,EAAA,MAAA,CAAA,CAAA;YAAA,EAAc,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;YAAA,EAAO,CAAA,YAAA,EAAA,CAAA;YAC7D,EAEwE,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;YACpE,EAAqD,CAAA,SAAA,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACzD,EAAS,CAAA,YAAA,EAAA,EACP,EACJ,CAAA;AAEF,YADJ,gCAAuF,CACF,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;YAC7E,EAAyB,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;AAEjC,YADI,iBAAM,EACJ,CAAA;;YA3BuD,EAA8B,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,CAAA;YAEhF,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;;YAIvB,EAAyC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAzC,EAAyC,CAAA,sBAAA,CAAA,sBAAA,EAAA,GAAA,CAAA,SAAA,EAAA,EAAA,CAAA,CAAA;YAAC,EAAqB,CAAA,UAAA,CAAA,QAAA,EAAA,CAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YAG7C,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAnB,EAAmB,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,KAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;YACf,EAAwB,CAAA,SAAA,EAAA,CAAA;YAAxB,EAAwB,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,UAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;YAKnD,EAAiC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAjC,EAAiC,CAAA,sBAAA,CAAA,cAAA,EAAA,GAAA,CAAA,SAAA,EAAA,EAAA,CAAA,CAAA;YAAC,EAAc,CAAA,SAAA,EAAA,CAAA;YAAd,EAAc,CAAA,iBAAA,CAAA,GAAA,CAAA,UAAA,CAAA,CAAA;YAG9C,EAA+D,CAAA,SAAA,EAAA,CAAA;YAA/D,EAA+D,CAAA,sBAAA,CAAA,OAAA,EAAA,EAAA,EAAA,GAAA,CAAA,SAAA,CAAA,cAAA,EAAA,GAAA,EAAA,GAAA,CAAA,SAAA,CAAA,YAAA,EAAA,EAAA,CAAA,CAAA;;YAChE,EAA6C,CAAA,SAAA,EAAA,CAAA;YAA7C,EAA6C,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,QAAA,GAAA,UAAA,GAAA,SAAA,CAAA,CAAA;YAIvD,EAAiD,CAAA,SAAA,EAAA,CAAA;YAAjD,EAAiD,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,QAAA,GAAA,aAAA,GAAA,UAAA,CAAA,CAAA;YAC1B,EAA+B,CAAA,SAAA,EAAA,CAAA;YAA/B,EAA+B,CAAA,UAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA;;;iFDL9C,sBAAsB,EAAA,CAAA;cARlC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAErB,SAAA,EAAA;AACP,oBAAA,kBAAkB,CAAwB,sBAAA,CAAA;AAC7C,iBAAA,EAAA,QAAA,EACS,iBAAiB,EAAA,QAAA,EAAA,y4CAAA,EAAA,CAAA;;sBAoB2C,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAF/C,oBAAoB,EAAA,CAAA;kBAA9E,eAAe;AAAC,YAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAA;;kFAhBhD,sBAAsB,EAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AEJnC,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAChD,MAAM,aAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,SAAS,EAAE,WAAW;CACzB,CAAC;AASI,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;AAC9C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGF,eAAa,EAAhB,CAAmB,EAAA;AAkBzC,IAAA,WAAA,CAAY,GAAa,EAAE,gBAAkC,EAAE,wBAAqD,EAA0C,eAAoB,EAAA;QAC9K,IAAI,SAAS,GAAa,IAAI,CAAC;AAC/B,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACnC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AACzC,QAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;AACzD,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;KAC5E;AAED;;;;;;;;AAQG;AACI,IAAA,YAAY,CAAC,OAA+B,EAAE,QAAiB,EAAE,GAAU,EAAA;QAC9E,IAAI,QAAQ,EAAE;AACV,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;;;YAGtC,IAAI,GAAG,EAAE;AACL,gBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AAC/B,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,YAAY,EAAE,KAAK;oBACnB,YAAY,EAAE,IAAI,CAAC,eAAe;AACrC,iBAAA,CAAC,CAAC;aACN;AACD,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SAChC;AACD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,GAAG,IAAK,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE;YAC/C,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,IAAI,EAAA;AAC5B,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,oBAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC/B;AACL,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,WAAW,CAAC,MAAM,EAAE;gBACpB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;aAC3D;iBAAM;AACH,gBAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;aACjD;SACJ;KACJ;AAED;;;;AAIG;AACI,IAAA,mBAAmB,CAAC,OAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,UAAU,GAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,gBAAgB,CAAC;QACvE,IAAI,UAAU,EAAE;AACZ,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC;AAChF,gBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC/D,IAAI,CAAC,eAAe,EAAE;AAClB,oBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;AACxD,oBAAA,IAAI,UAAU,CAAC,MAAM,EAAE;wBACnB,UAAU,CAAC,MAAM,EAAE,CAAC;qBACvB;iBACJ;aACJ;SACJ;KACJ;AAED;;;AAGG;AACI,IAAA,OAAO,CAAC,QAAQ,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACpB,YAAA,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;SACzB;QACD,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAI;AAC9B,YAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC;YAC3E,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE1D,YAAA,IAAI,oBAAoB,IAAI,eAAe,GAAG,CAAC,EAAE;gBAC7C,OAAO,CAAC,IAAI,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAAC,IAAI,CAAiB,eAAA,CAAA,CAAC,CAAC;gBACnE,OAAO;aACV;YAED,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAA,aAAA,EAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AACjG,YAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAE1C,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAI;AACzB,gBAAA,IAAI,GAAG,KAAK,QAAQ,EAAE;oBAClB,SAAS,GAAG,GAAG,SAAS,CAAA,CAAA,EAAI,GAAG,CAAK,EAAA,EAAA,KAAK,GAAG,CAAC;iBAChD;AACL,aAAC,CAAC,CAAC;YACH,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,KAAI;gBAClC,WAAW,GAAG,GAAG,WAAW,CAAA,iBAAA,EAAoB,GAAG,CAAY,SAAA,EAAA,KAAK,eAAe,CAAC;AACxF,aAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,CAAA,oCAAA,EAAuC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAA,yBAAA,EAA4B,IAAI,CAAA,EAAA,EAAK,SAAS,CAAA;8BAC3G,WAAW,CAAA;4CACG,CAAC;AAEjC,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACvB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtD,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC;aAC5D;YAED,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAC,CAAC,CAAC;AACvH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,aAAa,CAAC;KACxB;AAED;;;AAGG;AACI,IAAA,UAAU,CAAC,QAAQ,EAAA;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE;YACV,OAAO,CAAC,MAAM,EAAE,CAAC;SACnB;KACJ;AAEO,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAClC,QAAA,QAAQ,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;KACpD;AAEO,IAAA,gBAAgB,CAAC,IAAY,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;KACnD;AAEO,IAAA,iBAAiB,CAAC,OAA+B,EAAA;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAChD;AAEO,IAAA,iBAAiB,CAAC,KAAa,EAAA;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;KACtC;;AAGO,IAAA,gBAAgB,CAAC,OAAwC,EAAA;AAC7D,QAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAiB,CAAC,CAAC;SACvD;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACtB,gBAAA,IAAI,IAAI,KAAK,OAAO,EAAE;oBAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACnB;AACL,aAAC,CAAC,CAAC;SACN;KACJ;AAEO,IAAA,UAAU,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;KACxC;AACO,IAAA,YAAY,CAAC,MAAM,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;KAC5C;AAED,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;AAC3C,QAAA,IAAI,GAAG,KAAK,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC9B;AAAM,aAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACzB;AAAM,aAAA,IAAI,GAAG,KAAK,cAAc,EAAE;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,YAAY,GAAQ,EAAE,CAAC;YAC3B,IAAI,EAAE,KAAK,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AACvC,gBAAA,WAAW,CAAC,OAAO,CAAC,QAAQ,IAAG;oBAC3B,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAS,IAAI,EAAA;AAC1C,wBAAA,OAAO,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC;AAClC,qBAAC,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;wBACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,GAAG,QAAQ,GAAG,yBAAyB,CAAC,CAAC;qBAC/E;yBAAM;AACH,wBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC5D;AACL,iBAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC9C,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBAC1C;aACJ;SACJ;aAAM;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;KACJ;IAED,kBAAkB,GAAA;QACd,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAE,MAAM,IAAG;AACnC,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC1C;AACL,SAAC,CAAC,CAAC;KACN;AAlOQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,0BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,kBAAkB,2JAmBmG,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAnBvI,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;wCAiBV,sBAAsB,EAAA,CAAA,CAAA,CAAA;;;;AArB5B,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,kBAAkB,CAAC;AACzC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAEQ,kBAAkB,EAAA,CAAA;cAP9B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,kBAAkB;AAC5B,gBAAA,QAAQ,EAAE,aAAa;AACvB,gBAAA,SAAS,EAAE;AACP,oBAAA,kBAAkB,CAAoB,kBAAA,CAAA;AACzC,iBAAA;AACJ,aAAA,CAAA;;sBAoB0H,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAFlH,KAAK,EAAA,CAAA;kBAA7C,eAAe;mBAAC,sBAAsB,CAAA;;;ACrC3C,MAAM,UAAU,GAAG;IACf,sBAAsB;IACtB,kBAAkB;CACrB,CAAC;MAUW,eAAe,CAAA;gFAAf,eAAe,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAf,eAAe,EAAA,CAAA,CAAA,EAAA;uEANpB,YAAY;YACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAKb,eAAe,EAAA,CAAA;cAR3B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE;oBACL,YAAY;oBACZ,kBAAkB;AACrB,iBAAA;AACD,gBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AAC7B,gBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,eAAe,mBAZxB,sBAAsB;AACtB,QAAA,kBAAkB,aAKd,YAAY;AACZ,QAAA,kBAAkB,aAPtB,sBAAsB;QACtB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACVtB;;AAEG;;;;"}
@@ -1028,10 +1028,15 @@
1028
1028
  i0__namespace.ɵɵelementEnd()();
1029
1029
  } if (rf & 2) {
1030
1030
  const groupObj_r7 = ctx.$implicit;
1031
+ const groupindex_r12 = ctx.index;
1031
1032
  const ctx_r2 = i0__namespace.ɵɵnextContext(2);
1032
- i0__namespace.ɵɵadvance(2);
1033
- i0__namespace.ɵɵproperty("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(6, _c3$1, ctx_r2.collapsible));
1034
- i0__namespace.ɵɵadvance(2);
1033
+ i0__namespace.ɵɵadvance();
1034
+ i0__namespace.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupindex_r12);
1035
+ i0__namespace.ɵɵadvance();
1036
+ i0__namespace.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c3$1, ctx_r2.collapsible));
1037
+ i0__namespace.ɵɵadvance();
1038
+ i0__namespace.ɵɵattribute("aria-label", "Group " + groupObj_r7.key);
1039
+ i0__namespace.ɵɵadvance();
1035
1040
  i0__namespace.ɵɵtextInterpolate1("", groupObj_r7.key, " ");
1036
1041
  i0__namespace.ɵɵadvance(2);
1037
1042
  i0__namespace.ɵɵproperty("ngIf", ctx_r2.collapsible);
@@ -1041,7 +1046,7 @@
1041
1046
  i0__namespace.ɵɵproperty("ngForOf", groupObj_r7.data);
1042
1047
  } }
1043
1048
  function CheckboxsetComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
1044
- i0__namespace.ɵɵtemplate(0, CheckboxsetComponent_ng_template_3_li_0_Template, 9, 8, "li", 14);
1049
+ i0__namespace.ɵɵtemplate(0, CheckboxsetComponent_ng_template_3_li_0_Template, 9, 11, "li", 14);
1045
1050
  } if (rf & 2) {
1046
1051
  const ctx_r2 = i0__namespace.ɵɵnextContext();
1047
1052
  i0__namespace.ɵɵproperty("ngForOf", ctx_r2.groupedData);
@@ -1113,13 +1118,13 @@
1113
1118
  i2.provideAs(CheckboxsetComponent, i2$1.NG_VALUE_ACCESSOR, true),
1114
1119
  i2.provideAs(CheckboxsetComponent, i2$1.NG_VALIDATORS, true),
1115
1120
  i2.provideAsWidgetRef(CheckboxsetComponent)
1116
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$a, decls: 5, vars: 4, consts: [["groupedListTemplate", ""], [3, "ngIf", "ngIfElse"], ["hidden", "", 1, "model-holder", 3, "disabled"], ["class", "readonly-wrapper", 4, "ngIf"], ["partialContainer", "", "role", "presentation", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], ["partialContainer", "", "role", "presentation", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["class", "app-checkboxset-label", 3, "ngClass", "title", 4, "ngIf"], ["class", "app-checkboxset-label", 3, "ngClass", 4, "ngIf"], [1, "app-checkboxset-label", 3, "ngClass", "title"], ["type", "checkbox", 3, "name", "tabindex", "disabled", "value", "checked"], [1, "caption", 3, "textContent"], [1, "app-checkboxset-label", 3, "ngClass"], ["partial-container-target", "", 1, "caption", "customTemplate"], [1, "readonly-wrapper"], ["class", "app-list-item-group", "role", "presentation", 4, "ngFor", "ngForOf"], ["role", "presentation", 1, "app-list-item-group"], [1, "item-group"], [1, "list-group-header", 3, "click", "title", "ngClass"], [1, "group-title"], [1, "header-action"], ["class", "app-icon wi action wi-chevron-up", 3, "title", 4, "ngIf"], ["class", "label label-default", 3, "textContent", 4, "ngIf"], ["partialContainer", "", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], [1, "app-icon", "wi", "action", "wi-chevron-up", 3, "title"], [1, "label", "label-default", 3, "textContent"], ["partialContainer", "", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["partial-container-target", "", 1, "caption"]], template: function CheckboxsetComponent_Template(rf, ctx) { if (rf & 1) {
1121
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$a, decls: 5, vars: 4, consts: [["groupedListTemplate", ""], [3, "ngIf", "ngIfElse"], ["hidden", "", 1, "model-holder", 3, "disabled"], ["class", "readonly-wrapper", 4, "ngIf"], ["partialContainer", "", "role", "presentation", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], ["partialContainer", "", "role", "presentation", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["class", "app-checkboxset-label", 3, "ngClass", "title", 4, "ngIf"], ["class", "app-checkboxset-label", 3, "ngClass", 4, "ngIf"], [1, "app-checkboxset-label", 3, "ngClass", "title"], ["type", "checkbox", 3, "name", "tabindex", "disabled", "value", "checked"], [1, "caption", 3, "textContent"], [1, "app-checkboxset-label", 3, "ngClass"], ["partial-container-target", "", 1, "caption", "customTemplate"], [1, "readonly-wrapper"], ["class", "app-list-item-group", "role", "presentation", 4, "ngFor", "ngForOf"], ["role", "presentation", 1, "app-list-item-group"], [1, "item-group"], ["aria-hidden", "true", 1, "list-group-header", 3, "click", "id", "title", "ngClass"], [1, "group-title"], [1, "header-action"], ["class", "app-icon wi action wi-chevron-up", 3, "title", 4, "ngIf"], ["class", "label label-default", 3, "textContent", 4, "ngIf"], ["partialContainer", "", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], [1, "app-icon", "wi", "action", "wi-chevron-up", 3, "title"], [1, "label", "label-default", 3, "textContent"], ["partialContainer", "", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["partial-container-target", "", 1, "caption"]], template: function CheckboxsetComponent_Template(rf, ctx) { if (rf & 1) {
1117
1122
  i0__namespace.ɵɵtemplate(0, CheckboxsetComponent_ng_template_0_Template, 1, 1, "ng-template", 1);
1118
1123
  i0__namespace.ɵɵelement(1, "input", 2);
1119
1124
  i0__namespace.ɵɵtemplate(2, CheckboxsetComponent_div_2_Template, 1, 0, "div", 3)(3, CheckboxsetComponent_ng_template_3_Template, 1, 1, "ng-template", null, 0, i0__namespace.ɵɵtemplateRefExtractor);
1120
1125
  } if (rf & 2) {
1121
- const groupedListTemplate_r12 = i0__namespace.ɵɵreference(4);
1122
- i0__namespace.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r12);
1126
+ const groupedListTemplate_r13 = i0__namespace.ɵɵreference(4);
1127
+ i0__namespace.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r13);
1123
1128
  i0__namespace.ɵɵadvance();
1124
1129
  i0__namespace.ɵɵproperty("disabled", ctx.disabled || ctx.readonly);
1125
1130
  i0__namespace.ɵɵadvance();
@@ -1132,7 +1137,7 @@
1132
1137
  i2.provideAs(CheckboxsetComponent, i2$1.NG_VALUE_ACCESSOR, true),
1133
1138
  i2.provideAs(CheckboxsetComponent, i2$1.NG_VALIDATORS, true),
1134
1139
  i2.provideAsWidgetRef(CheckboxsetComponent)
1135
- ], template: "<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['checkbox', 'app-checkbox', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems; let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" [tabindex]=\"tabindex\"\n type=\"checkbox\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" [tabindex]=\"tabindex\"\n type=\"checkbox\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\" role=\"presentation\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['checkbox', 'app-checkbox', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
1140
+ ], template: "<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['checkbox', 'app-checkbox', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems; let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" [tabindex]=\"tabindex\"\n type=\"checkbox\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" [tabindex]=\"tabindex\"\n type=\"checkbox\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData; let groupindex = index;\" class=\"app-list-item-group\" role=\"presentation\">\n <ul class=\"item-group\" [attr.aria-labelledby]=\"'group_' + widgetId + '_' + groupindex\">\n <li [id]=\"'group_' + widgetId + '_' + groupindex\" aria-hidden=\"true\" class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\" [attr.aria-label]=\"'Group '+groupObj.key\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['checkbox', 'app-checkbox', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
1136
1141
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
1137
1142
  type: i0.Inject,
1138
1143
  args: ['EXPLICIT_CONTEXT']
@@ -1997,10 +2002,10 @@
1997
2002
  const item_r9 = ctx_r9.$implicit;
1998
2003
  const i_r11 = ctx_r9.index;
1999
2004
  const ctx_r2 = i0__namespace.ɵɵnextContext(3);
2000
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(9, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
2005
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
2001
2006
  i0__namespace.ɵɵadvance();
2002
2007
  i0__namespace.ɵɵproperty("name", "radioset_" + ctx_r2.widgetId)("value", item_r9.key)("disabled", ctx_r2.disabled || ctx_r2.readonly)("tabindex", ctx_r2.tabindex)("checked", item_r9.selected);
2003
- i0__namespace.ɵɵattribute("data-attr-index", i_r11)("aria-checked", item_r9.selected ? "true" : "false");
2008
+ i0__namespace.ɵɵattribute("data-attr-index", i_r11);
2004
2009
  i0__namespace.ɵɵadvance();
2005
2010
  i0__namespace.ɵɵproperty("textContent", item_r9.label);
2006
2011
  } }
@@ -2013,16 +2018,16 @@
2013
2018
  const item_r9 = ctx_r9.$implicit;
2014
2019
  const i_r11 = ctx_r9.index;
2015
2020
  const ctx_r2 = i0__namespace.ɵɵnextContext(3);
2016
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
2021
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(7, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
2017
2022
  i0__namespace.ɵɵadvance();
2018
2023
  i0__namespace.ɵɵproperty("name", "radioset_" + ctx_r2.widgetId)("value", item_r9.key)("disabled", ctx_r2.disabled || ctx_r2.readonly)("tabindex", ctx_r2.tabindex)("checked", item_r9.selected);
2019
- i0__namespace.ɵɵattribute("data-attr-index", i_r11)("aria-checked", item_r9.selected ? "true" : "false");
2024
+ i0__namespace.ɵɵattribute("data-attr-index", i_r11);
2020
2025
  } }
2021
2026
  function RadiosetComponent_ng_template_3_li_0_li_8_Template(rf, ctx) { if (rf & 1) {
2022
2027
  const _r8 = i0__namespace.ɵɵgetCurrentView();
2023
2028
  i0__namespace.ɵɵelementStart(0, "li", 23);
2024
2029
  i0__namespace.ɵɵlistener("click", function RadiosetComponent_ng_template_3_li_0_li_8_Template_li_click_0_listener($event) { const item_r9 = i0__namespace.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0__namespace.ɵɵnextContext(3); return i0__namespace.ɵɵresetView(ctx_r2.onRadioLabelClick($event, item_r9)); });
2025
- i0__namespace.ɵɵtemplate(1, RadiosetComponent_ng_template_3_li_0_li_8_label_1_Template, 3, 11, "label", 6)(2, RadiosetComponent_ng_template_3_li_0_li_8_label_2_Template, 3, 10, "label", 6);
2030
+ i0__namespace.ɵɵtemplate(1, RadiosetComponent_ng_template_3_li_0_li_8_label_1_Template, 3, 10, "label", 6)(2, RadiosetComponent_ng_template_3_li_0_li_8_label_2_Template, 3, 9, "label", 6);
2026
2031
  i0__namespace.ɵɵelementEnd();
2027
2032
  } if (rf & 2) {
2028
2033
  const item_r9 = ctx.$implicit;
@@ -2047,13 +2052,14 @@
2047
2052
  i0__namespace.ɵɵelementEnd()();
2048
2053
  } if (rf & 2) {
2049
2054
  const groupObj_r7 = ctx.$implicit;
2055
+ const groupindex_r12 = ctx.index;
2050
2056
  const ctx_r2 = i0__namespace.ɵɵnextContext(2);
2051
2057
  i0__namespace.ɵɵadvance();
2052
- i0__namespace.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupObj_r7.key);
2058
+ i0__namespace.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupindex_r12);
2053
2059
  i0__namespace.ɵɵadvance();
2054
- i0__namespace.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupObj_r7.key)("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c3, ctx_r2.collapsible));
2060
+ i0__namespace.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c3, ctx_r2.collapsible));
2055
2061
  i0__namespace.ɵɵadvance();
2056
- i0__namespace.ɵɵattribute("aria-label", "Group Name " + groupObj_r7.key);
2062
+ i0__namespace.ɵɵattribute("aria-label", "Group " + groupObj_r7.key);
2057
2063
  i0__namespace.ɵɵadvance();
2058
2064
  i0__namespace.ɵɵtextInterpolate1("", groupObj_r7.key, " ");
2059
2065
  i0__namespace.ɵɵadvance(2);
@@ -2127,8 +2133,8 @@
2127
2133
  i0__namespace.ɵɵelement(1, "input", 2);
2128
2134
  i0__namespace.ɵɵtemplate(2, RadiosetComponent_div_2_Template, 1, 0, "div", 3)(3, RadiosetComponent_ng_template_3_Template, 1, 1, "ng-template", null, 0, i0__namespace.ɵɵtemplateRefExtractor);
2129
2135
  } if (rf & 2) {
2130
- const groupedListTemplate_r12 = i0__namespace.ɵɵreference(4);
2131
- i0__namespace.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r12);
2136
+ const groupedListTemplate_r13 = i0__namespace.ɵɵreference(4);
2137
+ i0__namespace.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r13);
2132
2138
  i0__namespace.ɵɵadvance();
2133
2139
  i0__namespace.ɵɵproperty("disabled", ctx.disabled || ctx.readonly);
2134
2140
  i0__namespace.ɵɵadvance();
@@ -2141,7 +2147,7 @@
2141
2147
  i2.provideAs(RadiosetComponent, i2$1.NG_VALUE_ACCESSOR, true),
2142
2148
  i2.provideAs(RadiosetComponent, i2$1.NG_VALIDATORS, true),
2143
2149
  i2.provideAsWidgetRef(RadiosetComponent)
2144
- ], template: "<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['radio', 'app-radio', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems;let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [checked]=\"item.selected\" [disabled]=\"disabled || readonly\"\n [name]=\"'radioset_' + widgetId\" [tabindex]=\"tabindex\" [value]=\"item.key\"\n type=\"radio\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [checked]=\"item.selected\" [disabled]=\"disabled || readonly\"\n [name]=\"'radioset_' + widgetId\" [tabindex]=\"tabindex\" [value]=\"item.key\"\n type=\"radio\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\" role=\"presentation\" >\n <ul class=\"item-group\" [attr.aria-labelledby]=\"'group_' + widgetId + '_' + groupObj.key\">\n <li [id]=\"'group_' + widgetId + '_' + groupObj.key\" aria-hidden=\"true\" class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\" [attr.aria-label]=\"'Group Name '+groupObj.key\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['radio', 'app-radio', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [name]=\"'radioset_' + widgetId\" type=\"radio\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\" [attr.aria-checked]=\"item.selected ? 'true' : 'false'\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [name]=\"'radioset_' + widgetId\" type=\"radio\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\" [attr.aria-checked]=\"item.selected ? 'true' : 'false'\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
2150
+ ], template: "<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['radio', 'app-radio', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems;let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [checked]=\"item.selected\" [disabled]=\"disabled || readonly\"\n [name]=\"'radioset_' + widgetId\" [tabindex]=\"tabindex\" [value]=\"item.key\"\n type=\"radio\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [checked]=\"item.selected\" [disabled]=\"disabled || readonly\"\n [name]=\"'radioset_' + widgetId\" [tabindex]=\"tabindex\" [value]=\"item.key\"\n type=\"radio\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData; let groupindex = index;\" class=\"app-list-item-group\" role=\"presentation\" >\n <ul class=\"item-group\" [attr.aria-labelledby]=\"'group_' + widgetId + '_' + groupindex\">\n <li [id]=\"'group_' + widgetId + '_' + groupindex\" aria-hidden=\"true\" class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\" [attr.aria-label]=\"'Group '+groupObj.key\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['radio', 'app-radio', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [name]=\"'radioset_' + widgetId\" type=\"radio\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [name]=\"'radioset_' + widgetId\" type=\"radio\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
2145
2151
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
2146
2152
  type: i0.Inject,
2147
2153
  args: ['EXPLICIT_CONTEXT']
@@ -139,10 +139,15 @@ function CheckboxsetComponent_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1)
139
139
  i0.ɵɵelementEnd()();
140
140
  } if (rf & 2) {
141
141
  const groupObj_r7 = ctx.$implicit;
142
+ const groupindex_r12 = ctx.index;
142
143
  const ctx_r2 = i0.ɵɵnextContext(2);
143
- i0.ɵɵadvance(2);
144
- i0.ɵɵproperty("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(6, _c3, ctx_r2.collapsible));
145
- i0.ɵɵadvance(2);
144
+ i0.ɵɵadvance();
145
+ i0.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupindex_r12);
146
+ i0.ɵɵadvance();
147
+ i0.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(9, _c3, ctx_r2.collapsible));
148
+ i0.ɵɵadvance();
149
+ i0.ɵɵattribute("aria-label", "Group " + groupObj_r7.key);
150
+ i0.ɵɵadvance();
146
151
  i0.ɵɵtextInterpolate1("", groupObj_r7.key, " ");
147
152
  i0.ɵɵadvance(2);
148
153
  i0.ɵɵproperty("ngIf", ctx_r2.collapsible);
@@ -152,7 +157,7 @@ function CheckboxsetComponent_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1)
152
157
  i0.ɵɵproperty("ngForOf", groupObj_r7.data);
153
158
  } }
154
159
  function CheckboxsetComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
155
- i0.ɵɵtemplate(0, CheckboxsetComponent_ng_template_3_li_0_Template, 9, 8, "li", 14);
160
+ i0.ɵɵtemplate(0, CheckboxsetComponent_ng_template_3_li_0_Template, 9, 11, "li", 14);
156
161
  } if (rf & 2) {
157
162
  const ctx_r2 = i0.ɵɵnextContext();
158
163
  i0.ɵɵproperty("ngForOf", ctx_r2.groupedData);
@@ -224,13 +229,13 @@ export class CheckboxsetComponent extends DatasetAwareFormComponent {
224
229
  provideAs(CheckboxsetComponent, NG_VALUE_ACCESSOR, true),
225
230
  provideAs(CheckboxsetComponent, NG_VALIDATORS, true),
226
231
  provideAsWidgetRef(CheckboxsetComponent)
227
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 5, vars: 4, consts: [["groupedListTemplate", ""], [3, "ngIf", "ngIfElse"], ["hidden", "", 1, "model-holder", 3, "disabled"], ["class", "readonly-wrapper", 4, "ngIf"], ["partialContainer", "", "role", "presentation", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], ["partialContainer", "", "role", "presentation", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["class", "app-checkboxset-label", 3, "ngClass", "title", 4, "ngIf"], ["class", "app-checkboxset-label", 3, "ngClass", 4, "ngIf"], [1, "app-checkboxset-label", 3, "ngClass", "title"], ["type", "checkbox", 3, "name", "tabindex", "disabled", "value", "checked"], [1, "caption", 3, "textContent"], [1, "app-checkboxset-label", 3, "ngClass"], ["partial-container-target", "", 1, "caption", "customTemplate"], [1, "readonly-wrapper"], ["class", "app-list-item-group", "role", "presentation", 4, "ngFor", "ngForOf"], ["role", "presentation", 1, "app-list-item-group"], [1, "item-group"], [1, "list-group-header", 3, "click", "title", "ngClass"], [1, "group-title"], [1, "header-action"], ["class", "app-icon wi action wi-chevron-up", 3, "title", 4, "ngIf"], ["class", "label label-default", 3, "textContent", 4, "ngIf"], ["partialContainer", "", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], [1, "app-icon", "wi", "action", "wi-chevron-up", 3, "title"], [1, "label", "label-default", 3, "textContent"], ["partialContainer", "", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["partial-container-target", "", 1, "caption"]], template: function CheckboxsetComponent_Template(rf, ctx) { if (rf & 1) {
232
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 5, vars: 4, consts: [["groupedListTemplate", ""], [3, "ngIf", "ngIfElse"], ["hidden", "", 1, "model-holder", 3, "disabled"], ["class", "readonly-wrapper", 4, "ngIf"], ["partialContainer", "", "role", "presentation", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], ["partialContainer", "", "role", "presentation", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["class", "app-checkboxset-label", 3, "ngClass", "title", 4, "ngIf"], ["class", "app-checkboxset-label", 3, "ngClass", 4, "ngIf"], [1, "app-checkboxset-label", 3, "ngClass", "title"], ["type", "checkbox", 3, "name", "tabindex", "disabled", "value", "checked"], [1, "caption", 3, "textContent"], [1, "app-checkboxset-label", 3, "ngClass"], ["partial-container-target", "", 1, "caption", "customTemplate"], [1, "readonly-wrapper"], ["class", "app-list-item-group", "role", "presentation", 4, "ngFor", "ngForOf"], ["role", "presentation", 1, "app-list-item-group"], [1, "item-group"], ["aria-hidden", "true", 1, "list-group-header", 3, "click", "id", "title", "ngClass"], [1, "group-title"], [1, "header-action"], ["class", "app-icon wi action wi-chevron-up", 3, "title", 4, "ngIf"], ["class", "label label-default", 3, "textContent", 4, "ngIf"], ["partialContainer", "", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], [1, "app-icon", "wi", "action", "wi-chevron-up", 3, "title"], [1, "label", "label-default", 3, "textContent"], ["partialContainer", "", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["partial-container-target", "", 1, "caption"]], template: function CheckboxsetComponent_Template(rf, ctx) { if (rf & 1) {
228
233
  i0.ɵɵtemplate(0, CheckboxsetComponent_ng_template_0_Template, 1, 1, "ng-template", 1);
229
234
  i0.ɵɵelement(1, "input", 2);
230
235
  i0.ɵɵtemplate(2, CheckboxsetComponent_div_2_Template, 1, 0, "div", 3)(3, CheckboxsetComponent_ng_template_3_Template, 1, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
231
236
  } if (rf & 2) {
232
- const groupedListTemplate_r12 = i0.ɵɵreference(4);
233
- i0.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r12);
237
+ const groupedListTemplate_r13 = i0.ɵɵreference(4);
238
+ i0.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r13);
234
239
  i0.ɵɵadvance();
235
240
  i0.ɵɵproperty("disabled", ctx.disabled || ctx.readonly);
236
241
  i0.ɵɵadvance();
@@ -243,7 +248,7 @@ export class CheckboxsetComponent extends DatasetAwareFormComponent {
243
248
  provideAs(CheckboxsetComponent, NG_VALUE_ACCESSOR, true),
244
249
  provideAs(CheckboxsetComponent, NG_VALIDATORS, true),
245
250
  provideAsWidgetRef(CheckboxsetComponent)
246
- ], template: "<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['checkbox', 'app-checkbox', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems; let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" [tabindex]=\"tabindex\"\n type=\"checkbox\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" [tabindex]=\"tabindex\"\n type=\"checkbox\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\" role=\"presentation\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['checkbox', 'app-checkbox', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
251
+ ], template: "<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['checkbox', 'app-checkbox', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems; let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" [tabindex]=\"tabindex\"\n type=\"checkbox\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" [tabindex]=\"tabindex\"\n type=\"checkbox\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData; let groupindex = index;\" class=\"app-list-item-group\" role=\"presentation\">\n <ul class=\"item-group\" [attr.aria-labelledby]=\"'group_' + widgetId + '_' + groupindex\">\n <li [id]=\"'group_' + widgetId + '_' + groupindex\" aria-hidden=\"true\" class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\" [attr.aria-label]=\"'Group '+groupObj.key\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['checkbox', 'app-checkbox', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
247
252
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
248
253
  type: Inject,
249
254
  args: ['EXPLICIT_CONTEXT']
@@ -254,4 +259,4 @@ export class CheckboxsetComponent extends DatasetAwareFormComponent {
254
259
  args: ['keydown.enter', ['$event', '"ENTER"']]
255
260
  }] }); })();
256
261
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CheckboxsetComponent, { className: "CheckboxsetComponent", filePath: "checkboxset/checkboxset.component.ts", lineNumber: 27 }); })();
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3hzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL2NoZWNrYm94c2V0L2NoZWNrYm94c2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9jaGVja2JveHNldC9jaGVja2JveHNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFvQixZQUFZLEVBQWMsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFvRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hLLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztJQ0RwQyxnQ0FBeUg7SUFLckgsQUFKQSwyQkFHMkUsZUFDbkI7SUFDNUQsaUJBQVE7Ozs7OztJQU40RixBQUE5Qyx5RkFBNkMsd0JBQXFCO0lBQzdHLGNBQWtDO0lBR08sQUFBdEIsQUFBbkIsQUFEQSxBQUZtQyxBQUFuQyx1REFBa0MsNkJBQXNCLGdEQUV2QixzQkFDZiw2QkFBc0IsNkJBQTBCOztJQUNuRCxjQUEwQjtJQUExQiwyQ0FBMEI7OztJQUdwRCxpQ0FBb0c7SUFLaEcsQUFKQSwyQkFHMkUsZUFDTjtJQUN6RSxpQkFBUTs7Ozs7O0lBTjZDLHdGQUE2QztJQUN2RixjQUFrQztJQUdPLEFBQXRCLEFBQW5CLEFBREEsQUFGbUMsQUFBbkMsdURBQWtDLDZCQUFzQixnREFFdkIsc0JBQ2YsNkJBQXNCLDZCQUEwQjs7Ozs7SUFsQmpGLDZCQUl5RTtJQUFyRSwwTkFBUyxnREFBc0MsS0FBQztJQVVoRCxBQVJBLDZGQUF5SCxnRkFRckI7SUFPeEcsaUJBQUs7Ozs7SUFwQkQsMENBQThCO0lBRUgsQUFBM0IsQUFIQSwrRkFBcUUsa0NBRzNDLGdDQUE2QjtJQUcvQyxjQUFjO0lBQWQsc0NBQWM7SUFRZCxjQUFhO0lBQWIscUNBQWE7OztJQWR6QixrRkFJeUU7OztJQUZwRCw2Q0FBaUI7OztJQXNCMUMsMEJBQWlFOzs7SUFTekMsd0JBQW9JOzs7SUFBcEUsK0dBQStEOzs7SUFDL0gsMkJBQWdHOzs7SUFBNUMscURBQW9DOzs7SUFVaEcsZ0NBQXlIO0lBS3JILEFBSkEsMkJBRzJFLGVBQ25CO0lBQzVELGlCQUFROzs7Ozs7SUFONEYsQUFBOUMseUZBQTZDLHdCQUFxQjtJQUM3RyxjQUFrQztJQUdPLEFBQXRCLEFBQW5CLEFBREEsQUFEQSxBQURBLHVEQUFrQyw2QkFDYixnREFDWSxzQkFDZiw2QkFBc0IsNkJBQTBCOztJQUNuRCxjQUEwQjtJQUExQiwyQ0FBMEI7OztJQUdwRCxpQ0FBb0c7SUFLaEcsQUFKQSwyQkFHMkUsZUFDckI7SUFDMUQsaUJBQVE7Ozs7OztJQU42Qyx3RkFBNkM7SUFDdkYsY0FBa0M7SUFHTyxBQUF0QixBQUFuQixBQURBLEFBREEsQUFEQSx1REFBa0MsNkJBQ2IsZ0RBQ1ksc0JBQ2YsNkJBQXNCLDZCQUEwQjs7Ozs7SUFsQmpGLDhCQUlpRDtJQUE3QywrTkFBUyw0Q0FBa0MsS0FBQztJQVU1QyxBQVJBLGtHQUF5SCxxRkFRckI7SUFPeEcsaUJBQUs7Ozs7SUFuQkQsMENBQThCO0lBQ0gsQUFBM0IsQUFGQSwrRkFBd0Ysa0NBRTlELGdDQUE2QjtJQUcvQyxjQUFjO0lBQWQsc0NBQWM7SUFRZCxjQUFhO0lBQWIscUNBQWE7Ozs7SUF0QnpCLEFBREosQUFESiw4QkFBeUYsYUFDOUQsYUFDdUg7SUFBNUcsZ01BQVMsZ0NBQXlCLEtBQUM7SUFDN0QsOEJBQXdCO0lBQUEsWUFDcEI7SUFBQSwrQkFBMkI7SUFFdkIsQUFEQSxxRkFBZ0ksOEVBQ3ZDO0lBR3JHLEFBREksQUFESSxpQkFBTSxFQUNMLEVBQ0o7SUFDTCx3RkFJaUQ7SUFtQnpELEFBREksaUJBQUssRUFDSjs7OztJQS9CcUUsZUFBc0I7SUFBQyxBQUF2Qix1Q0FBc0IsMkRBQWlEO0lBQzdHLGVBQ3BCO0lBRG9CLCtDQUNwQjtJQUNpRCxlQUFpQjtJQUFqQix5Q0FBaUI7SUFDdkQsY0FBZTtJQUFmLHVDQUFlO0lBSWIsY0FBa0I7SUFBbEIsMENBQWtCOzs7SUFWL0Msa0ZBQXlGOzs7SUFBaEUsNENBQWM7O0FEakIzQyxNQUFNLFdBQVcsR0FBRyxtQ0FBbUMsQ0FBQztBQUN4RCxNQUFNLGFBQWEsR0FBa0IsRUFBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBQyxDQUFDO0FBYTVGLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx5QkFBeUI7YUFDeEQsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFZekMsWUFBWSxHQUFhLEVBQTBDLGVBQW9CO1FBQ25GLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBWHhDLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFZZixNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEdBQUc7UUFDNUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTztRQUNYLENBQUM7UUFFRCxrREFBa0Q7UUFDbEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRSxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzNCLGFBQWE7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2Qiw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELHFEQUFxRDtJQUMzQyxXQUFXLENBQUMsSUFBaUIsRUFBRSxTQUFpQixFQUFFLFFBQWtCLEVBQUUsTUFBVztRQUN2RixJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUM5QixJQUFJLEVBQ0osU0FBUyxFQUNULENBQUMsQ0FBQyxFQUFFO2dCQUNBLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUMzQixPQUFPO2dCQUNYLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLE9BQU8sUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUNKLENBQUM7UUFDTixDQUFDO2FBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDMUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0wsQ0FBQztJQUdELFNBQVMsQ0FBQyxNQUFNO1FBQ1osTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRztRQUV6QixJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9CLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxHQUFHLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDeEIsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7cUZBOUVRLG9CQUFvQiwwREFhTSxrQkFBa0I7b0VBYjVDLG9CQUFvQjtZQUFwQiwrR0FBQSxzQkFBaUIsT0FBTyxDQUFDLElBQUw7MkVBUGxCO2dCQUNQLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7Z0JBQ3hELFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDO2dCQUNwRCxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQzthQUMzQztZQ3ZCTCxxRkFBZ0U7WUF3QmhFLDJCQUFxRTtZQUlyRSxBQUhBLHFFQUEyRCx5R0FHekI7OztZQTVCSCxBQUFsQixtQ0FBaUIscUNBQWlDO1lBd0J4RCxjQUFpQztZQUFqQyx1REFBaUM7WUFDbEMsY0FBMEI7WUFBMUIsbURBQTBCOzs7aUZEQ25CLG9CQUFvQjtjQVhoQyxTQUFTOzJCQUNJLGlCQUFpQixZQUNqQixlQUFlLGFBRWQ7b0JBQ1AsU0FBUyx1QkFBdUIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO29CQUN4RCxTQUFTLHVCQUF1QixhQUFhLEVBQUUsSUFBSSxDQUFDO29CQUNwRCxrQkFBa0Isc0JBQXNCO2lCQUMzQzs7c0JBZ0IyQixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTtxQkE4Q2hFLFNBQVM7a0JBRFIsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDOztrRkExRDNDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXR0cmlidXRlLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbmplY3RvciwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7QXBwRGVmYXVsdHMsIG5vb3AsIHNldExpc3RDbGFzcywgc3dpdGNoQ2xhc3N9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IGNvbnZlcnREYXRhVG9PYmplY3QsIElXaWRnZXRDb25maWcsIGdyb3VwRGF0YSwgaGFuZGxlSGVhZGVyQ2xpY2ssIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzdHlsZXIsIHRvZ2dsZUFsbEhlYWRlcnMgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9kYXRhc2V0LWF3YXJlLWZvcm0uY29tcG9uZW50JztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4uL2NoZWNrYm94c2V0L2NoZWNrYm94c2V0LnByb3BzJztcbmltcG9ydCB7Zm9yRWFjaCwgaW5jbHVkZXN9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCAkO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtY2hlY2tib3hzZXQgbGlzdC1ncm91cCBpbmxpbmUnO1xuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHt3aWRnZXRUeXBlOiAnd20tY2hlY2tib3hzZXQnLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21DaGVja2JveHNldF0nLFxuICAgIGV4cG9ydEFzOiAnd21DaGVja2JveHNldCcsXG4gICAgdGVtcGxhdGVVcmw6ICdjaGVja2JveHNldC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBcyhDaGVja2JveHNldENvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXMoQ2hlY2tib3hzZXRDb21wb25lbnQsIE5HX1ZBTElEQVRPUlMsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoQ2hlY2tib3hzZXRDb21wb25lbnQpXG4gICAgXVxufSlcblxuZXhwb3J0IGNsYXNzIENoZWNrYm94c2V0Q29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyBsYXlvdXQgPSAnJztcbiAgICBwdWJsaWMgY29sbGFwc2libGU6IGJvb2xlYW47XG5cbiAgICBwcm90ZWN0ZWQgbWF0Y2g6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgZGF0ZWZvcm1hdDogc3RyaW5nO1xuXG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBpdGVtc3BlcnJvdzogc3RyaW5nO1xuICAgIHByaXZhdGUgaXRlbXNQZXJSb3dDbGFzczogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgICAgIHRoaXMubXVsdGlwbGUgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ2hlY2tib3hMYWJlbENsaWNrKCRldmVudCwga2V5KSB7XG4gICAgICAgIGlmICghJCgkZXZlbnQudGFyZ2V0KS5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29uc3RydWN0IHRoZSBfbW9kZWwgZnJvbSB0aGUgY2hlY2tlZCBlbGVtZW50cy5cbiAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50cyA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dDpjaGVja2VkJyk7XG4gICAgICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICAgICAgZm9yRWFjaChpbnB1dEVsZW1lbnRzLCAoJGVsKSA9PiB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBrZXlzLnB1c2goJGVsLnZhbHVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5tb2RlbEJ5S2V5ID0ga2V5cztcblxuICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICAvLyBpbnZva2Ugb24gZGF0YXZhbHVlIGNoYW5nZS5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSwgJGV2ZW50IHx8IHt9LCB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBjaGFuZ2UgYW5kIGJsdXIgZXZlbnRzIGFyZSBhZGRlZCBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgIHByb3RlY3RlZCBoYW5kbGVFdmVudChub2RlOiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIGV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgICBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGUudGFyZ2V0KS5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxvY2Fscy4kZXZlbnQgPSBlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKCFpbmNsdWRlcyhbJ2NoYW5nZSddLCBldmVudE5hbWUpKSB7XG4gICAgICAgICAgICBzdXBlci5oYW5kbGVFdmVudChub2RlLCBldmVudE5hbWUsIGNhbGxiYWNrLCBsb2NhbHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50JywgJ1wiRU5URVJcIiddKVxuICAgIG9uS2V5RG93bigkZXZlbnQpIHtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICRldmVudC50YXJnZXQuY2xpY2soKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92Pykge1xuXG4gICAgICAgIGlmIChrZXkgPT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAncmVxdWlyZWQnKSB7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2l0ZW1zcGVycm93Jykge1xuICAgICAgICAgICAgc2V0TGlzdENsYXNzKHRoaXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgW25nSWZdPVwiIWdyb3VwYnlcIiBbbmdJZkVsc2VdPVwiZ3JvdXBlZExpc3RUZW1wbGF0ZVwiPlxuICAgIDxsaSBbbmdDbGFzc109XCJbJ2NoZWNrYm94JywgJ2FwcC1jaGVja2JveCcsIGl0ZW1jbGFzcywgaXRlbXNQZXJSb3dDbGFzc11cIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhc2V0SXRlbXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBbd21JdGVtVGVtcGxhdGVdPVwiY29udGVudFwiIFt1c2VyQ29tcG9uZW50UGFyYW1zXT1cIml0ZW1cIiBwYXJ0aWFsQ29udGFpbmVyXG4gICAgICAgIChjbGljayk9XCJvbkNoZWNrYm94TGFiZWxDbGljaygkZXZlbnQsIGl0ZW0ua2V5KVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICAgICAgPCEtLSBEZWZhdWx0IGl0ZW0gdGVtcGxhdGUgLS0+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cIiFjb250ZW50XCIgY2xhc3M9XCJhcHAtY2hlY2tib3hzZXQtbGFiZWxcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIiBbdGl0bGVdPVwiaXRlbS5sYWJlbFwiPlxuICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidjaGVja2JveHNldF8nICsgd2lkZ2V0SWRcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPCEtLSBDdXN0b20gcGFydGlhbCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwiY29udGVudFwiIGNsYXNzPVwiYXBwLWNoZWNrYm94c2V0LWxhYmVsXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCIgPlxuICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidjaGVja2JveHNldF8nICsgd2lkZ2V0SWRcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb24gY3VzdG9tVGVtcGxhdGVcIiBwYXJ0aWFsLWNvbnRhaW5lci10YXJnZXQ+PC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuPGlucHV0IFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIGhpZGRlbiBjbGFzcz1cIm1vZGVsLWhvbGRlclwiPlxuPGRpdiAqbmdJZj1cInJlYWRvbmx5IHx8IGRpc2FibGVkXCIgY2xhc3M9XCJyZWFkb25seS13cmFwcGVyXCI+PC9kaXY+XG5cbjwhLS0gVGhpcyB0ZW1wbGF0ZSB3aWxsIGJlIGRpc3BsYXllZCB3aGVuIGdyb3VwYnkgaXMgc3BlY2lmaWVkLiAtLT5cbjxuZy10ZW1wbGF0ZSAjZ3JvdXBlZExpc3RUZW1wbGF0ZT5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGdyb3VwT2JqIG9mIGdyb3VwZWREYXRhXCIgY2xhc3M9XCJhcHAtbGlzdC1pdGVtLWdyb3VwXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJpdGVtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWhlYWRlclwiIChjbGljayk9XCJoYW5kbGVIZWFkZXJDbGljaygkZXZlbnQpXCIgW3RpdGxlXT1cImdyb3VwT2JqLmtleVwiIFtuZ0NsYXNzXT1cInsnY29sbGFwc2libGUtY29udGVudCc6IGNvbGxhcHNpYmxlfVwiPlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cImdyb3VwLXRpdGxlXCI+e3tncm91cE9iai5rZXl9fVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWFjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJhcHAtaWNvbiB3aSBhY3Rpb24gd2ktY2hldnJvbi11cFwiICpuZ0lmPVwiY29sbGFwc2libGVcIiB0aXRsZT1cInt7YXBwTG9jYWxlLkxBQkVMX0NPTExBUFNFfX0ve3thcHBMb2NhbGUuTEFCRUxfRVhQQU5EfX1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3djb3VudFwiIGNsYXNzPVwibGFiZWwgbGFiZWwtZGVmYXVsdFwiIFt0ZXh0Q29udGVudF09XCJncm91cE9iai5kYXRhLmxlbmd0aFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXBPYmouZGF0YTsgbGV0IGkgPSBpbmRleDtcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnY2hlY2tib3gnLCAnYXBwLWNoZWNrYm94JywgJ2dyb3VwLWxpc3QtaXRlbScsIGl0ZW1jbGFzcywgaXRlbXNQZXJSb3dDbGFzc11cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgW3dtSXRlbVRlbXBsYXRlXT1cImNvbnRlbnRcIiBbdXNlckNvbXBvbmVudFBhcmFtc109XCJpdGVtXCIgcGFydGlhbENvbnRhaW5lclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNoZWNrYm94TGFiZWxDbGljaygkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBEZWZhdWx0IGl0ZW0gdGVtcGxhdGUgLS0+XG4gICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiIWNvbnRlbnRcIiBjbGFzcz1cImFwcC1jaGVja2JveHNldC1sYWJlbFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiIFt0aXRsZV09XCJpdGVtLmxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbbmFtZV09XCInY2hlY2tib3hzZXRfJyArIHdpZGdldElkXCIgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwhLS0gQ3VzdG9tIHBhcnRpYWwgdGVtcGxhdGUgLS0+XG4gICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiY29udGVudFwiIGNsYXNzPVwiYXBwLWNoZWNrYm94c2V0LWxhYmVsXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCIgPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ2NoZWNrYm94c2V0XycgKyB3aWRnZXRJZFwiIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uXCIgcGFydGlhbC1jb250YWluZXItdGFyZ2V0Pjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3hzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL2NoZWNrYm94c2V0L2NoZWNrYm94c2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9jaGVja2JveHNldC9jaGVja2JveHNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFvQixZQUFZLEVBQWMsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFvRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hLLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztJQ0RwQyxnQ0FBeUg7SUFLckgsQUFKQSwyQkFHMkUsZUFDbkI7SUFDNUQsaUJBQVE7Ozs7OztJQU40RixBQUE5Qyx5RkFBNkMsd0JBQXFCO0lBQzdHLGNBQWtDO0lBR08sQUFBdEIsQUFBbkIsQUFEQSxBQUZtQyxBQUFuQyx1REFBa0MsNkJBQXNCLGdEQUV2QixzQkFDZiw2QkFBc0IsNkJBQTBCOztJQUNuRCxjQUEwQjtJQUExQiwyQ0FBMEI7OztJQUdwRCxp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QUFpQztZQUNsQyxjQUEwQjtZQUExQixtREFBMEI7OztpRkRDbkIsb0JBQW9CO2NBWGhDLFNBQVM7MkJBQ0ksaUJBQWlCLFlBQ2pCLGVBQWUsYUFFZDtvQkFDUCxTQUFTLHVCQUF1QixpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQ3hELFNBQVMsdUJBQXVCLGFBQWEsRUFBRSxJQUFJLENBQUM7b0JBQ3BELGtCQUFrQixzQkFBc0I7aUJBQzNDOztzQkFnQjJCLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRO3FCQThDaEUsU0FBUztrQkFEUixZQUFZO21CQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7O2tGQTFEM0Msb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGUsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTkdfVkFMSURBVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtBcHBEZWZhdWx0cywgbm9vcCwgc2V0TGlzdENsYXNzLCBzd2l0Y2hDbGFzc30gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgY29udmVydERhdGFUb09iamVjdCwgSVdpZGdldENvbmZpZywgZ3JvdXBEYXRhLCBoYW5kbGVIZWFkZXJDbGljaywgcHJvdmlkZUFzLCBwcm92aWRlQXNXaWRnZXRSZWYsIHN0eWxlciwgdG9nZ2xlQWxsSGVhZGVycyB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGFzZXQtYXdhcmUtZm9ybS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi4vY2hlY2tib3hzZXQvY2hlY2tib3hzZXQucHJvcHMnO1xuaW1wb3J0IHtmb3JFYWNoLCBpbmNsdWRlc30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2FwcC1jaGVja2JveHNldCBsaXN0LWdyb3VwIGlubGluZSc7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge3dpZGdldFR5cGU6ICd3bS1jaGVja2JveHNldCcsIGhvc3RDbGFzczogREVGQVVMVF9DTFN9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bUNoZWNrYm94c2V0XScsXG4gICAgZXhwb3J0QXM6ICd3bUNoZWNrYm94c2V0JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NoZWNrYm94c2V0LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKENoZWNrYm94c2V0Q29tcG9uZW50LCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBcyhDaGVja2JveHNldENvbXBvbmVudCwgTkdfVkFMSURBVE9SUywgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDaGVja2JveHNldENvbXBvbmVudClcbiAgICBdXG59KVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hzZXRDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIGxheW91dCA9ICcnO1xuICAgIHB1YmxpYyBjb2xsYXBzaWJsZTogYm9vbGVhbjtcblxuICAgIHByb3RlY3RlZCBtYXRjaDogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBkYXRlZm9ybWF0OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGl0ZW1zcGVycm93OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBpdGVtc1BlclJvd0NsYXNzOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcbiAgICAgICAgdGhpcy5tdWx0aXBsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgb25DaGVja2JveExhYmVsQ2xpY2soJGV2ZW50LCBrZXkpIHtcbiAgICAgICAgaWYgKCEkKCRldmVudC50YXJnZXQpLmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb25zdHJ1Y3QgdGhlIF9tb2RlbCBmcm9tIHRoZSBjaGVja2VkIGVsZW1lbnRzLlxuICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnRzID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0OmNoZWNrZWQnKTtcbiAgICAgICAgY29uc3Qga2V5cyA9IFtdO1xuICAgICAgICBmb3JFYWNoKGlucHV0RWxlbWVudHMsICgkZWwpID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGtleXMucHVzaCgkZWwudmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm1vZGVsQnlLZXkgPSBrZXlzO1xuXG4gICAgICAgIHRoaXMuaW52b2tlT25Ub3VjaGVkKCk7XG4gICAgICAgIC8vIGludm9rZSBvbiBkYXRhdmFsdWUgY2hhbmdlLlxuICAgICAgICB0aGlzLmludm9rZU9uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlLCAkZXZlbnQgfHwge30sIHRydWUpO1xuICAgIH1cblxuICAgIC8vIGNoYW5nZSBhbmQgYmx1ciBldmVudHMgYXJlIGFkZGVkIGZyb20gdGhlIHRlbXBsYXRlXG4gICAgcHJvdGVjdGVkIGhhbmRsZUV2ZW50KG5vZGU6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSkge1xuICAgICAgICBpZiAoZXZlbnROYW1lID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICAgICAgICAgIGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZS50YXJnZXQpLmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxzLiRldmVudCA9IGU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWluY2x1ZGVzKFsnY2hhbmdlJ10sIGV2ZW50TmFtZSkpIHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KG5vZGUsIGV2ZW50TmFtZSwgY2FsbGJhY2ssIGxvY2Fscyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnLCAnXCJFTlRFUlwiJ10pXG4gICAgb25LZXlEb3duKCRldmVudCkge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgJGV2ZW50LnRhcmdldC5jbGljaygpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnaXRlbXNwZXJyb3cnKSB7XG4gICAgICAgICAgICBzZXRMaXN0Q2xhc3ModGhpcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhZ3JvdXBieVwiIFtuZ0lmRWxzZV09XCJncm91cGVkTGlzdFRlbXBsYXRlXCI+XG4gICAgPGxpIFtuZ0NsYXNzXT1cIlsnY2hlY2tib3gnLCAnYXBwLWNoZWNrYm94JywgaXRlbWNsYXNzLCBpdGVtc1BlclJvd0NsYXNzXVwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFzZXRJdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFt3bUl0ZW1UZW1wbGF0ZV09XCJjb250ZW50XCIgW3VzZXJDb21wb25lbnRQYXJhbXNdPVwiaXRlbVwiIHBhcnRpYWxDb250YWluZXJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2hlY2tib3hMYWJlbENsaWNrKCRldmVudCwgaXRlbS5rZXkpXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICA8IS0tIERlZmF1bHQgaXRlbSB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwiIWNvbnRlbnRcIiBjbGFzcz1cImFwcC1jaGVja2JveHNldC1sYWJlbFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiIFt0aXRsZV09XCJpdGVtLmxhYmVsXCI+XG4gICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ2NoZWNrYm94c2V0XycgKyB3aWRnZXRJZFwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8IS0tIEN1c3RvbSBwYXJ0aWFsIHRlbXBsYXRlIC0tPlxuICAgICAgICA8bGFiZWwgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtY2hlY2tib3hzZXQtbGFiZWxcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIiA+XG4gICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ2NoZWNrYm94c2V0XycgKyB3aWRnZXRJZFwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvbiBjdXN0b21UZW1wbGF0ZVwiIHBhcnRpYWwtY29udGFpbmVyLXRhcmdldD48L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG48aW5wdXQgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgaGlkZGVuIGNsYXNzPVwibW9kZWwtaG9sZGVyXCI+XG48ZGl2ICpuZ0lmPVwicmVhZG9ubHkgfHwgZGlzYWJsZWRcIiBjbGFzcz1cInJlYWRvbmx5LXdyYXBwZXJcIj48L2Rpdj5cblxuPCEtLSBUaGlzIHRlbXBsYXRlIHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gZ3JvdXBieSBpcyBzcGVjaWZpZWQuIC0tPlxuPG5nLXRlbXBsYXRlICNncm91cGVkTGlzdFRlbXBsYXRlPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZ3JvdXBPYmogb2YgZ3JvdXBlZERhdGE7IGxldCBncm91cGluZGV4ID0gaW5kZXg7XCIgY2xhc3M9XCJhcHAtbGlzdC1pdGVtLWdyb3VwXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJpdGVtLWdyb3VwXCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidncm91cF8nICsgd2lkZ2V0SWQgKyAnXycgKyBncm91cGluZGV4XCI+XG4gICAgICAgICAgICA8bGkgW2lkXT1cIidncm91cF8nICsgd2lkZ2V0SWQgKyAnXycgKyBncm91cGluZGV4XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJsaXN0LWdyb3VwLWhlYWRlclwiIChjbGljayk9XCJoYW5kbGVIZWFkZXJDbGljaygkZXZlbnQpXCIgW3RpdGxlXT1cImdyb3VwT2JqLmtleVwiIFtuZ0NsYXNzXT1cInsnY29sbGFwc2libGUtY29udGVudCc6IGNvbGxhcHNpYmxlfVwiPlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cImdyb3VwLXRpdGxlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInR3JvdXAgJytncm91cE9iai5rZXlcIj57e2dyb3VwT2JqLmtleX19XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHdpIGFjdGlvbiB3aS1jaGV2cm9uLXVwXCIgKm5nSWY9XCJjb2xsYXBzaWJsZVwiIHRpdGxlPVwie3thcHBMb2NhbGUuTEFCRUxfQ09MTEFQU0V9fS97e2FwcExvY2FsZS5MQUJFTF9FWFBBTkR9fVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd2NvdW50XCIgY2xhc3M9XCJsYWJlbCBsYWJlbC1kZWZhdWx0XCIgW3RleHRDb250ZW50XT1cImdyb3VwT2JqLmRhdGEubGVuZ3RoXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cE9iai5kYXRhOyBsZXQgaSA9IGluZGV4O1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiWydjaGVja2JveCcsICdhcHAtY2hlY2tib3gnLCAnZ3JvdXAtbGlzdC1pdGVtJywgaXRlbWNsYXNzLCBpdGVtc1BlclJvd0NsYXNzXVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICBbd21JdGVtVGVtcGxhdGVdPVwiY29udGVudFwiIFt1c2VyQ29tcG9uZW50UGFyYW1zXT1cIml0ZW1cIiBwYXJ0aWFsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hlY2tib3hMYWJlbENsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgICAgICAgICA8IS0tIERlZmF1bHQgaXRlbSB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCIhY29udGVudFwiIGNsYXNzPVwiYXBwLWNoZWNrYm94c2V0LWxhYmVsXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCIgW3RpdGxlXT1cIml0ZW0ubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidjaGVja2JveHNldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPCEtLSBDdXN0b20gcGFydGlhbCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtY2hlY2tib3hzZXQtbGFiZWxcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIiA+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbbmFtZV09XCInY2hlY2tib3hzZXRfJyArIHdpZGdldElkXCIgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBwYXJ0aWFsLWNvbnRhaW5lci10YXJnZXQ+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuIl19