cps-ui-kit 0.39.0 → 0.40.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,342 @@ 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.menuShown = new EventEmitter();
3456
+ this.menuHidden = new EventEmitter();
3457
+ this.withIcons = true;
3458
+ this.autoZIndex = true;
3459
+ this.baseZIndex = 0;
3460
+ this.showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';
3461
+ this.hideTransitionOptions = '.1s linear';
3462
+ this.dismissable = true;
3463
+ this.overlayVisible = false;
3464
+ this.render = false;
3465
+ this.isOverlayAnimationInProgress = false;
3466
+ this.selfClick = false;
3467
+ }
3468
+ toggle(event, target) {
3469
+ if (this.isOverlayAnimationInProgress) {
3470
+ return;
3471
+ }
3472
+ if (this.overlayVisible) {
3473
+ if (this.hasTargetChanged(event, target)) {
3474
+ this.destroyCallback = () => {
3475
+ this.show(null, target || event.currentTarget || event.target);
3476
+ };
3477
+ }
3478
+ this.hide();
3479
+ }
3480
+ else {
3481
+ this.show(event, target);
3482
+ }
3483
+ }
3484
+ show(event, target) {
3485
+ target && event && event.stopPropagation();
3486
+ if (this.isOverlayAnimationInProgress) {
3487
+ return;
3488
+ }
3489
+ this.target = target || event.currentTarget || event.target;
3490
+ this.overlayVisible = true;
3491
+ this.render = true;
3492
+ this.cd.markForCheck();
3493
+ }
3494
+ hide() {
3495
+ this.overlayVisible = false;
3496
+ this.cd.markForCheck();
3497
+ }
3498
+ onItemClick(event, item) {
3499
+ if (item.disabled)
3500
+ return;
3501
+ if (item.action) {
3502
+ item.action({
3503
+ originalEvent: event,
3504
+ item
3505
+ });
3506
+ }
3507
+ this.hide();
3508
+ }
3509
+ bindDocumentClickListener() {
3510
+ if (isPlatformBrowser(this.platformId)) {
3511
+ if (!this.documentClickListener && this.dismissable) {
3512
+ this.zone.runOutsideAngular(() => {
3513
+ const documentEvent = DomHandler.isIOS() ? 'touchstart' : 'click';
3514
+ const documentTarget = this.el
3515
+ ? this.el.nativeElement.ownerDocument
3516
+ : this.document;
3517
+ this.documentClickListener = this.renderer.listen(documentTarget, documentEvent, (event) => {
3518
+ var _a;
3519
+ if (!((_a = this.container) === null || _a === void 0 ? void 0 : _a.contains(event.target)) &&
3520
+ this.target !== event.target &&
3521
+ !this.target.contains(event.target) &&
3522
+ !this.selfClick) {
3523
+ this.zone.run(() => {
3524
+ this.hide();
3525
+ });
3526
+ }
3527
+ this.selfClick = false;
3528
+ this.cd.markForCheck();
3529
+ });
3530
+ });
3531
+ }
3532
+ }
3533
+ }
3534
+ unbindDocumentClickListener() {
3535
+ if (this.documentClickListener) {
3536
+ this.documentClickListener();
3537
+ this.documentClickListener = null;
3538
+ this.selfClick = false;
3539
+ }
3540
+ }
3541
+ onOverlayClick(event) {
3542
+ this.overlayService.add({
3543
+ originalEvent: event,
3544
+ target: this.el.nativeElement
3545
+ });
3546
+ this.selfClick = true;
3547
+ }
3548
+ onContentClick() {
3549
+ this.selfClick = true;
3550
+ }
3551
+ hasTargetChanged(event, target) {
3552
+ return (this.target != null &&
3553
+ this.target !== (target || event.currentTarget || event.target));
3554
+ }
3555
+ appendContainer() {
3556
+ this.renderer.appendChild(this.document.body, this.container);
3557
+ }
3558
+ restoreAppend() {
3559
+ if (this.container) {
3560
+ this.renderer.appendChild(this.el.nativeElement, this.container);
3561
+ }
3562
+ }
3563
+ align() {
3564
+ var _a, _b, _c, _d, _e;
3565
+ if (this.autoZIndex) {
3566
+ ZIndexUtils.set('overlay', this.container, this.baseZIndex + this.config.zIndex.overlay);
3567
+ }
3568
+ DomHandler.absolutePosition(this.container, this.target);
3569
+ const containerOffset = DomHandler.getOffset(this.container);
3570
+ const targetOffset = DomHandler.getOffset(this.target);
3571
+ if (this.withArrow) {
3572
+ 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';
3573
+ let arrowLeft = 0;
3574
+ if (containerOffset.left < targetOffset.left) {
3575
+ arrowLeft =
3576
+ 20 +
3577
+ targetOffset.left -
3578
+ containerOffset.left -
3579
+ parseFloat(borderRadius) * 2;
3580
+ }
3581
+ else {
3582
+ const containerWidth = ((_c = this.container) === null || _c === void 0 ? void 0 : _c.offsetWidth) || 0;
3583
+ const targetWidth = ((_d = this.target) === null || _d === void 0 ? void 0 : _d.offsetWidth) || 0;
3584
+ arrowLeft = Math.min(targetWidth / 2, containerWidth / 2);
3585
+ }
3586
+ arrowLeft = Math.max(arrowLeft, 12);
3587
+ (_e = this.container) === null || _e === void 0 ? void 0 : _e.style.setProperty('--overlayArrowLeft', `${arrowLeft}px`);
3588
+ }
3589
+ if (containerOffset.top < targetOffset.top) {
3590
+ DomHandler.addClass(this.container, 'cps-menu-container-flipped');
3591
+ }
3592
+ }
3593
+ onAnimationStart(event) {
3594
+ if (event.toState === 'open') {
3595
+ if (this.compressed)
3596
+ this.withIcons = this.items.some((itm) => itm.icon);
3597
+ this.container = event.element;
3598
+ this.appendContainer();
3599
+ this.align();
3600
+ this.bindDocumentClickListener();
3601
+ this.bindDocumentResizeListener();
3602
+ this.bindScrollListener();
3603
+ if (this.focusOnShow) {
3604
+ this.focus();
3605
+ }
3606
+ this.overlayEventListener = (e) => {
3607
+ if (this.container && this.container.contains(e.target)) {
3608
+ this.selfClick = true;
3609
+ }
3610
+ };
3611
+ this.overlaySubscription = this.overlayService.clickObservable.subscribe(this.overlayEventListener);
3612
+ this.menuShown.emit(null);
3613
+ }
3614
+ this.isOverlayAnimationInProgress = true;
3615
+ }
3616
+ onAnimationEnd(event) {
3617
+ switch (event.toState) {
3618
+ case 'void':
3619
+ if (this.destroyCallback) {
3620
+ this.destroyCallback();
3621
+ this.destroyCallback = null;
3622
+ }
3623
+ if (this.overlaySubscription) {
3624
+ this.overlaySubscription.unsubscribe();
3625
+ }
3626
+ break;
3627
+ case 'close':
3628
+ if (this.autoZIndex) {
3629
+ ZIndexUtils.clear(this.container);
3630
+ }
3631
+ if (this.overlaySubscription) {
3632
+ this.overlaySubscription.unsubscribe();
3633
+ }
3634
+ this.onContainerDestroy();
3635
+ this.menuHidden.emit({});
3636
+ this.render = false;
3637
+ break;
3638
+ }
3639
+ this.isOverlayAnimationInProgress = false;
3640
+ }
3641
+ focus() {
3642
+ const focusable = DomHandler.findSingle(this.container, '[autofocus]');
3643
+ if (focusable) {
3644
+ this.zone.runOutsideAngular(() => {
3645
+ setTimeout(() => focusable.focus(), 5);
3646
+ });
3647
+ }
3648
+ }
3649
+ onWindowResize() {
3650
+ if (this.overlayVisible && !DomHandler.isTouchDevice()) {
3651
+ this.hide();
3652
+ }
3653
+ }
3654
+ bindDocumentResizeListener() {
3655
+ if (isPlatformBrowser(this.platformId)) {
3656
+ if (!this.documentResizeListener) {
3657
+ const window = this.document.defaultView;
3658
+ this.documentResizeListener = this.renderer.listen(window, 'resize', this.onWindowResize.bind(this));
3659
+ }
3660
+ }
3661
+ }
3662
+ unbindDocumentResizeListener() {
3663
+ if (this.documentResizeListener) {
3664
+ this.documentResizeListener();
3665
+ this.documentResizeListener = null;
3666
+ }
3667
+ }
3668
+ bindScrollListener() {
3669
+ if (isPlatformBrowser(this.platformId)) {
3670
+ if (!this.scrollHandler) {
3671
+ this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {
3672
+ if (this.overlayVisible) {
3673
+ this.hide();
3674
+ }
3675
+ });
3676
+ }
3677
+ this.scrollHandler.bindScrollListener();
3678
+ }
3679
+ }
3680
+ unbindScrollListener() {
3681
+ if (this.scrollHandler) {
3682
+ this.scrollHandler.unbindScrollListener();
3683
+ }
3684
+ }
3685
+ onContainerDestroy() {
3686
+ if (!this.cd.destroyed) {
3687
+ this.target = null;
3688
+ }
3689
+ this.unbindDocumentClickListener();
3690
+ this.unbindDocumentResizeListener();
3691
+ this.unbindScrollListener();
3692
+ }
3693
+ ngOnDestroy() {
3694
+ if (this.scrollHandler) {
3695
+ this.scrollHandler.destroy();
3696
+ this.scrollHandler = null;
3697
+ }
3698
+ if (this.container && this.autoZIndex) {
3699
+ ZIndexUtils.clear(this.container);
3700
+ }
3701
+ if (!this.cd.destroyed) {
3702
+ this.target = null;
3703
+ }
3704
+ this.destroyCallback = null;
3705
+ if (this.container) {
3706
+ this.restoreAppend();
3707
+ this.onContainerDestroy();
3708
+ }
3709
+ if (this.overlaySubscription) {
3710
+ this.overlaySubscription.unsubscribe();
3711
+ }
3712
+ }
3713
+ }
3714
+ 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 });
3715
+ 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" }, 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 (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: [
3716
+ trigger('animation', [
3717
+ state('void', style({
3718
+ transform: 'scaleY(0.8)',
3719
+ opacity: 0
3720
+ })),
3721
+ state('close', style({
3722
+ opacity: 0
3723
+ })),
3724
+ state('open', style({
3725
+ transform: 'translateY(0)',
3726
+ opacity: 1
3727
+ })),
3728
+ transition('void => open', animate('{{showTransitionParams}}')),
3729
+ transition('open => close', animate('{{hideTransitionParams}}'))
3730
+ ])
3731
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3732
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsMenuComponent, decorators: [{
3733
+ type: Component,
3734
+ args: [{ standalone: true, imports: [CommonModule, SharedModule, CpsIconComponent], selector: 'cps-menu', animations: [
3735
+ trigger('animation', [
3736
+ state('void', style({
3737
+ transform: 'scaleY(0.8)',
3738
+ opacity: 0
3739
+ })),
3740
+ state('close', style({
3741
+ opacity: 0
3742
+ })),
3743
+ state('open', style({
3744
+ transform: 'translateY(0)',
3745
+ opacity: 1
3746
+ })),
3747
+ transition('void => open', animate('{{showTransitionParams}}')),
3748
+ transition('open => close', animate('{{hideTransitionParams}}'))
3749
+ ])
3750
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n *ngIf=\"render\"\n class=\"cps-menu-container\"\n [ngClass]=\"{ 'cps-menu-no-arrow': !withArrow }\"\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"] }]
3751
+ }], ctorParameters: function () {
3752
+ return [{ type: Document, decorators: [{
3753
+ type: Inject,
3754
+ args: [DOCUMENT]
3755
+ }] }, { type: undefined, decorators: [{
3756
+ type: Inject,
3757
+ args: [PLATFORM_ID]
3758
+ }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i4.PrimeNGConfig }, { type: i4.OverlayService }];
3759
+ }, propDecorators: { header: [{
3760
+ type: Input
3761
+ }], items: [{
3762
+ type: Input
3763
+ }], withArrow: [{
3764
+ type: Input
3765
+ }], compressed: [{
3766
+ type: Input
3767
+ }], focusOnShow: [{
3768
+ type: Input
3769
+ }], menuShown: [{
3770
+ type: Output
3771
+ }], menuHidden: [{
3772
+ type: Output
3773
+ }] } });
3774
+
3435
3775
  class CpsPaginatorComponent {
3436
3776
  constructor() {
3437
3777
  this.first = 0;
@@ -4165,5 +4505,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
4165
4505
  * Generated bundle index. Do not edit.
4166
4506
  */
4167
4507
 
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 };
4508
+ 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
4509
  //# sourceMappingURL=cps-ui-kit.mjs.map