keevo-components 2.0.267 → 2.0.269

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.
@@ -50,9 +50,12 @@ export class KvKanbanComponent {
50
50
  openCardMenu(event, item) {
51
51
  event.stopPropagation();
52
52
  this.currentCard = item;
53
- this.currentMenuOptions = this.getActionsForCard(item);
54
53
  this.onSelectedCard.emit(item);
54
+ this.currentMenuOptions = this.getActionsForCard(item);
55
55
  this.sharedMenu()?.toggle(event);
56
+ setTimeout(() => {
57
+ this.currentMenuOptions = this.getActionsForCard(item);
58
+ }, 0);
56
59
  }
57
60
  onScroll(event, columnId) {
58
61
  const element = event.target;
@@ -97,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
97
100
  type: Component,
98
101
  args: [{ standalone: true, selector: 'kv-kanban', imports: [CommonModule, DragDropModule, MenuModule, TooltipModule], template: "<div class=\"flex w-full h-full\">\r\n <div class=\"board-wrapper flex-column lg:flex-row\" cdkDropListGroup>\r\n \r\n @for(config of columnConfigs(); track $index) {\r\n\r\n <div class=\"board-column\" [style.flex]=\"getColumnFlex()\">\r\n \r\n <div class=\"column-header\" [style.backgroundColor]=\"config.corTitulo\">\r\n <span class=\"text-base font-semibold\">{{ config.nome }}</span>\r\n @if(this.showColumnsCounter()) {\r\n <span class=\"column-count-badge px-2 py-1\" [style.color]=\"config.corTitulo\">{{ config.contador | number:'2.0' }}</span>\r\n }\r\n </div>\r\n\r\n <div \r\n class=\"column-content\"\r\n cdkDropList\r\n [id]=\"config.id.toString()\"\r\n [cdkDropListData]=\"getColumnList()(config.id)\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n (scroll)=\"onScroll($event, config.id)\">\r\n\r\n\r\n @for(item of getColumnList()(config.id); track $index) {\r\n \r\n <div class=\"kanban-card\" cdkDrag [cdkDragDisabled]=\"!enableDrag()\">\r\n\r\n @if(actions().length > 0) {\r\n <span class=\"material-symbols-outlined card-menu-btn text-xl text-black-alpha-50 hover:surface-200 border-round-lg\" (click)=\"openCardMenu($event, item)\">\r\n more_vert\r\n </span>\r\n }\r\n \r\n\r\n @if (item.status && item.status.length > 0) {\r\n <div class=\"card-header mt-1 mr-3 gap-2 overflow-hidden\" \r\n [pTooltip]=\"getStatusTooltip(item.status)\" \r\n tooltipPosition=\"top\">\r\n @for(statusItem of item.status; track $index) {\r\n <span class=\"status-tag font-semibold text-xs border-round-3xl py-1 px-2\" \r\n [style.backgroundColor]=\"statusItem.statusColor\"\r\n [style.color]=\"statusItem.statusLabelColor\">\r\n {{ statusItem.label }}\r\n </span>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"card-body overflow-hidden ml-1\">\r\n <p class=\"p-0 m-0 text-sm text-black-alpha-70 font-semibold mb-2 pr-4 white-space-nowrap\" pTooltip=\"{{item.titulo}}\" tooltipPosition=\"top\">\r\n {{ item.titulo }}\r\n </p>\r\n \r\n <ng-container [ngTemplateOutlet]=\"cardTemplate()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </div>\r\n\r\n <div *cdkDragPlaceholder class=\"custom-placeholder\"></div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n <div class=\"column-footer text-xs text-black-alpha-80\">\r\n Ver {{ getColumnList()(config.id).length }} de {{ config.contador }}\r\n </div>\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n</div>\r\n\r\n<p-menu #sharedMenu [model]=\"currentMenuOptions\" [popup]=\"true\" appendTo=\"body\"></p-menu>", styles: [".board-wrapper{display:flex;flex:1 1 0%;gap:16px;overflow-x:auto;padding:20px;height:100%;min-height:0}.board-column{display:flex;flex-direction:column;background-color:#f0f2f5;border-radius:18px;min-width:280px;overflow:visible;min-height:400px;max-height:600px}@media (min-width: 1024px){.board-column{height:100%;max-height:100%;min-height:0}}.column-header{padding:10px 20px;margin:7px;border-radius:18px;color:#fff;display:flex;justify-content:space-between;align-items:center;font-weight:600;gap:8px}.column-header span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.column-header .column-count-badge{background-color:#ffffffe6;border-radius:12px;font-size:.85rem;font-weight:700;flex-shrink:0}.column-content{flex:1 1 0;overflow-y:auto;overflow-x:visible;padding:12px;min-height:0}.column-content::-webkit-scrollbar{width:6px}.column-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.kanban-card{background:#fff;border-radius:16px;padding:12px;margin-bottom:8px;box-shadow:0 4px 6px #0000001a;cursor:grab;transition:box-shadow .2s;position:relative}.kanban-card:active{cursor:grabbing}.kanban-card:hover{box-shadow:0 4px 8px #0000001a}.kanban-card.cdk-drag-disabled,.kanban-card.cdk-drag-disabled:active{cursor:default}.card-header{display:flex;margin-bottom:8px;flex-wrap:nowrap}.card-header .status-tag{white-space:nowrap;flex-shrink:0}.card-menu-btn{position:absolute;top:12px;right:8px;cursor:pointer;z-index:10;-webkit-user-select:none;user-select:none}.column-footer{padding:10px;text-align:center}.cdk-drag-preview{box-sizing:border-box;border-radius:8px;box-shadow:0 5px 15px #0003;background:#fff}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.column-content.cdk-drop-list-dragging .kanban-card:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .p-menu{scale:.8;z-index:1000!important}\n"] }]
99
102
  }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Yta2FuYmFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWthbmJhbi9rdi1rYW5iYW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Yta2FuYmFuL2t2LWthbmJhbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQWUsY0FBYyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sY0FBYyxDQUFDO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBU2hELE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFTRSxlQUFVLEdBQUcsU0FBUyxDQUFPLFlBQVksQ0FBQyxDQUFDO1FBRTNDLHVCQUFrQixHQUFlLEVBQUUsQ0FBQztRQUNwQyxnQkFBVyxHQUFzQixJQUFJLENBQUM7UUFFdEMsWUFBTyxHQUFHLEtBQUssQ0FBYSxFQUFFLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssQ0FBdUIsRUFBRSxDQUFDLENBQUM7UUFDaEQsZ0JBQVcsR0FBRyxLQUFLLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsS0FBSyxDQUEwQixJQUFJLENBQUMsQ0FBQztRQUNwRCx1QkFBa0IsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDMUMsZUFBVSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNsQyxnQkFBVyxHQUFHLE1BQU0sRUFBTyxDQUFDO1FBQzVCLG9CQUFlLEdBQUcsTUFBTSxFQUF3QyxDQUFDO1FBQ2pFLG9CQUFlLEdBQUcsTUFBTSxFQUF3QixDQUFDO1FBQ2pELG1CQUFjLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFFdEMsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDbkUsT0FBTyxJQUFJLEVBQUUsUUFBUSxJQUFJLEVBQWtCLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7S0FvRko7SUFsRkMsSUFBSSxDQUFDLEtBQWdDO1FBQ25DLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakYsQ0FBQzthQUFNLENBQUM7WUFDTixpQkFBaUIsQ0FDZixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUM1QixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFDcEIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLFlBQVksQ0FDbkIsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsSUFBSSxFQUFFLFNBQVM7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDeEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtTQUMvQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQWtCLEVBQUUsSUFBZ0I7UUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFpQixFQUFFLElBQVM7UUFDdkMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVksRUFBRSxRQUFnQjtRQUNyQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUM1QyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBRTdGLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUFnQjtRQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNqRSxPQUFPLE1BQU0sRUFBRSxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFnQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLEdBQUcsTUFBTTtZQUNULE9BQU8sRUFBRSxDQUFDLEtBQVcsRUFBRSxFQUFFO2dCQUN2QixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsQ0FBQztnQkFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2pELElBQUksWUFBWSxLQUFLLENBQUM7WUFBRSxPQUFPLFdBQVcsQ0FBQztRQUUzQyxPQUFPLG9CQUFvQixDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFNBQVMsWUFBWSxHQUFHLENBQUM7SUFDN0UsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWE7UUFDNUIsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBdkdVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHlxQ0NmOUIsMmpHQXlFeUYsNDlERDVEN0UsWUFBWSw2UEFBRSxjQUFjLHd0Q0FBRSxVQUFVLGlxQkFBRSxhQUFhOzsyRkFFdEQsaUJBQWlCO2tCQVA3QixTQUFTO2lDQUNJLElBQUksWUFDTixXQUFXLFdBR1osQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIFRlbXBsYXRlUmVmLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgS2FuYmFuQ29sdW1uLCBLYW5iYW5DYXJkLCBLYW5iYW5BY3Rpb24sIEthbmJhbkNvbHVtbkNvbmZpZywgS2FuYmFuQ29sdW1uTGlzdCB9IGZyb20gJy4va3Yta2FuYmFuLW1vZGVscy5tb2RlbCc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBEcmFnRHJvcE1vZHVsZSwgbW92ZUl0ZW1JbkFycmF5LCB0cmFuc2ZlckFycmF5SXRlbSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNZW51TW9kdWxlLCBNZW51IH0gZnJvbSAncHJpbWVuZy9tZW51JztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ2t2LWthbmJhbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWthbmJhbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4va3Yta2FuYmFuLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHJhZ0Ryb3BNb2R1bGUsIE1lbnVNb2R1bGUsIFRvb2x0aXBNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkthbmJhbkNvbXBvbmVudCB7XHJcblxyXG4gIHNoYXJlZE1lbnUgPSB2aWV3Q2hpbGQ8TWVudT4oJ3NoYXJlZE1lbnUnKTtcclxuXHJcbiAgY3VycmVudE1lbnVPcHRpb25zOiBNZW51SXRlbVtdID0gW107XHJcbiAgY3VycmVudENhcmQ6IEthbmJhbkNhcmQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgYWN0aW9ucyA9IGlucHV0PE1lbnVJdGVtW10+KFtdKTtcclxuICBjb2x1bW5Db25maWdzID0gaW5wdXQ8S2FuYmFuQ29sdW1uQ29uZmlnW10+KFtdKTtcclxuICBjb2x1bW5MaXN0cyA9IGlucHV0PEthbmJhbkNvbHVtbkxpc3RbXT4oW10pO1xyXG4gIGNhcmRUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPihudWxsKTtcclxuICBzaG93Q29sdW1uc0NvdW50ZXIgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBlbmFibGVEcmFnID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgb25DYXJkTW92ZWQgPSBvdXRwdXQ8YW55PigpO1xyXG4gIG9uQWN0aW9uQ2xpY2tlZCA9IG91dHB1dDx7IGFjdGlvbjogc3RyaW5nLCBjYXJkOiBLYW5iYW5DYXJkIH0+KCk7XHJcbiAgb25Mb2FkTW9yZUNhcmRzID0gb3V0cHV0PHsgY29sdW1uSWQ6IG51bWJlciB9PigpO1xyXG4gIG9uU2VsZWN0ZWRDYXJkID0gb3V0cHV0PEthbmJhbkNhcmQ+KCk7XHJcblxyXG4gIGdldENvbHVtbkxpc3QgPSBjb21wdXRlZCgoKSA9PiAoY29sdW1uSWQ6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgbGlzdCA9IHRoaXMuY29sdW1uTGlzdHMoKS5maW5kKGwgPT4gbC5pZENvbHVuYSA9PT0gY29sdW1uSWQpO1xyXG4gICAgcmV0dXJuIGxpc3Q/Lmxpc3RhZ2VtIHx8IFtdIGFzIEthbmJhbkNhcmRbXTtcclxuICB9KTtcclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8S2FuYmFuQ2FyZFtdPikge1xyXG4gICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcclxuICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oXHJcbiAgICAgICAgZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSxcclxuICAgICAgICBldmVudC5jb250YWluZXIuZGF0YSxcclxuICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxyXG4gICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleCxcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtb3ZlZENhcmQgPSBldmVudC5jb250YWluZXIuZGF0YVtldmVudC5jdXJyZW50SW5kZXhdO1xyXG4gICAgXHJcbiAgICB0aGlzLm9uQ2FyZE1vdmVkLmVtaXQoe1xyXG4gICAgICBpdGVtOiBtb3ZlZENhcmQsXHJcbiAgICAgIGZyb21Db2x1bW5JZDogZXZlbnQucHJldmlvdXNDb250YWluZXIuaWQsXHJcbiAgICAgIHRvQ29sdW1uSWQ6IGV2ZW50LmNvbnRhaW5lci5pZFxyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIHRoaXMub25TZWxlY3RlZENhcmQuZW1pdChtb3ZlZENhcmQpO1xyXG4gIH1cclxuXHJcbiAgb25BY3Rpb25DbGljayhhY3Rpb25Db2RlOiBzdHJpbmcsIGNhcmQ6IEthbmJhbkNhcmQpIHtcclxuICAgIHRoaXMub25BY3Rpb25DbGlja2VkLmVtaXQoeyBhY3Rpb246IGFjdGlvbkNvZGUsIGNhcmQgfSk7XHJcbiAgICBcclxuICAgIHRoaXMub25TZWxlY3RlZENhcmQuZW1pdChjYXJkKTtcclxuICB9XHJcblxyXG4gIG9wZW5DYXJkTWVudShldmVudDogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRDYXJkID0gaXRlbTtcclxuICAgIHRoaXMuY3VycmVudE1lbnVPcHRpb25zID0gdGhpcy5nZXRBY3Rpb25zRm9yQ2FyZChpdGVtKTtcclxuXHJcbiAgICB0aGlzLm9uU2VsZWN0ZWRDYXJkLmVtaXQoaXRlbSk7XHJcbiAgICBcclxuICAgIHRoaXMuc2hhcmVkTWVudSgpPy50b2dnbGUoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25TY3JvbGwoZXZlbnQ6IEV2ZW50LCBjb2x1bW5JZDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29uc3QgdGhyZXNob2xkID0gNTA7XHJcbiAgICBjb25zdCBhdEJvdHRvbSA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gZWxlbWVudC5zY3JvbGxUb3AgLSBlbGVtZW50LmNsaWVudEhlaWdodCA8IHRocmVzaG9sZDtcclxuICAgIFxyXG4gICAgaWYgKGF0Qm90dG9tKSB7XHJcbiAgICAgIHRoaXMub25Mb2FkTW9yZUNhcmRzLmVtaXQoeyBjb2x1bW5JZCB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENvbHVtblRvdGFsSXRlbXMoY29sdW1uSWQ6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbHVtbkNvbmZpZ3MoKS5maW5kKGMgPT4gYy5pZCA9PT0gY29sdW1uSWQpO1xyXG4gICAgcmV0dXJuIGNvbmZpZz8uY29udGFkb3IgfHwgMDtcclxuICB9XHJcblxyXG4gIGdldEFjdGlvbnNGb3JDYXJkKGNhcmQ6IEthbmJhbkNhcmQpOiBNZW51SXRlbVtdIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGlvbnMoKS5tYXAoYWN0aW9uID0+ICh7XHJcbiAgICAgIC4uLmFjdGlvbixcclxuICAgICAgY29tbWFuZDogKGV2ZW50PzogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGFjdGlvbi5jb21tYW5kKSB7XHJcbiAgICAgICAgICBhY3Rpb24uY29tbWFuZChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChhY3Rpb24ubGFiZWwgJiYgdGhpcy5jdXJyZW50Q2FyZCkge1xyXG4gICAgICAgICAgdGhpcy5vbkFjdGlvbkNsaWNrKGFjdGlvbi5sYWJlbCwgdGhpcy5jdXJyZW50Q2FyZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb2x1bW5GbGV4KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0b3RhbENvbHVtbnMgPSB0aGlzLmNvbHVtbkNvbmZpZ3MoKS5sZW5ndGg7XHJcbiAgICBpZiAodG90YWxDb2x1bW5zID09PSAwKSByZXR1cm4gJzEgMSAyODBweCc7XHJcbiAgICBcclxuICAgIHJldHVybiBgMSAxIGNhbGMoKDEwMCUgLSAkeyh0b3RhbENvbHVtbnMgLSAxKSAqIDE2fXB4KSAvICR7dG90YWxDb2x1bW5zfSlgO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdHVzVG9vbHRpcChzdGF0dXM6IGFueVtdKTogc3RyaW5nIHtcclxuICAgIGlmICghc3RhdHVzIHx8IHN0YXR1cy5sZW5ndGggPT09IDApIHJldHVybiAnJztcclxuICAgIHJldHVybiBzdGF0dXMubWFwKHMgPT4gcy5sYWJlbCkuam9pbignLCAnKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBoLWZ1bGxcIj5cclxuICA8ZGl2IGNsYXNzPVwiYm9hcmQtd3JhcHBlciBmbGV4LWNvbHVtbiBsZzpmbGV4LXJvd1wiIGNka0Ryb3BMaXN0R3JvdXA+XHJcbiAgICBcclxuICAgIEBmb3IoY29uZmlnIG9mIGNvbHVtbkNvbmZpZ3MoKTsgdHJhY2sgJGluZGV4KSB7XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9hcmQtY29sdW1uXCIgW3N0eWxlLmZsZXhdPVwiZ2V0Q29sdW1uRmxleCgpXCI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1oZWFkZXJcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImNvbmZpZy5jb3JUaXR1bG9cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGRcIj57eyBjb25maWcubm9tZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIEBpZih0aGlzLnNob3dDb2x1bW5zQ291bnRlcigpKSB7XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLWNvdW50LWJhZGdlIHB4LTIgcHktMVwiIFtzdHlsZS5jb2xvcl09XCJjb25maWcuY29yVGl0dWxvXCI+e3sgY29uZmlnLmNvbnRhZG9yIHwgbnVtYmVyOicyLjAnIH19PC9zcGFuPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgY2xhc3M9XCJjb2x1bW4tY29udGVudFwiXHJcbiAgICAgICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICAgICAgW2lkXT1cImNvbmZpZy5pZC50b1N0cmluZygpXCJcclxuICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZ2V0Q29sdW1uTGlzdCgpKGNvbmZpZy5pZClcIlxyXG4gICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxyXG4gICAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQsIGNvbmZpZy5pZClcIj5cclxuXHJcblxyXG4gICAgICAgICAgQGZvcihpdGVtIG9mIGdldENvbHVtbkxpc3QoKShjb25maWcuaWQpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYW5iYW4tY2FyZFwiIGNka0RyYWcgW2Nka0RyYWdEaXNhYmxlZF09XCIhZW5hYmxlRHJhZygpXCI+XHJcblxyXG4gICAgICAgICAgICAgIEBpZihhY3Rpb25zKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGNhcmQtbWVudS1idG4gdGV4dC14bCB0ZXh0LWJsYWNrLWFscGhhLTUwIGhvdmVyOnN1cmZhY2UtMjAwIGJvcmRlci1yb3VuZC1sZ1wiIChjbGljayk9XCJvcGVuQ2FyZE1lbnUoJGV2ZW50LCBpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICBtb3JlX3ZlcnRcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5zdGF0dXMgJiYgaXRlbS5zdGF0dXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIG10LTEgbXItMyBnYXAtMiBvdmVyZmxvdy1oaWRkZW5cIiBcclxuICAgICAgICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cImdldFN0YXR1c1Rvb2x0aXAoaXRlbS5zdGF0dXMpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yKHN0YXR1c0l0ZW0gb2YgaXRlbS5zdGF0dXM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdHVzLXRhZyBmb250LXNlbWlib2xkIHRleHQteHMgYm9yZGVyLXJvdW5kLTN4bCBweS0xIHB4LTJcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInN0YXR1c0l0ZW0uc3RhdHVzQ29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzdGF0dXNJdGVtLnN0YXR1c0xhYmVsQ29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IHN0YXR1c0l0ZW0ubGFiZWwgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBvdmVyZmxvdy1oaWRkZW4gbWwtMVwiPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwLTAgbS0wIHRleHQtc20gdGV4dC1ibGFjay1hbHBoYS03MCBmb250LXNlbWlib2xkIG1iLTIgcHItNCB3aGl0ZS1zcGFjZS1ub3dyYXBcIiBwVG9vbHRpcD1cInt7aXRlbS50aXR1bG99fVwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdHVsbyB9fVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNhcmRUZW1wbGF0ZSgpXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiAqY2RrRHJhZ1BsYWNlaG9sZGVyIGNsYXNzPVwiY3VzdG9tLXBsYWNlaG9sZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1mb290ZXIgdGV4dC14cyB0ZXh0LWJsYWNrLWFscGhhLTgwXCI+XHJcbiAgICAgICAgICBWZXIge3sgZ2V0Q29sdW1uTGlzdCgpKGNvbmZpZy5pZCkubGVuZ3RoIH19IGRlIHt7IGNvbmZpZy5jb250YWRvciB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgfVxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48cC1tZW51ICNzaGFyZWRNZW51IFttb2RlbF09XCJjdXJyZW50TWVudU9wdGlvbnNcIiBbcG9wdXBdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1tZW51PiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Yta2FuYmFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWthbmJhbi9rdi1rYW5iYW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Yta2FuYmFuL2t2LWthbmJhbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQWUsY0FBYyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sY0FBYyxDQUFDO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBU2hELE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFTRSxlQUFVLEdBQUcsU0FBUyxDQUFPLFlBQVksQ0FBQyxDQUFDO1FBRTNDLHVCQUFrQixHQUFlLEVBQUUsQ0FBQztRQUNwQyxnQkFBVyxHQUFzQixJQUFJLENBQUM7UUFFdEMsWUFBTyxHQUFHLEtBQUssQ0FBYSxFQUFFLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssQ0FBdUIsRUFBRSxDQUFDLENBQUM7UUFDaEQsZ0JBQVcsR0FBRyxLQUFLLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsS0FBSyxDQUEwQixJQUFJLENBQUMsQ0FBQztRQUNwRCx1QkFBa0IsR0FBRyxLQUFLLENBQVUsSUFBSSxD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QUFHLENBQUM7SUFDN0UsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWE7UUFDNUIsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBekdVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHlxQ0NmOUIsMmpHQXlFeUYsNDlERDVEN0UsWUFBWSw2UEFBRSxjQUFjLHd0Q0FBRSxVQUFVLGlxQkFBRSxhQUFhOzsyRkFFdEQsaUJBQWlCO2tCQVA3QixTQUFTO2lDQUNJLElBQUksWUFDTixXQUFXLFdBR1osQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIFRlbXBsYXRlUmVmLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgS2FuYmFuQ29sdW1uLCBLYW5iYW5DYXJkLCBLYW5iYW5BY3Rpb24sIEthbmJhbkNvbHVtbkNvbmZpZywgS2FuYmFuQ29sdW1uTGlzdCB9IGZyb20gJy4va3Yta2FuYmFuLW1vZGVscy5tb2RlbCc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBEcmFnRHJvcE1vZHVsZSwgbW92ZUl0ZW1JbkFycmF5LCB0cmFuc2ZlckFycmF5SXRlbSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNZW51TW9kdWxlLCBNZW51IH0gZnJvbSAncHJpbWVuZy9tZW51JztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ2t2LWthbmJhbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWthbmJhbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4va3Yta2FuYmFuLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHJhZ0Ryb3BNb2R1bGUsIE1lbnVNb2R1bGUsIFRvb2x0aXBNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkthbmJhbkNvbXBvbmVudCB7XHJcblxyXG4gIHNoYXJlZE1lbnUgPSB2aWV3Q2hpbGQ8TWVudT4oJ3NoYXJlZE1lbnUnKTtcclxuXHJcbiAgY3VycmVudE1lbnVPcHRpb25zOiBNZW51SXRlbVtdID0gW107XHJcbiAgY3VycmVudENhcmQ6IEthbmJhbkNhcmQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgYWN0aW9ucyA9IGlucHV0PE1lbnVJdGVtW10+KFtdKTtcclxuICBjb2x1bW5Db25maWdzID0gaW5wdXQ8S2FuYmFuQ29sdW1uQ29uZmlnW10+KFtdKTtcclxuICBjb2x1bW5MaXN0cyA9IGlucHV0PEthbmJhbkNvbHVtbkxpc3RbXT4oW10pO1xyXG4gIGNhcmRUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPihudWxsKTtcclxuICBzaG93Q29sdW1uc0NvdW50ZXIgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBlbmFibGVEcmFnID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgb25DYXJkTW92ZWQgPSBvdXRwdXQ8YW55PigpO1xyXG4gIG9uQWN0aW9uQ2xpY2tlZCA9IG91dHB1dDx7IGFjdGlvbjogc3RyaW5nLCBjYXJkOiBLYW5iYW5DYXJkIH0+KCk7XHJcbiAgb25Mb2FkTW9yZUNhcmRzID0gb3V0cHV0PHsgY29sdW1uSWQ6IG51bWJlciB9PigpO1xyXG4gIG9uU2VsZWN0ZWRDYXJkID0gb3V0cHV0PEthbmJhbkNhcmQ+KCk7XHJcblxyXG4gIGdldENvbHVtbkxpc3QgPSBjb21wdXRlZCgoKSA9PiAoY29sdW1uSWQ6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgbGlzdCA9IHRoaXMuY29sdW1uTGlzdHMoKS5maW5kKGwgPT4gbC5pZENvbHVuYSA9PT0gY29sdW1uSWQpO1xyXG4gICAgcmV0dXJuIGxpc3Q/Lmxpc3RhZ2VtIHx8IFtdIGFzIEthbmJhbkNhcmRbXTtcclxuICB9KTtcclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8S2FuYmFuQ2FyZFtdPikge1xyXG4gICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcclxuICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oXHJcbiAgICAgICAgZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSxcclxuICAgICAgICBldmVudC5jb250YWluZXIuZGF0YSxcclxuICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxyXG4gICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleCxcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtb3ZlZENhcmQgPSBldmVudC5jb250YWluZXIuZGF0YVtldmVudC5jdXJyZW50SW5kZXhdO1xyXG4gICAgXHJcbiAgICB0aGlzLm9uQ2FyZE1vdmVkLmVtaXQoe1xyXG4gICAgICBpdGVtOiBtb3ZlZENhcmQsXHJcbiAgICAgIGZyb21Db2x1bW5JZDogZXZlbnQucHJldmlvdXNDb250YWluZXIuaWQsXHJcbiAgICAgIHRvQ29sdW1uSWQ6IGV2ZW50LmNvbnRhaW5lci5pZFxyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIHRoaXMub25TZWxlY3RlZENhcmQuZW1pdChtb3ZlZENhcmQpO1xyXG4gIH1cclxuXHJcbiAgb25BY3Rpb25DbGljayhhY3Rpb25Db2RlOiBzdHJpbmcsIGNhcmQ6IEthbmJhbkNhcmQpIHtcclxuICAgIHRoaXMub25BY3Rpb25DbGlja2VkLmVtaXQoeyBhY3Rpb246IGFjdGlvbkNvZGUsIGNhcmQgfSk7XHJcbiAgICBcclxuICAgIHRoaXMub25TZWxlY3RlZENhcmQuZW1pdChjYXJkKTtcclxuICB9XHJcblxyXG4gIG9wZW5DYXJkTWVudShldmVudDogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRDYXJkID0gaXRlbTtcclxuICAgIHRoaXMub25TZWxlY3RlZENhcmQuZW1pdChpdGVtKTtcclxuICAgIHRoaXMuY3VycmVudE1lbnVPcHRpb25zID0gdGhpcy5nZXRBY3Rpb25zRm9yQ2FyZChpdGVtKTtcclxuICAgIHRoaXMuc2hhcmVkTWVudSgpPy50b2dnbGUoZXZlbnQpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmN1cnJlbnRNZW51T3B0aW9ucyA9IHRoaXMuZ2V0QWN0aW9uc0ZvckNhcmQoaXRlbSk7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKGV2ZW50OiBFdmVudCwgY29sdW1uSWQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IHRocmVzaG9sZCA9IDUwO1xyXG4gICAgY29uc3QgYXRCb3R0b20gPSBlbGVtZW50LnNjcm9sbEhlaWdodCAtIGVsZW1lbnQuc2Nyb2xsVG9wIC0gZWxlbWVudC5jbGllbnRIZWlnaHQgPCB0aHJlc2hvbGQ7XHJcbiAgICBcclxuICAgIGlmIChhdEJvdHRvbSkge1xyXG4gICAgICB0aGlzLm9uTG9hZE1vcmVDYXJkcy5lbWl0KHsgY29sdW1uSWQgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDb2x1bW5Ub3RhbEl0ZW1zKGNvbHVtbklkOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb2x1bW5Db25maWdzKCkuZmluZChjID0+IGMuaWQgPT09IGNvbHVtbklkKTtcclxuICAgIHJldHVybiBjb25maWc/LmNvbnRhZG9yIHx8IDA7XHJcbiAgfVxyXG5cclxuICBnZXRBY3Rpb25zRm9yQ2FyZChjYXJkOiBLYW5iYW5DYXJkKTogTWVudUl0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zKCkubWFwKGFjdGlvbiA9PiAoe1xyXG4gICAgICAuLi5hY3Rpb24sXHJcbiAgICAgIGNvbW1hbmQ6IChldmVudD86IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChhY3Rpb24uY29tbWFuZCkge1xyXG4gICAgICAgICAgYWN0aW9uLmNvbW1hbmQoZXZlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBpZiAoYWN0aW9uLmxhYmVsICYmIHRoaXMuY3VycmVudENhcmQpIHtcclxuICAgICAgICAgIHRoaXMub25BY3Rpb25DbGljayhhY3Rpb24ubGFiZWwsIHRoaXMuY3VycmVudENhcmQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sdW1uRmxleCgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdG90YWxDb2x1bW5zID0gdGhpcy5jb2x1bW5Db25maWdzKCkubGVuZ3RoO1xyXG4gICAgaWYgKHRvdGFsQ29sdW1ucyA9PT0gMCkgcmV0dXJuICcxIDEgMjgwcHgnO1xyXG4gICAgXHJcbiAgICByZXR1cm4gYDEgMSBjYWxjKCgxMDAlIC0gJHsodG90YWxDb2x1bW5zIC0gMSkgKiAxNn1weCkgLyAke3RvdGFsQ29sdW1uc30pYDtcclxuICB9XHJcblxyXG4gIGdldFN0YXR1c1Rvb2x0aXAoc3RhdHVzOiBhbnlbXSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXN0YXR1cyB8fCBzdGF0dXMubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XHJcbiAgICByZXR1cm4gc3RhdHVzLm1hcChzID0+IHMubGFiZWwpLmpvaW4oJywgJyk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwgaC1mdWxsXCI+XHJcbiAgPGRpdiBjbGFzcz1cImJvYXJkLXdyYXBwZXIgZmxleC1jb2x1bW4gbGc6ZmxleC1yb3dcIiBjZGtEcm9wTGlzdEdyb3VwPlxyXG4gICAgXHJcbiAgICBAZm9yKGNvbmZpZyBvZiBjb2x1bW5Db25maWdzKCk7IHRyYWNrICRpbmRleCkge1xyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImJvYXJkLWNvbHVtblwiIFtzdHlsZS5mbGV4XT1cImdldENvbHVtbkZsZXgoKVwiPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4taGVhZGVyXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJjb25maWcuY29yVGl0dWxvXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmFzZSBmb250LXNlbWlib2xkXCI+e3sgY29uZmlnLm5vbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICBAaWYodGhpcy5zaG93Q29sdW1uc0NvdW50ZXIoKSkge1xyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbHVtbi1jb3VudC1iYWRnZSBweC0yIHB5LTFcIiBbc3R5bGUuY29sb3JdPVwiY29uZmlnLmNvclRpdHVsb1wiPnt7IGNvbmZpZy5jb250YWRvciB8IG51bWJlcjonMi4wJyB9fTwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBcclxuICAgICAgICAgIGNsYXNzPVwiY29sdW1uLWNvbnRlbnRcIlxyXG4gICAgICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgICAgIFtpZF09XCJjb25maWcuaWQudG9TdHJpbmcoKVwiXHJcbiAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImdldENvbHVtbkxpc3QoKShjb25maWcuaWQpXCJcclxuICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcclxuICAgICAgICAgIChzY3JvbGwpPVwib25TY3JvbGwoJGV2ZW50LCBjb25maWcuaWQpXCI+XHJcblxyXG5cclxuICAgICAgICAgIEBmb3IoaXRlbSBvZiBnZXRDb2x1bW5MaXN0KCkoY29uZmlnLmlkKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2FuYmFuLWNhcmRcIiBjZGtEcmFnIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWVuYWJsZURyYWcoKVwiPlxyXG5cclxuICAgICAgICAgICAgICBAaWYoYWN0aW9ucygpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBjYXJkLW1lbnUtYnRuIHRleHQteGwgdGV4dC1ibGFjay1hbHBoYS01MCBob3ZlcjpzdXJmYWNlLTIwMCBib3JkZXItcm91bmQtbGdcIiAoY2xpY2spPVwib3BlbkNhcmRNZW51KCRldmVudCwgaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgbW9yZV92ZXJ0XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICBAaWYgKGl0ZW0uc3RhdHVzICYmIGl0ZW0uc3RhdHVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBtdC0xIG1yLTMgZ2FwLTIgb3ZlcmZsb3ctaGlkZGVuXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJnZXRTdGF0dXNUb29sdGlwKGl0ZW0uc3RhdHVzKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIj5cclxuICAgICAgICAgICAgICAgICAgQGZvcihzdGF0dXNJdGVtIG9mIGl0ZW0uc3RhdHVzOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXR1cy10YWcgZm9udC1zZW1pYm9sZCB0ZXh0LXhzIGJvcmRlci1yb3VuZC0zeGwgcHktMSBweC0yXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJzdGF0dXNJdGVtLnN0YXR1c0NvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic3RhdHVzSXRlbS5zdGF0dXNMYWJlbENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyBzdGF0dXNJdGVtLmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgb3ZlcmZsb3ctaGlkZGVuIG1sLTFcIj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicC0wIG0tMCB0ZXh0LXNtIHRleHQtYmxhY2stYWxwaGEtNzAgZm9udC1zZW1pYm9sZCBtYi0yIHByLTQgd2hpdGUtc3BhY2Utbm93cmFwXCIgcFRvb2x0aXA9XCJ7e2l0ZW0udGl0dWxvfX1cIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIj5cclxuICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXR1bG8gfX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjYXJkVGVtcGxhdGUoKVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgKmNka0RyYWdQbGFjZWhvbGRlciBjbGFzcz1cImN1c3RvbS1wbGFjZWhvbGRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tZm9vdGVyIHRleHQteHMgdGV4dC1ibGFjay1hbHBoYS04MFwiPlxyXG4gICAgICAgICAgVmVyIHt7IGdldENvbHVtbkxpc3QoKShjb25maWcuaWQpLmxlbmd0aCB9fSBkZSB7eyBjb25maWcuY29udGFkb3IgfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIH1cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHAtbWVudSAjc2hhcmVkTWVudSBbbW9kZWxdPVwiY3VycmVudE1lbnVPcHRpb25zXCIgW3BvcHVwXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT4iXX0=
@@ -6,15 +6,16 @@ export class KvSelectCardsComponent {
6
6
  this.options = input.required();
7
7
  // Two-way binding para o valor selecionado
8
8
  this.selection = model(null);
9
+ this.layout = input('vertical');
9
10
  }
10
11
  select(option) {
11
12
  this.selection.set(option.value);
12
13
  }
13
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvSelectCardsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvSelectCardsComponent, isStandalone: true, selector: "kv-select-cards", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange" }, ngImport: i0, template: "<div class=\"cards-container\">\r\n @for (option of options(); track option.value) {\r\n <div\r\n class=\"card-option\"\r\n [class.selected]=\"selection() === option.value\"\r\n (click)=\"select(option)\"\r\n >\r\n <div class=\"icon-box\">\r\n <span class=\"material-symbols-outlined\">{{ option.icon }}</span>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"title\">{{ option.title }}</div>\r\n <div class=\"description\">{{ option.description }}</div>\r\n </div>\r\n\r\n <div class=\"radio-indicator\">\r\n <div class=\"dot\"></div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".cards-container{display:flex;flex-direction:column;gap:1rem;width:100%}.card-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;cursor:pointer;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none}.card-option:hover{border-color:#b0c0d6;background:#f8fafc}.card-option.selected{background:#eff4ff;border-color:#3b82f6;box-shadow:0 4px 6px -1px #0ea5e91a}.card-option.selected .icon-box{background:#3b82f61a;color:#3b82f6}.card-option.selected .title{color:#3b82f6}.card-option.selected .radio-indicator{border-color:#3b82f6;background:#fff}.card-option.selected .radio-indicator .dot{transform:scale(1);background:#3b82f6}.icon-box{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.5rem;background:#f1f5f9;color:#64748b;flex-shrink:0;transition:all .2s}.icon-box span{font-size:1.5rem}.content{flex:1;display:flex;flex-direction:column;gap:.25rem}.title{font-size:.95rem;font-weight:700;color:#0f172a;transition:color .2s}.description{font-size:.8rem;color:#64748b;line-height:1.4}.radio-indicator{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#fff}.radio-indicator .dot{width:.625rem;height:.625rem;border-radius:50%;background:transparent;transform:scale(0);transition:transform .2s cubic-bezier(.4,0,.2,1)}\n"] }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvSelectCardsComponent, isStandalone: true, selector: "kv-select-cards", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange" }, ngImport: i0, template: "<div class=\"cards-container flex {{layout() === 'horizontal' ? 'flex-row' : 'flex-column'}} gap-2 w-full\">\r\n @for (option of options(); track option.value) {\r\n <div\r\n class=\"card-option\"\r\n [class.selected]=\"selection() === option.value\"\r\n (click)=\"select(option)\"\r\n >\r\n <div class=\"icon-box\">\r\n <span class=\"material-symbols-outlined\">{{ option.icon }}</span>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"title\">{{ option.title }}</div>\r\n <div class=\"description\">{{ option.description }}</div>\r\n </div>\r\n\r\n <div class=\"radio-indicator\">\r\n <div class=\"dot\"></div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".card-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;cursor:pointer;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none}.card-option:hover{border-color:#b0c0d6;background:#f8fafc}.card-option.selected{background:#eff4ff;border-color:#3b82f6;box-shadow:0 4px 6px -1px #0ea5e91a}.card-option.selected .icon-box{background:#3b82f61a;color:#3b82f6}.card-option.selected .title{color:#3b82f6}.card-option.selected .radio-indicator{border-color:#3b82f6;background:#fff}.card-option.selected .radio-indicator .dot{transform:scale(1);background:#3b82f6}.icon-box{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.5rem;background:#f1f5f9;color:#64748b;flex-shrink:0;transition:all .2s}.icon-box span{font-size:1.5rem}.content{flex:1;display:flex;flex-direction:column;gap:.25rem}.title{font-size:.95rem;font-weight:700;color:#0f172a;transition:color .2s}.description{font-size:.8rem;color:#64748b;line-height:1.4}.radio-indicator{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#fff}.radio-indicator .dot{width:.625rem;height:.625rem;border-radius:50%;background:transparent;transform:scale(0);transition:transform .2s cubic-bezier(.4,0,.2,1)}\n"] }); }
15
16
  }
16
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvSelectCardsComponent, decorators: [{
17
18
  type: Component,
18
- args: [{ selector: 'kv-select-cards', standalone: true, imports: [], template: "<div class=\"cards-container\">\r\n @for (option of options(); track option.value) {\r\n <div\r\n class=\"card-option\"\r\n [class.selected]=\"selection() === option.value\"\r\n (click)=\"select(option)\"\r\n >\r\n <div class=\"icon-box\">\r\n <span class=\"material-symbols-outlined\">{{ option.icon }}</span>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"title\">{{ option.title }}</div>\r\n <div class=\"description\">{{ option.description }}</div>\r\n </div>\r\n\r\n <div class=\"radio-indicator\">\r\n <div class=\"dot\"></div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".cards-container{display:flex;flex-direction:column;gap:1rem;width:100%}.card-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;cursor:pointer;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none}.card-option:hover{border-color:#b0c0d6;background:#f8fafc}.card-option.selected{background:#eff4ff;border-color:#3b82f6;box-shadow:0 4px 6px -1px #0ea5e91a}.card-option.selected .icon-box{background:#3b82f61a;color:#3b82f6}.card-option.selected .title{color:#3b82f6}.card-option.selected .radio-indicator{border-color:#3b82f6;background:#fff}.card-option.selected .radio-indicator .dot{transform:scale(1);background:#3b82f6}.icon-box{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.5rem;background:#f1f5f9;color:#64748b;flex-shrink:0;transition:all .2s}.icon-box span{font-size:1.5rem}.content{flex:1;display:flex;flex-direction:column;gap:.25rem}.title{font-size:.95rem;font-weight:700;color:#0f172a;transition:color .2s}.description{font-size:.8rem;color:#64748b;line-height:1.4}.radio-indicator{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#fff}.radio-indicator .dot{width:.625rem;height:.625rem;border-radius:50%;background:transparent;transform:scale(0);transition:transform .2s cubic-bezier(.4,0,.2,1)}\n"] }]
19
+ args: [{ selector: 'kv-select-cards', standalone: true, imports: [], template: "<div class=\"cards-container flex {{layout() === 'horizontal' ? 'flex-row' : 'flex-column'}} gap-2 w-full\">\r\n @for (option of options(); track option.value) {\r\n <div\r\n class=\"card-option\"\r\n [class.selected]=\"selection() === option.value\"\r\n (click)=\"select(option)\"\r\n >\r\n <div class=\"icon-box\">\r\n <span class=\"material-symbols-outlined\">{{ option.icon }}</span>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"title\">{{ option.title }}</div>\r\n <div class=\"description\">{{ option.description }}</div>\r\n </div>\r\n\r\n <div class=\"radio-indicator\">\r\n <div class=\"dot\"></div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".card-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;cursor:pointer;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none}.card-option:hover{border-color:#b0c0d6;background:#f8fafc}.card-option.selected{background:#eff4ff;border-color:#3b82f6;box-shadow:0 4px 6px -1px #0ea5e91a}.card-option.selected .icon-box{background:#3b82f61a;color:#3b82f6}.card-option.selected .title{color:#3b82f6}.card-option.selected .radio-indicator{border-color:#3b82f6;background:#fff}.card-option.selected .radio-indicator .dot{transform:scale(1);background:#3b82f6}.icon-box{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.5rem;background:#f1f5f9;color:#64748b;flex-shrink:0;transition:all .2s}.icon-box span{font-size:1.5rem}.content{flex:1;display:flex;flex-direction:column;gap:.25rem}.title{font-size:.95rem;font-weight:700;color:#0f172a;transition:color .2s}.description{font-size:.8rem;color:#64748b;line-height:1.4}.radio-indicator{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#fff}.radio-indicator .dot{width:.625rem;height:.625rem;border-radius:50%;background:transparent;transform:scale(0);transition:transform .2s cubic-bezier(.4,0,.2,1)}\n"] }]
19
20
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytc2VsZWN0LWNhcmRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXNlbGVjdC1jYXJkcy9rdi1zZWxlY3QtY2FyZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytc2VsZWN0LWNhcmRzL2t2LXNlbGVjdC1jYXJkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBZ0J4RCxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBU0UsbUJBQW1CO1FBQ25CLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFzQixDQUFDO1FBRS9DLDJDQUEyQztRQUMzQyxjQUFTLEdBQUcsS0FBSyxDQUFNLElBQUksQ0FBQyxDQUFDO0tBSzlCO0lBSEMsTUFBTSxDQUFDLE1BQXdCO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQVZVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLG1ZQ2hCbkMsa3FCQXNCQTs7MkZETmEsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgbW9kZWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0Q2FyZE9wdGlvbiB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgaWNvbjogc3RyaW5nOyAvLyBOb21lIGRvIE1hdGVyaWFsIFN5bWJvbFxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXNlbGVjdC1jYXJkcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXSxcclxuICB0ZW1wbGF0ZVVybDogJy4va3Ytc2VsZWN0LWNhcmRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4va3Ytc2VsZWN0LWNhcmRzLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZTZWxlY3RDYXJkc0NvbXBvbmVudCB7XHJcblxyXG4gIC8vIFJlY2ViZSBhcyBvcMOnw7Vlc1xyXG4gIG9wdGlvbnMgPSBpbnB1dC5yZXF1aXJlZDxTZWxlY3RDYXJkT3B0aW9uW10+KCk7XHJcblxyXG4gIC8vIFR3by13YXkgYmluZGluZyBwYXJhIG8gdmFsb3Igc2VsZWNpb25hZG9cclxuICBzZWxlY3Rpb24gPSBtb2RlbDxhbnk+KG51bGwpO1xyXG5cclxuICBzZWxlY3Qob3B0aW9uOiBTZWxlY3RDYXJkT3B0aW9uKSB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbi5zZXQob3B0aW9uLnZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiPlxyXG4gIEBmb3IgKG9wdGlvbiBvZiBvcHRpb25zKCk7IHRyYWNrIG9wdGlvbi52YWx1ZSkge1xyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNhcmQtb3B0aW9uXCJcclxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInNlbGVjdGlvbigpID09PSBvcHRpb24udmFsdWVcIlxyXG4gICAgICAoY2xpY2spPVwic2VsZWN0KG9wdGlvbilcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1ib3hcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj57eyBvcHRpb24uaWNvbiB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPnt7IG9wdGlvbi50aXRsZSB9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7IG9wdGlvbi5kZXNjcmlwdGlvbiB9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1pbmRpY2F0b3JcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZG90XCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytc2VsZWN0LWNhcmRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXNlbGVjdC1jYXJkcy9rdi1zZWxlY3QtY2FyZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytc2VsZWN0LWNhcmRzL2t2LXNlbGVjdC1jYXJkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBZ0J4RCxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBU0UsbUJBQW1CO1FBQ25CLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFzQixDQUFDO1FBRS9DLDJDQUEyQztRQUMzQyxjQUFTLEdBQUcsS0FBSyxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQzdCLFdBQU0sR0FBRyxLQUFLLENBQTRCLFVBQVUsQ0FBQyxDQUFDO0tBS3ZEO0lBSEMsTUFBTSxDQUFDLE1BQXdCO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQVhVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDhmQ2hCbkMsK3VCQXNCQTs7MkZETmEsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgbW9kZWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0Q2FyZE9wdGlvbiB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgaWNvbjogc3RyaW5nOyAvLyBOb21lIGRvIE1hdGVyaWFsIFN5bWJvbFxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXNlbGVjdC1jYXJkcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXSxcclxuICB0ZW1wbGF0ZVVybDogJy4va3Ytc2VsZWN0LWNhcmRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4va3Ytc2VsZWN0LWNhcmRzLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZTZWxlY3RDYXJkc0NvbXBvbmVudCB7XHJcblxyXG4gIC8vIFJlY2ViZSBhcyBvcMOnw7Vlc1xyXG4gIG9wdGlvbnMgPSBpbnB1dC5yZXF1aXJlZDxTZWxlY3RDYXJkT3B0aW9uW10+KCk7XHJcblxyXG4gIC8vIFR3by13YXkgYmluZGluZyBwYXJhIG8gdmFsb3Igc2VsZWNpb25hZG9cclxuICBzZWxlY3Rpb24gPSBtb2RlbDxhbnk+KG51bGwpO1xyXG4gIGxheW91dCA9IGlucHV0PCdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc+KCd2ZXJ0aWNhbCcpO1xyXG5cclxuICBzZWxlY3Qob3B0aW9uOiBTZWxlY3RDYXJkT3B0aW9uKSB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbi5zZXQob3B0aW9uLnZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lciBmbGV4IHt7bGF5b3V0KCkgPT09ICdob3Jpem9udGFsJyA/ICdmbGV4LXJvdycgOiAnZmxleC1jb2x1bW4nfX0gZ2FwLTIgdy1mdWxsXCI+XHJcbiAgQGZvciAob3B0aW9uIG9mIG9wdGlvbnMoKTsgdHJhY2sgb3B0aW9uLnZhbHVlKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY2FyZC1vcHRpb25cIlxyXG4gICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0aW9uKCkgPT09IG9wdGlvbi52YWx1ZVwiXHJcbiAgICAgIChjbGljayk9XCJzZWxlY3Qob3B0aW9uKVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWJveFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPnt7IG9wdGlvbi5pY29uIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+e3sgb3B0aW9uLnRpdGxlIH19PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3sgb3B0aW9uLmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWluZGljYXRvclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkb3RcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
@@ -14468,9 +14468,12 @@ class KvKanbanComponent {
14468
14468
  openCardMenu(event, item) {
14469
14469
  event.stopPropagation();
14470
14470
  this.currentCard = item;
14471
- this.currentMenuOptions = this.getActionsForCard(item);
14472
14471
  this.onSelectedCard.emit(item);
14472
+ this.currentMenuOptions = this.getActionsForCard(item);
14473
14473
  this.sharedMenu()?.toggle(event);
14474
+ setTimeout(() => {
14475
+ this.currentMenuOptions = this.getActionsForCard(item);
14476
+ }, 0);
14474
14477
  }
14475
14478
  onScroll(event, columnId) {
14476
14479
  const element = event.target;
@@ -14611,16 +14614,17 @@ class KvSelectCardsComponent {
14611
14614
  this.options = input.required();
14612
14615
  // Two-way binding para o valor selecionado
14613
14616
  this.selection = model(null);
14617
+ this.layout = input('vertical');
14614
14618
  }
14615
14619
  select(option) {
14616
14620
  this.selection.set(option.value);
14617
14621
  }
14618
14622
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvSelectCardsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14619
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvSelectCardsComponent, isStandalone: true, selector: "kv-select-cards", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange" }, ngImport: i0, template: "<div class=\"cards-container\">\r\n @for (option of options(); track option.value) {\r\n <div\r\n class=\"card-option\"\r\n [class.selected]=\"selection() === option.value\"\r\n (click)=\"select(option)\"\r\n >\r\n <div class=\"icon-box\">\r\n <span class=\"material-symbols-outlined\">{{ option.icon }}</span>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"title\">{{ option.title }}</div>\r\n <div class=\"description\">{{ option.description }}</div>\r\n </div>\r\n\r\n <div class=\"radio-indicator\">\r\n <div class=\"dot\"></div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".cards-container{display:flex;flex-direction:column;gap:1rem;width:100%}.card-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;cursor:pointer;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none}.card-option:hover{border-color:#b0c0d6;background:#f8fafc}.card-option.selected{background:#eff4ff;border-color:#3b82f6;box-shadow:0 4px 6px -1px #0ea5e91a}.card-option.selected .icon-box{background:#3b82f61a;color:#3b82f6}.card-option.selected .title{color:#3b82f6}.card-option.selected .radio-indicator{border-color:#3b82f6;background:#fff}.card-option.selected .radio-indicator .dot{transform:scale(1);background:#3b82f6}.icon-box{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.5rem;background:#f1f5f9;color:#64748b;flex-shrink:0;transition:all .2s}.icon-box span{font-size:1.5rem}.content{flex:1;display:flex;flex-direction:column;gap:.25rem}.title{font-size:.95rem;font-weight:700;color:#0f172a;transition:color .2s}.description{font-size:.8rem;color:#64748b;line-height:1.4}.radio-indicator{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#fff}.radio-indicator .dot{width:.625rem;height:.625rem;border-radius:50%;background:transparent;transform:scale(0);transition:transform .2s cubic-bezier(.4,0,.2,1)}\n"] }); }
14623
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvSelectCardsComponent, isStandalone: true, selector: "kv-select-cards", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange" }, ngImport: i0, template: "<div class=\"cards-container flex {{layout() === 'horizontal' ? 'flex-row' : 'flex-column'}} gap-2 w-full\">\r\n @for (option of options(); track option.value) {\r\n <div\r\n class=\"card-option\"\r\n [class.selected]=\"selection() === option.value\"\r\n (click)=\"select(option)\"\r\n >\r\n <div class=\"icon-box\">\r\n <span class=\"material-symbols-outlined\">{{ option.icon }}</span>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"title\">{{ option.title }}</div>\r\n <div class=\"description\">{{ option.description }}</div>\r\n </div>\r\n\r\n <div class=\"radio-indicator\">\r\n <div class=\"dot\"></div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".card-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;cursor:pointer;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none}.card-option:hover{border-color:#b0c0d6;background:#f8fafc}.card-option.selected{background:#eff4ff;border-color:#3b82f6;box-shadow:0 4px 6px -1px #0ea5e91a}.card-option.selected .icon-box{background:#3b82f61a;color:#3b82f6}.card-option.selected .title{color:#3b82f6}.card-option.selected .radio-indicator{border-color:#3b82f6;background:#fff}.card-option.selected .radio-indicator .dot{transform:scale(1);background:#3b82f6}.icon-box{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.5rem;background:#f1f5f9;color:#64748b;flex-shrink:0;transition:all .2s}.icon-box span{font-size:1.5rem}.content{flex:1;display:flex;flex-direction:column;gap:.25rem}.title{font-size:.95rem;font-weight:700;color:#0f172a;transition:color .2s}.description{font-size:.8rem;color:#64748b;line-height:1.4}.radio-indicator{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#fff}.radio-indicator .dot{width:.625rem;height:.625rem;border-radius:50%;background:transparent;transform:scale(0);transition:transform .2s cubic-bezier(.4,0,.2,1)}\n"] }); }
14620
14624
  }
14621
14625
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvSelectCardsComponent, decorators: [{
14622
14626
  type: Component,
14623
- args: [{ selector: 'kv-select-cards', standalone: true, imports: [], template: "<div class=\"cards-container\">\r\n @for (option of options(); track option.value) {\r\n <div\r\n class=\"card-option\"\r\n [class.selected]=\"selection() === option.value\"\r\n (click)=\"select(option)\"\r\n >\r\n <div class=\"icon-box\">\r\n <span class=\"material-symbols-outlined\">{{ option.icon }}</span>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"title\">{{ option.title }}</div>\r\n <div class=\"description\">{{ option.description }}</div>\r\n </div>\r\n\r\n <div class=\"radio-indicator\">\r\n <div class=\"dot\"></div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".cards-container{display:flex;flex-direction:column;gap:1rem;width:100%}.card-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;cursor:pointer;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none}.card-option:hover{border-color:#b0c0d6;background:#f8fafc}.card-option.selected{background:#eff4ff;border-color:#3b82f6;box-shadow:0 4px 6px -1px #0ea5e91a}.card-option.selected .icon-box{background:#3b82f61a;color:#3b82f6}.card-option.selected .title{color:#3b82f6}.card-option.selected .radio-indicator{border-color:#3b82f6;background:#fff}.card-option.selected .radio-indicator .dot{transform:scale(1);background:#3b82f6}.icon-box{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.5rem;background:#f1f5f9;color:#64748b;flex-shrink:0;transition:all .2s}.icon-box span{font-size:1.5rem}.content{flex:1;display:flex;flex-direction:column;gap:.25rem}.title{font-size:.95rem;font-weight:700;color:#0f172a;transition:color .2s}.description{font-size:.8rem;color:#64748b;line-height:1.4}.radio-indicator{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#fff}.radio-indicator .dot{width:.625rem;height:.625rem;border-radius:50%;background:transparent;transform:scale(0);transition:transform .2s cubic-bezier(.4,0,.2,1)}\n"] }]
14627
+ args: [{ selector: 'kv-select-cards', standalone: true, imports: [], template: "<div class=\"cards-container flex {{layout() === 'horizontal' ? 'flex-row' : 'flex-column'}} gap-2 w-full\">\r\n @for (option of options(); track option.value) {\r\n <div\r\n class=\"card-option\"\r\n [class.selected]=\"selection() === option.value\"\r\n (click)=\"select(option)\"\r\n >\r\n <div class=\"icon-box\">\r\n <span class=\"material-symbols-outlined\">{{ option.icon }}</span>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"title\">{{ option.title }}</div>\r\n <div class=\"description\">{{ option.description }}</div>\r\n </div>\r\n\r\n <div class=\"radio-indicator\">\r\n <div class=\"dot\"></div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".card-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;cursor:pointer;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none}.card-option:hover{border-color:#b0c0d6;background:#f8fafc}.card-option.selected{background:#eff4ff;border-color:#3b82f6;box-shadow:0 4px 6px -1px #0ea5e91a}.card-option.selected .icon-box{background:#3b82f61a;color:#3b82f6}.card-option.selected .title{color:#3b82f6}.card-option.selected .radio-indicator{border-color:#3b82f6;background:#fff}.card-option.selected .radio-indicator .dot{transform:scale(1);background:#3b82f6}.icon-box{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.5rem;background:#f1f5f9;color:#64748b;flex-shrink:0;transition:all .2s}.icon-box span{font-size:1.5rem}.content{flex:1;display:flex;flex-direction:column;gap:.25rem}.title{font-size:.95rem;font-weight:700;color:#0f172a;transition:color .2s}.description{font-size:.8rem;color:#64748b;line-height:1.4}.radio-indicator{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#fff}.radio-indicator .dot{width:.625rem;height:.625rem;border-radius:50%;background:transparent;transform:scale(0);transition:transform .2s cubic-bezier(.4,0,.2,1)}\n"] }]
14624
14628
  }] });
14625
14629
 
14626
14630
  class KvFileUploadNewComponent {