sapenlinea-components 0.11.89 → 0.11.91
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.
|
@@ -3578,11 +3578,11 @@ class InfoGroup {
|
|
|
3578
3578
|
typeDocument = input(null, ...(ngDevMode ? [{ debugName: "typeDocument" }] : []));
|
|
3579
3579
|
document = input(null, ...(ngDevMode ? [{ debugName: "document" }] : []));
|
|
3580
3580
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InfoGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3581
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: InfoGroup, isStandalone: true, selector: "lib-info-group", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, showBox: { classPropertyName: "showBox", publicName: "showBox", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleAlign: { classPropertyName: "titleAlign", publicName: "titleAlign", isSignal: true, isRequired: false, transformFunction: null }, itemsLeft: { classPropertyName: "itemsLeft", publicName: "itemsLeft", isSignal: true, isRequired: false, transformFunction: null }, itemsRight: { classPropertyName: "itemsRight", publicName: "itemsRight", isSignal: true, isRequired: false, transformFunction: null }, titleLeft: { classPropertyName: "titleLeft", publicName: "titleLeft", isSignal: true, isRequired: false, transformFunction: null }, titleRight: { classPropertyName: "titleRight", publicName: "titleRight", isSignal: true, isRequired: false, transformFunction: null }, fullName: { classPropertyName: "fullName", publicName: "fullName", isSignal: true, isRequired: false, transformFunction: null }, typeDocument: { classPropertyName: "typeDocument", publicName: "typeDocument", isSignal: true, isRequired: false, transformFunction: null }, document: { classPropertyName: "document", publicName: "document", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (!showBox()) {\r\n<div class=\"info-card\">\r\n @if (title()) {\r\n <h3 class=\"info-title\" [style.text-align]=\"titleAlign()\">{{ title() }}</h3>\r\n }\r\n\r\n @if (itemsLeft().length || itemsRight().length) {\r\n <div class=\"compare-grid\">\r\n <div class=\"compare-col\">\r\n @if (titleLeft()) {\r\n <span class=\"col-title\">{{ titleLeft() }}</span>\r\n }\r\n @for (item of itemsLeft(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"compare-divider\"></div>\r\n <div class=\"compare-col\">\r\n @if (titleRight()) {\r\n <span class=\"col-title\">{{ titleRight() }}</span>\r\n }\r\n @for (item of itemsRight(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"info-grid\">\r\n @for (item of items(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value\r\n || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n} \r\n\r\n@if (showBox()) {\r\n<div class=\"person-box\" [ngClass]=\"type()\" >\r\n <span class=\"person-name\">{{ fullName() || '-' }}</span>\r\n <span class=\"divider\"></span>\r\n <span class=\"person-doc\">{{ typeDocument() }} {{ document() || '-' }}</span>\r\n</div>\r\n}\r\n", styles: [".info-card{background:#f7f6e3;border-radius:18px;padding:20px 24px;width:100%}.info-title{font-size:20px;font-weight:700;color:#40484c;margin-bottom:24px;text-transform:uppercase}.info-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;row-gap:14px}.info-grid:after{content:\"\";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#40484c26;transform:translate(-50%);pointer-events:none}.compare-grid{display:flex;gap:0}.compare-col{flex:1;display:flex;flex-direction:column;gap:14px}.compare-divider{width:1px;background:#40484c26;margin:0 16px}.col-title{font-size:15px;font-weight:700;color:#40484c;text-transform:uppercase}.info-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(64,72,76,.15);padding-bottom:14px}.info-row:nth-last-child(1):nth-child(2n),.info-row:nth-last-child(2):nth-child(odd){border-bottom:none}.info-row:nth-last-child(1):nth-child(odd){border-bottom:none}.info-label{font-size:13px;color:#40484c;font-weight:500;text-transform:capitalize}.info-value{font-size:13px;color:#40484c;font-weight:600
|
|
3581
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: InfoGroup, isStandalone: true, selector: "lib-info-group", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, showBox: { classPropertyName: "showBox", publicName: "showBox", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleAlign: { classPropertyName: "titleAlign", publicName: "titleAlign", isSignal: true, isRequired: false, transformFunction: null }, itemsLeft: { classPropertyName: "itemsLeft", publicName: "itemsLeft", isSignal: true, isRequired: false, transformFunction: null }, itemsRight: { classPropertyName: "itemsRight", publicName: "itemsRight", isSignal: true, isRequired: false, transformFunction: null }, titleLeft: { classPropertyName: "titleLeft", publicName: "titleLeft", isSignal: true, isRequired: false, transformFunction: null }, titleRight: { classPropertyName: "titleRight", publicName: "titleRight", isSignal: true, isRequired: false, transformFunction: null }, fullName: { classPropertyName: "fullName", publicName: "fullName", isSignal: true, isRequired: false, transformFunction: null }, typeDocument: { classPropertyName: "typeDocument", publicName: "typeDocument", isSignal: true, isRequired: false, transformFunction: null }, document: { classPropertyName: "document", publicName: "document", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (!showBox()) {\r\n<div class=\"info-card\">\r\n @if (title()) {\r\n <h3 class=\"info-title\" [style.text-align]=\"titleAlign()\">{{ title() }}</h3>\r\n }\r\n\r\n @if (itemsLeft().length || itemsRight().length) {\r\n <div class=\"compare-grid\">\r\n <div class=\"compare-col\">\r\n @if (titleLeft()) {\r\n <span class=\"col-title\">{{ titleLeft() }}</span>\r\n }\r\n @for (item of itemsLeft(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"compare-divider\"></div>\r\n <div class=\"compare-col\">\r\n @if (titleRight()) {\r\n <span class=\"col-title\">{{ titleRight() }}</span>\r\n }\r\n @for (item of itemsRight(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"info-grid\">\r\n @for (item of items(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value\r\n || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n} \r\n\r\n@if (showBox()) {\r\n<div class=\"person-box\" [ngClass]=\"type()\" >\r\n <span class=\"person-name\">{{ fullName() || '-' }}</span>\r\n <span class=\"divider\"></span>\r\n <span class=\"person-doc\">{{ typeDocument() }} {{ document() || '-' }}</span>\r\n</div>\r\n}\r\n", styles: [".info-card{background:#f7f6e3;border-radius:18px;padding:20px 24px;width:100%}.info-title{font-size:20px;font-weight:700;color:#40484c;margin-bottom:24px;text-transform:uppercase}.info-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;row-gap:14px}.info-grid:after{content:\"\";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#40484c26;transform:translate(-50%);pointer-events:none}.compare-grid{display:flex;gap:0}.compare-col{flex:1;display:flex;flex-direction:column;gap:14px}.compare-divider{width:1px;background:#40484c26;margin:0 16px}.col-title{font-size:15px;font-weight:700;color:#40484c;text-transform:uppercase}.info-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(64,72,76,.15);padding-bottom:14px}.info-row:nth-last-child(1):nth-child(2n),.info-row:nth-last-child(2):nth-child(odd){border-bottom:none}.info-row:nth-last-child(1):nth-child(odd){border-bottom:none}.info-label{font-size:13px;color:#40484c;font-weight:500;text-transform:capitalize}.info-value{font-size:13px;color:#40484c;font-weight:600}.person-box{background:#d6e873;padding:14px 32px;border-radius:20px;display:flex;align-items:center;font-size:14px;font-weight:500;gap:32px;color:#454733;text-transform:uppercase}.person-name{flex:1;display:flex;justify-content:center}.person-doc{display:flex;flex:1;gap:4px;justify-content:center}.divider{width:2px;height:23px;background:#00000010}.success{background:#dee58f}.info{background:#b6e1f2}.error{background:#fdd8d7}@media (max-width: 768px){.info-grid{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
3582
3582
|
}
|
|
3583
3583
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InfoGroup, decorators: [{
|
|
3584
3584
|
type: Component,
|
|
3585
|
-
args: [{ selector: 'lib-info-group', imports: [CommonModule], template: "@if (!showBox()) {\r\n<div class=\"info-card\">\r\n @if (title()) {\r\n <h3 class=\"info-title\" [style.text-align]=\"titleAlign()\">{{ title() }}</h3>\r\n }\r\n\r\n @if (itemsLeft().length || itemsRight().length) {\r\n <div class=\"compare-grid\">\r\n <div class=\"compare-col\">\r\n @if (titleLeft()) {\r\n <span class=\"col-title\">{{ titleLeft() }}</span>\r\n }\r\n @for (item of itemsLeft(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"compare-divider\"></div>\r\n <div class=\"compare-col\">\r\n @if (titleRight()) {\r\n <span class=\"col-title\">{{ titleRight() }}</span>\r\n }\r\n @for (item of itemsRight(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"info-grid\">\r\n @for (item of items(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value\r\n || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n} \r\n\r\n@if (showBox()) {\r\n<div class=\"person-box\" [ngClass]=\"type()\" >\r\n <span class=\"person-name\">{{ fullName() || '-' }}</span>\r\n <span class=\"divider\"></span>\r\n <span class=\"person-doc\">{{ typeDocument() }} {{ document() || '-' }}</span>\r\n</div>\r\n}\r\n", styles: [".info-card{background:#f7f6e3;border-radius:18px;padding:20px 24px;width:100%}.info-title{font-size:20px;font-weight:700;color:#40484c;margin-bottom:24px;text-transform:uppercase}.info-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;row-gap:14px}.info-grid:after{content:\"\";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#40484c26;transform:translate(-50%);pointer-events:none}.compare-grid{display:flex;gap:0}.compare-col{flex:1;display:flex;flex-direction:column;gap:14px}.compare-divider{width:1px;background:#40484c26;margin:0 16px}.col-title{font-size:15px;font-weight:700;color:#40484c;text-transform:uppercase}.info-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(64,72,76,.15);padding-bottom:14px}.info-row:nth-last-child(1):nth-child(2n),.info-row:nth-last-child(2):nth-child(odd){border-bottom:none}.info-row:nth-last-child(1):nth-child(odd){border-bottom:none}.info-label{font-size:13px;color:#40484c;font-weight:500;text-transform:capitalize}.info-value{font-size:13px;color:#40484c;font-weight:600
|
|
3585
|
+
args: [{ selector: 'lib-info-group', imports: [CommonModule], template: "@if (!showBox()) {\r\n<div class=\"info-card\">\r\n @if (title()) {\r\n <h3 class=\"info-title\" [style.text-align]=\"titleAlign()\">{{ title() }}</h3>\r\n }\r\n\r\n @if (itemsLeft().length || itemsRight().length) {\r\n <div class=\"compare-grid\">\r\n <div class=\"compare-col\">\r\n @if (titleLeft()) {\r\n <span class=\"col-title\">{{ titleLeft() }}</span>\r\n }\r\n @for (item of itemsLeft(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"compare-divider\"></div>\r\n <div class=\"compare-col\">\r\n @if (titleRight()) {\r\n <span class=\"col-title\">{{ titleRight() }}</span>\r\n }\r\n @for (item of itemsRight(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"info-grid\">\r\n @for (item of items(); track item.label) {\r\n <div class=\"info-row\">\r\n <span class=\"info-label\">{{ item.label }}</span>\r\n <span class=\"info-value\">\r\n {{ item.value === true ? \"SI\" : item.value === false ? \"NO\" : item.value\r\n || \"-\" }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n} \r\n\r\n@if (showBox()) {\r\n<div class=\"person-box\" [ngClass]=\"type()\" >\r\n <span class=\"person-name\">{{ fullName() || '-' }}</span>\r\n <span class=\"divider\"></span>\r\n <span class=\"person-doc\">{{ typeDocument() }} {{ document() || '-' }}</span>\r\n</div>\r\n}\r\n", styles: [".info-card{background:#f7f6e3;border-radius:18px;padding:20px 24px;width:100%}.info-title{font-size:20px;font-weight:700;color:#40484c;margin-bottom:24px;text-transform:uppercase}.info-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;row-gap:14px}.info-grid:after{content:\"\";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#40484c26;transform:translate(-50%);pointer-events:none}.compare-grid{display:flex;gap:0}.compare-col{flex:1;display:flex;flex-direction:column;gap:14px}.compare-divider{width:1px;background:#40484c26;margin:0 16px}.col-title{font-size:15px;font-weight:700;color:#40484c;text-transform:uppercase}.info-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(64,72,76,.15);padding-bottom:14px}.info-row:nth-last-child(1):nth-child(2n),.info-row:nth-last-child(2):nth-child(odd){border-bottom:none}.info-row:nth-last-child(1):nth-child(odd){border-bottom:none}.info-label{font-size:13px;color:#40484c;font-weight:500;text-transform:capitalize}.info-value{font-size:13px;color:#40484c;font-weight:600}.person-box{background:#d6e873;padding:14px 32px;border-radius:20px;display:flex;align-items:center;font-size:14px;font-weight:500;gap:32px;color:#454733;text-transform:uppercase}.person-name{flex:1;display:flex;justify-content:center}.person-doc{display:flex;flex:1;gap:4px;justify-content:center}.divider{width:2px;height:23px;background:#00000010}.success{background:#dee58f}.info{background:#b6e1f2}.error{background:#fdd8d7}@media (max-width: 768px){.info-grid{grid-template-columns:1fr}}\n"] }]
|
|
3586
3586
|
}], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], showBox: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBox", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleAlign: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleAlign", required: false }] }], itemsLeft: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsLeft", required: false }] }], itemsRight: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsRight", required: false }] }], titleLeft: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleLeft", required: false }] }], titleRight: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleRight", required: false }] }], fullName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullName", required: false }] }], typeDocument: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeDocument", required: false }] }], document: [{ type: i0.Input, args: [{ isSignal: true, alias: "document", required: false }] }] } });
|
|
3587
3587
|
|
|
3588
3588
|
class FeatureCard {
|
|
@@ -3637,23 +3637,20 @@ class FeatureCard {
|
|
|
3637
3637
|
}
|
|
3638
3638
|
}, ...(ngDevMode ? [{ debugName: "formattedDescription" }] : []));
|
|
3639
3639
|
constructor() {
|
|
3640
|
-
// Sincroniza
|
|
3640
|
+
// Sincroniza description solo cuando el feature cambia desde el padre,
|
|
3641
|
+
// pero nunca pisa un valor que el formulario (writeValue) ya haya establecido.
|
|
3641
3642
|
effect(() => {
|
|
3642
3643
|
const feat = this.feature();
|
|
3643
|
-
|
|
3644
|
+
const incoming = feat?.description ?? '';
|
|
3645
|
+
if (incoming !== this.descriptionValue()) {
|
|
3646
|
+
this.descriptionValue.set(incoming);
|
|
3647
|
+
}
|
|
3644
3648
|
});
|
|
3645
3649
|
}
|
|
3646
3650
|
// --- ControlValueAccessor Implementation ---
|
|
3647
3651
|
writeValue(value) {
|
|
3648
3652
|
const nextDescription = value == null ? '' : String(value);
|
|
3649
|
-
// Solo actualizamos el valor visual (descriptionValue)
|
|
3650
3653
|
this.descriptionValue.set(nextDescription);
|
|
3651
|
-
// Mantenemos sincronizado el objeto base
|
|
3652
|
-
const current = this.feature();
|
|
3653
|
-
if (current) {
|
|
3654
|
-
// Modificamos el objeto feature subyacente para no perder la configuración
|
|
3655
|
-
this.feature.set({ ...current, description: nextDescription });
|
|
3656
|
-
}
|
|
3657
3654
|
}
|
|
3658
3655
|
registerOnChange(fn) {
|
|
3659
3656
|
this.onChange = fn;
|