sidesys-generic-ui 2.4.2 → 2.4.4

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.
Files changed (49) hide show
  1. package/esm2022/lib/icon-material/s-icon-material.component.mjs +2 -2
  2. package/esm2022/lib/input/components/calendar/s-calendar.component.mjs +3 -3
  3. package/esm2022/lib/input/components/color/s-color.component.mjs +7 -4
  4. package/esm2022/lib/input/components/input/s-input-model.mjs +3 -1
  5. package/esm2022/lib/input/components/input/s-input.component.mjs +16 -23
  6. package/esm2022/lib/input/components/input-number/s-input-number.component.mjs +19 -3
  7. package/esm2022/lib/input/components/input-textarea/s-input-textarea.component.mjs +3 -3
  8. package/esm2022/lib/input/components/slider/s-slider.component.mjs +208 -0
  9. package/esm2022/lib/input/components/time/s-time.component.mjs +3 -3
  10. package/esm2022/lib/input/index.mjs +2 -2
  11. package/esm2022/lib/input/input.module.mjs +6 -6
  12. package/esm2022/lib/list-simple/s-list-simple.component.mjs +2 -2
  13. package/esm2022/lib/modal/modal-confirm/modal-confirm.component.mjs +4 -4
  14. package/esm2022/lib/modal/modal-confirm/models/modal-confirm.interface.mjs +1 -1
  15. package/esm2022/lib/select/select/s-select.component.mjs +10 -9
  16. package/esm2022/lib/select/select-multiple/s-select-multiple.component.mjs +3 -3
  17. package/esm2022/lib/select/select-multiple-old/s-select-multiple-old.component.mjs +2 -2
  18. package/esm2022/lib/select/select-simple/s-select-simple.component.mjs +2 -2
  19. package/esm2022/lib/table-complete/table-complete.component.mjs +14 -5
  20. package/esm2022/lib/table-double/table-double.component.mjs +207 -53
  21. package/esm2022/lib/table-double/table-double.model.mjs +1 -1
  22. package/esm2022/lib/table-double-complete/table-double-complete.component.mjs +256 -0
  23. package/esm2022/lib/table-double-complete/table-double-complete.model.mjs +2 -0
  24. package/esm2022/lib/table-t/s-tablet.component.mjs +7 -4
  25. package/esm2022/lib/table-t/table-actions-buttons/table-actions-buttons.component.mjs +2 -2
  26. package/esm2022/lib/tabs/models/configTabs.interface.mjs +1 -1
  27. package/esm2022/lib/tabs/s-tabs.component.mjs +3 -3
  28. package/esm2022/public-api.mjs +2 -1
  29. package/fesm2022/sidesys-generic-ui.mjs +600 -164
  30. package/fesm2022/sidesys-generic-ui.mjs.map +1 -1
  31. package/lib/input/components/color/s-color.component.d.ts +2 -1
  32. package/lib/input/components/input/s-input-model.d.ts +2 -0
  33. package/lib/input/components/input/s-input.component.d.ts +2 -2
  34. package/lib/input/components/input-number/s-input-number.component.d.ts +2 -0
  35. package/lib/input/components/slider/s-slider.component.d.ts +48 -0
  36. package/lib/input/index.d.ts +1 -1
  37. package/lib/input/input.module.d.ts +2 -2
  38. package/lib/modal/modal-confirm/models/modal-confirm.interface.d.ts +1 -1
  39. package/lib/table-complete/table-complete.component.d.ts +4 -0
  40. package/lib/table-double/table-double.component.d.ts +45 -22
  41. package/lib/table-double/table-double.model.d.ts +24 -3
  42. package/lib/table-double-complete/table-double-complete.component.d.ts +38 -0
  43. package/lib/table-double-complete/table-double-complete.model.d.ts +37 -0
  44. package/lib/table-t/s-tablet.component.d.ts +2 -1
  45. package/lib/tabs/models/configTabs.interface.d.ts +4 -0
  46. package/package.json +1 -1
  47. package/public-api.d.ts +2 -0
  48. package/esm2022/lib/input/components/range/s-range.component.mjs +0 -196
  49. package/lib/input/components/range/s-range.component.d.ts +0 -45
@@ -66,11 +66,11 @@ class SIconMaterialComponent {
66
66
  }
67
67
  }
68
68
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIconMaterialComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
69
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: { name: "name", size: "size", fill: "fill", weight: "weight", grade: "grade", opticalSize: "opticalSize", style: "style", type: "type" }, viewQueries: [{ propertyName: "Icon", first: true, predicate: ["icon"], descendants: true, static: true }], ngImport: i0, template: "<div #icon class=\"s-icon-mat\">\n <span [ngClass]=\"optionsType\" [ngStyle]=\"computedStyles\">\n <ng-content *ngIf=\"!name\"></ng-content>\n <ng-container *ngIf=\"name\">{{name}}</ng-container>\n </span>\n</div>", styles: ["@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v292/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOej.woff2) format(\"woff2\")}.s-icon-mat{display:flex}.s-icon-mat .material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:1.5rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}.s-icon-mat .material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:1.5rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: { name: "name", size: "size", fill: "fill", weight: "weight", grade: "grade", opticalSize: "opticalSize", style: "style", type: "type" }, viewQueries: [{ propertyName: "Icon", first: true, predicate: ["icon"], descendants: true, static: true }], ngImport: i0, template: "<div #icon class=\"s-icon-mat\">\n <span [ngClass]=\"optionsType\" [ngStyle]=\"computedStyles\">\n <ng-content *ngIf=\"!name\"></ng-content>\n <ng-container *ngIf=\"name\">{{name}}</ng-container>\n </span>\n</div>", styles: ["@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v316/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOejbd5zrDAt.woff2) format(\"woff2\")}.s-icon-mat{display:flex}.s-icon-mat .material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:1.5rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}.s-icon-mat .material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:1.5rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
70
70
  }
71
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIconMaterialComponent, decorators: [{
72
72
  type: Component,
73
- args: [{ selector: 's-icon-mat', encapsulation: ViewEncapsulation.None, template: "<div #icon class=\"s-icon-mat\">\n <span [ngClass]=\"optionsType\" [ngStyle]=\"computedStyles\">\n <ng-content *ngIf=\"!name\"></ng-content>\n <ng-container *ngIf=\"name\">{{name}}</ng-container>\n </span>\n</div>", styles: ["@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v292/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOej.woff2) format(\"woff2\")}.s-icon-mat{display:flex}.s-icon-mat .material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:1.5rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}.s-icon-mat .material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:1.5rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"] }]
73
+ args: [{ selector: 's-icon-mat', encapsulation: ViewEncapsulation.None, template: "<div #icon class=\"s-icon-mat\">\n <span [ngClass]=\"optionsType\" [ngStyle]=\"computedStyles\">\n <ng-content *ngIf=\"!name\"></ng-content>\n <ng-container *ngIf=\"name\">{{name}}</ng-container>\n </span>\n</div>", styles: ["@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v316/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOejbd5zrDAt.woff2) format(\"woff2\")}.s-icon-mat{display:flex}.s-icon-mat .material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:1.5rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}.s-icon-mat .material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:1.5rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"] }]
74
74
  }], propDecorators: { Icon: [{
75
75
  type: ViewChild,
76
76
  args: ['icon', { static: true }]
@@ -1474,6 +1474,8 @@ class SInput {
1474
1474
  const INPUTS_REGEX = {
1475
1475
  URL: /^(https?:\/\/)?([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,6}(\/[a-zA-Z0-9#]+\/?)*$/,
1476
1476
  EMAIL: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,
1477
+ ALPHANUMERIC: /[a-zA-ZáéíóúÁÉÍÓÚñÑ0-9._\- ]/g,
1478
+ SEARCH: /^[a-zA-ZáéíóúÁÉÍÓÚñÑ0-9._\- ]*$/,
1477
1479
  };
1478
1480
  var INPUT_TYPE;
1479
1481
  (function (INPUT_TYPE) {
@@ -1685,18 +1687,18 @@ class SInputComponent extends ControlValueAccessorDirective {
1685
1687
  this.blur = new EventEmitter();
1686
1688
  this.focus = new EventEmitter();
1687
1689
  this.iconSymbol = false;
1688
- this.ICON_THEME = ICON_THEME;
1689
1690
  this.showPassword = false;
1690
1691
  this.INPUT_TYPE = INPUT_TYPE;
1691
1692
  this.THEME = THEME;
1693
+ this.ICON_THEME = ICON_THEME;
1692
1694
  this.isFocused = false;
1693
1695
  }
1694
1696
  onInput(event) {
1695
- this.patternError();
1696
1697
  const input = event.target;
1697
1698
  this.value = input.value;
1698
1699
  this.onChange(this.value);
1699
1700
  this.onTouched();
1701
+ this.patternError();
1700
1702
  }
1701
1703
  registerOnChange(fn) {
1702
1704
  if (!this.config.useFormControl) {
@@ -1707,25 +1709,18 @@ class SInputComponent extends ControlValueAccessorDirective {
1707
1709
  return this.config.theme === 'yellow' ? 'symbol' : 'icon';
1708
1710
  }
1709
1711
  showIconType() {
1710
- this.iconType = this.config.type
1711
- ? this.getIconByType(this.config.type)
1712
- : undefined;
1712
+ this.iconType = this.config.type ? this.getIconByType(this.config.type) : undefined;
1713
1713
  return !!this.iconType;
1714
1714
  }
1715
1715
  getIconByType(type) {
1716
- return type in ICON_INPUT
1717
- ? ICON_INPUT[type]
1718
- : undefined;
1716
+ return type in ICON_INPUT ? ICON_INPUT[type] : undefined;
1719
1717
  }
1720
1718
  patternError() {
1721
- if (this.config.type === INPUT_TYPE.URL &&
1722
- !INPUTS_REGEX.URL.test(this.control?.value || this.value)) {
1723
- this.errorPattern = 'Formato de url invalido.';
1724
- return;
1725
- }
1726
- if (this.config.type === INPUT_TYPE.EMAIL &&
1727
- !INPUTS_REGEX.EMAIL.test(this.control?.value || this.value)) {
1728
- this.errorPattern = 'Formato de email invalido.';
1719
+ const value = this.control?.value || this.value;
1720
+ if ((this.config.type === INPUT_TYPE.SEARCH && !INPUTS_REGEX.SEARCH.test(value)) ||
1721
+ (this.config.type === INPUT_TYPE.URL && !INPUTS_REGEX.URL.test(value)) ||
1722
+ (this.config.type === INPUT_TYPE.EMAIL && !INPUTS_REGEX.EMAIL.test(value))) {
1723
+ this.errorPattern = 'validation.invalidData';
1729
1724
  return;
1730
1725
  }
1731
1726
  this.errorPattern = undefined;
@@ -1735,16 +1730,16 @@ class SInputComponent extends ControlValueAccessorDirective {
1735
1730
  this.showPassword = !this.showPassword;
1736
1731
  }
1737
1732
  clickHelp() {
1738
- this.clickHelpIconEvent.next();
1733
+ this.clickHelpIconEvent.emit();
1739
1734
  }
1740
1735
  onBlur(event) {
1741
1736
  this.patternError();
1742
1737
  this.isFocused = false;
1743
- this.blur.next(event);
1738
+ this.blur.emit(event);
1744
1739
  }
1745
1740
  onFocus(event) {
1746
1741
  this.isFocused = true;
1747
- this.focus.next(event);
1742
+ this.focus.emit(event);
1748
1743
  }
1749
1744
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1750
1745
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SInputComponent, selector: "s-input", inputs: { config: "config" }, outputs: { clickHelpIconEvent: "clickHelpIconEvent", blur: "blur", focus: "focus" }, providers: [
@@ -1753,7 +1748,7 @@ class SInputComponent extends ControlValueAccessorDirective {
1753
1748
  useExisting: forwardRef(() => SInputComponent),
1754
1749
  multi: true,
1755
1750
  },
1756
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"s-input\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-input__label\">\n {{ config.label }}\n <span class=\"s-input__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-input__content {{ config.size }} theme-{{ config.theme }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && errorPattern && control.touched) ||\n config.theme === THEME.RED ||\n config.errorText,\n }\">\n <div *ngIf=\"showIconType()\" class=\"content-left\">\n <s-icon-mat class=\"icon\">{{ iconType }}</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [id]=\"config.id\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n maxlength=\"{{ config.maxlength }}\"\n [type]=\"config.type\"\n [formControl]=\"control\"\n (input)=\"patternError()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [id]=\"config.id\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [type]=\"config.type\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config?.type === 'password'\" class=\"content-right\">\n <s-icon-mat\n [type]=\"iconSymbol ? 'symbol' : 'icon'\"\n class=\"icon cursor\"\n (click)=\"changeShowPassword()\"\n >{{ showPassword ? 'visibility' : 'visibility_off' }}\n </s-icon-mat>\n </div>\n <div\n *ngIf=\"config?.theme !== THEME.DEFAULT && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config.showHelp &&\n (config.theme === THEME.DEFAULT || config.theme !== undefined)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched) &&\n !(\n (config.type === INPUT_TYPE.URL && config.errorText) ||\n (config.type === INPUT_TYPE.EMAIL && config.errorText)\n )\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\">\n {{ config.errorText }}\n </s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n config.type !== INPUT_TYPE.SEARCH &&\n !errorPattern &&\n !config.errorText\n \"\n theme=\"red\">\n {{ errorPattern }}\n </s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !errorPattern &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</div>\n", styles: [".s-input__label{font-size:.875rem;color:var(--secondary-600)}.s-input__required{color:var(--primary-600)}.s-input__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.188rem 0;background-color:var(--neutrals-1200)}.s-input__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-input__content input:-webkit-autofill,.s-input__content input:-webkit-autofill:hover,.s-input__content input:-webkit-autofill:focus,.s-input__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-input__content input:focus,.s-input__content input:focus-visible{outline:none}.s-input__content .icon{width:1.25rem;cursor:default}.s-input__content .icon span{display:flex}.s-input__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-input__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-input__content .content-left-url{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;border-right:.063rem solid var(--secondary-500);padding-right:.5rem;color:var(--secondary-500);font-size:.9rem}.s-input__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-input__content.sm input{height:1.3rem;font-size:.75rem}.s-input__content.sm .icon{width:1.25rem;cursor:default}.s-input__content.sm .icon span{font-size:1.2em;display:flex}.s-input__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800);pointer-events:none}.s-input__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-input__content.disabled-active .content-left{color:var(--neutrals-800)!important}.s-input__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-input__content.theme-red{border:.063rem solid var(--red-500)}.s-input__content.theme-red .icon.report span{color:var(--red-600)}.s-input__content.theme-green{border:.063rem solid var(--green-500)}.s-input__content.theme-green .icon.report span{color:var(--green-600)}.s-input__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-input__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-input__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }], encapsulation: i0.ViewEncapsulation.None }); }
1751
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"s-input\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-input__label\">\n {{ config.label }}\n <span class=\"s-input__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-input__content {{ config.size }} theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || (control && control.status === 'DISABLED'),\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n errorPattern ||\n config.theme === THEME.RED ||\n config.errorText,\n }\">\n <div *ngIf=\"showIconType()\" class=\"content-left\">\n <s-icon-mat class=\"icon\">{{ iconType }}</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [id]=\"config.id\"\n [placeholder]=\"config.placeholder ?? ''\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [maxlength]=\"config.maxlength ?? null\"\n [formControl]=\"control\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [id]=\"config.id\"\n [placeholder]=\"config.placeholder ?? ''\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config?.type === 'password'\" class=\"content-right\">\n <s-icon-mat [type]=\"iconSymbol ? 'symbol' : 'icon'\" class=\"icon cursor\" (click)=\"changeShowPassword()\"\n >{{ showPassword ? 'visibility' : 'visibility_off' }}\n </s-icon-mat>\n </div>\n <div *ngIf=\"config?.theme !== THEME.DEFAULT && config.theme !== undefined\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ ICON_THEME[config.theme] }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"config.showHelp && (config.theme === THEME.DEFAULT || config.theme !== undefined)\"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\">help_outline</s-icon-mat>\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched) &&\n !((config.type === INPUT_TYPE.URL && config.errorText) || (config.type === INPUT_TYPE.EMAIL && config.errorText))\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">\n {{ config.errorText }}\n </s-error-control>\n <s-error-control *ngIf=\"!config.hideErrorText && errorPattern && !config.errorText\" theme=\"red\">\n {{ errorPattern }}\n </s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !errorPattern &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</div>\n", styles: [":host{align-self:flex-start}.s-input s-error-control .label-content{line-height:normal}.s-input__label{font-size:.875rem;color:var(--secondary-600)}.s-input__required{color:var(--primary-600)}.s-input__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.188rem 0;background-color:var(--neutrals-1200)}.s-input__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-input__content input:-webkit-autofill,.s-input__content input:-webkit-autofill:hover,.s-input__content input:-webkit-autofill:focus,.s-input__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-input__content input:focus,.s-input__content input:focus-visible{outline:none}.s-input__content .icon{width:1.25rem;cursor:default}.s-input__content .icon span{display:flex}.s-input__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-input__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-input__content .content-left-url{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;border-right:.063rem solid var(--secondary-500);padding-right:.5rem;color:var(--secondary-500);font-size:.9rem}.s-input__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-input__content.sm input{height:1.3rem;font-size:.75rem}.s-input__content.sm .icon{width:1.25rem;cursor:default}.s-input__content.sm .icon span{font-size:1.2em;display:flex}.s-input__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800);pointer-events:none}.s-input__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-input__content.disabled-active .content-left{color:var(--neutrals-800)!important}.s-input__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-input__content.readonly{background-color:var(--neutrals-1100)}.s-input__content.readonly input{background-color:var(--neutrals-1100);cursor:default;color:var(--secondary-600)}.s-input__content.theme-red{border:.063rem solid var(--red-500)}.s-input__content.theme-red .icon.report span{color:var(--red-600)}.s-input__content.theme-green{border:.063rem solid var(--green-500)}.s-input__content.theme-green .icon.report span{color:var(--green-600)}.s-input__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-input__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-input__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }], encapsulation: i0.ViewEncapsulation.None }); }
1757
1752
  }
1758
1753
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SInputComponent, decorators: [{
1759
1754
  type: Component,
@@ -1763,7 +1758,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1763
1758
  useExisting: forwardRef(() => SInputComponent),
1764
1759
  multi: true,
1765
1760
  },
1766
- ], template: "<div class=\"s-input\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-input__label\">\n {{ config.label }}\n <span class=\"s-input__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-input__content {{ config.size }} theme-{{ config.theme }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && errorPattern && control.touched) ||\n config.theme === THEME.RED ||\n config.errorText,\n }\">\n <div *ngIf=\"showIconType()\" class=\"content-left\">\n <s-icon-mat class=\"icon\">{{ iconType }}</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [id]=\"config.id\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n maxlength=\"{{ config.maxlength }}\"\n [type]=\"config.type\"\n [formControl]=\"control\"\n (input)=\"patternError()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [id]=\"config.id\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [type]=\"config.type\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config?.type === 'password'\" class=\"content-right\">\n <s-icon-mat\n [type]=\"iconSymbol ? 'symbol' : 'icon'\"\n class=\"icon cursor\"\n (click)=\"changeShowPassword()\"\n >{{ showPassword ? 'visibility' : 'visibility_off' }}\n </s-icon-mat>\n </div>\n <div\n *ngIf=\"config?.theme !== THEME.DEFAULT && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config.showHelp &&\n (config.theme === THEME.DEFAULT || config.theme !== undefined)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched) &&\n !(\n (config.type === INPUT_TYPE.URL && config.errorText) ||\n (config.type === INPUT_TYPE.EMAIL && config.errorText)\n )\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\">\n {{ config.errorText }}\n </s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n config.type !== INPUT_TYPE.SEARCH &&\n !errorPattern &&\n !config.errorText\n \"\n theme=\"red\">\n {{ errorPattern }}\n </s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !errorPattern &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</div>\n", styles: [".s-input__label{font-size:.875rem;color:var(--secondary-600)}.s-input__required{color:var(--primary-600)}.s-input__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.188rem 0;background-color:var(--neutrals-1200)}.s-input__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-input__content input:-webkit-autofill,.s-input__content input:-webkit-autofill:hover,.s-input__content input:-webkit-autofill:focus,.s-input__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-input__content input:focus,.s-input__content input:focus-visible{outline:none}.s-input__content .icon{width:1.25rem;cursor:default}.s-input__content .icon span{display:flex}.s-input__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-input__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-input__content .content-left-url{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;border-right:.063rem solid var(--secondary-500);padding-right:.5rem;color:var(--secondary-500);font-size:.9rem}.s-input__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-input__content.sm input{height:1.3rem;font-size:.75rem}.s-input__content.sm .icon{width:1.25rem;cursor:default}.s-input__content.sm .icon span{font-size:1.2em;display:flex}.s-input__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800);pointer-events:none}.s-input__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-input__content.disabled-active .content-left{color:var(--neutrals-800)!important}.s-input__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-input__content.theme-red{border:.063rem solid var(--red-500)}.s-input__content.theme-red .icon.report span{color:var(--red-600)}.s-input__content.theme-green{border:.063rem solid var(--green-500)}.s-input__content.theme-green .icon.report span{color:var(--green-600)}.s-input__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-input__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-input__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"] }]
1761
+ ], template: "<div class=\"s-input\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-input__label\">\n {{ config.label }}\n <span class=\"s-input__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-input__content {{ config.size }} theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || (control && control.status === 'DISABLED'),\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n errorPattern ||\n config.theme === THEME.RED ||\n config.errorText,\n }\">\n <div *ngIf=\"showIconType()\" class=\"content-left\">\n <s-icon-mat class=\"icon\">{{ iconType }}</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [id]=\"config.id\"\n [placeholder]=\"config.placeholder ?? ''\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [maxlength]=\"config.maxlength ?? null\"\n [formControl]=\"control\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [id]=\"config.id\"\n [placeholder]=\"config.placeholder ?? ''\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config?.type === 'password'\" class=\"content-right\">\n <s-icon-mat [type]=\"iconSymbol ? 'symbol' : 'icon'\" class=\"icon cursor\" (click)=\"changeShowPassword()\"\n >{{ showPassword ? 'visibility' : 'visibility_off' }}\n </s-icon-mat>\n </div>\n <div *ngIf=\"config?.theme !== THEME.DEFAULT && config.theme !== undefined\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ ICON_THEME[config.theme] }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"config.showHelp && (config.theme === THEME.DEFAULT || config.theme !== undefined)\"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\">help_outline</s-icon-mat>\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched) &&\n !((config.type === INPUT_TYPE.URL && config.errorText) || (config.type === INPUT_TYPE.EMAIL && config.errorText))\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">\n {{ config.errorText }}\n </s-error-control>\n <s-error-control *ngIf=\"!config.hideErrorText && errorPattern && !config.errorText\" theme=\"red\">\n {{ errorPattern }}\n </s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !errorPattern &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</div>\n", styles: [":host{align-self:flex-start}.s-input s-error-control .label-content{line-height:normal}.s-input__label{font-size:.875rem;color:var(--secondary-600)}.s-input__required{color:var(--primary-600)}.s-input__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.188rem 0;background-color:var(--neutrals-1200)}.s-input__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-input__content input:-webkit-autofill,.s-input__content input:-webkit-autofill:hover,.s-input__content input:-webkit-autofill:focus,.s-input__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-input__content input:focus,.s-input__content input:focus-visible{outline:none}.s-input__content .icon{width:1.25rem;cursor:default}.s-input__content .icon span{display:flex}.s-input__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-input__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-input__content .content-left-url{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;border-right:.063rem solid var(--secondary-500);padding-right:.5rem;color:var(--secondary-500);font-size:.9rem}.s-input__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-input__content.sm input{height:1.3rem;font-size:.75rem}.s-input__content.sm .icon{width:1.25rem;cursor:default}.s-input__content.sm .icon span{font-size:1.2em;display:flex}.s-input__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800);pointer-events:none}.s-input__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-input__content.disabled-active .content-left{color:var(--neutrals-800)!important}.s-input__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-input__content.readonly{background-color:var(--neutrals-1100)}.s-input__content.readonly input{background-color:var(--neutrals-1100);cursor:default;color:var(--secondary-600)}.s-input__content.theme-red{border:.063rem solid var(--red-500)}.s-input__content.theme-red .icon.report span{color:var(--red-600)}.s-input__content.theme-green{border:.063rem solid var(--green-500)}.s-input__content.theme-green .icon.report span{color:var(--green-600)}.s-input__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-input__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-input__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input__content:has(input:focus).theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"] }]
1767
1762
  }], propDecorators: { config: [{
1768
1763
  type: Input
1769
1764
  }], clickHelpIconEvent: [{
@@ -1964,7 +1959,7 @@ class SSelectSimpleComponent {
1964
1959
  useExisting: forwardRef(() => SSelectSimpleComponent),
1965
1960
  multi: true
1966
1961
  }
1967
- ], usesOnChanges: true, ngImport: i0, template: "<div class=\"s-select\" [ngClass]=\"disabled ? 's-select--disabled':''\">\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{label}}</span>\n <div class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{size ? size : ''}}\" (click)=\"openDropDown()\" tabindex=\"0\" (keydown)=\"onKeyDownMain($event)\">\n <div class=\"s-select__main__selected-option select-simple\">\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex >= 0\">\n <div *ngIf=\"display == 'dot'\" class=\"dot\"></div>\n <s-icon-mat size=\"{{size === 'md' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile' && options[activeIndex]?.user\" class=\"content-avatar\">\n <s-avatar size=\"24\" [status]=\"options[activeIndex].user?.status\" [display]=\"options[activeIndex].user?.display\" [urlProfileImage]=\"options[activeIndex].user?.url\"></s-avatar>\n </div>\n <span>{{ options[activeIndex].title }}</span>\n </div>\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex < 0\">\n <div class=\"s-select__main__selected-option__left__content-option\" *ngIf=\"!selectedValue\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <s-icon-mat class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"24\"></s-avatar>\n </div>\n <span class=\"placeholder\">{{placeholder}}</span>\n </div>\n </div>\n <div class=\"s-select__main__selected-option__right\">\n <s-icon-mat *ngIf=\"!readOnly\" class=\"{{isOpen ? 'is-open-arrow' : ''}}\">{{isOpen ? 'expand_less' : 'expand_more'}}</s-icon-mat>\n </div>\n </div>\n </div>\n <div class=\"s-select__options {{size ? size : ''}}\" *ngIf=\"isOpen\">\n <div class=\"s-select__item {{size ? size : ''}}\"\n *ngFor=\"let item of options; index as i\"\n [class.active]=\"i === activeIndex\"\n (click)=\"getSelectedValue(item)\"\n (keydown)=\"onKeyDownItems($event , item)\"\n tabindex=\"0\"\n >\n <div class=\"content-left select-simple\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"24\" [display]=\"item.user?.display\" [status]=\"item.user?.status\" [urlProfileImage]=\"item.user?.url\" ></s-avatar>\n </div>\n <s-icon-mat size=\"{{size === 'md' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <span class=\"option-value\">\n {{item.title}}\n </span>\n </div>\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\n </div>\n </div>\n </div>\n</div>", styles: [".s-select{width:100%;position:relative}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:3fr 4fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:4fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SAvatarComponent, selector: "s-avatar", inputs: ["urlProfileImage", "letters", "status", "display", "size"] }], encapsulation: i0.ViewEncapsulation.None }); }
1962
+ ], usesOnChanges: true, ngImport: i0, template: "<div class=\"s-select\" [ngClass]=\"disabled ? 's-select--disabled':''\">\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{label}}</span>\n <div class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{size ? size : ''}}\" (click)=\"openDropDown()\" tabindex=\"0\" (keydown)=\"onKeyDownMain($event)\">\n <div class=\"s-select__main__selected-option select-simple\">\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex >= 0\">\n <div *ngIf=\"display == 'dot'\" class=\"dot\"></div>\n <s-icon-mat size=\"{{size === 'md' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile' && options[activeIndex]?.user\" class=\"content-avatar\">\n <s-avatar size=\"24\" [status]=\"options[activeIndex].user?.status\" [display]=\"options[activeIndex].user?.display\" [urlProfileImage]=\"options[activeIndex].user?.url\"></s-avatar>\n </div>\n <span>{{ options[activeIndex].title }}</span>\n </div>\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex < 0\">\n <div class=\"s-select__main__selected-option__left__content-option\" *ngIf=\"!selectedValue\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <s-icon-mat class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"24\"></s-avatar>\n </div>\n <span class=\"placeholder\">{{placeholder}}</span>\n </div>\n </div>\n <div class=\"s-select__main__selected-option__right\">\n <s-icon-mat *ngIf=\"!readOnly\" class=\"{{isOpen ? 'is-open-arrow' : ''}}\">{{isOpen ? 'expand_less' : 'expand_more'}}</s-icon-mat>\n </div>\n </div>\n </div>\n <div class=\"s-select__options {{size ? size : ''}}\" *ngIf=\"isOpen\">\n <div class=\"s-select__item {{size ? size : ''}}\"\n *ngFor=\"let item of options; index as i\"\n [class.active]=\"i === activeIndex\"\n (click)=\"getSelectedValue(item)\"\n (keydown)=\"onKeyDownItems($event , item)\"\n tabindex=\"0\"\n >\n <div class=\"content-left select-simple\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"24\" [display]=\"item.user?.display\" [status]=\"item.user?.status\" [urlProfileImage]=\"item.user?.url\" ></s-avatar>\n </div>\n <s-icon-mat size=\"{{size === 'md' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <span class=\"option-value\">\n {{item.title}}\n </span>\n </div>\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\n </div>\n </div>\n </div>\n</div>", styles: [".s-select{width:100%;position:relative}.s-select__main.readonly{background-color:var(--neutrals-1100);cursor:default}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item.no-display .content-left.select-simple{grid-template-columns:auto}.s-select__item.no-display .content-left.select-multiple{grid-template-columns:auto 1fr}.s-select__item.no-display .option-value{margin-left:0;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:2fr 2fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:2fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SAvatarComponent, selector: "s-avatar", inputs: ["urlProfileImage", "letters", "status", "display", "size"] }], encapsulation: i0.ViewEncapsulation.None }); }
1968
1963
  }
1969
1964
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SSelectSimpleComponent, decorators: [{
1970
1965
  type: Component,
@@ -1974,7 +1969,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1974
1969
  useExisting: forwardRef(() => SSelectSimpleComponent),
1975
1970
  multi: true
1976
1971
  }
1977
- ], template: "<div class=\"s-select\" [ngClass]=\"disabled ? 's-select--disabled':''\">\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{label}}</span>\n <div class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{size ? size : ''}}\" (click)=\"openDropDown()\" tabindex=\"0\" (keydown)=\"onKeyDownMain($event)\">\n <div class=\"s-select__main__selected-option select-simple\">\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex >= 0\">\n <div *ngIf=\"display == 'dot'\" class=\"dot\"></div>\n <s-icon-mat size=\"{{size === 'md' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile' && options[activeIndex]?.user\" class=\"content-avatar\">\n <s-avatar size=\"24\" [status]=\"options[activeIndex].user?.status\" [display]=\"options[activeIndex].user?.display\" [urlProfileImage]=\"options[activeIndex].user?.url\"></s-avatar>\n </div>\n <span>{{ options[activeIndex].title }}</span>\n </div>\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex < 0\">\n <div class=\"s-select__main__selected-option__left__content-option\" *ngIf=\"!selectedValue\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <s-icon-mat class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"24\"></s-avatar>\n </div>\n <span class=\"placeholder\">{{placeholder}}</span>\n </div>\n </div>\n <div class=\"s-select__main__selected-option__right\">\n <s-icon-mat *ngIf=\"!readOnly\" class=\"{{isOpen ? 'is-open-arrow' : ''}}\">{{isOpen ? 'expand_less' : 'expand_more'}}</s-icon-mat>\n </div>\n </div>\n </div>\n <div class=\"s-select__options {{size ? size : ''}}\" *ngIf=\"isOpen\">\n <div class=\"s-select__item {{size ? size : ''}}\"\n *ngFor=\"let item of options; index as i\"\n [class.active]=\"i === activeIndex\"\n (click)=\"getSelectedValue(item)\"\n (keydown)=\"onKeyDownItems($event , item)\"\n tabindex=\"0\"\n >\n <div class=\"content-left select-simple\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"24\" [display]=\"item.user?.display\" [status]=\"item.user?.status\" [urlProfileImage]=\"item.user?.url\" ></s-avatar>\n </div>\n <s-icon-mat size=\"{{size === 'md' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <span class=\"option-value\">\n {{item.title}}\n </span>\n </div>\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\n </div>\n </div>\n </div>\n</div>", styles: [".s-select{width:100%;position:relative}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:3fr 4fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:4fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"] }]
1972
+ ], template: "<div class=\"s-select\" [ngClass]=\"disabled ? 's-select--disabled':''\">\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{label}}</span>\n <div class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{size ? size : ''}}\" (click)=\"openDropDown()\" tabindex=\"0\" (keydown)=\"onKeyDownMain($event)\">\n <div class=\"s-select__main__selected-option select-simple\">\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex >= 0\">\n <div *ngIf=\"display == 'dot'\" class=\"dot\"></div>\n <s-icon-mat size=\"{{size === 'md' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile' && options[activeIndex]?.user\" class=\"content-avatar\">\n <s-avatar size=\"24\" [status]=\"options[activeIndex].user?.status\" [display]=\"options[activeIndex].user?.display\" [urlProfileImage]=\"options[activeIndex].user?.url\"></s-avatar>\n </div>\n <span>{{ options[activeIndex].title }}</span>\n </div>\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex < 0\">\n <div class=\"s-select__main__selected-option__left__content-option\" *ngIf=\"!selectedValue\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <s-icon-mat class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"24\"></s-avatar>\n </div>\n <span class=\"placeholder\">{{placeholder}}</span>\n </div>\n </div>\n <div class=\"s-select__main__selected-option__right\">\n <s-icon-mat *ngIf=\"!readOnly\" class=\"{{isOpen ? 'is-open-arrow' : ''}}\">{{isOpen ? 'expand_less' : 'expand_more'}}</s-icon-mat>\n </div>\n </div>\n </div>\n <div class=\"s-select__options {{size ? size : ''}}\" *ngIf=\"isOpen\">\n <div class=\"s-select__item {{size ? size : ''}}\"\n *ngFor=\"let item of options; index as i\"\n [class.active]=\"i === activeIndex\"\n (click)=\"getSelectedValue(item)\"\n (keydown)=\"onKeyDownItems($event , item)\"\n tabindex=\"0\"\n >\n <div class=\"content-left select-simple\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"24\" [display]=\"item.user?.display\" [status]=\"item.user?.status\" [urlProfileImage]=\"item.user?.url\" ></s-avatar>\n </div>\n <s-icon-mat size=\"{{size === 'md' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <span class=\"option-value\">\n {{item.title}}\n </span>\n </div>\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\n </div>\n </div>\n </div>\n</div>", styles: [".s-select{width:100%;position:relative}.s-select__main.readonly{background-color:var(--neutrals-1100);cursor:default}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item.no-display .content-left.select-simple{grid-template-columns:auto}.s-select__item.no-display .content-left.select-multiple{grid-template-columns:auto 1fr}.s-select__item.no-display .option-value{margin-left:0;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:2fr 2fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:2fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"] }]
1978
1973
  }], ctorParameters: () => [{ type: SelectNavigationService }], propDecorators: { disabled: [{
1979
1974
  type: Input
1980
1975
  }], placeholder: [{
@@ -2546,7 +2541,7 @@ class SInputTextAreaComponent extends ControlValueAccessorDirective {
2546
2541
  useExisting: forwardRef(() => SInputTextAreaComponent),
2547
2542
  multi: true
2548
2543
  }
2549
- ], usesInheritance: true, ngImport: i0, template: "<section class=\"s-textarea\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-textarea__label\">\n {{ config.label }}\n <span class=\"s-textarea__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-textarea__content {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || control?.status === 'DISABLED',\n }\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n class=\"theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n resize: !config.resize,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [id]=\"config.id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-container>\n <ng-template #notUseFormControl>\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n [ngClass]=\"[\n config.resize ? '' : 'resize',\n config.theme ? 'theme-' + config.theme : '',\n ]\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [disabled]=\"config.disabled ?? false\"\n [id]=\"config.id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-template>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n </div>\n</section>\n", styles: [".s-textarea{margin-bottom:.5rem}.s-textarea__label{font-size:.875rem;color:var(--secondary-600)}.s-textarea__required{color:var(--primary-600)}.s-textarea__content textarea{width:calc(100% - 1.875rem);padding:.625rem .875rem;border:.063rem solid var(--primary-500);border-radius:.25rem;color:var(--secondary-600);writing-mode:unset;height:2.125rem;font-size:1rem;max-width:100%}.s-textarea__content:not(.disabled-active) textarea:focus-visible{outline:none;border:none;border:1px solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content.disabled-active textarea{border-color:var(--neutrals-900);background-color:var(--neutrals-1100);color:var(--neutrals-800);resize:none}.s-textarea__content.disabled-active textarea:focus-visible{outline:none}.s-textarea__content textarea.theme-red{border:.063rem solid var(--red-600)}.s-textarea__content textarea.theme-red:focus-visible{border:1px solid var(--red-600);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content textarea.theme-green{border:.063rem solid var(--green-600)}.s-textarea__content textarea.theme-green:focus-visible{border:1px solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content textarea.theme-yellow{border:.063rem solid var(--yellow-500)}.s-textarea__content textarea.theme-yellow:focus-visible{border:1px solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content .resize{resize:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }] }); }
2544
+ ], usesInheritance: true, ngImport: i0, template: "<section class=\"s-textarea\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-textarea__label\">\n {{ config.label }}\n <span class=\"s-textarea__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-textarea__content {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || control?.status === 'DISABLED',\n }\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n class=\"theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n resize: !config.resize,\n 'readonly':\n config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [id]=\"config.id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-container>\n <ng-template #notUseFormControl>\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n [ngClass]=\"[\n config.resize ? '' : 'resize',\n config.theme ? 'theme-' + config.theme : '',\n ]\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [disabled]=\"config.disabled ?? false\"\n [id]=\"config.id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-template>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n </div>\n</section>\n", styles: [".s-textarea{margin-bottom:.5rem}.s-textarea__label{font-size:.875rem;color:var(--secondary-600)}.s-textarea__required{color:var(--primary-600)}.s-textarea__content textarea{width:calc(100% - 1.875rem);padding:.625rem .875rem;border:.063rem solid var(--primary-500);border-radius:.25rem;color:var(--secondary-600);writing-mode:unset;height:2.125rem;font-size:1rem;max-width:100%}.s-textarea__content:not(.disabled-active) textarea:focus-visible{outline:none;border:none;border:1px solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content.disabled-active textarea{border-color:var(--neutrals-900);background-color:var(--neutrals-1100);color:var(--neutrals-800);resize:none}.s-textarea__content.disabled-active textarea:focus-visible{outline:none}.s-textarea__content textarea.readonly{background-color:var(--neutrals-1100)!important}.s-textarea__content textarea.readonly input{background-color:var(--neutrals-1100)!important;cursor:default}.s-textarea__content textarea.theme-red{border:.063rem solid var(--red-600)}.s-textarea__content textarea.theme-red:focus-visible{border:1px solid var(--red-600);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content textarea.theme-green{border:.063rem solid var(--green-600)}.s-textarea__content textarea.theme-green:focus-visible{border:1px solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content textarea.theme-yellow{border:.063rem solid var(--yellow-500)}.s-textarea__content textarea.theme-yellow:focus-visible{border:1px solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content .resize{resize:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }] }); }
2550
2545
  }
2551
2546
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SInputTextAreaComponent, decorators: [{
2552
2547
  type: Component,
@@ -2556,7 +2551,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2556
2551
  useExisting: forwardRef(() => SInputTextAreaComponent),
2557
2552
  multi: true
2558
2553
  }
2559
- ], template: "<section class=\"s-textarea\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-textarea__label\">\n {{ config.label }}\n <span class=\"s-textarea__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-textarea__content {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || control?.status === 'DISABLED',\n }\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n class=\"theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n resize: !config.resize,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [id]=\"config.id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-container>\n <ng-template #notUseFormControl>\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n [ngClass]=\"[\n config.resize ? '' : 'resize',\n config.theme ? 'theme-' + config.theme : '',\n ]\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [disabled]=\"config.disabled ?? false\"\n [id]=\"config.id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-template>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n </div>\n</section>\n", styles: [".s-textarea{margin-bottom:.5rem}.s-textarea__label{font-size:.875rem;color:var(--secondary-600)}.s-textarea__required{color:var(--primary-600)}.s-textarea__content textarea{width:calc(100% - 1.875rem);padding:.625rem .875rem;border:.063rem solid var(--primary-500);border-radius:.25rem;color:var(--secondary-600);writing-mode:unset;height:2.125rem;font-size:1rem;max-width:100%}.s-textarea__content:not(.disabled-active) textarea:focus-visible{outline:none;border:none;border:1px solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content.disabled-active textarea{border-color:var(--neutrals-900);background-color:var(--neutrals-1100);color:var(--neutrals-800);resize:none}.s-textarea__content.disabled-active textarea:focus-visible{outline:none}.s-textarea__content textarea.theme-red{border:.063rem solid var(--red-600)}.s-textarea__content textarea.theme-red:focus-visible{border:1px solid var(--red-600);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content textarea.theme-green{border:.063rem solid var(--green-600)}.s-textarea__content textarea.theme-green:focus-visible{border:1px solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content textarea.theme-yellow{border:.063rem solid var(--yellow-500)}.s-textarea__content textarea.theme-yellow:focus-visible{border:1px solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content .resize{resize:none}\n"] }]
2554
+ ], template: "<section class=\"s-textarea\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-textarea__label\">\n {{ config.label }}\n <span class=\"s-textarea__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-textarea__content {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || control?.status === 'DISABLED',\n }\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n class=\"theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n resize: !config.resize,\n 'readonly':\n config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [id]=\"config.id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-container>\n <ng-template #notUseFormControl>\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n [ngClass]=\"[\n config.resize ? '' : 'resize',\n config.theme ? 'theme-' + config.theme : '',\n ]\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [disabled]=\"config.disabled ?? false\"\n [id]=\"config.id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-template>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n </div>\n</section>\n", styles: [".s-textarea{margin-bottom:.5rem}.s-textarea__label{font-size:.875rem;color:var(--secondary-600)}.s-textarea__required{color:var(--primary-600)}.s-textarea__content textarea{width:calc(100% - 1.875rem);padding:.625rem .875rem;border:.063rem solid var(--primary-500);border-radius:.25rem;color:var(--secondary-600);writing-mode:unset;height:2.125rem;font-size:1rem;max-width:100%}.s-textarea__content:not(.disabled-active) textarea:focus-visible{outline:none;border:none;border:1px solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content.disabled-active textarea{border-color:var(--neutrals-900);background-color:var(--neutrals-1100);color:var(--neutrals-800);resize:none}.s-textarea__content.disabled-active textarea:focus-visible{outline:none}.s-textarea__content textarea.readonly{background-color:var(--neutrals-1100)!important}.s-textarea__content textarea.readonly input{background-color:var(--neutrals-1100)!important;cursor:default}.s-textarea__content textarea.theme-red{border:.063rem solid var(--red-600)}.s-textarea__content textarea.theme-red:focus-visible{border:1px solid var(--red-600);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content textarea.theme-green{border:.063rem solid var(--green-600)}.s-textarea__content textarea.theme-green:focus-visible{border:1px solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content textarea.theme-yellow{border:.063rem solid var(--yellow-500)}.s-textarea__content textarea.theme-yellow:focus-visible{border:1px solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-textarea__content .resize{resize:none}\n"] }]
2560
2555
  }], propDecorators: { config: [{
2561
2556
  type: Input
2562
2557
  }], blur: [{
@@ -2565,7 +2560,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2565
2560
  type: Output
2566
2561
  }] } });
2567
2562
 
2568
- class SRangeComponent {
2563
+ class SSliderComponent {
2569
2564
  constructor() {
2570
2565
  this.onChange = (_) => { };
2571
2566
  this.onTouch = () => { };
@@ -2578,6 +2573,7 @@ class SRangeComponent {
2578
2573
  this.classAdd = '';
2579
2574
  this.size = 'md';
2580
2575
  this.rangeUnity = '';
2576
+ this.showInput = false;
2581
2577
  this.inconSymbol = false;
2582
2578
  this.tooltipValue = '';
2583
2579
  this.valueChangeEvent = new EventEmitter();
@@ -2598,53 +2594,36 @@ class SRangeComponent {
2598
2594
  this.valueChangeEvent.next(this.value);
2599
2595
  }, 500, null);
2600
2596
  }
2601
- onTextChangeVal(val) {
2602
- if (this.inputTimeout) {
2603
- clearTimeout(this.inputTimeout);
2604
- }
2605
- this.inputTimeout = setTimeout(() => {
2606
- if (val) {
2607
- this.onTouch();
2608
- this.onChange(val);
2609
- this.valueChangeEvent.next(val);
2610
- this.value = val;
2611
- }
2612
- else {
2613
- this.onTouch();
2614
- this.onChange(val);
2615
- this.valueChangeEvent.next(this.value);
2616
- }
2617
- }, 500, null);
2618
- }
2619
2597
  clickIcon() {
2620
2598
  this.clickHelpIconEvent.next();
2621
2599
  }
2622
2600
  //FUNCIONES PARA TYPE RANGE
2623
2601
  rangeOnLoad() {
2624
2602
  setTimeout(() => {
2625
- //RANGO TOTAL
2626
2603
  const rangeMax = this.max ? this.max : 100;
2627
- //CALCULO LA AMPLITUD PARA PODER POSICIONAR AL 50% POR DEFECTO
2628
2604
  let amplitudTotal = rangeMax - this.min;
2629
2605
  let porcion = (amplitudTotal * 50) / 100;
2630
- // INICIALIZA AL 50% CUANDO NO HAY VALOR PREDEFINIDO
2631
2606
  let value = this.value == '' ? this.min + porcion : this.value;
2632
- value = this.value == '' ? this.min + porcion : this.value;
2633
- //DEFINO EL TOOTLTIP
2607
+ const clampedValue = this.clampValue(value);
2608
+ if (this.value == '' || this.value === null || this.value === undefined) {
2609
+ this.value = clampedValue.toString();
2610
+ this.onChange(this.value);
2611
+ }
2634
2612
  this.tooltipValue = this.value + this.rangeUnity;
2635
- this.updateTooltip(value.toString());
2636
- //SI ES CHROME APLICO EL FIX
2613
+ this.updateTooltip(this.value);
2637
2614
  const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
2638
2615
  if (isChrome) {
2639
- //CALCCULO EL % A ASIGNAR
2640
- let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100;
2641
- document.getElementById(this.id)?.style.setProperty('margin-top', ' 0.875rem');
2642
- document.getElementById(this.id)?.style.setProperty('margin-bottom', ' 0.875rem');
2616
+ let porcentaje = ((clampedValue - this.min) / (rangeMax - this.min)) * 100;
2617
+ document.getElementById(this.id)?.style.setProperty('margin-top', '0.875rem');
2618
+ document.getElementById(this.id)?.style.setProperty('margin-bottom', '0.875rem');
2643
2619
  document.getElementById(this.id)?.style.setProperty('border-radius', '0.25rem');
2644
- document.getElementById(this.id)?.style.setProperty('height', ' 0.5rem');
2645
- document.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' + porcentaje + '%, var(--neutrals-1000) ' + porcentaje + '%, var(--neutrals-1000) 100%)');
2620
+ document.getElementById(this.id)?.style.setProperty('height', '0.5rem');
2621
+ document.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' +
2622
+ porcentaje +
2623
+ '%, var(--neutrals-1000) ' +
2624
+ porcentaje +
2625
+ '%, var(--neutrals-1000) 100%)');
2646
2626
  }
2647
- ;
2648
2627
  }, 0);
2649
2628
  }
2650
2629
  //FUNCION PARA CHROME CUANDO SE DESLIZA EL SLIDE FUNCIONE CORRECTAMENTE
@@ -2655,7 +2634,6 @@ class SRangeComponent {
2655
2634
  let porcentaje = ((value - this.min) / (rangeMax - this.min)) * 100;
2656
2635
  document.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' + porcentaje + '%, var(--neutrals-1000) ' + porcentaje + '%, var(--neutrals-1000) 100%)');
2657
2636
  }
2658
- ;
2659
2637
  }
2660
2638
  //FUNCION QUE ACTUALIZA EL TOOLTIP CUANDO SE DESLIZA EL SLIDE
2661
2639
  updateTooltip(value) {
@@ -2676,8 +2654,9 @@ class SRangeComponent {
2676
2654
  //FIN FUNCIONES PARA TYPE RANGE
2677
2655
  //FUNCIONES PARA QUE FUNCIONE FORM BUILDER
2678
2656
  writeValue(value) {
2679
- if (value) {
2680
- this.value = value;
2657
+ if (value !== null && value !== undefined) {
2658
+ const clampedValue = this.clampValue(value);
2659
+ this.value = clampedValue.toString();
2681
2660
  this.rangeOnLoad();
2682
2661
  }
2683
2662
  }
@@ -2693,30 +2672,55 @@ class SRangeComponent {
2693
2672
  onFocus(event) {
2694
2673
  this.focus.next(event);
2695
2674
  }
2696
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2697
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SRangeComponent, selector: "s-range", inputs: { value: "value", id: "id", label: "label", required: "required", helpText: "helpText", errorText: "errorText", disabled: "disabled", max: "max", min: "min", step: "step", readOnly: "readOnly", classAdd: "classAdd", size: "size", rangeUnity: "rangeUnity" }, outputs: { valueChangeEvent: "valueChangeEvent", clickHelpIconEvent: "clickHelpIconEvent", blur: "blur", focus: "focus" }, providers: [
2675
+ onNumberInput(event) {
2676
+ const input = event.target;
2677
+ const clampedValue = this.clampValue(input.value);
2678
+ input.value = clampedValue.toString();
2679
+ this.value = input.value;
2680
+ this.updateTooltip(this.value);
2681
+ this.changeRange(this.value);
2682
+ this.onTextChange();
2683
+ }
2684
+ clampValue(value) {
2685
+ let num = Number(value);
2686
+ if (isNaN(num)) {
2687
+ return this.min;
2688
+ }
2689
+ if (this.max !== undefined && num > this.max) {
2690
+ return this.max;
2691
+ }
2692
+ if (num < this.min) {
2693
+ return this.min;
2694
+ }
2695
+ return num;
2696
+ }
2697
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2698
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SSliderComponent, selector: "s-slider", inputs: { value: "value", id: "id", label: "label", required: "required", helpText: "helpText", errorText: "errorText", disabled: "disabled", max: "max", min: "min", step: "step", readOnly: "readOnly", classAdd: "classAdd", size: "size", rangeUnity: "rangeUnity", showInput: "showInput" }, outputs: { valueChangeEvent: "valueChangeEvent", clickHelpIconEvent: "clickHelpIconEvent", blur: "blur", focus: "focus" }, providers: [
2698
2699
  {
2699
2700
  provide: NG_VALUE_ACCESSOR,
2700
- useExisting: forwardRef(() => SRangeComponent),
2701
+ useExisting: forwardRef(() => SSliderComponent),
2701
2702
  multi: true
2702
2703
  }
2703
- ], viewQueries: [{ propertyName: "tooltipContainer", first: true, predicate: ["tooltipContainer"], descendants: true }, { propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }], ngImport: i0, template: "<ng-container>\n <label *ngIf=\"label\" class=\"s-range__label\">\n\t\t{{label}}\n\t\t<span class=\"s-range__required\" *ngIf=\"required\">*</span>\n\t</label>\n <div class=\"s-range__content {{classAdd}}\" [ngClass]=\"{'disabled-active': disabled}\">\n <div class=\"tooltip tooltip-{{disabled}}\" #tooltipContainer>\n <input\n #rangeField \n [id]=\"id\"\n [step]=\"step\"\n autocomplete=\"off\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [type]=\"'range'\"\n max={{max}}\n min={{min}}\n [(ngModel)]=\"value\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (ngModelChange)=\"onTextChange()\"\n (mousemove)=\"!readOnly && changeRange(rangeField.value)\"\n (input)=\"!readOnly && updateTooltip(rangeField.value)\"\n (mousedown)=\"preventInteraction($event)\"\n >\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\n </div>\n </div>\n <s-error-control *ngIf=\"errorText\" theme =\"red\">{{errorText}}</s-error-control>\n\t<s-error-control *ngIf=\"helpText && !errorText\">{{helpText}}</s-error-control>\n</ng-container>", styles: [".s-range__label{font-size:.875rem;color:var(--secondary-600)}.s-range__required{color:var(--primary-600)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-range__content input{width:100%;height:2.25rem;margin:0;-webkit-appearance:none}.s-range__content input[type=range]::-webkit-slider-runnable-track{border-radius:.25rem;height:.5rem}.s-range__content input[type=range]::-moz-range-track{appearance:none;background-color:var(--neutrals-1000)!important;height:.5rem;border-radius:.25rem}.s-range__content input[type=range]::-ms-track{appearance:none;background-color:var(--neutrals-1000)!important;height:.5rem;border-radius:.25rem}.s-range__content input[type=range]::-moz-range-progress{appearance:none;background-color:var(--primary-600)!important;height:.5rem;border-radius:.25rem}.s-range__content input[type=range]::-ms-fill-upper{appearance:none;background-color:var(--primary-600)!important;height:.5rem;border-radius:.25rem}.s-range__content input[type=range]::-webkit-slider-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200);margin-top:-.5rem}.s-range__content input[type=range]::-moz-range-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200)}.s-range__content input[type=range]::-ms-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200)}.s-range__content input[type=range]::-webkit-slider-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-range__content input[type=range]::-moz-range-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-range__content input[type=range]::-ms-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-range__content input[type=range]::-webkit-slider-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-range__content input[type=range]::-moz-range-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-range__content input[type=range]::-ms-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-range__content input[type=range]:disabled{filter:grayscale(1);opacity:.3;cursor:not-allowed}.tooltip{position:relative;display:inline-block;cursor:pointer;width:100%}.tooltip .tooltiptext{visibility:hidden;width:2.5rem;background-color:var(--neutrals-1200);color:var(--secondary-600);font-weight:700;font-size:.75rem;text-align:center;border-radius:.25rem;padding:.31rem;position:absolute;z-index:1;bottom:100%;left:550%;transform:translate(-50%);box-shadow:var(--E200)}.tooltip-false:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext:before{content:\"\";position:absolute!important;transform:rotate(45deg);height:.625rem;width:.625rem;bottom:-.31rem;background-color:var(--neutrals-1200);box-shadow:var(--E200);left:40%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }], encapsulation: i0.ViewEncapsulation.None }); }
2704
+ ], viewQueries: [{ propertyName: "tooltipContainer", first: true, predicate: ["tooltipContainer"], descendants: true }, { propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }, { propertyName: "numberInput", first: true, predicate: ["numberInput"], descendants: true }], ngImport: i0, template: "<ng-container>\n <label *ngIf=\"label\" class=\"s-slider__label\">\n {{ label }}\n <span class=\"s-slider__required\" *ngIf=\"required\">*</span>\n </label>\n <div class=\"s-slider__row\" [ngClass]=\"{ 'with-input': showInput }\">\n <div class=\"s-slider__content {{ classAdd }}\" [ngClass]=\"{ 'disabled-active': disabled }\">\n <div class=\"tooltip tooltip-{{ disabled }}\" #tooltipContainer>\n <input #rangeField [id]=\"id\" type=\"range\" [min]=\"min\" [max]=\"max ?? null\" [step]=\"step\" autocomplete=\"off\"\n [disabled]=\"disabled\" [readOnly]=\"readOnly\" [(ngModel)]=\"value\" (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\" (ngModelChange)=\"onTextChange()\"\n (mousemove)=\"!readOnly && changeRange(rangeField.value)\"\n (input)=\"!readOnly && updateTooltip(rangeField.value)\" (mousedown)=\"preventInteraction($event)\" />\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\n </div>\n </div>\n <s-input *ngIf=\"showInput\" #numberInput type=\"number\" class=\"s-slider__number\" [disabled]=\"disabled\" [(ngModel)]=\"value\" (input)=\"onNumberInput($event)\"> </s-input>\n </div>\n <s-error-control *ngIf=\"errorText\" theme=\"red\">{{ errorText }}</s-error-control>\n <s-error-control *ngIf=\"helpText && !errorText\">\n <i class=\"s-slider__help-icon\">i</i>\n {{ helpText }}\n </s-error-control>\n</ng-container>", styles: [".s-slider__label{font-size:.875rem;color:var(--secondary-600)}.s-slider__required{color:var(--primary-600)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-slider__content input{width:100%;height:2.25rem;margin:0;-webkit-appearance:none}.s-slider__help{display:flex;align-items:center;gap:.375rem;margin-top:.25rem;font-size:.75rem;color:var(--secondary-600)}.s-slider__help-icon{width:1rem;height:1rem;border-radius:50%;background:var(--secondary-600);color:var(--neutrals-1200);font-size:.625rem;display:flex;align-items:center;justify-content:center;font-weight:700}.s-slider__wrapper{display:flex;align-items:center;gap:.75rem}.s-slider__wrapper.with-input .s-slider__content{flex:1}.s-slider__number{width:3.5rem;height:2.25rem;text-align:center;border-radius:.25rem}.s-slider__help-icon{margin-right:.5rem}.s-slider__row.with-input{display:flex;align-items:center;gap:2rem}.s-slider__content{width:-webkit-fill-available}.s-slider__content input[type=range]::-webkit-slider-runnable-track{border-radius:.25rem;height:.5rem}.s-slider__content input[type=range]::-moz-slider-track{appearance:none;background-color:var(--neutrals-1000)!important;height:.5rem;border-radius:.25rem}.s-slider__content input[type=range]::-ms-track{appearance:none;background-color:var(--neutrals-1000)!important;height:.5rem;border-radius:.25rem}.s-slider__content input[type=range]::-moz-slider-progress{appearance:none;background-color:var(--primary-600)!important;height:.5rem;border-radius:.25rem}.s-slider__content input[type=range]::-ms-fill-upper{appearance:none;background-color:var(--primary-600)!important;height:.5rem;border-radius:.25rem}.s-slider__content input[type=range]::-webkit-slider-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200);margin-top:-.5rem}.s-slider__content input[type=range]::-moz-slider-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200)}.s-slider__content input[type=range]::-ms-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200)}.s-slider__content input[type=range]::-webkit-slider-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-slider__content input[type=range]::-moz-slider-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-slider__content input[type=range]::-ms-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-slider__content input[type=range]::-webkit-slider-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-slider__content input[type=range]::-moz-slider-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-slider__content input[type=range]::-ms-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-slider__content input[type=range]:disabled{filter:grayscale(1);opacity:.3;cursor:not-allowed}.tooltip{position:relative;display:inline-block;cursor:pointer;width:100%}.tooltip .tooltiptext{visibility:hidden;width:2.5rem;background-color:var(--neutrals-1200);color:var(--secondary-600);font-weight:700;font-size:.75rem;text-align:center;border-radius:.25rem;padding:.31rem;position:absolute;z-index:1;bottom:100%;left:550%;transform:translate(-50%);box-shadow:var(--E200)}.tooltip-false:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext:before{content:\"\";position:absolute!important;transform:rotate(45deg);height:.625rem;width:.625rem;bottom:-.31rem;background-color:var(--neutrals-1200);box-shadow:var(--E200);left:40%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SInputComponent, selector: "s-input", inputs: ["config"], outputs: ["clickHelpIconEvent", "blur", "focus"] }], encapsulation: i0.ViewEncapsulation.None }); }
2704
2705
  }
2705
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SRangeComponent, decorators: [{
2706
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SSliderComponent, decorators: [{
2706
2707
  type: Component,
2707
- args: [{ selector: 's-range', encapsulation: ViewEncapsulation.None, providers: [
2708
+ args: [{ selector: 's-slider', encapsulation: ViewEncapsulation.None, providers: [
2708
2709
  {
2709
2710
  provide: NG_VALUE_ACCESSOR,
2710
- useExisting: forwardRef(() => SRangeComponent),
2711
+ useExisting: forwardRef(() => SSliderComponent),
2711
2712
  multi: true
2712
2713
  }
2713
- ], template: "<ng-container>\n <label *ngIf=\"label\" class=\"s-range__label\">\n\t\t{{label}}\n\t\t<span class=\"s-range__required\" *ngIf=\"required\">*</span>\n\t</label>\n <div class=\"s-range__content {{classAdd}}\" [ngClass]=\"{'disabled-active': disabled}\">\n <div class=\"tooltip tooltip-{{disabled}}\" #tooltipContainer>\n <input\n #rangeField \n [id]=\"id\"\n [step]=\"step\"\n autocomplete=\"off\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [type]=\"'range'\"\n max={{max}}\n min={{min}}\n [(ngModel)]=\"value\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (ngModelChange)=\"onTextChange()\"\n (mousemove)=\"!readOnly && changeRange(rangeField.value)\"\n (input)=\"!readOnly && updateTooltip(rangeField.value)\"\n (mousedown)=\"preventInteraction($event)\"\n >\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\n </div>\n </div>\n <s-error-control *ngIf=\"errorText\" theme =\"red\">{{errorText}}</s-error-control>\n\t<s-error-control *ngIf=\"helpText && !errorText\">{{helpText}}</s-error-control>\n</ng-container>", styles: [".s-range__label{font-size:.875rem;color:var(--secondary-600)}.s-range__required{color:var(--primary-600)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-range__content input{width:100%;height:2.25rem;margin:0;-webkit-appearance:none}.s-range__content input[type=range]::-webkit-slider-runnable-track{border-radius:.25rem;height:.5rem}.s-range__content input[type=range]::-moz-range-track{appearance:none;background-color:var(--neutrals-1000)!important;height:.5rem;border-radius:.25rem}.s-range__content input[type=range]::-ms-track{appearance:none;background-color:var(--neutrals-1000)!important;height:.5rem;border-radius:.25rem}.s-range__content input[type=range]::-moz-range-progress{appearance:none;background-color:var(--primary-600)!important;height:.5rem;border-radius:.25rem}.s-range__content input[type=range]::-ms-fill-upper{appearance:none;background-color:var(--primary-600)!important;height:.5rem;border-radius:.25rem}.s-range__content input[type=range]::-webkit-slider-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200);margin-top:-.5rem}.s-range__content input[type=range]::-moz-range-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200)}.s-range__content input[type=range]::-ms-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200)}.s-range__content input[type=range]::-webkit-slider-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-range__content input[type=range]::-moz-range-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-range__content input[type=range]::-ms-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-range__content input[type=range]::-webkit-slider-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-range__content input[type=range]::-moz-range-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-range__content input[type=range]::-ms-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-range__content input[type=range]:disabled{filter:grayscale(1);opacity:.3;cursor:not-allowed}.tooltip{position:relative;display:inline-block;cursor:pointer;width:100%}.tooltip .tooltiptext{visibility:hidden;width:2.5rem;background-color:var(--neutrals-1200);color:var(--secondary-600);font-weight:700;font-size:.75rem;text-align:center;border-radius:.25rem;padding:.31rem;position:absolute;z-index:1;bottom:100%;left:550%;transform:translate(-50%);box-shadow:var(--E200)}.tooltip-false:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext:before{content:\"\";position:absolute!important;transform:rotate(45deg);height:.625rem;width:.625rem;bottom:-.31rem;background-color:var(--neutrals-1200);box-shadow:var(--E200);left:40%}\n"] }]
2714
+ ], template: "<ng-container>\n <label *ngIf=\"label\" class=\"s-slider__label\">\n {{ label }}\n <span class=\"s-slider__required\" *ngIf=\"required\">*</span>\n </label>\n <div class=\"s-slider__row\" [ngClass]=\"{ 'with-input': showInput }\">\n <div class=\"s-slider__content {{ classAdd }}\" [ngClass]=\"{ 'disabled-active': disabled }\">\n <div class=\"tooltip tooltip-{{ disabled }}\" #tooltipContainer>\n <input #rangeField [id]=\"id\" type=\"range\" [min]=\"min\" [max]=\"max ?? null\" [step]=\"step\" autocomplete=\"off\"\n [disabled]=\"disabled\" [readOnly]=\"readOnly\" [(ngModel)]=\"value\" (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\" (ngModelChange)=\"onTextChange()\"\n (mousemove)=\"!readOnly && changeRange(rangeField.value)\"\n (input)=\"!readOnly && updateTooltip(rangeField.value)\" (mousedown)=\"preventInteraction($event)\" />\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\n </div>\n </div>\n <s-input *ngIf=\"showInput\" #numberInput type=\"number\" class=\"s-slider__number\" [disabled]=\"disabled\" [(ngModel)]=\"value\" (input)=\"onNumberInput($event)\"> </s-input>\n </div>\n <s-error-control *ngIf=\"errorText\" theme=\"red\">{{ errorText }}</s-error-control>\n <s-error-control *ngIf=\"helpText && !errorText\">\n <i class=\"s-slider__help-icon\">i</i>\n {{ helpText }}\n </s-error-control>\n</ng-container>", styles: [".s-slider__label{font-size:.875rem;color:var(--secondary-600)}.s-slider__required{color:var(--primary-600)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-slider__content input{width:100%;height:2.25rem;margin:0;-webkit-appearance:none}.s-slider__help{display:flex;align-items:center;gap:.375rem;margin-top:.25rem;font-size:.75rem;color:var(--secondary-600)}.s-slider__help-icon{width:1rem;height:1rem;border-radius:50%;background:var(--secondary-600);color:var(--neutrals-1200);font-size:.625rem;display:flex;align-items:center;justify-content:center;font-weight:700}.s-slider__wrapper{display:flex;align-items:center;gap:.75rem}.s-slider__wrapper.with-input .s-slider__content{flex:1}.s-slider__number{width:3.5rem;height:2.25rem;text-align:center;border-radius:.25rem}.s-slider__help-icon{margin-right:.5rem}.s-slider__row.with-input{display:flex;align-items:center;gap:2rem}.s-slider__content{width:-webkit-fill-available}.s-slider__content input[type=range]::-webkit-slider-runnable-track{border-radius:.25rem;height:.5rem}.s-slider__content input[type=range]::-moz-slider-track{appearance:none;background-color:var(--neutrals-1000)!important;height:.5rem;border-radius:.25rem}.s-slider__content input[type=range]::-ms-track{appearance:none;background-color:var(--neutrals-1000)!important;height:.5rem;border-radius:.25rem}.s-slider__content input[type=range]::-moz-slider-progress{appearance:none;background-color:var(--primary-600)!important;height:.5rem;border-radius:.25rem}.s-slider__content input[type=range]::-ms-fill-upper{appearance:none;background-color:var(--primary-600)!important;height:.5rem;border-radius:.25rem}.s-slider__content input[type=range]::-webkit-slider-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200);margin-top:-.5rem}.s-slider__content input[type=range]::-moz-slider-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200)}.s-slider__content input[type=range]::-ms-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:1.5rem;height:1.5rem;border-radius:50%;border:.18rem solid var(--primary-600);background:var(--neutrals-1200)}.s-slider__content input[type=range]::-webkit-slider-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-slider__content input[type=range]::-moz-slider-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-slider__content input[type=range]::-ms-thumb:hover{border:.18rem solid var(--primary-600);background:var(--primary-200)}.s-slider__content input[type=range]::-webkit-slider-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-slider__content input[type=range]::-moz-slider-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-slider__content input[type=range]::-ms-thumb:active{border:.18rem solid var(--primary-600);background:var(--primary-600);box-shadow:0 .0625rem .125rem 0 var(--blue-alpha-100),0 0 0 .25rem var(--cyan-alpha-200)}.s-slider__content input[type=range]:disabled{filter:grayscale(1);opacity:.3;cursor:not-allowed}.tooltip{position:relative;display:inline-block;cursor:pointer;width:100%}.tooltip .tooltiptext{visibility:hidden;width:2.5rem;background-color:var(--neutrals-1200);color:var(--secondary-600);font-weight:700;font-size:.75rem;text-align:center;border-radius:.25rem;padding:.31rem;position:absolute;z-index:1;bottom:100%;left:550%;transform:translate(-50%);box-shadow:var(--E200)}.tooltip-false:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext:before{content:\"\";position:absolute!important;transform:rotate(45deg);height:.625rem;width:.625rem;bottom:-.31rem;background-color:var(--neutrals-1200);box-shadow:var(--E200);left:40%}\n"] }]
2714
2715
  }], propDecorators: { tooltipContainer: [{
2715
2716
  type: ViewChild,
2716
2717
  args: ['tooltipContainer', { static: false }]
2717
2718
  }], tooltip: [{
2718
2719
  type: ViewChild,
2719
2720
  args: ['tooltip', { static: false }]
2721
+ }], numberInput: [{
2722
+ type: ViewChild,
2723
+ args: ['numberInput', { static: false }]
2720
2724
  }], value: [{
2721
2725
  type: Input
2722
2726
  }], id: [{
@@ -2745,6 +2749,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2745
2749
  type: Input
2746
2750
  }], rangeUnity: [{
2747
2751
  type: Input
2752
+ }], showInput: [{
2753
+ type: Input
2748
2754
  }], valueChangeEvent: [{
2749
2755
  type: Output
2750
2756
  }], clickHelpIconEvent: [{
@@ -2805,7 +2811,7 @@ class SCalendarComponent extends ControlValueAccessorDirective {
2805
2811
  useExisting: forwardRef(() => SCalendarComponent),
2806
2812
  multi: true
2807
2813
  }
2808
- ], usesInheritance: true, ngImport: i0, template: "<section class=\"s-calendar\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-calendar__label\">\n {{ config.label }}\n <span class=\"s-calendar__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-calendar__content {{ config.size }} theme-{{ config.theme }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"s-calendar__content--center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"s-calendar__content--right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"s-calendar__content--right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n</section>\n", styles: [".s-calendar{margin-bottom:.5rem}.s-calendar__label{font-size:.875rem;color:var(--secondary-600)}.s-calendar__required{color:var(--primary-600)}.s-calendar__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-calendar__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-calendar__content input:focus,.s-calendar__content input:focus-visible{outline:none}.s-calendar__content .icon{width:1.25rem;cursor:default}.s-calendar__content .icon span{display:flex}.s-calendar__content--center{width:100%;background-color:var(--neutrals-1200)}.s-calendar__content--right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-calendar__content.theme-red{border:.063rem solid var(--red-500)}.s-calendar__content.theme-red .icon.report span{color:var(--red-600)}.s-calendar__content.theme-green{border:.063rem solid var(--green-500)}.s-calendar__content.theme-green .icon.report span{color:var(--green-600)}.s-calendar__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-calendar__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-calendar__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-calendar__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-calendar__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-calendar__content.sm input{height:1.3rem;font-size:.75rem}.s-calendar__content.sm .icon{width:1.25rem;cursor:default}.s-calendar__content.sm .icon span{font-size:1.2rem;display:flex}.s-calendar__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .25rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }], encapsulation: i0.ViewEncapsulation.None }); }
2814
+ ], usesInheritance: true, ngImport: i0, template: "<section class=\"s-calendar\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-calendar__label\">\n {{ config.label }}\n <span class=\"s-calendar__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-calendar__content {{ config.size }} theme-{{ config.theme }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'readonly':\n config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"s-calendar__content--center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"s-calendar__content--right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"s-calendar__content--right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n</section>\n", styles: [".s-calendar{margin-bottom:.5rem}.s-calendar__label{font-size:.875rem;color:var(--secondary-600)}.s-calendar__required{color:var(--primary-600)}.s-calendar__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-calendar__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-calendar__content input:focus,.s-calendar__content input:focus-visible{outline:none}.s-calendar__content .icon{width:1.25rem;cursor:default}.s-calendar__content .icon span{display:flex}.s-calendar__content--center{width:100%;background-color:var(--neutrals-1200)}.s-calendar__content--right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-calendar__content.theme-red{border:.063rem solid var(--red-500)}.s-calendar__content.theme-red .icon.report span{color:var(--red-600)}.s-calendar__content.theme-green{border:.063rem solid var(--green-500)}.s-calendar__content.theme-green .icon.report span{color:var(--green-600)}.s-calendar__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-calendar__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-calendar__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-calendar__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-calendar__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-calendar__content.readonly{background-color:var(--neutrals-1100)}.s-calendar__content.readonly input{background-color:var(--neutrals-1100);cursor:default}.s-calendar__content.sm input{height:1.3rem;font-size:.75rem}.s-calendar__content.sm .icon{width:1.25rem;cursor:default}.s-calendar__content.sm .icon span{font-size:1.2rem;display:flex}.s-calendar__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .25rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }], encapsulation: i0.ViewEncapsulation.None }); }
2809
2815
  }
2810
2816
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SCalendarComponent, decorators: [{
2811
2817
  type: Component,
@@ -2815,7 +2821,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2815
2821
  useExisting: forwardRef(() => SCalendarComponent),
2816
2822
  multi: true
2817
2823
  }
2818
- ], template: "<section class=\"s-calendar\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-calendar__label\">\n {{ config.label }}\n <span class=\"s-calendar__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-calendar__content {{ config.size }} theme-{{ config.theme }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"s-calendar__content--center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"s-calendar__content--right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"s-calendar__content--right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n</section>\n", styles: [".s-calendar{margin-bottom:.5rem}.s-calendar__label{font-size:.875rem;color:var(--secondary-600)}.s-calendar__required{color:var(--primary-600)}.s-calendar__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-calendar__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-calendar__content input:focus,.s-calendar__content input:focus-visible{outline:none}.s-calendar__content .icon{width:1.25rem;cursor:default}.s-calendar__content .icon span{display:flex}.s-calendar__content--center{width:100%;background-color:var(--neutrals-1200)}.s-calendar__content--right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-calendar__content.theme-red{border:.063rem solid var(--red-500)}.s-calendar__content.theme-red .icon.report span{color:var(--red-600)}.s-calendar__content.theme-green{border:.063rem solid var(--green-500)}.s-calendar__content.theme-green .icon.report span{color:var(--green-600)}.s-calendar__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-calendar__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-calendar__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-calendar__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-calendar__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-calendar__content.sm input{height:1.3rem;font-size:.75rem}.s-calendar__content.sm .icon{width:1.25rem;cursor:default}.s-calendar__content.sm .icon span{font-size:1.2rem;display:flex}.s-calendar__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .25rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"] }]
2824
+ ], template: "<section class=\"s-calendar\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-calendar__label\">\n {{ config.label }}\n <span class=\"s-calendar__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-calendar__content {{ config.size }} theme-{{ config.theme }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'readonly':\n config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"s-calendar__content--center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"s-calendar__content--right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"s-calendar__content--right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n</section>\n", styles: [".s-calendar{margin-bottom:.5rem}.s-calendar__label{font-size:.875rem;color:var(--secondary-600)}.s-calendar__required{color:var(--primary-600)}.s-calendar__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-calendar__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-calendar__content input:focus,.s-calendar__content input:focus-visible{outline:none}.s-calendar__content .icon{width:1.25rem;cursor:default}.s-calendar__content .icon span{display:flex}.s-calendar__content--center{width:100%;background-color:var(--neutrals-1200)}.s-calendar__content--right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-calendar__content.theme-red{border:.063rem solid var(--red-500)}.s-calendar__content.theme-red .icon.report span{color:var(--red-600)}.s-calendar__content.theme-green{border:.063rem solid var(--green-500)}.s-calendar__content.theme-green .icon.report span{color:var(--green-600)}.s-calendar__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-calendar__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-calendar__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-calendar__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-calendar__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-calendar__content.readonly{background-color:var(--neutrals-1100)}.s-calendar__content.readonly input{background-color:var(--neutrals-1100);cursor:default}.s-calendar__content.sm input{height:1.3rem;font-size:.75rem}.s-calendar__content.sm .icon{width:1.25rem;cursor:default}.s-calendar__content.sm .icon span{font-size:1.2rem;display:flex}.s-calendar__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .25rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-calendar__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"] }]
2819
2825
  }], propDecorators: { config: [{
2820
2826
  type: Input
2821
2827
  }], clickHelpIconEvent: [{
@@ -2876,7 +2882,7 @@ class STimeComponent extends ControlValueAccessorDirective {
2876
2882
  useExisting: forwardRef(() => STimeComponent),
2877
2883
  multi: true
2878
2884
  }
2879
- ], usesInheritance: true, ngImport: i0, template: "<section class=\"s-time\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-time__label\">\n {{ config.label }}\n <span class=\"s-time__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-time__content {{ config.size }} theme-{{ config.theme }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n", styles: [".s-time{margin-bottom:.5rem}.s-time__label{font-size:.875rem;color:var(--secondary-600)}.s-time__required{color:var(--primary-600)}.s-time__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-time__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-time__content input:focus,.s-time__content input:focus-visible{outline:none}.s-time__content input:-webkit-autofill,.s-time__content input:-webkit-autofill:hover,.s-time__content input:-webkit-autofill:focus,.s-time__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-time__content .icon{width:1.25rem;cursor:default}.s-time__content .icon span{display:flex}.s-time__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-time__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-time__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-time__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-time__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-time__content.disabled-active .content-left{color:var(--neutrals-800)!important}.s-time__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-time__content.theme-red{border:.063rem solid var(--red-500)}.s-time__content.theme-red .icon.report span{color:var(--red-600)}.s-time__content.theme-green{border:.063rem solid var(--green-500)}.s-time__content.theme-green .icon.report span{color:var(--green-600)}.s-time__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-time__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-time__content.sm input{height:1.3rem;font-size:.75rem}.s-time__content.sm .icon{width:1.25rem;cursor:default}.s-time__content.sm .icon span{font-size:1.2em;display:flex}.s-time__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }], encapsulation: i0.ViewEncapsulation.None }); }
2885
+ ], usesInheritance: true, ngImport: i0, template: "<section class=\"s-time\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-time__label\">\n {{ config.label }}\n <span class=\"s-time__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-time__content {{ config.size }} theme-{{ config.theme }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'readonly':\n config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n", styles: [".s-time{margin-bottom:.5rem}.s-time__label{font-size:.875rem;color:var(--secondary-600)}.s-time__required{color:var(--primary-600)}.s-time__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-time__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-time__content input:focus,.s-time__content input:focus-visible{outline:none}.s-time__content input:-webkit-autofill,.s-time__content input:-webkit-autofill:hover,.s-time__content input:-webkit-autofill:focus,.s-time__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-time__content .icon{width:1.25rem;cursor:default}.s-time__content .icon span{display:flex}.s-time__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-time__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-time__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-time__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-time__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-time__content.disabled-active .content-left{color:var(--neutrals-800)!important}.s-time__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-time__content.readonly{background-color:var(--neutrals-1100)}.s-time__content.readonly input{background-color:var(--neutrals-1100);cursor:default}.s-time__content.theme-red{border:.063rem solid var(--red-500)}.s-time__content.theme-red .icon.report span{color:var(--red-600)}.s-time__content.theme-green{border:.063rem solid var(--green-500)}.s-time__content.theme-green .icon.report span{color:var(--green-600)}.s-time__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-time__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-time__content.sm input{height:1.3rem;font-size:.75rem}.s-time__content.sm .icon{width:1.25rem;cursor:default}.s-time__content.sm .icon span{font-size:1.2em;display:flex}.s-time__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }], encapsulation: i0.ViewEncapsulation.None }); }
2880
2886
  }
2881
2887
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STimeComponent, decorators: [{
2882
2888
  type: Component,
@@ -2886,7 +2892,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2886
2892
  useExisting: forwardRef(() => STimeComponent),
2887
2893
  multi: true
2888
2894
  }
2889
- ], template: "<section class=\"s-time\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-time__label\">\n {{ config.label }}\n <span class=\"s-time__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-time__content {{ config.size }} theme-{{ config.theme }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n", styles: [".s-time{margin-bottom:.5rem}.s-time__label{font-size:.875rem;color:var(--secondary-600)}.s-time__required{color:var(--primary-600)}.s-time__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-time__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-time__content input:focus,.s-time__content input:focus-visible{outline:none}.s-time__content input:-webkit-autofill,.s-time__content input:-webkit-autofill:hover,.s-time__content input:-webkit-autofill:focus,.s-time__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-time__content .icon{width:1.25rem;cursor:default}.s-time__content .icon span{display:flex}.s-time__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-time__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-time__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-time__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-time__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-time__content.disabled-active .content-left{color:var(--neutrals-800)!important}.s-time__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-time__content.theme-red{border:.063rem solid var(--red-500)}.s-time__content.theme-red .icon.report span{color:var(--red-600)}.s-time__content.theme-green{border:.063rem solid var(--green-500)}.s-time__content.theme-green .icon.report span{color:var(--green-600)}.s-time__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-time__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-time__content.sm input{height:1.3rem;font-size:.75rem}.s-time__content.sm .icon{width:1.25rem;cursor:default}.s-time__content.sm .icon span{font-size:1.2em;display:flex}.s-time__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}\n"] }]
2895
+ ], template: "<section class=\"s-time\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-time__label\">\n {{ config.label }}\n <span class=\"s-time__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-time__content {{ config.size }} theme-{{ config.theme }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'readonly':\n config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n", styles: [".s-time{margin-bottom:.5rem}.s-time__label{font-size:.875rem;color:var(--secondary-600)}.s-time__required{color:var(--primary-600)}.s-time__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-time__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-time__content input:focus,.s-time__content input:focus-visible{outline:none}.s-time__content input:-webkit-autofill,.s-time__content input:-webkit-autofill:hover,.s-time__content input:-webkit-autofill:focus,.s-time__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-time__content .icon{width:1.25rem;cursor:default}.s-time__content .icon span{display:flex}.s-time__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-time__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-time__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-time__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-time__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-time__content.disabled-active .content-left{color:var(--neutrals-800)!important}.s-time__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-time__content.readonly{background-color:var(--neutrals-1100)}.s-time__content.readonly input{background-color:var(--neutrals-1100);cursor:default}.s-time__content.theme-red{border:.063rem solid var(--red-500)}.s-time__content.theme-red .icon.report span{color:var(--red-600)}.s-time__content.theme-green{border:.063rem solid var(--green-500)}.s-time__content.theme-green .icon.report span{color:var(--green-600)}.s-time__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-time__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-time__content.sm input{height:1.3rem;font-size:.75rem}.s-time__content.sm .icon{width:1.25rem;cursor:default}.s-time__content.sm .icon span{font-size:1.2em;display:flex}.s-time__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}.s-time__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)}\n"] }]
2890
2896
  }], propDecorators: { config: [{
2891
2897
  type: Input
2892
2898
  }], clickHelpIconEvent: [{
@@ -2909,6 +2915,7 @@ class SColorComponent {
2909
2915
  this.classAdd = '';
2910
2916
  this.help = false;
2911
2917
  this.size = 'md';
2918
+ this.disabled = false;
2912
2919
  this.visibility = false;
2913
2920
  this.inconSymbol = false;
2914
2921
  this.ICON_THEME = ICON_THEME;
@@ -2955,13 +2962,13 @@ class SColorComponent {
2955
2962
  this.focus.next(event);
2956
2963
  }
2957
2964
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SColorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2958
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SColorComponent, selector: "s-color", inputs: { value: "value", id: "id", name: "name", label: "label", placeHolder: "placeHolder", required: "required", helpText: "helpText", errorText: "errorText", hideErrorText: "hideErrorText", readOnly: "readOnly", theme: "theme", classAdd: "classAdd", help: "help", size: "size" }, outputs: { valueChangeEvent: "valueChangeEvent", clickHelpIconEvent: "clickHelpIconEvent", blur: "blur", focus: "focus" }, providers: [
2965
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SColorComponent, selector: "s-color", inputs: { value: "value", id: "id", name: "name", label: "label", placeHolder: "placeHolder", required: "required", helpText: "helpText", errorText: "errorText", hideErrorText: "hideErrorText", readOnly: "readOnly", theme: "theme", classAdd: "classAdd", help: "help", size: "size", disabled: "disabled" }, outputs: { valueChangeEvent: "valueChangeEvent", clickHelpIconEvent: "clickHelpIconEvent", blur: "blur", focus: "focus" }, providers: [
2959
2966
  {
2960
2967
  provide: NG_VALUE_ACCESSOR,
2961
2968
  useExisting: forwardRef(() => SColorComponent),
2962
2969
  multi: true
2963
2970
  }
2964
- ], ngImport: i0, template: "<ng-container class=\"s-color\">\n <label *ngIf=\"label\" class=\"s-color__label\" for=\"name\">\n {{ label }}\n <span class=\"s-color__required\" *ngIf=\"required\">*</span>\n </label>\n <div\n class=\"s-color__content content-input-main-color {{ size }} theme-{{\n theme\n }} {{ classAdd }}\"\n [ngClass]=\"{ 'disabled-active': readOnly }\">\n <div class=\"content-left\">\n <input\n [readOnly]=\"readOnly\"\n #color\n [id]=\"name\"\n [name]=\"name\"\n type=\"color\"\n [disabled]=\"readOnly\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onTextChange()\"\n class=\"content-color\"/>\n </div>\n <div\n role=\"button\"\n tabindex=\"0\"\n class=\"content-center\"\n (click)=\"!this.readOnly ? this.color.click() : null\"\n (keydown.enter)=\"!this.readOnly ? this.color.click() : null\">\n <input\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\"\n [id]=\"id ? id : ''\"\n [type]=\"color\"\n autocomplete=\"off\"\n [placeholder]=\"placeHolder ? placeHolder : ''\"\n [(ngModel)]=\"value\"\n [disabled]=\"readOnly\" />\n </div>\n <div class=\"content-right\">\n <s-icon-mat [type]=\"'icon'\" class=\"icon cursor\">colorize</s-icon-mat>\n </div>\n <div *ngIf=\"theme !== 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">\n {{ ICON_THEME[this.theme] }}\n </s-icon-mat>\n </div>\n\n <div *ngIf=\"theme === 'default' && help\" class=\"content-right\">\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">\n help_outline\n </s-icon-mat>\n </div>\n </div>\n <s-error-control *ngIf=\"!hideErrorText && errorText\" theme=\"red\">\n {{ errorText }}\n </s-error-control>\n <s-error-control *ngIf=\"!hideErrorText && helpText && !errorText\">\n {{ helpText }}\n </s-error-control>\n</ng-container>\n", styles: [".s-color{margin-bottom:.5rem}.s-color__label{font-size:.875rem}.s-color__required{color:var(--primary-600)}.s-color__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem 0 0;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-color__content input:-webkit-autofill,.s-color__content input:-webkit-autofill:hover,.s-color__content input:-webkit-autofill:focus,.s-color__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-color__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-color__content input.content-color{width:2.5rem;padding:0}.s-color__content input:focus,.s-color__content input:focus-visible{outline:none}.s-color__content .icon{width:1.25rem;cursor:default}.s-color__content .icon span{display:flex}.s-color__content .content-center{align-items:center;display:flex;width:100%;background-color:var(--neutrals-1200)}.s-color__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;border-right:.063rem solid var(--secondary-500);padding-right:.5rem;color:var(--secondary-500);font-size:.9rem;padding-left:.5rem}.s-color__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin:.5rem;color:var(--secondary-600)}.s-color__content.theme-green{border:.063rem solid var(--green-500)}.s-color__content.theme-green .icon.report span{color:var(--green-600)}.s-color__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-color__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-color__content.theme-red{border:.063rem solid var(--red-500)}.s-color__content.theme-red .icon.report span{color:var(--red-600)}.s-color__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-color__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--secondary-600)}.s-color__content.disabled-active .content-left{color:var(--neutrals-800)!important;border-right:.063rem solid var(--neutrals-900)}.s-color__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-color__content.sm input{height:1.3rem;font-size:.75rem}.s-color__content.sm .icon{width:1.25rem;cursor:default}.s-color__content.sm .icon span{font-size:1.2em;display:flex}.s-color__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }], encapsulation: i0.ViewEncapsulation.None }); }
2971
+ ], ngImport: i0, template: "<ng-container class=\"s-color\">\n <label *ngIf=\"label\" class=\"s-color__label\" for=\"name\">\n {{ label }}\n <span class=\"s-color__required\" *ngIf=\"required\">*</span>\n </label>\n <div\n class=\"s-color__content content-input-main-color {{ size }} theme-{{\n theme\n }} {{ classAdd }}\"\n [ngClass]=\"{'disabled-active': disabled ,'readonly': readOnly}\">\n <div class=\"content-left\">\n <input\n [readOnly]=\"readOnly\"\n #color\n [id]=\"name\"\n [name]=\"name\"\n type=\"color\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onTextChange()\"\n class=\"content-color\"/>\n </div>\n <div\n role=\"button\"\n tabindex=\"0\"\n class=\"content-center\"\n (click)=\"!this.readOnly ? this.color.click() : null\"\n (keydown.enter)=\"!this.readOnly ? this.color.click() : null\">\n <input\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\"\n [id]=\"id ? id : ''\"\n [type]=\"color\"\n autocomplete=\"off\"\n [placeholder]=\"placeHolder ? placeHolder : ''\"\n [(ngModel)]=\"value\"\n [disabled]=\"readOnly\" />\n </div>\n <div class=\"content-right\">\n <s-icon-mat [type]=\"'icon'\" class=\"icon cursor\">colorize</s-icon-mat>\n </div>\n <div *ngIf=\"theme !== 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">\n {{ ICON_THEME[this.theme] }}\n </s-icon-mat>\n </div>\n\n <div *ngIf=\"theme === 'default' && help\" class=\"content-right\">\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">\n help_outline\n </s-icon-mat>\n </div>\n </div>\n <s-error-control *ngIf=\"!hideErrorText && errorText\" theme=\"red\">\n {{ errorText }}\n </s-error-control>\n <s-error-control *ngIf=\"!hideErrorText && helpText && !errorText\">\n {{ helpText }}\n </s-error-control>\n</ng-container>\n", styles: [".s-color{margin-bottom:.5rem}.s-color__label{font-size:.875rem}.s-color__required{color:var(--primary-600)}.s-color__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem 0 0;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-color__content input:-webkit-autofill,.s-color__content input:-webkit-autofill:hover,.s-color__content input:-webkit-autofill:focus,.s-color__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-color__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-color__content input.content-color{width:2.5rem;padding:0}.s-color__content input:focus,.s-color__content input:focus-visible{outline:none}.s-color__content .icon{width:1.25rem;cursor:default}.s-color__content .icon span{display:flex}.s-color__content .content-center{align-items:center;display:flex;width:100%;background-color:var(--neutrals-1200)}.s-color__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;border-right:.063rem solid var(--secondary-500);padding-right:.5rem;color:var(--secondary-500);font-size:.9rem;padding-left:.5rem}.s-color__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin:.5rem;color:var(--secondary-600)}.s-color__content.theme-green{border:.063rem solid var(--green-500)}.s-color__content.theme-green .icon.report span{color:var(--green-600)}.s-color__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-color__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-color__content.theme-red{border:.063rem solid var(--red-500)}.s-color__content.theme-red .icon.report span{color:var(--red-600)}.s-color__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-color__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--secondary-600)}.s-color__content.disabled-active .content-left{color:var(--neutrals-800)!important;border-right:.063rem solid var(--neutrals-900)}.s-color__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-color__content.readonly{background-color:var(--neutrals-1100);border-color:var(--neutrals-900)}.s-color__content.readonly input{background-color:var(--neutrals-1100);color:var(--secondary-600);cursor:default}.s-color__content.readonly .content-left{color:var(--neutrals-800)}.s-color__content.readonly .content-right s-icon-mat span{color:var(--neutrals-800)}.s-color__content.sm input{height:1.3rem;font-size:.75rem}.s-color__content.sm .icon{width:1.25rem;cursor:default}.s-color__content.sm .icon span{font-size:1.2em;display:flex}.s-color__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }], encapsulation: i0.ViewEncapsulation.None }); }
2965
2972
  }
2966
2973
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SColorComponent, decorators: [{
2967
2974
  type: Component,
@@ -2971,7 +2978,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2971
2978
  useExisting: forwardRef(() => SColorComponent),
2972
2979
  multi: true
2973
2980
  }
2974
- ], template: "<ng-container class=\"s-color\">\n <label *ngIf=\"label\" class=\"s-color__label\" for=\"name\">\n {{ label }}\n <span class=\"s-color__required\" *ngIf=\"required\">*</span>\n </label>\n <div\n class=\"s-color__content content-input-main-color {{ size }} theme-{{\n theme\n }} {{ classAdd }}\"\n [ngClass]=\"{ 'disabled-active': readOnly }\">\n <div class=\"content-left\">\n <input\n [readOnly]=\"readOnly\"\n #color\n [id]=\"name\"\n [name]=\"name\"\n type=\"color\"\n [disabled]=\"readOnly\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onTextChange()\"\n class=\"content-color\"/>\n </div>\n <div\n role=\"button\"\n tabindex=\"0\"\n class=\"content-center\"\n (click)=\"!this.readOnly ? this.color.click() : null\"\n (keydown.enter)=\"!this.readOnly ? this.color.click() : null\">\n <input\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\"\n [id]=\"id ? id : ''\"\n [type]=\"color\"\n autocomplete=\"off\"\n [placeholder]=\"placeHolder ? placeHolder : ''\"\n [(ngModel)]=\"value\"\n [disabled]=\"readOnly\" />\n </div>\n <div class=\"content-right\">\n <s-icon-mat [type]=\"'icon'\" class=\"icon cursor\">colorize</s-icon-mat>\n </div>\n <div *ngIf=\"theme !== 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">\n {{ ICON_THEME[this.theme] }}\n </s-icon-mat>\n </div>\n\n <div *ngIf=\"theme === 'default' && help\" class=\"content-right\">\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">\n help_outline\n </s-icon-mat>\n </div>\n </div>\n <s-error-control *ngIf=\"!hideErrorText && errorText\" theme=\"red\">\n {{ errorText }}\n </s-error-control>\n <s-error-control *ngIf=\"!hideErrorText && helpText && !errorText\">\n {{ helpText }}\n </s-error-control>\n</ng-container>\n", styles: [".s-color{margin-bottom:.5rem}.s-color__label{font-size:.875rem}.s-color__required{color:var(--primary-600)}.s-color__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem 0 0;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-color__content input:-webkit-autofill,.s-color__content input:-webkit-autofill:hover,.s-color__content input:-webkit-autofill:focus,.s-color__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-color__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-color__content input.content-color{width:2.5rem;padding:0}.s-color__content input:focus,.s-color__content input:focus-visible{outline:none}.s-color__content .icon{width:1.25rem;cursor:default}.s-color__content .icon span{display:flex}.s-color__content .content-center{align-items:center;display:flex;width:100%;background-color:var(--neutrals-1200)}.s-color__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;border-right:.063rem solid var(--secondary-500);padding-right:.5rem;color:var(--secondary-500);font-size:.9rem;padding-left:.5rem}.s-color__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin:.5rem;color:var(--secondary-600)}.s-color__content.theme-green{border:.063rem solid var(--green-500)}.s-color__content.theme-green .icon.report span{color:var(--green-600)}.s-color__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-color__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-color__content.theme-red{border:.063rem solid var(--red-500)}.s-color__content.theme-red .icon.report span{color:var(--red-600)}.s-color__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-color__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--secondary-600)}.s-color__content.disabled-active .content-left{color:var(--neutrals-800)!important;border-right:.063rem solid var(--neutrals-900)}.s-color__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-color__content.sm input{height:1.3rem;font-size:.75rem}.s-color__content.sm .icon{width:1.25rem;cursor:default}.s-color__content.sm .icon span{font-size:1.2em;display:flex}.s-color__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"] }]
2981
+ ], template: "<ng-container class=\"s-color\">\n <label *ngIf=\"label\" class=\"s-color__label\" for=\"name\">\n {{ label }}\n <span class=\"s-color__required\" *ngIf=\"required\">*</span>\n </label>\n <div\n class=\"s-color__content content-input-main-color {{ size }} theme-{{\n theme\n }} {{ classAdd }}\"\n [ngClass]=\"{'disabled-active': disabled ,'readonly': readOnly}\">\n <div class=\"content-left\">\n <input\n [readOnly]=\"readOnly\"\n #color\n [id]=\"name\"\n [name]=\"name\"\n type=\"color\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onTextChange()\"\n class=\"content-color\"/>\n </div>\n <div\n role=\"button\"\n tabindex=\"0\"\n class=\"content-center\"\n (click)=\"!this.readOnly ? this.color.click() : null\"\n (keydown.enter)=\"!this.readOnly ? this.color.click() : null\">\n <input\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\"\n [id]=\"id ? id : ''\"\n [type]=\"color\"\n autocomplete=\"off\"\n [placeholder]=\"placeHolder ? placeHolder : ''\"\n [(ngModel)]=\"value\"\n [disabled]=\"readOnly\" />\n </div>\n <div class=\"content-right\">\n <s-icon-mat [type]=\"'icon'\" class=\"icon cursor\">colorize</s-icon-mat>\n </div>\n <div *ngIf=\"theme !== 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">\n {{ ICON_THEME[this.theme] }}\n </s-icon-mat>\n </div>\n\n <div *ngIf=\"theme === 'default' && help\" class=\"content-right\">\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">\n help_outline\n </s-icon-mat>\n </div>\n </div>\n <s-error-control *ngIf=\"!hideErrorText && errorText\" theme=\"red\">\n {{ errorText }}\n </s-error-control>\n <s-error-control *ngIf=\"!hideErrorText && helpText && !errorText\">\n {{ helpText }}\n </s-error-control>\n</ng-container>\n", styles: [".s-color{margin-bottom:.5rem}.s-color__label{font-size:.875rem}.s-color__required{color:var(--primary-600)}.s-color__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem 0 0;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-color__content input:-webkit-autofill,.s-color__content input:-webkit-autofill:hover,.s-color__content input:-webkit-autofill:focus,.s-color__content input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.875rem var(--neutrals-1200) inset!important}.s-color__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-color__content input.content-color{width:2.5rem;padding:0}.s-color__content input:focus,.s-color__content input:focus-visible{outline:none}.s-color__content .icon{width:1.25rem;cursor:default}.s-color__content .icon span{display:flex}.s-color__content .content-center{align-items:center;display:flex;width:100%;background-color:var(--neutrals-1200)}.s-color__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;border-right:.063rem solid var(--secondary-500);padding-right:.5rem;color:var(--secondary-500);font-size:.9rem;padding-left:.5rem}.s-color__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin:.5rem;color:var(--secondary-600)}.s-color__content.theme-green{border:.063rem solid var(--green-500)}.s-color__content.theme-green .icon.report span{color:var(--green-600)}.s-color__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-color__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-color__content.theme-red{border:.063rem solid var(--red-500)}.s-color__content.theme-red .icon.report span{color:var(--red-600)}.s-color__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.s-color__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--secondary-600)}.s-color__content.disabled-active .content-left{color:var(--neutrals-800)!important;border-right:.063rem solid var(--neutrals-900)}.s-color__content.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-color__content.readonly{background-color:var(--neutrals-1100);border-color:var(--neutrals-900)}.s-color__content.readonly input{background-color:var(--neutrals-1100);color:var(--secondary-600);cursor:default}.s-color__content.readonly .content-left{color:var(--neutrals-800)}.s-color__content.readonly .content-right s-icon-mat span{color:var(--neutrals-800)}.s-color__content.sm input{height:1.3rem;font-size:.75rem}.s-color__content.sm .icon{width:1.25rem;cursor:default}.s-color__content.sm .icon span{font-size:1.2em;display:flex}.s-color__content:has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-color__content:has(input:focus).theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"] }]
2975
2982
  }], propDecorators: { value: [{
2976
2983
  type: Input
2977
2984
  }], id: [{
@@ -3000,6 +3007,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3000
3007
  type: Input
3001
3008
  }], size: [{
3002
3009
  type: Input
3010
+ }], disabled: [{
3011
+ type: Input
3003
3012
  }], valueChangeEvent: [{
3004
3013
  type: Output
3005
3014
  }], clickHelpIconEvent: [{
@@ -3095,6 +3104,22 @@ class SInputNumberComponent extends ControlValueAccessorDirective {
3095
3104
  this.isFocused = true;
3096
3105
  this.focus.next(event);
3097
3106
  }
3107
+ canDecrease() {
3108
+ if (this.config.disabled || this.config.readOnly)
3109
+ return false;
3110
+ if (this.config.min === undefined)
3111
+ return true;
3112
+ const currentValue = this.getValue();
3113
+ return currentValue > this.config.min;
3114
+ }
3115
+ canIncrease() {
3116
+ if (this.config.disabled || this.config.readOnly)
3117
+ return false;
3118
+ if (this.config.max === undefined)
3119
+ return true;
3120
+ const currentValue = this.getValue();
3121
+ return currentValue < this.config.max;
3122
+ }
3098
3123
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SInputNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3099
3124
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SInputNumberComponent, selector: "s-input-number", inputs: { config: "config" }, outputs: { clickHelpIconEvent: "clickHelpIconEvent", blur: "blur", focus: "focus" }, providers: [
3100
3125
  {
@@ -3102,7 +3127,7 @@ class SInputNumberComponent extends ControlValueAccessorDirective {
3102
3127
  useExisting: forwardRef(() => SInputNumberComponent),
3103
3128
  multi: true
3104
3129
  }
3105
- ], usesInheritance: true, ngImport: i0, template: "<section class=\"s-input-number\">\n <label *ngIf=\"config.label\" class=\"s-input-number__label\" for=\"config.id\">\n {{ config.label }}\n <span class=\"s-input-number__required\" *ngIf=\"config.required\">*</span>\n </label>\n <div class=\"d-flex align-center\">\n <div class=\"content-left mr-1\">\n <s-button\n [disabled]=\"config.disabled ?? false\"\n (click)=\"numberDecrease()\"\n [size]=\"config.size ?? 'md'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"s-input-number__button\">\n <s-icon-mat>remove</s-icon-mat>\n </s-button>\n </div>\n <div\n class=\"s-input-number__content {{ config.size }}\n theme-{{ config.theme }} {{ config.classAdd }} w-100\"\n [ngClass]=\"{\n 'disabled-active': config.disabled,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id ? config.id : ''\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [formControl]=\"getControl()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id ? config.id : ''\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n (config?.theme === 'default' && config.showHelp) ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <div class=\"content-left ml-1\">\n <s-button\n [disabled]=\"config.disabled ?? false\"\n (click)=\"numberIncrement()\"\n [size]=\"config.size ?? 'md'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"button-input-626\"\n ><s-icon-mat>add</s-icon-mat></s-button\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n", styles: [".s-input-number{margin-bottom:.5rem}.s-input-number__label{font-size:.875rem;color:var(--secondary-600)}.s-input-number__required{color:var(--primary-600)}.s-input-number__button{font-size:.93rem;font-weight:700}.s-input-number__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-input-number__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-input-number__content input:focus,.s-input-number__content input:focus-visible{outline:none}.s-input-number__content input:-webkit-autofill,.s-input-number__content input:-webkit-autofill:hover,.s-input-number__content input:-webkit-autofill:focus,.s-input-number__content input:-webkit-autofill:active{-webkit-box-shadow:0rem 0rem 0rem 1.875rem var(--neutrals-1200) inset!important}.s-input-number__content input::-webkit-outer-spin-button,.s-input-number__content input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.s-input-number__content input[type=number]{-moz-appearance:textfield}.s-input-number__content .icon{width:1.25rem;cursor:default}.s-input-number__content .icon span{display:flex}.s-input-number__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-input-number__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-input-number__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-input-number__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800);outline:0}.s-input-number__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-input-number__content.disabled-active.content-left{color:var(--neutrals-800)!important}.s-input-number__content.disabled-active.content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-input-number__content.theme-red{border:.063rem solid var(--red-500)}.s-input-number__content.theme-red .icon.report span{color:var(--red-600)}.s-input-number__content.theme-green{border:.063rem solid var(--green-500)}.s-input-number__content.theme-green .icon.report span{color:var(--green-600)}.s-input-number__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-input-number__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-input-number__content .sm input{height:1.3rem;font-size:.75rem}.s-input-number__content .sm .icon{width:1.25rem;cursor:default}.s-input-number__content .sm .icon span{font-size:1.2em;display:flex}.s-input-number__content:not(.disabled-active):has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SButtonComponent, selector: "s-button", inputs: ["disabled", "pill", "size", "invert", "type", "loading", "position", "theme", "active"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }], encapsulation: i0.ViewEncapsulation.None }); }
3130
+ ], usesInheritance: true, ngImport: i0, template: "<section class=\"s-input-number\">\n <label *ngIf=\"config.label\" class=\"s-input-number__label\" for=\"config.id\">\n {{ config.label }}\n <span class=\"s-input-number__required\" *ngIf=\"config.required\">*</span>\n </label>\n <div class=\"d-flex align-center\">\n <div class=\"content-left mr-1\">\n <s-button\n [disabled]=\"!canDecrease()\"\n (click)=\"numberDecrease()\"\n [size]=\"config.size ?? 'md'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"s-input-number__button\">\n <s-icon-mat>remove</s-icon-mat>\n </s-button>\n </div>\n <div\n class=\"s-input-number__content {{ config.size }}\n theme-{{ config.theme }} {{ config.classAdd }} w-100\"\n [ngClass]=\"{\n 'disabled-active': config.disabled,\n 'readonly': config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id ? config.id : ''\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [formControl]=\"getControl()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id ? config.id : ''\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n (config?.theme === 'default' && config.showHelp) ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <div class=\"content-left ml-1\">\n <s-button\n [disabled]=\"!canIncrease()\"\n (click)=\"numberIncrement()\"\n [size]=\"config.size ?? 'md'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"button-input-626\"\n ><s-icon-mat>add</s-icon-mat></s-button\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n", styles: [".s-input-number{margin-bottom:.5rem}.s-input-number__label{font-size:.875rem;color:var(--secondary-600)}.s-input-number__required{color:var(--primary-600)}.s-input-number__button{font-size:.93rem;font-weight:700}.s-input-number__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-input-number__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-input-number__content input:focus,.s-input-number__content input:focus-visible{outline:none}.s-input-number__content input:-webkit-autofill,.s-input-number__content input:-webkit-autofill:hover,.s-input-number__content input:-webkit-autofill:focus,.s-input-number__content input:-webkit-autofill:active{-webkit-box-shadow:0rem 0rem 0rem 1.875rem var(--neutrals-1200) inset!important}.s-input-number__content input::-webkit-outer-spin-button,.s-input-number__content input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.s-input-number__content input[type=number]{-moz-appearance:textfield}.s-input-number__content .icon{width:1.25rem;cursor:default}.s-input-number__content .icon span{display:flex}.s-input-number__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-input-number__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-input-number__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-input-number__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800);outline:0}.s-input-number__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-input-number__content.disabled-active.content-left{color:var(--neutrals-800)!important}.s-input-number__content.disabled-active.content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-input-number__content.readonly{background-color:var(--neutrals-1100)}.s-input-number__content.readonly input{background-color:var(--neutrals-1100);cursor:default;color:var(--secondary-600)}.s-input-number__content.theme-red{border:.063rem solid var(--red-500)}.s-input-number__content.theme-red .icon.report span{color:var(--red-600)}.s-input-number__content.theme-green{border:.063rem solid var(--green-500)}.s-input-number__content.theme-green .icon.report span{color:var(--green-600)}.s-input-number__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-input-number__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-input-number__content .sm input{height:1.3rem;font-size:.75rem}.s-input-number__content .sm .icon{width:1.25rem;cursor:default}.s-input-number__content .sm .icon span{font-size:1.2em;display:flex}.s-input-number__content:not(.disabled-active):has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SButtonComponent, selector: "s-button", inputs: ["disabled", "pill", "size", "invert", "type", "loading", "position", "theme", "active"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }], encapsulation: i0.ViewEncapsulation.None }); }
3106
3131
  }
3107
3132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SInputNumberComponent, decorators: [{
3108
3133
  type: Component,
@@ -3112,7 +3137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3112
3137
  useExisting: forwardRef(() => SInputNumberComponent),
3113
3138
  multi: true
3114
3139
  }
3115
- ], template: "<section class=\"s-input-number\">\n <label *ngIf=\"config.label\" class=\"s-input-number__label\" for=\"config.id\">\n {{ config.label }}\n <span class=\"s-input-number__required\" *ngIf=\"config.required\">*</span>\n </label>\n <div class=\"d-flex align-center\">\n <div class=\"content-left mr-1\">\n <s-button\n [disabled]=\"config.disabled ?? false\"\n (click)=\"numberDecrease()\"\n [size]=\"config.size ?? 'md'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"s-input-number__button\">\n <s-icon-mat>remove</s-icon-mat>\n </s-button>\n </div>\n <div\n class=\"s-input-number__content {{ config.size }}\n theme-{{ config.theme }} {{ config.classAdd }} w-100\"\n [ngClass]=\"{\n 'disabled-active': config.disabled,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id ? config.id : ''\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [formControl]=\"getControl()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id ? config.id : ''\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n (config?.theme === 'default' && config.showHelp) ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <div class=\"content-left ml-1\">\n <s-button\n [disabled]=\"config.disabled ?? false\"\n (click)=\"numberIncrement()\"\n [size]=\"config.size ?? 'md'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"button-input-626\"\n ><s-icon-mat>add</s-icon-mat></s-button\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n", styles: [".s-input-number{margin-bottom:.5rem}.s-input-number__label{font-size:.875rem;color:var(--secondary-600)}.s-input-number__required{color:var(--primary-600)}.s-input-number__button{font-size:.93rem;font-weight:700}.s-input-number__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-input-number__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-input-number__content input:focus,.s-input-number__content input:focus-visible{outline:none}.s-input-number__content input:-webkit-autofill,.s-input-number__content input:-webkit-autofill:hover,.s-input-number__content input:-webkit-autofill:focus,.s-input-number__content input:-webkit-autofill:active{-webkit-box-shadow:0rem 0rem 0rem 1.875rem var(--neutrals-1200) inset!important}.s-input-number__content input::-webkit-outer-spin-button,.s-input-number__content input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.s-input-number__content input[type=number]{-moz-appearance:textfield}.s-input-number__content .icon{width:1.25rem;cursor:default}.s-input-number__content .icon span{display:flex}.s-input-number__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-input-number__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-input-number__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-input-number__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800);outline:0}.s-input-number__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-input-number__content.disabled-active.content-left{color:var(--neutrals-800)!important}.s-input-number__content.disabled-active.content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-input-number__content.theme-red{border:.063rem solid var(--red-500)}.s-input-number__content.theme-red .icon.report span{color:var(--red-600)}.s-input-number__content.theme-green{border:.063rem solid var(--green-500)}.s-input-number__content.theme-green .icon.report span{color:var(--green-600)}.s-input-number__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-input-number__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-input-number__content .sm input{height:1.3rem;font-size:.75rem}.s-input-number__content .sm .icon{width:1.25rem;cursor:default}.s-input-number__content .sm .icon span{font-size:1.2em;display:flex}.s-input-number__content:not(.disabled-active):has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"] }]
3140
+ ], template: "<section class=\"s-input-number\">\n <label *ngIf=\"config.label\" class=\"s-input-number__label\" for=\"config.id\">\n {{ config.label }}\n <span class=\"s-input-number__required\" *ngIf=\"config.required\">*</span>\n </label>\n <div class=\"d-flex align-center\">\n <div class=\"content-left mr-1\">\n <s-button\n [disabled]=\"!canDecrease()\"\n (click)=\"numberDecrease()\"\n [size]=\"config.size ?? 'md'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"s-input-number__button\">\n <s-icon-mat>remove</s-icon-mat>\n </s-button>\n </div>\n <div\n class=\"s-input-number__content {{ config.size }}\n theme-{{ config.theme }} {{ config.classAdd }} w-100\"\n [ngClass]=\"{\n 'disabled-active': config.disabled,\n 'readonly': config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id ? config.id : ''\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [formControl]=\"getControl()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"config.id ? config.id : ''\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div\n *ngIf=\"config.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n (config?.theme === 'default' && config.showHelp) ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <div class=\"content-left ml-1\">\n <s-button\n [disabled]=\"!canIncrease()\"\n (click)=\"numberIncrement()\"\n [size]=\"config.size ?? 'md'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"button-input-626\"\n ><s-icon-mat>add</s-icon-mat></s-button\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n", styles: [".s-input-number{margin-bottom:.5rem}.s-input-number__label{font-size:.875rem;color:var(--secondary-600)}.s-input-number__required{color:var(--primary-600)}.s-input-number__button{font-size:.93rem;font-weight:700}.s-input-number__content{display:flex;border:.063rem solid var(--primary-500);border-radius:.25rem;padding:0 .5rem;margin:.18rem 0;background-color:var(--neutrals-1200)}.s-input-number__content input{width:100%;border:0rem;color:var(--secondary-600);writing-mode:unset;height:2.25rem;font-size:inherit;background-color:var(--neutrals-1200)}.s-input-number__content input:focus,.s-input-number__content input:focus-visible{outline:none}.s-input-number__content input:-webkit-autofill,.s-input-number__content input:-webkit-autofill:hover,.s-input-number__content input:-webkit-autofill:focus,.s-input-number__content input:-webkit-autofill:active{-webkit-box-shadow:0rem 0rem 0rem 1.875rem var(--neutrals-1200) inset!important}.s-input-number__content input::-webkit-outer-spin-button,.s-input-number__content input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.s-input-number__content input[type=number]{-moz-appearance:textfield}.s-input-number__content .icon{width:1.25rem;cursor:default}.s-input-number__content .icon span{display:flex}.s-input-number__content .content-center{width:100%;background-color:var(--neutrals-1200)}.s-input-number__content .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:.5rem;color:var(--primary-600)}.s-input-number__content .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--secondary-600)}.s-input-number__content.theme-green:has(input:focus){border:.063rem solid var(--green-500);box-shadow:0 0 0 .25rem var(--green-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.theme-yellow:has(input:focus){border:.063rem solid var(--yellow-500);box-shadow:0 0 0 .25rem var(--yellow-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.theme-red:has(input:focus){border:.063rem solid var(--red-500);box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}.s-input-number__content.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800);outline:0}.s-input-number__content.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.s-input-number__content.disabled-active.content-left{color:var(--neutrals-800)!important}.s-input-number__content.disabled-active.content-right s-icon-mat span{color:var(--neutrals-800)!important}.s-input-number__content.readonly{background-color:var(--neutrals-1100)}.s-input-number__content.readonly input{background-color:var(--neutrals-1100);cursor:default;color:var(--secondary-600)}.s-input-number__content.theme-red{border:.063rem solid var(--red-500)}.s-input-number__content.theme-red .icon.report span{color:var(--red-600)}.s-input-number__content.theme-green{border:.063rem solid var(--green-500)}.s-input-number__content.theme-green .icon.report span{color:var(--green-600)}.s-input-number__content.theme-yellow{border:.063rem solid var(--yellow-500)}.s-input-number__content.theme-yellow .icon.report span{color:var(--yellow-600)}.s-input-number__content .sm input{height:1.3rem;font-size:.75rem}.s-input-number__content .sm .icon{width:1.25rem;cursor:default}.s-input-number__content .sm .icon span{font-size:1.2em;display:flex}.s-input-number__content:not(.disabled-active):has(input:focus){border:.063rem solid var(--primary-600);box-shadow:0 0 0 .25rem var(--cyan-alpha-200),0 .063rem .125rem 0 var(--blue-alpha-100)}\n"] }]
3116
3141
  }], propDecorators: { config: [{
3117
3142
  type: Input
3118
3143
  }], clickHelpIconEvent: [{
@@ -3129,7 +3154,7 @@ class SInputModule {
3129
3154
  SErrorControl,
3130
3155
  SInputComponent,
3131
3156
  SInputNumberComponent,
3132
- SRangeComponent,
3157
+ SSliderComponent,
3133
3158
  SCalendarComponent,
3134
3159
  STimeComponent,
3135
3160
  SColorComponent,
@@ -3141,7 +3166,7 @@ class SInputModule {
3141
3166
  SErrorControl,
3142
3167
  SInputComponent,
3143
3168
  SInputNumberComponent,
3144
- SRangeComponent,
3169
+ SSliderComponent,
3145
3170
  SCalendarComponent,
3146
3171
  STimeComponent,
3147
3172
  SColorComponent,
@@ -3161,7 +3186,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3161
3186
  SErrorControl,
3162
3187
  SInputComponent,
3163
3188
  SInputNumberComponent,
3164
- SRangeComponent,
3189
+ SSliderComponent,
3165
3190
  SCalendarComponent,
3166
3191
  STimeComponent,
3167
3192
  SColorComponent,
@@ -3179,7 +3204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3179
3204
  SErrorControl,
3180
3205
  SInputComponent,
3181
3206
  SInputNumberComponent,
3182
- SRangeComponent,
3207
+ SSliderComponent,
3183
3208
  SCalendarComponent,
3184
3209
  STimeComponent,
3185
3210
  SColorComponent,
@@ -3346,7 +3371,7 @@ class SSelectMultipleComponent extends ControlValueAccessorDirective {
3346
3371
  useExisting: forwardRef(() => SSelectMultipleComponent),
3347
3372
  multi: true,
3348
3373
  },
3349
- ], usesInheritance: true, ngImport: i0, template: "<article\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\">\r\n {{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <section\r\n [ngClass]=\"{\r\n 'theme-red': control && control.invalid && isFocused,\r\n 'is-open': isOpen,\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n }\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n class=\"s-select__main cursor\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\"\r\n (click)=\"openDropDown()\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option select-multiple\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n size=\"{{ config.size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar size=\"{{ config.size === 'sm' ? '16' : '24' }}\"></s-avatar>\r\n </div>\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">\r\n {{ selectionText }}\r\n </span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">\r\n {{ config.placeholder }}\r\n </span>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!config.readOnly || !config.disabled\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText && control && control.invalid && config.errorText\r\n \"\r\n theme=\"red\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText &&\r\n !config.errorText &&\r\n control &&\r\n !control.errors &&\r\n config.helpText\r\n \">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n <section class=\"s-select__dropdown\" *ngIf=\"isOpen\">\r\n <div class=\"s-select__options-multiple--search\">\r\n <!-- //TODO flag opcional, por defecto true -->\r\n <s-input\r\n [config]=\"configSearch\"\r\n [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"filter()\"></s-input>\r\n </div>\r\n <div\r\n class=\"s-select__options-multiple\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\">\r\n <div\r\n role=\"option\"\r\n tabindex=\"0\"\r\n class=\"s-select__item\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n [attr.aria-selected]=\"item.value\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left select-multiple\">\r\n <s-checkbox\r\n [config]=\"checkItem\"\r\n [(ngModel)]=\"item.value\"></s-checkbox>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n [size]=\"config.size === 'sm' ? '16' : '24'\"\r\n [display]=\"item.user?.display\"\r\n [letters]=\"item.user?.letters\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\">\r\n </s-avatar>\r\n </div>\r\n <s-icon-mat\r\n size=\"{{ config.size === 'sm' ? '17' : '22' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"s-select__options-multiple--selected\"\r\n [ngClass]=\"{ sm: config.size === 'sm' }\">\r\n <div class=\"s-select__options-multiple--selected-content\">\r\n <p class=\"s-select__options-multiple--selected-text\">\r\n {{ this.config.selected }}: {{ this.countSelected }}\r\n </p>\r\n <a\r\n tabindex=\"0\"\r\n class=\"s-select__options-multiple--selectAllOption\"\r\n (click)=\"selectAllEvent()\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n >{{\r\n options.length === countSelected\r\n ? config.deselectAllOptions\r\n : config.selectAllOption\r\n }}</a\r\n >\r\n </div>\r\n </div>\r\n </section>\r\n</article>\r\n", styles: [".s-select{width:100%;position:relative}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:3fr 4fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:4fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SAvatarComponent, selector: "s-avatar", inputs: ["urlProfileImage", "letters", "status", "display", "size"] }, { kind: "component", type: SCheckboxComponent, selector: "s-checkbox", inputs: ["config"], outputs: ["blur", "focus"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SInputComponent, selector: "s-input", inputs: ["config"], outputs: ["clickHelpIconEvent", "blur", "focus"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
3374
+ ], usesInheritance: true, ngImport: i0, template: "<article\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\">\r\n {{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <section\r\n class=\"s-select__main cursor\"\r\n [ngClass]=\"{\r\n readonly: config.readOnly,\r\n 'theme-red': control && control.invalid && isFocused,\r\n 'is-open': isOpen,\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n (click)=\"openDropDown()\"\r\n (keydown)=\"onKeyDownMain($event)\"\r\n >\r\n <div class=\"s-select__main__selected-option select-multiple\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n size=\"{{ config.size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar size=\"{{ config.size === 'sm' ? '16' : '24' }}\"></s-avatar>\r\n </div>\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">\r\n {{ selectionText }}\r\n </span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">\r\n {{ config.placeholder }}\r\n </span>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!config.readOnly || !config.disabled\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText && control && control.invalid && config.errorText\r\n \"\r\n theme=\"red\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText &&\r\n !config.errorText &&\r\n control &&\r\n !control.errors &&\r\n config.helpText\r\n \">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n <section class=\"s-select__dropdown\" *ngIf=\"isOpen\">\r\n <div class=\"s-select__options-multiple--search\">\r\n <!-- //TODO flag opcional, por defecto true -->\r\n <s-input\r\n [config]=\"configSearch\"\r\n [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"filter()\"></s-input>\r\n </div>\r\n <div\r\n class=\"s-select__options-multiple\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\">\r\n <div\r\n role=\"option\"\r\n tabindex=\"0\"\r\n class=\"s-select__item\"\r\n [ngClass]=\"{sm: config.size === 'sm',md: config.size !== 'sm','no-display': !config.display}\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n [attr.aria-selected]=\"item.value\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left select-multiple\">\r\n <s-checkbox\r\n [config]=\"checkItem\"\r\n [(ngModel)]=\"item.value\"></s-checkbox>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n [size]=\"config.size === 'sm' ? '16' : '24'\"\r\n [display]=\"item.user?.display\"\r\n [letters]=\"item.user?.letters\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\">\r\n </s-avatar>\r\n </div>\r\n <s-icon-mat\r\n size=\"{{ config.size === 'sm' ? '17' : '22' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"s-select__options-multiple--selected\"\r\n [ngClass]=\"{ sm: config.size === 'sm' }\">\r\n <div class=\"s-select__options-multiple--selected-content\">\r\n <p class=\"s-select__options-multiple--selected-text\">\r\n {{ this.config.selected }}: {{ this.countSelected }}\r\n </p>\r\n <a\r\n tabindex=\"0\"\r\n class=\"s-select__options-multiple--selectAllOption\"\r\n (click)=\"selectAllEvent()\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n >{{\r\n options.length === countSelected\r\n ? config.deselectAllOptions\r\n : config.selectAllOption\r\n }}</a\r\n >\r\n </div>\r\n </div>\r\n </section>\r\n</article>\r\n", styles: [".s-select{width:100%;position:relative}.s-select__main.readonly{background-color:var(--neutrals-1100);cursor:default}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item.no-display .content-left.select-simple{grid-template-columns:auto}.s-select__item.no-display .content-left.select-multiple{grid-template-columns:auto 1fr}.s-select__item.no-display .option-value{margin-left:0;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:2fr 2fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:2fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SAvatarComponent, selector: "s-avatar", inputs: ["urlProfileImage", "letters", "status", "display", "size"] }, { kind: "component", type: SCheckboxComponent, selector: "s-checkbox", inputs: ["config"], outputs: ["blur", "focus"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SInputComponent, selector: "s-input", inputs: ["config"], outputs: ["clickHelpIconEvent", "blur", "focus"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
3350
3375
  }
3351
3376
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SSelectMultipleComponent, decorators: [{
3352
3377
  type: Component,
@@ -3356,7 +3381,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3356
3381
  useExisting: forwardRef(() => SSelectMultipleComponent),
3357
3382
  multi: true,
3358
3383
  },
3359
- ], template: "<article\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\">\r\n {{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <section\r\n [ngClass]=\"{\r\n 'theme-red': control && control.invalid && isFocused,\r\n 'is-open': isOpen,\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n }\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n class=\"s-select__main cursor\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\"\r\n (click)=\"openDropDown()\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option select-multiple\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n size=\"{{ config.size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar size=\"{{ config.size === 'sm' ? '16' : '24' }}\"></s-avatar>\r\n </div>\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">\r\n {{ selectionText }}\r\n </span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">\r\n {{ config.placeholder }}\r\n </span>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!config.readOnly || !config.disabled\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText && control && control.invalid && config.errorText\r\n \"\r\n theme=\"red\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText &&\r\n !config.errorText &&\r\n control &&\r\n !control.errors &&\r\n config.helpText\r\n \">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n <section class=\"s-select__dropdown\" *ngIf=\"isOpen\">\r\n <div class=\"s-select__options-multiple--search\">\r\n <!-- //TODO flag opcional, por defecto true -->\r\n <s-input\r\n [config]=\"configSearch\"\r\n [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"filter()\"></s-input>\r\n </div>\r\n <div\r\n class=\"s-select__options-multiple\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\">\r\n <div\r\n role=\"option\"\r\n tabindex=\"0\"\r\n class=\"s-select__item\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n [attr.aria-selected]=\"item.value\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left select-multiple\">\r\n <s-checkbox\r\n [config]=\"checkItem\"\r\n [(ngModel)]=\"item.value\"></s-checkbox>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n [size]=\"config.size === 'sm' ? '16' : '24'\"\r\n [display]=\"item.user?.display\"\r\n [letters]=\"item.user?.letters\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\">\r\n </s-avatar>\r\n </div>\r\n <s-icon-mat\r\n size=\"{{ config.size === 'sm' ? '17' : '22' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"s-select__options-multiple--selected\"\r\n [ngClass]=\"{ sm: config.size === 'sm' }\">\r\n <div class=\"s-select__options-multiple--selected-content\">\r\n <p class=\"s-select__options-multiple--selected-text\">\r\n {{ this.config.selected }}: {{ this.countSelected }}\r\n </p>\r\n <a\r\n tabindex=\"0\"\r\n class=\"s-select__options-multiple--selectAllOption\"\r\n (click)=\"selectAllEvent()\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n >{{\r\n options.length === countSelected\r\n ? config.deselectAllOptions\r\n : config.selectAllOption\r\n }}</a\r\n >\r\n </div>\r\n </div>\r\n </section>\r\n</article>\r\n", styles: [".s-select{width:100%;position:relative}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:3fr 4fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:4fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"] }]
3384
+ ], template: "<article\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\">\r\n {{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <section\r\n class=\"s-select__main cursor\"\r\n [ngClass]=\"{\r\n readonly: config.readOnly,\r\n 'theme-red': control && control.invalid && isFocused,\r\n 'is-open': isOpen,\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n (click)=\"openDropDown()\"\r\n (keydown)=\"onKeyDownMain($event)\"\r\n >\r\n <div class=\"s-select__main__selected-option select-multiple\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n size=\"{{ config.size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar size=\"{{ config.size === 'sm' ? '16' : '24' }}\"></s-avatar>\r\n </div>\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">\r\n {{ selectionText }}\r\n </span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">\r\n {{ config.placeholder }}\r\n </span>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!config.readOnly || !config.disabled\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText && control && control.invalid && config.errorText\r\n \"\r\n theme=\"red\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText &&\r\n !config.errorText &&\r\n control &&\r\n !control.errors &&\r\n config.helpText\r\n \">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n <section class=\"s-select__dropdown\" *ngIf=\"isOpen\">\r\n <div class=\"s-select__options-multiple--search\">\r\n <!-- //TODO flag opcional, por defecto true -->\r\n <s-input\r\n [config]=\"configSearch\"\r\n [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"filter()\"></s-input>\r\n </div>\r\n <div\r\n class=\"s-select__options-multiple\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\">\r\n <div\r\n role=\"option\"\r\n tabindex=\"0\"\r\n class=\"s-select__item\"\r\n [ngClass]=\"{sm: config.size === 'sm',md: config.size !== 'sm','no-display': !config.display}\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n [attr.aria-selected]=\"item.value\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left select-multiple\">\r\n <s-checkbox\r\n [config]=\"checkItem\"\r\n [(ngModel)]=\"item.value\"></s-checkbox>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n [size]=\"config.size === 'sm' ? '16' : '24'\"\r\n [display]=\"item.user?.display\"\r\n [letters]=\"item.user?.letters\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\">\r\n </s-avatar>\r\n </div>\r\n <s-icon-mat\r\n size=\"{{ config.size === 'sm' ? '17' : '22' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"s-select__options-multiple--selected\"\r\n [ngClass]=\"{ sm: config.size === 'sm' }\">\r\n <div class=\"s-select__options-multiple--selected-content\">\r\n <p class=\"s-select__options-multiple--selected-text\">\r\n {{ this.config.selected }}: {{ this.countSelected }}\r\n </p>\r\n <a\r\n tabindex=\"0\"\r\n class=\"s-select__options-multiple--selectAllOption\"\r\n (click)=\"selectAllEvent()\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n >{{\r\n options.length === countSelected\r\n ? config.deselectAllOptions\r\n : config.selectAllOption\r\n }}</a\r\n >\r\n </div>\r\n </div>\r\n </section>\r\n</article>\r\n", styles: [".s-select{width:100%;position:relative}.s-select__main.readonly{background-color:var(--neutrals-1100);cursor:default}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item.no-display .content-left.select-simple{grid-template-columns:auto}.s-select__item.no-display .content-left.select-multiple{grid-template-columns:auto 1fr}.s-select__item.no-display .option-value{margin-left:0;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:2fr 2fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:2fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"] }]
3360
3385
  }], ctorParameters: () => [{ type: SelectNavigationService }, { type: i0.Injector }], propDecorators: { config: [{
3361
3386
  type: Input
3362
3387
  }], selectEvent: [{
@@ -3394,13 +3419,14 @@ class SSelectComponent extends ControlValueAccessorDirective {
3394
3419
  return this.control;
3395
3420
  }
3396
3421
  getTitle() {
3397
- if (this.value) {
3398
- const index = this.config.options.findIndex(item => item.value === this.value.toString());
3399
- this.activeIndex = index;
3422
+ if (!this.config?.options?.length) {
3423
+ return '';
3424
+ }
3425
+ if (this.value === null || this.value === undefined) {
3426
+ return '';
3400
3427
  }
3401
- return this.activeIndex || this.activeIndex === 0
3402
- ? this.config.options[this.activeIndex].title
3403
- : '';
3428
+ const option = this.config.options.find(item => item.value === this.value.toString());
3429
+ return option?.title ?? '';
3404
3430
  }
3405
3431
  onInput(event) {
3406
3432
  const input = event.target;
@@ -3458,7 +3484,7 @@ class SSelectComponent extends ControlValueAccessorDirective {
3458
3484
  useExisting: forwardRef(() => SSelectComponent),
3459
3485
  multi: true,
3460
3486
  },
3461
- ], usesInheritance: true, ngImport: i0, template: "<div\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\"\r\n >{{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <div\r\n class=\"s-select__main cursor\"\r\n [ngClass]=\"{\r\n 'theme-red': (control && control.invalid && isFocused ),\r\n 'is-open': isOpen,\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\"\r\n tabIndex=\"0\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option select-simple\">\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"value\">\r\n <ng-container *ngIf=\"control; else notUseFormControl\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"config.id ? config.id : ''\"\r\n [formControl]=\"getControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-container>\r\n <ng-template #notUseFormControl>\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"config.id ? config.id : ''\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-template>\r\n <span>{{ getTitle() }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"!value\">\r\n <div\r\n class=\"s-select__main__selected-option__left__content-option\"\r\n *ngIf=\"!value\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <span class=\"placeholder\">{{ config.placeholder }}</span>\r\n </div>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!config.readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && config.errorText\"\r\n theme=\"red\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && !config.errorText && control && !control.errors && config.helpText\">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n\r\n\r\n <div class=\"s-select__options\" [ngClass]=\"{\r\n 'label-off': !config.label,\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\" *ngIf=\"isOpen\">\r\n <section class=\"s-select__options-simple\">\r\n <div\r\n class=\"s-select__item\"\r\n [ngClass]=\"{\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\"\r\n *ngFor=\"let item of config.options; index as i\"\r\n [class.active]=\"i === activeIndex\"\r\n (click)=\"getSelectedValue(item)\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n tabindex=\"0\">\r\n <div class=\"content-left select-simple\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n size=\"24\"\r\n [display]=\"item.user?.display\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? '17' : '22'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\r\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n</div>\r\n\r\n<ng-template #display>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? '17' : '22'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div\r\n *ngIf=\"\r\n config?.display === 'profile' &&\r\n (activeIndex || this.activeIndex === 0) &&\r\n config.options[activeIndex]?.user\r\n \"\r\n class=\"content-avatar\">\r\n <s-avatar\r\n size=\"24\"\r\n [status]=\"config.options[activeIndex].user?.status ?? null\"\r\n [display]=\"config.options[activeIndex].user?.display ?? undefined\"\r\n [urlProfileImage]=\"\r\n config.options[activeIndex].user?.url ?? undefined\r\n \"></s-avatar>\r\n </div>\r\n</ng-template>", styles: [".s-select{width:100%;position:relative}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:3fr 4fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:4fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SAvatarComponent, selector: "s-avatar", inputs: ["urlProfileImage", "letters", "status", "display", "size"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }], encapsulation: i0.ViewEncapsulation.None }); }
3487
+ ], usesInheritance: true, ngImport: i0, template: "<div\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\"\r\n >{{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <div\r\n class=\"s-select__main cursor\"\r\n [ngClass]=\"{\r\n 'theme-red': (control && control.invalid && isFocused ),\r\n 'is-open': isOpen,\r\n 'readonly': config.readOnly,\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\"\r\n tabIndex=\"0\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option select-simple\">\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"value\">\r\n <ng-container *ngIf=\"control; else notUseFormControl\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"config.id ? config.id : ''\"\r\n [formControl]=\"getControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-container>\r\n <ng-template #notUseFormControl>\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"config.id ? config.id : ''\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-template>\r\n <span>{{ getTitle() }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"!value\">\r\n <div\r\n class=\"s-select__main__selected-option__left__content-option\"\r\n *ngIf=\"!value\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <span class=\"placeholder\">{{ config.placeholder }}</span>\r\n </div>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!config.readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && config.errorText\"\r\n theme=\"red\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && !config.errorText && control && !control.errors && config.helpText\">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n\r\n\r\n <div class=\"s-select__options\" [ngClass]=\"{\r\n 'label-off': !config.label,\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\" *ngIf=\"isOpen\">\r\n <section class=\"s-select__options-simple\">\r\n <div\r\n class=\"s-select__item\"\r\n [ngClass]=\"{\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n 'no-display': !config.display\r\n }\"\r\n *ngFor=\"let item of config.options; index as i\"\r\n [class.active]=\"i === activeIndex\"\r\n (click)=\"getSelectedValue(item)\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n tabindex=\"0\">\r\n <div class=\"content-left select-simple\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n size=\"24\"\r\n [display]=\"item.user?.display\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? '17' : '22'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\r\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n</div>\r\n\r\n<ng-template #display>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? '17' : '22'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div\r\n *ngIf=\"\r\n config?.display === 'profile' &&\r\n (activeIndex || this.activeIndex === 0) &&\r\n config.options[activeIndex]?.user\r\n \"\r\n class=\"content-avatar\">\r\n <s-avatar\r\n size=\"24\"\r\n [status]=\"config.options[activeIndex].user?.status ?? null\"\r\n [display]=\"config.options[activeIndex].user?.display ?? undefined\"\r\n [urlProfileImage]=\"\r\n config.options[activeIndex].user?.url ?? undefined\r\n \"></s-avatar>\r\n </div>\r\n</ng-template>", styles: [".s-select{width:100%;position:relative}.s-select__main.readonly{background-color:var(--neutrals-1100);cursor:default}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item.no-display .content-left.select-simple{grid-template-columns:auto}.s-select__item.no-display .content-left.select-multiple{grid-template-columns:auto 1fr}.s-select__item.no-display .option-value{margin-left:0;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:2fr 2fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:2fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SAvatarComponent, selector: "s-avatar", inputs: ["urlProfileImage", "letters", "status", "display", "size"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { kind: "component", type: SValidationError, selector: "s-validation-error", inputs: ["errors", "customErrorMessages"] }], encapsulation: i0.ViewEncapsulation.None }); }
3462
3488
  }
3463
3489
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SSelectComponent, decorators: [{
3464
3490
  type: Component,
@@ -3468,7 +3494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3468
3494
  useExisting: forwardRef(() => SSelectComponent),
3469
3495
  multi: true,
3470
3496
  },
3471
- ], template: "<div\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\"\r\n >{{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <div\r\n class=\"s-select__main cursor\"\r\n [ngClass]=\"{\r\n 'theme-red': (control && control.invalid && isFocused ),\r\n 'is-open': isOpen,\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\"\r\n tabIndex=\"0\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option select-simple\">\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"value\">\r\n <ng-container *ngIf=\"control; else notUseFormControl\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"config.id ? config.id : ''\"\r\n [formControl]=\"getControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-container>\r\n <ng-template #notUseFormControl>\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"config.id ? config.id : ''\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-template>\r\n <span>{{ getTitle() }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"!value\">\r\n <div\r\n class=\"s-select__main__selected-option__left__content-option\"\r\n *ngIf=\"!value\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <span class=\"placeholder\">{{ config.placeholder }}</span>\r\n </div>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!config.readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && config.errorText\"\r\n theme=\"red\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && !config.errorText && control && !control.errors && config.helpText\">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n\r\n\r\n <div class=\"s-select__options\" [ngClass]=\"{\r\n 'label-off': !config.label,\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\" *ngIf=\"isOpen\">\r\n <section class=\"s-select__options-simple\">\r\n <div\r\n class=\"s-select__item\"\r\n [ngClass]=\"{\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\"\r\n *ngFor=\"let item of config.options; index as i\"\r\n [class.active]=\"i === activeIndex\"\r\n (click)=\"getSelectedValue(item)\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n tabindex=\"0\">\r\n <div class=\"content-left select-simple\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n size=\"24\"\r\n [display]=\"item.user?.display\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? '17' : '22'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\r\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n</div>\r\n\r\n<ng-template #display>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? '17' : '22'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div\r\n *ngIf=\"\r\n config?.display === 'profile' &&\r\n (activeIndex || this.activeIndex === 0) &&\r\n config.options[activeIndex]?.user\r\n \"\r\n class=\"content-avatar\">\r\n <s-avatar\r\n size=\"24\"\r\n [status]=\"config.options[activeIndex].user?.status ?? null\"\r\n [display]=\"config.options[activeIndex].user?.display ?? undefined\"\r\n [urlProfileImage]=\"\r\n config.options[activeIndex].user?.url ?? undefined\r\n \"></s-avatar>\r\n </div>\r\n</ng-template>", styles: [".s-select{width:100%;position:relative}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:3fr 4fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:4fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"] }]
3497
+ ], template: "<div\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\"\r\n >{{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <div\r\n class=\"s-select__main cursor\"\r\n [ngClass]=\"{\r\n 'theme-red': (control && control.invalid && isFocused ),\r\n 'is-open': isOpen,\r\n 'readonly': config.readOnly,\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\"\r\n tabIndex=\"0\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option select-simple\">\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"value\">\r\n <ng-container *ngIf=\"control; else notUseFormControl\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"config.id ? config.id : ''\"\r\n [formControl]=\"getControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-container>\r\n <ng-template #notUseFormControl>\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"config.id ? config.id : ''\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-template>\r\n <span>{{ getTitle() }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"!value\">\r\n <div\r\n class=\"s-select__main__selected-option__left__content-option\"\r\n *ngIf=\"!value\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <span class=\"placeholder\">{{ config.placeholder }}</span>\r\n </div>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!config.readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && config.errorText\"\r\n theme=\"red\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && !config.errorText && control && !control.errors && config.helpText\">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n\r\n\r\n <div class=\"s-select__options\" [ngClass]=\"{\r\n 'label-off': !config.label,\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD\r\n }\" *ngIf=\"isOpen\">\r\n <section class=\"s-select__options-simple\">\r\n <div\r\n class=\"s-select__item\"\r\n [ngClass]=\"{\r\n 'sm': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n 'md': (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n 'no-display': !config.display\r\n }\"\r\n *ngFor=\"let item of config.options; index as i\"\r\n [class.active]=\"i === activeIndex\"\r\n (click)=\"getSelectedValue(item)\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n tabindex=\"0\">\r\n <div class=\"content-left select-simple\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n size=\"24\"\r\n [display]=\"item.user?.display\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? '17' : '22'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\r\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n</div>\r\n\r\n<ng-template #display>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? '17' : '22'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div\r\n *ngIf=\"\r\n config?.display === 'profile' &&\r\n (activeIndex || this.activeIndex === 0) &&\r\n config.options[activeIndex]?.user\r\n \"\r\n class=\"content-avatar\">\r\n <s-avatar\r\n size=\"24\"\r\n [status]=\"config.options[activeIndex].user?.status ?? null\"\r\n [display]=\"config.options[activeIndex].user?.display ?? undefined\"\r\n [urlProfileImage]=\"\r\n config.options[activeIndex].user?.url ?? undefined\r\n \"></s-avatar>\r\n </div>\r\n</ng-template>", styles: [".s-select{width:100%;position:relative}.s-select__main.readonly{background-color:var(--neutrals-1100);cursor:default}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item.no-display .content-left.select-simple{grid-template-columns:auto}.s-select__item.no-display .content-left.select-multiple{grid-template-columns:auto 1fr}.s-select__item.no-display .option-value{margin-left:0;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:2fr 2fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:2fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"] }]
3472
3498
  }], ctorParameters: () => [{ type: i0.Injector }, { type: SelectNavigationService }], propDecorators: { config: [{
3473
3499
  type: Input
3474
3500
  }], blur: [{
@@ -3608,7 +3634,7 @@ class SSelectMultipleOldComponent {
3608
3634
  useExisting: forwardRef(() => SSelectMultipleOldComponent),
3609
3635
  multi: true,
3610
3636
  },
3611
- ], ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/interactive-supports-focus -->\r\n<div\r\n class=\"s-select\"\r\n [ngClass]=\"disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{ label }}</span>\r\n <div\r\n class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{\r\n size ? size : ''\r\n }}\"\r\n (click)=\"openDropDown()\"\r\n tabindex=\"0\" (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n size=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar *ngIf=\"size === 'sm'\" size=\"16\"></s-avatar>\r\n <s-avatar *ngIf=\"size === 'md'\" size=\"24\"></s-avatar>\r\n </div>\r\n <!-- +{{ countSelected }} Selecciones -->\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">{{\r\n selectionText\r\n }}</span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">{{\r\n placeholder\r\n }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"s-select__options {{ size ? size : '' }}\" *ngIf=\"isOpen\">\r\n <div\r\n tabindex=\"0\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n (click)=\"selectAllEvent()\"\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngIf=\"options.length >= 2\">\r\n <div class=\"content-left\">\r\n <s-checkbox\r\n [config]=\"checkAll\"\r\n [(ngModel)]=\"selectAll\"\r\n \r\n (keydown.enter)=\"selectAllEvent()\"\r\n ></s-checkbox>\r\n <span class=\"option-value\">{{ selectAllOption }}</span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n (keydown)=\"onKeyDownItems($event , item)\"\r\n tabindex=\"0\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left\">\r\n <s-checkbox-old [tabIndex]=\"-1\" [model]=\"item.value\"> </s-checkbox-old>\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n *ngIf=\"size === 'sm'\"\r\n size=\"16\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n <s-avatar\r\n *ngIf=\"size === 'md'\"\r\n size=\"24\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat\r\n size=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".s-select{width:100%;position:relative}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:3fr 4fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:4fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SAvatarComponent, selector: "s-avatar", inputs: ["urlProfileImage", "letters", "status", "display", "size"] }, { kind: "component", type: SCheckboxOldComponent, selector: "s-checkbox-old", inputs: ["value", "model", "disabled", "isUndefined", "label", "boldSelectActive", "tabIndex"], outputs: ["emitSelection"] }, { kind: "component", type: SCheckboxComponent, selector: "s-checkbox", inputs: ["config"], outputs: ["blur", "focus"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
3637
+ ], ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/interactive-supports-focus -->\r\n<div\r\n class=\"s-select\"\r\n [ngClass]=\"disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{ label }}</span>\r\n <div\r\n class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{\r\n size ? size : ''\r\n }}\"\r\n (click)=\"openDropDown()\"\r\n tabindex=\"0\" (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n size=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar *ngIf=\"size === 'sm'\" size=\"16\"></s-avatar>\r\n <s-avatar *ngIf=\"size === 'md'\" size=\"24\"></s-avatar>\r\n </div>\r\n <!-- +{{ countSelected }} Selecciones -->\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">{{\r\n selectionText\r\n }}</span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">{{\r\n placeholder\r\n }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"s-select__options {{ size ? size : '' }}\" *ngIf=\"isOpen\">\r\n <div\r\n tabindex=\"0\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n (click)=\"selectAllEvent()\"\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngIf=\"options.length >= 2\">\r\n <div class=\"content-left\">\r\n <s-checkbox\r\n [config]=\"checkAll\"\r\n [(ngModel)]=\"selectAll\"\r\n \r\n (keydown.enter)=\"selectAllEvent()\"\r\n ></s-checkbox>\r\n <span class=\"option-value\">{{ selectAllOption }}</span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n (keydown)=\"onKeyDownItems($event , item)\"\r\n tabindex=\"0\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left\">\r\n <s-checkbox-old [tabIndex]=\"-1\" [model]=\"item.value\"> </s-checkbox-old>\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n *ngIf=\"size === 'sm'\"\r\n size=\"16\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n <s-avatar\r\n *ngIf=\"size === 'md'\"\r\n size=\"24\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat\r\n size=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".s-select{width:100%;position:relative}.s-select__main.readonly{background-color:var(--neutrals-1100);cursor:default}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item.no-display .content-left.select-simple{grid-template-columns:auto}.s-select__item.no-display .content-left.select-multiple{grid-template-columns:auto 1fr}.s-select__item.no-display .option-value{margin-left:0;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:2fr 2fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:2fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SAvatarComponent, selector: "s-avatar", inputs: ["urlProfileImage", "letters", "status", "display", "size"] }, { kind: "component", type: SCheckboxOldComponent, selector: "s-checkbox-old", inputs: ["value", "model", "disabled", "isUndefined", "label", "boldSelectActive", "tabIndex"], outputs: ["emitSelection"] }, { kind: "component", type: SCheckboxComponent, selector: "s-checkbox", inputs: ["config"], outputs: ["blur", "focus"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
3612
3638
  }
3613
3639
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SSelectMultipleOldComponent, decorators: [{
3614
3640
  type: Component,
@@ -3618,7 +3644,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3618
3644
  useExisting: forwardRef(() => SSelectMultipleOldComponent),
3619
3645
  multi: true,
3620
3646
  },
3621
- ], template: "<!-- eslint-disable @angular-eslint/template/interactive-supports-focus -->\r\n<div\r\n class=\"s-select\"\r\n [ngClass]=\"disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{ label }}</span>\r\n <div\r\n class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{\r\n size ? size : ''\r\n }}\"\r\n (click)=\"openDropDown()\"\r\n tabindex=\"0\" (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n size=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar *ngIf=\"size === 'sm'\" size=\"16\"></s-avatar>\r\n <s-avatar *ngIf=\"size === 'md'\" size=\"24\"></s-avatar>\r\n </div>\r\n <!-- +{{ countSelected }} Selecciones -->\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">{{\r\n selectionText\r\n }}</span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">{{\r\n placeholder\r\n }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"s-select__options {{ size ? size : '' }}\" *ngIf=\"isOpen\">\r\n <div\r\n tabindex=\"0\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n (click)=\"selectAllEvent()\"\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngIf=\"options.length >= 2\">\r\n <div class=\"content-left\">\r\n <s-checkbox\r\n [config]=\"checkAll\"\r\n [(ngModel)]=\"selectAll\"\r\n \r\n (keydown.enter)=\"selectAllEvent()\"\r\n ></s-checkbox>\r\n <span class=\"option-value\">{{ selectAllOption }}</span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n (keydown)=\"onKeyDownItems($event , item)\"\r\n tabindex=\"0\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left\">\r\n <s-checkbox-old [tabIndex]=\"-1\" [model]=\"item.value\"> </s-checkbox-old>\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n *ngIf=\"size === 'sm'\"\r\n size=\"16\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n <s-avatar\r\n *ngIf=\"size === 'md'\"\r\n size=\"24\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat\r\n size=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".s-select{width:100%;position:relative}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:3fr 4fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:4fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"] }]
3647
+ ], template: "<!-- eslint-disable @angular-eslint/template/interactive-supports-focus -->\r\n<div\r\n class=\"s-select\"\r\n [ngClass]=\"disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{ label }}</span>\r\n <div\r\n class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{\r\n size ? size : ''\r\n }}\"\r\n (click)=\"openDropDown()\"\r\n tabindex=\"0\" (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n size=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar *ngIf=\"size === 'sm'\" size=\"16\"></s-avatar>\r\n <s-avatar *ngIf=\"size === 'md'\" size=\"24\"></s-avatar>\r\n </div>\r\n <!-- +{{ countSelected }} Selecciones -->\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">{{\r\n selectionText\r\n }}</span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">{{\r\n placeholder\r\n }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"s-select__options {{ size ? size : '' }}\" *ngIf=\"isOpen\">\r\n <div\r\n tabindex=\"0\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n (click)=\"selectAllEvent()\"\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngIf=\"options.length >= 2\">\r\n <div class=\"content-left\">\r\n <s-checkbox\r\n [config]=\"checkAll\"\r\n [(ngModel)]=\"selectAll\"\r\n \r\n (keydown.enter)=\"selectAllEvent()\"\r\n ></s-checkbox>\r\n <span class=\"option-value\">{{ selectAllOption }}</span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n (keydown)=\"onKeyDownItems($event , item)\"\r\n tabindex=\"0\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left\">\r\n <s-checkbox-old [tabIndex]=\"-1\" [model]=\"item.value\"> </s-checkbox-old>\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n *ngIf=\"size === 'sm'\"\r\n size=\"16\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n <s-avatar\r\n *ngIf=\"size === 'md'\"\r\n size=\"24\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat\r\n size=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".s-select{width:100%;position:relative}.s-select__main.readonly{background-color:var(--neutrals-1100);cursor:default}.s-select--required{display:contents;color:var(--primary-600)}.s-select--select-label{color:var(--secondary-600);display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.01rem;margin-bottom:.125rem}.s-select__main{background-color:var(--neutrals-1200);color:var(--secondary-600);border:.063rem solid var(--primary-500);border-radius:.25rem;display:flex;padding:0 .625rem}.s-select__main.theme-red{border-color:var(--red-600)!important;box-shadow:0 0 0 .25rem var(--red-alpha-200),0 .0625rem .125rem 0 var(--blue-alpha-100)!important}.s-select__main.md{height:2.4rem;font-size:1rem}.s-select__main.sm{height:1.5rem;font-size:.9rem}.s-select__main.is-open{border:.06rem solid var(--primary-600);box-shadow:var(--focus-cyan--md)}.s-select__main__selected-option{width:100%;display:flex;align-items:center;justify-content:space-between}.s-select__main__selected-option input{display:none}.s-select__main__selected-option input:-webkit-autofill,.s-select__main__selected-option input:-webkit-autofill:hover,.s-select__main__selected-option input:-webkit-autofill:focus,.s-select__main__selected-option input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1.9rem var(--neutrals-1200) inset!important}.s-select__main__selected-option span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-select__main__selected-option__left{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.s-select__main__selected-option__left__content-option{display:flex;align-items:center;gap:.5rem}.s-select__main__selected-option__left__content-option .placeholder{color:var(--neutrals-700);opacity:.6}.s-select__main__selected-option__left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.3rem}.s-select__main__selected-option__left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600)}.s-select__main__selected-option__left .content-avatar{margin-left:.375rem}.s-select__main__selected-option__right{display:flex;align-items:center;justify-content:space-evenly;color:var(--primary-600)}.s-select__main__selected-option__right .is-open-arrow{color:var(--primary-600)}.s-select__main__selected-option.select-simple .s-select__main__selected-option__left{width:93%}.s-select__main__selected-option.select-multiple .s-select__main__selected-option__left{width:100%}.s-select__options{max-height:12.5rem;overflow-y:auto;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0}.s-select__options.sm{top:3.5rem}.s-select__options.md{top:4.5rem}.s-select__options.label-off.md{top:3.1rem}.s-select__options.label-off.sm{top:2.1rem}.s-select__dropdown{max-height:30rem;position:absolute;width:100%;z-index:2;box-shadow:var(--E300);background-color:var(--neutrals-1200);border-radius:.25rem;left:0;margin-top:.5rem}.s-select__options-multiple{border-bottom:.063rem solid var(--neutrals-900);border-top:.063rem solid var(--neutrals-900);max-height:13.5rem;overflow-y:auto}.s-select__options-multiple--search{padding:.3rem .5rem;height:100%}.s-select__options-multiple--selected{padding:.3rem .5rem;height:100%;margin-top:.3rem}.s-select__options-multiple--selected .s-button{width:100%}.s-select__options-multiple--selected .sm{font-size:.75rem}.s-select__options-multiple--selected-content{display:flex;justify-content:space-between;margin-top:.5rem}.s-select__options-multiple--selected-text:first-letter{text-transform:uppercase}.s-select__options-multiple--selectAllOption{color:var(--primary-600);cursor:pointer;text-decoration:underline}.s-select__options-multiple-all{align-items:center;display:flex}.s-select__options-multiple-all.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__options-multiple-all.md{font-size:1rem;padding:.625rem .875rem}.s-select__options-multiple-text{padding-left:.625rem}.s-select__item{display:flex;justify-content:space-between;padding:0 .875rem;color:var(--secondary-600)}.s-select__item:hover{background-color:var(--neutrals-1000);cursor:pointer}.s-select__item.sm{font-size:.75rem;padding:.25rem .5rem}.s-select__item.md{font-size:1rem;padding:.625rem .875rem}.s-select__item.no-display .content-left.select-simple{grid-template-columns:auto}.s-select__item.no-display .content-left.select-multiple{grid-template-columns:auto 1fr}.s-select__item.no-display .option-value{margin-left:0;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.s-select__item .option-value{margin-left:.375rem}.s-select__item.active .option-value{font-weight:500;color:var(--primary-600)}.s-select__item .content-left.select-multiple{grid-template-columns:2fr 2fr 96fr}.s-select__item .content-left.select-simple{grid-template-columns:2fr 96fr}.s-select__item .content-left{display:grid;align-items:center;justify-content:space-evenly;margin-right:.5rem;grid-template-columns:3fr 4fr 96fr;gap:.25rem;justify-items:start}.s-select__item .content-left s-icon-mat span{font-size:1.3rem}.s-select__item .content-left s-icon-mat.iconPerson{margin-left:.3rem;color:var(--primary-600);height:1.25rem}.s-select__item .content-left s-radio input,.s-select__item .content-left s-checkbox input{cursor:pointer}.s-select__item .content-left .content-avatar{margin-left:.375rem}.s-select__item .content-left .dot{border-radius:100%;width:.3rem;height:.3rem;border:.06rem solid var(--green-600);background-color:var(--green-600);margin-left:.625rem;margin-right:.563rem}.s-select__item .content-center{width:100%}.s-select__item .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:.5rem;color:var(--primary-600)}.s-select__item .content-right s-icon-mat span{font-size:1.2rem}.s-select--disabled .s-select-multiple__main,.s-select--disabled .s-select__main{background-color:var(--neutrals-1100);border:.063rem solid var(--neutrals-900);color:var(--neutrals-700);cursor:not-allowed}.s-select--disabled .s-select-multiple__main s-icon-mat.iconPerson,.s-select--disabled .s-select__main s-icon-mat.iconPerson{color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content{background-color:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .content-avatar .s-avatar__dot-content s-icon-mat span,.s-select--disabled .s-select__main .content-avatar .s-avatar__dot-content s-icon-mat span{color:var(--neutrals-1100)}.s-select--disabled .s-select-multiple__main .dot,.s-select--disabled .s-select__main .dot{background-color:var(--neutrals-700);border:.06rem solid var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot s-icon-mat span,.s-select--disabled .s-select__main .dot s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main .dot-content,.s-select--disabled .s-select__main .dot-content{background-color:var(--neutrals-700);border:var(--neutrals-700)}.s-select--disabled .s-select-multiple__main .dot-content s-icon-mat span,.s-select--disabled .s-select__main .dot-content s-icon-mat span{color:var(--neutrals-1200)}.s-select--disabled .s-select-multiple__main s-icon-mat span,.s-select--disabled .s-select__main s-icon-mat span{color:var(--neutrals-700)}\n"] }]
3622
3648
  }], ctorParameters: () => [{ type: SelectNavigationService }], propDecorators: { disabled: [{
3623
3649
  type: Input
3624
3650
  }], placeholder: [{
@@ -4062,6 +4088,7 @@ class FormFilledMetadataDto {
4062
4088
  class STabletComponent {
4063
4089
  constructor() {
4064
4090
  this.loading = false;
4091
+ this.isTreeMode = false;
4065
4092
  this.loadingScroll = input(false);
4066
4093
  this.updateDataEvent = new EventEmitter();
4067
4094
  this.ordenByEvent = new EventEmitter();
@@ -4075,7 +4102,7 @@ class STabletComponent {
4075
4102
  this.initData = this.data;
4076
4103
  }
4077
4104
  orderBy(column) {
4078
- if (column.sortable !== false && !column.disabled) {
4105
+ if (column.sortable !== false && !column.disabled && !column.checkbox) {
4079
4106
  if (column.id) {
4080
4107
  //column.id es el campo a ordenar.
4081
4108
  const sortAsc = this.fieldSelect && this.fieldSelect.SortField === column.id && this.fieldSelect.SortAsc === true
@@ -4106,11 +4133,11 @@ class STabletComponent {
4106
4133
  }
4107
4134
  }
4108
4135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STabletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: STabletComponent, selector: "s-tablet", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: false, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: false, isRequired: false, transformFunction: null }, bodyloading: { classPropertyName: "bodyloading", publicName: "bodyloading", isSignal: false, isRequired: false, transformFunction: null }, body: { classPropertyName: "body", publicName: "body", isSignal: false, isRequired: false, transformFunction: null }, configColumn: { classPropertyName: "configColumn", publicName: "configColumn", isSignal: false, isRequired: false, transformFunction: null }, loadingScroll: { classPropertyName: "loadingScroll", publicName: "loadingScroll", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { updateDataEvent: "updateDataEvent", ordenByEvent: "ordenByEvent", checkAllEvent: "checkAllEvent", scrollEvent: "scrollEvent" }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"caption\"></ng-container>\n<div class=\"pre-s-tablet s-scroll\" (scroll)=\"onScroll($event)\">\n <table class=\"s-tablet\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && !loading\">\n <th\n *ngFor=\"let column of configColumn\"\n [width]=\"column.width\"\n tabindex=\"0\"\n (keydown.enter)=\"orderBy(column)\"\n (click)=\"orderBy(column)\">\n <div\n class=\"s-tablet__header\"\n [ngClass]=\"{\n 's-tablet__header--align-center': column.align === 'center',\n 's-tablet__header--align-right': column.align === 'right',\n 's-tablet__header--align-left': column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <s-checkbox\n *ngIf=\"column.checkbox\"\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n <div\n class=\"s-tablet__header__label\"\n [ngClass]=\"{\n 's-tablet__header__select': fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\" class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\">{{\n fieldSelect.SortAsc ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"column.sortable !== false && column.title && fieldSelect && fieldSelect.SortField !== column.id\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n <span\n *ngIf=\"!fieldSelect && column.sortable !== false && column.title\"\n class=\"s-tablet__header__icon--standard\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody [ngClass]=\"loading ? 's-tablet__empty' : 's-tablet__body'\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\n @if (loadingScroll()) {\n <tbody class=\"s-tablet__body\">\n <tr>\n <td [attr.colspan]=\"configColumn.length || 1\" class=\"s-table-complete__loading\">\n <s-spinner size=\"sm\"></s-spinner>\n </td>\n </tr>\n </tbody>\n }\n </table>\n</div>\n", styles: [".pre-s-tablet{max-width:100%;overflow-x:auto}.pre-s-tablet .s-tablet{background-color:var(--primary-100);border-collapse:collapse;width:100%}.pre-s-tablet .s-tablet thead{background-color:var(--neutrals-1200);font-weight:700}.pre-s-tablet .s-tablet thead th{vertical-align:middle;color:var(--secondary-600);font-size:.875rem;line-height:1.375rem;letter-spacing:.016rem;font-weight:700!important;text-align:left}.pre-s-tablet .s-tablet thead th:last-of-type{text-align:center}.pre-s-tablet .s-tablet__body{background-color:var(--neutrals-1200);color:var(--secondary-600)}.pre-s-tablet .s-tablet__disabled{color:var(--neutrals-700);pointer-events:none}.pre-s-tablet .s-tablet__empty{display:table-caption;caption-side:bottom;width:100%}.pre-s-tablet .s-tablet tbody tr td,.pre-s-tablet .s-tablet thead tr th{padding:.875rem;height:3.5rem;vertical-align:middle;font-size:.875rem}.pre-s-tablet .s-tablet th,.pre-s-tablet .s-tablet td{box-sizing:border-box;border:none;box-shadow:inset 0 -.063rem 0 var(--neutrals-900)}.pre-s-tablet .s-tablet td,.pre-s-tablet .s-tablet thead tr{height:3.5rem}.pre-s-tablet .s-tablet thead tr th{position:sticky;top:0;background-color:var(--neutrals-1200)}.pre-s-tablet .s-tablet__header{display:flex;gap:.5rem;align-items:center}.pre-s-tablet .s-tablet__header__icon{color:var(--primary-600)}.pre-s-tablet .s-tablet__header__icon--standard .s-icon-mat span{color:var(--neutrals-800)}.pre-s-tablet .s-tablet__header--align-left{justify-content:flex-start}.pre-s-tablet .s-tablet__header--align-center{justify-content:center}.pre-s-tablet .s-tablet__header--align-right{justify-content:flex-end}.pre-s-tablet .s-tablet__header__label{color:var(--secondary-500);font-weight:600}.pre-s-tablet .s-tablet__header__select{color:var(--secondary-600);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SCheckboxComponent, selector: "s-checkbox", inputs: ["config"], outputs: ["blur", "focus"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SSpinnerComponent, selector: "s-spinner", inputs: ["size", "animation"] }], encapsulation: i0.ViewEncapsulation.None }); }
4136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: STabletComponent, selector: "s-tablet", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: false, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: false, isRequired: false, transformFunction: null }, bodyloading: { classPropertyName: "bodyloading", publicName: "bodyloading", isSignal: false, isRequired: false, transformFunction: null }, body: { classPropertyName: "body", publicName: "body", isSignal: false, isRequired: false, transformFunction: null }, configColumn: { classPropertyName: "configColumn", publicName: "configColumn", isSignal: false, isRequired: false, transformFunction: null }, isTreeMode: { classPropertyName: "isTreeMode", publicName: "isTreeMode", isSignal: false, isRequired: false, transformFunction: null }, loadingScroll: { classPropertyName: "loadingScroll", publicName: "loadingScroll", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { updateDataEvent: "updateDataEvent", ordenByEvent: "ordenByEvent", checkAllEvent: "checkAllEvent", scrollEvent: "scrollEvent" }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"caption\"></ng-container>\n<div class=\"pre-s-tablet s-scroll\" (scroll)=\"onScroll($event)\">\n <table class=\"s-tablet\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && configColumn.length > 0 && !loading\">\n <th\n *ngFor=\"let column of configColumn\"\n [width]=\"column.width\"\n tabindex=\"0\"\n (keydown.enter)=\"orderBy(column)\"\n (click)=\"orderBy(column)\">\n <div\n class=\"s-tablet__header\"\n [ngClass]=\"{\n 's-tablet__header--align-center': column.align === 'center',\n 's-tablet__header--align-right': column.align === 'right',\n 's-tablet__header--align-left': column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <ng-container *ngIf=\"column.checkbox\">\n <span *ngIf=\"isTreeMode\" class=\"s-table-double__tree-spacer\"></span>\n <s-checkbox\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n </ng-container>\n <div\n class=\"s-tablet__header__label\"\n [ngClass]=\"{\n 's-tablet__header__select': fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\" class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\">{{\n fieldSelect.SortAsc ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"column.sortable !== false && column.title && fieldSelect && fieldSelect.SortField !== column.id\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n <span\n *ngIf=\"!fieldSelect && column.sortable !== false && column.title\"\n class=\"s-tablet__header__icon--standard\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody [ngClass]=\"loading ? 's-tablet__empty' : 's-tablet__body'\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\n @if (loadingScroll()) {\n <tbody class=\"s-tablet__body\">\n <tr>\n <td [attr.colspan]=\"configColumn.length || 1\" class=\"s-table-complete__loading\">\n <s-spinner size=\"sm\"></s-spinner>\n </td>\n </tr>\n </tbody>\n }\n </table>\n</div>\n", styles: [".pre-s-tablet{max-width:100%;overflow-x:auto}.pre-s-tablet .s-tablet{background-color:var(--primary-100);border-collapse:collapse;width:100%}.pre-s-tablet .s-tablet thead{background-color:var(--neutrals-1200);font-weight:700}.pre-s-tablet .s-tablet thead th{vertical-align:middle;color:var(--secondary-600);font-size:.875rem;line-height:1.375rem;letter-spacing:.016rem;font-weight:700!important;text-align:left}.pre-s-tablet .s-tablet thead th:last-of-type{text-align:center}.pre-s-tablet .s-tablet__body{background-color:var(--neutrals-1200);color:var(--secondary-600)}.pre-s-tablet .s-tablet__disabled{color:var(--neutrals-700);pointer-events:none}.pre-s-tablet .s-tablet__empty{display:table-caption;caption-side:bottom;width:100%}.pre-s-tablet .s-tablet tbody tr td,.pre-s-tablet .s-tablet thead tr th{padding:.875rem;height:3.5rem;vertical-align:middle;font-size:.875rem}.pre-s-tablet .s-tablet th,.pre-s-tablet .s-tablet td{box-sizing:border-box;border:none;box-shadow:inset 0 -.063rem 0 var(--neutrals-900)}.pre-s-tablet .s-tablet td,.pre-s-tablet .s-tablet thead tr{height:3.5rem}.pre-s-tablet .s-tablet thead tr th{position:sticky;top:0;background-color:var(--neutrals-1200)}.pre-s-tablet .s-tablet__header{display:flex;gap:.5rem;align-items:center}.pre-s-tablet .s-tablet__header__icon{color:var(--primary-600)}.pre-s-tablet .s-tablet__header__icon--standard .s-icon-mat span{color:var(--neutrals-800)}.pre-s-tablet .s-tablet__header--align-left{justify-content:flex-start}.pre-s-tablet .s-tablet__header--align-center{justify-content:center}.pre-s-tablet .s-tablet__header--align-right{justify-content:flex-end}.pre-s-tablet .s-tablet__header__label{color:var(--secondary-500);font-weight:600}.pre-s-tablet .s-tablet__header__select{color:var(--secondary-600);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SCheckboxComponent, selector: "s-checkbox", inputs: ["config"], outputs: ["blur", "focus"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SSpinnerComponent, selector: "s-spinner", inputs: ["size", "animation"] }], encapsulation: i0.ViewEncapsulation.None }); }
4110
4137
  }
4111
4138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STabletComponent, decorators: [{
4112
4139
  type: Component,
4113
- args: [{ selector: 's-tablet', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngTemplateOutlet=\"caption\"></ng-container>\n<div class=\"pre-s-tablet s-scroll\" (scroll)=\"onScroll($event)\">\n <table class=\"s-tablet\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && !loading\">\n <th\n *ngFor=\"let column of configColumn\"\n [width]=\"column.width\"\n tabindex=\"0\"\n (keydown.enter)=\"orderBy(column)\"\n (click)=\"orderBy(column)\">\n <div\n class=\"s-tablet__header\"\n [ngClass]=\"{\n 's-tablet__header--align-center': column.align === 'center',\n 's-tablet__header--align-right': column.align === 'right',\n 's-tablet__header--align-left': column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <s-checkbox\n *ngIf=\"column.checkbox\"\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n <div\n class=\"s-tablet__header__label\"\n [ngClass]=\"{\n 's-tablet__header__select': fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\" class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\">{{\n fieldSelect.SortAsc ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"column.sortable !== false && column.title && fieldSelect && fieldSelect.SortField !== column.id\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n <span\n *ngIf=\"!fieldSelect && column.sortable !== false && column.title\"\n class=\"s-tablet__header__icon--standard\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody [ngClass]=\"loading ? 's-tablet__empty' : 's-tablet__body'\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\n @if (loadingScroll()) {\n <tbody class=\"s-tablet__body\">\n <tr>\n <td [attr.colspan]=\"configColumn.length || 1\" class=\"s-table-complete__loading\">\n <s-spinner size=\"sm\"></s-spinner>\n </td>\n </tr>\n </tbody>\n }\n </table>\n</div>\n", styles: [".pre-s-tablet{max-width:100%;overflow-x:auto}.pre-s-tablet .s-tablet{background-color:var(--primary-100);border-collapse:collapse;width:100%}.pre-s-tablet .s-tablet thead{background-color:var(--neutrals-1200);font-weight:700}.pre-s-tablet .s-tablet thead th{vertical-align:middle;color:var(--secondary-600);font-size:.875rem;line-height:1.375rem;letter-spacing:.016rem;font-weight:700!important;text-align:left}.pre-s-tablet .s-tablet thead th:last-of-type{text-align:center}.pre-s-tablet .s-tablet__body{background-color:var(--neutrals-1200);color:var(--secondary-600)}.pre-s-tablet .s-tablet__disabled{color:var(--neutrals-700);pointer-events:none}.pre-s-tablet .s-tablet__empty{display:table-caption;caption-side:bottom;width:100%}.pre-s-tablet .s-tablet tbody tr td,.pre-s-tablet .s-tablet thead tr th{padding:.875rem;height:3.5rem;vertical-align:middle;font-size:.875rem}.pre-s-tablet .s-tablet th,.pre-s-tablet .s-tablet td{box-sizing:border-box;border:none;box-shadow:inset 0 -.063rem 0 var(--neutrals-900)}.pre-s-tablet .s-tablet td,.pre-s-tablet .s-tablet thead tr{height:3.5rem}.pre-s-tablet .s-tablet thead tr th{position:sticky;top:0;background-color:var(--neutrals-1200)}.pre-s-tablet .s-tablet__header{display:flex;gap:.5rem;align-items:center}.pre-s-tablet .s-tablet__header__icon{color:var(--primary-600)}.pre-s-tablet .s-tablet__header__icon--standard .s-icon-mat span{color:var(--neutrals-800)}.pre-s-tablet .s-tablet__header--align-left{justify-content:flex-start}.pre-s-tablet .s-tablet__header--align-center{justify-content:center}.pre-s-tablet .s-tablet__header--align-right{justify-content:flex-end}.pre-s-tablet .s-tablet__header__label{color:var(--secondary-500);font-weight:600}.pre-s-tablet .s-tablet__header__select{color:var(--secondary-600);font-weight:700}\n"] }]
4140
+ args: [{ selector: 's-tablet', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngTemplateOutlet=\"caption\"></ng-container>\n<div class=\"pre-s-tablet s-scroll\" (scroll)=\"onScroll($event)\">\n <table class=\"s-tablet\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && configColumn.length > 0 && !loading\">\n <th\n *ngFor=\"let column of configColumn\"\n [width]=\"column.width\"\n tabindex=\"0\"\n (keydown.enter)=\"orderBy(column)\"\n (click)=\"orderBy(column)\">\n <div\n class=\"s-tablet__header\"\n [ngClass]=\"{\n 's-tablet__header--align-center': column.align === 'center',\n 's-tablet__header--align-right': column.align === 'right',\n 's-tablet__header--align-left': column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <ng-container *ngIf=\"column.checkbox\">\n <span *ngIf=\"isTreeMode\" class=\"s-table-double__tree-spacer\"></span>\n <s-checkbox\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n </ng-container>\n <div\n class=\"s-tablet__header__label\"\n [ngClass]=\"{\n 's-tablet__header__select': fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\" class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\">{{\n fieldSelect.SortAsc ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"column.sortable !== false && column.title && fieldSelect && fieldSelect.SortField !== column.id\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n <span\n *ngIf=\"!fieldSelect && column.sortable !== false && column.title\"\n class=\"s-tablet__header__icon--standard\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody [ngClass]=\"loading ? 's-tablet__empty' : 's-tablet__body'\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\n @if (loadingScroll()) {\n <tbody class=\"s-tablet__body\">\n <tr>\n <td [attr.colspan]=\"configColumn.length || 1\" class=\"s-table-complete__loading\">\n <s-spinner size=\"sm\"></s-spinner>\n </td>\n </tr>\n </tbody>\n }\n </table>\n</div>\n", styles: [".pre-s-tablet{max-width:100%;overflow-x:auto}.pre-s-tablet .s-tablet{background-color:var(--primary-100);border-collapse:collapse;width:100%}.pre-s-tablet .s-tablet thead{background-color:var(--neutrals-1200);font-weight:700}.pre-s-tablet .s-tablet thead th{vertical-align:middle;color:var(--secondary-600);font-size:.875rem;line-height:1.375rem;letter-spacing:.016rem;font-weight:700!important;text-align:left}.pre-s-tablet .s-tablet thead th:last-of-type{text-align:center}.pre-s-tablet .s-tablet__body{background-color:var(--neutrals-1200);color:var(--secondary-600)}.pre-s-tablet .s-tablet__disabled{color:var(--neutrals-700);pointer-events:none}.pre-s-tablet .s-tablet__empty{display:table-caption;caption-side:bottom;width:100%}.pre-s-tablet .s-tablet tbody tr td,.pre-s-tablet .s-tablet thead tr th{padding:.875rem;height:3.5rem;vertical-align:middle;font-size:.875rem}.pre-s-tablet .s-tablet th,.pre-s-tablet .s-tablet td{box-sizing:border-box;border:none;box-shadow:inset 0 -.063rem 0 var(--neutrals-900)}.pre-s-tablet .s-tablet td,.pre-s-tablet .s-tablet thead tr{height:3.5rem}.pre-s-tablet .s-tablet thead tr th{position:sticky;top:0;background-color:var(--neutrals-1200)}.pre-s-tablet .s-tablet__header{display:flex;gap:.5rem;align-items:center}.pre-s-tablet .s-tablet__header__icon{color:var(--primary-600)}.pre-s-tablet .s-tablet__header__icon--standard .s-icon-mat span{color:var(--neutrals-800)}.pre-s-tablet .s-tablet__header--align-left{justify-content:flex-start}.pre-s-tablet .s-tablet__header--align-center{justify-content:center}.pre-s-tablet .s-tablet__header--align-right{justify-content:flex-end}.pre-s-tablet .s-tablet__header__label{color:var(--secondary-500);font-weight:600}.pre-s-tablet .s-tablet__header__select{color:var(--secondary-600);font-weight:700}\n"] }]
4114
4141
  }], propDecorators: { data: [{
4115
4142
  type: Input
4116
4143
  }], loading: [{
@@ -4125,6 +4152,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
4125
4152
  type: Input
4126
4153
  }], configColumn: [{
4127
4154
  type: Input
4155
+ }], isTreeMode: [{
4156
+ type: Input
4128
4157
  }], updateDataEvent: [{
4129
4158
  type: Output
4130
4159
  }], ordenByEvent: [{
@@ -4408,11 +4437,11 @@ class TableActionsButtonsComponent {
4408
4437
  }
4409
4438
  }
4410
4439
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableActionsButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4411
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableActionsButtonsComponent, selector: "s-table-actions-buttons", inputs: { tableActionsButtons: "tableActionsButtons" }, outputs: { clickButtonEvent: "clickButtonEvent" }, ngImport: i0, template: "<div class=\"d-flex justify-content-center table-actions-buttons\">\n <ng-container *ngFor=\"let button of tableActionsButtons\">\n <s-icon-mat\n tabindex=\"0\"\n class=\"table-actions-buttons__icon p-1 no-select\"\n size=\"20\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip\n #tooltip\n [title]=\"button.tooltip\"\n [position]=\"button.tooltipPosition ?? 'top'\"\n theme=\"dark\"></s-tooltip>\n </ng-container>\n</div>\n", styles: [".table-actions-buttons__icon{color:var(--primary-600);cursor:pointer}.table-actions-buttons__icon__primary{color:var(--primary-600)}.table-actions-buttons__icon__primary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__primary:not(.table-actions-buttons__icon__primary--disabled):hover{color:var(--primary-900)}.table-actions-buttons__icon__secondary{color:var(--secondary-600)}.table-actions-buttons__icon__secondary--disabled{color:var(--secondary-300)}.table-actions-buttons__icon__secondary:not(.table-actions-buttons__icon__secondary--disabled):hover{color:var(--secondary-900)}.table-actions-buttons__icon__green{color:var(--green-600)}.table-actions-buttons__icon__green--disabled{color:var(--green-300)}.table-actions-buttons__icon__green:not(.table-actions-buttons__icon__green--disabled):hover{color:var(--green-900)}.table-actions-buttons__icon__red{color:var(--red-600)}.table-actions-buttons__icon__red--disabled{color:var(--red-300)}.table-actions-buttons__icon__red:not(.table-actions-buttons__icon__red--disabled):hover{color:var(--red-900)}.table-actions-buttons__icon__yellow{color:var(--yellow-600)}.table-actions-buttons__icon__yellow--disabled{color:var(--yellow-300)}.table-actions-buttons__icon__yellow:not(.table-actions-buttons__icon__yellow--disabled):hover{color:var(--yellow-900)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: STooltipComponent, selector: "s-tooltip", inputs: ["title", "description", "theme", "position"] }, { kind: "directive", type: CustomTooltipDirective, selector: "[tooltip]", inputs: ["tooltip"] }] }); }
4440
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableActionsButtonsComponent, selector: "s-table-actions-buttons", inputs: { tableActionsButtons: "tableActionsButtons" }, outputs: { clickButtonEvent: "clickButtonEvent" }, ngImport: i0, template: "<div class=\"d-flex justify-content-center table-actions-buttons\">\n <ng-container *ngFor=\"let button of tableActionsButtons\">\n <s-icon-mat\n tabindex=\"0\"\n class=\"table-actions-buttons__icon p-1 no-select\"\n size=\"20\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip\n #tooltip\n [title]=\"button.tooltip\"\n [position]=\"button.tooltipPosition ?? 'top'\"\n theme=\"dark\"></s-tooltip>\n </ng-container>\n</div>\n", styles: [".table-actions-buttons__icon{color:var(--primary-600);cursor:pointer}.table-actions-buttons__icon__primary{color:var(--primary-600)}.table-actions-buttons__icon__primary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__primary:not(.table-actions-buttons__icon__primary--disabled):hover{color:var(--primary-900)}.table-actions-buttons__icon__secondary{color:var(--primary-600)}.table-actions-buttons__icon__secondary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__secondary:not(.table-actions-buttons__icon__secondary--disabled):hover{color:var(--secondary-900)}.table-actions-buttons__icon__green{color:var(--green-600)}.table-actions-buttons__icon__green--disabled{color:var(--green-300)}.table-actions-buttons__icon__green:not(.table-actions-buttons__icon__green--disabled):hover{color:var(--green-900)}.table-actions-buttons__icon__red{color:var(--red-600)}.table-actions-buttons__icon__red--disabled{color:var(--red-300)}.table-actions-buttons__icon__red:not(.table-actions-buttons__icon__red--disabled):hover{color:var(--red-900)}.table-actions-buttons__icon__yellow{color:var(--yellow-600)}.table-actions-buttons__icon__yellow--disabled{color:var(--yellow-300)}.table-actions-buttons__icon__yellow:not(.table-actions-buttons__icon__yellow--disabled):hover{color:var(--yellow-900)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: STooltipComponent, selector: "s-tooltip", inputs: ["title", "description", "theme", "position"] }, { kind: "directive", type: CustomTooltipDirective, selector: "[tooltip]", inputs: ["tooltip"] }] }); }
4412
4441
  }
4413
4442
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableActionsButtonsComponent, decorators: [{
4414
4443
  type: Component,
4415
- args: [{ selector: 's-table-actions-buttons', template: "<div class=\"d-flex justify-content-center table-actions-buttons\">\n <ng-container *ngFor=\"let button of tableActionsButtons\">\n <s-icon-mat\n tabindex=\"0\"\n class=\"table-actions-buttons__icon p-1 no-select\"\n size=\"20\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip\n #tooltip\n [title]=\"button.tooltip\"\n [position]=\"button.tooltipPosition ?? 'top'\"\n theme=\"dark\"></s-tooltip>\n </ng-container>\n</div>\n", styles: [".table-actions-buttons__icon{color:var(--primary-600);cursor:pointer}.table-actions-buttons__icon__primary{color:var(--primary-600)}.table-actions-buttons__icon__primary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__primary:not(.table-actions-buttons__icon__primary--disabled):hover{color:var(--primary-900)}.table-actions-buttons__icon__secondary{color:var(--secondary-600)}.table-actions-buttons__icon__secondary--disabled{color:var(--secondary-300)}.table-actions-buttons__icon__secondary:not(.table-actions-buttons__icon__secondary--disabled):hover{color:var(--secondary-900)}.table-actions-buttons__icon__green{color:var(--green-600)}.table-actions-buttons__icon__green--disabled{color:var(--green-300)}.table-actions-buttons__icon__green:not(.table-actions-buttons__icon__green--disabled):hover{color:var(--green-900)}.table-actions-buttons__icon__red{color:var(--red-600)}.table-actions-buttons__icon__red--disabled{color:var(--red-300)}.table-actions-buttons__icon__red:not(.table-actions-buttons__icon__red--disabled):hover{color:var(--red-900)}.table-actions-buttons__icon__yellow{color:var(--yellow-600)}.table-actions-buttons__icon__yellow--disabled{color:var(--yellow-300)}.table-actions-buttons__icon__yellow:not(.table-actions-buttons__icon__yellow--disabled):hover{color:var(--yellow-900)}\n"] }]
4444
+ args: [{ selector: 's-table-actions-buttons', template: "<div class=\"d-flex justify-content-center table-actions-buttons\">\n <ng-container *ngFor=\"let button of tableActionsButtons\">\n <s-icon-mat\n tabindex=\"0\"\n class=\"table-actions-buttons__icon p-1 no-select\"\n size=\"20\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip\n #tooltip\n [title]=\"button.tooltip\"\n [position]=\"button.tooltipPosition ?? 'top'\"\n theme=\"dark\"></s-tooltip>\n </ng-container>\n</div>\n", styles: [".table-actions-buttons__icon{color:var(--primary-600);cursor:pointer}.table-actions-buttons__icon__primary{color:var(--primary-600)}.table-actions-buttons__icon__primary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__primary:not(.table-actions-buttons__icon__primary--disabled):hover{color:var(--primary-900)}.table-actions-buttons__icon__secondary{color:var(--primary-600)}.table-actions-buttons__icon__secondary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__secondary:not(.table-actions-buttons__icon__secondary--disabled):hover{color:var(--secondary-900)}.table-actions-buttons__icon__green{color:var(--green-600)}.table-actions-buttons__icon__green--disabled{color:var(--green-300)}.table-actions-buttons__icon__green:not(.table-actions-buttons__icon__green--disabled):hover{color:var(--green-900)}.table-actions-buttons__icon__red{color:var(--red-600)}.table-actions-buttons__icon__red--disabled{color:var(--red-300)}.table-actions-buttons__icon__red:not(.table-actions-buttons__icon__red--disabled):hover{color:var(--red-900)}.table-actions-buttons__icon__yellow{color:var(--yellow-600)}.table-actions-buttons__icon__yellow--disabled{color:var(--yellow-300)}.table-actions-buttons__icon__yellow:not(.table-actions-buttons__icon__yellow--disabled):hover{color:var(--yellow-900)}\n"] }]
4416
4445
  }], propDecorators: { tableActionsButtons: [{
4417
4446
  type: Input
4418
4447
  }], clickButtonEvent: [{
@@ -5440,11 +5469,11 @@ class SListSimpleComponent {
5440
5469
  this.listStyle = 'default';
5441
5470
  }
5442
5471
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SListSimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5443
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SListSimpleComponent, selector: "s-list-simple", inputs: { listStyle: "listStyle" }, ngImport: i0, template: "<div class=\"s-list-simple s-list-simple--{{listStyle}}\">\n <ng-content></ng-content>\n</div>", styles: ["@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v292/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOej.woff2) format(\"woff2\")}.s-list-simple ul{font-size:.875rem;font-weight:400;line-height:1.25rem;letter-spacing:.01563rem;display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}.s-list-simple ul,.s-list-simple ol{margin-left:.625rem}.s-list-simple ul ul,.s-list-simple ul ol,.s-list-simple ol ul,.s-list-simple ol ol{margin-left:1.063rem}.s-list-simple ul ul ul,.s-list-simple ul ul ol,.s-list-simple ul ol ul,.s-list-simple ul ol ol,.s-list-simple ol ul ul,.s-list-simple ol ul ol,.s-list-simple ol ol ul,.s-list-simple ol ol ol{margin-left:1.5rem}.s-list-simple ul ul ul ul,.s-list-simple ul ul ul ol,.s-list-simple ul ul ol ul,.s-list-simple ul ul ol ol,.s-list-simple ul ol ul ul,.s-list-simple ul ol ul ol,.s-list-simple ul ol ol ul,.s-list-simple ul ol ol ol,.s-list-simple ol ul ul ul,.s-list-simple ol ul ul ol,.s-list-simple ol ul ol ul,.s-list-simple ol ul ol ol,.s-list-simple ol ol ul ul,.s-list-simple ol ol ul ol,.s-list-simple ol ol ol ul,.s-list-simple ol ol ol ol{margin-left:30.063rem}.s-list-simple--default ul{list-style:disc}.s-list-simple--check li,.s-list-simple--chevron li,.s-list-simple--folder li{list-style-type:none}.s-list-simple--check li:before,.s-list-simple--chevron li:before,.s-list-simple--folder li:before{font-family:Material Icons;display:inline-block;margin-right:.5em}.s-list-simple--check ul ul ul li:before{color:var(--green-700)}.s-list-simple--check ul ul ul .mark-invert:before,.s-list-simple--check ul ul ul .mark-invert::marker{color:var(--green-600)!important}.s-list-simple--check li:before{content:\"\\e5ca\";color:var(--green-600)}.s-list-simple--check .mark-invert:before,.s-list-simple--check .mark-invert::marker{color:var(--green-700)}.s-list-simple--chevron li:before{content:\"\\e5cc\";color:var(--secondary-600)}.s-list-simple--dot ul,.s-list-simple--dot ul ul{list-style:disc}.s-list-simple--dot ul ul ul{list-style:circle}.s-list-simple--dot li::marker{font-size:1.063rem;color:var(--secondary-600)}.s-list-simple--folder ul ul ul li:before{font-family:Material Symbols Outlined}.s-list-simple--folder ul ul ul .mark-invert:before,.s-list-simple--folder ul ul ul .mark-invert::marker{font-family:Material Icons!important}.s-list-simple--folder li:before{content:\"\\e2c7\";color:var(--secondary-600)}.s-list-simple--folder .mark-invert:before,.s-list-simple--folder .mark-invert::marker{font-family:Material Symbols Outlined}.s-list-simple--a1 ul>li:before{color:var(--primary-600);font-weight:700;content:counter(level1) \". \";counter-increment:level1}.s-list-simple--a1 ul ul>li:before{color:var(--secondary-600);font-weight:700;content:counter(level2,lower-alpha) \". \";counter-increment:level2}.s-list-simple--a1 ul ul ul>li:before{font-weight:400;content:counter(level2,lower-alpha) \".\" counter(level3) \" \";counter-increment:level3}.s-list-simple--a1 ul{counter-reset:level1}.s-list-simple--a1 ul ul{counter-reset:level2}.s-list-simple--a1 ul ul ul{counter-reset:level3}\n"], encapsulation: i0.ViewEncapsulation.None }); }
5472
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SListSimpleComponent, selector: "s-list-simple", inputs: { listStyle: "listStyle" }, ngImport: i0, template: "<div class=\"s-list-simple s-list-simple--{{listStyle}}\">\n <ng-content></ng-content>\n</div>", styles: ["@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v316/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOejbd5zrDAt.woff2) format(\"woff2\")}.s-list-simple ul{font-size:.875rem;font-weight:400;line-height:1.25rem;letter-spacing:.01563rem;display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}.s-list-simple ul,.s-list-simple ol{margin-left:.625rem}.s-list-simple ul ul,.s-list-simple ul ol,.s-list-simple ol ul,.s-list-simple ol ol{margin-left:1.063rem}.s-list-simple ul ul ul,.s-list-simple ul ul ol,.s-list-simple ul ol ul,.s-list-simple ul ol ol,.s-list-simple ol ul ul,.s-list-simple ol ul ol,.s-list-simple ol ol ul,.s-list-simple ol ol ol{margin-left:1.5rem}.s-list-simple ul ul ul ul,.s-list-simple ul ul ul ol,.s-list-simple ul ul ol ul,.s-list-simple ul ul ol ol,.s-list-simple ul ol ul ul,.s-list-simple ul ol ul ol,.s-list-simple ul ol ol ul,.s-list-simple ul ol ol ol,.s-list-simple ol ul ul ul,.s-list-simple ol ul ul ol,.s-list-simple ol ul ol ul,.s-list-simple ol ul ol ol,.s-list-simple ol ol ul ul,.s-list-simple ol ol ul ol,.s-list-simple ol ol ol ul,.s-list-simple ol ol ol ol{margin-left:30.063rem}.s-list-simple--default ul{list-style:disc}.s-list-simple--check li,.s-list-simple--chevron li,.s-list-simple--folder li{list-style-type:none}.s-list-simple--check li:before,.s-list-simple--chevron li:before,.s-list-simple--folder li:before{font-family:Material Icons;display:inline-block;margin-right:.5em}.s-list-simple--check ul ul ul li:before{color:var(--green-700)}.s-list-simple--check ul ul ul .mark-invert:before,.s-list-simple--check ul ul ul .mark-invert::marker{color:var(--green-600)!important}.s-list-simple--check li:before{content:\"\\e5ca\";color:var(--green-600)}.s-list-simple--check .mark-invert:before,.s-list-simple--check .mark-invert::marker{color:var(--green-700)}.s-list-simple--chevron li:before{content:\"\\e5cc\";color:var(--secondary-600)}.s-list-simple--dot ul,.s-list-simple--dot ul ul{list-style:disc}.s-list-simple--dot ul ul ul{list-style:circle}.s-list-simple--dot li::marker{font-size:1.063rem;color:var(--secondary-600)}.s-list-simple--folder ul ul ul li:before{font-family:Material Symbols Outlined}.s-list-simple--folder ul ul ul .mark-invert:before,.s-list-simple--folder ul ul ul .mark-invert::marker{font-family:Material Icons!important}.s-list-simple--folder li:before{content:\"\\e2c7\";color:var(--secondary-600)}.s-list-simple--folder .mark-invert:before,.s-list-simple--folder .mark-invert::marker{font-family:Material Symbols Outlined}.s-list-simple--a1 ul>li:before{color:var(--primary-600);font-weight:700;content:counter(level1) \". \";counter-increment:level1}.s-list-simple--a1 ul ul>li:before{color:var(--secondary-600);font-weight:700;content:counter(level2,lower-alpha) \". \";counter-increment:level2}.s-list-simple--a1 ul ul ul>li:before{font-weight:400;content:counter(level2,lower-alpha) \".\" counter(level3) \" \";counter-increment:level3}.s-list-simple--a1 ul{counter-reset:level1}.s-list-simple--a1 ul ul{counter-reset:level2}.s-list-simple--a1 ul ul ul{counter-reset:level3}\n"], encapsulation: i0.ViewEncapsulation.None }); }
5444
5473
  }
5445
5474
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SListSimpleComponent, decorators: [{
5446
5475
  type: Component,
5447
- args: [{ selector: 's-list-simple', encapsulation: ViewEncapsulation.None, template: "<div class=\"s-list-simple s-list-simple--{{listStyle}}\">\n <ng-content></ng-content>\n</div>", styles: ["@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v292/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOej.woff2) format(\"woff2\")}.s-list-simple ul{font-size:.875rem;font-weight:400;line-height:1.25rem;letter-spacing:.01563rem;display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}.s-list-simple ul,.s-list-simple ol{margin-left:.625rem}.s-list-simple ul ul,.s-list-simple ul ol,.s-list-simple ol ul,.s-list-simple ol ol{margin-left:1.063rem}.s-list-simple ul ul ul,.s-list-simple ul ul ol,.s-list-simple ul ol ul,.s-list-simple ul ol ol,.s-list-simple ol ul ul,.s-list-simple ol ul ol,.s-list-simple ol ol ul,.s-list-simple ol ol ol{margin-left:1.5rem}.s-list-simple ul ul ul ul,.s-list-simple ul ul ul ol,.s-list-simple ul ul ol ul,.s-list-simple ul ul ol ol,.s-list-simple ul ol ul ul,.s-list-simple ul ol ul ol,.s-list-simple ul ol ol ul,.s-list-simple ul ol ol ol,.s-list-simple ol ul ul ul,.s-list-simple ol ul ul ol,.s-list-simple ol ul ol ul,.s-list-simple ol ul ol ol,.s-list-simple ol ol ul ul,.s-list-simple ol ol ul ol,.s-list-simple ol ol ol ul,.s-list-simple ol ol ol ol{margin-left:30.063rem}.s-list-simple--default ul{list-style:disc}.s-list-simple--check li,.s-list-simple--chevron li,.s-list-simple--folder li{list-style-type:none}.s-list-simple--check li:before,.s-list-simple--chevron li:before,.s-list-simple--folder li:before{font-family:Material Icons;display:inline-block;margin-right:.5em}.s-list-simple--check ul ul ul li:before{color:var(--green-700)}.s-list-simple--check ul ul ul .mark-invert:before,.s-list-simple--check ul ul ul .mark-invert::marker{color:var(--green-600)!important}.s-list-simple--check li:before{content:\"\\e5ca\";color:var(--green-600)}.s-list-simple--check .mark-invert:before,.s-list-simple--check .mark-invert::marker{color:var(--green-700)}.s-list-simple--chevron li:before{content:\"\\e5cc\";color:var(--secondary-600)}.s-list-simple--dot ul,.s-list-simple--dot ul ul{list-style:disc}.s-list-simple--dot ul ul ul{list-style:circle}.s-list-simple--dot li::marker{font-size:1.063rem;color:var(--secondary-600)}.s-list-simple--folder ul ul ul li:before{font-family:Material Symbols Outlined}.s-list-simple--folder ul ul ul .mark-invert:before,.s-list-simple--folder ul ul ul .mark-invert::marker{font-family:Material Icons!important}.s-list-simple--folder li:before{content:\"\\e2c7\";color:var(--secondary-600)}.s-list-simple--folder .mark-invert:before,.s-list-simple--folder .mark-invert::marker{font-family:Material Symbols Outlined}.s-list-simple--a1 ul>li:before{color:var(--primary-600);font-weight:700;content:counter(level1) \". \";counter-increment:level1}.s-list-simple--a1 ul ul>li:before{color:var(--secondary-600);font-weight:700;content:counter(level2,lower-alpha) \". \";counter-increment:level2}.s-list-simple--a1 ul ul ul>li:before{font-weight:400;content:counter(level2,lower-alpha) \".\" counter(level3) \" \";counter-increment:level3}.s-list-simple--a1 ul{counter-reset:level1}.s-list-simple--a1 ul ul{counter-reset:level2}.s-list-simple--a1 ul ul ul{counter-reset:level3}\n"] }]
5476
+ args: [{ selector: 's-list-simple', encapsulation: ViewEncapsulation.None, template: "<div class=\"s-list-simple s-list-simple--{{listStyle}}\">\n <ng-content></ng-content>\n</div>", styles: ["@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v316/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOejbd5zrDAt.woff2) format(\"woff2\")}.s-list-simple ul{font-size:.875rem;font-weight:400;line-height:1.25rem;letter-spacing:.01563rem;display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}.s-list-simple ul,.s-list-simple ol{margin-left:.625rem}.s-list-simple ul ul,.s-list-simple ul ol,.s-list-simple ol ul,.s-list-simple ol ol{margin-left:1.063rem}.s-list-simple ul ul ul,.s-list-simple ul ul ol,.s-list-simple ul ol ul,.s-list-simple ul ol ol,.s-list-simple ol ul ul,.s-list-simple ol ul ol,.s-list-simple ol ol ul,.s-list-simple ol ol ol{margin-left:1.5rem}.s-list-simple ul ul ul ul,.s-list-simple ul ul ul ol,.s-list-simple ul ul ol ul,.s-list-simple ul ul ol ol,.s-list-simple ul ol ul ul,.s-list-simple ul ol ul ol,.s-list-simple ul ol ol ul,.s-list-simple ul ol ol ol,.s-list-simple ol ul ul ul,.s-list-simple ol ul ul ol,.s-list-simple ol ul ol ul,.s-list-simple ol ul ol ol,.s-list-simple ol ol ul ul,.s-list-simple ol ol ul ol,.s-list-simple ol ol ol ul,.s-list-simple ol ol ol ol{margin-left:30.063rem}.s-list-simple--default ul{list-style:disc}.s-list-simple--check li,.s-list-simple--chevron li,.s-list-simple--folder li{list-style-type:none}.s-list-simple--check li:before,.s-list-simple--chevron li:before,.s-list-simple--folder li:before{font-family:Material Icons;display:inline-block;margin-right:.5em}.s-list-simple--check ul ul ul li:before{color:var(--green-700)}.s-list-simple--check ul ul ul .mark-invert:before,.s-list-simple--check ul ul ul .mark-invert::marker{color:var(--green-600)!important}.s-list-simple--check li:before{content:\"\\e5ca\";color:var(--green-600)}.s-list-simple--check .mark-invert:before,.s-list-simple--check .mark-invert::marker{color:var(--green-700)}.s-list-simple--chevron li:before{content:\"\\e5cc\";color:var(--secondary-600)}.s-list-simple--dot ul,.s-list-simple--dot ul ul{list-style:disc}.s-list-simple--dot ul ul ul{list-style:circle}.s-list-simple--dot li::marker{font-size:1.063rem;color:var(--secondary-600)}.s-list-simple--folder ul ul ul li:before{font-family:Material Symbols Outlined}.s-list-simple--folder ul ul ul .mark-invert:before,.s-list-simple--folder ul ul ul .mark-invert::marker{font-family:Material Icons!important}.s-list-simple--folder li:before{content:\"\\e2c7\";color:var(--secondary-600)}.s-list-simple--folder .mark-invert:before,.s-list-simple--folder .mark-invert::marker{font-family:Material Symbols Outlined}.s-list-simple--a1 ul>li:before{color:var(--primary-600);font-weight:700;content:counter(level1) \". \";counter-increment:level1}.s-list-simple--a1 ul ul>li:before{color:var(--secondary-600);font-weight:700;content:counter(level2,lower-alpha) \". \";counter-increment:level2}.s-list-simple--a1 ul ul ul>li:before{font-weight:400;content:counter(level2,lower-alpha) \".\" counter(level3) \" \";counter-increment:level3}.s-list-simple--a1 ul{counter-reset:level1}.s-list-simple--a1 ul ul{counter-reset:level2}.s-list-simple--a1 ul ul ul{counter-reset:level3}\n"] }]
5448
5477
  }], propDecorators: { listStyle: [{
5449
5478
  type: Input
5450
5479
  }] } });
@@ -6063,11 +6092,11 @@ class STabsComponent {
6063
6092
  this.eventSelect.emit(tab);
6064
6093
  }
6065
6094
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6066
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: STabsComponent, selector: "s-tabs", inputs: { tabs: "tabs", configTabs: "configTabs" }, outputs: { eventSelect: "eventSelect" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"s-tabs s-scroll no-select\"\n *ngIf=\"tabsConfig\"\n [ngClass]=\"{\n 's-tabs__background': configTabs?.background,\n 's-tabs__pill': configTabs?.pill,\n 's-tabs__sm': configTabs?.size === 'sm',\n }\">\n <div class=\"s-tabs__container\" [ngStyle]=\"{ width: configTabs?.width + '%' }\">\n <div\n class=\"s-tabs__content\"\n *ngFor=\"let tab of tabsConfig\"\n [ngClass]=\"{\n selected: tab.selected,\n highlight: tab.highlight,\n disabled: tab.disabled,\n }\"\n tabindex=\"0\"\n (keydown.enter)=\"selectTab(tab)\"\n (click)=\"selectTab(tab)\">\n <s-icon-mat\n class=\"s-tabs__icon\"\n *ngIf=\"tab.icon\"\n [ngClass]=\"[tab.iconType ? tab.iconType : '']\"\n [type]=\"tab.iconSymbol ? 'symbol' : 'icon'\"\n >{{ tab.icon }}</s-icon-mat\n >\n <span *ngIf=\"tab.text\" class=\"s-tabs__text\">{{ tab.text }}</span>\n <s-badge\n *ngIf=\"tab.badge\"\n [type]=\"tab.badgeType ? tab.badgeType : 'primary'\"\n >{{ tab.badge }}</s-badge\n >\n </div>\n </div>\n</div>\n", styles: [".s-tabs{border-top-right-radius:.5rem;border-top-left-radius:.5rem;display:block;overflow:auto}.s-tabs__icon .s-icon-mat span{font-size:1.25rem}.s-tabs .material-icons{font-size:1.5rem}.s-tabs__container{display:flex;justify-content:center}.s-tabs__content{align-items:center;color:var(--secondary-600);cursor:pointer;display:flex;flex-basis:50%;flex-grow:1;font-size:1rem;justify-content:center;line-height:2rem;padding:.896rem .5rem;text-align:center;gap:.4rem}.s-tabs__content.selected{border-bottom:.063rem solid var(--primary-600);color:var(--primary-600);background-color:var(--primary-200);border-top-right-radius:.5rem;border-top-left-radius:.5rem}.s-tabs__content.highlight{background-color:var(--primary-200)}.s-tabs__content.disabled{color:var(--secondary-300);cursor:not-allowed}.s-tabs .primary{color:var(--primary-600)}.s-tabs .secondary{color:var(--secondary-600)}.s-tabs .green{color:var(--green-600)}.s-tabs .yellow{color:var(--yellow-600)}.s-tabs .red{color:var(--red-600)}.s-tabs__text{font-weight:700}.s-tabs__background{background-color:var(--primary-100)}.s-tabs__pill{padding:.5rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.s-tabs__pill .s-tabs{background-color:var(--primary-100)}.s-tabs__pill .s-tabs__container{gap:.5rem}.s-tabs__pill .s-tabs__content{padding:.43rem .187rem;border-bottom:0;border-radius:.25rem}.s-tabs__pill .s-tabs__content.selected{color:var(--primary-600);background-color:var(--primary-200)}.s-tabs__sm .s-tabs__text{font-size:.75rem}.s-tabs__sm .s-tabs__icon span{font-size:1.3rem}.s-tabs__sm.s-tabs__pill{padding:.25rem}.s-tabs__sm.s-tabs__pill .s-tabs__content{padding:.299rem .187rem}.s-tabs__sm .s-tabs__content{padding:.24rem .187rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SBadgeComponent, selector: "s-badge", inputs: ["type", "size", "new"] }], encapsulation: i0.ViewEncapsulation.None }); }
6095
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: STabsComponent, selector: "s-tabs", inputs: { tabs: "tabs", configTabs: "configTabs" }, outputs: { eventSelect: "eventSelect" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"s-tabs s-scroll no-select\"\n *ngIf=\"tabsConfig\"\n [ngClass]=\"{\n 's-tabs__background': configTabs?.background,\n 's-tabs__pill': configTabs?.pill,\n 's-tabs__sm': configTabs?.size === 'sm',\n 's-tabs__vertical': configTabs?.orientation === 'vertical',\n 's-tabs__underline': configTabs?.underline,\n 's-tabs__backgroundSelected': configTabs?.backgroundSelected\n }\"\n [ngStyle]=\"{\n '--tabs-width': configTabs?.width + '%',\n '--tabs-height': configTabs?.height + '%'\n }\"\n >\n <div class=\"s-tabs__container\" [ngStyle]=\"{ width: configTabs?.width + '%' }\">\n <div\n class=\"s-tabs__content\"\n *ngFor=\"let tab of tabsConfig\"\n [ngClass]=\"{\n selected: tab.selected,\n highlight: tab.highlight,\n disabled: tab.disabled,\n }\"\n tabindex=\"0\"\n (keydown.enter)=\"selectTab(tab)\"\n (click)=\"selectTab(tab)\">\n <s-icon-mat\n class=\"s-tabs__icon\"\n *ngIf=\"tab.icon\"\n [ngClass]=\"[tab.iconType ? tab.iconType : '']\"\n [type]=\"tab.iconSymbol ? 'symbol' : 'icon'\"\n >{{ tab.icon }}</s-icon-mat\n >\n <span *ngIf=\"tab.text\" class=\"s-tabs__text\">{{ tab.text }}</span>\n <s-badge\n *ngIf=\"tab.badge\"\n [type]=\"tab.badgeType ? tab.badgeType : 'primary'\"\n >{{ tab.badge }}</s-badge\n >\n </div>\n </div>\n</div>\n", styles: [".s-tabs{border-top-right-radius:.5rem;border-top-left-radius:.5rem;display:block;overflow:auto;height:var(--tabs-height, auto)}.s-tabs__icon .s-icon-mat span{font-size:1.25rem}.s-tabs .material-icons{font-size:1.5rem}.s-tabs__container{display:flex;justify-content:center;height:13%}.s-tabs__content{align-items:center;color:var(--secondary-600);cursor:pointer;display:flex;flex-basis:50%;flex-grow:1;font-size:1rem;justify-content:center;line-height:2rem;padding:.896rem .5rem;text-align:center;gap:.4rem}.s-tabs__content.selected{color:var(--primary-600);background-color:var(--primary-200);border-top-right-radius:.5rem;border-top-left-radius:.5rem}.s-tabs__content.highlight{background-color:var(--primary-200)}.s-tabs__content.disabled{color:var(--secondary-300);cursor:not-allowed}.s-tabs .primary{color:var(--primary-600)}.s-tabs .secondary{color:var(--secondary-600)}.s-tabs .green{color:var(--green-600)}.s-tabs .yellow{color:var(--yellow-600)}.s-tabs .red{color:var(--red-600)}.s-tabs__text{font-weight:700}.s-tabs__background{background-color:var(--primary-100)}.s-tabs__pill{padding:.5rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.s-tabs__pill .s-tabs{background-color:var(--primary-100)}.s-tabs__pill .s-tabs__container{gap:.5rem}.s-tabs__pill .s-tabs__content{padding:.43rem .187rem;border-bottom:0;border-radius:.25rem}.s-tabs__pill .s-tabs__content.selected{color:var(--primary-600);background-color:var(--primary-200)}.s-tabs__sm .s-tabs__text{font-size:.75rem}.s-tabs__sm .s-tabs__icon span{font-size:1.3rem}.s-tabs__sm.s-tabs__pill{padding:.25rem}.s-tabs__sm.s-tabs__pill .s-tabs__content{padding:.299rem .187rem}.s-tabs__sm .s-tabs__content{padding:.24rem .187rem}.s-tabs__vertical{display:flex;width:var(--tabs-width, max-content);height:var(--tabs-height, 100%)}.s-tabs__vertical s-icon-mat.s-tabs__icon{padding-left:.6rem;padding-right:.2rem}.s-tabs__vertical .s-tabs__container{flex-direction:column;width:100%!important;justify-content:flex-start;align-items:stretch}.s-tabs__vertical.s-tabs__pill{padding-left:.7rem;padding-right:.7rem;padding-bottom:var(--_pill-padding-bottom, .5rem)}.s-tabs__vertical.s-tabs__pill .s-tabs__container{display:flex;flex-direction:column;width:100%!important;justify-content:flex-start;align-items:center!important}.s-tabs__vertical .s-tabs__content{justify-content:flex-start;text-align:left;flex-basis:auto;border-bottom:none;border-left:.063rem solid transparent;border-radius:0}.s-tabs__vertical .s-tabs__content.selected{border-left:.188rem solid var(--primary-600);border-bottom:none;border-top-right-radius:0;border-top-left-radius:0;background-color:var(--primary-200)}.s-tabs__vertical .s-tabs__content:not(:has(.s-tabs__icon)) .s-tabs__text{padding-left:.5rem}.s-tabs__vertical.s-tabs__pill .s-tabs__container{gap:.5rem}.s-tabs__vertical.s-tabs__pill .s-tabs__content{border-left:0;border-radius:.25rem;width:100%}.s-tabs__vertical.s-tabs__pill .s-tabs__content.selected{border-left:0}.s-tabs__vertical.s-tabs__underline.s-tabs__pill .s-tabs__content.selected{border-bottom:.15rem solid var(--primary-600);border-bottom-left-radius:0;border-bottom-right-radius:0}.s-tabs__vertical.s-tabs__backgroundSelected.s-tabs__pill .s-tabs__content.selected{background:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: SBadgeComponent, selector: "s-badge", inputs: ["type", "size", "new"] }], encapsulation: i0.ViewEncapsulation.None }); }
6067
6096
  }
6068
6097
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STabsComponent, decorators: [{
6069
6098
  type: Component,
6070
- args: [{ selector: 's-tabs', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"s-tabs s-scroll no-select\"\n *ngIf=\"tabsConfig\"\n [ngClass]=\"{\n 's-tabs__background': configTabs?.background,\n 's-tabs__pill': configTabs?.pill,\n 's-tabs__sm': configTabs?.size === 'sm',\n }\">\n <div class=\"s-tabs__container\" [ngStyle]=\"{ width: configTabs?.width + '%' }\">\n <div\n class=\"s-tabs__content\"\n *ngFor=\"let tab of tabsConfig\"\n [ngClass]=\"{\n selected: tab.selected,\n highlight: tab.highlight,\n disabled: tab.disabled,\n }\"\n tabindex=\"0\"\n (keydown.enter)=\"selectTab(tab)\"\n (click)=\"selectTab(tab)\">\n <s-icon-mat\n class=\"s-tabs__icon\"\n *ngIf=\"tab.icon\"\n [ngClass]=\"[tab.iconType ? tab.iconType : '']\"\n [type]=\"tab.iconSymbol ? 'symbol' : 'icon'\"\n >{{ tab.icon }}</s-icon-mat\n >\n <span *ngIf=\"tab.text\" class=\"s-tabs__text\">{{ tab.text }}</span>\n <s-badge\n *ngIf=\"tab.badge\"\n [type]=\"tab.badgeType ? tab.badgeType : 'primary'\"\n >{{ tab.badge }}</s-badge\n >\n </div>\n </div>\n</div>\n", styles: [".s-tabs{border-top-right-radius:.5rem;border-top-left-radius:.5rem;display:block;overflow:auto}.s-tabs__icon .s-icon-mat span{font-size:1.25rem}.s-tabs .material-icons{font-size:1.5rem}.s-tabs__container{display:flex;justify-content:center}.s-tabs__content{align-items:center;color:var(--secondary-600);cursor:pointer;display:flex;flex-basis:50%;flex-grow:1;font-size:1rem;justify-content:center;line-height:2rem;padding:.896rem .5rem;text-align:center;gap:.4rem}.s-tabs__content.selected{border-bottom:.063rem solid var(--primary-600);color:var(--primary-600);background-color:var(--primary-200);border-top-right-radius:.5rem;border-top-left-radius:.5rem}.s-tabs__content.highlight{background-color:var(--primary-200)}.s-tabs__content.disabled{color:var(--secondary-300);cursor:not-allowed}.s-tabs .primary{color:var(--primary-600)}.s-tabs .secondary{color:var(--secondary-600)}.s-tabs .green{color:var(--green-600)}.s-tabs .yellow{color:var(--yellow-600)}.s-tabs .red{color:var(--red-600)}.s-tabs__text{font-weight:700}.s-tabs__background{background-color:var(--primary-100)}.s-tabs__pill{padding:.5rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.s-tabs__pill .s-tabs{background-color:var(--primary-100)}.s-tabs__pill .s-tabs__container{gap:.5rem}.s-tabs__pill .s-tabs__content{padding:.43rem .187rem;border-bottom:0;border-radius:.25rem}.s-tabs__pill .s-tabs__content.selected{color:var(--primary-600);background-color:var(--primary-200)}.s-tabs__sm .s-tabs__text{font-size:.75rem}.s-tabs__sm .s-tabs__icon span{font-size:1.3rem}.s-tabs__sm.s-tabs__pill{padding:.25rem}.s-tabs__sm.s-tabs__pill .s-tabs__content{padding:.299rem .187rem}.s-tabs__sm .s-tabs__content{padding:.24rem .187rem}\n"] }]
6099
+ args: [{ selector: 's-tabs', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"s-tabs s-scroll no-select\"\n *ngIf=\"tabsConfig\"\n [ngClass]=\"{\n 's-tabs__background': configTabs?.background,\n 's-tabs__pill': configTabs?.pill,\n 's-tabs__sm': configTabs?.size === 'sm',\n 's-tabs__vertical': configTabs?.orientation === 'vertical',\n 's-tabs__underline': configTabs?.underline,\n 's-tabs__backgroundSelected': configTabs?.backgroundSelected\n }\"\n [ngStyle]=\"{\n '--tabs-width': configTabs?.width + '%',\n '--tabs-height': configTabs?.height + '%'\n }\"\n >\n <div class=\"s-tabs__container\" [ngStyle]=\"{ width: configTabs?.width + '%' }\">\n <div\n class=\"s-tabs__content\"\n *ngFor=\"let tab of tabsConfig\"\n [ngClass]=\"{\n selected: tab.selected,\n highlight: tab.highlight,\n disabled: tab.disabled,\n }\"\n tabindex=\"0\"\n (keydown.enter)=\"selectTab(tab)\"\n (click)=\"selectTab(tab)\">\n <s-icon-mat\n class=\"s-tabs__icon\"\n *ngIf=\"tab.icon\"\n [ngClass]=\"[tab.iconType ? tab.iconType : '']\"\n [type]=\"tab.iconSymbol ? 'symbol' : 'icon'\"\n >{{ tab.icon }}</s-icon-mat\n >\n <span *ngIf=\"tab.text\" class=\"s-tabs__text\">{{ tab.text }}</span>\n <s-badge\n *ngIf=\"tab.badge\"\n [type]=\"tab.badgeType ? tab.badgeType : 'primary'\"\n >{{ tab.badge }}</s-badge\n >\n </div>\n </div>\n</div>\n", styles: [".s-tabs{border-top-right-radius:.5rem;border-top-left-radius:.5rem;display:block;overflow:auto;height:var(--tabs-height, auto)}.s-tabs__icon .s-icon-mat span{font-size:1.25rem}.s-tabs .material-icons{font-size:1.5rem}.s-tabs__container{display:flex;justify-content:center;height:13%}.s-tabs__content{align-items:center;color:var(--secondary-600);cursor:pointer;display:flex;flex-basis:50%;flex-grow:1;font-size:1rem;justify-content:center;line-height:2rem;padding:.896rem .5rem;text-align:center;gap:.4rem}.s-tabs__content.selected{color:var(--primary-600);background-color:var(--primary-200);border-top-right-radius:.5rem;border-top-left-radius:.5rem}.s-tabs__content.highlight{background-color:var(--primary-200)}.s-tabs__content.disabled{color:var(--secondary-300);cursor:not-allowed}.s-tabs .primary{color:var(--primary-600)}.s-tabs .secondary{color:var(--secondary-600)}.s-tabs .green{color:var(--green-600)}.s-tabs .yellow{color:var(--yellow-600)}.s-tabs .red{color:var(--red-600)}.s-tabs__text{font-weight:700}.s-tabs__background{background-color:var(--primary-100)}.s-tabs__pill{padding:.5rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.s-tabs__pill .s-tabs{background-color:var(--primary-100)}.s-tabs__pill .s-tabs__container{gap:.5rem}.s-tabs__pill .s-tabs__content{padding:.43rem .187rem;border-bottom:0;border-radius:.25rem}.s-tabs__pill .s-tabs__content.selected{color:var(--primary-600);background-color:var(--primary-200)}.s-tabs__sm .s-tabs__text{font-size:.75rem}.s-tabs__sm .s-tabs__icon span{font-size:1.3rem}.s-tabs__sm.s-tabs__pill{padding:.25rem}.s-tabs__sm.s-tabs__pill .s-tabs__content{padding:.299rem .187rem}.s-tabs__sm .s-tabs__content{padding:.24rem .187rem}.s-tabs__vertical{display:flex;width:var(--tabs-width, max-content);height:var(--tabs-height, 100%)}.s-tabs__vertical s-icon-mat.s-tabs__icon{padding-left:.6rem;padding-right:.2rem}.s-tabs__vertical .s-tabs__container{flex-direction:column;width:100%!important;justify-content:flex-start;align-items:stretch}.s-tabs__vertical.s-tabs__pill{padding-left:.7rem;padding-right:.7rem;padding-bottom:var(--_pill-padding-bottom, .5rem)}.s-tabs__vertical.s-tabs__pill .s-tabs__container{display:flex;flex-direction:column;width:100%!important;justify-content:flex-start;align-items:center!important}.s-tabs__vertical .s-tabs__content{justify-content:flex-start;text-align:left;flex-basis:auto;border-bottom:none;border-left:.063rem solid transparent;border-radius:0}.s-tabs__vertical .s-tabs__content.selected{border-left:.188rem solid var(--primary-600);border-bottom:none;border-top-right-radius:0;border-top-left-radius:0;background-color:var(--primary-200)}.s-tabs__vertical .s-tabs__content:not(:has(.s-tabs__icon)) .s-tabs__text{padding-left:.5rem}.s-tabs__vertical.s-tabs__pill .s-tabs__container{gap:.5rem}.s-tabs__vertical.s-tabs__pill .s-tabs__content{border-left:0;border-radius:.25rem;width:100%}.s-tabs__vertical.s-tabs__pill .s-tabs__content.selected{border-left:0}.s-tabs__vertical.s-tabs__underline.s-tabs__pill .s-tabs__content.selected{border-bottom:.15rem solid var(--primary-600);border-bottom-left-radius:0;border-bottom-right-radius:0}.s-tabs__vertical.s-tabs__backgroundSelected.s-tabs__pill .s-tabs__content.selected{background:none}\n"] }]
6071
6100
  }], ctorParameters: () => [], propDecorators: { tabs: [{
6072
6101
  type: Input
6073
6102
  }], configTabs: [{
@@ -6466,6 +6495,8 @@ class TableCompleteComponent {
6466
6495
  this.searchEvent = new EventEmitter();
6467
6496
  this.bottomStatusBarEvent = new EventEmitter();
6468
6497
  this.scrollEvent = new EventEmitter();
6498
+ this._sTranslateService = inject(STranslateService);
6499
+ this.searchText = '';
6469
6500
  }
6470
6501
  ngOnChanges(changes) {
6471
6502
  if (changes['config']) {
@@ -6474,12 +6505,17 @@ class TableCompleteComponent {
6474
6505
  }
6475
6506
  ngOnInit() {
6476
6507
  this.filtersDisabled();
6508
+ this.emptyConfigSearch = {
6509
+ image: 'assets/empty/empty-search.png',
6510
+ title: this._sTranslateService.instant('ui.generic.emptySearch.title'),
6511
+ detail: this._sTranslateService.instant('ui.generic.emptySearch.detail'),
6512
+ };
6477
6513
  }
6478
6514
  filtersDisabled() {
6479
6515
  if (this.config.configToolbarTop) {
6480
6516
  this.config.configToolbarTop = {
6481
6517
  ...this.config.configToolbarTop,
6482
- filtersDisabled: this.config.totalItems === 0,
6518
+ filtersDisabled: this.config.totalItems === 0 && this.searchText === '',
6483
6519
  };
6484
6520
  }
6485
6521
  }
@@ -6496,6 +6532,7 @@ class TableCompleteComponent {
6496
6532
  this.deleteEvent.emit();
6497
6533
  }
6498
6534
  search(text) {
6535
+ this.searchText = text;
6499
6536
  this.searchEvent.emit(text);
6500
6537
  }
6501
6538
  select(value) {
@@ -6531,11 +6568,11 @@ class TableCompleteComponent {
6531
6568
  this.scrollEvent.emit();
6532
6569
  }
6533
6570
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableCompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6534
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TableCompleteComponent, selector: "s-table-complete", inputs: { config: "config" }, outputs: { actionEvent: "actionEvent", checkAllEvent: "checkAllEvent", deleteEvent: "deleteEvent", emptyEvent: "emptyEvent", filterEvent: "filterEvent", orderByEvent: "orderByEvent", pageEvent: "pageEvent", paginationEvent: "paginationEvent", multiSelectEvent: "multiSelectEvent", pillButtonEvent: "pillButtonEvent", selectEvent: "selectEvent", searchEvent: "searchEvent", bottomStatusBarEvent: "bottomStatusBarEvent", scrollEvent: "scrollEvent" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"s-table-complete\">\n <s-toolbar-top\n *ngIf=\"config.configToolbarTop\"\n [config]=\"config.configToolbarTop\"\n (searchEvent)=\"search($event)\"\n (actionEvent)=\"action()\"\n (deleteEvent)=\"delete()\"\n (filterEvent)=\"filter($event)\"\n (multiSelectEvent)=\"multiSelect($event)\"\n (pillButtonEvent)=\"pillButton()\"\n (selectEvent)=\"select($event)\">\n </s-toolbar-top>\n <div class=\"s-table-complete__table\" *ngIf=\"config.columns\">\n <s-tablet\n [configColumn]=\"config.columns\"\n [loading]=\"config.totalItems === 0\"\n [loadingScroll]=\"config.loadingScroll ?? false\"\n (ordenByEvent)=\"ordenEvent($event)\"\n (checkAllEvent)=\"checkAll($event)\"\n (scrollEvent)=\"onScroll()\">\n <ng-template STemplate=\"body\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template STemplate=\"bodyloading\" #notItems>\n <s-empty *ngIf=\"config.emptyConfig\" [config]=\"config.emptyConfig\" (buttonEvent)=\"buttonEmpty()\"></s-empty>\n </ng-template>\n </s-tablet>\n </div>\n @if (config.configBottomStatusBar) {\n <s-bottom-status-bar\n [config]=\"config.configBottomStatusBar()\"\n (stateChangeEvent)=\"selectionControlChange($event)\" />\n }\n @if (!config.scroll) {\n @if (!config.hidePagination) {\n <div class=\"s-table-complete__pagination\">\n <section>\n <s-pagination\n *ngIf=\"config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [showing]=\"config.paginationText.showing\"\n [of]=\"config.paginationText.of\"\n [items]=\"config.paginationText.items\"\n [empty]=\"config.paginationText.empty\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n [totalItems]=\"config.totalItems ?? 0\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n <s-pagination\n *ngIf=\"!config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [totalItems]=\"config.totalItems ?? 0\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n </section>\n </div>\n }\n }\n</section>\n", styles: [".s-table-complete{width:100%;box-shadow:var(--E000);border-radius:.5rem}.s-table-complete__table{background:var(--neutrals-1200)!important}.s-table-complete__pagination{background-color:var(--neutrals-1200);border-top:.031rem solid var(--secondary-300);border-radius:0 0 .5rem .5rem;padding:1rem}.s-table-complete .border-bottom{border-bottom:.031rem solid var(--secondary-300)}.s-table-complete s-tablet .pre-s-tablet{height:37rem;background-color:var(--primary-100)}.s-table-complete .s-scroll::-webkit-scrollbar-track{background-color:var(--neutrals-1200)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SToolbarTopComponent, selector: "s-toolbar-top", inputs: ["config"], outputs: ["actionEvent", "deleteEvent", "filterEvent", "multiSelectEvent", "pillButtonEvent", "selectEvent", "searchEvent"] }, { kind: "component", type: EmptyComponent, selector: "s-empty", inputs: ["config"], outputs: ["buttonEvent"] }, { kind: "component", type: STabletComponent, selector: "s-tablet", inputs: ["data", "loading", "caption", "header", "bodyloading", "body", "configColumn", "loadingScroll"], outputs: ["updateDataEvent", "ordenByEvent", "checkAllEvent", "scrollEvent"] }, { kind: "directive", type: STemplate, selector: "[STemplate]", inputs: ["STemplate"] }, { kind: "component", type: SPaginationComponent, selector: "s-pagination", inputs: ["showing", "to", "of", "items", "empty", "disabled", "pageNumber", "totalItems", "pageSize", "pageSizes"], outputs: ["pageEmitter", "paginationEmitter"] }, { kind: "component", type: SBottomStatusBarComponent, selector: "s-bottom-status-bar", inputs: ["config"], outputs: ["stateChange", "stateChangeEvent"] }], encapsulation: i0.ViewEncapsulation.None }); }
6571
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TableCompleteComponent, selector: "s-table-complete", inputs: { config: "config" }, outputs: { actionEvent: "actionEvent", checkAllEvent: "checkAllEvent", deleteEvent: "deleteEvent", emptyEvent: "emptyEvent", filterEvent: "filterEvent", orderByEvent: "orderByEvent", pageEvent: "pageEvent", paginationEvent: "paginationEvent", multiSelectEvent: "multiSelectEvent", pillButtonEvent: "pillButtonEvent", selectEvent: "selectEvent", searchEvent: "searchEvent", bottomStatusBarEvent: "bottomStatusBarEvent", scrollEvent: "scrollEvent" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"s-table-complete\">\n <s-toolbar-top\n *ngIf=\"config.configToolbarTop\"\n [config]=\"config.configToolbarTop\"\n (searchEvent)=\"search($event)\"\n (actionEvent)=\"action()\"\n (deleteEvent)=\"delete()\"\n (filterEvent)=\"filter($event)\"\n (multiSelectEvent)=\"multiSelect($event)\"\n (pillButtonEvent)=\"pillButton()\"\n (selectEvent)=\"select($event)\">\n </s-toolbar-top>\n <div class=\"s-table-complete__table\" *ngIf=\"config.columns\">\n <s-tablet\n [configColumn]=\"config.columns\"\n [loading]=\"config.totalItems === 0\"\n [loadingScroll]=\"config.loadingScroll ?? false\"\n [isTreeMode]=\"config.isTreeMode ?? false\"\n (ordenByEvent)=\"ordenEvent($event)\"\n (checkAllEvent)=\"checkAll($event)\"\n (scrollEvent)=\"onScroll()\">\n <ng-template STemplate=\"body\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template STemplate=\"bodyloading\" #notItems>\n @if (searchText) {\n <s-empty [config]=\"emptyConfigSearch\" (buttonEvent)=\"buttonEmpty()\"></s-empty>\n } @else {\n <s-empty *ngIf=\"config.emptyConfig\" [config]=\"config.emptyConfig\" (buttonEvent)=\"buttonEmpty()\"></s-empty>\n }\n </ng-template>\n </s-tablet>\n </div>\n @if (config.configBottomStatusBar) {\n <s-bottom-status-bar\n [config]=\"config.configBottomStatusBar()\"\n (stateChangeEvent)=\"selectionControlChange($event)\" />\n }\n @if (!config.scroll) {\n @if (!config.hidePagination) {\n <div class=\"s-table-complete__pagination\">\n <section>\n <s-pagination\n *ngIf=\"config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [showing]=\"config.paginationText.showing\"\n [of]=\"config.paginationText.of\"\n [items]=\"config.paginationText.items\"\n [empty]=\"config.paginationText.empty\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n [totalItems]=\"config.totalItems ?? 0\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n <s-pagination\n *ngIf=\"!config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [totalItems]=\"config.totalItems ?? 0\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n </section>\n </div>\n }\n }\n</section>\n", styles: [".s-table-complete{width:100%;box-shadow:var(--E000);border-radius:.5rem}.s-table-complete__table{background:var(--neutrals-1200)!important}.s-table-complete__pagination{background-color:var(--neutrals-1200);border-top:.031rem solid var(--secondary-300);border-radius:0 0 .5rem .5rem;padding:1rem}.s-table-complete .border-bottom{border-bottom:.031rem solid var(--secondary-300)}.s-table-complete s-tablet .pre-s-tablet{height:37rem;background-color:var(--primary-100)}.s-table-complete .s-scroll::-webkit-scrollbar-track{background-color:var(--neutrals-1200)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SToolbarTopComponent, selector: "s-toolbar-top", inputs: ["config"], outputs: ["actionEvent", "deleteEvent", "filterEvent", "multiSelectEvent", "pillButtonEvent", "selectEvent", "searchEvent"] }, { kind: "component", type: EmptyComponent, selector: "s-empty", inputs: ["config"], outputs: ["buttonEvent"] }, { kind: "component", type: STabletComponent, selector: "s-tablet", inputs: ["data", "loading", "caption", "header", "bodyloading", "body", "configColumn", "isTreeMode", "loadingScroll"], outputs: ["updateDataEvent", "ordenByEvent", "checkAllEvent", "scrollEvent"] }, { kind: "directive", type: STemplate, selector: "[STemplate]", inputs: ["STemplate"] }, { kind: "component", type: SPaginationComponent, selector: "s-pagination", inputs: ["showing", "to", "of", "items", "empty", "disabled", "pageNumber", "totalItems", "pageSize", "pageSizes"], outputs: ["pageEmitter", "paginationEmitter"] }, { kind: "component", type: SBottomStatusBarComponent, selector: "s-bottom-status-bar", inputs: ["config"], outputs: ["stateChange", "stateChangeEvent"] }], encapsulation: i0.ViewEncapsulation.None }); }
6535
6572
  }
6536
6573
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableCompleteComponent, decorators: [{
6537
6574
  type: Component,
6538
- args: [{ selector: 's-table-complete', encapsulation: ViewEncapsulation.None, template: "<section class=\"s-table-complete\">\n <s-toolbar-top\n *ngIf=\"config.configToolbarTop\"\n [config]=\"config.configToolbarTop\"\n (searchEvent)=\"search($event)\"\n (actionEvent)=\"action()\"\n (deleteEvent)=\"delete()\"\n (filterEvent)=\"filter($event)\"\n (multiSelectEvent)=\"multiSelect($event)\"\n (pillButtonEvent)=\"pillButton()\"\n (selectEvent)=\"select($event)\">\n </s-toolbar-top>\n <div class=\"s-table-complete__table\" *ngIf=\"config.columns\">\n <s-tablet\n [configColumn]=\"config.columns\"\n [loading]=\"config.totalItems === 0\"\n [loadingScroll]=\"config.loadingScroll ?? false\"\n (ordenByEvent)=\"ordenEvent($event)\"\n (checkAllEvent)=\"checkAll($event)\"\n (scrollEvent)=\"onScroll()\">\n <ng-template STemplate=\"body\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template STemplate=\"bodyloading\" #notItems>\n <s-empty *ngIf=\"config.emptyConfig\" [config]=\"config.emptyConfig\" (buttonEvent)=\"buttonEmpty()\"></s-empty>\n </ng-template>\n </s-tablet>\n </div>\n @if (config.configBottomStatusBar) {\n <s-bottom-status-bar\n [config]=\"config.configBottomStatusBar()\"\n (stateChangeEvent)=\"selectionControlChange($event)\" />\n }\n @if (!config.scroll) {\n @if (!config.hidePagination) {\n <div class=\"s-table-complete__pagination\">\n <section>\n <s-pagination\n *ngIf=\"config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [showing]=\"config.paginationText.showing\"\n [of]=\"config.paginationText.of\"\n [items]=\"config.paginationText.items\"\n [empty]=\"config.paginationText.empty\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n [totalItems]=\"config.totalItems ?? 0\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n <s-pagination\n *ngIf=\"!config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [totalItems]=\"config.totalItems ?? 0\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n </section>\n </div>\n }\n }\n</section>\n", styles: [".s-table-complete{width:100%;box-shadow:var(--E000);border-radius:.5rem}.s-table-complete__table{background:var(--neutrals-1200)!important}.s-table-complete__pagination{background-color:var(--neutrals-1200);border-top:.031rem solid var(--secondary-300);border-radius:0 0 .5rem .5rem;padding:1rem}.s-table-complete .border-bottom{border-bottom:.031rem solid var(--secondary-300)}.s-table-complete s-tablet .pre-s-tablet{height:37rem;background-color:var(--primary-100)}.s-table-complete .s-scroll::-webkit-scrollbar-track{background-color:var(--neutrals-1200)}\n"] }]
6575
+ args: [{ selector: 's-table-complete', encapsulation: ViewEncapsulation.None, template: "<section class=\"s-table-complete\">\n <s-toolbar-top\n *ngIf=\"config.configToolbarTop\"\n [config]=\"config.configToolbarTop\"\n (searchEvent)=\"search($event)\"\n (actionEvent)=\"action()\"\n (deleteEvent)=\"delete()\"\n (filterEvent)=\"filter($event)\"\n (multiSelectEvent)=\"multiSelect($event)\"\n (pillButtonEvent)=\"pillButton()\"\n (selectEvent)=\"select($event)\">\n </s-toolbar-top>\n <div class=\"s-table-complete__table\" *ngIf=\"config.columns\">\n <s-tablet\n [configColumn]=\"config.columns\"\n [loading]=\"config.totalItems === 0\"\n [loadingScroll]=\"config.loadingScroll ?? false\"\n [isTreeMode]=\"config.isTreeMode ?? false\"\n (ordenByEvent)=\"ordenEvent($event)\"\n (checkAllEvent)=\"checkAll($event)\"\n (scrollEvent)=\"onScroll()\">\n <ng-template STemplate=\"body\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template STemplate=\"bodyloading\" #notItems>\n @if (searchText) {\n <s-empty [config]=\"emptyConfigSearch\" (buttonEvent)=\"buttonEmpty()\"></s-empty>\n } @else {\n <s-empty *ngIf=\"config.emptyConfig\" [config]=\"config.emptyConfig\" (buttonEvent)=\"buttonEmpty()\"></s-empty>\n }\n </ng-template>\n </s-tablet>\n </div>\n @if (config.configBottomStatusBar) {\n <s-bottom-status-bar\n [config]=\"config.configBottomStatusBar()\"\n (stateChangeEvent)=\"selectionControlChange($event)\" />\n }\n @if (!config.scroll) {\n @if (!config.hidePagination) {\n <div class=\"s-table-complete__pagination\">\n <section>\n <s-pagination\n *ngIf=\"config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [showing]=\"config.paginationText.showing\"\n [of]=\"config.paginationText.of\"\n [items]=\"config.paginationText.items\"\n [empty]=\"config.paginationText.empty\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n [totalItems]=\"config.totalItems ?? 0\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n <s-pagination\n *ngIf=\"!config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [totalItems]=\"config.totalItems ?? 0\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n </section>\n </div>\n }\n }\n</section>\n", styles: [".s-table-complete{width:100%;box-shadow:var(--E000);border-radius:.5rem}.s-table-complete__table{background:var(--neutrals-1200)!important}.s-table-complete__pagination{background-color:var(--neutrals-1200);border-top:.031rem solid var(--secondary-300);border-radius:0 0 .5rem .5rem;padding:1rem}.s-table-complete .border-bottom{border-bottom:.031rem solid var(--secondary-300)}.s-table-complete s-tablet .pre-s-tablet{height:37rem;background-color:var(--primary-100)}.s-table-complete .s-scroll::-webkit-scrollbar-track{background-color:var(--neutrals-1200)}\n"] }]
6539
6576
  }], propDecorators: { config: [{
6540
6577
  type: Input
6541
6578
  }], actionEvent: [{
@@ -6697,10 +6734,10 @@ class SModalConfirmComponent {
6697
6734
  this.modalConfirmService.close(response, checkboxChecked);
6698
6735
  }
6699
6736
  getTextAlignClass() {
6700
- return 's-modal-confirm__message--' + (this.config?.textAlign ?? 'center');
6737
+ return 's-modal-confirm__message--' + (this.config?.textAlign ?? 'left');
6701
6738
  }
6702
6739
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SModalConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6703
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SModalConfirmComponent, isStandalone: true, selector: "s-modal-confirm.", host: { listeners: { "document:keydown.escape": "onEscapeKey($event)" } }, ngImport: i0, template: "@if (config.isVisible) {\n <div class=\"overlay\">\n <div class=\"overlay__grid-12\">\n <div\n class=\"s-modal-confirm\"\n (click)=\"close(false)\"\n (keydown.enter)=\"close(false)\"\n tabindex=\"0\">\n <div\n class=\"s-modal-confirm__content\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.stopPropagation()\"\n tabindex=\"0\">\n <section\n class=\"s-modal-confirm__header\"\n [ngClass]=\"{\n 's-modal-confirm__header--secondary':\n config.backgroundType === 'secondary',\n }\">\n <div class=\"s-modal-confirm__header-title\">\n <s-icon-mat\n size=\"20\"\n [ngClass]=\"'s-modal-confirm__icon-' + config.type\">\n {{ getIconType(config.type).icon }}\n </s-icon-mat>\n <h4 class=\"s-modal-confirm__title\">\n {{ config.title }}\n </h4>\n </div>\n <s-icon-mat\n tabindex=\"0\"\n class=\"s-modal-confirm__icon-close\"\n size=\"20\"\n (click)=\"close(false)\">\n close\n </s-icon-mat>\n </section>\n <div class=\"s-scroll s-modal-confirm__body\">\n <p class=\"s-modal-confirm__message\" [ngClass]=\"getTextAlignClass()\">\n {{ config.message }}\n </p>\n </div>\n <section\n class=\"s-modal-confirm__buttons\"\n [ngClass]=\"{\n 's-modal-confirm__buttons--secondary':\n config.backgroundType === 'secondary',\n }\">\n <div>\n @if (config.checkbox) {\n <s-checkbox\n [config]=\"configCheckbox\"\n [(ngModel)]=\"valueCheckbox\"\n (ngModelChange)=\"valueCheckbox = $event\"></s-checkbox>\n }\n </div>\n <div>\n <s-button\n type=\"tertiary\"\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(false, valueCheckbox)\"\n (keydown.enter)=\"close(false, valueCheckbox)\">\n {{ config.cancelText }}\n </s-button>\n <s-button\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(true, valueCheckbox)\"\n (keydown.enter)=\"close(true, valueCheckbox)\">\n {{ config.confirmText }}\n </s-button>\n </div>\n </section>\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [".overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.overlay__grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;width:100%;margin:0 2rem}.s-modal-confirm{grid-column:5/span 4;box-shadow:var(--E500)}.s-modal-confirm__content{background:var(--neutrals-1200);text-align:center;min-width:10rem;border-radius:.5rem}.s-modal-confirm__header{align-items:center;display:flex;justify-content:space-between;border-top-left-radius:.5rem;border-top-right-radius:.5rem;padding:.625rem 1rem}.s-modal-confirm__header-title{align-items:center;display:flex}.s-modal-confirm__header-title h4{font-size:1.25rem;margin-left:.4rem}.s-modal-confirm__header--secondary{background:var(--neutrals-1100)}.s-modal-confirm__icon-alert{color:var(--yellow-600)}.s-modal-confirm__icon-error{color:var(--red-600)}.s-modal-confirm__icon-info{color:var(--primary-600)}.s-modal-confirm__icon-close{color:var(--neutrals-600);cursor:pointer}.s-modal-confirm__message{font-size:.875rem}.s-modal-confirm__message--center{text-align:center}.s-modal-confirm__message--justify{text-align:justify}.s-modal-confirm__message--left{text-align:left}.s-modal-confirm__message--right{text-align:right}.s-modal-confirm__buttons{display:flex;padding:.625rem 1rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;justify-content:space-between;align-items:center}.s-modal-confirm__buttons--secondary{background:var(--neutrals-1100)}@media (max-width: 37.5rem){.s-modal-confirm__buttons{justify-content:end;flex-direction:column;align-items:center}}.s-modal-confirm__body{margin:.5rem .25rem .5rem .938rem;max-height:7rem;overflow-x:hidden;padding-right:.313rem;text-align:justify}@media (max-width: 31.25rem){.s-modal-confirm{grid-column:1/span 12}}@media (max-width: 55.625rem){.s-modal-confirm{grid-column:3/span 8}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SButtonModule }, { kind: "component", type: SButtonComponent, selector: "s-button", inputs: ["disabled", "pill", "size", "invert", "type", "loading", "position", "theme", "active"] }, { kind: "ngmodule", type: SIconMaterialModule }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "ngmodule", type: SCheckboxModule }, { kind: "component", type: SCheckboxComponent, selector: "s-checkbox", inputs: ["config"], outputs: ["blur", "focus"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
6740
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SModalConfirmComponent, isStandalone: true, selector: "s-modal-confirm.", host: { listeners: { "document:keydown.escape": "onEscapeKey($event)" } }, ngImport: i0, template: "@if (config.isVisible) {\n <div class=\"overlay\">\n <div class=\"overlay__grid-12\">\n <div\n class=\"s-modal-confirm\"\n (click)=\"close(false)\"\n (keydown.enter)=\"close(false)\"\n tabindex=\"0\">\n <div\n class=\"s-modal-confirm__content\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.stopPropagation()\"\n tabindex=\"0\">\n <section\n class=\"s-modal-confirm__header\"\n [ngClass]=\"{\n 's-modal-confirm__header--secondary':\n config.backgroundType === 'secondary',\n }\">\n <div class=\"s-modal-confirm__header-title\">\n <s-icon-mat\n size=\"20\"\n [ngClass]=\"'s-modal-confirm__icon-' + config.type\">\n {{ getIconType(config.type).icon }}\n </s-icon-mat>\n <h4 class=\"s-modal-confirm__title\">\n {{ config.title }}\n </h4>\n </div>\n @if (config.cancelText) {\n <s-icon-mat\n tabindex=\"0\"\n class=\"s-modal-confirm__icon-close\"\n size=\"20\"\n (click)=\"close(false)\">\n close\n </s-icon-mat>\n }\n </section>\n <div class=\"s-scroll s-modal-confirm__body\">\n <p class=\"s-modal-confirm__message\" [ngClass]=\"getTextAlignClass()\">\n {{ config.message }}\n </p>\n </div>\n <section\n class=\"s-modal-confirm__buttons\"\n [ngClass]=\"{\n 's-modal-confirm__buttons--secondary':\n config.backgroundType === 'secondary',\n }\">\n <div>\n @if (config.checkbox) {\n <s-checkbox\n [config]=\"configCheckbox\"\n [(ngModel)]=\"valueCheckbox\"\n (ngModelChange)=\"valueCheckbox = $event\"></s-checkbox>\n }\n </div>\n <div>\n @if (config.cancelText) {\n <s-button\n type=\"tertiary\"\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(false, valueCheckbox)\"\n (keydown.enter)=\"close(false, valueCheckbox)\">\n {{ config.cancelText }}\n </s-button>\n }\n <s-button\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(true, valueCheckbox)\"\n (keydown.enter)=\"close(true, valueCheckbox)\">\n {{ config.confirmText }}\n </s-button>\n </div>\n </section>\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [".overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.overlay__grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;width:100%;margin:0 2rem}.s-modal-confirm{grid-column:5/span 4;box-shadow:var(--E500)}.s-modal-confirm__content{background:var(--neutrals-1200);text-align:left;min-width:10rem;border-radius:.5rem}.s-modal-confirm__header{align-items:center;display:flex;justify-content:space-between;border-top-left-radius:.5rem;border-top-right-radius:.5rem;padding:.625rem 1rem}.s-modal-confirm__header-title{align-items:center;display:flex}.s-modal-confirm__header-title h4{font-size:1.25rem;margin-left:.4rem;color:var(--secondary-600)}.s-modal-confirm__icon-alert{color:var(--yellow-600)}.s-modal-confirm__icon-error{color:var(--red-600)}.s-modal-confirm__icon-info{color:var(--primary-600)}.s-modal-confirm__icon-close{color:var(--neutrals-600);cursor:pointer}.s-modal-confirm__message{font-size:.875rem;color:var(--secondary-600)}.s-modal-confirm__message--center{text-align:center}.s-modal-confirm__message--justify{text-align:justify}.s-modal-confirm__message--left{text-align:left}.s-modal-confirm__message--right{text-align:right}.s-modal-confirm__buttons{display:flex;padding:.625rem 1rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;justify-content:space-between;align-items:center}.s-modal-confirm__buttons--secondary{background:var(--neutrals-1100)}@media (max-width: 37.5rem){.s-modal-confirm__buttons{justify-content:end;flex-direction:column;align-items:center}}.s-modal-confirm__body{margin:.5rem .25rem .5rem .938rem;max-height:7rem;overflow-x:hidden;padding-right:.313rem;text-align:justify}@media (max-width: 31.25rem){.s-modal-confirm{grid-column:1/span 12}}@media (max-width: 55.625rem){.s-modal-confirm{grid-column:3/span 8}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SButtonModule }, { kind: "component", type: SButtonComponent, selector: "s-button", inputs: ["disabled", "pill", "size", "invert", "type", "loading", "position", "theme", "active"] }, { kind: "ngmodule", type: SIconMaterialModule }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "ngmodule", type: SCheckboxModule }, { kind: "component", type: SCheckboxComponent, selector: "s-checkbox", inputs: ["config"], outputs: ["blur", "focus"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
6704
6741
  }
6705
6742
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SModalConfirmComponent, decorators: [{
6706
6743
  type: Component,
@@ -6710,7 +6747,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6710
6747
  SIconMaterialModule,
6711
6748
  SCheckboxModule,
6712
6749
  FormsModule,
6713
- ], template: "@if (config.isVisible) {\n <div class=\"overlay\">\n <div class=\"overlay__grid-12\">\n <div\n class=\"s-modal-confirm\"\n (click)=\"close(false)\"\n (keydown.enter)=\"close(false)\"\n tabindex=\"0\">\n <div\n class=\"s-modal-confirm__content\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.stopPropagation()\"\n tabindex=\"0\">\n <section\n class=\"s-modal-confirm__header\"\n [ngClass]=\"{\n 's-modal-confirm__header--secondary':\n config.backgroundType === 'secondary',\n }\">\n <div class=\"s-modal-confirm__header-title\">\n <s-icon-mat\n size=\"20\"\n [ngClass]=\"'s-modal-confirm__icon-' + config.type\">\n {{ getIconType(config.type).icon }}\n </s-icon-mat>\n <h4 class=\"s-modal-confirm__title\">\n {{ config.title }}\n </h4>\n </div>\n <s-icon-mat\n tabindex=\"0\"\n class=\"s-modal-confirm__icon-close\"\n size=\"20\"\n (click)=\"close(false)\">\n close\n </s-icon-mat>\n </section>\n <div class=\"s-scroll s-modal-confirm__body\">\n <p class=\"s-modal-confirm__message\" [ngClass]=\"getTextAlignClass()\">\n {{ config.message }}\n </p>\n </div>\n <section\n class=\"s-modal-confirm__buttons\"\n [ngClass]=\"{\n 's-modal-confirm__buttons--secondary':\n config.backgroundType === 'secondary',\n }\">\n <div>\n @if (config.checkbox) {\n <s-checkbox\n [config]=\"configCheckbox\"\n [(ngModel)]=\"valueCheckbox\"\n (ngModelChange)=\"valueCheckbox = $event\"></s-checkbox>\n }\n </div>\n <div>\n <s-button\n type=\"tertiary\"\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(false, valueCheckbox)\"\n (keydown.enter)=\"close(false, valueCheckbox)\">\n {{ config.cancelText }}\n </s-button>\n <s-button\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(true, valueCheckbox)\"\n (keydown.enter)=\"close(true, valueCheckbox)\">\n {{ config.confirmText }}\n </s-button>\n </div>\n </section>\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [".overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.overlay__grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;width:100%;margin:0 2rem}.s-modal-confirm{grid-column:5/span 4;box-shadow:var(--E500)}.s-modal-confirm__content{background:var(--neutrals-1200);text-align:center;min-width:10rem;border-radius:.5rem}.s-modal-confirm__header{align-items:center;display:flex;justify-content:space-between;border-top-left-radius:.5rem;border-top-right-radius:.5rem;padding:.625rem 1rem}.s-modal-confirm__header-title{align-items:center;display:flex}.s-modal-confirm__header-title h4{font-size:1.25rem;margin-left:.4rem}.s-modal-confirm__header--secondary{background:var(--neutrals-1100)}.s-modal-confirm__icon-alert{color:var(--yellow-600)}.s-modal-confirm__icon-error{color:var(--red-600)}.s-modal-confirm__icon-info{color:var(--primary-600)}.s-modal-confirm__icon-close{color:var(--neutrals-600);cursor:pointer}.s-modal-confirm__message{font-size:.875rem}.s-modal-confirm__message--center{text-align:center}.s-modal-confirm__message--justify{text-align:justify}.s-modal-confirm__message--left{text-align:left}.s-modal-confirm__message--right{text-align:right}.s-modal-confirm__buttons{display:flex;padding:.625rem 1rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;justify-content:space-between;align-items:center}.s-modal-confirm__buttons--secondary{background:var(--neutrals-1100)}@media (max-width: 37.5rem){.s-modal-confirm__buttons{justify-content:end;flex-direction:column;align-items:center}}.s-modal-confirm__body{margin:.5rem .25rem .5rem .938rem;max-height:7rem;overflow-x:hidden;padding-right:.313rem;text-align:justify}@media (max-width: 31.25rem){.s-modal-confirm{grid-column:1/span 12}}@media (max-width: 55.625rem){.s-modal-confirm{grid-column:3/span 8}}\n"] }]
6750
+ ], template: "@if (config.isVisible) {\n <div class=\"overlay\">\n <div class=\"overlay__grid-12\">\n <div\n class=\"s-modal-confirm\"\n (click)=\"close(false)\"\n (keydown.enter)=\"close(false)\"\n tabindex=\"0\">\n <div\n class=\"s-modal-confirm__content\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.stopPropagation()\"\n tabindex=\"0\">\n <section\n class=\"s-modal-confirm__header\"\n [ngClass]=\"{\n 's-modal-confirm__header--secondary':\n config.backgroundType === 'secondary',\n }\">\n <div class=\"s-modal-confirm__header-title\">\n <s-icon-mat\n size=\"20\"\n [ngClass]=\"'s-modal-confirm__icon-' + config.type\">\n {{ getIconType(config.type).icon }}\n </s-icon-mat>\n <h4 class=\"s-modal-confirm__title\">\n {{ config.title }}\n </h4>\n </div>\n @if (config.cancelText) {\n <s-icon-mat\n tabindex=\"0\"\n class=\"s-modal-confirm__icon-close\"\n size=\"20\"\n (click)=\"close(false)\">\n close\n </s-icon-mat>\n }\n </section>\n <div class=\"s-scroll s-modal-confirm__body\">\n <p class=\"s-modal-confirm__message\" [ngClass]=\"getTextAlignClass()\">\n {{ config.message }}\n </p>\n </div>\n <section\n class=\"s-modal-confirm__buttons\"\n [ngClass]=\"{\n 's-modal-confirm__buttons--secondary':\n config.backgroundType === 'secondary',\n }\">\n <div>\n @if (config.checkbox) {\n <s-checkbox\n [config]=\"configCheckbox\"\n [(ngModel)]=\"valueCheckbox\"\n (ngModelChange)=\"valueCheckbox = $event\"></s-checkbox>\n }\n </div>\n <div>\n @if (config.cancelText) {\n <s-button\n type=\"tertiary\"\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(false, valueCheckbox)\"\n (keydown.enter)=\"close(false, valueCheckbox)\">\n {{ config.cancelText }}\n </s-button>\n }\n <s-button\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(true, valueCheckbox)\"\n (keydown.enter)=\"close(true, valueCheckbox)\">\n {{ config.confirmText }}\n </s-button>\n </div>\n </section>\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [".overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.overlay__grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;width:100%;margin:0 2rem}.s-modal-confirm{grid-column:5/span 4;box-shadow:var(--E500)}.s-modal-confirm__content{background:var(--neutrals-1200);text-align:left;min-width:10rem;border-radius:.5rem}.s-modal-confirm__header{align-items:center;display:flex;justify-content:space-between;border-top-left-radius:.5rem;border-top-right-radius:.5rem;padding:.625rem 1rem}.s-modal-confirm__header-title{align-items:center;display:flex}.s-modal-confirm__header-title h4{font-size:1.25rem;margin-left:.4rem;color:var(--secondary-600)}.s-modal-confirm__icon-alert{color:var(--yellow-600)}.s-modal-confirm__icon-error{color:var(--red-600)}.s-modal-confirm__icon-info{color:var(--primary-600)}.s-modal-confirm__icon-close{color:var(--neutrals-600);cursor:pointer}.s-modal-confirm__message{font-size:.875rem;color:var(--secondary-600)}.s-modal-confirm__message--center{text-align:center}.s-modal-confirm__message--justify{text-align:justify}.s-modal-confirm__message--left{text-align:left}.s-modal-confirm__message--right{text-align:right}.s-modal-confirm__buttons{display:flex;padding:.625rem 1rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;justify-content:space-between;align-items:center}.s-modal-confirm__buttons--secondary{background:var(--neutrals-1100)}@media (max-width: 37.5rem){.s-modal-confirm__buttons{justify-content:end;flex-direction:column;align-items:center}}.s-modal-confirm__body{margin:.5rem .25rem .5rem .938rem;max-height:7rem;overflow-x:hidden;padding-right:.313rem;text-align:justify}@media (max-width: 31.25rem){.s-modal-confirm{grid-column:1/span 12}}@media (max-width: 55.625rem){.s-modal-confirm{grid-column:3/span 8}}\n"] }]
6714
6751
  }], propDecorators: { onEscapeKey: [{
6715
6752
  type: HostListener,
6716
6753
  args: ['document:keydown.escape', ['$event']]
@@ -7050,6 +7087,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
7050
7087
  type: Input
7051
7088
  }] } });
7052
7089
 
7090
+ const MAX_TREE_LEVEL = 20;
7053
7091
  class STableDoubleComponent {
7054
7092
  constructor() {
7055
7093
  this.actionPositionEvent = new EventEmitter();
@@ -7066,6 +7104,10 @@ class STableDoubleComponent {
7066
7104
  this.pillButtonPositionEvent = new EventEmitter();
7067
7105
  this.scrollPositionEvent = new EventEmitter();
7068
7106
  this.selectPositionEvent = new EventEmitter();
7107
+ this.rowSelectPositionEvent = new EventEmitter();
7108
+ this.actionEvent = new EventEmitter();
7109
+ this.toggleExpandEvent = new EventEmitter();
7110
+ this.reorderItemEvent = new EventEmitter();
7069
7111
  this.disabledButtonLeft = signal(true);
7070
7112
  this.disabledButtonRight = signal(true);
7071
7113
  this.itemsTableLeft = [];
@@ -7088,24 +7130,85 @@ class STableDoubleComponent {
7088
7130
  };
7089
7131
  }
7090
7132
  }
7133
+ onDragStart(event, itemId) {
7134
+ this.dragItemId = itemId;
7135
+ event.dataTransfer?.setData('text/plain', ''); // Necesario para habilitar el arrastre en algunos navegadores
7136
+ }
7137
+ onDragOver(event, itemId) {
7138
+ if (this.dragItemId === null || this.dragItemId === itemId) {
7139
+ return;
7140
+ }
7141
+ this.dragOverItemId = itemId;
7142
+ event.preventDefault();
7143
+ }
7144
+ onDragLeave(event) {
7145
+ this.dragOverItemId = null;
7146
+ }
7147
+ onDrop(event, itemId, isLeftTable) {
7148
+ if (this.dragItemId === null || this.dragItemId === itemId) {
7149
+ return;
7150
+ }
7151
+ // Reordenar los elementos
7152
+ const items = this.getItems(isLeftTable);
7153
+ const dragIndex = items.findIndex((item) => item.id === this.dragItemId);
7154
+ const dropIndex = items.findIndex((item) => item.id === itemId);
7155
+ if (dragIndex !== -1 && dropIndex !== -1) {
7156
+ const draggedItem = items[dragIndex];
7157
+ items.splice(dragIndex, 1);
7158
+ items.splice(dropIndex, 0, draggedItem);
7159
+ }
7160
+ this.dragItemId = null;
7161
+ this.dragOverItemId = null;
7162
+ event.preventDefault();
7163
+ this.eventUpdateTablesEmit();
7164
+ }
7165
+ iconAction(itemId, isLeftTable) {
7166
+ const items = this.getItems(isLeftTable);
7167
+ const item = items.find((item) => item.id === itemId);
7168
+ if (item)
7169
+ this.actionEvent.emit({ isLeftTable, id: itemId });
7170
+ }
7171
+ selectItem(itemId, isLeftTable) {
7172
+ const items = this.getItems(isLeftTable);
7173
+ const itemIndex = items.findIndex((item) => item.id === itemId);
7174
+ if (itemIndex !== -1) {
7175
+ items[itemIndex].selectedCheckbox = !items[itemIndex].selectedCheckbox;
7176
+ this.updateCounter();
7177
+ }
7178
+ }
7091
7179
  cloneItemsTables() {
7092
7180
  this.itemsTableLeft = [...this.config.tableLeftItems];
7093
7181
  this.itemsTableRightData = [...this.config.tableRightItems];
7094
7182
  }
7095
- moveItems(sourcePosition, targetPosition) {
7096
- const sourceData = this.config[`table${sourcePosition}Items`];
7097
- const targetData = this.config[`table${targetPosition}Items`];
7098
- const originalSourceKey = `original${`table${sourcePosition}`.charAt(0).toUpperCase() + `table${sourcePosition}`.slice(1)}Items`;
7099
- const originalTargetKey = `original${`table${targetPosition}`.charAt(0).toUpperCase() + `table${targetPosition}`.slice(1)}Items`;
7100
- const originalSourceData = this[originalSourceKey] || [];
7101
- const originalTargetData = this[originalTargetKey] || [];
7102
- const selectedItems = sourceData.filter(item => item.selected).map(item => ({ ...item, selected: false }));
7183
+ moveItems(isLeftTableSource) {
7184
+ const sourceData = this.getItems(isLeftTableSource);
7185
+ const targetData = this.getItems(!isLeftTableSource);
7186
+ const originalSourceData = isLeftTableSource ? this.itemsTableLeft : this.itemsTableRightData;
7187
+ const originalTargetData = isLeftTableSource ? this.itemsTableRightData : this.itemsTableLeft;
7188
+ const hasItemSelection = sourceData.some(item => item.itemSelected);
7189
+ const selectedItems = sourceData
7190
+ .filter(item => hasItemSelection ? item.itemSelected : item.selectedCheckbox)
7191
+ .map(item => ({
7192
+ ...item,
7193
+ selectedCheckbox: false,
7194
+ itemSelected: false
7195
+ }));
7103
7196
  targetData.push(...selectedItems);
7104
- this.config[`table${sourcePosition}Items`] = sourceData.filter(item => !item.selected);
7197
+ this.setItems(isLeftTableSource, sourceData.filter(item => hasItemSelection ? !item.itemSelected : !item.selectedCheckbox));
7105
7198
  originalTargetData.push(...selectedItems);
7106
- this[originalSourceKey] = originalSourceData.filter(item => !selectedItems.some(sel => sel.name === item.name));
7107
- this.config.tableRightConfig.columns[0].checkboxValue = false;
7108
- this.config.tableLeftConfig.columns[0].checkboxValue = false;
7199
+ const filteredOriginalSource = originalSourceData.filter(item => !selectedItems.some(sel => sel.name === item.name));
7200
+ if (isLeftTableSource) {
7201
+ this.itemsTableLeft = filteredOriginalSource;
7202
+ }
7203
+ else {
7204
+ this.itemsTableRightData = filteredOriginalSource;
7205
+ }
7206
+ const checkColumnRight = this.config.tableRightConfig.columns[0]?.checkboxValue;
7207
+ const checkColumnLeft = this.config.tableLeftConfig.columns[0]?.checkboxValue;
7208
+ if (checkColumnRight)
7209
+ this.config.tableRightConfig.columns[0].checkboxValue = false;
7210
+ if (checkColumnLeft)
7211
+ this.config.tableLeftConfig.columns[0].checkboxValue = false;
7109
7212
  this.config.tableLeftConfig.totalItems = this.config.tableLeftItems.length;
7110
7213
  this.config.tableRightConfig.totalItems = this.config.tableRightItems.length;
7111
7214
  this.eventUpdateTablesEmit();
@@ -7118,69 +7221,69 @@ class STableDoubleComponent {
7118
7221
  });
7119
7222
  }
7120
7223
  addItem() {
7121
- this.moveItems('Left', 'Right');
7224
+ this.moveItems(true);
7122
7225
  this.cloneItemsTables();
7123
7226
  }
7124
7227
  removeItem() {
7125
- this.moveItems('Right', 'Left');
7228
+ this.moveItems(false);
7126
7229
  this.cloneItemsTables();
7127
7230
  }
7128
- action(position) {
7129
- this.actionPositionEvent.emit(position);
7231
+ action(isLeftTable) {
7232
+ this.actionPositionEvent.emit(isLeftTable);
7130
7233
  }
7131
- delete(position) {
7132
- this.deletePositionEvent.emit(position);
7234
+ delete(isLeftTable) {
7235
+ this.deletePositionEvent.emit(isLeftTable);
7133
7236
  }
7134
- empty(position) {
7135
- this.emptyPositionEvent.emit(position);
7237
+ empty(isLeftTable) {
7238
+ this.emptyPositionEvent.emit(isLeftTable);
7136
7239
  }
7137
- orderBy(event, position) {
7138
- this.orderByPositionEvent.emit({ position: position, value: event });
7240
+ orderBy(event, isLeftTable) {
7241
+ this.orderByPositionEvent.emit({ isLeftTable, value: event });
7139
7242
  }
7140
- page(event, position) {
7141
- this.pagePositionEvent.emit({ position: position, value: event });
7243
+ page(event, isLeftTable) {
7244
+ this.pagePositionEvent.emit({ isLeftTable, value: event });
7142
7245
  }
7143
- paginationEmitter(event, position) {
7144
- this.paginationPositionEvent.emit({ position: position, value: event });
7246
+ paginationEmitter(event, isLeftTable) {
7247
+ this.paginationPositionEvent.emit({ isLeftTable, value: event });
7145
7248
  }
7146
- select(event, position) {
7147
- this.selectPositionEvent.emit({ position: position, value: event });
7249
+ select(event, isLeftTable) {
7250
+ this.selectPositionEvent.emit({ isLeftTable, value: event });
7148
7251
  }
7149
- pillButton(position) {
7150
- this.pillButtonPositionEvent.emit(position);
7252
+ pillButton(isLeftTable) {
7253
+ this.pillButtonPositionEvent.emit(isLeftTable);
7151
7254
  }
7152
- filter(event, position) {
7153
- this.filterPositionEvent.emit({ position: position, value: event });
7255
+ filter(event, isLeftTable) {
7256
+ this.filterPositionEvent.emit({ isLeftTable, value: event });
7154
7257
  }
7155
- multiSelect(event, side) {
7156
- this.multiSelectPositionEvent.emit({ position: side, value: event });
7258
+ multiSelect(event, isLeftTable) {
7259
+ this.multiSelectPositionEvent.emit({ isLeftTable, value: event });
7157
7260
  }
7158
- checkAllEvent(event, side) {
7159
- this.config[`table${side}Items`] = this.config[`table${side}Items`].map(item => ({
7261
+ checkAllEvent(event, isLeftTable) {
7262
+ const items = this.getItems(isLeftTable);
7263
+ this.setItems(isLeftTable, items.map(item => ({
7160
7264
  ...item,
7161
- selected: event,
7162
- }));
7265
+ selectedCheckbox: event,
7266
+ })));
7163
7267
  this.updateCounter();
7164
7268
  }
7165
- onScroll(side) {
7166
- this.scrollPositionEvent.emit(side);
7269
+ onScroll(isLeftTable) {
7270
+ this.scrollPositionEvent.emit(isLeftTable);
7167
7271
  }
7168
7272
  changeCheckbox() {
7169
7273
  this.config.tableRightConfig.columns[0].checkboxValue =
7170
- this.config.tableRightItems.length > 0 && this.config.tableRightItems.every(item => item.selected);
7274
+ this.config.tableRightItems.length > 0 && this.config.tableRightItems.every(item => item.selectedCheckbox);
7171
7275
  this.config.tableLeftConfig.columns[0].checkboxValue =
7172
- this.config.tableLeftItems.length > 0 && this.config.tableLeftItems.every(item => item.selected);
7276
+ this.config.tableLeftItems.length > 0 && this.config.tableLeftItems.every(item => item.selectedCheckbox);
7173
7277
  this.updateCounter();
7174
7278
  }
7175
- bottomStatusBarChange(state, position) {
7176
- this.bottomStatusBarPositionEvent.emit({ position, value: state });
7279
+ bottomStatusBarChange(state, isLeftTable) {
7280
+ this.bottomStatusBarPositionEvent.emit({ isLeftTable, value: state });
7177
7281
  this.updateCounter();
7178
7282
  }
7179
- search(event, position) {
7180
- const isLeft = position === 'Left';
7181
- const original = isLeft ? this.itemsTableLeft : this.itemsTableRightData;
7283
+ search(event, isLeftTable) {
7284
+ const original = isLeftTable ? this.itemsTableLeft : this.itemsTableRightData;
7182
7285
  const filtered = this.getFilteredItems(original, event);
7183
- if (isLeft) {
7286
+ if (isLeftTable) {
7184
7287
  this.config.tableLeftItems = filtered;
7185
7288
  }
7186
7289
  else {
@@ -7195,24 +7298,99 @@ class STableDoubleComponent {
7195
7298
  }
7196
7299
  updateCounter() {
7197
7300
  const updateStatusBar = (items, config, setter) => {
7198
- const counter = items.filter(item => item.selected).length;
7301
+ const counterCheckbox = items.filter(item => item.selectedCheckbox).length;
7302
+ const counterItem = items.filter(item => item.itemSelected).length;
7303
+ const counter = Math.max(counterCheckbox, counterItem);
7199
7304
  config.configBottomStatusBar = signal({
7200
7305
  ...config.configBottomStatusBar?.(),
7201
7306
  counter,
7202
7307
  disabled: items.length === 0,
7203
7308
  total: items.length,
7204
7309
  });
7205
- setter.set(counter === 0);
7310
+ // Habilitar botón si hay items seleccionados (por checkbox O por item)
7311
+ setter.set(counterCheckbox === 0 && counterItem === 0);
7206
7312
  };
7207
7313
  updateStatusBar(this.config.tableLeftItems, this.config.tableLeftConfig, this.disabledButtonLeft);
7208
7314
  updateStatusBar(this.config.tableRightItems, this.config.tableRightConfig, this.disabledButtonRight);
7209
7315
  }
7316
+ getTreeLevelClass(item) {
7317
+ if (!this.config.isTreeMode || !item.level) {
7318
+ return 's-table-double__tree-level-0';
7319
+ }
7320
+ const level = Math.min(item.level, MAX_TREE_LEVEL);
7321
+ return `s-table-double__tree-level-${level}`;
7322
+ }
7323
+ toggleExpand(event, itemId) {
7324
+ event.stopPropagation();
7325
+ this.toggleExpandEvent.emit(itemId);
7326
+ }
7327
+ rowClick(item, isLeftTable) {
7328
+ if (isLeftTable && this.config.disableLeftRowSelection) {
7329
+ return;
7330
+ }
7331
+ if (!isLeftTable) {
7332
+ this.config.tableRightItems.forEach(i => {
7333
+ i.itemSelected = i.id === item.id ? !i.itemSelected : false;
7334
+ });
7335
+ }
7336
+ else {
7337
+ item.itemSelected = !item.itemSelected;
7338
+ }
7339
+ this.updateCounter();
7340
+ this.rowSelectPositionEvent.emit({ isLeftTable, value: item });
7341
+ }
7342
+ getItems(isLeftTable) {
7343
+ return isLeftTable ? this.config.tableLeftItems : this.config.tableRightItems;
7344
+ }
7345
+ setItems(isLeftTable, items) {
7346
+ if (isLeftTable) {
7347
+ this.config.tableLeftItems = items;
7348
+ }
7349
+ else {
7350
+ this.config.tableRightItems = items;
7351
+ }
7352
+ }
7353
+ getOrderButtons(item) {
7354
+ const isFirst = !!item.__isFirstSibling;
7355
+ const isLast = !!item.__isLastSibling;
7356
+ if (item.__orderButtons &&
7357
+ item.__orderButtons[0].disabled === isFirst &&
7358
+ item.__orderButtons[2].disabled === isLast) {
7359
+ return item.__orderButtons;
7360
+ }
7361
+ item.__orderButtons = [
7362
+ {
7363
+ type: ActionsButtonsType.DOUBLE_ARROW_UP,
7364
+ tooltip: this._sTranslateService.instant('ui.generic.first'),
7365
+ disabled: isFirst,
7366
+ },
7367
+ {
7368
+ type: ActionsButtonsType.ARROW_UP,
7369
+ tooltip: this._sTranslateService.instant('ui.generic.up'),
7370
+ disabled: isFirst,
7371
+ },
7372
+ {
7373
+ type: ActionsButtonsType.ARROW_DOWN,
7374
+ tooltip: this._sTranslateService.instant('ui.generic.down'),
7375
+ disabled: isLast,
7376
+ },
7377
+ {
7378
+ type: ActionsButtonsType.DOUBLE_ARROW_DOWN,
7379
+ tooltip: this._sTranslateService.instant('ui.generic.last'),
7380
+ disabled: isLast,
7381
+ },
7382
+ ];
7383
+ return item.__orderButtons;
7384
+ }
7385
+ onOrderButtonClick(type, itemId) {
7386
+ this.reorderItemEvent.emit({ itemId, direction: type });
7387
+ }
7210
7388
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STableDoubleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: STableDoubleComponent, isStandalone: true, selector: "s-table-double", inputs: { config: "config" }, outputs: { actionPositionEvent: "actionPositionEvent", bottomStatusBarPositionEvent: "bottomStatusBarPositionEvent", checkAllPositionEvent: "checkAllPositionEvent", deletePositionEvent: "deletePositionEvent", emptyPositionEvent: "emptyPositionEvent", eventUpdateTables: "eventUpdateTables", filterPositionEvent: "filterPositionEvent", multiSelectPositionEvent: "multiSelectPositionEvent", orderByPositionEvent: "orderByPositionEvent", pagePositionEvent: "pagePositionEvent", paginationPositionEvent: "paginationPositionEvent", pillButtonPositionEvent: "pillButtonPositionEvent", scrollPositionEvent: "scrollPositionEvent", selectPositionEvent: "selectPositionEvent" }, ngImport: i0, template: "<div class=\"s-table-double\">\n <div class=\"s-table-double__header\"></div>\n <div class=\"s-table-double__body\">\n <div class=\"s-table-double__body__left\">\n <s-table-complete\n [config]=\"config.tableLeftConfig\"\n (actionEvent)=\"action('Left')\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, 'Left')\"\n (checkAllEvent)=\"checkAllEvent($event, 'Left')\"\n (deleteEvent)=\"delete('Left')\"\n (emptyEvent)=\"empty('Left')\"\n (filterEvent)=\"filter($event, 'Left')\"\n (multiSelectEvent)=\"multiSelect($event, 'Left')\"\n (orderByEvent)=\"orderBy($event, 'Left')\"\n (pageEvent)=\"page($event, 'Left')\"\n (paginationEvent)=\"paginationEmitter($event, 'Left')\"\n (pillButtonEvent)=\"pillButton('Left')\"\n (scrollEvent)=\"onScroll('Left')\"\n (searchEvent)=\"search($event, 'Left')\">\n @for (item of config.tableLeftItems; track item) {\n <tr [ngClass]=\"{ active: item.selected }\">\n <td>\n <input type=\"checkbox\" (change)=\"changeCheckbox()\" [(ngModel)]=\"item.selected\" />\n </td>\n @for (column of config.tableLeftConfig.columns; track column) {\n @if (column.id !== 'checkbox' && column.id !== undefined) {\n <td>{{ item[column.id] }}</td>\n }\n }\n </tr>\n }\n </s-table-complete>\n </div>\n <div class=\"s-table-double__body__middle\">\n <div>\n <s-button\n (click)=\"addItem()\"\n (keydown.enter)=\"addItem()\"\n position=\"normal\"\n [disabled]=\"disabledButtonLeft()\"\n [pill]=\"true\"\n ><s-icon-mat><span class=\"material-symbols-outlined\"> arrow_forward </span></s-icon-mat></s-button\n >\n </div>\n <div>\n <s-button\n (click)=\"removeItem()\"\n (keydown.enter)=\"removeItem()\"\n position=\"normal\"\n type=\"secondary\"\n [disabled]=\"disabledButtonRight()\"\n [pill]=\"true\"\n ><s-icon-mat><span class=\"material-symbols-outlined\"> arrow_back </span></s-icon-mat></s-button\n >\n </div>\n </div>\n <div class=\"s-table-double__body__right\">\n <s-table-complete\n [config]=\"config.tableRightConfig\"\n (actionEvent)=\"action('Right')\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, 'Right')\"\n (checkAllEvent)=\"checkAllEvent($event, 'Right')\"\n (deleteEvent)=\"delete('Right')\"\n (emptyEvent)=\"empty('Right')\"\n (filterEvent)=\"filter($event, 'Right')\"\n (multiSelectEvent)=\"multiSelect($event, 'Right')\"\n (orderByEvent)=\"orderBy($event, 'Right')\"\n (pageEvent)=\"page($event, 'Right')\"\n (paginationEvent)=\"paginationEmitter($event, 'Right')\"\n (pillButtonEvent)=\"pillButton('Right')\"\n (scrollEvent)=\"onScroll('Right')\"\n (searchEvent)=\"search($event, 'Right')\">\n @for (item of config.tableRightItems; track item) {\n <tr [ngClass]=\"{ active: item.selected }\">\n <td>\n <input type=\"checkbox\" (change)=\"changeCheckbox()\" [(ngModel)]=\"item.selected\" />\n </td>\n @for (column of config.tableRightConfig.columns; track column) {\n @if (column.id !== 'checkbox' && column.id !== undefined) {\n <td>{{ item[column.id] }}</td>\n }\n }\n </tr>\n }\n </s-table-complete>\n </div>\n </div>\n</div>\n", styles: [".s-table-double{margin-bottom:1rem}.s-table-double__body{display:flex;gap:.625rem}.s-table-double__body .s-tablet tr{cursor:pointer}.s-table-double__body .s-tablet tr:hover{background-color:var(--primary-200)}.s-table-double__body .s-tablet tr.active{background-color:var(--neutrals-1100)}.s-table-double__body__left{flex:5}.s-table-double__body__middle{display:flex;flex-direction:column;gap:.625rem;justify-content:center;padding:1.25rem;background-color:var(--primary-100);border-radius:.5rem}.s-table-double__body__right{flex:5}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: STableCompleteModule }, { kind: "component", type: TableCompleteComponent, selector: "s-table-complete", inputs: ["config"], outputs: ["actionEvent", "checkAllEvent", "deleteEvent", "emptyEvent", "filterEvent", "orderByEvent", "pageEvent", "paginationEvent", "multiSelectEvent", "pillButtonEvent", "selectEvent", "searchEvent", "bottomStatusBarEvent", "scrollEvent"] }, { kind: "ngmodule", type: SButtonModule }, { kind: "component", type: SButtonComponent, selector: "s-button", inputs: ["disabled", "pill", "size", "invert", "type", "loading", "position", "theme", "active"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SIconMaterialModule }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }], encapsulation: i0.ViewEncapsulation.None }); }
7389
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: STableDoubleComponent, isStandalone: true, selector: "s-table-double", inputs: { config: "config" }, outputs: { actionPositionEvent: "actionPositionEvent", bottomStatusBarPositionEvent: "bottomStatusBarPositionEvent", checkAllPositionEvent: "checkAllPositionEvent", deletePositionEvent: "deletePositionEvent", emptyPositionEvent: "emptyPositionEvent", eventUpdateTables: "eventUpdateTables", filterPositionEvent: "filterPositionEvent", multiSelectPositionEvent: "multiSelectPositionEvent", orderByPositionEvent: "orderByPositionEvent", pagePositionEvent: "pagePositionEvent", paginationPositionEvent: "paginationPositionEvent", pillButtonPositionEvent: "pillButtonPositionEvent", scrollPositionEvent: "scrollPositionEvent", selectPositionEvent: "selectPositionEvent", rowSelectPositionEvent: "rowSelectPositionEvent", actionEvent: "actionEvent", toggleExpandEvent: "toggleExpandEvent", reorderItemEvent: "reorderItemEvent" }, ngImport: i0, template: "<div class=\"s-table-double\">\n <div class=\"s-table-double__header\"></div>\n <div class=\"s-table-double__body\">\n <div class=\"s-table-double__body__left\">\n <s-table-complete\n [config]=\"config.tableLeftConfig\"\n (actionEvent)=\"action(true)\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, true)\"\n (checkAllEvent)=\"checkAllEvent($event, true)\"\n (deleteEvent)=\"delete(true)\"\n (emptyEvent)=\"empty(true)\"\n (filterEvent)=\"filter($event, true)\"\n (multiSelectEvent)=\"multiSelect($event, true)\"\n (orderByEvent)=\"orderBy($event, true)\"\n (pageEvent)=\"page($event, true)\"\n (paginationEvent)=\"paginationEmitter($event, true)\"\n (pillButtonEvent)=\"pillButton(true)\"\n (scrollEvent)=\"onScroll(true)\"\n (searchEvent)=\"search($event, true)\">\n @if (config.dragAndDrop) {\n @for (item of config.tableLeftItems; track item) {\n <div class=\"s-table-double__list\">\n <s-list\n [size]=\"'xs'\"\n [attr.data-item-id]=\"item.id\"\n [draggable]=\"true\"\n [selected]=\"item.selectedCheckbox\"\n (dragstart)=\"onDragStart($event, item.id)\"\n (dragover)=\"onDragOver($event, item.id)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event, item.id, true)\"\n (click)=\"selectItem(item.id, true)\">\n <div class=\"s-table-double__drag\">\n <h5 class=\"ml-2\">{{ item.name }}</h5>\n @if (item.iconAction) {\n <div class=\"s-table-double__drag-icon\">\n <s-icon-mat (click)=\"iconAction(item.id, true)\">{{ item.iconAction }}</s-icon-mat>\n </div>\n }\n </div>\n </s-list>\n </div>\n }\n } @else {\n @for (item of config.tableLeftItems; track item) {\n <tr [ngClass]=\"{ active: !config.disableLeftRowSelection && item.itemSelected }\" (click)=\"!config.disableLeftRowSelection && rowClick(item, true)\">\n <td (click)=\"$event.stopPropagation()\">\n <input type=\"checkbox\" [(ngModel)]=\"item.selectedCheckbox\" (change)=\"changeCheckbox()\" />\n </td>\n @for (column of config.tableLeftConfig.columns; track column) {\n @if (column.id !== 'checkbox' && column.id !== undefined) {\n <td>{{ item[column.id] }}</td>\n }\n }\n </tr>\n }\n }\n </s-table-complete>\n </div>\n <div class=\"s-table-double__body__middle\">\n <div>\n <s-button\n (click)=\"addItem()\"\n (keydown.enter)=\"addItem()\"\n position=\"normal\"\n [disabled]=\"disabledButtonLeft()\"\n [pill]=\"true\"\n ><s-icon-mat><span class=\"material-symbols-outlined\"> {{ config.additionButton ? 'add' : 'arrow_forward' }} </span></s-icon-mat></s-button\n >\n </div>\n <div>\n <s-button\n (click)=\"removeItem()\"\n (keydown.enter)=\"removeItem()\"\n position=\"normal\"\n type=\"secondary\"\n [disabled]=\"disabledButtonRight()\"\n [pill]=\"true\"\n ><s-icon-mat><span class=\"material-symbols-outlined\"> {{ config.additionButton ? 'remove' : 'arrow_back' }} </span></s-icon-mat></s-button\n >\n </div>\n </div>\n <div class=\"s-table-double__body__right\">\n <s-table-complete\n [config]=\"config.tableRightConfig\"\n (actionEvent)=\"action(false)\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, false)\"\n (checkAllEvent)=\"checkAllEvent($event, false)\"\n (deleteEvent)=\"delete(false)\"\n (emptyEvent)=\"empty(false)\"\n (filterEvent)=\"filter($event, false)\"\n (multiSelectEvent)=\"multiSelect($event, false)\"\n (orderByEvent)=\"orderBy($event, false)\"\n (pageEvent)=\"page($event, false)\"\n (paginationEvent)=\"paginationEmitter($event, false)\"\n (pillButtonEvent)=\"pillButton(false)\"\n (scrollEvent)=\"onScroll(false)\"\n (searchEvent)=\"search($event, false)\">\n @if (config.dragAndDrop) {\n @for (item of config.tableRightItems; track item) {\n <s-list\n [size]=\"'xs'\"\n [attr.data-item-id]=\"item.id\"\n [draggable]=\"true\"\n [selected]=\"item.selectedCheckbox\"\n (dragstart)=\"onDragStart($event, item.id)\"\n (dragover)=\"onDragOver($event, item.id)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event, item.id, false)\"\n (click)=\"selectItem(item.id, false)\">\n <div class=\"s-table-double__drag\">\n <h5 class=\"ml-2\">{{ item.name }}</h5>\n @if (item.iconAction) {\n <div class=\"s-table-double__drag-icon\">\n <s-icon-mat (click)=\"iconAction(item.id, false)\">{{ item.iconAction }}</s-icon-mat>\n </div>\n }\n </div>\n </s-list>\n }\n } @else {\n @for (item of config.tableRightItems; track item) {\n <tr [ngClass]=\"{ active: item.itemSelected }\" (click)=\"rowClick(item, false)\">\n <td\n class=\"s-table-double__tree-cell\"\n [class.s-table-double__tree-cell--tree]=\"config.isTreeMode\"\n [attr.colspan]=\"config.isTreeMode ? config.tableRightConfig.columns.length - (config.showOrderButtons ? 1 : 0) : null\">\n <div class=\"s-table-double__tree-cell-content\" [ngClass]=\"getTreeLevelClass(item)\">\n @if (config.isTreeMode && item.hasChildren) {\n <s-icon-mat\n class=\"s-table-double__tree-toggle\"\n [class.s-table-double__tree-toggle--expanded]=\"item.expanded\"\n (click)=\"toggleExpand($event, item.id)\">\n <span class=\"material-symbols-outlined\">chevron_right</span>\n </s-icon-mat>\n } @else if (config.isTreeMode) {\n <span class=\"s-table-double__tree-spacer\"></span>\n }\n <input type=\"checkbox\" [(ngModel)]=\"item.selectedCheckbox\" (click)=\"$event.stopPropagation()\" (change)=\"changeCheckbox()\" />\n @if (config.isTreeMode) {\n <span class=\"s-table-double__tree-name\">{{ item.name }}</span>\n }\n </div>\n </td>\n @for (column of config.tableRightConfig.columns; track column) {\n @if (column.id !== 'checkbox' && column.id !== undefined && !(config.isTreeMode && column.id === 'name') && column.id !== 'actions') {\n <td>{{ item[column.id] }}</td>\n }\n }\n @if (config.showOrderButtons) {\n <td class=\"s-table-double__order-actions\" (click)=\"$event.stopPropagation()\">\n <s-table-actions-buttons\n [tableActionsButtons]=\"getOrderButtons(item)\"\n (clickButtonEvent)=\"onOrderButtonClick($event, item.id)\">\n </s-table-actions-buttons>\n </td>\n }\n </tr>\n }\n }\n </s-table-complete>\n </div>\n </div>\n</div>\n", styles: [".s-table-double__body{display:flex;gap:.625rem}.s-table-double__body .s-tablet tr{cursor:pointer;-webkit-user-select:none;user-select:none}.s-table-double__body .s-tablet tr:hover{background-color:var(--primary-200)}.s-table-double__body .s-tablet tr.active{background-color:var(--neutrals-1100)}.s-table-double__body__left{flex:5}.s-table-double__body__middle{display:flex;flex-direction:column;gap:.625rem;justify-content:center;padding:1.25rem;background-color:var(--primary-100);border-radius:.5rem}.s-table-double__body__right{flex:5}.s-table-double .s-table-double__tree-cell{padding-left:0!important}.s-table-double__tree-cell-content{display:flex;align-items:center;gap:.5rem}.s-table-double .s-table-double__tree-cell.s-table-double__tree-cell--tree__list{margin:.5rem}.s-table-double .s-table-double__tree-cell.s-table-double__tree-cell--tree__drag{display:flex;justify-content:space-between;width:100%}.s-table-double .s-table-double__tree-cell.s-table-double__tree-cell--tree__drag-icon{color:var(--primary-600)}.s-table-double .s-table-double__tree-cell.s-table-double__tree-cell--tree__drag-icon:hover{cursor:pointer;color:var(--secondary-600)}.s-table-double .s-table-double__tree-level-0{padding-left:11px!important}.s-table-double .s-table-double__tree-level-1{padding-left:35px!important}.s-table-double .s-table-double__tree-level-2{padding-left:59px!important}.s-table-double .s-table-double__tree-level-3{padding-left:83px!important}.s-table-double .s-table-double__tree-level-4{padding-left:107px!important}.s-table-double .s-table-double__tree-level-5{padding-left:131px!important}.s-table-double .s-table-double__tree-level-6{padding-left:155px!important}.s-table-double .s-table-double__tree-level-7{padding-left:179px!important}.s-table-double .s-table-double__tree-level-8{padding-left:203px!important}.s-table-double .s-table-double__tree-level-9{padding-left:227px!important}.s-table-double .s-table-double__tree-level-10{padding-left:251px!important}.s-table-double .s-table-double__tree-level-11{padding-left:275px!important}.s-table-double .s-table-double__tree-level-12{padding-left:299px!important}.s-table-double .s-table-double__tree-level-13{padding-left:323px!important}.s-table-double .s-table-double__tree-level-14{padding-left:347px!important}.s-table-double .s-table-double__tree-level-15{padding-left:371px!important}.s-table-double .s-table-double__tree-level-16{padding-left:395px!important}.s-table-double .s-table-double__tree-level-17{padding-left:419px!important}.s-table-double .s-table-double__tree-level-18{padding-left:443px!important}.s-table-double .s-table-double__tree-level-19{padding-left:467px!important}.s-table-double .s-table-double__tree-level-20{padding-left:491px!important}.s-table-double__tree-toggle{cursor:pointer;transition:transform .2s ease;display:inline-flex;align-items:center;justify-content:center;color:var(--neutrals-600);font-size:1.25rem}.s-table-double__tree-toggle:hover{color:var(--primary-600)}.s-table-double__tree-toggle--expanded{transform:rotate(90deg)}.s-table-double__tree-spacer{display:inline-block;width:24px}.s-table-double__tree-name{margin-left:.25rem;white-space:nowrap;cursor:pointer;flex:1}.s-table-double .s-table-double__drag{display:flex;justify-content:space-between;color:var(--primary-600)}.s-table-double__order-actions{width:1px;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: STableCompleteModule }, { kind: "component", type: TableCompleteComponent, selector: "s-table-complete", inputs: ["config"], outputs: ["actionEvent", "checkAllEvent", "deleteEvent", "emptyEvent", "filterEvent", "orderByEvent", "pageEvent", "paginationEvent", "multiSelectEvent", "pillButtonEvent", "selectEvent", "searchEvent", "bottomStatusBarEvent", "scrollEvent"] }, { kind: "ngmodule", type: SButtonModule }, { kind: "component", type: SButtonComponent, selector: "s-button", inputs: ["disabled", "pill", "size", "invert", "type", "loading", "position", "theme", "active"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SIconMaterialModule }, { kind: "component", type: SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "ngmodule", type: SListModule }, { kind: "component", type: SListComponent, selector: "s-list", inputs: ["disabled", "selected", "size"] }, { kind: "ngmodule", type: TableActionsButtonsModule }, { kind: "component", type: TableActionsButtonsComponent, selector: "s-table-actions-buttons", inputs: ["tableActionsButtons"], outputs: ["clickButtonEvent"] }], encapsulation: i0.ViewEncapsulation.None }); }
7212
7390
  }
7213
7391
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STableDoubleComponent, decorators: [{
7214
7392
  type: Component,
7215
- args: [{ selector: 's-table-double', standalone: true, imports: [CommonModule, STableCompleteModule, SButtonModule, FormsModule, SIconMaterialModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"s-table-double\">\n <div class=\"s-table-double__header\"></div>\n <div class=\"s-table-double__body\">\n <div class=\"s-table-double__body__left\">\n <s-table-complete\n [config]=\"config.tableLeftConfig\"\n (actionEvent)=\"action('Left')\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, 'Left')\"\n (checkAllEvent)=\"checkAllEvent($event, 'Left')\"\n (deleteEvent)=\"delete('Left')\"\n (emptyEvent)=\"empty('Left')\"\n (filterEvent)=\"filter($event, 'Left')\"\n (multiSelectEvent)=\"multiSelect($event, 'Left')\"\n (orderByEvent)=\"orderBy($event, 'Left')\"\n (pageEvent)=\"page($event, 'Left')\"\n (paginationEvent)=\"paginationEmitter($event, 'Left')\"\n (pillButtonEvent)=\"pillButton('Left')\"\n (scrollEvent)=\"onScroll('Left')\"\n (searchEvent)=\"search($event, 'Left')\">\n @for (item of config.tableLeftItems; track item) {\n <tr [ngClass]=\"{ active: item.selected }\">\n <td>\n <input type=\"checkbox\" (change)=\"changeCheckbox()\" [(ngModel)]=\"item.selected\" />\n </td>\n @for (column of config.tableLeftConfig.columns; track column) {\n @if (column.id !== 'checkbox' && column.id !== undefined) {\n <td>{{ item[column.id] }}</td>\n }\n }\n </tr>\n }\n </s-table-complete>\n </div>\n <div class=\"s-table-double__body__middle\">\n <div>\n <s-button\n (click)=\"addItem()\"\n (keydown.enter)=\"addItem()\"\n position=\"normal\"\n [disabled]=\"disabledButtonLeft()\"\n [pill]=\"true\"\n ><s-icon-mat><span class=\"material-symbols-outlined\"> arrow_forward </span></s-icon-mat></s-button\n >\n </div>\n <div>\n <s-button\n (click)=\"removeItem()\"\n (keydown.enter)=\"removeItem()\"\n position=\"normal\"\n type=\"secondary\"\n [disabled]=\"disabledButtonRight()\"\n [pill]=\"true\"\n ><s-icon-mat><span class=\"material-symbols-outlined\"> arrow_back </span></s-icon-mat></s-button\n >\n </div>\n </div>\n <div class=\"s-table-double__body__right\">\n <s-table-complete\n [config]=\"config.tableRightConfig\"\n (actionEvent)=\"action('Right')\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, 'Right')\"\n (checkAllEvent)=\"checkAllEvent($event, 'Right')\"\n (deleteEvent)=\"delete('Right')\"\n (emptyEvent)=\"empty('Right')\"\n (filterEvent)=\"filter($event, 'Right')\"\n (multiSelectEvent)=\"multiSelect($event, 'Right')\"\n (orderByEvent)=\"orderBy($event, 'Right')\"\n (pageEvent)=\"page($event, 'Right')\"\n (paginationEvent)=\"paginationEmitter($event, 'Right')\"\n (pillButtonEvent)=\"pillButton('Right')\"\n (scrollEvent)=\"onScroll('Right')\"\n (searchEvent)=\"search($event, 'Right')\">\n @for (item of config.tableRightItems; track item) {\n <tr [ngClass]=\"{ active: item.selected }\">\n <td>\n <input type=\"checkbox\" (change)=\"changeCheckbox()\" [(ngModel)]=\"item.selected\" />\n </td>\n @for (column of config.tableRightConfig.columns; track column) {\n @if (column.id !== 'checkbox' && column.id !== undefined) {\n <td>{{ item[column.id] }}</td>\n }\n }\n </tr>\n }\n </s-table-complete>\n </div>\n </div>\n</div>\n", styles: [".s-table-double{margin-bottom:1rem}.s-table-double__body{display:flex;gap:.625rem}.s-table-double__body .s-tablet tr{cursor:pointer}.s-table-double__body .s-tablet tr:hover{background-color:var(--primary-200)}.s-table-double__body .s-tablet tr.active{background-color:var(--neutrals-1100)}.s-table-double__body__left{flex:5}.s-table-double__body__middle{display:flex;flex-direction:column;gap:.625rem;justify-content:center;padding:1.25rem;background-color:var(--primary-100);border-radius:.5rem}.s-table-double__body__right{flex:5}\n"] }]
7393
+ args: [{ selector: 's-table-double', standalone: true, imports: [CommonModule, STableCompleteModule, SButtonModule, FormsModule, SIconMaterialModule, SListModule, TableActionsButtonsModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"s-table-double\">\n <div class=\"s-table-double__header\"></div>\n <div class=\"s-table-double__body\">\n <div class=\"s-table-double__body__left\">\n <s-table-complete\n [config]=\"config.tableLeftConfig\"\n (actionEvent)=\"action(true)\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, true)\"\n (checkAllEvent)=\"checkAllEvent($event, true)\"\n (deleteEvent)=\"delete(true)\"\n (emptyEvent)=\"empty(true)\"\n (filterEvent)=\"filter($event, true)\"\n (multiSelectEvent)=\"multiSelect($event, true)\"\n (orderByEvent)=\"orderBy($event, true)\"\n (pageEvent)=\"page($event, true)\"\n (paginationEvent)=\"paginationEmitter($event, true)\"\n (pillButtonEvent)=\"pillButton(true)\"\n (scrollEvent)=\"onScroll(true)\"\n (searchEvent)=\"search($event, true)\">\n @if (config.dragAndDrop) {\n @for (item of config.tableLeftItems; track item) {\n <div class=\"s-table-double__list\">\n <s-list\n [size]=\"'xs'\"\n [attr.data-item-id]=\"item.id\"\n [draggable]=\"true\"\n [selected]=\"item.selectedCheckbox\"\n (dragstart)=\"onDragStart($event, item.id)\"\n (dragover)=\"onDragOver($event, item.id)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event, item.id, true)\"\n (click)=\"selectItem(item.id, true)\">\n <div class=\"s-table-double__drag\">\n <h5 class=\"ml-2\">{{ item.name }}</h5>\n @if (item.iconAction) {\n <div class=\"s-table-double__drag-icon\">\n <s-icon-mat (click)=\"iconAction(item.id, true)\">{{ item.iconAction }}</s-icon-mat>\n </div>\n }\n </div>\n </s-list>\n </div>\n }\n } @else {\n @for (item of config.tableLeftItems; track item) {\n <tr [ngClass]=\"{ active: !config.disableLeftRowSelection && item.itemSelected }\" (click)=\"!config.disableLeftRowSelection && rowClick(item, true)\">\n <td (click)=\"$event.stopPropagation()\">\n <input type=\"checkbox\" [(ngModel)]=\"item.selectedCheckbox\" (change)=\"changeCheckbox()\" />\n </td>\n @for (column of config.tableLeftConfig.columns; track column) {\n @if (column.id !== 'checkbox' && column.id !== undefined) {\n <td>{{ item[column.id] }}</td>\n }\n }\n </tr>\n }\n }\n </s-table-complete>\n </div>\n <div class=\"s-table-double__body__middle\">\n <div>\n <s-button\n (click)=\"addItem()\"\n (keydown.enter)=\"addItem()\"\n position=\"normal\"\n [disabled]=\"disabledButtonLeft()\"\n [pill]=\"true\"\n ><s-icon-mat><span class=\"material-symbols-outlined\"> {{ config.additionButton ? 'add' : 'arrow_forward' }} </span></s-icon-mat></s-button\n >\n </div>\n <div>\n <s-button\n (click)=\"removeItem()\"\n (keydown.enter)=\"removeItem()\"\n position=\"normal\"\n type=\"secondary\"\n [disabled]=\"disabledButtonRight()\"\n [pill]=\"true\"\n ><s-icon-mat><span class=\"material-symbols-outlined\"> {{ config.additionButton ? 'remove' : 'arrow_back' }} </span></s-icon-mat></s-button\n >\n </div>\n </div>\n <div class=\"s-table-double__body__right\">\n <s-table-complete\n [config]=\"config.tableRightConfig\"\n (actionEvent)=\"action(false)\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, false)\"\n (checkAllEvent)=\"checkAllEvent($event, false)\"\n (deleteEvent)=\"delete(false)\"\n (emptyEvent)=\"empty(false)\"\n (filterEvent)=\"filter($event, false)\"\n (multiSelectEvent)=\"multiSelect($event, false)\"\n (orderByEvent)=\"orderBy($event, false)\"\n (pageEvent)=\"page($event, false)\"\n (paginationEvent)=\"paginationEmitter($event, false)\"\n (pillButtonEvent)=\"pillButton(false)\"\n (scrollEvent)=\"onScroll(false)\"\n (searchEvent)=\"search($event, false)\">\n @if (config.dragAndDrop) {\n @for (item of config.tableRightItems; track item) {\n <s-list\n [size]=\"'xs'\"\n [attr.data-item-id]=\"item.id\"\n [draggable]=\"true\"\n [selected]=\"item.selectedCheckbox\"\n (dragstart)=\"onDragStart($event, item.id)\"\n (dragover)=\"onDragOver($event, item.id)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event, item.id, false)\"\n (click)=\"selectItem(item.id, false)\">\n <div class=\"s-table-double__drag\">\n <h5 class=\"ml-2\">{{ item.name }}</h5>\n @if (item.iconAction) {\n <div class=\"s-table-double__drag-icon\">\n <s-icon-mat (click)=\"iconAction(item.id, false)\">{{ item.iconAction }}</s-icon-mat>\n </div>\n }\n </div>\n </s-list>\n }\n } @else {\n @for (item of config.tableRightItems; track item) {\n <tr [ngClass]=\"{ active: item.itemSelected }\" (click)=\"rowClick(item, false)\">\n <td\n class=\"s-table-double__tree-cell\"\n [class.s-table-double__tree-cell--tree]=\"config.isTreeMode\"\n [attr.colspan]=\"config.isTreeMode ? config.tableRightConfig.columns.length - (config.showOrderButtons ? 1 : 0) : null\">\n <div class=\"s-table-double__tree-cell-content\" [ngClass]=\"getTreeLevelClass(item)\">\n @if (config.isTreeMode && item.hasChildren) {\n <s-icon-mat\n class=\"s-table-double__tree-toggle\"\n [class.s-table-double__tree-toggle--expanded]=\"item.expanded\"\n (click)=\"toggleExpand($event, item.id)\">\n <span class=\"material-symbols-outlined\">chevron_right</span>\n </s-icon-mat>\n } @else if (config.isTreeMode) {\n <span class=\"s-table-double__tree-spacer\"></span>\n }\n <input type=\"checkbox\" [(ngModel)]=\"item.selectedCheckbox\" (click)=\"$event.stopPropagation()\" (change)=\"changeCheckbox()\" />\n @if (config.isTreeMode) {\n <span class=\"s-table-double__tree-name\">{{ item.name }}</span>\n }\n </div>\n </td>\n @for (column of config.tableRightConfig.columns; track column) {\n @if (column.id !== 'checkbox' && column.id !== undefined && !(config.isTreeMode && column.id === 'name') && column.id !== 'actions') {\n <td>{{ item[column.id] }}</td>\n }\n }\n @if (config.showOrderButtons) {\n <td class=\"s-table-double__order-actions\" (click)=\"$event.stopPropagation()\">\n <s-table-actions-buttons\n [tableActionsButtons]=\"getOrderButtons(item)\"\n (clickButtonEvent)=\"onOrderButtonClick($event, item.id)\">\n </s-table-actions-buttons>\n </td>\n }\n </tr>\n }\n }\n </s-table-complete>\n </div>\n </div>\n</div>\n", styles: [".s-table-double__body{display:flex;gap:.625rem}.s-table-double__body .s-tablet tr{cursor:pointer;-webkit-user-select:none;user-select:none}.s-table-double__body .s-tablet tr:hover{background-color:var(--primary-200)}.s-table-double__body .s-tablet tr.active{background-color:var(--neutrals-1100)}.s-table-double__body__left{flex:5}.s-table-double__body__middle{display:flex;flex-direction:column;gap:.625rem;justify-content:center;padding:1.25rem;background-color:var(--primary-100);border-radius:.5rem}.s-table-double__body__right{flex:5}.s-table-double .s-table-double__tree-cell{padding-left:0!important}.s-table-double__tree-cell-content{display:flex;align-items:center;gap:.5rem}.s-table-double .s-table-double__tree-cell.s-table-double__tree-cell--tree__list{margin:.5rem}.s-table-double .s-table-double__tree-cell.s-table-double__tree-cell--tree__drag{display:flex;justify-content:space-between;width:100%}.s-table-double .s-table-double__tree-cell.s-table-double__tree-cell--tree__drag-icon{color:var(--primary-600)}.s-table-double .s-table-double__tree-cell.s-table-double__tree-cell--tree__drag-icon:hover{cursor:pointer;color:var(--secondary-600)}.s-table-double .s-table-double__tree-level-0{padding-left:11px!important}.s-table-double .s-table-double__tree-level-1{padding-left:35px!important}.s-table-double .s-table-double__tree-level-2{padding-left:59px!important}.s-table-double .s-table-double__tree-level-3{padding-left:83px!important}.s-table-double .s-table-double__tree-level-4{padding-left:107px!important}.s-table-double .s-table-double__tree-level-5{padding-left:131px!important}.s-table-double .s-table-double__tree-level-6{padding-left:155px!important}.s-table-double .s-table-double__tree-level-7{padding-left:179px!important}.s-table-double .s-table-double__tree-level-8{padding-left:203px!important}.s-table-double .s-table-double__tree-level-9{padding-left:227px!important}.s-table-double .s-table-double__tree-level-10{padding-left:251px!important}.s-table-double .s-table-double__tree-level-11{padding-left:275px!important}.s-table-double .s-table-double__tree-level-12{padding-left:299px!important}.s-table-double .s-table-double__tree-level-13{padding-left:323px!important}.s-table-double .s-table-double__tree-level-14{padding-left:347px!important}.s-table-double .s-table-double__tree-level-15{padding-left:371px!important}.s-table-double .s-table-double__tree-level-16{padding-left:395px!important}.s-table-double .s-table-double__tree-level-17{padding-left:419px!important}.s-table-double .s-table-double__tree-level-18{padding-left:443px!important}.s-table-double .s-table-double__tree-level-19{padding-left:467px!important}.s-table-double .s-table-double__tree-level-20{padding-left:491px!important}.s-table-double__tree-toggle{cursor:pointer;transition:transform .2s ease;display:inline-flex;align-items:center;justify-content:center;color:var(--neutrals-600);font-size:1.25rem}.s-table-double__tree-toggle:hover{color:var(--primary-600)}.s-table-double__tree-toggle--expanded{transform:rotate(90deg)}.s-table-double__tree-spacer{display:inline-block;width:24px}.s-table-double__tree-name{margin-left:.25rem;white-space:nowrap;cursor:pointer;flex:1}.s-table-double .s-table-double__drag{display:flex;justify-content:space-between;color:var(--primary-600)}.s-table-double__order-actions{width:1px;white-space:nowrap}\n"] }]
7216
7394
  }], propDecorators: { config: [{
7217
7395
  type: Input
7218
7396
  }], actionPositionEvent: [{
@@ -7243,11 +7421,269 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
7243
7421
  type: Output
7244
7422
  }], selectPositionEvent: [{
7245
7423
  type: Output
7424
+ }], rowSelectPositionEvent: [{
7425
+ type: Output
7426
+ }], actionEvent: [{
7427
+ type: Output
7428
+ }], toggleExpandEvent: [{
7429
+ type: Output
7430
+ }], reorderItemEvent: [{
7431
+ type: Output
7432
+ }] } });
7433
+
7434
+ class STableDoubleCompleteComponent {
7435
+ constructor() {
7436
+ this.updateEvent = new EventEmitter();
7437
+ this.actionPositionEvent = new EventEmitter();
7438
+ this.bottomStatusBarPositionEvent = new EventEmitter();
7439
+ this.checkAllPositionEvent = new EventEmitter();
7440
+ this.deletePositionEvent = new EventEmitter();
7441
+ this.emptyPositionEvent = new EventEmitter();
7442
+ this.filterPositionEvent = new EventEmitter();
7443
+ this.multiSelectPositionEvent = new EventEmitter();
7444
+ this.orderByPositionEvent = new EventEmitter();
7445
+ this.pillButtonPositionEvent = new EventEmitter();
7446
+ this.scrollPositionEvent = new EventEmitter();
7447
+ this.selectPositionEvent = new EventEmitter();
7448
+ this.rightTableState = [];
7449
+ this.expandedNodes = new Map();
7450
+ }
7451
+ ngOnInit() {
7452
+ this.rightTableState = [
7453
+ ...(this.config.tableConfig.tableRightItems ?? []),
7454
+ ];
7455
+ const selectedTab = this.config.tabs.find(t => t.selected);
7456
+ if (selectedTab) {
7457
+ this.setActiveTab(selectedTab);
7458
+ }
7459
+ }
7460
+ onTabSelect(tab) {
7461
+ this.setActiveTab(tab);
7462
+ }
7463
+ setActiveTab(tab) {
7464
+ this.activeTabKey = String(tab.value ?? tab.text);
7465
+ const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];
7466
+ const tableLeftItems = this.mapToTableDoubleItems(leftItems);
7467
+ let tableRightItems = this.mapToTableDoubleItems(this.rightTableState);
7468
+ if (this.config.treeMode) {
7469
+ tableRightItems = this.flattenTree(this.buildTree(this.rightTableState));
7470
+ }
7471
+ this.tableDoubleAdapter = this.buildTableDoubleAdapter(tableLeftItems, tableRightItems);
7472
+ }
7473
+ onUpdateTables(event) {
7474
+ const prevRightIds = new Set(this.rightTableState.map(i => i.id));
7475
+ const sourceLeft = this.config.itemsByTab[this.activeTabKey] ?? [];
7476
+ const selectedRightItems = event.tableRightItems.filter(i => i.itemSelected);
7477
+ const parentId = this.config.treeMode && selectedRightItems.length === 1
7478
+ ? selectedRightItems[0].id
7479
+ : null;
7480
+ const nextRight = event.tableRightItems.map(item => {
7481
+ const prev = this.rightTableState.find(r => r.id === item.id);
7482
+ const fromLeft = sourceLeft.find(l => l.id === item.id);
7483
+ return {
7484
+ ...(prev ?? fromLeft ?? {}),
7485
+ id: item.id,
7486
+ name: item.name,
7487
+ selectedCheckbox: !!item.selectedCheckbox,
7488
+ parentId: prev?.parentId ?? null,
7489
+ };
7490
+ });
7491
+ const addedItems = nextRight.filter(i => !prevRightIds.has(i.id));
7492
+ if (this.config.treeMode && parentId) {
7493
+ addedItems.forEach(item => {
7494
+ item.parentId = parentId;
7495
+ });
7496
+ }
7497
+ this.rightTableState = nextRight;
7498
+ this.resetSelections();
7499
+ this.refreshTables();
7500
+ }
7501
+ refreshTables() {
7502
+ const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];
7503
+ const tableLeftItems = this.mapToTableDoubleItems(leftItems);
7504
+ let tableRightItems = this.mapToTableDoubleItems(this.rightTableState);
7505
+ if (this.config.treeMode) {
7506
+ tableRightItems = this.flattenTree(this.buildTree(this.rightTableState));
7507
+ }
7508
+ this.tableDoubleAdapter = this.buildTableDoubleAdapter(tableLeftItems, tableRightItems);
7509
+ this.updateEvent.emit({
7510
+ tabKey: this.activeTabKey,
7511
+ tableLeftItems,
7512
+ tableRightItems,
7513
+ });
7514
+ }
7515
+ buildTableDoubleAdapter(leftItems, rightItems) {
7516
+ const rightColumns = [...this.config.tableConfig.tableRightConfig.columns];
7517
+ if (this.config.showOrderButtons && !rightColumns.some(c => c.id === 'actions')) {
7518
+ rightColumns.push({ id: 'actions', title: '' });
7519
+ }
7520
+ return {
7521
+ additionButton: true,
7522
+ isTreeMode: !!this.config.treeMode,
7523
+ showOrderButtons: !!this.config.showOrderButtons,
7524
+ disableLeftRowSelection: true,
7525
+ tableLeftConfig: {
7526
+ ...this.config.tableConfig.tableLeftConfig,
7527
+ totalItems: leftItems.length,
7528
+ isTreeMode: false,
7529
+ configBottomStatusBar: signal({
7530
+ counter: leftItems.filter(i => i.selectedCheckbox).length,
7531
+ total: leftItems.length,
7532
+ disabled: leftItems.length === 0,
7533
+ }),
7534
+ },
7535
+ tableRightConfig: {
7536
+ ...this.config.tableConfig.tableRightConfig,
7537
+ columns: rightColumns,
7538
+ totalItems: rightItems.length,
7539
+ isTreeMode: !!this.config.treeMode,
7540
+ configBottomStatusBar: signal({
7541
+ counter: rightItems.filter(i => i.selectedCheckbox).length,
7542
+ total: rightItems.length,
7543
+ disabled: rightItems.length === 0,
7544
+ }),
7545
+ },
7546
+ tableLeftItems: leftItems,
7547
+ tableRightItems: rightItems,
7548
+ };
7549
+ }
7550
+ mapToTableDoubleItems(items) {
7551
+ return items.map((item, index) => ({
7552
+ ...item,
7553
+ name: item.name ?? '',
7554
+ selectedCheckbox: item.selectedCheckbox ?? false,
7555
+ }));
7556
+ }
7557
+ buildTree(items) {
7558
+ const map = new Map();
7559
+ const roots = [];
7560
+ items.forEach(item => {
7561
+ map.set(item.id, { ...item, children: [] });
7562
+ });
7563
+ map.forEach(item => {
7564
+ if (item.parentId) {
7565
+ const parent = map.get(item.parentId);
7566
+ if (parent)
7567
+ parent.children.push(item);
7568
+ }
7569
+ else {
7570
+ roots.push(item);
7571
+ }
7572
+ });
7573
+ return roots;
7574
+ }
7575
+ flattenTree(nodes, level = 0) {
7576
+ let result = [];
7577
+ for (let i = 0; i < nodes.length; i++) {
7578
+ const node = nodes[i];
7579
+ const hasChildren = !!node.children?.length;
7580
+ const isExpanded = this.expandedNodes.get(node.id) ?? true;
7581
+ result.push({
7582
+ id: node.id,
7583
+ name: node.name ?? '',
7584
+ selectedCheckbox: !!node.selectedCheckbox,
7585
+ parentId: node.parentId ?? null,
7586
+ level: level,
7587
+ expanded: isExpanded,
7588
+ hasChildren: hasChildren,
7589
+ });
7590
+ if (hasChildren && isExpanded && node.children) {
7591
+ result = result.concat(this.flattenTree(node.children, level + 1));
7592
+ }
7593
+ }
7594
+ return result;
7595
+ }
7596
+ resetSelections() {
7597
+ const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];
7598
+ leftItems.forEach(i => {
7599
+ i.selectedCheckbox = false;
7600
+ i.itemSelected = false;
7601
+ });
7602
+ this.rightTableState.forEach(i => {
7603
+ i.selectedCheckbox = false;
7604
+ i.itemSelected = false;
7605
+ });
7606
+ }
7607
+ toggleNodeExpansion(nodeId) {
7608
+ const currentState = this.expandedNodes.get(nodeId) ?? true;
7609
+ this.expandedNodes.set(nodeId, !currentState);
7610
+ this.refreshTables();
7611
+ }
7612
+ onReorderItem(event) {
7613
+ const { itemId, direction } = event;
7614
+ const item = this.rightTableState.find(i => i.id === itemId);
7615
+ if (!item)
7616
+ return;
7617
+ const parentId = item.parentId ?? null;
7618
+ const siblings = this.rightTableState.filter(i => (i.parentId ?? null) === parentId);
7619
+ const siblingIndex = siblings.findIndex(i => i.id === itemId);
7620
+ if (siblingIndex === -1)
7621
+ return;
7622
+ let targetIndex;
7623
+ switch (direction) {
7624
+ case 'top':
7625
+ targetIndex = 0;
7626
+ break;
7627
+ case 'up':
7628
+ targetIndex = siblingIndex - 1;
7629
+ break;
7630
+ case 'down':
7631
+ targetIndex = siblingIndex + 1;
7632
+ break;
7633
+ case 'bottom':
7634
+ targetIndex = siblings.length - 1;
7635
+ break;
7636
+ default:
7637
+ return;
7638
+ }
7639
+ if (targetIndex < 0 || targetIndex >= siblings.length || targetIndex === siblingIndex)
7640
+ return;
7641
+ siblings.splice(siblingIndex, 1);
7642
+ siblings.splice(targetIndex, 0, item);
7643
+ this.rightTableState = this.rightTableState.filter(i => (i.parentId ?? null) !== parentId);
7644
+ const insertRef = parentId
7645
+ ? this.rightTableState.findIndex(i => i.id === parentId) + 1
7646
+ : 0;
7647
+ this.rightTableState.splice(insertRef, 0, ...siblings);
7648
+ this.refreshTables();
7649
+ }
7650
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STableDoubleCompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7651
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: STableDoubleCompleteComponent, isStandalone: true, selector: "s-table-double-complete", inputs: { config: "config" }, outputs: { updateEvent: "updateEvent", actionPositionEvent: "actionPositionEvent", bottomStatusBarPositionEvent: "bottomStatusBarPositionEvent", checkAllPositionEvent: "checkAllPositionEvent", deletePositionEvent: "deletePositionEvent", emptyPositionEvent: "emptyPositionEvent", filterPositionEvent: "filterPositionEvent", multiSelectPositionEvent: "multiSelectPositionEvent", orderByPositionEvent: "orderByPositionEvent", pillButtonPositionEvent: "pillButtonPositionEvent", scrollPositionEvent: "scrollPositionEvent", selectPositionEvent: "selectPositionEvent" }, ngImport: i0, template: "<div class=\"s-table-double-complete\">\n <s-tabs\n [tabs]=\"config.tabs\"\n [configTabs]=\"config.configTabs\"\n (eventSelect)=\"onTabSelect($event)\">\n </s-tabs>\n\n <s-table-double\n [config]=\"tableDoubleAdapter\"\n (eventUpdateTables)=\"onUpdateTables($event)\"\n (actionPositionEvent)=\"actionPositionEvent.emit($event)\"\n (bottomStatusBarPositionEvent)=\"bottomStatusBarPositionEvent.emit($event)\"\n (checkAllPositionEvent)=\"checkAllPositionEvent.emit($event)\"\n (deletePositionEvent)=\"deletePositionEvent.emit($event)\"\n (emptyPositionEvent)=\"emptyPositionEvent.emit($event)\"\n (filterPositionEvent)=\"filterPositionEvent.emit($event)\"\n (multiSelectPositionEvent)=\"multiSelectPositionEvent.emit($event)\"\n (orderByPositionEvent)=\"orderByPositionEvent.emit($event)\"\n (pillButtonPositionEvent)=\"pillButtonPositionEvent.emit($event)\"\n (scrollPositionEvent)=\"scrollPositionEvent.emit($event)\"\n (toggleExpandEvent)=\"toggleNodeExpansion($event)\"\n (reorderItemEvent)=\"onReorderItem($event)\">\n</s-table-double>\n</div>\n", styles: [".s-table-double-complete{display:flex;flex-direction:row;gap:.5rem}s-table-double{width:100%}s-tabs{width:15%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: STabsModule }, { kind: "component", type: STabsComponent, selector: "s-tabs", inputs: ["tabs", "configTabs"], outputs: ["eventSelect"] }, { kind: "component", type: STableDoubleComponent, selector: "s-table-double", inputs: ["config"], outputs: ["actionPositionEvent", "bottomStatusBarPositionEvent", "checkAllPositionEvent", "deletePositionEvent", "emptyPositionEvent", "eventUpdateTables", "filterPositionEvent", "multiSelectPositionEvent", "orderByPositionEvent", "pagePositionEvent", "paginationPositionEvent", "pillButtonPositionEvent", "scrollPositionEvent", "selectPositionEvent", "rowSelectPositionEvent", "actionEvent", "toggleExpandEvent", "reorderItemEvent"] }], encapsulation: i0.ViewEncapsulation.None }); }
7652
+ }
7653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STableDoubleCompleteComponent, decorators: [{
7654
+ type: Component,
7655
+ args: [{ selector: 's-table-double-complete', standalone: true, imports: [CommonModule, STabsModule, STableDoubleComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"s-table-double-complete\">\n <s-tabs\n [tabs]=\"config.tabs\"\n [configTabs]=\"config.configTabs\"\n (eventSelect)=\"onTabSelect($event)\">\n </s-tabs>\n\n <s-table-double\n [config]=\"tableDoubleAdapter\"\n (eventUpdateTables)=\"onUpdateTables($event)\"\n (actionPositionEvent)=\"actionPositionEvent.emit($event)\"\n (bottomStatusBarPositionEvent)=\"bottomStatusBarPositionEvent.emit($event)\"\n (checkAllPositionEvent)=\"checkAllPositionEvent.emit($event)\"\n (deletePositionEvent)=\"deletePositionEvent.emit($event)\"\n (emptyPositionEvent)=\"emptyPositionEvent.emit($event)\"\n (filterPositionEvent)=\"filterPositionEvent.emit($event)\"\n (multiSelectPositionEvent)=\"multiSelectPositionEvent.emit($event)\"\n (orderByPositionEvent)=\"orderByPositionEvent.emit($event)\"\n (pillButtonPositionEvent)=\"pillButtonPositionEvent.emit($event)\"\n (scrollPositionEvent)=\"scrollPositionEvent.emit($event)\"\n (toggleExpandEvent)=\"toggleNodeExpansion($event)\"\n (reorderItemEvent)=\"onReorderItem($event)\">\n</s-table-double>\n</div>\n", styles: [".s-table-double-complete{display:flex;flex-direction:row;gap:.5rem}s-table-double{width:100%}s-tabs{width:15%}\n"] }]
7656
+ }], propDecorators: { config: [{
7657
+ type: Input
7658
+ }], updateEvent: [{
7659
+ type: Output
7660
+ }], actionPositionEvent: [{
7661
+ type: Output
7662
+ }], bottomStatusBarPositionEvent: [{
7663
+ type: Output
7664
+ }], checkAllPositionEvent: [{
7665
+ type: Output
7666
+ }], deletePositionEvent: [{
7667
+ type: Output
7668
+ }], emptyPositionEvent: [{
7669
+ type: Output
7670
+ }], filterPositionEvent: [{
7671
+ type: Output
7672
+ }], multiSelectPositionEvent: [{
7673
+ type: Output
7674
+ }], orderByPositionEvent: [{
7675
+ type: Output
7676
+ }], pillButtonPositionEvent: [{
7677
+ type: Output
7678
+ }], scrollPositionEvent: [{
7679
+ type: Output
7680
+ }], selectPositionEvent: [{
7681
+ type: Output
7246
7682
  }] } });
7247
7683
 
7248
7684
  /**
7249
7685
  * Generated bundle index. Do not edit.
7250
7686
  */
7251
7687
 
7252
- export { ANIMATION, ANIMATION_CONFIG, ActionsButtons, ActionsButtonsType, AnimationComponent, BehaviorDto, CustomTooltipDirective, DataTypeDto, EmptyComponent, FieldOptionDto, FieldTemplateDto, FormFilledDto, FormFilledMetadataDto, FormFilledValueDto, FormGroupDto, FormLayoutDto, FormTypeDto, GridMultiInputsComponent, GridMultiInputsToolbarTopComponent, GroupFieldDto, GroupTemplateDto, ICON_INPUT, ICON_THEME, INPUTS_REGEX, INPUT_SIZE, INPUT_TYPE, ImageLoaderDirective, InputSearch, LinkedFieldDto, LocalstorageService, ModalTypeIcon, SAnimationModule, SAvatarComponent, SAvatarModule, SBadgeComponent, SBadgeModule, SBottomStatusBarComponent, SBreadcrumComponent, SBreadcrumModule, SButtonComponent, SButtonModule, SCalendar, SCalendarComponent, SCardComponent, SCardModule, SCheckData, SCheckbox, SCheckboxComponent, SCheckboxModule, SCheckboxOldComponent, SCollapseComponent, SCollapseModule, SColorComponent, SCompanyLogoComponent, SCompanyLogoModule, SContainerComponent, SContainerModule, SContentComponent, SContentModule, SDynamicFormComponent, SDynamicFormModule, SEmptyModule, SErrorControl, SFooterComponent, SFooterModule, SGridMultiInputsModule, SIcon, SIconMaterialComponent, SIconMaterialModule, SIconMenuComponent, SIconMenuModel, SIconMenuModule, SInput, SInputComponent, SInputModule, SInputNumber, SInputNumberComponent, SInputTextAreaComponent, SLinkComponent, SLinkModule, SListComponent, SListModule, SListSimpleComponent, SListSimpleModule, SMenuItemTitleComponent, SMenuMain, SMenuMainComponent, SMenuMainModule, SModalConfirmComponent, SModalConfirmService, SNavbarComponent, SNavbarModule, SNotificationComponent, SPaginationComponent, SPaginationModule, SPopupComponent, SPopupModule, SPrecodeComponent, SPrecodeModule, SProfileGroupComponent, SProfileGroupModule, SProgressbarComponent, SProgressbarModule, SRadioComponent, SRadioModule, SRangeComponent, SRedirectComponent, SSelect, SSelectComponent, SSelectModule, SSelectMultipleComponent, SSelectMultipleModel, SSelectMultipleOldComponent, SSelectSimpleComponent, SSelectSimpleModel, SSelectUser, SSidebarComponent, SSidebarModule, SSpinnerComponent, SSpinnerModule, SSubMenu, SSubMenuComponent, SSubMenuHeader, SSubMenuItem, SSubMenuModule, SSwitch, STableCompleteModule, STableDoubleComponent, STabletComponent, STabletModule, STabsComponent, STabsModule, STagComponent, STagModule, STemplate, STemplatePopup, STextArea, SThemeComponent, SThemeModule, SThumbnailComponent, SThumbnailModule, STime, STimeComponent, STimelineComponent, STimelineModule, SToastComponent, SToastModule, SToastService, SToggleSwitchComponent, SToggleSwitchModule, SToolbarTopComponent, SToolbarTopModule, STooltipComponent, STooltipModule, STranslatePipe, STranslateService, STreeListComponent, STreeListModule, SUser, SValidationError, SharedModule, SidebarStateService, SortableColumn, THEME, TableActionsButtonsComponent, TableActionsButtonsModule, TableCompleteComponent, ToggleSwitchFormComponent };
7688
+ export { ANIMATION, ANIMATION_CONFIG, ActionsButtons, ActionsButtonsType, AnimationComponent, BehaviorDto, CustomTooltipDirective, DataTypeDto, EmptyComponent, FieldOptionDto, FieldTemplateDto, FormFilledDto, FormFilledMetadataDto, FormFilledValueDto, FormGroupDto, FormLayoutDto, FormTypeDto, GridMultiInputsComponent, GridMultiInputsToolbarTopComponent, GroupFieldDto, GroupTemplateDto, ICON_INPUT, ICON_THEME, INPUTS_REGEX, INPUT_SIZE, INPUT_TYPE, ImageLoaderDirective, InputSearch, LinkedFieldDto, LocalstorageService, ModalTypeIcon, SAnimationModule, SAvatarComponent, SAvatarModule, SBadgeComponent, SBadgeModule, SBottomStatusBarComponent, SBreadcrumComponent, SBreadcrumModule, SButtonComponent, SButtonModule, SCalendar, SCalendarComponent, SCardComponent, SCardModule, SCheckData, SCheckbox, SCheckboxComponent, SCheckboxModule, SCheckboxOldComponent, SCollapseComponent, SCollapseModule, SColorComponent, SCompanyLogoComponent, SCompanyLogoModule, SContainerComponent, SContainerModule, SContentComponent, SContentModule, SDynamicFormComponent, SDynamicFormModule, SEmptyModule, SErrorControl, SFooterComponent, SFooterModule, SGridMultiInputsModule, SIcon, SIconMaterialComponent, SIconMaterialModule, SIconMenuComponent, SIconMenuModel, SIconMenuModule, SInput, SInputComponent, SInputModule, SInputNumber, SInputNumberComponent, SInputTextAreaComponent, SLinkComponent, SLinkModule, SListComponent, SListModule, SListSimpleComponent, SListSimpleModule, SMenuItemTitleComponent, SMenuMain, SMenuMainComponent, SMenuMainModule, SModalConfirmComponent, SModalConfirmService, SNavbarComponent, SNavbarModule, SNotificationComponent, SPaginationComponent, SPaginationModule, SPopupComponent, SPopupModule, SPrecodeComponent, SPrecodeModule, SProfileGroupComponent, SProfileGroupModule, SProgressbarComponent, SProgressbarModule, SRadioComponent, SRadioModule, SRedirectComponent, SSelect, SSelectComponent, SSelectModule, SSelectMultipleComponent, SSelectMultipleModel, SSelectMultipleOldComponent, SSelectSimpleComponent, SSelectSimpleModel, SSelectUser, SSidebarComponent, SSidebarModule, SSliderComponent, SSpinnerComponent, SSpinnerModule, SSubMenu, SSubMenuComponent, SSubMenuHeader, SSubMenuItem, SSubMenuModule, SSwitch, STableCompleteModule, STableDoubleCompleteComponent, STableDoubleComponent, STabletComponent, STabletModule, STabsComponent, STabsModule, STagComponent, STagModule, STemplate, STemplatePopup, STextArea, SThemeComponent, SThemeModule, SThumbnailComponent, SThumbnailModule, STime, STimeComponent, STimelineComponent, STimelineModule, SToastComponent, SToastModule, SToastService, SToggleSwitchComponent, SToggleSwitchModule, SToolbarTopComponent, SToolbarTopModule, STooltipComponent, STooltipModule, STranslatePipe, STranslateService, STreeListComponent, STreeListModule, SUser, SValidationError, SharedModule, SidebarStateService, SortableColumn, THEME, TableActionsButtonsComponent, TableActionsButtonsModule, TableCompleteComponent, ToggleSwitchFormComponent };
7253
7689
  //# sourceMappingURL=sidesys-generic-ui.mjs.map