@solcre-org/core-ui 2.17.1 → 2.17.2

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.
@@ -15143,7 +15143,8 @@ class GenericDocumentationComponent {
15143
15143
  allowHelp: false,
15144
15144
  customDateFormat: 'dd/MM/yyyy HH:mm',
15145
15145
  emptyStateMessage: 'documentation.noDocuments',
15146
- emptyStateIcon: 'icon-file-not-found'
15146
+ emptyStateIcon: 'icon-file-not-found',
15147
+ showUploadButton: true,
15147
15148
  });
15148
15149
  loading = input(false);
15149
15150
  permissions = input({});
@@ -15281,11 +15282,11 @@ class GenericDocumentationComponent {
15281
15282
  return this.config().emptyStateMessage || 'documentation.noDocuments';
15282
15283
  }
15283
15284
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericDocumentationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15284
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: GenericDocumentationComponent, isStandalone: true, selector: "core-generic-documentation", inputs: { documents: { classPropertyName: "documents", publicName: "documents", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, permissions: { classPropertyName: "permissions", publicName: "permissions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", uploadRequested: "uploadRequested" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div *ngIf=\"!loading() && hasDocuments() && isGridMode()\" class=\"c-components-grid\">\n <div \n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\" \n class=\"c-doc\">\n \n <div class=\"c-bulleted-text\" *ngIf=\"config().showUploadDate || config().showUploadedBy\">\n <time \n *ngIf=\"config().showUploadDate\"\n \n [attr.datetime]=\"document.uploadedDate\">\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span \n *ngIf=\"config().showUploadedBy\"\n >\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p \n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\">\n {{ document.description }}\n </p>\n </div>\n <!-- DEV: Ajustar botones -->\n <div class=\"c-doc__group-btns\">\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DOWNLOAD, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DELETE, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.HELP, document, $event.originalEvent)\">\n </core-generic-button>\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"!loading() && hasDocuments() && isListMode()\" class=\"c-components-grid\">\n <ul class=\"c-doc-list\">\n <li \n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\" \n class=\"c-doc-list__item\">\n \n <div class=\"c-doc\">\n <div class=\"c-bulleted-text\" *ngIf=\"config().showUploadDate || config().showUploadedBy\">\n <time \n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\">\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span \n *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p \n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\">\n {{ document.description }}\n </p>\n </div>\n\n <div class=\"c-doc__group-btns\">\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DOWNLOAD, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DELETE, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.HELP, document, $event.originalEvent)\">\n </core-generic-button>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n\n<!-- Loading state -->\n<div *ngIf=\"loading()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon icon-loading\"></span>\n <p class=\"c-empty-state__message\">{{ 'commons.loading' | translate }}</p>\n </div>\n</div>\n\n<!-- Empty state - No documents -->\n<div *ngIf=\"!loading() && !hasDocuments()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon\" [class]=\"getEmptyStateIcon()\"></span>\n <p class=\"c-empty-state__message\">{{ getEmptyStateMessage() | translate }}</p>\n \n <!-- Upload button if user can upload -->\n <core-generic-button \n *ngIf=\"canUpload()\"\n [config]=\"uploadButtonConfig()\"\n (buttonClick)=\"onUploadClick($event.originalEvent)\">\n </core-generic-button>\n </div>\n</div>\n", styles: [".c-empty-state{--_color-main-hsl: var(--color-neutral-800-hsl);--_color-text-hsl: var(--color-neutral-800-hsl);--_py: 4em;--_px: 1.5em;--_br: var(--core-main-br);--_fz: var(--fz-200);display:flex;justify-content:center;align-items:center;text-align:center;padding:var(--_py) var(--_px);background-color:hsl(var(--_color-main-hsl)/4%);border-radius:var(--_br);font-size:var(--_fz);font-weight:600;max-width:100rem}.c-empty-state__content{max-width:25em}.c-empty-state__icon{display:block;font-size:2.4em;margin-bottom:.6em;opacity:.7}.c-empty-state__icon.icon-loading{animation:spin 1s linear infinite}.c-empty-state__message{color:#6b7280;line-height:1.5}.c-empty-state core-generic-button{display:block;margin-top:1.8em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }] });
15285
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: GenericDocumentationComponent, isStandalone: true, selector: "core-generic-documentation", inputs: { documents: { classPropertyName: "documents", publicName: "documents", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, permissions: { classPropertyName: "permissions", publicName: "permissions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", uploadRequested: "uploadRequested" }, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<div\n *ngIf=\"!loading() && hasDocuments() && isGridMode()\"\n class=\"c-components-grid\"\n>\n <div\n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\"\n class=\"c-doc\"\n >\n <div\n class=\"c-bulleted-text\"\n *ngIf=\"config().showUploadDate || config().showUploadedBy\"\n >\n <time\n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\"\n >\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p\n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\"\n >\n {{ document.description }}\n </p>\n </div>\n <!-- DEV: Ajustar botones -->\n <div class=\"c-doc__group-btns\">\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DOWNLOAD,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(DocumentAction.DELETE, document, $event.originalEvent)\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(DocumentAction.HELP, document, $event.originalEvent)\n \"\n >\n </core-generic-button>\n </div>\n </div>\n </div>\n</div>\n\n<div\n *ngIf=\"!loading() && hasDocuments() && isListMode()\"\n class=\"c-components-grid\"\n>\n <ul class=\"c-doc-list\">\n <li\n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\"\n class=\"c-doc-list__item\"\n >\n <div class=\"c-doc\">\n <div\n class=\"c-bulleted-text\"\n *ngIf=\"config().showUploadDate || config().showUploadedBy\"\n >\n <time\n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\"\n >\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p\n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\"\n >\n {{ document.description }}\n </p>\n </div>\n\n <div class=\"c-doc__group-btns\">\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DOWNLOAD,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DELETE,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.HELP,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n\n<!-- Loading state -->\n<div *ngIf=\"loading()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon icon-loading\"></span>\n <p class=\"c-empty-state__message\">{{ \"commons.loading\" | translate }}</p>\n </div>\n</div>\n\n<!-- Empty state - No documents -->\n<div\n *ngIf=\"!loading() && !hasDocuments() && config().showUploadButton\"\n class=\"c-empty-state\"\n>\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon\" [class]=\"getEmptyStateIcon()\"></span>\n <p class=\"c-empty-state__message\">\n {{ getEmptyStateMessage() | translate }}\n </p>\n\n <!-- Upload button if user can upload -->\n <core-generic-button\n *ngIf=\"canUpload()\"\n [config]=\"uploadButtonConfig()\"\n (buttonClick)=\"onUploadClick($event.originalEvent)\"\n >\n </core-generic-button>\n </div>\n</div>\n", styles: [".c-empty-state{--_color-main-hsl: var(--color-neutral-800-hsl);--_color-text-hsl: var(--color-neutral-800-hsl);--_py: 4em;--_px: 1.5em;--_br: var(--core-main-br);--_fz: var(--fz-200);display:flex;justify-content:center;align-items:center;text-align:center;padding:var(--_py) var(--_px);background-color:hsl(var(--_color-main-hsl)/4%);border-radius:var(--_br);font-size:var(--_fz);font-weight:600;max-width:100rem}.c-empty-state__content{max-width:25em}.c-empty-state__icon{display:block;font-size:2.4em;margin-bottom:.6em;opacity:.7}.c-empty-state__icon.icon-loading{animation:spin 1s linear infinite}.c-empty-state__message{color:#6b7280;line-height:1.5}.c-empty-state core-generic-button{display:block;margin-top:1.8em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }] });
15285
15286
  }
15286
15287
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericDocumentationComponent, decorators: [{
15287
15288
  type: Component,
15288
- args: [{ selector: 'core-generic-documentation', standalone: true, imports: [CommonModule, TranslateModule, GenericButtonComponent], hostDirectives: [CoreHostDirective], template: "<div *ngIf=\"!loading() && hasDocuments() && isGridMode()\" class=\"c-components-grid\">\n <div \n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\" \n class=\"c-doc\">\n \n <div class=\"c-bulleted-text\" *ngIf=\"config().showUploadDate || config().showUploadedBy\">\n <time \n *ngIf=\"config().showUploadDate\"\n \n [attr.datetime]=\"document.uploadedDate\">\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span \n *ngIf=\"config().showUploadedBy\"\n >\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p \n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\">\n {{ document.description }}\n </p>\n </div>\n <!-- DEV: Ajustar botones -->\n <div class=\"c-doc__group-btns\">\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DOWNLOAD, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DELETE, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.HELP, document, $event.originalEvent)\">\n </core-generic-button>\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"!loading() && hasDocuments() && isListMode()\" class=\"c-components-grid\">\n <ul class=\"c-doc-list\">\n <li \n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\" \n class=\"c-doc-list__item\">\n \n <div class=\"c-doc\">\n <div class=\"c-bulleted-text\" *ngIf=\"config().showUploadDate || config().showUploadedBy\">\n <time \n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\">\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span \n *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p \n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\">\n {{ document.description }}\n </p>\n </div>\n\n <div class=\"c-doc__group-btns\">\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DOWNLOAD, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DELETE, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.HELP, document, $event.originalEvent)\">\n </core-generic-button>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n\n<!-- Loading state -->\n<div *ngIf=\"loading()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon icon-loading\"></span>\n <p class=\"c-empty-state__message\">{{ 'commons.loading' | translate }}</p>\n </div>\n</div>\n\n<!-- Empty state - No documents -->\n<div *ngIf=\"!loading() && !hasDocuments()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon\" [class]=\"getEmptyStateIcon()\"></span>\n <p class=\"c-empty-state__message\">{{ getEmptyStateMessage() | translate }}</p>\n \n <!-- Upload button if user can upload -->\n <core-generic-button \n *ngIf=\"canUpload()\"\n [config]=\"uploadButtonConfig()\"\n (buttonClick)=\"onUploadClick($event.originalEvent)\">\n </core-generic-button>\n </div>\n</div>\n", styles: [".c-empty-state{--_color-main-hsl: var(--color-neutral-800-hsl);--_color-text-hsl: var(--color-neutral-800-hsl);--_py: 4em;--_px: 1.5em;--_br: var(--core-main-br);--_fz: var(--fz-200);display:flex;justify-content:center;align-items:center;text-align:center;padding:var(--_py) var(--_px);background-color:hsl(var(--_color-main-hsl)/4%);border-radius:var(--_br);font-size:var(--_fz);font-weight:600;max-width:100rem}.c-empty-state__content{max-width:25em}.c-empty-state__icon{display:block;font-size:2.4em;margin-bottom:.6em;opacity:.7}.c-empty-state__icon.icon-loading{animation:spin 1s linear infinite}.c-empty-state__message{color:#6b7280;line-height:1.5}.c-empty-state core-generic-button{display:block;margin-top:1.8em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
15289
+ args: [{ selector: 'core-generic-documentation', standalone: true, imports: [CommonModule, TranslateModule, GenericButtonComponent], hostDirectives: [CoreHostDirective], template: "<div\n *ngIf=\"!loading() && hasDocuments() && isGridMode()\"\n class=\"c-components-grid\"\n>\n <div\n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\"\n class=\"c-doc\"\n >\n <div\n class=\"c-bulleted-text\"\n *ngIf=\"config().showUploadDate || config().showUploadedBy\"\n >\n <time\n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\"\n >\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p\n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\"\n >\n {{ document.description }}\n </p>\n </div>\n <!-- DEV: Ajustar botones -->\n <div class=\"c-doc__group-btns\">\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DOWNLOAD,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(DocumentAction.DELETE, document, $event.originalEvent)\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(DocumentAction.HELP, document, $event.originalEvent)\n \"\n >\n </core-generic-button>\n </div>\n </div>\n </div>\n</div>\n\n<div\n *ngIf=\"!loading() && hasDocuments() && isListMode()\"\n class=\"c-components-grid\"\n>\n <ul class=\"c-doc-list\">\n <li\n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\"\n class=\"c-doc-list__item\"\n >\n <div class=\"c-doc\">\n <div\n class=\"c-bulleted-text\"\n *ngIf=\"config().showUploadDate || config().showUploadedBy\"\n >\n <time\n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\"\n >\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p\n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\"\n >\n {{ document.description }}\n </p>\n </div>\n\n <div class=\"c-doc__group-btns\">\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DOWNLOAD,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.DELETE,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n\n <core-generic-button\n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"\n onButtonClick(\n DocumentAction.HELP,\n document,\n $event.originalEvent\n )\n \"\n >\n </core-generic-button>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n\n<!-- Loading state -->\n<div *ngIf=\"loading()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon icon-loading\"></span>\n <p class=\"c-empty-state__message\">{{ \"commons.loading\" | translate }}</p>\n </div>\n</div>\n\n<!-- Empty state - No documents -->\n<div\n *ngIf=\"!loading() && !hasDocuments() && config().showUploadButton\"\n class=\"c-empty-state\"\n>\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon\" [class]=\"getEmptyStateIcon()\"></span>\n <p class=\"c-empty-state__message\">\n {{ getEmptyStateMessage() | translate }}\n </p>\n\n <!-- Upload button if user can upload -->\n <core-generic-button\n *ngIf=\"canUpload()\"\n [config]=\"uploadButtonConfig()\"\n (buttonClick)=\"onUploadClick($event.originalEvent)\"\n >\n </core-generic-button>\n </div>\n</div>\n", styles: [".c-empty-state{--_color-main-hsl: var(--color-neutral-800-hsl);--_color-text-hsl: var(--color-neutral-800-hsl);--_py: 4em;--_px: 1.5em;--_br: var(--core-main-br);--_fz: var(--fz-200);display:flex;justify-content:center;align-items:center;text-align:center;padding:var(--_py) var(--_px);background-color:hsl(var(--_color-main-hsl)/4%);border-radius:var(--_br);font-size:var(--_fz);font-weight:600;max-width:100rem}.c-empty-state__content{max-width:25em}.c-empty-state__icon{display:block;font-size:2.4em;margin-bottom:.6em;opacity:.7}.c-empty-state__icon.icon-loading{animation:spin 1s linear infinite}.c-empty-state__message{color:#6b7280;line-height:1.5}.c-empty-state core-generic-button{display:block;margin-top:1.8em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
15289
15290
  }], ctorParameters: () => [] });
15290
15291
 
15291
15292
  class LayoutService {
@@ -16647,11 +16648,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
16647
16648
  // Este archivo es generado automáticamente por scripts/update-version.js
16648
16649
  // No edites manualmente este archivo
16649
16650
  const VERSION = {
16650
- full: '2.17.1',
16651
+ full: '2.17.2',
16651
16652
  major: 2,
16652
16653
  minor: 17,
16653
- patch: 1,
16654
- timestamp: '2025-12-16T13:58:16.774Z',
16654
+ patch: 2,
16655
+ timestamp: '2025-12-16T15:13:31.821Z',
16655
16656
  buildDate: '16/12/2025'
16656
16657
  };
16657
16658