cps-ui-kit 0.39.0 → 0.41.0

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.
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@angular/common';
2
- import { CommonModule } from '@angular/common';
2
+ import { CommonModule, isPlatformBrowser, DOCUMENT } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, Input, Directive, HostListener, EventEmitter, Self, Optional, Output, ViewChild, Pipe, HostBinding, Host, ContentChild } from '@angular/core';
4
+ import { Component, Input, Directive, HostListener, EventEmitter, Self, Optional, Output, ViewChild, Pipe, HostBinding, Host, ContentChild, PLATFORM_ID, ChangeDetectionStrategy, ViewEncapsulation, Inject } from '@angular/core';
5
5
  import { Subscription } from 'rxjs';
6
6
  import * as i1 from '@angular/forms';
7
7
  import { FormsModule } from '@angular/forms';
@@ -9,11 +9,15 @@ import { isEqual, find } from 'lodash-es';
9
9
  import * as i3 from 'primeng/virtualscroller';
10
10
  import { VirtualScrollerModule } from 'primeng/virtualscroller';
11
11
  import * as i4 from 'primeng/api';
12
+ import { SharedModule } from 'primeng/api';
12
13
  import * as i3$1 from 'primeng/tree';
13
14
  import { TreeModule } from 'primeng/tree';
14
15
  import { __rest } from 'tslib';
15
16
  import * as i3$2 from 'primeng/table';
16
17
  import { TableService, Table, TableModule, SortableColumn, SortIcon } from 'primeng/table';
18
+ import { trigger, state, style, transition, animate } from '@angular/animations';
19
+ import { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';
20
+ import { ZIndexUtils } from 'primeng/utils';
17
21
  import * as i1$1 from 'primeng/paginator';
18
22
  import { PaginatorModule } from 'primeng/paginator';
19
23
  import * as i2$1 from 'primeng/calendar';
@@ -3432,6 +3436,345 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3432
3436
  type: Output
3433
3437
  }] } });
3434
3438
 
3439
+ class CpsMenuComponent {
3440
+ // eslint-disable-next-line no-useless-constructor
3441
+ constructor(document, platformId, el, renderer, cd, zone, config, overlayService) {
3442
+ this.document = document;
3443
+ this.platformId = platformId;
3444
+ this.el = el;
3445
+ this.renderer = renderer;
3446
+ this.cd = cd;
3447
+ this.zone = zone;
3448
+ this.config = config;
3449
+ this.overlayService = overlayService;
3450
+ this.header = '';
3451
+ this.items = [];
3452
+ this.withArrow = true;
3453
+ this.compressed = false; // prepared-colored, without header and items description
3454
+ this.focusOnShow = true;
3455
+ this.containerClass = '';
3456
+ this.menuShown = new EventEmitter();
3457
+ this.menuHidden = new EventEmitter();
3458
+ this.withIcons = true;
3459
+ this.autoZIndex = true;
3460
+ this.baseZIndex = 0;
3461
+ this.showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';
3462
+ this.hideTransitionOptions = '.1s linear';
3463
+ this.dismissable = true;
3464
+ this.overlayVisible = false;
3465
+ this.render = false;
3466
+ this.isOverlayAnimationInProgress = false;
3467
+ this.selfClick = false;
3468
+ }
3469
+ toggle(event, target) {
3470
+ if (this.isOverlayAnimationInProgress) {
3471
+ return;
3472
+ }
3473
+ if (this.overlayVisible) {
3474
+ if (this.hasTargetChanged(event, target)) {
3475
+ this.destroyCallback = () => {
3476
+ this.show(null, target || event.currentTarget || event.target);
3477
+ };
3478
+ }
3479
+ this.hide();
3480
+ }
3481
+ else {
3482
+ this.show(event, target);
3483
+ }
3484
+ }
3485
+ show(event, target) {
3486
+ target && event && event.stopPropagation();
3487
+ if (this.isOverlayAnimationInProgress) {
3488
+ return;
3489
+ }
3490
+ this.target = target || event.currentTarget || event.target;
3491
+ this.overlayVisible = true;
3492
+ this.render = true;
3493
+ this.cd.markForCheck();
3494
+ }
3495
+ hide() {
3496
+ this.overlayVisible = false;
3497
+ this.cd.markForCheck();
3498
+ }
3499
+ onItemClick(event, item) {
3500
+ if (item.disabled)
3501
+ return;
3502
+ if (item.action) {
3503
+ item.action({
3504
+ originalEvent: event,
3505
+ item
3506
+ });
3507
+ }
3508
+ this.hide();
3509
+ }
3510
+ bindDocumentClickListener() {
3511
+ if (isPlatformBrowser(this.platformId)) {
3512
+ if (!this.documentClickListener && this.dismissable) {
3513
+ this.zone.runOutsideAngular(() => {
3514
+ const documentEvent = DomHandler.isIOS() ? 'touchstart' : 'click';
3515
+ const documentTarget = this.el
3516
+ ? this.el.nativeElement.ownerDocument
3517
+ : this.document;
3518
+ this.documentClickListener = this.renderer.listen(documentTarget, documentEvent, (event) => {
3519
+ var _a;
3520
+ if (!((_a = this.container) === null || _a === void 0 ? void 0 : _a.contains(event.target)) &&
3521
+ this.target !== event.target &&
3522
+ !this.target.contains(event.target) &&
3523
+ !this.selfClick) {
3524
+ this.zone.run(() => {
3525
+ this.hide();
3526
+ });
3527
+ }
3528
+ this.selfClick = false;
3529
+ this.cd.markForCheck();
3530
+ });
3531
+ });
3532
+ }
3533
+ }
3534
+ }
3535
+ unbindDocumentClickListener() {
3536
+ if (this.documentClickListener) {
3537
+ this.documentClickListener();
3538
+ this.documentClickListener = null;
3539
+ this.selfClick = false;
3540
+ }
3541
+ }
3542
+ onOverlayClick(event) {
3543
+ this.overlayService.add({
3544
+ originalEvent: event,
3545
+ target: this.el.nativeElement
3546
+ });
3547
+ this.selfClick = true;
3548
+ }
3549
+ onContentClick() {
3550
+ this.selfClick = true;
3551
+ }
3552
+ hasTargetChanged(event, target) {
3553
+ return (this.target != null &&
3554
+ this.target !== (target || event.currentTarget || event.target));
3555
+ }
3556
+ appendContainer() {
3557
+ this.renderer.appendChild(this.document.body, this.container);
3558
+ }
3559
+ restoreAppend() {
3560
+ if (this.container) {
3561
+ this.renderer.appendChild(this.el.nativeElement, this.container);
3562
+ }
3563
+ }
3564
+ align() {
3565
+ var _a, _b, _c, _d, _e;
3566
+ if (this.autoZIndex) {
3567
+ ZIndexUtils.set('overlay', this.container, this.baseZIndex + this.config.zIndex.overlay);
3568
+ }
3569
+ DomHandler.absolutePosition(this.container, this.target);
3570
+ const containerOffset = DomHandler.getOffset(this.container);
3571
+ const targetOffset = DomHandler.getOffset(this.target);
3572
+ if (this.withArrow) {
3573
+ const borderRadius = ((_b = (_a = this.document.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(this.container)) === null || _b === void 0 ? void 0 : _b.getPropertyValue('border-radius')) || '0';
3574
+ let arrowLeft = 0;
3575
+ if (containerOffset.left < targetOffset.left) {
3576
+ arrowLeft =
3577
+ 20 +
3578
+ targetOffset.left -
3579
+ containerOffset.left -
3580
+ parseFloat(borderRadius) * 2;
3581
+ }
3582
+ else {
3583
+ const containerWidth = ((_c = this.container) === null || _c === void 0 ? void 0 : _c.offsetWidth) || 0;
3584
+ const targetWidth = ((_d = this.target) === null || _d === void 0 ? void 0 : _d.offsetWidth) || 0;
3585
+ arrowLeft = Math.min(targetWidth / 2, containerWidth / 2);
3586
+ }
3587
+ arrowLeft = Math.max(arrowLeft, 12);
3588
+ (_e = this.container) === null || _e === void 0 ? void 0 : _e.style.setProperty('--overlayArrowLeft', `${arrowLeft}px`);
3589
+ }
3590
+ if (containerOffset.top < targetOffset.top) {
3591
+ DomHandler.addClass(this.container, 'cps-menu-container-flipped');
3592
+ }
3593
+ }
3594
+ onAnimationStart(event) {
3595
+ if (event.toState === 'open') {
3596
+ if (this.compressed)
3597
+ this.withIcons = this.items.some((itm) => itm.icon);
3598
+ this.container = event.element;
3599
+ this.appendContainer();
3600
+ this.align();
3601
+ this.bindDocumentClickListener();
3602
+ this.bindDocumentResizeListener();
3603
+ this.bindScrollListener();
3604
+ if (this.focusOnShow) {
3605
+ this.focus();
3606
+ }
3607
+ this.overlayEventListener = (e) => {
3608
+ if (this.container && this.container.contains(e.target)) {
3609
+ this.selfClick = true;
3610
+ }
3611
+ };
3612
+ this.overlaySubscription = this.overlayService.clickObservable.subscribe(this.overlayEventListener);
3613
+ this.menuShown.emit(null);
3614
+ }
3615
+ this.isOverlayAnimationInProgress = true;
3616
+ }
3617
+ onAnimationEnd(event) {
3618
+ switch (event.toState) {
3619
+ case 'void':
3620
+ if (this.destroyCallback) {
3621
+ this.destroyCallback();
3622
+ this.destroyCallback = null;
3623
+ }
3624
+ if (this.overlaySubscription) {
3625
+ this.overlaySubscription.unsubscribe();
3626
+ }
3627
+ break;
3628
+ case 'close':
3629
+ if (this.autoZIndex) {
3630
+ ZIndexUtils.clear(this.container);
3631
+ }
3632
+ if (this.overlaySubscription) {
3633
+ this.overlaySubscription.unsubscribe();
3634
+ }
3635
+ this.onContainerDestroy();
3636
+ this.menuHidden.emit({});
3637
+ this.render = false;
3638
+ break;
3639
+ }
3640
+ this.isOverlayAnimationInProgress = false;
3641
+ }
3642
+ focus() {
3643
+ const focusable = DomHandler.findSingle(this.container, '[autofocus]');
3644
+ if (focusable) {
3645
+ this.zone.runOutsideAngular(() => {
3646
+ setTimeout(() => focusable.focus(), 5);
3647
+ });
3648
+ }
3649
+ }
3650
+ onWindowResize() {
3651
+ if (this.overlayVisible && !DomHandler.isTouchDevice()) {
3652
+ this.hide();
3653
+ }
3654
+ }
3655
+ bindDocumentResizeListener() {
3656
+ if (isPlatformBrowser(this.platformId)) {
3657
+ if (!this.documentResizeListener) {
3658
+ const window = this.document.defaultView;
3659
+ this.documentResizeListener = this.renderer.listen(window, 'resize', this.onWindowResize.bind(this));
3660
+ }
3661
+ }
3662
+ }
3663
+ unbindDocumentResizeListener() {
3664
+ if (this.documentResizeListener) {
3665
+ this.documentResizeListener();
3666
+ this.documentResizeListener = null;
3667
+ }
3668
+ }
3669
+ bindScrollListener() {
3670
+ if (isPlatformBrowser(this.platformId)) {
3671
+ if (!this.scrollHandler) {
3672
+ this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {
3673
+ if (this.overlayVisible) {
3674
+ this.hide();
3675
+ }
3676
+ });
3677
+ }
3678
+ this.scrollHandler.bindScrollListener();
3679
+ }
3680
+ }
3681
+ unbindScrollListener() {
3682
+ if (this.scrollHandler) {
3683
+ this.scrollHandler.unbindScrollListener();
3684
+ }
3685
+ }
3686
+ onContainerDestroy() {
3687
+ if (!this.cd.destroyed) {
3688
+ this.target = null;
3689
+ }
3690
+ this.unbindDocumentClickListener();
3691
+ this.unbindDocumentResizeListener();
3692
+ this.unbindScrollListener();
3693
+ }
3694
+ ngOnDestroy() {
3695
+ if (this.scrollHandler) {
3696
+ this.scrollHandler.destroy();
3697
+ this.scrollHandler = null;
3698
+ }
3699
+ if (this.container && this.autoZIndex) {
3700
+ ZIndexUtils.clear(this.container);
3701
+ }
3702
+ if (!this.cd.destroyed) {
3703
+ this.target = null;
3704
+ }
3705
+ this.destroyCallback = null;
3706
+ if (this.container) {
3707
+ this.restoreAppend();
3708
+ this.onContainerDestroy();
3709
+ }
3710
+ if (this.overlaySubscription) {
3711
+ this.overlaySubscription.unsubscribe();
3712
+ }
3713
+ }
3714
+ }
3715
+ CpsMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsMenuComponent, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i4.PrimeNGConfig }, { token: i4.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
3716
+ CpsMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsMenuComponent, isStandalone: true, selector: "cps-menu", inputs: { header: "header", items: "items", withArrow: "withArrow", compressed: "compressed", focusOnShow: "focusOnShow", containerClass: "containerClass" }, outputs: { menuShown: "menuShown", menuHidden: "menuHidden" }, ngImport: i0, template: "<div\n *ngIf=\"render\"\n class=\"cps-menu-container\"\n [ngClass]=\"{ 'cps-menu-no-arrow': !withArrow }\"\n [class]=\"containerClass\"\n (click)=\"onOverlayClick($event)\"\n [@animation]=\"{\n value: overlayVisible ? 'open' : 'close',\n params: {\n showTransitionParams: showTransitionOptions,\n hideTransitionParams: hideTransitionOptions\n }\n }\"\n (@animation.start)=\"onAnimationStart($event)\"\n (@animation.done)=\"onAnimationEnd($event)\">\n <div (click)=\"onContentClick()\" (mousedown)=\"onContentClick()\">\n <ng-container *ngIf=\"items.length < 1\">\n <ng-content></ng-content>\n </ng-container>\n <div\n *ngIf=\"items.length > 0\"\n class=\"cps-menu-content\"\n [ngClass]=\"{ 'cps-menu-content-compressed': compressed }\">\n <div *ngIf=\"header && !compressed\" class=\"cps-menu-header\">\n {{ header }}\n </div>\n <div\n *ngFor=\"let item of items; let i = index\"\n (click)=\"onItemClick($event, item)\"\n [ngClass]=\"{\n 'cps-menu-item-disabled': item.disabled,\n 'cps-menu-item-first': i === 0,\n 'cps-menu-item-compressed': compressed\n }\"\n class=\"cps-menu-item\">\n <div class=\"cps-menu-item-icon\" *ngIf=\"withIcons\">\n <cps-icon\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.disabled ? 'text-light' : 'text-dark'\"\n [size]=\"compressed ? 'small' : 'normal'\"></cps-icon>\n </div>\n <div class=\"cps-menu-item-content\">\n <span class=\"cps-menu-item-content-title\">{{ item.title }}</span>\n <span\n *ngIf=\"item.desc && !compressed\"\n class=\"cps-menu-item-content-desc\"\n >{{ item.desc }}</span\n >\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".cps-menu-container{background:#ffffff;border:0 none;box-shadow:0 1px 3px #0000004d;position:absolute;margin-top:14px;top:0;left:0}.cps-menu-container:not(.cps-menu-no-arrow):before{border-width:14px;margin-left:-14px;border:solid transparent;border-color:#fff0;border-bottom-color:var(--cps-color-line-light)}.cps-menu-container:not(.cps-menu-no-arrow):after,.cps-menu-container:not(.cps-menu-no-arrow):before{bottom:100%;left:var(--overlayArrowLeft, 12);content:\" \";height:0;width:0;position:absolute;pointer-events:none}.cps-menu-container .cps-menu-content{padding:.75rem}.cps-menu-container .cps-menu-content{display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}.cps-menu-container .cps-menu-content .cps-menu-header{display:flex;align-items:center;min-height:50px;padding-bottom:8px;font-weight:600;color:var(--cps-color-text-dark);cursor:default}.cps-menu-container .cps-menu-content .cps-menu-item{display:flex;align-items:center;padding:8px 48px 8px 0;border-top:1px solid rgba(0,0,0,.1215686275);cursor:pointer;min-height:58px}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-icon{width:48px;align-items:center;display:flex}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-icon cps-icon{margin-left:8px}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-content{display:flex;flex-direction:column}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-content .cps-menu-item-content-title{font-weight:600;font-size:15px;line-height:150%;color:var(--cps-color-text-dark)}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-content .cps-menu-item-content-desc{font-size:12px;line-height:150%;color:var(--cps-color-text-light)}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-disabled{pointer-events:none}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-disabled .cps-menu-item-content .cps-menu-item-content-title{color:var(--cps-color-text-light)}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-disabled .cps-menu-item-content .cps-menu-item-content-desc{color:var(--cps-color-text-lightest)}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):hover{background:#f8f4f5}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):hover .cps-menu-item-content .cps-menu-item-content-title{color:var(--cps-color-calm)}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):hover .cps-menu-item-content .cps-menu-item-content-desc{color:var(--cps-color-text-mild)}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):not(.cps-menu-item-compressed):hover .cps-menu-item-icon cps-icon i{color:var(--cps-color-calm)!important}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):active{background:#f1eaec}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-first{border-top:none}.cps-menu-container .cps-menu-content.cps-menu-content-compressed{padding:0}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item{padding:0 16px;min-height:40px}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item .cps-menu-item-icon{width:36px}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item .cps-menu-item-content .cps-menu-item-content-title{font-weight:500}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item:not(.cps-menu-item-disabled) .cps-menu-item-icon cps-icon i{color:var(--cps-color-prepared)!important}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item:not(.cps-menu-item-disabled) .cps-menu-item-content .cps-menu-item-content-title{color:var(--cps-color-prepared)}.cps-menu-container:not(.cps-menu-no-arrow):after{border-width:12px;margin-left:-12px;border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.cps-menu-container-flipped{margin-top:0;margin-bottom:10px}.cps-menu-container:not(.cps-menu-no-arrow):after{border-width:12px;margin-left:-12px}.cps-menu-container:not(.cps-menu-no-arrow):before{border-width:14px;margin-left:-14px}.cps-menu-container-flipped:not(.cps-menu-no-arrow):after,.cps-menu-container-flipped:not(.cps-menu-no-arrow):before{bottom:auto;top:100%}.cps-menu-container.cps-menu-container-flipped:not(.cps-menu-no-arrow):after{border-bottom-color:transparent}.cps-menu-container.cps-menu-container-flipped:not(.cps-menu-no-arrow):before{border-bottom-color:transparent}.cps-menu-no-arrow{margin-top:0;margin-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }], animations: [
3717
+ trigger('animation', [
3718
+ state('void', style({
3719
+ transform: 'scaleY(0.8)',
3720
+ opacity: 0
3721
+ })),
3722
+ state('close', style({
3723
+ opacity: 0
3724
+ })),
3725
+ state('open', style({
3726
+ transform: 'translateY(0)',
3727
+ opacity: 1
3728
+ })),
3729
+ transition('void => open', animate('{{showTransitionParams}}')),
3730
+ transition('open => close', animate('{{hideTransitionParams}}'))
3731
+ ])
3732
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3733
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsMenuComponent, decorators: [{
3734
+ type: Component,
3735
+ args: [{ standalone: true, imports: [CommonModule, SharedModule, CpsIconComponent], selector: 'cps-menu', animations: [
3736
+ trigger('animation', [
3737
+ state('void', style({
3738
+ transform: 'scaleY(0.8)',
3739
+ opacity: 0
3740
+ })),
3741
+ state('close', style({
3742
+ opacity: 0
3743
+ })),
3744
+ state('open', style({
3745
+ transform: 'translateY(0)',
3746
+ opacity: 1
3747
+ })),
3748
+ transition('void => open', animate('{{showTransitionParams}}')),
3749
+ transition('open => close', animate('{{hideTransitionParams}}'))
3750
+ ])
3751
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n *ngIf=\"render\"\n class=\"cps-menu-container\"\n [ngClass]=\"{ 'cps-menu-no-arrow': !withArrow }\"\n [class]=\"containerClass\"\n (click)=\"onOverlayClick($event)\"\n [@animation]=\"{\n value: overlayVisible ? 'open' : 'close',\n params: {\n showTransitionParams: showTransitionOptions,\n hideTransitionParams: hideTransitionOptions\n }\n }\"\n (@animation.start)=\"onAnimationStart($event)\"\n (@animation.done)=\"onAnimationEnd($event)\">\n <div (click)=\"onContentClick()\" (mousedown)=\"onContentClick()\">\n <ng-container *ngIf=\"items.length < 1\">\n <ng-content></ng-content>\n </ng-container>\n <div\n *ngIf=\"items.length > 0\"\n class=\"cps-menu-content\"\n [ngClass]=\"{ 'cps-menu-content-compressed': compressed }\">\n <div *ngIf=\"header && !compressed\" class=\"cps-menu-header\">\n {{ header }}\n </div>\n <div\n *ngFor=\"let item of items; let i = index\"\n (click)=\"onItemClick($event, item)\"\n [ngClass]=\"{\n 'cps-menu-item-disabled': item.disabled,\n 'cps-menu-item-first': i === 0,\n 'cps-menu-item-compressed': compressed\n }\"\n class=\"cps-menu-item\">\n <div class=\"cps-menu-item-icon\" *ngIf=\"withIcons\">\n <cps-icon\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.disabled ? 'text-light' : 'text-dark'\"\n [size]=\"compressed ? 'small' : 'normal'\"></cps-icon>\n </div>\n <div class=\"cps-menu-item-content\">\n <span class=\"cps-menu-item-content-title\">{{ item.title }}</span>\n <span\n *ngIf=\"item.desc && !compressed\"\n class=\"cps-menu-item-content-desc\"\n >{{ item.desc }}</span\n >\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".cps-menu-container{background:#ffffff;border:0 none;box-shadow:0 1px 3px #0000004d;position:absolute;margin-top:14px;top:0;left:0}.cps-menu-container:not(.cps-menu-no-arrow):before{border-width:14px;margin-left:-14px;border:solid transparent;border-color:#fff0;border-bottom-color:var(--cps-color-line-light)}.cps-menu-container:not(.cps-menu-no-arrow):after,.cps-menu-container:not(.cps-menu-no-arrow):before{bottom:100%;left:var(--overlayArrowLeft, 12);content:\" \";height:0;width:0;position:absolute;pointer-events:none}.cps-menu-container .cps-menu-content{padding:.75rem}.cps-menu-container .cps-menu-content{display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}.cps-menu-container .cps-menu-content .cps-menu-header{display:flex;align-items:center;min-height:50px;padding-bottom:8px;font-weight:600;color:var(--cps-color-text-dark);cursor:default}.cps-menu-container .cps-menu-content .cps-menu-item{display:flex;align-items:center;padding:8px 48px 8px 0;border-top:1px solid rgba(0,0,0,.1215686275);cursor:pointer;min-height:58px}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-icon{width:48px;align-items:center;display:flex}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-icon cps-icon{margin-left:8px}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-content{display:flex;flex-direction:column}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-content .cps-menu-item-content-title{font-weight:600;font-size:15px;line-height:150%;color:var(--cps-color-text-dark)}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-content .cps-menu-item-content-desc{font-size:12px;line-height:150%;color:var(--cps-color-text-light)}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-disabled{pointer-events:none}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-disabled .cps-menu-item-content .cps-menu-item-content-title{color:var(--cps-color-text-light)}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-disabled .cps-menu-item-content .cps-menu-item-content-desc{color:var(--cps-color-text-lightest)}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):hover{background:#f8f4f5}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):hover .cps-menu-item-content .cps-menu-item-content-title{color:var(--cps-color-calm)}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):hover .cps-menu-item-content .cps-menu-item-content-desc{color:var(--cps-color-text-mild)}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):not(.cps-menu-item-compressed):hover .cps-menu-item-icon cps-icon i{color:var(--cps-color-calm)!important}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):active{background:#f1eaec}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-first{border-top:none}.cps-menu-container .cps-menu-content.cps-menu-content-compressed{padding:0}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item{padding:0 16px;min-height:40px}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item .cps-menu-item-icon{width:36px}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item .cps-menu-item-content .cps-menu-item-content-title{font-weight:500}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item:not(.cps-menu-item-disabled) .cps-menu-item-icon cps-icon i{color:var(--cps-color-prepared)!important}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item:not(.cps-menu-item-disabled) .cps-menu-item-content .cps-menu-item-content-title{color:var(--cps-color-prepared)}.cps-menu-container:not(.cps-menu-no-arrow):after{border-width:12px;margin-left:-12px;border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.cps-menu-container-flipped{margin-top:0;margin-bottom:10px}.cps-menu-container:not(.cps-menu-no-arrow):after{border-width:12px;margin-left:-12px}.cps-menu-container:not(.cps-menu-no-arrow):before{border-width:14px;margin-left:-14px}.cps-menu-container-flipped:not(.cps-menu-no-arrow):after,.cps-menu-container-flipped:not(.cps-menu-no-arrow):before{bottom:auto;top:100%}.cps-menu-container.cps-menu-container-flipped:not(.cps-menu-no-arrow):after{border-bottom-color:transparent}.cps-menu-container.cps-menu-container-flipped:not(.cps-menu-no-arrow):before{border-bottom-color:transparent}.cps-menu-no-arrow{margin-top:0;margin-bottom:0}\n"] }]
3752
+ }], ctorParameters: function () {
3753
+ return [{ type: Document, decorators: [{
3754
+ type: Inject,
3755
+ args: [DOCUMENT]
3756
+ }] }, { type: undefined, decorators: [{
3757
+ type: Inject,
3758
+ args: [PLATFORM_ID]
3759
+ }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i4.PrimeNGConfig }, { type: i4.OverlayService }];
3760
+ }, propDecorators: { header: [{
3761
+ type: Input
3762
+ }], items: [{
3763
+ type: Input
3764
+ }], withArrow: [{
3765
+ type: Input
3766
+ }], compressed: [{
3767
+ type: Input
3768
+ }], focusOnShow: [{
3769
+ type: Input
3770
+ }], containerClass: [{
3771
+ type: Input
3772
+ }], menuShown: [{
3773
+ type: Output
3774
+ }], menuHidden: [{
3775
+ type: Output
3776
+ }] } });
3777
+
3435
3778
  class CpsPaginatorComponent {
3436
3779
  constructor() {
3437
3780
  this.first = 0;
@@ -4165,5 +4508,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
4165
4508
  * Generated bundle index. Do not edit.
4166
4509
  */
4167
4510
 
4168
- export { CpsAutocompleteComponent, CpsButtonComponent, CpsButtonToggleComponent, CpsCheckboxComponent, CpsChipComponent, CpsDatepickerComponent, CpsExpansionPanelComponent, CpsIconComponent, CpsInfoCircleComponent, CpsInputComponent, CpsLoaderComponent, CpsPaginatorComponent, CpsProgressCircularComponent, CpsProgressLinearComponent, CpsRadioComponent, CpsSelectComponent, CpsTableColumnSortableDirective, CpsTableComponent, CpsTagComponent, CpsTextareaComponent, CpsTooltipDirective, CpsTreeAutocompleteComponent, CpsTreeSelectComponent, getCSSColor, getCpsColors, getTextColor, iconNames, tableFactory };
4511
+ export { CpsAutocompleteComponent, CpsButtonComponent, CpsButtonToggleComponent, CpsCheckboxComponent, CpsChipComponent, CpsDatepickerComponent, CpsExpansionPanelComponent, CpsIconComponent, CpsInfoCircleComponent, CpsInputComponent, CpsLoaderComponent, CpsMenuComponent, CpsPaginatorComponent, CpsProgressCircularComponent, CpsProgressLinearComponent, CpsRadioComponent, CpsSelectComponent, CpsTableColumnSortableDirective, CpsTableComponent, CpsTagComponent, CpsTextareaComponent, CpsTooltipDirective, CpsTreeAutocompleteComponent, CpsTreeSelectComponent, getCSSColor, getCpsColors, getTextColor, iconNames, tableFactory };
4169
4512
  //# sourceMappingURL=cps-ui-kit.mjs.map