@agorapulse/ui-components 17.4.0 → 17.4.2
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/agorapulse-ui-components-17.4.2.tgz +0 -0
- package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +4 -4
- package/esm2022/tooltip/tooltip.directive.mjs +1 -1
- package/fesm2022/agorapulse-ui-components-select.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -1
- package/package.json +24 -24
- package/tooltip/tooltip.directive.d.ts +1 -1
- package/agorapulse-ui-components-17.4.0.tgz +0 -0
|
Binary file
|
|
@@ -18,9 +18,9 @@ export class SelectLabelMultipleComponent {
|
|
|
18
18
|
selectedLabels = computed(() => this.selectedItems().map(item => {
|
|
19
19
|
const label = this.bindLabel() ? item[this.bindLabel()] : item;
|
|
20
20
|
const approximateCharWidth = 5;
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const ellipsisLastIndex = Math.min(label.length, maxCharLength);
|
|
21
|
+
const maxCharLength = (this.valueContainerWidth() / label.length) * approximateCharWidth;
|
|
22
|
+
const ellipsisCharLenght = 2;
|
|
23
|
+
const ellipsisLastIndex = Math.min(label.length, maxCharLength - ellipsisCharLenght);
|
|
24
24
|
const truncatedLabel = label.slice(0, ellipsisLastIndex);
|
|
25
25
|
return {
|
|
26
26
|
label: truncatedLabel.length < label.length ? truncatedLabel + '...' : truncatedLabel,
|
|
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
78
78
|
type: Component,
|
|
79
79
|
args: [{ selector: 'ap-select-label-multiple', standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LabelComponent, TagComponent, AvatarComponent, SymbolComponent], template: "<div class=\"multiple-item\">\n @for (item of selectedLabels(); track trackByItem($index, item)) {\n @if (displayType() === 'label') {\n <ap-label\n class=\"item\"\n color=\"blue\"\n removable=\"true\"\n [content]=\"item.label\"\n (remove)=\"removeItem.emit(item.value)\" />\n }\n\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"item text-item\"\n clearable=\"true\"\n color=\"grey\"\n (clear)=\"removeItem.emit(item.value)\">\n @if (item.avatarUrl) {\n <ap-avatar\n [size]=\"16\"\n [rounded]=\"roundedAvatar()\"\n [profilePicture]=\"item.avatarUrl\"\n [username]=\"item.label\"\n [showInitials]=\"true\" />\n } @else if (item.symbolId) {\n <ap-symbol\n size=\"sm\"\n [attr.symbol-id]=\"item.symbolId\"\n [symbolId]=\"item.symbolId\" />\n }\n {{ item.label }}\n </ap-tag>\n }\n }\n</div>\n\n@if (hiddenCount() > 0) {\n <div class=\"remaining\">\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"text-item\"\n color=\"grey\"\n clearable=\"false\">\n +{{ hiddenCount() }}\n </ap-tag>\n }\n @if (displayType() === 'label') {\n <ap-label\n color=\"blue\"\n removable=\"false\"\n [content]=\"'+' + hiddenCount()\" />\n }\n </div>\n}\n", styles: ["ap-select-label-multiple{display:flex}\n"] }]
|
|
80
80
|
}] });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWxhYmVsLW11bHRpcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zZWxlY3Qvc3JjL3NlbGVjdC1sYWJlbC1tdWx0aXBsZS9zZWxlY3QtbGFiZWwtbXVsdGlwbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NlbGVjdC9zcmMvc2VsZWN0LWxhYmVsLW11bHRpcGxlL3NlbGVjdC1sYWJlbC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDOztBQVd2QixNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLFdBQVcsR0FBRyxLQUFLLENBQWtCLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLGFBQWEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFTLENBQUM7SUFDeEMsU0FBUyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QixTQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLGFBQWEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUIsWUFBWSxHQUFHLEtB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c0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLFVBQVUsSUFBSSxDQUFDO1FBQzVHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7dUdBbkZRLDRCQUE0QjsyRkFBNUIsNEJBQTRCLHFsQ0M3QnpDLHF3REFzREEsa0dEM0JjLGNBQWMsNkhBQUUsWUFBWSwrR0FBRSxlQUFlLDZMQUFFLGVBQWU7OzJGQUUvRCw0QkFBNEI7a0JBVHhDLFNBQVM7K0JBQ0ksMEJBQTBCLGNBR3hCLElBQUksaUJBQ0QsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvYXZhdGFyJztcbmltcG9ydCB7IExhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9sYWJlbHMnO1xuaW1wb3J0IHsgVGFnQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy90YWcnO1xuaW1wb3J0IHsgU3ltYm9sQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGNvbXB1dGVkLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgb3V0cHV0LFxuICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbiAgICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLXNlbGVjdC1sYWJlbC1tdWx0aXBsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1sYWJlbC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWxhYmVsLW11bHRpcGxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtMYWJlbENvbXBvbmVudCwgVGFnQ29tcG9uZW50LCBBdmF0YXJDb21wb25lbnQsIFN5bWJvbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdExhYmVsTXVsdGlwbGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBkaXNwbGF5VHlwZSA9IGlucHV0PCd0YWcnIHwgJ2xhYmVsJz4oJ2xhYmVsJyk7XG4gICAgc2VsZWN0ZWRJdGVtcyA9IGlucHV0LnJlcXVpcmVkPGFueVtdPigpO1xuICAgIGJpbmRMYWJlbCA9IGlucHV0KCcnKTtcbiAgICBiaW5kVmFsdWUgPSBpbnB1dCgnJyk7XG4gICAgYmluZEF2YXRhclVybCA9IGlucHV0KCcnKTtcbiAgICBiaW5kU3ltYm9sSWQgPSBpbnB1dCgnJyk7XG5cbiAgICByb3VuZGVkQXZhdGFyID0gaW5wdXQodHJ1ZSk7XG5cbiAgICByZW1vdmVJdGVtID0gb3V0cHV0PGFueT4oKTtcblxuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gICAgc2VsZWN0ZWRMYWJlbHMgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMoKS5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuYmluZExhYmVsKCkgPyBpdGVtW3RoaXMuYmluZExhYmVsKCldIDogaXRlbTtcbiAgICAgICAgICAgIGNvbnN0IGFwcHJveGltYXRlQ2hhcldpZHRoID0gNTtcbiAgICAgICAgICAgIGNvbnN0IGFwcHJveGltYXRlRWxsaXBzaXNDaGFyV2lkdGggPSAyO1xuICAgICAgICAgICAgY29uc3QgbWF4Q2hhckxlbmd0aCA9ICh0aGlzLnZhbHVlQ29udGFpbmVyV2lkdGgoKSAvIGxhYmVsLmxlbmd0aCkgKiBhcHByb3hpbWF0ZUNoYXJXaWR0aCAtIGFwcHJveGltYXRlRWxsaXBzaXNDaGFyV2lkdGg7XG4gICAgICAgICAgICBjb25zdCBlbGxpcHNpc0xhc3RJbmRleCA9IE1hdGgubWluKGxhYmVsLmxlbmd0aCwgbWF4Q2hhckxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCB0cnVuY2F0ZWRMYWJlbCA9IGxhYmVsLnNsaWNlKDAsIGVsbGlwc2lzTGFzdEluZGV4KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHRydW5jYXRlZExhYmVsLmxlbmd0aCA8IGxhYmVsLmxlbmd0aCA/IHRydW5jYXRlZExhYmVsICsgJy4uLicgOiB0cnVuY2F0ZWRMYWJlbCxcbiAgICAgICAgICAgICAgICBhdmF0YXJVcmw6IHRoaXMuYmluZEF2YXRhclVybCgpID8gaXRlbVt0aGlzLmJpbmRBdmF0YXJVcmwoKV0gOiAnJyxcbiAgICAgICAgICAgICAgICBzeW1ib2xJZDogdGhpcy5iaW5kU3ltYm9sSWQoKSA/IGl0ZW1bdGhpcy5iaW5kU3ltYm9sSWQoKV0gOiBudWxsLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgdmFsdWVDb250YWluZXJXaWR0aCA9IHNpZ25hbCgwKTtcbiAgICBoaWRkZW5Db3VudCA9IHNpZ25hbCgwKTtcblxuICAgIHRyYWNrQnlJdGVtID0gKF86IG51bWJlciwgaXRlbTogYW55KSA9PiAodGhpcy5iaW5kVmFsdWUoKSA/IGl0ZW0udmFsdWVbdGhpcy5iaW5kVmFsdWUoKV0gOiBpdGVtLnZhbHVlKTtcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50V2lkdGggPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQ/Lm9mZnNldFdpZHRoO1xuICAgICAgICB0aGlzLnZhbHVlQ29udGFpbmVyV2lkdGguc2V0KHBhcmVudFdpZHRoID8/IDApO1xuXG4gICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RWYWx1ZUNvbnRhaW5lcldpZHRoID0gdGhpcy52YWx1ZUNvbnRhaW5lcldpZHRoKCkgLSAzMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVSZXNwb25zaXZlTGFiZWxzKHNlbGVjdFZhbHVlQ29udGFpbmVyV2lkdGgsIHNlbGVjdGVkVmFsdWVzKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlUmVzcG9uc2l2ZUxhYmVscyhjb250YWluZXJXaWR0aDogbnVtYmVyLCBzZWxlY3RlZFZhbHVlczogYW55W10pOiB2b2lkIHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcldpZHRoID09PSAwIHx8ICFzZWxlY3RlZFZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB0b3RhbFdpZHRoID0gMDtcbiAgICAgICAgbGV0IGhpZGRlbkNvdW50ID0gMDtcbiAgICAgICAgY29uc3QgaXRlbUdhcCA9IDQ7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaXRlbScpO1xuXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW06IEhUTUxFbGVtZW50ID0gaXRlbXNbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgaXRlbVdpZHRoID0gaXRlbS5jbGllbnRXaWR0aCArIGl0ZW1HYXA7XG5cbiAgICAgICAgICAgIGlmICh0b3RhbFdpZHRoICsgaXRlbVdpZHRoIDwgY29udGFpbmVyV2lkdGggJiYgIWhpZGRlbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgdG90YWxXaWR0aCArPSBpdGVtV2lkdGg7XG4gICAgICAgICAgICAgICAgKGl0ZW0gYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIChpdGVtIGFzIEhUTUxFbGVtZW50KS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICAgICAgaGlkZGVuQ291bnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ211bHRpcGxlLWl0ZW0nKVswXS5zdHlsZS5tYXhXaWR0aCA9IGAke3RvdGFsV2lkdGh9cHhgO1xuICAgICAgICB0aGlzLmhpZGRlbkNvdW50LnNldChoaWRkZW5Db3VudCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm11bHRpcGxlLWl0ZW1cIj5cbiAgICBAZm9yIChpdGVtIG9mIHNlbGVjdGVkTGFiZWxzKCk7IHRyYWNrIHRyYWNrQnlJdGVtKCRpbmRleCwgaXRlbSkpIHtcbiAgICAgICAgQGlmIChkaXNwbGF5VHlwZSgpID09PSAnbGFiZWwnKSB7XG4gICAgICAgICAgICA8YXAtbGFiZWxcbiAgICAgICAgICAgICAgICBjbGFzcz1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwiYmx1ZVwiXG4gICAgICAgICAgICAgICAgcmVtb3ZhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgKHJlbW92ZSk9XCJyZW1vdmVJdGVtLmVtaXQoaXRlbS52YWx1ZSlcIiAvPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChkaXNwbGF5VHlwZSgpID09PSAndGFnJykge1xuICAgICAgICAgICAgPGFwLXRhZ1xuICAgICAgICAgICAgICAgIGNsYXNzPVwiaXRlbSB0ZXh0LWl0ZW1cIlxuICAgICAgICAgICAgICAgIGNsZWFyYWJsZT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwiZ3JleVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyKT1cInJlbW92ZUl0ZW0uZW1pdChpdGVtLnZhbHVlKVwiPlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5hdmF0YXJVcmwpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFwLWF2YXRhclxuICAgICAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdW5kZWRdPVwicm91bmRlZEF2YXRhcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9maWxlUGljdHVyZV09XCJpdGVtLmF2YXRhclVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdXNlcm5hbWVdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0luaXRpYWxzXT1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGl0ZW0uc3ltYm9sSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN5bWJvbC1pZF09XCJpdGVtLnN5bWJvbElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzeW1ib2xJZF09XCJpdGVtLnN5bWJvbElkXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9hcC10YWc+XG4gICAgICAgIH1cbiAgICB9XG48L2Rpdj5cblxuQGlmIChoaWRkZW5Db3VudCgpID4gMCkge1xuICAgIDxkaXYgY2xhc3M9XCJyZW1haW5pbmdcIj5cbiAgICAgICAgQGlmIChkaXNwbGF5VHlwZSgpID09PSAndGFnJykge1xuICAgICAgICAgICAgPGFwLXRhZ1xuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1pdGVtXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImdyZXlcIlxuICAgICAgICAgICAgICAgIGNsZWFyYWJsZT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgK3t7IGhpZGRlbkNvdW50KCkgfX1cbiAgICAgICAgICAgIDwvYXAtdGFnPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZGlzcGxheVR5cGUoKSA9PT0gJ2xhYmVsJykge1xuICAgICAgICAgICAgPGFwLWxhYmVsXG4gICAgICAgICAgICAgICAgY29sb3I9XCJibHVlXCJcbiAgICAgICAgICAgICAgICByZW1vdmFibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwiJysnICsgaGlkZGVuQ291bnQoKVwiIC8+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWxhYmVsLW11bHRpcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zZWxlY3Qvc3JjL3NlbGVjdC1sYWJlbC1tdWx0aXBsZS9zZWxlY3QtbGFiZWwtbXVsdGlwbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NlbGVjdC9zcmMvc2VsZWN0LWxhYmVsLW11bHRpcGxlL3NlbGVjdC1sYWJlbC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDOztBQVd2QixNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLFdBQVcsR0FBRyxLQUFLLENBQWtCLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLGFBQWEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFTLENBQUM7SUFDeEMsU0FBUyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QixTQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLGFBQWEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUIsWUFBWSxHQUFHLEtB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c0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLFVBQVUsSUFBSSxDQUFDO1FBQzVHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7dUdBbkZRLDRCQUE0QjsyRkFBNUIsNEJBQTRCLHFsQ0M3QnpDLHF3REFzREEsa0dEM0JjLGNBQWMsNkhBQUUsWUFBWSwrR0FBRSxlQUFlLDZMQUFFLGVBQWU7OzJGQUUvRCw0QkFBNEI7a0JBVHhDLFNBQVM7K0JBQ0ksMEJBQTBCLGNBR3hCLElBQUksaUJBQ0QsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvYXZhdGFyJztcbmltcG9ydCB7IExhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9sYWJlbHMnO1xuaW1wb3J0IHsgVGFnQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy90YWcnO1xuaW1wb3J0IHsgU3ltYm9sQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGNvbXB1dGVkLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgb3V0cHV0LFxuICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbiAgICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLXNlbGVjdC1sYWJlbC1tdWx0aXBsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1sYWJlbC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWxhYmVsLW11bHRpcGxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtMYWJlbENvbXBvbmVudCwgVGFnQ29tcG9uZW50LCBBdmF0YXJDb21wb25lbnQsIFN5bWJvbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdExhYmVsTXVsdGlwbGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBkaXNwbGF5VHlwZSA9IGlucHV0PCd0YWcnIHwgJ2xhYmVsJz4oJ2xhYmVsJyk7XG4gICAgc2VsZWN0ZWRJdGVtcyA9IGlucHV0LnJlcXVpcmVkPGFueVtdPigpO1xuICAgIGJpbmRMYWJlbCA9IGlucHV0KCcnKTtcbiAgICBiaW5kVmFsdWUgPSBpbnB1dCgnJyk7XG4gICAgYmluZEF2YXRhclVybCA9IGlucHV0KCcnKTtcbiAgICBiaW5kU3ltYm9sSWQgPSBpbnB1dCgnJyk7XG5cbiAgICByb3VuZGVkQXZhdGFyID0gaW5wdXQodHJ1ZSk7XG5cbiAgICByZW1vdmVJdGVtID0gb3V0cHV0PGFueT4oKTtcblxuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gICAgc2VsZWN0ZWRMYWJlbHMgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMoKS5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuYmluZExhYmVsKCkgPyBpdGVtW3RoaXMuYmluZExhYmVsKCldIDogaXRlbTtcbiAgICAgICAgICAgIGNvbnN0IGFwcHJveGltYXRlQ2hhcldpZHRoID0gNTtcbiAgICAgICAgICAgIGNvbnN0IG1heENoYXJMZW5ndGggPSAodGhpcy52YWx1ZUNvbnRhaW5lcldpZHRoKCkgLyBsYWJlbC5sZW5ndGgpICogYXBwcm94aW1hdGVDaGFyV2lkdGg7XG4gICAgICAgICAgICBjb25zdCBlbGxpcHNpc0NoYXJMZW5naHQgPSAyO1xuICAgICAgICAgICAgY29uc3QgZWxsaXBzaXNMYXN0SW5kZXggPSBNYXRoLm1pbihsYWJlbC5sZW5ndGgsIG1heENoYXJMZW5ndGggLSBlbGxpcHNpc0NoYXJMZW5naHQpO1xuICAgICAgICAgICAgY29uc3QgdHJ1bmNhdGVkTGFiZWwgPSBsYWJlbC5zbGljZSgwLCBlbGxpcHNpc0xhc3RJbmRleCk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0cnVuY2F0ZWRMYWJlbC5sZW5ndGggPCBsYWJlbC5sZW5ndGggPyB0cnVuY2F0ZWRMYWJlbCArICcuLi4nIDogdHJ1bmNhdGVkTGFiZWwsXG4gICAgICAgICAgICAgICAgYXZhdGFyVXJsOiB0aGlzLmJpbmRBdmF0YXJVcmwoKSA/IGl0ZW1bdGhpcy5iaW5kQXZhdGFyVXJsKCldIDogJycsXG4gICAgICAgICAgICAgICAgc3ltYm9sSWQ6IHRoaXMuYmluZFN5bWJvbElkKCkgPyBpdGVtW3RoaXMuYmluZFN5bWJvbElkKCldIDogbnVsbCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHZhbHVlQ29udGFpbmVyV2lkdGggPSBzaWduYWwoMCk7XG4gICAgaGlkZGVuQ291bnQgPSBzaWduYWwoMCk7XG5cbiAgICB0cmFja0J5SXRlbSA9IChfOiBudW1iZXIsIGl0ZW06IGFueSkgPT4gKHRoaXMuYmluZFZhbHVlKCkgPyBpdGVtLnZhbHVlW3RoaXMuYmluZFZhbHVlKCldIDogaXRlbS52YWx1ZSk7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhcmVudFdpZHRoID0gKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50Py5vZmZzZXRXaWR0aDtcbiAgICAgICAgdGhpcy52YWx1ZUNvbnRhaW5lcldpZHRoLnNldChwYXJlbnRXaWR0aCA/PyAwKTtcblxuICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0VmFsdWVDb250YWluZXJXaWR0aCA9IHRoaXMudmFsdWVDb250YWluZXJXaWR0aCgpIC0gMzA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUmVzcG9uc2l2ZUxhYmVscyhzZWxlY3RWYWx1ZUNvbnRhaW5lcldpZHRoLCBzZWxlY3RlZFZhbHVlcyk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNhbGN1bGF0ZVJlc3BvbnNpdmVMYWJlbHMoY29udGFpbmVyV2lkdGg6IG51bWJlciwgc2VsZWN0ZWRWYWx1ZXM6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGlmIChjb250YWluZXJXaWR0aCA9PT0gMCB8fCAhc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdG90YWxXaWR0aCA9IDA7XG4gICAgICAgIGxldCBoaWRkZW5Db3VudCA9IDA7XG4gICAgICAgIGNvbnN0IGl0ZW1HYXAgPSA0O1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2l0ZW0nKTtcblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgaXRlbXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtOiBIVE1MRWxlbWVudCA9IGl0ZW1zW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1XaWR0aCA9IGl0ZW0uY2xpZW50V2lkdGggKyBpdGVtR2FwO1xuXG4gICAgICAgICAgICBpZiAodG90YWxXaWR0aCArIGl0ZW1XaWR0aCA8IGNvbnRhaW5lcldpZHRoICYmICFoaWRkZW5Db3VudCkge1xuICAgICAgICAgICAgICAgIHRvdGFsV2lkdGggKz0gaXRlbVdpZHRoO1xuICAgICAgICAgICAgICAgIChpdGVtIGFzIEhUTUxFbGVtZW50KS5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAoaXRlbSBhcyBIVE1MRWxlbWVudCkuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgICAgIGhpZGRlbkNvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtdWx0aXBsZS1pdGVtJylbMF0uc3R5bGUubWF4V2lkdGggPSBgJHt0b3RhbFdpZHRofXB4YDtcbiAgICAgICAgdGhpcy5oaWRkZW5Db3VudC5zZXQoaGlkZGVuQ291bnQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtdWx0aXBsZS1pdGVtXCI+XG4gICAgQGZvciAoaXRlbSBvZiBzZWxlY3RlZExhYmVscygpOyB0cmFjayB0cmFja0J5SXRlbSgkaW5kZXgsIGl0ZW0pKSB7XG4gICAgICAgIEBpZiAoZGlzcGxheVR5cGUoKSA9PT0gJ2xhYmVsJykge1xuICAgICAgICAgICAgPGFwLWxhYmVsXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpdGVtXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImJsdWVcIlxuICAgICAgICAgICAgICAgIHJlbW92YWJsZT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgIChyZW1vdmUpPVwicmVtb3ZlSXRlbS5lbWl0KGl0ZW0udmFsdWUpXCIgLz5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoZGlzcGxheVR5cGUoKSA9PT0gJ3RhZycpIHtcbiAgICAgICAgICAgIDxhcC10YWdcbiAgICAgICAgICAgICAgICBjbGFzcz1cIml0ZW0gdGV4dC1pdGVtXCJcbiAgICAgICAgICAgICAgICBjbGVhcmFibGU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImdyZXlcIlxuICAgICAgICAgICAgICAgIChjbGVhcik9XCJyZW1vdmVJdGVtLmVtaXQoaXRlbS52YWx1ZSlcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uYXZhdGFyVXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhcC1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIjE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3VuZGVkXT1cInJvdW5kZWRBdmF0YXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJvZmlsZVBpY3R1cmVdPVwiaXRlbS5hdmF0YXJVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJuYW1lXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dJbml0aWFsc109XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChpdGVtLnN5bWJvbElkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zeW1ib2wtaWRdPVwiaXRlbS5zeW1ib2xJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3ltYm9sSWRdPVwiaXRlbS5zeW1ib2xJZFwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvYXAtdGFnPlxuICAgICAgICB9XG4gICAgfVxuPC9kaXY+XG5cbkBpZiAoaGlkZGVuQ291bnQoKSA+IDApIHtcbiAgICA8ZGl2IGNsYXNzPVwicmVtYWluaW5nXCI+XG4gICAgICAgIEBpZiAoZGlzcGxheVR5cGUoKSA9PT0gJ3RhZycpIHtcbiAgICAgICAgICAgIDxhcC10YWdcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtaXRlbVwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJncmV5XCJcbiAgICAgICAgICAgICAgICBjbGVhcmFibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICt7eyBoaWRkZW5Db3VudCgpIH19XG4gICAgICAgICAgICA8L2FwLXRhZz5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGRpc3BsYXlUeXBlKCkgPT09ICdsYWJlbCcpIHtcbiAgICAgICAgICAgIDxhcC1sYWJlbFxuICAgICAgICAgICAgICAgIGNvbG9yPVwiYmx1ZVwiXG4gICAgICAgICAgICAgICAgcmVtb3ZhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIicrJyArIGhpZGRlbkNvdW50KClcIiAvPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -398,4 +398,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
398
398
|
type: Directive,
|
|
399
399
|
args: [{ selector: '[apTooltip]', standalone: true }]
|
|
400
400
|
}] });
|
|
401
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvdG9vbHRpcC9zcmMvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVILFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFHTixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixLQUFLLEdBQ1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUNSLFVBQVUsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsSUFBSSxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixnQkFBZ0IsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqRCxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBaUQsQ0FBQztJQUM1RSxpQkFBaUIsR0FBRyxLQUFLLENBQWtHLEtBQUssQ0FBQyxDQUFDO0lBQ2xJLGtCQUFrQixHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUN2QyxrQkFBa0IsR0FBRyxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsaUJBQWlCLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLGlCQUFpQixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUMxQywwQkFBMEIsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbkQsd0JBQXdCLEdB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LENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDO1lBQzFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0gsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDO1lBQzFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxHQUNOLFVBQVUsQ0FBQyxJ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QUFFLENBQUM7UUFDaEYsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2hHLENBQUM7SUFDTCxDQUFDO3VHQWpjUSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IERPTVB1cmlmeSBmcm9tICdkb21wdXJpZnknO1xuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuL3Rvb2x0aXAuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1thcFRvb2x0aXBdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGFwVG9vbHRpcCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZyB8IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZD4oKTtcbiAgICBhcFRvb2x0aXBQb3NpdGlvbiA9IGlucHV0PCdyaWdodCcgfCAnbGVmdCcgfCAndG9wJyB8ICdib3R0b20nIHwgJ2JvdHRvbS1sZWZ0JyB8ICdib3R0b20tcmlnaHQnIHwgJ3RvcC1sZWZ0JyB8ICd0b3AtcmlnaHQnPigndG9wJyk7XG4gICAgYXBUb29sdGlwU2hvd0RlbGF5ID0gaW5wdXQ8bnVtYmVyPig4MCk7XG4gICAgYXBUb29sdGlwSGlkZURlbGF5ID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgICBhcFRvb2x0aXBEdXJhdGlvbiA9IGlucHV0PG51bWJlcj4oMCk7XG4gICAgYXBUb29sdGlwRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gICAgYXBUb29sdGlwVHJ1bmNhdGVkVGV4dE9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gICAgYXBUb29sdGlwVGVtcGxhdGVDb250ZXh0ID0gaW5wdXQ8YW55PigpO1xuICAgIGFwVG9vbHRpcFZpcnR1YWxTY3JvbGxFbGVtZW50ID0gaW5wdXQ8Q2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0PigpO1xuXG4gICAgY2xpY2tMaXN0ZW5lcjogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIGhpZGVUaW1lb3V0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBtb3VzZUVudGVyTGlzdGVuZXI6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIG1vdXNlTGVhdmVMaXN0ZW5lcjogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIHNob3dUaW1lb3V0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICB0b29sdGlwVGV4dDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXBUb29sdGlwVmlydHVhbFNjcm9sbEVsZW1lbnQgPSB0aGlzLmFwVG9vbHRpcFZpcnR1YWxTY3JvbGxFbGVtZW50KCk7XG4gICAgICAgIGlmIChhcFRvb2x0aXBWaXJ0dWFsU2Nyb2xsRWxlbWVudCkge1xuICAgICAgICAgICAgYXBUb29sdGlwVmlydHVhbFNjcm9sbEVsZW1lbnQucmVuZGVyZWRSYW5nZVN0cmVhbS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUocmFuZ2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyYW5nZS5zdGFydCA9PT0gMCAmJiByYW5nZS5lbmQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlRW50ZXJMaXN0ZW5lciA9IHRoaXMub25Nb3VzZUVudGVyLmJpbmQodGhpcyk7XG4gICAgICAgICAgICB0aGlzLm1vdXNlTGVhdmVMaXN0ZW5lciA9IHRoaXMub25Nb3VzZUxlYXZlLmJpbmQodGhpcyk7XG4gICAgICAgICAgICB0aGlzLmNsaWNrTGlzdGVuZXIgPSB0aGlzLm9uSW5wdXRDbGljay5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLm1vdXNlRW50ZXJMaXN0ZW5lcik7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrTGlzdGVuZXIpO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLm1vdXNlTGVhdmVMaXN0ZW5lcik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1vdXNlRW50ZXJMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLm1vdXNlRW50ZXJMaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2xpY2tMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja0xpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tb3VzZUxlYXZlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5tb3VzZUxlYXZlTGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW91c2VFbnRlckxpc3RlbmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm1vdXNlTGVhdmVMaXN0ZW5lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jbGlja0xpc3RlbmVyID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICB9XG5cbiAgICBvbklucHV0Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgIH1cblxuICAgIGFjdGl2YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFySGlkZVRpbWVvdXQoKTtcbiAgICAgICAgaWYgKHRoaXMuYXBUb29sdGlwU2hvd0RlbGF5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICB9LCB0aGlzLmFwVG9vbHRpcFNob3dEZWxheSgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYXBUb29sdGlwRHVyYXRpb24oKSkge1xuICAgICAgICAgICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmFwVG9vbHRpcFNob3dEZWxheSgpID8gdGhpcy5hcFRvb2x0aXBEdXJhdGlvbigpICsgdGhpcy5hcFRvb2x0aXBTaG93RGVsYXkoKSA6IHRoaXMuYXBUb29sdGlwRHVyYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZVRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmUoKTtcbiAgICAgICAgICAgIH0sIGR1cmF0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xlYXJTaG93VGltZW91dCgpO1xuICAgICAgICBpZiAodGhpcy5hcFRvb2x0aXBIaWRlRGVsYXkoKSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckhpZGVUaW1lb3V0KCk7XG4gICAgICAgICAgICB0aGlzLmhpZGVUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgICAgICAgICB9LCB0aGlzLmFwVG9vbHRpcEhpZGVEZWxheSgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hcFRvb2x0aXBUcnVuY2F0ZWRUZXh0T25seSgpICYmIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5hcFRvb2x0aXAoKSB8fCB0aGlzLmFwVG9vbHRpcERpc2FibGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3JlYXRlKCk7XG4gICAgICAgIHRoaXMuYWxpZ24oKTtcbiAgICB9XG5cbiAgICBjcmVhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5jbGVhckhpZGVUaW1lb3V0KCk7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3Rvb2x0aXAnKTtcbiAgICAgICAgY29uc3QgY29udGVudENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBjb250ZW50Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2FwLWNvbnRlbnQtY29udGFpbmVyJyk7XG5cbiAgICAgICAgY29uc3Qgc3ZnTmFtZXNwYWNlID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJztcbiAgICAgICAgY29uc3QgYXJyb3dTdmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTmFtZXNwYWNlLCAnc3ZnJyk7XG4gICAgICAgIGFycm93U3ZnLmNsYXNzTGlzdC5hZGQoJ2FwLXRvb2x0aXAtYXJyb3cnKTtcbiAgICAgICAgYXJyb3dTdmcuc2V0QXR0cmlidXRlKCd4bWxucycsIHN2Z05hbWVzcGFjZSk7XG4gICAgICAgIGFycm93U3ZnLnNldEF0dHJpYnV0ZSgndmlld0JveCcsICcwIDAgMTYgOCcpO1xuICAgICAgICBhcnJvd1N2Zy5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnbm9uZScpO1xuICAgICAgICBjb25zdCBwYXRoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2Z05hbWVzcGFjZSwgJ3BhdGgnKTtcbiAgICAgICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2QnLCAnTTYuNjgyOTkgMS4xNTIzOEM3LjQzNzA1IDAuNDkyNTg2IDguNTYyOTYgMC40OTI1ODggOS4zMTcwMSAxLjE1MjM4TDE2IDdMMCA3TDYuNjgyOTkgMS4xNTIzOFonKTtcbiAgICAgICAgYXJyb3dTdmcuYXBwZW5kQ2hpbGQocGF0aCk7XG5cbiAgICAgICAgdGhpcy50b29sdGlwVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnRvb2x0aXBUZXh0LmNsYXNzTmFtZSA9ICdhcC10b29sdGlwLXRleHQnO1xuICAgICAgICB0aGlzLnVwZGF0ZVRleHQoKTtcblxuICAgICAgICBjb250ZW50Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcFRleHQpO1xuICAgICAgICBjb250ZW50Q29udGFpbmVyLmFwcGVuZENoaWxkKGFycm93U3ZnKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQoY29udGVudENvbnRhaW5lcik7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdhcC10b29sdGlwJyk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXBUb29sdGlwKCkgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgnYXAtdG9vbHRpcC1jdXN0b20tdGVtcGxhdGUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldENzc1ZhcmlhYmxlcygpO1xuICAgIH1cblxuICAgIGFsaWduKCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYXBUb29sdGlwUG9zaXRpb24oKSkge1xuICAgICAgICAgICAgY2FzZSAndG9wLWxlZnQnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Ub3BMZWZ0KCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Cb3R0b20oKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduUmlnaHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25MZWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3AtcmlnaHQnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Ub3BSaWdodCgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduQm90dG9tKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblJpZ2h0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduTGVmdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduVG9wKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Cb3R0b20oKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduUmlnaHQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnbkxlZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduQm90dG9tKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Ub3AoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduUmlnaHQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnbkxlZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnYm90dG9tLWxlZnQnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Cb3R0b21MZWZ0KCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Ub3AoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduUmlnaHQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnbkxlZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnYm90dG9tLXJpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduQm90dG9tUmlnaHQoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblRvcCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25SaWdodCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduTGVmdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduTGVmdCgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduUmlnaHQoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Ub3AoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnbkJvdHRvbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnblJpZ2h0KCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25MZWZ0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduVG9wKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Cb3R0b20oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFsaWduUmlnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlQWxpZ24oJ3JpZ2h0Jyk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc3QgaG9zdE9mZnNldCA9IHRoaXMuZ2V0SG9zdE9mZnNldCgpO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IGhvc3RPZmZzZXQubGVmdCArIFRvb2x0aXBTZXJ2aWNlLmdldE91dGVyV2lkdGgodGhpcy5uYXRpdmVFbGVtZW50KSArIFRvb2x0aXBTZXJ2aWNlLmRlZmF1bHRPZmZzZXQ7XG4gICAgICAgICAgICBjb25zdCB0b3AgPVxuICAgICAgICAgICAgICAgIGhvc3RPZmZzZXQudG9wICsgKFRvb2x0aXBTZXJ2aWNlLmdldE91dGVySGVpZ2h0KHRoaXMubmF0aXZlRWxlbWVudCkgLSBUb29sdGlwU2VydmljZS5nZXRPdXRlckhlaWdodCh0aGlzLmNvbnRhaW5lcikpIC8gMjtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IHRvcCArICdweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhbGlnbkxlZnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlQWxpZ24oJ2xlZnQnKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBob3N0T2Zmc2V0ID0gdGhpcy5nZXRIb3N0T2Zmc2V0KCk7XG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gaG9zdE9mZnNldC5sZWZ0IC0gVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJXaWR0aCh0aGlzLmNvbnRhaW5lcikgLSBUb29sdGlwU2VydmljZS5kZWZhdWx0T2Zmc2V0O1xuICAgICAgICAgICAgY29uc3QgdG9wID1cbiAgICAgICAgICAgICAgICBob3N0T2Zmc2V0LnRvcCArIChUb29sdGlwU2VydmljZS5nZXRPdXRlckhlaWdodCh0aGlzLm5hdGl2ZUVsZW1lbnQpIC0gVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJIZWlnaHQodGhpcy5jb250YWluZXIpKSAvIDI7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS50b3AgPSB0b3AgKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWxpZ25Ub3AoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlQWxpZ24oJ3RvcCcpO1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3RPZmZzZXQgPSB0aGlzLmdldEhvc3RPZmZzZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPVxuICAgICAgICAgICAgICAgIGhvc3RPZmZzZXQubGVmdCArIChUb29sdGlwU2VydmljZS5nZXRPdXRlcldpZHRoKHRoaXMubmF0aXZlRWxlbWVudCkgLSBUb29sdGlwU2VydmljZS5nZXRPdXRlcldpZHRoKHRoaXMuY29udGFpbmVyKSkgLyAyO1xuICAgICAgICAgICAgY29uc3QgdG9wID0gaG9zdE9mZnNldC50b3AgLSBUb29sdGlwU2VydmljZS5nZXRPdXRlckhlaWdodCh0aGlzLmNvbnRhaW5lcikgLSBUb29sdGlwU2VydmljZS5kZWZhdWx0T2Zmc2V0O1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFsaWduVG9wTGVmdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmVBbGlnbigndG9wLWxlZnQnKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBob3N0T2Zmc2V0ID0gdGhpcy5nZXRIb3N0T2Zmc2V0KCk7XG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gaG9zdE9mZnNldC5sZWZ0O1xuICAgICAgICAgICAgY29uc3QgdG9wID0gaG9zdE9mZnNldC50b3AgLSBUb29sdGlwU2VydmljZS5nZXRPdXRlckhlaWdodCh0aGlzLmNvbnRhaW5lcikgLSBUb29sdGlwU2VydmljZS5kZWZhdWx0T2Zmc2V0O1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFsaWduVG9wUmlnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlQWxpZ24oJ3RvcC1yaWdodCcpO1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3RPZmZzZXQgPSB0aGlzLmdldEhvc3RPZmZzZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBob3N0T2Zmc2V0LmxlZnQgKyBUb29sdGlwU2VydmljZS5nZXRPdXRlcldpZHRoKHRoaXMubmF0aXZlRWxlbWVudCkgLSBUb29sdGlwU2VydmljZS5nZXRPdXRlcldpZHRoKHRoaXMuY29udGFpbmVyKTtcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IGhvc3RPZmZzZXQudG9wIC0gVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJIZWlnaHQodGhpcy5jb250YWluZXIpIC0gVG9vbHRpcFNlcnZpY2UuZGVmYXVsdE9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IHRvcCArICdweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhbGlnbkJvdHRvbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmVBbGlnbignYm90dG9tJyk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc3QgaG9zdE9mZnNldCA9IHRoaXMuZ2V0SG9zdE9mZnNldCgpO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9XG4gICAgICAgICAgICAgICAgaG9zdE9mZnNldC5sZWZ0ICsgKFRvb2x0aXBTZXJ2aWNlLmdldE91dGVyV2lkdGgodGhpcy5uYXRpdmVFbGVtZW50KSAtIFRvb2x0aXBTZXJ2aWNlLmdldE91dGVyV2lkdGgodGhpcy5jb250YWluZXIpKSAvIDI7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSBob3N0T2Zmc2V0LnRvcCArIFRvb2x0aXBTZXJ2aWNlLmdldE91dGVySGVpZ2h0KHRoaXMubmF0aXZlRWxlbWVudCkgKyBUb29sdGlwU2VydmljZS5kZWZhdWx0T2Zmc2V0O1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFsaWduQm90dG9tTGVmdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmVBbGlnbignYm90dG9tLWxlZnQnKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBob3N0T2Zmc2V0ID0gdGhpcy5nZXRIb3N0T2Zmc2V0KCk7XG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gaG9zdE9mZnNldC5sZWZ0O1xuICAgICAgICAgICAgY29uc3QgdG9wID0gaG9zdE9mZnNldC50b3AgKyBUb29sdGlwU2VydmljZS5nZXRPdXRlckhlaWdodCh0aGlzLm5hdGl2ZUVsZW1lbnQpICsgVG9vbHRpcFNlcnZpY2UuZGVmYXVsdE9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IHRvcCArICdweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhbGlnbkJvdHRvbVJpZ2h0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZUFsaWduKCdib3R0b20tcmlnaHQnKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBob3N0T2Zmc2V0ID0gdGhpcy5nZXRIb3N0T2Zmc2V0KCk7XG4gICAgICAgICAgICBjb25zdCBsZWZ0ID1cbiAgICAgICAgICAgICAgICBob3N0T2Zmc2V0LmxlZnQgKyAoVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJXaWR0aCh0aGlzLm5hdGl2ZUVsZW1lbnQpIC0gVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJXaWR0aCh0aGlzLmNvbnRhaW5lcikpO1xuICAgICAgICAgICAgY29uc3QgdG9wID0gaG9zdE9mZnNldC50b3AgKyBUb29sdGlwU2VydmljZS5nZXRPdXRlckhlaWdodCh0aGlzLm5hdGl2ZUVsZW1lbnQpICsgVG9vbHRpcFNlcnZpY2UuZGVmYXVsdE9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IHRvcCArICdweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcmVBbGlnbihwb3NpdGlvbjogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUubGVmdCA9IC05OTkgKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUudG9wID0gLTk5OSArICdweCc7XG5cbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRDbGFzc05hbWUgPSAnYXAtdG9vbHRpcC0nICsgcG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKGRlZmF1bHRDbGFzc05hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SG9zdE9mZnNldCgpIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB0YXJnZXRMZWZ0ID0gb2Zmc2V0LmxlZnQgKyBUb29sdGlwU2VydmljZS5nZXRXaW5kb3dTY3JvbGxMZWZ0KCk7XG4gICAgICAgIGNvbnN0IHRhcmdldFRvcCA9IG9mZnNldC50b3AgKyBUb29sdGlwU2VydmljZS5nZXRXaW5kb3dTY3JvbGxUb3AoKTtcblxuICAgICAgICByZXR1cm4geyBsZWZ0OiB0YXJnZXRMZWZ0LCB0b3A6IHRhcmdldFRvcCB9O1xuICAgIH1cblxuICAgIGlzT3V0T2ZCb3VuZHMoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5jb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRUb3AgPSBvZmZzZXQudG9wO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0TGVmdCA9IG9mZnNldC5sZWZ0O1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBUb29sdGlwU2VydmljZS5nZXRPdXRlcldpZHRoKHRoaXMuY29udGFpbmVyKTtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IFRvb2x0aXBTZXJ2aWNlLmdldE91dGVySGVpZ2h0KHRoaXMuY29udGFpbmVyKTtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gVG9vbHRpcFNlcnZpY2UuZ2V0Vmlld3BvcnQoKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldExlZnQgKyB3aWR0aCA+IHZpZXdwb3J0LndpZHRoIHx8IHRhcmdldExlZnQgPCAwIHx8IHRhcmdldFRvcCA8IDAgfHwgdGFyZ2V0VG9wICsgaGVpZ2h0ID4gdmlld3BvcnQuaGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVtb3ZlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5jb250YWluZXIucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY2xlYXJTaG93VGltZW91dCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd1RpbWVvdXQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dUaW1lb3V0KTtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RpbWVvdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhckhpZGVUaW1lb3V0KCkge1xuICAgICAgICBpZiAodGhpcy5oaWRlVGltZW91dCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5oaWRlVGltZW91dCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyVGltZW91dHMoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJTaG93VGltZW91dCgpO1xuICAgICAgICB0aGlzLmNsZWFySGlkZVRpbWVvdXQoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0KCkge1xuICAgICAgICBjb25zdCBhcFRvb2x0aXAgPSB0aGlzLmFwVG9vbHRpcCgpO1xuICAgICAgICBpZiAoYXBUb29sdGlwIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIGNvbnN0IGVtYmVkZGVkVmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoYXBUb29sdGlwKTtcbiAgICAgICAgICAgIGVtYmVkZGVkVmlld1JlZi5jb250ZXh0ID0gdGhpcy5hcFRvb2x0aXBUZW1wbGF0ZUNvbnRleHQoKTtcbiAgICAgICAgICAgIGVtYmVkZGVkVmlld1JlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICBlbWJlZGRlZFZpZXdSZWYucm9vdE5vZGVzLmZvckVhY2gobm9kZSA9PiB0aGlzLnRvb2x0aXBUZXh0Py5hcHBlbmRDaGlsZChub2RlKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50b29sdGlwVGV4dCkge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwVGV4dC5pbm5lckhUTUwgPSBhcFRvb2x0aXAgPyBET01QdXJpZnkuc2FuaXRpemUoYXBUb29sdGlwKSA6ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0Q3NzVmFyaWFibGVzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KCctLWFwLXRvb2x0aXAtaGVpZ2h0JywgdGhpcy5jb250YWluZXIub2Zmc2V0SGVpZ2h0ICsgJ3B4Jyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
401
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvdG9vbHRpcC9zcmMvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVILFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFHTixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixLQUFLLEdBQ1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUNSLFVBQVUsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsSUFBSSxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixnQkFBZ0IsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqRCxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBd0QsQ0FBQztJQUNuRixpQkFBaUIsR0FBRyxLQUFLLENBQWtHLEtBQUssQ0FBQyxDQUFDO0lBQ2xJLGtCQUFrQixHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUN2QyxrQkFBa0IsR0FBRyxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsaUJBQWlCLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLGlCQUFpQixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUMxQywwQkFBMEIsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbkQsd0JBQXdCLEdB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LENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDO1lBQzFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0gsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDO1lBQzFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxHQUNOLFVBQVUsQ0FBQyxJ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QUFFLENBQUM7UUFDaEYsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2hHLENBQUM7SUFDTCxDQUFDO3VHQWpjUSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IERPTVB1cmlmeSBmcm9tICdkb21wdXJpZnknO1xuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuL3Rvb2x0aXAuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1thcFRvb2x0aXBdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGFwVG9vbHRpcCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZyB8IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZCB8IG51bGw+KCk7XG4gICAgYXBUb29sdGlwUG9zaXRpb24gPSBpbnB1dDwncmlnaHQnIHwgJ2xlZnQnIHwgJ3RvcCcgfCAnYm90dG9tJyB8ICdib3R0b20tbGVmdCcgfCAnYm90dG9tLXJpZ2h0JyB8ICd0b3AtbGVmdCcgfCAndG9wLXJpZ2h0Jz4oJ3RvcCcpO1xuICAgIGFwVG9vbHRpcFNob3dEZWxheSA9IGlucHV0PG51bWJlcj4oODApO1xuICAgIGFwVG9vbHRpcEhpZGVEZWxheSA9IGlucHV0PG51bWJlcj4oMCk7XG4gICAgYXBUb29sdGlwRHVyYXRpb24gPSBpbnB1dDxudW1iZXI+KDApO1xuICAgIGFwVG9vbHRpcERpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGFwVG9vbHRpcFRydW5jYXRlZFRleHRPbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGFwVG9vbHRpcFRlbXBsYXRlQ29udGV4dCA9IGlucHV0PGFueT4oKTtcbiAgICBhcFRvb2x0aXBWaXJ0dWFsU2Nyb2xsRWxlbWVudCA9IGlucHV0PENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydD4oKTtcblxuICAgIGNsaWNrTGlzdGVuZXI6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBoaWRlVGltZW91dDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgbW91c2VFbnRlckxpc3RlbmVyOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBtb3VzZUxlYXZlTGlzdGVuZXI6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBzaG93VGltZW91dDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgdG9vbHRpcFRleHQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFwVG9vbHRpcFZpcnR1YWxTY3JvbGxFbGVtZW50ID0gdGhpcy5hcFRvb2x0aXBWaXJ0dWFsU2Nyb2xsRWxlbWVudCgpO1xuICAgICAgICBpZiAoYXBUb29sdGlwVmlydHVhbFNjcm9sbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGFwVG9vbHRpcFZpcnR1YWxTY3JvbGxFbGVtZW50LnJlbmRlcmVkUmFuZ2VTdHJlYW0ucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKHJhbmdlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmFuZ2Uuc3RhcnQgPT09IDAgJiYgcmFuZ2UuZW5kID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb3VzZUVudGVyTGlzdGVuZXIgPSB0aGlzLm9uTW91c2VFbnRlci5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5tb3VzZUxlYXZlTGlzdGVuZXIgPSB0aGlzLm9uTW91c2VMZWF2ZS5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5jbGlja0xpc3RlbmVyID0gdGhpcy5vbklucHV0Q2xpY2suYmluZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5tb3VzZUVudGVyTGlzdGVuZXIpO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja0xpc3RlbmVyKTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5tb3VzZUxlYXZlTGlzdGVuZXIpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tb3VzZUVudGVyTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5tb3VzZUVudGVyTGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNsaWNrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xpY2tMaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubW91c2VMZWF2ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMubW91c2VMZWF2ZUxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vdXNlRW50ZXJMaXN0ZW5lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5tb3VzZUxlYXZlTGlzdGVuZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuY2xpY2tMaXN0ZW5lciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgfVxuXG4gICAgb25JbnB1dENsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICB9XG5cbiAgICBhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckhpZGVUaW1lb3V0KCk7XG4gICAgICAgIGlmICh0aGlzLmFwVG9vbHRpcFNob3dEZWxheSgpKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICAgICAgfSwgdGhpcy5hcFRvb2x0aXBTaG93RGVsYXkoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNob3coKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFwVG9vbHRpcER1cmF0aW9uKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5hcFRvb2x0aXBTaG93RGVsYXkoKSA/IHRoaXMuYXBUb29sdGlwRHVyYXRpb24oKSArIHRoaXMuYXBUb29sdGlwU2hvd0RlbGF5KCkgOiB0aGlzLmFwVG9vbHRpcER1cmF0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmhpZGVUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgICAgICAgICB9LCBkdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZWFjdGl2YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyU2hvd1RpbWVvdXQoKTtcbiAgICAgICAgaWYgKHRoaXMuYXBUb29sdGlwSGlkZURlbGF5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJIaWRlVGltZW91dCgpO1xuICAgICAgICAgICAgdGhpcy5oaWRlVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZSgpO1xuICAgICAgICAgICAgfSwgdGhpcy5hcFRvb2x0aXBIaWRlRGVsYXkoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvdygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXBUb29sdGlwVHJ1bmNhdGVkVGV4dE9ubHkoKSAmJiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aCA9PT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuYXBUb29sdGlwKCkgfHwgdGhpcy5hcFRvb2x0aXBEaXNhYmxlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNyZWF0ZSgpO1xuICAgICAgICB0aGlzLmFsaWduKCk7XG4gICAgfVxuXG4gICAgY3JlYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJIaWRlVGltZW91dCgpO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLnNldEF0dHJpYnV0ZSgncm9sZScsICd0b29sdGlwJyk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgY29udGVudENvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdhcC1jb250ZW50LWNvbnRhaW5lcicpO1xuXG4gICAgICAgIGNvbnN0IHN2Z05hbWVzcGFjZSA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7XG4gICAgICAgIGNvbnN0IGFycm93U3ZnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2Z05hbWVzcGFjZSwgJ3N2ZycpO1xuICAgICAgICBhcnJvd1N2Zy5jbGFzc0xpc3QuYWRkKCdhcC10b29sdGlwLWFycm93Jyk7XG4gICAgICAgIGFycm93U3ZnLnNldEF0dHJpYnV0ZSgneG1sbnMnLCBzdmdOYW1lc3BhY2UpO1xuICAgICAgICBhcnJvd1N2Zy5zZXRBdHRyaWJ1dGUoJ3ZpZXdCb3gnLCAnMCAwIDE2IDgnKTtcbiAgICAgICAgYXJyb3dTdmcuc2V0QXR0cmlidXRlKCdmaWxsJywgJ25vbmUnKTtcbiAgICAgICAgY29uc3QgcGF0aCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzdmdOYW1lc3BhY2UsICdwYXRoJyk7XG4gICAgICAgIHBhdGguc2V0QXR0cmlidXRlKCdkJywgJ002LjY4Mjk5IDEuMTUyMzhDNy40MzcwNSAwLjQ5MjU4NiA4LjU2Mjk2IDAuNDkyNTg4IDkuMzE3MDEgMS4xNTIzOEwxNiA3TDAgN0w2LjY4Mjk5IDEuMTUyMzhaJyk7XG4gICAgICAgIGFycm93U3ZnLmFwcGVuZENoaWxkKHBhdGgpO1xuXG4gICAgICAgIHRoaXMudG9vbHRpcFRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy50b29sdGlwVGV4dC5jbGFzc05hbWUgPSAnYXAtdG9vbHRpcC10ZXh0JztcbiAgICAgICAgdGhpcy51cGRhdGVUZXh0KCk7XG5cbiAgICAgICAgY29udGVudENvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBUZXh0KTtcbiAgICAgICAgY29udGVudENvbnRhaW5lci5hcHBlbmRDaGlsZChhcnJvd1N2Zyk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKGNvbnRlbnRDb250YWluZXIpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgnYXAtdG9vbHRpcCcpO1xuXG4gICAgICAgIGlmICh0aGlzLmFwVG9vbHRpcCgpIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2FwLXRvb2x0aXAtY3VzdG9tLXRlbXBsYXRlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRDc3NWYXJpYWJsZXMoKTtcbiAgICB9XG5cbiAgICBhbGlnbigpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFwVG9vbHRpcFBvc2l0aW9uKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3RvcC1sZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduVG9wTGVmdCgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduQm90dG9tKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblJpZ2h0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduTGVmdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduVG9wUmlnaHQoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnbkJvdHRvbSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25SaWdodCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnbkxlZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnblRvcCgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduQm90dG9tKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblJpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25MZWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkJvdHRvbSgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduVG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblJpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25MZWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduQm90dG9tTGVmdCgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduVG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblJpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25MZWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkJvdHRvbVJpZ2h0KCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Ub3AoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduUmlnaHQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnbkxlZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkxlZnQoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblJpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduVG9wKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Cb3R0b20oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25SaWdodCgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduTGVmdCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblRvcCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduQm90dG9tKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhbGlnblJpZ2h0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZUFsaWduKCdyaWdodCcpO1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3RPZmZzZXQgPSB0aGlzLmdldEhvc3RPZmZzZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBob3N0T2Zmc2V0LmxlZnQgKyBUb29sdGlwU2VydmljZS5nZXRPdXRlcldpZHRoKHRoaXMubmF0aXZlRWxlbWVudCkgKyBUb29sdGlwU2VydmljZS5kZWZhdWx0T2Zmc2V0O1xuICAgICAgICAgICAgY29uc3QgdG9wID1cbiAgICAgICAgICAgICAgICBob3N0T2Zmc2V0LnRvcCArIChUb29sdGlwU2VydmljZS5nZXRPdXRlckhlaWdodCh0aGlzLm5hdGl2ZUVsZW1lbnQpIC0gVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJIZWlnaHQodGhpcy5jb250YWluZXIpKSAvIDI7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS50b3AgPSB0b3AgKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWxpZ25MZWZ0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZUFsaWduKCdsZWZ0Jyk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc3QgaG9zdE9mZnNldCA9IHRoaXMuZ2V0SG9zdE9mZnNldCgpO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IGhvc3RPZmZzZXQubGVmdCAtIFRvb2x0aXBTZXJ2aWNlLmdldE91dGVyV2lkdGgodGhpcy5jb250YWluZXIpIC0gVG9vbHRpcFNlcnZpY2UuZGVmYXVsdE9mZnNldDtcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9XG4gICAgICAgICAgICAgICAgaG9zdE9mZnNldC50b3AgKyAoVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJIZWlnaHQodGhpcy5uYXRpdmVFbGVtZW50KSAtIFRvb2x0aXBTZXJ2aWNlLmdldE91dGVySGVpZ2h0KHRoaXMuY29udGFpbmVyKSkgLyAyO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFsaWduVG9wKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZUFsaWduKCd0b3AnKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBob3N0T2Zmc2V0ID0gdGhpcy5nZXRIb3N0T2Zmc2V0KCk7XG4gICAgICAgICAgICBjb25zdCBsZWZ0ID1cbiAgICAgICAgICAgICAgICBob3N0T2Zmc2V0LmxlZnQgKyAoVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJXaWR0aCh0aGlzLm5hdGl2ZUVsZW1lbnQpIC0gVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJXaWR0aCh0aGlzLmNvbnRhaW5lcikpIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IGhvc3RPZmZzZXQudG9wIC0gVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJIZWlnaHQodGhpcy5jb250YWluZXIpIC0gVG9vbHRpcFNlcnZpY2UuZGVmYXVsdE9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IHRvcCArICdweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhbGlnblRvcExlZnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlQWxpZ24oJ3RvcC1sZWZ0Jyk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc3QgaG9zdE9mZnNldCA9IHRoaXMuZ2V0SG9zdE9mZnNldCgpO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IGhvc3RPZmZzZXQubGVmdDtcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IGhvc3RPZmZzZXQudG9wIC0gVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJIZWlnaHQodGhpcy5jb250YWluZXIpIC0gVG9vbHRpcFNlcnZpY2UuZGVmYXVsdE9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IHRvcCArICdweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhbGlnblRvcFJpZ2h0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZUFsaWduKCd0b3AtcmlnaHQnKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBob3N0T2Zmc2V0ID0gdGhpcy5nZXRIb3N0T2Zmc2V0KCk7XG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gaG9zdE9mZnNldC5sZWZ0ICsgVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJXaWR0aCh0aGlzLm5hdGl2ZUVsZW1lbnQpIC0gVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJXaWR0aCh0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSBob3N0T2Zmc2V0LnRvcCAtIFRvb2x0aXBTZXJ2aWNlLmdldE91dGVySGVpZ2h0KHRoaXMuY29udGFpbmVyKSAtIFRvb2x0aXBTZXJ2aWNlLmRlZmF1bHRPZmZzZXQ7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS50b3AgPSB0b3AgKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWxpZ25Cb3R0b20oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlQWxpZ24oJ2JvdHRvbScpO1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3RPZmZzZXQgPSB0aGlzLmdldEhvc3RPZmZzZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPVxuICAgICAgICAgICAgICAgIGhvc3RPZmZzZXQubGVmdCArIChUb29sdGlwU2VydmljZS5nZXRPdXRlcldpZHRoKHRoaXMubmF0aXZlRWxlbWVudCkgLSBUb29sdGlwU2VydmljZS5nZXRPdXRlcldpZHRoKHRoaXMuY29udGFpbmVyKSkgLyAyO1xuICAgICAgICAgICAgY29uc3QgdG9wID0gaG9zdE9mZnNldC50b3AgKyBUb29sdGlwU2VydmljZS5nZXRPdXRlckhlaWdodCh0aGlzLm5hdGl2ZUVsZW1lbnQpICsgVG9vbHRpcFNlcnZpY2UuZGVmYXVsdE9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IHRvcCArICdweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhbGlnbkJvdHRvbUxlZnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlQWxpZ24oJ2JvdHRvbS1sZWZ0Jyk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc3QgaG9zdE9mZnNldCA9IHRoaXMuZ2V0SG9zdE9mZnNldCgpO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IGhvc3RPZmZzZXQubGVmdDtcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IGhvc3RPZmZzZXQudG9wICsgVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJIZWlnaHQodGhpcy5uYXRpdmVFbGVtZW50KSArIFRvb2x0aXBTZXJ2aWNlLmRlZmF1bHRPZmZzZXQ7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS50b3AgPSB0b3AgKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWxpZ25Cb3R0b21SaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmVBbGlnbignYm90dG9tLXJpZ2h0Jyk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc3QgaG9zdE9mZnNldCA9IHRoaXMuZ2V0SG9zdE9mZnNldCgpO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9XG4gICAgICAgICAgICAgICAgaG9zdE9mZnNldC5sZWZ0ICsgKFRvb2x0aXBTZXJ2aWNlLmdldE91dGVyV2lkdGgodGhpcy5uYXRpdmVFbGVtZW50KSAtIFRvb2x0aXBTZXJ2aWNlLmdldE91dGVyV2lkdGgodGhpcy5jb250YWluZXIpKTtcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IGhvc3RPZmZzZXQudG9wICsgVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJIZWlnaHQodGhpcy5uYXRpdmVFbGVtZW50KSArIFRvb2x0aXBTZXJ2aWNlLmRlZmF1bHRPZmZzZXQ7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS50b3AgPSB0b3AgKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJlQWxpZ24ocG9zaXRpb246IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQgPSAtOTk5ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IC05OTkgKyAncHgnO1xuXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0Q2xhc3NOYW1lID0gJ2FwLXRvb2x0aXAtJyArIHBvc2l0aW9uO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZChkZWZhdWx0Q2xhc3NOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEhvc3RPZmZzZXQoKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0TGVmdCA9IG9mZnNldC5sZWZ0ICsgVG9vbHRpcFNlcnZpY2UuZ2V0V2luZG93U2Nyb2xsTGVmdCgpO1xuICAgICAgICBjb25zdCB0YXJnZXRUb3AgPSBvZmZzZXQudG9wICsgVG9vbHRpcFNlcnZpY2UuZ2V0V2luZG93U2Nyb2xsVG9wKCk7XG5cbiAgICAgICAgcmV0dXJuIHsgbGVmdDogdGFyZ2V0TGVmdCwgdG9wOiB0YXJnZXRUb3AgfTtcbiAgICB9XG5cbiAgICBpc091dE9mQm91bmRzKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0VG9wID0gb2Zmc2V0LnRvcDtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldExlZnQgPSBvZmZzZXQubGVmdDtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gVG9vbHRpcFNlcnZpY2UuZ2V0T3V0ZXJXaWR0aCh0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBUb29sdGlwU2VydmljZS5nZXRPdXRlckhlaWdodCh0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgICAgICBjb25zdCB2aWV3cG9ydCA9IFRvb2x0aXBTZXJ2aWNlLmdldFZpZXdwb3J0KCk7XG5cbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRMZWZ0ICsgd2lkdGggPiB2aWV3cG9ydC53aWR0aCB8fCB0YXJnZXRMZWZ0IDwgMCB8fCB0YXJnZXRUb3AgPCAwIHx8IHRhcmdldFRvcCArIGhlaWdodCA+IHZpZXdwb3J0LmhlaWdodDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyICYmIHRoaXMuY29udGFpbmVyLnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNsZWFyU2hvd1RpbWVvdXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3dUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dCk7XG4gICAgICAgICAgICB0aGlzLnNob3dUaW1lb3V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xlYXJIaWRlVGltZW91dCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaGlkZVRpbWVvdXQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmhpZGVUaW1lb3V0KTtcbiAgICAgICAgICAgIHRoaXMuaGlkZVRpbWVvdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhclRpbWVvdXRzKCkge1xuICAgICAgICB0aGlzLmNsZWFyU2hvd1RpbWVvdXQoKTtcbiAgICAgICAgdGhpcy5jbGVhckhpZGVUaW1lb3V0KCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVGV4dCgpIHtcbiAgICAgICAgY29uc3QgYXBUb29sdGlwID0gdGhpcy5hcFRvb2x0aXAoKTtcbiAgICAgICAgaWYgKGFwVG9vbHRpcCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRlZFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KGFwVG9vbHRpcCk7XG4gICAgICAgICAgICBlbWJlZGRlZFZpZXdSZWYuY29udGV4dCA9IHRoaXMuYXBUb29sdGlwVGVtcGxhdGVDb250ZXh0KCk7XG4gICAgICAgICAgICBlbWJlZGRlZFZpZXdSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgZW1iZWRkZWRWaWV3UmVmLnJvb3ROb2Rlcy5mb3JFYWNoKG5vZGUgPT4gdGhpcy50b29sdGlwVGV4dD8uYXBwZW5kQ2hpbGQobm9kZSkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudG9vbHRpcFRleHQpIHtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcFRleHQuaW5uZXJIVE1MID0gYXBUb29sdGlwID8gRE9NUHVyaWZ5LnNhbml0aXplKGFwVG9vbHRpcCkgOiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldENzc1ZhcmlhYmxlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1hcC10b29sdGlwLWhlaWdodCcsIHRoaXMuY29udGFpbmVyLm9mZnNldEhlaWdodCArICdweCcpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -413,9 +413,9 @@ class SelectLabelMultipleComponent {
|
|
|
413
413
|
selectedLabels = computed(() => this.selectedItems().map(item => {
|
|
414
414
|
const label = this.bindLabel() ? item[this.bindLabel()] : item;
|
|
415
415
|
const approximateCharWidth = 5;
|
|
416
|
-
const
|
|
417
|
-
const
|
|
418
|
-
const ellipsisLastIndex = Math.min(label.length, maxCharLength);
|
|
416
|
+
const maxCharLength = (this.valueContainerWidth() / label.length) * approximateCharWidth;
|
|
417
|
+
const ellipsisCharLenght = 2;
|
|
418
|
+
const ellipsisLastIndex = Math.min(label.length, maxCharLength - ellipsisCharLenght);
|
|
419
419
|
const truncatedLabel = label.slice(0, ellipsisLastIndex);
|
|
420
420
|
return {
|
|
421
421
|
label: truncatedLabel.length < label.length ? truncatedLabel + '...' : truncatedLabel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-select.mjs","sources":["../../../libs/ui-components/select/src/dropdown-group-item/dropdown-group-item.component.ts","../../../libs/ui-components/select/src/dropdown-group-item/dropdown-group-item.component.html","../../../libs/ui-components/select/src/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.ts","../../../libs/ui-components/select/src/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.html","../../../libs/ui-components/select/src/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.ts","../../../libs/ui-components/select/src/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.html","../../../libs/ui-components/select/src/dropdown-item-single-one-line/dropdown-item-single-one-line.component.ts","../../../libs/ui-components/select/src/dropdown-item-single-one-line/dropdown-item-single-one-line.component.html","../../../libs/ui-components/select/src/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.ts","../../../libs/ui-components/select/src/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.html","../../../libs/ui-components/select/src/dropdown-search-form/dropdown-search-form.component.ts","../../../libs/ui-components/select/src/dropdown-search-form/dropdown-search-form.component.html","../../../libs/ui-components/select/src/select-label-multiple/select-label-multiple.component.ts","../../../libs/ui-components/select/src/select-label-multiple/select-label-multiple.component.html","../../../libs/ui-components/select/src/select-label-single/select-label-single.component.ts","../../../libs/ui-components/select/src/select-label-single/select-label-single.component.html","../../../libs/ui-components/select/src/select-base.directive.ts","../../../libs/ui-components/select/src/select-multiple.directive.ts","../../../libs/ui-components/select/src/select-single.directive.ts","../../../libs/ui-components/select/src/ap-select.module.ts","../../../libs/ui-components/select/src/agorapulse-ui-components-select.ts"],"sourcesContent":["import { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\n\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { NgOption, NgSelectComponent } from '@ng-select/ng-select';\n\n@Component({\n selector: 'ap-dropdown-group-item',\n templateUrl: './dropdown-group-item.component.html',\n styleUrls: ['./dropdown-group-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [BadgeComponent, CheckboxComponent, TooltipDirective],\n})\nexport class DropdownGroupItemComponent {\n @Input({ required: true }) groupLabel!: string;\n @Input() groupTag?: string;\n @Input() selectableGroup = false;\n @Input({ required: true }) children: NgOption[] = [];\n @Input({\n required: true,\n })\n select!: NgSelectComponent;\n @Input() disabled = false;\n @Input() disabledTooltip?: string;\n\n isGroupIntermediate(): boolean {\n const selectedChildren = this.children.filter((child: NgOption) => child.selected && !child.disabled);\n const selectableChildren = this.children.filter((child: NgOption) => !child.disabled);\n return selectedChildren.length > 0 && selectedChildren.length < selectableChildren.length;\n }\n\n isGroupChecked(): boolean {\n return this.children.every((child: NgOption) => child.selected || child.disabled) && !this.isGroupDisabled();\n }\n\n isGroupDisabled(): boolean {\n return this.children.every((child: NgOption) => child.disabled);\n }\n}\n","<div\n class=\"group\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\">\n @if (selectableGroup) {\n <ap-checkbox\n [name]=\"'option-group-selection-' + groupLabel\"\n [disabled]=\"isGroupDisabled() || disabled\"\n [indeterminate]=\"isGroupIntermediate()\"\n [checked]=\"isGroupChecked()\">\n <span class=\"group-label\">\n {{ groupLabel }}\n </span>\n @if (groupTag) {\n <ap-badge color=\"blue\">\n {{ groupTag }}\n </ap-badge>\n }\n </ap-checkbox>\n } @else {\n <span\n class=\"group-label\"\n [title]=\"groupLabel\">\n {{ groupLabel }}\n </span>\n @if (groupTag) {\n <ap-badge color=\"blue\">\n {{ groupTag }}\n </ap-badge>\n }\n }\n</div>\n","import { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\n\nimport {\n ChangeDetectionStrategy,\n Component, EventEmitter, HostListener, Input,\n input, Output,\n output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-multiple-one-line',\n templateUrl: './dropdown-item-multiple-one-line.component.html',\n styleUrls: ['./dropdown-item-multiple-one-line.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, CheckboxComponent, AvatarComponent, BadgeComponent, TooltipDirective, SymbolComponent, SymbolComponent],\n})\nexport class DropdownItemMultipleOneLineComponent {\n @Input({ required: true }) text!: string;\n @Input({ required: true }) selected!: boolean;\n @Input({ required: true }) htmlId!: string;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() onlyEnabled = false;\n @Input() onlyText?: string;\n isFeatureLocked = input<boolean>(false);\n roundedAvatar = input(true);\n\n @Output() selectOnly = new EventEmitter<void>();\n lockedFeatureClicked = output();\n\n @ViewChild(CheckboxComponent) checkbox!: CheckboxComponent;\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n\n onSelectOnly() {\n this.selectOnly.emit();\n this.checkbox.focus();\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option multiple\" [class.feature-locked-option]=\"isFeatureLocked()\">\n <ap-checkbox\n #checkbox\n [checked]=\"selected\"\n [disabled]=\"disabled || isFeatureLocked()\"\n [name]=\"'option-selection-' + htmlId\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <span\n class=\"option-item\"\n [class.feature-locked-label]=\"isFeatureLocked()\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n }\n\n @if (onlyEnabled && !disabled && !isFeatureLocked()) {\n <button\n class=\"standalone-link\"\n type=\"button\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); onSelectOnly()\">\n {{ onlyText }}\n </button>\n }\n\n </ap-checkbox>\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter, HostListener,\n input,\n Input, output,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-multiple-two-lines',\n templateUrl: './dropdown-item-multiple-two-lines.component.html',\n styleUrls: ['./dropdown-item-multiple-two-lines.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, CheckboxComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemMultipleTwoLinesComponent {\n @Input({ required: true }) text!: string;\n @Input({ required: true }) caption!: string;\n @Input({ required: true }) selected!: boolean;\n @Input({ required: true }) htmlId!: string;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() onlyEnabled = false;\n @Input() onlyText?: string;\n isFeatureLocked = input<boolean>(false);\n roundedAvatar = input(true);\n\n @Output() selectOnly = new EventEmitter<void>();\n lockedFeatureClicked = output();\n\n @ViewChild(CheckboxComponent) checkbox!: CheckboxComponent;\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n\n onSelectOnly() {\n this.selectOnly.emit();\n this.checkbox.focus();\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option multiple with-caption\" [class.feature-locked-option]=\"isFeatureLocked()\">\n <ap-checkbox\n [checked]=\"selected\"\n [disabled]=\"disabled || isFeatureLocked()\"\n [name]=\"'option-selection-' + htmlId\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <div class=\"texts\" [class.feature-locked-label]=\"isFeatureLocked()\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n </div>\n <span\n class=\"caption\"\n [title]=\"caption\">\n {{ caption }}\n </span>\n </div>\n\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n }\n\n @if (onlyEnabled && !disabled) {\n <button\n class=\"standalone-link\"\n type=\"button\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); onSelectOnly()\">\n {{ onlyText }}\n </button>\n }\n </ap-checkbox>\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n input,\n Input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-single-one-line',\n templateUrl: './dropdown-item-single-one-line.component.html',\n styleUrls: ['./dropdown-item-single-one-line.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemSingleOneLineComponent {\n @Input({ required: true }) text!: string;\n @Input({ required: true }) selected!: boolean;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() showAvatarInitials = true;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() network: AvatarNetwork | undefined = undefined;\n roundedAvatar = input(true);\n isFeatureLocked = input<boolean>(false);\n\n lockedFeatureClicked = output();\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option\" [class.feature-locked-option]=\"isFeatureLocked()\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"showAvatarInitials\"\n [network]=\"network\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <span\n class=\"option-item\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n } @else if (selected) {\n <ap-symbol\n class=\"option-selected\"\n symbolId=\"check\"\n color=\"electric-blue\"\n size=\"sm\" />\n }\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n input,\n Input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-single-two-lines',\n templateUrl: './dropdown-item-single-two-lines.component.html',\n styleUrls: ['./dropdown-item-single-two-lines.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemSingleTwoLinesComponent {\n @Input({ required: true }) text!: string;\n @Input({ required: true }) caption!: string;\n @Input({ required: true }) selected!: boolean;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() network: AvatarNetwork | undefined = undefined;\n roundedAvatar = input(true);\n isFeatureLocked = input<boolean>(false);\n\n lockedFeatureClicked = output();\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option with-caption\" [class.feature-locked-option]=\"isFeatureLocked()\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\"\n [network]=\"network\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <div class=\"texts\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n </div>\n <span\n class=\"caption\"\n [title]=\"caption\">\n {{ caption }}\n </span>\n </div>\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n } @else if (selected) {\n <ap-symbol\n class=\"option-selected\"\n symbolId=\"check\"\n color=\"electric-blue\"\n size=\"sm\" />\n }\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { LoaderComponent } from '@agorapulse/ui-animations';\nimport { InputDirective } from '@agorapulse/ui-components/input';\nimport { InputGroupComponent } from '@agorapulse/ui-components/input-group';\nimport { InputSearchComponent } from '@agorapulse/ui-components/input-search';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n OutputRefSubscription,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { BehaviorSubject, filter } from 'rxjs';\n\n@Component({\n selector: 'ap-dropdown-search-form',\n templateUrl: './dropdown-search-form.component.html',\n styleUrls: ['./dropdown-search-form.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [InputGroupComponent, InputDirective, SymbolComponent, FormsModule, LoaderComponent, InputSearchComponent],\n})\nexport class DropdownSearchFormComponent implements AfterViewInit, OnDestroy {\n @Input() searchPlaceholder = '';\n @Input() createNewEnabled = false;\n @Input() createText = 'Create';\n @Input({\n required: true,\n })\n select!: NgSelectComponent;\n @ViewChild(InputSearchComponent) inputSearch!: InputSearchComponent;\n @ViewChild('notFoundTpl', { read: TemplateRef }) notFoundTpl!: TemplateRef<any>;\n @ViewChild('loadingTpl', { read: TemplateRef }) loadingTpl!: TemplateRef<any>;\n @ViewChild('createNewTpl', { read: TemplateRef }) createNewTpl!: TemplateRef<any>;\n\n @Output() createNew = new EventEmitter<string>();\n\n searchTermSignal = signal<string>('');\n searchTerm$ = new BehaviorSubject<string>('');\n submitSubscription: OutputRefSubscription | null = null;\n\n constructor() {\n this.searchTerm$\n .pipe(\n filter(() => !!this.select),\n takeUntilDestroyed()\n )\n .subscribe(term => {\n this.searchTermSignal.set(term);\n this.select.filter(term);\n });\n }\n\n ngOnDestroy(): void {\n this.submitSubscription?.unsubscribe();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.inputSearch.focusInput();\n this.registerKeyboardSubmit();\n }, 100);\n this.select.notFoundTemplate = this.notFoundTpl;\n this.select.loadingTextTemplate = this.loadingTpl;\n\n // validate the current row on keypress\n if (this.createNewEnabled) {\n this.select.footerTemplate = this.createNewTpl;\n }\n }\n\n /**\n * Register the keyboard submit event allowing to press enter to select the first item found.\n * And escape to close the dropdown. This is useful for keyboard navigation.\n * Use case: search for an item by typing the first characters and press enter to select it.\n * Furthermore: arrow keys currently don't work in the dropdown search form.\n */\n registerKeyboardSubmit() {\n this.submitSubscription?.unsubscribe();\n this.submitSubscription = this.inputSearch.keyup.subscribe(event => {\n if (event.key === 'Enter') {\n this.select.select(this.select.itemsList.filteredItems[0]);\n } else if (event.key === 'Escape') {\n this.select.close();\n }\n });\n\n }\n\n onCreateNew() {\n this.createNew.emit(this.searchTermSignal());\n }\n}\n","<ap-input-search\n class=\"dropdown-search-input\"\n [ngModel]=\"searchTermSignal()\"\n [placeholder]=\"searchPlaceholder\"\n (ngModelChange)=\"searchTerm$.next($event)\" />\n\n<ng-template #notFoundTpl>\n <div class=\"option not-found\">\n <span>{{ select.notFoundText ? select.notFoundText : 'Not found text' }}</span>\n </div>\n</ng-template>\n\n<ng-template #loadingTpl>\n <div class=\"loading-state\">\n <ap-loader diameter=\"30\" />\n <span>\n {{ select.loadingText ? select.loadingText : 'Loading Items' }}\n </span>\n </div>\n</ng-template>\n\n<ng-template\n #createNewTpl\n let-searchTerm=\"searchTerm\">\n <button\n class=\"create-new\"\n type=\"button\"\n (click)=\"onCreateNew()\">\n <ap-symbol\n symbolId=\"plus\"\n size=\"sm\" />\n <span>\n {{ createText }}\n {{ searchTerm ? searchTerm : '' }}\n </span>\n </button>\n</ng-template>\n","import { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { LabelComponent } from '@agorapulse/ui-components/labels';\nimport { TagComponent } from '@agorapulse/ui-components/tag';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EnvironmentInjector,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n output,\n runInInjectionContext,\n signal,\n} from '@angular/core';\n\n@Component({\n selector: 'ap-select-label-multiple',\n templateUrl: './select-label-multiple.component.html',\n styleUrls: ['./select-label-multiple.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelComponent, TagComponent, AvatarComponent, SymbolComponent],\n})\nexport class SelectLabelMultipleComponent implements AfterViewInit {\n displayType = input<'tag' | 'label'>('label');\n selectedItems = input.required<any[]>();\n bindLabel = input('');\n bindValue = input('');\n bindAvatarUrl = input('');\n bindSymbolId = input('');\n\n roundedAvatar = input(true);\n\n removeItem = output<any>();\n\n private elementRef = inject(ElementRef);\n private injector = inject(EnvironmentInjector);\n\n selectedLabels = computed(() =>\n this.selectedItems().map(item => {\n const label = this.bindLabel() ? item[this.bindLabel()] : item;\n const approximateCharWidth = 5;\n const approximateEllipsisCharWidth = 2;\n const maxCharLength = (this.valueContainerWidth() / label.length) * approximateCharWidth - approximateEllipsisCharWidth;\n const ellipsisLastIndex = Math.min(label.length, maxCharLength);\n const truncatedLabel = label.slice(0, ellipsisLastIndex);\n return {\n label: truncatedLabel.length < label.length ? truncatedLabel + '...' : truncatedLabel,\n avatarUrl: this.bindAvatarUrl() ? item[this.bindAvatarUrl()] : '',\n symbolId: this.bindSymbolId() ? item[this.bindSymbolId()] : null,\n value: item,\n };\n })\n );\n\n valueContainerWidth = signal(0);\n hiddenCount = signal(0);\n\n trackByItem = (_: number, item: any) => (this.bindValue() ? item.value[this.bindValue()] : item.value);\n\n ngAfterViewInit(): void {\n const parentWidth = (this.elementRef.nativeElement as HTMLElement).parentElement?.offsetWidth;\n this.valueContainerWidth.set(parentWidth ?? 0);\n\n runInInjectionContext(this.injector, () => {\n effect(\n () => {\n const selectedValues = this.selectedItems();\n const selectValueContainerWidth = this.valueContainerWidth() - 30;\n const timeout = setTimeout(() => {\n this.calculateResponsiveLabels(selectValueContainerWidth, selectedValues);\n }, 100);\n return () => {\n clearTimeout(timeout);\n };\n },\n { allowSignalWrites: true }\n );\n });\n }\n\n calculateResponsiveLabels(containerWidth: number, selectedValues: any[]): void {\n if (containerWidth === 0 || !selectedValues.length) {\n return;\n }\n\n let totalWidth = 0;\n let hiddenCount = 0;\n const itemGap = 4;\n const items = this.elementRef.nativeElement.getElementsByClassName('item');\n\n for (let index = 0; index < items.length; index++) {\n const item: HTMLElement = items[index];\n const itemWidth = item.clientWidth + itemGap;\n\n if (totalWidth + itemWidth < containerWidth && !hiddenCount) {\n totalWidth += itemWidth;\n (item as HTMLElement).style.visibility = 'visible';\n } else {\n (item as HTMLElement).style.visibility = 'hidden';\n hiddenCount++;\n }\n }\n\n this.elementRef.nativeElement.getElementsByClassName('multiple-item')[0].style.maxWidth = `${totalWidth}px`;\n this.hiddenCount.set(hiddenCount);\n }\n}\n","<div class=\"multiple-item\">\n @for (item of selectedLabels(); track trackByItem($index, item)) {\n @if (displayType() === 'label') {\n <ap-label\n class=\"item\"\n color=\"blue\"\n removable=\"true\"\n [content]=\"item.label\"\n (remove)=\"removeItem.emit(item.value)\" />\n }\n\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"item text-item\"\n clearable=\"true\"\n color=\"grey\"\n (clear)=\"removeItem.emit(item.value)\">\n @if (item.avatarUrl) {\n <ap-avatar\n [size]=\"16\"\n [rounded]=\"roundedAvatar()\"\n [profilePicture]=\"item.avatarUrl\"\n [username]=\"item.label\"\n [showInitials]=\"true\" />\n } @else if (item.symbolId) {\n <ap-symbol\n size=\"sm\"\n [attr.symbol-id]=\"item.symbolId\"\n [symbolId]=\"item.symbolId\" />\n }\n {{ item.label }}\n </ap-tag>\n }\n }\n</div>\n\n@if (hiddenCount() > 0) {\n <div class=\"remaining\">\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"text-item\"\n color=\"grey\"\n clearable=\"false\">\n +{{ hiddenCount() }}\n </ap-tag>\n }\n @if (displayType() === 'label') {\n <ap-label\n color=\"blue\"\n removable=\"false\"\n [content]=\"'+' + hiddenCount()\" />\n }\n </div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { LabelComponent } from '@agorapulse/ui-components/labels';\nimport { TagComponent } from '@agorapulse/ui-components/tag';\n\nimport { ChangeDetectionStrategy, Component, input, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ap-select-label-single',\n templateUrl: './select-label-single.component.html',\n styleUrls: ['./select-label-single.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelComponent, TagComponent, AvatarComponent],\n})\nexport class SelectLabelSingleComponent {\n @Input() displayType: 'text' | 'withAvatar' | 'tag' | 'label' = 'text';\n @Input({\n required: true,\n })\n label!: string;\n @Input() avatarUrl?: string;\n @Input() network: AvatarNetwork | undefined = undefined;\n @Input() showAvatarInitials = true;\n\n roundedAvatar = input(true);\n}\n","@switch (displayType) {\n @case ('text') {\n <span\n class=\"text-item\"\n [title]=\"label\">\n {{ label }}\n </span>\n }\n @case ('label') {\n <ap-label\n color=\"blue\"\n [removable]=\"false\"\n [content]=\"label\" />\n }\n @case ('tag') {\n <ap-tag\n class=\"text-item\"\n color=\"grey\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"16\"\n [username]=\"label\"\n [showInitials]=\"true\"\n [profilePicture]=\"avatarUrl\" />\n }\n {{ label }}\n </ap-tag>\n }\n @case ('withAvatar') {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [username]=\"label\"\n [showInitials]=\"showAvatarInitials\"\n [profilePicture]=\"avatarUrl\"\n [network]=\"network\" />\n <span class=\"text-item\">\n {{ label }}\n </span>\n }\n}\n","import { SymbolComponent, SymbolRegistry, apPlus, apCheck } from '@agorapulse/ui-symbol';\nimport { AfterViewInit, Directive, ElementRef, Input, OnInit, Renderer2, ViewContainerRef, inject } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ng-select[apSelect]',\n standalone: true,\n host: {\n class: 'ap-select',\n },\n})\nexport class SelectBaseDirective implements OnInit, AfterViewInit {\n @Input() inlineLabel?: string;\n @Input() symbolId?: string;\n\n private readonly selectComponent = inject(NgSelectComponent);\n private el: ElementRef<HTMLElement> = inject(ElementRef);\n private renderer = inject(Renderer2);\n private viewContainerRef = inject(ViewContainerRef);\n private symbolRegistry = inject(SymbolRegistry);\n\n constructor() {\n this.selectComponent.appendTo = 'body';\n this.selectComponent.searchable = false;\n this.selectComponent.clearable = false;\n this.selectComponent.markFirst = false;\n this.selectComponent.selectableGroupAsModel = false;\n this.selectComponent.tabIndex = 0;\n this.symbolRegistry.registerSymbols([apCheck, apPlus]);\n }\n\n ngOnInit(): void {\n if (this.symbolId) {\n this.addInlineSymbol(this.symbolId);\n }\n if (this.inlineLabel) {\n this.addInlineLabel(this.inlineLabel);\n }\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.optionTemplate) {\n throw new Error('optionTemplate is required for apSelect');\n }\n if (this.selectComponent.groupBy && !this.selectComponent.optgroupTemplate) {\n throw new Error('optgroupTemplate is required for apSelect');\n }\n }\n\n private addInlineSymbol(symbolId: string): void {\n const componentRef = this.viewContainerRef.createComponent(SymbolComponent);\n componentRef.instance.symbolId = symbolId;\n componentRef.location.nativeElement.classList.add('inline-symbol');\n // add class to component\n this.renderer.insertBefore(\n this.el.nativeElement.getElementsByClassName('ng-select-container').item(0),\n componentRef.location.nativeElement,\n this.el.nativeElement.getElementsByClassName('ng-value-container').item(0)\n );\n }\n\n private addInlineLabel(label: string): void {\n const labelElement = this.renderer.createElement('label');\n this.renderer.setProperty(labelElement, 'textContent', label);\n this.renderer.addClass(labelElement, 'inline-label'); // Add appropriate CSS class\n this.renderer.insertBefore(\n this.el.nativeElement.getElementsByClassName('ng-select-container').item(0),\n labelElement,\n this.el.nativeElement.getElementsByClassName('ng-value-container').item(0)\n );\n }\n}\n","import { AfterViewInit, Directive, inject } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { SelectBaseDirective } from './select-base.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ng-select[apSelectMultiple]',\n standalone: true,\n hostDirectives: [\n {\n directive: SelectBaseDirective,\n inputs: ['inlineLabel', 'symbolId'],\n },\n ],\n})\nexport class SelectMultipleDirective implements AfterViewInit {\n private readonly selectComponent = inject(NgSelectComponent);\n\n constructor() {\n this.selectComponent.multiple = true;\n this.selectComponent.closeOnSelect = false;\n this.selectComponent.searchable = true; // small hack to not closed the dropdown panel when clear an item in value container\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.multiLabelTemplate) {\n throw new Error('multiLabelTemplate is required for apSelectMultiple');\n }\n }\n}\n","import { AfterViewInit, Directive, inject } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { SelectBaseDirective } from './select-base.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ng-select[apSelectSingle]',\n standalone: true,\n hostDirectives: [\n {\n directive: SelectBaseDirective,\n inputs: ['inlineLabel', 'symbolId'],\n },\n ],\n})\nexport class SelectSingleDirective implements AfterViewInit {\n private readonly selectComponent = inject(NgSelectComponent);\n\n constructor() {\n this.selectComponent.multiple = false;\n this.selectComponent.closeOnSelect = true;\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.labelTemplate) {\n throw new Error('labelTemplate is required for apSelectSingle');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { DropdownGroupItemComponent } from './dropdown-group-item/dropdown-group-item.component';\nimport { DropdownItemMultipleOneLineComponent } from './dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component';\nimport { DropdownItemMultipleTwoLinesComponent } from './dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component';\nimport { DropdownItemSingleOneLineComponent } from './dropdown-item-single-one-line/dropdown-item-single-one-line.component';\nimport { DropdownItemSingleTwoLinesComponent } from './dropdown-item-single-two-lines/dropdown-item-single-two-lines.component';\nimport { DropdownSearchFormComponent } from './dropdown-search-form/dropdown-search-form.component';\nimport { SelectLabelMultipleComponent } from './select-label-multiple/select-label-multiple.component';\nimport { SelectLabelSingleComponent } from './select-label-single/select-label-single.component';\nimport { SelectMultipleDirective } from './select-multiple.directive';\nimport { SelectSingleDirective } from './select-single.directive';\n\n@NgModule({\n imports: [\n SelectMultipleDirective,\n SelectSingleDirective,\n DropdownItemSingleOneLineComponent,\n DropdownItemSingleTwoLinesComponent,\n DropdownItemMultipleOneLineComponent,\n DropdownItemMultipleTwoLinesComponent,\n SelectLabelSingleComponent,\n SelectLabelMultipleComponent,\n DropdownSearchFormComponent,\n DropdownGroupItemComponent,\n NgSelectModule,\n ],\n exports: [\n SelectMultipleDirective,\n SelectSingleDirective,\n DropdownItemSingleOneLineComponent,\n DropdownItemSingleTwoLinesComponent,\n DropdownItemMultipleOneLineComponent,\n DropdownItemMultipleTwoLinesComponent,\n SelectLabelSingleComponent,\n SelectLabelMultipleComponent,\n DropdownSearchFormComponent,\n DropdownGroupItemComponent,\n NgSelectModule,\n ],\n})\nexport class ApSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.SelectBaseDirective"],"mappings":";;;;;;;;;;;;;;;;;;;MAea,0BAA0B,CAAA;AACR,IAAA,UAAU;AAC5B,IAAA,QAAQ;IACR,eAAe,GAAG,KAAK;IACL,QAAQ,GAAe,EAAE;AAIpD,IAAA,MAAM;IACG,QAAQ,GAAG,KAAK;AAChB,IAAA,eAAe;IAExB,mBAAmB,GAAA;QACf,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAe,KAAK,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACrG,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAe,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AACrF,QAAA,OAAO,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM;;IAG7F,cAAc,GAAA;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAe,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;;IAGhH,eAAe,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAe,KAAK,KAAK,CAAC,QAAQ,CAAC;;uGAvB1D,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,oRCfvC,q7BAgCA,EAAA,MAAA,EAAA,CAAA,oDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDnBc,cAAc,EAAE,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,wMAAE,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAEpD,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAGnB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,q7BAAA,EAAA,MAAA,EAAA,CAAA,oDAAA,CAAA,EAAA;8BAGnC,UAAU,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChB,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBAC0B,QAAQ,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAIzB,MAAM,EAAA,CAAA;sBAHL,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA;AACH,wBAAA,QAAQ,EAAE,IAAI;AACjB,qBAAA;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;;;MEDQ,oCAAoC,CAAA;AAClB,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,MAAM;IACxB,QAAQ,GAAG,KAAK;AAChB,IAAA,SAAS;AACT,IAAA,QAAQ;AACR,IAAA,eAAe;AACf,IAAA,SAAS;IACT,cAAc,GAAG,KAAK;IACtB,WAAW,GAAG,KAAK;AACnB,IAAA,QAAQ;AACjB,IAAA,eAAe,GAAG,KAAK,CAAU,KAAK,CAAC;AACvC,IAAA,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;AAEjB,IAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;IAC/C,oBAAoB,GAAG,MAAM,EAAE;AAED,IAAA,QAAQ;AAEH,IAAA,OAAO,CAAC,MAAkB,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YACxB,MAAM,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;;IAIxC,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;;uGA7BhB,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,EAkBlC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,EC1ChC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,mrDAwDA,EDlCc,MAAA,EAAA,CAAA,0QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,EAAE,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,KAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,wEAAE,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAEtF,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAThD,SAAS;+BACI,oCAAoC,EAAA,UAAA,EAGlC,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA,CAAC,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,mrDAAA,EAAA,MAAA,EAAA,CAAA,0QAAA,CAAA,EAAA;8BAGvG,IAAI,EAAA,CAAA;sBAA9B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,QAAQ,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChB,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBAIS,UAAU,EAAA,CAAA;sBAAnB;gBAG6B,QAAQ,EAAA,CAAA;sBAArC,SAAS;uBAAC,iBAAiB;gBAEO,OAAO,EAAA,CAAA;sBAAzC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MElBxB,qCAAqC,CAAA;AACnB,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,MAAM;IACxB,QAAQ,GAAG,KAAK;AAChB,IAAA,SAAS;AACT,IAAA,QAAQ;AACR,IAAA,eAAe;AACf,IAAA,SAAS;IACT,cAAc,GAAG,KAAK;IACtB,WAAW,GAAG,KAAK;AACnB,IAAA,QAAQ;AACjB,IAAA,eAAe,GAAG,KAAK,CAAU,KAAK,CAAC;AACvC,IAAA,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;AAEjB,IAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;IAC/C,oBAAoB,GAAG,MAAM,EAAE;AAED,IAAA,QAAQ;AAEH,IAAA,OAAO,CAAC,MAAkB,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YACxB,MAAM,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;;IAIxC,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;;uGA9BhB,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qCAAqC,EAmBnC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,EC7ChC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+8DA+DA,EDvCc,MAAA,EAAA,CAAA,2kBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,EAAE,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,KAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,wEAAE,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAEtF,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBATjD,SAAS;+BACI,qCAAqC,EAAA,UAAA,EAGnC,IAAI,EACC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,WAC5B,CAAC,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,+8DAAA,EAAA,MAAA,EAAA,CAAA,2kBAAA,CAAA,EAAA;8BAGrE,IAAI,EAAA,CAAA;sBAA9B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,OAAO,EAAA,CAAA;sBAAjC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,QAAQ,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChB,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBAIS,UAAU,EAAA,CAAA;sBAAnB;gBAG6B,QAAQ,EAAA,CAAA;sBAArC,SAAS;uBAAC,iBAAiB;gBAEO,OAAO,EAAA,CAAA;sBAAzC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MEvBxB,kCAAkC,CAAA;AAChB,IAAA,IAAI;AACJ,IAAA,QAAQ;IAC1B,QAAQ,GAAG,KAAK;AAChB,IAAA,SAAS;IACT,kBAAkB,GAAG,IAAI;AACzB,IAAA,QAAQ;AACR,IAAA,eAAe;AACf,IAAA,SAAS;IACT,cAAc,GAAG,KAAK;IACtB,OAAO,GAA8B,SAAS;AACvD,IAAA,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;AAC3B,IAAA,eAAe,GAAG,KAAK,CAAU,KAAK,CAAC;IAEvC,oBAAoB,GAAG,MAAM,EAAE;AAEI,IAAA,OAAO,CAAC,MAAkB,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YACxB,MAAM,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;;uGAnB/B,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlC,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxB/C,stCA6CA,EDvBc,MAAA,EAAA,CAAA,yNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,6FAAE,eAAe,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,KAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAEnE,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAT9C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,cAGhC,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,stCAAA,EAAA,MAAA,EAAA,CAAA,yNAAA,CAAA,EAAA;8BAGlD,IAAI,EAAA,CAAA;sBAA9B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,QAAQ,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChB,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAMkC,OAAO,EAAA,CAAA;sBAAzC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MEhBxB,mCAAmC,CAAA;AACjB,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,QAAQ;IAC1B,QAAQ,GAAG,KAAK;AAChB,IAAA,SAAS;AACT,IAAA,QAAQ;AACR,IAAA,eAAe;AACf,IAAA,SAAS;IACT,cAAc,GAAG,KAAK;IACtB,OAAO,GAA8B,SAAS;AACvD,IAAA,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;AAC3B,IAAA,eAAe,GAAG,KAAK,CAAU,KAAK,CAAC;IAEvC,oBAAoB,GAAG,MAAM,EAAE;AAEI,IAAA,OAAO,CAAC,MAAkB,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YACxB,MAAM,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;;uGAnB/B,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnC,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBhD,s/CAsDA,EDhCc,MAAA,EAAA,CAAA,shBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,6FAAE,eAAe,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,KAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAEnE,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAT/C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mCAAmC,cAGjC,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,s/CAAA,EAAA,MAAA,EAAA,CAAA,shBAAA,CAAA,EAAA;8BAGlD,IAAI,EAAA,CAAA;sBAA9B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,OAAO,EAAA,CAAA;sBAAjC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,QAAQ,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChB,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAMkC,OAAO,EAAA,CAAA;sBAAzC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MENxB,2BAA2B,CAAA;IAC3B,iBAAiB,GAAG,EAAE;IACtB,gBAAgB,GAAG,KAAK;IACxB,UAAU,GAAG,QAAQ;AAI9B,IAAA,MAAM;AAC2B,IAAA,WAAW;AACK,IAAA,WAAW;AACZ,IAAA,UAAU;AACR,IAAA,YAAY;AAEpD,IAAA,SAAS,GAAG,IAAI,YAAY,EAAU;AAEhD,IAAA,gBAAgB,GAAG,MAAM,CAAS,EAAE,CAAC;AACrC,IAAA,WAAW,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC;IAC7C,kBAAkB,GAAiC,IAAI;AAEvD,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC;AACA,aAAA,IAAI,CACD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3B,kBAAkB,EAAE;aAEvB,SAAS,CAAC,IAAI,IAAG;AACd,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,SAAC,CAAC;;IAGV,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE;;IAG1C,eAAe,GAAA;QACX,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;YAC7B,IAAI,CAAC,sBAAsB,EAAE;SAChC,EAAE,GAAG,CAAC;QACP,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW;QAC/C,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU;;AAGjD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY;;;AAItD;;;;;AAKG;IACH,sBAAsB,GAAA;AAClB,QAAA,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAG;AAC/D,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;;AACvD,iBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC/B,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;;AAE3B,SAAC,CAAC;;IAIN,WAAW,GAAA;QACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;;uGApEvC,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,2SAQzB,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACG,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACZ,WAAW,EACT,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EC7ClD,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,m/BAqCA,oUDLmD,eAAe,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,qFAAE,oBAAoB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAEzG,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBATvC,SAAS;+BACI,yBAAyB,EAAA,UAAA,EAGvB,IAAI,EACC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,m/BAAA,EAAA,MAAA,EAAA,CAAA,4QAAA,CAAA,EAAA;wDAG1G,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBAID,MAAM,EAAA,CAAA;sBAHL,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA;AACH,wBAAA,QAAQ,EAAE,IAAI;AACjB,qBAAA;gBAEgC,WAAW,EAAA,CAAA;sBAA3C,SAAS;uBAAC,oBAAoB;gBACkB,WAAW,EAAA,CAAA;sBAA3D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBACC,UAAU,EAAA,CAAA;sBAAzD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBACI,YAAY,EAAA,CAAA;sBAA7D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAEtC,SAAS,EAAA,CAAA;sBAAlB;;;MElBQ,4BAA4B,CAAA;AACrC,IAAA,WAAW,GAAG,KAAK,CAAkB,OAAO,CAAC;AAC7C,IAAA,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAS;AACvC,IAAA,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;AACrB,IAAA,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;AACrB,IAAA,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC;AACzB,IAAA,YAAY,GAAG,KAAK,CAAC,EAAE,CAAC;AAExB,IAAA,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;IAE3B,UAAU,GAAG,MAAM,EAAO;AAElB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAE9C,IAAA,cAAc,GAAG,QAAQ,CAAC,MACtB,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,IAAI,IAAG;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI;QAC9D,MAAM,oBAAoB,GAAG,CAAC;QAC9B,MAAM,4BAA4B,GAAG,CAAC;AACtC,QAAA,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,oBAAoB,GAAG,4BAA4B;AACvH,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC;QAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC;QACxD,OAAO;AACH,YAAA,KAAK,EAAE,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,GAAG,cAAc;AACrF,YAAA,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE;AACjE,YAAA,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI;AAChE,YAAA,KAAK,EAAE,IAAI;SACd;KACJ,CAAC,CACL;AAED,IAAA,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC;AAC/B,IAAA,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC;AAEvB,IAAA,WAAW,GAAG,CAAC,CAAS,EAAE,IAAS,MAAM,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAEtG,eAAe,GAAA;QACX,MAAM,WAAW,GAAI,IAAI,CAAC,UAAU,CAAC,aAA6B,CAAC,aAAa,EAAE,WAAW;QAC7F,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;AAE9C,QAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;YACtC,MAAM,CACF,MAAK;AACD,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE;gBAC3C,MAAM,yBAAyB,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;AACjE,gBAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;AAC5B,oBAAA,IAAI,CAAC,yBAAyB,CAAC,yBAAyB,EAAE,cAAc,CAAC;iBAC5E,EAAE,GAAG,CAAC;AACP,gBAAA,OAAO,MAAK;oBACR,YAAY,CAAC,OAAO,CAAC;AACzB,iBAAC;AACL,aAAC,EACD,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC9B;AACL,SAAC,CAAC;;IAGN,yBAAyB,CAAC,cAAsB,EAAE,cAAqB,EAAA;QACnE,IAAI,cAAc,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAChD;;QAGJ,IAAI,UAAU,GAAG,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC;QACnB,MAAM,OAAO,GAAG,CAAC;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC;AAE1E,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAC/C,YAAA,MAAM,IAAI,GAAgB,KAAK,CAAC,KAAK,CAAC;AACtC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO;YAE5C,IAAI,UAAU,GAAG,SAAS,GAAG,cAAc,IAAI,CAAC,WAAW,EAAE;gBACzD,UAAU,IAAI,SAAS;AACtB,gBAAA,IAAoB,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS;;iBAC/C;AACF,gBAAA,IAAoB,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;AACjD,gBAAA,WAAW,EAAE;;;QAIrB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAG,EAAA,UAAU,IAAI;AAC3G,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;;uGAlF5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BzC,qwDAsDA,ED3Bc,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,6HAAE,YAAY,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,KAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAE/D,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBATxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,cAGxB,IAAI,EAAA,aAAA,EACD,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,qwDAAA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA;;;MEZhE,0BAA0B,CAAA;IAC1B,WAAW,GAA4C,MAAM;AAItE,IAAA,KAAK;AACI,IAAA,SAAS;IACT,OAAO,GAA8B,SAAS;IAC9C,kBAAkB,GAAG,IAAI;AAElC,IAAA,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;uGAVlB,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,q5BCfvC,8oCA0CA,EAAA,MAAA,EAAA,CAAA,iGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED7Bc,cAAc,EAAE,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,YAAY,+GAAE,eAAe,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,KAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAE9C,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBATtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,cAGtB,IAAI,EAAA,aAAA,EACD,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,WACtC,CAAC,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,8oCAAA,EAAA,MAAA,EAAA,CAAA,iGAAA,CAAA,EAAA;8BAG/C,WAAW,EAAA,CAAA;sBAAnB;gBAID,KAAK,EAAA,CAAA;sBAHJ,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA;AACH,wBAAA,QAAQ,EAAE,IAAI;AACjB,qBAAA;gBAEQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;;;MEXQ,mBAAmB,CAAA;AACnB,IAAA,WAAW;AACX,IAAA,QAAQ;AAEA,IAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACpD,IAAA,EAAE,GAA4B,MAAM,CAAC,UAAU,CAAC;AAChD,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAE/C,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,MAAM;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK;AACvC,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,KAAK;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,KAAK;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,GAAG,KAAK;AACnD,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;;IAG1D,QAAQ,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAEvC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;;;IAI7C,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;AACtC,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;;AAE9D,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;AACxE,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;;;AAI5D,IAAA,eAAe,CAAC,QAAgB,EAAA;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,eAAe,CAAC;AAC3E,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ;QACzC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;;AAElE,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACtB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC3E,YAAY,CAAC,QAAQ,CAAC,aAAa,EACnC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7E;;AAGG,IAAA,cAAc,CAAC,KAAa,EAAA;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACtB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC3E,YAAY,EACZ,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7E;;uGA1DI,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,WAAW;AACrB,qBAAA;AACJ,iBAAA;wDAEY,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;MCCQ,uBAAuB,CAAA;AACf,IAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAE5D,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI;AACpC,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,KAAK;QAC1C,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;;IAG3C,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;AAC1C,YAAA,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC;;;uGAXrE,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,mBAAmB;AAC9B,4BAAA,MAAM,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;AACtC,yBAAA;AACJ,qBAAA;AACJ,iBAAA;;;MCCY,qBAAqB,CAAA;AACb,IAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAE5D,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,KAAK;AACrC,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI;;IAG7C,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;;;uGAV9D,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAXjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,mBAAmB;AAC9B,4BAAA,MAAM,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;AACtC,yBAAA;AACJ,qBAAA;AACJ,iBAAA;;;MC2BY,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YA1BnB,uBAAuB;YACvB,qBAAqB;YACrB,kCAAkC;YAClC,mCAAmC;YACnC,oCAAoC;YACpC,qCAAqC;YACrC,0BAA0B;YAC1B,4BAA4B;YAC5B,2BAA2B;YAC3B,0BAA0B;AAC1B,YAAA,cAAc,aAGd,uBAAuB;YACvB,qBAAqB;YACrB,kCAAkC;YAClC,mCAAmC;YACnC,oCAAoC;YACpC,qCAAqC;YACrC,0BAA0B;YAC1B,4BAA4B;YAC5B,2BAA2B;YAC3B,0BAA0B;YAC1B,cAAc,CAAA,EAAA,CAAA;AAGT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAxBnB,kCAAkC;YAClC,mCAAmC;YACnC,oCAAoC;YACpC,qCAAqC;YACrC,0BAA0B;YAC1B,4BAA4B;YAC5B,2BAA2B;YAC3B,0BAA0B;AAC1B,YAAA,cAAc,EAad,cAAc,CAAA,EAAA,CAAA;;2FAGT,cAAc,EAAA,UAAA,EAAA,CAAA;kBA5B1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,uBAAuB;wBACvB,qBAAqB;wBACrB,kCAAkC;wBAClC,mCAAmC;wBACnC,oCAAoC;wBACpC,qCAAqC;wBACrC,0BAA0B;wBAC1B,4BAA4B;wBAC5B,2BAA2B;wBAC3B,0BAA0B;wBAC1B,cAAc;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,uBAAuB;wBACvB,qBAAqB;wBACrB,kCAAkC;wBAClC,mCAAmC;wBACnC,oCAAoC;wBACpC,qCAAqC;wBACrC,0BAA0B;wBAC1B,4BAA4B;wBAC5B,2BAA2B;wBAC3B,0BAA0B;wBAC1B,cAAc;AACjB,qBAAA;AACJ,iBAAA;;;ACxCD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-select.mjs","sources":["../../../libs/ui-components/select/src/dropdown-group-item/dropdown-group-item.component.ts","../../../libs/ui-components/select/src/dropdown-group-item/dropdown-group-item.component.html","../../../libs/ui-components/select/src/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.ts","../../../libs/ui-components/select/src/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.html","../../../libs/ui-components/select/src/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.ts","../../../libs/ui-components/select/src/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.html","../../../libs/ui-components/select/src/dropdown-item-single-one-line/dropdown-item-single-one-line.component.ts","../../../libs/ui-components/select/src/dropdown-item-single-one-line/dropdown-item-single-one-line.component.html","../../../libs/ui-components/select/src/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.ts","../../../libs/ui-components/select/src/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.html","../../../libs/ui-components/select/src/dropdown-search-form/dropdown-search-form.component.ts","../../../libs/ui-components/select/src/dropdown-search-form/dropdown-search-form.component.html","../../../libs/ui-components/select/src/select-label-multiple/select-label-multiple.component.ts","../../../libs/ui-components/select/src/select-label-multiple/select-label-multiple.component.html","../../../libs/ui-components/select/src/select-label-single/select-label-single.component.ts","../../../libs/ui-components/select/src/select-label-single/select-label-single.component.html","../../../libs/ui-components/select/src/select-base.directive.ts","../../../libs/ui-components/select/src/select-multiple.directive.ts","../../../libs/ui-components/select/src/select-single.directive.ts","../../../libs/ui-components/select/src/ap-select.module.ts","../../../libs/ui-components/select/src/agorapulse-ui-components-select.ts"],"sourcesContent":["import { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\n\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { NgOption, NgSelectComponent } from '@ng-select/ng-select';\n\n@Component({\n selector: 'ap-dropdown-group-item',\n templateUrl: './dropdown-group-item.component.html',\n styleUrls: ['./dropdown-group-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [BadgeComponent, CheckboxComponent, TooltipDirective],\n})\nexport class DropdownGroupItemComponent {\n @Input({ required: true }) groupLabel!: string;\n @Input() groupTag?: string;\n @Input() selectableGroup = false;\n @Input({ required: true }) children: NgOption[] = [];\n @Input({\n required: true,\n })\n select!: NgSelectComponent;\n @Input() disabled = false;\n @Input() disabledTooltip?: string;\n\n isGroupIntermediate(): boolean {\n const selectedChildren = this.children.filter((child: NgOption) => child.selected && !child.disabled);\n const selectableChildren = this.children.filter((child: NgOption) => !child.disabled);\n return selectedChildren.length > 0 && selectedChildren.length < selectableChildren.length;\n }\n\n isGroupChecked(): boolean {\n return this.children.every((child: NgOption) => child.selected || child.disabled) && !this.isGroupDisabled();\n }\n\n isGroupDisabled(): boolean {\n return this.children.every((child: NgOption) => child.disabled);\n }\n}\n","<div\n class=\"group\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\">\n @if (selectableGroup) {\n <ap-checkbox\n [name]=\"'option-group-selection-' + groupLabel\"\n [disabled]=\"isGroupDisabled() || disabled\"\n [indeterminate]=\"isGroupIntermediate()\"\n [checked]=\"isGroupChecked()\">\n <span class=\"group-label\">\n {{ groupLabel }}\n </span>\n @if (groupTag) {\n <ap-badge color=\"blue\">\n {{ groupTag }}\n </ap-badge>\n }\n </ap-checkbox>\n } @else {\n <span\n class=\"group-label\"\n [title]=\"groupLabel\">\n {{ groupLabel }}\n </span>\n @if (groupTag) {\n <ap-badge color=\"blue\">\n {{ groupTag }}\n </ap-badge>\n }\n }\n</div>\n","import { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\n\nimport {\n ChangeDetectionStrategy,\n Component, EventEmitter, HostListener, Input,\n input, Output,\n output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-multiple-one-line',\n templateUrl: './dropdown-item-multiple-one-line.component.html',\n styleUrls: ['./dropdown-item-multiple-one-line.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, CheckboxComponent, AvatarComponent, BadgeComponent, TooltipDirective, SymbolComponent, SymbolComponent],\n})\nexport class DropdownItemMultipleOneLineComponent {\n @Input({ required: true }) text!: string;\n @Input({ required: true }) selected!: boolean;\n @Input({ required: true }) htmlId!: string;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() onlyEnabled = false;\n @Input() onlyText?: string;\n isFeatureLocked = input<boolean>(false);\n roundedAvatar = input(true);\n\n @Output() selectOnly = new EventEmitter<void>();\n lockedFeatureClicked = output();\n\n @ViewChild(CheckboxComponent) checkbox!: CheckboxComponent;\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n\n onSelectOnly() {\n this.selectOnly.emit();\n this.checkbox.focus();\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option multiple\" [class.feature-locked-option]=\"isFeatureLocked()\">\n <ap-checkbox\n #checkbox\n [checked]=\"selected\"\n [disabled]=\"disabled || isFeatureLocked()\"\n [name]=\"'option-selection-' + htmlId\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <span\n class=\"option-item\"\n [class.feature-locked-label]=\"isFeatureLocked()\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n }\n\n @if (onlyEnabled && !disabled && !isFeatureLocked()) {\n <button\n class=\"standalone-link\"\n type=\"button\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); onSelectOnly()\">\n {{ onlyText }}\n </button>\n }\n\n </ap-checkbox>\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter, HostListener,\n input,\n Input, output,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-multiple-two-lines',\n templateUrl: './dropdown-item-multiple-two-lines.component.html',\n styleUrls: ['./dropdown-item-multiple-two-lines.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, CheckboxComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemMultipleTwoLinesComponent {\n @Input({ required: true }) text!: string;\n @Input({ required: true }) caption!: string;\n @Input({ required: true }) selected!: boolean;\n @Input({ required: true }) htmlId!: string;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() onlyEnabled = false;\n @Input() onlyText?: string;\n isFeatureLocked = input<boolean>(false);\n roundedAvatar = input(true);\n\n @Output() selectOnly = new EventEmitter<void>();\n lockedFeatureClicked = output();\n\n @ViewChild(CheckboxComponent) checkbox!: CheckboxComponent;\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n\n onSelectOnly() {\n this.selectOnly.emit();\n this.checkbox.focus();\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option multiple with-caption\" [class.feature-locked-option]=\"isFeatureLocked()\">\n <ap-checkbox\n [checked]=\"selected\"\n [disabled]=\"disabled || isFeatureLocked()\"\n [name]=\"'option-selection-' + htmlId\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <div class=\"texts\" [class.feature-locked-label]=\"isFeatureLocked()\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n </div>\n <span\n class=\"caption\"\n [title]=\"caption\">\n {{ caption }}\n </span>\n </div>\n\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n }\n\n @if (onlyEnabled && !disabled) {\n <button\n class=\"standalone-link\"\n type=\"button\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); onSelectOnly()\">\n {{ onlyText }}\n </button>\n }\n </ap-checkbox>\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n input,\n Input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-single-one-line',\n templateUrl: './dropdown-item-single-one-line.component.html',\n styleUrls: ['./dropdown-item-single-one-line.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemSingleOneLineComponent {\n @Input({ required: true }) text!: string;\n @Input({ required: true }) selected!: boolean;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() showAvatarInitials = true;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() network: AvatarNetwork | undefined = undefined;\n roundedAvatar = input(true);\n isFeatureLocked = input<boolean>(false);\n\n lockedFeatureClicked = output();\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option\" [class.feature-locked-option]=\"isFeatureLocked()\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"showAvatarInitials\"\n [network]=\"network\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <span\n class=\"option-item\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n } @else if (selected) {\n <ap-symbol\n class=\"option-selected\"\n symbolId=\"check\"\n color=\"electric-blue\"\n size=\"sm\" />\n }\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n input,\n Input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-single-two-lines',\n templateUrl: './dropdown-item-single-two-lines.component.html',\n styleUrls: ['./dropdown-item-single-two-lines.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemSingleTwoLinesComponent {\n @Input({ required: true }) text!: string;\n @Input({ required: true }) caption!: string;\n @Input({ required: true }) selected!: boolean;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() network: AvatarNetwork | undefined = undefined;\n roundedAvatar = input(true);\n isFeatureLocked = input<boolean>(false);\n\n lockedFeatureClicked = output();\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option with-caption\" [class.feature-locked-option]=\"isFeatureLocked()\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\"\n [network]=\"network\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <div class=\"texts\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n </div>\n <span\n class=\"caption\"\n [title]=\"caption\">\n {{ caption }}\n </span>\n </div>\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n } @else if (selected) {\n <ap-symbol\n class=\"option-selected\"\n symbolId=\"check\"\n color=\"electric-blue\"\n size=\"sm\" />\n }\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { LoaderComponent } from '@agorapulse/ui-animations';\nimport { InputDirective } from '@agorapulse/ui-components/input';\nimport { InputGroupComponent } from '@agorapulse/ui-components/input-group';\nimport { InputSearchComponent } from '@agorapulse/ui-components/input-search';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n OutputRefSubscription,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { BehaviorSubject, filter } from 'rxjs';\n\n@Component({\n selector: 'ap-dropdown-search-form',\n templateUrl: './dropdown-search-form.component.html',\n styleUrls: ['./dropdown-search-form.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [InputGroupComponent, InputDirective, SymbolComponent, FormsModule, LoaderComponent, InputSearchComponent],\n})\nexport class DropdownSearchFormComponent implements AfterViewInit, OnDestroy {\n @Input() searchPlaceholder = '';\n @Input() createNewEnabled = false;\n @Input() createText = 'Create';\n @Input({\n required: true,\n })\n select!: NgSelectComponent;\n @ViewChild(InputSearchComponent) inputSearch!: InputSearchComponent;\n @ViewChild('notFoundTpl', { read: TemplateRef }) notFoundTpl!: TemplateRef<any>;\n @ViewChild('loadingTpl', { read: TemplateRef }) loadingTpl!: TemplateRef<any>;\n @ViewChild('createNewTpl', { read: TemplateRef }) createNewTpl!: TemplateRef<any>;\n\n @Output() createNew = new EventEmitter<string>();\n\n searchTermSignal = signal<string>('');\n searchTerm$ = new BehaviorSubject<string>('');\n submitSubscription: OutputRefSubscription | null = null;\n\n constructor() {\n this.searchTerm$\n .pipe(\n filter(() => !!this.select),\n takeUntilDestroyed()\n )\n .subscribe(term => {\n this.searchTermSignal.set(term);\n this.select.filter(term);\n });\n }\n\n ngOnDestroy(): void {\n this.submitSubscription?.unsubscribe();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.inputSearch.focusInput();\n this.registerKeyboardSubmit();\n }, 100);\n this.select.notFoundTemplate = this.notFoundTpl;\n this.select.loadingTextTemplate = this.loadingTpl;\n\n // validate the current row on keypress\n if (this.createNewEnabled) {\n this.select.footerTemplate = this.createNewTpl;\n }\n }\n\n /**\n * Register the keyboard submit event allowing to press enter to select the first item found.\n * And escape to close the dropdown. This is useful for keyboard navigation.\n * Use case: search for an item by typing the first characters and press enter to select it.\n * Furthermore: arrow keys currently don't work in the dropdown search form.\n */\n registerKeyboardSubmit() {\n this.submitSubscription?.unsubscribe();\n this.submitSubscription = this.inputSearch.keyup.subscribe(event => {\n if (event.key === 'Enter') {\n this.select.select(this.select.itemsList.filteredItems[0]);\n } else if (event.key === 'Escape') {\n this.select.close();\n }\n });\n\n }\n\n onCreateNew() {\n this.createNew.emit(this.searchTermSignal());\n }\n}\n","<ap-input-search\n class=\"dropdown-search-input\"\n [ngModel]=\"searchTermSignal()\"\n [placeholder]=\"searchPlaceholder\"\n (ngModelChange)=\"searchTerm$.next($event)\" />\n\n<ng-template #notFoundTpl>\n <div class=\"option not-found\">\n <span>{{ select.notFoundText ? select.notFoundText : 'Not found text' }}</span>\n </div>\n</ng-template>\n\n<ng-template #loadingTpl>\n <div class=\"loading-state\">\n <ap-loader diameter=\"30\" />\n <span>\n {{ select.loadingText ? select.loadingText : 'Loading Items' }}\n </span>\n </div>\n</ng-template>\n\n<ng-template\n #createNewTpl\n let-searchTerm=\"searchTerm\">\n <button\n class=\"create-new\"\n type=\"button\"\n (click)=\"onCreateNew()\">\n <ap-symbol\n symbolId=\"plus\"\n size=\"sm\" />\n <span>\n {{ createText }}\n {{ searchTerm ? searchTerm : '' }}\n </span>\n </button>\n</ng-template>\n","import { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { LabelComponent } from '@agorapulse/ui-components/labels';\nimport { TagComponent } from '@agorapulse/ui-components/tag';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EnvironmentInjector,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n output,\n runInInjectionContext,\n signal,\n} from '@angular/core';\n\n@Component({\n selector: 'ap-select-label-multiple',\n templateUrl: './select-label-multiple.component.html',\n styleUrls: ['./select-label-multiple.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelComponent, TagComponent, AvatarComponent, SymbolComponent],\n})\nexport class SelectLabelMultipleComponent implements AfterViewInit {\n displayType = input<'tag' | 'label'>('label');\n selectedItems = input.required<any[]>();\n bindLabel = input('');\n bindValue = input('');\n bindAvatarUrl = input('');\n bindSymbolId = input('');\n\n roundedAvatar = input(true);\n\n removeItem = output<any>();\n\n private elementRef = inject(ElementRef);\n private injector = inject(EnvironmentInjector);\n\n selectedLabels = computed(() =>\n this.selectedItems().map(item => {\n const label = this.bindLabel() ? item[this.bindLabel()] : item;\n const approximateCharWidth = 5;\n const maxCharLength = (this.valueContainerWidth() / label.length) * approximateCharWidth;\n const ellipsisCharLenght = 2;\n const ellipsisLastIndex = Math.min(label.length, maxCharLength - ellipsisCharLenght);\n const truncatedLabel = label.slice(0, ellipsisLastIndex);\n return {\n label: truncatedLabel.length < label.length ? truncatedLabel + '...' : truncatedLabel,\n avatarUrl: this.bindAvatarUrl() ? item[this.bindAvatarUrl()] : '',\n symbolId: this.bindSymbolId() ? item[this.bindSymbolId()] : null,\n value: item,\n };\n })\n );\n\n valueContainerWidth = signal(0);\n hiddenCount = signal(0);\n\n trackByItem = (_: number, item: any) => (this.bindValue() ? item.value[this.bindValue()] : item.value);\n\n ngAfterViewInit(): void {\n const parentWidth = (this.elementRef.nativeElement as HTMLElement).parentElement?.offsetWidth;\n this.valueContainerWidth.set(parentWidth ?? 0);\n\n runInInjectionContext(this.injector, () => {\n effect(\n () => {\n const selectedValues = this.selectedItems();\n const selectValueContainerWidth = this.valueContainerWidth() - 30;\n const timeout = setTimeout(() => {\n this.calculateResponsiveLabels(selectValueContainerWidth, selectedValues);\n }, 100);\n return () => {\n clearTimeout(timeout);\n };\n },\n { allowSignalWrites: true }\n );\n });\n }\n\n calculateResponsiveLabels(containerWidth: number, selectedValues: any[]): void {\n if (containerWidth === 0 || !selectedValues.length) {\n return;\n }\n\n let totalWidth = 0;\n let hiddenCount = 0;\n const itemGap = 4;\n const items = this.elementRef.nativeElement.getElementsByClassName('item');\n\n for (let index = 0; index < items.length; index++) {\n const item: HTMLElement = items[index];\n const itemWidth = item.clientWidth + itemGap;\n\n if (totalWidth + itemWidth < containerWidth && !hiddenCount) {\n totalWidth += itemWidth;\n (item as HTMLElement).style.visibility = 'visible';\n } else {\n (item as HTMLElement).style.visibility = 'hidden';\n hiddenCount++;\n }\n }\n\n this.elementRef.nativeElement.getElementsByClassName('multiple-item')[0].style.maxWidth = `${totalWidth}px`;\n this.hiddenCount.set(hiddenCount);\n }\n}\n","<div class=\"multiple-item\">\n @for (item of selectedLabels(); track trackByItem($index, item)) {\n @if (displayType() === 'label') {\n <ap-label\n class=\"item\"\n color=\"blue\"\n removable=\"true\"\n [content]=\"item.label\"\n (remove)=\"removeItem.emit(item.value)\" />\n }\n\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"item text-item\"\n clearable=\"true\"\n color=\"grey\"\n (clear)=\"removeItem.emit(item.value)\">\n @if (item.avatarUrl) {\n <ap-avatar\n [size]=\"16\"\n [rounded]=\"roundedAvatar()\"\n [profilePicture]=\"item.avatarUrl\"\n [username]=\"item.label\"\n [showInitials]=\"true\" />\n } @else if (item.symbolId) {\n <ap-symbol\n size=\"sm\"\n [attr.symbol-id]=\"item.symbolId\"\n [symbolId]=\"item.symbolId\" />\n }\n {{ item.label }}\n </ap-tag>\n }\n }\n</div>\n\n@if (hiddenCount() > 0) {\n <div class=\"remaining\">\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"text-item\"\n color=\"grey\"\n clearable=\"false\">\n +{{ hiddenCount() }}\n </ap-tag>\n }\n @if (displayType() === 'label') {\n <ap-label\n color=\"blue\"\n removable=\"false\"\n [content]=\"'+' + hiddenCount()\" />\n }\n </div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { LabelComponent } from '@agorapulse/ui-components/labels';\nimport { TagComponent } from '@agorapulse/ui-components/tag';\n\nimport { ChangeDetectionStrategy, Component, input, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ap-select-label-single',\n templateUrl: './select-label-single.component.html',\n styleUrls: ['./select-label-single.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelComponent, TagComponent, AvatarComponent],\n})\nexport class SelectLabelSingleComponent {\n @Input() displayType: 'text' | 'withAvatar' | 'tag' | 'label' = 'text';\n @Input({\n required: true,\n })\n label!: string;\n @Input() avatarUrl?: string;\n @Input() network: AvatarNetwork | undefined = undefined;\n @Input() showAvatarInitials = true;\n\n roundedAvatar = input(true);\n}\n","@switch (displayType) {\n @case ('text') {\n <span\n class=\"text-item\"\n [title]=\"label\">\n {{ label }}\n </span>\n }\n @case ('label') {\n <ap-label\n color=\"blue\"\n [removable]=\"false\"\n [content]=\"label\" />\n }\n @case ('tag') {\n <ap-tag\n class=\"text-item\"\n color=\"grey\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"16\"\n [username]=\"label\"\n [showInitials]=\"true\"\n [profilePicture]=\"avatarUrl\" />\n }\n {{ label }}\n </ap-tag>\n }\n @case ('withAvatar') {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [username]=\"label\"\n [showInitials]=\"showAvatarInitials\"\n [profilePicture]=\"avatarUrl\"\n [network]=\"network\" />\n <span class=\"text-item\">\n {{ label }}\n </span>\n }\n}\n","import { SymbolComponent, SymbolRegistry, apPlus, apCheck } from '@agorapulse/ui-symbol';\nimport { AfterViewInit, Directive, ElementRef, Input, OnInit, Renderer2, ViewContainerRef, inject } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ng-select[apSelect]',\n standalone: true,\n host: {\n class: 'ap-select',\n },\n})\nexport class SelectBaseDirective implements OnInit, AfterViewInit {\n @Input() inlineLabel?: string;\n @Input() symbolId?: string;\n\n private readonly selectComponent = inject(NgSelectComponent);\n private el: ElementRef<HTMLElement> = inject(ElementRef);\n private renderer = inject(Renderer2);\n private viewContainerRef = inject(ViewContainerRef);\n private symbolRegistry = inject(SymbolRegistry);\n\n constructor() {\n this.selectComponent.appendTo = 'body';\n this.selectComponent.searchable = false;\n this.selectComponent.clearable = false;\n this.selectComponent.markFirst = false;\n this.selectComponent.selectableGroupAsModel = false;\n this.selectComponent.tabIndex = 0;\n this.symbolRegistry.registerSymbols([apCheck, apPlus]);\n }\n\n ngOnInit(): void {\n if (this.symbolId) {\n this.addInlineSymbol(this.symbolId);\n }\n if (this.inlineLabel) {\n this.addInlineLabel(this.inlineLabel);\n }\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.optionTemplate) {\n throw new Error('optionTemplate is required for apSelect');\n }\n if (this.selectComponent.groupBy && !this.selectComponent.optgroupTemplate) {\n throw new Error('optgroupTemplate is required for apSelect');\n }\n }\n\n private addInlineSymbol(symbolId: string): void {\n const componentRef = this.viewContainerRef.createComponent(SymbolComponent);\n componentRef.instance.symbolId = symbolId;\n componentRef.location.nativeElement.classList.add('inline-symbol');\n // add class to component\n this.renderer.insertBefore(\n this.el.nativeElement.getElementsByClassName('ng-select-container').item(0),\n componentRef.location.nativeElement,\n this.el.nativeElement.getElementsByClassName('ng-value-container').item(0)\n );\n }\n\n private addInlineLabel(label: string): void {\n const labelElement = this.renderer.createElement('label');\n this.renderer.setProperty(labelElement, 'textContent', label);\n this.renderer.addClass(labelElement, 'inline-label'); // Add appropriate CSS class\n this.renderer.insertBefore(\n this.el.nativeElement.getElementsByClassName('ng-select-container').item(0),\n labelElement,\n this.el.nativeElement.getElementsByClassName('ng-value-container').item(0)\n );\n }\n}\n","import { AfterViewInit, Directive, inject } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { SelectBaseDirective } from './select-base.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ng-select[apSelectMultiple]',\n standalone: true,\n hostDirectives: [\n {\n directive: SelectBaseDirective,\n inputs: ['inlineLabel', 'symbolId'],\n },\n ],\n})\nexport class SelectMultipleDirective implements AfterViewInit {\n private readonly selectComponent = inject(NgSelectComponent);\n\n constructor() {\n this.selectComponent.multiple = true;\n this.selectComponent.closeOnSelect = false;\n this.selectComponent.searchable = true; // small hack to not closed the dropdown panel when clear an item in value container\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.multiLabelTemplate) {\n throw new Error('multiLabelTemplate is required for apSelectMultiple');\n }\n }\n}\n","import { AfterViewInit, Directive, inject } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { SelectBaseDirective } from './select-base.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ng-select[apSelectSingle]',\n standalone: true,\n hostDirectives: [\n {\n directive: SelectBaseDirective,\n inputs: ['inlineLabel', 'symbolId'],\n },\n ],\n})\nexport class SelectSingleDirective implements AfterViewInit {\n private readonly selectComponent = inject(NgSelectComponent);\n\n constructor() {\n this.selectComponent.multiple = false;\n this.selectComponent.closeOnSelect = true;\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.labelTemplate) {\n throw new Error('labelTemplate is required for apSelectSingle');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { DropdownGroupItemComponent } from './dropdown-group-item/dropdown-group-item.component';\nimport { DropdownItemMultipleOneLineComponent } from './dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component';\nimport { DropdownItemMultipleTwoLinesComponent } from './dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component';\nimport { DropdownItemSingleOneLineComponent } from './dropdown-item-single-one-line/dropdown-item-single-one-line.component';\nimport { DropdownItemSingleTwoLinesComponent } from './dropdown-item-single-two-lines/dropdown-item-single-two-lines.component';\nimport { DropdownSearchFormComponent } from './dropdown-search-form/dropdown-search-form.component';\nimport { SelectLabelMultipleComponent } from './select-label-multiple/select-label-multiple.component';\nimport { SelectLabelSingleComponent } from './select-label-single/select-label-single.component';\nimport { SelectMultipleDirective } from './select-multiple.directive';\nimport { SelectSingleDirective } from './select-single.directive';\n\n@NgModule({\n imports: [\n SelectMultipleDirective,\n SelectSingleDirective,\n DropdownItemSingleOneLineComponent,\n DropdownItemSingleTwoLinesComponent,\n DropdownItemMultipleOneLineComponent,\n DropdownItemMultipleTwoLinesComponent,\n SelectLabelSingleComponent,\n SelectLabelMultipleComponent,\n DropdownSearchFormComponent,\n DropdownGroupItemComponent,\n NgSelectModule,\n ],\n exports: [\n SelectMultipleDirective,\n SelectSingleDirective,\n DropdownItemSingleOneLineComponent,\n DropdownItemSingleTwoLinesComponent,\n DropdownItemMultipleOneLineComponent,\n DropdownItemMultipleTwoLinesComponent,\n SelectLabelSingleComponent,\n SelectLabelMultipleComponent,\n DropdownSearchFormComponent,\n DropdownGroupItemComponent,\n NgSelectModule,\n ],\n})\nexport class ApSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.SelectBaseDirective"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-tooltip.mjs","sources":["../../../libs/ui-components/tooltip/src/tooltip.service.ts","../../../libs/ui-components/tooltip/src/tooltip.directive.ts","../../../libs/ui-components/tooltip/src/agorapulse-ui-components-tooltip.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TooltipService {\n static readonly defaultOffset = 12;\n\n static getOuterWidth(el: HTMLElement): number {\n return el.offsetWidth;\n }\n\n static getOuterHeight(el: HTMLElement): number {\n return el.offsetHeight;\n }\n\n static getViewport(): any {\n const win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n\n return { width: w, height: h };\n }\n\n static getWindowScrollLeft(): number {\n const doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n\n static getWindowScrollTop(): number {\n const doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n AfterViewInit,\n DestroyRef,\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n inject,\n input,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport DOMPurify from 'dompurify';\nimport { TooltipService } from './tooltip.service';\n\n@Directive({ selector: '[apTooltip]', standalone: true })\nexport class TooltipDirective implements AfterViewInit, OnDestroy, OnInit {\n private readonly elementRef: ElementRef = inject(ElementRef);\n private readonly zone: NgZone = inject(NgZone);\n private readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n private readonly destroyRef = inject(DestroyRef);\n\n apTooltip = input.required<string | TemplateRef<HTMLElement> | undefined>();\n apTooltipPosition = input<'right' | 'left' | 'top' | 'bottom' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'>('top');\n apTooltipShowDelay = input<number>(80);\n apTooltipHideDelay = input<number>(0);\n apTooltipDuration = input<number>(0);\n apTooltipDisabled = input<boolean>(false);\n apTooltipTruncatedTextOnly = input<boolean>(false);\n apTooltipTemplateContext = input<any>();\n apTooltipVirtualScrollElement = input<CdkVirtualScrollViewport>();\n\n clickListener: (() => void) | undefined = undefined;\n\n container: HTMLElement | undefined = undefined;\n\n hideTimeout: number | undefined;\n\n mouseEnterListener: (() => void) | undefined = undefined;\n\n mouseLeaveListener: (() => void) | undefined = undefined;\n\n nativeElement: HTMLElement = this.elementRef.nativeElement;\n\n showTimeout: number | undefined;\n\n tooltipText: HTMLElement | undefined;\n\n ngOnInit(): void {\n const apTooltipVirtualScrollElement = this.apTooltipVirtualScrollElement();\n if (apTooltipVirtualScrollElement) {\n apTooltipVirtualScrollElement.renderedRangeStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(range => {\n if (range.start === 0 && range.end === 0) {\n this.deactivate();\n }\n });\n }\n }\n\n ngAfterViewInit(): void {\n this.zone.runOutsideAngular(() => {\n this.mouseEnterListener = this.onMouseEnter.bind(this);\n this.mouseLeaveListener = this.onMouseLeave.bind(this);\n this.clickListener = this.onInputClick.bind(this);\n this.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);\n this.nativeElement.addEventListener('click', this.clickListener);\n this.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);\n });\n }\n\n ngOnDestroy(): void {\n if (this.container) {\n this.deactivate();\n }\n if (this.mouseEnterListener) {\n this.nativeElement.removeEventListener('mouseenter', this.mouseEnterListener);\n }\n if (this.clickListener) {\n this.nativeElement.removeEventListener('click', this.clickListener);\n }\n if (this.mouseLeaveListener) {\n this.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListener);\n }\n this.mouseEnterListener = undefined;\n this.mouseLeaveListener = undefined;\n this.clickListener = undefined;\n }\n\n onMouseEnter(): void {\n if (!this.container) {\n this.activate();\n }\n }\n\n onMouseLeave(): void {\n this.deactivate();\n }\n\n onInputClick(): void {\n this.deactivate();\n }\n\n activate(): void {\n this.clearHideTimeout();\n if (this.apTooltipShowDelay()) {\n this.showTimeout = window.setTimeout(() => {\n this.show();\n }, this.apTooltipShowDelay());\n } else {\n this.show();\n }\n\n if (this.apTooltipDuration()) {\n const duration = this.apTooltipShowDelay() ? this.apTooltipDuration() + this.apTooltipShowDelay() : this.apTooltipDuration();\n this.hideTimeout = window.setTimeout(() => {\n this.remove();\n }, duration);\n }\n }\n\n deactivate(): void {\n this.clearShowTimeout();\n if (this.apTooltipHideDelay()) {\n this.clearHideTimeout();\n this.hideTimeout = window.setTimeout(() => {\n this.remove();\n }, this.apTooltipHideDelay());\n } else {\n this.remove();\n }\n }\n\n show(): void {\n if (this.apTooltipTruncatedTextOnly() && this.elementRef.nativeElement.scrollWidth === this.elementRef.nativeElement.clientWidth) {\n return;\n }\n if (!this.apTooltip() || this.apTooltipDisabled()) {\n return;\n }\n\n this.create();\n this.align();\n }\n\n create(): void {\n if (this.container) {\n this.clearHideTimeout();\n this.remove();\n }\n\n this.container = document.createElement('div');\n this.container.setAttribute('role', 'tooltip');\n const contentContainer = document.createElement('div');\n contentContainer.classList.add('ap-content-container');\n\n const svgNamespace = 'http://www.w3.org/2000/svg';\n const arrowSvg = document.createElementNS(svgNamespace, 'svg');\n arrowSvg.classList.add('ap-tooltip-arrow');\n arrowSvg.setAttribute('xmlns', svgNamespace);\n arrowSvg.setAttribute('viewBox', '0 0 16 8');\n arrowSvg.setAttribute('fill', 'none');\n const path = document.createElementNS(svgNamespace, 'path');\n path.setAttribute('d', 'M6.68299 1.15238C7.43705 0.492586 8.56296 0.492588 9.31701 1.15238L16 7L0 7L6.68299 1.15238Z');\n arrowSvg.appendChild(path);\n\n this.tooltipText = document.createElement('div');\n this.tooltipText.className = 'ap-tooltip-text';\n this.updateText();\n\n contentContainer.appendChild(this.tooltipText);\n contentContainer.appendChild(arrowSvg);\n this.container.appendChild(contentContainer);\n document.body.appendChild(this.container);\n this.container.classList.add('ap-tooltip');\n\n if (this.apTooltip() instanceof TemplateRef) {\n this.container.classList.add('ap-tooltip-custom-template');\n }\n this.setCssVariables();\n }\n\n align(): void {\n switch (this.apTooltipPosition()) {\n case 'top-left':\n this.alignTopLeft();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n case 'top-right':\n this.alignTopRight();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n case 'top':\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom':\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom-left':\n this.alignBottomLeft();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom-right':\n this.alignBottomRight();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'left':\n this.alignLeft();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n\n case 'right':\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n }\n }\n\n alignRight(): void {\n this.preAlign('right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left + TooltipService.getOuterWidth(this.nativeElement) + TooltipService.defaultOffset;\n const top =\n hostOffset.top + (TooltipService.getOuterHeight(this.nativeElement) - TooltipService.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignLeft(): void {\n this.preAlign('left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left - TooltipService.getOuterWidth(this.container) - TooltipService.defaultOffset;\n const top =\n hostOffset.top + (TooltipService.getOuterHeight(this.nativeElement) - TooltipService.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTop(): void {\n this.preAlign('top');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container)) / 2;\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTopLeft(): void {\n this.preAlign('top-left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left;\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTopRight(): void {\n this.preAlign('top-right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left + TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container);\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottom(): void {\n this.preAlign('bottom');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container)) / 2;\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottomLeft(): void {\n this.preAlign('bottom-left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left;\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottomRight(): void {\n this.preAlign('bottom-right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container));\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n preAlign(position: string) {\n if (this.container) {\n this.container.style.left = -999 + 'px';\n this.container.style.top = -999 + 'px';\n\n const defaultClassName = 'ap-tooltip-' + position;\n this.container.classList.add(defaultClassName);\n }\n }\n\n getHostOffset() {\n const offset = this.nativeElement.getBoundingClientRect();\n const targetLeft = offset.left + TooltipService.getWindowScrollLeft();\n const targetTop = offset.top + TooltipService.getWindowScrollTop();\n\n return { left: targetLeft, top: targetTop };\n }\n\n isOutOfBounds(): boolean {\n if (this.container) {\n const offset = this.container.getBoundingClientRect();\n const targetTop = offset.top;\n const targetLeft = offset.left;\n const width = TooltipService.getOuterWidth(this.container);\n const height = TooltipService.getOuterHeight(this.container);\n const viewport = TooltipService.getViewport();\n\n return targetLeft + width > viewport.width || targetLeft < 0 || targetTop < 0 || targetTop + height > viewport.height;\n } else {\n return false;\n }\n }\n\n remove(): void {\n if (this.container && this.container.parentElement) {\n document.body.removeChild(this.container);\n }\n\n this.clearTimeouts();\n this.container = undefined;\n }\n\n clearShowTimeout() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = undefined;\n }\n }\n\n clearHideTimeout() {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = undefined;\n }\n }\n\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n }\n\n updateText() {\n const apTooltip = this.apTooltip();\n if (apTooltip instanceof TemplateRef) {\n const embeddedViewRef = this.viewContainerRef.createEmbeddedView(apTooltip);\n embeddedViewRef.context = this.apTooltipTemplateContext();\n embeddedViewRef.detectChanges();\n embeddedViewRef.rootNodes.forEach(node => this.tooltipText?.appendChild(node));\n } else if (this.tooltipText) {\n this.tooltipText.innerHTML = apTooltip ? DOMPurify.sanitize(apTooltip) : '';\n }\n }\n\n setCssVariables(): void {\n if (this.container) {\n this.container.style.setProperty('--ap-tooltip-height', this.container.offsetHeight + 'px');\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-tooltip.mjs","sources":["../../../libs/ui-components/tooltip/src/tooltip.service.ts","../../../libs/ui-components/tooltip/src/tooltip.directive.ts","../../../libs/ui-components/tooltip/src/agorapulse-ui-components-tooltip.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TooltipService {\n static readonly defaultOffset = 12;\n\n static getOuterWidth(el: HTMLElement): number {\n return el.offsetWidth;\n }\n\n static getOuterHeight(el: HTMLElement): number {\n return el.offsetHeight;\n }\n\n static getViewport(): any {\n const win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n\n return { width: w, height: h };\n }\n\n static getWindowScrollLeft(): number {\n const doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n\n static getWindowScrollTop(): number {\n const doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n AfterViewInit,\n DestroyRef,\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n inject,\n input,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport DOMPurify from 'dompurify';\nimport { TooltipService } from './tooltip.service';\n\n@Directive({ selector: '[apTooltip]', standalone: true })\nexport class TooltipDirective implements AfterViewInit, OnDestroy, OnInit {\n private readonly elementRef: ElementRef = inject(ElementRef);\n private readonly zone: NgZone = inject(NgZone);\n private readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n private readonly destroyRef = inject(DestroyRef);\n\n apTooltip = input.required<string | TemplateRef<HTMLElement> | undefined | null>();\n apTooltipPosition = input<'right' | 'left' | 'top' | 'bottom' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'>('top');\n apTooltipShowDelay = input<number>(80);\n apTooltipHideDelay = input<number>(0);\n apTooltipDuration = input<number>(0);\n apTooltipDisabled = input<boolean>(false);\n apTooltipTruncatedTextOnly = input<boolean>(false);\n apTooltipTemplateContext = input<any>();\n apTooltipVirtualScrollElement = input<CdkVirtualScrollViewport>();\n\n clickListener: (() => void) | undefined = undefined;\n\n container: HTMLElement | undefined = undefined;\n\n hideTimeout: number | undefined;\n\n mouseEnterListener: (() => void) | undefined = undefined;\n\n mouseLeaveListener: (() => void) | undefined = undefined;\n\n nativeElement: HTMLElement = this.elementRef.nativeElement;\n\n showTimeout: number | undefined;\n\n tooltipText: HTMLElement | undefined;\n\n ngOnInit(): void {\n const apTooltipVirtualScrollElement = this.apTooltipVirtualScrollElement();\n if (apTooltipVirtualScrollElement) {\n apTooltipVirtualScrollElement.renderedRangeStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(range => {\n if (range.start === 0 && range.end === 0) {\n this.deactivate();\n }\n });\n }\n }\n\n ngAfterViewInit(): void {\n this.zone.runOutsideAngular(() => {\n this.mouseEnterListener = this.onMouseEnter.bind(this);\n this.mouseLeaveListener = this.onMouseLeave.bind(this);\n this.clickListener = this.onInputClick.bind(this);\n this.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);\n this.nativeElement.addEventListener('click', this.clickListener);\n this.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);\n });\n }\n\n ngOnDestroy(): void {\n if (this.container) {\n this.deactivate();\n }\n if (this.mouseEnterListener) {\n this.nativeElement.removeEventListener('mouseenter', this.mouseEnterListener);\n }\n if (this.clickListener) {\n this.nativeElement.removeEventListener('click', this.clickListener);\n }\n if (this.mouseLeaveListener) {\n this.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListener);\n }\n this.mouseEnterListener = undefined;\n this.mouseLeaveListener = undefined;\n this.clickListener = undefined;\n }\n\n onMouseEnter(): void {\n if (!this.container) {\n this.activate();\n }\n }\n\n onMouseLeave(): void {\n this.deactivate();\n }\n\n onInputClick(): void {\n this.deactivate();\n }\n\n activate(): void {\n this.clearHideTimeout();\n if (this.apTooltipShowDelay()) {\n this.showTimeout = window.setTimeout(() => {\n this.show();\n }, this.apTooltipShowDelay());\n } else {\n this.show();\n }\n\n if (this.apTooltipDuration()) {\n const duration = this.apTooltipShowDelay() ? this.apTooltipDuration() + this.apTooltipShowDelay() : this.apTooltipDuration();\n this.hideTimeout = window.setTimeout(() => {\n this.remove();\n }, duration);\n }\n }\n\n deactivate(): void {\n this.clearShowTimeout();\n if (this.apTooltipHideDelay()) {\n this.clearHideTimeout();\n this.hideTimeout = window.setTimeout(() => {\n this.remove();\n }, this.apTooltipHideDelay());\n } else {\n this.remove();\n }\n }\n\n show(): void {\n if (this.apTooltipTruncatedTextOnly() && this.elementRef.nativeElement.scrollWidth === this.elementRef.nativeElement.clientWidth) {\n return;\n }\n if (!this.apTooltip() || this.apTooltipDisabled()) {\n return;\n }\n\n this.create();\n this.align();\n }\n\n create(): void {\n if (this.container) {\n this.clearHideTimeout();\n this.remove();\n }\n\n this.container = document.createElement('div');\n this.container.setAttribute('role', 'tooltip');\n const contentContainer = document.createElement('div');\n contentContainer.classList.add('ap-content-container');\n\n const svgNamespace = 'http://www.w3.org/2000/svg';\n const arrowSvg = document.createElementNS(svgNamespace, 'svg');\n arrowSvg.classList.add('ap-tooltip-arrow');\n arrowSvg.setAttribute('xmlns', svgNamespace);\n arrowSvg.setAttribute('viewBox', '0 0 16 8');\n arrowSvg.setAttribute('fill', 'none');\n const path = document.createElementNS(svgNamespace, 'path');\n path.setAttribute('d', 'M6.68299 1.15238C7.43705 0.492586 8.56296 0.492588 9.31701 1.15238L16 7L0 7L6.68299 1.15238Z');\n arrowSvg.appendChild(path);\n\n this.tooltipText = document.createElement('div');\n this.tooltipText.className = 'ap-tooltip-text';\n this.updateText();\n\n contentContainer.appendChild(this.tooltipText);\n contentContainer.appendChild(arrowSvg);\n this.container.appendChild(contentContainer);\n document.body.appendChild(this.container);\n this.container.classList.add('ap-tooltip');\n\n if (this.apTooltip() instanceof TemplateRef) {\n this.container.classList.add('ap-tooltip-custom-template');\n }\n this.setCssVariables();\n }\n\n align(): void {\n switch (this.apTooltipPosition()) {\n case 'top-left':\n this.alignTopLeft();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n case 'top-right':\n this.alignTopRight();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n case 'top':\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom':\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom-left':\n this.alignBottomLeft();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom-right':\n this.alignBottomRight();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'left':\n this.alignLeft();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n\n case 'right':\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n }\n }\n\n alignRight(): void {\n this.preAlign('right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left + TooltipService.getOuterWidth(this.nativeElement) + TooltipService.defaultOffset;\n const top =\n hostOffset.top + (TooltipService.getOuterHeight(this.nativeElement) - TooltipService.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignLeft(): void {\n this.preAlign('left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left - TooltipService.getOuterWidth(this.container) - TooltipService.defaultOffset;\n const top =\n hostOffset.top + (TooltipService.getOuterHeight(this.nativeElement) - TooltipService.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTop(): void {\n this.preAlign('top');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container)) / 2;\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTopLeft(): void {\n this.preAlign('top-left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left;\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTopRight(): void {\n this.preAlign('top-right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left + TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container);\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottom(): void {\n this.preAlign('bottom');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container)) / 2;\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottomLeft(): void {\n this.preAlign('bottom-left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left;\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottomRight(): void {\n this.preAlign('bottom-right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container));\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n preAlign(position: string) {\n if (this.container) {\n this.container.style.left = -999 + 'px';\n this.container.style.top = -999 + 'px';\n\n const defaultClassName = 'ap-tooltip-' + position;\n this.container.classList.add(defaultClassName);\n }\n }\n\n getHostOffset() {\n const offset = this.nativeElement.getBoundingClientRect();\n const targetLeft = offset.left + TooltipService.getWindowScrollLeft();\n const targetTop = offset.top + TooltipService.getWindowScrollTop();\n\n return { left: targetLeft, top: targetTop };\n }\n\n isOutOfBounds(): boolean {\n if (this.container) {\n const offset = this.container.getBoundingClientRect();\n const targetTop = offset.top;\n const targetLeft = offset.left;\n const width = TooltipService.getOuterWidth(this.container);\n const height = TooltipService.getOuterHeight(this.container);\n const viewport = TooltipService.getViewport();\n\n return targetLeft + width > viewport.width || targetLeft < 0 || targetTop < 0 || targetTop + height > viewport.height;\n } else {\n return false;\n }\n }\n\n remove(): void {\n if (this.container && this.container.parentElement) {\n document.body.removeChild(this.container);\n }\n\n this.clearTimeouts();\n this.container = undefined;\n }\n\n clearShowTimeout() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = undefined;\n }\n }\n\n clearHideTimeout() {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = undefined;\n }\n }\n\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n }\n\n updateText() {\n const apTooltip = this.apTooltip();\n if (apTooltip instanceof TemplateRef) {\n const embeddedViewRef = this.viewContainerRef.createEmbeddedView(apTooltip);\n embeddedViewRef.context = this.apTooltipTemplateContext();\n embeddedViewRef.detectChanges();\n embeddedViewRef.rootNodes.forEach(node => this.tooltipText?.appendChild(node));\n } else if (this.tooltipText) {\n this.tooltipText.innerHTML = apTooltip ? DOMPurify.sanitize(apTooltip) : '';\n }\n }\n\n setCssVariables(): void {\n if (this.container) {\n this.container.style.setProperty('--ap-tooltip-height', this.container.offsetHeight + 'px');\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agorapulse/ui-components",
|
|
3
3
|
"description": "Agorapulse UI Components Library",
|
|
4
|
-
"version": "17.4.
|
|
4
|
+
"version": "17.4.2",
|
|
5
5
|
"author": "Benoit Hediard",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -43,12 +43,6 @@
|
|
|
43
43
|
"esm": "./esm2022/add-comment/agorapulse-ui-components-add-comment.mjs",
|
|
44
44
|
"default": "./fesm2022/agorapulse-ui-components-add-comment.mjs"
|
|
45
45
|
},
|
|
46
|
-
"./autocomplete": {
|
|
47
|
-
"types": "./autocomplete/index.d.ts",
|
|
48
|
-
"esm2022": "./esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs",
|
|
49
|
-
"esm": "./esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs",
|
|
50
|
-
"default": "./fesm2022/agorapulse-ui-components-autocomplete.mjs"
|
|
51
|
-
},
|
|
52
46
|
"./avatar": {
|
|
53
47
|
"types": "./avatar/index.d.ts",
|
|
54
48
|
"esm2022": "./esm2022/avatar/agorapulse-ui-components-avatar.mjs",
|
|
@@ -61,11 +55,11 @@
|
|
|
61
55
|
"esm": "./esm2022/badge/agorapulse-ui-components-badge.mjs",
|
|
62
56
|
"default": "./fesm2022/agorapulse-ui-components-badge.mjs"
|
|
63
57
|
},
|
|
64
|
-
"./
|
|
65
|
-
"types": "./
|
|
66
|
-
"esm2022": "./esm2022/
|
|
67
|
-
"esm": "./esm2022/
|
|
68
|
-
"default": "./fesm2022/agorapulse-ui-components-
|
|
58
|
+
"./autocomplete": {
|
|
59
|
+
"types": "./autocomplete/index.d.ts",
|
|
60
|
+
"esm2022": "./esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs",
|
|
61
|
+
"esm": "./esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs",
|
|
62
|
+
"default": "./fesm2022/agorapulse-ui-components-autocomplete.mjs"
|
|
69
63
|
},
|
|
70
64
|
"./checkbox": {
|
|
71
65
|
"types": "./checkbox/index.d.ts",
|
|
@@ -73,6 +67,12 @@
|
|
|
73
67
|
"esm": "./esm2022/checkbox/agorapulse-ui-components-checkbox.mjs",
|
|
74
68
|
"default": "./fesm2022/agorapulse-ui-components-checkbox.mjs"
|
|
75
69
|
},
|
|
70
|
+
"./button": {
|
|
71
|
+
"types": "./button/index.d.ts",
|
|
72
|
+
"esm2022": "./esm2022/button/agorapulse-ui-components-button.mjs",
|
|
73
|
+
"esm": "./esm2022/button/agorapulse-ui-components-button.mjs",
|
|
74
|
+
"default": "./fesm2022/agorapulse-ui-components-button.mjs"
|
|
75
|
+
},
|
|
76
76
|
"./confirm-modal": {
|
|
77
77
|
"types": "./confirm-modal/index.d.ts",
|
|
78
78
|
"esm2022": "./esm2022/confirm-modal/agorapulse-ui-components-confirm-modal.mjs",
|
|
@@ -133,6 +133,12 @@
|
|
|
133
133
|
"esm": "./esm2022/input/agorapulse-ui-components-input.mjs",
|
|
134
134
|
"default": "./fesm2022/agorapulse-ui-components-input.mjs"
|
|
135
135
|
},
|
|
136
|
+
"./input-group": {
|
|
137
|
+
"types": "./input-group/index.d.ts",
|
|
138
|
+
"esm2022": "./esm2022/input-group/agorapulse-ui-components-input-group.mjs",
|
|
139
|
+
"esm": "./esm2022/input-group/agorapulse-ui-components-input-group.mjs",
|
|
140
|
+
"default": "./fesm2022/agorapulse-ui-components-input-group.mjs"
|
|
141
|
+
},
|
|
136
142
|
"./input-search": {
|
|
137
143
|
"types": "./input-search/index.d.ts",
|
|
138
144
|
"esm2022": "./esm2022/input-search/agorapulse-ui-components-input-search.mjs",
|
|
@@ -145,12 +151,6 @@
|
|
|
145
151
|
"esm": "./esm2022/labels/agorapulse-ui-components-labels.mjs",
|
|
146
152
|
"default": "./fesm2022/agorapulse-ui-components-labels.mjs"
|
|
147
153
|
},
|
|
148
|
-
"./input-group": {
|
|
149
|
-
"types": "./input-group/index.d.ts",
|
|
150
|
-
"esm2022": "./esm2022/input-group/agorapulse-ui-components-input-group.mjs",
|
|
151
|
-
"esm": "./esm2022/input-group/agorapulse-ui-components-input-group.mjs",
|
|
152
|
-
"default": "./fesm2022/agorapulse-ui-components-input-group.mjs"
|
|
153
|
-
},
|
|
154
154
|
"./labels-selector": {
|
|
155
155
|
"types": "./labels-selector/index.d.ts",
|
|
156
156
|
"esm2022": "./esm2022/labels-selector/agorapulse-ui-components-labels-selector.mjs",
|
|
@@ -229,18 +229,18 @@
|
|
|
229
229
|
"esm": "./esm2022/slide-toggle/agorapulse-ui-components-slide-toggle.mjs",
|
|
230
230
|
"default": "./fesm2022/agorapulse-ui-components-slide-toggle.mjs"
|
|
231
231
|
},
|
|
232
|
-
"./social-button": {
|
|
233
|
-
"types": "./social-button/index.d.ts",
|
|
234
|
-
"esm2022": "./esm2022/social-button/agorapulse-ui-components-social-button.mjs",
|
|
235
|
-
"esm": "./esm2022/social-button/agorapulse-ui-components-social-button.mjs",
|
|
236
|
-
"default": "./fesm2022/agorapulse-ui-components-social-button.mjs"
|
|
237
|
-
},
|
|
238
232
|
"./snackbars-thread": {
|
|
239
233
|
"types": "./snackbars-thread/index.d.ts",
|
|
240
234
|
"esm2022": "./esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs",
|
|
241
235
|
"esm": "./esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs",
|
|
242
236
|
"default": "./fesm2022/agorapulse-ui-components-snackbars-thread.mjs"
|
|
243
237
|
},
|
|
238
|
+
"./social-button": {
|
|
239
|
+
"types": "./social-button/index.d.ts",
|
|
240
|
+
"esm2022": "./esm2022/social-button/agorapulse-ui-components-social-button.mjs",
|
|
241
|
+
"esm": "./esm2022/social-button/agorapulse-ui-components-social-button.mjs",
|
|
242
|
+
"default": "./fesm2022/agorapulse-ui-components-social-button.mjs"
|
|
243
|
+
},
|
|
244
244
|
"./split-button": {
|
|
245
245
|
"types": "./split-button/index.d.ts",
|
|
246
246
|
"esm2022": "./esm2022/split-button/agorapulse-ui-components-split-button.mjs",
|
|
@@ -6,7 +6,7 @@ export declare class TooltipDirective implements AfterViewInit, OnDestroy, OnIni
|
|
|
6
6
|
private readonly zone;
|
|
7
7
|
private readonly viewContainerRef;
|
|
8
8
|
private readonly destroyRef;
|
|
9
|
-
apTooltip: import("@angular/core").InputSignal<string | TemplateRef<HTMLElement> | undefined>;
|
|
9
|
+
apTooltip: import("@angular/core").InputSignal<string | TemplateRef<HTMLElement> | null | undefined>;
|
|
10
10
|
apTooltipPosition: import("@angular/core").InputSignal<"left" | "right" | "top" | "bottom" | "bottom-left" | "bottom-right" | "top-left" | "top-right">;
|
|
11
11
|
apTooltipShowDelay: import("@angular/core").InputSignal<number>;
|
|
12
12
|
apTooltipHideDelay: import("@angular/core").InputSignal<number>;
|
|
Binary file
|