intelica-library-components 1.1.91 → 1.1.93

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.
@@ -6106,11 +6106,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
6106
6106
 
6107
6107
  class IntelicaAlertComponent {
6108
6108
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IntelicaAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6109
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: IntelicaAlertComponent, isStandalone: true, selector: "intelica-alert", ngImport: i0, template: "<!-- \r\n Clases Modificadoras para estados:\r\n prConfirmDialog--warning\r\n prConfirmDialog--danger\r\n prConfirmDialog--error\r\n prConfirmDialog--success\r\n prConfirmDialog--default\r\n-->\r\n<p-confirmDialog #cd\r\n [styleClass]=\"'prConfirmDialog ' + ($any(cd.confirmation)?.data?.config?.type ? ' prConfirmDialog--' + $any(cd.confirmation).data.config.type : ' prConfirmDialog--default')\"\r\n key=\"intelica-alert-dialog\" [closable]=\"false\" [visible]=\"undefined\">\r\n <!-- \r\n We use the headless template. \r\n 'message' contains the confirmation object.\r\n 'message.data' contains our custom 'presentationData' object from AlertService.\r\n -->\r\n <ng-template pTemplate=\"headless\" let-message let-onAccept=\"onAccept\" let-onReject=\"onReject\">\r\n <div class=\"prConfirmDialog__content\">\r\n <!-- Close Button -->\r\n @if (message.data.config.showCloseButton) {\r\n <div class=\"prConfirmDialog__close\">\r\n <p-button class=\"prButton\" [rounded]=\"false\" [text]=\"true\" (onClick)=\"onReject()\" ariaLabel=\"Cerrar\">\r\n <i class=\"icon icon-cancel\" style=\"color: #333;\"></i></p-button>\r\n </div>\r\n }\r\n\r\n <!-- Icon -->\r\n <div class=\"prConfirmDialog__icon\">\r\n @if (message.data.config.customImageUrl) {\r\n <img [src]=\"message.data.config.customImageUrl\" alt=\"Alert icon\" />\r\n } @else {\r\n <i [class]=\"$any(message).data.iconClass\"></i>\r\n }\r\n </div>\r\n <div class=\"prConfirmDialog__details\">\r\n <!-- Title -->\r\n <h2 class=\"prConfirmDialog__title\">{{ message.header }}</h2>\r\n\r\n <!-- Subtitle / Message -->\r\n @if (message.message) {\r\n <p class=\"prConfirmDialog__subtitle\"\r\n [style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\">{{ message.message }}</p>\r\n }\r\n </div>\r\n\r\n <!-- HTML Content -->\r\n @if (message.data.config.htmlContent) {\r\n <div class=\"prConfirmDialog__text\" [innerHTML]=\"$any(message).data.config.htmlContent\"\r\n [style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\"></div>\r\n }\r\n\r\n <!-- Buttons -->\r\n <div class=\"prConfirmDialog__footer\">\r\n <!-- Confirm Button -->\r\n <p-button class=\"prButton\" [label]=\"message.data.confirmText\" (onClick)=\"onAccept()\" />\r\n <!-- Cancel Button -->\r\n @if (message.data.showCancelButton) {\r\n <p-button class=\"prButton\" [label]=\"message.data.cancelText\" severity=\"secondary\" [outlined]=\"true\"\r\n (onClick)=\"onReject()\" />\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-confirmDialog>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i1$3.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }] });
6109
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: IntelicaAlertComponent, isStandalone: true, selector: "intelica-alert", ngImport: i0, template: "<!-- \r\n Clases Modificadoras para estados:\r\n prConfirmDialog--warning\r\n prConfirmDialog--danger\r\n prConfirmDialog--error\r\n prConfirmDialog--success\r\n prConfirmDialog--default\r\n-->\r\n<p-confirmDialog #cd [styleClass]=\"'prConfirmDialog' + \r\n\t($any(cd.confirmation)?.data?.config?.type ? ' prConfirmDialog--' + $any(cd.confirmation).data.config.type : ' prConfirmDialog--default') +\r\n\t($any(cd.confirmation)?.data?.config?.size ? ' prConfirmDialog--' + $any(cd.confirmation).data.config.size : '')\"\r\n\tkey=\"intelica-alert-dialog\" [closable]=\"false\" [visible]=\"undefined\">\r\n\t<!-- \r\n We use the headless template. \r\n 'message' contains the confirmation object.\r\n 'message.data' contains our custom 'presentationData' object from AlertService.\r\n -->\r\n\t<ng-template pTemplate=\"headless\" let-message let-onAccept=\"onAccept\" let-onReject=\"onReject\">\r\n\t\t<div class=\"prConfirmDialog__content\">\r\n\t\t\t<!-- Close Button -->\r\n\t\t\t@if (message.data.config.showCloseButton) {\r\n\t\t\t<div class=\"prConfirmDialog__close\">\r\n\t\t\t\t<p-button class=\"prButton\" [rounded]=\"false\" [text]=\"true\" (onClick)=\"onReject()\" ariaLabel=\"Cerrar\">\r\n\t\t\t\t\t<i class=\"icon icon-cancel\" style=\"color: #333;\"></i></p-button>\r\n\t\t\t</div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Icon -->\r\n\t\t\t<div class=\"prConfirmDialog__icon\">\r\n\t\t\t\t@if (message.data.config.customImageUrl) {\r\n\t\t\t\t<img [src]=\"message.data.config.customImageUrl\" alt=\"Alert icon\" />\r\n\t\t\t\t} @else {\r\n\t\t\t\t<i [class]=\"$any(message).data.iconClass\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t\t<div class=\"prConfirmDialog__details\">\r\n\t\t\t\t<!-- Title -->\r\n\t\t\t\t<h2 class=\"prConfirmDialog__title\">{{ message.header }}</h2>\r\n\r\n\t\t\t\t<!-- Subtitle / Message -->\r\n\t\t\t\t@if (message.message) {\r\n\t\t\t\t<p class=\"prConfirmDialog__subtitle\"\r\n\t\t\t\t\t[style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\">{{ message.message }}</p>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\r\n\t\t\t<!-- HTML Content -->\r\n\t\t\t@if (message.data.config.htmlContent) {\r\n\t\t\t<div class=\"prConfirmDialog__text\" [innerHTML]=\"$any(message).data.config.htmlContent\"\r\n\t\t\t\t[style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\"></div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Buttons -->\r\n\t\t\t<div class=\"prConfirmDialog__footer\">\r\n\t\t\t\t<!-- Confirm Button -->\r\n\t\t\t\t<p-button class=\"prButton\" [label]=\"message.data.confirmText\" (onClick)=\"onAccept()\" />\r\n\t\t\t\t<!-- Cancel Button -->\r\n\t\t\t\t@if (message.data.showCancelButton) {\r\n\t\t\t\t<p-button class=\"prButton\" [label]=\"message.data.cancelText\" severity=\"secondary\" [outlined]=\"true\"\r\n\t\t\t\t\t(onClick)=\"onReject()\" />\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-confirmDialog>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i1$3.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }] });
6110
6110
  }
6111
6111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IntelicaAlertComponent, decorators: [{
6112
6112
  type: Component,
6113
- args: [{ selector: "intelica-alert", standalone: true, imports: [CommonModule, ConfirmDialogModule, ButtonModule], template: "<!-- \r\n Clases Modificadoras para estados:\r\n prConfirmDialog--warning\r\n prConfirmDialog--danger\r\n prConfirmDialog--error\r\n prConfirmDialog--success\r\n prConfirmDialog--default\r\n-->\r\n<p-confirmDialog #cd\r\n [styleClass]=\"'prConfirmDialog ' + ($any(cd.confirmation)?.data?.config?.type ? ' prConfirmDialog--' + $any(cd.confirmation).data.config.type : ' prConfirmDialog--default')\"\r\n key=\"intelica-alert-dialog\" [closable]=\"false\" [visible]=\"undefined\">\r\n <!-- \r\n We use the headless template. \r\n 'message' contains the confirmation object.\r\n 'message.data' contains our custom 'presentationData' object from AlertService.\r\n -->\r\n <ng-template pTemplate=\"headless\" let-message let-onAccept=\"onAccept\" let-onReject=\"onReject\">\r\n <div class=\"prConfirmDialog__content\">\r\n <!-- Close Button -->\r\n @if (message.data.config.showCloseButton) {\r\n <div class=\"prConfirmDialog__close\">\r\n <p-button class=\"prButton\" [rounded]=\"false\" [text]=\"true\" (onClick)=\"onReject()\" ariaLabel=\"Cerrar\">\r\n <i class=\"icon icon-cancel\" style=\"color: #333;\"></i></p-button>\r\n </div>\r\n }\r\n\r\n <!-- Icon -->\r\n <div class=\"prConfirmDialog__icon\">\r\n @if (message.data.config.customImageUrl) {\r\n <img [src]=\"message.data.config.customImageUrl\" alt=\"Alert icon\" />\r\n } @else {\r\n <i [class]=\"$any(message).data.iconClass\"></i>\r\n }\r\n </div>\r\n <div class=\"prConfirmDialog__details\">\r\n <!-- Title -->\r\n <h2 class=\"prConfirmDialog__title\">{{ message.header }}</h2>\r\n\r\n <!-- Subtitle / Message -->\r\n @if (message.message) {\r\n <p class=\"prConfirmDialog__subtitle\"\r\n [style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\">{{ message.message }}</p>\r\n }\r\n </div>\r\n\r\n <!-- HTML Content -->\r\n @if (message.data.config.htmlContent) {\r\n <div class=\"prConfirmDialog__text\" [innerHTML]=\"$any(message).data.config.htmlContent\"\r\n [style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\"></div>\r\n }\r\n\r\n <!-- Buttons -->\r\n <div class=\"prConfirmDialog__footer\">\r\n <!-- Confirm Button -->\r\n <p-button class=\"prButton\" [label]=\"message.data.confirmText\" (onClick)=\"onAccept()\" />\r\n <!-- Cancel Button -->\r\n @if (message.data.showCancelButton) {\r\n <p-button class=\"prButton\" [label]=\"message.data.cancelText\" severity=\"secondary\" [outlined]=\"true\"\r\n (onClick)=\"onReject()\" />\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-confirmDialog>" }]
6113
+ args: [{ selector: "intelica-alert", standalone: true, imports: [CommonModule, ConfirmDialogModule, ButtonModule], template: "<!-- \r\n Clases Modificadoras para estados:\r\n prConfirmDialog--warning\r\n prConfirmDialog--danger\r\n prConfirmDialog--error\r\n prConfirmDialog--success\r\n prConfirmDialog--default\r\n-->\r\n<p-confirmDialog #cd [styleClass]=\"'prConfirmDialog' + \r\n\t($any(cd.confirmation)?.data?.config?.type ? ' prConfirmDialog--' + $any(cd.confirmation).data.config.type : ' prConfirmDialog--default') +\r\n\t($any(cd.confirmation)?.data?.config?.size ? ' prConfirmDialog--' + $any(cd.confirmation).data.config.size : '')\"\r\n\tkey=\"intelica-alert-dialog\" [closable]=\"false\" [visible]=\"undefined\">\r\n\t<!-- \r\n We use the headless template. \r\n 'message' contains the confirmation object.\r\n 'message.data' contains our custom 'presentationData' object from AlertService.\r\n -->\r\n\t<ng-template pTemplate=\"headless\" let-message let-onAccept=\"onAccept\" let-onReject=\"onReject\">\r\n\t\t<div class=\"prConfirmDialog__content\">\r\n\t\t\t<!-- Close Button -->\r\n\t\t\t@if (message.data.config.showCloseButton) {\r\n\t\t\t<div class=\"prConfirmDialog__close\">\r\n\t\t\t\t<p-button class=\"prButton\" [rounded]=\"false\" [text]=\"true\" (onClick)=\"onReject()\" ariaLabel=\"Cerrar\">\r\n\t\t\t\t\t<i class=\"icon icon-cancel\" style=\"color: #333;\"></i></p-button>\r\n\t\t\t</div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Icon -->\r\n\t\t\t<div class=\"prConfirmDialog__icon\">\r\n\t\t\t\t@if (message.data.config.customImageUrl) {\r\n\t\t\t\t<img [src]=\"message.data.config.customImageUrl\" alt=\"Alert icon\" />\r\n\t\t\t\t} @else {\r\n\t\t\t\t<i [class]=\"$any(message).data.iconClass\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t\t<div class=\"prConfirmDialog__details\">\r\n\t\t\t\t<!-- Title -->\r\n\t\t\t\t<h2 class=\"prConfirmDialog__title\">{{ message.header }}</h2>\r\n\r\n\t\t\t\t<!-- Subtitle / Message -->\r\n\t\t\t\t@if (message.message) {\r\n\t\t\t\t<p class=\"prConfirmDialog__subtitle\"\r\n\t\t\t\t\t[style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\">{{ message.message }}</p>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\r\n\t\t\t<!-- HTML Content -->\r\n\t\t\t@if (message.data.config.htmlContent) {\r\n\t\t\t<div class=\"prConfirmDialog__text\" [innerHTML]=\"$any(message).data.config.htmlContent\"\r\n\t\t\t\t[style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\"></div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Buttons -->\r\n\t\t\t<div class=\"prConfirmDialog__footer\">\r\n\t\t\t\t<!-- Confirm Button -->\r\n\t\t\t\t<p-button class=\"prButton\" [label]=\"message.data.confirmText\" (onClick)=\"onAccept()\" />\r\n\t\t\t\t<!-- Cancel Button -->\r\n\t\t\t\t@if (message.data.showCancelButton) {\r\n\t\t\t\t<p-button class=\"prButton\" [label]=\"message.data.cancelText\" severity=\"secondary\" [outlined]=\"true\"\r\n\t\t\t\t\t(onClick)=\"onReject()\" />\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-confirmDialog>" }]
6114
6114
  }] });
6115
6115
 
6116
6116
  class GlobalFavoriteService {
@@ -6862,7 +6862,7 @@ const ALERT_ICON_PATHS = {
6862
6862
  * [AlertType.ERROR]: 'icon icon-alert',
6863
6863
  * }}
6864
6864
  */
6865
- const ALERT_ICON_OVERRIDES = new InjectionToken('ALERT_ICON_OVERRIDES');
6865
+ const ALERT_ICON_OVERRIDES = new InjectionToken("ALERT_ICON_OVERRIDES");
6866
6866
  /**
6867
6867
  * Centralized configuration for each alert type using PrimeNG icons.
6868
6868
  */
@@ -7292,12 +7292,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
7292
7292
  class AlertService {
7293
7293
  confirmationService = inject(ConfirmationService);
7294
7294
  iconOverrides = inject(ALERT_ICON_OVERRIDES, { optional: true });
7295
- DIALOG_KEY = 'intelica-alert-dialog';
7295
+ DIALOG_KEY = "intelica-alert-dialog";
7296
7296
  /**
7297
7297
  * Displays a warning alert with yellow styling.
7298
7298
  * Can be called with (title, subtitle, buttonMode, buttons) OR (title, subtitle, buttons).
7299
7299
  */
7300
- warning(title, subtitle, modeOrButtons, buttons) {
7300
+ warning(title, subtitle, modeOrButtons, buttons, size) {
7301
7301
  const { buttonMode, buttonConfig } = this.resolveArgs(modeOrButtons, buttons);
7302
7302
  return this.show({
7303
7303
  type: AlertType.WARNING,
@@ -7305,13 +7305,14 @@ class AlertService {
7305
7305
  subtitle,
7306
7306
  buttonMode,
7307
7307
  buttons: buttonConfig,
7308
+ size,
7308
7309
  });
7309
7310
  }
7310
7311
  /**
7311
7312
  * Displays a success alert with green styling.
7312
7313
  * Can be called with (title, subtitle, buttonMode, buttons) OR (title, subtitle, buttons).
7313
7314
  */
7314
- success(title, subtitle, modeOrButtons, buttons) {
7315
+ success(title, subtitle, modeOrButtons, buttons, size) {
7315
7316
  const { buttonMode, buttonConfig } = this.resolveArgs(modeOrButtons, buttons);
7316
7317
  return this.show({
7317
7318
  type: AlertType.SUCCESS,
@@ -7319,13 +7320,14 @@ class AlertService {
7319
7320
  subtitle,
7320
7321
  buttonMode,
7321
7322
  buttons: buttonConfig,
7323
+ size,
7322
7324
  });
7323
7325
  }
7324
7326
  /**
7325
7327
  * Displays an error alert with red styling.
7326
7328
  * Can be called with (title, subtitle, buttonMode, buttons) OR (title, subtitle, buttons).
7327
7329
  */
7328
- error(title, subtitle, modeOrButtons, buttons) {
7330
+ error(title, subtitle, modeOrButtons, buttons, size) {
7329
7331
  const { buttonMode, buttonConfig } = this.resolveArgs(modeOrButtons, buttons);
7330
7332
  return this.show({
7331
7333
  type: AlertType.ERROR,
@@ -7333,6 +7335,7 @@ class AlertService {
7333
7335
  subtitle,
7334
7336
  buttonMode,
7335
7337
  buttons: buttonConfig,
7338
+ size,
7336
7339
  });
7337
7340
  }
7338
7341
  /**
@@ -7341,20 +7344,20 @@ class AlertService {
7341
7344
  * If 3rd arg is string (enum), treat it as mode and 4th as buttons config.
7342
7345
  */
7343
7346
  resolveArgs(modeOrButtons, buttons) {
7344
- if (modeOrButtons && typeof modeOrButtons === 'object') {
7347
+ if (modeOrButtons && typeof modeOrButtons === "object") {
7345
7348
  // USAGE: success(title, subtitle, { confirmText: 'Ok', cancelText: 'Cancel' })
7346
7349
  // Auto-detect mode based on presence of cancelText
7347
7350
  const hasCancel = !!modeOrButtons.cancelText;
7348
7351
  return {
7349
7352
  buttonMode: hasCancel ? AlertButtonMode.CONFIRM_CANCEL : AlertButtonMode.OK_ONLY,
7350
- buttonConfig: modeOrButtons
7353
+ buttonConfig: modeOrButtons,
7351
7354
  };
7352
7355
  }
7353
7356
  // USAGE: success(title, subtitle, AlertButtonMode.CONFIRM_CANCEL, { ... })
7354
7357
  // OR default
7355
7358
  return {
7356
7359
  buttonMode: modeOrButtons ?? AlertButtonMode.OK_ONLY,
7357
- buttonConfig: buttons
7360
+ buttonConfig: buttons,
7358
7361
  };
7359
7362
  }
7360
7363
  message(message, type = AlertType.WARNING) {
@@ -7364,13 +7367,14 @@ class AlertService {
7364
7367
  buttonMode: AlertButtonMode.OK_ONLY,
7365
7368
  });
7366
7369
  }
7367
- confirm(title, subtitle, confirmText = "Confirmar", cancelText = "Cancelar", type = AlertType.WARNING) {
7370
+ confirm(title, subtitle, confirmText = "Confirmar", cancelText = "Cancelar", type = AlertType.WARNING, size) {
7368
7371
  return this.show({
7369
7372
  type,
7370
7373
  title,
7371
7374
  subtitle,
7372
7375
  buttonMode: AlertButtonMode.CONFIRM_CANCEL,
7373
7376
  buttons: { confirmText, cancelText },
7377
+ size,
7374
7378
  });
7375
7379
  }
7376
7380
  showHtml(title, htmlContent, type = AlertType.WARNING, buttonMode = AlertButtonMode.OK_ONLY) {
@@ -7388,7 +7392,7 @@ class AlertService {
7388
7392
  });
7389
7393
  }
7390
7394
  show(config) {
7391
- return new Promise((resolve) => {
7395
+ return new Promise(resolve => {
7392
7396
  const mergedConfig = this.mergeWithDefaults(config);
7393
7397
  const typeConfig = ALERT_TYPE_CONFIG[mergedConfig.type];
7394
7398
  // Prepare data object for the view
@@ -7402,15 +7406,9 @@ class AlertService {
7402
7406
  showCancelButton: this.showCancelButton(mergedConfig),
7403
7407
  confirmText: this.getConfirmText(mergedConfig),
7404
7408
  cancelText: this.getCancelText(mergedConfig),
7405
- dialogStyle: {
7406
- width: mergedConfig.styles?.width ?? "400px",
7407
- maxWidth: "90vw",
7408
- borderRadius: "12px",
7409
- overflow: "hidden",
7410
- },
7411
7409
  confirmButtonStyle: this.getConfirmButtonStyle(mergedConfig),
7412
7410
  cancelButtonStyle: this.getCancelButtonStyle(mergedConfig),
7413
- // Add manual dismiss handler to data so template can call it if needed,
7411
+ // Add manual dismiss handler to data so template can call it if needed,
7414
7412
  // though explicit close button in template can just use reject or logic.
7415
7413
  // For custom headers/X buttons usually we initiate close.
7416
7414
  };
@@ -8291,13 +8289,40 @@ class GlobalMenuService {
8291
8289
  selectedProduct = this._selectedProduct.asReadonly();
8292
8290
  eventMenu = "MenuBarEvent";
8293
8291
  eventProducts = "SelectedProductMenuEvent";
8292
+ COOKIE_PRODUCT = "intelica:selected-product";
8293
+ COOKIE_MENU = "intelica:menu-visible";
8294
+ initialized = false;
8294
8295
  initialize() {
8296
+ if (this.initialized)
8297
+ return;
8295
8298
  this.listenMenuEvents();
8299
+ this.hydrateFromCookies();
8300
+ this.initialized = true;
8301
+ }
8302
+ hydrateFromCookies() {
8303
+ const productCookie = getCookie(this.COOKIE_PRODUCT);
8304
+ if (productCookie) {
8305
+ try {
8306
+ const parsed = JSON.parse(productCookie);
8307
+ this._selectedProduct.set({
8308
+ product: parsed.product ?? "",
8309
+ icon: parsed.icon ?? "",
8310
+ productId: parsed.productId ?? "",
8311
+ });
8312
+ }
8313
+ catch { }
8314
+ }
8315
+ const menuCookie = getCookie(this.COOKIE_MENU);
8316
+ if (menuCookie !== undefined) {
8317
+ this._isMenuVisible.set(menuCookie === "true");
8318
+ }
8296
8319
  }
8297
8320
  setMenuVisibility(isVisible) {
8321
+ setCookie(this.COOKIE_MENU, String(isVisible)); // 👈 NUEVO
8298
8322
  this.emitMenuEvent(isVisible);
8299
8323
  }
8300
8324
  setSelectedProduct(product) {
8325
+ setCookie(this.COOKIE_PRODUCT, JSON.stringify(product)); // 👈 NUEVO
8301
8326
  this.emitSelectedProductEvent(product);
8302
8327
  }
8303
8328
  listenMenuEvents() {
@@ -8306,8 +8331,10 @@ class GlobalMenuService {
8306
8331
  }
8307
8332
  onMenuEvent = (event) => {
8308
8333
  const { menuIsVisible } = event.detail ?? {};
8309
- if (typeof menuIsVisible === "boolean")
8334
+ if (typeof menuIsVisible === "boolean") {
8310
8335
  this._isMenuVisible.set(menuIsVisible);
8336
+ setCookie(this.COOKIE_MENU, String(menuIsVisible)); // 👈 NUEVO
8337
+ }
8311
8338
  };
8312
8339
  onSelectedProductEvent = (event) => {
8313
8340
  const detail = event.detail;
@@ -8315,7 +8342,9 @@ class GlobalMenuService {
8315
8342
  return;
8316
8343
  const { product, icon, productId: authClient } = detail;
8317
8344
  if (typeof product === "string" && typeof icon === "string" && typeof authClient === "string") {
8318
- this._selectedProduct.set({ product, icon, productId: authClient });
8345
+ const normalized = { product, icon, productId: authClient };
8346
+ this._selectedProduct.set(normalized);
8347
+ setCookie(this.COOKIE_PRODUCT, JSON.stringify(normalized)); // 👈 NUEVO
8319
8348
  }
8320
8349
  };
8321
8350
  emitMenuEvent(isVisible) {