pantheon-libraries 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/dist/pantheon-ui/README.md +63 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-Cards/card.component.mjs +32 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-Cards/card.module.mjs +32 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-Panels/grid-panel/grid-panel.component.mjs +48 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-Panels/grid-panel/grid-panel.module.mjs +36 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.component.mjs +34 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.module.mjs +25 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-ui.mjs +19 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-windows/SideActionPanel/interface.mjs +2 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-windows/SideActionPanel/side-action-panel.component.mjs +65 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-windows/SideActionPanel/side-action-panel.module.mjs +28 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-windows/window/constants.mjs +9 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-windows/window/window.component.mjs +44 -0
- package/dist/pantheon-ui/esm2022/lib/pantheon-windows/window/window.module.mjs +28 -0
- package/dist/pantheon-ui/esm2022/pantheon-ui.mjs +5 -0
- package/dist/pantheon-ui/esm2022/public-api.mjs +15 -0
- package/dist/pantheon-ui/fesm2022/pantheon-ui.mjs +369 -0
- package/dist/pantheon-ui/fesm2022/pantheon-ui.mjs.map +1 -0
- package/dist/pantheon-ui/index.d.ts +5 -0
- package/dist/pantheon-ui/lib/pantheon-Cards/card.component.d.ts +11 -0
- package/dist/pantheon-ui/lib/pantheon-Cards/card.module.d.ts +10 -0
- package/dist/pantheon-ui/lib/pantheon-Panels/grid-panel/grid-panel.component.d.ts +21 -0
- package/dist/pantheon-ui/lib/pantheon-Panels/grid-panel/grid-panel.module.d.ts +11 -0
- package/dist/pantheon-ui/lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.component.d.ts +17 -0
- package/dist/pantheon-ui/lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.module.d.ts +8 -0
- package/dist/pantheon-ui/lib/pantheon-ui.d.ts +5 -0
- package/dist/pantheon-ui/lib/pantheon-windows/SideActionPanel/interface.d.ts +6 -0
- package/dist/pantheon-ui/lib/pantheon-windows/SideActionPanel/side-action-panel.component.d.ts +12 -0
- package/dist/pantheon-ui/lib/pantheon-windows/SideActionPanel/side-action-panel.module.d.ts +9 -0
- package/dist/pantheon-ui/lib/pantheon-windows/window/constants.d.ts +5 -0
- package/dist/pantheon-ui/lib/pantheon-windows/window/window.component.d.ts +16 -0
- package/dist/pantheon-ui/lib/pantheon-windows/window/window.module.d.ts +9 -0
- package/dist/pantheon-ui/package.json +25 -0
- package/dist/pantheon-ui/public-api.d.ts +11 -0
- package/package.json +49 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of pantheon-ui
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/pantheon-ui';
|
|
5
|
+
export * from './lib/pantheon-Panels/grid-panel/grid-panel.module';
|
|
6
|
+
export * from './lib/pantheon-Panels/grid-panel/grid-panel.component';
|
|
7
|
+
export * from './lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.module';
|
|
8
|
+
export * from './lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.component';
|
|
9
|
+
export * from './lib/pantheon-Cards/card.module';
|
|
10
|
+
export * from './lib/pantheon-Cards/card.component';
|
|
11
|
+
export * from './lib/pantheon-windows/window/window.module';
|
|
12
|
+
export * from './lib/pantheon-windows/window/window.component';
|
|
13
|
+
export * from './lib/pantheon-windows/SideActionPanel/side-action-panel.module';
|
|
14
|
+
export * from './lib/pantheon-windows/SideActionPanel/side-action-panel.component';
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3BhbnRoZW9uLXVpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLGlGQUFpRixDQUFDO0FBQ2hHLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLG9FQUFvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBwYW50aGVvbi11aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLXVpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLVBhbmVscy9ncmlkLXBhbmVsL2dyaWQtcGFuZWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLVBhbmVscy9ncmlkLXBhbmVsL2dyaWQtcGFuZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLVBhbmVscy9ncmlkLXBhbmVsL2dyaWQtcGFubmVsLWhlYWRlci9ncmlkLXBhbmVsLWhlYWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFudGhlb24tUGFuZWxzL2dyaWQtcGFuZWwvZ3JpZC1wYW5uZWwtaGVhZGVyL2dyaWQtcGFuZWwtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi1DYXJkcy9jYXJkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi1DYXJkcy9jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi13aW5kb3dzL3dpbmRvdy93aW5kb3cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLXdpbmRvd3Mvd2luZG93L3dpbmRvdy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFudGhlb24td2luZG93cy9TaWRlQWN0aW9uUGFuZWwvc2lkZS1hY3Rpb24tcGFuZWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLXdpbmRvd3MvU2lkZUFjdGlvblBhbmVsL3NpZGUtYWN0aW9uLXBhbmVsLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, EventEmitter, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i2 from '@angular/cdk/drag-drop';
|
|
6
|
+
import { moveItemInArray, transferArrayItem, DragDropModule } from '@angular/cdk/drag-drop';
|
|
7
|
+
import * as i2$1 from '@angular/material/icon';
|
|
8
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
9
|
+
|
|
10
|
+
class PantheonUi {
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonUi, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PantheonUi, isStandalone: true, selector: "lib-pantheon-ui", ngImport: i0, template: `
|
|
13
|
+
<p>
|
|
14
|
+
pantheon-ui works!
|
|
15
|
+
</p>
|
|
16
|
+
`, isInline: true }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonUi, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{ selector: 'lib-pantheon-ui', standalone: true, template: `
|
|
21
|
+
<p>
|
|
22
|
+
pantheon-ui works!
|
|
23
|
+
</p>
|
|
24
|
+
` }]
|
|
25
|
+
}] });
|
|
26
|
+
|
|
27
|
+
class GridPanelComponent {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.dataColumns = [];
|
|
30
|
+
this.gridTemplateColumns = 'repeat(4, 1fr)';
|
|
31
|
+
this.taskMoved = new EventEmitter();
|
|
32
|
+
this.crossOutEnabled = false;
|
|
33
|
+
}
|
|
34
|
+
get connectedDropLists() {
|
|
35
|
+
return this.dataColumns.map((_, index) => `column-${index}`);
|
|
36
|
+
}
|
|
37
|
+
onTaskDrop(event, targetColumnIndex) {
|
|
38
|
+
let movedTask;
|
|
39
|
+
if (event.previousContainer === event.container) {
|
|
40
|
+
moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
|
|
41
|
+
movedTask = event.container.data[event.currentIndex];
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
movedTask = event.previousContainer.data[event.previousIndex];
|
|
45
|
+
transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
|
|
46
|
+
}
|
|
47
|
+
this.dataColumns = [...this.dataColumns];
|
|
48
|
+
this.taskMoved.emit({
|
|
49
|
+
task: movedTask,
|
|
50
|
+
fromIndex: Number(event.previousContainer.id.split('-')[1]),
|
|
51
|
+
toIndex: targetColumnIndex
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridPanelComponent, selector: "pantehon-grid-panel", inputs: { dataColumns: "dataColumns", gridTemplateColumns: "gridTemplateColumns", itemTemplate: "itemTemplate" }, outputs: { taskMoved: "taskMoved" }, ngImport: i0, template: "<div class=\"grid-panel\" [ngStyle]=\"{'grid-template-columns': gridTemplateColumns}\">\n <div class=\"grid-column\" *ngFor=\"let column of dataColumns; let columnIndex = index\"\n cdkDropList\n [id]=\"'column-' + columnIndex\"\n [cdkDropListData]=\"column.items\"\n [cdkDropListConnectedTo]=\"connectedDropLists\"\n (cdkDropListDropped)=\"onTaskDrop($event, columnIndex)\">\n \n <div class=\"column-content\">\n <div *ngFor=\"let item of column.items\" cdkDrag>\n <ng-container\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, columnIndex: columnIndex }\">\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [".grid-panel{width:100%;height:95vh;padding:16px;box-sizing:border-box;background:#f5f5f5}.grid-panel{display:grid;grid-template-columns:repeat(4,1fr);column-gap:16px;row-gap:16px}.grid-column{padding:16px;border:2px solid #0645f1;border-radius:8px;background:#fff;box-shadow:0 2px 8px #0000001a;transition:all .3s ease}.grid-column:hover{box-shadow:0 4px 12px #0645f14d;transform:translateY(-2px)}.column-content{min-height:200px;display:flex;flex-direction:column;gap:8px}.cdk-drop-list-dragging .task-card:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-placeholder{display:none!important}.cdk-drag-preview{padding:16px;border-radius:8px;background:#fff;box-shadow:0 5px 15px #0645f166;opacity:.95;border:2px solid #0645f1}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .cdk-drag:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }] }); }
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPanelComponent, decorators: [{
|
|
58
|
+
type: Component,
|
|
59
|
+
args: [{ selector: 'pantehon-grid-panel', template: "<div class=\"grid-panel\" [ngStyle]=\"{'grid-template-columns': gridTemplateColumns}\">\n <div class=\"grid-column\" *ngFor=\"let column of dataColumns; let columnIndex = index\"\n cdkDropList\n [id]=\"'column-' + columnIndex\"\n [cdkDropListData]=\"column.items\"\n [cdkDropListConnectedTo]=\"connectedDropLists\"\n (cdkDropListDropped)=\"onTaskDrop($event, columnIndex)\">\n \n <div class=\"column-content\">\n <div *ngFor=\"let item of column.items\" cdkDrag>\n <ng-container\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, columnIndex: columnIndex }\">\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [".grid-panel{width:100%;height:95vh;padding:16px;box-sizing:border-box;background:#f5f5f5}.grid-panel{display:grid;grid-template-columns:repeat(4,1fr);column-gap:16px;row-gap:16px}.grid-column{padding:16px;border:2px solid #0645f1;border-radius:8px;background:#fff;box-shadow:0 2px 8px #0000001a;transition:all .3s ease}.grid-column:hover{box-shadow:0 4px 12px #0645f14d;transform:translateY(-2px)}.column-content{min-height:200px;display:flex;flex-direction:column;gap:8px}.cdk-drop-list-dragging .task-card:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-placeholder{display:none!important}.cdk-drag-preview{padding:16px;border-radius:8px;background:#fff;box-shadow:0 5px 15px #0645f166;opacity:.95;border:2px solid #0645f1}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .cdk-drag:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
60
|
+
}], propDecorators: { dataColumns: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], gridTemplateColumns: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], itemTemplate: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], taskMoved: [{
|
|
67
|
+
type: Output
|
|
68
|
+
}] } });
|
|
69
|
+
|
|
70
|
+
class CardComponent {
|
|
71
|
+
constructor() {
|
|
72
|
+
this.isCompleted = false;
|
|
73
|
+
this.cardClass = '';
|
|
74
|
+
}
|
|
75
|
+
get title() {
|
|
76
|
+
return this.data?.title || '';
|
|
77
|
+
}
|
|
78
|
+
get description() {
|
|
79
|
+
return this.data?.description || '';
|
|
80
|
+
}
|
|
81
|
+
get createdAt() {
|
|
82
|
+
return this.data?.createdAt || '';
|
|
83
|
+
}
|
|
84
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
85
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CardComponent, selector: "pantehon-card", inputs: { data: "data", isCompleted: "isCompleted", cardClass: "cardClass" }, ngImport: i0, template: "<div class=\"container-card\">\n <div class=\"card\" [ngClass]=\"[cardClass, isCompleted ? 'is-completed' : '']\">\n <div class=\"date-container\">\n <mat-icon>calendar_today</mat-icon>\n {{ createdAt }}\n </div>\n <h3>{{ title }}</h3>\n <p>{{ description }}</p>\n <div class=\"card-footer\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n <ng-content select=\"[extra]\"></ng-content>\n </div>\n</div>\n", styles: [".card{display:flex;flex-direction:column;background:#fff;padding:16px;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 10px 4px #0625d11a;transition:all .3s ease;cursor:grab}.card-footer{margin-top:12px;border-top:1px solid #e0e0e0;padding-top:8px;font-size:12px;color:#666}.card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.card:active{cursor:grabbing}.date-container{display:flex;align-items:center;gap:4px;align-self:flex-end;color:#666}.is-completed{text-decoration:line-through;color:#888}.mat-icon{font-size:16px;margin-left:14%;margin-top:4%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
86
|
+
}
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardComponent, decorators: [{
|
|
88
|
+
type: Component,
|
|
89
|
+
args: [{ selector: 'pantehon-card', template: "<div class=\"container-card\">\n <div class=\"card\" [ngClass]=\"[cardClass, isCompleted ? 'is-completed' : '']\">\n <div class=\"date-container\">\n <mat-icon>calendar_today</mat-icon>\n {{ createdAt }}\n </div>\n <h3>{{ title }}</h3>\n <p>{{ description }}</p>\n <div class=\"card-footer\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n <ng-content select=\"[extra]\"></ng-content>\n </div>\n</div>\n", styles: [".card{display:flex;flex-direction:column;background:#fff;padding:16px;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 10px 4px #0625d11a;transition:all .3s ease;cursor:grab}.card-footer{margin-top:12px;border-top:1px solid #e0e0e0;padding-top:8px;font-size:12px;color:#666}.card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.card:active{cursor:grabbing}.date-container{display:flex;align-items:center;gap:4px;align-self:flex-end;color:#666}.is-completed{text-decoration:line-through;color:#888}.mat-icon{font-size:16px;margin-left:14%;margin-top:4%}\n"] }]
|
|
90
|
+
}], propDecorators: { data: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], isCompleted: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], cardClass: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}] } });
|
|
97
|
+
|
|
98
|
+
const MODAL_SIZES = ['sm', 'md', 'lg', 'fullscreen'];
|
|
99
|
+
const MODAL_VARIANTS = ['default', 'info', 'warning', 'error'];
|
|
100
|
+
const ICONS = {
|
|
101
|
+
default: 'info',
|
|
102
|
+
info: 'info',
|
|
103
|
+
warning: 'warning',
|
|
104
|
+
error: 'error_outline'
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
class WindowComponent {
|
|
108
|
+
constructor() {
|
|
109
|
+
this.size = 'md';
|
|
110
|
+
this.variant = 'default';
|
|
111
|
+
this.show = false;
|
|
112
|
+
this.titleBtnClose = 'Volver';
|
|
113
|
+
this.titleBtnNext = '';
|
|
114
|
+
this.onAction = () => { };
|
|
115
|
+
this.showChange = new EventEmitter();
|
|
116
|
+
}
|
|
117
|
+
get icon() {
|
|
118
|
+
return ICONS[this.variant];
|
|
119
|
+
}
|
|
120
|
+
close() {
|
|
121
|
+
this.show = false;
|
|
122
|
+
this.showChange.emit(this.show);
|
|
123
|
+
}
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: WindowComponent, selector: "pantehon-window", inputs: { size: "size", variant: "variant", show: "show", titleBtnClose: "titleBtnClose", titleBtnNext: "titleBtnNext", onAction: "onAction" }, outputs: { showChange: "showChange" }, ngImport: i0, template: "<div class=\"modal-backdrop\" *ngIf=\"show\" (click)=\"close()\"></div>\n\n<div *ngIf=\"show\" class=\"container-window\" [ngClass]=\"['size-' + size, 'variant-' + variant]\">\n <div class=\"window-header\">\n <mat-icon class=\"window-icon\">{{ icon }}</mat-icon><ng-content select=\"[title]\"></ng-content>\n </div>\n <div class=\"window-body\"><ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"window-footer\">\n <button mat-button class=\"btn-close\" (click)=\"close()\">{{ titleBtnClose }}</button>\n <button *ngIf=\"titleBtnNext && titleBtnNext.trim() !== ''\" mat-button class=\"btn-next\" (click)=\"onAction()\">\n {{ titleBtnNext }}\n </button>\n </div>\n</div>", styles: [".container-window{display:flex;flex-direction:column;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;border-radius:8px;box-shadow:0 10px 4px #0625d11a;background:#e4e1e1;overflow:hidden;min-width:50vw;min-height:50vh;max-width:90vw;max-height:90vh}.container-window .window-body{overflow:auto;padding-top:8px;width:100%;display:flex;flex-grow:1;justify-content:center}.container-window.size-sm{width:300px}.container-window.size-md{width:600px}.container-window.size-lg{width:900px}.container-window.size-fullscreen{width:100%;height:100%}.container-window.variant-default{background:#e4e1e1}.container-window.variant-info{background:#d0ebff}.container-window.variant-warning{background:#fff4e5}.container-window.variant-error{background:#ffe5e5}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:900}.window-header{display:flex;align-items:center;justify-content:center;padding:10px;background:#0000001a;border-bottom:1px solid rgba(0,0,0,.1)}.window-header .window-icon{margin-top:8px;font-size:16px}.window-header .window-title{flex-grow:1;font-weight:700;font-size:16px}.window-footer{display:flex;justify-content:center;padding:10px;background:#0000001a;border-top:1px solid rgba(0,0,0,.1)}.btn-next{margin-left:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
126
|
+
}
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WindowComponent, decorators: [{
|
|
128
|
+
type: Component,
|
|
129
|
+
args: [{ selector: 'pantehon-window', template: "<div class=\"modal-backdrop\" *ngIf=\"show\" (click)=\"close()\"></div>\n\n<div *ngIf=\"show\" class=\"container-window\" [ngClass]=\"['size-' + size, 'variant-' + variant]\">\n <div class=\"window-header\">\n <mat-icon class=\"window-icon\">{{ icon }}</mat-icon><ng-content select=\"[title]\"></ng-content>\n </div>\n <div class=\"window-body\"><ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"window-footer\">\n <button mat-button class=\"btn-close\" (click)=\"close()\">{{ titleBtnClose }}</button>\n <button *ngIf=\"titleBtnNext && titleBtnNext.trim() !== ''\" mat-button class=\"btn-next\" (click)=\"onAction()\">\n {{ titleBtnNext }}\n </button>\n </div>\n</div>", styles: [".container-window{display:flex;flex-direction:column;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;border-radius:8px;box-shadow:0 10px 4px #0625d11a;background:#e4e1e1;overflow:hidden;min-width:50vw;min-height:50vh;max-width:90vw;max-height:90vh}.container-window .window-body{overflow:auto;padding-top:8px;width:100%;display:flex;flex-grow:1;justify-content:center}.container-window.size-sm{width:300px}.container-window.size-md{width:600px}.container-window.size-lg{width:900px}.container-window.size-fullscreen{width:100%;height:100%}.container-window.variant-default{background:#e4e1e1}.container-window.variant-info{background:#d0ebff}.container-window.variant-warning{background:#fff4e5}.container-window.variant-error{background:#ffe5e5}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:900}.window-header{display:flex;align-items:center;justify-content:center;padding:10px;background:#0000001a;border-bottom:1px solid rgba(0,0,0,.1)}.window-header .window-icon{margin-top:8px;font-size:16px}.window-header .window-title{flex-grow:1;font-weight:700;font-size:16px}.window-footer{display:flex;justify-content:center;padding:10px;background:#0000001a;border-top:1px solid rgba(0,0,0,.1)}.btn-next{margin-left:8px}\n"] }]
|
|
130
|
+
}], propDecorators: { size: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], variant: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], show: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], titleBtnClose: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], titleBtnNext: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], onAction: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], showChange: [{
|
|
143
|
+
type: Output
|
|
144
|
+
}] } });
|
|
145
|
+
|
|
146
|
+
class WindowModule {
|
|
147
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WindowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
148
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: WindowModule, declarations: [WindowComponent], imports: [CommonModule,
|
|
149
|
+
MatIconModule], exports: [WindowComponent] }); }
|
|
150
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WindowModule, imports: [CommonModule,
|
|
151
|
+
MatIconModule] }); }
|
|
152
|
+
}
|
|
153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WindowModule, decorators: [{
|
|
154
|
+
type: NgModule,
|
|
155
|
+
args: [{
|
|
156
|
+
declarations: [
|
|
157
|
+
WindowComponent,
|
|
158
|
+
],
|
|
159
|
+
imports: [
|
|
160
|
+
CommonModule,
|
|
161
|
+
MatIconModule
|
|
162
|
+
],
|
|
163
|
+
exports: [
|
|
164
|
+
WindowComponent,
|
|
165
|
+
]
|
|
166
|
+
}]
|
|
167
|
+
}] });
|
|
168
|
+
|
|
169
|
+
class CardModule {
|
|
170
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
171
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: CardModule, declarations: [CardComponent], imports: [CommonModule,
|
|
172
|
+
MatIconModule,
|
|
173
|
+
WindowModule], exports: [CardComponent] }); }
|
|
174
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardModule, imports: [CommonModule,
|
|
175
|
+
MatIconModule,
|
|
176
|
+
WindowModule] }); }
|
|
177
|
+
}
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardModule, decorators: [{
|
|
179
|
+
type: NgModule,
|
|
180
|
+
args: [{
|
|
181
|
+
declarations: [
|
|
182
|
+
CardComponent,
|
|
183
|
+
],
|
|
184
|
+
imports: [
|
|
185
|
+
CommonModule,
|
|
186
|
+
MatIconModule,
|
|
187
|
+
WindowModule
|
|
188
|
+
],
|
|
189
|
+
exports: [
|
|
190
|
+
CardComponent,
|
|
191
|
+
]
|
|
192
|
+
}]
|
|
193
|
+
}] });
|
|
194
|
+
|
|
195
|
+
class GridPanelHeaderComponent {
|
|
196
|
+
constructor() {
|
|
197
|
+
this.columns = [];
|
|
198
|
+
this.menuAux = false;
|
|
199
|
+
this.iconMenu = 'menu';
|
|
200
|
+
/**
|
|
201
|
+
* Icono que se mostrará en el botón del menú auxiliar.
|
|
202
|
+
* Debe ser un nombre válido de Material Icons (Filled) disponible en:
|
|
203
|
+
* https://fonts.google.com/icons?icon.set=Material+Icons&icon.style=Filled
|
|
204
|
+
* Ejemplos válidos: 'menu', 'more_vert', 'add', 'account_circle', etc.
|
|
205
|
+
*/
|
|
206
|
+
this.gridTemplateColumns = `repeat(${this.columns.length}, 1fr)`;
|
|
207
|
+
this.extraMenuClick = new EventEmitter();
|
|
208
|
+
}
|
|
209
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPanelHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
210
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridPanelHeaderComponent, isStandalone: true, selector: "pantehon-grid-panel-header", inputs: { columns: "columns", menuAux: "menuAux", iconMenu: "iconMenu" }, outputs: { extraMenuClick: "extraMenuClick" }, ngImport: i0, template: "<div class=\"header-container\">\n <div class=\"menus\">\n <button *ngIf=\"menuAux\" class=\"menu-button\" (click)=\"extraMenuClick.emit($event)\"\n>\n <span class=\"material-icons\">{{ iconMenu }}</span>\n </button>\n </div>\n\n <div class=\"header-column\" *ngFor=\"let col of columns\">\n {{ col }}\n </div>\n</div>", styles: [".header-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));background:#0645f1;padding:12px;border-radius:10px 10px 0 0;font-weight:600;color:#333;text-align:center;gap:10px}.header-column{padding:8px 0;background:#0789f3;border-radius:6px;color:#fff}.menus{position:absolute;top:21px;left:28px;z-index:10}.menu-button{width:40px;height:32px;border:none;border-radius:8px;background-color:#7297ff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0003;transition:all .3s ease}.menu-button:hover{box-shadow:0 4px 12px #0645f14d;transform:translateY(-2px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
211
|
+
}
|
|
212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPanelHeaderComponent, decorators: [{
|
|
213
|
+
type: Component,
|
|
214
|
+
args: [{ selector: 'pantehon-grid-panel-header', standalone: true, imports: [CommonModule], template: "<div class=\"header-container\">\n <div class=\"menus\">\n <button *ngIf=\"menuAux\" class=\"menu-button\" (click)=\"extraMenuClick.emit($event)\"\n>\n <span class=\"material-icons\">{{ iconMenu }}</span>\n </button>\n </div>\n\n <div class=\"header-column\" *ngFor=\"let col of columns\">\n {{ col }}\n </div>\n</div>", styles: [".header-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));background:#0645f1;padding:12px;border-radius:10px 10px 0 0;font-weight:600;color:#333;text-align:center;gap:10px}.header-column{padding:8px 0;background:#0789f3;border-radius:6px;color:#fff}.menus{position:absolute;top:21px;left:28px;z-index:10}.menu-button{width:40px;height:32px;border:none;border-radius:8px;background-color:#7297ff;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0003;transition:all .3s ease}.menu-button:hover{box-shadow:0 4px 12px #0645f14d;transform:translateY(-2px)}\n"] }]
|
|
215
|
+
}], propDecorators: { columns: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], menuAux: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], iconMenu: [{
|
|
220
|
+
type: Input
|
|
221
|
+
}], extraMenuClick: [{
|
|
222
|
+
type: Output
|
|
223
|
+
}] } });
|
|
224
|
+
|
|
225
|
+
class GridPanelHeaderModule {
|
|
226
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPanelHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
227
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GridPanelHeaderModule, imports: [CommonModule,
|
|
228
|
+
GridPanelHeaderComponent], exports: [GridPanelHeaderComponent] }); }
|
|
229
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPanelHeaderModule, imports: [CommonModule,
|
|
230
|
+
GridPanelHeaderComponent] }); }
|
|
231
|
+
}
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPanelHeaderModule, decorators: [{
|
|
233
|
+
type: NgModule,
|
|
234
|
+
args: [{
|
|
235
|
+
declarations: [],
|
|
236
|
+
imports: [
|
|
237
|
+
CommonModule,
|
|
238
|
+
GridPanelHeaderComponent,
|
|
239
|
+
],
|
|
240
|
+
exports: [
|
|
241
|
+
GridPanelHeaderComponent,
|
|
242
|
+
]
|
|
243
|
+
}]
|
|
244
|
+
}] });
|
|
245
|
+
|
|
246
|
+
class GridPanelModule {
|
|
247
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
248
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GridPanelModule, declarations: [GridPanelComponent], imports: [CommonModule,
|
|
249
|
+
CardModule,
|
|
250
|
+
GridPanelHeaderModule,
|
|
251
|
+
DragDropModule], exports: [GridPanelComponent] }); }
|
|
252
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPanelModule, imports: [CommonModule,
|
|
253
|
+
CardModule,
|
|
254
|
+
GridPanelHeaderModule,
|
|
255
|
+
DragDropModule] }); }
|
|
256
|
+
}
|
|
257
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPanelModule, decorators: [{
|
|
258
|
+
type: NgModule,
|
|
259
|
+
args: [{
|
|
260
|
+
declarations: [
|
|
261
|
+
GridPanelComponent,
|
|
262
|
+
],
|
|
263
|
+
imports: [
|
|
264
|
+
CommonModule,
|
|
265
|
+
CardModule,
|
|
266
|
+
GridPanelHeaderModule,
|
|
267
|
+
DragDropModule,
|
|
268
|
+
],
|
|
269
|
+
exports: [
|
|
270
|
+
GridPanelComponent,
|
|
271
|
+
]
|
|
272
|
+
}]
|
|
273
|
+
}] });
|
|
274
|
+
|
|
275
|
+
class SideActionPanelComponent {
|
|
276
|
+
constructor() {
|
|
277
|
+
this.open = false;
|
|
278
|
+
this.actions = [];
|
|
279
|
+
this.close = new EventEmitter();
|
|
280
|
+
}
|
|
281
|
+
createStars(event) {
|
|
282
|
+
const button = event.currentTarget;
|
|
283
|
+
const rect = button.getBoundingClientRect();
|
|
284
|
+
const startX = rect.left + rect.width / 2;
|
|
285
|
+
const startY = rect.top + rect.height / 2;
|
|
286
|
+
for (let i = 0; i < 6; i++) {
|
|
287
|
+
const star = document.createElement('div');
|
|
288
|
+
star.style.position = 'fixed';
|
|
289
|
+
star.style.left = `${startX}px`;
|
|
290
|
+
star.style.top = `${startY}px`;
|
|
291
|
+
star.style.width = '8px';
|
|
292
|
+
star.style.height = '8px';
|
|
293
|
+
star.style.borderRadius = '50%';
|
|
294
|
+
star.style.background = 'radial-gradient(circle, #fbbf24 0%, #f59e0b 50%)';
|
|
295
|
+
star.style.boxShadow = '0 0 8px rgba(251, 191, 36, 1)';
|
|
296
|
+
star.style.pointerEvents = 'none';
|
|
297
|
+
star.style.zIndex = '10000';
|
|
298
|
+
const offsetX = Math.random() * 100 - 50;
|
|
299
|
+
const offsetY = Math.random() * 100 - 50;
|
|
300
|
+
document.body.appendChild(star);
|
|
301
|
+
// Animar con requestAnimationFrame para mejor visibilidad
|
|
302
|
+
let elapsed = 0;
|
|
303
|
+
const duration = 1500;
|
|
304
|
+
const animate = () => {
|
|
305
|
+
elapsed += 16;
|
|
306
|
+
const progress = elapsed / duration;
|
|
307
|
+
star.style.transform = `translate(${offsetX * progress}px, ${offsetY * progress}px) scale(${1 - progress})`;
|
|
308
|
+
star.style.opacity = `${1 - progress}`;
|
|
309
|
+
if (elapsed < duration) {
|
|
310
|
+
requestAnimationFrame(animate);
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
star.remove();
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
animate();
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
handleAction(event, action) {
|
|
320
|
+
this.createStars(event);
|
|
321
|
+
action.callback();
|
|
322
|
+
}
|
|
323
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SideActionPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
324
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SideActionPanelComponent, selector: "pantheon-side-action-panel", inputs: { open: "open", actions: "actions" }, outputs: { close: "close" }, ngImport: i0, template: "<div class=\"overlay\" *ngIf=\"open\" (click)=\"close.emit()\">\n <aside class=\"panel\" (click)=\"$event.stopPropagation()\">\n\n <button\n class=\"close-btn\"\n aria-label=\"Cerrar\"\n (click)=\"close.emit()\">\n \u2715\n </button>\n\n <div class=\"actions\">\n <button *ngFor=\"let action of actions\"\n (click)=\"handleAction($event, action)\"\n [ngClass]=\"action.type || 'default'\">\n <span *ngIf=\"action.icon\">{{ action.icon }}</span>\n {{ action.label }}\n </button>\n </div>\n\n </aside>\n</div>\n", styles: ["@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.overlay{position:fixed;inset:0;background:#0003;display:flex;justify-content:flex-start;align-items:stretch;z-index:1000}.panel{position:relative;width:320px;height:100%;background:#fff;padding:1.5rem;box-shadow:2px 0 12px #00000026;animation:slideIn .25s ease-out}.close-btn{position:absolute;top:12px;right:12px;background:none;border:none;font-size:20px;cursor:pointer;opacity:.6;transition:opacity .2s ease,transform .1s ease}.close-btn:hover{opacity:1;transform:scale(1.05)}.close-btn:focus-visible{outline:2px solid #999;border-radius:4px}.actions{display:flex;flex-direction:column;gap:16px;margin-top:32px}.actions button{display:flex;align-items:center;gap:10px;padding:12px 14px;border:none;border-radius:12px;background:linear-gradient(135deg,#4f46e5,#6842c0);color:#fff;font-size:14px;font-weight:600;cursor:pointer;position:relative;overflow:visible;transition:transform .15s ease,box-shadow .15s ease;z-index:1}.actions button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #4b00ff4d}.actions button:active{transform:scale(.97)}.actions .danger{background:linear-gradient(135deg,#f43f5e,#ec4899)}.actions .primary{background:linear-gradient(135deg,#031bf5,#3b09b1)}.star{width:8px;height:8px;background:radial-gradient(circle,#fbbf24 0%,#f59e0b 50%,transparent 70%);border-radius:50%;pointer-events:none;animation:starMove 1.5s ease-out forwards;box-shadow:0 0 8px #fbbf24,0 0 12px #f59e0bcc;z-index:9999}@keyframes starMove{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--x),var(--y)) scale(0);opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
325
|
+
}
|
|
326
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SideActionPanelComponent, decorators: [{
|
|
327
|
+
type: Component,
|
|
328
|
+
args: [{ selector: 'pantheon-side-action-panel', template: "<div class=\"overlay\" *ngIf=\"open\" (click)=\"close.emit()\">\n <aside class=\"panel\" (click)=\"$event.stopPropagation()\">\n\n <button\n class=\"close-btn\"\n aria-label=\"Cerrar\"\n (click)=\"close.emit()\">\n \u2715\n </button>\n\n <div class=\"actions\">\n <button *ngFor=\"let action of actions\"\n (click)=\"handleAction($event, action)\"\n [ngClass]=\"action.type || 'default'\">\n <span *ngIf=\"action.icon\">{{ action.icon }}</span>\n {{ action.label }}\n </button>\n </div>\n\n </aside>\n</div>\n", styles: ["@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.overlay{position:fixed;inset:0;background:#0003;display:flex;justify-content:flex-start;align-items:stretch;z-index:1000}.panel{position:relative;width:320px;height:100%;background:#fff;padding:1.5rem;box-shadow:2px 0 12px #00000026;animation:slideIn .25s ease-out}.close-btn{position:absolute;top:12px;right:12px;background:none;border:none;font-size:20px;cursor:pointer;opacity:.6;transition:opacity .2s ease,transform .1s ease}.close-btn:hover{opacity:1;transform:scale(1.05)}.close-btn:focus-visible{outline:2px solid #999;border-radius:4px}.actions{display:flex;flex-direction:column;gap:16px;margin-top:32px}.actions button{display:flex;align-items:center;gap:10px;padding:12px 14px;border:none;border-radius:12px;background:linear-gradient(135deg,#4f46e5,#6842c0);color:#fff;font-size:14px;font-weight:600;cursor:pointer;position:relative;overflow:visible;transition:transform .15s ease,box-shadow .15s ease;z-index:1}.actions button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #4b00ff4d}.actions button:active{transform:scale(.97)}.actions .danger{background:linear-gradient(135deg,#f43f5e,#ec4899)}.actions .primary{background:linear-gradient(135deg,#031bf5,#3b09b1)}.star{width:8px;height:8px;background:radial-gradient(circle,#fbbf24 0%,#f59e0b 50%,transparent 70%);border-radius:50%;pointer-events:none;animation:starMove 1.5s ease-out forwards;box-shadow:0 0 8px #fbbf24,0 0 12px #f59e0bcc;z-index:9999}@keyframes starMove{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--x),var(--y)) scale(0);opacity:0}}\n"] }]
|
|
329
|
+
}], propDecorators: { open: [{
|
|
330
|
+
type: Input
|
|
331
|
+
}], actions: [{
|
|
332
|
+
type: Input
|
|
333
|
+
}], close: [{
|
|
334
|
+
type: Output
|
|
335
|
+
}] } });
|
|
336
|
+
|
|
337
|
+
class SideActionPanelModule {
|
|
338
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SideActionPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
339
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SideActionPanelModule, declarations: [SideActionPanelComponent], imports: [CommonModule,
|
|
340
|
+
MatIconModule], exports: [SideActionPanelComponent] }); }
|
|
341
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SideActionPanelModule, imports: [CommonModule,
|
|
342
|
+
MatIconModule] }); }
|
|
343
|
+
}
|
|
344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SideActionPanelModule, decorators: [{
|
|
345
|
+
type: NgModule,
|
|
346
|
+
args: [{
|
|
347
|
+
declarations: [
|
|
348
|
+
SideActionPanelComponent,
|
|
349
|
+
],
|
|
350
|
+
imports: [
|
|
351
|
+
CommonModule,
|
|
352
|
+
MatIconModule
|
|
353
|
+
],
|
|
354
|
+
exports: [
|
|
355
|
+
SideActionPanelComponent,
|
|
356
|
+
]
|
|
357
|
+
}]
|
|
358
|
+
}] });
|
|
359
|
+
|
|
360
|
+
/*
|
|
361
|
+
* Public API Surface of pantheon-ui
|
|
362
|
+
*/
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Generated bundle index. Do not edit.
|
|
366
|
+
*/
|
|
367
|
+
|
|
368
|
+
export { CardComponent, CardModule, GridPanelComponent, GridPanelHeaderComponent, GridPanelHeaderModule, GridPanelModule, PantheonUi, SideActionPanelComponent, SideActionPanelModule, WindowComponent, WindowModule };
|
|
369
|
+
//# sourceMappingURL=pantheon-ui.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pantheon-ui.mjs","sources":["../../../projects/pantheon-ui/src/lib/pantheon-ui.ts","../../../projects/pantheon-ui/src/lib/pantheon-Panels/grid-panel/grid-panel.component.ts","../../../projects/pantheon-ui/src/lib/pantheon-Panels/grid-panel/grid-panel.component.html","../../../projects/pantheon-ui/src/lib/pantheon-Cards/card.component.ts","../../../projects/pantheon-ui/src/lib/pantheon-Cards/card.component.html","../../../projects/pantheon-ui/src/lib/pantheon-windows/window/constants.ts","../../../projects/pantheon-ui/src/lib/pantheon-windows/window/window.component.ts","../../../projects/pantheon-ui/src/lib/pantheon-windows/window/window.component.html","../../../projects/pantheon-ui/src/lib/pantheon-windows/window/window.module.ts","../../../projects/pantheon-ui/src/lib/pantheon-Cards/card.module.ts","../../../projects/pantheon-ui/src/lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.component.ts","../../../projects/pantheon-ui/src/lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.component.html","../../../projects/pantheon-ui/src/lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.module.ts","../../../projects/pantheon-ui/src/lib/pantheon-Panels/grid-panel/grid-panel.module.ts","../../../projects/pantheon-ui/src/lib/pantheon-windows/SideActionPanel/side-action-panel.component.ts","../../../projects/pantheon-ui/src/lib/pantheon-windows/SideActionPanel/side-action-panel.html","../../../projects/pantheon-ui/src/lib/pantheon-windows/SideActionPanel/side-action-panel.module.ts","../../../projects/pantheon-ui/src/public-api.ts","../../../projects/pantheon-ui/src/pantheon-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-pantheon-ui',\n standalone: true,\n template: `\n <p>\n pantheon-ui works!\n </p>\n `,\n styles: [],\n})\nexport class PantheonUi {\n\n}\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\n\n@Component({\n selector: 'pantehon-grid-panel',\n templateUrl: './grid-panel.component.html',\n styleUrls: ['./grid-panel.component.scss']\n})\nexport class GridPanelComponent {\n\n @Input() dataColumns: Array<{ name: string; items: any[] }> = [];\n @Input() gridTemplateColumns = 'repeat(4, 1fr)';\n @Input() itemTemplate!: TemplateRef<any>;\n @Output() taskMoved = new EventEmitter<{ task: any; fromIndex: number; toIndex: number }>();\n\n crossOutEnabled = false;\n\n get connectedDropLists(): string[] {\n return this.dataColumns.map((_, index) => `column-${index}`);\n }\n\n onTaskDrop(event: CdkDragDrop<any[]>, targetColumnIndex: number) {\n let movedTask;\n\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n movedTask = event.container.data[event.currentIndex];\n } else {\n movedTask = event.previousContainer.data[event.previousIndex];\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n\n this.dataColumns = [...this.dataColumns];\n\n this.taskMoved.emit({\n task: movedTask,\n fromIndex: Number(event.previousContainer.id.split('-')[1]),\n toIndex: targetColumnIndex\n });\n }\n\n}\n","<div class=\"grid-panel\" [ngStyle]=\"{'grid-template-columns': gridTemplateColumns}\">\n <div class=\"grid-column\" *ngFor=\"let column of dataColumns; let columnIndex = index\"\n cdkDropList\n [id]=\"'column-' + columnIndex\"\n [cdkDropListData]=\"column.items\"\n [cdkDropListConnectedTo]=\"connectedDropLists\"\n (cdkDropListDropped)=\"onTaskDrop($event, columnIndex)\">\n \n <div class=\"column-content\">\n <div *ngFor=\"let item of column.items\" cdkDrag>\n <ng-container\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, columnIndex: columnIndex }\">\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pantehon-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss']\n})\nexport class CardComponent {\n @Input() data!: any;\n @Input() isCompleted = false;\n @Input() cardClass = '';\n\n get title(): string {\n return this.data?.title || '';\n }\n\n get description(): string {\n return this.data?.description || '';\n }\n\n get createdAt(): string {\n return this.data?.createdAt || '';\n }\n}\n","<div class=\"container-card\">\n <div class=\"card\" [ngClass]=\"[cardClass, isCompleted ? 'is-completed' : '']\">\n <div class=\"date-container\">\n <mat-icon>calendar_today</mat-icon>\n {{ createdAt }}\n </div>\n <h3>{{ title }}</h3>\n <p>{{ description }}</p>\n <div class=\"card-footer\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n <ng-content select=\"[extra]\"></ng-content>\n </div>\n</div>\n","export type ModalSize = typeof MODAL_SIZES[number];\nexport type ModalVariant = typeof MODAL_VARIANTS[number];\n\nexport const MODAL_SIZES = ['sm', 'md', 'lg', 'fullscreen'];\nexport const MODAL_VARIANTS = ['default', 'info', 'warning', 'error'];\n\n\nexport const ICONS: Record<ModalVariant, string> = {\n default: 'info',\n info: 'info',\n warning: 'warning',\n error: 'error_outline'\n};\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { ModalSize, ModalVariant, ICONS } from './constants';\n\n@Component({\n selector: 'pantehon-window',\n templateUrl: './window.component.html',\n styleUrls: ['./window.component.scss']\n})\nexport class WindowComponent {\n @Input() size: ModalSize = 'md';\n @Input() variant: ModalVariant = 'default';\n @Input() show: boolean = false;\n @Input() titleBtnClose: string = 'Volver';\n @Input() titleBtnNext: string = '';\n\n @Input() onAction: () => void = () => {};\n @Output() showChange = new EventEmitter<boolean>();\n\n get icon(): string {\n return ICONS[this.variant];\n }\n\n close(): void {\n this.show = false;\n this.showChange.emit(this.show);\n }\n}\n","<div class=\"modal-backdrop\" *ngIf=\"show\" (click)=\"close()\"></div>\n\n<div *ngIf=\"show\" class=\"container-window\" [ngClass]=\"['size-' + size, 'variant-' + variant]\">\n <div class=\"window-header\">\n <mat-icon class=\"window-icon\">{{ icon }}</mat-icon><ng-content select=\"[title]\"></ng-content>\n </div>\n <div class=\"window-body\"><ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"window-footer\">\n <button mat-button class=\"btn-close\" (click)=\"close()\">{{ titleBtnClose }}</button>\n <button *ngIf=\"titleBtnNext && titleBtnNext.trim() !== ''\" mat-button class=\"btn-next\" (click)=\"onAction()\">\n {{ titleBtnNext }}\n </button>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WindowComponent } from './window.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [\n WindowComponent,\n ],\n imports: [\n CommonModule,\n MatIconModule\n ],\n exports: [\n WindowComponent,\n ]\n})\nexport class WindowModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CardComponent } from './card.component';\nimport { WindowModule } from '../pantheon-windows/window/window.module'; \nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [\n CardComponent,\n ],\n imports: [\n CommonModule,\n MatIconModule,\n WindowModule\n ],\n exports: [\n CardComponent,\n ]\n})\nexport class CardModule { }\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'pantehon-grid-panel-header',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './grid-panel-header.component.html',\n styleUrls: ['./grid-panel-header.component.scss']\n})\nexport class GridPanelHeaderComponent {\n\n\n @Input() columns: Array<String> = [];\n @Input() menuAux: boolean = false;\n @Input() iconMenu: string = 'menu';\n /**\n * Icono que se mostrará en el botón del menú auxiliar.\n * Debe ser un nombre válido de Material Icons (Filled) disponible en:\n * https://fonts.google.com/icons?icon.set=Material+Icons&icon.style=Filled\n * Ejemplos válidos: 'menu', 'more_vert', 'add', 'account_circle', etc.\n */\n gridTemplateColumns: string = `repeat(${this.columns.length}, 1fr)`;\n @Output() extraMenuClick = new EventEmitter<MouseEvent>();\n\n\n}\n","<div class=\"header-container\">\n <div class=\"menus\">\n <button *ngIf=\"menuAux\" class=\"menu-button\" (click)=\"extraMenuClick.emit($event)\"\n>\n <span class=\"material-icons\">{{ iconMenu }}</span>\n </button>\n </div>\n\n <div class=\"header-column\" *ngFor=\"let col of columns\">\n {{ col }}\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GridPanelHeaderComponent } from './grid-panel-header.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n GridPanelHeaderComponent,\n ],\n exports: [\n GridPanelHeaderComponent,\n ]\n})\nexport class GridPanelHeaderModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { GridPanelComponent } from './grid-panel.component';\nimport { CardModule } from '../../pantheon-Cards/card.module';\nimport { GridPanelHeaderModule } from './grid-pannel-header/grid-panel-header.module';\n\n@NgModule({\n declarations: [\n GridPanelComponent,\n ],\n imports: [\n CommonModule,\n CardModule,\n GridPanelHeaderModule,\n DragDropModule,\n ],\n exports: [\n GridPanelComponent,\n ]\n})\nexport class GridPanelModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Action } from './interface';\n\n@Component({\n selector: 'pantheon-side-action-panel',\n templateUrl: './side-action-panel.html',\n styleUrls: ['./side-action-panel.component.scss']\n})\nexport class SideActionPanelComponent {\n @Input() open = false;\n @Input() actions: Action[] = [];\n @Output() close = new EventEmitter<void>();\n\n createStars(event: MouseEvent) {\n const button = event.currentTarget as HTMLElement;\n const rect = button.getBoundingClientRect();\n const startX = rect.left + rect.width / 2;\n const startY = rect.top + rect.height / 2;\n \n for (let i = 0; i < 6; i++) {\n const star = document.createElement('div');\n star.style.position = 'fixed';\n star.style.left = `${startX}px`;\n star.style.top = `${startY}px`;\n star.style.width = '8px';\n star.style.height = '8px';\n star.style.borderRadius = '50%';\n star.style.background = 'radial-gradient(circle, #fbbf24 0%, #f59e0b 50%)';\n star.style.boxShadow = '0 0 8px rgba(251, 191, 36, 1)';\n star.style.pointerEvents = 'none';\n star.style.zIndex = '10000';\n \n const offsetX = Math.random() * 100 - 50;\n const offsetY = Math.random() * 100 - 50;\n \n document.body.appendChild(star);\n \n // Animar con requestAnimationFrame para mejor visibilidad\n let elapsed = 0;\n const duration = 1500;\n \n const animate = () => {\n elapsed += 16;\n const progress = elapsed / duration;\n \n star.style.transform = `translate(${offsetX * progress}px, ${offsetY * progress}px) scale(${1 - progress})`;\n star.style.opacity = `${1 - progress}`;\n \n if (elapsed < duration) {\n requestAnimationFrame(animate);\n } else {\n star.remove();\n }\n };\n \n animate();\n }\n }\n\n handleAction(event: MouseEvent, action: Action) {\n this.createStars(event);\n action.callback();\n }\n}\n","<div class=\"overlay\" *ngIf=\"open\" (click)=\"close.emit()\">\n <aside class=\"panel\" (click)=\"$event.stopPropagation()\">\n\n <button\n class=\"close-btn\"\n aria-label=\"Cerrar\"\n (click)=\"close.emit()\">\n ✕\n </button>\n\n <div class=\"actions\">\n <button *ngFor=\"let action of actions\"\n (click)=\"handleAction($event, action)\"\n [ngClass]=\"action.type || 'default'\">\n <span *ngIf=\"action.icon\">{{ action.icon }}</span>\n {{ action.label }}\n </button>\n </div>\n\n </aside>\n</div>\n","import { NgModule } from '@angular/core';\n import { CommonModule } from '@angular/common';\n import { SideActionPanelComponent } from './side-action-panel.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [\n SideActionPanelComponent,\n ],\n imports: [\n CommonModule,\n MatIconModule\n ],\n exports: [\n SideActionPanelComponent,\n ]\n})\nexport class SideActionPanelModule { }\n","/*\n * Public API Surface of pantheon-ui\n */\n\nexport * from './lib/pantheon-ui';\nexport * from './lib/pantheon-Panels/grid-panel/grid-panel.module';\nexport * from './lib/pantheon-Panels/grid-panel/grid-panel.component';\nexport * from './lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.module';\nexport * from './lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.component';\nexport * from './lib/pantheon-Cards/card.module';\nexport * from './lib/pantheon-Cards/card.component';\nexport * from './lib/pantheon-windows/window/window.module';\nexport * from './lib/pantheon-windows/window/window.component';\nexport * from './lib/pantheon-windows/SideActionPanel/side-action-panel.module';\nexport * from './lib/pantheon-windows/SideActionPanel/side-action-panel.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class CardComponent {
|
|
3
|
+
data: any;
|
|
4
|
+
isCompleted: boolean;
|
|
5
|
+
cardClass: string;
|
|
6
|
+
get title(): string;
|
|
7
|
+
get description(): string;
|
|
8
|
+
get createdAt(): string;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "pantehon-card", never, { "data": { "alias": "data"; "required": false; }; "isCompleted": { "alias": "isCompleted"; "required": false; }; "cardClass": { "alias": "cardClass"; "required": false; }; }, {}, never, ["[footer]", "[extra]"], false, never>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./card.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/material/icon";
|
|
5
|
+
import * as i4 from "../pantheon-windows/window/window.module";
|
|
6
|
+
export declare class CardModule {
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CardModule, never>;
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CardModule, [typeof i1.CardComponent], [typeof i2.CommonModule, typeof i3.MatIconModule, typeof i4.WindowModule], [typeof i1.CardComponent]>;
|
|
9
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CardModule>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EventEmitter, TemplateRef } from '@angular/core';
|
|
2
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class GridPanelComponent {
|
|
5
|
+
dataColumns: Array<{
|
|
6
|
+
name: string;
|
|
7
|
+
items: any[];
|
|
8
|
+
}>;
|
|
9
|
+
gridTemplateColumns: string;
|
|
10
|
+
itemTemplate: TemplateRef<any>;
|
|
11
|
+
taskMoved: EventEmitter<{
|
|
12
|
+
task: any;
|
|
13
|
+
fromIndex: number;
|
|
14
|
+
toIndex: number;
|
|
15
|
+
}>;
|
|
16
|
+
crossOutEnabled: boolean;
|
|
17
|
+
get connectedDropLists(): string[];
|
|
18
|
+
onTaskDrop(event: CdkDragDrop<any[]>, targetColumnIndex: number): void;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GridPanelComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GridPanelComponent, "pantehon-grid-panel", never, { "dataColumns": { "alias": "dataColumns"; "required": false; }; "gridTemplateColumns": { "alias": "gridTemplateColumns"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; }, { "taskMoved": "taskMoved"; }, never, never, false, never>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./grid-panel.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "../../pantheon-Cards/card.module";
|
|
5
|
+
import * as i4 from "./grid-pannel-header/grid-panel-header.module";
|
|
6
|
+
import * as i5 from "@angular/cdk/drag-drop";
|
|
7
|
+
export declare class GridPanelModule {
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GridPanelModule, never>;
|
|
9
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<GridPanelModule, [typeof i1.GridPanelComponent], [typeof i2.CommonModule, typeof i3.CardModule, typeof i4.GridPanelHeaderModule, typeof i5.DragDropModule], [typeof i1.GridPanelComponent]>;
|
|
10
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<GridPanelModule>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class GridPanelHeaderComponent {
|
|
4
|
+
columns: Array<String>;
|
|
5
|
+
menuAux: boolean;
|
|
6
|
+
iconMenu: string;
|
|
7
|
+
/**
|
|
8
|
+
* Icono que se mostrará en el botón del menú auxiliar.
|
|
9
|
+
* Debe ser un nombre válido de Material Icons (Filled) disponible en:
|
|
10
|
+
* https://fonts.google.com/icons?icon.set=Material+Icons&icon.style=Filled
|
|
11
|
+
* Ejemplos válidos: 'menu', 'more_vert', 'add', 'account_circle', etc.
|
|
12
|
+
*/
|
|
13
|
+
gridTemplateColumns: string;
|
|
14
|
+
extraMenuClick: EventEmitter<MouseEvent>;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GridPanelHeaderComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GridPanelHeaderComponent, "pantehon-grid-panel-header", never, { "columns": { "alias": "columns"; "required": false; }; "menuAux": { "alias": "menuAux"; "required": false; }; "iconMenu": { "alias": "iconMenu"; "required": false; }; }, { "extraMenuClick": "extraMenuClick"; }, never, never, true, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "@angular/common";
|
|
3
|
+
import * as i2 from "./grid-panel-header.component";
|
|
4
|
+
export declare class GridPanelHeaderModule {
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GridPanelHeaderModule, never>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<GridPanelHeaderModule, never, [typeof i1.CommonModule, typeof i2.GridPanelHeaderComponent], [typeof i2.GridPanelHeaderComponent]>;
|
|
7
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<GridPanelHeaderModule>;
|
|
8
|
+
}
|
package/dist/pantheon-ui/lib/pantheon-windows/SideActionPanel/side-action-panel.component.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { Action } from './interface';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SideActionPanelComponent {
|
|
5
|
+
open: boolean;
|
|
6
|
+
actions: Action[];
|
|
7
|
+
close: EventEmitter<void>;
|
|
8
|
+
createStars(event: MouseEvent): void;
|
|
9
|
+
handleAction(event: MouseEvent, action: Action): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SideActionPanelComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SideActionPanelComponent, "pantheon-side-action-panel", never, { "open": { "alias": "open"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, { "close": "close"; }, never, never, false, never>;
|
|
12
|
+
}
|