keevo-components 2.0.230 → 2.0.232
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,4 +1,4 @@
|
|
|
1
|
-
import { Component, computed, input, output } from '@angular/core';
|
|
1
|
+
import { Component, computed, input, output, viewChild } from '@angular/core';
|
|
2
2
|
import { DragDropModule, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { MenuModule } from 'primeng/menu';
|
|
@@ -8,11 +8,14 @@ import * as i2 from "@angular/cdk/drag-drop";
|
|
|
8
8
|
import * as i3 from "primeng/menu";
|
|
9
9
|
export class KvKanbanComponent {
|
|
10
10
|
constructor() {
|
|
11
|
+
this.sharedMenu = viewChild('sharedMenu');
|
|
12
|
+
this.currentMenuOptions = [];
|
|
11
13
|
this.actions = input([]);
|
|
12
14
|
this.columnConfigs = input([]);
|
|
13
15
|
this.columnLists = input([]);
|
|
14
16
|
this.cardTemplate = input(null);
|
|
15
17
|
this.showColumnsCounter = input(true);
|
|
18
|
+
this.enableDrag = input(true);
|
|
16
19
|
this.onCardMoved = output();
|
|
17
20
|
this.onActionClicked = output();
|
|
18
21
|
this.onLoadMoreCards = output();
|
|
@@ -41,6 +44,11 @@ export class KvKanbanComponent {
|
|
|
41
44
|
this.onActionClicked.emit({ action: actionCode, card });
|
|
42
45
|
this.onSelectedCard.emit(card);
|
|
43
46
|
}
|
|
47
|
+
openCardMenu(event, item) {
|
|
48
|
+
event.stopPropagation();
|
|
49
|
+
this.currentMenuOptions = this.getActionsForCard(item);
|
|
50
|
+
this.sharedMenu()?.toggle(event);
|
|
51
|
+
}
|
|
44
52
|
onScroll(event, columnId) {
|
|
45
53
|
const element = event.target;
|
|
46
54
|
const threshold = 50;
|
|
@@ -56,18 +64,27 @@ export class KvKanbanComponent {
|
|
|
56
64
|
getActionsForCard(card) {
|
|
57
65
|
return this.actions().map(action => ({
|
|
58
66
|
...action,
|
|
59
|
-
command: () => {
|
|
67
|
+
command: (event) => {
|
|
68
|
+
if (action.command) {
|
|
69
|
+
action.command(event);
|
|
70
|
+
}
|
|
60
71
|
if (action.label) {
|
|
61
72
|
this.onActionClick(action.label, card);
|
|
62
73
|
}
|
|
63
74
|
}
|
|
64
75
|
}));
|
|
65
76
|
}
|
|
77
|
+
getColumnFlex() {
|
|
78
|
+
const totalColumns = this.columnConfigs().length;
|
|
79
|
+
if (totalColumns === 0)
|
|
80
|
+
return '1 1 280px';
|
|
81
|
+
return `1 1 calc((100% - ${(totalColumns - 1) * 16}px) / ${totalColumns})`;
|
|
82
|
+
}
|
|
66
83
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvKanbanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvKanbanComponent, isStandalone: true, selector: "kv-kanban", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, columnConfigs: { classPropertyName: "columnConfigs", publicName: "columnConfigs", isSignal: true, isRequired: false, transformFunction: null }, columnLists: { classPropertyName: "columnLists", publicName: "columnLists", isSignal: true, isRequired: false, transformFunction: null }, cardTemplate: { classPropertyName: "cardTemplate", publicName: "cardTemplate", isSignal: true, isRequired: false, transformFunction: null }, showColumnsCounter: { classPropertyName: "showColumnsCounter", publicName: "showColumnsCounter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onCardMoved: "onCardMoved", onActionClicked: "onActionClicked", onLoadMoreCards: "onLoadMoreCards", onSelectedCard: "onSelectedCard" }, ngImport: i0, template: "<div class=\"flex w-full h-full\">\n <div class=\"board-wrapper flex-column lg:flex-row\" cdkDropListGroup>\n \n <div class=\"board-column\"
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvKanbanComponent, isStandalone: true, selector: "kv-kanban", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, columnConfigs: { classPropertyName: "columnConfigs", publicName: "columnConfigs", isSignal: true, isRequired: false, transformFunction: null }, columnLists: { classPropertyName: "columnLists", publicName: "columnLists", isSignal: true, isRequired: false, transformFunction: null }, cardTemplate: { classPropertyName: "cardTemplate", publicName: "cardTemplate", isSignal: true, isRequired: false, transformFunction: null }, showColumnsCounter: { classPropertyName: "showColumnsCounter", publicName: "showColumnsCounter", isSignal: true, isRequired: false, transformFunction: null }, enableDrag: { classPropertyName: "enableDrag", publicName: "enableDrag", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onCardMoved: "onCardMoved", onActionClicked: "onActionClicked", onLoadMoreCards: "onLoadMoreCards", onSelectedCard: "onSelectedCard" }, viewQueries: [{ propertyName: "sharedMenu", first: true, predicate: ["sharedMenu"], descendants: true, isSignal: true }], ngImport: i0, 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) {\r\n <div class=\"card-header mt-1\"> <span class=\"status-tag text-xs border-round-3xl py-1 px-2\" \r\n [style.backgroundColor]=\"item.statusColor\"\r\n [style.color]=\"item.statusLabelColor\">\r\n {{ item.status }}\r\n </span>\r\n </div>\r\n }\r\n\r\n <div class=\"card-body ml-1\">\r\n <p class=\"p-0 m-0 text-sm text-black-alpha-70 font-semibold mb-2 pr-4\">\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%}.board-column{display:flex;flex-direction:column;background-color:#f0f2f5;border-radius:18px;min-width:280px;overflow:visible}.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-grow:1;overflow-y:auto;overflow-x:visible;padding:12px;min-height:100px}.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}.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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "ngmodule", type: MenuModule }, { kind: "component", type: i3.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }] }); }
|
|
68
85
|
}
|
|
69
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvKanbanComponent, decorators: [{
|
|
70
87
|
type: Component,
|
|
71
|
-
args: [{ standalone: true, selector: 'kv-kanban', imports: [CommonModule, DragDropModule, MenuModule], template: "<div class=\"flex w-full h-full\">\n <div class=\"board-wrapper flex-column lg:flex-row\" cdkDropListGroup>\n \n <div class=\"board-column\"
|
|
88
|
+
args: [{ standalone: true, selector: 'kv-kanban', imports: [CommonModule, DragDropModule, MenuModule], 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) {\r\n <div class=\"card-header mt-1\"> <span class=\"status-tag text-xs border-round-3xl py-1 px-2\" \r\n [style.backgroundColor]=\"item.statusColor\"\r\n [style.color]=\"item.statusLabelColor\">\r\n {{ item.status }}\r\n </span>\r\n </div>\r\n }\r\n\r\n <div class=\"card-body ml-1\">\r\n <p class=\"p-0 m-0 text-sm text-black-alpha-70 font-semibold mb-2 pr-4\">\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%}.board-column{display:flex;flex-direction:column;background-color:#f0f2f5;border-radius:18px;min-width:280px;overflow:visible}.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-grow:1;overflow-y:auto;overflow-x:visible;padding:12px;min-height:100px}.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}.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"] }]
|
|
72
89
|
}] });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Yta2FuYmFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWthbmJhbi9rdi1rYW5iYW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Yta2FuYmFuL2t2LWthbmJhbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBZSxjQUFjLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBVTFDLE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFTRSxZQUFPLEdBQUcsS0FBSyxDQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxDQUF1QixFQUFFLENBQUMsQ0FBQztRQUNoRCxnQkFBVyxHQUFHLEtBQUssQ0FBcUIsRUFBRSxDQUFDLENBQUM7UUFDNUMsaUJBQVksR0FBRyxLQUFLLENBQTBCLElBQUksQ0FBQyxDQUFDO1FBQ3BELHVCQUFrQixHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUMxQyxnQkFBVyxHQUFHLE1BQU0sRUFBTyxDQUFDO1FBQzVCLG9CQUFlLEdBQUcsTUFBTSxFQUF3QyxDQUFDO1FBQ2pFLG9CQUFlLEdBQUcsTUFBTSxFQUF3QixDQUFDO1FBQ2pELG1CQUFjLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFFdEMsa0JBQWEs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OzhHQXRFVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix3NkJDZDlCLDh0RUEwRE0sb3VFRDlDTSxZQUFZLDBYQUFFLGNBQWMsd3RDQUFFLFVBQVU7OzJGQUV2QyxpQkFBaUI7a0JBUDdCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLFdBQVcsV0FHWixDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2FuYmFuQ29sdW1uLCBLYW5iYW5DYXJkLCBLYW5iYW5BY3Rpb24sIEthbmJhbkNvbHVtbkNvbmZpZywgS2FuYmFuQ29sdW1uTGlzdCB9IGZyb20gJy4va3Yta2FuYmFuLW1vZGVscy5tb2RlbCc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgRHJhZ0Ryb3BNb2R1bGUsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNZW51TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9tZW51JztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdrdi1rYW5iYW4nLFxuICB0ZW1wbGF0ZVVybDogJy4va3Yta2FuYmFuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4va3Yta2FuYmFuLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERyYWdEcm9wTW9kdWxlLCBNZW51TW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBLdkthbmJhbkNvbXBvbmVudCB7XG5cbiAgYWN0aW9ucyA9IGlucHV0PE1lbnVJdGVtW10+KFtdKTtcbiAgY29sdW1uQ29uZmlncyA9IGlucHV0PEthbmJhbkNvbHVtbkNvbmZpZ1tdPihbXSk7XG4gIGNvbHVtbkxpc3RzID0gaW5wdXQ8S2FuYmFuQ29sdW1uTGlzdFtdPihbXSk7XG4gIGNhcmRUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPihudWxsKTtcbiAgc2hvd0NvbHVtbnNDb3VudGVyID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIG9uQ2FyZE1vdmVkID0gb3V0cHV0PGFueT4oKTtcbiAgb25BY3Rpb25DbGlja2VkID0gb3V0cHV0PHsgYWN0aW9uOiBzdHJpbmcsIGNhcmQ6IEthbmJhbkNhcmQgfT4oKTtcbiAgb25Mb2FkTW9yZUNhcmRzID0gb3V0cHV0PHsgY29sdW1uSWQ6IG51bWJlciB9PigpO1xuICBvblNlbGVjdGVkQ2FyZCA9IG91dHB1dDxLYW5iYW5DYXJkPigpO1xuXG4gIGdldENvbHVtbkxpc3QgPSBjb21wdXRlZCgoKSA9PiAoY29sdW1uSWQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmNvbHVtbkxpc3RzKCkuZmluZChsID0+IGwuaWRDb2x1bmEgPT09IGNvbHVtbklkKTtcbiAgICByZXR1cm4gbGlzdD8ubGlzdGFnZW0gfHwgW10gYXMgS2FuYmFuQ2FyZFtdO1xuICB9KTtcblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxLYW5iYW5DYXJkW10+KSB7XG4gICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcbiAgICAgIG1vdmVJdGVtSW5BcnJheShldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oXG4gICAgICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxuICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IG1vdmVkQ2FyZCA9IGV2ZW50LmNvbnRhaW5lci5kYXRhW2V2ZW50LmN1cnJlbnRJbmRleF07XG4gICAgXG4gICAgdGhpcy5vbkNhcmRNb3ZlZC5lbWl0KHtcbiAgICAgIGl0ZW06IG1vdmVkQ2FyZCxcbiAgICAgIGZyb21Db2x1bW5JZDogZXZlbnQucHJldmlvdXNDb250YWluZXIuaWQsXG4gICAgICB0b0NvbHVtbklkOiBldmVudC5jb250YWluZXIuaWRcbiAgICB9KTtcbiAgICBcbiAgICB0aGlzLm9uU2VsZWN0ZWRDYXJkLmVtaXQobW92ZWRDYXJkKTtcbiAgfVxuXG4gIG9uQWN0aW9uQ2xpY2soYWN0aW9uQ29kZTogc3RyaW5nLCBjYXJkOiBLYW5iYW5DYXJkKSB7XG4gICAgdGhpcy5vbkFjdGlvbkNsaWNrZWQuZW1pdCh7IGFjdGlvbjogYWN0aW9uQ29kZSwgY2FyZCB9KTtcbiAgICBcbiAgICB0aGlzLm9uU2VsZWN0ZWRDYXJkLmVtaXQoY2FyZCk7XG4gIH1cblxuICBvblNjcm9sbChldmVudDogRXZlbnQsIGNvbHVtbklkOiBudW1iZXIpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHRocmVzaG9sZCA9IDUwO1xuICAgIGNvbnN0IGF0Qm90dG9tID0gZWxlbWVudC5zY3JvbGxIZWlnaHQgLSBlbGVtZW50LnNjcm9sbFRvcCAtIGVsZW1lbnQuY2xpZW50SGVpZ2h0IDwgdGhyZXNob2xkO1xuICAgIFxuICAgIGlmIChhdEJvdHRvbSkge1xuICAgICAgdGhpcy5vbkxvYWRNb3JlQ2FyZHMuZW1pdCh7IGNvbHVtbklkIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbHVtblRvdGFsSXRlbXMoY29sdW1uSWQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb2x1bW5Db25maWdzKCkuZmluZChjID0+IGMuaWQgPT09IGNvbHVtbklkKTtcbiAgICByZXR1cm4gY29uZmlnPy5jb250YWRvciB8fCAwO1xuICB9XG5cbiAgZ2V0QWN0aW9uc0ZvckNhcmQoY2FyZDogS2FuYmFuQ2FyZCk6IE1lbnVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMoKS5tYXAoYWN0aW9uID0+ICh7XG4gICAgICAuLi5hY3Rpb24sXG4gICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgIGlmIChhY3Rpb24ubGFiZWwpIHtcbiAgICAgICAgICB0aGlzLm9uQWN0aW9uQ2xpY2soYWN0aW9uLmxhYmVsLCBjYXJkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwgaC1mdWxsXCI+XG4gIDxkaXYgY2xhc3M9XCJib2FyZC13cmFwcGVyIGZsZXgtY29sdW1uIGxnOmZsZXgtcm93XCIgY2RrRHJvcExpc3RHcm91cD5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiYm9hcmQtY29sdW1uXCIgKm5nRm9yPVwibGV0IGNvbmZpZyBvZiBjb2x1bW5Db25maWdzKClcIj5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1oZWFkZXJcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImNvbmZpZy5jb3JUaXR1bG9cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1zZW1pYm9sZFwiPnt7IGNvbmZpZy5ub21lIH19PC9zcGFuPlxuICAgICAgICBAaWYodGhpcy5zaG93Q29sdW1uc0NvdW50ZXIoKSkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLWNvdW50LWJhZGdlXCIgW3N0eWxlLmNvbG9yXT1cImNvbmZpZy5jb3JUaXR1bG9cIj57eyBjb25maWcuY29udGFkb3IgfCBudW1iZXI6JzIuMCcgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IFxuICAgICAgICBjbGFzcz1cImNvbHVtbi1jb250ZW50XCJcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgW2lkXT1cImNvbmZpZy5pZC50b1N0cmluZygpXCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJnZXRDb2x1bW5MaXN0KCkoY29uZmlnLmlkKVwiXG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQsIGNvbmZpZy5pZClcIj5cblxuXG4gICAgICAgIEBmb3IoaXRlbSBvZiBnZXRDb2x1bW5MaXN0KCkoY29uZmlnLmlkKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImthbmJhbi1jYXJkXCIgY2RrRHJhZz5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPHAtbWVudSAjbWVudSBbbW9kZWxdPVwiZ2V0QWN0aW9uc0ZvckNhcmQoaXRlbSlcIiBbcG9wdXBdPVwidHJ1ZVwiPjwvcC1tZW51PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGNhcmQtbWVudS1idG4gdGV4dC14bCB0ZXh0LWJsYWNrLWFscGhhLTUwIGhvdmVyOnN1cmZhY2UtMjAwIGJvcmRlci1yb3VuZC1sZ1wiIChjbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIG1vcmVfdmVydFxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICBAaWYgKGl0ZW0uc3RhdHVzKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBtdC0xXCI+IDxzcGFuIGNsYXNzPVwic3RhdHVzLXRhZyB0ZXh0LXhzIGJvcmRlci1yb3VuZC0zeGwgcHktMSBweC0yXCIgXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJpdGVtLnN0YXR1c0NvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiaXRlbS5zdGF0dXNMYWJlbENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLnN0YXR1cyB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgbWwtMVwiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInAtMCBtLTAgdGV4dC1zbSB0ZXh0LWJsYWNrLWFscGhhLTcwIGZvbnQtc2VtaWJvbGQgbWItMiBwci00XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS50aXR1bG8gfX1cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhcmRUZW1wbGF0ZSgpOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqY2RrRHJhZ1BsYWNlaG9sZGVyIGNsYXNzPVwiY3VzdG9tLXBsYWNlaG9sZGVyXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tZm9vdGVyIHRleHQteHMgdGV4dC1ibGFjay1hbHBoYS04MFwiPlxuICAgICAgICBWZXIge3sgZ2V0Q29sdW1uTGlzdCgpKGNvbmZpZy5pZCkubGVuZ3RoIH19IGRlIHt7IGNvbmZpZy5jb250YWRvciB9fVxuICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Yta2FuYmFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWthbmJhbi9rdi1rYW5iYW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Yta2FuYmFuL2t2LWthbmJhbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQWUsY0FBYyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sY0FBYyxDQUFDOzs7OztBQVVoRCxNQUFNLE9BQU8saUJBQWlCO0lBUDlCO1FBU0UsZUFBVSxHQUFHLFNBQVMsQ0FBTyxZQUFZLENBQUMsQ0FBQztRQUUzQyx1QkFBa0IsR0FBZSxFQUFFLENBQUM7UUFFcEMsWUFBTyxHQUFHLEtBQUssQ0FBYSxFQUFFLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssQ0FBdUIsRUFBRSxDQUFDLENBQUM7UUFDaEQsZ0JBQVcsR0FBRyxLQUFLLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsS0FBSyxDQUEwQixJQUFJLENBQUMsQ0FBQztRQUNwRCx1QkFBa0IsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDMUMsZUFBVSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNsQyxnQkFBVyxHQUFHLE1BQU0s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QUFRLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFnQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLEdBQUcsTUFBTTtZQUNULE9BQU8sRUFBRSxDQUFDLEtBQVcsRUFBRSxFQUFFO2dCQUN2QixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsQ0FBQztnQkFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN6QyxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2pELElBQUksWUFBWSxLQUFLLENBQUM7WUFBRSxPQUFPLFdBQVcsQ0FBQztRQUUzQyxPQUFPLG9CQUFvQixDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFNBQVMsWUFBWSxHQUFHLENBQUM7SUFDN0UsQ0FBQzs4R0E5RlUsaUJBQWlCO2tHQUFqQixpQkFBaUIseXFDQ2Q5Qiw2cEZBb0V5RixveEREeEQ3RSxZQUFZLDZQQUFFLGNBQWMsd3RDQUFFLFVBQVU7OzJGQUV2QyxpQkFBaUI7a0JBUDdCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLFdBQVcsV0FHWixDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBUZW1wbGF0ZVJlZiwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLYW5iYW5Db2x1bW4sIEthbmJhbkNhcmQsIEthbmJhbkFjdGlvbiwgS2FuYmFuQ29sdW1uQ29uZmlnLCBLYW5iYW5Db2x1bW5MaXN0IH0gZnJvbSAnLi9rdi1rYW5iYW4tbW9kZWxzLm1vZGVsJztcbmltcG9ydCB7IENka0RyYWdEcm9wLCBEcmFnRHJvcE1vZHVsZSwgbW92ZUl0ZW1JbkFycmF5LCB0cmFuc2ZlckFycmF5SXRlbSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1lbnVNb2R1bGUsIE1lbnUgfSBmcm9tICdwcmltZW5nL21lbnUnO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2t2LWthbmJhbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1rYW5iYW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9rdi1rYW5iYW4uY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHJhZ0Ryb3BNb2R1bGUsIE1lbnVNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEt2S2FuYmFuQ29tcG9uZW50IHtcblxuICBzaGFyZWRNZW51ID0gdmlld0NoaWxkPE1lbnU+KCdzaGFyZWRNZW51Jyk7XG5cbiAgY3VycmVudE1lbnVPcHRpb25zOiBNZW51SXRlbVtdID0gW107XG5cbiAgYWN0aW9ucyA9IGlucHV0PE1lbnVJdGVtW10+KFtdKTtcbiAgY29sdW1uQ29uZmlncyA9IGlucHV0PEthbmJhbkNvbHVtbkNvbmZpZ1tdPihbXSk7XG4gIGNvbHVtbkxpc3RzID0gaW5wdXQ8S2FuYmFuQ29sdW1uTGlzdFtdPihbXSk7XG4gIGNhcmRUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPihudWxsKTtcbiAgc2hvd0NvbHVtbnNDb3VudGVyID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIGVuYWJsZURyYWcgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgb25DYXJkTW92ZWQgPSBvdXRwdXQ8YW55PigpO1xuICBvbkFjdGlvbkNsaWNrZWQgPSBvdXRwdXQ8eyBhY3Rpb246IHN0cmluZywgY2FyZDogS2FuYmFuQ2FyZCB9PigpO1xuICBvbkxvYWRNb3JlQ2FyZHMgPSBvdXRwdXQ8eyBjb2x1bW5JZDogbnVtYmVyIH0+KCk7XG4gIG9uU2VsZWN0ZWRDYXJkID0gb3V0cHV0PEthbmJhbkNhcmQ+KCk7XG5cbiAgZ2V0Q29sdW1uTGlzdCA9IGNvbXB1dGVkKCgpID0+IChjb2x1bW5JZDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuY29sdW1uTGlzdHMoKS5maW5kKGwgPT4gbC5pZENvbHVuYSA9PT0gY29sdW1uSWQpO1xuICAgIHJldHVybiBsaXN0Py5saXN0YWdlbSB8fCBbXSBhcyBLYW5iYW5DYXJkW107XG4gIH0pO1xuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEthbmJhbkNhcmRbXT4pIHtcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShcbiAgICAgICAgZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSxcbiAgICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEsXG4gICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbW92ZWRDYXJkID0gZXZlbnQuY29udGFpbmVyLmRhdGFbZXZlbnQuY3VycmVudEluZGV4XTtcbiAgICBcbiAgICB0aGlzLm9uQ2FyZE1vdmVkLmVtaXQoe1xuICAgICAgaXRlbTogbW92ZWRDYXJkLFxuICAgICAgZnJvbUNvbHVtbklkOiBldmVudC5wcmV2aW91c0NvbnRhaW5lci5pZCxcbiAgICAgIHRvQ29sdW1uSWQ6IGV2ZW50LmNvbnRhaW5lci5pZFxuICAgIH0pO1xuICAgIFxuICAgIHRoaXMub25TZWxlY3RlZENhcmQuZW1pdChtb3ZlZENhcmQpO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhhY3Rpb25Db2RlOiBzdHJpbmcsIGNhcmQ6IEthbmJhbkNhcmQpIHtcbiAgICB0aGlzLm9uQWN0aW9uQ2xpY2tlZC5lbWl0KHsgYWN0aW9uOiBhY3Rpb25Db2RlLCBjYXJkIH0pO1xuICAgIFxuICAgIHRoaXMub25TZWxlY3RlZENhcmQuZW1pdChjYXJkKTtcbiAgfVxuXG4gIG9wZW5DYXJkTWVudShldmVudDogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLmN1cnJlbnRNZW51T3B0aW9ucyA9IHRoaXMuZ2V0QWN0aW9uc0ZvckNhcmQoaXRlbSk7XG5cbiAgICB0aGlzLnNoYXJlZE1lbnUoKT8udG9nZ2xlKGV2ZW50KTtcbiAgfVxuXG4gIG9uU2Nyb2xsKGV2ZW50OiBFdmVudCwgY29sdW1uSWQ6IG51bWJlcikge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgdGhyZXNob2xkID0gNTA7XG4gICAgY29uc3QgYXRCb3R0b20gPSBlbGVtZW50LnNjcm9sbEhlaWdodCAtIGVsZW1lbnQuc2Nyb2xsVG9wIC0gZWxlbWVudC5jbGllbnRIZWlnaHQgPCB0aHJlc2hvbGQ7XG4gICAgXG4gICAgaWYgKGF0Qm90dG9tKSB7XG4gICAgICB0aGlzLm9uTG9hZE1vcmVDYXJkcy5lbWl0KHsgY29sdW1uSWQgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29sdW1uVG90YWxJdGVtcyhjb2x1bW5JZDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbHVtbkNvbmZpZ3MoKS5maW5kKGMgPT4gYy5pZCA9PT0gY29sdW1uSWQpO1xuICAgIHJldHVybiBjb25maWc/LmNvbnRhZG9yIHx8IDA7XG4gIH1cblxuICBnZXRBY3Rpb25zRm9yQ2FyZChjYXJkOiBLYW5iYW5DYXJkKTogTWVudUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9ucygpLm1hcChhY3Rpb24gPT4gKHtcbiAgICAgIC4uLmFjdGlvbixcbiAgICAgIGNvbW1hbmQ6IChldmVudD86IGFueSkgPT4ge1xuICAgICAgICBpZiAoYWN0aW9uLmNvbW1hbmQpIHtcbiAgICAgICAgICBhY3Rpb24uY29tbWFuZChldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmIChhY3Rpb24ubGFiZWwpIHtcbiAgICAgICAgICB0aGlzLm9uQWN0aW9uQ2xpY2soYWN0aW9uLmxhYmVsLCBjYXJkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIGdldENvbHVtbkZsZXgoKTogc3RyaW5nIHtcbiAgICBjb25zdCB0b3RhbENvbHVtbnMgPSB0aGlzLmNvbHVtbkNvbmZpZ3MoKS5sZW5ndGg7XG4gICAgaWYgKHRvdGFsQ29sdW1ucyA9PT0gMCkgcmV0dXJuICcxIDEgMjgwcHgnO1xuICAgIFxuICAgIHJldHVybiBgMSAxIGNhbGMoKDEwMCUgLSAkeyh0b3RhbENvbHVtbnMgLSAxKSAqIDE2fXB4KSAvICR7dG90YWxDb2x1bW5zfSlgO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBoLWZ1bGxcIj5cclxuICA8ZGl2IGNsYXNzPVwiYm9hcmQtd3JhcHBlciBmbGV4LWNvbHVtbiBsZzpmbGV4LXJvd1wiIGNka0Ryb3BMaXN0R3JvdXA+XHJcbiAgICBcclxuICAgIEBmb3IoY29uZmlnIG9mIGNvbHVtbkNvbmZpZ3MoKTsgdHJhY2sgJGluZGV4KSB7XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9hcmQtY29sdW1uXCIgW3N0eWxlLmZsZXhdPVwiZ2V0Q29sdW1uRmxleCgpXCI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1oZWFkZXJcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImNvbmZpZy5jb3JUaXR1bG9cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGRcIj57eyBjb25maWcubm9tZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIEBpZih0aGlzLnNob3dDb2x1bW5zQ291bnRlcigpKSB7XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLWNvdW50LWJhZGdlIHB4LTIgcHktMVwiIFtzdHlsZS5jb2xvcl09XCJjb25maWcuY29yVGl0dWxvXCI+e3sgY29uZmlnLmNvbnRhZG9yIHwgbnVtYmVyOicyLjAnIH19PC9zcGFuPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgY2xhc3M9XCJjb2x1bW4tY29udGVudFwiXHJcbiAgICAgICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICAgICAgW2lkXT1cImNvbmZpZy5pZC50b1N0cmluZygpXCJcclxuICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZ2V0Q29sdW1uTGlzdCgpKGNvbmZpZy5pZClcIlxyXG4gICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxyXG4gICAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQsIGNvbmZpZy5pZClcIj5cclxuXHJcblxyXG4gICAgICAgICAgQGZvcihpdGVtIG9mIGdldENvbHVtbkxpc3QoKShjb25maWcuaWQpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYW5iYW4tY2FyZFwiIGNka0RyYWcgW2Nka0RyYWdEaXNhYmxlZF09XCIhZW5hYmxlRHJhZygpXCI+XHJcblxyXG4gICAgICAgICAgICAgIEBpZihhY3Rpb25zKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGNhcmQtbWVudS1idG4gdGV4dC14bCB0ZXh0LWJsYWNrLWFscGhhLTUwIGhvdmVyOnN1cmZhY2UtMjAwIGJvcmRlci1yb3VuZC1sZ1wiIChjbGljayk9XCJvcGVuQ2FyZE1lbnUoJGV2ZW50LCBpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICBtb3JlX3ZlcnRcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5zdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBtdC0xXCI+IDxzcGFuIGNsYXNzPVwic3RhdHVzLXRhZyB0ZXh0LXhzIGJvcmRlci1yb3VuZC0zeGwgcHktMSBweC0yXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiaXRlbS5zdGF0dXNDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJpdGVtLnN0YXR1c0xhYmVsQ29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnN0YXR1cyB9fVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgbWwtMVwiPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwLTAgbS0wIHRleHQtc20gdGV4dC1ibGFjay1hbHBoYS03MCBmb250LXNlbWlib2xkIG1iLTIgcHItNFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdHVsbyB9fVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNhcmRUZW1wbGF0ZSgpXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiAqY2RrRHJhZ1BsYWNlaG9sZGVyIGNsYXNzPVwiY3VzdG9tLXBsYWNlaG9sZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1mb290ZXIgdGV4dC14cyB0ZXh0LWJsYWNrLWFscGhhLTgwXCI+XHJcbiAgICAgICAgICBWZXIge3sgZ2V0Q29sdW1uTGlzdCgpKGNvbmZpZy5pZCkubGVuZ3RoIH19IGRlIHt7IGNvbmZpZy5jb250YWRvciB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgfVxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48cC1tZW51ICNzaGFyZWRNZW51IFttb2RlbF09XCJjdXJyZW50TWVudU9wdGlvbnNcIiBbcG9wdXBdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1tZW51PiJdfQ==
|
|
@@ -14180,11 +14180,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
14180
14180
|
|
|
14181
14181
|
class KvKanbanComponent {
|
|
14182
14182
|
constructor() {
|
|
14183
|
+
this.sharedMenu = viewChild('sharedMenu');
|
|
14184
|
+
this.currentMenuOptions = [];
|
|
14183
14185
|
this.actions = input([]);
|
|
14184
14186
|
this.columnConfigs = input([]);
|
|
14185
14187
|
this.columnLists = input([]);
|
|
14186
14188
|
this.cardTemplate = input(null);
|
|
14187
14189
|
this.showColumnsCounter = input(true);
|
|
14190
|
+
this.enableDrag = input(true);
|
|
14188
14191
|
this.onCardMoved = output();
|
|
14189
14192
|
this.onActionClicked = output();
|
|
14190
14193
|
this.onLoadMoreCards = output();
|
|
@@ -14213,6 +14216,11 @@ class KvKanbanComponent {
|
|
|
14213
14216
|
this.onActionClicked.emit({ action: actionCode, card });
|
|
14214
14217
|
this.onSelectedCard.emit(card);
|
|
14215
14218
|
}
|
|
14219
|
+
openCardMenu(event, item) {
|
|
14220
|
+
event.stopPropagation();
|
|
14221
|
+
this.currentMenuOptions = this.getActionsForCard(item);
|
|
14222
|
+
this.sharedMenu()?.toggle(event);
|
|
14223
|
+
}
|
|
14216
14224
|
onScroll(event, columnId) {
|
|
14217
14225
|
const element = event.target;
|
|
14218
14226
|
const threshold = 50;
|
|
@@ -14228,19 +14236,28 @@ class KvKanbanComponent {
|
|
|
14228
14236
|
getActionsForCard(card) {
|
|
14229
14237
|
return this.actions().map(action => ({
|
|
14230
14238
|
...action,
|
|
14231
|
-
command: () => {
|
|
14239
|
+
command: (event) => {
|
|
14240
|
+
if (action.command) {
|
|
14241
|
+
action.command(event);
|
|
14242
|
+
}
|
|
14232
14243
|
if (action.label) {
|
|
14233
14244
|
this.onActionClick(action.label, card);
|
|
14234
14245
|
}
|
|
14235
14246
|
}
|
|
14236
14247
|
}));
|
|
14237
14248
|
}
|
|
14249
|
+
getColumnFlex() {
|
|
14250
|
+
const totalColumns = this.columnConfigs().length;
|
|
14251
|
+
if (totalColumns === 0)
|
|
14252
|
+
return '1 1 280px';
|
|
14253
|
+
return `1 1 calc((100% - ${(totalColumns - 1) * 16}px) / ${totalColumns})`;
|
|
14254
|
+
}
|
|
14238
14255
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvKanbanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14239
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvKanbanComponent, isStandalone: true, selector: "kv-kanban", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, columnConfigs: { classPropertyName: "columnConfigs", publicName: "columnConfigs", isSignal: true, isRequired: false, transformFunction: null }, columnLists: { classPropertyName: "columnLists", publicName: "columnLists", isSignal: true, isRequired: false, transformFunction: null }, cardTemplate: { classPropertyName: "cardTemplate", publicName: "cardTemplate", isSignal: true, isRequired: false, transformFunction: null }, showColumnsCounter: { classPropertyName: "showColumnsCounter", publicName: "showColumnsCounter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onCardMoved: "onCardMoved", onActionClicked: "onActionClicked", onLoadMoreCards: "onLoadMoreCards", onSelectedCard: "onSelectedCard" }, ngImport: i0, template: "<div class=\"flex w-full h-full\">\n <div class=\"board-wrapper flex-column lg:flex-row\" cdkDropListGroup>\n \n <div class=\"board-column\"
|
|
14256
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvKanbanComponent, isStandalone: true, selector: "kv-kanban", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, columnConfigs: { classPropertyName: "columnConfigs", publicName: "columnConfigs", isSignal: true, isRequired: false, transformFunction: null }, columnLists: { classPropertyName: "columnLists", publicName: "columnLists", isSignal: true, isRequired: false, transformFunction: null }, cardTemplate: { classPropertyName: "cardTemplate", publicName: "cardTemplate", isSignal: true, isRequired: false, transformFunction: null }, showColumnsCounter: { classPropertyName: "showColumnsCounter", publicName: "showColumnsCounter", isSignal: true, isRequired: false, transformFunction: null }, enableDrag: { classPropertyName: "enableDrag", publicName: "enableDrag", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onCardMoved: "onCardMoved", onActionClicked: "onActionClicked", onLoadMoreCards: "onLoadMoreCards", onSelectedCard: "onSelectedCard" }, viewQueries: [{ propertyName: "sharedMenu", first: true, predicate: ["sharedMenu"], descendants: true, isSignal: true }], ngImport: i0, 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) {\r\n <div class=\"card-header mt-1\"> <span class=\"status-tag text-xs border-round-3xl py-1 px-2\" \r\n [style.backgroundColor]=\"item.statusColor\"\r\n [style.color]=\"item.statusLabelColor\">\r\n {{ item.status }}\r\n </span>\r\n </div>\r\n }\r\n\r\n <div class=\"card-body ml-1\">\r\n <p class=\"p-0 m-0 text-sm text-black-alpha-70 font-semibold mb-2 pr-4\">\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%}.board-column{display:flex;flex-direction:column;background-color:#f0f2f5;border-radius:18px;min-width:280px;overflow:visible}.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-grow:1;overflow-y:auto;overflow-x:visible;padding:12px;min-height:100px}.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}.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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2$3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$3.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i2$3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$3.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "ngmodule", type: MenuModule }, { kind: "component", type: i2.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }] }); }
|
|
14240
14257
|
}
|
|
14241
14258
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvKanbanComponent, decorators: [{
|
|
14242
14259
|
type: Component,
|
|
14243
|
-
args: [{ standalone: true, selector: 'kv-kanban', imports: [CommonModule, DragDropModule, MenuModule], template: "<div class=\"flex w-full h-full\">\n <div class=\"board-wrapper flex-column lg:flex-row\" cdkDropListGroup>\n \n <div class=\"board-column\"
|
|
14260
|
+
args: [{ standalone: true, selector: 'kv-kanban', imports: [CommonModule, DragDropModule, MenuModule], 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) {\r\n <div class=\"card-header mt-1\"> <span class=\"status-tag text-xs border-round-3xl py-1 px-2\" \r\n [style.backgroundColor]=\"item.statusColor\"\r\n [style.color]=\"item.statusLabelColor\">\r\n {{ item.status }}\r\n </span>\r\n </div>\r\n }\r\n\r\n <div class=\"card-body ml-1\">\r\n <p class=\"p-0 m-0 text-sm text-black-alpha-70 font-semibold mb-2 pr-4\">\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%}.board-column{display:flex;flex-direction:column;background-color:#f0f2f5;border-radius:18px;min-width:280px;overflow:visible}.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-grow:1;overflow-y:auto;overflow-x:visible;padding:12px;min-height:100px}.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}.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"] }]
|
|
14244
14261
|
}] });
|
|
14245
14262
|
|
|
14246
14263
|
/*
|