@alauda/ui 7.4.1-beta.2 → 7.4.1-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/drawer/component/internal/internal.component.d.ts +4 -2
  2. package/esm2022/autocomplete/autocomplete.component.mjs +3 -3
  3. package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +3 -2
  4. package/esm2022/date-picker/range-picker/range-picker.component.mjs +3 -3
  5. package/esm2022/dialog/dialog.component.mjs +3 -3
  6. package/esm2022/drawer/component/drawer.component.mjs +2 -1
  7. package/esm2022/drawer/component/internal/internal.component.mjs +10 -4
  8. package/esm2022/drawer/drawer.service.mjs +3 -3
  9. package/esm2022/dropdown/menu/menu.component.mjs +2 -2
  10. package/esm2022/index.mjs +1 -2
  11. package/esm2022/input/tags-input/tags-input.component.mjs +3 -3
  12. package/esm2022/notification/notification.component.mjs +3 -3
  13. package/esm2022/radio/radio-button/radio-button.component.mjs +3 -3
  14. package/esm2022/radio/radio-group/radio-group.component.mjs +2 -2
  15. package/esm2022/select/multi-select/multi-select.component.mjs +3 -3
  16. package/esm2022/select/select.component.mjs +3 -3
  17. package/esm2022/table/table.component.mjs +3 -3
  18. package/esm2022/tabs/tab-header.component.mjs +12 -23
  19. package/esm2022/time-picker/panel/panel.component.mjs +3 -3
  20. package/esm2022/tooltip/tooltip.component.mjs +5 -6
  21. package/esm2022/tooltip/tooltip.types.mjs +2 -1
  22. package/esm2022/tree-select/tree-select.component.mjs +3 -3
  23. package/fesm2022/alauda-ui.mjs +1737 -2082
  24. package/fesm2022/alauda-ui.mjs.map +1 -1
  25. package/index.d.ts +0 -1
  26. package/package.json +1 -1
  27. package/tabs/tab-header.component.d.ts +1 -4
  28. package/theme/_mixin.scss +7 -3
  29. package/tooltip/tooltip.types.d.ts +2 -1
  30. package/cascader/cascader.component.d.ts +0 -64
  31. package/cascader/cascader.module.d.ts +0 -10
  32. package/cascader/cascader.types.d.ts +0 -11
  33. package/cascader/index.d.ts +0 -4
  34. package/cascader/option/option.component.d.ts +0 -16
  35. package/cascader/utils.d.ts +0 -6
  36. package/esm2022/cascader/cascader.component.mjs +0 -242
  37. package/esm2022/cascader/cascader.module.mjs +0 -28
  38. package/esm2022/cascader/cascader.types.mjs +0 -2
  39. package/esm2022/cascader/index.mjs +0 -5
  40. package/esm2022/cascader/option/option.component.mjs +0 -63
  41. package/esm2022/cascader/utils.mjs +0 -36
@@ -1,63 +0,0 @@
1
- import { NgIf, NgTemplateOutlet, NgFor, AsyncPipe } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation, computed, signal, } from '@angular/core';
3
- import { IconComponent } from '../../icon';
4
- import { buildBem } from '../../internal/utils';
5
- import { isParentOption } from '../utils';
6
- import * as i0 from "@angular/core";
7
- export class CascaderOptionComponent {
8
- bem = buildBem('aui-cascader-option');
9
- get option() {
10
- return this.$$option();
11
- }
12
- set option(val) {
13
- this.$$option.set(val);
14
- }
15
- activated = false;
16
- className = this.bem.block();
17
- get isDisabled() {
18
- return this.option?.disabled;
19
- }
20
- get isActivated() {
21
- return this.activated;
22
- }
23
- $$option = signal(null);
24
- $isParent = computed(() => isParentOption(this.$$option()));
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CascaderOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: CascaderOptionComponent, isStandalone: true, selector: "aui-cascader-option", inputs: { option: "option", activated: "activated" }, host: { properties: { "class": "this.className", "class.isDisabled": "this.isDisabled", "class.isActivated": "this.isActivated" } }, ngImport: i0, template: `
27
- <div [class]="bem.element('label')">
28
- {{ option.label }}
29
- </div>
30
- <aui-icon
31
- *ngIf="$isParent()"
32
- [class]="bem.element('icon')"
33
- [icon]="option.loading ? 'spinner' : 'angle_right'"
34
- ></aui-icon>
35
- `, isInline: true, styles: [".aui-cascader-option{cursor:pointer;padding:4px 12px;display:flex;justify-content:space-between;align-items:center}.aui-cascader-option__icon{margin-left:24px;display:flex;align-items:center}.aui-cascader-option__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-cascader-option.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-cascader-option:hover,.aui-cascader-option.isActivated{background-color:rgb(var(--aui-color-p-6))}.aui-cascader-option.isActivated{color:rgb(var(--aui-color-primary))}.aui-cascader-option.isActivated .aui-cascader-option__icon{color:rgb(var(--aui-color-n-1))}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CascaderOptionComponent, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'aui-cascader-option', template: `
40
- <div [class]="bem.element('label')">
41
- {{ option.label }}
42
- </div>
43
- <aui-icon
44
- *ngIf="$isParent()"
45
- [class]="bem.element('icon')"
46
- [icon]="option.loading ? 'spinner' : 'angle_right'"
47
- ></aui-icon>
48
- `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, standalone: true, imports: [NgIf, NgTemplateOutlet, NgFor, AsyncPipe, IconComponent], styles: [".aui-cascader-option{cursor:pointer;padding:4px 12px;display:flex;justify-content:space-between;align-items:center}.aui-cascader-option__icon{margin-left:24px;display:flex;align-items:center}.aui-cascader-option__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-cascader-option.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-cascader-option:hover,.aui-cascader-option.isActivated{background-color:rgb(var(--aui-color-p-6))}.aui-cascader-option.isActivated{color:rgb(var(--aui-color-primary))}.aui-cascader-option.isActivated .aui-cascader-option__icon{color:rgb(var(--aui-color-n-1))}\n"] }]
49
- }], propDecorators: { option: [{
50
- type: Input
51
- }], activated: [{
52
- type: Input
53
- }], className: [{
54
- type: HostBinding,
55
- args: ['class']
56
- }], isDisabled: [{
57
- type: HostBinding,
58
- args: ['class.isDisabled']
59
- }], isActivated: [{
60
- type: HostBinding,
61
- args: ['class.isActivated']
62
- }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYXNjYWRlci9vcHRpb24vb3B0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFPLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBcUIxQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLEdBQUcsR0FBUSxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUUzQyxJQUNJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsR0FBRztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFUSxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRzNCLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRTdCLElBQXFDLFVBQVU7UUFDN0MsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBc0MsV0FBVztRQUMvQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVEsR0FBRyxNQUFNLENBQW9CLElBQUksQ0FBQyxDQUFDO0lBRTNDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7dUdBM0JqRCx1QkFBdUI7MkZBQXZCLHVCQUF1QiwwUUFqQnhCOzs7Ozs7Ozs7R0FTVCw0ckJBTVMsSUFBSSw2RkFBc0MsYUFBYTs7MkZBRXRELHVCQUF1QjtrQkFuQm5DLFNBQVM7K0JBQ0UscUJBQXFCLFlBQ3JCOzs7Ozs7Ozs7R0FTVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxjQUNkLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQzs4QkFNOUQsTUFBTTtzQkFEVCxLQUFLO2dCQVNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR04sU0FBUztzQkFEUixXQUFXO3VCQUFDLE9BQU87Z0JBR2lCLFVBQVU7c0JBQTlDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUlPLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmdGb3IsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24nO1xuaW1wb3J0IHsgQmVtLCBidWlsZEJlbSB9IGZyb20gJy4uLy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7IENhc2NhZGVyT3B0aW9uIH0gZnJvbSAnLi4vY2FzY2FkZXIudHlwZXMnO1xuaW1wb3J0IHsgaXNQYXJlbnRPcHRpb24gfSBmcm9tICcuLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1jYXNjYWRlci1vcHRpb24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdsYWJlbCcpXCI+XG4gICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICA8L2Rpdj5cbiAgICA8YXVpLWljb25cbiAgICAgICpuZ0lmPVwiJGlzUGFyZW50KClcIlxuICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdpY29uJylcIlxuICAgICAgW2ljb25dPVwib3B0aW9uLmxvYWRpbmcgPyAnc3Bpbm5lcicgOiAnYW5nbGVfcmlnaHQnXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJ29wdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0ZvciwgQXN5bmNQaXBlLCBJY29uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FzY2FkZXJPcHRpb25Db21wb25lbnQ8VD4ge1xuICBiZW06IEJlbSA9IGJ1aWxkQmVtKCdhdWktY2FzY2FkZXItb3B0aW9uJyk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG9wdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy4kJG9wdGlvbigpO1xuICB9XG5cbiAgc2V0IG9wdGlvbih2YWwpIHtcbiAgICB0aGlzLiQkb3B0aW9uLnNldCh2YWwpO1xuICB9XG5cbiAgQElucHV0KCkgYWN0aXZhdGVkID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGNsYXNzTmFtZSA9IHRoaXMuYmVtLmJsb2NrKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pc0Rpc2FibGVkJykgZ2V0IGlzRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uPy5kaXNhYmxlZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXNBY3RpdmF0ZWQnKSBnZXQgaXNBY3RpdmF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVkO1xuICB9XG5cbiAgJCRvcHRpb24gPSBzaWduYWw8Q2FzY2FkZXJPcHRpb248VD4+KG51bGwpO1xuXG4gICRpc1BhcmVudCA9IGNvbXB1dGVkKCgpID0+IGlzUGFyZW50T3B0aW9uKHRoaXMuJCRvcHRpb24oKSkpO1xufVxuIl19
@@ -1,36 +0,0 @@
1
- export function isParentOption(option) {
2
- return ((option.children && !!option.children.length) || option.isLeaf === false);
3
- }
4
- export function dropRestItems(arr, index) {
5
- return arr.slice(0, index + 1);
6
- }
7
- export function searchCascadeOptions(root, filterString) {
8
- const results = [];
9
- function search(node, path = []) {
10
- const newPath = path.concat(node);
11
- const pathIncludesFilterString = newPath.some(p => p.label.includes(filterString));
12
- if (!isParentOption(node)) {
13
- if (pathIncludesFilterString) {
14
- const result = {
15
- label: newPath.map(p => p.label).join(' / '),
16
- value: newPath.map(p => p.value),
17
- path: newPath,
18
- };
19
- results.push(result);
20
- }
21
- return;
22
- }
23
- node.children.forEach(child => {
24
- search(child, newPath);
25
- });
26
- }
27
- root.forEach(node => search(node));
28
- return results;
29
- }
30
- export function trackByOptions(_, options) {
31
- return options.map(option => option.value).join(',');
32
- }
33
- export function trackByOption(_, option) {
34
- return [option.value, option.children?.map(o => o.value).join(',')].join('~');
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2FzY2FkZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGNBQWMsQ0FBSSxNQUF5QjtJQUN6RCxPQUFPLENBQ0wsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUN6RSxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUksR0FBUSxFQUFFLEtBQWE7SUFDdEQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsSUFBOEIsRUFDOUIsWUFBb0I7SUFFcEIsTUFBTSxPQUFPLEdBQTBDLEVBQUUsQ0FBQztJQUUxRCxTQUFTLE1BQU0sQ0FDYixJQUF1QixFQUN2QixPQUFpQyxFQUFFO1FBRW5DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEMsTUFBTSx3QkFBd0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2hELENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUMvQixDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLHdCQUF3QixFQUFFO2dCQUM1QixNQUFNLE1BQU0sR0FBRztvQkFDYixLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUM1QyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ2hDLElBQUksRUFBRSxPQUFPO2lCQUNkLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0QjtZQUNELE9BQU87U0FDUjtRQUdELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixDQUFTLEVBQ1QsT0FBa0U7SUFFbEUsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBSSxDQUFTLEVBQUUsTUFBeUI7SUFDbkUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYXNjYWRlck9wdGlvbiwgU2VhcmNoZWRDYXNjYWRlck9wdGlvbiB9IGZyb20gJy4vY2FzY2FkZXIudHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNQYXJlbnRPcHRpb248VD4ob3B0aW9uOiBDYXNjYWRlck9wdGlvbjxUPik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIChvcHRpb24uY2hpbGRyZW4gJiYgISFvcHRpb24uY2hpbGRyZW4ubGVuZ3RoKSB8fCBvcHRpb24uaXNMZWFmID09PSBmYWxzZVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZHJvcFJlc3RJdGVtczxUPihhcnI6IFRbXSwgaW5kZXg6IG51bWJlcikge1xuICByZXR1cm4gYXJyLnNsaWNlKDAsIGluZGV4ICsgMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hDYXNjYWRlT3B0aW9uczxUPihcbiAgcm9vdDogQXJyYXk8Q2FzY2FkZXJPcHRpb248VD4+LFxuICBmaWx0ZXJTdHJpbmc6IHN0cmluZyxcbikge1xuICBjb25zdCByZXN1bHRzOiBBcnJheTxTZWFyY2hlZENhc2NhZGVyT3B0aW9uPFQsIFRbXT4+ID0gW107XG5cbiAgZnVuY3Rpb24gc2VhcmNoKFxuICAgIG5vZGU6IENhc2NhZGVyT3B0aW9uPFQ+LFxuICAgIHBhdGg6IEFycmF5PENhc2NhZGVyT3B0aW9uPFQ+PiA9IFtdLFxuICApIHtcbiAgICBjb25zdCBuZXdQYXRoID0gcGF0aC5jb25jYXQobm9kZSk7XG5cbiAgICBjb25zdCBwYXRoSW5jbHVkZXNGaWx0ZXJTdHJpbmcgPSBuZXdQYXRoLnNvbWUocCA9PlxuICAgICAgcC5sYWJlbC5pbmNsdWRlcyhmaWx0ZXJTdHJpbmcpLFxuICAgICk7XG5cbiAgICBpZiAoIWlzUGFyZW50T3B0aW9uKG5vZGUpKSB7XG4gICAgICBpZiAocGF0aEluY2x1ZGVzRmlsdGVyU3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICBsYWJlbDogbmV3UGF0aC5tYXAocCA9PiBwLmxhYmVsKS5qb2luKCcgLyAnKSxcbiAgICAgICAgICB2YWx1ZTogbmV3UGF0aC5tYXAocCA9PiBwLnZhbHVlKSxcbiAgICAgICAgICBwYXRoOiBuZXdQYXRoLFxuICAgICAgICB9O1xuICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyDlpoLmnpzlvZPliY3oioLngrnkuI3mmK/lj7blrZDoioLngrnvvIznu6fnu63mt7HluqbkvJjlhYjpgY3ljoblhbblrZDoioLngrlcbiAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgc2VhcmNoKGNoaWxkLCBuZXdQYXRoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJvb3QuZm9yRWFjaChub2RlID0+IHNlYXJjaChub2RlKSk7XG4gIHJldHVybiByZXN1bHRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tCeU9wdGlvbnM8VD4oXG4gIF86IG51bWJlcixcbiAgb3B0aW9uczogQXJyYXk8Q2FzY2FkZXJPcHRpb248VD4gfCBTZWFyY2hlZENhc2NhZGVyT3B0aW9uPFQsIFRbXT4+LFxuKSB7XG4gIHJldHVybiBvcHRpb25zLm1hcChvcHRpb24gPT4gb3B0aW9uLnZhbHVlKS5qb2luKCcsJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0J5T3B0aW9uPFQ+KF86IG51bWJlciwgb3B0aW9uOiBDYXNjYWRlck9wdGlvbjxUPikge1xuICByZXR1cm4gW29wdGlvbi52YWx1ZSwgb3B0aW9uLmNoaWxkcmVuPy5tYXAobyA9PiBvLnZhbHVlKS5qb2luKCcsJyldLmpvaW4oJ34nKTtcbn1cbiJdfQ==