@cuby-ui/core 0.0.17 → 0.0.20
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/components/accordion/accordion-item/accordion-item.component.d.ts +2 -0
- package/components/context-menu/context-menu.component.d.ts +6 -4
- package/esm2020/components/accordion/accordion-item/accordion-item.component.mjs +6 -3
- package/esm2020/components/context-menu/context-menu.component.mjs +24 -15
- package/esm2020/services/theme.service.mjs +1 -1
- package/fesm2015/cuby-ui-core.mjs +28 -16
- package/fesm2015/cuby-ui-core.mjs.map +1 -1
- package/fesm2020/cuby-ui-core.mjs +28 -16
- package/fesm2020/cuby-ui-core.mjs.map +1 -1
- package/package.json +3 -3
- package/services/theme.service.d.ts +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { CuiIcon } from '@cuby-ui/icons';
|
|
1
2
|
import * as i0 from "@angular/core";
|
|
2
3
|
export declare class CuiAccordionItemComponent {
|
|
3
4
|
protected isOpen: boolean;
|
|
5
|
+
protected get buttonIcon(): CuiIcon;
|
|
4
6
|
protected onRowToggle(): void;
|
|
5
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<CuiAccordionItemComponent, never>;
|
|
6
8
|
static ɵcmp: i0.ɵɵComponentDeclaration<CuiAccordionItemComponent, "cui-accordion-item", never, {}, {}, never, ["*", "[cuiAccordionItemContent]"], false, never>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, OnDestroy } from '@angular/core';
|
|
1
|
+
import type { AfterViewInit, OnDestroy } from '@angular/core';
|
|
2
2
|
import type { CuiContextMenuItem } from '../../interfaces';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class CuiContextMenuComponent implements AfterViewInit, OnDestroy {
|
|
@@ -6,18 +6,20 @@ export declare class CuiContextMenuComponent implements AfterViewInit, OnDestroy
|
|
|
6
6
|
private readonly element;
|
|
7
7
|
private readonly document;
|
|
8
8
|
private readonly documentElement;
|
|
9
|
-
|
|
9
|
+
protected readonly EXTRA_OFFSET_LEFT = 0;
|
|
10
|
+
protected readonly EXTRA_OFFSET_TOP = 0;
|
|
10
11
|
protected isVisible: boolean;
|
|
11
12
|
protected targetEventListener: (event: MouseEvent) => void;
|
|
12
13
|
items: CuiContextMenuItem[];
|
|
13
14
|
target: HTMLElement;
|
|
14
15
|
isHidden: boolean;
|
|
15
|
-
protected
|
|
16
|
-
protected
|
|
16
|
+
protected clientX?: number;
|
|
17
|
+
protected clientY?: number;
|
|
17
18
|
ngAfterViewInit(): void;
|
|
18
19
|
ngOnDestroy(): void;
|
|
19
20
|
protected onSelect(item: CuiContextMenuItem): void;
|
|
20
21
|
protected onClickOutside(target: HTMLElement): void;
|
|
22
|
+
protected onClose(): void;
|
|
21
23
|
protected trackByFn(_: number, item: CuiContextMenuItem): string;
|
|
22
24
|
private initTargetElementListener;
|
|
23
25
|
private destroyTargetElementListener;
|
|
@@ -6,14 +6,17 @@ export class CuiAccordionItemComponent {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
this.isOpen = false;
|
|
8
8
|
}
|
|
9
|
+
get buttonIcon() {
|
|
10
|
+
return this.isOpen ? 'cuiIconChevronDown' : 'cuiIconChevronRight';
|
|
11
|
+
}
|
|
9
12
|
onRowToggle() {
|
|
10
13
|
this.isOpen = !this.isOpen;
|
|
11
14
|
}
|
|
12
15
|
}
|
|
13
16
|
CuiAccordionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
-
CuiAccordionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiAccordionItemComponent, selector: "cui-accordion-item", ngImport: i0, template: "<header class=\"c-header\">\n <
|
|
17
|
+
CuiAccordionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiAccordionItemComponent, selector: "cui-accordion-item", ngImport: i0, template: "<header class=\"c-header\">\n <button\n cuiButton\n appearance=\"ghost\"\n size=\"xxs\"\n [icon]=\"buttonIcon\"\n (click)=\"onRowToggle()\"\n ></button>\n <span>\n <ng-content></ng-content>\n </span>\n</header>\n<div *ngIf=\"isOpen\">\n <ng-content select=\"[cuiAccordionItemContent]\"></ng-content>\n</div>\n", styles: [":host{padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}.c-header{font-weight:400;font-size:12px;line-height:14px;display:flex;align-items:center;gap:8px;color:var(--cui-base-900);font-family:var(--cui-main-font);text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAccordionItemComponent, decorators: [{
|
|
16
19
|
type: Component,
|
|
17
|
-
args: [{ selector: 'cui-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"c-header\">\n <
|
|
20
|
+
args: [{ selector: 'cui-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"c-header\">\n <button\n cuiButton\n appearance=\"ghost\"\n size=\"xxs\"\n [icon]=\"buttonIcon\"\n (click)=\"onRowToggle()\"\n ></button>\n <span>\n <ng-content></ng-content>\n </span>\n</header>\n<div *ngIf=\"isOpen\">\n <ng-content select=\"[cuiAccordionItemContent]\"></ng-content>\n</div>\n", styles: [":host{padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}.c-header{font-weight:400;font-size:12px;line-height:14px;display:flex;align-items:center;gap:8px;color:var(--cui-base-900);font-family:var(--cui-main-font);text-transform:uppercase}\n"] }]
|
|
18
21
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVNuRSxNQUFNLE9BQU8seUJBQXlCO0lBTnRDO1FBT1ksV0FBTSxHQUFHLEtBQUssQ0FBQztLQVMxQjtJQVBDLElBQWMsVUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQztJQUNwRSxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDOzt1SEFUVSx5QkFBeUI7MkdBQXpCLHlCQUF5QiwwRENUdEMsOFVBZUE7NEZETmEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDdWlJY29uIH0gZnJvbSAnQGN1YnktdWkvaWNvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdWktYWNjb3JkaW9uLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLWl0ZW0udGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi1pdGVtLnN0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQWNjb3JkaW9uSXRlbUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBpc09wZW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZ2V0IGJ1dHRvbkljb24oKTogQ3VpSWNvbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNPcGVuID8gJ2N1aUljb25DaGV2cm9uRG93bicgOiAnY3VpSWNvbkNoZXZyb25SaWdodCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Sb3dUb2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gIH1cbn1cbiIsIjxoZWFkZXIgY2xhc3M9XCJjLWhlYWRlclwiPlxuICA8YnV0dG9uXG4gICAgY3VpQnV0dG9uXG4gICAgYXBwZWFyYW5jZT1cImdob3N0XCJcbiAgICBzaXplPVwieHhzXCJcbiAgICBbaWNvbl09XCJidXR0b25JY29uXCJcbiAgICAoY2xpY2spPVwib25Sb3dUb2dnbGUoKVwiXG4gID48L2J1dHRvbj5cbiAgPHNwYW4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3NwYW4+XG48L2hlYWRlcj5cbjxkaXYgKm5nSWY9XCJpc09wZW5cIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2N1aUFjY29yZGlvbkl0ZW1Db250ZW50XVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
|
|
@@ -9,7 +9,8 @@ export class CuiContextMenuComponent {
|
|
|
9
9
|
this.element = inject(ElementRef).nativeElement;
|
|
10
10
|
this.document = inject(DOCUMENT);
|
|
11
11
|
this.documentElement = this.document.documentElement;
|
|
12
|
-
this.
|
|
12
|
+
this.EXTRA_OFFSET_LEFT = 0;
|
|
13
|
+
this.EXTRA_OFFSET_TOP = 0;
|
|
13
14
|
this.isVisible = false;
|
|
14
15
|
this.isHidden = false;
|
|
15
16
|
}
|
|
@@ -29,14 +30,17 @@ export class CuiContextMenuComponent {
|
|
|
29
30
|
}
|
|
30
31
|
this.isVisible = false;
|
|
31
32
|
}
|
|
33
|
+
onClose() {
|
|
34
|
+
this.isVisible = false;
|
|
35
|
+
}
|
|
32
36
|
trackByFn(_, item) {
|
|
33
37
|
return item.label;
|
|
34
38
|
}
|
|
35
39
|
initTargetElementListener() {
|
|
36
|
-
this.targetEventListener = ({
|
|
40
|
+
this.targetEventListener = ({ clientX, clientY }) => {
|
|
37
41
|
this.isVisible = !this.isVisible;
|
|
38
42
|
if (this.isVisible) {
|
|
39
|
-
this.changePosition(
|
|
43
|
+
this.changePosition(clientX, clientY);
|
|
40
44
|
}
|
|
41
45
|
this.changeDetectorRef.markForCheck();
|
|
42
46
|
};
|
|
@@ -48,32 +52,31 @@ export class CuiContextMenuComponent {
|
|
|
48
52
|
changePosition(x, y) {
|
|
49
53
|
this.isHidden = true;
|
|
50
54
|
setTimeout(() => {
|
|
51
|
-
const { scrollX, scrollY } = this.window;
|
|
52
55
|
const { clientWidth, clientHeight } = this.documentElement;
|
|
53
56
|
const width = this.element.offsetWidth;
|
|
54
57
|
const height = this.element.offsetHeight;
|
|
55
58
|
let left = x;
|
|
56
59
|
let top = y;
|
|
57
|
-
if (left + width >
|
|
60
|
+
if (left + width > clientWidth) {
|
|
58
61
|
left -= width;
|
|
59
62
|
}
|
|
60
|
-
if (top + height >
|
|
63
|
+
if (top + height > clientHeight) {
|
|
61
64
|
top -= height;
|
|
62
65
|
}
|
|
63
|
-
left = Math.max(left,
|
|
64
|
-
top = Math.max(top,
|
|
66
|
+
left = Math.max(left, this.EXTRA_OFFSET_LEFT);
|
|
67
|
+
top = Math.max(top, this.EXTRA_OFFSET_TOP);
|
|
65
68
|
this.isHidden = false;
|
|
66
|
-
this.
|
|
67
|
-
this.
|
|
69
|
+
this.clientX = left;
|
|
70
|
+
this.clientY = top;
|
|
68
71
|
this.changeDetectorRef.markForCheck();
|
|
69
72
|
});
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
75
|
CuiContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
CuiContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "document:click": "onClickOutside($event.target)" }, properties: { "class._hidden": "this.isHidden", "style.left.px": "this.
|
|
76
|
+
CuiContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "document:click": "onClickOutside($event.target)", "window:scroll": "onClose()", "window:resize": "onClose()" }, properties: { "class._hidden": "this.isHidden", "style.left.px": "this.clientX", "style.top.px": "this.clientY" } }, ngImport: i0, template: "<ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n>\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n</ul>\n", styles: [":host{position:fixed;z-index:2;display:block;width:268px;border-radius:8px}:host._hidden{visibility:hidden}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContextMenuComponent, decorators: [{
|
|
75
78
|
type: Component,
|
|
76
|
-
args: [{ selector: 'cui-context-menu[items][target]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n>\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n</ul>\n", styles: [":host{position:
|
|
79
|
+
args: [{ selector: 'cui-context-menu[items][target]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n>\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n</ul>\n", styles: [":host{position:fixed;z-index:2;display:block;width:268px;border-radius:8px}:host._hidden{visibility:hidden}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"] }]
|
|
77
80
|
}], propDecorators: { items: [{
|
|
78
81
|
type: Input
|
|
79
82
|
}], target: [{
|
|
@@ -81,14 +84,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
81
84
|
}], isHidden: [{
|
|
82
85
|
type: HostBinding,
|
|
83
86
|
args: ['class._hidden']
|
|
84
|
-
}],
|
|
87
|
+
}], clientX: [{
|
|
85
88
|
type: HostBinding,
|
|
86
89
|
args: ['style.left.px']
|
|
87
|
-
}],
|
|
90
|
+
}], clientY: [{
|
|
88
91
|
type: HostBinding,
|
|
89
92
|
args: ['style.top.px']
|
|
90
93
|
}], onClickOutside: [{
|
|
91
94
|
type: HostListener,
|
|
92
95
|
args: ['document:click', ['$event.target']]
|
|
96
|
+
}], onClose: [{
|
|
97
|
+
type: HostListener,
|
|
98
|
+
args: ['window:scroll']
|
|
99
|
+
}, {
|
|
100
|
+
type: HostListener,
|
|
101
|
+
args: ['window:resize']
|
|
93
102
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVUzQyxNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBT21CLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlDLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzNDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUU5QyxzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDdEIscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBRTlCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFVNUIsYUFBUSxHQUFZLEtBQUssQ0FBQztLQXVGM0I7SUEvRVEsZUFBZTtRQUNwQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRVMsUUFBUSxDQUFDLElBQXdCO1FBQ3pDLElBQUksQ0FBQyxT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QkFBQyxlQUFlO2dCQUlsQixPQUFPO3NCQURoQixXQUFXO3VCQUFDLGVBQWU7Z0JBSWxCLE9BQU87c0JBRGhCLFdBQVc7dUJBQUMsY0FBYztnQkFrQmpCLGNBQWM7c0JBRHZCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBV3ZDLE9BQU87c0JBRmhCLFlBQVk7dUJBQUMsZUFBZTs7c0JBQzVCLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHR5cGUgeyBDdWlDb250ZXh0TWVudUl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3VpLWNvbnRleHQtbWVudVtpdGVtc11bdGFyZ2V0XScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQ29udGV4dE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50RWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBFWFRSQV9PRkZTRVRfTEVGVCA9IDA7XG4gIHByb3RlY3RlZCByZWFkb25seSBFWFRSQV9PRkZTRVRfVE9QID0gMDtcblxuICBwcm90ZWN0ZWQgaXNWaXNpYmxlID0gZmFsc2U7XG4gIHByb3RlY3RlZCB0YXJnZXRFdmVudExpc3RlbmVyITogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpdGVtcyE6IEN1aUNvbnRleHRNZW51SXRlbVtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YXJnZXQhOiBIVE1MRWxlbWVudDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oaWRkZW4nKVxuICBpc0hpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubGVmdC5weCcpXG4gIHByb3RlY3RlZCBjbGllbnRYPzogbnVtYmVyO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudG9wLnB4JylcbiAgcHJvdGVjdGVkIGNsaWVudFk/OiBudW1iZXI7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRUYXJnZXRFbGVtZW50TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lUYXJnZXRFbGVtZW50TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblNlbGVjdChpdGVtOiBDdWlDb250ZXh0TWVudUl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgaXRlbS5jb21tYW5kPy4oKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIHByb3RlY3RlZCBvbkNsaWNrT3V0c2lkZSh0YXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWxlbWVudC5jb250YWlucyh0YXJnZXQpIHx8IHRoaXMudGFyZ2V0LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBwcm90ZWN0ZWQgb25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrQnlGbihfOiBudW1iZXIsIGl0ZW06IEN1aUNvbnRleHRNZW51SXRlbSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0ubGFiZWw7XG4gIH1cblxuICBwcml2YXRlIGluaXRUYXJnZXRFbGVtZW50TGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy50YXJnZXRFdmVudExpc3RlbmVyID0gKHsgY2xpZW50WCwgY2xpZW50WSB9KSA9PiB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA9ICF0aGlzLmlzVmlzaWJsZTtcblxuICAgICAgaWYgKHRoaXMuaXNWaXNpYmxlKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlUG9zaXRpb24oY2xpZW50WCwgY2xpZW50WSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfTtcblxuICAgIHRoaXMudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy50YXJnZXRFdmVudExpc3RlbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVRhcmdldEVsZW1lbnRMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMudGFyZ2V0RXZlbnRMaXN0ZW5lcik7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZVBvc2l0aW9uKHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5pc0hpZGRlbiA9IHRydWU7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCB9ID0gdGhpcy5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICBjb25zdCB3aWR0aCA9IHRoaXMuZWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICBsZXQgbGVmdCA9IHg7XG4gICAgICBsZXQgdG9wID0geTtcblxuICAgICAgaWYgKGxlZnQgKyB3aWR0aCA+IGNsaWVudFdpZHRoKSB7XG4gICAgICAgIGxlZnQgLT0gd2lkdGg7XG4gICAgICB9XG5cbiAgICAgIGlmICh0b3AgKyBoZWlnaHQgPiBjbGllbnRIZWlnaHQpIHtcbiAgICAgICAgdG9wIC09IGhlaWdodDtcbiAgICAgIH1cblxuICAgICAgbGVmdCA9IE1hdGgubWF4KGxlZnQsIHRoaXMuRVhUUkFfT0ZGU0VUX0xFRlQpO1xuICAgICAgdG9wID0gTWF0aC5tYXgodG9wLCB0aGlzLkVYVFJBX09GRlNFVF9UT1ApO1xuXG4gICAgICB0aGlzLmlzSGlkZGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmNsaWVudFggPSBsZWZ0O1xuICAgICAgdGhpcy5jbGllbnRZID0gdG9wO1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8dWxcbiAgKm5nSWY9XCJpc1Zpc2libGVcIlxuICBjbGFzcz1cImMtdWxcIlxuPlxuICA8bGlcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICBbc3R5bGUuY29sb3JdPVwiaXRlbS5jb2xvclwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImMtYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJvblNlbGVjdChpdGVtKVwiXG4gICAgPlxuICAgICAgPGN1aS1zdmdcbiAgICAgICAgKm5nSWY9XCJpdGVtLmljb25cIlxuICAgICAgICBbaWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICBbY29sb3JdPVwiaXRlbS5jb2xvclwiXG4gICAgICA+PC9jdWktc3ZnPlxuICAgICAgPHNwYW4+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9saT5cbjwvdWw+XG4iXX0=
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
27
27
|
providedIn: 'root'
|
|
28
28
|
}]
|
|
29
29
|
}], ctorParameters: function () { return []; } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc2VydmljZXMvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBS25FLE1BQU0sT0FBTyxlQUFnQixTQUFRLGVBQXlCO0lBSTVEO1FBQ0UsS0FBSyxDQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBMEI7ZUFDcEYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUN2QixDQUFDO1FBUGEsaUJBQVksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6QyxRQUFHLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFPckQsQ0FBQztJQUVlLElBQUksQ0FBQyxLQUFlO1FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0MsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsNkJBQTZCO0lBQ3RCLE1BQU07UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OzZHQW5CVSxlQUFlO2lIQUFmLGVBQWUsY0FGZCxNQUFNOzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcbmltcG9ydCB7IENVSV9MT0NBTF9TVE9SQUdFIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IEN1aVRoZW1lIH0gZnJvbSAnLi90aGVtZS5vcHRpb25zJztcbmltcG9ydCB7IENVSV9USEVNRSwgQ1VJX1RIRU1FX1NUT1JBR0VfS0VZIH0gZnJvbSAnLi90aGVtZS5vcHRpb25zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ3VpVGhlbWVTZXJ2aWNlIGV4dGVuZHMgQmVoYXZpb3JTdWJqZWN0PEN1aVRoZW1lPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxTdG9yYWdlID0gaW5qZWN0KENVSV9MT0NBTF9TVE9SQUdFKTtcbiAgcHJpdmF0ZSByZWFkb25seSBrZXkgPSBpbmplY3QoQ1VJX1RIRU1FX1NUT1JBR0VfS0VZKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcbiAgICAgIGluamVjdChDVUlfTE9DQUxfU1RPUkFHRSkuZ2V0SXRlbShpbmplY3QoQ1VJX1RIRU1FX1NUT1JBR0VfS0VZKSkgYXMgQ3VpTnVsbGFibGU8Q3VpVGhlbWU+XG4gICAgICAgID8/IGluamVjdChDVUlfVEhFTUUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBuZXh0KHRoZW1lOiBDdWlUaGVtZSk6IHZvaWQge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXksIHRoZW1lKTtcbiAgICBzdXBlci5uZXh0KHRoZW1lKTtcbiAgfVxuXG4gIC8vINCf0YDQuCDRgNCw0LHQvtGC0LUg0YLQvtC70YzQutC+INC00LLRg9GFINGC0LXQvFxuICBwdWJsaWMgc3dpdGNoKCk6IHZvaWQge1xuICAgIHRoaXMubmV4dCh0aGlzLnZhbHVlID09PSAnbGlnaHQnID8gJ2RhcmsnIDogJ2xpZ2h0Jyk7XG4gIH1cbn0iXX0=
|
|
@@ -188,15 +188,18 @@ class CuiAccordionItemComponent {
|
|
|
188
188
|
constructor() {
|
|
189
189
|
this.isOpen = false;
|
|
190
190
|
}
|
|
191
|
+
get buttonIcon() {
|
|
192
|
+
return this.isOpen ? 'cuiIconChevronDown' : 'cuiIconChevronRight';
|
|
193
|
+
}
|
|
191
194
|
onRowToggle() {
|
|
192
195
|
this.isOpen = !this.isOpen;
|
|
193
196
|
}
|
|
194
197
|
}
|
|
195
198
|
CuiAccordionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
196
|
-
CuiAccordionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiAccordionItemComponent, selector: "cui-accordion-item", ngImport: i0, template: "<header class=\"c-header\">\n <
|
|
199
|
+
CuiAccordionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiAccordionItemComponent, selector: "cui-accordion-item", ngImport: i0, template: "<header class=\"c-header\">\n <button\n cuiButton\n appearance=\"ghost\"\n size=\"xxs\"\n [icon]=\"buttonIcon\"\n (click)=\"onRowToggle()\"\n ></button>\n <span>\n <ng-content></ng-content>\n </span>\n</header>\n<div *ngIf=\"isOpen\">\n <ng-content select=\"[cuiAccordionItemContent]\"></ng-content>\n</div>\n", styles: [":host{padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}.c-header{font-weight:400;font-size:12px;line-height:14px;display:flex;align-items:center;gap:8px;color:var(--cui-base-900);font-family:var(--cui-main-font);text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
197
200
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAccordionItemComponent, decorators: [{
|
|
198
201
|
type: Component,
|
|
199
|
-
args: [{ selector: 'cui-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"c-header\">\n <
|
|
202
|
+
args: [{ selector: 'cui-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"c-header\">\n <button\n cuiButton\n appearance=\"ghost\"\n size=\"xxs\"\n [icon]=\"buttonIcon\"\n (click)=\"onRowToggle()\"\n ></button>\n <span>\n <ng-content></ng-content>\n </span>\n</header>\n<div *ngIf=\"isOpen\">\n <ng-content select=\"[cuiAccordionItemContent]\"></ng-content>\n</div>\n", styles: [":host{padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}.c-header{font-weight:400;font-size:12px;line-height:14px;display:flex;align-items:center;gap:8px;color:var(--cui-base-900);font-family:var(--cui-main-font);text-transform:uppercase}\n"] }]
|
|
200
203
|
}] });
|
|
201
204
|
|
|
202
205
|
class CuiSvgModule {
|
|
@@ -558,7 +561,8 @@ class CuiContextMenuComponent {
|
|
|
558
561
|
this.element = inject(ElementRef).nativeElement;
|
|
559
562
|
this.document = inject(DOCUMENT);
|
|
560
563
|
this.documentElement = this.document.documentElement;
|
|
561
|
-
this.
|
|
564
|
+
this.EXTRA_OFFSET_LEFT = 0;
|
|
565
|
+
this.EXTRA_OFFSET_TOP = 0;
|
|
562
566
|
this.isVisible = false;
|
|
563
567
|
this.isHidden = false;
|
|
564
568
|
}
|
|
@@ -579,14 +583,17 @@ class CuiContextMenuComponent {
|
|
|
579
583
|
}
|
|
580
584
|
this.isVisible = false;
|
|
581
585
|
}
|
|
586
|
+
onClose() {
|
|
587
|
+
this.isVisible = false;
|
|
588
|
+
}
|
|
582
589
|
trackByFn(_, item) {
|
|
583
590
|
return item.label;
|
|
584
591
|
}
|
|
585
592
|
initTargetElementListener() {
|
|
586
|
-
this.targetEventListener = ({
|
|
593
|
+
this.targetEventListener = ({ clientX, clientY }) => {
|
|
587
594
|
this.isVisible = !this.isVisible;
|
|
588
595
|
if (this.isVisible) {
|
|
589
|
-
this.changePosition(
|
|
596
|
+
this.changePosition(clientX, clientY);
|
|
590
597
|
}
|
|
591
598
|
this.changeDetectorRef.markForCheck();
|
|
592
599
|
};
|
|
@@ -598,32 +605,31 @@ class CuiContextMenuComponent {
|
|
|
598
605
|
changePosition(x, y) {
|
|
599
606
|
this.isHidden = true;
|
|
600
607
|
setTimeout(() => {
|
|
601
|
-
const { scrollX, scrollY } = this.window;
|
|
602
608
|
const { clientWidth, clientHeight } = this.documentElement;
|
|
603
609
|
const width = this.element.offsetWidth;
|
|
604
610
|
const height = this.element.offsetHeight;
|
|
605
611
|
let left = x;
|
|
606
612
|
let top = y;
|
|
607
|
-
if (left + width >
|
|
613
|
+
if (left + width > clientWidth) {
|
|
608
614
|
left -= width;
|
|
609
615
|
}
|
|
610
|
-
if (top + height >
|
|
616
|
+
if (top + height > clientHeight) {
|
|
611
617
|
top -= height;
|
|
612
618
|
}
|
|
613
|
-
left = Math.max(left,
|
|
614
|
-
top = Math.max(top,
|
|
619
|
+
left = Math.max(left, this.EXTRA_OFFSET_LEFT);
|
|
620
|
+
top = Math.max(top, this.EXTRA_OFFSET_TOP);
|
|
615
621
|
this.isHidden = false;
|
|
616
|
-
this.
|
|
617
|
-
this.
|
|
622
|
+
this.clientX = left;
|
|
623
|
+
this.clientY = top;
|
|
618
624
|
this.changeDetectorRef.markForCheck();
|
|
619
625
|
});
|
|
620
626
|
}
|
|
621
627
|
}
|
|
622
628
|
CuiContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
623
|
-
CuiContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "document:click": "onClickOutside($event.target)" }, properties: { "class._hidden": "this.isHidden", "style.left.px": "this.
|
|
629
|
+
CuiContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "document:click": "onClickOutside($event.target)", "window:scroll": "onClose()", "window:resize": "onClose()" }, properties: { "class._hidden": "this.isHidden", "style.left.px": "this.clientX", "style.top.px": "this.clientY" } }, ngImport: i0, template: "<ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n>\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n</ul>\n", styles: [":host{position:fixed;z-index:2;display:block;width:268px;border-radius:8px}:host._hidden{visibility:hidden}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
624
630
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContextMenuComponent, decorators: [{
|
|
625
631
|
type: Component,
|
|
626
|
-
args: [{ selector: 'cui-context-menu[items][target]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n>\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n</ul>\n", styles: [":host{position:
|
|
632
|
+
args: [{ selector: 'cui-context-menu[items][target]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n>\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n</ul>\n", styles: [":host{position:fixed;z-index:2;display:block;width:268px;border-radius:8px}:host._hidden{visibility:hidden}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"] }]
|
|
627
633
|
}], propDecorators: { items: [{
|
|
628
634
|
type: Input
|
|
629
635
|
}], target: [{
|
|
@@ -631,15 +637,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
631
637
|
}], isHidden: [{
|
|
632
638
|
type: HostBinding,
|
|
633
639
|
args: ['class._hidden']
|
|
634
|
-
}],
|
|
640
|
+
}], clientX: [{
|
|
635
641
|
type: HostBinding,
|
|
636
642
|
args: ['style.left.px']
|
|
637
|
-
}],
|
|
643
|
+
}], clientY: [{
|
|
638
644
|
type: HostBinding,
|
|
639
645
|
args: ['style.top.px']
|
|
640
646
|
}], onClickOutside: [{
|
|
641
647
|
type: HostListener,
|
|
642
648
|
args: ['document:click', ['$event.target']]
|
|
649
|
+
}], onClose: [{
|
|
650
|
+
type: HostListener,
|
|
651
|
+
args: ['window:scroll']
|
|
652
|
+
}, {
|
|
653
|
+
type: HostListener,
|
|
654
|
+
args: ['window:resize']
|
|
643
655
|
}] } });
|
|
644
656
|
|
|
645
657
|
class CuiContextMenuModule {
|