ngx-sfc-components 0.0.23 → 0.0.24
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.
- package/esm2020/lib/components/avatar/avatar.component.mjs +12 -5
- package/esm2020/lib/components/avatar/models/avatar-progress.model.mjs +1 -1
- package/esm2020/lib/components/avatar/parts/badge/avatar-badge.component.mjs +1 -1
- package/esm2020/lib/components/carousel/carousel.component.mjs +3 -3
- package/esm2020/lib/components/index.mjs +4 -2
- package/esm2020/lib/components/menu/dropdown/dropdown-menu.component.mjs +3 -3
- package/esm2020/lib/components/menu/dropdown/parts/item/dropdown-menu-item.component.mjs +8 -3
- package/esm2020/lib/components/menu/router/parts/item/router-menu-item.component.mjs +31 -0
- package/esm2020/lib/components/menu/router/parts/item/router-menu-item.model.mjs +2 -0
- package/esm2020/lib/components/menu/router/router-menu.component.mjs +32 -0
- package/esm2020/lib/components/menu/side/parts/header/side-menu-header.component.mjs +10 -6
- package/esm2020/lib/components/menu/side/parts/item/content/side-menu-item-content.component.mjs +7 -4
- package/esm2020/lib/components/menu/side/parts/item/side-menu-item.component.mjs +6 -5
- package/esm2020/lib/components/menu/side/side-menu.component.mjs +12 -5
- package/esm2020/lib/components/menu/side/side-menu.constants.mjs +4 -0
- package/esm2020/lib/components/menu/side/side-menu.model.mjs +1 -1
- package/esm2020/lib/components/no-export-index.mjs +2 -1
- package/esm2020/lib/components/notification/notification.component.mjs +1 -1
- package/esm2020/lib/components/progress/circle/progress-circle.component.mjs +6 -3
- package/esm2020/lib/components/progress/progress.utils.mjs +2 -2
- package/esm2020/lib/components/table/parts/content/rows/expanded/expanded-table-row.component.mjs +2 -2
- package/esm2020/lib/components/table/service/select/table-select.event.mjs +1 -1
- package/esm2020/lib/components/table/service/select/table-select.service.mjs +17 -7
- package/esm2020/lib/components/table/table.component.mjs +35 -11
- package/esm2020/lib/components/tabs/tabs.component.mjs +8 -3
- package/esm2020/lib/components/tags/parts/tag/tag.component.mjs +4 -4
- package/esm2020/lib/components/tags/parts/tag/tag.model.mjs +1 -1
- package/esm2020/lib/components/tags/tags.component.mjs +2 -2
- package/esm2020/lib/ngx-sfc-components.module.mjs +9 -3
- package/fesm2015/ngx-sfc-components.mjs +204 -72
- package/fesm2015/ngx-sfc-components.mjs.map +1 -1
- package/fesm2020/ngx-sfc-components.mjs +203 -72
- package/fesm2020/ngx-sfc-components.mjs.map +1 -1
- package/lib/components/avatar/avatar.component.d.ts +4 -2
- package/lib/components/avatar/models/avatar-progress.model.d.ts +3 -2
- package/lib/components/avatar/parts/badge/avatar-badge.component.d.ts +2 -1
- package/lib/components/index.d.ts +4 -1
- package/lib/components/menu/router/parts/item/router-menu-item.component.d.ts +9 -0
- package/lib/components/menu/router/parts/item/router-menu-item.model.d.ts +9 -0
- package/lib/components/menu/router/router-menu.component.d.ts +11 -0
- package/lib/components/menu/side/parts/header/side-menu-header.component.d.ts +4 -2
- package/lib/components/menu/side/side-menu.component.d.ts +1 -0
- package/lib/components/menu/side/side-menu.constants.d.ts +3 -0
- package/lib/components/menu/side/side-menu.model.d.ts +10 -4
- package/lib/components/no-export-index.d.ts +1 -0
- package/lib/components/notification/notification.component.d.ts +1 -1
- package/lib/components/progress/circle/progress-circle.component.d.ts +2 -1
- package/lib/components/table/service/select/table-select.event.d.ts +1 -0
- package/lib/components/table/service/select/table-select.service.d.ts +3 -2
- package/lib/components/table/table.component.d.ts +4 -3
- package/lib/components/tabs/tabs.component.d.ts +3 -2
- package/lib/components/tags/parts/tag/tag.model.d.ts +1 -0
- package/lib/ngx-sfc-components.module.d.ts +34 -32
- package/package.json +2 -2
|
@@ -30,7 +30,7 @@ export function getProgressColorDefaultFunc(value) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
export function getProgressColorDynamicallyFunc(value, total) {
|
|
33
|
-
const colorsCount = Object.keys(ProgressColor).length, part =
|
|
33
|
+
const colorsCount = Object.keys(ProgressColor).length, part = (total || CommonConstants.FULL_PERCENTAGE) / colorsCount;
|
|
34
34
|
if (value < part) {
|
|
35
35
|
return ProgressColor.MIN_LOW;
|
|
36
36
|
}
|
|
@@ -59,4 +59,4 @@ export function getProgressColorDynamicallyFunc(value, total) {
|
|
|
59
59
|
return ProgressColor.MAX_HIGH;
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzL3Byb2dyZXNzLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsTUFBTSxVQUFVLDJCQUEyQixDQUFDLEtBQWE7SUFDckQsSUFBSSxLQUFLLEdBQUcsRUFBRSxFQUFFO1FBQ1osT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDO0tBQ2hDO1NBQU0sSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUU7UUFDbEMsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDO0tBQzVCO1NBQU0sSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUU7UUFDbEMsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDO0tBQ2hDO1NBQU0sSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUU7UUFDbEMsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDO0tBQ25DO1NBQU0sSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUU7UUFDbEMsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDO0tBQy9CO1NBQU0sSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUU7UUFDbEMsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDO0tBQ25DO1NBQU0sSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUU7UUFDbEMsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDO0tBQ2pDO1NBQU0sSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUU7UUFDbEMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDO0tBQzdCO1NBQU07UUFDSCxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUM7S0FDakM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLCtCQUErQixDQUFDLEtBQWEsRUFBRSxLQUFjO0lBQ3pFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxFQUNqRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQyxHQUFHLFdBQVcsQ0FBQztJQUVwRSxJQUFJLEtBQUssR0FBRyxJQUFJLEVBQUU7UUFDZCxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUM7S0FDaEM7U0FBTSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDMUMsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDO0tBQzVCO1NBQU0sSUFBSSxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUM5QyxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUM7S0FDaEM7U0FBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1FBQzlDLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQztLQUNuQztTQUFNLElBQUksS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDOUMsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDO0tBQy9CO1NBQU0sSUFBSSxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUM5QyxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUM7S0FDbkM7U0FBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1FBQzlDLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQztLQUNqQztTQUFNLElBQUksS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDOUMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDO0tBQzdCO1NBQU07UUFDSCxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUM7S0FDakM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uQ29uc3RhbnRzIH0gZnJvbSBcIm5neC1zZmMtY29tbW9uXCI7XHJcbmltcG9ydCB7IFByb2dyZXNzQ29sb3IgfSBmcm9tIFwiLi9wcm9ncmVzcy1jb2xvci5lbnVtXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvZ3Jlc3NDb2xvckRlZmF1bHRGdW5jKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHZhbHVlIDwgMTIpIHtcclxuICAgICAgICByZXR1cm4gUHJvZ3Jlc3NDb2xvci5NSU5fTE9XO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAxMiAmJiB2YWx1ZSA8IDI0KSB7XHJcbiAgICAgICAgcmV0dXJuIFByb2dyZXNzQ29sb3IuTE9XO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAyNCAmJiB2YWx1ZSA8IDM2KSB7XHJcbiAgICAgICAgcmV0dXJuIFByb2dyZXNzQ29sb3IuTUFYX0xPVztcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPj0gMzYgJiYgdmFsdWUgPCA0OCkge1xyXG4gICAgICAgIHJldHVybiBQcm9ncmVzc0NvbG9yLk1JTl9NRURJVU07XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID49IDQ4ICYmIHZhbHVlIDwgNjApIHtcclxuICAgICAgICByZXR1cm4gUHJvZ3Jlc3NDb2xvci5NRURJVU07XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID49IDYwICYmIHZhbHVlIDwgNzIpIHtcclxuICAgICAgICByZXR1cm4gUHJvZ3Jlc3NDb2xvci5NQVhfTUVESVVNO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+PSA3MiAmJiB2YWx1ZSA8IDg0KSB7XHJcbiAgICAgICAgcmV0dXJuIFByb2dyZXNzQ29sb3IuTUlOX0hJR0g7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID49IDg0ICYmIHZhbHVlIDwgOTYpIHtcclxuICAgICAgICByZXR1cm4gUHJvZ3Jlc3NDb2xvci5ISUdIO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gUHJvZ3Jlc3NDb2xvci5NQVhfSElHSDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2dyZXNzQ29sb3JEeW5hbWljYWxseUZ1bmModmFsdWU6IG51bWJlciwgdG90YWw/OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY29sb3JzQ291bnQgPSBPYmplY3Qua2V5cyhQcm9ncmVzc0NvbG9yKS5sZW5ndGgsXHJcbiAgICAgICAgcGFydCA9ICh0b3RhbCB8fCBDb21tb25Db25zdGFudHMuRlVMTF9QRVJDRU5UQUdFKSAvIGNvbG9yc0NvdW50O1xyXG5cclxuICAgIGlmICh2YWx1ZSA8IHBhcnQpIHtcclxuICAgICAgICByZXR1cm4gUHJvZ3Jlc3NDb2xvci5NSU5fTE9XO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+PSBwYXJ0ICYmIHZhbHVlIDwgcGFydCAqIDIpIHtcclxuICAgICAgICByZXR1cm4gUHJvZ3Jlc3NDb2xvci5MT1c7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID49IHBhcnQgKiAyICYmIHZhbHVlIDwgcGFydCAqIDMpIHtcclxuICAgICAgICByZXR1cm4gUHJvZ3Jlc3NDb2xvci5NQVhfTE9XO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+PSBwYXJ0ICogMyAmJiB2YWx1ZSA8IHBhcnQgKiA0KSB7XHJcbiAgICAgICAgcmV0dXJuIFByb2dyZXNzQ29sb3IuTUlOX01FRElVTTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPj0gcGFydCAqIDQgJiYgdmFsdWUgPCBwYXJ0ICogNSkge1xyXG4gICAgICAgIHJldHVybiBQcm9ncmVzc0NvbG9yLk1FRElVTTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPj0gcGFydCAqIDUgJiYgdmFsdWUgPCBwYXJ0ICogNikge1xyXG4gICAgICAgIHJldHVybiBQcm9ncmVzc0NvbG9yLk1BWF9NRURJVU07XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID49IHBhcnQgKiA2ICYmIHZhbHVlIDwgcGFydCAqIDcpIHtcclxuICAgICAgICByZXR1cm4gUHJvZ3Jlc3NDb2xvci5NSU5fSElHSDtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPj0gcGFydCAqIDcgJiYgdmFsdWUgPCBwYXJ0ICogOCkge1xyXG4gICAgICAgIHJldHVybiBQcm9ncmVzc0NvbG9yLkhJR0g7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBQcm9ncmVzc0NvbG9yLk1BWF9ISUdIO1xyXG4gICAgfVxyXG59Il19
|
package/esm2020/lib/components/table/parts/content/rows/expanded/expanded-table-row.component.mjs
CHANGED
|
@@ -21,10 +21,10 @@ export class ExpandedTableRowComponent extends BaseDefaultTableContentComponent
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
ExpandedTableRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ExpandedTableRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
ExpandedTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ExpandedTableRowComponent, selector: "sfc-expanded-table-row", inputs: { expanded: "expanded", row: "row", content: "content" }, host: { properties: { "class.expanded": "this.expanded" } }, queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\" (click)=\"expanded = !expanded\">\r\n <sfc-template-content [referenceContent]=\"row\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Row\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n <div class=\"expanded\">\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Content\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n</div>", styles: [":host{display:block;width:100%;cursor:pointer;-webkit-user-select:none;user-select:none
|
|
24
|
+
ExpandedTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ExpandedTableRowComponent, selector: "sfc-expanded-table-row", inputs: { expanded: "expanded", row: "row", content: "content" }, host: { properties: { "class.expanded": "this.expanded" } }, queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\" (click)=\"expanded = !expanded\">\r\n <sfc-template-content [referenceContent]=\"row\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Row\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n <div class=\"expanded\">\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Content\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n</div>", styles: [":host{display:block;width:100%;cursor:pointer;-webkit-user-select:none;user-select:none}:host .expanded{max-height:0;overflow:hidden}:host.expanded .expanded{max-height:3000px}\n"], dependencies: [{ kind: "component", type: i1.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }] });
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ExpandedTableRowComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
|
-
args: [{ selector: 'sfc-expanded-table-row', template: "<div class=\"container\">\r\n <div class=\"content\" (click)=\"expanded = !expanded\">\r\n <sfc-template-content [referenceContent]=\"row\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Row\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n <div class=\"expanded\">\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Content\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n</div>", styles: [":host{display:block;width:100%;cursor:pointer;-webkit-user-select:none;user-select:none
|
|
27
|
+
args: [{ selector: 'sfc-expanded-table-row', template: "<div class=\"container\">\r\n <div class=\"content\" (click)=\"expanded = !expanded\">\r\n <sfc-template-content [referenceContent]=\"row\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Row\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n <div class=\"expanded\">\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Content\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n</div>", styles: [":host{display:block;width:100%;cursor:pointer;-webkit-user-select:none;user-select:none}:host .expanded{max-height:0;overflow:hidden}:host.expanded .expanded{max-height:3000px}\n"] }]
|
|
28
28
|
}], propDecorators: { expanded: [{
|
|
29
29
|
type: Input
|
|
30
30
|
}, {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2VsZWN0LmV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zZXJ2aWNlL3NlbGVjdC90YWJsZS1zZWxlY3QuZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlU2VsZWN0RXZlbnQge1xyXG4gICAgaW5kZXg6IG51bWJlciB8IG51bGw7XHJcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcclxuICAgIGFyZ3M/OiBhbnk7XHJcbn0iXX0=
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { addItem, removeItem } from 'ngx-sfc-common';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
2
|
+
import { addItem, removeItem, ObservableModel } from 'ngx-sfc-common';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
export class TableSelectService {
|
|
6
5
|
constructor() {
|
|
7
|
-
this.
|
|
8
|
-
this.select$ = this.selectSubject.asObservable();
|
|
6
|
+
this.model = new ObservableModel();
|
|
9
7
|
this.selectedItems = [];
|
|
10
8
|
this.unselectedItems = [];
|
|
11
9
|
}
|
|
10
|
+
get select$() { return this.model.value$; }
|
|
12
11
|
selectAll(selected) {
|
|
13
12
|
this.unselectedItems = [];
|
|
14
13
|
this.selectedItems = [];
|
|
15
|
-
this.
|
|
14
|
+
this.model.subject.next({ index: null, selected: selected });
|
|
16
15
|
}
|
|
17
16
|
select(index, selected) {
|
|
18
17
|
if (selected) {
|
|
@@ -23,7 +22,18 @@ export class TableSelectService {
|
|
|
23
22
|
addItem(this.unselectedItems, index);
|
|
24
23
|
removeItem(this.selectedItems, index);
|
|
25
24
|
}
|
|
26
|
-
this.
|
|
25
|
+
this.model.subject.next({ index, selected });
|
|
26
|
+
}
|
|
27
|
+
selectSingle(event) {
|
|
28
|
+
if (event.selected) {
|
|
29
|
+
this.unselectedItems = [];
|
|
30
|
+
this.selectedItems = [event.index];
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.selectedItems = [];
|
|
34
|
+
this.unselectedItems = [event.index];
|
|
35
|
+
}
|
|
36
|
+
this.model.subject.next(event);
|
|
27
37
|
}
|
|
28
38
|
}
|
|
29
39
|
TableSelectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TableSelectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -34,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
34
44
|
providedIn: 'root'
|
|
35
45
|
}]
|
|
36
46
|
}] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2VsZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3NlcnZpY2Uvc2VsZWN0L3RhYmxlLXNlbGVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTXRFLE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFLVSxVQUFLLEdBQXVDLElBQUksZUFBZSxFQUFxQixDQUFDO1FBSXRGLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBRTdCLG9CQUFlLEdBQWEsRUFBRSxDQUFDO0tBK0J2QztJQW5DQyxJQUFXLE9BQU8sS0FBb0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFNMUUsU0FBUyxDQUFDLFFBQWlCO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFvQixFQUFFLFFBQWlCO1FBQ25ELElBQUksUUFBUSxFQUFFO1lBQ1osVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDcEM7YUFBTTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUF3QjtRQUMxQyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFNLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFNLENBQUMsQ0FBQztTQUN2QztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOzsrR0F0Q1Usa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgYWRkSXRlbSwgcmVtb3ZlSXRlbSwgT2JzZXJ2YWJsZU1vZGVsIH0gZnJvbSAnbmd4LXNmYy1jb21tb24nO1xyXG5pbXBvcnQgeyBJVGFibGVTZWxlY3RFdmVudCB9IGZyb20gJy4vdGFibGUtc2VsZWN0LmV2ZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlU2VsZWN0U2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgbW9kZWw6IE9ic2VydmFibGVNb2RlbDxJVGFibGVTZWxlY3RFdmVudD4gPSBuZXcgT2JzZXJ2YWJsZU1vZGVsPElUYWJsZVNlbGVjdEV2ZW50PigpO1xyXG5cclxuICBwdWJsaWMgZ2V0IHNlbGVjdCQoKTogT2JzZXJ2YWJsZTxJVGFibGVTZWxlY3RFdmVudD4geyByZXR1cm4gdGhpcy5tb2RlbC52YWx1ZSQ7IH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGVkSXRlbXM6IG51bWJlcltdID0gW107XHJcblxyXG4gIHB1YmxpYyB1bnNlbGVjdGVkSXRlbXM6IG51bWJlcltdID0gW107XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RBbGwoc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMudW5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICAgIHRoaXMubW9kZWwuc3ViamVjdC5uZXh0KHsgaW5kZXg6IG51bGwsIHNlbGVjdGVkOiBzZWxlY3RlZCB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3QoaW5kZXg6IG51bWJlciB8IG51bGwsIHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgcmVtb3ZlSXRlbSh0aGlzLnVuc2VsZWN0ZWRJdGVtcywgaW5kZXgpO1xyXG4gICAgICBhZGRJdGVtKHRoaXMuc2VsZWN0ZWRJdGVtcywgaW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYWRkSXRlbSh0aGlzLnVuc2VsZWN0ZWRJdGVtcywgaW5kZXgpO1xyXG4gICAgICByZW1vdmVJdGVtKHRoaXMuc2VsZWN0ZWRJdGVtcywgaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubW9kZWwuc3ViamVjdC5uZXh0KHsgaW5kZXgsIHNlbGVjdGVkIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdFNpbmdsZShldmVudDogSVRhYmxlU2VsZWN0RXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5zZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnVuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbZXZlbnQuaW5kZXghXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgICB0aGlzLnVuc2VsZWN0ZWRJdGVtcyA9IFtldmVudC5pbmRleCFdO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubW9kZWwuc3ViamVjdC5uZXh0KGV2ZW50KTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, ContentChildren, EventEmitter, HostBinding, Inject, Input, Output } from '@angular/core';
|
|
2
|
-
import { all, firstOrDefault, getCalcValue, getCssLikeValue, isDefined, MediaLimits, Position, ResizeService, SortingDirection, TemplateReferenceDirective, WINDOW, UIConstants, LoadContainerType, LoadContainerLoadType, PaginationConstants, generateGuid, any, hasItem, SortingService, UIClass } from 'ngx-sfc-common';
|
|
3
2
|
import { BehaviorSubject, filter, map } from 'rxjs';
|
|
3
|
+
import { all, firstOrDefault, getCalcValue, getCssLikeValue, isDefined, MediaLimits, Position, ResizeService, SortingDirection, TemplateReferenceDirective, WINDOW, UIConstants, LoadContainerType, LoadContainerLoadType, PaginationConstants, generateGuid, any, hasItem, SortingService, UIClass } from 'ngx-sfc-common';
|
|
4
4
|
import { TableColumnType } from './parts/columns/table-column-type.enum';
|
|
5
5
|
import { ColumnsToggleService } from './parts/toggle/service/columns-toggle.service';
|
|
6
6
|
import { TableSelectService } from './service/select/table-select.service';
|
|
@@ -70,6 +70,7 @@ export class TableComponent {
|
|
|
70
70
|
// Selection
|
|
71
71
|
this.selectable = false;
|
|
72
72
|
this.selectOnClick = false;
|
|
73
|
+
this.selectMultiple = true;
|
|
73
74
|
this.selected = new EventEmitter();
|
|
74
75
|
this.allSelected = false;
|
|
75
76
|
// End Selection
|
|
@@ -150,21 +151,42 @@ export class TableComponent {
|
|
|
150
151
|
return {
|
|
151
152
|
index: index,
|
|
152
153
|
sequence: sequence,
|
|
153
|
-
selected: this.getItemSelected(sequence),
|
|
154
|
+
selected: result.reset ? false : this.getItemSelected(sequence),
|
|
154
155
|
data: item
|
|
155
156
|
};
|
|
156
157
|
});
|
|
157
|
-
if (result.reset)
|
|
158
|
+
if (result.reset) {
|
|
158
159
|
this.items = items;
|
|
159
|
-
|
|
160
|
+
if (this.selectable) {
|
|
161
|
+
this.selectedService.selectAll(false);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
160
165
|
this.items = this.items.concat(items);
|
|
166
|
+
}
|
|
161
167
|
}
|
|
162
168
|
selectionSubscribe() {
|
|
163
169
|
this._allSelectionSubscription = this.selectedService.select$
|
|
164
170
|
.subscribe((event) => {
|
|
165
|
-
if (
|
|
166
|
-
|
|
167
|
-
|
|
171
|
+
if (this.selectMultiple) {
|
|
172
|
+
if (event.index == null) {
|
|
173
|
+
this.allSelected = event.selected;
|
|
174
|
+
this.items.forEach((item) => item.selected = event.selected);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
this.items.forEach((item) => {
|
|
178
|
+
if (item.sequence === event.index)
|
|
179
|
+
item.selected = event.selected;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
this.items.forEach((item) => {
|
|
185
|
+
if (item.sequence === event.index)
|
|
186
|
+
item.selected = event.selected;
|
|
187
|
+
else
|
|
188
|
+
item.selected = false;
|
|
189
|
+
});
|
|
168
190
|
}
|
|
169
191
|
this.selected.emit(event);
|
|
170
192
|
});
|
|
@@ -178,7 +200,7 @@ export class TableComponent {
|
|
|
178
200
|
let tableColumns = JSON.parse(JSON.stringify(columns));
|
|
179
201
|
if (this.sequence)
|
|
180
202
|
tableColumns.unshift(TableConstants.SEQUENCE_COLUMN);
|
|
181
|
-
if (this.selectable)
|
|
203
|
+
if (this.selectable && this.selectMultiple)
|
|
182
204
|
tableColumns.unshift(TableConstants.SELECTABLE_COLUMN);
|
|
183
205
|
if (this.expanded)
|
|
184
206
|
tableColumns.push(TableConstants.EXPANDED_COLUMN);
|
|
@@ -223,10 +245,10 @@ export class TableComponent {
|
|
|
223
245
|
}
|
|
224
246
|
}
|
|
225
247
|
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TableComponent, deps: [{ token: i1.ColumnsToggleService }, { token: WINDOW }, { token: i2.TableSelectService }, { token: i3.SortingService }, { token: i0.ChangeDetectorRef }, { token: i3.ResizeService }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
|
|
226
|
-
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TableComponent, selector: "sfc-table", inputs: { position: "position", delimeter: "delimeter", dataType: "dataType", dataToggle: "dataToggle", showColumns: "showColumns", columnsToggle: "columnsToggle", pagination: "pagination", sequence: "sequence", expanded: "expanded", notFoundLabel: "notFoundLabel", loadMoreLabel: "loadMoreLabel", showTotal: "showTotal", totalLabel: "totalLabel", paginationCount: "paginationCount", paginationLimits: "paginationLimits", showLoading: "showLoading", columnContent: "columnContent", rowContent: "rowContent", cardContent: "cardContent", data: "data", data$: "data$", columns: "columns", showColumnsLabel: "showColumnsLabel", hideColumnsLabel: "hideColumnsLabel", resize: "resize", loadType: "loadType", loader: "loader", filter: "filter", predicate$: "predicate$", selectable: "selectable", selectOnClick: "selectOnClick", dataListLabel: "dataListLabel", dataCardsLabel: "dataCardsLabel" }, outputs: { selected: "selected" }, host: { properties: { "class": "this.dataType", "class.loading": "this.loading" } }, providers: [SortingService, TableSelectService, ColumnsToggleService, ResizeService], queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"container\">\r\n <div *ngIf=\"showLoading\" class=\"table-loader\"></div>\r\n <div class=\"columns-container\">\r\n <div class=\"columns-actions\">\r\n <div class=\"left\">\r\n <sfc-columns-toggle *ngIf=\"columnsToggle\" [showLabel]=\"showColumnsLabel\" [hideLabel]=\"hideColumnsLabel\">\r\n </sfc-columns-toggle>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <p *ngIf=\"showTotal\">{{totalLabel}}: <span>{{total}}</span></p>\r\n <sfc-toggle-switcher *ngIf=\"dataToggle\" [active]=\"dataType === TableDataType.Cards\"\r\n [leftModel]=\"toggleSwitcherLeftModel\" [rightModel]=\"toggleSwitcherRightModel\"\r\n (click)=\"onDataTypeToggle()\">\r\n </sfc-toggle-switcher>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showColumns && columnsToggleService.show\" class=\"columns\">\r\n <div class=\"column\" [style.justifyContent]=\"position\" [style.minWidth]=\"column.calculatedWidth\"\r\n *ngFor=\"let column of tableColumns\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <sfc-selectable-table-column *ngSwitchCase=\"TableColumnType.Selectable\"\r\n [selected]=\"allRowsSelected\">\r\n </sfc-selectable-table-column>\r\n\r\n <sfc-sorting-column *ngSwitchDefault [model]=\"column.sorting!\" [id]=\"column.field\">\r\n\r\n <sfc-template-content [referenceContent]=\"columnContent\" [templatesContent]=\"templates\"\r\n [templateType]=\"TableTemplate.Column\" [defaultContent]=\"defaultColumn\"\r\n [contextData]=\"column\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultColumn>\r\n <sfc-default-table-column [model]=\"column\"></sfc-default-table-column>\r\n </ng-template>\r\n\r\n </sfc-sorting-column>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sfc-delimeter *ngIf=\"delimeter\" class=\"table-delimeter\"></sfc-delimeter>\r\n\r\n <div class=\"rows-container\">\r\n <sfc-load-container [id]=\"loadContainerId\" [type]=\"LoadContainerType.Table\" [model]=\"loadModel\"\r\n [paginationCount]=\"paginationCount\" [paginationLimits]=\"paginationLimits\" [showLoading]=\"showLoading\"\r\n (handleSuccess)=\"handleSuccess($event)\" (handleLoading)=\"loading = $event\" [emptyLabel]=\"notFoundLabel\" [loadMoreLabel]=\"loadMoreLabel\">\r\n <div class=\"row\" *ngFor=\"let item of items; index as i;\">\r\n <ng-container [ngSwitch]=\"dataType\">\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Rows\" [referenceContent]=\"rowContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Row\" [defaultContent]=\"defaultRow\"\r\n [contextData]=\"{model: item, columns: tableColumns, position: position}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultRow>\r\n <sfc-default-table-row [columns]=\"tableColumns\" [model]=\"item\" [position]=\"position\"\r\n [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-row>\r\n </ng-template>\r\n\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Cards\" [referenceContent]=\"cardContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Card\"\r\n [defaultContent]=\"defaultCard\" [contextData]=\"{model: item, columns: tableColumns}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultCard>\r\n <sfc-default-table-card [columns]=\"tableColumns\" [model]=\"item\" [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-card>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n </sfc-load-container>\r\n </div>\r\n</div>", styles: [":host .container{display:block;margin:2em auto;width:90%;position:relative}:host .container .columns-container{display:flex;flex-flow:row wrap;transition:.5s;justify-content:space-between}:host .container .columns-container .columns-actions{display:flex;align-items:center;width:100%}:host .container .columns-container .columns-actions .right{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;margin-left:auto}:host .container .columns-container .columns-actions .right>p{transition:color .5s ease;margin:0;font-size:.8em;padding-right:1em;font-weight:700;-webkit-user-select:none;user-select:none;text-align:center}:host .container .columns-container .columns-actions .right>p,:host-context(.sfc-default-theme) :host .container .columns-container .columns-actions .right>p{color:#545e61}:host-context(.sfc-dark-theme) :host .container .columns-container .columns-actions .right>p{color:#fff}:host .container .columns-container .columns-actions .right>p span{font-size:1.1em;color:#ffce54}:host .container .columns-container .columns{text-align:center;padding:.5em;width:100%;display:flex;flex-flow:row wrap}:host .container .columns-container .columns .column{text-align:center;padding:.5em;display:flex;align-items:center;justify-content:center;box-sizing:border-box}:host .container .rows-container{display:flex;flex-wrap:wrap;justify-content:center;transition:.5s;gap:1em;margin-block:1em 2em}:host .container .rows-container sfc-load-container ::ng-deep>.content{background:transparent}:host .container .rows-container sfc-load-container.loading{cursor:initial;z-index:9999}:host .container .rows-container sfc-load-container.loading .preloader{transition:background .5s ease}:host .container .rows-container sfc-load-container.loading .preloader,:host-context(.sfc-default-theme) :host .container .rows-container sfc-load-container.loading .preloader{background:#fff}:host-context(.sfc-dark-theme) :host .container .rows-container sfc-load-container.loading .preloader{background:transparent}:host .container .rows-container .row{display:contents}:host.loading .container .table-loader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;z-index:9998;position:absolute;transition:background-color .5s ease;opacity:.7}:host.loading .container .table-loader,:host-context(.sfc-default-theme) :host.loading .container .table-loader{background-color:#fff}:host-context(.sfc-dark-theme) :host.loading .container .table-loader{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }, { kind: "component", type: i3.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { kind: "component", type: i3.ToggleSwitcherComponent, selector: "sfc-toggle-switcher", inputs: ["active", "disabled", "leftModel", "rightModel"] }, { kind: "component", type: i3.LoadContainerComponent, selector: "sfc-load-container", inputs: ["id", "type", "open", "loadMore", "loadMoreLabel", "showEmpty", "emptyLabel", "model", "scrollTarget", "paginationCount", "paginationLimits", "showLoading"], outputs: ["handleError", "handleSuccess", "handleLoading"] }, { kind: "component", type: i5.DefaultTableColumnComponent, selector: "sfc-default-table-column", inputs: ["model"] }, { kind: "component", type: i6.SelectableTableColumnComponent, selector: "sfc-selectable-table-column", inputs: ["selected"] }, { kind: "component", type: i7.ColumnsToggleComponent, selector: "sfc-columns-toggle", inputs: ["showLabel", "hideLabel"] }, { kind: "component", type: i8.SortingColumnComponent, selector: "sfc-sorting-column", inputs: ["id", "model"] }, { kind: "component", type: i9.DefaultTableRowComponent, selector: "sfc-default-table-row" }, { kind: "component", type: i10.DefaultTableCardComponent, selector: "sfc-default-table-card" }] });
|
|
248
|
+
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TableComponent, selector: "sfc-table", inputs: { position: "position", delimeter: "delimeter", dataType: "dataType", dataToggle: "dataToggle", showColumns: "showColumns", columnsToggle: "columnsToggle", pagination: "pagination", sequence: "sequence", expanded: "expanded", notFoundLabel: "notFoundLabel", loadMoreLabel: "loadMoreLabel", showTotal: "showTotal", totalLabel: "totalLabel", paginationCount: "paginationCount", paginationLimits: "paginationLimits", showLoading: "showLoading", columnContent: "columnContent", rowContent: "rowContent", cardContent: "cardContent", data: "data", data$: "data$", columns: "columns", showColumnsLabel: "showColumnsLabel", hideColumnsLabel: "hideColumnsLabel", resize: "resize", loadType: "loadType", loader: "loader", filter: "filter", predicate$: "predicate$", selectable: "selectable", selectOnClick: "selectOnClick", selectMultiple: "selectMultiple", dataListLabel: "dataListLabel", dataCardsLabel: "dataCardsLabel" }, outputs: { selected: "selected" }, host: { properties: { "class": "this.dataType", "class.loading": "this.loading" } }, providers: [SortingService, TableSelectService, ColumnsToggleService, ResizeService], queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"container\">\r\n <div *ngIf=\"showLoading\" class=\"table-loader\"></div>\r\n <div class=\"columns-container\">\r\n <div class=\"columns-actions\">\r\n <div class=\"left\">\r\n <sfc-columns-toggle *ngIf=\"columnsToggle\" [showLabel]=\"showColumnsLabel\" [hideLabel]=\"hideColumnsLabel\">\r\n </sfc-columns-toggle>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <p *ngIf=\"showTotal\">{{totalLabel}}: <span>{{total}}</span></p>\r\n <sfc-toggle-switcher *ngIf=\"dataToggle\" [active]=\"dataType === TableDataType.Cards\"\r\n [leftModel]=\"toggleSwitcherLeftModel\" [rightModel]=\"toggleSwitcherRightModel\"\r\n (click)=\"onDataTypeToggle()\">\r\n </sfc-toggle-switcher>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showColumns && columnsToggleService.show\" class=\"columns\">\r\n <div class=\"column\" [style.justifyContent]=\"position\" [style.minWidth]=\"column.calculatedWidth\"\r\n *ngFor=\"let column of tableColumns\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <sfc-selectable-table-column *ngSwitchCase=\"TableColumnType.Selectable\"\r\n [selected]=\"allRowsSelected\">\r\n </sfc-selectable-table-column>\r\n\r\n <sfc-sorting-column *ngSwitchDefault [model]=\"column.sorting!\" [id]=\"column.field\">\r\n\r\n <sfc-template-content [referenceContent]=\"columnContent\" [templatesContent]=\"templates\"\r\n [templateType]=\"TableTemplate.Column\" [defaultContent]=\"defaultColumn\"\r\n [contextData]=\"column\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultColumn>\r\n <sfc-default-table-column [model]=\"column\"></sfc-default-table-column>\r\n </ng-template>\r\n\r\n </sfc-sorting-column>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sfc-delimeter *ngIf=\"delimeter\" class=\"table-delimeter\"></sfc-delimeter>\r\n\r\n <div class=\"rows-container\">\r\n <sfc-load-container [id]=\"loadContainerId\" [type]=\"LoadContainerType.Table\" [model]=\"loadModel\"\r\n [paginationCount]=\"paginationCount\" [paginationLimits]=\"paginationLimits\" [showLoading]=\"showLoading\"\r\n (handleSuccess)=\"handleSuccess($event)\" (handleLoading)=\"loading = $event\" [emptyLabel]=\"notFoundLabel\"\r\n [loadMoreLabel]=\"loadMoreLabel\">\r\n <div class=\"row\" *ngFor=\"let item of items; index as i;\">\r\n <ng-container [ngSwitch]=\"dataType\">\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Rows\" [referenceContent]=\"rowContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Row\" [defaultContent]=\"defaultRow\"\r\n [contextData]=\"{model: item, columns: tableColumns, position: position}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultRow>\r\n <sfc-default-table-row [columns]=\"tableColumns\" [model]=\"item\" [position]=\"position\"\r\n [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-row>\r\n </ng-template>\r\n\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Cards\" [referenceContent]=\"cardContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Card\"\r\n [defaultContent]=\"defaultCard\" [contextData]=\"{model: item, columns: tableColumns}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultCard>\r\n <sfc-default-table-card [columns]=\"tableColumns\" [model]=\"item\" [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-card>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n </sfc-load-container>\r\n </div>\r\n</div>", styles: [":host .container{display:block;margin:2em auto;width:90%;position:relative}:host .container .columns-container{display:flex;flex-flow:row wrap;transition:.5s;justify-content:space-between}:host .container .columns-container .columns-actions{display:flex;align-items:center;width:100%}:host .container .columns-container .columns-actions .right{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;margin-left:auto}:host .container .columns-container .columns-actions .right>p{transition:color .5s ease;margin:0;font-size:.8em;padding-right:1em;font-weight:700;-webkit-user-select:none;user-select:none;text-align:center}:host .container .columns-container .columns-actions .right>p,:host-context(.sfc-default-theme) :host .container .columns-container .columns-actions .right>p{color:#545e61}:host-context(.sfc-dark-theme) :host .container .columns-container .columns-actions .right>p{color:#fff}:host .container .columns-container .columns-actions .right>p span{font-size:1.1em;color:#ffce54}:host .container .columns-container .columns{text-align:center;padding:.5em;width:100%;display:flex;flex-flow:row wrap}:host .container .columns-container .columns .column{text-align:center;padding:.5em;display:flex;align-items:center;justify-content:center;box-sizing:border-box}:host .container .rows-container{display:flex;flex-wrap:wrap;justify-content:center;transition:.5s;gap:1em;margin-block:1em 2em}:host .container .rows-container sfc-load-container ::ng-deep>.content{background:transparent}:host .container .rows-container sfc-load-container.loading{cursor:initial;z-index:9999}:host .container .rows-container sfc-load-container.loading .preloader{transition:background .5s ease}:host .container .rows-container sfc-load-container.loading .preloader,:host-context(.sfc-default-theme) :host .container .rows-container sfc-load-container.loading .preloader{background:#fff}:host-context(.sfc-dark-theme) :host .container .rows-container sfc-load-container.loading .preloader{background:transparent}:host .container .rows-container .row{display:contents}:host.loading .container .table-loader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;z-index:9998;position:absolute;transition:background-color .5s ease;opacity:.7}:host.loading .container .table-loader,:host-context(.sfc-default-theme) :host.loading .container .table-loader{background-color:#fff}:host-context(.sfc-dark-theme) :host.loading .container .table-loader{background-color:transparent}:host.rows .container .rows-container .row{display:block;width:100%;margin:.5em 0}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }, { kind: "component", type: i3.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { kind: "component", type: i3.ToggleSwitcherComponent, selector: "sfc-toggle-switcher", inputs: ["active", "disabled", "leftModel", "rightModel"], outputs: ["toggle"] }, { kind: "component", type: i3.LoadContainerComponent, selector: "sfc-load-container", inputs: ["id", "type", "open", "loadMore", "loadMoreLabel", "showEmpty", "emptyLabel", "model", "scrollTarget", "paginationCount", "paginationLimits", "showLoading"], outputs: ["handleError", "handleSuccess", "handleLoading"] }, { kind: "component", type: i5.DefaultTableColumnComponent, selector: "sfc-default-table-column", inputs: ["model"] }, { kind: "component", type: i6.SelectableTableColumnComponent, selector: "sfc-selectable-table-column", inputs: ["selected"] }, { kind: "component", type: i7.ColumnsToggleComponent, selector: "sfc-columns-toggle", inputs: ["showLabel", "hideLabel"] }, { kind: "component", type: i8.SortingColumnComponent, selector: "sfc-sorting-column", inputs: ["id", "model"] }, { kind: "component", type: i9.DefaultTableRowComponent, selector: "sfc-default-table-row" }, { kind: "component", type: i10.DefaultTableCardComponent, selector: "sfc-default-table-card" }] });
|
|
227
249
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TableComponent, decorators: [{
|
|
228
250
|
type: Component,
|
|
229
|
-
args: [{ selector: 'sfc-table', providers: [SortingService, TableSelectService, ColumnsToggleService, ResizeService], template: "<div class=\"container\">\r\n <div *ngIf=\"showLoading\" class=\"table-loader\"></div>\r\n <div class=\"columns-container\">\r\n <div class=\"columns-actions\">\r\n <div class=\"left\">\r\n <sfc-columns-toggle *ngIf=\"columnsToggle\" [showLabel]=\"showColumnsLabel\" [hideLabel]=\"hideColumnsLabel\">\r\n </sfc-columns-toggle>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <p *ngIf=\"showTotal\">{{totalLabel}}: <span>{{total}}</span></p>\r\n <sfc-toggle-switcher *ngIf=\"dataToggle\" [active]=\"dataType === TableDataType.Cards\"\r\n [leftModel]=\"toggleSwitcherLeftModel\" [rightModel]=\"toggleSwitcherRightModel\"\r\n (click)=\"onDataTypeToggle()\">\r\n </sfc-toggle-switcher>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showColumns && columnsToggleService.show\" class=\"columns\">\r\n <div class=\"column\" [style.justifyContent]=\"position\" [style.minWidth]=\"column.calculatedWidth\"\r\n *ngFor=\"let column of tableColumns\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <sfc-selectable-table-column *ngSwitchCase=\"TableColumnType.Selectable\"\r\n [selected]=\"allRowsSelected\">\r\n </sfc-selectable-table-column>\r\n\r\n <sfc-sorting-column *ngSwitchDefault [model]=\"column.sorting!\" [id]=\"column.field\">\r\n\r\n <sfc-template-content [referenceContent]=\"columnContent\" [templatesContent]=\"templates\"\r\n [templateType]=\"TableTemplate.Column\" [defaultContent]=\"defaultColumn\"\r\n [contextData]=\"column\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultColumn>\r\n <sfc-default-table-column [model]=\"column\"></sfc-default-table-column>\r\n </ng-template>\r\n\r\n </sfc-sorting-column>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sfc-delimeter *ngIf=\"delimeter\" class=\"table-delimeter\"></sfc-delimeter>\r\n\r\n <div class=\"rows-container\">\r\n <sfc-load-container [id]=\"loadContainerId\" [type]=\"LoadContainerType.Table\" [model]=\"loadModel\"\r\n [paginationCount]=\"paginationCount\" [paginationLimits]=\"paginationLimits\" [showLoading]=\"showLoading\"\r\n (handleSuccess)=\"handleSuccess($event)\" (handleLoading)=\"loading = $event\" [emptyLabel]=\"notFoundLabel\"
|
|
251
|
+
args: [{ selector: 'sfc-table', providers: [SortingService, TableSelectService, ColumnsToggleService, ResizeService], template: "<div class=\"container\">\r\n <div *ngIf=\"showLoading\" class=\"table-loader\"></div>\r\n <div class=\"columns-container\">\r\n <div class=\"columns-actions\">\r\n <div class=\"left\">\r\n <sfc-columns-toggle *ngIf=\"columnsToggle\" [showLabel]=\"showColumnsLabel\" [hideLabel]=\"hideColumnsLabel\">\r\n </sfc-columns-toggle>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <p *ngIf=\"showTotal\">{{totalLabel}}: <span>{{total}}</span></p>\r\n <sfc-toggle-switcher *ngIf=\"dataToggle\" [active]=\"dataType === TableDataType.Cards\"\r\n [leftModel]=\"toggleSwitcherLeftModel\" [rightModel]=\"toggleSwitcherRightModel\"\r\n (click)=\"onDataTypeToggle()\">\r\n </sfc-toggle-switcher>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showColumns && columnsToggleService.show\" class=\"columns\">\r\n <div class=\"column\" [style.justifyContent]=\"position\" [style.minWidth]=\"column.calculatedWidth\"\r\n *ngFor=\"let column of tableColumns\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <sfc-selectable-table-column *ngSwitchCase=\"TableColumnType.Selectable\"\r\n [selected]=\"allRowsSelected\">\r\n </sfc-selectable-table-column>\r\n\r\n <sfc-sorting-column *ngSwitchDefault [model]=\"column.sorting!\" [id]=\"column.field\">\r\n\r\n <sfc-template-content [referenceContent]=\"columnContent\" [templatesContent]=\"templates\"\r\n [templateType]=\"TableTemplate.Column\" [defaultContent]=\"defaultColumn\"\r\n [contextData]=\"column\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultColumn>\r\n <sfc-default-table-column [model]=\"column\"></sfc-default-table-column>\r\n </ng-template>\r\n\r\n </sfc-sorting-column>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sfc-delimeter *ngIf=\"delimeter\" class=\"table-delimeter\"></sfc-delimeter>\r\n\r\n <div class=\"rows-container\">\r\n <sfc-load-container [id]=\"loadContainerId\" [type]=\"LoadContainerType.Table\" [model]=\"loadModel\"\r\n [paginationCount]=\"paginationCount\" [paginationLimits]=\"paginationLimits\" [showLoading]=\"showLoading\"\r\n (handleSuccess)=\"handleSuccess($event)\" (handleLoading)=\"loading = $event\" [emptyLabel]=\"notFoundLabel\"\r\n [loadMoreLabel]=\"loadMoreLabel\">\r\n <div class=\"row\" *ngFor=\"let item of items; index as i;\">\r\n <ng-container [ngSwitch]=\"dataType\">\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Rows\" [referenceContent]=\"rowContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Row\" [defaultContent]=\"defaultRow\"\r\n [contextData]=\"{model: item, columns: tableColumns, position: position}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultRow>\r\n <sfc-default-table-row [columns]=\"tableColumns\" [model]=\"item\" [position]=\"position\"\r\n [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-row>\r\n </ng-template>\r\n\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Cards\" [referenceContent]=\"cardContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Card\"\r\n [defaultContent]=\"defaultCard\" [contextData]=\"{model: item, columns: tableColumns}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultCard>\r\n <sfc-default-table-card [columns]=\"tableColumns\" [model]=\"item\" [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-card>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n </sfc-load-container>\r\n </div>\r\n</div>", styles: [":host .container{display:block;margin:2em auto;width:90%;position:relative}:host .container .columns-container{display:flex;flex-flow:row wrap;transition:.5s;justify-content:space-between}:host .container .columns-container .columns-actions{display:flex;align-items:center;width:100%}:host .container .columns-container .columns-actions .right{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;margin-left:auto}:host .container .columns-container .columns-actions .right>p{transition:color .5s ease;margin:0;font-size:.8em;padding-right:1em;font-weight:700;-webkit-user-select:none;user-select:none;text-align:center}:host .container .columns-container .columns-actions .right>p,:host-context(.sfc-default-theme) :host .container .columns-container .columns-actions .right>p{color:#545e61}:host-context(.sfc-dark-theme) :host .container .columns-container .columns-actions .right>p{color:#fff}:host .container .columns-container .columns-actions .right>p span{font-size:1.1em;color:#ffce54}:host .container .columns-container .columns{text-align:center;padding:.5em;width:100%;display:flex;flex-flow:row wrap}:host .container .columns-container .columns .column{text-align:center;padding:.5em;display:flex;align-items:center;justify-content:center;box-sizing:border-box}:host .container .rows-container{display:flex;flex-wrap:wrap;justify-content:center;transition:.5s;gap:1em;margin-block:1em 2em}:host .container .rows-container sfc-load-container ::ng-deep>.content{background:transparent}:host .container .rows-container sfc-load-container.loading{cursor:initial;z-index:9999}:host .container .rows-container sfc-load-container.loading .preloader{transition:background .5s ease}:host .container .rows-container sfc-load-container.loading .preloader,:host-context(.sfc-default-theme) :host .container .rows-container sfc-load-container.loading .preloader{background:#fff}:host-context(.sfc-dark-theme) :host .container .rows-container sfc-load-container.loading .preloader{background:transparent}:host .container .rows-container .row{display:contents}:host.loading .container .table-loader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;z-index:9998;position:absolute;transition:background-color .5s ease;opacity:.7}:host.loading .container .table-loader,:host-context(.sfc-default-theme) :host.loading .container .table-loader{background-color:#fff}:host-context(.sfc-dark-theme) :host.loading .container .table-loader{background-color:transparent}:host.rows .container .rows-container .row{display:block;width:100%;margin:.5em 0}\n"] }]
|
|
230
252
|
}], ctorParameters: function () { return [{ type: i1.ColumnsToggleService }, { type: Window, decorators: [{
|
|
231
253
|
type: Inject,
|
|
232
254
|
args: [WINDOW]
|
|
@@ -298,6 +320,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
298
320
|
type: Input
|
|
299
321
|
}], selectOnClick: [{
|
|
300
322
|
type: Input
|
|
323
|
+
}], selectMultiple: [{
|
|
324
|
+
type: Input
|
|
301
325
|
}], selected: [{
|
|
302
326
|
type: Output
|
|
303
327
|
}], dataListLabel: [{
|
|
@@ -308,4 +332,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
308
332
|
type: ContentChildren,
|
|
309
333
|
args: [TemplateReferenceDirective, { read: TemplateReferenceDirective }]
|
|
310
334
|
}] } });
|
|
311
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDcUQsU0FBUyxFQUFFLGVBQWUsRUFDM0UsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUN6QyxNQUFNLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEdBQUcsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQzdELFdBQVcsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sRUFDMUYsV0FBVyxFQUFFLGlCQUFpQixFQUFrQixxQkFBcUIsRUFDeEIsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBb0UsT0FBTyxFQUNuRyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0s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QUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBTU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFZTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQWNOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFjQyxPQUFPO3NCQURiLFdBQVc7dUJBQUMsU0FBUyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQVF2QyxVQUFVO3NCQURULEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTTtnQkFrQlAsYUFBYTtzQkFEWixLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkE2Qk4sU0FBUztzQkFEUixlQUFlO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsSUFBSSxFQUFFLDBCQUEwQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRG9DaGVjaywgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgSXRlcmFibGVEaWZmZXIsIEl0ZXJhYmxlRGlmZmVycywgT25EZXN0cm95LFxyXG4gIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgYWxsLCBmaXJzdE9yRGVmYXVsdCwgZ2V0Q2FsY1ZhbHVlLCBnZXRDc3NMaWtlVmFsdWUsIGlzRGVmaW5lZCxcclxuICBNZWRpYUxpbWl0cywgUG9zaXRpb24sIFJlc2l6ZVNlcnZpY2UsIFNvcnRpbmdEaXJlY3Rpb24sIFRlbXBsYXRlUmVmZXJlbmNlRGlyZWN0aXZlLCBXSU5ET1csXHJcbiAgVUlDb25zdGFudHMsIExvYWRDb250YWluZXJUeXBlLCBMb2FkZXJGdW5jdGlvbiwgTG9hZENvbnRhaW5lckxvYWRUeXBlLCBJTG9hZENvbnRhaW5lck1vZGVsLFxyXG4gIElMb2FkQ29udGFpbmVyUmVzdWx0TW9kZWwsIElQYWdpbmF0aW9uTW9kZWwsIFBhZ2luYXRpb25Db25zdGFudHMsIGdlbmVyYXRlR3VpZCwgYW55LFxyXG4gIGhhc0l0ZW0sIFNvcnRpbmdTZXJ2aWNlLCBJU29ydGluZ01vZGVsLCBJTG9hZENvbnRhaW5lclByZWRpY2F0ZVBhcmFtZXRlcnMsIEZpbHRlckZ1bmN0aW9uLCBVSUNsYXNzLCBJVG9nZ2xlU3dpdGNoZXJNb2RlbFxyXG59IGZyb20gJ25neC1zZmMtY29tbW9uJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRhYmxlQ29sdW1uVHlwZSB9IGZyb20gJy4vcGFydHMvY29sdW1ucy90YWJsZS1jb2x1bW4tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgSVRhYmxlQ29sdW1uRXh0ZW5kZWRNb2RlbCwgSVRhYmxlQ29sdW1uTW9kZWwgfSBmcm9tICcuL3BhcnRzL2NvbHVtbnMvdGFibGUtY29sdW1uLm1vZGVsJztcclxuaW1wb3J0IHsgQ29sdW1uc1RvZ2dsZVNlcnZpY2UgfSBmcm9tICcuL3BhcnRzL3RvZ2dsZS9zZXJ2aWNlL2NvbHVtbnMtdG9nZ2xlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJVGFibGVTZWxlY3RFdmVudCB9IGZyb20gJy4vc2VydmljZS9zZWxlY3QvdGFibGUtc2VsZWN0LmV2ZW50JztcclxuaW1wb3J0IHsgVGFibGVTZWxlY3RTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL3NlbGVjdC90YWJsZS1zZWxlY3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFRhYmxlRGF0YVR5cGUgfSBmcm9tICcuL2VudW1zL3RhYmxlLWRhdGEtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgVGFibGVDb25zdGFudHMgfSBmcm9tICcuL3RhYmxlLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFRhYmxlVGVtcGxhdGUgfSBmcm9tICcuL2VudW1zL3RhYmxlLXRlbXBsYXRlLmVudW0nO1xyXG5pbXBvcnQgeyBJVGFibGVNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3RhYmxlLm1vZGVsJztcclxuaW1wb3J0IHsgZmFUYWJsZUxpc3QsIGZhQm9yZGVyQWxsIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ZjLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbU29ydGluZ1NlcnZpY2UsIFRhYmxlU2VsZWN0U2VydmljZSwgQ29sdW1uc1RvZ2dsZVNlcnZpY2UsIFJlc2l6ZVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgRG9DaGVjaywgT25EZXN0cm95IHtcclxuXHJcbiAgVGFibGVEYXRhVHlwZSA9IFRhYmxlRGF0YVR5cGU7XHJcbiAgVGFibGVDb2x1bW5UeXBlID0gVGFibGVDb2x1bW5UeXBlO1xyXG4gIFRhYmxlVGVtcGxhdGUgPSBUYWJsZVRlbXBsYXRlO1xyXG4gIENvbnN0YW50cyA9IFRhYmxlQ29uc3RhbnRzO1xyXG4gIExvYWRDb250YWluZXJUeXBlID0gTG9hZENvbnRhaW5lclR5cGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcG9zaXRpb246IFBvc2l0aW9uID0gUG9zaXRpb24uQ2VudGVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRlbGltZXRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGRhdGFUeXBlOiBUYWJsZURhdGFUeXBlID0gVGFibGVEYXRhVHlwZS5Sb3dzO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRhdGFUb2dnbGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dDb2x1bW5zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBjb2x1bW5zVG9nZ2xlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGFnaW5hdGlvbjogSVBhZ2luYXRpb25Nb2RlbCA9IFBhZ2luYXRpb25Db25zdGFudHMuREVGQVVMVF9QQUdJTkFUSU9OO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlcXVlbmNlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBub3RGb3VuZExhYmVsOiBzdHJpbmcgPSB0aGlzLkNvbnN0YW50cy5OT1RfRk9VTkRfTEFCRUxfREVGQVVMVDtcclxuXHJcbiAgQElucHV0KClcclxuICBsb2FkTW9yZUxhYmVsOiBzdHJpbmcgPSB0aGlzLkNvbnN0YW50cy5MT0FEX01PUkVfTEFCRUxfREVGQVVMVDtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93VG90YWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICB0b3RhbExhYmVsOiBzdHJpbmcgPSB0aGlzLkNvbnN0YW50cy5UT1RBTF9MQUJFTF9ERUZBVUxUO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBhZ2luYXRpb25Db3VudDogbnVtYmVyID0gUGFnaW5hdGlvbkNvbnN0YW50cy5ERUZBVUxUX0NPVU5UO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBhZ2luYXRpb25MaW1pdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93TG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8vIFRlbXBsYXRlIHJlZmVyZW5jZXMgXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29sdW1uQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcm93Q29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY2FyZENvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvLyBFbmQgVGVtcGxhdGUgcmVmZXJlbmNlc1xyXG5cclxuICAvL0RhdGFcclxuXHJcbiAgQElucHV0KClcclxuICBkYXRhOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRhdGEkITogT2JzZXJ2YWJsZTxhbnlbXT47XHJcblxyXG4gIHByaXZhdGUgZGF0YURpZmZlciE6IEl0ZXJhYmxlRGlmZmVyPGFueT47XHJcblxyXG4gIHByaXZhdGUgZGF0YVN1YmplY3QhOiBCZWhhdmlvclN1YmplY3Q8YW55W10+O1xyXG5cclxuICAvLyBFbmQgRGF0YVxyXG5cclxuICAvLyBDb2x1bW5zXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29sdW1uczogSVRhYmxlQ29sdW1uTW9kZWxbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dDb2x1bW5zTGFiZWwhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaGlkZUNvbHVtbnNMYWJlbCE6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICByZXNpemU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIGNvbHVtbnNEaWZmZXIhOiBJdGVyYWJsZURpZmZlcjxJVGFibGVDb2x1bW5Nb2RlbD47XHJcblxyXG4gIHByaXZhdGUgY29sdW1uc1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxJVGFibGVDb2x1bW5Nb2RlbFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVRhYmxlQ29sdW1uTW9kZWxbXT4odGhpcy5jb2x1bW5zKTtcclxuXHJcbiAgcHVibGljIHRhYmxlQ29sdW1uczogSVRhYmxlQ29sdW1uRXh0ZW5kZWRNb2RlbFtdID0gW107XHJcblxyXG4gIC8vIEVuZCBDb2x1bW5zICBcclxuXHJcbiAgLy8gTG9hZCBjb250YWluZXJcclxuXHJcbiAgQElucHV0KClcclxuICBsb2FkVHlwZTogTG9hZENvbnRhaW5lckxvYWRUeXBlID0gTG9hZENvbnRhaW5lckxvYWRUeXBlLlBhZ2luYXRpb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbG9hZGVyITogTG9hZGVyRnVuY3Rpb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVyPzogRmlsdGVyRnVuY3Rpb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHJlZGljYXRlJCE6IE9ic2VydmFibGU8SUxvYWRDb250YWluZXJQcmVkaWNhdGVQYXJhbWV0ZXJzIHwgbnVsbD47XHJcblxyXG4gIHB1YmxpYyBsb2FkTW9kZWwhOiBJTG9hZENvbnRhaW5lck1vZGVsO1xyXG5cclxuICBwdWJsaWMgbG9hZENvbnRhaW5lcklkOiBzdHJpbmcgPSBnZW5lcmF0ZUd1aWQoKTtcclxuXHJcbiAgcHVibGljIGl0ZW1zOiBJVGFibGVNb2RlbFtdID0gW107XHJcblxyXG4gIHB1YmxpYyB0b3RhbDogbnVtYmVyID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBwYWdlOiBudW1iZXIgPSBQYWdpbmF0aW9uQ29uc3RhbnRzLkRFRkFVTFRfUEFHRTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKGBjbGFzcy4ke1VJQ2xhc3MuTG9hZGluZ31gKVxyXG4gIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIEVuZCBMb2FkIGNvbnRhaW5lclxyXG5cclxuICAvLyBTZWxlY3Rpb25cclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0T25DbGljazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPElUYWJsZVNlbGVjdEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhYmxlU2VsZWN0RXZlbnQ+KCk7XHJcblxyXG4gIHB1YmxpYyBnZXQgYWxsUm93c1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLmFsbFNlbGVjdGVkIHx8IHRoaXMudG90YWwgPT0gdGhpcy5zZWxlY3RlZFNlcnZpY2Uuc2VsZWN0ZWRJdGVtcy5sZW5ndGgpXHJcbiAgICAgICYmICFhbnkodGhpcy5zZWxlY3RlZFNlcnZpY2UudW5zZWxlY3RlZEl0ZW1zKVxyXG4gICAgICAmJiBhbnkodGhpcy5pdGVtcyk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBhbGxTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9hbGxTZWxlY3Rpb25TdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8vIEVuZCBTZWxlY3Rpb25cclxuXHJcbiAgLy8gRGF0YSB0b2dnbGVcclxuXHJcbiAgQElucHV0KClcclxuICBkYXRhTGlzdExhYmVsOiBzdHJpbmcgPSB0aGlzLkNvbnN0YW50cy5EQVRBX0xJU1RfTEFCRUw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGF0YUNhcmRzTGFiZWw6IHN0cmluZyA9IHRoaXMuQ29uc3RhbnRzLkRBVEFfQ0FSRFNfTEFCRUw7XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVTd2l0Y2hlckxlZnRNb2RlbCE6IElUb2dnbGVTd2l0Y2hlck1vZGVsO1xyXG5cclxuICBwdWJsaWMgdG9nZ2xlU3dpdGNoZXJSaWdodE1vZGVsITogSVRvZ2dsZVN3aXRjaGVyTW9kZWw7XHJcblxyXG4gIC8vIEVuZCBkYXRhIHRvZ2dsZVxyXG5cclxuICBwdWJsaWMgdm0kITogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICBwcml2YXRlIF9jb2x1bW5zUmVzaXplU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIF9jb2x1bW5zU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIF9zb3J0aW5nU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIGdldCBpbml0aWFsU29ydGluZygpOiBJU29ydGluZ01vZGVsIHwgbnVsbCB7XHJcbiAgICBjb25zdCBhY3RpdmVTb3J0aW5nQ29sdW1uID0gZmlyc3RPckRlZmF1bHQodGhpcy5jb2x1bW5zLCBjb2x1bW4gPT4gY29sdW1uLnNvcnRpbmc/LmFjdGl2ZSEpO1xyXG5cclxuICAgIGlmIChhY3RpdmVTb3J0aW5nQ29sdW1uKVxyXG4gICAgICByZXR1cm4geyBpZDogYWN0aXZlU29ydGluZ0NvbHVtbi5maWVsZCwgZGlyZWN0aW9uOiBhY3RpdmVTb3J0aW5nQ29sdW1uLnNvcnRpbmc/LmRpcmVjdGlvbiEgfTtcclxuXHJcbiAgICBjb25zdCBlbmFibGVkU29ydGluZ0NvbHVtbiA9IGZpcnN0T3JEZWZhdWx0KHRoaXMuY29sdW1ucywgY29sdW1uID0+IGNvbHVtbi5zb3J0aW5nPy5lbmFibGVkISk7XHJcblxyXG4gICAgcmV0dXJuIGVuYWJsZWRTb3J0aW5nQ29sdW1uID8geyBpZDogZW5hYmxlZFNvcnRpbmdDb2x1bW4uZmllbGQsIGRpcmVjdGlvbjogZW5hYmxlZFNvcnRpbmdDb2x1bW4uc29ydGluZz8uZGlyZWN0aW9uISB9IDogbnVsbDtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVSZWZlcmVuY2VEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWZlcmVuY2VEaXJlY3RpdmUgfSlcclxuICB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZmVyZW5jZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbHVtbnNUb2dnbGVTZXJ2aWNlOiBDb2x1bW5zVG9nZ2xlU2VydmljZSxcclxuICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHdpbmRvdzogV2luZG93LFxyXG4gICAgcHJpdmF0ZSBzZWxlY3RlZFNlcnZpY2U6IFRhYmxlU2VsZWN0U2VydmljZSxcclxuICAgIHByaXZhdGUgc29ydGluZ1NlcnZpY2U6IFNvcnRpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJlc2l6ZVNlcnZpY2U6IFJlc2l6ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGl0ZXJhYmxlRGlmZmVyczogSXRlcmFibGVEaWZmZXJzKSB7XHJcbiAgICB0aGlzLmRhdGFEaWZmZXIgPSBpdGVyYWJsZURpZmZlcnMuZmluZChbXSkuY3JlYXRlPEl0ZXJhYmxlRGlmZmVyPGFueT4+KHVuZGVmaW5lZCk7XHJcbiAgICB0aGlzLmNvbHVtbnNEaWZmZXIgPSBpdGVyYWJsZURpZmZlcnMuZmluZChbXSkuY3JlYXRlPElUYWJsZUNvbHVtbk1vZGVsPih1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBpZiBkYXRhIGlzIHN0YXRpYywgbWFrZSBpdCBvYnNlcnZhYmxlXHJcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLmRhdGEkKSkge1xyXG4gICAgICB0aGlzLmRhdGFTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLmRhdGEkID0gdGhpcy5kYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RhYmxlKVxyXG4gICAgICB0aGlzLnNlbGVjdGlvblN1YnNjcmliZSgpO1xyXG5cclxuICAgIC8vIHNldCB1cCBjb2x1bW5zIChjb25kaXRpb25hbGx5IGFkZCBzZXF1ZW5jZSwgc2VsZWN0YWJsZSBhbmQgZXhwYW5kIGNvbHVtbnMpXHJcbiAgICB0aGlzLmNvbHVtbnNTdWJzY3JpYmUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5yZXNpemUpXHJcbiAgICAgIHRoaXMucmVzaXplU3Vic2NyaWJlKCk7XHJcblxyXG4gICAgdGhpcy5zb3J0aW5nU3Vic2NyaWJlKCk7XHJcblxyXG4gICAgdGhpcy5sb2FkTW9kZWwgPSB7XHJcbiAgICAgIHByZWRpY2F0ZSQ6IHRoaXMucHJlZGljYXRlJCxcclxuICAgICAgZGF0YSQ6IHRoaXMuZGF0YSQsXHJcbiAgICAgIGxvYWRlcjogdGhpcy5sb2FkZXIsXHJcbiAgICAgIGZpbHRlcjogdGhpcy5maWx0ZXIsXHJcbiAgICAgIGxvYWRUeXBlOiB0aGlzLmxvYWRUeXBlLFxyXG4gICAgICBwYWdpbmF0aW9uOiB0aGlzLnBhZ2luYXRpb24sXHJcbiAgICAgIHNvcnRpbmc6IHRoaXMuaW5pdGlhbFNvcnRpbmdcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy50b2dnbGVTd2l0Y2hlckxlZnRNb2RlbCA9IHsgbGFiZWw6IHRoaXMuZGF0YUxpc3RMYWJlbCwgaWNvbjogZmFUYWJsZUxpc3QgfTtcclxuICAgIHRoaXMudG9nZ2xlU3dpdGNoZXJSaWdodE1vZGVsID0geyBsYWJlbDogdGhpcy5kYXRhQ2FyZHNMYWJlbCwgaWNvbjogZmFCb3JkZXJBbGwgfTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YURpZmZlci5kaWZmKHRoaXMuZGF0YSkpIHtcclxuICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KHRoaXMuZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY29sdW1uc0RpZmZlci5kaWZmKHRoaXMuY29sdW1ucykpIHtcclxuICAgICAgdGhpcy5jb2x1bW5zU3ViamVjdC5uZXh0KHRoaXMuY29sdW1ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYWxsU2VsZWN0aW9uU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fY29sdW1uc1Jlc2l6ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX2NvbHVtbnNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9zb3J0aW5nU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRGF0YVR5cGVUb2dnbGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGFUeXBlID0gdGhpcy5kYXRhVHlwZSA9PSBUYWJsZURhdGFUeXBlLlJvd3NcclxuICAgICAgPyBUYWJsZURhdGFUeXBlLkNhcmRzXHJcbiAgICAgIDogVGFibGVEYXRhVHlwZS5Sb3dzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN1Y2Nlc3MocmVzdWx0OiBJTG9hZENvbnRhaW5lclJlc3VsdE1vZGVsPGFueT4pOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZSA9IHJlc3VsdC5wYWdlO1xyXG4gICAgdGhpcy50b3RhbCA9IHJlc3VsdC50b3RhbDtcclxuXHJcbiAgICBjb25zdCBpdGVtczogSVRhYmxlTW9kZWxbXSA9IHJlc3VsdC5pdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IHNlcXVlbmNlID0gKGluZGV4ICsgMSkgKyAoKHRoaXMucGFnZSAqIHRoaXMucGFnaW5hdGlvbi5zaXplKSAtIHRoaXMucGFnaW5hdGlvbi5zaXplKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBpbmRleDogaW5kZXgsXHJcbiAgICAgICAgc2VxdWVuY2U6IHNlcXVlbmNlLFxyXG4gICAgICAgIHNlbGVjdGVkOiB0aGlzLmdldEl0ZW1TZWxlY3RlZChzZXF1ZW5jZSksXHJcbiAgICAgICAgZGF0YTogaXRlbVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHJlc3VsdC5yZXNldClcclxuICAgICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5jb25jYXQoaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3Rpb25TdWJzY3JpYmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hbGxTZWxlY3Rpb25TdWJzY3JpcHRpb24gPSB0aGlzLnNlbGVjdGVkU2VydmljZS5zZWxlY3QkXHJcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBJVGFibGVTZWxlY3RFdmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC5pbmRleCA9PSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLmFsbFNlbGVjdGVkID0gZXZlbnQuc2VsZWN0ZWQ7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiBpdGVtLnNlbGVjdGVkID0gZXZlbnQuc2VsZWN0ZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGV2ZW50KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2l6ZVN1YnNjcmliZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbHVtbnNSZXNpemVTdWJzY3JpcHRpb24gPSB0aGlzLnJlc2l6ZVNlcnZpY2Uub25SZXNpemUkXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy50YWJsZUNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT5cclxuICAgICAgICBjb2x1bW4uY2FsY3VsYXRlZFdpZHRoID0gdGhpcy5jYWxjdWxhdGVDb2x1bW5XaWR0aChjb2x1bW4sIHRoaXMudGFibGVDb2x1bW5zLmxlbmd0aCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29sdW1uc1N1YnNjcmliZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbHVtbnNTdWJzY3JpcHRpb24gPSB0aGlzLmNvbHVtbnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoXHJcbiAgICAgIGZpbHRlcihjb2x1bW5zID0+IGFueShjb2x1bW5zKSksXHJcbiAgICAgIG1hcCgoY29sdW1uczogSVRhYmxlQ29sdW1uTW9kZWxbXSkgPT4ge1xyXG4gICAgICAgIGxldCB0YWJsZUNvbHVtbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbHVtbnMpKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2VxdWVuY2UpXHJcbiAgICAgICAgICB0YWJsZUNvbHVtbnMudW5zaGlmdChUYWJsZUNvbnN0YW50cy5TRVFVRU5DRV9DT0xVTU4pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RhYmxlKVxyXG4gICAgICAgICAgdGFibGVDb2x1bW5zLnVuc2hpZnQoVGFibGVDb25zdGFudHMuU0VMRUNUQUJMRV9DT0xVTU4pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5leHBhbmRlZClcclxuICAgICAgICAgIHRhYmxlQ29sdW1ucy5wdXNoKFRhYmxlQ29uc3RhbnRzLkVYUEFOREVEX0NPTFVNTik7XHJcblxyXG4gICAgICAgIC8vIGNhbGN1bGF0ZWQgd2lkdGggbm90IHdvcmsgd2l0aG91dCBkZWVwIGNvcHlcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0YWJsZUNvbHVtbnMpKTtcclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKChjb2x1bW5zOiBJVGFibGVDb2x1bW5FeHRlbmRlZE1vZGVsW10pID0+IHtcclxuICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW46IElUYWJsZUNvbHVtbkV4dGVuZGVkTW9kZWwpID0+IHtcclxuICAgICAgICBjb2x1bW4uY2FsY3VsYXRlZFdpZHRoID0gdGhpcy5jYWxjdWxhdGVDb2x1bW5XaWR0aChjb2x1bW4sIGNvbHVtbnMubGVuZ3RoKTtcclxuXHJcbiAgICAgICAgY29uc3Qgc29ydGluZ0NvbHVtbiA9IHRoaXMuaW5pdGlhbFNvcnRpbmc7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbFNvcnRpbmcpIHtcclxuICAgICAgICAgIHRoaXMuc2V0Q29sdW1uU29ydGluZyhjb2x1bW4sIHNvcnRpbmdDb2x1bW4/LmlkISlcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy50YWJsZUNvbHVtbnMgPSBjb2x1bW5zO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNvcnRpbmdTdWJzY3JpYmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zb3J0aW5nU3Vic2NyaXB0aW9uID0gdGhpcy5zb3J0aW5nU2VydmljZS5zb3J0aW5nJC5zdWJzY3JpYmUoKHNvcnRpbmdFdmVudCkgPT5cclxuICAgICAgdGhpcy50YWJsZUNvbHVtbnMuZm9yRWFjaCgoY29sdW1uOiBJVGFibGVDb2x1bW5FeHRlbmRlZE1vZGVsKSA9PiB0aGlzLnNldENvbHVtblNvcnRpbmcoY29sdW1uLCBzb3J0aW5nRXZlbnQ/LmlkKSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVDb2x1bW5XaWR0aChjb2x1bW46IElUYWJsZUNvbHVtbkV4dGVuZGVkTW9kZWwsIGNvbHVtbnNMZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAvLyBkZWZpbmVkIHdpZHRoIGZvciBhbGwgY29sdW1uc1xyXG4gICAgaWYgKGFsbCh0aGlzLmNvbHVtbnMsIGNvbHVtbiA9PiBpc0RlZmluZWQoY29sdW1uLndpZHRoKSkpXHJcbiAgICAgIHJldHVybiBnZXRDc3NMaWtlVmFsdWUoY29sdW1uLndpZHRoISwgVUlDb25zdGFudHMuQ1NTX1BFUkNFTlRBR0UpO1xyXG5cclxuICAgIGxldCB3aWR0aDogbnVtYmVyID0gY29sdW1uc0xlbmd0aDtcclxuXHJcbiAgICBpZiAodGhpcy53aW5kb3cuaW5uZXJXaWR0aCA8PSBNZWRpYUxpbWl0cy5Nb2JpbGVMYXJnZSlcclxuICAgICAgd2lkdGggPSAxO1xyXG4gICAgZWxzZSBpZiAodGhpcy53aW5kb3cuaW5uZXJXaWR0aCA8PSBNZWRpYUxpbWl0cy5UYWJsZXQpXHJcbiAgICAgIHdpZHRoID0gTWF0aC5jZWlsKGNvbHVtbnNMZW5ndGggLyAyKTtcclxuXHJcbiAgICByZXR1cm4gZ2V0Q2FsY1ZhbHVlKHdpZHRoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q29sdW1uU29ydGluZyhjb2x1bW46IElUYWJsZUNvbHVtbkV4dGVuZGVkTW9kZWwsIHNvcnRpbmdJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoY29sdW1uLnNvcnRpbmc/LmVuYWJsZWQpIHtcclxuICAgICAgY29sdW1uLnNvcnRpbmcuYWN0aXZlID0gY29sdW1uLmZpZWxkID09IHNvcnRpbmdJZDtcclxuXHJcbiAgICAgIGlmICghY29sdW1uLnNvcnRpbmcuYWN0aXZlKVxyXG4gICAgICAgIGNvbHVtbi5zb3J0aW5nLmRpcmVjdGlvbiA9IFNvcnRpbmdEaXJlY3Rpb24uQXNjZW5kaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRJdGVtU2VsZWN0ZWQoc2VxdWVuY2U6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWxsU2VsZWN0ZWRcclxuICAgICAgPyAhaGFzSXRlbSh0aGlzLnNlbGVjdGVkU2VydmljZS51bnNlbGVjdGVkSXRlbXMsIHNlcXVlbmNlKVxyXG4gICAgICA6IGhhc0l0ZW0odGhpcy5zZWxlY3RlZFNlcnZpY2Uuc2VsZWN0ZWRJdGVtcywgc2VxdWVuY2UpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0xvYWRpbmdcIiBjbGFzcz1cInRhYmxlLWxvYWRlclwiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbnMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbnMtYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHNmYy1jb2x1bW5zLXRvZ2dsZSAqbmdJZj1cImNvbHVtbnNUb2dnbGVcIiBbc2hvd0xhYmVsXT1cInNob3dDb2x1bW5zTGFiZWxcIiBbaGlkZUxhYmVsXT1cImhpZGVDb2x1bW5zTGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDwvc2ZjLWNvbHVtbnMtdG9nZ2xlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJzaG93VG90YWxcIj57e3RvdGFsTGFiZWx9fTogPHNwYW4+e3t0b3RhbH19PC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgIDxzZmMtdG9nZ2xlLXN3aXRjaGVyICpuZ0lmPVwiZGF0YVRvZ2dsZVwiIFthY3RpdmVdPVwiZGF0YVR5cGUgPT09IFRhYmxlRGF0YVR5cGUuQ2FyZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsZWZ0TW9kZWxdPVwidG9nZ2xlU3dpdGNoZXJMZWZ0TW9kZWxcIiBbcmlnaHRNb2RlbF09XCJ0b2dnbGVTd2l0Y2hlclJpZ2h0TW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRhdGFUeXBlVG9nZ2xlKClcIj5cclxuICAgICAgICAgICAgICAgIDwvc2ZjLXRvZ2dsZS1zd2l0Y2hlcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q29sdW1ucyAmJiBjb2x1bW5zVG9nZ2xlU2VydmljZS5zaG93XCIgY2xhc3M9XCJjb2x1bW5zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIiBbc3R5bGUuanVzdGlmeUNvbnRlbnRdPVwicG9zaXRpb25cIiBbc3R5bGUubWluV2lkdGhdPVwiY29sdW1uLmNhbGN1bGF0ZWRXaWR0aFwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHRhYmxlQ29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29sdW1uLnR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c2ZjLXNlbGVjdGFibGUtdGFibGUtY29sdW1uICpuZ1N3aXRjaENhc2U9XCJUYWJsZUNvbHVtblR5cGUuU2VsZWN0YWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJhbGxSb3dzU2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NmYy1zZWxlY3RhYmxlLXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHNmYy1zb3J0aW5nLWNvbHVtbiAqbmdTd2l0Y2hEZWZhdWx0IFttb2RlbF09XCJjb2x1bW4uc29ydGluZyFcIiBbaWRdPVwiY29sdW1uLmZpZWxkXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2ZjLXRlbXBsYXRlLWNvbnRlbnQgW3JlZmVyZW5jZUNvbnRlbnRdPVwiY29sdW1uQ29udGVudFwiIFt0ZW1wbGF0ZXNDb250ZW50XT1cInRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVUeXBlXT1cIlRhYmxlVGVtcGxhdGUuQ29sdW1uXCIgW2RlZmF1bHRDb250ZW50XT1cImRlZmF1bHRDb2x1bW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHREYXRhXT1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NmYy10ZW1wbGF0ZS1jb250ZW50PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNmYy1kZWZhdWx0LXRhYmxlLWNvbHVtbiBbbW9kZWxdPVwiY29sdW1uXCI+PC9zZmMtZGVmYXVsdC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2ZjLXNvcnRpbmctY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHNmYy1kZWxpbWV0ZXIgKm5nSWY9XCJkZWxpbWV0ZXJcIiBjbGFzcz1cInRhYmxlLWRlbGltZXRlclwiPjwvc2ZjLWRlbGltZXRlcj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93cy1jb250YWluZXJcIj5cclxuICAgICAgICA8c2ZjLWxvYWQtY29udGFpbmVyIFtpZF09XCJsb2FkQ29udGFpbmVySWRcIiBbdHlwZV09XCJMb2FkQ29udGFpbmVyVHlwZS5UYWJsZVwiIFttb2RlbF09XCJsb2FkTW9kZWxcIlxyXG4gICAgICAgICAgICBbcGFnaW5hdGlvbkNvdW50XT1cInBhZ2luYXRpb25Db3VudFwiIFtwYWdpbmF0aW9uTGltaXRzXT1cInBhZ2luYXRpb25MaW1pdHNcIiBbc2hvd0xvYWRpbmddPVwic2hvd0xvYWRpbmdcIlxyXG4gICAgICAgICAgICAoaGFuZGxlU3VjY2Vzcyk9XCJoYW5kbGVTdWNjZXNzKCRldmVudClcIiAoaGFuZGxlTG9hZGluZyk9XCJsb2FkaW5nID0gJGV2ZW50XCIgW2VtcHR5TGFiZWxdPVwibm90Rm91bmRMYWJlbFwiIFtsb2FkTW9yZUxhYmVsXT1cImxvYWRNb3JlTGFiZWxcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBpbmRleCBhcyBpO1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZGF0YVR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c2ZjLXRlbXBsYXRlLWNvbnRlbnQgKm5nU3dpdGNoQ2FzZT1cIlRhYmxlRGF0YVR5cGUuUm93c1wiIFtyZWZlcmVuY2VDb250ZW50XT1cInJvd0NvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVzQ29udGVudF09XCJ0ZW1wbGF0ZXNcIiBbdGVtcGxhdGVUeXBlXT1cIlRhYmxlVGVtcGxhdGUuUm93XCIgW2RlZmF1bHRDb250ZW50XT1cImRlZmF1bHRSb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dERhdGFdPVwie21vZGVsOiBpdGVtLCBjb2x1bW5zOiB0YWJsZUNvbHVtbnMsIHBvc2l0aW9uOiBwb3NpdGlvbn1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NmYy10ZW1wbGF0ZS1jb250ZW50PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRSb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZmMtZGVmYXVsdC10YWJsZS1yb3cgW2NvbHVtbnNdPVwidGFibGVDb2x1bW5zXCIgW21vZGVsXT1cIml0ZW1cIiBbcG9zaXRpb25dPVwicG9zaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdE9uQ2xpY2tdPVwic2VsZWN0T25DbGlja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NmYy1kZWZhdWx0LXRhYmxlLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8c2ZjLXRlbXBsYXRlLWNvbnRlbnQgKm5nU3dpdGNoQ2FzZT1cIlRhYmxlRGF0YVR5cGUuQ2FyZHNcIiBbcmVmZXJlbmNlQ29udGVudF09XCJjYXJkQ29udGVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZXNDb250ZW50XT1cInRlbXBsYXRlc1wiIFt0ZW1wbGF0ZVR5cGVdPVwiVGFibGVUZW1wbGF0ZS5DYXJkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRDb250ZW50XT1cImRlZmF1bHRDYXJkXCIgW2NvbnRleHREYXRhXT1cInttb2RlbDogaXRlbSwgY29sdW1uczogdGFibGVDb2x1bW5zfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2ZjLXRlbXBsYXRlLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENhcmQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZmMtZGVmYXVsdC10YWJsZS1jYXJkIFtjb2x1bW5zXT1cInRhYmxlQ29sdW1uc1wiIFttb2RlbF09XCJpdGVtXCIgW3NlbGVjdE9uQ2xpY2tdPVwic2VsZWN0T25DbGlja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NmYy1kZWZhdWx0LXRhYmxlLWNhcmQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9zZmMtbG9hZC1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
335
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDcUQsU0FBUyxFQUFFLGVBQWUsRUFDM0UsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUN6QyxNQUFNLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUNMLEdBQUcsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQzdELFdBQVcsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sRUFDMUYsV0FBVyxFQUFFLGlCQUFpQixFQUFrQixxQkFBcUIsRUFDeEIsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFDdkIsT0FBTyxFQUF1QixNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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QkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBTU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFZTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQWNOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFjQyxPQUFPO3NCQURiLFdBQVc7dUJBQUMsU0FBUyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQVF2QyxVQUFVO3NCQURULEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixRQUFRO3NCQURQLE1BQU07Z0JBa0JQLGFBQWE7c0JBRFosS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBNkJOLFNBQVM7c0JBRFIsZUFBZTt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLElBQUksRUFBRSwwQkFBMEIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLFxyXG4gIERvQ2hlY2ssIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIEl0ZXJhYmxlRGlmZmVyLCBJdGVyYWJsZURpZmZlcnMsIE9uRGVzdHJveSxcclxuICBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGFsbCwgZmlyc3RPckRlZmF1bHQsIGdldENhbGNWYWx1ZSwgZ2V0Q3NzTGlrZVZhbHVlLCBpc0RlZmluZWQsXHJcbiAgTWVkaWFMaW1pdHMsIFBvc2l0aW9uLCBSZXNpemVTZXJ2aWNlLCBTb3J0aW5nRGlyZWN0aW9uLCBUZW1wbGF0ZVJlZmVyZW5jZURpcmVjdGl2ZSwgV0lORE9XLFxyXG4gIFVJQ29uc3RhbnRzLCBMb2FkQ29udGFpbmVyVHlwZSwgTG9hZGVyRnVuY3Rpb24sIExvYWRDb250YWluZXJMb2FkVHlwZSwgSUxvYWRDb250YWluZXJNb2RlbCxcclxuICBJTG9hZENvbnRhaW5lclJlc3VsdE1vZGVsLCBJUGFnaW5hdGlvbk1vZGVsLCBQYWdpbmF0aW9uQ29uc3RhbnRzLCBnZW5lcmF0ZUd1aWQsIGFueSxcclxuICBoYXNJdGVtLCBTb3J0aW5nU2VydmljZSwgSVNvcnRpbmdNb2RlbCwgSUxvYWRDb250YWluZXJQcmVkaWNhdGVQYXJhbWV0ZXJzLCBGaWx0ZXJGdW5jdGlvbixcclxuICBVSUNsYXNzLCBJVG9nZ2xlU3dpdGNoZXJNb2RlbH0gZnJvbSAnbmd4LXNmYy1jb21tb24nO1xyXG5pbXBvcnQgeyBUYWJsZUNvbHVtblR5cGUgfSBmcm9tICcuL3BhcnRzL2NvbHVtbnMvdGFibGUtY29sdW1uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IElUYWJsZUNvbHVtbkV4dGVuZGVkTW9kZWwsIElUYWJsZUNvbHVtbk1vZGVsIH0gZnJvbSAnLi9wYXJ0cy9jb2x1bW5zL3RhYmxlLWNvbHVtbi5tb2RlbCc7XHJcbmltcG9ydCB7IENvbHVtbnNUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi9wYXJ0cy90b2dnbGUvc2VydmljZS9jb2x1bW5zLXRvZ2dsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVRhYmxlU2VsZWN0RXZlbnQgfSBmcm9tICcuL3NlcnZpY2Uvc2VsZWN0L3RhYmxlLXNlbGVjdC5ldmVudCc7XHJcbmltcG9ydCB7IFRhYmxlU2VsZWN0U2VydmljZSB9IGZyb20gJy4vc2VydmljZS9zZWxlY3QvdGFibGUtc2VsZWN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUYWJsZURhdGFUeXBlIH0gZnJvbSAnLi9lbnVtcy90YWJsZS1kYXRhLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFRhYmxlQ29uc3RhbnRzIH0gZnJvbSAnLi90YWJsZS5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBUYWJsZVRlbXBsYXRlIH0gZnJvbSAnLi9lbnVtcy90YWJsZS10ZW1wbGF0ZS5lbnVtJztcclxuaW1wb3J0IHsgSVRhYmxlTW9kZWwgfSBmcm9tICcuL21vZGVscy90YWJsZS5tb2RlbCc7XHJcbmltcG9ydCB7IGZhVGFibGVMaXN0LCBmYUJvcmRlckFsbCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NmYy10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1NvcnRpbmdTZXJ2aWNlLCBUYWJsZVNlbGVjdFNlcnZpY2UsIENvbHVtbnNUb2dnbGVTZXJ2aWNlLCBSZXNpemVTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyVmlld0NoZWNrZWQsIERvQ2hlY2ssIE9uRGVzdHJveSB7XHJcblxyXG4gIFRhYmxlRGF0YVR5cGUgPSBUYWJsZURhdGFUeXBlO1xyXG4gIFRhYmxlQ29sdW1uVHlwZSA9IFRhYmxlQ29sdW1uVHlwZTtcclxuICBUYWJsZVRlbXBsYXRlID0gVGFibGVUZW1wbGF0ZTtcclxuICBDb25zdGFudHMgPSBUYWJsZUNvbnN0YW50cztcclxuICBMb2FkQ29udGFpbmVyVHlwZSA9IExvYWRDb250YWluZXJUeXBlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBvc2l0aW9uOiBQb3NpdGlvbiA9IFBvc2l0aW9uLkNlbnRlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBkZWxpbWV0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICBkYXRhVHlwZTogVGFibGVEYXRhVHlwZSA9IFRhYmxlRGF0YVR5cGUuUm93cztcclxuXHJcbiAgQElucHV0KClcclxuICBkYXRhVG9nZ2xlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93Q29sdW1uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29sdW1uc1RvZ2dsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBhZ2luYXRpb246IElQYWdpbmF0aW9uTW9kZWwgPSBQYWdpbmF0aW9uQ29uc3RhbnRzLkRFRkFVTFRfUEFHSU5BVElPTjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXF1ZW5jZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbm90Rm91bmRMYWJlbDogc3RyaW5nID0gdGhpcy5Db25zdGFudHMuTk9UX0ZPVU5EX0xBQkVMX0RFRkFVTFQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbG9hZE1vcmVMYWJlbDogc3RyaW5nID0gdGhpcy5Db25zdGFudHMuTE9BRF9NT1JFX0xBQkVMX0RFRkFVTFQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1RvdGFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdG90YWxMYWJlbDogc3RyaW5nID0gdGhpcy5Db25zdGFudHMuVE9UQUxfTEFCRUxfREVGQVVMVDtcclxuXHJcbiAgQElucHV0KClcclxuICBwYWdpbmF0aW9uQ291bnQ6IG51bWJlciA9IFBhZ2luYXRpb25Db25zdGFudHMuREVGQVVMVF9DT1VOVDtcclxuXHJcbiAgQElucHV0KClcclxuICBwYWdpbmF0aW9uTGltaXRzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvLyBUZW1wbGF0ZSByZWZlcmVuY2VzIFxyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbHVtbkNvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJvd0NvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNhcmRDb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLy8gRW5kIFRlbXBsYXRlIHJlZmVyZW5jZXNcclxuXHJcbiAgLy9EYXRhXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGF0YTogYW55W10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBkYXRhJCE6IE9ic2VydmFibGU8YW55W10+O1xyXG5cclxuICBwcml2YXRlIGRhdGFEaWZmZXIhOiBJdGVyYWJsZURpZmZlcjxhbnk+O1xyXG5cclxuICBwcml2YXRlIGRhdGFTdWJqZWN0ITogQmVoYXZpb3JTdWJqZWN0PGFueVtdPjtcclxuXHJcbiAgLy8gRW5kIERhdGFcclxuXHJcbiAgLy8gQ29sdW1uc1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbHVtbnM6IElUYWJsZUNvbHVtbk1vZGVsW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93Q29sdW1uc0xhYmVsITogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGhpZGVDb2x1bW5zTGFiZWwhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmVzaXplOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBjb2x1bW5zRGlmZmVyITogSXRlcmFibGVEaWZmZXI8SVRhYmxlQ29sdW1uTW9kZWw+O1xyXG5cclxuICBwcml2YXRlIGNvbHVtbnNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8SVRhYmxlQ29sdW1uTW9kZWxbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElUYWJsZUNvbHVtbk1vZGVsW10+KHRoaXMuY29sdW1ucyk7XHJcblxyXG4gIHB1YmxpYyB0YWJsZUNvbHVtbnM6IElUYWJsZUNvbHVtbkV4dGVuZGVkTW9kZWxbXSA9IFtdO1xyXG5cclxuICAvLyBFbmQgQ29sdW1ucyAgXHJcblxyXG4gIC8vIExvYWQgY29udGFpbmVyXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbG9hZFR5cGU6IExvYWRDb250YWluZXJMb2FkVHlwZSA9IExvYWRDb250YWluZXJMb2FkVHlwZS5QYWdpbmF0aW9uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxvYWRlciE6IExvYWRlckZ1bmN0aW9uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcj86IEZpbHRlckZ1bmN0aW9uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHByZWRpY2F0ZSQhOiBPYnNlcnZhYmxlPElMb2FkQ29udGFpbmVyUHJlZGljYXRlUGFyYW1ldGVycyB8IG51bGw+O1xyXG5cclxuICBwdWJsaWMgbG9hZE1vZGVsITogSUxvYWRDb250YWluZXJNb2RlbDtcclxuXHJcbiAgcHVibGljIGxvYWRDb250YWluZXJJZDogc3RyaW5nID0gZ2VuZXJhdGVHdWlkKCk7XHJcblxyXG4gIHB1YmxpYyBpdGVtczogSVRhYmxlTW9kZWxbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgdG90YWw6IG51bWJlciA9IDA7XHJcblxyXG4gIHByaXZhdGUgcGFnZTogbnVtYmVyID0gUGFnaW5hdGlvbkNvbnN0YW50cy5ERUZBVUxUX1BBR0U7XHJcblxyXG4gIEBIb3N0QmluZGluZyhgY2xhc3MuJHtVSUNsYXNzLkxvYWRpbmd9YClcclxuICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBFbmQgTG9hZCBjb250YWluZXJcclxuXHJcbiAgLy8gU2VsZWN0aW9uXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdE9uQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RNdWx0aXBsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8SVRhYmxlU2VsZWN0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJVGFibGVTZWxlY3RFdmVudD4oKTtcclxuXHJcbiAgcHVibGljIGdldCBhbGxSb3dzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHRoaXMuYWxsU2VsZWN0ZWQgfHwgdGhpcy50b3RhbCA9PSB0aGlzLnNlbGVjdGVkU2VydmljZS5zZWxlY3RlZEl0ZW1zLmxlbmd0aClcclxuICAgICAgJiYgIWFueSh0aGlzLnNlbGVjdGVkU2VydmljZS51bnNlbGVjdGVkSXRlbXMpXHJcbiAgICAgICYmIGFueSh0aGlzLml0ZW1zKTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGFsbFNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2FsbFNlbGVjdGlvblN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLy8gRW5kIFNlbGVjdGlvblxyXG5cclxuICAvLyBEYXRhIHRvZ2dsZVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGRhdGFMaXN0TGFiZWw6IHN0cmluZyA9IHRoaXMuQ29uc3RhbnRzLkRBVEFfTElTVF9MQUJFTDtcclxuXHJcbiAgQElucHV0KClcclxuICBkYXRhQ2FyZHNMYWJlbDogc3RyaW5nID0gdGhpcy5Db25zdGFudHMuREFUQV9DQVJEU19MQUJFTDtcclxuXHJcbiAgcHVibGljIHRvZ2dsZVN3aXRjaGVyTGVmdE1vZGVsITogSVRvZ2dsZVN3aXRjaGVyTW9kZWw7XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVTd2l0Y2hlclJpZ2h0TW9kZWwhOiBJVG9nZ2xlU3dpdGNoZXJNb2RlbDtcclxuXHJcbiAgLy8gRW5kIGRhdGEgdG9nZ2xlXHJcblxyXG4gIHB1YmxpYyB2bSQhOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIHByaXZhdGUgX2NvbHVtbnNSZXNpemVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgX2NvbHVtbnNTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgX3NvcnRpbmdTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgZ2V0IGluaXRpYWxTb3J0aW5nKCk6IElTb3J0aW5nTW9kZWwgfCBudWxsIHtcclxuICAgIGNvbnN0IGFjdGl2ZVNvcnRpbmdDb2x1bW4gPSBmaXJzdE9yRGVmYXVsdCh0aGlzLmNvbHVtbnMsIGNvbHVtbiA9PiBjb2x1bW4uc29ydGluZz8uYWN0aXZlISk7XHJcblxyXG4gICAgaWYgKGFjdGl2ZVNvcnRpbmdDb2x1bW4pXHJcbiAgICAgIHJldHVybiB7IGlkOiBhY3RpdmVTb3J0aW5nQ29sdW1uLmZpZWxkLCBkaXJlY3Rpb246IGFjdGl2ZVNvcnRpbmdDb2x1bW4uc29ydGluZz8uZGlyZWN0aW9uISB9O1xyXG5cclxuICAgIGNvbnN0IGVuYWJsZWRTb3J0aW5nQ29sdW1uID0gZmlyc3RPckRlZmF1bHQodGhpcy5jb2x1bW5zLCBjb2x1bW4gPT4gY29sdW1uLnNvcnRpbmc/LmVuYWJsZWQhKTtcclxuXHJcbiAgICByZXR1cm4gZW5hYmxlZFNvcnRpbmdDb2x1bW4gPyB7IGlkOiBlbmFibGVkU29ydGluZ0NvbHVtbi5maWVsZCwgZGlyZWN0aW9uOiBlbmFibGVkU29ydGluZ0NvbHVtbi5zb3J0aW5nPy5kaXJlY3Rpb24hIH0gOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZVJlZmVyZW5jZURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZmVyZW5jZURpcmVjdGl2ZSB9KVxyXG4gIHRlbXBsYXRlczogUXVlcnlMaXN0PFRlbXBsYXRlUmVmZXJlbmNlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29sdW1uc1RvZ2dsZVNlcnZpY2U6IENvbHVtbnNUb2dnbGVTZXJ2aWNlLFxyXG4gICAgQEluamVjdChXSU5ET1cpIHByaXZhdGUgd2luZG93OiBXaW5kb3csXHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRTZXJ2aWNlOiBUYWJsZVNlbGVjdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNvcnRpbmdTZXJ2aWNlOiBTb3J0aW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByZXNpemVTZXJ2aWNlOiBSZXNpemVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpdGVyYWJsZURpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycykge1xyXG4gICAgdGhpcy5kYXRhRGlmZmVyID0gaXRlcmFibGVEaWZmZXJzLmZpbmQoW10pLmNyZWF0ZTxJdGVyYWJsZURpZmZlcjxhbnk+Pih1bmRlZmluZWQpO1xyXG4gICAgdGhpcy5jb2x1bW5zRGlmZmVyID0gaXRlcmFibGVEaWZmZXJzLmZpbmQoW10pLmNyZWF0ZTxJVGFibGVDb2x1bW5Nb2RlbD4odW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gaWYgZGF0YSBpcyBzdGF0aWMsIG1ha2UgaXQgb2JzZXJ2YWJsZVxyXG4gICAgaWYgKCFpc0RlZmluZWQodGhpcy5kYXRhJCkpIHtcclxuICAgICAgdGhpcy5kYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5kYXRhJCA9IHRoaXMuZGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSlcclxuICAgICAgdGhpcy5zZWxlY3Rpb25TdWJzY3JpYmUoKTtcclxuXHJcbiAgICAvLyBzZXQgdXAgY29sdW1ucyAoY29uZGl0aW9uYWxseSBhZGQgc2VxdWVuY2UsIHNlbGVjdGFibGUgYW5kIGV4cGFuZCBjb2x1bW5zKVxyXG4gICAgdGhpcy5jb2x1bW5zU3Vic2NyaWJlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMucmVzaXplKVxyXG4gICAgICB0aGlzLnJlc2l6ZVN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMuc29ydGluZ1N1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMubG9hZE1vZGVsID0ge1xyXG4gICAgICBwcmVkaWNhdGUkOiB0aGlzLnByZWRpY2F0ZSQsXHJcbiAgICAgIGRhdGEkOiB0aGlzLmRhdGEkLFxyXG4gICAgICBsb2FkZXI6IHRoaXMubG9hZGVyLFxyXG4gICAgICBmaWx0ZXI6IHRoaXMuZmlsdGVyLFxyXG4gICAgICBsb2FkVHlwZTogdGhpcy5sb2FkVHlwZSxcclxuICAgICAgcGFnaW5hdGlvbjogdGhpcy5wYWdpbmF0aW9uLFxyXG4gICAgICBzb3J0aW5nOiB0aGlzLmluaXRpYWxTb3J0aW5nXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMudG9nZ2xlU3dpdGNoZXJMZWZ0TW9kZWwgPSB7IGxhYmVsOiB0aGlzLmRhdGFMaXN0TGFiZWwsIGljb246IGZhVGFibGVMaXN0IH07XHJcbiAgICB0aGlzLnRvZ2dsZVN3aXRjaGVyUmlnaHRNb2RlbCA9IHsgbGFiZWw6IHRoaXMuZGF0YUNhcmRzTGFiZWwsIGljb246IGZhQm9yZGVyQWxsIH07XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRhdGFEaWZmZXIuZGlmZih0aGlzLmRhdGEpKSB7XHJcbiAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dCh0aGlzLmRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbHVtbnNEaWZmZXIuZGlmZih0aGlzLmNvbHVtbnMpKSB7XHJcbiAgICAgIHRoaXMuY29sdW1uc1N1YmplY3QubmV4dCh0aGlzLmNvbHVtbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2FsbFNlbGVjdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX2NvbHVtbnNSZXNpemVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9jb2x1bW5zU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fc29ydGluZ1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkRhdGFUeXBlVG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhVHlwZSA9IHRoaXMuZGF0YVR5cGUgPT0gVGFibGVEYXRhVHlwZS5Sb3dzXHJcbiAgICAgID8gVGFibGVEYXRhVHlwZS5DYXJkc1xyXG4gICAgICA6IFRhYmxlRGF0YVR5cGUuUm93cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdWNjZXNzKHJlc3VsdDogSUxvYWRDb250YWluZXJSZXN1bHRNb2RlbDxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2UgPSByZXN1bHQucGFnZTtcclxuICAgIHRoaXMudG90YWwgPSByZXN1bHQudG90YWw7XHJcblxyXG4gICAgY29uc3QgaXRlbXM6IElUYWJsZU1vZGVsW10gPSByZXN1bHQuaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBzZXF1ZW5jZSA9IChpbmRleCArIDEpICsgKCh0aGlzLnBhZ2UgKiB0aGlzLnBhZ2luYXRpb24uc2l6ZSkgLSB0aGlzLnBhZ2luYXRpb24uc2l6ZSk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5kZXg6IGluZGV4LFxyXG4gICAgICAgIHNlcXVlbmNlOiBzZXF1ZW5jZSxcclxuICAgICAgICBzZWxlY3RlZDogcmVzdWx0LnJlc2V0ID8gZmFsc2UgOiB0aGlzLmdldEl0ZW1TZWxlY3RlZChzZXF1ZW5jZSksXHJcbiAgICAgICAgZGF0YTogaXRlbVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHJlc3VsdC5yZXNldCkge1xyXG4gICAgICB0aGlzLml0ZW1zID0gaXRlbXM7XHJcblxyXG4gICAgICBpZiAodGhpcy5zZWxlY3RhYmxlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNlcnZpY2Uuc2VsZWN0QWxsKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmNvbmNhdChpdGVtcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdGlvblN1YnNjcmliZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2FsbFNlbGVjdGlvblN1YnNjcmlwdGlvbiA9IHRoaXMuc2VsZWN0ZWRTZXJ2aWNlLnNlbGVjdCRcclxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IElUYWJsZVNlbGVjdEV2ZW50KSA9PiB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdE11bHRpcGxlKSB7XHJcbiAgICAgICAgICBpZiAoZXZlbnQuaW5kZXggPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmFsbFNlbGVjdGVkID0gZXZlbnQuc2VsZWN0ZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbTogSVRhYmxlTW9kZWwpID0+IGl0ZW0uc2VsZWN0ZWQgPSBldmVudC5zZWxlY3RlZCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW06IElUYWJsZU1vZGVsKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0uc2VxdWVuY2UgPT09IGV2ZW50LmluZGV4KVxyXG4gICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGV2ZW50LnNlbGVjdGVkO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtOiBJVGFibGVNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5zZXF1ZW5jZSA9PT0gZXZlbnQuaW5kZXgpXHJcbiAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGV2ZW50LnNlbGVjdGVkO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoZXZlbnQpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzaXplU3Vic2NyaWJlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29sdW1uc1Jlc2l6ZVN1YnNjcmlwdGlvbiA9IHRoaXMucmVzaXplU2VydmljZS5vblJlc2l6ZSRcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRhYmxlQ29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PlxyXG4gICAgICAgIGNvbHVtbi5jYWxjdWxhdGVkV2lkdGggPSB0aGlzLmNhbGN1bGF0ZUNvbHVtbldpZHRoKGNvbHVtbiwgdGhpcy50YWJsZUNvbHVtbnMubGVuZ3RoKSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb2x1bW5zU3Vic2NyaWJlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29sdW1uc1N1YnNjcmlwdGlvbiA9IHRoaXMuY29sdW1uc1N1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcclxuICAgICAgZmlsdGVyKGNvbHVtbnMgPT4gYW55KGNvbHVtbnMpKSxcclxuICAgICAgbWFwKChjb2x1bW5zOiBJVGFibGVDb2x1bW5Nb2RlbFtdKSA9PiB7XHJcbiAgICAgICAgbGV0IHRhYmxlQ29sdW1ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY29sdW1ucykpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zZXF1ZW5jZSlcclxuICAgICAgICAgIHRhYmxlQ29sdW1ucy51bnNoaWZ0KFRhYmxlQ29uc3RhbnRzLlNFUVVFTkNFX0NPTFVNTik7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGUgJiYgdGhpcy5zZWxlY3RNdWx0aXBsZSlcclxuICAgICAgICAgIHRhYmxlQ29sdW1ucy51bnNoaWZ0KFRhYmxlQ29uc3RhbnRzLlNFTEVDVEFCTEVfQ09MVU1OKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWQpXHJcbiAgICAgICAgICB0YWJsZUNvbHVtbnMucHVzaChUYWJsZUNvbnN0YW50cy5FWFBBTkRFRF9DT0xVTU4pO1xyXG5cclxuICAgICAgICAvLyBjYWxjdWxhdGVkIHdpZHRoIG5vdCB3b3JrIHdpdGhvdXQgZGVlcCBjb3B5XHJcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGFibGVDb2x1bW5zKSk7XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZSgoY29sdW1uczogSVRhYmxlQ29sdW1uRXh0ZW5kZWRNb2RlbFtdKSA9PiB7XHJcbiAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uOiBJVGFibGVDb2x1bW5FeHRlbmRlZE1vZGVsKSA9PiB7XHJcbiAgICAgICAgY29sdW1uLmNhbGN1bGF0ZWRXaWR0aCA9IHRoaXMuY2FsY3VsYXRlQ29sdW1uV2lkdGgoY29sdW1uLCBjb2x1bW5zLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHNvcnRpbmdDb2x1bW4gPSB0aGlzLmluaXRpYWxTb3J0aW5nO1xyXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxTb3J0aW5nKSB7XHJcbiAgICAgICAgICB0aGlzLnNldENvbHVtblNvcnRpbmcoY29sdW1uLCBzb3J0aW5nQ29sdW1uPy5pZCEpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gY29sdW1ucztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzb3J0aW5nU3Vic2NyaWJlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc29ydGluZ1N1YnNjcmlwdGlvbiA9IHRoaXMuc29ydGluZ1NlcnZpY2Uuc29ydGluZyQuc3Vic2NyaWJlKChzb3J0aW5nRXZlbnQpID0+XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zLmZvckVhY2goKGNvbHVtbjogSVRhYmxlQ29sdW1uRXh0ZW5kZWRNb2RlbCkgPT4gdGhpcy5zZXRDb2x1bW5Tb3J0aW5nKGNvbHVtbiwgc29ydGluZ0V2ZW50Py5pZCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlQ29sdW1uV2lkdGgoY29sdW1uOiBJVGFibGVDb2x1bW5FeHRlbmRlZE1vZGVsLCBjb2x1bW5zTGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgLy8gZGVmaW5lZCB3aWR0aCBmb3IgYWxsIGNvbHVtbnNcclxuICAgIGlmIChhbGwodGhpcy5jb2x1bW5zLCBjb2x1bW4gPT4gaXNEZWZpbmVkKGNvbHVtbi53aWR0aCkpKVxyXG4gICAgICByZXR1cm4gZ2V0Q3NzTGlrZVZhbHVlKGNvbHVtbi53aWR0aCEsIFVJQ29uc3RhbnRzLkNTU19QRVJDRU5UQUdFKTtcclxuXHJcbiAgICBsZXQgd2lkdGg6IG51bWJlciA9IGNvbHVtbnNMZW5ndGg7XHJcblxyXG4gICAgaWYgKHRoaXMud2luZG93LmlubmVyV2lkdGggPD0gTWVkaWFMaW1pdHMuTW9iaWxlTGFyZ2UpXHJcbiAgICAgIHdpZHRoID0gMTtcclxuICAgIGVsc2UgaWYgKHRoaXMud2luZG93LmlubmVyV2lkdGggPD0gTWVkaWFMaW1pdHMuVGFibGV0KVxyXG4gICAgICB3aWR0aCA9IE1hdGguY2VpbChjb2x1bW5zTGVuZ3RoIC8gMik7XHJcblxyXG4gICAgcmV0dXJuIGdldENhbGNWYWx1ZSh3aWR0aCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbHVtblNvcnRpbmcoY29sdW1uOiBJVGFibGVDb2x1bW5FeHRlbmRlZE1vZGVsLCBzb3J0aW5nSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKGNvbHVtbi5zb3J0aW5nPy5lbmFibGVkKSB7XHJcbiAgICAgIGNvbHVtbi5zb3J0aW5nLmFjdGl2ZSA9IGNvbHVtbi5maWVsZCA9PSBzb3J0aW5nSWQ7XHJcblxyXG4gICAgICBpZiAoIWNvbHVtbi5zb3J0aW5nLmFjdGl2ZSlcclxuICAgICAgICBjb2x1bW4uc29ydGluZy5kaXJlY3Rpb24gPSBTb3J0aW5nRGlyZWN0aW9uLkFzY2VuZGluZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SXRlbVNlbGVjdGVkKHNlcXVlbmNlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFsbFNlbGVjdGVkXHJcbiAgICAgID8gIWhhc0l0ZW0odGhpcy5zZWxlY3RlZFNlcnZpY2UudW5zZWxlY3RlZEl0ZW1zLCBzZXF1ZW5jZSlcclxuICAgICAgOiBoYXNJdGVtKHRoaXMuc2VsZWN0ZWRTZXJ2aWNlLnNlbGVjdGVkSXRlbXMsIHNlcXVlbmNlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dMb2FkaW5nXCIgY2xhc3M9XCJ0YWJsZS1sb2FkZXJcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zLWFjdGlvbnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxzZmMtY29sdW1ucy10b2dnbGUgKm5nSWY9XCJjb2x1bW5zVG9nZ2xlXCIgW3Nob3dMYWJlbF09XCJzaG93Q29sdW1uc0xhYmVsXCIgW2hpZGVMYWJlbF09XCJoaWRlQ29sdW1uc0xhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NmYy1jb2x1bW5zLXRvZ2dsZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwic2hvd1RvdGFsXCI+e3t0b3RhbExhYmVsfX06IDxzcGFuPnt7dG90YWx9fTwvc3Bhbj48L3A+XHJcbiAgICAgICAgICAgICAgICA8c2ZjLXRvZ2dsZS1zd2l0Y2hlciAqbmdJZj1cImRhdGFUb2dnbGVcIiBbYWN0aXZlXT1cImRhdGFUeXBlID09PSBUYWJsZURhdGFUeXBlLkNhcmRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGVmdE1vZGVsXT1cInRvZ2dsZVN3aXRjaGVyTGVmdE1vZGVsXCIgW3JpZ2h0TW9kZWxdPVwidG9nZ2xlU3dpdGNoZXJSaWdodE1vZGVsXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EYXRhVHlwZVRvZ2dsZSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NmYy10b2dnbGUtc3dpdGNoZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0NvbHVtbnMgJiYgY29sdW1uc1RvZ2dsZVNlcnZpY2Uuc2hvd1wiIGNsYXNzPVwiY29sdW1uc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCIgW3N0eWxlLmp1c3RpZnlDb250ZW50XT1cInBvc2l0aW9uXCIgW3N0eWxlLm1pbldpZHRoXT1cImNvbHVtbi5jYWxjdWxhdGVkV2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB0YWJsZUNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNmYy1zZWxlY3RhYmxlLXRhYmxlLWNvbHVtbiAqbmdTd2l0Y2hDYXNlPVwiVGFibGVDb2x1bW5UeXBlLlNlbGVjdGFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiYWxsUm93c1NlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZmMtc2VsZWN0YWJsZS10YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxzZmMtc29ydGluZy1jb2x1bW4gKm5nU3dpdGNoRGVmYXVsdCBbbW9kZWxdPVwiY29sdW1uLnNvcnRpbmchXCIgW2lkXT1cImNvbHVtbi5maWVsZFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNmYy10ZW1wbGF0ZS1jb250ZW50IFtyZWZlcmVuY2VDb250ZW50XT1cImNvbHVtbkNvbnRlbnRcIiBbdGVtcGxhdGVzQ29udGVudF09XCJ0ZW1wbGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlVHlwZV09XCJUYWJsZVRlbXBsYXRlLkNvbHVtblwiIFtkZWZhdWx0Q29udGVudF09XCJkZWZhdWx0Q29sdW1uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RGF0YV09XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZmMtdGVtcGxhdGUtY29udGVudD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZmMtZGVmYXVsdC10YWJsZS1jb2x1bW4gW21vZGVsXT1cImNvbHVtblwiPjwvc2ZjLWRlZmF1bHQtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L3NmYy1zb3J0aW5nLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxzZmMtZGVsaW1ldGVyICpuZ0lmPVwiZGVsaW1ldGVyXCIgY2xhc3M9XCJ0YWJsZS1kZWxpbWV0ZXJcIj48L3NmYy1kZWxpbWV0ZXI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvd3MtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPHNmYy1sb2FkLWNvbnRhaW5lciBbaWRdPVwibG9hZENvbnRhaW5lcklkXCIgW3R5cGVdPVwiTG9hZENvbnRhaW5lclR5cGUuVGFibGVcIiBbbW9kZWxdPVwibG9hZE1vZGVsXCJcclxuICAgICAgICAgICAgW3BhZ2luYXRpb25Db3VudF09XCJwYWdpbmF0aW9uQ291bnRcIiBbcGFnaW5hdGlvbkxpbWl0c109XCJwYWdpbmF0aW9uTGltaXRzXCIgW3Nob3dMb2FkaW5nXT1cInNob3dMb2FkaW5nXCJcclxuICAgICAgICAgICAgKGhhbmRsZVN1Y2Nlc3MpPVwiaGFuZGxlU3VjY2VzcygkZXZlbnQpXCIgKGhhbmRsZUxvYWRpbmcpPVwibG9hZGluZyA9ICRldmVudFwiIFtlbXB0eUxhYmVsXT1cIm5vdEZvdW5kTGFiZWxcIlxyXG4gICAgICAgICAgICBbbG9hZE1vcmVMYWJlbF09XCJsb2FkTW9yZUxhYmVsXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgaW5kZXggYXMgaTtcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImRhdGFUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNmYy10ZW1wbGF0ZS1jb250ZW50ICpuZ1N3aXRjaENhc2U9XCJUYWJsZURhdGFUeXBlLlJvd3NcIiBbcmVmZXJlbmNlQ29udGVudF09XCJyb3dDb250ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlc0NvbnRlbnRdPVwidGVtcGxhdGVzXCIgW3RlbXBsYXRlVHlwZV09XCJUYWJsZVRlbXBsYXRlLlJvd1wiIFtkZWZhdWx0Q29udGVudF09XCJkZWZhdWx0Um93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHREYXRhXT1cInttb2RlbDogaXRlbSwgY29sdW1uczogdGFibGVDb2x1bW5zLCBwb3NpdGlvbjogcG9zaXRpb259XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZmMtdGVtcGxhdGUtY29udGVudD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Um93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2ZjLWRlZmF1bHQtdGFibGUtcm93IFtjb2x1bW5zXT1cInRhYmxlQ29sdW1uc1wiIFttb2RlbF09XCJpdGVtXCIgW3Bvc2l0aW9uXT1cInBvc2l0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RPbkNsaWNrXT1cInNlbGVjdE9uQ2xpY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZmMtZGVmYXVsdC10YWJsZS1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHNmYy10ZW1wbGF0ZS1jb250ZW50ICpuZ1N3aXRjaENhc2U9XCJUYWJsZURhdGFUeXBlLkNhcmRzXCIgW3JlZmVyZW5jZUNvbnRlbnRdPVwiY2FyZENvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVzQ29udGVudF09XCJ0ZW1wbGF0ZXNcIiBbdGVtcGxhdGVUeXBlXT1cIlRhYmxlVGVtcGxhdGUuQ2FyZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0Q29udGVudF09XCJkZWZhdWx0Q2FyZFwiIFtjb250ZXh0RGF0YV09XCJ7bW9kZWw6IGl0ZW0sIGNvbHVtbnM6IHRhYmxlQ29sdW1uc31cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NmYy10ZW1wbGF0ZS1jb250ZW50PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDYXJkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2ZjLWRlZmF1bHQtdGFibGUtY2FyZCBbY29sdW1uc109XCJ0YWJsZUNvbHVtbnNcIiBbbW9kZWxdPVwiaXRlbVwiIFtzZWxlY3RPbkNsaWNrXT1cInNlbGVjdE9uQ2xpY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZmMtZGVmYXVsdC10YWJsZS1jYXJkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvc2ZjLWxvYWQtY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ContentChildren, Input } from '@angular/core';
|
|
1
|
+
import { Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import { CommonConstants, firstOrDefault, isDefined, TemplateReferenceDirective } from 'ngx-sfc-common';
|
|
3
3
|
import { BehaviorSubject, combineLatest, map, startWith } from 'rxjs';
|
|
4
4
|
import { TabService } from './service/tab.service';
|
|
@@ -12,6 +12,8 @@ export class TabsComponent {
|
|
|
12
12
|
this.tabService = tabService;
|
|
13
13
|
this.TabsTemplate = TabsTemplate;
|
|
14
14
|
this.tabs = [];
|
|
15
|
+
// End Template references
|
|
16
|
+
this.selected = new EventEmitter();
|
|
15
17
|
}
|
|
16
18
|
ngOnInit() {
|
|
17
19
|
this.tabsSubject = new BehaviorSubject(this.tabs);
|
|
@@ -33,6 +35,7 @@ export class TabsComponent {
|
|
|
33
35
|
selectTab(tab, index) {
|
|
34
36
|
if (!tab.disabled && !tab.selected) {
|
|
35
37
|
this.tabService.select(index);
|
|
38
|
+
this.selected.emit(tab);
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
getSelectedIndex(tabs) {
|
|
@@ -50,7 +53,7 @@ export class TabsComponent {
|
|
|
50
53
|
}
|
|
51
54
|
}
|
|
52
55
|
TabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabsComponent, deps: [{ token: i1.TabService }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
-
TabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabsComponent, selector: "sfc-tabs", inputs: { tabs: "tabs", label: "label", slider: "slider", body: "body" }, providers: [TabService], queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"tabs-container\">\r\n <div class=\"tabs\">\r\n <div class=\"tab\" [style.width.%]=\"vm.tabWidth\" *ngFor=\"let tab of vm.tabs; index as index\"\r\n (click)=\"selectTab(tab, index)\">\r\n\r\n <sfc-template-content [referenceContent]=\"label\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Label\" [defaultContent]=\"defaultLabel\" [contextData]=\"tab\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultLabel>{{ tab.label }}</ng-template>\r\n </div>\r\n </div>\r\n\r\n <sfc-template-content [referenceContent]=\"slider\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Slider\" [contextData]=\"vm.sliderContextData\">\r\n </sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"body-container\">\r\n <ng-container *ngIf=\"vm.selectedTab\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Body\" [contextData]=\"vm.selectedTab.data\">\r\n </sfc-template-content>\r\n\r\n </ng-container>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .tabs{display:flex;flex-wrap:wrap}:host .container .tabs .tab{transition:color .5s ease;text-align:center}:host .container .tabs .tab,:host-context(.sfc-default-theme) :host .container .tabs .tab{color:#545e61}:host-context(.sfc-dark-theme) :host .container .tabs .tab{color:#fff}:host .container .body-container{transition:color .5s ease;margin-top:.6em}:host .container .body-container,:host-context(.sfc-default-theme) :host .container .body-container{color:#545e61}:host-context(.sfc-dark-theme) :host .container .body-container{color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
56
|
+
TabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabsComponent, selector: "sfc-tabs", inputs: { tabs: "tabs", label: "label", slider: "slider", body: "body" }, outputs: { selected: "selected" }, providers: [TabService], queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"tabs-container\">\r\n <div class=\"tabs\">\r\n <div class=\"tab\" [style.width.%]=\"vm.tabWidth\" *ngFor=\"let tab of vm.tabs; index as index\"\r\n (click)=\"selectTab(tab, index)\">\r\n\r\n <sfc-template-content [referenceContent]=\"label\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Label\" [defaultContent]=\"defaultLabel\" [contextData]=\"tab\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultLabel>{{ tab.label }}</ng-template>\r\n </div>\r\n </div>\r\n\r\n <sfc-template-content [referenceContent]=\"slider\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Slider\" [contextData]=\"vm.sliderContextData\">\r\n </sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"body-container\">\r\n <ng-container *ngIf=\"vm.selectedTab\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Body\" [contextData]=\"vm.selectedTab.data\">\r\n </sfc-template-content>\r\n\r\n </ng-container>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .tabs{display:flex;flex-wrap:wrap}:host .container .tabs .tab{transition:color .5s ease;text-align:center}:host .container .tabs .tab,:host-context(.sfc-default-theme) :host .container .tabs .tab{color:#545e61}:host-context(.sfc-dark-theme) :host .container .tabs .tab{color:#fff}:host .container .body-container{transition:color .5s ease;margin-top:.6em}:host .container .body-container,:host-context(.sfc-default-theme) :host .container .body-container{color:#545e61}:host-context(.sfc-dark-theme) :host .container .body-container{color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
54
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabsComponent, decorators: [{
|
|
55
58
|
type: Component,
|
|
56
59
|
args: [{ selector: 'sfc-tabs', providers: [TabService], template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"tabs-container\">\r\n <div class=\"tabs\">\r\n <div class=\"tab\" [style.width.%]=\"vm.tabWidth\" *ngFor=\"let tab of vm.tabs; index as index\"\r\n (click)=\"selectTab(tab, index)\">\r\n\r\n <sfc-template-content [referenceContent]=\"label\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Label\" [defaultContent]=\"defaultLabel\" [contextData]=\"tab\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultLabel>{{ tab.label }}</ng-template>\r\n </div>\r\n </div>\r\n\r\n <sfc-template-content [referenceContent]=\"slider\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Slider\" [contextData]=\"vm.sliderContextData\">\r\n </sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"body-container\">\r\n <ng-container *ngIf=\"vm.selectedTab\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Body\" [contextData]=\"vm.selectedTab.data\">\r\n </sfc-template-content>\r\n\r\n </ng-container>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .tabs{display:flex;flex-wrap:wrap}:host .container .tabs .tab{transition:color .5s ease;text-align:center}:host .container .tabs .tab,:host-context(.sfc-default-theme) :host .container .tabs .tab{color:#545e61}:host-context(.sfc-dark-theme) :host .container .tabs .tab{color:#fff}:host .container .body-container{transition:color .5s ease;margin-top:.6em}:host .container .body-container,:host-context(.sfc-default-theme) :host .container .body-container{color:#545e61}:host-context(.sfc-dark-theme) :host .container .body-container{color:#fff}\n"] }]
|
|
@@ -62,8 +65,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
62
65
|
type: Input
|
|
63
66
|
}], body: [{
|
|
64
67
|
type: Input
|
|
68
|
+
}], selected: [{
|
|
69
|
+
type: Output
|
|
65
70
|
}], templates: [{
|
|
66
71
|
type: ContentChildren,
|
|
67
72
|
args: [TemplateReferenceDirective, { read: TemplateReferenceDirective }]
|
|
68
73
|
}] } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYnMvdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYnMvdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQVVwRCxNQUFNLE9BQU8sYUFBYTtJQThCeEIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTVCMUMsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFHNUIsU0FBSSxHQUFnQixFQUFFLENBQUM7UUFhdkIsMEJBQTBCO1FBRzFCLGFBQVEsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQVNwQixDQUFDO0lBRS9DLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUU5RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFD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dCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uQ29uc3RhbnRzLCBmaXJzdE9yRGVmYXVsdCwgaXNEZWZpbmVkLCBUZW1wbGF0ZVJlZmVyZW5jZURpcmVjdGl2ZSB9IGZyb20gJ25neC1zZmMtY29tbW9uJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUYWJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL3RhYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGFic1RlbXBsYXRlIH0gZnJvbSAnLi90YWJzLXRlbXBsYXRlLmVudW0nO1xyXG5pbXBvcnQgeyBJVGFic1ZpZXdNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3RhYnMtdmlldy5tb2RlbCc7XHJcbmltcG9ydCB7IElUYWJNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3RhYi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NmYy10YWJzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFicy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFicy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1RhYlNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgVGFic1RlbXBsYXRlID0gVGFic1RlbXBsYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhYnM6IElUYWJNb2RlbFtdID0gW107XHJcblxyXG4gIC8vIFRlbXBsYXRlIHJlZmVyZW5jZXMgXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbGFiZWw/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNsaWRlcj86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYm9keT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8vIEVuZCBUZW1wbGF0ZSByZWZlcmVuY2VzXHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8SVRhYk1vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhYk1vZGVsPigpO1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKFRlbXBsYXRlUmVmZXJlbmNlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmZXJlbmNlRGlyZWN0aXZlIH0pXHJcbiAgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWZlcmVuY2VEaXJlY3RpdmU+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBwdWJsaWMgdm0kPzogT2JzZXJ2YWJsZTxJVGFic1ZpZXdNb2RlbD47XHJcblxyXG4gIHByaXZhdGUgdGFic1N1YmplY3Q/OiBCZWhhdmlvclN1YmplY3Q8SVRhYk1vZGVsW10+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhYlNlcnZpY2U6IFRhYlNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGFic1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElUYWJNb2RlbFtdPih0aGlzLnRhYnMpXHJcblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMuZ2V0U2VsZWN0ZWRJbmRleCh0aGlzLnRhYnMpLFxyXG4gICAgICB0YWJzJCA9IHRoaXMudGFic1N1YmplY3QuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHNlbGVjdGVkJCA9IHRoaXMudGFiU2VydmljZS5zZWxlY3RlZCRcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHN0YXJ0V2l0aChzZWxlY3RlZEluZGV4KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgdGhpcy52bSQgPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgdGFicyQsXHJcbiAgICAgIHNlbGVjdGVkJFxyXG4gICAgXSkucGlwZShcclxuICAgICAgbWFwKChbdGFicywgc2VsZWN0ZWRJbmRleF0pID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkKHRhYnMsIHNlbGVjdGVkSW5kZXgpO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgdGFiczogdGFicyxcclxuICAgICAgICAgIHNlbGVjdGVkVGFiOiBpc0RlZmluZWQoc2VsZWN0ZWRJbmRleCkgPyB0YWJzW3NlbGVjdGVkSW5kZXhdIDogbnVsbCxcclxuICAgICAgICAgIHNsaWRlckNvbnRleHREYXRhOiB7IGNvdW50OiB0YWJzLmxlbmd0aCwgaW5kZXg6IHNlbGVjdGVkSW5kZXggfSxcclxuICAgICAgICAgIHRhYldpZHRoOiAxMDAgLyAodGFicyA/IHRhYnMubGVuZ3RoIDogMSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdFRhYih0YWI6IElUYWJNb2RlbCwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKCF0YWIuZGlzYWJsZWQgJiYgIXRhYi5zZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnRhYlNlcnZpY2Uuc2VsZWN0KGluZGV4KTtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHRhYik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNlbGVjdGVkSW5kZXgodGFiczogSVRhYk1vZGVsW10pOiBudW1iZXIge1xyXG4gICAgbGV0IHNlbGVjdGVkSW5kZXggPSB0YWJzLmluZGV4T2YoZmlyc3RPckRlZmF1bHQodGFicyxcclxuICAgICAgdGFiID0+IHRhYi5zZWxlY3RlZCEgJiYgIXRhYi5kaXNhYmxlZCkgYXMgSVRhYk1vZGVsKTtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWRJbmRleCA9PSBDb21tb25Db25zdGFudHMuTk9UX0ZPVU5EX0lOREVYKSB7XHJcbiAgICAgIHNlbGVjdGVkSW5kZXggPSB0YWJzLmluZGV4T2YoZmlyc3RPckRlZmF1bHQodGFicywgdGFiID0+ICF0YWIuZGlzYWJsZWQpIGFzIElUYWJNb2RlbCk7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZEluZGV4ID09IENvbW1vbkNvbnN0YW50cy5OT1RfRk9VTkRfSU5ERVggPyAwIDogc2VsZWN0ZWRJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWQodGFiczogSVRhYk1vZGVsW10sIHNlbGVjdGVkSW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGFicy5mb3JFYWNoKChpdGVtOiBJVGFiTW9kZWwsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgaXRlbS5zZWxlY3RlZCA9IGluZGV4ID09IHNlbGVjdGVkSW5kZXg7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICpuZ0lmPVwidm0kIHwgYXN5bmMgYXMgdm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YWJzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJcIiBbc3R5bGUud2lkdGguJV09XCJ2bS50YWJXaWR0aFwiICpuZ0Zvcj1cImxldCB0YWIgb2Ygdm0udGFiczsgaW5kZXggYXMgaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFRhYih0YWIsIGluZGV4KVwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxzZmMtdGVtcGxhdGUtY29udGVudCBbcmVmZXJlbmNlQ29udGVudF09XCJsYWJlbFwiIFt0ZW1wbGF0ZXNDb250ZW50XT1cInRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlVHlwZV09XCJUYWJzVGVtcGxhdGUuTGFiZWxcIiBbZGVmYXVsdENvbnRlbnRdPVwiZGVmYXVsdExhYmVsXCIgW2NvbnRleHREYXRhXT1cInRhYlwiPlxyXG4gICAgICAgICAgICAgICAgPC9zZmMtdGVtcGxhdGUtY29udGVudD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMYWJlbD57eyB0YWIubGFiZWwgfX08L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPHNmYy10ZW1wbGF0ZS1jb250ZW50IFtyZWZlcmVuY2VDb250ZW50XT1cInNsaWRlclwiIFt0ZW1wbGF0ZXNDb250ZW50XT1cInRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgIFt0ZW1wbGF0ZVR5cGVdPVwiVGFic1RlbXBsYXRlLlNsaWRlclwiIFtjb250ZXh0RGF0YV09XCJ2bS5zbGlkZXJDb250ZXh0RGF0YVwiPlxyXG4gICAgICAgIDwvc2ZjLXRlbXBsYXRlLWNvbnRlbnQ+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImJvZHktY29udGFpbmVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZtLnNlbGVjdGVkVGFiXCI+XHJcblxyXG4gICAgICAgICAgICA8c2ZjLXRlbXBsYXRlLWNvbnRlbnQgW3JlZmVyZW5jZUNvbnRlbnRdPVwiYm9keVwiIFt0ZW1wbGF0ZXNDb250ZW50XT1cInRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgICBbdGVtcGxhdGVUeXBlXT1cIlRhYnNUZW1wbGF0ZS5Cb2R5XCIgW2NvbnRleHREYXRhXT1cInZtLnNlbGVjdGVkVGFiLmRhdGFcIj5cclxuICAgICAgICAgICAgPC9zZmMtdGVtcGxhdGUtY29udGVudD5cclxuXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|