@seniorsistemas/data-seniorx-core 2.2.0 → 2.3.0

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.
@@ -19,8 +19,6 @@ import * as i1$2 from '@angular/forms';
19
19
  import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule, NG_VALIDATORS } from '@angular/forms';
20
20
  import * as i4 from '@seniorsistemas/angular-components/switch';
21
21
  import { SwitchModule } from '@seniorsistemas/angular-components/switch';
22
- import * as i2 from '@seniorsistemas/angular-components/common';
23
- import { SVGFactoryModule } from '@seniorsistemas/angular-components/common';
24
22
  import { autocompletion } from '@codemirror/autocomplete';
25
23
  import { basicSetup } from 'codemirror';
26
24
  import { html } from '@codemirror/lang-html';
@@ -33,7 +31,7 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
33
31
  import * as i1$3 from '@seniorsistemas/angular-components/panel';
34
32
  import { PanelModule } from '@seniorsistemas/angular-components/panel';
35
33
  import { EnumSeverity } from '@seniorsistemas/angular-components/shared';
36
- import * as i2$1 from '@seniorsistemas/angular-components/template';
34
+ import * as i2 from '@seniorsistemas/angular-components/template';
37
35
  import * as i1$4 from '@angular/router';
38
36
  import { NavigationEnd, PRIMARY_OUTLET, RouterModule, RouterOutlet } from '@angular/router';
39
37
  import * as i3 from '@seniorsistemas/angular-components/product-header';
@@ -15895,127 +15893,6 @@ const DEFAULT_LOADING_STATE_UNBLOCK_DELAY_MS = 200;
15895
15893
  const DEFAULT_LOADING_STATE_ID_PREFIX = 'sdc-loading-state';
15896
15894
  const DEFAULT_LOADING_STATE_FULLSCREEN_Z_INDEX = 1005;
15897
15895
 
15898
- class LoadingStateComponent {
15899
- contents = null;
15900
- indicator = 'dots';
15901
- id = nextSequentialId(DEFAULT_LOADING_STATE_ID_PREFIX);
15902
- blockWindow = false;
15903
- blockDelayMs = DEFAULT_LOADING_STATE_BLOCK_DELAY_MS;
15904
- unblockDelayMs = DEFAULT_LOADING_STATE_UNBLOCK_DELAY_MS;
15905
- set loading(value) {
15906
- const isLoading = Boolean(value);
15907
- this._loading.set(isLoading);
15908
- if (isLoading) {
15909
- this.scheduleBlock();
15910
- }
15911
- else {
15912
- this.scheduleUnblock();
15913
- }
15914
- }
15915
- get loading() {
15916
- return this._loading();
15917
- }
15918
- get blocking() {
15919
- return this._blocking();
15920
- }
15921
- fullscreenZIndex = DEFAULT_LOADING_STATE_FULLSCREEN_Z_INDEX;
15922
- _loading = signal(false);
15923
- _blocking = signal(false);
15924
- blockTimeoutId;
15925
- unblockTimeoutId;
15926
- ngOnDestroy() {
15927
- if (this.blockTimeoutId) {
15928
- clearTimeout(this.blockTimeoutId);
15929
- }
15930
- if (this.unblockTimeoutId) {
15931
- clearTimeout(this.unblockTimeoutId);
15932
- }
15933
- }
15934
- scheduleBlock() {
15935
- if (this.unblockTimeoutId) {
15936
- clearTimeout(this.unblockTimeoutId);
15937
- this.unblockTimeoutId = undefined;
15938
- }
15939
- if (!this.blockTimeoutId) {
15940
- this.blockTimeoutId = setTimeout(() => {
15941
- this._blocking.set(true);
15942
- this.blockTimeoutId = undefined;
15943
- }, this.blockDelayMs);
15944
- }
15945
- }
15946
- scheduleUnblock() {
15947
- if (this.blockTimeoutId) {
15948
- clearTimeout(this.blockTimeoutId);
15949
- this.blockTimeoutId = undefined;
15950
- }
15951
- if (!this.unblockTimeoutId) {
15952
- this.unblockTimeoutId = setTimeout(() => {
15953
- this._blocking.set(false);
15954
- this.unblockTimeoutId = undefined;
15955
- }, this.unblockDelayMs);
15956
- }
15957
- }
15958
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15959
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LoadingStateComponent, isStandalone: true, selector: "sdc-loading-state", inputs: { indicator: "indicator", id: "id", blockWindow: "blockWindow", blockDelayMs: "blockDelayMs", unblockDelayMs: "unblockDelayMs", loading: "loading" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"sdc-loading-state\"\n [ngClass]=\"{\n 'sdc-loading-state--loading': loading,\n 'sdc-loading-state--blocking': blocking,\n 'sdc-loading-state--fullscreen': blockWindow\n }\"\n>\n <div [id]=\"id + '-loader'\" class=\"sdc-loading-state__loader\">\n <div [id]=\"id + '-spinner'\" class=\"sdc-loading-state__spinner\">\n @switch (indicator) {\n @case ('logo') {\n <div class=\"sdc-loading-state__logo\" aria-hidden=\"true\">\n <span class=\"sdc-loading-state__logo-icon-scale\">\n <span class=\"sdc-loading-state__logo-icon\" *sSVGFactory=\"'senior'\"></span>\n </span>\n </div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n @case ('spinner') {\n <div class=\"sdc-loading-state__spinner-indicator\" aria-hidden=\"true\"></div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n @default {\n <div class=\"sdc-loading-state__dots\" aria-hidden=\"true\">\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--1\"></div>\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--2\"></div>\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--3\"></div>\n </div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n }\n </div>\n <div [id]=\"id + '-overlay'\" class=\"sdc-loading-state__overlay\"></div>\n </div>\n\n <div [id]=\"id + '-contents'\" class=\"sdc-loading-state__contents\">\n <ng-container *ngTemplateOutlet=\"contents || originalContent\"></ng-container>\n <ng-template #originalContent>\n <ng-content></ng-content>\n </ng-template>\n </div>\n</div>\n", styles: [".sdc-loading-state{position:relative;overflow:visible;border-radius:inherit;box-sizing:border-box;isolation:isolate}.sdc-loading-state .sdc-loading-state__loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .2s ease-out,visibility .2s ease-out;z-index:2;pointer-events:none;overflow:visible}.sdc-loading-state .sdc-loading-state__overlay{position:absolute;inset:0;width:100%;height:100%;background-color:var(--sdc-loading-overlay-bg, #ffffff);opacity:var(--sdc-loading-overlay-opacity, .8);transition:opacity .2s ease-out;border-radius:inherit;box-sizing:border-box;z-index:0}.sdc-loading-state .sdc-loading-state__spinner{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;overflow:visible;padding:var(--sdc-loading-indicator-safe-space, 40px);box-sizing:border-box}.sdc-loading-state .sdc-loading-state__contents{position:relative;z-index:0;width:100%;box-sizing:border-box;border-radius:inherit;overflow:visible}.sdc-loading-state.sdc-loading-state--loading>.sdc-loading-state__loader,.sdc-loading-state.sdc-loading-state--blocking>.sdc-loading-state__loader{visibility:visible;cursor:wait;pointer-events:auto}.sdc-loading-state.sdc-loading-state--loading>.sdc-loading-state__contents,.sdc-loading-state.sdc-loading-state--blocking>.sdc-loading-state__contents{position:relative;z-index:0!important}.sdc-loading-state.sdc-loading-state--blocking.sdc-loading-state--loading>.sdc-loading-state__loader{opacity:1}.sdc-loading-state.sdc-loading-state--fullscreen>.sdc-loading-state__loader{position:fixed;inset:0;z-index:var(--sdc-loading-fullscreen-z-index, 1005)}.sdc-loading-state .sdc-loading-state__spinner-indicator{width:var(--sdc-loading-spinner-size, 32px);height:var(--sdc-loading-spinner-size, 32px);border-radius:999px;border-width:var(--sdc-loading-spinner-stroke, 3px);border-style:solid;border-color:var(--sdc-loading-indicator-color, var(--sdc-text-default, #333));border-right-color:transparent;animation:sdc-spin .8s linear infinite}.sdc-loading-state .sdc-loading-state__logo{width:var(--sdc-loading-logo-size, 64px);height:var(--sdc-loading-logo-size, 64px);border-radius:50%;background-color:var(--sdc-loading-logo-bg, #00c89a);box-shadow:0 0 0 var(--sdc-loading-logo-shadow-color, rgba(0, 200, 154, .7019607843));display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:visible;animation:sdc-pulsar 1s infinite,sdc-scale 1s infinite;transform-origin:center}.sdc-loading-state .sdc-loading-state__logo-icon-scale{display:inline-flex;align-items:center;justify-content:center;transform:scale(var(--sdc-loading-logo-svg-scale, .4));transform-origin:center;line-height:0}.sdc-loading-state .sdc-loading-state__logo-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0}.sdc-loading-state .sdc-loading-state__dots{display:inline-flex;align-items:center}.sdc-loading-state .sdc-loading-state__dot{width:var(--sdc-loading-dot-size, 10px);height:var(--sdc-loading-dot-size, 10px);border-radius:999px;background-color:var(--sdc-loading-indicator-color, var(--sdc-text-default, #333));display:inline-block;animation:sdc-bounce 1.2s infinite ease-out}.sdc-loading-state .sdc-loading-state__dot+.sdc-loading-state__dot{margin-left:var(--sdc-loading-dot-gap, 15px)}.sdc-loading-state .sdc-loading-state__dot--1{animation-delay:0ms}.sdc-loading-state .sdc-loading-state__dot--2{animation-delay:.1s}.sdc-loading-state .sdc-loading-state__dot--3{animation-delay:.2s}:host ::ng-deep .sdc-loading-state__logo-icon-scale>*{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .sdc-loading-state__logo-icon-scale svg{display:block}@keyframes sdc-spin{to{transform:rotate(360deg)}}@keyframes sdc-bounce{80%{transform:scale(1)}90%{transform:scale(1.8)}to{transform:scale(1)}}@keyframes sdc-pulsar{0%{box-shadow:0 0 0 0 var(--sdc-loading-logo-shadow-color, rgba(0, 200, 154, .7019607843))}70%{box-shadow:0 0 0 40px #00c89a00}to{box-shadow:0 0 #00c89a00}}@keyframes sdc-scale{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SVGFactoryModule }, { kind: "directive", type: i2.SVGFactoryDirective, selector: "[sSVGFactory]", inputs: ["sSVGFactory"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15960
- }
15961
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingStateComponent, decorators: [{
15962
- type: Component,
15963
- args: [{ selector: 'sdc-loading-state', standalone: true, imports: [CommonModule, SVGFactoryModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n [id]=\"id\"\n class=\"sdc-loading-state\"\n [ngClass]=\"{\n 'sdc-loading-state--loading': loading,\n 'sdc-loading-state--blocking': blocking,\n 'sdc-loading-state--fullscreen': blockWindow\n }\"\n>\n <div [id]=\"id + '-loader'\" class=\"sdc-loading-state__loader\">\n <div [id]=\"id + '-spinner'\" class=\"sdc-loading-state__spinner\">\n @switch (indicator) {\n @case ('logo') {\n <div class=\"sdc-loading-state__logo\" aria-hidden=\"true\">\n <span class=\"sdc-loading-state__logo-icon-scale\">\n <span class=\"sdc-loading-state__logo-icon\" *sSVGFactory=\"'senior'\"></span>\n </span>\n </div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n @case ('spinner') {\n <div class=\"sdc-loading-state__spinner-indicator\" aria-hidden=\"true\"></div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n @default {\n <div class=\"sdc-loading-state__dots\" aria-hidden=\"true\">\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--1\"></div>\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--2\"></div>\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--3\"></div>\n </div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n }\n </div>\n <div [id]=\"id + '-overlay'\" class=\"sdc-loading-state__overlay\"></div>\n </div>\n\n <div [id]=\"id + '-contents'\" class=\"sdc-loading-state__contents\">\n <ng-container *ngTemplateOutlet=\"contents || originalContent\"></ng-container>\n <ng-template #originalContent>\n <ng-content></ng-content>\n </ng-template>\n </div>\n</div>\n", styles: [".sdc-loading-state{position:relative;overflow:visible;border-radius:inherit;box-sizing:border-box;isolation:isolate}.sdc-loading-state .sdc-loading-state__loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .2s ease-out,visibility .2s ease-out;z-index:2;pointer-events:none;overflow:visible}.sdc-loading-state .sdc-loading-state__overlay{position:absolute;inset:0;width:100%;height:100%;background-color:var(--sdc-loading-overlay-bg, #ffffff);opacity:var(--sdc-loading-overlay-opacity, .8);transition:opacity .2s ease-out;border-radius:inherit;box-sizing:border-box;z-index:0}.sdc-loading-state .sdc-loading-state__spinner{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;overflow:visible;padding:var(--sdc-loading-indicator-safe-space, 40px);box-sizing:border-box}.sdc-loading-state .sdc-loading-state__contents{position:relative;z-index:0;width:100%;box-sizing:border-box;border-radius:inherit;overflow:visible}.sdc-loading-state.sdc-loading-state--loading>.sdc-loading-state__loader,.sdc-loading-state.sdc-loading-state--blocking>.sdc-loading-state__loader{visibility:visible;cursor:wait;pointer-events:auto}.sdc-loading-state.sdc-loading-state--loading>.sdc-loading-state__contents,.sdc-loading-state.sdc-loading-state--blocking>.sdc-loading-state__contents{position:relative;z-index:0!important}.sdc-loading-state.sdc-loading-state--blocking.sdc-loading-state--loading>.sdc-loading-state__loader{opacity:1}.sdc-loading-state.sdc-loading-state--fullscreen>.sdc-loading-state__loader{position:fixed;inset:0;z-index:var(--sdc-loading-fullscreen-z-index, 1005)}.sdc-loading-state .sdc-loading-state__spinner-indicator{width:var(--sdc-loading-spinner-size, 32px);height:var(--sdc-loading-spinner-size, 32px);border-radius:999px;border-width:var(--sdc-loading-spinner-stroke, 3px);border-style:solid;border-color:var(--sdc-loading-indicator-color, var(--sdc-text-default, #333));border-right-color:transparent;animation:sdc-spin .8s linear infinite}.sdc-loading-state .sdc-loading-state__logo{width:var(--sdc-loading-logo-size, 64px);height:var(--sdc-loading-logo-size, 64px);border-radius:50%;background-color:var(--sdc-loading-logo-bg, #00c89a);box-shadow:0 0 0 var(--sdc-loading-logo-shadow-color, rgba(0, 200, 154, .7019607843));display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:visible;animation:sdc-pulsar 1s infinite,sdc-scale 1s infinite;transform-origin:center}.sdc-loading-state .sdc-loading-state__logo-icon-scale{display:inline-flex;align-items:center;justify-content:center;transform:scale(var(--sdc-loading-logo-svg-scale, .4));transform-origin:center;line-height:0}.sdc-loading-state .sdc-loading-state__logo-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0}.sdc-loading-state .sdc-loading-state__dots{display:inline-flex;align-items:center}.sdc-loading-state .sdc-loading-state__dot{width:var(--sdc-loading-dot-size, 10px);height:var(--sdc-loading-dot-size, 10px);border-radius:999px;background-color:var(--sdc-loading-indicator-color, var(--sdc-text-default, #333));display:inline-block;animation:sdc-bounce 1.2s infinite ease-out}.sdc-loading-state .sdc-loading-state__dot+.sdc-loading-state__dot{margin-left:var(--sdc-loading-dot-gap, 15px)}.sdc-loading-state .sdc-loading-state__dot--1{animation-delay:0ms}.sdc-loading-state .sdc-loading-state__dot--2{animation-delay:.1s}.sdc-loading-state .sdc-loading-state__dot--3{animation-delay:.2s}:host ::ng-deep .sdc-loading-state__logo-icon-scale>*{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .sdc-loading-state__logo-icon-scale svg{display:block}@keyframes sdc-spin{to{transform:rotate(360deg)}}@keyframes sdc-bounce{80%{transform:scale(1)}90%{transform:scale(1.8)}to{transform:scale(1)}}@keyframes sdc-pulsar{0%{box-shadow:0 0 0 0 var(--sdc-loading-logo-shadow-color, rgba(0, 200, 154, .7019607843))}70%{box-shadow:0 0 0 40px #00c89a00}to{box-shadow:0 0 #00c89a00}}@keyframes sdc-scale{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}\n"] }]
15964
- }], propDecorators: { indicator: [{
15965
- type: Input
15966
- }], id: [{
15967
- type: Input
15968
- }], blockWindow: [{
15969
- type: Input
15970
- }], blockDelayMs: [{
15971
- type: Input
15972
- }], unblockDelayMs: [{
15973
- type: Input
15974
- }], loading: [{
15975
- type: Input,
15976
- args: [{ required: true }]
15977
- }] } });
15978
-
15979
- const PAGINATOR_FIRST_PAGE_INDEX = 0;
15980
- const PAGINATOR_MIN_ROWS = 1;
15981
- const PAGINATOR_MOBILE_WINDOW_SIZE = 3;
15982
- const PAGINATOR_DESKTOP_WINDOW_SIZE = 7;
15983
- const PAGINATOR_DEFAULT_ROWS_OPTIONS = [10, 20, 50];
15984
- const PAGINATOR_DEFAULT_SHOW_ROWS_PER_PAGE_SELECTOR = false;
15985
- const PAGINATOR_DEFAULT_IS_MOBILE = false;
15986
- const PAGINATOR_DEFAULT_TOTAL_RECORDS_LABEL = '';
15987
- const PAGINATOR_TOTAL_RECORDS_LABEL = 'platform.datacore.total_records';
15988
- const PAGINATOR_RECORD_FOUND_LABEL = 'platform.datacore.record_found';
15989
- const PAGINATOR_RECORDS_FOUND_LABEL = 'platform.datacore.records_found';
15990
-
15991
- const COMBOBOX_DEFAULT_Z_INDEX = 9999;
15992
- const COMBOBOX_DEFAULT_MAX_SELECTED_LABELS = 1;
15993
- const COMBOBOX_DEFAULT_PANEL_MAX_HEIGHT = 280;
15994
- const COMBOBOX_ICON_SELECTOR_BUFFER_SIZE = 6;
15995
- const COMBOBOX_ICON_SELECTOR_DEFAULT_ROW_HEIGHT = 52;
15996
- const COMBOBOX_ICON_SELECTOR_ROW_HEIGHT_WITH_CLASS = 64;
15997
- const COMBOBOX_ICON_SELECTOR_VIEWPORT_FALLBACK_HEIGHT = 216;
15998
- const COMBOBOX_SELECTED_ITEMS_LABEL_KEY = 'platform.datacore.accessibility.items_selected';
15999
- const COMBOBOX_CLEAR_FIELD_LABEL_KEY = 'platform.datacore.accessibility.clear_field';
16000
- const COMBOBOX_EMPTY_TITLE_KEY = 'platform.datacore.no_results';
16001
- const COMBOBOX_EMPTY_TEXT_KEY = 'platform.datacore.try_other_filters';
16002
- const COMBOBOX_REMOVE_CHIP_LABEL_KEY = 'platform.datacore.accessibility.remove_selected_item';
16003
-
16004
- class IconSelectorDataService {
16005
- fontAwesomeSolidIconsPromise;
16006
- loadFontAwesomeV5SolidIcons() {
16007
- this.fontAwesomeSolidIconsPromise ??= import('./seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs')
16008
- .then((module) => module.FONTAWESOME_V5_SOLID_ICONS);
16009
- return this.fontAwesomeSolidIconsPromise;
16010
- }
16011
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconSelectorDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16012
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconSelectorDataService, providedIn: 'root' });
16013
- }
16014
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconSelectorDataService, decorators: [{
16015
- type: Injectable,
16016
- args: [{ providedIn: 'root' }]
16017
- }] });
16018
-
16019
15896
  class IconRendererComponent {
16020
15897
  static SAFE_REFERENCE_PROTOCOLS = new Set(['http', 'https', 'mailto', 'tel']);
16021
15898
  renderer = inject(Renderer2);
@@ -16199,6 +16076,185 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
16199
16076
  args: ['svgHost']
16200
16077
  }] } });
16201
16078
 
16079
+ class LoadingStateComponent {
16080
+ static LOGO_SVG = `
16081
+ <svg
16082
+ viewBox="0 0 348 613"
16083
+ fill="none"
16084
+ xmlns="http://www.w3.org/2000/svg"
16085
+ >
16086
+ <g filter="url(#sdcLoadingLogoShadow)">
16087
+ <path
16088
+ d="M174.719 518.932L258.161 439.782C264.546 433.762 269.614 426.603 273.072 418.719C276.53 410.834 278.31 402.378 278.31 393.838C278.31 385.298 276.53 376.843 273.072 368.958C269.614 361.073 264.546 353.915 258.161 347.895L174.719 269.199C168.45 263.304 163.474 256.289 160.077 248.56C156.681 240.83 154.933 232.539 154.933 224.165C154.933 215.792 156.681 207.501 160.077 199.771C163.474 192.042 168.45 185.027 174.719 179.132L303.718 301.496C329.517 326.089 344 359.371 344 394.066C344 428.76 329.517 462.043 303.718 486.635L174.719 609C168.45 603.105 163.474 596.09 160.077 588.36C156.681 580.631 154.933 572.34 154.933 563.966C154.933 555.592 156.681 547.301 160.077 539.572C163.474 531.842 168.45 524.828 174.719 518.932ZM173.76 94.0677L90.3189 173.218C83.9334 179.238 78.8659 186.397 75.408 194.281C71.95 202.166 70.1698 210.622 70.1698 219.162C70.1698 227.702 71.95 236.157 75.408 244.042C78.8659 251.927 83.9334 259.085 90.3189 265.105L173.76 344.256C180.03 350.151 185.006 357.166 188.402 364.895C191.798 372.625 193.547 380.916 193.547 389.289C193.547 397.663 191.798 405.954 188.402 413.684C185.006 421.413 180.03 428.428 173.76 434.323L44.2823 311.504C18.4832 286.911 4 253.629 4 218.934C4 184.24 18.4832 150.957 44.2823 126.365L173.76 4C186.213 16.0129 193.192 32.1861 193.192 49.0338C193.192 65.8815 186.213 82.0547 173.76 94.0677Z"
16089
+ fill="white"
16090
+ />
16091
+ </g>
16092
+ <defs>
16093
+ <filter
16094
+ id="sdcLoadingLogoShadow"
16095
+ x="0"
16096
+ y="0"
16097
+ width="348"
16098
+ height="613"
16099
+ filterUnits="userSpaceOnUse"
16100
+ color-interpolation-filters="sRGB"
16101
+ >
16102
+ <feFlood
16103
+ flood-opacity="0"
16104
+ result="BackgroundImageFix"
16105
+ />
16106
+ <feColorMatrix
16107
+ in="SourceAlpha"
16108
+ type="matrix"
16109
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
16110
+ result="hardAlpha"
16111
+ />
16112
+ <feOffset />
16113
+ <feGaussianBlur stdDeviation="2" />
16114
+ <feComposite
16115
+ in2="hardAlpha"
16116
+ operator="out"
16117
+ />
16118
+ <feColorMatrix
16119
+ type="matrix"
16120
+ values="0 0 0 0 0.418936 0 0 0 0 1 0 0 0 0 0.930272 0 0 0 0.35 0"
16121
+ />
16122
+ <feBlend
16123
+ mode="normal"
16124
+ in2="BackgroundImageFix"
16125
+ result="effect1_dropShadow"
16126
+ />
16127
+ <feBlend
16128
+ mode="normal"
16129
+ in="SourceGraphic"
16130
+ in2="effect1_dropShadow"
16131
+ result="shape"
16132
+ />
16133
+ </filter>
16134
+ </defs>
16135
+ </svg>
16136
+ `.trim();
16137
+ contents = null;
16138
+ indicator = 'dots';
16139
+ id = nextSequentialId(DEFAULT_LOADING_STATE_ID_PREFIX);
16140
+ blockWindow = false;
16141
+ blockDelayMs = DEFAULT_LOADING_STATE_BLOCK_DELAY_MS;
16142
+ unblockDelayMs = DEFAULT_LOADING_STATE_UNBLOCK_DELAY_MS;
16143
+ set loading(value) {
16144
+ const isLoading = Boolean(value);
16145
+ this._loading.set(isLoading);
16146
+ if (isLoading) {
16147
+ this.scheduleBlock();
16148
+ }
16149
+ else {
16150
+ this.scheduleUnblock();
16151
+ }
16152
+ }
16153
+ get loading() {
16154
+ return this._loading();
16155
+ }
16156
+ get blocking() {
16157
+ return this._blocking();
16158
+ }
16159
+ fullscreenZIndex = DEFAULT_LOADING_STATE_FULLSCREEN_Z_INDEX;
16160
+ logoSvg = LoadingStateComponent.LOGO_SVG;
16161
+ _loading = signal(false);
16162
+ _blocking = signal(false);
16163
+ blockTimeoutId;
16164
+ unblockTimeoutId;
16165
+ ngOnDestroy() {
16166
+ if (this.blockTimeoutId) {
16167
+ clearTimeout(this.blockTimeoutId);
16168
+ }
16169
+ if (this.unblockTimeoutId) {
16170
+ clearTimeout(this.unblockTimeoutId);
16171
+ }
16172
+ }
16173
+ scheduleBlock() {
16174
+ if (this.unblockTimeoutId) {
16175
+ clearTimeout(this.unblockTimeoutId);
16176
+ this.unblockTimeoutId = undefined;
16177
+ }
16178
+ if (!this.blockTimeoutId) {
16179
+ this.blockTimeoutId = setTimeout(() => {
16180
+ this._blocking.set(true);
16181
+ this.blockTimeoutId = undefined;
16182
+ }, this.blockDelayMs);
16183
+ }
16184
+ }
16185
+ scheduleUnblock() {
16186
+ if (this.blockTimeoutId) {
16187
+ clearTimeout(this.blockTimeoutId);
16188
+ this.blockTimeoutId = undefined;
16189
+ }
16190
+ if (!this.unblockTimeoutId) {
16191
+ this.unblockTimeoutId = setTimeout(() => {
16192
+ this._blocking.set(false);
16193
+ this.unblockTimeoutId = undefined;
16194
+ }, this.unblockDelayMs);
16195
+ }
16196
+ }
16197
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16198
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LoadingStateComponent, isStandalone: true, selector: "sdc-loading-state", inputs: { indicator: "indicator", id: "id", blockWindow: "blockWindow", blockDelayMs: "blockDelayMs", unblockDelayMs: "unblockDelayMs", loading: "loading" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"sdc-loading-state\"\n [ngClass]=\"{\n 'sdc-loading-state--loading': loading,\n 'sdc-loading-state--blocking': blocking,\n 'sdc-loading-state--fullscreen': blockWindow\n }\"\n>\n <div [id]=\"id + '-loader'\" class=\"sdc-loading-state__loader\">\n <div [id]=\"id + '-spinner'\" class=\"sdc-loading-state__spinner\">\n @switch (indicator) {\n @case ('logo') {\n <div class=\"sdc-loading-state__logo\" aria-hidden=\"true\">\n <span class=\"sdc-loading-state__logo-icon-wrap\">\n <sdc-icon-renderer\n class=\"sdc-loading-state__logo-icon\"\n [icon]=\"logoSvg\"\n iconType=\"svg\"\n ></sdc-icon-renderer>\n </span>\n </div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n @case ('spinner') {\n <div class=\"sdc-loading-state__spinner-indicator\" aria-hidden=\"true\"></div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n @default {\n <div class=\"sdc-loading-state__dots\" aria-hidden=\"true\">\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--1\"></div>\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--2\"></div>\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--3\"></div>\n </div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n }\n </div>\n <div [id]=\"id + '-overlay'\" class=\"sdc-loading-state__overlay\"></div>\n </div>\n\n <div [id]=\"id + '-contents'\" class=\"sdc-loading-state__contents\">\n <ng-container *ngTemplateOutlet=\"contents || originalContent\"></ng-container>\n <ng-template #originalContent>\n <ng-content></ng-content>\n </ng-template>\n </div>\n</div>\n", styles: [".sdc-loading-state{position:relative;overflow:visible;border-radius:inherit;box-sizing:border-box;isolation:isolate}.sdc-loading-state .sdc-loading-state__loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .2s ease-out,visibility .2s ease-out;z-index:2;pointer-events:none;overflow:visible}.sdc-loading-state .sdc-loading-state__overlay{position:absolute;inset:0;width:100%;height:100%;background-color:var(--sdc-loading-overlay-bg, #ffffff);opacity:var(--sdc-loading-overlay-opacity, .8);transition:opacity .2s ease-out;border-radius:inherit;box-sizing:border-box;z-index:0}.sdc-loading-state .sdc-loading-state__spinner{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;overflow:visible;padding:var(--sdc-loading-indicator-safe-space, 40px);box-sizing:border-box}.sdc-loading-state .sdc-loading-state__contents{position:relative;z-index:0;width:100%;box-sizing:border-box;border-radius:inherit;overflow:visible}.sdc-loading-state.sdc-loading-state--loading>.sdc-loading-state__loader,.sdc-loading-state.sdc-loading-state--blocking>.sdc-loading-state__loader{visibility:visible;cursor:wait;pointer-events:auto}.sdc-loading-state.sdc-loading-state--loading>.sdc-loading-state__contents,.sdc-loading-state.sdc-loading-state--blocking>.sdc-loading-state__contents{position:relative;z-index:0!important}.sdc-loading-state.sdc-loading-state--blocking.sdc-loading-state--loading>.sdc-loading-state__loader{opacity:1}.sdc-loading-state.sdc-loading-state--fullscreen>.sdc-loading-state__loader{position:fixed;inset:0;z-index:var(--sdc-loading-fullscreen-z-index, 1005)}.sdc-loading-state .sdc-loading-state__spinner-indicator{width:var(--sdc-loading-spinner-size, 32px);height:var(--sdc-loading-spinner-size, 32px);border-radius:999px;border-width:var(--sdc-loading-spinner-stroke, 3px);border-style:solid;border-color:var(--sdc-loading-indicator-color, var(--sdc-text-default, #333));border-right-color:transparent;animation:sdc-spin .8s linear infinite}.sdc-loading-state .sdc-loading-state__logo{width:var(--sdc-loading-logo-size, 64px);height:var(--sdc-loading-logo-size, 64px);border-radius:50%;background-color:var(--sdc-loading-logo-bg, #00c89a);box-shadow:0 0 0 var(--sdc-loading-logo-shadow-color, rgba(0, 200, 154, .7019607843));display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:visible;animation:sdc-pulsar 1s infinite,sdc-scale 1s infinite;transform-origin:center}.sdc-loading-state .sdc-loading-state__logo-icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:calc(var(--sdc-loading-logo-size, 64px) * .68);height:calc(var(--sdc-loading-logo-size, 64px) * .68);line-height:0}.sdc-loading-state .sdc-loading-state__logo-icon{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:0}.sdc-loading-state .sdc-loading-state__dots{display:inline-flex;align-items:center}.sdc-loading-state .sdc-loading-state__dot{width:var(--sdc-loading-dot-size, 10px);height:var(--sdc-loading-dot-size, 10px);border-radius:999px;background-color:var(--sdc-loading-indicator-color, var(--sdc-text-default, #333));display:inline-block;animation:sdc-bounce 1.2s infinite ease-out}.sdc-loading-state .sdc-loading-state__dot+.sdc-loading-state__dot{margin-left:var(--sdc-loading-dot-gap, 15px)}.sdc-loading-state .sdc-loading-state__dot--1{animation-delay:0ms}.sdc-loading-state .sdc-loading-state__dot--2{animation-delay:.1s}.sdc-loading-state .sdc-loading-state__dot--3{animation-delay:.2s}:host ::ng-deep .sdc-loading-state__logo-icon>*{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .sdc-loading-state__logo-icon .sdc-icon-renderer--svg{width:100%!important;height:100%!important}:host ::ng-deep .sdc-loading-state__logo-icon svg{display:block;width:100%;height:100%}@keyframes sdc-spin{to{transform:rotate(360deg)}}@keyframes sdc-bounce{80%{transform:scale(1)}90%{transform:scale(1.8)}to{transform:scale(1)}}@keyframes sdc-pulsar{0%{box-shadow:0 0 0 0 var(--sdc-loading-logo-shadow-color, rgba(0, 200, 154, .7019607843))}70%{box-shadow:0 0 0 40px #00c89a00}to{box-shadow:0 0 #00c89a00}}@keyframes sdc-scale{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconRendererComponent, selector: "sdc-icon-renderer", inputs: ["icon", "iconType", "size"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16199
+ }
16200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingStateComponent, decorators: [{
16201
+ type: Component,
16202
+ args: [{ selector: 'sdc-loading-state', standalone: true, imports: [CommonModule, IconRendererComponent, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n [id]=\"id\"\n class=\"sdc-loading-state\"\n [ngClass]=\"{\n 'sdc-loading-state--loading': loading,\n 'sdc-loading-state--blocking': blocking,\n 'sdc-loading-state--fullscreen': blockWindow\n }\"\n>\n <div [id]=\"id + '-loader'\" class=\"sdc-loading-state__loader\">\n <div [id]=\"id + '-spinner'\" class=\"sdc-loading-state__spinner\">\n @switch (indicator) {\n @case ('logo') {\n <div class=\"sdc-loading-state__logo\" aria-hidden=\"true\">\n <span class=\"sdc-loading-state__logo-icon-wrap\">\n <sdc-icon-renderer\n class=\"sdc-loading-state__logo-icon\"\n [icon]=\"logoSvg\"\n iconType=\"svg\"\n ></sdc-icon-renderer>\n </span>\n </div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n @case ('spinner') {\n <div class=\"sdc-loading-state__spinner-indicator\" aria-hidden=\"true\"></div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n @default {\n <div class=\"sdc-loading-state__dots\" aria-hidden=\"true\">\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--1\"></div>\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--2\"></div>\n <div class=\"sdc-loading-state__dot sdc-loading-state__dot--3\"></div>\n </div>\n <progress\n class=\"sdc-loading-state__progress sr-only\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading' | translate\"\n ></progress>\n }\n }\n </div>\n <div [id]=\"id + '-overlay'\" class=\"sdc-loading-state__overlay\"></div>\n </div>\n\n <div [id]=\"id + '-contents'\" class=\"sdc-loading-state__contents\">\n <ng-container *ngTemplateOutlet=\"contents || originalContent\"></ng-container>\n <ng-template #originalContent>\n <ng-content></ng-content>\n </ng-template>\n </div>\n</div>\n", styles: [".sdc-loading-state{position:relative;overflow:visible;border-radius:inherit;box-sizing:border-box;isolation:isolate}.sdc-loading-state .sdc-loading-state__loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .2s ease-out,visibility .2s ease-out;z-index:2;pointer-events:none;overflow:visible}.sdc-loading-state .sdc-loading-state__overlay{position:absolute;inset:0;width:100%;height:100%;background-color:var(--sdc-loading-overlay-bg, #ffffff);opacity:var(--sdc-loading-overlay-opacity, .8);transition:opacity .2s ease-out;border-radius:inherit;box-sizing:border-box;z-index:0}.sdc-loading-state .sdc-loading-state__spinner{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;overflow:visible;padding:var(--sdc-loading-indicator-safe-space, 40px);box-sizing:border-box}.sdc-loading-state .sdc-loading-state__contents{position:relative;z-index:0;width:100%;box-sizing:border-box;border-radius:inherit;overflow:visible}.sdc-loading-state.sdc-loading-state--loading>.sdc-loading-state__loader,.sdc-loading-state.sdc-loading-state--blocking>.sdc-loading-state__loader{visibility:visible;cursor:wait;pointer-events:auto}.sdc-loading-state.sdc-loading-state--loading>.sdc-loading-state__contents,.sdc-loading-state.sdc-loading-state--blocking>.sdc-loading-state__contents{position:relative;z-index:0!important}.sdc-loading-state.sdc-loading-state--blocking.sdc-loading-state--loading>.sdc-loading-state__loader{opacity:1}.sdc-loading-state.sdc-loading-state--fullscreen>.sdc-loading-state__loader{position:fixed;inset:0;z-index:var(--sdc-loading-fullscreen-z-index, 1005)}.sdc-loading-state .sdc-loading-state__spinner-indicator{width:var(--sdc-loading-spinner-size, 32px);height:var(--sdc-loading-spinner-size, 32px);border-radius:999px;border-width:var(--sdc-loading-spinner-stroke, 3px);border-style:solid;border-color:var(--sdc-loading-indicator-color, var(--sdc-text-default, #333));border-right-color:transparent;animation:sdc-spin .8s linear infinite}.sdc-loading-state .sdc-loading-state__logo{width:var(--sdc-loading-logo-size, 64px);height:var(--sdc-loading-logo-size, 64px);border-radius:50%;background-color:var(--sdc-loading-logo-bg, #00c89a);box-shadow:0 0 0 var(--sdc-loading-logo-shadow-color, rgba(0, 200, 154, .7019607843));display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:visible;animation:sdc-pulsar 1s infinite,sdc-scale 1s infinite;transform-origin:center}.sdc-loading-state .sdc-loading-state__logo-icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:calc(var(--sdc-loading-logo-size, 64px) * .68);height:calc(var(--sdc-loading-logo-size, 64px) * .68);line-height:0}.sdc-loading-state .sdc-loading-state__logo-icon{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:0}.sdc-loading-state .sdc-loading-state__dots{display:inline-flex;align-items:center}.sdc-loading-state .sdc-loading-state__dot{width:var(--sdc-loading-dot-size, 10px);height:var(--sdc-loading-dot-size, 10px);border-radius:999px;background-color:var(--sdc-loading-indicator-color, var(--sdc-text-default, #333));display:inline-block;animation:sdc-bounce 1.2s infinite ease-out}.sdc-loading-state .sdc-loading-state__dot+.sdc-loading-state__dot{margin-left:var(--sdc-loading-dot-gap, 15px)}.sdc-loading-state .sdc-loading-state__dot--1{animation-delay:0ms}.sdc-loading-state .sdc-loading-state__dot--2{animation-delay:.1s}.sdc-loading-state .sdc-loading-state__dot--3{animation-delay:.2s}:host ::ng-deep .sdc-loading-state__logo-icon>*{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .sdc-loading-state__logo-icon .sdc-icon-renderer--svg{width:100%!important;height:100%!important}:host ::ng-deep .sdc-loading-state__logo-icon svg{display:block;width:100%;height:100%}@keyframes sdc-spin{to{transform:rotate(360deg)}}@keyframes sdc-bounce{80%{transform:scale(1)}90%{transform:scale(1.8)}to{transform:scale(1)}}@keyframes sdc-pulsar{0%{box-shadow:0 0 0 0 var(--sdc-loading-logo-shadow-color, rgba(0, 200, 154, .7019607843))}70%{box-shadow:0 0 0 40px #00c89a00}to{box-shadow:0 0 #00c89a00}}@keyframes sdc-scale{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}\n"] }]
16203
+ }], propDecorators: { indicator: [{
16204
+ type: Input
16205
+ }], id: [{
16206
+ type: Input
16207
+ }], blockWindow: [{
16208
+ type: Input
16209
+ }], blockDelayMs: [{
16210
+ type: Input
16211
+ }], unblockDelayMs: [{
16212
+ type: Input
16213
+ }], loading: [{
16214
+ type: Input,
16215
+ args: [{ required: true }]
16216
+ }] } });
16217
+
16218
+ const PAGINATOR_FIRST_PAGE_INDEX = 0;
16219
+ const PAGINATOR_MIN_ROWS = 1;
16220
+ const PAGINATOR_MOBILE_WINDOW_SIZE = 3;
16221
+ const PAGINATOR_DESKTOP_WINDOW_SIZE = 7;
16222
+ const PAGINATOR_DEFAULT_ROWS_OPTIONS = [10, 20, 50];
16223
+ const PAGINATOR_DEFAULT_SHOW_ROWS_PER_PAGE_SELECTOR = false;
16224
+ const PAGINATOR_DEFAULT_IS_MOBILE = false;
16225
+ const PAGINATOR_DEFAULT_TOTAL_RECORDS_LABEL = '';
16226
+ const PAGINATOR_TOTAL_RECORDS_LABEL = 'platform.datacore.total_records';
16227
+ const PAGINATOR_RECORD_FOUND_LABEL = 'platform.datacore.record_found';
16228
+ const PAGINATOR_RECORDS_FOUND_LABEL = 'platform.datacore.records_found';
16229
+
16230
+ const COMBOBOX_DEFAULT_Z_INDEX = 9999;
16231
+ const COMBOBOX_DEFAULT_MAX_SELECTED_LABELS = 1;
16232
+ const COMBOBOX_DEFAULT_PANEL_MAX_HEIGHT = 280;
16233
+ const COMBOBOX_ICON_SELECTOR_BUFFER_SIZE = 6;
16234
+ const COMBOBOX_ICON_SELECTOR_DEFAULT_ROW_HEIGHT = 52;
16235
+ const COMBOBOX_ICON_SELECTOR_ROW_HEIGHT_WITH_CLASS = 64;
16236
+ const COMBOBOX_ICON_SELECTOR_VIEWPORT_FALLBACK_HEIGHT = 216;
16237
+ const COMBOBOX_SELECTED_ITEMS_LABEL_KEY = 'platform.datacore.accessibility.items_selected';
16238
+ const COMBOBOX_CLEAR_FIELD_LABEL_KEY = 'platform.datacore.accessibility.clear_field';
16239
+ const COMBOBOX_EMPTY_TITLE_KEY = 'platform.datacore.no_results';
16240
+ const COMBOBOX_EMPTY_TEXT_KEY = 'platform.datacore.try_other_filters';
16241
+ const COMBOBOX_REMOVE_CHIP_LABEL_KEY = 'platform.datacore.accessibility.remove_selected_item';
16242
+
16243
+ class IconSelectorDataService {
16244
+ fontAwesomeSolidIconsPromise;
16245
+ loadFontAwesomeV5SolidIcons() {
16246
+ this.fontAwesomeSolidIconsPromise ??= import('./seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs')
16247
+ .then((module) => module.FONTAWESOME_V5_SOLID_ICONS);
16248
+ return this.fontAwesomeSolidIconsPromise;
16249
+ }
16250
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconSelectorDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16251
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconSelectorDataService, providedIn: 'root' });
16252
+ }
16253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconSelectorDataService, decorators: [{
16254
+ type: Injectable,
16255
+ args: [{ providedIn: 'root' }]
16256
+ }] });
16257
+
16202
16258
  class CheckboxComponent {
16203
16259
  label = '';
16204
16260
  disabled = false;
@@ -21395,7 +21451,7 @@ class PanelComponent {
21395
21451
  return 'platform.datacore.accessibility.panel_collapse';
21396
21452
  }
21397
21453
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21398
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PanelComponent, isStandalone: true, selector: "sdc-panel", inputs: { header: "header", toggleable: "toggleable", collapsed: "collapsed", severity: "severity", borderButtonOptions: "borderButtonOptions", panelClass: ["class", "panelClass"], ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy" }, outputs: { collapsedChange: "collapsedChange" }, ngImport: i0, template: "<s-panel [(collapsed)]=\"collapsed\" [header]=\"header | translate\" [toggleable]=\"toggleable\" [severity]=\"severity\"\n [borderButtonOptions]=\"borderButtonOptions\" [class]=\"panelClasses\" (collapsedChange)=\"onCollapsedChanged($event)\"\n [attr.aria-label]=\"(ariaLabel || header) | translate\" [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-expanded]=\"toggleable ? !collapsed : null\">\n <div class=\"sdc-panel-content\" [attr.aria-label]=\"'platform.datacore.accessibility.panel_content' | translate\">\n <ng-content></ng-content>\n </div>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"sdc-panel-footer\">\n <ng-content select=\"[sdcFooter]\"></ng-content>\n </div>\n </ng-template>\n</s-panel>\n", styles: [":host{display:contents}.sdc-panel-content,.sdc-panel-footer{display:contents}.sdc-panel-footer:empty{display:none}::ng-deep s-panel .panel.sdc-panel{background-color:var(--sdc-panel-bg, var(--sdc-surface-bg, #ffffff));border:var(--sdc-panel-border, var(--sdc-surface-border, 1px solid #dedce5));border-radius:var(--sdc-panel-radius, var(--sdc-surface-radius, 4px));box-shadow:var(--sdc-panel-shadow, var(--sdc-surface-shadow, none));padding:var(--sdc-panel-padding, var(--sdc-surface-padding, 22px 22px 20px))!important;transition:var(--sdc-panel-transition, var(--sdc-surface-transition, border-color .5s ease))}::ng-deep s-panel .panel.sdc-panel .header{align-items:center;border-bottom:var(--sdc-panel-divider-border, var(--sdc-surface-divider-border, 1px solid #dedce5));color:var(--sdc-panel-title-color, var(--sdc-surface-title-color, #212533));font-size:var(--sdc-panel-title-font-size, var(--sdc-surface-title-font-size, 14px));font-weight:var(--sdc-panel-title-font-weight, var(--sdc-surface-title-font-weight, 400));line-height:var(--sdc-panel-title-line-height, var(--sdc-surface-title-line-height, 20px));min-height:var(--sdc-panel-header-min-height, var(--sdc-surface-header-min-height, 34px));padding-bottom:var(--sdc-panel-header-padding-bottom, var(--sdc-surface-header-padding-bottom, 20px))}::ng-deep s-panel .panel.sdc-panel .header-content{display:flex;align-items:center;min-height:var(--sdc-panel-title-line-height, var(--sdc-surface-title-line-height, 20px))}::ng-deep s-panel .panel.sdc-panel .collapse-button,::ng-deep s-panel .panel.sdc-panel .s-panel-header-icon,::ng-deep s-panel .panel.sdc-panel .s-panel-header button{min-width:var(--sdc-panel-action-size, 24px);min-height:var(--sdc-panel-action-size, 24px)}::ng-deep s-panel .panel.sdc-panel .collapse-button,::ng-deep s-panel .panel.sdc-panel .s-panel-header button{display:inline-flex;align-items:center;justify-content:center}::ng-deep s-panel .panel.sdc-panel .collapse-button:focus-visible,::ng-deep s-panel .panel.sdc-panel .s-panel-header button:focus-visible{outline:2px solid currentColor;outline-offset:2px}::ng-deep s-panel .panel.sdc-panel .panel-content .body{padding:var(--sdc-panel-content-padding, var(--sdc-surface-content-padding, 15px 0))!important}::ng-deep s-panel .panel.sdc-panel .panel-content .footer{border-top:var(--sdc-panel-divider-border, var(--sdc-surface-divider-border, 1px solid #dedce5))!important;margin-top:var(--sdc-panel-footer-margin-top, var(--sdc-surface-footer-margin-top, 0));padding-top:var(--sdc-panel-footer-padding-top, var(--sdc-surface-footer-padding-top, 15px))}::ng-deep s-panel .panel.sdc-panel .panel-content .footer:has(>.sdc-panel-footer:empty){display:none}::ng-deep s-panel .panel.sdc-panel .panel-content .footer .sdc-panel-footer>[sdcFooter]{margin-top:0!important}::ng-deep s-panel .panel.sdc-panel.panel--collapsed .header{border-bottom:none;min-height:0;padding-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: PanelModule }, { kind: "component", type: i1$3.PanelComponent, selector: "s-panel", inputs: ["header", "toggleable", "collapsed", "severity", "borderButtonOptions", "class"], outputs: ["collapsedChange"] }, { kind: "directive", type: i2$1.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
21454
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PanelComponent, isStandalone: true, selector: "sdc-panel", inputs: { header: "header", toggleable: "toggleable", collapsed: "collapsed", severity: "severity", borderButtonOptions: "borderButtonOptions", panelClass: ["class", "panelClass"], ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy" }, outputs: { collapsedChange: "collapsedChange" }, ngImport: i0, template: "<s-panel [(collapsed)]=\"collapsed\" [header]=\"header | translate\" [toggleable]=\"toggleable\" [severity]=\"severity\"\n [borderButtonOptions]=\"borderButtonOptions\" [class]=\"panelClasses\" (collapsedChange)=\"onCollapsedChanged($event)\"\n [attr.aria-label]=\"(ariaLabel || header) | translate\" [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-expanded]=\"toggleable ? !collapsed : null\">\n <div class=\"sdc-panel-content\" [attr.aria-label]=\"'platform.datacore.accessibility.panel_content' | translate\">\n <ng-content></ng-content>\n </div>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"sdc-panel-footer\">\n <ng-content select=\"[sdcFooter]\"></ng-content>\n </div>\n </ng-template>\n</s-panel>\n", styles: [":host{display:contents}.sdc-panel-content,.sdc-panel-footer{display:contents}.sdc-panel-footer:empty{display:none}::ng-deep s-panel .panel.sdc-panel{background-color:var(--sdc-panel-bg, var(--sdc-surface-bg, #ffffff));border:var(--sdc-panel-border, var(--sdc-surface-border, 1px solid #dedce5));border-radius:var(--sdc-panel-radius, var(--sdc-surface-radius, 4px));box-shadow:var(--sdc-panel-shadow, var(--sdc-surface-shadow, none));padding:var(--sdc-panel-padding, var(--sdc-surface-padding, 22px 22px 20px))!important;transition:var(--sdc-panel-transition, var(--sdc-surface-transition, border-color .5s ease))}::ng-deep s-panel .panel.sdc-panel .header{align-items:center;border-bottom:var(--sdc-panel-divider-border, var(--sdc-surface-divider-border, 1px solid #dedce5));color:var(--sdc-panel-title-color, var(--sdc-surface-title-color, #212533));font-size:var(--sdc-panel-title-font-size, var(--sdc-surface-title-font-size, 14px));font-weight:var(--sdc-panel-title-font-weight, var(--sdc-surface-title-font-weight, 400));line-height:var(--sdc-panel-title-line-height, var(--sdc-surface-title-line-height, 20px));min-height:var(--sdc-panel-header-min-height, var(--sdc-surface-header-min-height, 34px));padding-bottom:var(--sdc-panel-header-padding-bottom, var(--sdc-surface-header-padding-bottom, 20px))}::ng-deep s-panel .panel.sdc-panel .header-content{display:flex;align-items:center;min-height:var(--sdc-panel-title-line-height, var(--sdc-surface-title-line-height, 20px))}::ng-deep s-panel .panel.sdc-panel .collapse-button,::ng-deep s-panel .panel.sdc-panel .s-panel-header-icon,::ng-deep s-panel .panel.sdc-panel .s-panel-header button{min-width:var(--sdc-panel-action-size, 24px);min-height:var(--sdc-panel-action-size, 24px)}::ng-deep s-panel .panel.sdc-panel .collapse-button,::ng-deep s-panel .panel.sdc-panel .s-panel-header button{display:inline-flex;align-items:center;justify-content:center}::ng-deep s-panel .panel.sdc-panel .collapse-button:focus-visible,::ng-deep s-panel .panel.sdc-panel .s-panel-header button:focus-visible{outline:2px solid currentColor;outline-offset:2px}::ng-deep s-panel .panel.sdc-panel .panel-content .body{padding:var(--sdc-panel-content-padding, var(--sdc-surface-content-padding, 15px 0))!important}::ng-deep s-panel .panel.sdc-panel .panel-content .footer{border-top:var(--sdc-panel-divider-border, var(--sdc-surface-divider-border, 1px solid #dedce5))!important;margin-top:var(--sdc-panel-footer-margin-top, var(--sdc-surface-footer-margin-top, 0));padding-top:var(--sdc-panel-footer-padding-top, var(--sdc-surface-footer-padding-top, 15px))}::ng-deep s-panel .panel.sdc-panel .panel-content .footer:has(>.sdc-panel-footer:empty){display:none}::ng-deep s-panel .panel.sdc-panel .panel-content .footer .sdc-panel-footer>[sdcFooter]{margin-top:0!important}::ng-deep s-panel .panel.sdc-panel.panel--collapsed .header{border-bottom:none;min-height:0;padding-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: PanelModule }, { kind: "component", type: i1$3.PanelComponent, selector: "s-panel", inputs: ["header", "toggleable", "collapsed", "severity", "borderButtonOptions", "class"], outputs: ["collapsedChange"] }, { kind: "directive", type: i2.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
21399
21455
  }
21400
21456
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PanelComponent, decorators: [{
21401
21457
  type: Component,
@@ -23882,30 +23938,168 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
23882
23938
  type: Input
23883
23939
  }] } });
23884
23940
 
23941
+ var TableMenuFocusTarget;
23942
+ (function (TableMenuFocusTarget) {
23943
+ TableMenuFocusTarget["Next"] = "next";
23944
+ TableMenuFocusTarget["None"] = "none";
23945
+ TableMenuFocusTarget["Previous"] = "previous";
23946
+ TableMenuFocusTarget["Trigger"] = "trigger";
23947
+ })(TableMenuFocusTarget || (TableMenuFocusTarget = {}));
23948
+
23885
23949
  class TableActionsMenuComponent {
23950
+ menuItems;
23951
+ ariaLabel = 'platform.datacore.accessibility.actions_menu';
23886
23952
  items = [];
23887
23953
  left = 0;
23954
+ menuId = '';
23888
23955
  top = 0;
23889
23956
  width = 0;
23957
+ close = new EventEmitter();
23890
23958
  select = new EventEmitter();
23959
+ activeIndex = -1;
23960
+ ngAfterViewInit() {
23961
+ queueMicrotask(() => this.focusFirstEnabledItem());
23962
+ }
23963
+ onItemFocus(index) {
23964
+ if (this.items[index]?.disabled) {
23965
+ return;
23966
+ }
23967
+ this.activeIndex = index;
23968
+ }
23969
+ onItemKeydown(event, index) {
23970
+ switch (event.key) {
23971
+ case 'ArrowDown':
23972
+ event.preventDefault();
23973
+ this.focusRelative(index, 1);
23974
+ break;
23975
+ case 'ArrowUp':
23976
+ event.preventDefault();
23977
+ this.focusRelative(index, -1);
23978
+ break;
23979
+ case 'Home':
23980
+ event.preventDefault();
23981
+ this.focusEdge('start');
23982
+ break;
23983
+ case 'End':
23984
+ event.preventDefault();
23985
+ this.focusEdge('end');
23986
+ break;
23987
+ case 'Escape':
23988
+ event.preventDefault();
23989
+ event.stopPropagation();
23990
+ this.close.emit({ focusTarget: TableMenuFocusTarget.Trigger });
23991
+ break;
23992
+ case 'Tab':
23993
+ this.handleTabNavigation(event, index);
23994
+ break;
23995
+ default:
23996
+ return;
23997
+ }
23998
+ }
23999
+ focusFirstEnabledItem() {
24000
+ this.focusEdge('start');
24001
+ }
24002
+ focusEdge(edge) {
24003
+ const enabledIndexes = this.enabledIndexes();
24004
+ if (!enabledIndexes.length) {
24005
+ return;
24006
+ }
24007
+ const targetIndex = edge === 'start'
24008
+ ? enabledIndexes[0]
24009
+ : enabledIndexes[enabledIndexes.length - 1];
24010
+ this.focusIndex(targetIndex);
24011
+ }
24012
+ focusRelative(currentIndex, direction) {
24013
+ const enabledIndexes = this.enabledIndexes();
24014
+ if (!enabledIndexes.length) {
24015
+ return;
24016
+ }
24017
+ const currentEnabledPosition = enabledIndexes.indexOf(currentIndex);
24018
+ const fallbackPosition = direction === 1 ? -1 : 0;
24019
+ const currentPosition = currentEnabledPosition === -1 ? fallbackPosition : currentEnabledPosition;
24020
+ const nextPosition = (currentPosition + direction + enabledIndexes.length) % enabledIndexes.length;
24021
+ this.focusIndex(enabledIndexes[nextPosition]);
24022
+ }
24023
+ focusIndex(index) {
24024
+ const element = this.menuItems.get(index)?.nativeElement;
24025
+ if (!element || element.disabled) {
24026
+ return;
24027
+ }
24028
+ this.activeIndex = index;
24029
+ element.focus();
24030
+ }
24031
+ enabledIndexes() {
24032
+ return this.items.reduce((indexes, item, index) => {
24033
+ if (!item.disabled) {
24034
+ indexes.push(index);
24035
+ }
24036
+ return indexes;
24037
+ }, []);
24038
+ }
24039
+ handleTabNavigation(event, index) {
24040
+ const enabledIndexes = this.enabledIndexes();
24041
+ if (!enabledIndexes.length) {
24042
+ this.close.emit({
24043
+ focusTarget: event.shiftKey ? TableMenuFocusTarget.Previous : TableMenuFocusTarget.Next
24044
+ });
24045
+ return;
24046
+ }
24047
+ const currentEnabledPosition = enabledIndexes.indexOf(index);
24048
+ if (currentEnabledPosition === -1) {
24049
+ event.preventDefault();
24050
+ event.stopPropagation();
24051
+ this.close.emit({
24052
+ focusTarget: event.shiftKey ? TableMenuFocusTarget.Previous : TableMenuFocusTarget.Next
24053
+ });
24054
+ return;
24055
+ }
24056
+ const isFirstEnabledItem = currentEnabledPosition === 0;
24057
+ const isLastEnabledItem = currentEnabledPosition === enabledIndexes.length - 1;
24058
+ if (event.shiftKey) {
24059
+ if (isFirstEnabledItem) {
24060
+ event.preventDefault();
24061
+ event.stopPropagation();
24062
+ this.close.emit({ focusTarget: TableMenuFocusTarget.Previous });
24063
+ return;
24064
+ }
24065
+ event.preventDefault();
24066
+ this.focusIndex(enabledIndexes[currentEnabledPosition - 1]);
24067
+ return;
24068
+ }
24069
+ if (isLastEnabledItem) {
24070
+ event.preventDefault();
24071
+ event.stopPropagation();
24072
+ this.close.emit({ focusTarget: TableMenuFocusTarget.Next });
24073
+ return;
24074
+ }
24075
+ event.preventDefault();
24076
+ this.focusIndex(enabledIndexes[currentEnabledPosition + 1]);
24077
+ }
23891
24078
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableActionsMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23892
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableActionsMenuComponent, isStandalone: true, selector: "sdc-table-actions-menu", inputs: { items: "items", left: "left", top: "top", width: "width" }, outputs: { select: "select" }, ngImport: i0, template: `
24079
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableActionsMenuComponent, isStandalone: true, selector: "sdc-table-actions-menu", inputs: { ariaLabel: "ariaLabel", items: "items", left: "left", menuId: "menuId", top: "top", width: "width" }, outputs: { close: "close", select: "select" }, viewQueries: [{ propertyName: "menuItems", predicate: ["menuItem"], descendants: true }], ngImport: i0, template: `
23893
24080
  <div
23894
24081
  class="sdc-actions-menu sdc-actions-menu--portal"
24082
+ [id]="menuId || null"
23895
24083
  [style.top.px]="top"
23896
24084
  [style.left.px]="left"
23897
24085
  [style.min-width.px]="width"
23898
24086
  role="menu"
24087
+ [attr.aria-label]="ariaLabel | translate"
24088
+ aria-orientation="vertical"
23899
24089
  (click)="$event.stopPropagation()"
23900
24090
  >
23901
24091
  @for (item of items; track item.key + '-' + $index) {
23902
24092
  <button
24093
+ #menuItem
23903
24094
  type="button"
23904
24095
  role="menuitem"
23905
24096
  class="sdc-actions-item"
23906
24097
  [disabled]="item.disabled"
23907
24098
  [class.sdc-actions-item--disabled]="item.disabled"
23908
24099
  [attr.aria-disabled]="item.disabled || null"
24100
+ [attr.tabindex]="item.disabled ? -1 : (activeIndex === $index ? 0 : -1)"
24101
+ (focus)="onItemFocus($index)"
24102
+ (keydown)="onItemKeydown($event, $index)"
23909
24103
  (click)="select.emit(item)"
23910
24104
  >
23911
24105
  <span class="sdc-actions-item__content">
@@ -23924,20 +24118,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
23924
24118
  args: [{ selector: 'sdc-table-actions-menu', standalone: true, imports: [CommonModule, TranslateModule, IconRendererComponent], template: `
23925
24119
  <div
23926
24120
  class="sdc-actions-menu sdc-actions-menu--portal"
24121
+ [id]="menuId || null"
23927
24122
  [style.top.px]="top"
23928
24123
  [style.left.px]="left"
23929
24124
  [style.min-width.px]="width"
23930
24125
  role="menu"
24126
+ [attr.aria-label]="ariaLabel | translate"
24127
+ aria-orientation="vertical"
23931
24128
  (click)="$event.stopPropagation()"
23932
24129
  >
23933
24130
  @for (item of items; track item.key + '-' + $index) {
23934
24131
  <button
24132
+ #menuItem
23935
24133
  type="button"
23936
24134
  role="menuitem"
23937
24135
  class="sdc-actions-item"
23938
24136
  [disabled]="item.disabled"
23939
24137
  [class.sdc-actions-item--disabled]="item.disabled"
23940
24138
  [attr.aria-disabled]="item.disabled || null"
24139
+ [attr.tabindex]="item.disabled ? -1 : (activeIndex === $index ? 0 : -1)"
24140
+ (focus)="onItemFocus($index)"
24141
+ (keydown)="onItemKeydown($event, $index)"
23941
24142
  (click)="select.emit(item)"
23942
24143
  >
23943
24144
  <span class="sdc-actions-item__content">
@@ -23950,14 +24151,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
23950
24151
  }
23951
24152
  </div>
23952
24153
  `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".sdc-actions-menu{background:#fff;border:1px solid #d1d5db;border-radius:0;box-shadow:0 1px 2px #0f172a14;padding:0}.sdc-actions-menu--portal{position:fixed;z-index:2147483647}.sdc-actions-item{width:100%;display:flex;align-items:stretch;justify-content:flex-start;border:0;border-bottom:1px solid #e5e7eb;background:#fff;padding:0;text-align:left;cursor:pointer;font:inherit;color:#374151;min-height:2.25rem;transition:background-color .15s ease,color .15s ease}.sdc-actions-item:last-child{border-bottom:0}.sdc-actions-item__content{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem .875rem;width:100%;font-size:.8125rem;line-height:1.2}.sdc-actions-item:hover:not(:disabled),.sdc-actions-item:focus-visible:not(:disabled){background:#f9fafb;outline:none}.sdc-actions-item:disabled,.sdc-actions-item.sdc-actions-item--disabled,.sdc-actions-item[data-disabled=true]{color:#9ca3af;cursor:not-allowed;background:#fff;pointer-events:none}.sdc-actions-item:disabled .sdc-actions-item__content,.sdc-actions-item.sdc-actions-item--disabled .sdc-actions-item__content,.sdc-actions-item[data-disabled=true] .sdc-actions-item__content{opacity:.55}\n"] }]
23953
- }], propDecorators: { items: [{
24154
+ }], propDecorators: { menuItems: [{
24155
+ type: ViewChildren,
24156
+ args: ['menuItem']
24157
+ }], ariaLabel: [{
24158
+ type: Input
24159
+ }], items: [{
23954
24160
  type: Input
23955
24161
  }], left: [{
23956
24162
  type: Input
24163
+ }], menuId: [{
24164
+ type: Input
23957
24165
  }], top: [{
23958
24166
  type: Input
23959
24167
  }], width: [{
23960
24168
  type: Input
24169
+ }], close: [{
24170
+ type: Output
23961
24171
  }], select: [{
23962
24172
  type: Output
23963
24173
  }] } });
@@ -24322,6 +24532,7 @@ class TableCellContentComponent {
24322
24532
  resolveValue;
24323
24533
  row;
24324
24534
  actionsMenuOpen = false;
24535
+ actionsMenuId = null;
24325
24536
  defaultTextOverflow;
24326
24537
  rowCheckboxId = '';
24327
24538
  rowLabel = 'item';
@@ -24387,7 +24598,7 @@ class TableCellContentComponent {
24387
24598
  this.toggleActionsMenu.emit({ event, trigger });
24388
24599
  }
24389
24600
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableCellContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24390
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableCellContentComponent, isStandalone: true, selector: "sdc-table-cell-content", inputs: { cellConfigs: "cellConfigs", col: "col", resolveValue: "resolveValue", row: "row", actionsMenuOpen: "actionsMenuOpen", defaultTextOverflow: "defaultTextOverflow", rowCheckboxId: "rowCheckboxId", rowLabel: "rowLabel", rowSelected: "rowSelected" }, outputs: { toggleActionsMenu: "toggleActionsMenu", toggleRow: "toggleRow", triggerButtonAction: "triggerButtonAction" }, host: { properties: { "class.sdc-table-cell-content--align-left": "resolvedAlignment === 'left'", "class.sdc-table-cell-content--align-center": "resolvedAlignment === 'center'", "class.sdc-table-cell-content--align-right": "resolvedAlignment === 'right'", "class.sdc-table-cell-content--nowrap": "col?.textOverflow === 'none'" } }, ngImport: i0, template: "<div class=\"sdc-table-content\">\n @if (col.content?.length) {\n <div class=\"sdc-table-multi-content\">\n @for (item of col.content!; track $index) {\n @switch (item.type ?? 'text') {\n @case ('strong') {\n <strong\n [ngStyle]=\"item.style\"\n [class]=\"item.class ?? ''\"\n >{{ cellTextValue(item.field) | translate }}</strong>\n }\n @case ('code') {\n <code [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) }}</code>\n }\n @default {\n <span [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) | translate }}</span>\n }\n }\n }\n </div>\n } @else {\n @switch (col.type ?? 'text') {\n @case ('checkbox-selection') {\n <div class=\"sdc-table-checkbox\">\n <input\n type=\"checkbox\"\n [id]=\"rowCheckboxId\"\n [checked]=\"rowSelected\"\n (change)=\"toggleRow.emit(getCheckedValue($event))\"\n [attr.aria-label]=\"\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n \"\n [attr.aria-checked]=\"rowSelected\"\n />\n <label [attr.for]=\"rowCheckboxId\" class=\"sr-only\">\n {{\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n }}\n </label>\n </div>\n }\n\n @case ('date') {\n <span class=\"sdc-table-text\" [attr.title]=\"ellipsisTitleText(formatDate())\">{{ formatDate() }}</span>\n }\n\n @case ('strong') {\n <span class=\"sdc-table-strong-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n\n @case ('code') {\n <code class=\"sdc-table-code-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue())\">{{ displayText() }}</code>\n }\n\n @case ('currency') {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(formatCurrency())\">{{ formatCurrency() }}</span>\n }\n\n @case ('tag') {\n <div class=\"sdc-table-tags\">\n @for (tagItem of tagItems(); track tagItem.label + '-' + $index) {\n <span\n class=\"sdc-table-tag\"\n [class.sdc-table-tag--enabled]=\"tagItem.tone === 'enabled'\"\n [class.sdc-table-tag--disabled]=\"tagItem.tone === 'disabled'\"\n [ngStyle]=\"tagItem.styles\"\n [attr.title]=\"tagItem.tooltip ? (tagItem.tooltip | translate) : null\"\n >\n @if (tagItem.icon) {\n <sdc-icon-renderer\n class=\"sdc-table-tag__icon\"\n [icon]=\"tagItem.icon\"\n [iconType]=\"tagItem.iconType\"\n [size]=\"tagIconSize\"\n ></sdc-icon-renderer>\n }\n {{ tagItem.label | translate }}\n </span>\n }\n </div>\n }\n\n @case ('button') {\n <div class=\"sdc-table-button\">\n <sdc-button\n class=\"sdc-table-action-button\"\n [size]=\"cellConfigs.button.size ?? 'default'\"\n [priority]=\"cellConfigs.button.priority || 'primary'\"\n [icon]=\"cellConfigs.button.icon\"\n [label]=\"cellConfigs.button.label ?? ''\"\n [disabled]=\"cellConfigs.button.disabled ?? false\"\n [title]=\"cellConfigs.button.tooltip\"\n [attr.size]=\"cellConfigs.button.size\"\n [attr.priority]=\"cellConfigs.button.priority || 'primary'\"\n [attr.severity]=\"cellConfigs.button.priority || 'primary'\"\n [attr.icon]=\"cellConfigs.button.icon\"\n [attr.label]=\"cellConfigs.button.label\"\n [attr.disabled]=\"cellConfigs.button.disabled ? '' : null\"\n [attr.title]=\"cellConfigs.button.tooltip || null\"\n [attr.aria-label]=\"\n (buttonAriaLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.data-key]=\"buttonKey()\"\n (click)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.enter)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.space)=\"$event.preventDefault(); cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n ></sdc-button>\n </div>\n }\n\n @case ('actions') {\n <div\n class=\"sdc-table-actions\"\n [class.sdc-table-actions--open]=\"actionsMenuOpen\"\n >\n <button\n #actionsTrigger\n type=\"button\"\n class=\"sdc-table-actions-trigger\"\n [class.sdc-table-actions-trigger--open]=\"actionsMenuOpen\"\n [attr.aria-label]=\"\n (actionsButtonLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-expanded]=\"actionsMenuOpen\"\n (click)=\"onActionsClick($event, actionsTrigger)\"\n >\n <span class=\"sdc-table-actions-trigger__label\">\n {{ actionsButtonLabel() | translate }}\n </span>\n <i class=\"fas fa-chevron-down sdc-table-actions-trigger__icon\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @case ('icon') {\n @if (iconPresentation(); as iconItem) {\n <span\n class=\"sdc-table-icon\"\n [ngStyle]=\"iconItem.colorStyle\"\n [attr.title]=\"iconItem.tooltip ? (iconItem.tooltip | translate) : null\"\n [attr.aria-label]=\"\n (iconItem.label || iconItem.tooltip)\n ? ((iconItem.label || iconItem.tooltip)! | translate)\n : null\n \"\n >\n @if (iconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"iconItem.icon\"\n [iconType]=\"iconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (iconItem.label) {\n <span class=\"sdc-table-icon__label\">{{ iconItem.label | translate }}</span>\n }\n </span>\n }\n }\n\n @case ('icon-title') {\n @if (titleIconPresentation(); as titleIconItem) {\n <span\n class=\"sdc-table-icon-title\"\n [ngStyle]=\"titleIconItem.colorStyle\"\n [attr.title]=\"titleIconItem.tooltip ? (titleIconItem.tooltip | translate) : null\"\n >\n @if (titleIconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"titleIconItem.icon\"\n [iconType]=\"titleIconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (titleIconItem.label) {\n <span [attr.title]=\"ellipsisTitleText(titleIconItem.label | translate)\">\n {{ titleIconItem.label | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n </span>\n }\n }\n\n @default {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n }\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table-content{display:flex;align-items:center;width:100%;min-width:0}:host(.sdc-table-cell-content--align-left) .sdc-table-content{justify-content:flex-start;text-align:left}:host(.sdc-table-cell-content--align-center) .sdc-table-content{justify-content:center;text-align:center}:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-end;text-align:right}.sdc-table-multi-content{display:flex;flex-direction:column;gap:.25rem;min-width:0;max-width:100%}.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span,.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-table-strong-label{font-weight:500}.sdc-table-code-label{color:var(--sdc-tab-primary)}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}.sdc-table-tag{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;min-width:fit-content;max-width:100%;border-radius:9999px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid currentColor;box-sizing:border-box;font-size:.875rem;padding:.35rem .875rem}.sdc-table-tag__icon{flex:0 0 auto}.sdc-table-tag--enabled{background:#dcfce7;color:#16a34a;border-color:#16a34a}.sdc-table-tag--disabled{background:#fee2e2;color:#ef4444;border-color:#ef4444}.sdc-table-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;min-width:0}.sdc-table-button ::ng-deep sdc-button,.sdc-table-button ::ng-deep button{min-height:unset;min-width:unset;max-width:100%}.sdc-table-action-button{width:100%;max-width:100%;min-width:0}.sdc-table-icon,.sdc-table-icon-title{display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}.sdc-table-icon__label,.sdc-table-icon-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-checkbox input[type=checkbox]{cursor:pointer}.sdc-table-actions{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0}.sdc-table-actions-trigger{appearance:none;border:1px solid #c9ced6;background:#fff;border-radius:999px;min-width:4.875rem;height:2rem;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font:inherit;font-size:.8125rem;color:#374151;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.sdc-table-actions-trigger:hover{background:#f9fafb}.sdc-table-actions-trigger:focus-visible,.sdc-table-actions-trigger--open{outline:none;border-color:#9ca3af;box-shadow:0 0 0 2px #1118270a}.sdc-table-actions-trigger__label{line-height:1;white-space:nowrap}.sdc-table-actions-trigger__icon{font-size:.625rem;line-height:1;color:#6b7280}@media (max-width: 768px){.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.sdc-table-tag{font-size:.8125rem;padding:.35rem .75rem}.sdc-table-actions-trigger{min-width:4.375rem;height:1.75rem;padding:0 .625rem;font-size:.75rem}.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label,.sdc-table-icon__label,.sdc-table-icon-title span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}:host(.sdc-table-cell-content--align-center) .sdc-table-content,:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-start;text-align:left}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: IconRendererComponent, selector: "sdc-icon-renderer", inputs: ["icon", "iconType", "size"] }, { kind: "pipe", type: SdcTruncatePipe, name: "sdcTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24601
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableCellContentComponent, isStandalone: true, selector: "sdc-table-cell-content", inputs: { cellConfigs: "cellConfigs", col: "col", resolveValue: "resolveValue", row: "row", actionsMenuOpen: "actionsMenuOpen", actionsMenuId: "actionsMenuId", defaultTextOverflow: "defaultTextOverflow", rowCheckboxId: "rowCheckboxId", rowLabel: "rowLabel", rowSelected: "rowSelected" }, outputs: { toggleActionsMenu: "toggleActionsMenu", toggleRow: "toggleRow", triggerButtonAction: "triggerButtonAction" }, host: { properties: { "class.sdc-table-cell-content--align-left": "resolvedAlignment === 'left'", "class.sdc-table-cell-content--align-center": "resolvedAlignment === 'center'", "class.sdc-table-cell-content--align-right": "resolvedAlignment === 'right'", "class.sdc-table-cell-content--nowrap": "col?.textOverflow === 'none'" } }, ngImport: i0, template: "<div class=\"sdc-table-content\">\n @if (col.content?.length) {\n <div class=\"sdc-table-multi-content\">\n @for (item of col.content!; track $index) {\n @switch (item.type ?? 'text') {\n @case ('strong') {\n <strong\n [ngStyle]=\"item.style\"\n [class]=\"item.class ?? ''\"\n >{{ cellTextValue(item.field) | translate }}</strong>\n }\n @case ('code') {\n <code [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) }}</code>\n }\n @default {\n <span [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) | translate }}</span>\n }\n }\n }\n </div>\n } @else {\n @switch (col.type ?? 'text') {\n @case ('checkbox-selection') {\n <div class=\"sdc-table-checkbox\">\n <input\n type=\"checkbox\"\n [id]=\"rowCheckboxId\"\n [checked]=\"rowSelected\"\n (change)=\"toggleRow.emit(getCheckedValue($event))\"\n [attr.aria-label]=\"\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n \"\n [attr.aria-checked]=\"rowSelected\"\n />\n <label [attr.for]=\"rowCheckboxId\" class=\"sr-only\">\n {{\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n }}\n </label>\n </div>\n }\n\n @case ('date') {\n <span class=\"sdc-table-text\" [attr.title]=\"ellipsisTitleText(formatDate())\">{{ formatDate() }}</span>\n }\n\n @case ('strong') {\n <span class=\"sdc-table-strong-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n\n @case ('code') {\n <code class=\"sdc-table-code-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue())\">{{ displayText() }}</code>\n }\n\n @case ('currency') {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(formatCurrency())\">{{ formatCurrency() }}</span>\n }\n\n @case ('tag') {\n <div class=\"sdc-table-tags\">\n @for (tagItem of tagItems(); track tagItem.label + '-' + $index) {\n <span\n class=\"sdc-table-tag\"\n [class.sdc-table-tag--enabled]=\"tagItem.tone === 'enabled'\"\n [class.sdc-table-tag--disabled]=\"tagItem.tone === 'disabled'\"\n [ngStyle]=\"tagItem.styles\"\n [attr.title]=\"tagItem.tooltip ? (tagItem.tooltip | translate) : null\"\n >\n @if (tagItem.icon) {\n <sdc-icon-renderer\n class=\"sdc-table-tag__icon\"\n [icon]=\"tagItem.icon\"\n [iconType]=\"tagItem.iconType\"\n [size]=\"tagIconSize\"\n ></sdc-icon-renderer>\n }\n {{ tagItem.label | translate }}\n </span>\n }\n </div>\n }\n\n @case ('button') {\n <div class=\"sdc-table-button\">\n <sdc-button\n class=\"sdc-table-action-button\"\n [size]=\"cellConfigs.button.size ?? 'default'\"\n [priority]=\"cellConfigs.button.priority || 'primary'\"\n [icon]=\"cellConfigs.button.icon\"\n [label]=\"cellConfigs.button.label ?? ''\"\n [disabled]=\"cellConfigs.button.disabled ?? false\"\n [title]=\"cellConfigs.button.tooltip\"\n [attr.size]=\"cellConfigs.button.size\"\n [attr.priority]=\"cellConfigs.button.priority || 'primary'\"\n [attr.severity]=\"cellConfigs.button.priority || 'primary'\"\n [attr.icon]=\"cellConfigs.button.icon\"\n [attr.label]=\"cellConfigs.button.label\"\n [attr.disabled]=\"cellConfigs.button.disabled ? '' : null\"\n [attr.title]=\"cellConfigs.button.tooltip || null\"\n [attr.aria-label]=\"\n (buttonAriaLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.data-key]=\"buttonKey()\"\n (click)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.enter)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.space)=\"$event.preventDefault(); cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n ></sdc-button>\n </div>\n }\n\n @case ('actions') {\n <div\n class=\"sdc-table-actions\"\n [class.sdc-table-actions--open]=\"actionsMenuOpen\"\n >\n <button\n #actionsTrigger\n type=\"button\"\n class=\"sdc-table-actions-trigger\"\n [class.sdc-table-actions-trigger--open]=\"actionsMenuOpen\"\n [attr.aria-label]=\"\n (actionsButtonLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-controls]=\"actionsMenuOpen ? actionsMenuId : null\"\n [attr.aria-expanded]=\"actionsMenuOpen\"\n (click)=\"onActionsClick($event, actionsTrigger)\"\n >\n <span class=\"sdc-table-actions-trigger__label\">\n {{ actionsButtonLabel() | translate }}\n </span>\n <i class=\"fas fa-chevron-down sdc-table-actions-trigger__icon\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @case ('icon') {\n @if (iconPresentation(); as iconItem) {\n <span\n class=\"sdc-table-icon\"\n [ngStyle]=\"iconItem.colorStyle\"\n [attr.title]=\"iconItem.tooltip ? (iconItem.tooltip | translate) : null\"\n [attr.aria-label]=\"\n (iconItem.label || iconItem.tooltip)\n ? ((iconItem.label || iconItem.tooltip)! | translate)\n : null\n \"\n >\n @if (iconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"iconItem.icon\"\n [iconType]=\"iconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (iconItem.label) {\n <span class=\"sdc-table-icon__label\">{{ iconItem.label | translate }}</span>\n }\n </span>\n }\n }\n\n @case ('icon-title') {\n @if (titleIconPresentation(); as titleIconItem) {\n <span\n class=\"sdc-table-icon-title\"\n [ngStyle]=\"titleIconItem.colorStyle\"\n [attr.title]=\"titleIconItem.tooltip ? (titleIconItem.tooltip | translate) : null\"\n >\n @if (titleIconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"titleIconItem.icon\"\n [iconType]=\"titleIconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (titleIconItem.label) {\n <span [attr.title]=\"ellipsisTitleText(titleIconItem.label | translate)\">\n {{ titleIconItem.label | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n </span>\n }\n }\n\n @default {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n }\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table-content{display:flex;align-items:center;width:100%;min-width:0}:host(.sdc-table-cell-content--align-left) .sdc-table-content{justify-content:flex-start;text-align:left}:host(.sdc-table-cell-content--align-center) .sdc-table-content{justify-content:center;text-align:center}:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-end;text-align:right}.sdc-table-multi-content{display:flex;flex-direction:column;gap:.25rem;min-width:0;max-width:100%}.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span,.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-table-strong-label{font-weight:500}.sdc-table-code-label{color:var(--sdc-tab-primary)}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}.sdc-table-tag{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;min-width:fit-content;max-width:100%;border-radius:9999px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid currentColor;box-sizing:border-box;font-size:.875rem;padding:.35rem .875rem}.sdc-table-tag__icon{flex:0 0 auto}.sdc-table-tag--enabled{background:#dcfce7;color:#16a34a;border-color:#16a34a}.sdc-table-tag--disabled{background:#fee2e2;color:#ef4444;border-color:#ef4444}.sdc-table-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;min-width:0}.sdc-table-button ::ng-deep sdc-button,.sdc-table-button ::ng-deep button{min-height:unset;min-width:unset;max-width:100%}.sdc-table-action-button{width:100%;max-width:100%;min-width:0}.sdc-table-icon,.sdc-table-icon-title{display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}.sdc-table-icon__label,.sdc-table-icon-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-checkbox input[type=checkbox]{cursor:pointer}.sdc-table-actions{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0}.sdc-table-actions-trigger{appearance:none;border:1px solid #c9ced6;background:#fff;border-radius:999px;min-width:4.875rem;height:2rem;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font:inherit;font-size:.8125rem;color:#374151;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.sdc-table-actions-trigger:hover{background:#f9fafb}.sdc-table-actions-trigger:focus-visible,.sdc-table-actions-trigger--open{outline:none;border-color:#9ca3af;box-shadow:0 0 0 2px #1118270a}.sdc-table-actions-trigger__label{line-height:1;white-space:nowrap}.sdc-table-actions-trigger__icon{font-size:.625rem;line-height:1;color:#6b7280}@media (max-width: 768px){.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.sdc-table-tag{font-size:.8125rem;padding:.35rem .75rem}.sdc-table-actions-trigger{min-width:4.375rem;height:1.75rem;padding:0 .625rem;font-size:.75rem}.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label,.sdc-table-icon__label,.sdc-table-icon-title span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}:host(.sdc-table-cell-content--align-center) .sdc-table-content,:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-start;text-align:left}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: IconRendererComponent, selector: "sdc-icon-renderer", inputs: ["icon", "iconType", "size"] }, { kind: "pipe", type: SdcTruncatePipe, name: "sdcTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24391
24602
  }
24392
24603
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableCellContentComponent, decorators: [{
24393
24604
  type: Component,
@@ -24396,7 +24607,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
24396
24607
  '[class.sdc-table-cell-content--align-center]': "resolvedAlignment === 'center'",
24397
24608
  '[class.sdc-table-cell-content--align-right]': "resolvedAlignment === 'right'",
24398
24609
  '[class.sdc-table-cell-content--nowrap]': "col?.textOverflow === 'none'"
24399
- }, template: "<div class=\"sdc-table-content\">\n @if (col.content?.length) {\n <div class=\"sdc-table-multi-content\">\n @for (item of col.content!; track $index) {\n @switch (item.type ?? 'text') {\n @case ('strong') {\n <strong\n [ngStyle]=\"item.style\"\n [class]=\"item.class ?? ''\"\n >{{ cellTextValue(item.field) | translate }}</strong>\n }\n @case ('code') {\n <code [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) }}</code>\n }\n @default {\n <span [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) | translate }}</span>\n }\n }\n }\n </div>\n } @else {\n @switch (col.type ?? 'text') {\n @case ('checkbox-selection') {\n <div class=\"sdc-table-checkbox\">\n <input\n type=\"checkbox\"\n [id]=\"rowCheckboxId\"\n [checked]=\"rowSelected\"\n (change)=\"toggleRow.emit(getCheckedValue($event))\"\n [attr.aria-label]=\"\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n \"\n [attr.aria-checked]=\"rowSelected\"\n />\n <label [attr.for]=\"rowCheckboxId\" class=\"sr-only\">\n {{\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n }}\n </label>\n </div>\n }\n\n @case ('date') {\n <span class=\"sdc-table-text\" [attr.title]=\"ellipsisTitleText(formatDate())\">{{ formatDate() }}</span>\n }\n\n @case ('strong') {\n <span class=\"sdc-table-strong-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n\n @case ('code') {\n <code class=\"sdc-table-code-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue())\">{{ displayText() }}</code>\n }\n\n @case ('currency') {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(formatCurrency())\">{{ formatCurrency() }}</span>\n }\n\n @case ('tag') {\n <div class=\"sdc-table-tags\">\n @for (tagItem of tagItems(); track tagItem.label + '-' + $index) {\n <span\n class=\"sdc-table-tag\"\n [class.sdc-table-tag--enabled]=\"tagItem.tone === 'enabled'\"\n [class.sdc-table-tag--disabled]=\"tagItem.tone === 'disabled'\"\n [ngStyle]=\"tagItem.styles\"\n [attr.title]=\"tagItem.tooltip ? (tagItem.tooltip | translate) : null\"\n >\n @if (tagItem.icon) {\n <sdc-icon-renderer\n class=\"sdc-table-tag__icon\"\n [icon]=\"tagItem.icon\"\n [iconType]=\"tagItem.iconType\"\n [size]=\"tagIconSize\"\n ></sdc-icon-renderer>\n }\n {{ tagItem.label | translate }}\n </span>\n }\n </div>\n }\n\n @case ('button') {\n <div class=\"sdc-table-button\">\n <sdc-button\n class=\"sdc-table-action-button\"\n [size]=\"cellConfigs.button.size ?? 'default'\"\n [priority]=\"cellConfigs.button.priority || 'primary'\"\n [icon]=\"cellConfigs.button.icon\"\n [label]=\"cellConfigs.button.label ?? ''\"\n [disabled]=\"cellConfigs.button.disabled ?? false\"\n [title]=\"cellConfigs.button.tooltip\"\n [attr.size]=\"cellConfigs.button.size\"\n [attr.priority]=\"cellConfigs.button.priority || 'primary'\"\n [attr.severity]=\"cellConfigs.button.priority || 'primary'\"\n [attr.icon]=\"cellConfigs.button.icon\"\n [attr.label]=\"cellConfigs.button.label\"\n [attr.disabled]=\"cellConfigs.button.disabled ? '' : null\"\n [attr.title]=\"cellConfigs.button.tooltip || null\"\n [attr.aria-label]=\"\n (buttonAriaLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.data-key]=\"buttonKey()\"\n (click)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.enter)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.space)=\"$event.preventDefault(); cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n ></sdc-button>\n </div>\n }\n\n @case ('actions') {\n <div\n class=\"sdc-table-actions\"\n [class.sdc-table-actions--open]=\"actionsMenuOpen\"\n >\n <button\n #actionsTrigger\n type=\"button\"\n class=\"sdc-table-actions-trigger\"\n [class.sdc-table-actions-trigger--open]=\"actionsMenuOpen\"\n [attr.aria-label]=\"\n (actionsButtonLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-expanded]=\"actionsMenuOpen\"\n (click)=\"onActionsClick($event, actionsTrigger)\"\n >\n <span class=\"sdc-table-actions-trigger__label\">\n {{ actionsButtonLabel() | translate }}\n </span>\n <i class=\"fas fa-chevron-down sdc-table-actions-trigger__icon\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @case ('icon') {\n @if (iconPresentation(); as iconItem) {\n <span\n class=\"sdc-table-icon\"\n [ngStyle]=\"iconItem.colorStyle\"\n [attr.title]=\"iconItem.tooltip ? (iconItem.tooltip | translate) : null\"\n [attr.aria-label]=\"\n (iconItem.label || iconItem.tooltip)\n ? ((iconItem.label || iconItem.tooltip)! | translate)\n : null\n \"\n >\n @if (iconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"iconItem.icon\"\n [iconType]=\"iconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (iconItem.label) {\n <span class=\"sdc-table-icon__label\">{{ iconItem.label | translate }}</span>\n }\n </span>\n }\n }\n\n @case ('icon-title') {\n @if (titleIconPresentation(); as titleIconItem) {\n <span\n class=\"sdc-table-icon-title\"\n [ngStyle]=\"titleIconItem.colorStyle\"\n [attr.title]=\"titleIconItem.tooltip ? (titleIconItem.tooltip | translate) : null\"\n >\n @if (titleIconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"titleIconItem.icon\"\n [iconType]=\"titleIconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (titleIconItem.label) {\n <span [attr.title]=\"ellipsisTitleText(titleIconItem.label | translate)\">\n {{ titleIconItem.label | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n </span>\n }\n }\n\n @default {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n }\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table-content{display:flex;align-items:center;width:100%;min-width:0}:host(.sdc-table-cell-content--align-left) .sdc-table-content{justify-content:flex-start;text-align:left}:host(.sdc-table-cell-content--align-center) .sdc-table-content{justify-content:center;text-align:center}:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-end;text-align:right}.sdc-table-multi-content{display:flex;flex-direction:column;gap:.25rem;min-width:0;max-width:100%}.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span,.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-table-strong-label{font-weight:500}.sdc-table-code-label{color:var(--sdc-tab-primary)}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}.sdc-table-tag{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;min-width:fit-content;max-width:100%;border-radius:9999px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid currentColor;box-sizing:border-box;font-size:.875rem;padding:.35rem .875rem}.sdc-table-tag__icon{flex:0 0 auto}.sdc-table-tag--enabled{background:#dcfce7;color:#16a34a;border-color:#16a34a}.sdc-table-tag--disabled{background:#fee2e2;color:#ef4444;border-color:#ef4444}.sdc-table-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;min-width:0}.sdc-table-button ::ng-deep sdc-button,.sdc-table-button ::ng-deep button{min-height:unset;min-width:unset;max-width:100%}.sdc-table-action-button{width:100%;max-width:100%;min-width:0}.sdc-table-icon,.sdc-table-icon-title{display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}.sdc-table-icon__label,.sdc-table-icon-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-checkbox input[type=checkbox]{cursor:pointer}.sdc-table-actions{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0}.sdc-table-actions-trigger{appearance:none;border:1px solid #c9ced6;background:#fff;border-radius:999px;min-width:4.875rem;height:2rem;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font:inherit;font-size:.8125rem;color:#374151;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.sdc-table-actions-trigger:hover{background:#f9fafb}.sdc-table-actions-trigger:focus-visible,.sdc-table-actions-trigger--open{outline:none;border-color:#9ca3af;box-shadow:0 0 0 2px #1118270a}.sdc-table-actions-trigger__label{line-height:1;white-space:nowrap}.sdc-table-actions-trigger__icon{font-size:.625rem;line-height:1;color:#6b7280}@media (max-width: 768px){.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.sdc-table-tag{font-size:.8125rem;padding:.35rem .75rem}.sdc-table-actions-trigger{min-width:4.375rem;height:1.75rem;padding:0 .625rem;font-size:.75rem}.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label,.sdc-table-icon__label,.sdc-table-icon-title span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}:host(.sdc-table-cell-content--align-center) .sdc-table-content,:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-start;text-align:left}}\n"] }]
24610
+ }, template: "<div class=\"sdc-table-content\">\n @if (col.content?.length) {\n <div class=\"sdc-table-multi-content\">\n @for (item of col.content!; track $index) {\n @switch (item.type ?? 'text') {\n @case ('strong') {\n <strong\n [ngStyle]=\"item.style\"\n [class]=\"item.class ?? ''\"\n >{{ cellTextValue(item.field) | translate }}</strong>\n }\n @case ('code') {\n <code [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) }}</code>\n }\n @default {\n <span [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) | translate }}</span>\n }\n }\n }\n </div>\n } @else {\n @switch (col.type ?? 'text') {\n @case ('checkbox-selection') {\n <div class=\"sdc-table-checkbox\">\n <input\n type=\"checkbox\"\n [id]=\"rowCheckboxId\"\n [checked]=\"rowSelected\"\n (change)=\"toggleRow.emit(getCheckedValue($event))\"\n [attr.aria-label]=\"\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n \"\n [attr.aria-checked]=\"rowSelected\"\n />\n <label [attr.for]=\"rowCheckboxId\" class=\"sr-only\">\n {{\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n }}\n </label>\n </div>\n }\n\n @case ('date') {\n <span class=\"sdc-table-text\" [attr.title]=\"ellipsisTitleText(formatDate())\">{{ formatDate() }}</span>\n }\n\n @case ('strong') {\n <span class=\"sdc-table-strong-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n\n @case ('code') {\n <code class=\"sdc-table-code-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue())\">{{ displayText() }}</code>\n }\n\n @case ('currency') {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(formatCurrency())\">{{ formatCurrency() }}</span>\n }\n\n @case ('tag') {\n <div class=\"sdc-table-tags\">\n @for (tagItem of tagItems(); track tagItem.label + '-' + $index) {\n <span\n class=\"sdc-table-tag\"\n [class.sdc-table-tag--enabled]=\"tagItem.tone === 'enabled'\"\n [class.sdc-table-tag--disabled]=\"tagItem.tone === 'disabled'\"\n [ngStyle]=\"tagItem.styles\"\n [attr.title]=\"tagItem.tooltip ? (tagItem.tooltip | translate) : null\"\n >\n @if (tagItem.icon) {\n <sdc-icon-renderer\n class=\"sdc-table-tag__icon\"\n [icon]=\"tagItem.icon\"\n [iconType]=\"tagItem.iconType\"\n [size]=\"tagIconSize\"\n ></sdc-icon-renderer>\n }\n {{ tagItem.label | translate }}\n </span>\n }\n </div>\n }\n\n @case ('button') {\n <div class=\"sdc-table-button\">\n <sdc-button\n class=\"sdc-table-action-button\"\n [size]=\"cellConfigs.button.size ?? 'default'\"\n [priority]=\"cellConfigs.button.priority || 'primary'\"\n [icon]=\"cellConfigs.button.icon\"\n [label]=\"cellConfigs.button.label ?? ''\"\n [disabled]=\"cellConfigs.button.disabled ?? false\"\n [title]=\"cellConfigs.button.tooltip\"\n [attr.size]=\"cellConfigs.button.size\"\n [attr.priority]=\"cellConfigs.button.priority || 'primary'\"\n [attr.severity]=\"cellConfigs.button.priority || 'primary'\"\n [attr.icon]=\"cellConfigs.button.icon\"\n [attr.label]=\"cellConfigs.button.label\"\n [attr.disabled]=\"cellConfigs.button.disabled ? '' : null\"\n [attr.title]=\"cellConfigs.button.tooltip || null\"\n [attr.aria-label]=\"\n (buttonAriaLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.data-key]=\"buttonKey()\"\n (click)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.enter)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.space)=\"$event.preventDefault(); cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n ></sdc-button>\n </div>\n }\n\n @case ('actions') {\n <div\n class=\"sdc-table-actions\"\n [class.sdc-table-actions--open]=\"actionsMenuOpen\"\n >\n <button\n #actionsTrigger\n type=\"button\"\n class=\"sdc-table-actions-trigger\"\n [class.sdc-table-actions-trigger--open]=\"actionsMenuOpen\"\n [attr.aria-label]=\"\n (actionsButtonLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-controls]=\"actionsMenuOpen ? actionsMenuId : null\"\n [attr.aria-expanded]=\"actionsMenuOpen\"\n (click)=\"onActionsClick($event, actionsTrigger)\"\n >\n <span class=\"sdc-table-actions-trigger__label\">\n {{ actionsButtonLabel() | translate }}\n </span>\n <i class=\"fas fa-chevron-down sdc-table-actions-trigger__icon\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @case ('icon') {\n @if (iconPresentation(); as iconItem) {\n <span\n class=\"sdc-table-icon\"\n [ngStyle]=\"iconItem.colorStyle\"\n [attr.title]=\"iconItem.tooltip ? (iconItem.tooltip | translate) : null\"\n [attr.aria-label]=\"\n (iconItem.label || iconItem.tooltip)\n ? ((iconItem.label || iconItem.tooltip)! | translate)\n : null\n \"\n >\n @if (iconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"iconItem.icon\"\n [iconType]=\"iconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (iconItem.label) {\n <span class=\"sdc-table-icon__label\">{{ iconItem.label | translate }}</span>\n }\n </span>\n }\n }\n\n @case ('icon-title') {\n @if (titleIconPresentation(); as titleIconItem) {\n <span\n class=\"sdc-table-icon-title\"\n [ngStyle]=\"titleIconItem.colorStyle\"\n [attr.title]=\"titleIconItem.tooltip ? (titleIconItem.tooltip | translate) : null\"\n >\n @if (titleIconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"titleIconItem.icon\"\n [iconType]=\"titleIconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (titleIconItem.label) {\n <span [attr.title]=\"ellipsisTitleText(titleIconItem.label | translate)\">\n {{ titleIconItem.label | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n </span>\n }\n }\n\n @default {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n }\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table-content{display:flex;align-items:center;width:100%;min-width:0}:host(.sdc-table-cell-content--align-left) .sdc-table-content{justify-content:flex-start;text-align:left}:host(.sdc-table-cell-content--align-center) .sdc-table-content{justify-content:center;text-align:center}:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-end;text-align:right}.sdc-table-multi-content{display:flex;flex-direction:column;gap:.25rem;min-width:0;max-width:100%}.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span,.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-table-strong-label{font-weight:500}.sdc-table-code-label{color:var(--sdc-tab-primary)}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}.sdc-table-tag{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;min-width:fit-content;max-width:100%;border-radius:9999px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid currentColor;box-sizing:border-box;font-size:.875rem;padding:.35rem .875rem}.sdc-table-tag__icon{flex:0 0 auto}.sdc-table-tag--enabled{background:#dcfce7;color:#16a34a;border-color:#16a34a}.sdc-table-tag--disabled{background:#fee2e2;color:#ef4444;border-color:#ef4444}.sdc-table-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;min-width:0}.sdc-table-button ::ng-deep sdc-button,.sdc-table-button ::ng-deep button{min-height:unset;min-width:unset;max-width:100%}.sdc-table-action-button{width:100%;max-width:100%;min-width:0}.sdc-table-icon,.sdc-table-icon-title{display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}.sdc-table-icon__label,.sdc-table-icon-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-checkbox input[type=checkbox]{cursor:pointer}.sdc-table-actions{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0}.sdc-table-actions-trigger{appearance:none;border:1px solid #c9ced6;background:#fff;border-radius:999px;min-width:4.875rem;height:2rem;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font:inherit;font-size:.8125rem;color:#374151;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.sdc-table-actions-trigger:hover{background:#f9fafb}.sdc-table-actions-trigger:focus-visible,.sdc-table-actions-trigger--open{outline:none;border-color:#9ca3af;box-shadow:0 0 0 2px #1118270a}.sdc-table-actions-trigger__label{line-height:1;white-space:nowrap}.sdc-table-actions-trigger__icon{font-size:.625rem;line-height:1;color:#6b7280}@media (max-width: 768px){.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.sdc-table-tag{font-size:.8125rem;padding:.35rem .75rem}.sdc-table-actions-trigger{min-width:4.375rem;height:1.75rem;padding:0 .625rem;font-size:.75rem}.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label,.sdc-table-icon__label,.sdc-table-icon-title span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}:host(.sdc-table-cell-content--align-center) .sdc-table-content,:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-start;text-align:left}}\n"] }]
24400
24611
  }], propDecorators: { cellConfigs: [{
24401
24612
  type: Input,
24402
24613
  args: [{ required: true }]
@@ -24411,6 +24622,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
24411
24622
  args: [{ required: true }]
24412
24623
  }], actionsMenuOpen: [{
24413
24624
  type: Input
24625
+ }], actionsMenuId: [{
24626
+ type: Input
24414
24627
  }], defaultTextOverflow: [{
24415
24628
  type: Input
24416
24629
  }], rowCheckboxId: [{
@@ -24524,6 +24737,7 @@ function buildTableCellConfigMap(options) {
24524
24737
  }
24525
24738
 
24526
24739
  class TableComponent {
24740
+ actionsMenuIdSequence = 0;
24527
24741
  colsSignal = signal([]);
24528
24742
  dataSignal = signal([]);
24529
24743
  loadingSignal = signal(false);
@@ -24664,7 +24878,7 @@ class TableComponent {
24664
24878
  this.closeActionsMenu();
24665
24879
  }
24666
24880
  onEscapeKey() {
24667
- this.closeActionsMenu();
24881
+ this.closeActionsMenu(TableMenuFocusTarget.Trigger);
24668
24882
  }
24669
24883
  onWindowResize() {
24670
24884
  this.viewportWidthSignal.set(getViewportWidth());
@@ -24821,18 +25035,26 @@ class TableComponent {
24821
25035
  const actionsOptions = this.cellCfg('actions');
24822
25036
  const items = this.actionItemsFor(row, actionsOptions);
24823
25037
  const rect = triggerElement.getBoundingClientRect();
25038
+ const menuId = this.nextActionsMenuId();
24824
25039
  this.openMenuState.set({
24825
25040
  row,
24826
25041
  col,
24827
25042
  items,
25043
+ menuId,
24828
25044
  closeOnClick: actionsOptions?.closeOnClick !== false,
25045
+ trigger: triggerElement,
24829
25046
  top: rect.bottom + TABLE_MENU_GAP_PX,
24830
25047
  left: rect.left,
24831
25048
  width: rect.width
24832
25049
  });
24833
25050
  }
24834
- closeActionsMenu() {
25051
+ closeActionsMenu(focusTarget = TableMenuFocusTarget.None) {
25052
+ const menu = this.openMenuState();
24835
25053
  this.openMenuState.set(null);
25054
+ if (!menu || focusTarget === TableMenuFocusTarget.None) {
25055
+ return;
25056
+ }
25057
+ queueMicrotask(() => this.focusClosedMenuTarget(menu.trigger, menu.menuId, focusTarget));
24836
25058
  }
24837
25059
  isActionsMenuOpen(row, col) {
24838
25060
  const menu = this.openMenuState();
@@ -24863,6 +25085,9 @@ class TableComponent {
24863
25085
  this.closeActionsMenu();
24864
25086
  }
24865
25087
  }
25088
+ onMenuClose(event) {
25089
+ this.closeActionsMenu(event.focusTarget);
25090
+ }
24866
25091
  onActionSelect(row, col, item) {
24867
25092
  if (item.disabled) {
24868
25093
  return;
@@ -24907,8 +25132,31 @@ class TableComponent {
24907
25132
  }
24908
25133
  return item.disabled === true;
24909
25134
  }
25135
+ nextActionsMenuId() {
25136
+ this.actionsMenuIdSequence += 1;
25137
+ return `sdc-table-actions-menu-${this.actionsMenuIdSequence}`;
25138
+ }
25139
+ focusClosedMenuTarget(trigger, menuId, focusTarget) {
25140
+ if (!trigger.isConnected) {
25141
+ return;
25142
+ }
25143
+ if (focusTarget === TableMenuFocusTarget.Trigger) {
25144
+ trigger.focus();
25145
+ return;
25146
+ }
25147
+ const ownerDocument = trigger.ownerDocument;
25148
+ const menuElement = ownerDocument.getElementById(menuId);
25149
+ const focusableElements = getFocusableElements(ownerDocument).filter((element) => !menuElement?.contains(element));
25150
+ const currentIndex = focusableElements.indexOf(trigger);
25151
+ if (currentIndex === -1) {
25152
+ return;
25153
+ }
25154
+ const targetIndex = focusTarget === TableMenuFocusTarget.Next ? currentIndex + 1 : currentIndex - 1;
25155
+ const nextElement = focusableElements[targetIndex];
25156
+ nextElement?.focus();
25157
+ }
24910
25158
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24911
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableComponent, isStandalone: true, selector: "sdc-table", inputs: { cols: "cols", data: "data", loading: "loading", config: "config", ariaLabel: "ariaLabel" }, outputs: { action: "action", lazyLoad: "lazyLoad" }, host: { listeners: { "document:click": "onDocumentClick()", "document:keydown.escape": "onEscapeKey()", "window:resize": "onWindowResize()", "window:scroll": "onWindowScroll()" } }, ngImport: i0, template: "<section\n class=\"sdc-table\"\n [class.sdc-table-stack]=\"isMobile()\"\n [class.sdc-table-filtered]=\"!!globalFilter().trim()\"\n [class.sdc-table--loading]=\"isLoading\"\n [class.sdc-table--initial-loading]=\"showInitialLoading()\"\n>\n <sdc-loading-state\n class=\"sdc-table-loading-wrap\"\n [loading]=\"isLoading\"\n [blockWindow]=\"false\"\n [blockDelayMs]=\"0\"\n [indicator]=\"'dots'\"\n >\n <div class=\"sdc-table-shell\" [style.--sdc-table-body-height.px]=\"bodyViewportHeightPx()\">\n @if (showSearch()) {\n <div class=\"sdc-table-caption\">\n <div class=\"sdc-table-caption__search\">\n <sdc-searchbox\n [disabled]=\"isLoading\"\n [placeholder]=\"searchPlaceholder()\"\n [triggerMode]=\"triggerMode()\"\n (onSearch)=\"onSearchTerm($event)\"\n (onClear)=\"onClearSearch()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.search_field' | translate\"\n />\n </div>\n </div>\n }\n\n @if (!isMobile()) {\n <div class=\"sdc-table-scroll\" [style.--sdc-table-min-width.px]=\"tableMinWidthPx()\">\n <table\n class=\"sdc-table-grid\"\n role=\"table\"\n [attr.aria-label]=\"tableAriaLabelKey() | translate\"\n [attr.aria-rowcount]=\"totalRecords()\"\n [attr.aria-busy]=\"isLoading\"\n >\n <colgroup>\n @for (col of cols; track $index) {\n <col [style.width]=\"col.width ?? (columnMinWidthPx(col) + 'px')\" />\n }\n </colgroup>\n\n <thead>\n <tr role=\"row\">\n @for (col of cols; track $index) {\n <th\n scope=\"col\"\n role=\"columnheader\"\n [class.sdc-table-th-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-th-currency]=\"col.type === 'currency'\"\n [class.sdc-table-th-button]=\"col.type === 'button'\"\n [class.sdc-table-th-actions]=\"col.type === 'actions'\"\n [class.sdc-table-sortable]=\"isSortableColumn(col)\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [attr.aria-sort]=\"getSortAriaAttribute(col)\"\n [attr.tabindex]=\"isSortableColumn(col) ? 0 : null\"\n [attr.aria-label]=\"\n isSortableColumn(col)\n ? (\n (col.header | translate)\n + ' - '\n + ('platform.datacore.accessibility.sortable_column' | translate)\n )\n : (col.header | translate)\n \"\n (click)=\"col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n (keydown.enter)=\"col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n (keydown.space)=\"$event.preventDefault();\n col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n >\n <div class=\"sdc-table-th-inner\" [class.sdc-table-sortable]=\"isSortableColumn(col)\">\n <span class=\"sdc-table-th-label\" aria-hidden=\"true\">{{ col.header | translate }}</span>\n\n <span class=\"sdc-table-sort-overlay\" aria-hidden=\"true\">\n <sdc-table-sort-indicator\n [columnField]=\"col.field || null\"\n [columnType]=\"col.type\"\n [sortable]=\"isSortableColumn(col)\"\n [sortField]=\"sortField()\"\n [sortOrder]=\"sortOrder()\"\n ></sdc-table-sort-indicator>\n </span>\n </div>\n\n @if (col.type === 'checkbox-selection' && (cellsCfg().checkbox.selectAll ?? true)) {\n <span class=\"sdc-table-th-center\">\n <input\n type=\"checkbox\"\n [id]=\"'select-all-checkbox'\"\n [checked]=\"isPageFullySelected()\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectPage(getCheckedValue($event))\"\n (keydown.space)=\"$event.preventDefault(); toggleSelectPage(!isPageFullySelected())\"\n [attr.aria-label]=\"'platform.datacore.accessibility.select_all_rows' | translate\"\n [attr.aria-checked]=\"isPageFullySelected()\"\n />\n <label for=\"select-all-checkbox\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.select_all_rows' | translate }}\n </label>\n </span>\n }\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @if (showInitialLoading()) {\n @for (rowIndex of initialLoadingRows(); track rowIndex; let r = $index) {\n <tr class=\"sdc-table-initial-loading-row\" role=\"row\" [attr.aria-rowindex]=\"r + 1\" aria-hidden=\"true\">\n @for (col of cols; track $index) {\n <td\n class=\"sdc-table-td sdc-table-tdc sdc-table-td--initial-loading\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-td-currency]=\"col.type === 'currency'\"\n [class.sdc-table-td-button]=\"col.type === 'button'\"\n [class.sdc-table-td-actions]=\"col.type === 'actions'\"\n [ngClass]=\"columnAlignClass(col)\"\n [attr.data-title]=\"col.header | translate\"\n role=\"cell\"\n >\n <div class=\"sdc-table-td-val sdc-table-td-val--initial-loading\"></div>\n </td>\n }\n </tr>\n }\n } @else {\n @for (row of pageData(); track $index; let r = $index) {\n <tr role=\"row\" [attr.aria-rowindex]=\"r + 1\">\n @for (col of cols; track $index) {\n <td\n class=\"sdc-table-td sdc-table-tdc\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-td-currency]=\"col.type === 'currency'\"\n [class.sdc-table-td-button]=\"col.type === 'button'\"\n [class.sdc-table-td-actions]=\"col.type === 'actions'\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [ngClass]=\"columnAlignClass(col)\"\n [attr.data-title]=\"col.header | translate\"\n [attr.id]=\"col.colId || null\"\n role=\"cell\"\n >\n @if (col.cellTag === 'span') {\n <span class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </span>\n } @else if (col.cellTag === 'i') {\n <i class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </i>\n } @else if (col.cellTag === 'p') {\n <p class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </p>\n } @else {\n <div class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </div>\n }\n </td>\n }\n </tr>\n }\n }\n </tbody>\n </table>\n\n @if (!isLoading && options().empty?.show !== false && totalRecords() === 0) {\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n [style.min-height.px]=\"emptyBodyHeightPx()\"\n ></sdc-empty-state>\n }\n </div>\n } @else {\n <div\n class=\"sdc-table-mobile-list\"\n [attr.aria-label]=\"tableAriaLabelKey() | translate\"\n [attr.aria-busy]=\"isLoading\"\n >\n @if (showInitialLoading()) {\n @for (rowIndex of initialLoadingRows(); track rowIndex; let r = $index) {\n <div class=\"sdc-table-mobile-card sdc-table-mobile-card--loading\" aria-hidden=\"true\">\n @for (col of cols; track $index) {\n <div class=\"sdc-table-mobile-field sdc-table-mobile-field--loading\">\n <div class=\"sdc-table-mobile-label sdc-table-mobile-label--loading\"></div>\n <div class=\"sdc-table-mobile-skeleton\"></div>\n </div>\n }\n </div>\n }\n } @else {\n @for (row of pageData(); track $index; let r = $index) {\n <div class=\"sdc-table-mobile-card\">\n @for (col of cols; track $index) {\n <div\n class=\"sdc-table-mobile-field\"\n [class.sdc-table-mobile-field--full-width]=\"\n col.type === 'button' || col.type === 'actions' || col.type === 'checkbox-selection'\n \"\n [class.sdc-table-mobile-field--selected]=\"sortField() === col.field\"\n [class.sdc-table-mobile-field--sortable]=\"col.field && isSortableColumn(col)\"\n (click)=\"col.field && toggleSort(col.field, isSortableColumn(col))\"\n >\n @if (mobileFieldLabel(col)) {\n <div class=\"sdc-table-mobile-label-wrap\">\n @if (col.field && isSortableColumn(col)) {\n <button\n type=\"button\"\n class=\"sdc-table-mobile-label sdc-table-mobile-label--sortable\"\n [attr.aria-label]=\"\n (mobileFieldLabel(col) | translate)\n + ' - '\n + ('platform.datacore.accessibility.sortable_column' | translate)\n \"\n (click)=\"$event.stopPropagation(); toggleSort(col.field, isSortableColumn(col))\"\n (keydown.enter)=\"toggleSort(col.field, isSortableColumn(col))\"\n (keydown.space)=\"$event.preventDefault(); toggleSort(col.field, isSortableColumn(col))\"\n >\n <span>{{ mobileFieldLabel(col) | translate }}</span>\n <sdc-table-sort-indicator\n [columnField]=\"col.field || null\"\n [columnType]=\"col.type\"\n [sortable]=\"isSortableColumn(col)\"\n [sortField]=\"sortField()\"\n [sortOrder]=\"sortOrder()\"\n ></sdc-table-sort-indicator>\n </button>\n } @else {\n <div class=\"sdc-table-mobile-label\">\n <span>{{ mobileFieldLabel(col) | translate }}</span>\n </div>\n }\n </div>\n }\n\n <div class=\"sdc-table-mobile-value\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n\n @if (!isLoading && options().empty?.show !== false && totalRecords() === 0) {\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n [style.min-height.px]=\"emptyBodyHeightPx()\"\n ></sdc-empty-state>\n }\n }\n\n @if (showPaginator()) {\n <div class=\"sdc-table-paginator\">\n <sdc-paginator\n [first]=\"first()\"\n [rows]=\"rows()\"\n [totalRecords]=\"totalRecords()\"\n [rowsPerPageOptions]=\"isMobile() ? [] : rowsPerPageOptions()\"\n [isMobile]=\"isMobile()\"\n [totalRecordsLabel]=\"totalRecordsLabel()\"\n (pageChange)=\"onPageChange($event)\"\n ></sdc-paginator>\n </div>\n }\n </div>\n </sdc-loading-state>\n</section>\n\n@if (openMenuState(); as menu) {\n <sdc-table-actions-menu\n [items]=\"menu.items\"\n [top]=\"menu.top\"\n [left]=\"menu.left\"\n [width]=\"menu.width\"\n (select)=\"onPortalActionClick($event)\"\n ></sdc-table-actions-menu>\n}\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table{width:100%;box-sizing:border-box;overflow:visible;background:var(--sdc-table-bg-card)}.sdc-table-shell{display:block;--sdc-table-body-height: 220px;overflow:visible}.sdc-table-loading-wrap{display:block;width:100%;overflow:visible}.sdc-table-caption{width:100%;justify-content:flex-end;display:flex;padding:.75rem 0}.sdc-table-caption__search{width:min(100%,22rem)}.sdc-table-scroll{width:100%;overflow-x:auto;overflow-y:visible}.sdc-table-grid{min-width:var(--sdc-table-min-width, 100%);width:100%;border-collapse:collapse;table-layout:auto}thead th{padding:var(--sdc-table-padding-cell);background:var(--sdc-table-bg-card);border-bottom:1px solid var(--sdc-formfield-default-border);-webkit-user-select:none;user-select:none;transition:background var(--sdc-table-transition-fast),border var(--sdc-table-transition-fast);min-height:44px;position:relative;overflow:hidden;text-align:left}thead th.sdc-table-sortable{cursor:pointer}thead th.sdc-table-sortable:hover{background:var(--sdc-table-th-hover-bg)}thead th.sdc-table-sortable:focus,thead th.sdc-table-sortable:focus-visible{outline:2px solid var(--sdc-tab-primary, #007bff);outline-offset:-2px;box-shadow:inset 0 0 0 3px #007bff33;position:relative;z-index:1}thead th.sdc-table-is-selected{background:var(--sdc-table-th-selected-bg)!important}.sdc-table-th-inner{display:flex;align-items:center;gap:var(--sdc-table-gap-th-inner);width:100%;min-width:0;overflow:hidden}.sdc-table-sort-overlay{position:relative;margin-left:auto}tbody td{padding:.5rem var(--sdc-table-padding-cell);border-bottom:1px solid var(--sdc-table-border-gray);vertical-align:middle;overflow:visible}.sdc-table-td-val{display:flex;align-items:center;width:100%;min-width:0}.sdc-table-td-val--initial-loading{min-height:1.5rem}.sdc-table-initial-loading-row{background:var(--sdc-table-bg-card)}.sdc-table-td--initial-loading{height:3.625rem}.sdc-table-th-label{color:#333!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;display:block;flex:1 1 auto}.sdc-table-empty-state{display:flex;align-items:center;justify-content:center;min-height:var(--sdc-table-body-height);padding:0}.sdc-table--loading .sdc-table-shell{pointer-events:none;-webkit-user-select:none;user-select:none}thead th.sdc-table-th-checkbox .sdc-table-th-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;pointer-events:none}thead th.sdc-table-th-checkbox .sdc-table-th-center input{pointer-events:auto}thead th.sdc-table-th-checkbox .sdc-table-th-inner{padding-right:28px}.sdc-table-paginator{padding:.5rem 0}.sdc-table-td-align-left{text-align:left}.sdc-table-td-align-center{text-align:center}.sdc-table-td-align-right{text-align:right}.sdc-table-cell-content--nowrap .sdc-table-text,.sdc-table-cell-content--nowrap .sdc-table-strong-label,.sdc-table-cell-content--nowrap .sdc-table-code-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.sdc-table-mobile-list{display:flex;flex-direction:column;gap:.375rem;width:100%}.sdc-table-mobile-card{display:flex;flex-direction:column;border:1px solid var(--sdc-border-strong, #d1d5db);border-radius:.25rem;background:var(--sdc-surface-bg, #ffffff);overflow:hidden}.sdc-table-mobile-card--loading{gap:0}.sdc-table-mobile-field{display:grid;grid-template-columns:minmax(0,8.5rem) minmax(0,1fr);gap:.875rem 1rem;align-items:start;padding:.9rem 1rem;border-top:1px solid var(--sdc-border-default, #cccccc);background:transparent}.sdc-table-mobile-field:first-child{border-top:0}.sdc-table-mobile-field--selected{background:#11182705}.sdc-table-mobile-field--full-width{grid-template-columns:1fr;gap:.625rem}.sdc-table-mobile-label-wrap,.sdc-table-mobile-value{min-width:0}.sdc-table-mobile-label,.sdc-table-mobile-label--sortable{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;margin:0;padding:0;border:0;background:transparent;color:var(--sdc-text-muted, #6b7280);font:inherit;font-size:.75rem;font-weight:600;line-height:1.35;letter-spacing:.01em;text-align:left}.sdc-table-mobile-label--sortable{cursor:pointer}.sdc-table-mobile-label--sortable:focus-visible{outline:2px solid var(--sdc-tab-primary, #428bca);outline-offset:3px;border-radius:.375rem}.sdc-table-mobile-label--loading{width:7rem;height:.75rem;border-radius:999px;background:linear-gradient(90deg,#94a3b82e,#94a3b852,#94a3b82e)}.sdc-table-mobile-skeleton{min-height:2.75rem;border-radius:.75rem;background:linear-gradient(90deg,#94a3b81f,#94a3b833,#94a3b81f)}.sdc-table-mobile-value{display:flex;align-items:flex-start}@media (max-width: 768px){.sdc-table-caption__search{width:100%}.sdc-table-paginator{justify-content:center!important;border-top:1px solid var(--sdc-table-border-gray)}.sdc-table-mobile-field--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sdc-table-mobile-field--sortable:hover{background:#11182706}}@media (max-width: 540px){.sdc-table-mobile-field{grid-template-columns:1fr;gap:.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode", "debounceTimeMs", "ariaLabel", "inputRole", "inputAriaControls", "inputAriaDescribedBy", "inputAriaActiveDescendant", "inputAriaHaspopup", "inputAriaExpanded", "inputAutocomplete", "submitOnEnter", "clearOnEscape"], outputs: ["debouncedValueChange", "onSearch", "onClear"] }, { kind: "component", type: PaginatorComponent, selector: "sdc-paginator", inputs: ["first", "rows", "totalRecords", "rowsPerPageOptions", "showRowsPerPageSelector", "isMobile", "totalRecordsLabel"], outputs: ["pageChange"] }, { kind: "component", type: LoadingStateComponent, selector: "sdc-loading-state", inputs: ["indicator", "id", "blockWindow", "blockDelayMs", "unblockDelayMs", "loading"] }, { kind: "component", type: EmptyStateComponent, selector: "sdc-empty-state", inputs: ["id", "title", "variant", "titleParams", "iconClass", "description", "descriptionParams", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "primaryActionLabelParams", "secondaryActionLabel", "secondaryActionLabelParams", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: TableSortIndicatorComponent, selector: "sdc-table-sort-indicator", inputs: ["columnField", "columnType", "sortField", "sortOrder", "sortable"] }, { kind: "component", type: TableCellContentComponent, selector: "sdc-table-cell-content", inputs: ["cellConfigs", "col", "resolveValue", "row", "actionsMenuOpen", "defaultTextOverflow", "rowCheckboxId", "rowLabel", "rowSelected"], outputs: ["toggleActionsMenu", "toggleRow", "triggerButtonAction"] }, { kind: "component", type: TableActionsMenuComponent, selector: "sdc-table-actions-menu", inputs: ["items", "left", "top", "width"], outputs: ["select"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25159
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableComponent, isStandalone: true, selector: "sdc-table", inputs: { cols: "cols", data: "data", loading: "loading", config: "config", ariaLabel: "ariaLabel" }, outputs: { action: "action", lazyLoad: "lazyLoad" }, host: { listeners: { "document:click": "onDocumentClick()", "document:keydown.escape": "onEscapeKey()", "window:resize": "onWindowResize()", "window:scroll": "onWindowScroll()" } }, ngImport: i0, template: "<section\n class=\"sdc-table\"\n [class.sdc-table-stack]=\"isMobile()\"\n [class.sdc-table-filtered]=\"!!globalFilter().trim()\"\n [class.sdc-table--loading]=\"isLoading\"\n [class.sdc-table--initial-loading]=\"showInitialLoading()\"\n>\n <sdc-loading-state\n class=\"sdc-table-loading-wrap\"\n [loading]=\"isLoading\"\n [blockWindow]=\"false\"\n [blockDelayMs]=\"0\"\n [indicator]=\"'dots'\"\n >\n <div class=\"sdc-table-shell\" [style.--sdc-table-body-height.px]=\"bodyViewportHeightPx()\">\n @if (showSearch()) {\n <div class=\"sdc-table-caption\">\n <div class=\"sdc-table-caption__search\">\n <sdc-searchbox\n [disabled]=\"isLoading\"\n [placeholder]=\"searchPlaceholder()\"\n [triggerMode]=\"triggerMode()\"\n (onSearch)=\"onSearchTerm($event)\"\n (onClear)=\"onClearSearch()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.search_field' | translate\"\n />\n </div>\n </div>\n }\n\n @if (!isMobile()) {\n <div class=\"sdc-table-scroll\" [style.--sdc-table-min-width.px]=\"tableMinWidthPx()\">\n <table\n class=\"sdc-table-grid\"\n role=\"table\"\n [attr.aria-label]=\"tableAriaLabelKey() | translate\"\n [attr.aria-rowcount]=\"totalRecords()\"\n [attr.aria-busy]=\"isLoading\"\n >\n <colgroup>\n @for (col of cols; track $index) {\n <col [style.width]=\"col.width ?? (columnMinWidthPx(col) + 'px')\" />\n }\n </colgroup>\n\n <thead>\n <tr role=\"row\">\n @for (col of cols; track $index) {\n <th\n scope=\"col\"\n role=\"columnheader\"\n [class.sdc-table-th-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-th-currency]=\"col.type === 'currency'\"\n [class.sdc-table-th-button]=\"col.type === 'button'\"\n [class.sdc-table-th-actions]=\"col.type === 'actions'\"\n [class.sdc-table-sortable]=\"isSortableColumn(col)\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [attr.aria-sort]=\"getSortAriaAttribute(col)\"\n [attr.tabindex]=\"isSortableColumn(col) ? 0 : null\"\n [attr.aria-label]=\"\n isSortableColumn(col)\n ? (\n (col.header | translate)\n + ' - '\n + ('platform.datacore.accessibility.sortable_column' | translate)\n )\n : (col.header | translate)\n \"\n (click)=\"col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n (keydown.enter)=\"col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n (keydown.space)=\"$event.preventDefault();\n col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n >\n <div class=\"sdc-table-th-inner\" [class.sdc-table-sortable]=\"isSortableColumn(col)\">\n <span class=\"sdc-table-th-label\" aria-hidden=\"true\">{{ col.header | translate }}</span>\n\n <span class=\"sdc-table-sort-overlay\" aria-hidden=\"true\">\n <sdc-table-sort-indicator\n [columnField]=\"col.field || null\"\n [columnType]=\"col.type\"\n [sortable]=\"isSortableColumn(col)\"\n [sortField]=\"sortField()\"\n [sortOrder]=\"sortOrder()\"\n ></sdc-table-sort-indicator>\n </span>\n </div>\n\n @if (col.type === 'checkbox-selection' && (cellsCfg().checkbox.selectAll ?? true)) {\n <span class=\"sdc-table-th-center\">\n <input\n type=\"checkbox\"\n [id]=\"'select-all-checkbox'\"\n [checked]=\"isPageFullySelected()\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectPage(getCheckedValue($event))\"\n (keydown.space)=\"$event.preventDefault(); toggleSelectPage(!isPageFullySelected())\"\n [attr.aria-label]=\"'platform.datacore.accessibility.select_all_rows' | translate\"\n [attr.aria-checked]=\"isPageFullySelected()\"\n />\n <label for=\"select-all-checkbox\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.select_all_rows' | translate }}\n </label>\n </span>\n }\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @if (showInitialLoading()) {\n @for (rowIndex of initialLoadingRows(); track rowIndex; let r = $index) {\n <tr class=\"sdc-table-initial-loading-row\" role=\"row\" [attr.aria-rowindex]=\"r + 1\" aria-hidden=\"true\">\n @for (col of cols; track $index) {\n <td\n class=\"sdc-table-td sdc-table-tdc sdc-table-td--initial-loading\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-td-currency]=\"col.type === 'currency'\"\n [class.sdc-table-td-button]=\"col.type === 'button'\"\n [class.sdc-table-td-actions]=\"col.type === 'actions'\"\n [ngClass]=\"columnAlignClass(col)\"\n [attr.data-title]=\"col.header | translate\"\n role=\"cell\"\n >\n <div class=\"sdc-table-td-val sdc-table-td-val--initial-loading\"></div>\n </td>\n }\n </tr>\n }\n } @else {\n @for (row of pageData(); track $index; let r = $index) {\n <tr role=\"row\" [attr.aria-rowindex]=\"r + 1\">\n @for (col of cols; track $index) {\n <td\n class=\"sdc-table-td sdc-table-tdc\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-td-currency]=\"col.type === 'currency'\"\n [class.sdc-table-td-button]=\"col.type === 'button'\"\n [class.sdc-table-td-actions]=\"col.type === 'actions'\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [ngClass]=\"columnAlignClass(col)\"\n [attr.data-title]=\"col.header | translate\"\n [attr.id]=\"col.colId || null\"\n role=\"cell\"\n >\n @if (col.cellTag === 'span') {\n <span class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n [actionsMenuId]=\"isActionsMenuOpen(row, col) ? openMenuState()?.menuId ?? null : null\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </span>\n } @else if (col.cellTag === 'i') {\n <i class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n [actionsMenuId]=\"isActionsMenuOpen(row, col) ? openMenuState()?.menuId ?? null : null\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </i>\n } @else if (col.cellTag === 'p') {\n <p class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n [actionsMenuId]=\"isActionsMenuOpen(row, col) ? openMenuState()?.menuId ?? null : null\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </p>\n } @else {\n <div class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n [actionsMenuId]=\"isActionsMenuOpen(row, col) ? openMenuState()?.menuId ?? null : null\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </div>\n }\n </td>\n }\n </tr>\n }\n }\n </tbody>\n </table>\n\n @if (!isLoading && options().empty?.show !== false && totalRecords() === 0) {\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n [style.min-height.px]=\"emptyBodyHeightPx()\"\n ></sdc-empty-state>\n }\n </div>\n } @else {\n <div\n class=\"sdc-table-mobile-list\"\n [attr.aria-label]=\"tableAriaLabelKey() | translate\"\n [attr.aria-busy]=\"isLoading\"\n >\n @if (showInitialLoading()) {\n @for (rowIndex of initialLoadingRows(); track rowIndex; let r = $index) {\n <div class=\"sdc-table-mobile-card sdc-table-mobile-card--loading\" aria-hidden=\"true\">\n @for (col of cols; track $index) {\n <div class=\"sdc-table-mobile-field sdc-table-mobile-field--loading\">\n <div class=\"sdc-table-mobile-label sdc-table-mobile-label--loading\"></div>\n <div class=\"sdc-table-mobile-skeleton\"></div>\n </div>\n }\n </div>\n }\n } @else {\n @for (row of pageData(); track $index; let r = $index) {\n <div class=\"sdc-table-mobile-card\">\n @for (col of cols; track $index) {\n <div\n class=\"sdc-table-mobile-field\"\n [class.sdc-table-mobile-field--full-width]=\"\n col.type === 'button' || col.type === 'actions' || col.type === 'checkbox-selection'\n \"\n [class.sdc-table-mobile-field--selected]=\"sortField() === col.field\"\n [class.sdc-table-mobile-field--sortable]=\"col.field && isSortableColumn(col)\"\n (click)=\"col.field && toggleSort(col.field, isSortableColumn(col))\"\n >\n @if (mobileFieldLabel(col)) {\n <div class=\"sdc-table-mobile-label-wrap\">\n @if (col.field && isSortableColumn(col)) {\n <button\n type=\"button\"\n class=\"sdc-table-mobile-label sdc-table-mobile-label--sortable\"\n [attr.aria-label]=\"\n (mobileFieldLabel(col) | translate)\n + ' - '\n + ('platform.datacore.accessibility.sortable_column' | translate)\n \"\n (click)=\"$event.stopPropagation(); toggleSort(col.field, isSortableColumn(col))\"\n (keydown.enter)=\"toggleSort(col.field, isSortableColumn(col))\"\n (keydown.space)=\"$event.preventDefault(); toggleSort(col.field, isSortableColumn(col))\"\n >\n <span>{{ mobileFieldLabel(col) | translate }}</span>\n <sdc-table-sort-indicator\n [columnField]=\"col.field || null\"\n [columnType]=\"col.type\"\n [sortable]=\"isSortableColumn(col)\"\n [sortField]=\"sortField()\"\n [sortOrder]=\"sortOrder()\"\n ></sdc-table-sort-indicator>\n </button>\n } @else {\n <div class=\"sdc-table-mobile-label\">\n <span>{{ mobileFieldLabel(col) | translate }}</span>\n </div>\n }\n </div>\n }\n\n <div class=\"sdc-table-mobile-value\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n [actionsMenuId]=\"isActionsMenuOpen(row, col) ? openMenuState()?.menuId ?? null : null\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n\n @if (!isLoading && options().empty?.show !== false && totalRecords() === 0) {\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n [style.min-height.px]=\"emptyBodyHeightPx()\"\n ></sdc-empty-state>\n }\n }\n\n @if (showPaginator()) {\n <div class=\"sdc-table-paginator\">\n <sdc-paginator\n [first]=\"first()\"\n [rows]=\"rows()\"\n [totalRecords]=\"totalRecords()\"\n [rowsPerPageOptions]=\"isMobile() ? [] : rowsPerPageOptions()\"\n [isMobile]=\"isMobile()\"\n [totalRecordsLabel]=\"totalRecordsLabel()\"\n (pageChange)=\"onPageChange($event)\"\n ></sdc-paginator>\n </div>\n }\n </div>\n </sdc-loading-state>\n</section>\n\n@if (openMenuState(); as menu) {\n <sdc-table-actions-menu\n [items]=\"menu.items\"\n [menuId]=\"menu.menuId\"\n [top]=\"menu.top\"\n [left]=\"menu.left\"\n [width]=\"menu.width\"\n (close)=\"onMenuClose($event)\"\n (select)=\"onPortalActionClick($event)\"\n ></sdc-table-actions-menu>\n}\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table{width:100%;box-sizing:border-box;overflow:visible;background:var(--sdc-table-bg-card)}.sdc-table-shell{display:block;--sdc-table-body-height: 220px;overflow:visible}.sdc-table-loading-wrap{display:block;width:100%;overflow:visible}.sdc-table-caption{width:100%;justify-content:flex-end;display:flex;padding:.75rem 0}.sdc-table-caption__search{width:min(100%,22rem)}.sdc-table-scroll{width:100%;overflow-x:auto;overflow-y:visible}.sdc-table-grid{min-width:var(--sdc-table-min-width, 100%);width:100%;border-collapse:collapse;table-layout:auto}thead th{padding:var(--sdc-table-padding-cell);background:var(--sdc-table-bg-card);border-bottom:1px solid var(--sdc-formfield-default-border);-webkit-user-select:none;user-select:none;transition:background var(--sdc-table-transition-fast),border var(--sdc-table-transition-fast);min-height:44px;position:relative;overflow:hidden;text-align:left}thead th.sdc-table-sortable{cursor:pointer}thead th.sdc-table-sortable:hover{background:var(--sdc-table-th-hover-bg)}thead th.sdc-table-sortable:focus,thead th.sdc-table-sortable:focus-visible{outline:2px solid var(--sdc-tab-primary, #007bff);outline-offset:-2px;box-shadow:inset 0 0 0 3px #007bff33;position:relative;z-index:1}thead th.sdc-table-is-selected{background:var(--sdc-table-th-selected-bg)!important}.sdc-table-th-inner{display:flex;align-items:center;gap:var(--sdc-table-gap-th-inner);width:100%;min-width:0;overflow:hidden}.sdc-table-sort-overlay{position:relative;margin-left:auto}tbody td{padding:.5rem var(--sdc-table-padding-cell);border-bottom:1px solid var(--sdc-table-border-gray);vertical-align:middle;overflow:visible}.sdc-table-td-val{display:flex;align-items:center;width:100%;min-width:0}.sdc-table-td-val--initial-loading{min-height:1.5rem}.sdc-table-initial-loading-row{background:var(--sdc-table-bg-card)}.sdc-table-td--initial-loading{height:3.625rem}.sdc-table-th-label{color:#333!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;display:block;flex:1 1 auto}.sdc-table-empty-state{display:flex;align-items:center;justify-content:center;min-height:var(--sdc-table-body-height);padding:0}.sdc-table--loading .sdc-table-shell{pointer-events:none;-webkit-user-select:none;user-select:none}thead th.sdc-table-th-checkbox .sdc-table-th-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;pointer-events:none}thead th.sdc-table-th-checkbox .sdc-table-th-center input{pointer-events:auto}thead th.sdc-table-th-checkbox .sdc-table-th-inner{padding-right:28px}.sdc-table-paginator{padding:.5rem 0}.sdc-table-td-align-left{text-align:left}.sdc-table-td-align-center{text-align:center}.sdc-table-td-align-right{text-align:right}.sdc-table-cell-content--nowrap .sdc-table-text,.sdc-table-cell-content--nowrap .sdc-table-strong-label,.sdc-table-cell-content--nowrap .sdc-table-code-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.sdc-table-mobile-list{display:flex;flex-direction:column;gap:.375rem;width:100%}.sdc-table-mobile-card{display:flex;flex-direction:column;border:1px solid var(--sdc-border-strong, #d1d5db);border-radius:.25rem;background:var(--sdc-surface-bg, #ffffff);overflow:hidden}.sdc-table-mobile-card--loading{gap:0}.sdc-table-mobile-field{display:grid;grid-template-columns:minmax(0,8.5rem) minmax(0,1fr);gap:.875rem 1rem;align-items:start;padding:.9rem 1rem;border-top:1px solid var(--sdc-border-default, #cccccc);background:transparent}.sdc-table-mobile-field:first-child{border-top:0}.sdc-table-mobile-field--selected{background:#11182705}.sdc-table-mobile-field--full-width{grid-template-columns:1fr;gap:.625rem}.sdc-table-mobile-label-wrap,.sdc-table-mobile-value{min-width:0}.sdc-table-mobile-label,.sdc-table-mobile-label--sortable{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;margin:0;padding:0;border:0;background:transparent;color:var(--sdc-text-muted, #6b7280);font:inherit;font-size:.75rem;font-weight:600;line-height:1.35;letter-spacing:.01em;text-align:left}.sdc-table-mobile-label--sortable{cursor:pointer}.sdc-table-mobile-label--sortable:focus-visible{outline:2px solid var(--sdc-tab-primary, #428bca);outline-offset:3px;border-radius:.375rem}.sdc-table-mobile-label--loading{width:7rem;height:.75rem;border-radius:999px;background:linear-gradient(90deg,#94a3b82e,#94a3b852,#94a3b82e)}.sdc-table-mobile-skeleton{min-height:2.75rem;border-radius:.75rem;background:linear-gradient(90deg,#94a3b81f,#94a3b833,#94a3b81f)}.sdc-table-mobile-value{display:flex;align-items:flex-start}@media (max-width: 768px){.sdc-table-caption__search{width:100%}.sdc-table-paginator{justify-content:center!important;border-top:1px solid var(--sdc-table-border-gray)}.sdc-table-mobile-field--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sdc-table-mobile-field--sortable:hover{background:#11182706}}@media (max-width: 540px){.sdc-table-mobile-field{grid-template-columns:1fr;gap:.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode", "debounceTimeMs", "ariaLabel", "inputRole", "inputAriaControls", "inputAriaDescribedBy", "inputAriaActiveDescendant", "inputAriaHaspopup", "inputAriaExpanded", "inputAutocomplete", "submitOnEnter", "clearOnEscape"], outputs: ["debouncedValueChange", "onSearch", "onClear"] }, { kind: "component", type: PaginatorComponent, selector: "sdc-paginator", inputs: ["first", "rows", "totalRecords", "rowsPerPageOptions", "showRowsPerPageSelector", "isMobile", "totalRecordsLabel"], outputs: ["pageChange"] }, { kind: "component", type: LoadingStateComponent, selector: "sdc-loading-state", inputs: ["indicator", "id", "blockWindow", "blockDelayMs", "unblockDelayMs", "loading"] }, { kind: "component", type: EmptyStateComponent, selector: "sdc-empty-state", inputs: ["id", "title", "variant", "titleParams", "iconClass", "description", "descriptionParams", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "primaryActionLabelParams", "secondaryActionLabel", "secondaryActionLabelParams", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: TableSortIndicatorComponent, selector: "sdc-table-sort-indicator", inputs: ["columnField", "columnType", "sortField", "sortOrder", "sortable"] }, { kind: "component", type: TableCellContentComponent, selector: "sdc-table-cell-content", inputs: ["cellConfigs", "col", "resolveValue", "row", "actionsMenuOpen", "actionsMenuId", "defaultTextOverflow", "rowCheckboxId", "rowLabel", "rowSelected"], outputs: ["toggleActionsMenu", "toggleRow", "triggerButtonAction"] }, { kind: "component", type: TableActionsMenuComponent, selector: "sdc-table-actions-menu", inputs: ["ariaLabel", "items", "left", "menuId", "top", "width"], outputs: ["close", "select"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24912
25160
  }
24913
25161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableComponent, decorators: [{
24914
25162
  type: Component,
@@ -24923,7 +25171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
24923
25171
  TableSortIndicatorComponent,
24924
25172
  TableCellContentComponent,
24925
25173
  TableActionsMenuComponent
24926
- ], encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n class=\"sdc-table\"\n [class.sdc-table-stack]=\"isMobile()\"\n [class.sdc-table-filtered]=\"!!globalFilter().trim()\"\n [class.sdc-table--loading]=\"isLoading\"\n [class.sdc-table--initial-loading]=\"showInitialLoading()\"\n>\n <sdc-loading-state\n class=\"sdc-table-loading-wrap\"\n [loading]=\"isLoading\"\n [blockWindow]=\"false\"\n [blockDelayMs]=\"0\"\n [indicator]=\"'dots'\"\n >\n <div class=\"sdc-table-shell\" [style.--sdc-table-body-height.px]=\"bodyViewportHeightPx()\">\n @if (showSearch()) {\n <div class=\"sdc-table-caption\">\n <div class=\"sdc-table-caption__search\">\n <sdc-searchbox\n [disabled]=\"isLoading\"\n [placeholder]=\"searchPlaceholder()\"\n [triggerMode]=\"triggerMode()\"\n (onSearch)=\"onSearchTerm($event)\"\n (onClear)=\"onClearSearch()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.search_field' | translate\"\n />\n </div>\n </div>\n }\n\n @if (!isMobile()) {\n <div class=\"sdc-table-scroll\" [style.--sdc-table-min-width.px]=\"tableMinWidthPx()\">\n <table\n class=\"sdc-table-grid\"\n role=\"table\"\n [attr.aria-label]=\"tableAriaLabelKey() | translate\"\n [attr.aria-rowcount]=\"totalRecords()\"\n [attr.aria-busy]=\"isLoading\"\n >\n <colgroup>\n @for (col of cols; track $index) {\n <col [style.width]=\"col.width ?? (columnMinWidthPx(col) + 'px')\" />\n }\n </colgroup>\n\n <thead>\n <tr role=\"row\">\n @for (col of cols; track $index) {\n <th\n scope=\"col\"\n role=\"columnheader\"\n [class.sdc-table-th-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-th-currency]=\"col.type === 'currency'\"\n [class.sdc-table-th-button]=\"col.type === 'button'\"\n [class.sdc-table-th-actions]=\"col.type === 'actions'\"\n [class.sdc-table-sortable]=\"isSortableColumn(col)\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [attr.aria-sort]=\"getSortAriaAttribute(col)\"\n [attr.tabindex]=\"isSortableColumn(col) ? 0 : null\"\n [attr.aria-label]=\"\n isSortableColumn(col)\n ? (\n (col.header | translate)\n + ' - '\n + ('platform.datacore.accessibility.sortable_column' | translate)\n )\n : (col.header | translate)\n \"\n (click)=\"col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n (keydown.enter)=\"col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n (keydown.space)=\"$event.preventDefault();\n col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n >\n <div class=\"sdc-table-th-inner\" [class.sdc-table-sortable]=\"isSortableColumn(col)\">\n <span class=\"sdc-table-th-label\" aria-hidden=\"true\">{{ col.header | translate }}</span>\n\n <span class=\"sdc-table-sort-overlay\" aria-hidden=\"true\">\n <sdc-table-sort-indicator\n [columnField]=\"col.field || null\"\n [columnType]=\"col.type\"\n [sortable]=\"isSortableColumn(col)\"\n [sortField]=\"sortField()\"\n [sortOrder]=\"sortOrder()\"\n ></sdc-table-sort-indicator>\n </span>\n </div>\n\n @if (col.type === 'checkbox-selection' && (cellsCfg().checkbox.selectAll ?? true)) {\n <span class=\"sdc-table-th-center\">\n <input\n type=\"checkbox\"\n [id]=\"'select-all-checkbox'\"\n [checked]=\"isPageFullySelected()\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectPage(getCheckedValue($event))\"\n (keydown.space)=\"$event.preventDefault(); toggleSelectPage(!isPageFullySelected())\"\n [attr.aria-label]=\"'platform.datacore.accessibility.select_all_rows' | translate\"\n [attr.aria-checked]=\"isPageFullySelected()\"\n />\n <label for=\"select-all-checkbox\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.select_all_rows' | translate }}\n </label>\n </span>\n }\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @if (showInitialLoading()) {\n @for (rowIndex of initialLoadingRows(); track rowIndex; let r = $index) {\n <tr class=\"sdc-table-initial-loading-row\" role=\"row\" [attr.aria-rowindex]=\"r + 1\" aria-hidden=\"true\">\n @for (col of cols; track $index) {\n <td\n class=\"sdc-table-td sdc-table-tdc sdc-table-td--initial-loading\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-td-currency]=\"col.type === 'currency'\"\n [class.sdc-table-td-button]=\"col.type === 'button'\"\n [class.sdc-table-td-actions]=\"col.type === 'actions'\"\n [ngClass]=\"columnAlignClass(col)\"\n [attr.data-title]=\"col.header | translate\"\n role=\"cell\"\n >\n <div class=\"sdc-table-td-val sdc-table-td-val--initial-loading\"></div>\n </td>\n }\n </tr>\n }\n } @else {\n @for (row of pageData(); track $index; let r = $index) {\n <tr role=\"row\" [attr.aria-rowindex]=\"r + 1\">\n @for (col of cols; track $index) {\n <td\n class=\"sdc-table-td sdc-table-tdc\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-td-currency]=\"col.type === 'currency'\"\n [class.sdc-table-td-button]=\"col.type === 'button'\"\n [class.sdc-table-td-actions]=\"col.type === 'actions'\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [ngClass]=\"columnAlignClass(col)\"\n [attr.data-title]=\"col.header | translate\"\n [attr.id]=\"col.colId || null\"\n role=\"cell\"\n >\n @if (col.cellTag === 'span') {\n <span class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </span>\n } @else if (col.cellTag === 'i') {\n <i class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </i>\n } @else if (col.cellTag === 'p') {\n <p class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </p>\n } @else {\n <div class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </div>\n }\n </td>\n }\n </tr>\n }\n }\n </tbody>\n </table>\n\n @if (!isLoading && options().empty?.show !== false && totalRecords() === 0) {\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n [style.min-height.px]=\"emptyBodyHeightPx()\"\n ></sdc-empty-state>\n }\n </div>\n } @else {\n <div\n class=\"sdc-table-mobile-list\"\n [attr.aria-label]=\"tableAriaLabelKey() | translate\"\n [attr.aria-busy]=\"isLoading\"\n >\n @if (showInitialLoading()) {\n @for (rowIndex of initialLoadingRows(); track rowIndex; let r = $index) {\n <div class=\"sdc-table-mobile-card sdc-table-mobile-card--loading\" aria-hidden=\"true\">\n @for (col of cols; track $index) {\n <div class=\"sdc-table-mobile-field sdc-table-mobile-field--loading\">\n <div class=\"sdc-table-mobile-label sdc-table-mobile-label--loading\"></div>\n <div class=\"sdc-table-mobile-skeleton\"></div>\n </div>\n }\n </div>\n }\n } @else {\n @for (row of pageData(); track $index; let r = $index) {\n <div class=\"sdc-table-mobile-card\">\n @for (col of cols; track $index) {\n <div\n class=\"sdc-table-mobile-field\"\n [class.sdc-table-mobile-field--full-width]=\"\n col.type === 'button' || col.type === 'actions' || col.type === 'checkbox-selection'\n \"\n [class.sdc-table-mobile-field--selected]=\"sortField() === col.field\"\n [class.sdc-table-mobile-field--sortable]=\"col.field && isSortableColumn(col)\"\n (click)=\"col.field && toggleSort(col.field, isSortableColumn(col))\"\n >\n @if (mobileFieldLabel(col)) {\n <div class=\"sdc-table-mobile-label-wrap\">\n @if (col.field && isSortableColumn(col)) {\n <button\n type=\"button\"\n class=\"sdc-table-mobile-label sdc-table-mobile-label--sortable\"\n [attr.aria-label]=\"\n (mobileFieldLabel(col) | translate)\n + ' - '\n + ('platform.datacore.accessibility.sortable_column' | translate)\n \"\n (click)=\"$event.stopPropagation(); toggleSort(col.field, isSortableColumn(col))\"\n (keydown.enter)=\"toggleSort(col.field, isSortableColumn(col))\"\n (keydown.space)=\"$event.preventDefault(); toggleSort(col.field, isSortableColumn(col))\"\n >\n <span>{{ mobileFieldLabel(col) | translate }}</span>\n <sdc-table-sort-indicator\n [columnField]=\"col.field || null\"\n [columnType]=\"col.type\"\n [sortable]=\"isSortableColumn(col)\"\n [sortField]=\"sortField()\"\n [sortOrder]=\"sortOrder()\"\n ></sdc-table-sort-indicator>\n </button>\n } @else {\n <div class=\"sdc-table-mobile-label\">\n <span>{{ mobileFieldLabel(col) | translate }}</span>\n </div>\n }\n </div>\n }\n\n <div class=\"sdc-table-mobile-value\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n\n @if (!isLoading && options().empty?.show !== false && totalRecords() === 0) {\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n [style.min-height.px]=\"emptyBodyHeightPx()\"\n ></sdc-empty-state>\n }\n }\n\n @if (showPaginator()) {\n <div class=\"sdc-table-paginator\">\n <sdc-paginator\n [first]=\"first()\"\n [rows]=\"rows()\"\n [totalRecords]=\"totalRecords()\"\n [rowsPerPageOptions]=\"isMobile() ? [] : rowsPerPageOptions()\"\n [isMobile]=\"isMobile()\"\n [totalRecordsLabel]=\"totalRecordsLabel()\"\n (pageChange)=\"onPageChange($event)\"\n ></sdc-paginator>\n </div>\n }\n </div>\n </sdc-loading-state>\n</section>\n\n@if (openMenuState(); as menu) {\n <sdc-table-actions-menu\n [items]=\"menu.items\"\n [top]=\"menu.top\"\n [left]=\"menu.left\"\n [width]=\"menu.width\"\n (select)=\"onPortalActionClick($event)\"\n ></sdc-table-actions-menu>\n}\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table{width:100%;box-sizing:border-box;overflow:visible;background:var(--sdc-table-bg-card)}.sdc-table-shell{display:block;--sdc-table-body-height: 220px;overflow:visible}.sdc-table-loading-wrap{display:block;width:100%;overflow:visible}.sdc-table-caption{width:100%;justify-content:flex-end;display:flex;padding:.75rem 0}.sdc-table-caption__search{width:min(100%,22rem)}.sdc-table-scroll{width:100%;overflow-x:auto;overflow-y:visible}.sdc-table-grid{min-width:var(--sdc-table-min-width, 100%);width:100%;border-collapse:collapse;table-layout:auto}thead th{padding:var(--sdc-table-padding-cell);background:var(--sdc-table-bg-card);border-bottom:1px solid var(--sdc-formfield-default-border);-webkit-user-select:none;user-select:none;transition:background var(--sdc-table-transition-fast),border var(--sdc-table-transition-fast);min-height:44px;position:relative;overflow:hidden;text-align:left}thead th.sdc-table-sortable{cursor:pointer}thead th.sdc-table-sortable:hover{background:var(--sdc-table-th-hover-bg)}thead th.sdc-table-sortable:focus,thead th.sdc-table-sortable:focus-visible{outline:2px solid var(--sdc-tab-primary, #007bff);outline-offset:-2px;box-shadow:inset 0 0 0 3px #007bff33;position:relative;z-index:1}thead th.sdc-table-is-selected{background:var(--sdc-table-th-selected-bg)!important}.sdc-table-th-inner{display:flex;align-items:center;gap:var(--sdc-table-gap-th-inner);width:100%;min-width:0;overflow:hidden}.sdc-table-sort-overlay{position:relative;margin-left:auto}tbody td{padding:.5rem var(--sdc-table-padding-cell);border-bottom:1px solid var(--sdc-table-border-gray);vertical-align:middle;overflow:visible}.sdc-table-td-val{display:flex;align-items:center;width:100%;min-width:0}.sdc-table-td-val--initial-loading{min-height:1.5rem}.sdc-table-initial-loading-row{background:var(--sdc-table-bg-card)}.sdc-table-td--initial-loading{height:3.625rem}.sdc-table-th-label{color:#333!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;display:block;flex:1 1 auto}.sdc-table-empty-state{display:flex;align-items:center;justify-content:center;min-height:var(--sdc-table-body-height);padding:0}.sdc-table--loading .sdc-table-shell{pointer-events:none;-webkit-user-select:none;user-select:none}thead th.sdc-table-th-checkbox .sdc-table-th-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;pointer-events:none}thead th.sdc-table-th-checkbox .sdc-table-th-center input{pointer-events:auto}thead th.sdc-table-th-checkbox .sdc-table-th-inner{padding-right:28px}.sdc-table-paginator{padding:.5rem 0}.sdc-table-td-align-left{text-align:left}.sdc-table-td-align-center{text-align:center}.sdc-table-td-align-right{text-align:right}.sdc-table-cell-content--nowrap .sdc-table-text,.sdc-table-cell-content--nowrap .sdc-table-strong-label,.sdc-table-cell-content--nowrap .sdc-table-code-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.sdc-table-mobile-list{display:flex;flex-direction:column;gap:.375rem;width:100%}.sdc-table-mobile-card{display:flex;flex-direction:column;border:1px solid var(--sdc-border-strong, #d1d5db);border-radius:.25rem;background:var(--sdc-surface-bg, #ffffff);overflow:hidden}.sdc-table-mobile-card--loading{gap:0}.sdc-table-mobile-field{display:grid;grid-template-columns:minmax(0,8.5rem) minmax(0,1fr);gap:.875rem 1rem;align-items:start;padding:.9rem 1rem;border-top:1px solid var(--sdc-border-default, #cccccc);background:transparent}.sdc-table-mobile-field:first-child{border-top:0}.sdc-table-mobile-field--selected{background:#11182705}.sdc-table-mobile-field--full-width{grid-template-columns:1fr;gap:.625rem}.sdc-table-mobile-label-wrap,.sdc-table-mobile-value{min-width:0}.sdc-table-mobile-label,.sdc-table-mobile-label--sortable{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;margin:0;padding:0;border:0;background:transparent;color:var(--sdc-text-muted, #6b7280);font:inherit;font-size:.75rem;font-weight:600;line-height:1.35;letter-spacing:.01em;text-align:left}.sdc-table-mobile-label--sortable{cursor:pointer}.sdc-table-mobile-label--sortable:focus-visible{outline:2px solid var(--sdc-tab-primary, #428bca);outline-offset:3px;border-radius:.375rem}.sdc-table-mobile-label--loading{width:7rem;height:.75rem;border-radius:999px;background:linear-gradient(90deg,#94a3b82e,#94a3b852,#94a3b82e)}.sdc-table-mobile-skeleton{min-height:2.75rem;border-radius:.75rem;background:linear-gradient(90deg,#94a3b81f,#94a3b833,#94a3b81f)}.sdc-table-mobile-value{display:flex;align-items:flex-start}@media (max-width: 768px){.sdc-table-caption__search{width:100%}.sdc-table-paginator{justify-content:center!important;border-top:1px solid var(--sdc-table-border-gray)}.sdc-table-mobile-field--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sdc-table-mobile-field--sortable:hover{background:#11182706}}@media (max-width: 540px){.sdc-table-mobile-field{grid-template-columns:1fr;gap:.5rem}}\n"] }]
25174
+ ], encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n class=\"sdc-table\"\n [class.sdc-table-stack]=\"isMobile()\"\n [class.sdc-table-filtered]=\"!!globalFilter().trim()\"\n [class.sdc-table--loading]=\"isLoading\"\n [class.sdc-table--initial-loading]=\"showInitialLoading()\"\n>\n <sdc-loading-state\n class=\"sdc-table-loading-wrap\"\n [loading]=\"isLoading\"\n [blockWindow]=\"false\"\n [blockDelayMs]=\"0\"\n [indicator]=\"'dots'\"\n >\n <div class=\"sdc-table-shell\" [style.--sdc-table-body-height.px]=\"bodyViewportHeightPx()\">\n @if (showSearch()) {\n <div class=\"sdc-table-caption\">\n <div class=\"sdc-table-caption__search\">\n <sdc-searchbox\n [disabled]=\"isLoading\"\n [placeholder]=\"searchPlaceholder()\"\n [triggerMode]=\"triggerMode()\"\n (onSearch)=\"onSearchTerm($event)\"\n (onClear)=\"onClearSearch()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.search_field' | translate\"\n />\n </div>\n </div>\n }\n\n @if (!isMobile()) {\n <div class=\"sdc-table-scroll\" [style.--sdc-table-min-width.px]=\"tableMinWidthPx()\">\n <table\n class=\"sdc-table-grid\"\n role=\"table\"\n [attr.aria-label]=\"tableAriaLabelKey() | translate\"\n [attr.aria-rowcount]=\"totalRecords()\"\n [attr.aria-busy]=\"isLoading\"\n >\n <colgroup>\n @for (col of cols; track $index) {\n <col [style.width]=\"col.width ?? (columnMinWidthPx(col) + 'px')\" />\n }\n </colgroup>\n\n <thead>\n <tr role=\"row\">\n @for (col of cols; track $index) {\n <th\n scope=\"col\"\n role=\"columnheader\"\n [class.sdc-table-th-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-th-currency]=\"col.type === 'currency'\"\n [class.sdc-table-th-button]=\"col.type === 'button'\"\n [class.sdc-table-th-actions]=\"col.type === 'actions'\"\n [class.sdc-table-sortable]=\"isSortableColumn(col)\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [attr.aria-sort]=\"getSortAriaAttribute(col)\"\n [attr.tabindex]=\"isSortableColumn(col) ? 0 : null\"\n [attr.aria-label]=\"\n isSortableColumn(col)\n ? (\n (col.header | translate)\n + ' - '\n + ('platform.datacore.accessibility.sortable_column' | translate)\n )\n : (col.header | translate)\n \"\n (click)=\"col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n (keydown.enter)=\"col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n (keydown.space)=\"$event.preventDefault();\n col.field ? toggleSort(col.field, isSortableColumn(col)) : null\"\n >\n <div class=\"sdc-table-th-inner\" [class.sdc-table-sortable]=\"isSortableColumn(col)\">\n <span class=\"sdc-table-th-label\" aria-hidden=\"true\">{{ col.header | translate }}</span>\n\n <span class=\"sdc-table-sort-overlay\" aria-hidden=\"true\">\n <sdc-table-sort-indicator\n [columnField]=\"col.field || null\"\n [columnType]=\"col.type\"\n [sortable]=\"isSortableColumn(col)\"\n [sortField]=\"sortField()\"\n [sortOrder]=\"sortOrder()\"\n ></sdc-table-sort-indicator>\n </span>\n </div>\n\n @if (col.type === 'checkbox-selection' && (cellsCfg().checkbox.selectAll ?? true)) {\n <span class=\"sdc-table-th-center\">\n <input\n type=\"checkbox\"\n [id]=\"'select-all-checkbox'\"\n [checked]=\"isPageFullySelected()\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectPage(getCheckedValue($event))\"\n (keydown.space)=\"$event.preventDefault(); toggleSelectPage(!isPageFullySelected())\"\n [attr.aria-label]=\"'platform.datacore.accessibility.select_all_rows' | translate\"\n [attr.aria-checked]=\"isPageFullySelected()\"\n />\n <label for=\"select-all-checkbox\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.select_all_rows' | translate }}\n </label>\n </span>\n }\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @if (showInitialLoading()) {\n @for (rowIndex of initialLoadingRows(); track rowIndex; let r = $index) {\n <tr class=\"sdc-table-initial-loading-row\" role=\"row\" [attr.aria-rowindex]=\"r + 1\" aria-hidden=\"true\">\n @for (col of cols; track $index) {\n <td\n class=\"sdc-table-td sdc-table-tdc sdc-table-td--initial-loading\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-td-currency]=\"col.type === 'currency'\"\n [class.sdc-table-td-button]=\"col.type === 'button'\"\n [class.sdc-table-td-actions]=\"col.type === 'actions'\"\n [ngClass]=\"columnAlignClass(col)\"\n [attr.data-title]=\"col.header | translate\"\n role=\"cell\"\n >\n <div class=\"sdc-table-td-val sdc-table-td-val--initial-loading\"></div>\n </td>\n }\n </tr>\n }\n } @else {\n @for (row of pageData(); track $index; let r = $index) {\n <tr role=\"row\" [attr.aria-rowindex]=\"r + 1\">\n @for (col of cols; track $index) {\n <td\n class=\"sdc-table-td sdc-table-tdc\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-td-currency]=\"col.type === 'currency'\"\n [class.sdc-table-td-button]=\"col.type === 'button'\"\n [class.sdc-table-td-actions]=\"col.type === 'actions'\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [ngClass]=\"columnAlignClass(col)\"\n [attr.data-title]=\"col.header | translate\"\n [attr.id]=\"col.colId || null\"\n role=\"cell\"\n >\n @if (col.cellTag === 'span') {\n <span class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n [actionsMenuId]=\"isActionsMenuOpen(row, col) ? openMenuState()?.menuId ?? null : null\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </span>\n } @else if (col.cellTag === 'i') {\n <i class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n [actionsMenuId]=\"isActionsMenuOpen(row, col) ? openMenuState()?.menuId ?? null : null\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </i>\n } @else if (col.cellTag === 'p') {\n <p class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n [actionsMenuId]=\"isActionsMenuOpen(row, col) ? openMenuState()?.menuId ?? null : null\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </p>\n } @else {\n <div class=\"sdc-table-td-val\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n [actionsMenuId]=\"isActionsMenuOpen(row, col) ? openMenuState()?.menuId ?? null : null\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </div>\n }\n </td>\n }\n </tr>\n }\n }\n </tbody>\n </table>\n\n @if (!isLoading && options().empty?.show !== false && totalRecords() === 0) {\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n [style.min-height.px]=\"emptyBodyHeightPx()\"\n ></sdc-empty-state>\n }\n </div>\n } @else {\n <div\n class=\"sdc-table-mobile-list\"\n [attr.aria-label]=\"tableAriaLabelKey() | translate\"\n [attr.aria-busy]=\"isLoading\"\n >\n @if (showInitialLoading()) {\n @for (rowIndex of initialLoadingRows(); track rowIndex; let r = $index) {\n <div class=\"sdc-table-mobile-card sdc-table-mobile-card--loading\" aria-hidden=\"true\">\n @for (col of cols; track $index) {\n <div class=\"sdc-table-mobile-field sdc-table-mobile-field--loading\">\n <div class=\"sdc-table-mobile-label sdc-table-mobile-label--loading\"></div>\n <div class=\"sdc-table-mobile-skeleton\"></div>\n </div>\n }\n </div>\n }\n } @else {\n @for (row of pageData(); track $index; let r = $index) {\n <div class=\"sdc-table-mobile-card\">\n @for (col of cols; track $index) {\n <div\n class=\"sdc-table-mobile-field\"\n [class.sdc-table-mobile-field--full-width]=\"\n col.type === 'button' || col.type === 'actions' || col.type === 'checkbox-selection'\n \"\n [class.sdc-table-mobile-field--selected]=\"sortField() === col.field\"\n [class.sdc-table-mobile-field--sortable]=\"col.field && isSortableColumn(col)\"\n (click)=\"col.field && toggleSort(col.field, isSortableColumn(col))\"\n >\n @if (mobileFieldLabel(col)) {\n <div class=\"sdc-table-mobile-label-wrap\">\n @if (col.field && isSortableColumn(col)) {\n <button\n type=\"button\"\n class=\"sdc-table-mobile-label sdc-table-mobile-label--sortable\"\n [attr.aria-label]=\"\n (mobileFieldLabel(col) | translate)\n + ' - '\n + ('platform.datacore.accessibility.sortable_column' | translate)\n \"\n (click)=\"$event.stopPropagation(); toggleSort(col.field, isSortableColumn(col))\"\n (keydown.enter)=\"toggleSort(col.field, isSortableColumn(col))\"\n (keydown.space)=\"$event.preventDefault(); toggleSort(col.field, isSortableColumn(col))\"\n >\n <span>{{ mobileFieldLabel(col) | translate }}</span>\n <sdc-table-sort-indicator\n [columnField]=\"col.field || null\"\n [columnType]=\"col.type\"\n [sortable]=\"isSortableColumn(col)\"\n [sortField]=\"sortField()\"\n [sortOrder]=\"sortOrder()\"\n ></sdc-table-sort-indicator>\n </button>\n } @else {\n <div class=\"sdc-table-mobile-label\">\n <span>{{ mobileFieldLabel(col) | translate }}</span>\n </div>\n }\n </div>\n }\n\n <div class=\"sdc-table-mobile-value\" [ngStyle]=\"col.cellStyle\" [attr.id]=\"resolveCellId(col, row)\">\n <sdc-table-cell-content\n [row]=\"row\"\n [col]=\"col\"\n [cellConfigs]=\"cellsCfg()\"\n [resolveValue]=\"resolveValue\"\n [rowCheckboxId]=\"getRowCheckboxId(row)\"\n [rowLabel]=\"getRowCheckboxLabel(row)\"\n [rowSelected]=\"isRowSelected(row)\"\n [actionsMenuOpen]=\"isActionsMenuOpen(row, col)\"\n [actionsMenuId]=\"isActionsMenuOpen(row, col) ? openMenuState()?.menuId ?? null : null\"\n (toggleRow)=\"onToggleRow(row, $event)\"\n (triggerButtonAction)=\"onButtonClick(row, col)\"\n [defaultTextOverflow]=\"defaultTextOverflow()\"\n (toggleActionsMenu)=\"toggleActionsMenu($event.event, row, col, $event.trigger)\"\n ></sdc-table-cell-content>\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n\n @if (!isLoading && options().empty?.show !== false && totalRecords() === 0) {\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n [style.min-height.px]=\"emptyBodyHeightPx()\"\n ></sdc-empty-state>\n }\n }\n\n @if (showPaginator()) {\n <div class=\"sdc-table-paginator\">\n <sdc-paginator\n [first]=\"first()\"\n [rows]=\"rows()\"\n [totalRecords]=\"totalRecords()\"\n [rowsPerPageOptions]=\"isMobile() ? [] : rowsPerPageOptions()\"\n [isMobile]=\"isMobile()\"\n [totalRecordsLabel]=\"totalRecordsLabel()\"\n (pageChange)=\"onPageChange($event)\"\n ></sdc-paginator>\n </div>\n }\n </div>\n </sdc-loading-state>\n</section>\n\n@if (openMenuState(); as menu) {\n <sdc-table-actions-menu\n [items]=\"menu.items\"\n [menuId]=\"menu.menuId\"\n [top]=\"menu.top\"\n [left]=\"menu.left\"\n [width]=\"menu.width\"\n (close)=\"onMenuClose($event)\"\n (select)=\"onPortalActionClick($event)\"\n ></sdc-table-actions-menu>\n}\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table{width:100%;box-sizing:border-box;overflow:visible;background:var(--sdc-table-bg-card)}.sdc-table-shell{display:block;--sdc-table-body-height: 220px;overflow:visible}.sdc-table-loading-wrap{display:block;width:100%;overflow:visible}.sdc-table-caption{width:100%;justify-content:flex-end;display:flex;padding:.75rem 0}.sdc-table-caption__search{width:min(100%,22rem)}.sdc-table-scroll{width:100%;overflow-x:auto;overflow-y:visible}.sdc-table-grid{min-width:var(--sdc-table-min-width, 100%);width:100%;border-collapse:collapse;table-layout:auto}thead th{padding:var(--sdc-table-padding-cell);background:var(--sdc-table-bg-card);border-bottom:1px solid var(--sdc-formfield-default-border);-webkit-user-select:none;user-select:none;transition:background var(--sdc-table-transition-fast),border var(--sdc-table-transition-fast);min-height:44px;position:relative;overflow:hidden;text-align:left}thead th.sdc-table-sortable{cursor:pointer}thead th.sdc-table-sortable:hover{background:var(--sdc-table-th-hover-bg)}thead th.sdc-table-sortable:focus,thead th.sdc-table-sortable:focus-visible{outline:2px solid var(--sdc-tab-primary, #007bff);outline-offset:-2px;box-shadow:inset 0 0 0 3px #007bff33;position:relative;z-index:1}thead th.sdc-table-is-selected{background:var(--sdc-table-th-selected-bg)!important}.sdc-table-th-inner{display:flex;align-items:center;gap:var(--sdc-table-gap-th-inner);width:100%;min-width:0;overflow:hidden}.sdc-table-sort-overlay{position:relative;margin-left:auto}tbody td{padding:.5rem var(--sdc-table-padding-cell);border-bottom:1px solid var(--sdc-table-border-gray);vertical-align:middle;overflow:visible}.sdc-table-td-val{display:flex;align-items:center;width:100%;min-width:0}.sdc-table-td-val--initial-loading{min-height:1.5rem}.sdc-table-initial-loading-row{background:var(--sdc-table-bg-card)}.sdc-table-td--initial-loading{height:3.625rem}.sdc-table-th-label{color:#333!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;display:block;flex:1 1 auto}.sdc-table-empty-state{display:flex;align-items:center;justify-content:center;min-height:var(--sdc-table-body-height);padding:0}.sdc-table--loading .sdc-table-shell{pointer-events:none;-webkit-user-select:none;user-select:none}thead th.sdc-table-th-checkbox .sdc-table-th-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;pointer-events:none}thead th.sdc-table-th-checkbox .sdc-table-th-center input{pointer-events:auto}thead th.sdc-table-th-checkbox .sdc-table-th-inner{padding-right:28px}.sdc-table-paginator{padding:.5rem 0}.sdc-table-td-align-left{text-align:left}.sdc-table-td-align-center{text-align:center}.sdc-table-td-align-right{text-align:right}.sdc-table-cell-content--nowrap .sdc-table-text,.sdc-table-cell-content--nowrap .sdc-table-strong-label,.sdc-table-cell-content--nowrap .sdc-table-code-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.sdc-table-mobile-list{display:flex;flex-direction:column;gap:.375rem;width:100%}.sdc-table-mobile-card{display:flex;flex-direction:column;border:1px solid var(--sdc-border-strong, #d1d5db);border-radius:.25rem;background:var(--sdc-surface-bg, #ffffff);overflow:hidden}.sdc-table-mobile-card--loading{gap:0}.sdc-table-mobile-field{display:grid;grid-template-columns:minmax(0,8.5rem) minmax(0,1fr);gap:.875rem 1rem;align-items:start;padding:.9rem 1rem;border-top:1px solid var(--sdc-border-default, #cccccc);background:transparent}.sdc-table-mobile-field:first-child{border-top:0}.sdc-table-mobile-field--selected{background:#11182705}.sdc-table-mobile-field--full-width{grid-template-columns:1fr;gap:.625rem}.sdc-table-mobile-label-wrap,.sdc-table-mobile-value{min-width:0}.sdc-table-mobile-label,.sdc-table-mobile-label--sortable{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;margin:0;padding:0;border:0;background:transparent;color:var(--sdc-text-muted, #6b7280);font:inherit;font-size:.75rem;font-weight:600;line-height:1.35;letter-spacing:.01em;text-align:left}.sdc-table-mobile-label--sortable{cursor:pointer}.sdc-table-mobile-label--sortable:focus-visible{outline:2px solid var(--sdc-tab-primary, #428bca);outline-offset:3px;border-radius:.375rem}.sdc-table-mobile-label--loading{width:7rem;height:.75rem;border-radius:999px;background:linear-gradient(90deg,#94a3b82e,#94a3b852,#94a3b82e)}.sdc-table-mobile-skeleton{min-height:2.75rem;border-radius:.75rem;background:linear-gradient(90deg,#94a3b81f,#94a3b833,#94a3b81f)}.sdc-table-mobile-value{display:flex;align-items:flex-start}@media (max-width: 768px){.sdc-table-caption__search{width:100%}.sdc-table-paginator{justify-content:center!important;border-top:1px solid var(--sdc-table-border-gray)}.sdc-table-mobile-field--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sdc-table-mobile-field--sortable:hover{background:#11182706}}@media (max-width: 540px){.sdc-table-mobile-field{grid-template-columns:1fr;gap:.5rem}}\n"] }]
24927
25175
  }], propDecorators: { cols: [{
24928
25176
  type: Input,
24929
25177
  args: [{ required: true }]