@skyux/layout 8.0.0-alpha.7 → 8.0.0-alpha.8
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/documentation.json +224 -224
- package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater.component.mjs +3 -3
- package/fesm2015/skyux-layout.mjs +2 -2
- package/fesm2015/skyux-layout.mjs.map +1 -1
- package/fesm2020/skyux-layout.mjs +2 -2
- package/fesm2020/skyux-layout.mjs.map +1 -1
- package/package.json +9 -9
|
@@ -166,7 +166,7 @@ _SkyTextExpandRepeaterComponent_seeMoreText = new WeakMap(), _SkyTextExpandRepea
|
|
|
166
166
|
}
|
|
167
167
|
};
|
|
168
168
|
SkyTextExpandRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyTextExpandRepeaterComponent, deps: [{ token: i1.SkyLibResourcesService }, { token: i0.ElementRef }, { token: i2.SkyTextExpandRepeaterAdapterService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
169
|
-
SkyTextExpandRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyTextExpandRepeaterComponent, selector: "sky-text-expand-repeater", inputs: { data: "data", itemTemplate: "itemTemplate", listStyle: "listStyle", maxItems: "maxItems" }, providers: [SkyTextExpandRepeaterAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"!!isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of data\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
|
|
169
|
+
SkyTextExpandRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyTextExpandRepeaterComponent, selector: "sky-text-expand-repeater", inputs: { data: "data", itemTemplate: "itemTemplate", listStyle: "listStyle", maxItems: "maxItems" }, providers: [SkyTextExpandRepeaterAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"!!isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of data\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [":host{display:block}.sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0;margin-top:var(--sky-compat-text-expand-repeater-margin-top, 0)}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
|
|
170
170
|
trigger('expansionAnimation', [
|
|
171
171
|
transition(':enter', []),
|
|
172
172
|
state('true', style({
|
|
@@ -195,7 +195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
195
195
|
transition('false => true', animate('250ms ease')),
|
|
196
196
|
transition('void => *', []),
|
|
197
197
|
]),
|
|
198
|
-
], selector: 'sky-text-expand-repeater', providers: [SkyTextExpandRepeaterAdapterService], template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"!!isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of data\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"] }]
|
|
198
|
+
], selector: 'sky-text-expand-repeater', providers: [SkyTextExpandRepeaterAdapterService], template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"!!isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of data\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [":host{display:block}.sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0;margin-top:var(--sky-compat-text-expand-repeater-margin-top, 0)}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"] }]
|
|
199
199
|
}], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }, { type: i0.ElementRef }, { type: i2.SkyTextExpandRepeaterAdapterService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
200
200
|
type: Input
|
|
201
201
|
}], itemTemplate: [{
|
|
@@ -211,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
211
211
|
static: false,
|
|
212
212
|
}]
|
|
213
213
|
}] } });
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXIvdGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXIvdGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUNQLEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFFBQVEsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7O0FBRzdGOztHQUVHO0FBQ0gsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBOEJmLE1BQU0sT0FBTyw4QkFBOEI7SUFDekM7O09BRUc7SUFDSCxJQUNXLElBQUksQ0FBQyxLQUF3QjtRQUN0Qyx1QkFBQSxJQUFJLHlDQUFVLEtBQUssTUFBQSxDQUFDO1FBRXBCLHFFQUFxRTtRQUNyRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsdUJBQUEsSUFBSSw2Q0FBYyx1QkFBQSxJQUFJLGlFQUEyQixDQUFDLFFBQVEsQ0FBQyx1QkFBQSxJQUFJLDZDQUFP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Q3BDOzRCQUNELEtBQUssQ0FDSCxPQUFPLEVBQ1AsS0FBSyxDQUFDO2dDQUNKLFNBQVMsRUFBRSx3QkFBd0I7NkJBQ3BDLENBQUMsRUFDRixFQUFFLE1BQU0sRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQ3BDOzRCQUNELFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDOzRCQUNsRCxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQzs0QkFDbEQsVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7eUJBQzVCLENBQUM7cUJBQ0gsWUFDUywwQkFBMEIsYUFHekIsQ0FBQyxtQ0FBbUMsQ0FBQzt3TkFPckMsSUFBSTtzQkFEZCxLQUFLO2dCQW1CQyxZQUFZO3NCQURsQixLQUFLO2dCQVFDLFNBQVM7c0JBRGYsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQXdCQyxXQUFXO3NCQUpqQixTQUFTO3VCQUFDLFdBQVcsRUFBRTt3QkFDdEIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxLQUFLO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IGZvcmtKb2luIGFzIG9ic2VydmFibGVGb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3RleHQtZXhwYW5kLXJlcGVhdGVyLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJMaXN0U3R5bGVUeXBlIH0gZnJvbSAnLi90eXBlcy90ZXh0LWV4cGFuZC1yZXBlYXRlci1saXN0LXN0eWxlLXR5cGUnO1xuXG4vKipcbiAqIEF1dG8taW5jcmVtZW50aW5nIGludGVnZXIgdXNlZCB0byBnZW5lcmF0ZSB1bmlxdWUgaWRzIGZvciB0ZXh0IGV4cGFuZCByZXBlYXRlciBjb21wb25lbnRzLlxuICovXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdleHBhbnNpb25BbmltYXRpb24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXSksXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ3RydWUnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgbWF4SGVpZ2h0OiAne3t0cmFuc2l0aW9uSGVpZ2h0fX1weCcsXG4gICAgICAgIH0pLFxuICAgICAgICB7IHBhcmFtczogeyB0cmFuc2l0aW9uSGVpZ2h0OiAwIH0gfVxuICAgICAgKSxcbiAgICAgIHN0YXRlKFxuICAgICAgICAnZmFsc2UnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgbWF4SGVpZ2h0OiAne3t0cmFuc2l0aW9uSGVpZ2h0fX1weCcsXG4gICAgICAgIH0pLFxuICAgICAgICB7IHBhcmFtczogeyB0cmFuc2l0aW9uSGVpZ2h0OiAwIH0gfVxuICAgICAgKSxcbiAgICAgIHRyYW5zaXRpb24oJ3RydWUgPT4gZmFsc2UnLCBhbmltYXRlKCcyNTBtcyBlYXNlJykpLFxuICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIGFuaW1hdGUoJzI1MG1zIGVhc2UnKSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBbXSksXG4gICAgXSksXG4gIF0sXG4gIHNlbGVjdG9yOiAnc2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZXhwYW5kLXJlcGVhdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5VGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBkYXRhIHRvIHRydW5jYXRlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhKHZhbHVlOiBhbnlbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kYXRhID0gdmFsdWU7XG5cbiAgICAvLyBXYWl0IGZvciB0aGUgZG9tIHRvIHJlbmRlciB0aGUgbmV3IGl0ZW1zIGJhc2VkIG9uIHRoZSB1cGRhdGVkIGRhdGFcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuI2h0bWxJdGVtcyA9IHRoaXMuI3RleHRFeHBhbmRSZXBlYXRlckFkYXB0ZXIuZ2V0SXRlbXModGhpcy4jZWxSZWYpO1xuICAgICAgdGhpcy4jc2V0dXAodmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhKCk6IGFueVtdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2RhdGE7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIGZvciBpdGVtcyBpbiB0aGUgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgc3R5bGUgb2YgYnVsbGV0IHRvIHVzZVxuICAgKiBAZGVmYXVsdCBcInVub3JkZXJlZFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGlzdFN0eWxlOiBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJMaXN0U3R5bGVUeXBlIHwgdW5kZWZpbmVkID1cbiAgICAndW5vcmRlcmVkJztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBpdGVtcyB0byBkaXNwbGF5IGJlZm9yZSB0cnVuY2F0aW5nIHRoZSBsaXN0LiBJZiBub3Qgc3VwcGxpZWQsIGFsbCBpdGVtcyBhcmUgc2hvd24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1heEl0ZW1zKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbWF4SXRlbXMgPSB2YWx1ZTtcbiAgICB0aGlzLiNzZXR1cCh0aGlzLmRhdGEpO1xuICB9XG5cbiAgcHVibGljIGdldCBtYXhJdGVtcygpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfbWF4SXRlbXM7XG4gIH1cblxuICBwdWJsaWMgYnV0dG9uVGV4dCA9ICcnO1xuICBwdWJsaWMgZXhwYW5kYWJsZSA9IGZhbHNlO1xuICBwdWJsaWMgY29udGVudFNlY3Rpb25JZCA9IGBza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItY29udGVudC0keysrbmV4dElkfWA7XG5cbiAgcHVibGljIGlzRXhwYW5kZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyB0cmFuc2l0aW9uSGVpZ2h0ID0gMTtcblxuICAjc2VlTW9yZVRleHQgPSAnJztcbiAgI3NlZUxlc3NUZXh0ID0gJyc7XG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIGNvbnRhaW5lckVsOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNodG1sSXRlbXM6IE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gICNfZGF0YTogYW55W10gfCB1bmRlZmluZWQ7XG4gICNfbWF4SXRlbXM6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjcmVzb3VyY2VzOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlO1xuICAjZWxSZWY6IEVsZW1lbnRSZWY7XG4gICN0ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyOiBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG4gICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgdGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlcjogU2t5VGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlclNlcnZpY2UsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuI3Jlc291cmNlcyA9IHJlc291cmNlcztcbiAgICB0aGlzLiNlbFJlZiA9IGVsUmVmO1xuICAgIHRoaXMuI3RleHRFeHBhbmRSZXBlYXRlckFkYXB0ZXIgPSB0ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIG9ic2VydmFibGVGb3JrSm9pbihbXG4gICAgICB0aGlzLiNyZXNvdXJjZXMuZ2V0U3RyaW5nKCdza3l1eF90ZXh0X2V4cGFuZF9zZWVfbW9yZScpLFxuICAgICAgdGhpcy4jcmVzb3VyY2VzLmdldFN0cmluZygnc2t5dXhfdGV4dF9leHBhbmRfc2VlX2xlc3MnKSxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlcykgPT4ge1xuICAgICAgICB0aGlzLiNzZWVNb3JlVGV4dCA9IHJlc291cmNlc1swXTtcbiAgICAgICAgdGhpcy4jc2VlTGVzc1RleHQgPSByZXNvdXJjZXNbMV07XG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuI3NlZU1vcmVUZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuI3NlZUxlc3NUZXh0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFuaW1hdGlvbkVuZCgpOiB2b2lkIHtcbiAgICAvLyBFbnN1cmUgYWxsIGl0ZW1zIHRoYXQgc2hvdWxkIGJlIGhpZGRlbiBhcmUgaGlkZGVuLiBUaGlzIGlzIGJlY2F1c2Ugd2UgbmVlZCB0aGVtIHNob3duIGR1cmluZyB0aGUgYW5pbWF0aW9uIHdpbmRvdyBmb3IgdmlzdWFsIHB1cnBvc2VzLlxuICAgIGlmICghdGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICB0aGlzLiNoaWRlSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIHNldCB0aW1lb3V0IGlzIG5lZWRlZCBhcyB0aGUgYGFuaW1hdGlvbkVuZGAgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBhbmd1bGFyIGFuaW1hdGlvbiBjYWxsYmFjayBwcmlvciB0byB0aGUgYW5pbWF0aW9uIHNldHRpbmcgdGhlIHN0eWxlIG9uIHRoZSBlbGVtZW50XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb250YWluZXJFbCkge1xuICAgICAgICAvLyBTZXQgaGVpZ2h0IGJhY2sgdG8gYXV0byBzbyB0aGUgYnJvd3NlciBjYW4gY2hhbmdlIHRoZSBoZWlnaHQgYXMgbmVlZGVkIHdpdGggd2luZG93IGNoYW5nZXNcbiAgICAgICAgdGhpcy4jdGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5yZW1vdmVDb250YWluZXJNYXhIZWlnaHQoXG4gICAgICAgICAgdGhpcy5jb250YWluZXJFbFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlcGVhdGVyRXhwYW5kKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICB0aGlzLiNhbmltYXRlUmVwZWF0ZXIodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2FuaW1hdGVSZXBlYXRlcihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgI2FuaW1hdGVSZXBlYXRlcihleHBhbmRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcy4jdGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlcjtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lckVsO1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGlmIChleHBhbmRpbmcpIHtcbiAgICAgICAgdGhpcy4jc2hvd0l0ZW1zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNoaWRlSXRlbXMoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld0hlaWdodCA9IGFkYXB0ZXIuZ2V0Q29udGFpbmVySGVpZ2h0KGNvbnRhaW5lcik7XG4gICAgICB0aGlzLnRyYW5zaXRpb25IZWlnaHQgPSBuZXdIZWlnaHQ7XG4gICAgICBpZiAoIWV4cGFuZGluZykge1xuICAgICAgICB0aGlzLmJ1dHRvblRleHQgPSB0aGlzLiNzZWVNb3JlVGV4dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuI3NlZUxlc3NUZXh0O1xuICAgICAgfVxuICAgICAgaWYgKCFleHBhbmRpbmcpIHtcbiAgICAgICAgLy8gU2hvdyBhbGwgaXRlbXMgZHVyaW5nIGFuaW1hdGlvbiBmb3IgdmlzdWFsIHB1cnBvc2VzLlxuICAgICAgICB0aGlzLiNzaG93SXRlbXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IGV4cGFuZGluZztcbiAgICB9XG4gIH1cblxuICAjc2V0dXAodmFsdWU6IEFycmF5PHVua25vd24+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBsZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gICAgICBpZiAodGhpcy5tYXhJdGVtcyAmJiBsZW5ndGggPiB0aGlzLm1heEl0ZW1zKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kYWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuI3NlZU1vcmVUZXh0O1xuICAgICAgICB0aGlzLiNoaWRlSXRlbXMoKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyRWwpIHtcbiAgICAgICAgICB0aGlzLnRyYW5zaXRpb25IZWlnaHQgPVxuICAgICAgICAgICAgdGhpcy4jdGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5nZXRDb250YWluZXJIZWlnaHQoXG4gICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyRWxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmV4cGFuZGFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmV4cGFuZGFibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAjaGlkZUl0ZW1zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNodG1sSXRlbXMgJiYgdGhpcy5tYXhJdGVtcykge1xuICAgICAgZm9yIChsZXQgaSA9IHRoaXMubWF4SXRlbXM7IGkgPCB0aGlzLiNodG1sSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy4jdGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5oaWRlSXRlbSh0aGlzLiNodG1sSXRlbXNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNzaG93SXRlbXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2h0bWxJdGVtcyAmJiB0aGlzLm1heEl0ZW1zKSB7XG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5tYXhJdGVtczsgaSA8IHRoaXMuI2h0bWxJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLiN0ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyLnNob3dJdGVtKHRoaXMuI2h0bWxJdGVtc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyXCI+XG4gIDx1bFxuICAgICpuZ0lmPVwibGlzdFN0eWxlICE9PSAnb3JkZXJlZCdcIlxuICAgIGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLWNvbnRhaW5lclwiXG4gICAgW0BleHBhbnNpb25BbmltYXRpb25dPVwie1xuICAgICAgdmFsdWU6IGlzRXhwYW5kZWQsXG4gICAgICBwYXJhbXM6IHsgdHJhbnNpdGlvbkhlaWdodDogdHJhbnNpdGlvbkhlaWdodCB9XG4gICAgfVwiXG4gICAgKEBleHBhbnNpb25BbmltYXRpb24uZG9uZSk9XCJhbmltYXRpb25FbmQoKVwiXG4gICAgW2lkXT1cImNvbnRlbnRTZWN0aW9uSWRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItbGlzdC1zdHlsZS1ub25lJzogbGlzdFN0eWxlID09PSAndW5zdHlsZWQnXG4gICAgfVwiXG4gICAgI2NvbnRhaW5lclxuICA+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RJdGVtVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICA8L3VsPlxuICA8b2xcbiAgICAqbmdJZj1cImxpc3RTdHlsZSA9PT0gJ29yZGVyZWQnXCJcbiAgICBjbGFzcz1cInNreS10ZXh0LWV4cGFuZC1yZXBlYXRlci1jb250YWluZXJcIlxuICAgIFtAZXhwYW5zaW9uQW5pbWF0aW9uXT1cIntcbiAgICAgIHZhbHVlOiBpc0V4cGFuZGVkLFxuICAgICAgcGFyYW1zOiB7IHRyYW5zaXRpb25IZWlnaHQ6IHRyYW5zaXRpb25IZWlnaHQgfVxuICAgIH1cIlxuICAgIChAZXhwYW5zaW9uQW5pbWF0aW9uLmRvbmUpPVwiYW5pbWF0aW9uRW5kKClcIlxuICAgIFtpZF09XCJjb250ZW50U2VjdGlvbklkXCJcbiAgICAjY29udGFpbmVyXG4gID5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlzdEl0ZW1UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvb2w+XG4gIDxidXR0b25cbiAgICAqbmdJZj1cImV4cGFuZGFibGVcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmstaW5saW5lIHNreS10ZXh0LWV4cGFuZC1yZXBlYXRlci1zZWUtbW9yZVwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhIWlzRXhwYW5kZWRcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiY29udGVudFNlY3Rpb25JZFwiXG4gICAgKGNsaWNrKT1cInJlcGVhdGVyRXhwYW5kKClcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItc2VlLW1vcmUtbGlzdC1zdHlsZS1ub25lJzpcbiAgICAgICAgbGlzdFN0eWxlID09PSAndW5zdHlsZWQnXG4gICAgfVwiXG4gID5cbiAgICB7eyBidXR0b25UZXh0IH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjZGVmYXVsdEl0ZW1UZW1wbGF0ZT5cbiAge3sgaXRlbSB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0SXRlbVRlbXBsYXRlPlxuICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVwiIGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLWl0ZW1cIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbVRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXIvdGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXIvdGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUNQLEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFFBQVEsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7O0FBRzdGOztHQUVHO0FBQ0gsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBOEJmLE1BQU0sT0FBTyw4QkFBOEI7SUFDekM7O09BRUc7SUFDSCxJQUNXLElBQUksQ0FBQyxLQUF3QjtRQUN0Qyx1QkFBQSxJQUFJLHlDQUFVLEtBQUssTUFBQSxDQUFDO1FBRXBCLHFFQUFxRTtRQUNyRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsdUJBQUEsSUFBSSw2Q0FBYyx1QkFBQSxJQUFJLGlFQUEyQixDQUFDLFFBQVEsQ0FBQyx1QkFBQSxJQUFJLDZDQUFP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Q3BDOzRCQUNELEtBQUssQ0FDSCxPQUFPLEVBQ1AsS0FBSyxDQUFDO2dDQUNKLFNBQVMsRUFBRSx3QkFBd0I7NkJBQ3BDLENBQUMsRUFDRixFQUFFLE1BQU0sRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQ3BDOzRCQUNELFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDOzRCQUNsRCxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQzs0QkFDbEQsVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7eUJBQzVCLENBQUM7cUJBQ0gsWUFDUywwQkFBMEIsYUFHekIsQ0FBQyxtQ0FBbUMsQ0FBQzt3TkFPckMsSUFBSTtzQkFEZCxLQUFLO2dCQW1CQyxZQUFZO3NCQURsQixLQUFLO2dCQVFDLFNBQVM7c0JBRGYsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQXdCQyxXQUFXO3NCQUpqQixTQUFTO3VCQUFDLFdBQVcsRUFBRTt3QkFDdEIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxLQUFLO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IGZvcmtKb2luIGFzIG9ic2VydmFibGVGb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3RleHQtZXhwYW5kLXJlcGVhdGVyLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJMaXN0U3R5bGVUeXBlIH0gZnJvbSAnLi90eXBlcy90ZXh0LWV4cGFuZC1yZXBlYXRlci1saXN0LXN0eWxlLXR5cGUnO1xuXG4vKipcbiAqIEF1dG8taW5jcmVtZW50aW5nIGludGVnZXIgdXNlZCB0byBnZW5lcmF0ZSB1bmlxdWUgaWRzIGZvciB0ZXh0IGV4cGFuZCByZXBlYXRlciBjb21wb25lbnRzLlxuICovXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdleHBhbnNpb25BbmltYXRpb24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXSksXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ3RydWUnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgbWF4SGVpZ2h0OiAne3t0cmFuc2l0aW9uSGVpZ2h0fX1weCcsXG4gICAgICAgIH0pLFxuICAgICAgICB7IHBhcmFtczogeyB0cmFuc2l0aW9uSGVpZ2h0OiAwIH0gfVxuICAgICAgKSxcbiAgICAgIHN0YXRlKFxuICAgICAgICAnZmFsc2UnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgbWF4SGVpZ2h0OiAne3t0cmFuc2l0aW9uSGVpZ2h0fX1weCcsXG4gICAgICAgIH0pLFxuICAgICAgICB7IHBhcmFtczogeyB0cmFuc2l0aW9uSGVpZ2h0OiAwIH0gfVxuICAgICAgKSxcbiAgICAgIHRyYW5zaXRpb24oJ3RydWUgPT4gZmFsc2UnLCBhbmltYXRlKCcyNTBtcyBlYXNlJykpLFxuICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIGFuaW1hdGUoJzI1MG1zIGVhc2UnKSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBbXSksXG4gICAgXSksXG4gIF0sXG4gIHNlbGVjdG9yOiAnc2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZXhwYW5kLXJlcGVhdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5VGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBkYXRhIHRvIHRydW5jYXRlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhKHZhbHVlOiBhbnlbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kYXRhID0gdmFsdWU7XG5cbiAgICAvLyBXYWl0IGZvciB0aGUgZG9tIHRvIHJlbmRlciB0aGUgbmV3IGl0ZW1zIGJhc2VkIG9uIHRoZSB1cGRhdGVkIGRhdGFcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuI2h0bWxJdGVtcyA9IHRoaXMuI3RleHRFeHBhbmRSZXBlYXRlckFkYXB0ZXIuZ2V0SXRlbXModGhpcy4jZWxSZWYpO1xuICAgICAgdGhpcy4jc2V0dXAodmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhKCk6IGFueVtdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2RhdGE7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIGZvciBpdGVtcyBpbiB0aGUgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgc3R5bGUgb2YgYnVsbGV0IHRvIHVzZVxuICAgKiBAZGVmYXVsdCBcInVub3JkZXJlZFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGlzdFN0eWxlOiBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJMaXN0U3R5bGVUeXBlIHwgdW5kZWZpbmVkID1cbiAgICAndW5vcmRlcmVkJztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBpdGVtcyB0byBkaXNwbGF5IGJlZm9yZSB0cnVuY2F0aW5nIHRoZSBsaXN0LiBJZiBub3Qgc3VwcGxpZWQsIGFsbCBpdGVtcyBhcmUgc2hvd24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1heEl0ZW1zKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbWF4SXRlbXMgPSB2YWx1ZTtcbiAgICB0aGlzLiNzZXR1cCh0aGlzLmRhdGEpO1xuICB9XG5cbiAgcHVibGljIGdldCBtYXhJdGVtcygpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfbWF4SXRlbXM7XG4gIH1cblxuICBwdWJsaWMgYnV0dG9uVGV4dCA9ICcnO1xuICBwdWJsaWMgZXhwYW5kYWJsZSA9IGZhbHNlO1xuICBwdWJsaWMgY29udGVudFNlY3Rpb25JZCA9IGBza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItY29udGVudC0keysrbmV4dElkfWA7XG5cbiAgcHVibGljIGlzRXhwYW5kZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyB0cmFuc2l0aW9uSGVpZ2h0ID0gMTtcblxuICAjc2VlTW9yZVRleHQgPSAnJztcbiAgI3NlZUxlc3NUZXh0ID0gJyc7XG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIGNvbnRhaW5lckVsOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNodG1sSXRlbXM6IE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gICNfZGF0YTogYW55W10gfCB1bmRlZmluZWQ7XG4gICNfbWF4SXRlbXM6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjcmVzb3VyY2VzOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlO1xuICAjZWxSZWY6IEVsZW1lbnRSZWY7XG4gICN0ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyOiBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG4gICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgdGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlcjogU2t5VGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlclNlcnZpY2UsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuI3Jlc291cmNlcyA9IHJlc291cmNlcztcbiAgICB0aGlzLiNlbFJlZiA9IGVsUmVmO1xuICAgIHRoaXMuI3RleHRFeHBhbmRSZXBlYXRlckFkYXB0ZXIgPSB0ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIG9ic2VydmFibGVGb3JrSm9pbihbXG4gICAgICB0aGlzLiNyZXNvdXJjZXMuZ2V0U3RyaW5nKCdza3l1eF90ZXh0X2V4cGFuZF9zZWVfbW9yZScpLFxuICAgICAgdGhpcy4jcmVzb3VyY2VzLmdldFN0cmluZygnc2t5dXhfdGV4dF9leHBhbmRfc2VlX2xlc3MnKSxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlcykgPT4ge1xuICAgICAgICB0aGlzLiNzZWVNb3JlVGV4dCA9IHJlc291cmNlc1swXTtcbiAgICAgICAgdGhpcy4jc2VlTGVzc1RleHQgPSByZXNvdXJjZXNbMV07XG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuI3NlZU1vcmVUZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuI3NlZUxlc3NUZXh0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFuaW1hdGlvbkVuZCgpOiB2b2lkIHtcbiAgICAvLyBFbnN1cmUgYWxsIGl0ZW1zIHRoYXQgc2hvdWxkIGJlIGhpZGRlbiBhcmUgaGlkZGVuLiBUaGlzIGlzIGJlY2F1c2Ugd2UgbmVlZCB0aGVtIHNob3duIGR1cmluZyB0aGUgYW5pbWF0aW9uIHdpbmRvdyBmb3IgdmlzdWFsIHB1cnBvc2VzLlxuICAgIGlmICghdGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICB0aGlzLiNoaWRlSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIHNldCB0aW1lb3V0IGlzIG5lZWRlZCBhcyB0aGUgYGFuaW1hdGlvbkVuZGAgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBhbmd1bGFyIGFuaW1hdGlvbiBjYWxsYmFjayBwcmlvciB0byB0aGUgYW5pbWF0aW9uIHNldHRpbmcgdGhlIHN0eWxlIG9uIHRoZSBlbGVtZW50XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb250YWluZXJFbCkge1xuICAgICAgICAvLyBTZXQgaGVpZ2h0IGJhY2sgdG8gYXV0byBzbyB0aGUgYnJvd3NlciBjYW4gY2hhbmdlIHRoZSBoZWlnaHQgYXMgbmVlZGVkIHdpdGggd2luZG93IGNoYW5nZXNcbiAgICAgICAgdGhpcy4jdGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5yZW1vdmVDb250YWluZXJNYXhIZWlnaHQoXG4gICAgICAgICAgdGhpcy5jb250YWluZXJFbFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlcGVhdGVyRXhwYW5kKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICB0aGlzLiNhbmltYXRlUmVwZWF0ZXIodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2FuaW1hdGVSZXBlYXRlcihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgI2FuaW1hdGVSZXBlYXRlcihleHBhbmRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcy4jdGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlcjtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lckVsO1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGlmIChleHBhbmRpbmcpIHtcbiAgICAgICAgdGhpcy4jc2hvd0l0ZW1zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNoaWRlSXRlbXMoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld0hlaWdodCA9IGFkYXB0ZXIuZ2V0Q29udGFpbmVySGVpZ2h0KGNvbnRhaW5lcik7XG4gICAgICB0aGlzLnRyYW5zaXRpb25IZWlnaHQgPSBuZXdIZWlnaHQ7XG4gICAgICBpZiAoIWV4cGFuZGluZykge1xuICAgICAgICB0aGlzLmJ1dHRvblRleHQgPSB0aGlzLiNzZWVNb3JlVGV4dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuI3NlZUxlc3NUZXh0O1xuICAgICAgfVxuICAgICAgaWYgKCFleHBhbmRpbmcpIHtcbiAgICAgICAgLy8gU2hvdyBhbGwgaXRlbXMgZHVyaW5nIGFuaW1hdGlvbiBmb3IgdmlzdWFsIHB1cnBvc2VzLlxuICAgICAgICB0aGlzLiNzaG93SXRlbXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IGV4cGFuZGluZztcbiAgICB9XG4gIH1cblxuICAjc2V0dXAodmFsdWU6IEFycmF5PHVua25vd24+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBsZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gICAgICBpZiAodGhpcy5tYXhJdGVtcyAmJiBsZW5ndGggPiB0aGlzLm1heEl0ZW1zKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kYWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuI3NlZU1vcmVUZXh0O1xuICAgICAgICB0aGlzLiNoaWRlSXRlbXMoKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyRWwpIHtcbiAgICAgICAgICB0aGlzLnRyYW5zaXRpb25IZWlnaHQgPVxuICAgICAgICAgICAgdGhpcy4jdGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5nZXRDb250YWluZXJIZWlnaHQoXG4gICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyRWxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmV4cGFuZGFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmV4cGFuZGFibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAjaGlkZUl0ZW1zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNodG1sSXRlbXMgJiYgdGhpcy5tYXhJdGVtcykge1xuICAgICAgZm9yIChsZXQgaSA9IHRoaXMubWF4SXRlbXM7IGkgPCB0aGlzLiNodG1sSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy4jdGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5oaWRlSXRlbSh0aGlzLiNodG1sSXRlbXNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNzaG93SXRlbXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2h0bWxJdGVtcyAmJiB0aGlzLm1heEl0ZW1zKSB7XG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5tYXhJdGVtczsgaSA8IHRoaXMuI2h0bWxJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLiN0ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyLnNob3dJdGVtKHRoaXMuI2h0bWxJdGVtc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyXCI+XG4gIDx1bFxuICAgICpuZ0lmPVwibGlzdFN0eWxlICE9PSAnb3JkZXJlZCdcIlxuICAgIGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLWNvbnRhaW5lclwiXG4gICAgW0BleHBhbnNpb25BbmltYXRpb25dPVwie1xuICAgICAgdmFsdWU6IGlzRXhwYW5kZWQsXG4gICAgICBwYXJhbXM6IHsgdHJhbnNpdGlvbkhlaWdodDogdHJhbnNpdGlvbkhlaWdodCB9XG4gICAgfVwiXG4gICAgKEBleHBhbnNpb25BbmltYXRpb24uZG9uZSk9XCJhbmltYXRpb25FbmQoKVwiXG4gICAgW2lkXT1cImNvbnRlbnRTZWN0aW9uSWRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItbGlzdC1zdHlsZS1ub25lJzogbGlzdFN0eWxlID09PSAndW5zdHlsZWQnXG4gICAgfVwiXG4gICAgI2NvbnRhaW5lclxuICA+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RJdGVtVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICA8L3VsPlxuICA8b2xcbiAgICAqbmdJZj1cImxpc3RTdHlsZSA9PT0gJ29yZGVyZWQnXCJcbiAgICBjbGFzcz1cInNreS10ZXh0LWV4cGFuZC1yZXBlYXRlci1jb250YWluZXJcIlxuICAgIFtAZXhwYW5zaW9uQW5pbWF0aW9uXT1cIntcbiAgICAgIHZhbHVlOiBpc0V4cGFuZGVkLFxuICAgICAgcGFyYW1zOiB7IHRyYW5zaXRpb25IZWlnaHQ6IHRyYW5zaXRpb25IZWlnaHQgfVxuICAgIH1cIlxuICAgIChAZXhwYW5zaW9uQW5pbWF0aW9uLmRvbmUpPVwiYW5pbWF0aW9uRW5kKClcIlxuICAgIFtpZF09XCJjb250ZW50U2VjdGlvbklkXCJcbiAgICAjY29udGFpbmVyXG4gID5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlzdEl0ZW1UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvb2w+XG4gIDxidXR0b25cbiAgICAqbmdJZj1cImV4cGFuZGFibGVcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmstaW5saW5lIHNreS10ZXh0LWV4cGFuZC1yZXBlYXRlci1zZWUtbW9yZVwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhIWlzRXhwYW5kZWRcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiY29udGVudFNlY3Rpb25JZFwiXG4gICAgKGNsaWNrKT1cInJlcGVhdGVyRXhwYW5kKClcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItc2VlLW1vcmUtbGlzdC1zdHlsZS1ub25lJzpcbiAgICAgICAgbGlzdFN0eWxlID09PSAndW5zdHlsZWQnXG4gICAgfVwiXG4gID5cbiAgICB7eyBidXR0b25UZXh0IH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjZGVmYXVsdEl0ZW1UZW1wbGF0ZT5cbiAge3sgaXRlbSB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0SXRlbVRlbXBsYXRlPlxuICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVwiIGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLWl0ZW1cIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbVRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -2827,7 +2827,7 @@ _SkyTextExpandRepeaterComponent_seeMoreText = new WeakMap(), _SkyTextExpandRepea
|
|
|
2827
2827
|
}
|
|
2828
2828
|
};
|
|
2829
2829
|
SkyTextExpandRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyTextExpandRepeaterComponent, deps: [{ token: i1$2.SkyLibResourcesService }, { token: i0.ElementRef }, { token: SkyTextExpandRepeaterAdapterService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2830
|
-
SkyTextExpandRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyTextExpandRepeaterComponent, selector: "sky-text-expand-repeater", inputs: { data: "data", itemTemplate: "itemTemplate", listStyle: "listStyle", maxItems: "maxItems" }, providers: [SkyTextExpandRepeaterAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"!!isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of data\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
|
|
2830
|
+
SkyTextExpandRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyTextExpandRepeaterComponent, selector: "sky-text-expand-repeater", inputs: { data: "data", itemTemplate: "itemTemplate", listStyle: "listStyle", maxItems: "maxItems" }, providers: [SkyTextExpandRepeaterAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"!!isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of data\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [":host{display:block}.sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0;margin-top:var(--sky-compat-text-expand-repeater-margin-top, 0)}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
|
|
2831
2831
|
trigger('expansionAnimation', [
|
|
2832
2832
|
transition(':enter', []),
|
|
2833
2833
|
state('true', style({
|
|
@@ -2856,7 +2856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
2856
2856
|
transition('false => true', animate('250ms ease')),
|
|
2857
2857
|
transition('void => *', []),
|
|
2858
2858
|
]),
|
|
2859
|
-
], selector: 'sky-text-expand-repeater', providers: [SkyTextExpandRepeaterAdapterService], template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"!!isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of data\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"] }]
|
|
2859
|
+
], selector: 'sky-text-expand-repeater', providers: [SkyTextExpandRepeaterAdapterService], template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"!!isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of data\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [":host{display:block}.sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0;margin-top:var(--sky-compat-text-expand-repeater-margin-top, 0)}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"] }]
|
|
2860
2860
|
}], ctorParameters: function () { return [{ type: i1$2.SkyLibResourcesService }, { type: i0.ElementRef }, { type: SkyTextExpandRepeaterAdapterService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
2861
2861
|
type: Input
|
|
2862
2862
|
}], itemTemplate: [{
|