@seniorsistemas/data-seniorx-core 2.2.0 → 2.3.0

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.
@@ -17,6 +17,7 @@ export class TableCellContentComponent {
17
17
  resolveValue;
18
18
  row;
19
19
  actionsMenuOpen = false;
20
+ actionsMenuId = null;
20
21
  defaultTextOverflow;
21
22
  rowCheckboxId = '';
22
23
  rowLabel = 'item';
@@ -82,7 +83,7 @@ export class TableCellContentComponent {
82
83
  this.toggleActionsMenu.emit({ event, trigger });
83
84
  }
84
85
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableCellContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
85
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableCellContentComponent, isStandalone: true, selector: "sdc-table-cell-content", inputs: { cellConfigs: "cellConfigs", col: "col", resolveValue: "resolveValue", row: "row", actionsMenuOpen: "actionsMenuOpen", defaultTextOverflow: "defaultTextOverflow", rowCheckboxId: "rowCheckboxId", rowLabel: "rowLabel", rowSelected: "rowSelected" }, outputs: { toggleActionsMenu: "toggleActionsMenu", toggleRow: "toggleRow", triggerButtonAction: "triggerButtonAction" }, host: { properties: { "class.sdc-table-cell-content--align-left": "resolvedAlignment === 'left'", "class.sdc-table-cell-content--align-center": "resolvedAlignment === 'center'", "class.sdc-table-cell-content--align-right": "resolvedAlignment === 'right'", "class.sdc-table-cell-content--nowrap": "col?.textOverflow === 'none'" } }, ngImport: i0, template: "<div class=\"sdc-table-content\">\n @if (col.content?.length) {\n <div class=\"sdc-table-multi-content\">\n @for (item of col.content!; track $index) {\n @switch (item.type ?? 'text') {\n @case ('strong') {\n <strong\n [ngStyle]=\"item.style\"\n [class]=\"item.class ?? ''\"\n >{{ cellTextValue(item.field) | translate }}</strong>\n }\n @case ('code') {\n <code [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) }}</code>\n }\n @default {\n <span [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) | translate }}</span>\n }\n }\n }\n </div>\n } @else {\n @switch (col.type ?? 'text') {\n @case ('checkbox-selection') {\n <div class=\"sdc-table-checkbox\">\n <input\n type=\"checkbox\"\n [id]=\"rowCheckboxId\"\n [checked]=\"rowSelected\"\n (change)=\"toggleRow.emit(getCheckedValue($event))\"\n [attr.aria-label]=\"\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n \"\n [attr.aria-checked]=\"rowSelected\"\n />\n <label [attr.for]=\"rowCheckboxId\" class=\"sr-only\">\n {{\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n }}\n </label>\n </div>\n }\n\n @case ('date') {\n <span class=\"sdc-table-text\" [attr.title]=\"ellipsisTitleText(formatDate())\">{{ formatDate() }}</span>\n }\n\n @case ('strong') {\n <span class=\"sdc-table-strong-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n\n @case ('code') {\n <code class=\"sdc-table-code-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue())\">{{ displayText() }}</code>\n }\n\n @case ('currency') {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(formatCurrency())\">{{ formatCurrency() }}</span>\n }\n\n @case ('tag') {\n <div class=\"sdc-table-tags\">\n @for (tagItem of tagItems(); track tagItem.label + '-' + $index) {\n <span\n class=\"sdc-table-tag\"\n [class.sdc-table-tag--enabled]=\"tagItem.tone === 'enabled'\"\n [class.sdc-table-tag--disabled]=\"tagItem.tone === 'disabled'\"\n [ngStyle]=\"tagItem.styles\"\n [attr.title]=\"tagItem.tooltip ? (tagItem.tooltip | translate) : null\"\n >\n @if (tagItem.icon) {\n <sdc-icon-renderer\n class=\"sdc-table-tag__icon\"\n [icon]=\"tagItem.icon\"\n [iconType]=\"tagItem.iconType\"\n [size]=\"tagIconSize\"\n ></sdc-icon-renderer>\n }\n {{ tagItem.label | translate }}\n </span>\n }\n </div>\n }\n\n @case ('button') {\n <div class=\"sdc-table-button\">\n <sdc-button\n class=\"sdc-table-action-button\"\n [size]=\"cellConfigs.button.size ?? 'default'\"\n [priority]=\"cellConfigs.button.priority || 'primary'\"\n [icon]=\"cellConfigs.button.icon\"\n [label]=\"cellConfigs.button.label ?? ''\"\n [disabled]=\"cellConfigs.button.disabled ?? false\"\n [title]=\"cellConfigs.button.tooltip\"\n [attr.size]=\"cellConfigs.button.size\"\n [attr.priority]=\"cellConfigs.button.priority || 'primary'\"\n [attr.severity]=\"cellConfigs.button.priority || 'primary'\"\n [attr.icon]=\"cellConfigs.button.icon\"\n [attr.label]=\"cellConfigs.button.label\"\n [attr.disabled]=\"cellConfigs.button.disabled ? '' : null\"\n [attr.title]=\"cellConfigs.button.tooltip || null\"\n [attr.aria-label]=\"\n (buttonAriaLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.data-key]=\"buttonKey()\"\n (click)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.enter)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.space)=\"$event.preventDefault(); cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n ></sdc-button>\n </div>\n }\n\n @case ('actions') {\n <div\n class=\"sdc-table-actions\"\n [class.sdc-table-actions--open]=\"actionsMenuOpen\"\n >\n <button\n #actionsTrigger\n type=\"button\"\n class=\"sdc-table-actions-trigger\"\n [class.sdc-table-actions-trigger--open]=\"actionsMenuOpen\"\n [attr.aria-label]=\"\n (actionsButtonLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-expanded]=\"actionsMenuOpen\"\n (click)=\"onActionsClick($event, actionsTrigger)\"\n >\n <span class=\"sdc-table-actions-trigger__label\">\n {{ actionsButtonLabel() | translate }}\n </span>\n <i class=\"fas fa-chevron-down sdc-table-actions-trigger__icon\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @case ('icon') {\n @if (iconPresentation(); as iconItem) {\n <span\n class=\"sdc-table-icon\"\n [ngStyle]=\"iconItem.colorStyle\"\n [attr.title]=\"iconItem.tooltip ? (iconItem.tooltip | translate) : null\"\n [attr.aria-label]=\"\n (iconItem.label || iconItem.tooltip)\n ? ((iconItem.label || iconItem.tooltip)! | translate)\n : null\n \"\n >\n @if (iconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"iconItem.icon\"\n [iconType]=\"iconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (iconItem.label) {\n <span class=\"sdc-table-icon__label\">{{ iconItem.label | translate }}</span>\n }\n </span>\n }\n }\n\n @case ('icon-title') {\n @if (titleIconPresentation(); as titleIconItem) {\n <span\n class=\"sdc-table-icon-title\"\n [ngStyle]=\"titleIconItem.colorStyle\"\n [attr.title]=\"titleIconItem.tooltip ? (titleIconItem.tooltip | translate) : null\"\n >\n @if (titleIconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"titleIconItem.icon\"\n [iconType]=\"titleIconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (titleIconItem.label) {\n <span [attr.title]=\"ellipsisTitleText(titleIconItem.label | translate)\">\n {{ titleIconItem.label | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n </span>\n }\n }\n\n @default {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n }\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table-content{display:flex;align-items:center;width:100%;min-width:0}:host(.sdc-table-cell-content--align-left) .sdc-table-content{justify-content:flex-start;text-align:left}:host(.sdc-table-cell-content--align-center) .sdc-table-content{justify-content:center;text-align:center}:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-end;text-align:right}.sdc-table-multi-content{display:flex;flex-direction:column;gap:.25rem;min-width:0;max-width:100%}.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span,.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-table-strong-label{font-weight:500}.sdc-table-code-label{color:var(--sdc-tab-primary)}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}.sdc-table-tag{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;min-width:fit-content;max-width:100%;border-radius:9999px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid currentColor;box-sizing:border-box;font-size:.875rem;padding:.35rem .875rem}.sdc-table-tag__icon{flex:0 0 auto}.sdc-table-tag--enabled{background:#dcfce7;color:#16a34a;border-color:#16a34a}.sdc-table-tag--disabled{background:#fee2e2;color:#ef4444;border-color:#ef4444}.sdc-table-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;min-width:0}.sdc-table-button ::ng-deep sdc-button,.sdc-table-button ::ng-deep button{min-height:unset;min-width:unset;max-width:100%}.sdc-table-action-button{width:100%;max-width:100%;min-width:0}.sdc-table-icon,.sdc-table-icon-title{display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}.sdc-table-icon__label,.sdc-table-icon-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-checkbox input[type=checkbox]{cursor:pointer}.sdc-table-actions{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0}.sdc-table-actions-trigger{appearance:none;border:1px solid #c9ced6;background:#fff;border-radius:999px;min-width:4.875rem;height:2rem;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font:inherit;font-size:.8125rem;color:#374151;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.sdc-table-actions-trigger:hover{background:#f9fafb}.sdc-table-actions-trigger:focus-visible,.sdc-table-actions-trigger--open{outline:none;border-color:#9ca3af;box-shadow:0 0 0 2px #1118270a}.sdc-table-actions-trigger__label{line-height:1;white-space:nowrap}.sdc-table-actions-trigger__icon{font-size:.625rem;line-height:1;color:#6b7280}@media (max-width: 768px){.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.sdc-table-tag{font-size:.8125rem;padding:.35rem .75rem}.sdc-table-actions-trigger{min-width:4.375rem;height:1.75rem;padding:0 .625rem;font-size:.75rem}.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label,.sdc-table-icon__label,.sdc-table-icon-title span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}:host(.sdc-table-cell-content--align-center) .sdc-table-content,:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-start;text-align:left}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: IconRendererComponent, selector: "sdc-icon-renderer", inputs: ["icon", "iconType", "size"] }, { kind: "pipe", type: SdcTruncatePipe, name: "sdcTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
86
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableCellContentComponent, isStandalone: true, selector: "sdc-table-cell-content", inputs: { cellConfigs: "cellConfigs", col: "col", resolveValue: "resolveValue", row: "row", actionsMenuOpen: "actionsMenuOpen", actionsMenuId: "actionsMenuId", defaultTextOverflow: "defaultTextOverflow", rowCheckboxId: "rowCheckboxId", rowLabel: "rowLabel", rowSelected: "rowSelected" }, outputs: { toggleActionsMenu: "toggleActionsMenu", toggleRow: "toggleRow", triggerButtonAction: "triggerButtonAction" }, host: { properties: { "class.sdc-table-cell-content--align-left": "resolvedAlignment === 'left'", "class.sdc-table-cell-content--align-center": "resolvedAlignment === 'center'", "class.sdc-table-cell-content--align-right": "resolvedAlignment === 'right'", "class.sdc-table-cell-content--nowrap": "col?.textOverflow === 'none'" } }, ngImport: i0, template: "<div class=\"sdc-table-content\">\n @if (col.content?.length) {\n <div class=\"sdc-table-multi-content\">\n @for (item of col.content!; track $index) {\n @switch (item.type ?? 'text') {\n @case ('strong') {\n <strong\n [ngStyle]=\"item.style\"\n [class]=\"item.class ?? ''\"\n >{{ cellTextValue(item.field) | translate }}</strong>\n }\n @case ('code') {\n <code [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) }}</code>\n }\n @default {\n <span [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) | translate }}</span>\n }\n }\n }\n </div>\n } @else {\n @switch (col.type ?? 'text') {\n @case ('checkbox-selection') {\n <div class=\"sdc-table-checkbox\">\n <input\n type=\"checkbox\"\n [id]=\"rowCheckboxId\"\n [checked]=\"rowSelected\"\n (change)=\"toggleRow.emit(getCheckedValue($event))\"\n [attr.aria-label]=\"\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n \"\n [attr.aria-checked]=\"rowSelected\"\n />\n <label [attr.for]=\"rowCheckboxId\" class=\"sr-only\">\n {{\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n }}\n </label>\n </div>\n }\n\n @case ('date') {\n <span class=\"sdc-table-text\" [attr.title]=\"ellipsisTitleText(formatDate())\">{{ formatDate() }}</span>\n }\n\n @case ('strong') {\n <span class=\"sdc-table-strong-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n\n @case ('code') {\n <code class=\"sdc-table-code-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue())\">{{ displayText() }}</code>\n }\n\n @case ('currency') {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(formatCurrency())\">{{ formatCurrency() }}</span>\n }\n\n @case ('tag') {\n <div class=\"sdc-table-tags\">\n @for (tagItem of tagItems(); track tagItem.label + '-' + $index) {\n <span\n class=\"sdc-table-tag\"\n [class.sdc-table-tag--enabled]=\"tagItem.tone === 'enabled'\"\n [class.sdc-table-tag--disabled]=\"tagItem.tone === 'disabled'\"\n [ngStyle]=\"tagItem.styles\"\n [attr.title]=\"tagItem.tooltip ? (tagItem.tooltip | translate) : null\"\n >\n @if (tagItem.icon) {\n <sdc-icon-renderer\n class=\"sdc-table-tag__icon\"\n [icon]=\"tagItem.icon\"\n [iconType]=\"tagItem.iconType\"\n [size]=\"tagIconSize\"\n ></sdc-icon-renderer>\n }\n {{ tagItem.label | translate }}\n </span>\n }\n </div>\n }\n\n @case ('button') {\n <div class=\"sdc-table-button\">\n <sdc-button\n class=\"sdc-table-action-button\"\n [size]=\"cellConfigs.button.size ?? 'default'\"\n [priority]=\"cellConfigs.button.priority || 'primary'\"\n [icon]=\"cellConfigs.button.icon\"\n [label]=\"cellConfigs.button.label ?? ''\"\n [disabled]=\"cellConfigs.button.disabled ?? false\"\n [title]=\"cellConfigs.button.tooltip\"\n [attr.size]=\"cellConfigs.button.size\"\n [attr.priority]=\"cellConfigs.button.priority || 'primary'\"\n [attr.severity]=\"cellConfigs.button.priority || 'primary'\"\n [attr.icon]=\"cellConfigs.button.icon\"\n [attr.label]=\"cellConfigs.button.label\"\n [attr.disabled]=\"cellConfigs.button.disabled ? '' : null\"\n [attr.title]=\"cellConfigs.button.tooltip || null\"\n [attr.aria-label]=\"\n (buttonAriaLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.data-key]=\"buttonKey()\"\n (click)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.enter)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.space)=\"$event.preventDefault(); cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n ></sdc-button>\n </div>\n }\n\n @case ('actions') {\n <div\n class=\"sdc-table-actions\"\n [class.sdc-table-actions--open]=\"actionsMenuOpen\"\n >\n <button\n #actionsTrigger\n type=\"button\"\n class=\"sdc-table-actions-trigger\"\n [class.sdc-table-actions-trigger--open]=\"actionsMenuOpen\"\n [attr.aria-label]=\"\n (actionsButtonLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-controls]=\"actionsMenuOpen ? actionsMenuId : null\"\n [attr.aria-expanded]=\"actionsMenuOpen\"\n (click)=\"onActionsClick($event, actionsTrigger)\"\n >\n <span class=\"sdc-table-actions-trigger__label\">\n {{ actionsButtonLabel() | translate }}\n </span>\n <i class=\"fas fa-chevron-down sdc-table-actions-trigger__icon\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @case ('icon') {\n @if (iconPresentation(); as iconItem) {\n <span\n class=\"sdc-table-icon\"\n [ngStyle]=\"iconItem.colorStyle\"\n [attr.title]=\"iconItem.tooltip ? (iconItem.tooltip | translate) : null\"\n [attr.aria-label]=\"\n (iconItem.label || iconItem.tooltip)\n ? ((iconItem.label || iconItem.tooltip)! | translate)\n : null\n \"\n >\n @if (iconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"iconItem.icon\"\n [iconType]=\"iconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (iconItem.label) {\n <span class=\"sdc-table-icon__label\">{{ iconItem.label | translate }}</span>\n }\n </span>\n }\n }\n\n @case ('icon-title') {\n @if (titleIconPresentation(); as titleIconItem) {\n <span\n class=\"sdc-table-icon-title\"\n [ngStyle]=\"titleIconItem.colorStyle\"\n [attr.title]=\"titleIconItem.tooltip ? (titleIconItem.tooltip | translate) : null\"\n >\n @if (titleIconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"titleIconItem.icon\"\n [iconType]=\"titleIconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (titleIconItem.label) {\n <span [attr.title]=\"ellipsisTitleText(titleIconItem.label | translate)\">\n {{ titleIconItem.label | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n </span>\n }\n }\n\n @default {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n }\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table-content{display:flex;align-items:center;width:100%;min-width:0}:host(.sdc-table-cell-content--align-left) .sdc-table-content{justify-content:flex-start;text-align:left}:host(.sdc-table-cell-content--align-center) .sdc-table-content{justify-content:center;text-align:center}:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-end;text-align:right}.sdc-table-multi-content{display:flex;flex-direction:column;gap:.25rem;min-width:0;max-width:100%}.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span,.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-table-strong-label{font-weight:500}.sdc-table-code-label{color:var(--sdc-tab-primary)}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}.sdc-table-tag{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;min-width:fit-content;max-width:100%;border-radius:9999px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid currentColor;box-sizing:border-box;font-size:.875rem;padding:.35rem .875rem}.sdc-table-tag__icon{flex:0 0 auto}.sdc-table-tag--enabled{background:#dcfce7;color:#16a34a;border-color:#16a34a}.sdc-table-tag--disabled{background:#fee2e2;color:#ef4444;border-color:#ef4444}.sdc-table-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;min-width:0}.sdc-table-button ::ng-deep sdc-button,.sdc-table-button ::ng-deep button{min-height:unset;min-width:unset;max-width:100%}.sdc-table-action-button{width:100%;max-width:100%;min-width:0}.sdc-table-icon,.sdc-table-icon-title{display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}.sdc-table-icon__label,.sdc-table-icon-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-checkbox input[type=checkbox]{cursor:pointer}.sdc-table-actions{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0}.sdc-table-actions-trigger{appearance:none;border:1px solid #c9ced6;background:#fff;border-radius:999px;min-width:4.875rem;height:2rem;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font:inherit;font-size:.8125rem;color:#374151;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.sdc-table-actions-trigger:hover{background:#f9fafb}.sdc-table-actions-trigger:focus-visible,.sdc-table-actions-trigger--open{outline:none;border-color:#9ca3af;box-shadow:0 0 0 2px #1118270a}.sdc-table-actions-trigger__label{line-height:1;white-space:nowrap}.sdc-table-actions-trigger__icon{font-size:.625rem;line-height:1;color:#6b7280}@media (max-width: 768px){.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.sdc-table-tag{font-size:.8125rem;padding:.35rem .75rem}.sdc-table-actions-trigger{min-width:4.375rem;height:1.75rem;padding:0 .625rem;font-size:.75rem}.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label,.sdc-table-icon__label,.sdc-table-icon-title span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}:host(.sdc-table-cell-content--align-center) .sdc-table-content,:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-start;text-align:left}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: IconRendererComponent, selector: "sdc-icon-renderer", inputs: ["icon", "iconType", "size"] }, { kind: "pipe", type: SdcTruncatePipe, name: "sdcTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
86
87
  }
87
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableCellContentComponent, decorators: [{
88
89
  type: Component,
@@ -91,7 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
91
92
  '[class.sdc-table-cell-content--align-center]': "resolvedAlignment === 'center'",
92
93
  '[class.sdc-table-cell-content--align-right]': "resolvedAlignment === 'right'",
93
94
  '[class.sdc-table-cell-content--nowrap]': "col?.textOverflow === 'none'"
94
- }, template: "<div class=\"sdc-table-content\">\n @if (col.content?.length) {\n <div class=\"sdc-table-multi-content\">\n @for (item of col.content!; track $index) {\n @switch (item.type ?? 'text') {\n @case ('strong') {\n <strong\n [ngStyle]=\"item.style\"\n [class]=\"item.class ?? ''\"\n >{{ cellTextValue(item.field) | translate }}</strong>\n }\n @case ('code') {\n <code [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) }}</code>\n }\n @default {\n <span [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) | translate }}</span>\n }\n }\n }\n </div>\n } @else {\n @switch (col.type ?? 'text') {\n @case ('checkbox-selection') {\n <div class=\"sdc-table-checkbox\">\n <input\n type=\"checkbox\"\n [id]=\"rowCheckboxId\"\n [checked]=\"rowSelected\"\n (change)=\"toggleRow.emit(getCheckedValue($event))\"\n [attr.aria-label]=\"\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n \"\n [attr.aria-checked]=\"rowSelected\"\n />\n <label [attr.for]=\"rowCheckboxId\" class=\"sr-only\">\n {{\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n }}\n </label>\n </div>\n }\n\n @case ('date') {\n <span class=\"sdc-table-text\" [attr.title]=\"ellipsisTitleText(formatDate())\">{{ formatDate() }}</span>\n }\n\n @case ('strong') {\n <span class=\"sdc-table-strong-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n\n @case ('code') {\n <code class=\"sdc-table-code-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue())\">{{ displayText() }}</code>\n }\n\n @case ('currency') {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(formatCurrency())\">{{ formatCurrency() }}</span>\n }\n\n @case ('tag') {\n <div class=\"sdc-table-tags\">\n @for (tagItem of tagItems(); track tagItem.label + '-' + $index) {\n <span\n class=\"sdc-table-tag\"\n [class.sdc-table-tag--enabled]=\"tagItem.tone === 'enabled'\"\n [class.sdc-table-tag--disabled]=\"tagItem.tone === 'disabled'\"\n [ngStyle]=\"tagItem.styles\"\n [attr.title]=\"tagItem.tooltip ? (tagItem.tooltip | translate) : null\"\n >\n @if (tagItem.icon) {\n <sdc-icon-renderer\n class=\"sdc-table-tag__icon\"\n [icon]=\"tagItem.icon\"\n [iconType]=\"tagItem.iconType\"\n [size]=\"tagIconSize\"\n ></sdc-icon-renderer>\n }\n {{ tagItem.label | translate }}\n </span>\n }\n </div>\n }\n\n @case ('button') {\n <div class=\"sdc-table-button\">\n <sdc-button\n class=\"sdc-table-action-button\"\n [size]=\"cellConfigs.button.size ?? 'default'\"\n [priority]=\"cellConfigs.button.priority || 'primary'\"\n [icon]=\"cellConfigs.button.icon\"\n [label]=\"cellConfigs.button.label ?? ''\"\n [disabled]=\"cellConfigs.button.disabled ?? false\"\n [title]=\"cellConfigs.button.tooltip\"\n [attr.size]=\"cellConfigs.button.size\"\n [attr.priority]=\"cellConfigs.button.priority || 'primary'\"\n [attr.severity]=\"cellConfigs.button.priority || 'primary'\"\n [attr.icon]=\"cellConfigs.button.icon\"\n [attr.label]=\"cellConfigs.button.label\"\n [attr.disabled]=\"cellConfigs.button.disabled ? '' : null\"\n [attr.title]=\"cellConfigs.button.tooltip || null\"\n [attr.aria-label]=\"\n (buttonAriaLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.data-key]=\"buttonKey()\"\n (click)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.enter)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.space)=\"$event.preventDefault(); cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n ></sdc-button>\n </div>\n }\n\n @case ('actions') {\n <div\n class=\"sdc-table-actions\"\n [class.sdc-table-actions--open]=\"actionsMenuOpen\"\n >\n <button\n #actionsTrigger\n type=\"button\"\n class=\"sdc-table-actions-trigger\"\n [class.sdc-table-actions-trigger--open]=\"actionsMenuOpen\"\n [attr.aria-label]=\"\n (actionsButtonLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-expanded]=\"actionsMenuOpen\"\n (click)=\"onActionsClick($event, actionsTrigger)\"\n >\n <span class=\"sdc-table-actions-trigger__label\">\n {{ actionsButtonLabel() | translate }}\n </span>\n <i class=\"fas fa-chevron-down sdc-table-actions-trigger__icon\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @case ('icon') {\n @if (iconPresentation(); as iconItem) {\n <span\n class=\"sdc-table-icon\"\n [ngStyle]=\"iconItem.colorStyle\"\n [attr.title]=\"iconItem.tooltip ? (iconItem.tooltip | translate) : null\"\n [attr.aria-label]=\"\n (iconItem.label || iconItem.tooltip)\n ? ((iconItem.label || iconItem.tooltip)! | translate)\n : null\n \"\n >\n @if (iconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"iconItem.icon\"\n [iconType]=\"iconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (iconItem.label) {\n <span class=\"sdc-table-icon__label\">{{ iconItem.label | translate }}</span>\n }\n </span>\n }\n }\n\n @case ('icon-title') {\n @if (titleIconPresentation(); as titleIconItem) {\n <span\n class=\"sdc-table-icon-title\"\n [ngStyle]=\"titleIconItem.colorStyle\"\n [attr.title]=\"titleIconItem.tooltip ? (titleIconItem.tooltip | translate) : null\"\n >\n @if (titleIconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"titleIconItem.icon\"\n [iconType]=\"titleIconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (titleIconItem.label) {\n <span [attr.title]=\"ellipsisTitleText(titleIconItem.label | translate)\">\n {{ titleIconItem.label | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n </span>\n }\n }\n\n @default {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n }\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table-content{display:flex;align-items:center;width:100%;min-width:0}:host(.sdc-table-cell-content--align-left) .sdc-table-content{justify-content:flex-start;text-align:left}:host(.sdc-table-cell-content--align-center) .sdc-table-content{justify-content:center;text-align:center}:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-end;text-align:right}.sdc-table-multi-content{display:flex;flex-direction:column;gap:.25rem;min-width:0;max-width:100%}.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span,.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-table-strong-label{font-weight:500}.sdc-table-code-label{color:var(--sdc-tab-primary)}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}.sdc-table-tag{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;min-width:fit-content;max-width:100%;border-radius:9999px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid currentColor;box-sizing:border-box;font-size:.875rem;padding:.35rem .875rem}.sdc-table-tag__icon{flex:0 0 auto}.sdc-table-tag--enabled{background:#dcfce7;color:#16a34a;border-color:#16a34a}.sdc-table-tag--disabled{background:#fee2e2;color:#ef4444;border-color:#ef4444}.sdc-table-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;min-width:0}.sdc-table-button ::ng-deep sdc-button,.sdc-table-button ::ng-deep button{min-height:unset;min-width:unset;max-width:100%}.sdc-table-action-button{width:100%;max-width:100%;min-width:0}.sdc-table-icon,.sdc-table-icon-title{display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}.sdc-table-icon__label,.sdc-table-icon-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-checkbox input[type=checkbox]{cursor:pointer}.sdc-table-actions{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0}.sdc-table-actions-trigger{appearance:none;border:1px solid #c9ced6;background:#fff;border-radius:999px;min-width:4.875rem;height:2rem;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font:inherit;font-size:.8125rem;color:#374151;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.sdc-table-actions-trigger:hover{background:#f9fafb}.sdc-table-actions-trigger:focus-visible,.sdc-table-actions-trigger--open{outline:none;border-color:#9ca3af;box-shadow:0 0 0 2px #1118270a}.sdc-table-actions-trigger__label{line-height:1;white-space:nowrap}.sdc-table-actions-trigger__icon{font-size:.625rem;line-height:1;color:#6b7280}@media (max-width: 768px){.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.sdc-table-tag{font-size:.8125rem;padding:.35rem .75rem}.sdc-table-actions-trigger{min-width:4.375rem;height:1.75rem;padding:0 .625rem;font-size:.75rem}.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label,.sdc-table-icon__label,.sdc-table-icon-title span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}:host(.sdc-table-cell-content--align-center) .sdc-table-content,:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-start;text-align:left}}\n"] }]
95
+ }, template: "<div class=\"sdc-table-content\">\n @if (col.content?.length) {\n <div class=\"sdc-table-multi-content\">\n @for (item of col.content!; track $index) {\n @switch (item.type ?? 'text') {\n @case ('strong') {\n <strong\n [ngStyle]=\"item.style\"\n [class]=\"item.class ?? ''\"\n >{{ cellTextValue(item.field) | translate }}</strong>\n }\n @case ('code') {\n <code [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) }}</code>\n }\n @default {\n <span [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) | translate }}</span>\n }\n }\n }\n </div>\n } @else {\n @switch (col.type ?? 'text') {\n @case ('checkbox-selection') {\n <div class=\"sdc-table-checkbox\">\n <input\n type=\"checkbox\"\n [id]=\"rowCheckboxId\"\n [checked]=\"rowSelected\"\n (change)=\"toggleRow.emit(getCheckedValue($event))\"\n [attr.aria-label]=\"\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n \"\n [attr.aria-checked]=\"rowSelected\"\n />\n <label [attr.for]=\"rowCheckboxId\" class=\"sr-only\">\n {{\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n }}\n </label>\n </div>\n }\n\n @case ('date') {\n <span class=\"sdc-table-text\" [attr.title]=\"ellipsisTitleText(formatDate())\">{{ formatDate() }}</span>\n }\n\n @case ('strong') {\n <span class=\"sdc-table-strong-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n\n @case ('code') {\n <code class=\"sdc-table-code-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue())\">{{ displayText() }}</code>\n }\n\n @case ('currency') {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(formatCurrency())\">{{ formatCurrency() }}</span>\n }\n\n @case ('tag') {\n <div class=\"sdc-table-tags\">\n @for (tagItem of tagItems(); track tagItem.label + '-' + $index) {\n <span\n class=\"sdc-table-tag\"\n [class.sdc-table-tag--enabled]=\"tagItem.tone === 'enabled'\"\n [class.sdc-table-tag--disabled]=\"tagItem.tone === 'disabled'\"\n [ngStyle]=\"tagItem.styles\"\n [attr.title]=\"tagItem.tooltip ? (tagItem.tooltip | translate) : null\"\n >\n @if (tagItem.icon) {\n <sdc-icon-renderer\n class=\"sdc-table-tag__icon\"\n [icon]=\"tagItem.icon\"\n [iconType]=\"tagItem.iconType\"\n [size]=\"tagIconSize\"\n ></sdc-icon-renderer>\n }\n {{ tagItem.label | translate }}\n </span>\n }\n </div>\n }\n\n @case ('button') {\n <div class=\"sdc-table-button\">\n <sdc-button\n class=\"sdc-table-action-button\"\n [size]=\"cellConfigs.button.size ?? 'default'\"\n [priority]=\"cellConfigs.button.priority || 'primary'\"\n [icon]=\"cellConfigs.button.icon\"\n [label]=\"cellConfigs.button.label ?? ''\"\n [disabled]=\"cellConfigs.button.disabled ?? false\"\n [title]=\"cellConfigs.button.tooltip\"\n [attr.size]=\"cellConfigs.button.size\"\n [attr.priority]=\"cellConfigs.button.priority || 'primary'\"\n [attr.severity]=\"cellConfigs.button.priority || 'primary'\"\n [attr.icon]=\"cellConfigs.button.icon\"\n [attr.label]=\"cellConfigs.button.label\"\n [attr.disabled]=\"cellConfigs.button.disabled ? '' : null\"\n [attr.title]=\"cellConfigs.button.tooltip || null\"\n [attr.aria-label]=\"\n (buttonAriaLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.data-key]=\"buttonKey()\"\n (click)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.enter)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.space)=\"$event.preventDefault(); cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n ></sdc-button>\n </div>\n }\n\n @case ('actions') {\n <div\n class=\"sdc-table-actions\"\n [class.sdc-table-actions--open]=\"actionsMenuOpen\"\n >\n <button\n #actionsTrigger\n type=\"button\"\n class=\"sdc-table-actions-trigger\"\n [class.sdc-table-actions-trigger--open]=\"actionsMenuOpen\"\n [attr.aria-label]=\"\n (actionsButtonLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-controls]=\"actionsMenuOpen ? actionsMenuId : null\"\n [attr.aria-expanded]=\"actionsMenuOpen\"\n (click)=\"onActionsClick($event, actionsTrigger)\"\n >\n <span class=\"sdc-table-actions-trigger__label\">\n {{ actionsButtonLabel() | translate }}\n </span>\n <i class=\"fas fa-chevron-down sdc-table-actions-trigger__icon\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @case ('icon') {\n @if (iconPresentation(); as iconItem) {\n <span\n class=\"sdc-table-icon\"\n [ngStyle]=\"iconItem.colorStyle\"\n [attr.title]=\"iconItem.tooltip ? (iconItem.tooltip | translate) : null\"\n [attr.aria-label]=\"\n (iconItem.label || iconItem.tooltip)\n ? ((iconItem.label || iconItem.tooltip)! | translate)\n : null\n \"\n >\n @if (iconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"iconItem.icon\"\n [iconType]=\"iconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (iconItem.label) {\n <span class=\"sdc-table-icon__label\">{{ iconItem.label | translate }}</span>\n }\n </span>\n }\n }\n\n @case ('icon-title') {\n @if (titleIconPresentation(); as titleIconItem) {\n <span\n class=\"sdc-table-icon-title\"\n [ngStyle]=\"titleIconItem.colorStyle\"\n [attr.title]=\"titleIconItem.tooltip ? (titleIconItem.tooltip | translate) : null\"\n >\n @if (titleIconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"titleIconItem.icon\"\n [iconType]=\"titleIconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (titleIconItem.label) {\n <span [attr.title]=\"ellipsisTitleText(titleIconItem.label | translate)\">\n {{ titleIconItem.label | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n </span>\n }\n }\n\n @default {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n }\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table-content{display:flex;align-items:center;width:100%;min-width:0}:host(.sdc-table-cell-content--align-left) .sdc-table-content{justify-content:flex-start;text-align:left}:host(.sdc-table-cell-content--align-center) .sdc-table-content{justify-content:center;text-align:center}:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-end;text-align:right}.sdc-table-multi-content{display:flex;flex-direction:column;gap:.25rem;min-width:0;max-width:100%}.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span,.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-table-strong-label{font-weight:500}.sdc-table-code-label{color:var(--sdc-tab-primary)}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}.sdc-table-tag{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;min-width:fit-content;max-width:100%;border-radius:9999px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid currentColor;box-sizing:border-box;font-size:.875rem;padding:.35rem .875rem}.sdc-table-tag__icon{flex:0 0 auto}.sdc-table-tag--enabled{background:#dcfce7;color:#16a34a;border-color:#16a34a}.sdc-table-tag--disabled{background:#fee2e2;color:#ef4444;border-color:#ef4444}.sdc-table-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;min-width:0}.sdc-table-button ::ng-deep sdc-button,.sdc-table-button ::ng-deep button{min-height:unset;min-width:unset;max-width:100%}.sdc-table-action-button{width:100%;max-width:100%;min-width:0}.sdc-table-icon,.sdc-table-icon-title{display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}.sdc-table-icon__label,.sdc-table-icon-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-checkbox input[type=checkbox]{cursor:pointer}.sdc-table-actions{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0}.sdc-table-actions-trigger{appearance:none;border:1px solid #c9ced6;background:#fff;border-radius:999px;min-width:4.875rem;height:2rem;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font:inherit;font-size:.8125rem;color:#374151;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.sdc-table-actions-trigger:hover{background:#f9fafb}.sdc-table-actions-trigger:focus-visible,.sdc-table-actions-trigger--open{outline:none;border-color:#9ca3af;box-shadow:0 0 0 2px #1118270a}.sdc-table-actions-trigger__label{line-height:1;white-space:nowrap}.sdc-table-actions-trigger__icon{font-size:.625rem;line-height:1;color:#6b7280}@media (max-width: 768px){.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.sdc-table-tag{font-size:.8125rem;padding:.35rem .75rem}.sdc-table-actions-trigger{min-width:4.375rem;height:1.75rem;padding:0 .625rem;font-size:.75rem}.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label,.sdc-table-icon__label,.sdc-table-icon-title span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}:host(.sdc-table-cell-content--align-center) .sdc-table-content,:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-start;text-align:left}}\n"] }]
95
96
  }], propDecorators: { cellConfigs: [{
96
97
  type: Input,
97
98
  args: [{ required: true }]
@@ -106,6 +107,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
106
107
  args: [{ required: true }]
107
108
  }], actionsMenuOpen: [{
108
109
  type: Input
110
+ }], actionsMenuId: [{
111
+ type: Input
109
112
  }], defaultTextOverflow: [{
110
113
  type: Input
111
114
  }], rowCheckboxId: [{
@@ -121,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
121
124
  }], triggerButtonAction: [{
122
125
  type: Output
123
126
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90YWJsZS9jb21wb25lbnRzL3RhYmxlLWNlbGwtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IscUNBQXFDLEVBQ3RDLE1BQU0scUNBQXFDLENBQUM7QUFPN0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2pCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQiw0QkFBNEIsRUFDNUIsb0JBQW9CLEVBQ3BCLGlDQUFpQyxFQUNsQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7Ozs7QUFnQnZHLE1BQU0sT0FBTyx5QkFBeUI7SUFDVCxXQUFXLENBQXlCO0lBQ3BDLEdB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QUFlLDRGQUFFLGVBQWUsOFNBQUUscUJBQXFCLCtGQUFFLGVBQWU7OzRGQVdyRix5QkFBeUI7a0JBZHJDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxtQkFHaEYsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSiw0Q0FBNEMsRUFBRSw4QkFBOEI7d0JBQzVFLDhDQUE4QyxFQUFFLGdDQUFnQzt3QkFDaEYsNkNBQTZDLEVBQUUsK0JBQStCO3dCQUM5RSx3Q0FBd0MsRUFBRSw4QkFBOEI7cUJBQ3pFOzhCQUcwQixXQUFXO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxHQUFHO3NCQUE3QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxZQUFZO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxHQUFHO3NCQUE3QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaEIsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIFRBQkxFX0lDT05fUkVOREVSX1NJWkVfUFgsXG4gIFRBQkxFX1RBR19JQ09OX1JFTkRFUl9TSVpFX1BYLFxuICBUQUJMRV9URVhUX09WRVJGTE9XX0RFRkFVTFRfTUFYX0NIQVJTXG59IGZyb20gJy4uLy4uLy4uL2NvcmUvY29uc3RhbnRzL3RhYmxlLmNvbnN0JztcbmltcG9ydCB0eXBlIHtcbiAgUm93QmFzZSxcbiAgVGFibGVDZWxsQ29uZmlnTWFwLFxuICBUYWJsZUNvbHVtblxufSBmcm9tICcuLi8uLi8uLi9jb3JlL3R5cGVzL3RhYmxlLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBUYWJsZVRleHRPdmVyZmxvdyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHlwZXMvdGFibGUtY29sdW1uLnR5cGUnO1xuaW1wb3J0IHsgbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQgfSBmcm9tICcuLi91dGlscy90YWJsZS1sYXlvdXQudXRpbCc7XG5pbXBvcnQge1xuICBmb3JtYXRUYWJsZUN1cnJlbmN5LFxuICBmb3JtYXRUYWJsZURhdGUsXG4gIHRvVGFibGVUZXh0VmFsdWVcbn0gZnJvbSAnLi4vdXRpbHMvdGFibGUtZGF0YS51dGlsJztcbmltcG9ydCB7XG4gIHJlc29sdmVUYWJsZUJ1dHRvbktleSxcbiAgcmVzb2x2ZVRhYmxlSWNvblByZXNlbnRhdGlvbixcbiAgcmVzb2x2ZVRhYmxlVGFnSXRlbXMsXG4gIHJlc29sdmVUYWJsZVRpdGxlSWNvblByZXNlbnRhdGlvblxufSBmcm9tICcuLi91dGlscy90YWJsZS12aXN1YWwudXRpbCc7XG5pbXBvcnQgeyBTZGNUcnVuY2F0ZVBpcGUgfSBmcm9tICcuLi91dGlscy90YWJsZS10cnVuY2F0ZS5waXBlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEljb25SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvY29tcG9uZW50cy9pY29uLXJlbmRlcmVyL2ljb24tcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXRhYmxlLWNlbGwtY29udGVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQnV0dG9uQ29tcG9uZW50LCBJY29uUmVuZGVyZXJDb21wb25lbnQsIFNkY1RydW5jYXRlUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jZWxsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFibGUtY2VsbC1jb250ZW50LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnNkYy10YWJsZS1jZWxsLWNvbnRlbnQtLWFsaWduLWxlZnRdJzogXCJyZXNvbHZlZEFsaWdubWVudCA9PT0gJ2xlZnQnXCIsXG4gICAgJ1tjbGFzcy5zZGMtdGFibGUtY2VsbC1jb250ZW50LS1hbGlnbi1jZW50ZXJdJzogXCJyZXNvbHZlZEFsaWdubWVudCA9PT0gJ2NlbnRlcidcIixcbiAgICAnW2NsYXNzLnNkYy10YWJsZS1jZWxsLWNvbnRlbnQtLWFsaWduLXJpZ2h0XSc6IFwicmVzb2x2ZWRBbGlnbm1lbnQgPT09ICdyaWdodCdcIixcbiAgICAnW2NsYXNzLnNkYy10YWJsZS1jZWxsLWNvbnRlbnQtLW5vd3JhcF0nOiBcImNvbD8udGV4dE92ZXJmbG93ID09PSAnbm9uZSdcIlxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ2VsbENvbnRlbnRDb21wb25lbnQ8VCBleHRlbmRzIFJvd0Jhc2UgPSBSb3dCYXNlPiB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNlbGxDb25maWdzITogVGFibGVDZWxsQ29uZmlnTWFwPFQ+O1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2whOiBUYWJsZUNvbHVtbjxUPjtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcmVzb2x2ZVZhbHVlITogKHJvdzogVCwgZmllbGQ/OiBzdHJpbmcpID0+IHVua25vd247XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHJvdyE6IFQ7XG5cbiAgQElucHV0KCkgYWN0aW9uc01lbnVPcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlZmF1bHRUZXh0T3ZlcmZsb3c/OiBUYWJsZVRleHRPdmVyZmxvdztcbiAgQElucHV0KCkgcm93Q2hlY2tib3hJZCA9ICcnO1xuICBASW5wdXQoKSByb3dMYWJlbCA9ICdpdGVtJztcbiAgQElucHV0KCkgcm93U2VsZWN0ZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgdG9nZ2xlQWN0aW9uc01lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnQ6IEV2ZW50OyB0cmlnZ2VyOiBIVE1MRWxlbWVudCB9PigpO1xuICBAT3V0cHV0KCkgdG9nZ2xlUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgdHJpZ2dlckJ1dHRvbkFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvblNpemUgPSBUQUJMRV9JQ09OX1JFTkRFUl9TSVpFX1BYO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFnSWNvblNpemUgPSBUQUJMRV9UQUdfSUNPTl9SRU5ERVJfU0laRV9QWDtcblxuICBnZXQgcmVzb2x2ZWRBbGlnbm1lbnQoKTogUmV0dXJuVHlwZTx0eXBlb2Ygbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQ+IHtcbiAgICByZXR1cm4gbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQodGhpcy5jb2w/LmFsaWduKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjZWxsVGV4dFZhbHVlKGZpZWxkID0gdGhpcy5jb2w/LmZpZWxkKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdG9UYWJsZVRleHRWYWx1ZSh0aGlzLnJlc29sdmVWYWx1ZSh0aGlzLnJvdywgZmllbGQpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNwbGF5VGV4dChmaWVsZCA9IHRoaXMuY29sPy5maWVsZCk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuY2VsbFRleHRWYWx1ZShmaWVsZCk7XG4gICAgY29uc3QgbW9kZTogVGFibGVUZXh0T3ZlcmZsb3cgPSB0aGlzLmNvbD8udGV4dE92ZXJmbG93ID8/IHRoaXMuZGVmYXVsdFRleHRPdmVyZmxvdyA/PyAnYnJlYWstbGluZSc7XG4gICAgaWYgKG1vZGUgIT09ICdlbGxpcHNpcycpIHsgcmV0dXJuIHRleHQ7IH1cbiAgICBjb25zdCBtYXggPSB0aGlzLmNvbD8ubWF4Q2hhcnMgPz8gVEFCTEVfVEVYVF9PVkVSRkxPV19ERUZBVUxUX01BWF9DSEFSUztcbiAgICByZXR1cm4gdGV4dC5sZW5ndGggPiBtYXggPyB0ZXh0LnNsaWNlKDAsIG1heCkudHJpbUVuZCgpICsgJ+KApicgOiB0ZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRWxsaXBzaXNNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5jb2w/LnRleHRPdmVyZmxvdyA/PyB0aGlzLmRlZmF1bHRUZXh0T3ZlcmZsb3cgPz8gJ2JyZWFrLWxpbmUnKSA9PT0gJ2VsbGlwc2lzJztcbiAgfVxuXG4gIHByb3RlY3RlZCBlbGxpcHNpc1RpdGxlVGV4dChkaXNwbGF5VGV4dDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5jb2w/Lm1heENoYXJzID8/IFRBQkxFX1RFWFRfT1ZFUkZMT1dfREVGQVVMVF9NQVhfQ0hBUlM7XG4gICAgcmV0dXJuIHRoaXMuaXNFbGxpcHNpc01vZGUoKSAmJiBkaXNwbGF5VGV4dC5sZW5ndGggPiBtYXggPyBkaXNwbGF5VGV4dCA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9ybWF0RGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXRUYWJsZURhdGUodGhpcy5yZXNvbHZlVmFsdWUodGhpcy5yb3csIHRoaXMuY29sPy5maWVsZCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZvcm1hdEN1cnJlbmN5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm1hdFRhYmxlQ3VycmVuY3kodGhpcy5yZXNvbHZlVmFsdWUodGhpcy5yb3csIHRoaXMuY29sPy5maWVsZCksIHRoaXMuY29sPy5mb3JtYXQgPz8gJ0JSTCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENoZWNrZWRWYWx1ZShldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRhZ0l0ZW1zKCkge1xuICAgIHJldHVybiByZXNvbHZlVGFibGVUYWdJdGVtcyh0aGlzLnJvdywgdGhpcy5jb2wsIHRoaXMuY2VsbENvbmZpZ3MudGFnLCB0aGlzLnJlc29sdmVWYWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaWNvblByZXNlbnRhdGlvbigpIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRhYmxlSWNvblByZXNlbnRhdGlvbih0aGlzLnJvdywgdGhpcy5jb2wsIHRoaXMuY2VsbENvbmZpZ3MuaWNvbiwgdGhpcy5yZXNvbHZlVmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRpdGxlSWNvblByZXNlbnRhdGlvbigpIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRhYmxlVGl0bGVJY29uUHJlc2VudGF0aW9uKHRoaXMucm93LCB0aGlzLmNvbCwgdGhpcy5jZWxsQ29uZmlnc1snaWNvbi10aXRsZSddLCB0aGlzLnJlc29sdmVWYWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnV0dG9uS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUYWJsZUJ1dHRvbktleSh0aGlzLnJvdywgdGhpcy5jb2wsIHRoaXMuY2VsbENvbmZpZ3MuYnV0dG9uLCB0aGlzLnJlc29sdmVWYWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnV0dG9uQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2VsbENvbmZpZ3MuYnV0dG9uLmxhYmVsXG4gICAgICA/PyB0aGlzLmNlbGxDb25maWdzLmJ1dHRvbi50b29sdGlwXG4gICAgICA/PyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5hY3Rpb25fYnV0dG9uJztcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3Rpb25zQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jZWxsQ29uZmlncy5hY3Rpb25zLmJ1dHRvbkxhYmVsID8/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmFjdGlvbnNfbWVudSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25BY3Rpb25zQ2xpY2soZXZlbnQ6IEV2ZW50LCB0cmlnZ2VyOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudG9nZ2xlQWN0aW9uc01lbnUuZW1pdCh7IGV2ZW50LCB0cmlnZ2VyIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLXRhYmxlLWNvbnRlbnRcIj5cbiAgQGlmIChjb2wuY29udGVudD8ubGVuZ3RoKSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1tdWx0aS1jb250ZW50XCI+XG4gICAgICBAZm9yIChpdGVtIG9mIGNvbC5jb250ZW50ITsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIEBzd2l0Y2ggKGl0ZW0udHlwZSA/PyAndGV4dCcpIHtcbiAgICAgICAgICBAY2FzZSAoJ3N0cm9uZycpIHtcbiAgICAgICAgICAgIDxzdHJvbmdcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwiaXRlbS5zdHlsZVwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCJpdGVtLmNsYXNzID8/ICcnXCJcbiAgICAgICAgICAgID57eyBjZWxsVGV4dFZhbHVlKGl0ZW0uZmllbGQpIHwgdHJhbnNsYXRlIH19PC9zdHJvbmc+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlICgnY29kZScpIHtcbiAgICAgICAgICAgIDxjb2RlIFtuZ1N0eWxlXT1cIml0ZW0uc3R5bGVcIiBbY2xhc3NdPVwiaXRlbS5jbGFzcyA/PyAnJ1wiPnt7IGNlbGxUZXh0VmFsdWUoaXRlbS5maWVsZCkgfX08L2NvZGU+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cIml0ZW0uc3R5bGVcIiBbY2xhc3NdPVwiaXRlbS5jbGFzcyA/PyAnJ1wiPnt7IGNlbGxUZXh0VmFsdWUoaXRlbS5maWVsZCkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIEBzd2l0Y2ggKGNvbC50eXBlID8/ICd0ZXh0Jykge1xuICAgIEBjYXNlICgnY2hlY2tib3gtc2VsZWN0aW9uJykge1xuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1jaGVja2JveFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFtpZF09XCJyb3dDaGVja2JveElkXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJyb3dTZWxlY3RlZFwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVSb3cuZW1pdChnZXRDaGVja2VkVmFsdWUoJGV2ZW50KSlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5zZWxlY3Rfcm93J1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBuYW1lOiAocm93TGFiZWwgfCB0cmFuc2xhdGUpIH1cbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJyb3dTZWxlY3RlZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwicm93Q2hlY2tib3hJZFwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5zZWxlY3Rfcm93J1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBuYW1lOiAocm93TGFiZWwgfCB0cmFuc2xhdGUpIH1cbiAgICAgICAgICB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdkYXRlJykge1xuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGFibGUtdGV4dFwiIFthdHRyLnRpdGxlXT1cImVsbGlwc2lzVGl0bGVUZXh0KGZvcm1hdERhdGUoKSlcIj57eyBmb3JtYXREYXRlKCkgfX08L3NwYW4+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdzdHJvbmcnKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS1zdHJvbmctbGFiZWxcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJlbGxpcHNpc1RpdGxlVGV4dChjZWxsVGV4dFZhbHVlKCkgfCB0cmFuc2xhdGUpXCI+XG4gICAgICAgIHt7IGNlbGxUZXh0VmFsdWUoKSB8IHRyYW5zbGF0ZSB8IHNkY1RydW5jYXRlOmNvbDpkZWZhdWx0VGV4dE92ZXJmbG93IH19XG4gICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdjb2RlJykge1xuICAgICAgPGNvZGUgY2xhc3M9XCJzZGMtdGFibGUtY29kZS1sYWJlbFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImVsbGlwc2lzVGl0bGVUZXh0KGNlbGxUZXh0VmFsdWUoKSlcIj57eyBkaXNwbGF5VGV4dCgpIH19PC9jb2RlPlxuICAgIH1cblxuICAgIEBjYXNlICgnY3VycmVuY3knKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS10ZXh0XCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiZWxsaXBzaXNUaXRsZVRleHQoZm9ybWF0Q3VycmVuY3koKSlcIj57eyBmb3JtYXRDdXJyZW5jeSgpIH19PC9zcGFuPlxuICAgIH1cblxuICAgIEBjYXNlICgndGFnJykge1xuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS10YWdzXCI+XG4gICAgICAgIEBmb3IgKHRhZ0l0ZW0gb2YgdGFnSXRlbXMoKTsgdHJhY2sgdGFnSXRlbS5sYWJlbCArICctJyArICRpbmRleCkge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS10YWdcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS10YWctLWVuYWJsZWRdPVwidGFnSXRlbS50b25lID09PSAnZW5hYmxlZCdcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS10YWctLWRpc2FibGVkXT1cInRhZ0l0ZW0udG9uZSA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ0YWdJdGVtLnN0eWxlc1wiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJ0YWdJdGVtLnRvb2x0aXAgPyAodGFnSXRlbS50b29sdGlwIHwgdHJhbnNsYXRlKSA6IG51bGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAodGFnSXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgIDxzZGMtaWNvbi1yZW5kZXJlclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLXRhZ19faWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidGFnSXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICBbaWNvblR5cGVdPVwidGFnSXRlbS5pY29uVHlwZVwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwidGFnSWNvblNpemVcIlxuICAgICAgICAgICAgICA+PC9zZGMtaWNvbi1yZW5kZXJlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHt7IHRhZ0l0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBjYXNlICgnYnV0dG9uJykge1xuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1idXR0b25cIj5cbiAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICBbc2l6ZV09XCJjZWxsQ29uZmlncy5idXR0b24uc2l6ZSA/PyAnZGVmYXVsdCdcIlxuICAgICAgICAgIFtwcmlvcml0eV09XCJjZWxsQ29uZmlncy5idXR0b24ucHJpb3JpdHkgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbaWNvbl09XCJjZWxsQ29uZmlncy5idXR0b24uaWNvblwiXG4gICAgICAgICAgW2xhYmVsXT1cImNlbGxDb25maWdzLmJ1dHRvbi5sYWJlbCA/PyAnJ1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNlbGxDb25maWdzLmJ1dHRvbi5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgICAgW3RpdGxlXT1cImNlbGxDb25maWdzLmJ1dHRvbi50b29sdGlwXCJcbiAgICAgICAgICBbYXR0ci5zaXplXT1cImNlbGxDb25maWdzLmJ1dHRvbi5zaXplXCJcbiAgICAgICAgICBbYXR0ci5wcmlvcml0eV09XCJjZWxsQ29uZmlncy5idXR0b24ucHJpb3JpdHkgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbYXR0ci5zZXZlcml0eV09XCJjZWxsQ29uZmlncy5idXR0b24ucHJpb3JpdHkgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbYXR0ci5pY29uXT1cImNlbGxDb25maWdzLmJ1dHRvbi5pY29uXCJcbiAgICAgICAgICBbYXR0ci5sYWJlbF09XCJjZWxsQ29uZmlncy5idXR0b24ubGFiZWxcIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImNlbGxDb25maWdzLmJ1dHRvbi5kaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwiY2VsbENvbmZpZ3MuYnV0dG9uLnRvb2x0aXAgfHwgbnVsbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIChidXR0b25BcmlhTGFiZWwoKSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgKyAnIC0gJ1xuICAgICAgICAgICAgICArIChyb3dMYWJlbCB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmRhdGEta2V5XT1cImJ1dHRvbktleSgpXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2VsbENvbmZpZ3MuYnV0dG9uLmRpc2FibGVkID8gbnVsbCA6IHRyaWdnZXJCdXR0b25BY3Rpb24uZW1pdCgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjZWxsQ29uZmlncy5idXR0b24uZGlzYWJsZWQgPyBudWxsIDogdHJpZ2dlckJ1dHRvbkFjdGlvbi5lbWl0KClcIlxuICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBjZWxsQ29uZmlncy5idXR0b24uZGlzYWJsZWQgPyBudWxsIDogdHJpZ2dlckJ1dHRvbkFjdGlvbi5lbWl0KClcIlxuICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdhY3Rpb25zJykge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNkYy10YWJsZS1hY3Rpb25zXCJcbiAgICAgICAgW2NsYXNzLnNkYy10YWJsZS1hY3Rpb25zLS1vcGVuXT1cImFjdGlvbnNNZW51T3BlblwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAjYWN0aW9uc1RyaWdnZXJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS1hY3Rpb25zLXRyaWdnZXJcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtdGFibGUtYWN0aW9ucy10cmlnZ2VyLS1vcGVuXT1cImFjdGlvbnNNZW51T3BlblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIChhY3Rpb25zQnV0dG9uTGFiZWwoKSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgKyAnIC0gJ1xuICAgICAgICAgICAgICArIChyb3dMYWJlbCB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ21lbnUnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFjdGlvbnNNZW51T3BlblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uc0NsaWNrKCRldmVudCwgYWN0aW9uc1RyaWdnZXIpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRhYmxlLWFjdGlvbnMtdHJpZ2dlcl9fbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IGFjdGlvbnNCdXR0b25MYWJlbCgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tZG93biBzZGMtdGFibGUtYWN0aW9ucy10cmlnZ2VyX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBjYXNlICgnaWNvbicpIHtcbiAgICAgIEBpZiAoaWNvblByZXNlbnRhdGlvbigpOyBhcyBpY29uSXRlbSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLWljb25cIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImljb25JdGVtLmNvbG9yU3R5bGVcIlxuICAgICAgICAgIFthdHRyLnRpdGxlXT1cImljb25JdGVtLnRvb2x0aXAgPyAoaWNvbkl0ZW0udG9vbHRpcCB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgKGljb25JdGVtLmxhYmVsIHx8IGljb25JdGVtLnRvb2x0aXApXG4gICAgICAgICAgICAgID8gKChpY29uSXRlbS5sYWJlbCB8fCBpY29uSXRlbS50b29sdGlwKSEgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKGljb25JdGVtLmljb24pIHtcbiAgICAgICAgICAgIDxzZGMtaWNvbi1yZW5kZXJlclxuICAgICAgICAgICAgICBbaWNvbl09XCJpY29uSXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgW2ljb25UeXBlXT1cImljb25JdGVtLmljb25UeXBlXCJcbiAgICAgICAgICAgICAgW3NpemVdPVwiaWNvblNpemVcIlxuICAgICAgICAgICAgPjwvc2RjLWljb24tcmVuZGVyZXI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoaWNvbkl0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRhYmxlLWljb25fX2xhYmVsXCI+e3sgaWNvbkl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGNhc2UgKCdpY29uLXRpdGxlJykge1xuICAgICAgQGlmICh0aXRsZUljb25QcmVzZW50YXRpb24oKTsgYXMgdGl0bGVJY29uSXRlbSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLWljb24tdGl0bGVcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInRpdGxlSWNvbkl0ZW0uY29sb3JTdHlsZVwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwidGl0bGVJY29uSXRlbS50b29sdGlwID8gKHRpdGxlSWNvbkl0ZW0udG9vbHRpcCB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAodGl0bGVJY29uSXRlbS5pY29uKSB7XG4gICAgICAgICAgICA8c2RjLWljb24tcmVuZGVyZXJcbiAgICAgICAgICAgICAgW2ljb25dPVwidGl0bGVJY29uSXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgW2ljb25UeXBlXT1cInRpdGxlSWNvbkl0ZW0uaWNvblR5cGVcIlxuICAgICAgICAgICAgICBbc2l6ZV09XCJpY29uU2l6ZVwiXG4gICAgICAgICAgICA+PC9zZGMtaWNvbi1yZW5kZXJlcj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmICh0aXRsZUljb25JdGVtLmxhYmVsKSB7XG4gICAgICAgICAgICA8c3BhbiBbYXR0ci50aXRsZV09XCJlbGxpcHNpc1RpdGxlVGV4dCh0aXRsZUljb25JdGVtLmxhYmVsIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICB7eyB0aXRsZUljb25JdGVtLmxhYmVsIHwgdHJhbnNsYXRlIHwgc2RjVHJ1bmNhdGU6Y29sOmRlZmF1bHRUZXh0T3ZlcmZsb3cgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZGVmYXVsdCB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS10ZXh0XCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiZWxsaXBzaXNUaXRsZVRleHQoY2VsbFRleHRWYWx1ZSgpIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICB7eyBjZWxsVGV4dFZhbHVlKCkgfCB0cmFuc2xhdGUgfCBzZGNUcnVuY2F0ZTpjb2w6ZGVmYXVsdFRleHRPdmVyZmxvdyB9fVxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICB9XG4gIH1cbjwvZGl2PlxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90YWJsZS9jb21wb25lbnRzL3RhYmxlLWNlbGwtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IscUNBQXFDLEVBQ3RDLE1BQU0scUNBQXFDLENBQUM7QUFPN0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2pCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQiw0QkFBNEIsRUFDNUIsb0JBQW9CLEVBQ3BCLGlDQUFpQyxFQUNsQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7Ozs7QUFnQnZHLE1BQU0sT0FBTyx5QkFBeUI7SUFDVCxXQUFXLENBQXlCO0lBQ3BDLEdB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M09BNk1BLCswSEQzS1ksWUFBWSxtSEFBRSxlQUFlLDRGQUFFLGVBQWUsOFNBQUUscUJBQXFCLCtGQUFFLGVBQWU7OzRGQVdyRix5QkFBeUI7a0JBZHJDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxtQkFHaEYsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSiw0Q0FBNEMsRUFBRSw4QkFBOEI7d0JBQzVFLDhDQUE4QyxFQUFFLGdDQUFnQzt3QkFDaEYsNkNBQTZDLEVBQUUsK0JBQStCO3dCQUM5RSx3Q0FBd0MsRUFBRSw4QkFBOEI7cUJBQ3pFOzhCQUcwQixXQUFXO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxHQUFHO3NCQUE3QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxZQUFZO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxHQUFHO3NCQUE3QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaEIsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgVEFCTEVfSUNPTl9SRU5ERVJfU0laRV9QWCxcbiAgVEFCTEVfVEFHX0lDT05fUkVOREVSX1NJWkVfUFgsXG4gIFRBQkxFX1RFWFRfT1ZFUkZMT1dfREVGQVVMVF9NQVhfQ0hBUlNcbn0gZnJvbSAnLi4vLi4vLi4vY29yZS9jb25zdGFudHMvdGFibGUuY29uc3QnO1xuaW1wb3J0IHR5cGUge1xuICBSb3dCYXNlLFxuICBUYWJsZUNlbGxDb25maWdNYXAsXG4gIFRhYmxlQ29sdW1uXG59IGZyb20gJy4uLy4uLy4uL2NvcmUvdHlwZXMvdGFibGUudHlwZSc7XG5pbXBvcnQgdHlwZSB7IFRhYmxlVGV4dE92ZXJmbG93IH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy90YWJsZS1jb2x1bW4udHlwZSc7XG5pbXBvcnQgeyBub3JtYWxpemVUYWJsZUNvbHVtbkFsaWdubWVudCB9IGZyb20gJy4uL3V0aWxzL3RhYmxlLWxheW91dC51dGlsJztcbmltcG9ydCB7XG4gIGZvcm1hdFRhYmxlQ3VycmVuY3ksXG4gIGZvcm1hdFRhYmxlRGF0ZSxcbiAgdG9UYWJsZVRleHRWYWx1ZVxufSBmcm9tICcuLi91dGlscy90YWJsZS1kYXRhLnV0aWwnO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZVRhYmxlQnV0dG9uS2V5LFxuICByZXNvbHZlVGFibGVJY29uUHJlc2VudGF0aW9uLFxuICByZXNvbHZlVGFibGVUYWdJdGVtcyxcbiAgcmVzb2x2ZVRhYmxlVGl0bGVJY29uUHJlc2VudGF0aW9uXG59IGZyb20gJy4uL3V0aWxzL3RhYmxlLXZpc3VhbC51dGlsJztcbmltcG9ydCB7IFNkY1RydW5jYXRlUGlwZSB9IGZyb20gJy4uL3V0aWxzL3RhYmxlLXRydW5jYXRlLnBpcGUnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9jb21wb25lbnRzL2ljb24tcmVuZGVyZXIvaWNvbi1yZW5kZXJlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtdGFibGUtY2VsbC1jb250ZW50JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBCdXR0b25Db21wb25lbnQsIEljb25SZW5kZXJlckNvbXBvbmVudCwgU2RjVHJ1bmNhdGVQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNlbGwtY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90YWJsZS1jZWxsLWNvbnRlbnQuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muc2RjLXRhYmxlLWNlbGwtY29udGVudC0tYWxpZ24tbGVmdF0nOiBcInJlc29sdmVkQWxpZ25tZW50ID09PSAnbGVmdCdcIixcbiAgICAnW2NsYXNzLnNkYy10YWJsZS1jZWxsLWNvbnRlbnQtLWFsaWduLWNlbnRlcl0nOiBcInJlc29sdmVkQWxpZ25tZW50ID09PSAnY2VudGVyJ1wiLFxuICAgICdbY2xhc3Muc2RjLXRhYmxlLWNlbGwtY29udGVudC0tYWxpZ24tcmlnaHRdJzogXCJyZXNvbHZlZEFsaWdubWVudCA9PT0gJ3JpZ2h0J1wiLFxuICAgICdbY2xhc3Muc2RjLXRhYmxlLWNlbGwtY29udGVudC0tbm93cmFwXSc6IFwiY29sPy50ZXh0T3ZlcmZsb3cgPT09ICdub25lJ1wiXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDZWxsQ29udGVudENvbXBvbmVudDxUIGV4dGVuZHMgUm93QmFzZSA9IFJvd0Jhc2U+IHtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY2VsbENvbmZpZ3MhOiBUYWJsZUNlbGxDb25maWdNYXA8VD47XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbCE6IFRhYmxlQ29sdW1uPFQ+O1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSByZXNvbHZlVmFsdWUhOiAocm93OiBULCBmaWVsZD86IHN0cmluZykgPT4gdW5rbm93bjtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcm93ITogVDtcblxuICBASW5wdXQoKSBhY3Rpb25zTWVudU9wZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYWN0aW9uc01lbnVJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGRlZmF1bHRUZXh0T3ZlcmZsb3c/OiBUYWJsZVRleHRPdmVyZmxvdztcbiAgQElucHV0KCkgcm93Q2hlY2tib3hJZCA9ICcnO1xuICBASW5wdXQoKSByb3dMYWJlbCA9ICdpdGVtJztcbiAgQElucHV0KCkgcm93U2VsZWN0ZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgdG9nZ2xlQWN0aW9uc01lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnQ6IEV2ZW50OyB0cmlnZ2VyOiBIVE1MRWxlbWVudCB9PigpO1xuICBAT3V0cHV0KCkgdG9nZ2xlUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgdHJpZ2dlckJ1dHRvbkFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvblNpemUgPSBUQUJMRV9JQ09OX1JFTkRFUl9TSVpFX1BYO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFnSWNvblNpemUgPSBUQUJMRV9UQUdfSUNPTl9SRU5ERVJfU0laRV9QWDtcblxuICBnZXQgcmVzb2x2ZWRBbGlnbm1lbnQoKTogUmV0dXJuVHlwZTx0eXBlb2Ygbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQ+IHtcbiAgICByZXR1cm4gbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQodGhpcy5jb2w/LmFsaWduKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjZWxsVGV4dFZhbHVlKGZpZWxkID0gdGhpcy5jb2w/LmZpZWxkKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdG9UYWJsZVRleHRWYWx1ZSh0aGlzLnJlc29sdmVWYWx1ZSh0aGlzLnJvdywgZmllbGQpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNwbGF5VGV4dChmaWVsZCA9IHRoaXMuY29sPy5maWVsZCk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuY2VsbFRleHRWYWx1ZShmaWVsZCk7XG4gICAgY29uc3QgbW9kZTogVGFibGVUZXh0T3ZlcmZsb3cgPSB0aGlzLmNvbD8udGV4dE92ZXJmbG93ID8/IHRoaXMuZGVmYXVsdFRleHRPdmVyZmxvdyA/PyAnYnJlYWstbGluZSc7XG4gICAgaWYgKG1vZGUgIT09ICdlbGxpcHNpcycpIHsgcmV0dXJuIHRleHQ7IH1cbiAgICBjb25zdCBtYXggPSB0aGlzLmNvbD8ubWF4Q2hhcnMgPz8gVEFCTEVfVEVYVF9PVkVSRkxPV19ERUZBVUxUX01BWF9DSEFSUztcbiAgICByZXR1cm4gdGV4dC5sZW5ndGggPiBtYXggPyB0ZXh0LnNsaWNlKDAsIG1heCkudHJpbUVuZCgpICsgJ+KApicgOiB0ZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRWxsaXBzaXNNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5jb2w/LnRleHRPdmVyZmxvdyA/PyB0aGlzLmRlZmF1bHRUZXh0T3ZlcmZsb3cgPz8gJ2JyZWFrLWxpbmUnKSA9PT0gJ2VsbGlwc2lzJztcbiAgfVxuXG4gIHByb3RlY3RlZCBlbGxpcHNpc1RpdGxlVGV4dChkaXNwbGF5VGV4dDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5jb2w/Lm1heENoYXJzID8/IFRBQkxFX1RFWFRfT1ZFUkZMT1dfREVGQVVMVF9NQVhfQ0hBUlM7XG4gICAgcmV0dXJuIHRoaXMuaXNFbGxpcHNpc01vZGUoKSAmJiBkaXNwbGF5VGV4dC5sZW5ndGggPiBtYXggPyBkaXNwbGF5VGV4dCA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9ybWF0RGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXRUYWJsZURhdGUodGhpcy5yZXNvbHZlVmFsdWUodGhpcy5yb3csIHRoaXMuY29sPy5maWVsZCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZvcm1hdEN1cnJlbmN5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm1hdFRhYmxlQ3VycmVuY3kodGhpcy5yZXNvbHZlVmFsdWUodGhpcy5yb3csIHRoaXMuY29sPy5maWVsZCksIHRoaXMuY29sPy5mb3JtYXQgPz8gJ0JSTCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENoZWNrZWRWYWx1ZShldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRhZ0l0ZW1zKCkge1xuICAgIHJldHVybiByZXNvbHZlVGFibGVUYWdJdGVtcyh0aGlzLnJvdywgdGhpcy5jb2wsIHRoaXMuY2VsbENvbmZpZ3MudGFnLCB0aGlzLnJlc29sdmVWYWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaWNvblByZXNlbnRhdGlvbigpIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRhYmxlSWNvblByZXNlbnRhdGlvbih0aGlzLnJvdywgdGhpcy5jb2wsIHRoaXMuY2VsbENvbmZpZ3MuaWNvbiwgdGhpcy5yZXNvbHZlVmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRpdGxlSWNvblByZXNlbnRhdGlvbigpIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRhYmxlVGl0bGVJY29uUHJlc2VudGF0aW9uKHRoaXMucm93LCB0aGlzLmNvbCwgdGhpcy5jZWxsQ29uZmlnc1snaWNvbi10aXRsZSddLCB0aGlzLnJlc29sdmVWYWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnV0dG9uS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUYWJsZUJ1dHRvbktleSh0aGlzLnJvdywgdGhpcy5jb2wsIHRoaXMuY2VsbENvbmZpZ3MuYnV0dG9uLCB0aGlzLnJlc29sdmVWYWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnV0dG9uQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2VsbENvbmZpZ3MuYnV0dG9uLmxhYmVsXG4gICAgICA/PyB0aGlzLmNlbGxDb25maWdzLmJ1dHRvbi50b29sdGlwXG4gICAgICA/PyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5hY3Rpb25fYnV0dG9uJztcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3Rpb25zQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jZWxsQ29uZmlncy5hY3Rpb25zLmJ1dHRvbkxhYmVsID8/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmFjdGlvbnNfbWVudSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25BY3Rpb25zQ2xpY2soZXZlbnQ6IEV2ZW50LCB0cmlnZ2VyOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudG9nZ2xlQWN0aW9uc01lbnUuZW1pdCh7IGV2ZW50LCB0cmlnZ2VyIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLXRhYmxlLWNvbnRlbnRcIj5cbiAgQGlmIChjb2wuY29udGVudD8ubGVuZ3RoKSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1tdWx0aS1jb250ZW50XCI+XG4gICAgICBAZm9yIChpdGVtIG9mIGNvbC5jb250ZW50ITsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIEBzd2l0Y2ggKGl0ZW0udHlwZSA/PyAndGV4dCcpIHtcbiAgICAgICAgICBAY2FzZSAoJ3N0cm9uZycpIHtcbiAgICAgICAgICAgIDxzdHJvbmdcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwiaXRlbS5zdHlsZVwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCJpdGVtLmNsYXNzID8/ICcnXCJcbiAgICAgICAgICAgID57eyBjZWxsVGV4dFZhbHVlKGl0ZW0uZmllbGQpIHwgdHJhbnNsYXRlIH19PC9zdHJvbmc+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlICgnY29kZScpIHtcbiAgICAgICAgICAgIDxjb2RlIFtuZ1N0eWxlXT1cIml0ZW0uc3R5bGVcIiBbY2xhc3NdPVwiaXRlbS5jbGFzcyA/PyAnJ1wiPnt7IGNlbGxUZXh0VmFsdWUoaXRlbS5maWVsZCkgfX08L2NvZGU+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cIml0ZW0uc3R5bGVcIiBbY2xhc3NdPVwiaXRlbS5jbGFzcyA/PyAnJ1wiPnt7IGNlbGxUZXh0VmFsdWUoaXRlbS5maWVsZCkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIEBzd2l0Y2ggKGNvbC50eXBlID8/ICd0ZXh0Jykge1xuICAgIEBjYXNlICgnY2hlY2tib3gtc2VsZWN0aW9uJykge1xuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1jaGVja2JveFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFtpZF09XCJyb3dDaGVja2JveElkXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJyb3dTZWxlY3RlZFwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVSb3cuZW1pdChnZXRDaGVja2VkVmFsdWUoJGV2ZW50KSlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5zZWxlY3Rfcm93J1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBuYW1lOiAocm93TGFiZWwgfCB0cmFuc2xhdGUpIH1cbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJyb3dTZWxlY3RlZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwicm93Q2hlY2tib3hJZFwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5zZWxlY3Rfcm93J1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBuYW1lOiAocm93TGFiZWwgfCB0cmFuc2xhdGUpIH1cbiAgICAgICAgICB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdkYXRlJykge1xuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGFibGUtdGV4dFwiIFthdHRyLnRpdGxlXT1cImVsbGlwc2lzVGl0bGVUZXh0KGZvcm1hdERhdGUoKSlcIj57eyBmb3JtYXREYXRlKCkgfX08L3NwYW4+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdzdHJvbmcnKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS1zdHJvbmctbGFiZWxcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJlbGxpcHNpc1RpdGxlVGV4dChjZWxsVGV4dFZhbHVlKCkgfCB0cmFuc2xhdGUpXCI+XG4gICAgICAgIHt7IGNlbGxUZXh0VmFsdWUoKSB8IHRyYW5zbGF0ZSB8IHNkY1RydW5jYXRlOmNvbDpkZWZhdWx0VGV4dE92ZXJmbG93IH19XG4gICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdjb2RlJykge1xuICAgICAgPGNvZGUgY2xhc3M9XCJzZGMtdGFibGUtY29kZS1sYWJlbFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImVsbGlwc2lzVGl0bGVUZXh0KGNlbGxUZXh0VmFsdWUoKSlcIj57eyBkaXNwbGF5VGV4dCgpIH19PC9jb2RlPlxuICAgIH1cblxuICAgIEBjYXNlICgnY3VycmVuY3knKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS10ZXh0XCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiZWxsaXBzaXNUaXRsZVRleHQoZm9ybWF0Q3VycmVuY3koKSlcIj57eyBmb3JtYXRDdXJyZW5jeSgpIH19PC9zcGFuPlxuICAgIH1cblxuICAgIEBjYXNlICgndGFnJykge1xuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS10YWdzXCI+XG4gICAgICAgIEBmb3IgKHRhZ0l0ZW0gb2YgdGFnSXRlbXMoKTsgdHJhY2sgdGFnSXRlbS5sYWJlbCArICctJyArICRpbmRleCkge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS10YWdcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS10YWctLWVuYWJsZWRdPVwidGFnSXRlbS50b25lID09PSAnZW5hYmxlZCdcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS10YWctLWRpc2FibGVkXT1cInRhZ0l0ZW0udG9uZSA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ0YWdJdGVtLnN0eWxlc1wiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJ0YWdJdGVtLnRvb2x0aXAgPyAodGFnSXRlbS50b29sdGlwIHwgdHJhbnNsYXRlKSA6IG51bGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAodGFnSXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgIDxzZGMtaWNvbi1yZW5kZXJlclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLXRhZ19faWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidGFnSXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICBbaWNvblR5cGVdPVwidGFnSXRlbS5pY29uVHlwZVwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwidGFnSWNvblNpemVcIlxuICAgICAgICAgICAgICA+PC9zZGMtaWNvbi1yZW5kZXJlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHt7IHRhZ0l0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBjYXNlICgnYnV0dG9uJykge1xuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1idXR0b25cIj5cbiAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICBbc2l6ZV09XCJjZWxsQ29uZmlncy5idXR0b24uc2l6ZSA/PyAnZGVmYXVsdCdcIlxuICAgICAgICAgIFtwcmlvcml0eV09XCJjZWxsQ29uZmlncy5idXR0b24ucHJpb3JpdHkgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbaWNvbl09XCJjZWxsQ29uZmlncy5idXR0b24uaWNvblwiXG4gICAgICAgICAgW2xhYmVsXT1cImNlbGxDb25maWdzLmJ1dHRvbi5sYWJlbCA/PyAnJ1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNlbGxDb25maWdzLmJ1dHRvbi5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgICAgW3RpdGxlXT1cImNlbGxDb25maWdzLmJ1dHRvbi50b29sdGlwXCJcbiAgICAgICAgICBbYXR0ci5zaXplXT1cImNlbGxDb25maWdzLmJ1dHRvbi5zaXplXCJcbiAgICAgICAgICBbYXR0ci5wcmlvcml0eV09XCJjZWxsQ29uZmlncy5idXR0b24ucHJpb3JpdHkgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbYXR0ci5zZXZlcml0eV09XCJjZWxsQ29uZmlncy5idXR0b24ucHJpb3JpdHkgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbYXR0ci5pY29uXT1cImNlbGxDb25maWdzLmJ1dHRvbi5pY29uXCJcbiAgICAgICAgICBbYXR0ci5sYWJlbF09XCJjZWxsQ29uZmlncy5idXR0b24ubGFiZWxcIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImNlbGxDb25maWdzLmJ1dHRvbi5kaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwiY2VsbENvbmZpZ3MuYnV0dG9uLnRvb2x0aXAgfHwgbnVsbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIChidXR0b25BcmlhTGFiZWwoKSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgKyAnIC0gJ1xuICAgICAgICAgICAgICArIChyb3dMYWJlbCB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmRhdGEta2V5XT1cImJ1dHRvbktleSgpXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2VsbENvbmZpZ3MuYnV0dG9uLmRpc2FibGVkID8gbnVsbCA6IHRyaWdnZXJCdXR0b25BY3Rpb24uZW1pdCgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjZWxsQ29uZmlncy5idXR0b24uZGlzYWJsZWQgPyBudWxsIDogdHJpZ2dlckJ1dHRvbkFjdGlvbi5lbWl0KClcIlxuICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBjZWxsQ29uZmlncy5idXR0b24uZGlzYWJsZWQgPyBudWxsIDogdHJpZ2dlckJ1dHRvbkFjdGlvbi5lbWl0KClcIlxuICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdhY3Rpb25zJykge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNkYy10YWJsZS1hY3Rpb25zXCJcbiAgICAgICAgW2NsYXNzLnNkYy10YWJsZS1hY3Rpb25zLS1vcGVuXT1cImFjdGlvbnNNZW51T3BlblwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAjYWN0aW9uc1RyaWdnZXJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS1hY3Rpb25zLXRyaWdnZXJcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtdGFibGUtYWN0aW9ucy10cmlnZ2VyLS1vcGVuXT1cImFjdGlvbnNNZW51T3BlblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIChhY3Rpb25zQnV0dG9uTGFiZWwoKSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgKyAnIC0gJ1xuICAgICAgICAgICAgICArIChyb3dMYWJlbCB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ21lbnUnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImFjdGlvbnNNZW51T3BlbiA/IGFjdGlvbnNNZW51SWQgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFjdGlvbnNNZW51T3BlblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uc0NsaWNrKCRldmVudCwgYWN0aW9uc1RyaWdnZXIpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRhYmxlLWFjdGlvbnMtdHJpZ2dlcl9fbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IGFjdGlvbnNCdXR0b25MYWJlbCgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tZG93biBzZGMtdGFibGUtYWN0aW9ucy10cmlnZ2VyX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBjYXNlICgnaWNvbicpIHtcbiAgICAgIEBpZiAoaWNvblByZXNlbnRhdGlvbigpOyBhcyBpY29uSXRlbSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLWljb25cIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImljb25JdGVtLmNvbG9yU3R5bGVcIlxuICAgICAgICAgIFthdHRyLnRpdGxlXT1cImljb25JdGVtLnRvb2x0aXAgPyAoaWNvbkl0ZW0udG9vbHRpcCB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgKGljb25JdGVtLmxhYmVsIHx8IGljb25JdGVtLnRvb2x0aXApXG4gICAgICAgICAgICAgID8gKChpY29uSXRlbS5sYWJlbCB8fCBpY29uSXRlbS50b29sdGlwKSEgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKGljb25JdGVtLmljb24pIHtcbiAgICAgICAgICAgIDxzZGMtaWNvbi1yZW5kZXJlclxuICAgICAgICAgICAgICBbaWNvbl09XCJpY29uSXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgW2ljb25UeXBlXT1cImljb25JdGVtLmljb25UeXBlXCJcbiAgICAgICAgICAgICAgW3NpemVdPVwiaWNvblNpemVcIlxuICAgICAgICAgICAgPjwvc2RjLWljb24tcmVuZGVyZXI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoaWNvbkl0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRhYmxlLWljb25fX2xhYmVsXCI+e3sgaWNvbkl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGNhc2UgKCdpY29uLXRpdGxlJykge1xuICAgICAgQGlmICh0aXRsZUljb25QcmVzZW50YXRpb24oKTsgYXMgdGl0bGVJY29uSXRlbSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLWljb24tdGl0bGVcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInRpdGxlSWNvbkl0ZW0uY29sb3JTdHlsZVwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwidGl0bGVJY29uSXRlbS50b29sdGlwID8gKHRpdGxlSWNvbkl0ZW0udG9vbHRpcCB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAodGl0bGVJY29uSXRlbS5pY29uKSB7XG4gICAgICAgICAgICA8c2RjLWljb24tcmVuZGVyZXJcbiAgICAgICAgICAgICAgW2ljb25dPVwidGl0bGVJY29uSXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgW2ljb25UeXBlXT1cInRpdGxlSWNvbkl0ZW0uaWNvblR5cGVcIlxuICAgICAgICAgICAgICBbc2l6ZV09XCJpY29uU2l6ZVwiXG4gICAgICAgICAgICA+PC9zZGMtaWNvbi1yZW5kZXJlcj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmICh0aXRsZUljb25JdGVtLmxhYmVsKSB7XG4gICAgICAgICAgICA8c3BhbiBbYXR0ci50aXRsZV09XCJlbGxpcHNpc1RpdGxlVGV4dCh0aXRsZUljb25JdGVtLmxhYmVsIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICB7eyB0aXRsZUljb25JdGVtLmxhYmVsIHwgdHJhbnNsYXRlIHwgc2RjVHJ1bmNhdGU6Y29sOmRlZmF1bHRUZXh0T3ZlcmZsb3cgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZGVmYXVsdCB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS10ZXh0XCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiZWxsaXBzaXNUaXRsZVRleHQoY2VsbFRleHRWYWx1ZSgpIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICB7eyBjZWxsVGV4dFZhbHVlKCkgfCB0cmFuc2xhdGUgfCBzZGNUcnVuY2F0ZTpjb2w6ZGVmYXVsdFRleHRPdmVyZmxvdyB9fVxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICB9XG4gIH1cbjwvZGl2PlxuIl19