gentera-rdnd 0.1.7 → 0.1.9
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/components/input/input.component.mjs +3 -3
- package/esm2022/lib/components/rdnd-sidebar/rdnd-sidebar.component.mjs +25 -13
- package/esm2022/lib/services/storage.service.mjs +34 -0
- package/esm2022/lib/types/Sidebar.types.mjs +1 -1
- package/esm2022/public-api.mjs +6 -3
- package/fesm2022/gentera-rdnd.mjs +57 -13
- package/fesm2022/gentera-rdnd.mjs.map +1 -1
- package/lib/components/rdnd-sidebar/rdnd-sidebar.component.d.ts +8 -3
- package/lib/services/storage.service.d.ts +10 -0
- package/lib/types/Sidebar.types.d.ts +3 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -3
|
@@ -75,7 +75,7 @@ export class RdndInput {
|
|
|
75
75
|
this.onBlur.emit(event);
|
|
76
76
|
}
|
|
77
77
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RdndInput, deps: [{ token: i1.InputService }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RdndInput, isStandalone: true, selector: "rdnd-input", inputs: { id: "id", name: "name", type: "type", placeholder: "placeholder", value: "value", validators: "validators", disabled: "disabled" }, outputs: { valueChange: "valueChange", onKeyDown: "onKeyDown", onPaste: "onPaste", onFocus: "onFocus", onBlur: "onBlur" }, ngImport: i0, template: "<div [ngClass]=\"{ 'disabled': disabled }\" class=\"input-container\">\r\n
|
|
78
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RdndInput, isStandalone: true, selector: "rdnd-input", inputs: { id: "id", name: "name", type: "type", placeholder: "placeholder", value: "value", validators: "validators", disabled: "disabled" }, outputs: { valueChange: "valueChange", onKeyDown: "onKeyDown", onPaste: "onPaste", onFocus: "onFocus", onBlur: "onBlur" }, ngImport: i0, template: " <div [ngClass]=\"{ 'disabled': disabled }\" class=\"input-container\">\r\n <!-- \u00CDcono de error que aparece por encima del campo si hay error -->\r\n <span *ngIf=\"hasError()\" class=\"error-icon\" (click)=\"toggleErrorDisplay()\">ⓘ</span>\r\n\r\n <!-- Bot\u00F3n de mostrar/ocultar contrase\u00F1a centrado verticalmente -->\r\n <button *ngIf=\"type === 'password'\" type=\"button\" (click)=\"handleTogglePassword()\" class=\"toggle-button\">\r\n <fa-icon [icon]=\"faEyeSlash\" class=\"icon\" [class.active]=\"showPassword\"></fa-icon>\r\n </button>\r\n\r\n <!-- Input que cambia de borde si tiene error -->\r\n <input\r\n [type]=\"type === 'password' && showPassword ? 'text' : type\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"handleKeyDown($event)\"\r\n (paste)=\"handlePaste($event)\"\r\n (focus)=\"handleFocus($event)\"\r\n (blur)=\"handleBlur($event)\"\r\n [ngClass]=\"{ 'error-border': hasError() }\"\r\n />\r\n\r\n <!-- Mensaje de error que aparece solo cuando se clickea en el \u00EDcono de error -->\r\n <div *ngIf=\"control.invalid && control.dirty && showError\" class=\"error-message\">\r\n {{ getErrorMessage() }}\r\n </div>\r\n </div>\r\n", styles: [".input-container{width:100%;min-width:100%;box-sizing:border-box;position:relative;display:block}input{position:relative;width:100%;min-width:100%;padding:7px 35px 7px 8px;border-radius:3px;font-family:Poppins,sans-serif;height:40px;font-size:16px;border:1px solid #ccc;outline:none;box-sizing:border-box;transition:all .3s ease;background-color:#fff!important;appearance:none;-moz-appearance:textfield;-webkit-appearance:textfield}input:-webkit-autofill{background-color:#fff!important}input.error-border{border-color:red}input:focus{border:1px solid blue}.error-icon{position:absolute;right:8px;top:1px;bottom:1px;font-size:24px;color:red;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:3;background-color:#fff}.error-message{position:absolute;bottom:0;left:0;color:red;padding:0 0 0 8px;border-radius:4px;font-size:12px;font-family:sans-serif;white-space:nowrap}.toggle-button{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;z-index:2}.icon{transition:opacity .3s ease}.icon.active{opacity:.5}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
79
79
|
}
|
|
80
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RdndInput, decorators: [{
|
|
81
81
|
type: Component,
|
|
@@ -84,7 +84,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
84
84
|
NgClass,
|
|
85
85
|
FontAwesomeModule,
|
|
86
86
|
ReactiveFormsModule
|
|
87
|
-
], template: "<div [ngClass]=\"{ 'disabled': disabled }\" class=\"input-container\">\r\n
|
|
87
|
+
], template: " <div [ngClass]=\"{ 'disabled': disabled }\" class=\"input-container\">\r\n <!-- \u00CDcono de error que aparece por encima del campo si hay error -->\r\n <span *ngIf=\"hasError()\" class=\"error-icon\" (click)=\"toggleErrorDisplay()\">ⓘ</span>\r\n\r\n <!-- Bot\u00F3n de mostrar/ocultar contrase\u00F1a centrado verticalmente -->\r\n <button *ngIf=\"type === 'password'\" type=\"button\" (click)=\"handleTogglePassword()\" class=\"toggle-button\">\r\n <fa-icon [icon]=\"faEyeSlash\" class=\"icon\" [class.active]=\"showPassword\"></fa-icon>\r\n </button>\r\n\r\n <!-- Input que cambia de borde si tiene error -->\r\n <input\r\n [type]=\"type === 'password' && showPassword ? 'text' : type\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"handleKeyDown($event)\"\r\n (paste)=\"handlePaste($event)\"\r\n (focus)=\"handleFocus($event)\"\r\n (blur)=\"handleBlur($event)\"\r\n [ngClass]=\"{ 'error-border': hasError() }\"\r\n />\r\n\r\n <!-- Mensaje de error que aparece solo cuando se clickea en el \u00EDcono de error -->\r\n <div *ngIf=\"control.invalid && control.dirty && showError\" class=\"error-message\">\r\n {{ getErrorMessage() }}\r\n </div>\r\n </div>\r\n", styles: [".input-container{width:100%;min-width:100%;box-sizing:border-box;position:relative;display:block}input{position:relative;width:100%;min-width:100%;padding:7px 35px 7px 8px;border-radius:3px;font-family:Poppins,sans-serif;height:40px;font-size:16px;border:1px solid #ccc;outline:none;box-sizing:border-box;transition:all .3s ease;background-color:#fff!important;appearance:none;-moz-appearance:textfield;-webkit-appearance:textfield}input:-webkit-autofill{background-color:#fff!important}input.error-border{border-color:red}input:focus{border:1px solid blue}.error-icon{position:absolute;right:8px;top:1px;bottom:1px;font-size:24px;color:red;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:3;background-color:#fff}.error-message{position:absolute;bottom:0;left:0;color:red;padding:0 0 0 8px;border-radius:4px;font-size:12px;font-family:sans-serif;white-space:nowrap}.toggle-button{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;z-index:2}.icon{transition:opacity .3s ease}.icon.active{opacity:.5}\n"] }]
|
|
88
88
|
}], ctorParameters: () => [{ type: i1.InputService }], propDecorators: { id: [{
|
|
89
89
|
type: Input
|
|
90
90
|
}], name: [{
|
|
@@ -110,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
110
110
|
}], onBlur: [{
|
|
111
111
|
type: Output
|
|
112
112
|
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VudGVyYS1yZG5kL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW50ZXJhLXJkbmQvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBNEMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDN0QsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFnQm5FLE1BQU0sT0FBTyxTQUFTO0lBb0JBO0lBbkJYLEVBQUUsQ0FBVTtJQUNaLElBQUksQ0FBVTtJQUNkLElBQUksR0FBbUMsTUFBTSxDQUFDO0lBQzlDLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixVQUFVLEdBQWtCLEVBQUUsQ0FBQztJQUMvQixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRXpCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ3pDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUM5QyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFDN0MsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFDekMsTUFBTSxHQUFHLElBQUksWUFBWSxF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O0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFxQjtRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBaUI7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt3R0FuRlUsU0FBUzs0RkFBVCxTQUFTLCtVQ3BCdEIsMHZDQTJCQSxxcENEZEksSUFBSSw2RkFDSixPQUFPLG1GQUNQLGlCQUFpQiw0UEFDakIsbUJBQW1COzs0RkFJVixTQUFTO2tCQVpyQixTQUFTOytCQUNFLFlBQVksY0FFVixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixPQUFPO3dCQUNQLGlCQUFpQjt3QkFDakIsbUJBQW1CO3FCQUNwQjtpRkFJUSxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge2ZhRXllU2xhc2h9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtGb250QXdlc29tZU1vZHVsZX0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5pbXBvcnQge0lucHV0U2VydmljZX0gZnJvbSBcIi4uLy4uL2hvb2tzL2lucHV0LnNlcnZpY2VcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JkbmQtaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0lmLFxyXG4gICAgTmdDbGFzcyxcclxuICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmRuZElucHV0IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBpZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBuYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHR5cGU6ICd0ZXh0JyB8ICdwYXNzd29yZCcgfCAnbnVtYmVyJyA9ICd0ZXh0JztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgb25LZXlEb3duID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBvblBhc3RlID0gbmV3IEV2ZW50RW1pdHRlcjxDbGlwYm9hcmRFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb25Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb25CbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xyXG5cclxuICBjb250cm9sITogRm9ybUNvbnRyb2w7XHJcbiAgZmFFeWVTbGFzaCA9IGZhRXllU2xhc2g7XHJcbiAgc2hvd1Bhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0Vycm9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5wdXRTZXJ2aWNlOiBJbnB1dFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250cm9sID0gbmV3IEZvcm1Db250cm9sKHRoaXMudmFsdWUsIHRoaXMudmFsaWRhdG9ycyk7XHJcblxyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5pbnB1dFNlcnZpY2UudXBkYXRlSW5wdXRTdGF0ZSh0aGlzLmNvbnRyb2wsIHRoaXMuaWQpO1xyXG5cclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICB0aGlzLmlucHV0U2VydmljZS51cGRhdGVJbnB1dFN0YXRlKHRoaXMuY29udHJvbCwgdGhpcy5pZCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sICYmIHRoaXMuY29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgY29uc3QgZXJyb3JLZXlzID0gT2JqZWN0LmtleXModGhpcy5jb250cm9sLmVycm9ycyk7XHJcbiAgICAgIGlmIChlcnJvcktleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGZpcnN0RXJyb3JLZXkgPSBlcnJvcktleXNbMF07XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLmNvbnRyb2wuZXJyb3JzIGFzIFZhbGlkYXRpb25FcnJvcnMpW2ZpcnN0RXJyb3JLZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUVycm9yRGlzcGxheSgpIHtcclxuICAgIHRoaXMuc2hvd0Vycm9yID0gIXRoaXMuc2hvd0Vycm9yO1xyXG4gIH1cclxuXHJcbiAgaGFzRXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmludmFsaWQgJiYgKHRoaXMuY29udHJvbC5kaXJ0eSB8fCB0aGlzLmNvbnRyb2wudG91Y2hlZCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVUb2dnbGVQYXNzd29yZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1Bhc3N3b3JkID0gIXRoaXMuc2hvd1Bhc3N3b3JkO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgYWxsb3dSZWdleCA9IC9eW2EtekEtWiFAIyQlXiYqKClfK1xcLT1cXFtcXF17fTsnOlwiXFxcXHwsLjw+XFwvP10qJC9cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMudHlwZSA9PT0gJ251bWJlcicgJiYgIShcclxuICAgICAgICBbJ0JhY2tzcGFjZScsICdTaGlmdCcsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50LmtleSlcclxuICAgICAgKSAmJiAhKGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuc2hpZnRLZXkpXHJcbiAgICApIHtcclxuICAgICAgZXZlbnQua2V5Lm1hdGNoKGFsbG93UmVnZXgpID8gZXZlbnQucHJldmVudERlZmF1bHQoKSA6IHRoaXMub25LZXlEb3duLmVtaXQoZXZlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbktleURvd24uZW1pdChldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVQYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMub25QYXN0ZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uRm9jdXMuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQmx1ci5lbWl0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZCc6IGRpc2FibGVkIH1cIiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxyXG4gIDwhLS0gw41jb25vIGRlIGVycm9yIHF1ZSBhcGFyZWNlIHBvciBlbmNpbWEgZGVsIGNhbXBvIHNpIGhheSBlcnJvciAtLT5cclxuICA8c3BhbiAqbmdJZj1cImhhc0Vycm9yKClcIiBjbGFzcz1cImVycm9yLWljb25cIiAoY2xpY2spPVwidG9nZ2xlRXJyb3JEaXNwbGF5KClcIj4mIzk0MzI7PC9zcGFuPlxyXG5cclxuICA8IS0tIEJvdMOzbiBkZSBtb3N0cmFyL29jdWx0YXIgY29udHJhc2XDsWEgY2VudHJhZG8gdmVydGljYWxtZW50ZSAtLT5cclxuICA8YnV0dG9uICpuZ0lmPVwidHlwZSA9PT0gJ3Bhc3N3b3JkJ1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiaGFuZGxlVG9nZ2xlUGFzc3dvcmQoKVwiIGNsYXNzPVwidG9nZ2xlLWJ1dHRvblwiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiZmFFeWVTbGFzaFwiIGNsYXNzPVwiaWNvblwiIFtjbGFzcy5hY3RpdmVdPVwic2hvd1Bhc3N3b3JkXCI+PC9mYS1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8IS0tIElucHV0IHF1ZSBjYW1iaWEgZGUgYm9yZGUgc2kgdGllbmUgZXJyb3IgLS0+XHJcbiAgPGlucHV0XHJcbiAgICBbdHlwZV09XCJ0eXBlID09PSAncGFzc3dvcmQnICYmIHNob3dQYXNzd29yZCA/ICd0ZXh0JyA6IHR5cGVcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIlxyXG4gICAgKHBhc3RlKT1cImhhbmRsZVBhc3RlKCRldmVudClcIlxyXG4gICAgKGZvY3VzKT1cImhhbmRsZUZvY3VzKCRldmVudClcIlxyXG4gICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2Vycm9yLWJvcmRlcic6IGhhc0Vycm9yKCkgfVwiXHJcbiAgLz5cclxuXHJcbiAgPCEtLSBNZW5zYWplIGRlIGVycm9yIHF1ZSBhcGFyZWNlIHNvbG8gY3VhbmRvIHNlIGNsaWNrZWEgZW4gZWwgw61jb25vIGRlIGVycm9yIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJjb250cm9sLmludmFsaWQgJiYgY29udHJvbC5kaXJ0eSAmJiBzaG93RXJyb3JcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgIHt7IGdldEVycm9yTWVzc2FnZSgpIH19XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VudGVyYS1yZG5kL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW50ZXJhLXJkbmQvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBNEMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDN0QsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFnQm5FLE1BQU0sT0FBTyxTQUFTO0lBb0JBO0lBbkJYLEVBQUUsQ0FBVTtJQUNaLElBQUksQ0FBVTtJQUNkLElBQUksR0FBbUMsTUFBTSxDQUFDO0lBQzlDLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixVQUFVLEdBQWtCLEVBQUUsQ0FBQztJQUMvQixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRXpCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ3pDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUM5QyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFDN0MsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFDekMsTUFBTSxHQUFHLElBQUksWUFBWSxF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O0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFxQjtRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBaUI7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt3R0FuRlUsU0FBUzs0RkFBVCxTQUFTLCtVQ3BCdEIsMHlDQTJCQSxxcENEZEksSUFBSSw2RkFDSixPQUFPLG1GQUNQLGlCQUFpQiw0UEFDakIsbUJBQW1COzs0RkFJVixTQUFTO2tCQVpyQixTQUFTOytCQUNFLFlBQVksY0FFVixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixPQUFPO3dCQUNQLGlCQUFpQjt3QkFDakIsbUJBQW1CO3FCQUNwQjtpRkFJUSxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge2ZhRXllU2xhc2h9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtGb250QXdlc29tZU1vZHVsZX0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5pbXBvcnQge0lucHV0U2VydmljZX0gZnJvbSBcIi4uLy4uL2hvb2tzL2lucHV0LnNlcnZpY2VcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JkbmQtaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0lmLFxyXG4gICAgTmdDbGFzcyxcclxuICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmRuZElucHV0IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBpZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBuYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHR5cGU6ICd0ZXh0JyB8ICdwYXNzd29yZCcgfCAnbnVtYmVyJyA9ICd0ZXh0JztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgb25LZXlEb3duID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBvblBhc3RlID0gbmV3IEV2ZW50RW1pdHRlcjxDbGlwYm9hcmRFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb25Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb25CbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xyXG5cclxuICBjb250cm9sITogRm9ybUNvbnRyb2w7XHJcbiAgZmFFeWVTbGFzaCA9IGZhRXllU2xhc2g7XHJcbiAgc2hvd1Bhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0Vycm9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5wdXRTZXJ2aWNlOiBJbnB1dFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250cm9sID0gbmV3IEZvcm1Db250cm9sKHRoaXMudmFsdWUsIHRoaXMudmFsaWRhdG9ycyk7XHJcblxyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5pbnB1dFNlcnZpY2UudXBkYXRlSW5wdXRTdGF0ZSh0aGlzLmNvbnRyb2wsIHRoaXMuaWQpO1xyXG5cclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICB0aGlzLmlucHV0U2VydmljZS51cGRhdGVJbnB1dFN0YXRlKHRoaXMuY29udHJvbCwgdGhpcy5pZCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sICYmIHRoaXMuY29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgY29uc3QgZXJyb3JLZXlzID0gT2JqZWN0LmtleXModGhpcy5jb250cm9sLmVycm9ycyk7XHJcbiAgICAgIGlmIChlcnJvcktleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGZpcnN0RXJyb3JLZXkgPSBlcnJvcktleXNbMF07XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLmNvbnRyb2wuZXJyb3JzIGFzIFZhbGlkYXRpb25FcnJvcnMpW2ZpcnN0RXJyb3JLZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUVycm9yRGlzcGxheSgpIHtcclxuICAgIHRoaXMuc2hvd0Vycm9yID0gIXRoaXMuc2hvd0Vycm9yO1xyXG4gIH1cclxuXHJcbiAgaGFzRXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmludmFsaWQgJiYgKHRoaXMuY29udHJvbC5kaXJ0eSB8fCB0aGlzLmNvbnRyb2wudG91Y2hlZCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVUb2dnbGVQYXNzd29yZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1Bhc3N3b3JkID0gIXRoaXMuc2hvd1Bhc3N3b3JkO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgYWxsb3dSZWdleCA9IC9eW2EtekEtWiFAIyQlXiYqKClfK1xcLT1cXFtcXF17fTsnOlwiXFxcXHwsLjw+XFwvP10qJC9cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMudHlwZSA9PT0gJ251bWJlcicgJiYgIShcclxuICAgICAgICBbJ0JhY2tzcGFjZScsICdTaGlmdCcsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50LmtleSlcclxuICAgICAgKSAmJiAhKGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuc2hpZnRLZXkpXHJcbiAgICApIHtcclxuICAgICAgZXZlbnQua2V5Lm1hdGNoKGFsbG93UmVnZXgpID8gZXZlbnQucHJldmVudERlZmF1bHQoKSA6IHRoaXMub25LZXlEb3duLmVtaXQoZXZlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbktleURvd24uZW1pdChldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVQYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMub25QYXN0ZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uRm9jdXMuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQmx1ci5lbWl0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2Rpc2FibGVkJzogZGlzYWJsZWQgfVwiIGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8IS0tIMONY29ubyBkZSBlcnJvciBxdWUgYXBhcmVjZSBwb3IgZW5jaW1hIGRlbCBjYW1wbyBzaSBoYXkgZXJyb3IgLS0+XHJcbiAgICA8c3BhbiAqbmdJZj1cImhhc0Vycm9yKClcIiBjbGFzcz1cImVycm9yLWljb25cIiAoY2xpY2spPVwidG9nZ2xlRXJyb3JEaXNwbGF5KClcIj4mIzk0MzI7PC9zcGFuPlxyXG5cclxuICAgIDwhLS0gQm90w7NuIGRlIG1vc3RyYXIvb2N1bHRhciBjb250cmFzZcOxYSBjZW50cmFkbyB2ZXJ0aWNhbG1lbnRlIC0tPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cInR5cGUgPT09ICdwYXNzd29yZCdcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImhhbmRsZVRvZ2dsZVBhc3N3b3JkKClcIiBjbGFzcz1cInRvZ2dsZS1idXR0b25cIj5cclxuICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFFeWVTbGFzaFwiIGNsYXNzPVwiaWNvblwiIFtjbGFzcy5hY3RpdmVdPVwic2hvd1Bhc3N3b3JkXCI+PC9mYS1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPCEtLSBJbnB1dCBxdWUgY2FtYmlhIGRlIGJvcmRlIHNpIHRpZW5lIGVycm9yIC0tPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIFt0eXBlXT1cInR5cGUgPT09ICdwYXNzd29yZCcgJiYgc2hvd1Bhc3N3b3JkID8gJ3RleHQnIDogdHlwZVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgKHBhc3RlKT1cImhhbmRsZVBhc3RlKCRldmVudClcIlxyXG4gICAgICAoZm9jdXMpPVwiaGFuZGxlRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cImhhbmRsZUJsdXIoJGV2ZW50KVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2Vycm9yLWJvcmRlcic6IGhhc0Vycm9yKCkgfVwiXHJcbiAgICAvPlxyXG5cclxuICAgIDwhLS0gTWVuc2FqZSBkZSBlcnJvciBxdWUgYXBhcmVjZSBzb2xvIGN1YW5kbyBzZSBjbGlja2VhIGVuIGVsIMOtY29ubyBkZSBlcnJvciAtLT5cclxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sLmludmFsaWQgJiYgY29udHJvbC5kaXJ0eSAmJiBzaG93RXJyb3JcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4iXX0=
|
|
@@ -1,32 +1,44 @@
|
|
|
1
1
|
import { Component, Input, output } from '@angular/core';
|
|
2
|
-
import { FaIconComponent } from
|
|
3
|
-
import { faArrowRight, } from
|
|
4
|
-
import { NgClass, NgStyle } from
|
|
5
|
-
import { RouterLink } from
|
|
2
|
+
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
|
|
3
|
+
import { faArrowRight, faChevronDown, faChevronUp, } from '@fortawesome/free-solid-svg-icons';
|
|
4
|
+
import { NgClass, NgStyle, NgIf, NgFor, NgTemplateOutlet } from '@angular/common';
|
|
5
|
+
import { RouterLink } from '@angular/router';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class RdndSidebar {
|
|
8
|
-
// Icons
|
|
9
|
-
faArrowRight = faArrowRight;
|
|
10
|
-
// Inputs & Outputs
|
|
11
8
|
show = false;
|
|
12
9
|
entries = [];
|
|
13
|
-
backgroundStart =
|
|
14
|
-
backgroundEnd =
|
|
10
|
+
backgroundStart = '#C2185B';
|
|
11
|
+
backgroundEnd = '#7E0083';
|
|
15
12
|
onClickEntry = output();
|
|
13
|
+
faArrowRight = faArrowRight;
|
|
14
|
+
faChevronDown = faChevronDown;
|
|
15
|
+
faChevronUp = faChevronUp;
|
|
16
|
+
openSections = new Set();
|
|
16
17
|
handleClick = () => {
|
|
17
18
|
this.onClickEntry.emit();
|
|
18
19
|
};
|
|
20
|
+
toggleSection(name) {
|
|
21
|
+
this.openSections.has(name)
|
|
22
|
+
? this.openSections.delete(name)
|
|
23
|
+
: this.openSections.add(name);
|
|
24
|
+
}
|
|
25
|
+
isSectionOpen(name) {
|
|
26
|
+
return this.openSections.has(name);
|
|
27
|
+
}
|
|
19
28
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RdndSidebar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RdndSidebar, isStandalone: true, selector: "rdnd-sidebar", inputs: { show: "show", entries: "entries", backgroundStart: "backgroundStart", backgroundEnd: "backgroundEnd" }, outputs: { onClickEntry: "onClickEntry" }, ngImport: i0, template: "@if (show) {\r\n <div
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RdndSidebar, isStandalone: true, selector: "rdnd-sidebar", inputs: { show: "show", entries: "entries", backgroundStart: "backgroundStart", backgroundEnd: "backgroundEnd" }, outputs: { onClickEntry: "onClickEntry" }, ngImport: i0, template: "@if (show) {\r\n <div\r\n class=\"background-overlay\"\r\n (click)=\"handleClick()\"\r\n [ngClass]=\"show ? 'open' : 'closed'\">\r\n </div>\r\n}\r\n\r\n<aside\r\n id=\"sidebar\"\r\n class=\"sidebar\"\r\n [ngClass]=\"show ? 'open' : 'closed'\"\r\n [ngStyle]=\"{\r\n 'background': 'linear-gradient(to bottom, ' + backgroundStart + ', ' + backgroundEnd + ')'\r\n }\"\r\n>\r\n <ul class=\"entries\">\r\n @for (item of entries; track item.name) {\r\n @if (item.type === 'ENTRY') {\r\n <li>\r\n <a [routerLink]=\"[item.url]\" class=\"entry\" (click)=\"handleClick()\">\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ item.name }}\r\n </a>\r\n </li>\r\n } @else if (item.type === 'SECTION') {\r\n <li class=\"section\">\r\n <div class=\"section-title\" (click)=\"toggleSection(item.name)\">\r\n <fa-icon\r\n [icon]=\"isSectionOpen(item.name) ? faChevronUp : faChevronDown\"\r\n class=\"chevron\"\r\n />\r\n <span>{{ item.name }}</span>\r\n </div>\r\n\r\n @if (isSectionOpen(item.name)) {\r\n <ul class=\"section-entries\">\r\n @for (entry of item.entries; track entry.name) {\r\n <li>\r\n <a\r\n [routerLink]=\"[item.url + '/' + entry.url]\"\r\n class=\"entry\"\r\n (click)=\"handleClick()\"\r\n >\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ entry.name }}\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n }\r\n\r\n </ul>\r\n</aside>\r\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1;display:flex}to{opacity:0;display:none}}div.background-overlay{position:fixed;top:40px;left:0;width:100%;height:calc(100% - 40px);background-color:#000c;transition:all .3s ease-in-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:89}div.background-overlay.closed{opacity:0;visibility:hidden;animation:fadeOut .3s ease-in-out}div.background-overlay.open{opacity:1;visibility:visible;animation:fadeIn .3s ease-in-out}aside.sidebar{border-top:1px solid white;position:fixed;top:40px;height:calc(100% - 40px);overflow-y:auto;width:100%;max-width:400px;padding:40px 0 16px;display:grid;grid-template-rows:auto 1fr auto;gap:10px;box-sizing:border-box;transition:left .3s ease-in-out;box-shadow:-2px 0 55px #0000004d;z-index:90}aside.sidebar.open{left:0}aside.sidebar.closed{left:-100%}aside.sidebar .entries{width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:0}aside.sidebar .entries li{width:100%;box-sizing:border-box}aside.sidebar .entries li .entry{width:100%;margin:0;padding:14px 20px;box-sizing:border-box;background-color:transparent;transition:all .3s ease;color:#fff;text-decoration:none;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px}aside.sidebar .entries li .entry:hover{background-color:#0000004d}aside.sidebar .entries li.section{width:100%;box-sizing:border-box}aside.sidebar .entries li.section .section-title{width:100%;margin:0;padding:14px 20px;color:#fff;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;-webkit-user-select:none;user-select:none;cursor:pointer}aside.sidebar .entries li.section .section-title .chevron{font-size:14px}aside.sidebar .entries li.section .section-title:hover{background-color:#ffffff0d}aside.sidebar .entries li.section .section-entries{border-bottom:1px solid rgba(255,255,255,.5);animation:fadeIn .3s ease-in-out}aside.sidebar .entries li.section .section-entries .entry{padding:14px 20px 14px 30px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] });
|
|
21
30
|
}
|
|
22
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RdndSidebar, decorators: [{
|
|
23
32
|
type: Component,
|
|
24
33
|
args: [{ selector: 'rdnd-sidebar', standalone: true, imports: [
|
|
25
34
|
NgClass,
|
|
35
|
+
NgStyle,
|
|
36
|
+
NgIf,
|
|
37
|
+
NgFor,
|
|
38
|
+
NgTemplateOutlet,
|
|
26
39
|
RouterLink,
|
|
27
40
|
FaIconComponent,
|
|
28
|
-
|
|
29
|
-
], template: "@if (show) {\r\n <div class=\"background-overlay\" (click)=\"handleClick()\" [ngClass]=\"show ? 'open' : 'closed' \"></div>\r\n}\r\n\r\n<aside\r\n id=\"sidebar\"\r\n class=\"sidebar\"\r\n [ngClass]=\"show ? 'open' : 'closed' \"\r\n [ngStyle]=\"{'background': 'linear-gradient(to bottom, ' + backgroundStart + ', ' + backgroundEnd + ')'}\"\r\n>\r\n\r\n <ul class=\"entries\">\r\n\r\n<!-- <li class=\"section-name\">\r\n M\u00F3dulos\r\n </li>-->\r\n\r\n @for (entry of entries; track entry.name) {\r\n <li>\r\n <a [routerLink]=\"[entry.url]\" class=\"entry\" (click)=\"handleClick()\">\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ entry.name }}\r\n </a>\r\n </li>\r\n }\r\n\r\n </ul>\r\n\r\n</aside>\r\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1;display:flex}to{opacity:0;display:none}}div.background-overlay{position:fixed;top:40px;left:0;width:100%;height:calc(100% - 40px);background-color:#000c;transition:all .3s ease-in-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:89}div.background-overlay.closed{opacity:0;visibility:hidden;animation:fadeOut .3s ease-in-out}div.background-overlay.open{opacity:1;visibility:visible;animation:fadeIn .3s ease-in-out}aside.sidebar{border-top:1px solid white;position:fixed;top:40px;height:calc(100% - 40px);overflow-y:auto;width:100%;max-width:400px;padding:40px 0 16px;display:grid;grid-template-rows:auto 1fr auto;gap:10px;box-sizing:border-box;transition:left .3s ease-in-out;box-shadow:-2px 0 55px #0000004d;z-index:90}aside.sidebar.open{left:0}aside.sidebar.closed{left:-100%}aside.sidebar .entries{width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:0}aside.sidebar .entries li{width:100%;box-sizing:border-box}aside.sidebar .entries li.section-name{width:100%;margin:0;padding:14px 20px;color:#fff}aside.sidebar .entries li .entry{width:100%;margin:0;padding:14px 20px;box-sizing:border-box;background-color:transparent;transition:all .3s ease;color:#fff;text-decoration:none;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px}aside.sidebar .entries li .entry:hover{background-color:#0000004d}\n"] }]
|
|
41
|
+
], template: "@if (show) {\r\n <div\r\n class=\"background-overlay\"\r\n (click)=\"handleClick()\"\r\n [ngClass]=\"show ? 'open' : 'closed'\">\r\n </div>\r\n}\r\n\r\n<aside\r\n id=\"sidebar\"\r\n class=\"sidebar\"\r\n [ngClass]=\"show ? 'open' : 'closed'\"\r\n [ngStyle]=\"{\r\n 'background': 'linear-gradient(to bottom, ' + backgroundStart + ', ' + backgroundEnd + ')'\r\n }\"\r\n>\r\n <ul class=\"entries\">\r\n @for (item of entries; track item.name) {\r\n @if (item.type === 'ENTRY') {\r\n <li>\r\n <a [routerLink]=\"[item.url]\" class=\"entry\" (click)=\"handleClick()\">\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ item.name }}\r\n </a>\r\n </li>\r\n } @else if (item.type === 'SECTION') {\r\n <li class=\"section\">\r\n <div class=\"section-title\" (click)=\"toggleSection(item.name)\">\r\n <fa-icon\r\n [icon]=\"isSectionOpen(item.name) ? faChevronUp : faChevronDown\"\r\n class=\"chevron\"\r\n />\r\n <span>{{ item.name }}</span>\r\n </div>\r\n\r\n @if (isSectionOpen(item.name)) {\r\n <ul class=\"section-entries\">\r\n @for (entry of item.entries; track entry.name) {\r\n <li>\r\n <a\r\n [routerLink]=\"[item.url + '/' + entry.url]\"\r\n class=\"entry\"\r\n (click)=\"handleClick()\"\r\n >\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ entry.name }}\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n }\r\n\r\n </ul>\r\n</aside>\r\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1;display:flex}to{opacity:0;display:none}}div.background-overlay{position:fixed;top:40px;left:0;width:100%;height:calc(100% - 40px);background-color:#000c;transition:all .3s ease-in-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:89}div.background-overlay.closed{opacity:0;visibility:hidden;animation:fadeOut .3s ease-in-out}div.background-overlay.open{opacity:1;visibility:visible;animation:fadeIn .3s ease-in-out}aside.sidebar{border-top:1px solid white;position:fixed;top:40px;height:calc(100% - 40px);overflow-y:auto;width:100%;max-width:400px;padding:40px 0 16px;display:grid;grid-template-rows:auto 1fr auto;gap:10px;box-sizing:border-box;transition:left .3s ease-in-out;box-shadow:-2px 0 55px #0000004d;z-index:90}aside.sidebar.open{left:0}aside.sidebar.closed{left:-100%}aside.sidebar .entries{width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:0}aside.sidebar .entries li{width:100%;box-sizing:border-box}aside.sidebar .entries li .entry{width:100%;margin:0;padding:14px 20px;box-sizing:border-box;background-color:transparent;transition:all .3s ease;color:#fff;text-decoration:none;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px}aside.sidebar .entries li .entry:hover{background-color:#0000004d}aside.sidebar .entries li.section{width:100%;box-sizing:border-box}aside.sidebar .entries li.section .section-title{width:100%;margin:0;padding:14px 20px;color:#fff;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;-webkit-user-select:none;user-select:none;cursor:pointer}aside.sidebar .entries li.section .section-title .chevron{font-size:14px}aside.sidebar .entries li.section .section-title:hover{background-color:#ffffff0d}aside.sidebar .entries li.section .section-entries{border-bottom:1px solid rgba(255,255,255,.5);animation:fadeIn .3s ease-in-out}aside.sidebar .entries li.section .section-entries .entry{padding:14px 20px 14px 30px}\n"] }]
|
|
30
42
|
}], propDecorators: { show: [{
|
|
31
43
|
type: Input
|
|
32
44
|
}], entries: [{
|
|
@@ -36,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
36
48
|
}], backgroundEnd: [{
|
|
37
49
|
type: Input
|
|
38
50
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRuZC1zaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlbnRlcmEtcmRuZC9zcmMvbGliL2NvbXBvbmVudHMvcmRuZC1zaWRlYmFyL3JkbmQtc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW50ZXJhLXJkbmQvc3JjL2xpYi9jb21wb25lbnRzL3JkbmQtc2lkZWJhci9yZG5kLXNpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsWUFBWSxFQUNaLGFBQWEsRUFDYixXQUFXLEdBQ1osTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQWtCM0MsTUFBTSxPQUFPLFdBQVc7SUFDYixJQUFJLEdBQVksS0FBSyxDQUFDO0lBQ3RCLE9BQU8sR0FBc0IsRUFBRSxDQUFDO0lBQ2hDLGVBQWUsR0FBVyxTQUFTLENBQUM7SUFDcEMsYUFBYSxHQUFXLFNBQVMsQ0FBQztJQUUzQyxZQUFZLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFFTCxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQzVCLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDOUIsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUU3QyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUVqQyxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0lBRUYsYUFBYSxDQUFDLElBQVk7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBWTtRQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7d0dBMUJVLFdBQVc7NEZBQVgsV0FBVyxxT0MxQnhCLDR1REF5REEsOG1FRDFDSSxPQUFPLG9GQUNQLE9BQU8sMkVBSVAsVUFBVSxvT0FDVixlQUFlOzs0RkFLTixXQUFXO2tCQWZ2QixTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxnQkFBZ0I7d0JBQ2hCLFVBQVU7d0JBQ1YsZUFBZTtxQkFDaEI7OEJBS1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIG91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RmFJY29uQ29tcG9uZW50fSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XHJcbmltcG9ydCB7XHJcbiAgZmFBcnJvd1JpZ2h0LFxyXG4gIGZhQ2hldnJvbkRvd24sXHJcbiAgZmFDaGV2cm9uVXAsXHJcbn0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ1N0eWxlLCBOZ0lmLCBOZ0ZvciwgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtSb3V0ZXJMaW5rfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge1JkbmRTaWRlYmFySXRlbX0gZnJvbSBcIi4uLy4uL3R5cGVzL1NpZGViYXIudHlwZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmRuZC1zaWRlYmFyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBOZ1N0eWxlLFxyXG4gICAgTmdJZixcclxuICAgIE5nRm9yLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIFJvdXRlckxpbmssXHJcbiAgICBGYUljb25Db21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmRuZC1zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcmRuZC1zaWRlYmFyLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJkbmRTaWRlYmFyIHtcclxuICBASW5wdXQoKSBzaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZW50cmllczogUmRuZFNpZGViYXJJdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBiYWNrZ3JvdW5kU3RhcnQ6IHN0cmluZyA9ICcjQzIxODVCJztcclxuICBASW5wdXQoKSBiYWNrZ3JvdW5kRW5kOiBzdHJpbmcgPSAnIzdFMDA4Myc7XHJcblxyXG4gIG9uQ2xpY2tFbnRyeSA9IG91dHB1dCgpO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFBcnJvd1JpZ2h0ID0gZmFBcnJvd1JpZ2h0O1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBmYUNoZXZyb25Eb3duID0gZmFDaGV2cm9uRG93bjtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFDaGV2cm9uVXAgPSBmYUNoZXZyb25VcDtcclxuXHJcbiAgb3BlblNlY3Rpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcblxyXG4gIGhhbmRsZUNsaWNrID0gKCkgPT4ge1xyXG4gICAgdGhpcy5vbkNsaWNrRW50cnkuZW1pdCgpO1xyXG4gIH07XHJcblxyXG4gIHRvZ2dsZVNlY3Rpb24obmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wZW5TZWN0aW9ucy5oYXMobmFtZSlcclxuICAgICAgPyB0aGlzLm9wZW5TZWN0aW9ucy5kZWxldGUobmFtZSlcclxuICAgICAgOiB0aGlzLm9wZW5TZWN0aW9ucy5hZGQobmFtZSk7XHJcbiAgfVxyXG5cclxuICBpc1NlY3Rpb25PcGVuKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMub3BlblNlY3Rpb25zLmhhcyhuYW1lKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChzaG93KSB7XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJiYWNrZ3JvdW5kLW92ZXJsYXlcIlxyXG4gICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKClcIlxyXG4gICAgW25nQ2xhc3NdPVwic2hvdyA/ICdvcGVuJyA6ICdjbG9zZWQnXCI+XHJcbiAgPC9kaXY+XHJcbn1cclxuXHJcbjxhc2lkZVxyXG4gIGlkPVwic2lkZWJhclwiXHJcbiAgY2xhc3M9XCJzaWRlYmFyXCJcclxuICBbbmdDbGFzc109XCJzaG93ID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxyXG4gIFtuZ1N0eWxlXT1cIntcclxuICAgICdiYWNrZ3JvdW5kJzogJ2xpbmVhci1ncmFkaWVudCh0byBib3R0b20sICcgKyBiYWNrZ3JvdW5kU3RhcnQgKyAnLCAnICsgYmFja2dyb3VuZEVuZCArICcpJ1xyXG4gIH1cIlxyXG4+XHJcbiAgPHVsIGNsYXNzPVwiZW50cmllc1wiPlxyXG4gICAgQGZvciAoaXRlbSBvZiBlbnRyaWVzOyB0cmFjayBpdGVtLm5hbWUpIHtcclxuICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdFTlRSWScpIHtcclxuICAgICAgICA8bGk+XHJcbiAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbaXRlbS51cmxdXCIgY2xhc3M9XCJlbnRyeVwiIChjbGljayk9XCJoYW5kbGVDbGljaygpXCI+XHJcbiAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhQXJyb3dSaWdodFwiLz5cclxuICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgfSBAZWxzZSBpZiAoaXRlbS50eXBlID09PSAnU0VDVElPTicpIHtcclxuICAgICAgICA8bGkgY2xhc3M9XCJzZWN0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiIChjbGljayk9XCJ0b2dnbGVTZWN0aW9uKGl0ZW0ubmFtZSlcIj5cclxuICAgICAgICAgICAgPGZhLWljb25cclxuICAgICAgICAgICAgICBbaWNvbl09XCJpc1NlY3Rpb25PcGVuKGl0ZW0ubmFtZSkgPyBmYUNoZXZyb25VcCA6IGZhQ2hldnJvbkRvd25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hldnJvblwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIEBpZiAoaXNTZWN0aW9uT3BlbihpdGVtLm5hbWUpKSB7XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInNlY3Rpb24tZW50cmllc1wiPlxyXG4gICAgICAgICAgICAgIEBmb3IgKGVudHJ5IG9mIGl0ZW0uZW50cmllczsgdHJhY2sgZW50cnkubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIltpdGVtLnVybCArICcvJyArIGVudHJ5LnVybF1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZW50cnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhQXJyb3dSaWdodFwiLz5cclxuICAgICAgICAgICAgICAgICAgICB7eyBlbnRyeS5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgPC91bD5cclxuPC9hc2lkZT5cclxuIl19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class StorageService {
|
|
4
|
+
constructor() {
|
|
5
|
+
}
|
|
6
|
+
save(key, value) {
|
|
7
|
+
sessionStorage.setItem(key, JSON.stringify(value));
|
|
8
|
+
}
|
|
9
|
+
;
|
|
10
|
+
get(key) {
|
|
11
|
+
const data = sessionStorage.getItem(key);
|
|
12
|
+
if (data !== null) {
|
|
13
|
+
return JSON.parse(data);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
delete(key) {
|
|
20
|
+
sessionStorage.removeItem(key);
|
|
21
|
+
}
|
|
22
|
+
wipe() {
|
|
23
|
+
sessionStorage.clear();
|
|
24
|
+
}
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
26
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageService, providedIn: 'root' });
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageService, decorators: [{
|
|
29
|
+
type: Injectable,
|
|
30
|
+
args: [{
|
|
31
|
+
providedIn: 'root'
|
|
32
|
+
}]
|
|
33
|
+
}], ctorParameters: () => [] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VudGVyYS1yZG5kL3NyYy9saWIvc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBS3pDLE1BQU0sT0FBTyxjQUFjO0lBRXpCO0lBQ0EsQ0FBQztJQUVNLElBQUksQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUNqQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUFBLENBQUM7SUFFSyxHQUFHLENBQUMsR0FBVztRQUNwQixNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsR0FBVztRQUN2QixjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDTSxJQUFJO1FBQ1QsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBdkJVLGNBQWM7NEdBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGdldChrZXk6IHN0cmluZyk6IEpTT04gfCBudWxsIHtcclxuICAgIGNvbnN0IGRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSk7XHJcbiAgICBpZiAoZGF0YSAhPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG4gIH1cclxuICBwdWJsaWMgd2lwZSgpOiB2b2lkIHtcclxuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhci50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlbnRlcmEtcmRuZC9zcmMvbGliL3R5cGVzL1NpZGViYXIudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUmRuZFNpZGViYXJJdGVtIHtcclxuICB0eXBlOiAnRU5UUlknIHwgJ1NFQ1RJT04nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB1cmw6IHN0cmluZztcclxuICBlbnRyaWVzPzogUmRuZFNpZGViYXJJdGVtW107XHJcbn1cclxuIl19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -4,12 +4,15 @@
|
|
|
4
4
|
export * from './lib/components/screen-title/screen-title.component';
|
|
5
5
|
export * from "./lib/components/rdnd-navbar/rdnd-navbar.component";
|
|
6
6
|
export * from "./lib/components/rdnd-sidebar/rdnd-sidebar.component";
|
|
7
|
+
// Components with its corresponding service handlers
|
|
7
8
|
export * from './lib/components/button/button.component';
|
|
8
|
-
export * from './lib/components/input/input.component';
|
|
9
|
-
export * from './lib/components/modal/modal.component';
|
|
10
9
|
export * from './lib/hooks/button.service';
|
|
10
|
+
export * from './lib/components/input/input.component';
|
|
11
11
|
export * from './lib/hooks/input.service';
|
|
12
|
+
export * from './lib/components/modal/modal.component';
|
|
12
13
|
export * from './lib/hooks/modal.service';
|
|
14
|
+
// Export services
|
|
15
|
+
export * from './lib/services/storage.service';
|
|
13
16
|
// Export utils
|
|
14
17
|
export { themes as rdndThemes } from './lib/styles/themes';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dlbnRlcmEtcmRuZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHNEQUFzRCxDQUFDO0FBRXJFLHFEQUFxRDtBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxrQkFBa0I7QUFDbEIsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxlQUFlO0FBQ2YsT0FBTyxFQUFDLE1BQU0sSUFBSSxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBnZW50ZXJhLXJkbmRcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NjcmVlbi10aXRsZS9zY3JlZW4tdGl0bGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvcmRuZC1uYXZiYXIvcmRuZC1uYXZiYXIuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3JkbmQtc2lkZWJhci9yZG5kLXNpZGViYXIuY29tcG9uZW50XCI7XHJcblxyXG4vLyBDb21wb25lbnRzIHdpdGggaXRzIGNvcnJlc3BvbmRpbmcgc2VydmljZSBoYW5kbGVyc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaG9va3MvYnV0dG9uLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ob29rcy9pbnB1dC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaG9va3MvbW9kYWwuc2VydmljZSc7XHJcblxyXG4vLyBFeHBvcnQgc2VydmljZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbi8vIEV4cG9ydCB1dGlsc1xyXG5leHBvcnQge3RoZW1lcyBhcyByZG5kVGhlbWVzfSBmcm9tICcuL2xpYi9zdHlsZXMvdGhlbWVzJztcclxuXHJcblxyXG4vLyBFeHBvcnQgdHlwZXNcclxuZXhwb3J0IHtSZG5kU2lkZWJhckl0ZW19IGZyb20gXCIuL2xpYi90eXBlcy9TaWRlYmFyLnR5cGVzXCI7XHJcbiJdfQ==
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, Input, output, Injectable, EventEmitter, Output } from '@angular/core';
|
|
3
|
-
import { NgStyle, NgClass, NgIf, CommonModule } from '@angular/common';
|
|
3
|
+
import { NgStyle, NgClass, NgIf, NgFor, NgTemplateOutlet, CommonModule } from '@angular/common';
|
|
4
4
|
import * as i2 from '@fortawesome/angular-fontawesome';
|
|
5
5
|
import { FaIconComponent, FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
6
|
-
import { faBarsStaggered, faSignOut, faTimes, faArrowRight, faEyeSlash, faCircleCheck, faCircleQuestion } from '@fortawesome/free-solid-svg-icons';
|
|
6
|
+
import { faBarsStaggered, faSignOut, faTimes, faArrowRight, faChevronDown, faChevronUp, faEyeSlash, faCircleCheck, faCircleQuestion } from '@fortawesome/free-solid-svg-icons';
|
|
7
7
|
import { RouterLink } from '@angular/router';
|
|
8
8
|
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
9
9
|
import * as i3 from '@angular/forms';
|
|
@@ -128,28 +128,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
128
128
|
}] } });
|
|
129
129
|
|
|
130
130
|
class RdndSidebar {
|
|
131
|
-
// Icons
|
|
132
|
-
faArrowRight = faArrowRight;
|
|
133
|
-
// Inputs & Outputs
|
|
134
131
|
show = false;
|
|
135
132
|
entries = [];
|
|
136
|
-
backgroundStart =
|
|
137
|
-
backgroundEnd =
|
|
133
|
+
backgroundStart = '#C2185B';
|
|
134
|
+
backgroundEnd = '#7E0083';
|
|
138
135
|
onClickEntry = output();
|
|
136
|
+
faArrowRight = faArrowRight;
|
|
137
|
+
faChevronDown = faChevronDown;
|
|
138
|
+
faChevronUp = faChevronUp;
|
|
139
|
+
openSections = new Set();
|
|
139
140
|
handleClick = () => {
|
|
140
141
|
this.onClickEntry.emit();
|
|
141
142
|
};
|
|
143
|
+
toggleSection(name) {
|
|
144
|
+
this.openSections.has(name)
|
|
145
|
+
? this.openSections.delete(name)
|
|
146
|
+
: this.openSections.add(name);
|
|
147
|
+
}
|
|
148
|
+
isSectionOpen(name) {
|
|
149
|
+
return this.openSections.has(name);
|
|
150
|
+
}
|
|
142
151
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RdndSidebar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
143
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RdndSidebar, isStandalone: true, selector: "rdnd-sidebar", inputs: { show: "show", entries: "entries", backgroundStart: "backgroundStart", backgroundEnd: "backgroundEnd" }, outputs: { onClickEntry: "onClickEntry" }, ngImport: i0, template: "@if (show) {\r\n <div
|
|
152
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RdndSidebar, isStandalone: true, selector: "rdnd-sidebar", inputs: { show: "show", entries: "entries", backgroundStart: "backgroundStart", backgroundEnd: "backgroundEnd" }, outputs: { onClickEntry: "onClickEntry" }, ngImport: i0, template: "@if (show) {\r\n <div\r\n class=\"background-overlay\"\r\n (click)=\"handleClick()\"\r\n [ngClass]=\"show ? 'open' : 'closed'\">\r\n </div>\r\n}\r\n\r\n<aside\r\n id=\"sidebar\"\r\n class=\"sidebar\"\r\n [ngClass]=\"show ? 'open' : 'closed'\"\r\n [ngStyle]=\"{\r\n 'background': 'linear-gradient(to bottom, ' + backgroundStart + ', ' + backgroundEnd + ')'\r\n }\"\r\n>\r\n <ul class=\"entries\">\r\n @for (item of entries; track item.name) {\r\n @if (item.type === 'ENTRY') {\r\n <li>\r\n <a [routerLink]=\"[item.url]\" class=\"entry\" (click)=\"handleClick()\">\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ item.name }}\r\n </a>\r\n </li>\r\n } @else if (item.type === 'SECTION') {\r\n <li class=\"section\">\r\n <div class=\"section-title\" (click)=\"toggleSection(item.name)\">\r\n <fa-icon\r\n [icon]=\"isSectionOpen(item.name) ? faChevronUp : faChevronDown\"\r\n class=\"chevron\"\r\n />\r\n <span>{{ item.name }}</span>\r\n </div>\r\n\r\n @if (isSectionOpen(item.name)) {\r\n <ul class=\"section-entries\">\r\n @for (entry of item.entries; track entry.name) {\r\n <li>\r\n <a\r\n [routerLink]=\"[item.url + '/' + entry.url]\"\r\n class=\"entry\"\r\n (click)=\"handleClick()\"\r\n >\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ entry.name }}\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n }\r\n\r\n </ul>\r\n</aside>\r\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1;display:flex}to{opacity:0;display:none}}div.background-overlay{position:fixed;top:40px;left:0;width:100%;height:calc(100% - 40px);background-color:#000c;transition:all .3s ease-in-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:89}div.background-overlay.closed{opacity:0;visibility:hidden;animation:fadeOut .3s ease-in-out}div.background-overlay.open{opacity:1;visibility:visible;animation:fadeIn .3s ease-in-out}aside.sidebar{border-top:1px solid white;position:fixed;top:40px;height:calc(100% - 40px);overflow-y:auto;width:100%;max-width:400px;padding:40px 0 16px;display:grid;grid-template-rows:auto 1fr auto;gap:10px;box-sizing:border-box;transition:left .3s ease-in-out;box-shadow:-2px 0 55px #0000004d;z-index:90}aside.sidebar.open{left:0}aside.sidebar.closed{left:-100%}aside.sidebar .entries{width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:0}aside.sidebar .entries li{width:100%;box-sizing:border-box}aside.sidebar .entries li .entry{width:100%;margin:0;padding:14px 20px;box-sizing:border-box;background-color:transparent;transition:all .3s ease;color:#fff;text-decoration:none;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px}aside.sidebar .entries li .entry:hover{background-color:#0000004d}aside.sidebar .entries li.section{width:100%;box-sizing:border-box}aside.sidebar .entries li.section .section-title{width:100%;margin:0;padding:14px 20px;color:#fff;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;-webkit-user-select:none;user-select:none;cursor:pointer}aside.sidebar .entries li.section .section-title .chevron{font-size:14px}aside.sidebar .entries li.section .section-title:hover{background-color:#ffffff0d}aside.sidebar .entries li.section .section-entries{border-bottom:1px solid rgba(255,255,255,.5);animation:fadeIn .3s ease-in-out}aside.sidebar .entries li.section .section-entries .entry{padding:14px 20px 14px 30px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] });
|
|
144
153
|
}
|
|
145
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RdndSidebar, decorators: [{
|
|
146
155
|
type: Component,
|
|
147
156
|
args: [{ selector: 'rdnd-sidebar', standalone: true, imports: [
|
|
148
157
|
NgClass,
|
|
158
|
+
NgStyle,
|
|
159
|
+
NgIf,
|
|
160
|
+
NgFor,
|
|
161
|
+
NgTemplateOutlet,
|
|
149
162
|
RouterLink,
|
|
150
163
|
FaIconComponent,
|
|
151
|
-
|
|
152
|
-
], template: "@if (show) {\r\n <div class=\"background-overlay\" (click)=\"handleClick()\" [ngClass]=\"show ? 'open' : 'closed' \"></div>\r\n}\r\n\r\n<aside\r\n id=\"sidebar\"\r\n class=\"sidebar\"\r\n [ngClass]=\"show ? 'open' : 'closed' \"\r\n [ngStyle]=\"{'background': 'linear-gradient(to bottom, ' + backgroundStart + ', ' + backgroundEnd + ')'}\"\r\n>\r\n\r\n <ul class=\"entries\">\r\n\r\n<!-- <li class=\"section-name\">\r\n M\u00F3dulos\r\n </li>-->\r\n\r\n @for (entry of entries; track entry.name) {\r\n <li>\r\n <a [routerLink]=\"[entry.url]\" class=\"entry\" (click)=\"handleClick()\">\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ entry.name }}\r\n </a>\r\n </li>\r\n }\r\n\r\n </ul>\r\n\r\n</aside>\r\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1;display:flex}to{opacity:0;display:none}}div.background-overlay{position:fixed;top:40px;left:0;width:100%;height:calc(100% - 40px);background-color:#000c;transition:all .3s ease-in-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:89}div.background-overlay.closed{opacity:0;visibility:hidden;animation:fadeOut .3s ease-in-out}div.background-overlay.open{opacity:1;visibility:visible;animation:fadeIn .3s ease-in-out}aside.sidebar{border-top:1px solid white;position:fixed;top:40px;height:calc(100% - 40px);overflow-y:auto;width:100%;max-width:400px;padding:40px 0 16px;display:grid;grid-template-rows:auto 1fr auto;gap:10px;box-sizing:border-box;transition:left .3s ease-in-out;box-shadow:-2px 0 55px #0000004d;z-index:90}aside.sidebar.open{left:0}aside.sidebar.closed{left:-100%}aside.sidebar .entries{width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:0}aside.sidebar .entries li{width:100%;box-sizing:border-box}aside.sidebar .entries li.section-name{width:100%;margin:0;padding:14px 20px;color:#fff}aside.sidebar .entries li .entry{width:100%;margin:0;padding:14px 20px;box-sizing:border-box;background-color:transparent;transition:all .3s ease;color:#fff;text-decoration:none;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px}aside.sidebar .entries li .entry:hover{background-color:#0000004d}\n"] }]
|
|
164
|
+
], template: "@if (show) {\r\n <div\r\n class=\"background-overlay\"\r\n (click)=\"handleClick()\"\r\n [ngClass]=\"show ? 'open' : 'closed'\">\r\n </div>\r\n}\r\n\r\n<aside\r\n id=\"sidebar\"\r\n class=\"sidebar\"\r\n [ngClass]=\"show ? 'open' : 'closed'\"\r\n [ngStyle]=\"{\r\n 'background': 'linear-gradient(to bottom, ' + backgroundStart + ', ' + backgroundEnd + ')'\r\n }\"\r\n>\r\n <ul class=\"entries\">\r\n @for (item of entries; track item.name) {\r\n @if (item.type === 'ENTRY') {\r\n <li>\r\n <a [routerLink]=\"[item.url]\" class=\"entry\" (click)=\"handleClick()\">\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ item.name }}\r\n </a>\r\n </li>\r\n } @else if (item.type === 'SECTION') {\r\n <li class=\"section\">\r\n <div class=\"section-title\" (click)=\"toggleSection(item.name)\">\r\n <fa-icon\r\n [icon]=\"isSectionOpen(item.name) ? faChevronUp : faChevronDown\"\r\n class=\"chevron\"\r\n />\r\n <span>{{ item.name }}</span>\r\n </div>\r\n\r\n @if (isSectionOpen(item.name)) {\r\n <ul class=\"section-entries\">\r\n @for (entry of item.entries; track entry.name) {\r\n <li>\r\n <a\r\n [routerLink]=\"[item.url + '/' + entry.url]\"\r\n class=\"entry\"\r\n (click)=\"handleClick()\"\r\n >\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ entry.name }}\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n }\r\n\r\n </ul>\r\n</aside>\r\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1;display:flex}to{opacity:0;display:none}}div.background-overlay{position:fixed;top:40px;left:0;width:100%;height:calc(100% - 40px);background-color:#000c;transition:all .3s ease-in-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:89}div.background-overlay.closed{opacity:0;visibility:hidden;animation:fadeOut .3s ease-in-out}div.background-overlay.open{opacity:1;visibility:visible;animation:fadeIn .3s ease-in-out}aside.sidebar{border-top:1px solid white;position:fixed;top:40px;height:calc(100% - 40px);overflow-y:auto;width:100%;max-width:400px;padding:40px 0 16px;display:grid;grid-template-rows:auto 1fr auto;gap:10px;box-sizing:border-box;transition:left .3s ease-in-out;box-shadow:-2px 0 55px #0000004d;z-index:90}aside.sidebar.open{left:0}aside.sidebar.closed{left:-100%}aside.sidebar .entries{width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:0}aside.sidebar .entries li{width:100%;box-sizing:border-box}aside.sidebar .entries li .entry{width:100%;margin:0;padding:14px 20px;box-sizing:border-box;background-color:transparent;transition:all .3s ease;color:#fff;text-decoration:none;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px}aside.sidebar .entries li .entry:hover{background-color:#0000004d}aside.sidebar .entries li.section{width:100%;box-sizing:border-box}aside.sidebar .entries li.section .section-title{width:100%;margin:0;padding:14px 20px;color:#fff;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;-webkit-user-select:none;user-select:none;cursor:pointer}aside.sidebar .entries li.section .section-title .chevron{font-size:14px}aside.sidebar .entries li.section .section-title:hover{background-color:#ffffff0d}aside.sidebar .entries li.section .section-entries{border-bottom:1px solid rgba(255,255,255,.5);animation:fadeIn .3s ease-in-out}aside.sidebar .entries li.section .section-entries .entry{padding:14px 20px 14px 30px}\n"] }]
|
|
153
165
|
}], propDecorators: { show: [{
|
|
154
166
|
type: Input
|
|
155
167
|
}], entries: [{
|
|
@@ -481,7 +493,7 @@ class RdndInput {
|
|
|
481
493
|
this.onBlur.emit(event);
|
|
482
494
|
}
|
|
483
495
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RdndInput, deps: [{ token: InputService }], target: i0.ɵɵFactoryTarget.Component });
|
|
484
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RdndInput, isStandalone: true, selector: "rdnd-input", inputs: { id: "id", name: "name", type: "type", placeholder: "placeholder", value: "value", validators: "validators", disabled: "disabled" }, outputs: { valueChange: "valueChange", onKeyDown: "onKeyDown", onPaste: "onPaste", onFocus: "onFocus", onBlur: "onBlur" }, ngImport: i0, template: "<div [ngClass]=\"{ 'disabled': disabled }\" class=\"input-container\">\r\n
|
|
496
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RdndInput, isStandalone: true, selector: "rdnd-input", inputs: { id: "id", name: "name", type: "type", placeholder: "placeholder", value: "value", validators: "validators", disabled: "disabled" }, outputs: { valueChange: "valueChange", onKeyDown: "onKeyDown", onPaste: "onPaste", onFocus: "onFocus", onBlur: "onBlur" }, ngImport: i0, template: " <div [ngClass]=\"{ 'disabled': disabled }\" class=\"input-container\">\r\n <!-- \u00CDcono de error que aparece por encima del campo si hay error -->\r\n <span *ngIf=\"hasError()\" class=\"error-icon\" (click)=\"toggleErrorDisplay()\">ⓘ</span>\r\n\r\n <!-- Bot\u00F3n de mostrar/ocultar contrase\u00F1a centrado verticalmente -->\r\n <button *ngIf=\"type === 'password'\" type=\"button\" (click)=\"handleTogglePassword()\" class=\"toggle-button\">\r\n <fa-icon [icon]=\"faEyeSlash\" class=\"icon\" [class.active]=\"showPassword\"></fa-icon>\r\n </button>\r\n\r\n <!-- Input que cambia de borde si tiene error -->\r\n <input\r\n [type]=\"type === 'password' && showPassword ? 'text' : type\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"handleKeyDown($event)\"\r\n (paste)=\"handlePaste($event)\"\r\n (focus)=\"handleFocus($event)\"\r\n (blur)=\"handleBlur($event)\"\r\n [ngClass]=\"{ 'error-border': hasError() }\"\r\n />\r\n\r\n <!-- Mensaje de error que aparece solo cuando se clickea en el \u00EDcono de error -->\r\n <div *ngIf=\"control.invalid && control.dirty && showError\" class=\"error-message\">\r\n {{ getErrorMessage() }}\r\n </div>\r\n </div>\r\n", styles: [".input-container{width:100%;min-width:100%;box-sizing:border-box;position:relative;display:block}input{position:relative;width:100%;min-width:100%;padding:7px 35px 7px 8px;border-radius:3px;font-family:Poppins,sans-serif;height:40px;font-size:16px;border:1px solid #ccc;outline:none;box-sizing:border-box;transition:all .3s ease;background-color:#fff!important;appearance:none;-moz-appearance:textfield;-webkit-appearance:textfield}input:-webkit-autofill{background-color:#fff!important}input.error-border{border-color:red}input:focus{border:1px solid blue}.error-icon{position:absolute;right:8px;top:1px;bottom:1px;font-size:24px;color:red;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:3;background-color:#fff}.error-message{position:absolute;bottom:0;left:0;color:red;padding:0 0 0 8px;border-radius:4px;font-size:12px;font-family:sans-serif;white-space:nowrap}.toggle-button{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;z-index:2}.icon{transition:opacity .3s ease}.icon.active{opacity:.5}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
485
497
|
}
|
|
486
498
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RdndInput, decorators: [{
|
|
487
499
|
type: Component,
|
|
@@ -490,7 +502,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
490
502
|
NgClass,
|
|
491
503
|
FontAwesomeModule,
|
|
492
504
|
ReactiveFormsModule
|
|
493
|
-
], template: "<div [ngClass]=\"{ 'disabled': disabled }\" class=\"input-container\">\r\n
|
|
505
|
+
], template: " <div [ngClass]=\"{ 'disabled': disabled }\" class=\"input-container\">\r\n <!-- \u00CDcono de error que aparece por encima del campo si hay error -->\r\n <span *ngIf=\"hasError()\" class=\"error-icon\" (click)=\"toggleErrorDisplay()\">ⓘ</span>\r\n\r\n <!-- Bot\u00F3n de mostrar/ocultar contrase\u00F1a centrado verticalmente -->\r\n <button *ngIf=\"type === 'password'\" type=\"button\" (click)=\"handleTogglePassword()\" class=\"toggle-button\">\r\n <fa-icon [icon]=\"faEyeSlash\" class=\"icon\" [class.active]=\"showPassword\"></fa-icon>\r\n </button>\r\n\r\n <!-- Input que cambia de borde si tiene error -->\r\n <input\r\n [type]=\"type === 'password' && showPassword ? 'text' : type\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"handleKeyDown($event)\"\r\n (paste)=\"handlePaste($event)\"\r\n (focus)=\"handleFocus($event)\"\r\n (blur)=\"handleBlur($event)\"\r\n [ngClass]=\"{ 'error-border': hasError() }\"\r\n />\r\n\r\n <!-- Mensaje de error que aparece solo cuando se clickea en el \u00EDcono de error -->\r\n <div *ngIf=\"control.invalid && control.dirty && showError\" class=\"error-message\">\r\n {{ getErrorMessage() }}\r\n </div>\r\n </div>\r\n", styles: [".input-container{width:100%;min-width:100%;box-sizing:border-box;position:relative;display:block}input{position:relative;width:100%;min-width:100%;padding:7px 35px 7px 8px;border-radius:3px;font-family:Poppins,sans-serif;height:40px;font-size:16px;border:1px solid #ccc;outline:none;box-sizing:border-box;transition:all .3s ease;background-color:#fff!important;appearance:none;-moz-appearance:textfield;-webkit-appearance:textfield}input:-webkit-autofill{background-color:#fff!important}input.error-border{border-color:red}input:focus{border:1px solid blue}.error-icon{position:absolute;right:8px;top:1px;bottom:1px;font-size:24px;color:red;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:3;background-color:#fff}.error-message{position:absolute;bottom:0;left:0;color:red;padding:0 0 0 8px;border-radius:4px;font-size:12px;font-family:sans-serif;white-space:nowrap}.toggle-button{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;z-index:2}.icon{transition:opacity .3s ease}.icon.active{opacity:.5}\n"] }]
|
|
494
506
|
}], ctorParameters: () => [{ type: InputService }], propDecorators: { id: [{
|
|
495
507
|
type: Input
|
|
496
508
|
}], name: [{
|
|
@@ -633,6 +645,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
633
645
|
args: [{ providedIn: 'root' }]
|
|
634
646
|
}], ctorParameters: () => [{ type: i0.ApplicationRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }] });
|
|
635
647
|
|
|
648
|
+
class StorageService {
|
|
649
|
+
constructor() {
|
|
650
|
+
}
|
|
651
|
+
save(key, value) {
|
|
652
|
+
sessionStorage.setItem(key, JSON.stringify(value));
|
|
653
|
+
}
|
|
654
|
+
;
|
|
655
|
+
get(key) {
|
|
656
|
+
const data = sessionStorage.getItem(key);
|
|
657
|
+
if (data !== null) {
|
|
658
|
+
return JSON.parse(data);
|
|
659
|
+
}
|
|
660
|
+
else {
|
|
661
|
+
return null;
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
delete(key) {
|
|
665
|
+
sessionStorage.removeItem(key);
|
|
666
|
+
}
|
|
667
|
+
wipe() {
|
|
668
|
+
sessionStorage.clear();
|
|
669
|
+
}
|
|
670
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
671
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageService, providedIn: 'root' });
|
|
672
|
+
}
|
|
673
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageService, decorators: [{
|
|
674
|
+
type: Injectable,
|
|
675
|
+
args: [{
|
|
676
|
+
providedIn: 'root'
|
|
677
|
+
}]
|
|
678
|
+
}], ctorParameters: () => [] });
|
|
679
|
+
|
|
636
680
|
/*
|
|
637
681
|
* Public API Surface of gentera-rdnd
|
|
638
682
|
*/
|
|
@@ -641,5 +685,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
641
685
|
* Generated bundle index. Do not edit.
|
|
642
686
|
*/
|
|
643
687
|
|
|
644
|
-
export { ButtonService, InputService, ModalService, RdndButton, RdndInput, RdndModal, RdndNavbar, RdndScreenTitle, RdndSidebar, themes as rdndThemes };
|
|
688
|
+
export { ButtonService, InputService, ModalService, RdndButton, RdndInput, RdndModal, RdndNavbar, RdndScreenTitle, RdndSidebar, StorageService, themes as rdndThemes };
|
|
645
689
|
//# sourceMappingURL=gentera-rdnd.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gentera-rdnd.mjs","sources":["../../../projects/gentera-rdnd/src/lib/styles/colors.ts","../../../projects/gentera-rdnd/src/lib/components/screen-title/screen-title.component.ts","../../../projects/gentera-rdnd/src/lib/components/screen-title/screen-title.component.html","../../../projects/gentera-rdnd/src/lib/components/rdnd-navbar/rdnd-navbar.component.ts","../../../projects/gentera-rdnd/src/lib/components/rdnd-navbar/rdnd-navbar.component.html","../../../projects/gentera-rdnd/src/lib/components/rdnd-sidebar/rdnd-sidebar.component.ts","../../../projects/gentera-rdnd/src/lib/components/rdnd-sidebar/rdnd-sidebar.component.html","../../../projects/gentera-rdnd/src/lib/styles/themes.ts","../../../projects/gentera-rdnd/src/lib/hooks/button.service.ts","../../../projects/gentera-rdnd/src/lib/components/button/button.component.ts","../../../projects/gentera-rdnd/src/lib/components/button/button.component.html","../../../projects/gentera-rdnd/src/lib/hooks/input.service.ts","../../../projects/gentera-rdnd/src/lib/components/input/input.component.ts","../../../projects/gentera-rdnd/src/lib/components/input/input.component.html","../../../projects/gentera-rdnd/src/lib/components/modal/modal.component.ts","../../../projects/gentera-rdnd/src/lib/components/modal/modal.component.html","../../../projects/gentera-rdnd/src/lib/hooks/modal.service.ts","../../../projects/gentera-rdnd/src/public-api.ts","../../../projects/gentera-rdnd/src/gentera-rdnd.ts"],"sourcesContent":["export const colors = {\r\n black: '#171717',\r\n 'black-light': '#343434',\r\n 'black-dark': '#000000',\r\n 'black-navy': '#191a21',\r\n\r\n 'xs-dark-gray': '#5A5A5A',\r\n 'dark-gray': '#9E9E9E',\r\n 'medium-gray': '#AFAFAF',\r\n gray: '#C4C4C4',\r\n 'light-gray': '#C6C6C6',\r\n 'xs-light-gray': '#DFDFDF',\r\n 'xxs-light-gray': '#F2F2F2',\r\n 'soft-white': '#EEEEEE',\r\n\r\n green: '#28a746',\r\n 'green-medium': '#208B6A',\r\n 'green-dark': '#156a29',\r\n 'green-xs-dark': 'rgb(33, 97, 90)',\r\n 'green-1': '#009F74',\r\n 'green-2': '#00B987',\r\n 'green-3': '#19C496',\r\n 'green-light': '#84ce94',\r\n 'green-4': '#50D8B3',\r\n 'green-5': '#83E6B8',\r\n\r\n \"blue-info\": '#7390EC',\r\n blue: '#3360fa',\r\n 'blue-dark': '#1a389e',\r\n 'blue-light': '#3390fa',\r\n 'blue-gray-soft': '#E5EAEDFF',\r\n 'blue-gray-light': 'rgb(244,247,250)',\r\n\r\n orange: '#F77C00',\r\n 'orange-light': '#F7B500',\r\n\r\n yellow: '#F09D00',\r\n \"yellow-normal\": '#FFBC57',\r\n 'yellow-light': '#FFC400',\r\n\r\n purple: '#6459be',\r\n 'purple-light': 'rgb(149, 138, 242)',\r\n\r\n red: '#E60018',\r\n 'red-light': '#e74364',\r\n 'red-medium': '#c51628',\r\n\r\n \"white\": \"#FFFFFF\",\r\n \"magentaStart\": \"#C2185B\",\r\n \"magentaEnd\": \"#7E0083\",\r\n 'magenta-normal': '#B41364',\r\n\r\n disabled: '#C6C6C6',\r\n \"disabledText\": \"#9E9E9E\",\r\n};\r\n","import {Component, Input} from '@angular/core';\r\nimport {NgClass, NgStyle} from \"@angular/common\";\r\nimport {colors} from \"../../styles/colors\";\r\n\r\n@Component({\r\n selector: 'rdnd-screen-title',\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n NgStyle\r\n ],\r\n templateUrl: './screen-title.component.html',\r\n styleUrl: './screen-title.component.scss'\r\n})\r\nexport class RdndScreenTitle {\r\n @Input() title!: string;\r\n @Input() align: 'LEFT' | 'CENTER' = 'CENTER';\r\n @Input() color = colors[\"magentaEnd\"];\r\n\r\n}\r\n","<h1 [class]=\" 'align-' + align \" [ngStyle]=\"{\r\n color: color\r\n}\">\r\n {{ title }}\r\n</h1>\r\n","import {Component, Input, output} from '@angular/core';\r\n\r\n// Icons\r\nimport {FaIconComponent} from \"@fortawesome/angular-fontawesome\";\r\nimport {\r\n faBarsStaggered,\r\n faCircle,\r\n faSignOut,\r\n faTimes\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {NgStyle} from \"@angular/common\";\r\nimport {RouterLink} from \"@angular/router\";\r\n\r\n@Component({\r\n selector: 'rdnd-navbar',\r\n standalone: true,\r\n imports: [\r\n FaIconComponent,\r\n NgStyle,\r\n RouterLink\r\n ],\r\n templateUrl: './rdnd-navbar.component.html',\r\n styleUrl: './rdnd-navbar.component.scss'\r\n})\r\nexport class RdndNavbar {\r\n\r\n // Icons\r\n protected readonly faBarsStaggered = faBarsStaggered;\r\n protected readonly faSignOut = faSignOut;\r\n protected readonly faTimes = faTimes;\r\n\r\n // States\r\n showLoader = false;\r\n\r\n // Inputs & Outputs\r\n @Input() userName: string = \"\";\r\n @Input() imageUrl: string = \"\";\r\n @Input() backgroundStart: string = \"#C2185B\";\r\n @Input() backgroundEnd: string = \"#7E0083\";\r\n @Input() showSidebar = false;\r\n onSignOut = output();\r\n onToggleSidebar = output();\r\n\r\n // Functions\r\n toggleMenu = () => {\r\n this.showSidebar = !this.showSidebar;\r\n this.onToggleSidebar.emit();\r\n }\r\n\r\n closeMenu = () => {\r\n this.showSidebar = false;\r\n }\r\n\r\n handleSignOut = () => {\r\n this.onSignOut.emit();\r\n }\r\n\r\n\r\n}\r\n","<nav [ngStyle]=\"{'background': 'linear-gradient(to right, ' + backgroundStart + ', ' + backgroundEnd + ')'}\">\r\n\r\n <div class=\"rdnd-nav-container\">\r\n <button (click)=\"toggleMenu()\" >\r\n <fa-icon [icon]=\"showSidebar ? faTimes : faBarsStaggered\"></fa-icon>\r\n </button>\r\n\r\n @if (imageUrl) {\r\n <a [routerLink]=\"['/']\">\r\n <img src=\"{{imageUrl}}\" alt=\"\">\r\n </a>\r\n }\r\n\r\n <button (click)=\"handleSignOut()\">\r\n <fa-icon [icon]=\"faSignOut\"></fa-icon>\r\n </button>\r\n </div>\r\n\r\n</nav>\r\n","import {Component, Input, output} from '@angular/core';\r\nimport {RdndSidebarEntry} from \"../../types/Sidebar.types\";\r\nimport {outputAst} from \"@angular/compiler\";\r\nimport {FaIconComponent} from \"@fortawesome/angular-fontawesome\";\r\nimport {\r\n faArrowRight,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {NgClass, NgStyle} from \"@angular/common\";\r\nimport {RouterLink} from \"@angular/router\";\r\n\r\n@Component({\r\n selector: 'rdnd-sidebar',\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n RouterLink,\r\n FaIconComponent,\r\n NgStyle\r\n ],\r\n templateUrl: './rdnd-sidebar.component.html',\r\n styleUrl: './rdnd-sidebar.component.scss'\r\n})\r\nexport class RdndSidebar {\r\n\r\n // Icons\r\n protected readonly faArrowRight = faArrowRight;\r\n\r\n // Inputs & Outputs\r\n @Input() show: boolean = false;\r\n @Input() entries : RdndSidebarEntry[] = [];\r\n @Input() backgroundStart: string = \"#C2185B\";\r\n @Input() backgroundEnd: string = \"#7E0083\";\r\n\r\n onClickEntry = output();\r\n\r\n handleClick = () => {\r\n this.onClickEntry.emit();\r\n }\r\n\r\n}\r\n","@if (show) {\r\n <div class=\"background-overlay\" (click)=\"handleClick()\" [ngClass]=\"show ? 'open' : 'closed' \"></div>\r\n}\r\n\r\n<aside\r\n id=\"sidebar\"\r\n class=\"sidebar\"\r\n [ngClass]=\"show ? 'open' : 'closed' \"\r\n [ngStyle]=\"{'background': 'linear-gradient(to bottom, ' + backgroundStart + ', ' + backgroundEnd + ')'}\"\r\n>\r\n\r\n <ul class=\"entries\">\r\n\r\n<!-- <li class=\"section-name\">\r\n Módulos\r\n </li>-->\r\n\r\n @for (entry of entries; track entry.name) {\r\n <li>\r\n <a [routerLink]=\"[entry.url]\" class=\"entry\" (click)=\"handleClick()\">\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ entry.name }}\r\n </a>\r\n </li>\r\n }\r\n\r\n </ul>\r\n\r\n</aside>\r\n","import {colors} from './colors';\r\n\r\nexport const themes = {\r\n disabled: {\r\n default: colors.disabled,\r\n hover: colors.disabled,\r\n border: 'transparent',\r\n active: colors.disabled,\r\n fontColor: colors.disabledText,\r\n },\r\n magenta: {\r\n default: `linear-gradient(to right, ${colors.magentaStart}, ${colors.magentaEnd})`,\r\n hover: `linear-gradient(to right, ${colors.magentaEnd}, ${colors.magentaStart})`,\r\n //default: `${colors.magentaStart}`,\r\n border: 'transparent',\r\n active: colors.magentaStart, // Color al hacer clic\r\n fontColor: colors.white, // Texto en blanco\r\n },\r\n magentaSolid: {\r\n default: `${colors.magentaStart}`,\r\n hover: `${colors.magentaEnd}`,\r\n border: 'transparent',\r\n active: colors.magentaStart, // Color al hacer clic\r\n fontColor: colors.white, // Texto en blanco\r\n },\r\n magentaNormal: {\r\n default: `${colors[\"magenta-normal\"]}`,\r\n hover: `${colors.magentaEnd}`,\r\n border: 'transparent',\r\n active: colors[\"magenta-normal\"], // Color al hacer clic\r\n fontColor: colors.white, // Texto en blanco\r\n },\r\n gray: {\r\n default: `${colors[\"light-gray\"]}`,\r\n hover: `linear-gradient(to right, ${colors.magentaEnd}, ${colors.magentaStart})`,\r\n //default: `${colors.magentaStart}`,\r\n border: 'transparent',\r\n active: colors.magentaStart, // Color al hacer clic\r\n fontColor: colors.white, // Texto en blanco\r\n },\r\n green: {\r\n default: `${colors[\"green-medium\"]}`,\r\n hover: colors.green,\r\n border: 'transparent',\r\n active: colors[\"green-xs-dark\"],\r\n fontColor: colors.white,\r\n },\r\n red: {\r\n default: `${colors[\"red-medium\"]}`,\r\n hover: colors.red,\r\n border: 'transparent',\r\n active: colors[\"red\"],\r\n fontColor: colors.white,\r\n },\r\n bordered: {\r\n default: 'transparent',\r\n hover: 'transparent',\r\n border: colors.magentaStart,\r\n active: 'transparent',\r\n fontColor: colors.magentaStart\r\n },\r\n borderedWhite: {\r\n default: 'white',\r\n hover: 'white',\r\n border: colors.magentaStart,\r\n active: 'white',\r\n fontColor: colors.magentaStart\r\n },\r\n transparent: {\r\n default: 'transparent',\r\n hover: 'transparent',\r\n border: 'transparent',\r\n active: 'transparent',\r\n fontColor: colors.magentaStart\r\n },\r\n purple: {\r\n default: `${colors['blue-info']}`,\r\n hover: colors[\"purple-light\"],\r\n border: 'transparent',\r\n active: colors.purple,\r\n fontColor: colors.white,\r\n },\r\n yellow: {\r\n default: `${colors['yellow-normal']}`,\r\n hover: colors[\"yellow\"],\r\n border: 'transparent',\r\n active: colors[\"yellow-light\"],\r\n fontColor: colors.white,\r\n },\r\n blue: {\r\n default: `${colors['yellow-normal']}`,\r\n hover: colors[\"yellow\"],\r\n border: 'transparent',\r\n active: colors[\"yellow-light\"],\r\n fontColor: colors.white,\r\n }\r\n\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nexport interface ButtonServiceType {\r\n enable: () => void;\r\n disable: () => void;\r\n disabled$: Observable<boolean>\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ButtonService {\r\n private buttonsState: { [id: string]: BehaviorSubject<boolean> } = {};\r\n\r\n private ensureButtonExists(id: string): void {\r\n if (!this.buttonsState[id]) {\r\n this.buttonsState[id] = new BehaviorSubject<boolean>(false);\r\n }\r\n }\r\n\r\n useButton(id: string): ButtonServiceType {\r\n this.ensureButtonExists(id);\r\n\r\n return {\r\n disabled$: this.buttonsState[id].asObservable(),\r\n enable: () => this.buttonsState[id].next(false),\r\n disable: () => this.buttonsState[id].next(true),\r\n };\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\r\nimport {Observable, Subscription} from 'rxjs';\r\nimport {FaIconComponent} from \"@fortawesome/angular-fontawesome\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\n// @ts-ignore\r\nimport {themes} from \"../../styles/themes\";\r\nimport {ButtonService, ButtonServiceType} from \"../../hooks/button.service\";\r\n// @ts-ignore\r\n\r\n\r\n\r\n@Component({\r\n selector: 'rdnd-button',\r\n templateUrl: './button.component.html',\r\n standalone: true,\r\n imports: [\r\n FaIconComponent,\r\n NgIf,\r\n NgClass\r\n ],\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class RdndButton implements OnInit, OnDestroy {\r\n @Input() id!: string;\r\n @Input() icon?: IconDefinition;\r\n @Input() text: string = 'Enviar';\r\n @Input() theme: any = themes.magenta;\r\n @Input() size: 'contained' | 'full' = 'full';\r\n @Input() type: 'button' | 'submit' | 'reset' = 'submit';\r\n @Input() borders: boolean = true;\r\n @Input() disabled: boolean = false;\r\n\r\n @Output() callback: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n protected readonly themes = themes;\r\n private subscription!: Subscription;\r\n hoverBackgroundColor: string = this.theme.default;\r\n\r\n buttonControl!: ButtonServiceType ;\r\n\r\n constructor(private buttonService: ButtonService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buttonControl = this.buttonService.useButton(this.id);\r\n\r\n this.subscription = new Subscription( () =>\r\n this.buttonControl.disabled$.subscribe((isDisabled: boolean) => {\r\n this.disabled = isDisabled;\r\n })\r\n )\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if(this.subscription){\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n handleClick(event: MouseEvent): void {\r\n event.stopPropagation();\r\n if (!this.disabled && this.type !== 'submit') {\r\n this.callback.emit();\r\n }\r\n }\r\n\r\n onMouseEnter() {\r\n if (!this.disabled) {\r\n this.hoverBackgroundColor = this.theme.hover;\r\n }\r\n }\r\n\r\n onMouseLeave() {\r\n if (!this.disabled) {\r\n this.hoverBackgroundColor = this.theme.default;\r\n }\r\n }\r\n\r\n protected readonly event = event;\r\n}\r\n","<button\r\n [ngClass]=\"{\r\n 'full': size === 'full',\r\n 'contained': size === 'contained',\r\n 'bordered': borders,\r\n 'disabled': disabled\r\n }\"\r\n [style.background]=\"disabled ? themes.disabled.default : theme.default\"\r\n [style.color]=\"theme.fontColor\"\r\n [style.border]=\"borders ? '1px solid ' + theme.border : 'none'\"\r\n [style.cursor]=\"disabled ? 'not-allowed' : 'pointer'\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"disabled\"\r\n\r\n (mouseleave)=\"onMouseLeave()\"\r\n (click)=\"handleClick($event)\"\r\n (mouseenter)=\"onMouseEnter()\"\r\n>\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\" class=\"icon\"></fa-icon>\r\n {{ text }}\r\n</button>\r\n","import { Injectable } from '@angular/core';\r\nimport {BehaviorSubject, Observable} from 'rxjs';\r\nimport { FormControl, ValidationErrors } from '@angular/forms';\r\n\r\nexport type InputStateType = {\r\n isValid: BehaviorSubject<boolean>;\r\n valid: Observable<boolean>;\r\n errorMessage: Observable<string | null>;\r\n setValid: (isValid: boolean) => void;\r\n setErrorMessage: (message: string | null) => void;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InputService {\r\n\r\n private inputState: {\r\n [id: string]: {\r\n valid$: BehaviorSubject<boolean>;\r\n errorMessage$: BehaviorSubject<string | null>;\r\n };\r\n } = {};\r\n\r\n private ensureInputExists(id: string): void {\r\n if (!this.inputState[id]) {\r\n this.inputState[id] = {\r\n valid$: new BehaviorSubject<boolean>(false),\r\n errorMessage$: new BehaviorSubject<string | null>(null),\r\n };\r\n }\r\n }\r\n\r\n useInput(id: string): InputStateType {\r\n this.ensureInputExists(id);\r\n\r\n return {\r\n isValid: this.inputState[id].valid$,\r\n valid: this.inputState[id].valid$.asObservable(),\r\n errorMessage: this.inputState[id].errorMessage$.asObservable(),\r\n setValid: (isValid: boolean) => this.inputState[id].valid$.next(isValid),\r\n setErrorMessage: (message: string | null) =>\r\n this.inputState[id].errorMessage$.next(message),\r\n };\r\n }\r\n\r\n updateInputState(control: FormControl, id: string): void {\r\n this.ensureInputExists(id);\r\n\r\n const errors: ValidationErrors | null = control.errors;\r\n\r\n if (control.valid) {\r\n this.inputState[id].valid$.next(true);\r\n this.inputState[id].errorMessage$.next(null);\r\n } else {\r\n this.inputState[id].valid$.next(false);\r\n this.inputState[id].errorMessage$.next(this.getErrorMessage(errors));\r\n }\r\n }\r\n\r\n private getErrorMessage(errors: ValidationErrors | null): string | null {\r\n if (!errors) return null;\r\n\r\n if (errors['required']) return 'Este campo es obligatorio';\r\n if (errors['minlength'])\r\n return `Mínimo ${errors['minlength'].requiredLength} caracteres requeridos`;\r\n if (errors['maxlength'])\r\n return `Máximo ${errors['maxlength'].requiredLength} caracteres permitidos`;\r\n if (errors['email']) return 'Formato de correo inválido';\r\n\r\n return null;\r\n }\r\n}\r\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\r\nimport {FormControl, ReactiveFormsModule, ValidationErrors, ValidatorFn, Validators} from '@angular/forms';\r\nimport {faEyeSlash} from '@fortawesome/free-solid-svg-icons';\r\nimport {NgClass, NgIf} from '@angular/common';\r\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\r\nimport {InputService} from \"../../hooks/input.service\";\r\n\r\n\r\n@Component({\r\n selector: 'rdnd-input',\r\n templateUrl: './input.component.html',\r\n standalone: true,\r\n imports: [\r\n NgIf,\r\n NgClass,\r\n FontAwesomeModule,\r\n ReactiveFormsModule\r\n ],\r\n styleUrls: ['./input.component.scss']\r\n})\r\nexport class RdndInput implements OnInit {\r\n @Input() id!: string;\r\n @Input() name!: string;\r\n @Input() type: 'text' | 'password' | 'number' = 'text';\r\n @Input() placeholder: string = '';\r\n @Input() value: string = '';\r\n @Input() validators: ValidatorFn[] = [];\r\n @Input() disabled: boolean = false;\r\n\r\n @Output() valueChange = new EventEmitter<string>();\r\n @Output() onKeyDown = new EventEmitter<KeyboardEvent>();\r\n @Output() onPaste = new EventEmitter<ClipboardEvent>();\r\n @Output() onFocus = new EventEmitter<FocusEvent>();\r\n @Output() onBlur = new EventEmitter<FocusEvent>();\r\n\r\n control!: FormControl;\r\n faEyeSlash = faEyeSlash;\r\n showPassword: boolean = false;\r\n showError: boolean = false;\r\n\r\n constructor(private inputService: InputService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.control = new FormControl(this.value, this.validators);\r\n\r\n this.valueChange.emit(this.value);\r\n this.inputService.updateInputState(this.control, this.id);\r\n\r\n this.control.valueChanges.subscribe((value) => {\r\n this.valueChange.emit(value);\r\n this.inputService.updateInputState(this.control, this.id);\r\n });\r\n\r\n }\r\n\r\n getErrorMessage(): string | null {\r\n if (this.control && this.control.errors) {\r\n const errorKeys = Object.keys(this.control.errors);\r\n if (errorKeys.length > 0) {\r\n const firstErrorKey = errorKeys[0];\r\n return (this.control.errors as ValidationErrors)[firstErrorKey];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n toggleErrorDisplay() {\r\n this.showError = !this.showError;\r\n }\r\n\r\n hasError(): boolean {\r\n return this.control.invalid && (this.control.dirty || this.control.touched);\r\n }\r\n\r\n handleTogglePassword(): void {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent): void {\r\n const allowRegex = /^[a-zA-Z!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]*$/\r\n\r\n if (\r\n this.type === 'number' && !(\r\n ['Backspace', 'Shift', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.key)\r\n ) && !(event.altKey || event.ctrlKey || event.metaKey || event.shiftKey)\r\n ) {\r\n event.key.match(allowRegex) ? event.preventDefault() : this.onKeyDown.emit(event);\r\n } else {\r\n this.onKeyDown.emit(event);\r\n }\r\n }\r\n\r\n handlePaste(event: ClipboardEvent): void {\r\n this.onPaste.emit(event);\r\n }\r\n\r\n handleFocus(event: FocusEvent): void {\r\n this.onFocus.emit(event);\r\n }\r\n\r\n handleBlur(event: FocusEvent): void {\r\n this.onBlur.emit(event);\r\n }\r\n}\r\n","<div [ngClass]=\"{ 'disabled': disabled }\" class=\"input-container\">\r\n <!-- Ícono de error que aparece por encima del campo si hay error -->\r\n <span *ngIf=\"hasError()\" class=\"error-icon\" (click)=\"toggleErrorDisplay()\">ⓘ</span>\r\n\r\n <!-- Botón de mostrar/ocultar contraseña centrado verticalmente -->\r\n <button *ngIf=\"type === 'password'\" type=\"button\" (click)=\"handleTogglePassword()\" class=\"toggle-button\">\r\n <fa-icon [icon]=\"faEyeSlash\" class=\"icon\" [class.active]=\"showPassword\"></fa-icon>\r\n </button>\r\n\r\n <!-- Input que cambia de borde si tiene error -->\r\n <input\r\n [type]=\"type === 'password' && showPassword ? 'text' : type\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"handleKeyDown($event)\"\r\n (paste)=\"handlePaste($event)\"\r\n (focus)=\"handleFocus($event)\"\r\n (blur)=\"handleBlur($event)\"\r\n [ngClass]=\"{ 'error-border': hasError() }\"\r\n />\r\n\r\n <!-- Mensaje de error que aparece solo cuando se clickea en el ícono de error -->\r\n <div *ngIf=\"control.invalid && control.dirty && showError\" class=\"error-message\">\r\n {{ getErrorMessage() }}\r\n </div>\r\n</div>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {IconDefinition} from '@fortawesome/free-solid-svg-icons';\r\nimport {themes} from \"../../styles/themes\";\r\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\r\nimport {RdndButton} from \"../button/button.component\";\r\nimport {RdndScreenTitle} from \"../screen-title/screen-title.component\";\r\n\r\n@Component({\r\n selector: 'rdnd-modal',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n RdndButton,\r\n RdndScreenTitle,\r\n ],\r\n templateUrl: './modal.component.html',\r\n styleUrl: './modal.component.scss'\r\n})\r\nexport class RdndModal {\r\n @Input() title: string = '';\r\n @Input() type: 'success' | 'error' | 'question' | 'warning' | 'info' = 'success';\r\n @Input() theme: any = themes.magenta;\r\n @Input() confirmText: string = '';\r\n @Input() cancelText: string = '';\r\n @Output() close = new EventEmitter<boolean>();\r\n\r\n protected readonly themes = themes;\r\n\r\n icon?: IconDefinition;\r\n content: string = '';\r\n\r\n closeModal(result: boolean) {\r\n this.close.emit(result);\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","<div class=\"modal-wrapper\">\r\n\r\n <div class=\"container\" (click)=\"$event.stopPropagation()\">\r\n\r\n <div class=\"content\">\r\n\r\n @if (icon) {\r\n <fa-icon [icon]=\"icon\" class=\"icon\" [style.color]=\"theme.default\"\r\n />\r\n }\r\n\r\n <span class=\"subtitle align-center\">{{ title }}</span>\r\n\r\n <div class=\"text align-center\" [innerHTML]=\"content\">\r\n </div>\r\n\r\n\r\n @if (type !== 'question') {\r\n <rdnd-button\r\n [id]=\"'btn-modal'\"\r\n [type]=\"'button'\"\r\n (callback)=\"closeModal(true)\"\r\n [text]=\"'Aceptar'\"\r\n [theme]=\"theme\"\r\n [size]=\"'full'\"\r\n />\r\n } @else {\r\n <rdnd-button\r\n [id]=\"'btn-modal-accept'\"\r\n [type]=\"'button'\"\r\n (callback)=\"closeModal(true)\"\r\n [text]=\"confirmText\"\r\n [theme]=\"theme\"\r\n [size]=\"'full'\"\r\n />\r\n <rdnd-button\r\n [id]=\"'btn-modal-cancel'\"\r\n [type]=\"'button'\"\r\n (callback)=\"closeModal(false)\"\r\n [text]=\"cancelText\"\r\n [theme]=\"themes.bordered\"\r\n [size]=\"'full'\"\r\n />\r\n }\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n</div>\r\n\r\n","import {Injectable, ComponentRef} from '@angular/core';\r\nimport {ApplicationRef, ComponentFactoryResolver, Injector} from '@angular/core';\r\nimport {faCircleCheck, faCircleQuestion, IconDefinition} from '@fortawesome/free-solid-svg-icons';\r\nimport {faTriangleExclamation} from \"@fortawesome/free-solid-svg-icons/faTriangleExclamation\";\r\nimport {themes} from \"../styles/themes\";\r\nimport {faTable} from \"@fortawesome/free-solid-svg-icons/faTable\";\r\nimport {RdndModal} from \"../components/modal/modal.component\";\r\n\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ModalService {\r\n private modalRef: ComponentRef<RdndModal> | null = null;\r\n\r\n constructor(\r\n private appRef: ApplicationRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector\r\n ) {\r\n }\r\n\r\n openModal(title: string, content: string, type: 'success' | 'error' | 'question' | 'warning' | 'info' = 'success', confirmText = 'Continuar', cancelText = 'Cancelar'): Promise<boolean> {\r\n if (this.modalRef) return Promise.resolve(false);\r\n\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(RdndModal);\r\n this.modalRef = factory.create(this.injector);\r\n\r\n this.modalRef.instance.title = title;\r\n this.modalRef.instance.type = type;\r\n this.modalRef.instance.theme = this.getStyleTheme(type);\r\n this.modalRef.instance.content = content;\r\n this.modalRef.instance.icon = this.getIcon(type);\r\n this.modalRef.instance.confirmText = confirmText;\r\n this.modalRef.instance.cancelText = cancelText;\r\n\r\n const result = new Promise<boolean>((resolve) => {\r\n this.modalRef!.instance.close.subscribe((res: boolean) => {\r\n this.closeModal();\r\n resolve(res);\r\n });\r\n });\r\n\r\n this.appRef.attachView(this.modalRef.hostView);\r\n const domElem = (this.modalRef.hostView as any).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n\r\n return result;\r\n }\r\n\r\n getStyleTheme = (theme: 'success' | 'error' | 'question' | 'warning' | 'info') => {\r\n switch (theme) {\r\n case \"success\":\r\n return themes.green;\r\n case 'error':\r\n return themes.magentaNormal;\r\n case 'question':\r\n return themes.purple\r\n case 'warning':\r\n return themes.yellow\r\n case 'info':\r\n return themes.purple\r\n }\r\n }\r\n\r\n closeModal(): void {\r\n if (this.modalRef) {\r\n this.appRef.detachView(this.modalRef.hostView);\r\n this.modalRef.destroy();\r\n this.modalRef = null;\r\n }\r\n }\r\n\r\n getIcon(theme: 'success' | 'error' | 'question' | 'warning' | 'info'): IconDefinition {\r\n switch (theme) {\r\n case 'error':\r\n return faTriangleExclamation;\r\n case 'question':\r\n return faCircleQuestion\r\n case \"success\":\r\n return faCircleCheck\r\n case \"warning\":\r\n return faTriangleExclamation;\r\n case \"info\":\r\n return faTable;\r\n }\r\n\r\n }\r\n}\r\n","/*\r\n * Public API Surface of gentera-rdnd\r\n */\r\n\r\nexport * from './lib/components/screen-title/screen-title.component';\r\nexport * from \"./lib/components/rdnd-navbar/rdnd-navbar.component\";\r\nexport * from \"./lib/components/rdnd-sidebar/rdnd-sidebar.component\";\r\n\r\nexport * from './lib/components/button/button.component';\r\nexport * from './lib/components/input/input.component';\r\nexport * from './lib/components/modal/modal.component';\r\n\r\nexport * from './lib/hooks/button.service';\r\nexport * from './lib/hooks/input.service';\r\nexport * from './lib/hooks/modal.service';\r\n\r\n// Export utils\r\nexport {themes as rdndThemes} from './lib/styles/themes';\r\n\r\n\r\n// Export types\r\nexport {RdndSidebarEntry} from \"./lib/types/Sidebar.types\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ButtonService","i1.InputService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gentera-rdnd.mjs","sources":["../../../projects/gentera-rdnd/src/lib/styles/colors.ts","../../../projects/gentera-rdnd/src/lib/components/screen-title/screen-title.component.ts","../../../projects/gentera-rdnd/src/lib/components/screen-title/screen-title.component.html","../../../projects/gentera-rdnd/src/lib/components/rdnd-navbar/rdnd-navbar.component.ts","../../../projects/gentera-rdnd/src/lib/components/rdnd-navbar/rdnd-navbar.component.html","../../../projects/gentera-rdnd/src/lib/components/rdnd-sidebar/rdnd-sidebar.component.ts","../../../projects/gentera-rdnd/src/lib/components/rdnd-sidebar/rdnd-sidebar.component.html","../../../projects/gentera-rdnd/src/lib/styles/themes.ts","../../../projects/gentera-rdnd/src/lib/hooks/button.service.ts","../../../projects/gentera-rdnd/src/lib/components/button/button.component.ts","../../../projects/gentera-rdnd/src/lib/components/button/button.component.html","../../../projects/gentera-rdnd/src/lib/hooks/input.service.ts","../../../projects/gentera-rdnd/src/lib/components/input/input.component.ts","../../../projects/gentera-rdnd/src/lib/components/input/input.component.html","../../../projects/gentera-rdnd/src/lib/components/modal/modal.component.ts","../../../projects/gentera-rdnd/src/lib/components/modal/modal.component.html","../../../projects/gentera-rdnd/src/lib/hooks/modal.service.ts","../../../projects/gentera-rdnd/src/lib/services/storage.service.ts","../../../projects/gentera-rdnd/src/public-api.ts","../../../projects/gentera-rdnd/src/gentera-rdnd.ts"],"sourcesContent":["export const colors = {\r\n black: '#171717',\r\n 'black-light': '#343434',\r\n 'black-dark': '#000000',\r\n 'black-navy': '#191a21',\r\n\r\n 'xs-dark-gray': '#5A5A5A',\r\n 'dark-gray': '#9E9E9E',\r\n 'medium-gray': '#AFAFAF',\r\n gray: '#C4C4C4',\r\n 'light-gray': '#C6C6C6',\r\n 'xs-light-gray': '#DFDFDF',\r\n 'xxs-light-gray': '#F2F2F2',\r\n 'soft-white': '#EEEEEE',\r\n\r\n green: '#28a746',\r\n 'green-medium': '#208B6A',\r\n 'green-dark': '#156a29',\r\n 'green-xs-dark': 'rgb(33, 97, 90)',\r\n 'green-1': '#009F74',\r\n 'green-2': '#00B987',\r\n 'green-3': '#19C496',\r\n 'green-light': '#84ce94',\r\n 'green-4': '#50D8B3',\r\n 'green-5': '#83E6B8',\r\n\r\n \"blue-info\": '#7390EC',\r\n blue: '#3360fa',\r\n 'blue-dark': '#1a389e',\r\n 'blue-light': '#3390fa',\r\n 'blue-gray-soft': '#E5EAEDFF',\r\n 'blue-gray-light': 'rgb(244,247,250)',\r\n\r\n orange: '#F77C00',\r\n 'orange-light': '#F7B500',\r\n\r\n yellow: '#F09D00',\r\n \"yellow-normal\": '#FFBC57',\r\n 'yellow-light': '#FFC400',\r\n\r\n purple: '#6459be',\r\n 'purple-light': 'rgb(149, 138, 242)',\r\n\r\n red: '#E60018',\r\n 'red-light': '#e74364',\r\n 'red-medium': '#c51628',\r\n\r\n \"white\": \"#FFFFFF\",\r\n \"magentaStart\": \"#C2185B\",\r\n \"magentaEnd\": \"#7E0083\",\r\n 'magenta-normal': '#B41364',\r\n\r\n disabled: '#C6C6C6',\r\n \"disabledText\": \"#9E9E9E\",\r\n};\r\n","import {Component, Input} from '@angular/core';\r\nimport {NgClass, NgStyle} from \"@angular/common\";\r\nimport {colors} from \"../../styles/colors\";\r\n\r\n@Component({\r\n selector: 'rdnd-screen-title',\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n NgStyle\r\n ],\r\n templateUrl: './screen-title.component.html',\r\n styleUrl: './screen-title.component.scss'\r\n})\r\nexport class RdndScreenTitle {\r\n @Input() title!: string;\r\n @Input() align: 'LEFT' | 'CENTER' = 'CENTER';\r\n @Input() color = colors[\"magentaEnd\"];\r\n\r\n}\r\n","<h1 [class]=\" 'align-' + align \" [ngStyle]=\"{\r\n color: color\r\n}\">\r\n {{ title }}\r\n</h1>\r\n","import {Component, Input, output} from '@angular/core';\r\n\r\n// Icons\r\nimport {FaIconComponent} from \"@fortawesome/angular-fontawesome\";\r\nimport {\r\n faBarsStaggered,\r\n faCircle,\r\n faSignOut,\r\n faTimes\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {NgStyle} from \"@angular/common\";\r\nimport {RouterLink} from \"@angular/router\";\r\n\r\n@Component({\r\n selector: 'rdnd-navbar',\r\n standalone: true,\r\n imports: [\r\n FaIconComponent,\r\n NgStyle,\r\n RouterLink\r\n ],\r\n templateUrl: './rdnd-navbar.component.html',\r\n styleUrl: './rdnd-navbar.component.scss'\r\n})\r\nexport class RdndNavbar {\r\n\r\n // Icons\r\n protected readonly faBarsStaggered = faBarsStaggered;\r\n protected readonly faSignOut = faSignOut;\r\n protected readonly faTimes = faTimes;\r\n\r\n // States\r\n showLoader = false;\r\n\r\n // Inputs & Outputs\r\n @Input() userName: string = \"\";\r\n @Input() imageUrl: string = \"\";\r\n @Input() backgroundStart: string = \"#C2185B\";\r\n @Input() backgroundEnd: string = \"#7E0083\";\r\n @Input() showSidebar = false;\r\n onSignOut = output();\r\n onToggleSidebar = output();\r\n\r\n // Functions\r\n toggleMenu = () => {\r\n this.showSidebar = !this.showSidebar;\r\n this.onToggleSidebar.emit();\r\n }\r\n\r\n closeMenu = () => {\r\n this.showSidebar = false;\r\n }\r\n\r\n handleSignOut = () => {\r\n this.onSignOut.emit();\r\n }\r\n\r\n\r\n}\r\n","<nav [ngStyle]=\"{'background': 'linear-gradient(to right, ' + backgroundStart + ', ' + backgroundEnd + ')'}\">\r\n\r\n <div class=\"rdnd-nav-container\">\r\n <button (click)=\"toggleMenu()\" >\r\n <fa-icon [icon]=\"showSidebar ? faTimes : faBarsStaggered\"></fa-icon>\r\n </button>\r\n\r\n @if (imageUrl) {\r\n <a [routerLink]=\"['/']\">\r\n <img src=\"{{imageUrl}}\" alt=\"\">\r\n </a>\r\n }\r\n\r\n <button (click)=\"handleSignOut()\">\r\n <fa-icon [icon]=\"faSignOut\"></fa-icon>\r\n </button>\r\n </div>\r\n\r\n</nav>\r\n","import {Component, Input, output} from '@angular/core';\r\nimport {FaIconComponent} from '@fortawesome/angular-fontawesome';\r\nimport {\r\n faArrowRight,\r\n faChevronDown,\r\n faChevronUp,\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport {NgClass, NgStyle, NgIf, NgFor, NgTemplateOutlet} from '@angular/common';\r\nimport {RouterLink} from '@angular/router';\r\nimport {RdndSidebarItem} from \"../../types/Sidebar.types\";\r\n\r\n@Component({\r\n selector: 'rdnd-sidebar',\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n NgStyle,\r\n NgIf,\r\n NgFor,\r\n NgTemplateOutlet,\r\n RouterLink,\r\n FaIconComponent,\r\n ],\r\n templateUrl: './rdnd-sidebar.component.html',\r\n styleUrl: './rdnd-sidebar.component.scss',\r\n})\r\nexport class RdndSidebar {\r\n @Input() show: boolean = false;\r\n @Input() entries: RdndSidebarItem[] = [];\r\n @Input() backgroundStart: string = '#C2185B';\r\n @Input() backgroundEnd: string = '#7E0083';\r\n\r\n onClickEntry = output();\r\n\r\n protected readonly faArrowRight = faArrowRight;\r\n protected readonly faChevronDown = faChevronDown;\r\n protected readonly faChevronUp = faChevronUp;\r\n\r\n openSections = new Set<string>();\r\n\r\n handleClick = () => {\r\n this.onClickEntry.emit();\r\n };\r\n\r\n toggleSection(name: string) {\r\n this.openSections.has(name)\r\n ? this.openSections.delete(name)\r\n : this.openSections.add(name);\r\n }\r\n\r\n isSectionOpen(name: string): boolean {\r\n return this.openSections.has(name);\r\n }\r\n}\r\n","@if (show) {\r\n <div\r\n class=\"background-overlay\"\r\n (click)=\"handleClick()\"\r\n [ngClass]=\"show ? 'open' : 'closed'\">\r\n </div>\r\n}\r\n\r\n<aside\r\n id=\"sidebar\"\r\n class=\"sidebar\"\r\n [ngClass]=\"show ? 'open' : 'closed'\"\r\n [ngStyle]=\"{\r\n 'background': 'linear-gradient(to bottom, ' + backgroundStart + ', ' + backgroundEnd + ')'\r\n }\"\r\n>\r\n <ul class=\"entries\">\r\n @for (item of entries; track item.name) {\r\n @if (item.type === 'ENTRY') {\r\n <li>\r\n <a [routerLink]=\"[item.url]\" class=\"entry\" (click)=\"handleClick()\">\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ item.name }}\r\n </a>\r\n </li>\r\n } @else if (item.type === 'SECTION') {\r\n <li class=\"section\">\r\n <div class=\"section-title\" (click)=\"toggleSection(item.name)\">\r\n <fa-icon\r\n [icon]=\"isSectionOpen(item.name) ? faChevronUp : faChevronDown\"\r\n class=\"chevron\"\r\n />\r\n <span>{{ item.name }}</span>\r\n </div>\r\n\r\n @if (isSectionOpen(item.name)) {\r\n <ul class=\"section-entries\">\r\n @for (entry of item.entries; track entry.name) {\r\n <li>\r\n <a\r\n [routerLink]=\"[item.url + '/' + entry.url]\"\r\n class=\"entry\"\r\n (click)=\"handleClick()\"\r\n >\r\n <fa-icon [icon]=\"faArrowRight\"/>\r\n {{ entry.name }}\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n }\r\n\r\n </ul>\r\n</aside>\r\n","import {colors} from './colors';\r\n\r\nexport const themes = {\r\n disabled: {\r\n default: colors.disabled,\r\n hover: colors.disabled,\r\n border: 'transparent',\r\n active: colors.disabled,\r\n fontColor: colors.disabledText,\r\n },\r\n magenta: {\r\n default: `linear-gradient(to right, ${colors.magentaStart}, ${colors.magentaEnd})`,\r\n hover: `linear-gradient(to right, ${colors.magentaEnd}, ${colors.magentaStart})`,\r\n //default: `${colors.magentaStart}`,\r\n border: 'transparent',\r\n active: colors.magentaStart, // Color al hacer clic\r\n fontColor: colors.white, // Texto en blanco\r\n },\r\n magentaSolid: {\r\n default: `${colors.magentaStart}`,\r\n hover: `${colors.magentaEnd}`,\r\n border: 'transparent',\r\n active: colors.magentaStart, // Color al hacer clic\r\n fontColor: colors.white, // Texto en blanco\r\n },\r\n magentaNormal: {\r\n default: `${colors[\"magenta-normal\"]}`,\r\n hover: `${colors.magentaEnd}`,\r\n border: 'transparent',\r\n active: colors[\"magenta-normal\"], // Color al hacer clic\r\n fontColor: colors.white, // Texto en blanco\r\n },\r\n gray: {\r\n default: `${colors[\"light-gray\"]}`,\r\n hover: `linear-gradient(to right, ${colors.magentaEnd}, ${colors.magentaStart})`,\r\n //default: `${colors.magentaStart}`,\r\n border: 'transparent',\r\n active: colors.magentaStart, // Color al hacer clic\r\n fontColor: colors.white, // Texto en blanco\r\n },\r\n green: {\r\n default: `${colors[\"green-medium\"]}`,\r\n hover: colors.green,\r\n border: 'transparent',\r\n active: colors[\"green-xs-dark\"],\r\n fontColor: colors.white,\r\n },\r\n red: {\r\n default: `${colors[\"red-medium\"]}`,\r\n hover: colors.red,\r\n border: 'transparent',\r\n active: colors[\"red\"],\r\n fontColor: colors.white,\r\n },\r\n bordered: {\r\n default: 'transparent',\r\n hover: 'transparent',\r\n border: colors.magentaStart,\r\n active: 'transparent',\r\n fontColor: colors.magentaStart\r\n },\r\n borderedWhite: {\r\n default: 'white',\r\n hover: 'white',\r\n border: colors.magentaStart,\r\n active: 'white',\r\n fontColor: colors.magentaStart\r\n },\r\n transparent: {\r\n default: 'transparent',\r\n hover: 'transparent',\r\n border: 'transparent',\r\n active: 'transparent',\r\n fontColor: colors.magentaStart\r\n },\r\n purple: {\r\n default: `${colors['blue-info']}`,\r\n hover: colors[\"purple-light\"],\r\n border: 'transparent',\r\n active: colors.purple,\r\n fontColor: colors.white,\r\n },\r\n yellow: {\r\n default: `${colors['yellow-normal']}`,\r\n hover: colors[\"yellow\"],\r\n border: 'transparent',\r\n active: colors[\"yellow-light\"],\r\n fontColor: colors.white,\r\n },\r\n blue: {\r\n default: `${colors['yellow-normal']}`,\r\n hover: colors[\"yellow\"],\r\n border: 'transparent',\r\n active: colors[\"yellow-light\"],\r\n fontColor: colors.white,\r\n }\r\n\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nexport interface ButtonServiceType {\r\n enable: () => void;\r\n disable: () => void;\r\n disabled$: Observable<boolean>\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ButtonService {\r\n private buttonsState: { [id: string]: BehaviorSubject<boolean> } = {};\r\n\r\n private ensureButtonExists(id: string): void {\r\n if (!this.buttonsState[id]) {\r\n this.buttonsState[id] = new BehaviorSubject<boolean>(false);\r\n }\r\n }\r\n\r\n useButton(id: string): ButtonServiceType {\r\n this.ensureButtonExists(id);\r\n\r\n return {\r\n disabled$: this.buttonsState[id].asObservable(),\r\n enable: () => this.buttonsState[id].next(false),\r\n disable: () => this.buttonsState[id].next(true),\r\n };\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\r\nimport {Observable, Subscription} from 'rxjs';\r\nimport {FaIconComponent} from \"@fortawesome/angular-fontawesome\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\n// @ts-ignore\r\nimport {themes} from \"../../styles/themes\";\r\nimport {ButtonService, ButtonServiceType} from \"../../hooks/button.service\";\r\n// @ts-ignore\r\n\r\n\r\n\r\n@Component({\r\n selector: 'rdnd-button',\r\n templateUrl: './button.component.html',\r\n standalone: true,\r\n imports: [\r\n FaIconComponent,\r\n NgIf,\r\n NgClass\r\n ],\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class RdndButton implements OnInit, OnDestroy {\r\n @Input() id!: string;\r\n @Input() icon?: IconDefinition;\r\n @Input() text: string = 'Enviar';\r\n @Input() theme: any = themes.magenta;\r\n @Input() size: 'contained' | 'full' = 'full';\r\n @Input() type: 'button' | 'submit' | 'reset' = 'submit';\r\n @Input() borders: boolean = true;\r\n @Input() disabled: boolean = false;\r\n\r\n @Output() callback: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n protected readonly themes = themes;\r\n private subscription!: Subscription;\r\n hoverBackgroundColor: string = this.theme.default;\r\n\r\n buttonControl!: ButtonServiceType ;\r\n\r\n constructor(private buttonService: ButtonService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buttonControl = this.buttonService.useButton(this.id);\r\n\r\n this.subscription = new Subscription( () =>\r\n this.buttonControl.disabled$.subscribe((isDisabled: boolean) => {\r\n this.disabled = isDisabled;\r\n })\r\n )\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if(this.subscription){\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n handleClick(event: MouseEvent): void {\r\n event.stopPropagation();\r\n if (!this.disabled && this.type !== 'submit') {\r\n this.callback.emit();\r\n }\r\n }\r\n\r\n onMouseEnter() {\r\n if (!this.disabled) {\r\n this.hoverBackgroundColor = this.theme.hover;\r\n }\r\n }\r\n\r\n onMouseLeave() {\r\n if (!this.disabled) {\r\n this.hoverBackgroundColor = this.theme.default;\r\n }\r\n }\r\n\r\n protected readonly event = event;\r\n}\r\n","<button\r\n [ngClass]=\"{\r\n 'full': size === 'full',\r\n 'contained': size === 'contained',\r\n 'bordered': borders,\r\n 'disabled': disabled\r\n }\"\r\n [style.background]=\"disabled ? themes.disabled.default : theme.default\"\r\n [style.color]=\"theme.fontColor\"\r\n [style.border]=\"borders ? '1px solid ' + theme.border : 'none'\"\r\n [style.cursor]=\"disabled ? 'not-allowed' : 'pointer'\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"disabled\"\r\n\r\n (mouseleave)=\"onMouseLeave()\"\r\n (click)=\"handleClick($event)\"\r\n (mouseenter)=\"onMouseEnter()\"\r\n>\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\" class=\"icon\"></fa-icon>\r\n {{ text }}\r\n</button>\r\n","import { Injectable } from '@angular/core';\r\nimport {BehaviorSubject, Observable} from 'rxjs';\r\nimport { FormControl, ValidationErrors } from '@angular/forms';\r\n\r\nexport type InputStateType = {\r\n isValid: BehaviorSubject<boolean>;\r\n valid: Observable<boolean>;\r\n errorMessage: Observable<string | null>;\r\n setValid: (isValid: boolean) => void;\r\n setErrorMessage: (message: string | null) => void;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InputService {\r\n\r\n private inputState: {\r\n [id: string]: {\r\n valid$: BehaviorSubject<boolean>;\r\n errorMessage$: BehaviorSubject<string | null>;\r\n };\r\n } = {};\r\n\r\n private ensureInputExists(id: string): void {\r\n if (!this.inputState[id]) {\r\n this.inputState[id] = {\r\n valid$: new BehaviorSubject<boolean>(false),\r\n errorMessage$: new BehaviorSubject<string | null>(null),\r\n };\r\n }\r\n }\r\n\r\n useInput(id: string): InputStateType {\r\n this.ensureInputExists(id);\r\n\r\n return {\r\n isValid: this.inputState[id].valid$,\r\n valid: this.inputState[id].valid$.asObservable(),\r\n errorMessage: this.inputState[id].errorMessage$.asObservable(),\r\n setValid: (isValid: boolean) => this.inputState[id].valid$.next(isValid),\r\n setErrorMessage: (message: string | null) =>\r\n this.inputState[id].errorMessage$.next(message),\r\n };\r\n }\r\n\r\n updateInputState(control: FormControl, id: string): void {\r\n this.ensureInputExists(id);\r\n\r\n const errors: ValidationErrors | null = control.errors;\r\n\r\n if (control.valid) {\r\n this.inputState[id].valid$.next(true);\r\n this.inputState[id].errorMessage$.next(null);\r\n } else {\r\n this.inputState[id].valid$.next(false);\r\n this.inputState[id].errorMessage$.next(this.getErrorMessage(errors));\r\n }\r\n }\r\n\r\n private getErrorMessage(errors: ValidationErrors | null): string | null {\r\n if (!errors) return null;\r\n\r\n if (errors['required']) return 'Este campo es obligatorio';\r\n if (errors['minlength'])\r\n return `Mínimo ${errors['minlength'].requiredLength} caracteres requeridos`;\r\n if (errors['maxlength'])\r\n return `Máximo ${errors['maxlength'].requiredLength} caracteres permitidos`;\r\n if (errors['email']) return 'Formato de correo inválido';\r\n\r\n return null;\r\n }\r\n}\r\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\r\nimport {FormControl, ReactiveFormsModule, ValidationErrors, ValidatorFn, Validators} from '@angular/forms';\r\nimport {faEyeSlash} from '@fortawesome/free-solid-svg-icons';\r\nimport {NgClass, NgIf} from '@angular/common';\r\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\r\nimport {InputService} from \"../../hooks/input.service\";\r\n\r\n\r\n@Component({\r\n selector: 'rdnd-input',\r\n templateUrl: './input.component.html',\r\n standalone: true,\r\n imports: [\r\n NgIf,\r\n NgClass,\r\n FontAwesomeModule,\r\n ReactiveFormsModule\r\n ],\r\n styleUrls: ['./input.component.scss']\r\n})\r\nexport class RdndInput implements OnInit {\r\n @Input() id!: string;\r\n @Input() name!: string;\r\n @Input() type: 'text' | 'password' | 'number' = 'text';\r\n @Input() placeholder: string = '';\r\n @Input() value: string = '';\r\n @Input() validators: ValidatorFn[] = [];\r\n @Input() disabled: boolean = false;\r\n\r\n @Output() valueChange = new EventEmitter<string>();\r\n @Output() onKeyDown = new EventEmitter<KeyboardEvent>();\r\n @Output() onPaste = new EventEmitter<ClipboardEvent>();\r\n @Output() onFocus = new EventEmitter<FocusEvent>();\r\n @Output() onBlur = new EventEmitter<FocusEvent>();\r\n\r\n control!: FormControl;\r\n faEyeSlash = faEyeSlash;\r\n showPassword: boolean = false;\r\n showError: boolean = false;\r\n\r\n constructor(private inputService: InputService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.control = new FormControl(this.value, this.validators);\r\n\r\n this.valueChange.emit(this.value);\r\n this.inputService.updateInputState(this.control, this.id);\r\n\r\n this.control.valueChanges.subscribe((value) => {\r\n this.valueChange.emit(value);\r\n this.inputService.updateInputState(this.control, this.id);\r\n });\r\n\r\n }\r\n\r\n getErrorMessage(): string | null {\r\n if (this.control && this.control.errors) {\r\n const errorKeys = Object.keys(this.control.errors);\r\n if (errorKeys.length > 0) {\r\n const firstErrorKey = errorKeys[0];\r\n return (this.control.errors as ValidationErrors)[firstErrorKey];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n toggleErrorDisplay() {\r\n this.showError = !this.showError;\r\n }\r\n\r\n hasError(): boolean {\r\n return this.control.invalid && (this.control.dirty || this.control.touched);\r\n }\r\n\r\n handleTogglePassword(): void {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent): void {\r\n const allowRegex = /^[a-zA-Z!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]*$/\r\n\r\n if (\r\n this.type === 'number' && !(\r\n ['Backspace', 'Shift', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.key)\r\n ) && !(event.altKey || event.ctrlKey || event.metaKey || event.shiftKey)\r\n ) {\r\n event.key.match(allowRegex) ? event.preventDefault() : this.onKeyDown.emit(event);\r\n } else {\r\n this.onKeyDown.emit(event);\r\n }\r\n }\r\n\r\n handlePaste(event: ClipboardEvent): void {\r\n this.onPaste.emit(event);\r\n }\r\n\r\n handleFocus(event: FocusEvent): void {\r\n this.onFocus.emit(event);\r\n }\r\n\r\n handleBlur(event: FocusEvent): void {\r\n this.onBlur.emit(event);\r\n }\r\n}\r\n"," <div [ngClass]=\"{ 'disabled': disabled }\" class=\"input-container\">\r\n <!-- Ícono de error que aparece por encima del campo si hay error -->\r\n <span *ngIf=\"hasError()\" class=\"error-icon\" (click)=\"toggleErrorDisplay()\">ⓘ</span>\r\n\r\n <!-- Botón de mostrar/ocultar contraseña centrado verticalmente -->\r\n <button *ngIf=\"type === 'password'\" type=\"button\" (click)=\"handleTogglePassword()\" class=\"toggle-button\">\r\n <fa-icon [icon]=\"faEyeSlash\" class=\"icon\" [class.active]=\"showPassword\"></fa-icon>\r\n </button>\r\n\r\n <!-- Input que cambia de borde si tiene error -->\r\n <input\r\n [type]=\"type === 'password' && showPassword ? 'text' : type\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"handleKeyDown($event)\"\r\n (paste)=\"handlePaste($event)\"\r\n (focus)=\"handleFocus($event)\"\r\n (blur)=\"handleBlur($event)\"\r\n [ngClass]=\"{ 'error-border': hasError() }\"\r\n />\r\n\r\n <!-- Mensaje de error que aparece solo cuando se clickea en el ícono de error -->\r\n <div *ngIf=\"control.invalid && control.dirty && showError\" class=\"error-message\">\r\n {{ getErrorMessage() }}\r\n </div>\r\n </div>\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {IconDefinition} from '@fortawesome/free-solid-svg-icons';\r\nimport {themes} from \"../../styles/themes\";\r\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\r\nimport {RdndButton} from \"../button/button.component\";\r\nimport {RdndScreenTitle} from \"../screen-title/screen-title.component\";\r\n\r\n@Component({\r\n selector: 'rdnd-modal',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n RdndButton,\r\n RdndScreenTitle,\r\n ],\r\n templateUrl: './modal.component.html',\r\n styleUrl: './modal.component.scss'\r\n})\r\nexport class RdndModal {\r\n @Input() title: string = '';\r\n @Input() type: 'success' | 'error' | 'question' | 'warning' | 'info' = 'success';\r\n @Input() theme: any = themes.magenta;\r\n @Input() confirmText: string = '';\r\n @Input() cancelText: string = '';\r\n @Output() close = new EventEmitter<boolean>();\r\n\r\n protected readonly themes = themes;\r\n\r\n icon?: IconDefinition;\r\n content: string = '';\r\n\r\n closeModal(result: boolean) {\r\n this.close.emit(result);\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","<div class=\"modal-wrapper\">\r\n\r\n <div class=\"container\" (click)=\"$event.stopPropagation()\">\r\n\r\n <div class=\"content\">\r\n\r\n @if (icon) {\r\n <fa-icon [icon]=\"icon\" class=\"icon\" [style.color]=\"theme.default\"\r\n />\r\n }\r\n\r\n <span class=\"subtitle align-center\">{{ title }}</span>\r\n\r\n <div class=\"text align-center\" [innerHTML]=\"content\">\r\n </div>\r\n\r\n\r\n @if (type !== 'question') {\r\n <rdnd-button\r\n [id]=\"'btn-modal'\"\r\n [type]=\"'button'\"\r\n (callback)=\"closeModal(true)\"\r\n [text]=\"'Aceptar'\"\r\n [theme]=\"theme\"\r\n [size]=\"'full'\"\r\n />\r\n } @else {\r\n <rdnd-button\r\n [id]=\"'btn-modal-accept'\"\r\n [type]=\"'button'\"\r\n (callback)=\"closeModal(true)\"\r\n [text]=\"confirmText\"\r\n [theme]=\"theme\"\r\n [size]=\"'full'\"\r\n />\r\n <rdnd-button\r\n [id]=\"'btn-modal-cancel'\"\r\n [type]=\"'button'\"\r\n (callback)=\"closeModal(false)\"\r\n [text]=\"cancelText\"\r\n [theme]=\"themes.bordered\"\r\n [size]=\"'full'\"\r\n />\r\n }\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n</div>\r\n\r\n","import {Injectable, ComponentRef} from '@angular/core';\r\nimport {ApplicationRef, ComponentFactoryResolver, Injector} from '@angular/core';\r\nimport {faCircleCheck, faCircleQuestion, IconDefinition} from '@fortawesome/free-solid-svg-icons';\r\nimport {faTriangleExclamation} from \"@fortawesome/free-solid-svg-icons/faTriangleExclamation\";\r\nimport {themes} from \"../styles/themes\";\r\nimport {faTable} from \"@fortawesome/free-solid-svg-icons/faTable\";\r\nimport {RdndModal} from \"../components/modal/modal.component\";\r\n\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ModalService {\r\n private modalRef: ComponentRef<RdndModal> | null = null;\r\n\r\n constructor(\r\n private appRef: ApplicationRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector\r\n ) {\r\n }\r\n\r\n openModal(title: string, content: string, type: 'success' | 'error' | 'question' | 'warning' | 'info' = 'success', confirmText = 'Continuar', cancelText = 'Cancelar'): Promise<boolean> {\r\n if (this.modalRef) return Promise.resolve(false);\r\n\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(RdndModal);\r\n this.modalRef = factory.create(this.injector);\r\n\r\n this.modalRef.instance.title = title;\r\n this.modalRef.instance.type = type;\r\n this.modalRef.instance.theme = this.getStyleTheme(type);\r\n this.modalRef.instance.content = content;\r\n this.modalRef.instance.icon = this.getIcon(type);\r\n this.modalRef.instance.confirmText = confirmText;\r\n this.modalRef.instance.cancelText = cancelText;\r\n\r\n const result = new Promise<boolean>((resolve) => {\r\n this.modalRef!.instance.close.subscribe((res: boolean) => {\r\n this.closeModal();\r\n resolve(res);\r\n });\r\n });\r\n\r\n this.appRef.attachView(this.modalRef.hostView);\r\n const domElem = (this.modalRef.hostView as any).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n\r\n return result;\r\n }\r\n\r\n getStyleTheme = (theme: 'success' | 'error' | 'question' | 'warning' | 'info') => {\r\n switch (theme) {\r\n case \"success\":\r\n return themes.green;\r\n case 'error':\r\n return themes.magentaNormal;\r\n case 'question':\r\n return themes.purple\r\n case 'warning':\r\n return themes.yellow\r\n case 'info':\r\n return themes.purple\r\n }\r\n }\r\n\r\n closeModal(): void {\r\n if (this.modalRef) {\r\n this.appRef.detachView(this.modalRef.hostView);\r\n this.modalRef.destroy();\r\n this.modalRef = null;\r\n }\r\n }\r\n\r\n getIcon(theme: 'success' | 'error' | 'question' | 'warning' | 'info'): IconDefinition {\r\n switch (theme) {\r\n case 'error':\r\n return faTriangleExclamation;\r\n case 'question':\r\n return faCircleQuestion\r\n case \"success\":\r\n return faCircleCheck\r\n case \"warning\":\r\n return faTriangleExclamation;\r\n case \"info\":\r\n return faTable;\r\n }\r\n\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n\r\n constructor() {\r\n }\r\n\r\n public save(key: string, value: any) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n };\r\n\r\n public get(key: string): JSON | null {\r\n const data = sessionStorage.getItem(key);\r\n if (data !== null) {\r\n return JSON.parse(data);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public delete(key: string): void {\r\n sessionStorage.removeItem(key);\r\n }\r\n public wipe(): void {\r\n sessionStorage.clear();\r\n }\r\n\r\n}\r\n","/*\r\n * Public API Surface of gentera-rdnd\r\n */\r\n\r\nexport * from './lib/components/screen-title/screen-title.component';\r\nexport * from \"./lib/components/rdnd-navbar/rdnd-navbar.component\";\r\nexport * from \"./lib/components/rdnd-sidebar/rdnd-sidebar.component\";\r\n\r\n// Components with its corresponding service handlers\r\nexport * from './lib/components/button/button.component';\r\nexport * from './lib/hooks/button.service';\r\n\r\nexport * from './lib/components/input/input.component';\r\nexport * from './lib/hooks/input.service';\r\n\r\nexport * from './lib/components/modal/modal.component';\r\nexport * from './lib/hooks/modal.service';\r\n\r\n// Export services\r\nexport * from './lib/services/storage.service';\r\n\r\n// Export utils\r\nexport {themes as rdndThemes} from './lib/styles/themes';\r\n\r\n\r\n// Export types\r\nexport {RdndSidebarItem} from \"./lib/types/Sidebar.types\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ButtonService","i1.InputService"],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RdndSidebarItem } from "../../types/Sidebar.types";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class RdndSidebar {
|
|
4
|
-
protected readonly faArrowRight: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
|
5
4
|
show: boolean;
|
|
6
|
-
entries:
|
|
5
|
+
entries: RdndSidebarItem[];
|
|
7
6
|
backgroundStart: string;
|
|
8
7
|
backgroundEnd: string;
|
|
9
8
|
onClickEntry: import("@angular/core").OutputEmitterRef<void>;
|
|
9
|
+
protected readonly faArrowRight: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
|
10
|
+
protected readonly faChevronDown: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
|
11
|
+
protected readonly faChevronUp: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
|
12
|
+
openSections: Set<string>;
|
|
10
13
|
handleClick: () => void;
|
|
14
|
+
toggleSection(name: string): void;
|
|
15
|
+
isSectionOpen(name: string): boolean;
|
|
11
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<RdndSidebar, never>;
|
|
12
17
|
static ɵcmp: i0.ɵɵComponentDeclaration<RdndSidebar, "rdnd-sidebar", never, { "show": { "alias": "show"; "required": false; }; "entries": { "alias": "entries"; "required": false; }; "backgroundStart": { "alias": "backgroundStart"; "required": false; }; "backgroundEnd": { "alias": "backgroundEnd"; "required": false; }; }, { "onClickEntry": "onClickEntry"; }, never, never, true, never>;
|
|
13
18
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class StorageService {
|
|
3
|
+
constructor();
|
|
4
|
+
save(key: string, value: any): void;
|
|
5
|
+
get(key: string): JSON | null;
|
|
6
|
+
delete(key: string): void;
|
|
7
|
+
wipe(): void;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StorageService, never>;
|
|
9
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<StorageService>;
|
|
10
|
+
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -2,10 +2,11 @@ export * from './lib/components/screen-title/screen-title.component';
|
|
|
2
2
|
export * from "./lib/components/rdnd-navbar/rdnd-navbar.component";
|
|
3
3
|
export * from "./lib/components/rdnd-sidebar/rdnd-sidebar.component";
|
|
4
4
|
export * from './lib/components/button/button.component';
|
|
5
|
-
export * from './lib/components/input/input.component';
|
|
6
|
-
export * from './lib/components/modal/modal.component';
|
|
7
5
|
export * from './lib/hooks/button.service';
|
|
6
|
+
export * from './lib/components/input/input.component';
|
|
8
7
|
export * from './lib/hooks/input.service';
|
|
8
|
+
export * from './lib/components/modal/modal.component';
|
|
9
9
|
export * from './lib/hooks/modal.service';
|
|
10
|
+
export * from './lib/services/storage.service';
|
|
10
11
|
export { themes as rdndThemes } from './lib/styles/themes';
|
|
11
|
-
export {
|
|
12
|
+
export { RdndSidebarItem } from "./lib/types/Sidebar.types";
|