pantheon-libraries 0.2.1 → 0.3.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.
Files changed (26) hide show
  1. package/dist/pantheon-core/README.md +21 -0
  2. package/dist/pantheon-core/api-base/base.component.d.ts +14 -0
  3. package/dist/pantheon-core/api-base/roles.base.component.d.ts +8 -0
  4. package/dist/pantheon-core/esm2022/api-base/base.component.mjs +40 -0
  5. package/dist/pantheon-core/esm2022/api-base/roles.base.component.mjs +17 -0
  6. package/dist/pantheon-core/esm2022/pantheon-core.mjs +5 -0
  7. package/dist/pantheon-core/esm2022/public-api.mjs +8 -0
  8. package/dist/pantheon-core/esm2022/service/pantheon-rest.service.mjs +66 -0
  9. package/dist/pantheon-core/esm2022/utils/utils.mjs +8 -0
  10. package/dist/pantheon-core/fesm2022/pantheon-core.mjs +136 -0
  11. package/dist/pantheon-core/fesm2022/pantheon-core.mjs.map +1 -0
  12. package/dist/pantheon-core/index.d.ts +5 -0
  13. package/dist/pantheon-core/package.json +25 -0
  14. package/dist/pantheon-core/public-api.d.ts +4 -0
  15. package/dist/pantheon-core/service/pantheon-rest.service.d.ts +14 -0
  16. package/dist/pantheon-core/utils/utils.d.ts +1 -0
  17. package/dist/pantheon-ui/esm2022/lib/pantheon-Button/button.component.mjs +40 -0
  18. package/dist/pantheon-ui/esm2022/lib/shared/interfaces.mjs +8 -0
  19. package/dist/pantheon-ui/esm2022/public-api.mjs +3 -1
  20. package/dist/pantheon-ui/fesm2022/pantheon-ui.mjs +46 -1
  21. package/dist/pantheon-ui/fesm2022/pantheon-ui.mjs.map +1 -1
  22. package/dist/pantheon-ui/lib/pantheon-Button/button.component.d.ts +10 -0
  23. package/dist/pantheon-ui/lib/shared/interfaces.d.ts +10 -0
  24. package/dist/pantheon-ui/package.json +1 -1
  25. package/dist/pantheon-ui/public-api.d.ts +2 -0
  26. package/package.json +6 -3
@@ -0,0 +1,21 @@
1
+ # @pantheon/core
2
+
3
+ Core services and base components for Pantheon framework.
4
+
5
+ ## Features
6
+
7
+ - **PantheonRestService**: HTTP service for REST API calls
8
+ - **PantheonBaseComponent**: Base component with lifecycle hooks
9
+ - **RolesBaseComponent**: Role-based component example
10
+
11
+ ## Installation
12
+
13
+ ```bash
14
+ npm install @pantheon/core
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ```typescript
20
+ import { PantheonRestService, PantheonBaseComponent } from '@pantheon/core';
21
+ ```
@@ -0,0 +1,14 @@
1
+ import { OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare abstract class PantheonBaseComponent implements OnInit {
4
+ protected initCall(endpoint: string, body?: any, url?: string, module?: string, method?: string): Promise<any>;
5
+ ngOnInit(): void;
6
+ protected abstract getModule(): string;
7
+ protected abstract getResource(): string;
8
+ protected getUrl(): string;
9
+ protected getRequestMethod(): string;
10
+ protected getDefaultBody?(): any;
11
+ protected dataAfterRequest?(data: any): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<PantheonBaseComponent, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PantheonBaseComponent, never, never, {}, {}, never, never, false, never>;
14
+ }
@@ -0,0 +1,8 @@
1
+ import { PantheonBaseComponent } from './base.component';
2
+ import * as i0 from "@angular/core";
3
+ export declare abstract class RolesBaseComponent extends PantheonBaseComponent {
4
+ protected getModule(): string;
5
+ protected getResource(): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<RolesBaseComponent, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RolesBaseComponent, never, never, {}, {}, never, never, false, never>;
8
+ }
@@ -0,0 +1,40 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PantheonBaseComponent {
4
+ async initCall(endpoint, body, url, module, method) {
5
+ const finalMethod = (method || this.getRequestMethod()).toUpperCase();
6
+ let fullUrl = `${url || this.getUrl()}/api/${module || this.getModule()}/${endpoint}`;
7
+ // Si es GET y hay parámetros, los añadimos a la URL
8
+ if (finalMethod === 'GET' && body) {
9
+ const query = new URLSearchParams(body).toString();
10
+ fullUrl += `?${query}`;
11
+ }
12
+ const response = await fetch(fullUrl, {
13
+ method: finalMethod,
14
+ headers: { 'Content-Type': 'application/json' },
15
+ body: finalMethod !== 'GET' && body ? JSON.stringify(body) : undefined,
16
+ credentials: 'include' // si necesitas cookies o autenticación
17
+ });
18
+ if (!response.ok) {
19
+ throw new Error(`Error en la llamada a ${endpoint}: ${response.statusText}`);
20
+ }
21
+ return await response.json();
22
+ }
23
+ ngOnInit() {
24
+ const defaultBody = this.getDefaultBody?.() || undefined;
25
+ this.initCall(this.getResource(), defaultBody)
26
+ .then(data => {
27
+ this.dataAfterRequest?.(data);
28
+ })
29
+ .catch(err => console.error('Error en initCall:', err));
30
+ }
31
+ // Opcionales con valores por defecto
32
+ getUrl() { return 'https://backendabmprojects.vercel.app'; }
33
+ getRequestMethod() { return 'GET'; }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PantheonBaseComponent, ngImport: i0 }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonBaseComponent, decorators: [{
38
+ type: Directive
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2FwaS1iYXNlL2Jhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBR2xELE1BQU0sT0FBZ0IscUJBQXFCO0lBRy9CLEtBQUssQ0FBQyxRQUFRLENBQ3RCLFFBQWdCLEVBQ2hCLElBQVUsRUFDVixHQUFZLEVBQ1osTUFBZSxFQUNmLE1BQWU7UUFHZixNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RFLElBQUksT0FBTyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRXRGLG9EQUFvRDtRQUNwRCxJQUFJLFdBQVcsS0FBSyxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25ELE9BQU8sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1NBQ3hCO1FBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ3BDLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtZQUMvQyxJQUFJLEVBQUUsV0FBVyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDdEUsV0FBVyxFQUFFLFNBQVMsQ0FBQyx1Q0FBdUM7U0FDL0QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsUUFBUSxLQUFLLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsT0FBTyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sUUFBUTtRQUNiLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLFNBQVMsQ0FBQztRQUV6RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLENBQUM7YUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFNRCxxQ0FBcUM7SUFDM0IsTUFBTSxLQUFhLE9BQU8sdUNBQXVDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLGdCQUFnQixLQUFhLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQzsrR0FsRGxDLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUQxQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFudGhlb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuXG4gIHByb3RlY3RlZCBhc3luYyBpbml0Q2FsbChcbiAgICBlbmRwb2ludDogc3RyaW5nLFxuICAgIGJvZHk/OiBhbnksXG4gICAgdXJsPzogc3RyaW5nLFxuICAgIG1vZHVsZT86IHN0cmluZyxcbiAgICBtZXRob2Q/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxhbnk+IHtcblxuICAgIGNvbnN0IGZpbmFsTWV0aG9kID0gKG1ldGhvZCB8fCB0aGlzLmdldFJlcXVlc3RNZXRob2QoKSkudG9VcHBlckNhc2UoKTtcbiAgICBsZXQgZnVsbFVybCA9IGAke3VybCB8fCB0aGlzLmdldFVybCgpfS9hcGkvJHttb2R1bGUgfHwgdGhpcy5nZXRNb2R1bGUoKX0vJHtlbmRwb2ludH1gO1xuXG4gICAgLy8gU2kgZXMgR0VUIHkgaGF5IHBhcsOhbWV0cm9zLCBsb3MgYcOxYWRpbW9zIGEgbGEgVVJMXG4gICAgaWYgKGZpbmFsTWV0aG9kID09PSAnR0VUJyAmJiBib2R5KSB7XG4gICAgICBjb25zdCBxdWVyeSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoYm9keSkudG9TdHJpbmcoKTtcbiAgICAgIGZ1bGxVcmwgKz0gYD8ke3F1ZXJ5fWA7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChmdWxsVXJsLCB7XG4gICAgICBtZXRob2Q6IGZpbmFsTWV0aG9kLFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICBib2R5OiBmaW5hbE1ldGhvZCAhPT0gJ0dFVCcgJiYgYm9keSA/IEpTT04uc3RyaW5naWZ5KGJvZHkpIDogdW5kZWZpbmVkLFxuICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyAvLyBzaSBuZWNlc2l0YXMgY29va2llcyBvIGF1dGVudGljYWNpw7NuXG4gICAgfSk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIGVuIGxhIGxsYW1hZGEgYSAke2VuZHBvaW50fTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZGVmYXVsdEJvZHkgPSB0aGlzLmdldERlZmF1bHRCb2R5Py4oKSB8fCB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLmluaXRDYWxsKHRoaXMuZ2V0UmVzb3VyY2UoKSwgZGVmYXVsdEJvZHkpXG4gICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgdGhpcy5kYXRhQWZ0ZXJSZXF1ZXN0Py4oZGF0YSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKCdFcnJvciBlbiBpbml0Q2FsbDonLCBlcnIpKTtcbiAgfVxuXG4gIC8vIE3DqXRvZG9zIGFic3RyYWN0b3MgcXVlIGVsIGhpam8gZGViZSBpbXBsZW1lbnRhclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0TW9kdWxlKCk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFJlc291cmNlKCk6IHN0cmluZztcblxuICAvLyBPcGNpb25hbGVzIGNvbiB2YWxvcmVzIHBvciBkZWZlY3RvXG4gIHByb3RlY3RlZCBnZXRVcmwoKTogc3RyaW5nIHsgcmV0dXJuICdodHRwczovL2JhY2tlbmRhYm1wcm9qZWN0cy52ZXJjZWwuYXBwJzsgfVxuICBwcm90ZWN0ZWQgZ2V0UmVxdWVzdE1ldGhvZCgpOiBzdHJpbmcgeyByZXR1cm4gJ0dFVCc7IH1cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRCb2R5PygpOiBhbnk7XG4gIHByb3RlY3RlZCBkYXRhQWZ0ZXJSZXF1ZXN0PyhkYXRhOiBhbnkpOiB2b2lkO1xufVxuIl19
@@ -0,0 +1,17 @@
1
+ import { Directive } from '@angular/core';
2
+ import { PantheonBaseComponent } from './base.component';
3
+ import * as i0 from "@angular/core";
4
+ export class RolesBaseComponent extends PantheonBaseComponent {
5
+ getModule() {
6
+ return 'roles';
7
+ }
8
+ getResource() {
9
+ return 'roles';
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RolesBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: RolesBaseComponent, usesInheritance: true, ngImport: i0 }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RolesBaseComponent, decorators: [{
15
+ type: Directive
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMuYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2FwaS1iYXNlL3JvbGVzLmJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBR3pELE1BQU0sT0FBZ0Isa0JBQW1CLFNBQVEscUJBQXFCO0lBQ3hELFNBQVM7UUFDZixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBQ1MsV0FBVztRQUNqQixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDOytHQU5pQixrQkFBa0I7bUdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFudGhlb25CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJvbGVzQmFzZUNvbXBvbmVudCBleHRlbmRzIFBhbnRoZW9uQmFzZUNvbXBvbmVudCB7XG4gICAgcHJvdGVjdGVkIGdldE1vZHVsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ3JvbGVzJztcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldFJlc291cmNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAncm9sZXMnO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFudGhlb24tY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcGFudGhlb24tY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Public API Surface of @pantheon/core
3
+ */
4
+ export * from './service/pantheon-rest.service';
5
+ export * from './api-base/base.component';
6
+ export * from './api-base/roles.base.component';
7
+ export * from './utils/utils';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAcGFudGhlb24vY29yZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS9wYW50aGVvbi1yZXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGktYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS1iYXNlL3JvbGVzLmJhc2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvdXRpbHMnO1xuIl19
@@ -0,0 +1,66 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpParams } from '@angular/common/http';
3
+ import { firstValueFrom } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ export class PantheonRestService {
7
+ constructor(http) {
8
+ this.http = http;
9
+ this.baseUrl = 'https://backendabmprojects.vercel.app/api';
10
+ }
11
+ async get(endpoint, params) {
12
+ try {
13
+ const httpParams = params ? new HttpParams({ fromObject: params }) : undefined;
14
+ return await firstValueFrom(this.http.get(`${this.baseUrl}/${endpoint}`, { params: httpParams }));
15
+ }
16
+ catch (err) {
17
+ console.error(`GET ${endpoint} failed`, err);
18
+ throw err;
19
+ }
20
+ }
21
+ async post(endpoint, body) {
22
+ try {
23
+ return await firstValueFrom(this.http.post(`${this.baseUrl}/${endpoint}`, body));
24
+ }
25
+ catch (err) {
26
+ console.error(`POST ${endpoint} failed`, err);
27
+ throw err;
28
+ }
29
+ }
30
+ async put(endpoint, body) {
31
+ try {
32
+ return await firstValueFrom(this.http.put(`${this.baseUrl}/${endpoint}`, body));
33
+ }
34
+ catch (err) {
35
+ console.error(`PUT ${endpoint} failed`, err);
36
+ throw err;
37
+ }
38
+ }
39
+ async delete(endpoint) {
40
+ try {
41
+ return await firstValueFrom(this.http.delete(`${this.baseUrl}/${endpoint}`));
42
+ }
43
+ catch (err) {
44
+ console.error(`DELETE ${endpoint} failed`, err);
45
+ throw err;
46
+ }
47
+ }
48
+ async patch(endpoint, body) {
49
+ try {
50
+ return await firstValueFrom(this.http.patch(`${this.baseUrl}/${endpoint}`, body));
51
+ }
52
+ catch (err) {
53
+ console.error(`PATCH ${endpoint} failed`, err);
54
+ throw err;
55
+ }
56
+ }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonRestService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
58
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonRestService, providedIn: 'root' }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonRestService, decorators: [{
61
+ type: Injectable,
62
+ args: [{
63
+ providedIn: 'root'
64
+ }]
65
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFudGhlb24tcmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlL3BhbnRoZW9uLXJlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNdEMsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUFzQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRjVCLFlBQU8sR0FBRywyQ0FBMkMsQ0FBQztJQUV0QixDQUFDO0lBRTNDLEtBQUssQ0FBQyxHQUFHLENBQUksUUFBZ0IsRUFBRSxNQUE0QjtRQUN6RCxJQUFJO1lBQ0YsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0UsT0FBTyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RHO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sUUFBUSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDN0MsTUFBTSxHQUFHLENBQUM7U0FDWDtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFJLFFBQWdCLEVBQUUsSUFBUztRQUN2QyxJQUFJO1lBQ0YsT0FBTyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNyRjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLFFBQVEsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sR0FBRyxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBSSxRQUFnQixFQUFFLElBQVM7UUFDdEMsSUFBSTtZQUNGLE9BQU8sTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDcEY7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxRQUFRLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM3QyxNQUFNLEdBQUcsQ0FBQztTQUNYO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUksUUFBZ0I7UUFDOUIsSUFBSTtZQUNGLE9BQU8sTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqRjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLFFBQVEsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sR0FBRyxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBR0QsS0FBSyxDQUFDLEtBQUssQ0FBSSxRQUFnQixFQUFFLElBQVM7UUFDeEMsSUFBSTtZQUNGLE9BQU8sTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEY7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxRQUFRLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMvQyxNQUFNLEdBQUcsQ0FBQztTQUNYO0lBQ0gsQ0FBQzsrR0FuRFUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBhbnRoZW9uUmVzdFNlcnZpY2Uge1xuXG4gIHByb3RlY3RlZCBiYXNlVXJsID0gJ2h0dHBzOi8vYmFja2VuZGFibXByb2plY3RzLnZlcmNlbC5hcHAvYXBpJztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCkgeyB9XG5cbiAgYXN5bmMgZ2V0PFQ+KGVuZHBvaW50OiBzdHJpbmcsIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPFQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaHR0cFBhcmFtcyA9IHBhcmFtcyA/IG5ldyBIdHRwUGFyYW1zKHsgZnJvbU9iamVjdDogcGFyYW1zIH0pIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5iYXNlVXJsfS8ke2VuZHBvaW50fWAsIHsgcGFyYW1zOiBodHRwUGFyYW1zIH0pKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEdFVCAke2VuZHBvaW50fSBmYWlsZWRgLCBlcnIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHBvc3Q8VD4oZW5kcG9pbnQ6IHN0cmluZywgYm9keTogYW55KTogUHJvbWlzZTxUPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmJhc2VVcmx9LyR7ZW5kcG9pbnR9YCwgYm9keSkpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgUE9TVCAke2VuZHBvaW50fSBmYWlsZWRgLCBlcnIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHB1dDxUPihlbmRwb2ludDogc3RyaW5nLCBib2R5OiBhbnkpOiBQcm9taXNlPFQ+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wdXQ8VD4oYCR7dGhpcy5iYXNlVXJsfS8ke2VuZHBvaW50fWAsIGJvZHkpKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFBVVCAke2VuZHBvaW50fSBmYWlsZWRgLCBlcnIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZTxUPihlbmRwb2ludDogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAuZGVsZXRlPFQ+KGAke3RoaXMuYmFzZVVybH0vJHtlbmRwb2ludH1gKSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBERUxFVEUgJHtlbmRwb2ludH0gZmFpbGVkYCwgZXJyKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuXG4gIGFzeW5jIHBhdGNoPFQ+KGVuZHBvaW50OiBzdHJpbmcsIGJvZHk6IGFueSk6IFByb21pc2U8VD4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBhdGNoPFQ+KGAke3RoaXMuYmFzZVVybH0vJHtlbmRwb2ludH1gLCBib2R5KSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBQQVRDSCAke2VuZHBvaW50fSBmYWlsZWRgLCBlcnIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ import { formatDate } from '@angular/common';
2
+ import { registerLocaleData } from '@angular/common';
3
+ import localeEs from '@angular/common/locales/es';
4
+ registerLocaleData(localeEs);
5
+ export const formatDateToString = (date, format = 'MM/dd', locale = 'es-ES') => {
6
+ return formatDate(date, format, locale);
7
+ };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0aWxzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUVsRCxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQVUsRUFBRSxTQUFpQixPQUFPLEVBQUUsU0FBaUIsT0FBTyxFQUFVLEVBQUU7SUFDM0csT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgbG9jYWxlRXMgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXMnO1xuXG5yZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRXMpO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0RGF0ZVRvU3RyaW5nID0gKGRhdGU6IERhdGUsIGZvcm1hdDogc3RyaW5nID0gJ01NL2RkJywgbG9jYWxlOiBzdHJpbmcgPSAnZXMtRVMnKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGZvcm1hdERhdGUoZGF0ZSwgZm9ybWF0LCBsb2NhbGUpO1xufTtcblxuIl19
@@ -0,0 +1,136 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Directive } from '@angular/core';
3
+ import * as i1 from '@angular/common/http';
4
+ import { HttpParams } from '@angular/common/http';
5
+ import { firstValueFrom } from 'rxjs';
6
+ import { registerLocaleData, formatDate } from '@angular/common';
7
+ import localeEs from '@angular/common/locales/es';
8
+
9
+ class PantheonRestService {
10
+ constructor(http) {
11
+ this.http = http;
12
+ this.baseUrl = 'https://backendabmprojects.vercel.app/api';
13
+ }
14
+ async get(endpoint, params) {
15
+ try {
16
+ const httpParams = params ? new HttpParams({ fromObject: params }) : undefined;
17
+ return await firstValueFrom(this.http.get(`${this.baseUrl}/${endpoint}`, { params: httpParams }));
18
+ }
19
+ catch (err) {
20
+ console.error(`GET ${endpoint} failed`, err);
21
+ throw err;
22
+ }
23
+ }
24
+ async post(endpoint, body) {
25
+ try {
26
+ return await firstValueFrom(this.http.post(`${this.baseUrl}/${endpoint}`, body));
27
+ }
28
+ catch (err) {
29
+ console.error(`POST ${endpoint} failed`, err);
30
+ throw err;
31
+ }
32
+ }
33
+ async put(endpoint, body) {
34
+ try {
35
+ return await firstValueFrom(this.http.put(`${this.baseUrl}/${endpoint}`, body));
36
+ }
37
+ catch (err) {
38
+ console.error(`PUT ${endpoint} failed`, err);
39
+ throw err;
40
+ }
41
+ }
42
+ async delete(endpoint) {
43
+ try {
44
+ return await firstValueFrom(this.http.delete(`${this.baseUrl}/${endpoint}`));
45
+ }
46
+ catch (err) {
47
+ console.error(`DELETE ${endpoint} failed`, err);
48
+ throw err;
49
+ }
50
+ }
51
+ async patch(endpoint, body) {
52
+ try {
53
+ return await firstValueFrom(this.http.patch(`${this.baseUrl}/${endpoint}`, body));
54
+ }
55
+ catch (err) {
56
+ console.error(`PATCH ${endpoint} failed`, err);
57
+ throw err;
58
+ }
59
+ }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonRestService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
61
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonRestService, providedIn: 'root' }); }
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonRestService, decorators: [{
64
+ type: Injectable,
65
+ args: [{
66
+ providedIn: 'root'
67
+ }]
68
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
69
+
70
+ class PantheonBaseComponent {
71
+ async initCall(endpoint, body, url, module, method) {
72
+ const finalMethod = (method || this.getRequestMethod()).toUpperCase();
73
+ let fullUrl = `${url || this.getUrl()}/api/${module || this.getModule()}/${endpoint}`;
74
+ // Si es GET y hay parámetros, los añadimos a la URL
75
+ if (finalMethod === 'GET' && body) {
76
+ const query = new URLSearchParams(body).toString();
77
+ fullUrl += `?${query}`;
78
+ }
79
+ const response = await fetch(fullUrl, {
80
+ method: finalMethod,
81
+ headers: { 'Content-Type': 'application/json' },
82
+ body: finalMethod !== 'GET' && body ? JSON.stringify(body) : undefined,
83
+ credentials: 'include' // si necesitas cookies o autenticación
84
+ });
85
+ if (!response.ok) {
86
+ throw new Error(`Error en la llamada a ${endpoint}: ${response.statusText}`);
87
+ }
88
+ return await response.json();
89
+ }
90
+ ngOnInit() {
91
+ const defaultBody = this.getDefaultBody?.() || undefined;
92
+ this.initCall(this.getResource(), defaultBody)
93
+ .then(data => {
94
+ this.dataAfterRequest?.(data);
95
+ })
96
+ .catch(err => console.error('Error en initCall:', err));
97
+ }
98
+ // Opcionales con valores por defecto
99
+ getUrl() { return 'https://backendabmprojects.vercel.app'; }
100
+ getRequestMethod() { return 'GET'; }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
102
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PantheonBaseComponent, ngImport: i0 }); }
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PantheonBaseComponent, decorators: [{
105
+ type: Directive
106
+ }] });
107
+
108
+ class RolesBaseComponent extends PantheonBaseComponent {
109
+ getModule() {
110
+ return 'roles';
111
+ }
112
+ getResource() {
113
+ return 'roles';
114
+ }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RolesBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
116
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: RolesBaseComponent, usesInheritance: true, ngImport: i0 }); }
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RolesBaseComponent, decorators: [{
119
+ type: Directive
120
+ }] });
121
+
122
+ registerLocaleData(localeEs);
123
+ const formatDateToString = (date, format = 'MM/dd', locale = 'es-ES') => {
124
+ return formatDate(date, format, locale);
125
+ };
126
+
127
+ /*
128
+ * Public API Surface of @pantheon/core
129
+ */
130
+
131
+ /**
132
+ * Generated bundle index. Do not edit.
133
+ */
134
+
135
+ export { PantheonBaseComponent, PantheonRestService, RolesBaseComponent, formatDateToString };
136
+ //# sourceMappingURL=pantheon-core.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pantheon-core.mjs","sources":["../../../projects/core/service/pantheon-rest.service.ts","../../../projects/core/api-base/base.component.ts","../../../projects/core/api-base/roles.base.component.ts","../../../projects/core/utils/utils.ts","../../../projects/core/public-api.ts","../../../projects/core/pantheon-core.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { firstValueFrom } from 'rxjs';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PantheonRestService {\n\n protected baseUrl = 'https://backendabmprojects.vercel.app/api';\n\n constructor(protected http: HttpClient) { }\n\n async get<T>(endpoint: string, params?: Record<string, any>): Promise<T> {\n try {\n const httpParams = params ? new HttpParams({ fromObject: params }) : undefined;\n return await firstValueFrom(this.http.get<T>(`${this.baseUrl}/${endpoint}`, { params: httpParams }));\n } catch (err) {\n console.error(`GET ${endpoint} failed`, err);\n throw err;\n }\n }\n\n async post<T>(endpoint: string, body: any): Promise<T> {\n try {\n return await firstValueFrom(this.http.post<T>(`${this.baseUrl}/${endpoint}`, body));\n } catch (err) {\n console.error(`POST ${endpoint} failed`, err);\n throw err;\n }\n }\n\n async put<T>(endpoint: string, body: any): Promise<T> {\n try {\n return await firstValueFrom(this.http.put<T>(`${this.baseUrl}/${endpoint}`, body));\n } catch (err) {\n console.error(`PUT ${endpoint} failed`, err);\n throw err;\n }\n }\n\n async delete<T>(endpoint: string): Promise<T> {\n try {\n return await firstValueFrom(this.http.delete<T>(`${this.baseUrl}/${endpoint}`));\n } catch (err) {\n console.error(`DELETE ${endpoint} failed`, err);\n throw err;\n }\n }\n\n\n async patch<T>(endpoint: string, body: any): Promise<T> {\n try {\n return await firstValueFrom(this.http.patch<T>(`${this.baseUrl}/${endpoint}`, body));\n } catch (err) {\n console.error(`PATCH ${endpoint} failed`, err);\n throw err;\n }\n }\n}\n","import { Directive, OnInit } from '@angular/core';\n\n@Directive()\nexport abstract class PantheonBaseComponent implements OnInit {\n\n\n protected async initCall(\n endpoint: string,\n body?: any,\n url?: string,\n module?: string,\n method?: string\n ): Promise<any> {\n\n const finalMethod = (method || this.getRequestMethod()).toUpperCase();\n let fullUrl = `${url || this.getUrl()}/api/${module || this.getModule()}/${endpoint}`;\n\n // Si es GET y hay parámetros, los añadimos a la URL\n if (finalMethod === 'GET' && body) {\n const query = new URLSearchParams(body).toString();\n fullUrl += `?${query}`;\n }\n\n const response = await fetch(fullUrl, {\n method: finalMethod,\n headers: { 'Content-Type': 'application/json' },\n body: finalMethod !== 'GET' && body ? JSON.stringify(body) : undefined,\n credentials: 'include' // si necesitas cookies o autenticación\n });\n\n if (!response.ok) {\n throw new Error(`Error en la llamada a ${endpoint}: ${response.statusText}`);\n }\n\n return await response.json();\n }\n\n public ngOnInit(): void {\n const defaultBody = this.getDefaultBody?.() || undefined;\n\n this.initCall(this.getResource(), defaultBody)\n .then(data => {\n this.dataAfterRequest?.(data);\n })\n .catch(err => console.error('Error en initCall:', err));\n }\n\n // Métodos abstractos que el hijo debe implementar\n protected abstract getModule(): string;\n protected abstract getResource(): string;\n\n // Opcionales con valores por defecto\n protected getUrl(): string { return 'https://backendabmprojects.vercel.app'; }\n protected getRequestMethod(): string { return 'GET'; }\n protected getDefaultBody?(): any;\n protected dataAfterRequest?(data: any): void;\n}\n","import { Directive } from '@angular/core';\nimport { PantheonBaseComponent } from './base.component';\n\n@Directive()\nexport abstract class RolesBaseComponent extends PantheonBaseComponent {\n protected getModule(): string {\n return 'roles';\n }\n protected getResource(): string {\n return 'roles';\n }\n}\n","import { formatDate } from '@angular/common';\nimport { registerLocaleData } from '@angular/common';\nimport localeEs from '@angular/common/locales/es';\n\nregisterLocaleData(localeEs);\n\nexport const formatDateToString = (date: Date, format: string = 'MM/dd', locale: string = 'es-ES'): string => {\n return formatDate(date, format, locale);\n};\n\n","/*\n * Public API Surface of @pantheon/core\n */\n\nexport * from './service/pantheon-rest.service';\nexport * from './api-base/base.component';\nexport * from './api-base/roles.base.component';\nexport * from './utils/utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@pantheon/core" />
5
+ export * from './public-api';
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@pantheon/core",
3
+ "version": "0.3.0",
4
+ "peerDependencies": {
5
+ "@angular/common": "^16.0.0",
6
+ "@angular/core": "^16.0.0"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "sideEffects": false,
12
+ "module": "fesm2022/pantheon-core.mjs",
13
+ "typings": "index.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./index.d.ts",
20
+ "esm2022": "./esm2022/pantheon-core.mjs",
21
+ "esm": "./esm2022/pantheon-core.mjs",
22
+ "default": "./fesm2022/pantheon-core.mjs"
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,4 @@
1
+ export * from './service/pantheon-rest.service';
2
+ export * from './api-base/base.component';
3
+ export * from './api-base/roles.base.component';
4
+ export * from './utils/utils';
@@ -0,0 +1,14 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import * as i0 from "@angular/core";
3
+ export declare class PantheonRestService {
4
+ protected http: HttpClient;
5
+ protected baseUrl: string;
6
+ constructor(http: HttpClient);
7
+ get<T>(endpoint: string, params?: Record<string, any>): Promise<T>;
8
+ post<T>(endpoint: string, body: any): Promise<T>;
9
+ put<T>(endpoint: string, body: any): Promise<T>;
10
+ delete<T>(endpoint: string): Promise<T>;
11
+ patch<T>(endpoint: string, body: any): Promise<T>;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<PantheonRestService, never>;
13
+ static ɵprov: i0.ɵɵInjectableDeclaration<PantheonRestService>;
14
+ }
@@ -0,0 +1 @@
1
+ export declare const formatDateToString: (date: Date, format?: string, locale?: string) => string;
@@ -0,0 +1,40 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class ButtonComponent {
5
+ constructor() {
6
+ this.label = 'Button';
7
+ this.variant = 'primary';
8
+ this.disabled = false;
9
+ this.onClick = new EventEmitter();
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonComponent, isStandalone: true, selector: "pantheon-button", inputs: { label: "label", variant: "variant", disabled: "disabled" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
13
+ <button
14
+ [class]="'pantheon-btn ' + (variant || 'primary')"
15
+ (click)="onClick.emit($event)"
16
+ [disabled]="disabled">
17
+ {{ label }}
18
+ </button>
19
+ `, isInline: true, styles: [".pantheon-btn{padding:10px 20px;font-size:14px;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:all .3s ease}.pantheon-btn.primary{background-color:#007bff;color:#fff}.pantheon-btn.primary:hover:not(:disabled){background-color:#0056b3}.pantheon-btn.secondary{background-color:#6c757d;color:#fff}.pantheon-btn.secondary:hover:not(:disabled){background-color:#545b62}.pantheon-btn:disabled{opacity:.5;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'pantheon-button', standalone: true, imports: [CommonModule], template: `
24
+ <button
25
+ [class]="'pantheon-btn ' + (variant || 'primary')"
26
+ (click)="onClick.emit($event)"
27
+ [disabled]="disabled">
28
+ {{ label }}
29
+ </button>
30
+ `, styles: [".pantheon-btn{padding:10px 20px;font-size:14px;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:all .3s ease}.pantheon-btn.primary{background-color:#007bff;color:#fff}.pantheon-btn.primary:hover:not(:disabled){background-color:#0056b3}.pantheon-btn.secondary{background-color:#6c757d;color:#fff}.pantheon-btn.secondary:hover:not(:disabled){background-color:#545b62}.pantheon-btn:disabled{opacity:.5;cursor:not-allowed}\n"] }]
31
+ }], propDecorators: { label: [{
32
+ type: Input
33
+ }], variant: [{
34
+ type: Input
35
+ }], disabled: [{
36
+ type: Input
37
+ }], onClick: [{
38
+ type: Output
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BhbnRoZW9uLXVpL3NyYy9saWIvcGFudGhlb24tQnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBaUQvQyxNQUFNLE9BQU8sZUFBZTtJQS9DNUI7UUFnRFcsVUFBSyxHQUFXLFFBQVEsQ0FBQztRQUN6QixZQUFPLEdBQTRCLFNBQVMsQ0FBQztRQUM3QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0tBQ3BEOytHQUxZLGVBQWU7bUdBQWYsZUFBZSxrTEEzQ2hCOzs7Ozs7O0dBT1Qsb2dCQVJTLFlBQVk7OzRGQTRDWCxlQUFlO2tCQS9DM0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7OztHQU9UOzhCQXFDUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwYW50aGVvbi1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uIFxuICAgICAgW2NsYXNzXT1cIidwYW50aGVvbi1idG4gJyArICh2YXJpYW50IHx8ICdwcmltYXJ5JylcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAge3sgbGFiZWwgfX1cbiAgICA8L2J1dHRvbj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIC5wYW50aGVvbi1idG4ge1xuICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgfVxuXG4gICAgLnBhbnRoZW9uLWJ0bi5wcmltYXJ5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG4gICAgLnBhbnRoZW9uLWJ0bi5wcmltYXJ5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU2YjM7XG4gICAgfVxuXG4gICAgLnBhbnRoZW9uLWJ0bi5zZWNvbmRhcnkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzZjNzU3ZDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAucGFudGhlb24tYnRuLnNlY29uZGFyeTpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ1YjYyO1xuICAgIH1cblxuICAgIC5wYW50aGVvbi1idG46ZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnQnV0dG9uJztcbiAgQElucHV0KCkgdmFyaWFudDogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xufVxuIl19
@@ -0,0 +1,8 @@
1
+ export const STATUS_MAP = {
2
+ 'ready to start': 'Ready To Start',
3
+ 'in progress': 'In Progress',
4
+ 'ready to verify/deploy': 'Ready to verify/Deploy',
5
+ 'deployed': 'Deployed',
6
+ 'pendiente': 'Ready To Start'
7
+ };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BhbnRoZW9uLXVpL3NyYy9saWIvc2hhcmVkL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUEyQjtJQUNoRCxnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFDbEMsYUFBYSxFQUFFLGFBQWE7SUFDNUIsd0JBQXdCLEVBQUUsd0JBQXdCO0lBQ2xELFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFdBQVcsRUFBRSxnQkFBZ0I7Q0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGFza0ludGVyZmFjZSB7XG4gIF9pZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXM6ICdyZWFkeSB0byBzdGFydCcgfCAnaW4gcHJvZ3Jlc3MnIHwgJ3JlYWR5IHRvIHZlcmlmeS9kZXBsb3knIHwgJ2RlcGxveWVkJztcbiAgdXNlckVtYWlsOiBzdHJpbmc7XG4gIGdyb3VwSWQ/OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFNUQVRVU19NQVA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdyZWFkeSB0byBzdGFydCc6ICdSZWFkeSBUbyBTdGFydCcsXG4gICdpbiBwcm9ncmVzcyc6ICdJbiBQcm9ncmVzcycsXG4gICdyZWFkeSB0byB2ZXJpZnkvZGVwbG95JzogJ1JlYWR5IHRvIHZlcmlmeS9EZXBsb3knLFxuICAnZGVwbG95ZWQnOiAnRGVwbG95ZWQnLFxuICAncGVuZGllbnRlJzogJ1JlYWR5IFRvIFN0YXJ0J1xufTtcbiJdfQ==
@@ -2,6 +2,8 @@
2
2
  * Public API Surface of pantheon-ui
3
3
  */
4
4
  export * from './lib/pantheon-ui';
5
+ export * from './lib/pantheon-Button/button.component';
6
+ export * from './lib/shared/interfaces';
5
7
  export * from './lib/pantheon-Panels/grid-panel/grid-panel.module';
6
8
  export * from './lib/pantheon-Panels/grid-panel/grid-panel.component';
7
9
  export * from './lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.module';
@@ -12,4 +14,4 @@ export * from './lib/pantheon-windows/window/window.module';
12
14
  export * from './lib/pantheon-windows/window/window.component';
13
15
  export * from './lib/pantheon-windows/SideActionPanel/side-action-panel.module';
14
16
  export * from './lib/pantheon-windows/SideActionPanel/side-action-panel.component';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3BhbnRoZW9uLXVpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLGlGQUFpRixDQUFDO0FBQ2hHLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLG9FQUFvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBwYW50aGVvbi11aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLXVpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLVBhbmVscy9ncmlkLXBhbmVsL2dyaWQtcGFuZWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLVBhbmVscy9ncmlkLXBhbmVsL2dyaWQtcGFuZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLVBhbmVscy9ncmlkLXBhbmVsL2dyaWQtcGFubmVsLWhlYWRlci9ncmlkLXBhbmVsLWhlYWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFudGhlb24tUGFuZWxzL2dyaWQtcGFuZWwvZ3JpZC1wYW5uZWwtaGVhZGVyL2dyaWQtcGFuZWwtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi1DYXJkcy9jYXJkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi1DYXJkcy9jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi13aW5kb3dzL3dpbmRvdy93aW5kb3cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLXdpbmRvd3Mvd2luZG93L3dpbmRvdy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFudGhlb24td2luZG93cy9TaWRlQWN0aW9uUGFuZWwvc2lkZS1hY3Rpb24tcGFuZWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLXdpbmRvd3MvU2lkZUFjdGlvblBhbmVsL3NpZGUtYWN0aW9uLXBhbmVsLmNvbXBvbmVudCc7XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3BhbnRoZW9uLXVpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyxpRkFBaUYsQ0FBQztBQUNoRyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxvRUFBb0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcGFudGhlb24tdWlcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi11aSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi1CdXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi1QYW5lbHMvZ3JpZC1wYW5lbC9ncmlkLXBhbmVsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi1QYW5lbHMvZ3JpZC1wYW5lbC9ncmlkLXBhbmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi1QYW5lbHMvZ3JpZC1wYW5lbC9ncmlkLXBhbm5lbC1oZWFkZXIvZ3JpZC1wYW5lbC1oZWFkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLVBhbmVscy9ncmlkLXBhbmVsL2dyaWQtcGFubmVsLWhlYWRlci9ncmlkLXBhbmVsLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFudGhlb24tQ2FyZHMvY2FyZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFudGhlb24tQ2FyZHMvY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFudGhlb24td2luZG93cy93aW5kb3cvd2luZG93Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi13aW5kb3dzL3dpbmRvdy93aW5kb3cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhbnRoZW9uLXdpbmRvd3MvU2lkZUFjdGlvblBhbmVsL3NpZGUtYWN0aW9uLXBhbmVsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYW50aGVvbi13aW5kb3dzL1NpZGVBY3Rpb25QYW5lbC9zaWRlLWFjdGlvbi1wYW5lbC5jb21wb25lbnQnO1xuIl19
@@ -24,6 +24,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
24
24
  ` }]
25
25
  }] });
26
26
 
27
+ class ButtonComponent {
28
+ constructor() {
29
+ this.label = 'Button';
30
+ this.variant = 'primary';
31
+ this.disabled = false;
32
+ this.onClick = new EventEmitter();
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonComponent, isStandalone: true, selector: "pantheon-button", inputs: { label: "label", variant: "variant", disabled: "disabled" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
36
+ <button
37
+ [class]="'pantheon-btn ' + (variant || 'primary')"
38
+ (click)="onClick.emit($event)"
39
+ [disabled]="disabled">
40
+ {{ label }}
41
+ </button>
42
+ `, isInline: true, styles: [".pantheon-btn{padding:10px 20px;font-size:14px;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:all .3s ease}.pantheon-btn.primary{background-color:#007bff;color:#fff}.pantheon-btn.primary:hover:not(:disabled){background-color:#0056b3}.pantheon-btn.secondary{background-color:#6c757d;color:#fff}.pantheon-btn.secondary:hover:not(:disabled){background-color:#545b62}.pantheon-btn:disabled{opacity:.5;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: 'pantheon-button', standalone: true, imports: [CommonModule], template: `
47
+ <button
48
+ [class]="'pantheon-btn ' + (variant || 'primary')"
49
+ (click)="onClick.emit($event)"
50
+ [disabled]="disabled">
51
+ {{ label }}
52
+ </button>
53
+ `, styles: [".pantheon-btn{padding:10px 20px;font-size:14px;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:all .3s ease}.pantheon-btn.primary{background-color:#007bff;color:#fff}.pantheon-btn.primary:hover:not(:disabled){background-color:#0056b3}.pantheon-btn.secondary{background-color:#6c757d;color:#fff}.pantheon-btn.secondary:hover:not(:disabled){background-color:#545b62}.pantheon-btn:disabled{opacity:.5;cursor:not-allowed}\n"] }]
54
+ }], propDecorators: { label: [{
55
+ type: Input
56
+ }], variant: [{
57
+ type: Input
58
+ }], disabled: [{
59
+ type: Input
60
+ }], onClick: [{
61
+ type: Output
62
+ }] } });
63
+
64
+ const STATUS_MAP = {
65
+ 'ready to start': 'Ready To Start',
66
+ 'in progress': 'In Progress',
67
+ 'ready to verify/deploy': 'Ready to verify/Deploy',
68
+ 'deployed': 'Deployed',
69
+ 'pendiente': 'Ready To Start'
70
+ };
71
+
27
72
  class GridPanelComponent {
28
73
  constructor() {
29
74
  this.dataColumns = [];
@@ -365,5 +410,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
365
410
  * Generated bundle index. Do not edit.
366
411
  */
367
412
 
368
- export { CardComponent, CardModule, GridPanelComponent, GridPanelHeaderComponent, GridPanelHeaderModule, GridPanelModule, PantheonUi, SideActionPanelComponent, SideActionPanelModule, WindowComponent, WindowModule };
413
+ export { ButtonComponent, CardComponent, CardModule, GridPanelComponent, GridPanelHeaderComponent, GridPanelHeaderModule, GridPanelModule, PantheonUi, STATUS_MAP, SideActionPanelComponent, SideActionPanelModule, WindowComponent, WindowModule };
369
414
  //# sourceMappingURL=pantheon-ui.mjs.map
@@ -1 +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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"}
1
+ {"version":3,"file":"pantheon-ui.mjs","sources":["../../../projects/pantheon-ui/src/lib/pantheon-ui.ts","../../../projects/pantheon-ui/src/lib/pantheon-Button/button.component.ts","../../../projects/pantheon-ui/src/lib/shared/interfaces.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, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'pantheon-button',\n standalone: true,\n imports: [CommonModule],\n template: `\n <button \n [class]=\"'pantheon-btn ' + (variant || 'primary')\"\n (click)=\"onClick.emit($event)\"\n [disabled]=\"disabled\">\n {{ label }}\n </button>\n `,\n styles: [`\n .pantheon-btn {\n padding: 10px 20px;\n font-size: 14px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n transition: all 0.3s ease;\n }\n\n .pantheon-btn.primary {\n background-color: #007bff;\n color: white;\n }\n\n .pantheon-btn.primary:hover:not(:disabled) {\n background-color: #0056b3;\n }\n\n .pantheon-btn.secondary {\n background-color: #6c757d;\n color: white;\n }\n\n .pantheon-btn.secondary:hover:not(:disabled) {\n background-color: #545b62;\n }\n\n .pantheon-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `]\n})\nexport class ButtonComponent {\n @Input() label: string = 'Button';\n @Input() variant: 'primary' | 'secondary' = 'primary';\n @Input() disabled: boolean = false;\n @Output() onClick = new EventEmitter<MouseEvent>();\n}\n","export interface TaskInterface {\n _id: string;\n title: string;\n description: string;\n status: 'ready to start' | 'in progress' | 'ready to verify/deploy' | 'deployed';\n userEmail: string;\n groupId?: string;\n createdAt?: string;\n}\n\nexport const STATUS_MAP: Record<string, string> = {\n 'ready to start': 'Ready To Start',\n 'in progress': 'In Progress',\n 'ready to verify/deploy': 'Ready to verify/Deploy',\n 'deployed': 'Deployed',\n 'pendiente': 'Ready To Start'\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-Button/button.component';\nexport * from './lib/shared/interfaces';\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,10 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ButtonComponent {
4
+ label: string;
5
+ variant: 'primary' | 'secondary';
6
+ disabled: boolean;
7
+ onClick: EventEmitter<MouseEvent>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "pantheon-button", never, { "label": { "alias": "label"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "onClick": "onClick"; }, never, never, true, never>;
10
+ }
@@ -0,0 +1,10 @@
1
+ export interface TaskInterface {
2
+ _id: string;
3
+ title: string;
4
+ description: string;
5
+ status: 'ready to start' | 'in progress' | 'ready to verify/deploy' | 'deployed';
6
+ userEmail: string;
7
+ groupId?: string;
8
+ createdAt?: string;
9
+ }
10
+ export declare const STATUS_MAP: Record<string, string>;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pantheon-ui",
3
- "version": "0.0.1",
3
+ "version": "0.3.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
@@ -1,4 +1,6 @@
1
1
  export * from './lib/pantheon-ui';
2
+ export * from './lib/pantheon-Button/button.component';
3
+ export * from './lib/shared/interfaces';
2
4
  export * from './lib/pantheon-Panels/grid-panel/grid-panel.module';
3
5
  export * from './lib/pantheon-Panels/grid-panel/grid-panel.component';
4
6
  export * from './lib/pantheon-Panels/grid-panel/grid-pannel-header/grid-panel-header.module';
package/package.json CHANGED
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "name": "pantheon-libraries",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "main": "dist/pantheon-ui/index.js",
5
5
  "types": "dist/pantheon-ui/index.d.ts",
6
6
  "exports": {
7
7
  ".": {
8
8
  "types": "./dist/pantheon-ui/index.d.ts",
9
9
  "default": "./dist/pantheon-ui/index.js"
10
+ },
11
+ "./core": {
12
+ "types": "./dist/pantheon-core/index.d.ts",
13
+ "default": "./dist/pantheon-core/index.js"
10
14
  }
11
15
  },
12
16
  "files": [
@@ -15,7 +19,7 @@
15
19
  "scripts": {
16
20
  "ng": "ng",
17
21
  "start": "ng serve",
18
- "build": "ng build",
22
+ "build": "ng build pantheon-ui && ng build pantheon-core",
19
23
  "watch": "ng build --watch --configuration development",
20
24
  "test": "ng test"
21
25
  },
@@ -37,7 +41,6 @@
37
41
  },
38
42
  "devDependencies": {
39
43
  "@angular-devkit/build-angular": "^16.2.16",
40
- "@angular/build": "^21.0.1",
41
44
  "@angular/cli": "^16.2.16",
42
45
  "@angular/compiler-cli": "^16.2.0",
43
46
  "@types/jasmine": "~4.3.0",