barsa-sap-ui 1.0.356 → 1.0.358

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 (61) hide show
  1. package/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +12 -12
  2. package/esm2020/lib/barsa-sap-ui.module.mjs +118 -129
  3. package/esm2020/lib/barsa-table-column/barsa-table-column.component.mjs +3 -3
  4. package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +51 -18
  5. package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
  6. package/esm2020/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +11 -8
  7. package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +6 -7
  8. package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +12 -8
  9. package/esm2020/lib/card-item/card-item.component.mjs +3 -3
  10. package/esm2020/lib/column-renderer/column-renderer.component.mjs +9 -8
  11. package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +3 -3
  12. package/esm2020/lib/global-search/global-search.component.mjs +7 -6
  13. package/esm2020/lib/index.mjs +1 -3
  14. package/esm2020/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +4 -4
  15. package/esm2020/lib/layout-actions/layout-actions.component.mjs +3 -4
  16. package/esm2020/lib/list-item/list-item.component.mjs +3 -3
  17. package/esm2020/lib/models/grid-data-provider.mjs +3 -142
  18. package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +5 -6
  19. package/esm2020/lib/report-view-renderer.directive.mjs +8 -2
  20. package/esm2020/lib/sap-ui-report-base.component.mjs +2 -3
  21. package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +3 -3
  22. package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +3 -3
  23. package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +3 -3
  24. package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +3 -3
  25. package/esm2020/lib/ui-form-panel-toolbar/ui-form-panel-toolbar.component.mjs +5 -7
  26. package/esm2020/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +3 -3
  27. package/esm2020/lib/ui-grid/ui-grid.component.mjs +3 -3
  28. package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +3 -3
  29. package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +4 -5
  30. package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +4 -4
  31. package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +1 -1
  32. package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +3 -3
  33. package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +57 -8
  34. package/esm2020/lib/ui-tree/ui-tree.component.mjs +8 -8
  35. package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +5 -3
  36. package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +15 -13
  37. package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +13 -14
  38. package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +5 -6
  39. package/esm2020/public-api.mjs +1 -2
  40. package/fesm2015/barsa-sap-ui.mjs +360 -479
  41. package/fesm2015/barsa-sap-ui.mjs.map +1 -1
  42. package/fesm2020/barsa-sap-ui.mjs +360 -478
  43. package/fesm2020/barsa-sap-ui.mjs.map +1 -1
  44. package/lib/barsa-sap-ui.module.d.ts +124 -126
  45. package/lib/barsa-table-header/barsa-table-header.component.d.ts +13 -4
  46. package/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.d.ts +2 -2
  47. package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +4 -1
  48. package/lib/global-search/global-search.component.d.ts +1 -2
  49. package/lib/index.d.ts +1 -2
  50. package/lib/models/grid-data-provider.d.ts +2 -6
  51. package/lib/report-view-renderer.directive.d.ts +3 -1
  52. package/lib/sap-ui-report-base.component.d.ts +1 -3
  53. package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +1 -1
  54. package/lib/ui-table-view/ui-table-view.component.d.ts +12 -3
  55. package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +2 -0
  56. package/lib/ulv-column-settings/ulv-column-settings.component.d.ts +2 -1
  57. package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +2 -4
  58. package/package.json +1 -1
  59. package/public-api.d.ts +0 -1
  60. package/esm2020/lib/page-with-header/page-with-header.component.mjs +0 -75
  61. package/lib/page-with-header/page-with-header.component.d.ts +0 -29
@@ -21,13 +21,13 @@ export class ListItemComponent extends BaseViewItemPropsComponent {
21
21
  }
22
22
  }
23
23
  ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
- ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ListItemComponent, selector: "bsu-list-item", inputs: { setting: "setting", isDisplayType: "isDisplayType" }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\n></ng-container>\n<ng-template #standardTemplate let-mo>\n <li\n fd-list-item\n class=\"standard-list-row\"\n [ngClass]=\"deviceSize\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [class.selected]=\"isChecked === true\"\n [selected]=\"isChecked === true\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n >\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n\n <span fd-list-thumbnail *ngIf=\"setting.IconFont || setting.AvatarField\">\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n [circle]=\"true\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize\"\n [transparent]=\"true\"\n [glyph]=\"\n setting.IconFont ??\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n </span>\n <div fd-list-content>\n <div fd-list-byline [twoCol]=\"true\">\n <div fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats,\n index: 0\n }\n \"\n ></ng-container>\n </div>\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.StatusField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <div fd-list-byline>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <bsu-ulv-context-menu\n *ngIf=\"contextMenuItems.length\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n <button\n *ngIf=\"canView && !hideOpenIcon\"\n (click)=\"onRowClick()\"\n fdType=\"transparent\"\n [glyph]=\"navigationArrow\"\n fd-button\n ></button>\n </a>\n </li>\n</ng-template>\n<ng-template #displayTemplate let-mo>\n <li\n class=\"display\"\n [ngClass]=\"deviceSize\"\n fd-list-item\n [interactive]=\"false\"\n *ngIf=\"!mo.parent || mo.parent?.expanded\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n style=\"cursor: default\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n style=\"column-gap: 3px\"\n >\n <img\n *ngIf=\"setting.AvatarField\"\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\n style=\"width: 24px; height: 24px\"\n />\n <i\n fd-list-icon\n *ngIf=\"setting.IconFont\"\n [glyph]=\"setting.IconFont\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n >\n </i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && inlineEditMode && isChecked\" glyph=\"edit\"></i>\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n <span fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: 0\n }\n \"\n ></ng-container>\n </span>\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\" [class.flex1]=\"contextMenuItems.length === 0\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n <button\n *ngIf=\"canView && !hideOpenIcon\"\n fd-button\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n <bsu-ulv-context-menu\n *ngIf=\"contextMenuItems.length\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n </span>\n </a>\n </li>\n</ng-template>\n<ng-template\n #renderColumn\n let-column\n let-mo=\"mo\"\n let-conditionalFormats=\"conditionalFormats\"\n let-index=\"index\"\n let-layout94=\"layout94\"\n>\n <ng-container *ngIf=\"column\">\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [disableEllapsis]=\"true\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host li.s{height:auto}:host .flex1{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary] ,[fdListSecondary]" }, { kind: "directive", type: i6.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated"] }, { kind: "directive", type: i6.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i6.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i6.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i7.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i8.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i9.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i10.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i10.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i10.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ListItemComponent, selector: "bsu-list-item", inputs: { setting: "setting", isDisplayType: "isDisplayType" }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\n></ng-container>\n<ng-template #standardTemplate let-mo>\n <li\n fd-list-item\n class=\"standard-list-row\"\n [ngClass]=\"deviceSize\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [class.selected]=\"isChecked === true\"\n [selected]=\"isChecked === true\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n >\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n\n <span fd-list-thumbnail *ngIf=\"setting.IconFont || setting.AvatarField\">\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n [circle]=\"true\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize\"\n [transparent]=\"true\"\n [glyph]=\"\n setting.IconFont ??\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n </span>\n <div fd-list-content>\n <div fd-list-byline [twoCol]=\"true\">\n <div fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats,\n index: 0\n }\n \"\n ></ng-container>\n </div>\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.StatusField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <div fd-list-byline>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <bsu-ulv-context-menu\n *ngIf=\"contextMenuItems.length\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n <button\n *ngIf=\"canView && !hideOpenIcon\"\n (click)=\"onRowClick()\"\n fdType=\"transparent\"\n [glyph]=\"navigationArrow\"\n fd-button\n ></button>\n </a>\n </li>\n</ng-template>\n<ng-template #displayTemplate let-mo>\n <li\n class=\"display\"\n [ngClass]=\"deviceSize\"\n fd-list-item\n [interactive]=\"false\"\n *ngIf=\"!mo.parent || mo.parent?.expanded\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n style=\"cursor: default\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n style=\"column-gap: 3px\"\n >\n <img\n *ngIf=\"setting.AvatarField\"\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\n style=\"width: 24px; height: 24px\"\n />\n <i\n fd-list-icon\n *ngIf=\"setting.IconFont\"\n [glyph]=\"setting.IconFont\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n >\n </i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && inlineEditMode && isChecked\" glyph=\"edit\"></i>\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n <span fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: 0\n }\n \"\n ></ng-container>\n </span>\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\" [class.flex1]=\"contextMenuItems.length === 0\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n <button\n *ngIf=\"canView && !hideOpenIcon\"\n fd-button\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n <bsu-ulv-context-menu\n *ngIf=\"contextMenuItems.length\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n </span>\n </a>\n </li>\n</ng-template>\n<ng-template\n #renderColumn\n let-column\n let-mo=\"mo\"\n let-conditionalFormats=\"conditionalFormats\"\n let-index=\"index\"\n let-layout94=\"layout94\"\n>\n <ng-container *ngIf=\"column\">\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [disableEllapsis]=\"true\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host li.s{height:auto}:host .flex1{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary] ,[fdListSecondary]" }, { kind: "directive", type: i6.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated"] }, { kind: "directive", type: i6.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i6.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i6.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i7.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i8.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i9.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i10.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i10.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i10.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i10.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ListItemComponent, decorators: [{
26
26
  type: Component,
27
- args: [{ selector: 'bsu-list-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\n></ng-container>\n<ng-template #standardTemplate let-mo>\n <li\n fd-list-item\n class=\"standard-list-row\"\n [ngClass]=\"deviceSize\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [class.selected]=\"isChecked === true\"\n [selected]=\"isChecked === true\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n >\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n\n <span fd-list-thumbnail *ngIf=\"setting.IconFont || setting.AvatarField\">\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n [circle]=\"true\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize\"\n [transparent]=\"true\"\n [glyph]=\"\n setting.IconFont ??\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n </span>\n <div fd-list-content>\n <div fd-list-byline [twoCol]=\"true\">\n <div fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats,\n index: 0\n }\n \"\n ></ng-container>\n </div>\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.StatusField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <div fd-list-byline>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <bsu-ulv-context-menu\n *ngIf=\"contextMenuItems.length\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n <button\n *ngIf=\"canView && !hideOpenIcon\"\n (click)=\"onRowClick()\"\n fdType=\"transparent\"\n [glyph]=\"navigationArrow\"\n fd-button\n ></button>\n </a>\n </li>\n</ng-template>\n<ng-template #displayTemplate let-mo>\n <li\n class=\"display\"\n [ngClass]=\"deviceSize\"\n fd-list-item\n [interactive]=\"false\"\n *ngIf=\"!mo.parent || mo.parent?.expanded\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n style=\"cursor: default\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n style=\"column-gap: 3px\"\n >\n <img\n *ngIf=\"setting.AvatarField\"\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\n style=\"width: 24px; height: 24px\"\n />\n <i\n fd-list-icon\n *ngIf=\"setting.IconFont\"\n [glyph]=\"setting.IconFont\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n >\n </i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && inlineEditMode && isChecked\" glyph=\"edit\"></i>\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n <span fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: 0\n }\n \"\n ></ng-container>\n </span>\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\" [class.flex1]=\"contextMenuItems.length === 0\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n <button\n *ngIf=\"canView && !hideOpenIcon\"\n fd-button\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n <bsu-ulv-context-menu\n *ngIf=\"contextMenuItems.length\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n </span>\n </a>\n </li>\n</ng-template>\n<ng-template\n #renderColumn\n let-column\n let-mo=\"mo\"\n let-conditionalFormats=\"conditionalFormats\"\n let-index=\"index\"\n let-layout94=\"layout94\"\n>\n <ng-container *ngIf=\"column\">\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [disableEllapsis]=\"true\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host li.s{height:auto}:host .flex1{flex:1}\n"] }]
27
+ args: [{ selector: 'bsu-list-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\n></ng-container>\n<ng-template #standardTemplate let-mo>\n <li\n fd-list-item\n class=\"standard-list-row\"\n [ngClass]=\"deviceSize\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [class.selected]=\"isChecked === true\"\n [selected]=\"isChecked === true\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n >\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n\n <span fd-list-thumbnail *ngIf=\"setting.IconFont || setting.AvatarField\">\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n [circle]=\"true\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize\"\n [transparent]=\"true\"\n [glyph]=\"\n setting.IconFont ??\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n </span>\n <div fd-list-content>\n <div fd-list-byline [twoCol]=\"true\">\n <div fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats,\n index: 0\n }\n \"\n ></ng-container>\n </div>\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.StatusField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <div fd-list-byline>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <bsu-ulv-context-menu\n *ngIf=\"contextMenuItems.length\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n <button\n *ngIf=\"canView && !hideOpenIcon\"\n (click)=\"onRowClick()\"\n fdType=\"transparent\"\n [glyph]=\"navigationArrow\"\n fd-button\n ></button>\n </a>\n </li>\n</ng-template>\n<ng-template #displayTemplate let-mo>\n <li\n class=\"display\"\n [ngClass]=\"deviceSize\"\n fd-list-item\n [interactive]=\"false\"\n *ngIf=\"!mo.parent || mo.parent?.expanded\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n style=\"cursor: default\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n style=\"column-gap: 3px\"\n >\n <img\n *ngIf=\"setting.AvatarField\"\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\n style=\"width: 24px; height: 24px\"\n />\n <i\n fd-list-icon\n *ngIf=\"setting.IconFont\"\n [glyph]=\"setting.IconFont\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n >\n </i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && inlineEditMode && isChecked\" glyph=\"edit\"></i>\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n <span fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: 0\n }\n \"\n ></ng-container>\n </span>\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\" [class.flex1]=\"contextMenuItems.length === 0\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n <button\n *ngIf=\"canView && !hideOpenIcon\"\n fd-button\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n <bsu-ulv-context-menu\n *ngIf=\"contextMenuItems.length\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n </span>\n </a>\n </li>\n</ng-template>\n<ng-template\n #renderColumn\n let-column\n let-mo=\"mo\"\n let-conditionalFormats=\"conditionalFormats\"\n let-index=\"index\"\n let-layout94=\"layout94\"\n>\n <ng-container *ngIf=\"column\">\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [disableEllapsis]=\"true\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host li.s{height:auto}:host .flex1{flex:1}\n"] }]
28
28
  }], propDecorators: { setting: [{
29
29
  type: Input
30
30
  }], isDisplayType: [{
31
31
  type: Input
32
32
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUzdHLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSwwQkFBMEI7SUFJN0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFDdkIsSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUN4QyxDQUFDO0lBQ2QsQ0FBQztJQUNELFdBQVcsQ0FBQyxDQUFDO1FBQ1Qsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7OEdBYlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsNElDWDlCLHlqVEErT0E7MkZEcE9hLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDSSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50LCBQcmV2ZW50RGVmYXVsRXZlbnQsIGVudW1WYWx1ZVRvU3RyaW5nU2l6ZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpTGlzdFZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtdmlldyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWxpc3QtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlzdC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBzZXR0aW5nOiBVaUxpc3RWaWV3U2V0dGluZztcbiAgICBASW5wdXQoKSBpc0Rpc3BsYXlUeXBlOiBib29sZWFuO1xuICAgIGF2YXRhclNpemU6IFNpemU7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuYXZhdGFyU2l6ZSA9IGVudW1WYWx1ZVRvU3RyaW5nU2l6ZShcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5BdmF0YXJTaXplLFxuICAgICAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSA9PT0gJ2NvbXBhY3QnID8gJ3MnIDogJ20nXG4gICAgICAgICkgYXMgU2l6ZTtcbiAgICB9XG4gICAgb25Sb3dDaGVjazIoZSk6IHZvaWQge1xuICAgICAgICBQcmV2ZW50RGVmYXVsRXZlbnQoZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNEaXNwbGF5VHlwZSA/IGRpc3BsYXlUZW1wbGF0ZSA6IHN0YW5kYXJkVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBtbyB9XCJcbj48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjc3RhbmRhcmRUZW1wbGF0ZSBsZXQtbW8+XG4gICAgPGxpXG4gICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICBjbGFzcz1cInN0YW5kYXJkLWxpc3Qtcm93XCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0XT1cIidjYWxjKCAxcmVtICsgJyArIG1vLmxldmVsICogMTIgKyAncHgnICsgJyApJ1wiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc0NoZWNrZWQgPT09IHRydWVcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiaXNDaGVja2VkID09PSB0cnVlXCJcbiAgICAgICAgKGRibGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgID5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgW2F0dHIucnRsXT1cInJ0bFwiXG4gICAgICAgICAgICBjbGFzcz1cImxpLWxpbmtcIlxuICAgICAgICAgICAgW2NsYXNzLmNoZWNrbGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAjYUVsXG4gICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJhRWxcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJtby4kQ2FwdGlvblwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUm93Q2hlY2syKCRldmVudClcIlxuICAgICAgICAgICAgPjwvZmQtY2hlY2tib3g+XG5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGh1bWJuYWlsICpuZ0lmPVwic2V0dGluZy5JY29uRm9udCB8fCBzZXR0aW5nLkF2YXRhckZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgICAgICBhbHRlckljb249XCJhbHR8Y29udGVudHxiYWNrdXB8ZGVmYXVsdC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInNldHRpbmcuSWNvbkNvbG9yID8gc2V0dGluZy5JY29uQ29sb3IgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5BdmF0YXJGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG1vW3NldHRpbmcuQXZhdGFyRmllbGQuTmFtZV0/LkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOnNldHRpbmcuQXZhdGFyRmllbGQuRmllbGREZWZJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImF2YXRhclNpemVcIlxuICAgICAgICAgICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcuSWNvbkZvbnQgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgIChtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWQgPyAnZmF2b3JpdGUnIDogaW5saW5lRWRpdE1vZGUgJiYgaXNDaGVja2VkID8gJ2VkaXQnIDogJycpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZmQtYXZhdGFyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBmZC1saXN0LWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZSBbdHdvQ29sXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXRzOiBjb25kaXRpb25hbEZvcm1hdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUgW3N0eWxlLnBhZGRpbmctbGVmdF09XCJjYW5WaWV3ICYmIGRldmljZU5hbWUgPT09ICdkZXNrdG9wJyA/ICcuOXJlbScgOiAnMCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5TdGF0dXNGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbmRpdGlvbmFsRm9ybWF0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuU3VidGl0bGVGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbmRpdGlvbmFsRm9ybWF0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJzdS11bHYtY29udGV4dC1tZW51XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0TWVudUl0ZW1zLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxuICAgICAgICAgICAgPjwvYnN1LXVsdi1jb250ZXh0LW1lbnU+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjYW5WaWV3ICYmICFoaWRlT3Blbkljb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkaXNwbGF5VGVtcGxhdGUgbGV0LW1vPlxuICAgIDxsaVxuICAgICAgICBjbGFzcz1cImRpc3BsYXlcIlxuICAgICAgICBbbmdDbGFzc109XCJkZXZpY2VTaXplXCJcbiAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgIFtpbnRlcmFjdGl2ZV09XCJmYWxzZVwiXG4gICAgICAgICpuZ0lmPVwiIW1vLnBhcmVudCB8fCBtby5wYXJlbnQ/LmV4cGFuZGVkXCJcbiAgICAgICAgKGRibGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCInY2FsYyggMXJlbSArICcgKyBtby5sZXZlbCAqIDEyICsgJ3B4JyArICcgKSdcIlxuICAgID5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgW2F0dHIucnRsXT1cInJ0bFwiXG4gICAgICAgICAgICBjbGFzcz1cImxpLWxpbmtcIlxuICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IGRlZmF1bHRcIlxuICAgICAgICAgICAgW2NsYXNzLmNoZWNrbGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAjYUVsXG4gICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJhRWxcIlxuICAgICAgICAgICAgc3R5bGU9XCJjb2x1bW4tZ2FwOiAzcHhcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZXR0aW5nLkF2YXRhckZpZWxkXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIm1vW3NldHRpbmcuQXZhdGFyRmllbGQuTmFtZV0/LkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOnNldHRpbmcuQXZhdGFyRmllbGQuRmllbGREZWZJZFwiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGZkLWxpc3QtaWNvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5JY29uRm9udFwiXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cInNldHRpbmcuSWNvbkZvbnRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzZXR0aW5nLkljb25Db2xvciA/IHNldHRpbmcuSWNvbkNvbG9yIDogbnVsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2k+XG4gICAgICAgICAgICA8aSBmZC1saXN0LWljb24gKm5nSWY9XCIhc2V0dGluZy5JY29uRm9udCAmJiBtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWRcIiBnbHlwaD1cImZhdm9yaXRlXCI+PC9pPlxuICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uICpuZ0lmPVwiIXNldHRpbmcuSWNvbkZvbnQgJiYgaW5saW5lRWRpdE1vZGUgJiYgaXNDaGVja2VkXCIgZ2x5cGg9XCJlZGl0XCI+PC9pPlxuICAgICAgICAgICAgPGZkLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwibW8uJENhcHRpb25cIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblJvd0NoZWNrMigkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXRzOiBjb25kaXRpb25hbEZvcm1hdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LXNlY29uZGFyeSBbZGlyXT1cInJ0bCA/ICdsdHInIDogJ3J0bCdcIiBbY2xhc3MuZmxleDFdPVwiY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlN1YnRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXRzOiBjb25kaXRpb25hbEZvcm1hdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjYW5WaWV3ICYmICFoaWRlT3Blbkljb25cIlxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxic3UtdWx2LWNvbnRleHQtbWVudVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRleHRNZW51SXRlbXMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnN1LXVsdi1jb250ZXh0LW1lbnU+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNyZW5kZXJDb2x1bW5cbiAgICBsZXQtY29sdW1uXG4gICAgbGV0LW1vPVwibW9cIlxuICAgIGxldC1jb25kaXRpb25hbEZvcm1hdHM9XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtblwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjZGl2RWxcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbaG9zdEVsXT1cImRpdkVsXCJcbiAgICAgICAgICAgIFtkYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnN1LWNvbHVtbi1yZW5kZXJlclxuICAgICAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlRWxsYXBzaXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbHVtbiB8IGNvbHVtblZhbHVlOiBtb1wiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiY29sdW1uIHwgY29sdW1uSWNvbjogbW9cIlxuICAgICAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sVWldPVwiY29sdW1uLkNhcHRpb24gfCBjb250cm9sVWk6IGxheW91dDk0XCJcbiAgICAgICAgICAgICAgICAoa2V5dXAuY29udHJvbC5lbnRlcik9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXl1cC5lc2MpPVwib25FZGl0Rm9ybVBhbmVsQ2FuY2VsKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLlRhYik9XCJvblRhYktleURvd24oJGV2ZW50LCBpbmRleClcIlxuICAgICAgICAgICAgICAgIFtmb3JtTGF5b3V0U2hvd0xhYmVsXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvYnN1LWNvbHVtbi1yZW5kZXJlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUzdHLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSwwQkFBMEI7SUFJN0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFDdkIsSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUN4QyxDQUFDO0lBQ2QsQ0FBQztJQUNELFdBQVcsQ0FBQyxDQUFDO1FBQ1Qsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7OEdBYlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsNElDWDlCLHdrVEErT0E7MkZEcE9hLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDSSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50LCBQcmV2ZW50RGVmYXVsRXZlbnQsIGVudW1WYWx1ZVRvU3RyaW5nU2l6ZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpTGlzdFZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtdmlldyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWxpc3QtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlzdC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBzZXR0aW5nOiBVaUxpc3RWaWV3U2V0dGluZztcbiAgICBASW5wdXQoKSBpc0Rpc3BsYXlUeXBlOiBib29sZWFuO1xuICAgIGF2YXRhclNpemU6IFNpemU7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuYXZhdGFyU2l6ZSA9IGVudW1WYWx1ZVRvU3RyaW5nU2l6ZShcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5BdmF0YXJTaXplLFxuICAgICAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSA9PT0gJ2NvbXBhY3QnID8gJ3MnIDogJ20nXG4gICAgICAgICkgYXMgU2l6ZTtcbiAgICB9XG4gICAgb25Sb3dDaGVjazIoZSk6IHZvaWQge1xuICAgICAgICBQcmV2ZW50RGVmYXVsRXZlbnQoZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNEaXNwbGF5VHlwZSA/IGRpc3BsYXlUZW1wbGF0ZSA6IHN0YW5kYXJkVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBtbyB9XCJcbj48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjc3RhbmRhcmRUZW1wbGF0ZSBsZXQtbW8+XG4gICAgPGxpXG4gICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICBjbGFzcz1cInN0YW5kYXJkLWxpc3Qtcm93XCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0XT1cIidjYWxjKCAxcmVtICsgJyArIG1vLmxldmVsICogMTIgKyAncHgnICsgJyApJ1wiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc0NoZWNrZWQgPT09IHRydWVcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiaXNDaGVja2VkID09PSB0cnVlXCJcbiAgICAgICAgKGRibGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgID5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgW2F0dHIucnRsXT1cInJ0bFwiXG4gICAgICAgICAgICBjbGFzcz1cImxpLWxpbmtcIlxuICAgICAgICAgICAgW2NsYXNzLmNoZWNrbGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAjYUVsXG4gICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJhRWxcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJtby4kQ2FwdGlvblwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUm93Q2hlY2syKCRldmVudClcIlxuICAgICAgICAgICAgPjwvZmQtY2hlY2tib3g+XG5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGh1bWJuYWlsICpuZ0lmPVwic2V0dGluZy5JY29uRm9udCB8fCBzZXR0aW5nLkF2YXRhckZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgICAgICBhbHRlckljb249XCJhbHR8Y29udGVudHxiYWNrdXB8ZGVmYXVsdC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInNldHRpbmcuSWNvbkNvbG9yID8gc2V0dGluZy5JY29uQ29sb3IgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5BdmF0YXJGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG1vW3NldHRpbmcuQXZhdGFyRmllbGQuTmFtZV0/LkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOnNldHRpbmcuQXZhdGFyRmllbGQuRmllbGREZWZJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImF2YXRhclNpemVcIlxuICAgICAgICAgICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcuSWNvbkZvbnQgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgIChtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWQgPyAnZmF2b3JpdGUnIDogaW5saW5lRWRpdE1vZGUgJiYgaXNDaGVja2VkID8gJ2VkaXQnIDogJycpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZmQtYXZhdGFyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBmZC1saXN0LWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZSBbdHdvQ29sXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXRzOiBjb25kaXRpb25hbEZvcm1hdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUgW3N0eWxlLnBhZGRpbmctbGVmdF09XCJjYW5WaWV3ICYmIGRldmljZU5hbWUgPT09ICdkZXNrdG9wJyA/ICcuOXJlbScgOiAnMCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5TdGF0dXNGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbmRpdGlvbmFsRm9ybWF0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuU3VidGl0bGVGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbmRpdGlvbmFsRm9ybWF0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJzdS11bHYtY29udGV4dC1tZW51XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0TWVudUl0ZW1zLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxuICAgICAgICAgICAgPjwvYnN1LXVsdi1jb250ZXh0LW1lbnU+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjYW5WaWV3ICYmICFoaWRlT3Blbkljb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkaXNwbGF5VGVtcGxhdGUgbGV0LW1vPlxuICAgIDxsaVxuICAgICAgICBjbGFzcz1cImRpc3BsYXlcIlxuICAgICAgICBbbmdDbGFzc109XCJkZXZpY2VTaXplXCJcbiAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgIFtpbnRlcmFjdGl2ZV09XCJmYWxzZVwiXG4gICAgICAgICpuZ0lmPVwiIW1vLnBhcmVudCB8fCBtby5wYXJlbnQ/LmV4cGFuZGVkXCJcbiAgICAgICAgKGRibGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCInY2FsYyggMXJlbSArICcgKyBtby5sZXZlbCAqIDEyICsgJ3B4JyArICcgKSdcIlxuICAgID5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgW2F0dHIucnRsXT1cInJ0bFwiXG4gICAgICAgICAgICBjbGFzcz1cImxpLWxpbmtcIlxuICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IGRlZmF1bHRcIlxuICAgICAgICAgICAgW2NsYXNzLmNoZWNrbGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAjYUVsXG4gICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJhRWxcIlxuICAgICAgICAgICAgc3R5bGU9XCJjb2x1bW4tZ2FwOiAzcHhcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZXR0aW5nLkF2YXRhckZpZWxkXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIm1vW3NldHRpbmcuQXZhdGFyRmllbGQuTmFtZV0/LkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOnNldHRpbmcuQXZhdGFyRmllbGQuRmllbGREZWZJZFwiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGZkLWxpc3QtaWNvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5JY29uRm9udFwiXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cInNldHRpbmcuSWNvbkZvbnRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzZXR0aW5nLkljb25Db2xvciA/IHNldHRpbmcuSWNvbkNvbG9yIDogbnVsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2k+XG4gICAgICAgICAgICA8aSBmZC1saXN0LWljb24gKm5nSWY9XCIhc2V0dGluZy5JY29uRm9udCAmJiBtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWRcIiBnbHlwaD1cImZhdm9yaXRlXCI+PC9pPlxuICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uICpuZ0lmPVwiIXNldHRpbmcuSWNvbkZvbnQgJiYgaW5saW5lRWRpdE1vZGUgJiYgaXNDaGVja2VkXCIgZ2x5cGg9XCJlZGl0XCI+PC9pPlxuICAgICAgICAgICAgPGZkLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwibW8uJENhcHRpb25cIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblJvd0NoZWNrMigkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXRzOiBjb25kaXRpb25hbEZvcm1hdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LXNlY29uZGFyeSBbZGlyXT1cInJ0bCA/ICdsdHInIDogJ3J0bCdcIiBbY2xhc3MuZmxleDFdPVwiY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlN1YnRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXRzOiBjb25kaXRpb25hbEZvcm1hdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjYW5WaWV3ICYmICFoaWRlT3Blbkljb25cIlxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxic3UtdWx2LWNvbnRleHQtbWVudVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRleHRNZW51SXRlbXMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnN1LXVsdi1jb250ZXh0LW1lbnU+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNyZW5kZXJDb2x1bW5cbiAgICBsZXQtY29sdW1uXG4gICAgbGV0LW1vPVwibW9cIlxuICAgIGxldC1jb25kaXRpb25hbEZvcm1hdHM9XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtblwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjZGl2RWxcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbaG9zdEVsXT1cImRpdkVsXCJcbiAgICAgICAgICAgIFtkYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnN1LWNvbHVtbi1yZW5kZXJlclxuICAgICAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlRWxsYXBzaXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbHVtbiB8IGNvbHVtblZhbHVlOiBtbyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiY29sdW1uIHwgY29sdW1uSWNvbjogbW9cIlxuICAgICAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtjb250cm9sVWldPVwiY29sdW1uLkNhcHRpb24gfCBjb250cm9sVWk6IGxheW91dDk0XCJcbiAgICAgICAgICAgICAgICAoa2V5dXAuY29udHJvbC5lbnRlcik9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXl1cC5lc2MpPVwib25FZGl0Rm9ybVBhbmVsQ2FuY2VsKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLlRhYik9XCJvblRhYktleURvd24oJGV2ZW50LCBpbmRleClcIlxuICAgICAgICAgICAgICAgIFtmb3JtTGF5b3V0U2hvd0xhYmVsXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvYnN1LWNvbHVtbi1yZW5kZXJlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,6 +1,6 @@
1
- import { SortDirection, TableDataProvider } from '@fundamental-ngx/platform';
2
1
  import { merge, of } from 'rxjs';
3
2
  import { filter, map, tap } from 'rxjs/operators';
3
+ import { SortDirection } from 'barsa-novin-ray-core';
4
4
  import * as Constants from '../constants';
5
5
  export class GridMoDataList {
6
6
  constructor(moDataList$, gridSetting$, visibleColumns$, searchTerm$) {
@@ -32,9 +32,8 @@ export class GridMoDataList {
32
32
  return SortDirection.NONE;
33
33
  }
34
34
  }
35
- export class GridDataProvider extends TableDataProvider {
35
+ export class GridDataProvider {
36
36
  constructor(moDataList) {
37
- super();
38
37
  this.items = [];
39
38
  this.totalItems = 0;
40
39
  this.items = moDataList;
@@ -47,31 +46,6 @@ export class GridDataProvider extends TableDataProvider {
47
46
  this.totalItems = this.items.length;
48
47
  return of(this.items).pipe(map((items) => (tableState.searchInput ? search(tableState, items) : items)), map((items) => (tableState.sortBy ? sort(tableState, items) : items)));
49
48
  }
50
- filter({ filterBy }) {
51
- let items = this.items;
52
- filterBy
53
- .filter(({ field }) => !!field)
54
- .forEach((rule) => {
55
- items = items.filter((item) => {
56
- switch (rule.field) {
57
- case 'name':
58
- case 'description':
59
- case 'status':
60
- case 'statusColor':
61
- return filterByString(item, rule);
62
- case 'price.value':
63
- return filterByNumber(item, rule);
64
- case 'verified':
65
- return filterByBoolean(item, rule);
66
- case 'date':
67
- return filterByDate(item, rule, this.dateTimeAdapter);
68
- default:
69
- return false;
70
- }
71
- });
72
- });
73
- return items;
74
- }
75
49
  }
76
50
  const sort = ({ sortBy }, moDataList) => sortEx(sortBy, moDataList);
77
51
  const sortEx = (sortBy, moDataList) => {
@@ -106,117 +80,4 @@ const searchEx = (searchTerm, columns, items) => {
106
80
  .some((value) => value.toLocaleLowerCase().includes(searchText.toLocaleLowerCase()));
107
81
  });
108
82
  };
109
- const filterByString = (item, collectionStringFilter) => {
110
- const filterValue = collectionStringFilter.value && collectionStringFilter.value.toLocaleLowerCase();
111
- const filterValue2 = (collectionStringFilter.value2 && collectionStringFilter.value2.toLocaleLowerCase()) || '';
112
- const itemValue = Constants.getNestedValue(collectionStringFilter.field, item).toLocaleLowerCase();
113
- let result = false;
114
- switch (collectionStringFilter.strategy) {
115
- case 'equalTo':
116
- result = itemValue === filterValue;
117
- break;
118
- case 'greaterThan':
119
- result = itemValue > filterValue;
120
- break;
121
- case 'greaterThanOrEqualTo':
122
- result = itemValue >= filterValue;
123
- break;
124
- case 'lessThan':
125
- result = itemValue < filterValue;
126
- break;
127
- case 'lessThanOrEqualTo':
128
- result = itemValue <= filterValue;
129
- break;
130
- case 'between':
131
- result = itemValue >= filterValue && itemValue <= filterValue2;
132
- break;
133
- case 'beginsWith':
134
- result = itemValue.startsWith(filterValue);
135
- break;
136
- case 'endsWith':
137
- result = itemValue.endsWith(filterValue);
138
- break;
139
- case 'contains':
140
- default:
141
- result = itemValue.includes(filterValue);
142
- }
143
- return collectionStringFilter.exclude ? !result : result;
144
- };
145
- const filterByNumber = (item, collectionNumberFilter) => {
146
- const filterValue = Number.parseFloat(collectionNumberFilter.value);
147
- const filterValue2 = Number.parseFloat(collectionNumberFilter.value2) || 0;
148
- const itemValue = Number.parseFloat(Constants.getNestedValue(collectionNumberFilter.field, item));
149
- let result = false;
150
- switch (collectionNumberFilter.strategy) {
151
- case 'greaterThan':
152
- result = itemValue > filterValue;
153
- break;
154
- case 'greaterThanOrEqualTo':
155
- result = itemValue >= filterValue;
156
- break;
157
- case 'lessThan':
158
- result = itemValue < filterValue;
159
- break;
160
- case 'lessThanOrEqualTo':
161
- result = itemValue <= filterValue;
162
- break;
163
- case 'between':
164
- result = itemValue >= filterValue && itemValue <= filterValue2;
165
- break;
166
- case 'equalTo':
167
- default:
168
- result = itemValue === filterValue;
169
- }
170
- return collectionNumberFilter.exclude ? !result : result;
171
- };
172
- const filterByDate = (item, collectoinDateFilter, adapter) => {
173
- const filterValue = collectoinDateFilter.value;
174
- const filterValue2 = collectoinDateFilter.value2;
175
- const itemValue = Constants.getNestedValue(collectoinDateFilter.field, item);
176
- const diff = adapter.compareDate(itemValue, filterValue);
177
- let result = false;
178
- switch (collectoinDateFilter.strategy) {
179
- case 'after':
180
- result = diff > 0;
181
- break;
182
- case 'onOrAfter':
183
- result = diff >= 0;
184
- break;
185
- case 'before':
186
- result = diff < 0;
187
- break;
188
- case 'beforeOrOn':
189
- result = diff <= 0;
190
- break;
191
- case 'between':
192
- result = adapter.isBetween(itemValue, filterValue, filterValue2);
193
- break;
194
- case 'equalTo':
195
- default:
196
- result = adapter.dateTimesEqual(itemValue, filterValue);
197
- }
198
- return collectoinDateFilter.exclude ? !result : result;
199
- };
200
- const filterByBoolean = (item, collectionBooleanFilter) => {
201
- const filterValue = collectionBooleanFilter.value;
202
- const itemValue = Constants.getNestedValue(collectionBooleanFilter.field, item);
203
- let result = false;
204
- switch (collectionBooleanFilter.strategy) {
205
- case 'equalTo':
206
- default:
207
- result = itemValue === filterValue;
208
- }
209
- return collectionBooleanFilter.exclude ? !result : result;
210
- };
211
- const filterBySelect = (item, collectionSelectFilter) => {
212
- const filterValues = collectionSelectFilter.value;
213
- const itemValue = Constants.getNestedValue(collectionSelectFilter.field, item);
214
- let result = false;
215
- switch (collectionSelectFilter.strategy) {
216
- case 'equalTo':
217
- default:
218
- result = filterValues.includes(itemValue);
219
- }
220
- return !filterValues.length || collectionSelectFilter.exclude ? !result : result;
221
- };
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kYXRhLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbW9kZWxzL2dyaWQtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBT0gsYUFBYSxFQUNiLGlCQUFpQixFQUVwQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2xELE9BQU8sS0FBSyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxjQUFjO0lBT3ZCLFlBQ0ksV0FBOEMsRUFDOUMsWUFBcUMsRUFDckMsZUFBK0MsRUFDL0MsV0FBK0I7UUFFL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQ2QsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3RELFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUN6RSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDckUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxD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Q0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb2xsZWN0aW9uQm9vbGVhbkZpbHRlcixcbiAgICBDb2xsZWN0aW9uRGF0ZUZpbHRlcixcbiAgICBDb2xsZWN0aW9uTnVtYmVyRmlsdGVyLFxuICAgIENvbGxlY3Rpb25TZWxlY3RGaWx0ZXIsXG4gICAgQ29sbGVjdGlvblNvcnQsXG4gICAgQ29sbGVjdGlvblN0cmluZ0ZpbHRlcixcbiAgICBTb3J0RGlyZWN0aW9uLFxuICAgIFRhYmxlRGF0YVByb3ZpZGVyLFxuICAgIFRhYmxlU3RhdGVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBEYXRldGltZUFkYXB0ZXIsIEZkRGF0ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEdyaWRTZXR0aW5nLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBHcmlkTW9EYXRhTGlzdCB7XG4gICAgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcbiAgICByZXN1bHRJdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xuICAgIGdyaWRTZXR0aW5nOiBHcmlkU2V0dGluZztcbiAgICB2aXNpYmxlQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xuICAgIHNlYXJjaFRlcm06IHN0cmluZztcbiAgICBkYXRhJDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBtb0RhdGFMaXN0JDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+LFxuICAgICAgICBncmlkU2V0dGluZyQ6IE9ic2VydmFibGU8R3JpZFNldHRpbmc+LFxuICAgICAgICB2aXNpYmxlQ29sdW1ucyQ6IE9ic2VydmFibGU8UmVwb3J0Vmlld0NvbHVtbltdPixcbiAgICAgICAgc2VhcmNoVGVybSQ6IE9ic2VydmFibGU8c3RyaW5nPlxuICAgICkge1xuICAgICAgICB0aGlzLmRhdGEkID0gbWVyZ2UoXG4gICAgICAgICAgICBtb0RhdGFMaXN0JC5waXBlKHRhcCgoaXRlbXMpID0+ICh0aGlzLml0ZW1zID0gaXRlbXMpKSksXG4gICAgICAgICAgICBncmlkU2V0dGluZyQucGlwZSh0YXAoKGdyaWRTZXR0aW5nKSA9PiAodGhpcy5ncmlkU2V0dGluZyA9IGdyaWRTZXR0aW5nKSkpLFxuICAgICAgICAgICAgc2VhcmNoVGVybSQucGlwZSh0YXAoKHNlYXJjaFRlcm0pID0+ICh0aGlzLnNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtKSkpLFxuICAgICAgICAgICAgdmlzaWJsZUNvbHVtbnMkLnBpcGUodGFwKCh2aXNpYmxlQ29sdW1ucykgPT4gKHRoaXMudmlzaWJsZUNvbHVtbnMgPSB2aXNpYmxlQ29sdW1ucykpKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKCkgPT4gISF0aGlzLml0ZW1zKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybVxuICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEV4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnMubWFwKChjKSA9PiBjLk5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuaXRlbXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYXAoKCkgPT4gKHRoaXMuZ3JpZFNldHRpbmc/LlNvcnRTZXR0aW5nTGlzdCA/IHNvcnRFeCh0aGlzLmdldFNvcnRieSgpLCB0aGlzLml0ZW1zKSA6IHRoaXMuaXRlbXMpKSxcbiAgICAgICAgICAgIC8vIG1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIC8vICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS4kVmlzaWJpbGl0eSA9IHRydWUpKTtcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgICAgICAvLyB9KSxcbiAgICAgICAgICAgIHRhcCgoaXRlbXMpID0+ICh0aGlzLnJlc3VsdEl0ZW1zID0gaXRlbXMpKVxuICAgICAgICAgICAgLy8gdGFwKChpdGVtcykgPT4gY29uc29sZS5sb2coaXRlbXMpKVxuICAgICAgICApO1xuICAgIH1cbiAgICBnZXRTb3J0YnkoKTogQ29sbGVjdGlvblNvcnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRTZXR0aW5nLlNvcnRTZXR0aW5nTGlzdC5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICBmaWVsZDogYy5OYW1lLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmdldFNvcnREaXJlY3Rpb24oYy5Tb3J0RGlyZWN0aW9uKSxcbiAgICAgICAgICAgIGlzTnVtYmVyOiB0aGlzLnZpc2libGVDb2x1bW5zPy5maW5kKChkKSA9PiBkLk5hbWUgPT09IGMuTmFtZSk/LkZpZWxkVHlwZSA9PT0gJ9i52K/YrydcbiAgICAgICAgfSkpLmNvbmNhdCh7IGZpZWxkOiAnJE5ld0lubGluZU1vJywgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uLkRFU0MsIGlzTnVtYmVyOiBmYWxzZSB9KTtcbiAgICB9XG4gICAgZ2V0U29ydERpcmVjdGlvbihkaXJlY3Rpb24pOiBTb3J0RGlyZWN0aW9uIHtcbiAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ0FTQyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNvcnREaXJlY3Rpb24uQVNDO1xuICAgICAgICAgICAgY2FzZSAnREVTQyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNvcnREaXJlY3Rpb24uREVTQztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU29ydERpcmVjdGlvbi5OT05FO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdyaWREYXRhUHJvdmlkZXIgZXh0ZW5kcyBUYWJsZURhdGFQcm92aWRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPiB7XG4gICAgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IFtdO1xuICAgIG1vRGF0YUxpc3QkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XG4gICAgdG90YWxJdGVtcyA9IDA7XG4gICAgbGFzdFN0YXRlOiBUYWJsZVN0YXRlO1xuICAgIGRhdGVUaW1lQWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPEZkRGF0ZT47XG4gICAgY29uc3RydWN0b3IobW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBtb0RhdGFMaXN0O1xuICAgIH1cbiAgICBmZXRjaCh0YWJsZVN0YXRlOiBUYWJsZVN0YXRlKTogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+IHtcbiAgICAgICAgdGhpcy5sYXN0U3RhdGUgPSB0YWJsZVN0YXRlO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRNb0RhdGFMaXN0KHRhYmxlU3RhdGUpO1xuICAgIH1cbiAgICBwcml2YXRlIGdldE1vRGF0YUxpc3QodGFibGVTdGF0ZTogVGFibGVTdGF0ZSk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgICAgIHJldHVybiBvZih0aGlzLml0ZW1zKS5waXBlKFxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gKHRhYmxlU3RhdGUuc2VhcmNoSW5wdXQgPyBzZWFyY2godGFibGVTdGF0ZSwgaXRlbXMpIDogaXRlbXMpKSxcbiAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+ICh0YWJsZVN0YXRlLnNvcnRCeSA/IHNvcnQodGFibGVTdGF0ZSwgaXRlbXMpIDogaXRlbXMpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyKHsgZmlsdGVyQnkgfTogVGFibGVTdGF0ZSk6IE1ldGFvYmplY3REYXRhTW9kZWxbXSB7XG4gICAgICAgIGxldCBpdGVtcyA9IHRoaXMuaXRlbXM7XG5cbiAgICAgICAgZmlsdGVyQnlcbiAgICAgICAgICAgIC5maWx0ZXIoKHsgZmllbGQgfSkgPT4gISFmaWVsZClcbiAgICAgICAgICAgIC5mb3JFYWNoKChydWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChydWxlLmZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICduYW1lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Rlc2NyaXB0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXR1cyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzdGF0dXNDb2xvcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlckJ5U3RyaW5nKGl0ZW0sIHJ1bGUgYXMgQ29sbGVjdGlvblN0cmluZ0ZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmljZS52YWx1ZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlckJ5TnVtYmVyKGl0ZW0sIHJ1bGUgYXMgQ29sbGVjdGlvbk51bWJlckZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd2ZXJpZmllZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlckJ5Qm9vbGVhbihpdGVtLCBydWxlIGFzIENvbGxlY3Rpb25Cb29sZWFuRmlsdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJCeURhdGUoaXRlbSwgcnVsZSBhcyBDb2xsZWN0aW9uQm9vbGVhbkZpbHRlciwgdGhpcy5kYXRlVGltZUFkYXB0ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG59XG5jb25zdCBzb3J0ID0gKHsgc29ydEJ5IH06IFRhYmxlU3RhdGUsIG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9PlxuICAgIHNvcnRFeChzb3J0QnksIG1vRGF0YUxpc3QpO1xuXG5jb25zdCBzb3J0RXggPSAoXG4gICAgc29ydEJ5OiB7IGZpZWxkOiBzdHJpbmcgfCBudWxsOyBkaXJlY3Rpb246IHN0cmluZzsgaXNOdW1iZXI/OiBib29sZWFuIH1bXSxcbiAgICBtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW11cbik6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9PiB7XG4gICAgY29uc3QgaXRlbXMgPSBtb0RhdGFMaXN0LnNsaWNlKCk7XG5cbiAgICBjb25zdCBuZXdTb3J0QnkgPSBzb3J0QnkuZmlsdGVyKCh7IGZpZWxkIH0pID0+ICEhZmllbGQpO1xuXG4gICAgaWYgKG5ld1NvcnRCeS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtcy5zb3J0KFxuICAgICAgICAoYSwgYikgPT5cbiAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgICAgICAgICBuZXdTb3J0QnlcbiAgICAgICAgICAgICAgICAubWFwKCh7IGZpZWxkLCBkaXJlY3Rpb24sIGlzTnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXNjTW9kaWZpZXIgPSBkaXJlY3Rpb24gPT09IFNvcnREaXJlY3Rpb24uQVNDID8gMSA6IC0xO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29uc3RhbnRzLnNvcnQoYSwgYiwgZmllbGQsIGlzTnVtYmVyKSAqIGFzY01vZGlmaWVyO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmZpbmQoKHJlc3VsdCwgaW5kZXgsIGxpc3QpID0+IHJlc3VsdCAhPT0gMCB8fCBpbmRleCA9PT0gbGlzdC5sZW5ndGggLSAxKSFcbiAgICApO1xufTtcbmNvbnN0IHNlYXJjaCA9ICh7IHNlYXJjaElucHV0LCBjb2x1bW5zIH06IFRhYmxlU3RhdGUsIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT4ge1xuICAgIHJldHVybiBzZWFyY2hFeChzZWFyY2hJbnB1dD8udGV4dCwgY29sdW1ucywgaXRlbXMpO1xufTtcbmNvbnN0IHNlYXJjaEV4ID0gKHNlYXJjaFRlcm0sIGNvbHVtbnM6IHN0cmluZ1tdLCBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogTWV0YW9iamVjdERhdGFNb2RlbFtdID0+IHtcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gc2VhcmNoVGVybSB8fCAnJztcbiAgICBjb25zdCBrZXlzVG9TZWFyY2hCeSA9IGNvbHVtbnM7XG5cbiAgICBpZiAoc2VhcmNoVGV4dC50cmltKCkgPT09ICcnIHx8IGtleXNUb1NlYXJjaEJ5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVzRm9yU2VhcmNoID0ga2V5c1RvU2VhcmNoQnkubWFwKChrZXkpID0+IENvbnN0YW50cy5nZXROZXN0ZWRWYWx1ZShrZXksIGl0ZW0pKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlc0ZvclNlYXJjaFxuICAgICAgICAgICAgLmZpbHRlcigodmFsdWUpID0+ICEhdmFsdWUpXG4gICAgICAgICAgICAubWFwKCh2YWx1ZSk6IHN0cmluZyA9PiB2YWx1ZS50b1N0cmluZygpKVxuICAgICAgICAgICAgLnNvbWUoKHZhbHVlKSA9PiB2YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb2NhbGVMb3dlckNhc2UoKSkpO1xuICAgIH0pO1xufTtcbmNvbnN0IGZpbHRlckJ5U3RyaW5nID0gKGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwsIGNvbGxlY3Rpb25TdHJpbmdGaWx0ZXI6IENvbGxlY3Rpb25TdHJpbmdGaWx0ZXIpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGNvbGxlY3Rpb25TdHJpbmdGaWx0ZXIudmFsdWUgJiYgY29sbGVjdGlvblN0cmluZ0ZpbHRlci52YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGZpbHRlclZhbHVlMiA9IChjb2xsZWN0aW9uU3RyaW5nRmlsdGVyLnZhbHVlMiAmJiBjb2xsZWN0aW9uU3RyaW5nRmlsdGVyLnZhbHVlMi50b0xvY2FsZUxvd2VyQ2FzZSgpKSB8fCAnJztcbiAgICBjb25zdCBpdGVtVmFsdWUgPSBDb25zdGFudHMuZ2V0TmVzdGVkVmFsdWUoY29sbGVjdGlvblN0cmluZ0ZpbHRlci5maWVsZCwgaXRlbSkudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGNvbGxlY3Rpb25TdHJpbmdGaWx0ZXIuc3RyYXRlZ3kpIHtcbiAgICAgICAgY2FzZSAnZXF1YWxUbyc6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPT09IGZpbHRlclZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZSA+IGZpbHRlclZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuT3JFcXVhbFRvJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZSA+PSBmaWx0ZXJWYWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdsZXNzVGhhbic6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPCBmaWx0ZXJWYWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdsZXNzVGhhbk9yRXF1YWxUbyc6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPD0gZmlsdGVyVmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYmV0d2Vlbic6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPj0gZmlsdGVyVmFsdWUgJiYgaXRlbVZhbHVlIDw9IGZpbHRlclZhbHVlMjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdiZWdpbnNXaXRoJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZS5zdGFydHNXaXRoKGZpbHRlclZhbHVlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdlbmRzV2l0aCc6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUuZW5kc1dpdGgoZmlsdGVyVmFsdWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2NvbnRhaW5zJzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb25TdHJpbmdGaWx0ZXIuZXhjbHVkZSA/ICFyZXN1bHQgOiByZXN1bHQ7XG59O1xuXG5jb25zdCBmaWx0ZXJCeU51bWJlciA9IChpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsLCBjb2xsZWN0aW9uTnVtYmVyRmlsdGVyOiBDb2xsZWN0aW9uTnVtYmVyRmlsdGVyKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSBOdW1iZXIucGFyc2VGbG9hdChjb2xsZWN0aW9uTnVtYmVyRmlsdGVyLnZhbHVlIGFzIHVua25vd24gYXMgc3RyaW5nKTtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZTIgPSBOdW1iZXIucGFyc2VGbG9hdChjb2xsZWN0aW9uTnVtYmVyRmlsdGVyLnZhbHVlMiBhcyB1bmtub3duIGFzIHN0cmluZykgfHwgMDtcbiAgICBjb25zdCBpdGVtVmFsdWUgPSBOdW1iZXIucGFyc2VGbG9hdChDb25zdGFudHMuZ2V0TmVzdGVkVmFsdWUoY29sbGVjdGlvbk51bWJlckZpbHRlci5maWVsZCwgaXRlbSkpO1xuICAgIGxldCByZXN1bHQgPSBmYWxzZTtcblxuICAgIHN3aXRjaCAoY29sbGVjdGlvbk51bWJlckZpbHRlci5zdHJhdGVneSkge1xuICAgICAgICBjYXNlICdncmVhdGVyVGhhbic6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPiBmaWx0ZXJWYWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdncmVhdGVyVGhhbk9yRXF1YWxUbyc6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPj0gZmlsdGVyVmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbGVzc1RoYW4nOlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlIDwgZmlsdGVyVmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbGVzc1RoYW5PckVxdWFsVG8nOlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlIDw9IGZpbHRlclZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JldHdlZW4nOlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID49IGZpbHRlclZhbHVlICYmIGl0ZW1WYWx1ZSA8PSBmaWx0ZXJWYWx1ZTI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZXF1YWxUbyc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPT09IGZpbHRlclZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBjb2xsZWN0aW9uTnVtYmVyRmlsdGVyLmV4Y2x1ZGUgPyAhcmVzdWx0IDogcmVzdWx0O1xufTtcblxuY29uc3QgZmlsdGVyQnlEYXRlID0gPEQgPSBGZERhdGU+KFxuICAgIGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgY29sbGVjdG9pbkRhdGVGaWx0ZXI6IENvbGxlY3Rpb25EYXRlRmlsdGVyLFxuICAgIGFkYXB0ZXI6IERhdGV0aW1lQWRhcHRlcjxEPlxuKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSBjb2xsZWN0b2luRGF0ZUZpbHRlci52YWx1ZTtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZTIgPSBjb2xsZWN0b2luRGF0ZUZpbHRlci52YWx1ZTI7XG4gICAgY29uc3QgaXRlbVZhbHVlID0gQ29uc3RhbnRzLmdldE5lc3RlZFZhbHVlKGNvbGxlY3RvaW5EYXRlRmlsdGVyLmZpZWxkLCBpdGVtKTtcbiAgICBjb25zdCBkaWZmID0gYWRhcHRlci5jb21wYXJlRGF0ZShpdGVtVmFsdWUsIGZpbHRlclZhbHVlKTtcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGNvbGxlY3RvaW5EYXRlRmlsdGVyLnN0cmF0ZWd5KSB7XG4gICAgICAgIGNhc2UgJ2FmdGVyJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGRpZmYgPiAwO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ29uT3JBZnRlcic6XG4gICAgICAgICAgICByZXN1bHQgPSBkaWZmID49IDA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYmVmb3JlJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGRpZmYgPCAwO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JlZm9yZU9yT24nOlxuICAgICAgICAgICAgcmVzdWx0ID0gZGlmZiA8PSAwO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JldHdlZW4nOlxuICAgICAgICAgICAgcmVzdWx0ID0gYWRhcHRlci5pc0JldHdlZW4oaXRlbVZhbHVlLCBmaWx0ZXJWYWx1ZSwgZmlsdGVyVmFsdWUyKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2VxdWFsVG8nOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmVzdWx0ID0gYWRhcHRlci5kYXRlVGltZXNFcXVhbChpdGVtVmFsdWUsIGZpbHRlclZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29sbGVjdG9pbkRhdGVGaWx0ZXIuZXhjbHVkZSA/ICFyZXN1bHQgOiByZXN1bHQ7XG59O1xuXG5jb25zdCBmaWx0ZXJCeUJvb2xlYW4gPSAoaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCwgY29sbGVjdGlvbkJvb2xlYW5GaWx0ZXI6IENvbGxlY3Rpb25Cb29sZWFuRmlsdGVyKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSBjb2xsZWN0aW9uQm9vbGVhbkZpbHRlci52YWx1ZTtcbiAgICBjb25zdCBpdGVtVmFsdWUgPSBDb25zdGFudHMuZ2V0TmVzdGVkVmFsdWUoY29sbGVjdGlvbkJvb2xlYW5GaWx0ZXIuZmllbGQsIGl0ZW0pO1xuICAgIGxldCByZXN1bHQgPSBmYWxzZTtcblxuICAgIHN3aXRjaCAoY29sbGVjdGlvbkJvb2xlYW5GaWx0ZXIuc3RyYXRlZ3kpIHtcbiAgICAgICAgY2FzZSAnZXF1YWxUbyc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPT09IGZpbHRlclZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBjb2xsZWN0aW9uQm9vbGVhbkZpbHRlci5leGNsdWRlID8gIXJlc3VsdCA6IHJlc3VsdDtcbn07XG5cbmNvbnN0IGZpbHRlckJ5U2VsZWN0ID0gKGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwsIGNvbGxlY3Rpb25TZWxlY3RGaWx0ZXI6IENvbGxlY3Rpb25TZWxlY3RGaWx0ZXIpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZXMgPSBjb2xsZWN0aW9uU2VsZWN0RmlsdGVyLnZhbHVlO1xuICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IENvbnN0YW50cy5nZXROZXN0ZWRWYWx1ZShjb2xsZWN0aW9uU2VsZWN0RmlsdGVyLmZpZWxkLCBpdGVtKTtcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGNvbGxlY3Rpb25TZWxlY3RGaWx0ZXIuc3RyYXRlZ3kpIHtcbiAgICAgICAgY2FzZSAnZXF1YWxUbyc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXN1bHQgPSBmaWx0ZXJWYWx1ZXMuaW5jbHVkZXMoaXRlbVZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gIWZpbHRlclZhbHVlcy5sZW5ndGggfHwgY29sbGVjdGlvblNlbGVjdEZpbHRlci5leGNsdWRlID8gIXJlc3VsdCA6IHJlc3VsdDtcbn07XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kYXRhLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbW9kZWxzL2dyaWQtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBTUgsYUFBYSxFQUNoQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sS0FBSyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxjQUFjO0lBT3ZCLFlBQ0ksV0FBOEMsRUFDOUMsWUFBcUMsRUFDckMsZUFBK0MsRUFDL0MsV0FBK0I7UUFFL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQ2QsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3RELFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUN6RSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDckUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQ3hGLENB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QyxDQUFDLENBQUM7SUFDN0YsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgQ29sbGVjdGlvblNvcnQsXG4gICAgVGFibGVTdGF0ZSxcbiAgICBHcmlkU2V0dGluZyxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXG4gICAgU29ydERpcmVjdGlvblxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgKiBhcyBDb25zdGFudHMgZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIEdyaWRNb0RhdGFMaXN0IHtcbiAgICBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xuICAgIHJlc3VsdEl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XG4gICAgZ3JpZFNldHRpbmc6IEdyaWRTZXR0aW5nO1xuICAgIHZpc2libGVDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XG4gICAgc2VhcmNoVGVybTogc3RyaW5nO1xuICAgIGRhdGEkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIG1vRGF0YUxpc3QkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT4sXG4gICAgICAgIGdyaWRTZXR0aW5nJDogT2JzZXJ2YWJsZTxHcmlkU2V0dGluZz4sXG4gICAgICAgIHZpc2libGVDb2x1bW5zJDogT2JzZXJ2YWJsZTxSZXBvcnRWaWV3Q29sdW1uW10+LFxuICAgICAgICBzZWFyY2hUZXJtJDogT2JzZXJ2YWJsZTxzdHJpbmc+XG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGF0YSQgPSBtZXJnZShcbiAgICAgICAgICAgIG1vRGF0YUxpc3QkLnBpcGUodGFwKChpdGVtcykgPT4gKHRoaXMuaXRlbXMgPSBpdGVtcykpKSxcbiAgICAgICAgICAgIGdyaWRTZXR0aW5nJC5waXBlKHRhcCgoZ3JpZFNldHRpbmcpID0+ICh0aGlzLmdyaWRTZXR0aW5nID0gZ3JpZFNldHRpbmcpKSksXG4gICAgICAgICAgICBzZWFyY2hUZXJtJC5waXBlKHRhcCgoc2VhcmNoVGVybSkgPT4gKHRoaXMuc2VhcmNoVGVybSA9IHNlYXJjaFRlcm0pKSksXG4gICAgICAgICAgICB2aXNpYmxlQ29sdW1ucyQucGlwZSh0YXAoKHZpc2libGVDb2x1bW5zKSA9PiAodGhpcy52aXNpYmxlQ29sdW1ucyA9IHZpc2libGVDb2x1bW5zKSkpXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMuaXRlbXMpLFxuICAgICAgICAgICAgbWFwKCgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtXG4gICAgICAgICAgICAgICAgICAgID8gc2VhcmNoRXgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlQ29sdW1ucy5tYXAoKGMpID0+IGMuTmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbXNcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5pdGVtc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiAodGhpcy5ncmlkU2V0dGluZz8uU29ydFNldHRpbmdMaXN0ID8gc29ydEV4KHRoaXMuZ2V0U29ydGJ5KCksIHRoaXMuaXRlbXMpIDogdGhpcy5pdGVtcykpLFxuICAgICAgICAgICAgLy8gbWFwKChpdGVtcykgPT4ge1xuICAgICAgICAgICAgLy8gICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IChpdGVtLiRWaXNpYmlsaXR5ID0gdHJ1ZSkpO1xuICAgICAgICAgICAgLy8gICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgICAgIC8vIH0pLFxuICAgICAgICAgICAgdGFwKChpdGVtcykgPT4gKHRoaXMucmVzdWx0SXRlbXMgPSBpdGVtcykpXG4gICAgICAgICAgICAvLyB0YXAoKGl0ZW1zKSA9PiBjb25zb2xlLmxvZyhpdGVtcykpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGdldFNvcnRieSgpOiBDb2xsZWN0aW9uU29ydFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZFNldHRpbmcuU29ydFNldHRpbmdMaXN0Lm1hcCgoYykgPT4gKHtcbiAgICAgICAgICAgIGZpZWxkOiBjLk5hbWUsXG4gICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMuZ2V0U29ydERpcmVjdGlvbihjLlNvcnREaXJlY3Rpb24pLFxuICAgICAgICAgICAgaXNOdW1iZXI6IHRoaXMudmlzaWJsZUNvbHVtbnM/LmZpbmQoKGQpID0+IGQuTmFtZSA9PT0gYy5OYW1lKT8uRmllbGRUeXBlID09PSAn2LnYr9ivJ1xuICAgICAgICB9KSkuY29uY2F0KHsgZmllbGQ6ICckTmV3SW5saW5lTW8nLCBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb24uREVTQywgaXNOdW1iZXI6IGZhbHNlIH0pO1xuICAgIH1cbiAgICBnZXRTb3J0RGlyZWN0aW9uKGRpcmVjdGlvbik6IFNvcnREaXJlY3Rpb24ge1xuICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSAnQVNDJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gU29ydERpcmVjdGlvbi5BU0M7XG4gICAgICAgICAgICBjYXNlICdERVNDJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gU29ydERpcmVjdGlvbi5ERVNDO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTb3J0RGlyZWN0aW9uLk5PTkU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR3JpZERhdGFQcm92aWRlciB7XG4gICAgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IFtdO1xuICAgIG1vRGF0YUxpc3QkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XG4gICAgdG90YWxJdGVtcyA9IDA7XG4gICAgbGFzdFN0YXRlOiBUYWJsZVN0YXRlO1xuICAgIGNvbnN0cnVjdG9yKG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSkge1xuICAgICAgICB0aGlzLml0ZW1zID0gbW9EYXRhTGlzdDtcbiAgICB9XG4gICAgZmV0Y2godGFibGVTdGF0ZTogVGFibGVTdGF0ZSk6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPiB7XG4gICAgICAgIHRoaXMubGFzdFN0YXRlID0gdGFibGVTdGF0ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9EYXRhTGlzdCh0YWJsZVN0YXRlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBnZXRNb0RhdGFMaXN0KHRhYmxlU3RhdGU6IFRhYmxlU3RhdGUpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgICAgICByZXR1cm4gb2YodGhpcy5pdGVtcykucGlwZShcbiAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+ICh0YWJsZVN0YXRlLnNlYXJjaElucHV0ID8gc2VhcmNoKHRhYmxlU3RhdGUsIGl0ZW1zKSA6IGl0ZW1zKSksXG4gICAgICAgICAgICBtYXAoKGl0ZW1zKSA9PiAodGFibGVTdGF0ZS5zb3J0QnkgPyBzb3J0KHRhYmxlU3RhdGUsIGl0ZW1zKSA6IGl0ZW1zKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG5jb25zdCBzb3J0ID0gKHsgc29ydEJ5IH06IFRhYmxlU3RhdGUsIG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9PlxuICAgIHNvcnRFeChzb3J0QnksIG1vRGF0YUxpc3QpO1xuXG5jb25zdCBzb3J0RXggPSAoXG4gICAgc29ydEJ5OiB7IGZpZWxkOiBzdHJpbmcgfCBudWxsOyBkaXJlY3Rpb246IHN0cmluZzsgaXNOdW1iZXI/OiBib29sZWFuIH1bXSxcbiAgICBtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW11cbik6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9PiB7XG4gICAgY29uc3QgaXRlbXMgPSBtb0RhdGFMaXN0LnNsaWNlKCk7XG5cbiAgICBjb25zdCBuZXdTb3J0QnkgPSBzb3J0QnkuZmlsdGVyKCh7IGZpZWxkIH0pID0+ICEhZmllbGQpO1xuXG4gICAgaWYgKG5ld1NvcnRCeS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtcy5zb3J0KFxuICAgICAgICAoYSwgYikgPT5cbiAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgICAgICAgICBuZXdTb3J0QnlcbiAgICAgICAgICAgICAgICAubWFwKCh7IGZpZWxkLCBkaXJlY3Rpb24sIGlzTnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXNjTW9kaWZpZXIgPSBkaXJlY3Rpb24gPT09IFNvcnREaXJlY3Rpb24uQVNDID8gMSA6IC0xO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29uc3RhbnRzLnNvcnQoYSwgYiwgZmllbGQsIGlzTnVtYmVyKSAqIGFzY01vZGlmaWVyO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmZpbmQoKHJlc3VsdCwgaW5kZXgsIGxpc3QpID0+IHJlc3VsdCAhPT0gMCB8fCBpbmRleCA9PT0gbGlzdC5sZW5ndGggLSAxKSFcbiAgICApO1xufTtcbmNvbnN0IHNlYXJjaCA9ICh7IHNlYXJjaElucHV0LCBjb2x1bW5zIH06IFRhYmxlU3RhdGUsIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT4ge1xuICAgIHJldHVybiBzZWFyY2hFeChzZWFyY2hJbnB1dD8udGV4dCwgY29sdW1ucywgaXRlbXMpO1xufTtcbmNvbnN0IHNlYXJjaEV4ID0gKHNlYXJjaFRlcm0sIGNvbHVtbnM6IHN0cmluZ1tdLCBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogTWV0YW9iamVjdERhdGFNb2RlbFtdID0+IHtcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gc2VhcmNoVGVybSB8fCAnJztcbiAgICBjb25zdCBrZXlzVG9TZWFyY2hCeSA9IGNvbHVtbnM7XG5cbiAgICBpZiAoc2VhcmNoVGV4dC50cmltKCkgPT09ICcnIHx8IGtleXNUb1NlYXJjaEJ5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVzRm9yU2VhcmNoID0ga2V5c1RvU2VhcmNoQnkubWFwKChrZXkpID0+IENvbnN0YW50cy5nZXROZXN0ZWRWYWx1ZShrZXksIGl0ZW0pKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlc0ZvclNlYXJjaFxuICAgICAgICAgICAgLmZpbHRlcigodmFsdWUpID0+ICEhdmFsdWUpXG4gICAgICAgICAgICAubWFwKCh2YWx1ZSk6IHN0cmluZyA9PiB2YWx1ZS50b1N0cmluZygpKVxuICAgICAgICAgICAgLnNvbWUoKHZhbHVlKSA9PiB2YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb2NhbGVMb3dlckNhc2UoKSkpO1xuICAgIH0pO1xufTtcbiJdfQ==