@lluc_llull/ui-lib 0.0.2 → 0.1.1
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/esm2022/lib/interfaces/index.mjs +3 -0
- package/esm2022/lib/interfaces/page-config.interface.mjs +2 -0
- package/esm2022/lib/interfaces/site-config.interface.mjs +2 -0
- package/esm2022/lib/services/index.mjs +2 -0
- package/esm2022/lib/services/mapper/component-mappers/index.mjs +7 -0
- package/esm2022/lib/services/mapper/component-mappers/top-slider.mapper.mjs +4 -0
- package/esm2022/lib/services/mapper/component-mappers/types.mjs +2 -0
- package/esm2022/lib/services/mapper/index.mjs +3 -0
- package/esm2022/lib/services/mapper/mapper.service.mjs +45 -0
- package/esm2022/public-api.mjs +4 -4
- package/fesm2022/lluc_llull-ui-lib.mjs +56 -16
- package/fesm2022/lluc_llull-ui-lib.mjs.map +1 -1
- package/lib/interfaces/index.d.ts +2 -0
- package/lib/interfaces/page-config.interface.d.ts +18 -0
- package/lib/interfaces/site-config.interface.d.ts +21 -0
- package/lib/services/index.d.ts +1 -0
- package/lib/services/mapper/component-mappers/index.d.ts +1 -0
- package/lib/services/mapper/component-mappers/top-slider.mapper.d.ts +2 -0
- package/lib/services/mapper/component-mappers/types.d.ts +1 -0
- package/lib/services/mapper/index.d.ts +2 -0
- package/lib/services/mapper/mapper.service.d.ts +8 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -1
- package/esm2022/lib/ui-lib.component.mjs +0 -19
- package/lib/ui-lib.component.d.ts +0 -5
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './page-config.interface';
|
|
2
|
+
export * from './site-config.interface';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnZS1jb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2l0ZS1jb25maWcuaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktbGliL3NyYy9saWIvaW50ZXJmYWNlcy9wYWdlLWNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQm9keUNvbXBvbmVudDxUPiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG9yZGVyPzogbnVtYmVyO1xuICAgIHByb3BzOiBUO1xufVxuZXhwb3J0IGludGVyZmFjZSBQYWdlQ29tcG9uZW50IHtcbiAgICBpZDogbnVtYmVyO1xuICAgIHBhZ2VfaWQ6IG51bWJlcjtcbiAgICBjb21wb25lbnRfaWQ6IG51bWJlcjtcbiAgICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VDb21wb25lbnRUcmFuc2xhdGlvbiB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBwYWdlX2NvbXBvbmVudF9pZDogbnVtYmVyO1xuICAgIGxhbmdfaWQ6IG51bWJlcjtcbiAgICBwcm9wczogYW55O1xuICAgIHBhZ2VfY29tcG9uZW50PzogUGFnZUNvbXBvbmVudDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktbGliL3NyYy9saWIvaW50ZXJmYWNlcy9zaXRlLWNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhbENvbmZpZ1Jlc3BvbnNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBmYXZpY29uczogc3RyaW5nIHwgbnVsbDtcbiAgICBsYW5ndWFnZXM6IHtcbiAgICAgICAgaWQ6IG51bWJlcjtcbiAgICAgICAgY29kZTogc3RyaW5nO1xuICAgIH1bXTtcbiAgICBsb2dvczogc3RyaW5nIHwgbnVsbDtcbiAgICBwYWdlczogUGFnZVtdO1xuICAgIHRoZW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdGVtcGxhdGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYW5ndWFnZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBjb2RlOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './mapper';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWFwcGVyJztcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { mapTopSlider } from './top-slider.mapper';
|
|
2
|
+
// importa más mappers aquí...
|
|
3
|
+
export const componentMappers = {
|
|
4
|
+
'top-slider': mapTopSlider,
|
|
5
|
+
// añade los demás
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9tYXBwZXIvY29tcG9uZW50LW1hcHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELDhCQUE4QjtBQUU5QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBd0M7SUFDakUsWUFBWSxFQUFFLFlBQVk7SUFDMUIsa0JBQWtCO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXBUb3BTbGlkZXIgfSBmcm9tICcuL3RvcC1zbGlkZXIubWFwcGVyJztcbi8vIGltcG9ydGEgbcOhcyBtYXBwZXJzIGFxdcOtLi4uXG5cbmV4cG9ydCBjb25zdCBjb21wb25lbnRNYXBwZXJzOiBSZWNvcmQ8c3RyaW5nLCAocHJvcHM6IGFueSkgPT4gYW55PiA9IHtcbiAgICAndG9wLXNsaWRlcic6IG1hcFRvcFNsaWRlcixcbiAgICAvLyBhw7FhZGUgbG9zIGRlbcOhc1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export const mapTopSlider = (props) => ({
|
|
2
|
+
// slides: props.slides ?? [],
|
|
3
|
+
});
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLXNsaWRlci5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9tYXBwZXIvY29tcG9uZW50LW1hcHBlcnMvdG9wLXNsaWRlci5tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN2RCw4QkFBOEI7Q0FDakMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyRm4gfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IG1hcFRvcFNsaWRlcjogQ29tcG9uZW50TWFwcGVyRm4gPSAocHJvcHMpID0+ICh7XG4gICAgLy8gc2xpZGVzOiBwcm9wcy5zbGlkZXMgPz8gW10sXG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9tYXBwZXIvY29tcG9uZW50LW1hcHBlcnMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIENvbXBvbmVudE1hcHBlckZuPFQgPSBhbnk+ID0gKHByb3BzOiBhbnkpID0+IFQ7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './mapper.service';
|
|
2
|
+
export * from './component-mappers';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9tYXBwZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXBwZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudC1tYXBwZXJzJztcbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { inject, Injectable, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { componentMappers } from './component-mappers';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class MapperService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.platformId = inject(PLATFORM_ID);
|
|
7
|
+
}
|
|
8
|
+
mapComponents(body) {
|
|
9
|
+
if (!body || body.length === 0) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
return body
|
|
13
|
+
.filter((component) => component && component.name && component.props)
|
|
14
|
+
.map((component) => {
|
|
15
|
+
const name = component.name.toLowerCase();
|
|
16
|
+
const mapper = componentMappers[name];
|
|
17
|
+
const mapped = {
|
|
18
|
+
name,
|
|
19
|
+
order: component.order,
|
|
20
|
+
props: {},
|
|
21
|
+
};
|
|
22
|
+
if (mapper) {
|
|
23
|
+
try {
|
|
24
|
+
mapped.props = mapper(component.props);
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
console.error(`Error mapping props for component "${name}"`, e);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.warn(`No mapper found for component "${name}"`);
|
|
32
|
+
}
|
|
33
|
+
return mapped;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MapperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MapperService, providedIn: 'root' }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MapperService, decorators: [{
|
|
40
|
+
type: Injectable,
|
|
41
|
+
args: [{
|
|
42
|
+
providedIn: 'root',
|
|
43
|
+
}]
|
|
44
|
+
}] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9tYXBwZXIvbWFwcGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUt2RCxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlZLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FxQzVDO0lBbkNHLGFBQWEsQ0FBSSxJQUFXO1FBQ3hCLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLElBQUk7YUFDTixNQUFNLENBQ0gsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQ2hFO2FBQ0EsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDZixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFDLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXRDLE1BQU0sTUFBTSxHQUFxQjtnQkFDN0IsSUFBSTtnQkFDSixLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7Z0JBQ3RCLEtBQUssRUFBRSxFQUFPO2FBQ2pCLENBQUM7WUFFRixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQztvQkFDRCxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFNLENBQUM7Z0JBQ2hELENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDVCxPQUFPLENBQUMsS0FBSyxDQUNULHNDQUFzQyxJQUFJLEdBQUcsRUFDN0MsQ0FBQyxDQUNKLENBQUM7Z0JBQ04sQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7K0dBckNRLGFBQWE7bUhBQWIsYUFBYSxjQUZWLE1BQU07OzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm9keUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGFnZS1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IGNvbXBvbmVudE1hcHBlcnMgfSBmcm9tICcuL2NvbXBvbmVudC1tYXBwZXJzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWFwcGVyU2VydmljZSB7XG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAgIG1hcENvbXBvbmVudHM8VD4oYm9keTogYW55W10pOiBCb2R5Q29tcG9uZW50PFQ+W10ge1xuICAgICAgICBpZiAoIWJvZHkgfHwgYm9keS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBib2R5XG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChjb21wb25lbnQpID0+IGNvbXBvbmVudCAmJiBjb21wb25lbnQubmFtZSAmJiBjb21wb25lbnQucHJvcHNcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBjb21wb25lbnQubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcHBlciA9IGNvbXBvbmVudE1hcHBlcnNbbmFtZV07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtYXBwZWQ6IEJvZHlDb21wb25lbnQ8VD4gPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiBjb21wb25lbnQub3JkZXIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzOiB7fSBhcyBULFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBpZiAobWFwcGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXBwZWQucHJvcHMgPSBtYXBwZXIoY29tcG9uZW50LnByb3BzKSBhcyBUO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBFcnJvciBtYXBwaW5nIHByb3BzIGZvciBjb21wb25lbnQgXCIke25hbWV9XCJgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYE5vIG1hcHBlciBmb3VuZCBmb3IgY29tcG9uZW50IFwiJHtuYW1lfVwiYCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcHBlZDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
export * from './lib/components/core/index';
|
|
6
6
|
// export * from './lib/components/shared/index';
|
|
7
7
|
// /* SERVICES */
|
|
8
|
-
|
|
8
|
+
export * from './lib/services';
|
|
9
9
|
// /* INTERFACES */
|
|
10
|
-
|
|
10
|
+
export * from './lib/interfaces/index';
|
|
11
11
|
// /* UTILS */
|
|
12
12
|
// export * from './lib/utils';
|
|
13
13
|
// /* ENUMS */
|
|
14
14
|
// export * from './lib/Enum';
|
|
15
|
-
export * from './lib/ui-lib.component';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
// export * from './lib/ui-lib.component';
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGlCQUFpQjtBQUNqQixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGlEQUFpRDtBQUVqRCxxQkFBcUI7QUFDckIsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQix1QkFBdUI7QUFDdkIsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxrQkFBa0I7QUFDbEIsK0JBQStCO0FBRS9CLGtCQUFrQjtBQUNsQiw4QkFBOEI7QUFFOUIsMENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1aS1saWJcbiAqL1xuXG4vKiBDT01QT05FTlRTICAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JlL2luZGV4Jztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2hhcmVkL2luZGV4JztcblxuLy8gLyogICBTRVJWSUNFUyAgICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5cbi8vIC8qICAgSU5URVJGQUNFUyAgICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2luZGV4JztcblxuLy8gLyogICBVVElMUyAgICovXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XG5cbi8vIC8qICAgRU5VTVMgICAqL1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvRW51bSc7XG5cbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3VpLWxpYi5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Component } from '@angular/core';
|
|
3
|
+
import { Component, inject, PLATFORM_ID, Injectable } from '@angular/core';
|
|
4
4
|
|
|
5
5
|
class TopSliderComponent {
|
|
6
6
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TopSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -11,31 +11,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
11
11
|
args: [{ selector: 'lib-top-slider', standalone: true, imports: [CommonModule], template: "<p>top-slider works!</p>\n" }]
|
|
12
12
|
}] });
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
const mapTopSlider = (props) => ({
|
|
15
|
+
// slides: props.slides ?? [],
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
// importa más mappers aquí...
|
|
19
|
+
const componentMappers = {
|
|
20
|
+
'top-slider': mapTopSlider,
|
|
21
|
+
// añade los demás
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
class MapperService {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.platformId = inject(PLATFORM_ID);
|
|
27
|
+
}
|
|
28
|
+
mapComponents(body) {
|
|
29
|
+
if (!body || body.length === 0) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
return body
|
|
33
|
+
.filter((component) => component && component.name && component.props)
|
|
34
|
+
.map((component) => {
|
|
35
|
+
const name = component.name.toLowerCase();
|
|
36
|
+
const mapper = componentMappers[name];
|
|
37
|
+
const mapped = {
|
|
38
|
+
name,
|
|
39
|
+
order: component.order,
|
|
40
|
+
props: {},
|
|
41
|
+
};
|
|
42
|
+
if (mapper) {
|
|
43
|
+
try {
|
|
44
|
+
mapped.props = mapper(component.props);
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
console.error(`Error mapping props for component "${name}"`, e);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.warn(`No mapper found for component "${name}"`);
|
|
52
|
+
}
|
|
53
|
+
return mapped;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MapperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
57
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MapperService, providedIn: 'root' }); }
|
|
21
58
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
23
|
-
type:
|
|
24
|
-
args: [{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
</p>
|
|
28
|
-
` }]
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MapperService, decorators: [{
|
|
60
|
+
type: Injectable,
|
|
61
|
+
args: [{
|
|
62
|
+
providedIn: 'root',
|
|
63
|
+
}]
|
|
29
64
|
}] });
|
|
30
65
|
|
|
31
66
|
/*
|
|
32
67
|
* Public API Surface of ui-lib
|
|
33
68
|
*/
|
|
34
69
|
/* COMPONENTS */
|
|
70
|
+
// /* UTILS */
|
|
71
|
+
// export * from './lib/utils';
|
|
72
|
+
// /* ENUMS */
|
|
73
|
+
// export * from './lib/Enum';
|
|
74
|
+
// export * from './lib/ui-lib.component';
|
|
35
75
|
|
|
36
76
|
/**
|
|
37
77
|
* Generated bundle index. Do not edit.
|
|
38
78
|
*/
|
|
39
79
|
|
|
40
|
-
export { TopSliderComponent,
|
|
80
|
+
export { MapperService, TopSliderComponent, componentMappers };
|
|
41
81
|
//# sourceMappingURL=lluc_llull-ui-lib.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib.mjs","sources":["../../../projects/ui-lib/src/lib/components/core/top-slider/top-slider.component.ts","../../../projects/ui-lib/src/lib/components/core/top-slider/top-slider.component.html","../../../projects/ui-lib/src/lib/ui-lib
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib.mjs","sources":["../../../projects/ui-lib/src/lib/components/core/top-slider/top-slider.component.ts","../../../projects/ui-lib/src/lib/components/core/top-slider/top-slider.component.html","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/top-slider.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/index.ts","../../../projects/ui-lib/src/lib/services/mapper/mapper.service.ts","../../../projects/ui-lib/src/public-api.ts","../../../projects/ui-lib/src/lluc_llull-ui-lib.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-top-slider',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './top-slider.component.html',\n styleUrl: './top-slider.component.scss'\n})\nexport class TopSliderComponent {\n\n}\n","<p>top-slider works!</p>\n","import { ComponentMapperFn } from './types';\n\nexport const mapTopSlider: ComponentMapperFn = (props) => ({\n // slides: props.slides ?? [],\n});\n","import { mapTopSlider } from './top-slider.mapper';\n// importa más mappers aquí...\n\nexport const componentMappers: Record<string, (props: any) => any> = {\n 'top-slider': mapTopSlider,\n // añade los demás\n};\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BodyComponent } from '../../interfaces/page-config.interface';\nimport { componentMappers } from './component-mappers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapperService {\n private platformId = inject(PLATFORM_ID);\n\n mapComponents<T>(body: any[]): BodyComponent<T>[] {\n if (!body || body.length === 0) {\n return [];\n }\n\n return body\n .filter(\n (component) => component && component.name && component.props\n )\n .map((component) => {\n const name = component.name.toLowerCase();\n const mapper = componentMappers[name];\n\n const mapped: BodyComponent<T> = {\n name,\n order: component.order,\n props: {} as T,\n };\n\n if (mapper) {\n try {\n mapped.props = mapper(component.props) as T;\n } catch (e) {\n console.error(\n `Error mapping props for component \"${name}\"`,\n e\n );\n }\n } else {\n console.warn(`No mapper found for component \"${name}\"`);\n }\n\n return mapped;\n });\n }\n}\n","/*\n * Public API Surface of ui-lib\n */\n\n/* COMPONENTS */\nexport * from './lib/components/core/index';\n// export * from './lib/components/shared/index';\n\n// /* SERVICES */\nexport * from './lib/services';\n\n// /* INTERFACES */\nexport * from './lib/interfaces/index';\n\n// /* UTILS */\n// export * from './lib/utils';\n\n// /* ENUMS */\n// export * from './lib/Enum';\n\n// export * from './lib/ui-lib.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV/B,4BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,4BAAA,EAAA;;;AEJlB,MAAM,YAAY,GAAsB,CAAC,KAAK,MAAM;AACvD;AACH,CAAA,CAAC;;ACHF;AAEO,MAAM,gBAAgB,GAAwC;AACjE,IAAA,YAAY,EAAE,YAAY;;;;MCGjB,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAqC3C,IAAA;AAnCG,IAAA,aAAa,CAAI,IAAW,EAAA;QACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,YAAA,OAAO,EAAE;QACb;AAEA,QAAA,OAAO;AACF,aAAA,MAAM,CACH,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK;AAEhE,aAAA,GAAG,CAAC,CAAC,SAAS,KAAI;YACf,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AACzC,YAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC;AAErC,YAAA,MAAM,MAAM,GAAqB;gBAC7B,IAAI;gBACJ,KAAK,EAAE,SAAS,CAAC,KAAK;AACtB,gBAAA,KAAK,EAAE,EAAO;aACjB;YAED,IAAI,MAAM,EAAE;AACR,gBAAA,IAAI;oBACA,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAM;gBAC/C;gBAAE,OAAO,CAAC,EAAE;oBACR,OAAO,CAAC,KAAK,CACT,CAAA,mCAAA,EAAsC,IAAI,CAAA,CAAA,CAAG,EAC7C,CAAC,CACJ;gBACL;YACJ;iBAAO;AACH,gBAAA,OAAO,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAA,CAAA,CAAG,CAAC;YAC3D;AAEA,YAAA,OAAO,MAAM;AACjB,QAAA,CAAC,CAAC;IACV;+GArCS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFV,MAAM,EAAA,CAAA,CAAA;;4FAET,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACND;;AAEG;AAEH;AAUA;AACA;AAEA;AACA;AAEA;;ACpBA;;AAEG;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface BodyComponent<T> {
|
|
2
|
+
name: string;
|
|
3
|
+
order?: number;
|
|
4
|
+
props: T;
|
|
5
|
+
}
|
|
6
|
+
export interface PageComponent {
|
|
7
|
+
id: number;
|
|
8
|
+
page_id: number;
|
|
9
|
+
component_id: number;
|
|
10
|
+
order: number;
|
|
11
|
+
}
|
|
12
|
+
export interface PageComponentTranslation {
|
|
13
|
+
id: number;
|
|
14
|
+
page_component_id: number;
|
|
15
|
+
lang_id: number;
|
|
16
|
+
props: any;
|
|
17
|
+
page_component?: PageComponent;
|
|
18
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface GeneralConfigResponse {
|
|
2
|
+
id: number;
|
|
3
|
+
name: string;
|
|
4
|
+
favicons: string | null;
|
|
5
|
+
languages: {
|
|
6
|
+
id: number;
|
|
7
|
+
code: string;
|
|
8
|
+
}[];
|
|
9
|
+
logos: string | null;
|
|
10
|
+
pages: Page[];
|
|
11
|
+
theme: string;
|
|
12
|
+
}
|
|
13
|
+
export interface Page {
|
|
14
|
+
id: number;
|
|
15
|
+
name: string;
|
|
16
|
+
template: string;
|
|
17
|
+
}
|
|
18
|
+
export interface Language {
|
|
19
|
+
id: number;
|
|
20
|
+
code: string;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './mapper';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const componentMappers: Record<string, (props: any) => any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ComponentMapperFn<T = any> = (props: any) => T;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BodyComponent } from '../../interfaces/page-config.interface';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class MapperService {
|
|
4
|
+
private platformId;
|
|
5
|
+
mapComponents<T>(body: any[]): BodyComponent<T>[];
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MapperService, never>;
|
|
7
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MapperService>;
|
|
8
|
+
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class UiLibComponent {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UiLibComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: UiLibComponent, isStandalone: true, selector: "lib-ui-lib", ngImport: i0, template: `
|
|
6
|
-
<p>
|
|
7
|
-
ui-lib works!
|
|
8
|
-
</p>
|
|
9
|
-
`, isInline: true, styles: [""] }); }
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UiLibComponent, decorators: [{
|
|
12
|
-
type: Component,
|
|
13
|
-
args: [{ selector: 'lib-ui-lib', standalone: true, imports: [], template: `
|
|
14
|
-
<p>
|
|
15
|
-
ui-lib works!
|
|
16
|
-
</p>
|
|
17
|
-
` }]
|
|
18
|
-
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGliLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL3VpLWxpYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFhMUMsTUFBTSxPQUFPLGNBQWM7K0dBQWQsY0FBYzttR0FBZCxjQUFjLHNFQVBmOzs7O0dBSVQ7OzRGQUdVLGNBQWM7a0JBWDFCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxFQUFFLFlBQ0Q7Ozs7R0FJVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdWktbGliJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHA+XG4gICAgICB1aS1saWIgd29ya3MhXG4gICAgPC9wPlxuICBgLFxuICBzdHlsZXM6IGBgXG59KVxuZXhwb3J0IGNsYXNzIFVpTGliQ29tcG9uZW50IHtcblxufVxuIl19
|