coer-elements 2.0.72 → 2.0.75

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.
@@ -38,6 +38,7 @@ export declare class CoerGridBody<T> {
38
38
  protected onCheckboxChange: import("@angular/core").OutputEmitterRef<IGridInputCheckbox<T>>;
39
39
  protected onClickDeleteRow: import("@angular/core").OutputEmitterRef<T>;
40
40
  protected onClickEditRow: import("@angular/core").OutputEmitterRef<T>;
41
+ protected onClickModalRow: import("@angular/core").OutputEmitterRef<T>;
41
42
  protected onClickGoRow: import("@angular/core").OutputEmitterRef<T>;
42
43
  protected onSwitchChange: import("@angular/core").OutputEmitterRef<IGridInput<T>>;
43
44
  protected onTextboxChange: import("@angular/core").OutputEmitterRef<IGridInput<T>>;
@@ -70,12 +71,14 @@ export declare class CoerGridBody<T> {
70
71
  /** */
71
72
  RefreshCheck(): Promise<void>;
72
73
  /** */
73
- protected _ShowButtonByRow(property: 'showDeleteButton' | 'showEditButton' | 'showGoButton', data?: any): boolean;
74
+ protected _ShowButtonByRow(property: 'showDeleteButton' | 'showEditButton' | 'showModalButton' | 'showGoButton', data?: any): boolean;
74
75
  /** */
75
76
  protected _ButtonByRowColorDelete: import("@angular/core").Signal<"primary" | "secondary" | "success" | "warning" | "danger" | "navigation" | "information" | "dark">;
76
77
  /** */
77
78
  protected _ButtonByRowColorEdit: import("@angular/core").Signal<"primary" | "secondary" | "success" | "warning" | "danger" | "navigation" | "information" | "dark">;
78
79
  /** */
80
+ protected _ButtonByRowColorModal: import("@angular/core").Signal<"primary" | "secondary" | "success" | "warning" | "danger" | "navigation" | "information" | "dark">;
81
+ /** */
79
82
  protected _ButtonByRowColorGo: import("@angular/core").Signal<"primary" | "secondary" | "success" | "warning" | "danger" | "navigation" | "information" | "dark">;
80
83
  /** */
81
84
  protected _GetTooltip: (prefix: string, row: any, suffix?: string) => string;
@@ -98,5 +101,5 @@ export declare class CoerGridBody<T> {
98
101
  /** */
99
102
  FocusRow(callback: (row: T) => boolean): void;
100
103
  static ɵfac: i0.ɵɵFactoryDeclaration<CoerGridBody<any>, never>;
101
- static ɵcmp: i0.ɵɵComponentDeclaration<CoerGridBody<any>, "coer-grid-body", never, { "GetIdCalculated": { "alias": "GetIdCalculated"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "dataSourceSelected": { "alias": "dataSourceSelected"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "searchInner": { "alias": "searchInner"; "required": false; "isSignal": true; }; "checkbox": { "alias": "checkbox"; "required": false; "isSignal": true; }; "buttonByRow": { "alias": "buttonByRow"; "required": false; "isSignal": true; }; "isLoadingInner": { "alias": "isLoadingInner"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "isReadonly": { "alias": "isReadonly"; "required": false; "isSignal": true; }; "isInvisible": { "alias": "isInvisible"; "required": false; "isSignal": true; }; "isEnabled": { "alias": "isEnabled"; "required": false; "isSignal": true; }; "enableSort": { "alias": "enableSort"; "required": false; "isSignal": true; }; "enableFocusNext": { "alias": "enableFocusNext"; "required": false; "isSignal": true; }; "enableFocusRow": { "alias": "enableFocusRow"; "required": false; "isSignal": true; }; "enableHoverRow": { "alias": "enableHoverRow"; "required": false; "isSignal": true; }; "isStriped": { "alias": "isStriped"; "required": false; "isSignal": true; }; "tooltipByRow": { "alias": "tooltipByRow"; "required": false; "isSignal": true; }; }, { "onValueChange": "onValueChange"; "onClickRow": "onClickRow"; "onDoubleClickRow": "onDoubleClickRow"; "onInnerLoadingChange": "onInnerLoadingChange"; "onCheckboxChange": "onCheckboxChange"; "onClickDeleteRow": "onClickDeleteRow"; "onClickEditRow": "onClickEditRow"; "onClickGoRow": "onClickGoRow"; "onSwitchChange": "onSwitchChange"; "onTextboxChange": "onTextboxChange"; "onNumberboxChange": "onNumberboxChange"; "onSelectboxChange": "onSelectboxChange"; "onKeyupEnter": "onKeyupEnter"; "onKeyupEnterLast": "onKeyupEnterLast"; }, never, never, false, never>;
104
+ static ɵcmp: i0.ɵɵComponentDeclaration<CoerGridBody<any>, "coer-grid-body", never, { "GetIdCalculated": { "alias": "GetIdCalculated"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "dataSourceSelected": { "alias": "dataSourceSelected"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "searchInner": { "alias": "searchInner"; "required": false; "isSignal": true; }; "checkbox": { "alias": "checkbox"; "required": false; "isSignal": true; }; "buttonByRow": { "alias": "buttonByRow"; "required": false; "isSignal": true; }; "isLoadingInner": { "alias": "isLoadingInner"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "isReadonly": { "alias": "isReadonly"; "required": false; "isSignal": true; }; "isInvisible": { "alias": "isInvisible"; "required": false; "isSignal": true; }; "isEnabled": { "alias": "isEnabled"; "required": false; "isSignal": true; }; "enableSort": { "alias": "enableSort"; "required": false; "isSignal": true; }; "enableFocusNext": { "alias": "enableFocusNext"; "required": false; "isSignal": true; }; "enableFocusRow": { "alias": "enableFocusRow"; "required": false; "isSignal": true; }; "enableHoverRow": { "alias": "enableHoverRow"; "required": false; "isSignal": true; }; "isStriped": { "alias": "isStriped"; "required": false; "isSignal": true; }; "tooltipByRow": { "alias": "tooltipByRow"; "required": false; "isSignal": true; }; }, { "onValueChange": "onValueChange"; "onClickRow": "onClickRow"; "onDoubleClickRow": "onDoubleClickRow"; "onInnerLoadingChange": "onInnerLoadingChange"; "onCheckboxChange": "onCheckboxChange"; "onClickDeleteRow": "onClickDeleteRow"; "onClickEditRow": "onClickEditRow"; "onClickModalRow": "onClickModalRow"; "onClickGoRow": "onClickGoRow"; "onSwitchChange": "onSwitchChange"; "onTextboxChange": "onTextboxChange"; "onNumberboxChange": "onNumberboxChange"; "onSelectboxChange": "onSelectboxChange"; "onKeyupEnter": "onKeyupEnter"; "onKeyupEnterLast": "onKeyupEnterLast"; }, never, never, false, never>;
102
105
  }
@@ -53,6 +53,7 @@ export declare class CoerGridExtension<T> extends ControlValue implements AfterV
53
53
  protected onCheckboxChange: import("@angular/core").OutputEmitterRef<IGridInputCheckbox<T>>;
54
54
  protected onClickDeleteRow: import("@angular/core").OutputEmitterRef<T>;
55
55
  protected onClickEditRow: import("@angular/core").OutputEmitterRef<T>;
56
+ protected onClickModalRow: import("@angular/core").OutputEmitterRef<T>;
56
57
  protected onClickGoRow: import("@angular/core").OutputEmitterRef<T>;
57
58
  protected onKeyupEnter: import("@angular/core").OutputEmitterRef<IGridKeyupEnter>;
58
59
  protected onKeyupEnterLast: import("@angular/core").OutputEmitterRef<IGridKeyupEnter>;
@@ -82,5 +83,5 @@ export declare class CoerGridExtension<T> extends ControlValue implements AfterV
82
83
  protected _buildRow<T>(data: any): T;
83
84
  protected get _height(): string;
84
85
  static ɵfac: i0.ɵɵFactoryDeclaration<CoerGridExtension<any>, never>;
85
- static ɵcmp: i0.ɵɵComponentDeclaration<CoerGridExtension<any>, "coer-grid-extension", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "cleanColumnName": { "alias": "cleanColumnName"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; }; "exportButton": { "alias": "exportButton"; "required": false; }; "importButton": { "alias": "importButton"; "required": false; }; "addButton": { "alias": "addButton"; "required": false; }; "saveButton": { "alias": "saveButton"; "required": false; }; "checkbox": { "alias": "checkbox"; "required": false; }; "buttonByRow": { "alias": "buttonByRow"; "required": false; }; "footer": { "alias": "footer"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "isReadonly": { "alias": "isReadonly"; "required": false; "isSignal": true; }; "isInvisible": { "alias": "isInvisible"; "required": false; "isSignal": true; }; "rowsByPage": { "alias": "rowsByPage"; "required": false; "isSignal": true; }; "tooltipByRow": { "alias": "tooltipByRow"; "required": false; "isSignal": true; }; "enableSort": { "alias": "enableSort"; "required": false; "isSignal": true; }; "enableFocusNext": { "alias": "enableFocusNext"; "required": false; "isSignal": true; }; "enableFocusRow": { "alias": "enableFocusRow"; "required": false; "isSignal": true; }; "enableHoverRow": { "alias": "enableHoverRow"; "required": false; "isSignal": true; }; "isStriped": { "alias": "isStriped"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "MinWidth": { "alias": "MinWidth"; "required": false; "isSignal": true; }; "MaxWidth": { "alias": "MaxWidth"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; }, { "onClickExport": "onClickExport"; "onClickImport": "onClickImport"; "onClickAdd": "onClickAdd"; "onClickSave": "onClickSave"; "onClickRow": "onClickRow"; "onDoubleClickRow": "onDoubleClickRow"; "onCheckboxChange": "onCheckboxChange"; "onClickDeleteRow": "onClickDeleteRow"; "onClickEditRow": "onClickEditRow"; "onClickGoRow": "onClickGoRow"; "onKeyupEnter": "onKeyupEnter"; "onKeyupEnterLast": "onKeyupEnterLast"; "onSwitchChange": "onSwitchChange"; "onTextboxChange": "onTextboxChange"; "onNumberboxChange": "onNumberboxChange"; "onSelectboxChange": "onSelectboxChange"; }, never, never, true, never>;
86
+ static ɵcmp: i0.ɵɵComponentDeclaration<CoerGridExtension<any>, "coer-grid-extension", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "cleanColumnName": { "alias": "cleanColumnName"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; }; "exportButton": { "alias": "exportButton"; "required": false; }; "importButton": { "alias": "importButton"; "required": false; }; "addButton": { "alias": "addButton"; "required": false; }; "saveButton": { "alias": "saveButton"; "required": false; }; "checkbox": { "alias": "checkbox"; "required": false; }; "buttonByRow": { "alias": "buttonByRow"; "required": false; }; "footer": { "alias": "footer"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "isReadonly": { "alias": "isReadonly"; "required": false; "isSignal": true; }; "isInvisible": { "alias": "isInvisible"; "required": false; "isSignal": true; }; "rowsByPage": { "alias": "rowsByPage"; "required": false; "isSignal": true; }; "tooltipByRow": { "alias": "tooltipByRow"; "required": false; "isSignal": true; }; "enableSort": { "alias": "enableSort"; "required": false; "isSignal": true; }; "enableFocusNext": { "alias": "enableFocusNext"; "required": false; "isSignal": true; }; "enableFocusRow": { "alias": "enableFocusRow"; "required": false; "isSignal": true; }; "enableHoverRow": { "alias": "enableHoverRow"; "required": false; "isSignal": true; }; "isStriped": { "alias": "isStriped"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "MinWidth": { "alias": "MinWidth"; "required": false; "isSignal": true; }; "MaxWidth": { "alias": "MaxWidth"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; }, { "onClickExport": "onClickExport"; "onClickImport": "onClickImport"; "onClickAdd": "onClickAdd"; "onClickSave": "onClickSave"; "onClickRow": "onClickRow"; "onDoubleClickRow": "onDoubleClickRow"; "onCheckboxChange": "onCheckboxChange"; "onClickDeleteRow": "onClickDeleteRow"; "onClickEditRow": "onClickEditRow"; "onClickModalRow": "onClickModalRow"; "onClickGoRow": "onClickGoRow"; "onKeyupEnter": "onKeyupEnter"; "onKeyupEnterLast": "onKeyupEnterLast"; "onSwitchChange": "onSwitchChange"; "onTextboxChange": "onTextboxChange"; "onNumberboxChange": "onNumberboxChange"; "onSelectboxChange": "onSelectboxChange"; }, never, never, true, never>;
86
87
  }
@@ -13,7 +13,7 @@ export declare class CoerModal implements AfterViewInit {
13
13
  title: import("@angular/core").InputSignal<string>;
14
14
  icon: import("@angular/core").InputSignal<string>;
15
15
  showCloseButton: import("@angular/core").InputSignal<boolean>;
16
- width: import("@angular/core").InputSignal<"auto" | "small" | "full">;
16
+ width: import("@angular/core").InputSignal<"auto" | "full" | "small">;
17
17
  height: import("@angular/core").InputSignal<string>;
18
18
  maxHeight: import("@angular/core").InputSignal<string>;
19
19
  verticalPosition: import("@angular/core").InputSignal<"top" | "bottom" | "middle">;
@@ -0,0 +1,9 @@
1
+ declare global {
2
+ interface Array<T> {
3
+ /** */
4
+ Distinct(): T[];
5
+ /** */
6
+ Except(exceptions: T[]): T[];
7
+ }
8
+ }
9
+ export {};
@@ -1,2 +1,3 @@
1
+ import './lib/array.extension';
1
2
  import './lib/object.extension';
2
3
  import './lib/string.extension';
@@ -38,7 +38,7 @@ import * as i3$5 from '@angular/material/toolbar';
38
38
  import { MatToolbarModule } from '@angular/material/toolbar';
39
39
  import * as i3$1 from '@angular/material/tooltip';
40
40
  import { MatTooltipModule } from '@angular/material/tooltip';
41
- import { Tools, Strings, ControlValue, CONTROL_VALUE, HTMLElements, Dates, Screen, CoerAlert, Files, Numbers, Collections, Source, Menu, Breadcrumbs } from 'coer-elements/tools';
41
+ import { Tools, Strings, ControlValue, CONTROL_VALUE, HTMLElements, Dates, Screen, CoerAlert, Files, Collections, Numbers, Source, Menu, Breadcrumbs } from 'coer-elements/tools';
42
42
  import { breakpointSIGNAL, isModalOpenSIGNAL, colorsSIGNAL, menuSelectedSIGNAL, isMenuOpenSIGNAL, isLoadingSIGNAL, navigationSIGNAL } from 'coer-elements/signals';
43
43
  import { Modal } from 'bootstrap';
44
44
 
@@ -219,8 +219,8 @@ class CoerButton {
219
219
  });
220
220
  //computed
221
221
  this._icon = computed(() => {
222
- const icon = Tools.IsNotNull(this.icon()) ? this.icon() : '';
223
- switch (this.icon()) {
222
+ const icon = Tools.IsNotOnlyWhiteSpace(this.icon()) ? this.icon() : '';
223
+ switch (icon) {
224
224
  case 'new': return 'icon-plus';
225
225
  case 'save': return 'icon-disk-floppy icon-fill';
226
226
  case 'cancel': return 'icon-x';
@@ -234,8 +234,7 @@ class CoerButton {
234
234
  case 'pointer': return 'icon-pointer icon-fill';
235
235
  }
236
236
  return ['icon', 'icon-outline', 'icon-no-border'].includes(this.type())
237
- && Tools.IsOnlyWhiteSpace(icon)
238
- ? 'icon-pointer icon-fill' : icon;
237
+ && Tools.IsOnlyWhiteSpace(icon) ? 'icon-pointer icon-fill' : icon;
239
238
  });
240
239
  //computed
241
240
  this._buttonType = computed(() => {
@@ -1110,6 +1109,7 @@ class CoerGridExtension extends ControlValue {
1110
1109
  this.onCheckboxChange = output();
1111
1110
  this.onClickDeleteRow = output();
1112
1111
  this.onClickEditRow = output();
1112
+ this.onClickModalRow = output();
1113
1113
  this.onClickGoRow = output();
1114
1114
  this.onKeyupEnter = output();
1115
1115
  this.onKeyupEnterLast = output();
@@ -1267,8 +1267,8 @@ class CoerGridExtension extends ControlValue {
1267
1267
  /** */
1268
1268
  _buildRow(data) {
1269
1269
  let row = {};
1270
- for (const column of this.columns()) {
1271
- row = { ...row, [column.property]: data[column.property] || null };
1270
+ for (const property of Collections.Distinct(Tools.GetPropertyList(data).concat(this.columns().map(x => x.property)))) {
1271
+ row = { ...row, [property]: data[property] || null };
1272
1272
  }
1273
1273
  return { ...row };
1274
1274
  }
@@ -1284,7 +1284,7 @@ class CoerGridExtension extends ControlValue {
1284
1284
  : this.height();
1285
1285
  }
1286
1286
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: CoerGridExtension, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1287
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.1", type: CoerGridExtension, isStandalone: true, selector: "coer-grid-extension", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, cleanColumnName: { classPropertyName: "cleanColumnName", publicName: "cleanColumnName", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: false, isRequired: false, transformFunction: null }, exportButton: { classPropertyName: "exportButton", publicName: "exportButton", isSignal: false, isRequired: false, transformFunction: null }, importButton: { classPropertyName: "importButton", publicName: "importButton", isSignal: false, isRequired: false, transformFunction: null }, addButton: { classPropertyName: "addButton", publicName: "addButton", isSignal: false, isRequired: false, transformFunction: null }, saveButton: { classPropertyName: "saveButton", publicName: "saveButton", isSignal: false, isRequired: false, transformFunction: null }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: false, isRequired: false, transformFunction: null }, buttonByRow: { classPropertyName: "buttonByRow", publicName: "buttonByRow", isSignal: false, isRequired: false, transformFunction: null }, footer: { classPropertyName: "footer", publicName: "footer", isSignal: false, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, isInvisible: { classPropertyName: "isInvisible", publicName: "isInvisible", isSignal: true, isRequired: false, transformFunction: null }, rowsByPage: { classPropertyName: "rowsByPage", publicName: "rowsByPage", isSignal: true, isRequired: false, transformFunction: null }, tooltipByRow: { classPropertyName: "tooltipByRow", publicName: "tooltipByRow", isSignal: true, isRequired: false, transformFunction: null }, enableSort: { classPropertyName: "enableSort", publicName: "enableSort", isSignal: true, isRequired: false, transformFunction: null }, enableFocusNext: { classPropertyName: "enableFocusNext", publicName: "enableFocusNext", isSignal: true, isRequired: false, transformFunction: null }, enableFocusRow: { classPropertyName: "enableFocusRow", publicName: "enableFocusRow", isSignal: true, isRequired: false, transformFunction: null }, enableHoverRow: { classPropertyName: "enableHoverRow", publicName: "enableHoverRow", isSignal: true, isRequired: false, transformFunction: null }, isStriped: { classPropertyName: "isStriped", publicName: "isStriped", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, MinWidth: { classPropertyName: "MinWidth", publicName: "MinWidth", isSignal: true, isRequired: false, transformFunction: null }, MaxWidth: { classPropertyName: "MaxWidth", publicName: "MaxWidth", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, margin: { classPropertyName: "margin", publicName: "margin", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClickExport: "onClickExport", onClickImport: "onClickImport", onClickAdd: "onClickAdd", onClickSave: "onClickSave", onClickRow: "onClickRow", onDoubleClickRow: "onDoubleClickRow", onCheckboxChange: "onCheckboxChange", onClickDeleteRow: "onClickDeleteRow", onClickEditRow: "onClickEditRow", onClickGoRow: "onClickGoRow", onKeyupEnter: "onKeyupEnter", onKeyupEnterLast: "onKeyupEnterLast", onSwitchChange: "onSwitchChange", onTextboxChange: "onTextboxChange", onNumberboxChange: "onNumberboxChange", onSelectboxChange: "onSelectboxChange" }, viewQueries: [{ propertyName: "_coerGridHeader", first: true, predicate: ["coerGridHeader"], descendants: true, isSignal: true }, { propertyName: "_coerGridBody", first: true, predicate: ["coerGridBody"], descendants: true, isSignal: true }, { propertyName: "_coerGridFooter", first: true, predicate: ["coerGridFooter"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
1287
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.1", type: CoerGridExtension, isStandalone: true, selector: "coer-grid-extension", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, cleanColumnName: { classPropertyName: "cleanColumnName", publicName: "cleanColumnName", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: false, isRequired: false, transformFunction: null }, exportButton: { classPropertyName: "exportButton", publicName: "exportButton", isSignal: false, isRequired: false, transformFunction: null }, importButton: { classPropertyName: "importButton", publicName: "importButton", isSignal: false, isRequired: false, transformFunction: null }, addButton: { classPropertyName: "addButton", publicName: "addButton", isSignal: false, isRequired: false, transformFunction: null }, saveButton: { classPropertyName: "saveButton", publicName: "saveButton", isSignal: false, isRequired: false, transformFunction: null }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: false, isRequired: false, transformFunction: null }, buttonByRow: { classPropertyName: "buttonByRow", publicName: "buttonByRow", isSignal: false, isRequired: false, transformFunction: null }, footer: { classPropertyName: "footer", publicName: "footer", isSignal: false, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, isInvisible: { classPropertyName: "isInvisible", publicName: "isInvisible", isSignal: true, isRequired: false, transformFunction: null }, rowsByPage: { classPropertyName: "rowsByPage", publicName: "rowsByPage", isSignal: true, isRequired: false, transformFunction: null }, tooltipByRow: { classPropertyName: "tooltipByRow", publicName: "tooltipByRow", isSignal: true, isRequired: false, transformFunction: null }, enableSort: { classPropertyName: "enableSort", publicName: "enableSort", isSignal: true, isRequired: false, transformFunction: null }, enableFocusNext: { classPropertyName: "enableFocusNext", publicName: "enableFocusNext", isSignal: true, isRequired: false, transformFunction: null }, enableFocusRow: { classPropertyName: "enableFocusRow", publicName: "enableFocusRow", isSignal: true, isRequired: false, transformFunction: null }, enableHoverRow: { classPropertyName: "enableHoverRow", publicName: "enableHoverRow", isSignal: true, isRequired: false, transformFunction: null }, isStriped: { classPropertyName: "isStriped", publicName: "isStriped", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, MinWidth: { classPropertyName: "MinWidth", publicName: "MinWidth", isSignal: true, isRequired: false, transformFunction: null }, MaxWidth: { classPropertyName: "MaxWidth", publicName: "MaxWidth", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, margin: { classPropertyName: "margin", publicName: "margin", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClickExport: "onClickExport", onClickImport: "onClickImport", onClickAdd: "onClickAdd", onClickSave: "onClickSave", onClickRow: "onClickRow", onDoubleClickRow: "onDoubleClickRow", onCheckboxChange: "onCheckboxChange", onClickDeleteRow: "onClickDeleteRow", onClickEditRow: "onClickEditRow", onClickModalRow: "onClickModalRow", onClickGoRow: "onClickGoRow", onKeyupEnter: "onKeyupEnter", onKeyupEnterLast: "onKeyupEnterLast", onSwitchChange: "onSwitchChange", onTextboxChange: "onTextboxChange", onNumberboxChange: "onNumberboxChange", onSelectboxChange: "onSelectboxChange" }, viewQueries: [{ propertyName: "_coerGridHeader", first: true, predicate: ["coerGridHeader"], descendants: true, isSignal: true }, { propertyName: "_coerGridBody", first: true, predicate: ["coerGridBody"], descendants: true, isSignal: true }, { propertyName: "_coerGridFooter", first: true, predicate: ["coerGridFooter"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
1288
1288
  }
1289
1289
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: CoerGridExtension, decorators: [{
1290
1290
  type: Component,
@@ -1558,43 +1558,35 @@ class CoerGridHeader {
1558
1558
  this.onKeyupEnterSearch = output();
1559
1559
  //computed
1560
1560
  this._dataSourceExport = computed(() => {
1561
- const _dataSource = this.dataSource();
1562
- const _dataSourceSelected = this.dataSourceSelected();
1563
- const _dataSourceFiltered = this.dataSourceFiltered();
1564
- const _exportButton = this.exportButton();
1565
1561
  //Get Data
1566
1562
  let DATA_SOURCE = [];
1567
- if (Tools.IsNotNull(_exportButton?.onlySelectedItem) && _exportButton.onlySelectedItem) {
1568
- DATA_SOURCE = _dataSourceSelected;
1563
+ if (Tools.IsBooleanTrue(this.exportButton()?.onlySelectedItem)) {
1564
+ DATA_SOURCE = this.dataSourceSelected();
1569
1565
  }
1570
1566
  else {
1571
- DATA_SOURCE = (Tools.IsNotNull(_exportButton?.onlyRowFiltered) && !_exportButton.onlyRowFiltered)
1572
- ? _dataSource : _dataSourceFiltered;
1567
+ DATA_SOURCE = (Tools.IsBooleanTrue(this.exportButton()?.onlyRowFiltered))
1568
+ ? this.dataSourceFiltered() : this.dataSource();
1573
1569
  }
1574
1570
  //Get Columns
1575
- const DATA_SOURCE_COLUMNS = new Set();
1576
- if (Tools.IsNotNull(_exportButton?.onlyColumnFiltered) && !_exportButton.onlyColumnFiltered) {
1577
- for (const row of _dataSource) {
1578
- for (const columnName in row) {
1579
- if (columnName == 'indexRow')
1571
+ let DATA_SOURCE_COLUMNS = new Set();
1572
+ if (Tools.IsBooleanFalse(this.exportButton()?.onlyColumnFiltered)) {
1573
+ for (const row of this.dataSource()) {
1574
+ for (const property in row) {
1575
+ if (property == 'indexRow')
1580
1576
  continue;
1581
- DATA_SOURCE_COLUMNS.add(Strings.FirstCharToLower(columnName));
1577
+ DATA_SOURCE_COLUMNS.add(Strings.FirstCharToLower(property));
1582
1578
  }
1583
1579
  }
1584
1580
  }
1585
1581
  else {
1586
- for (const { columnName } of this.columns()) {
1587
- if (columnName == 'indexRow')
1588
- continue;
1589
- DATA_SOURCE_COLUMNS.add(Strings.FirstCharToLower(columnName));
1590
- }
1582
+ DATA_SOURCE_COLUMNS = new Set(Collections.Except(this.columns().map(x => Strings.FirstCharToLower(x.property)), ['indexRow', 'checked']));
1591
1583
  }
1592
1584
  //Export Data
1593
1585
  let item = {};
1594
1586
  const DATA_SOURCE_EXPORT = [];
1595
1587
  for (const row of DATA_SOURCE) {
1596
- for (const column of DATA_SOURCE_COLUMNS) {
1597
- item = Object.assign(item, { [this.GetColumnName()(column)]: row[column] });
1588
+ for (const property of DATA_SOURCE_COLUMNS) {
1589
+ item = Object.assign(item, { [this.GetColumnName()(property)]: row[property] });
1598
1590
  }
1599
1591
  DATA_SOURCE_EXPORT.push(item);
1600
1592
  item = Tools.BreakReference({});
@@ -1668,7 +1660,7 @@ class CoerGridHeader {
1668
1660
  }
1669
1661
  /** */
1670
1662
  _Export() {
1671
- this.Export(this.exportButton()?.preventDefault === undefined || this.exportButton()?.preventDefault === false);
1663
+ this.Export(Tools.IsNull(this.exportButton()?.preventDefault) || this.exportButton()?.preventDefault === false);
1672
1664
  }
1673
1665
  /** */
1674
1666
  async Export(exportFile = true) {
@@ -2750,6 +2742,7 @@ class CoerGridBody {
2750
2742
  this.onCheckboxChange = output();
2751
2743
  this.onClickDeleteRow = output();
2752
2744
  this.onClickEditRow = output();
2745
+ this.onClickModalRow = output();
2753
2746
  this.onClickGoRow = output();
2754
2747
  this.onSwitchChange = output();
2755
2748
  this.onTextboxChange = output();
@@ -2798,6 +2791,12 @@ class CoerGridBody {
2798
2791
  : 'primary';
2799
2792
  });
2800
2793
  /** */
2794
+ this._ButtonByRowColorModal = computed(() => {
2795
+ return Tools.IsNotOnlyWhiteSpace(this.buttonByRow()?.modalButtonColor)
2796
+ ? this.buttonByRow()?.modalButtonColor
2797
+ : 'primary';
2798
+ });
2799
+ /** */
2801
2800
  this._ButtonByRowColorGo = computed(() => {
2802
2801
  return Tools.IsNotOnlyWhiteSpace(this.buttonByRow()?.goButtonColor)
2803
2802
  ? this.buttonByRow()?.goButtonColor
@@ -3162,11 +3161,11 @@ class CoerGridBody {
3162
3161
  }
3163
3162
  }
3164
3163
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: CoerGridBody, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3165
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: CoerGridBody, isStandalone: false, selector: "coer-grid-body", inputs: { GetIdCalculated: { classPropertyName: "GetIdCalculated", publicName: "GetIdCalculated", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, dataSourceSelected: { classPropertyName: "dataSourceSelected", publicName: "dataSourceSelected", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, searchInner: { classPropertyName: "searchInner", publicName: "searchInner", isSignal: true, isRequired: false, transformFunction: null }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: true, isRequired: false, transformFunction: null }, buttonByRow: { classPropertyName: "buttonByRow", publicName: "buttonByRow", isSignal: true, isRequired: false, transformFunction: null }, isLoadingInner: { classPropertyName: "isLoadingInner", publicName: "isLoadingInner", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, isInvisible: { classPropertyName: "isInvisible", publicName: "isInvisible", isSignal: true, isRequired: false, transformFunction: null }, isEnabled: { classPropertyName: "isEnabled", publicName: "isEnabled", isSignal: true, isRequired: false, transformFunction: null }, enableSort: { classPropertyName: "enableSort", publicName: "enableSort", isSignal: true, isRequired: false, transformFunction: null }, enableFocusNext: { classPropertyName: "enableFocusNext", publicName: "enableFocusNext", isSignal: true, isRequired: false, transformFunction: null }, enableFocusRow: { classPropertyName: "enableFocusRow", publicName: "enableFocusRow", isSignal: true, isRequired: false, transformFunction: null }, enableHoverRow: { classPropertyName: "enableHoverRow", publicName: "enableHoverRow", isSignal: true, isRequired: false, transformFunction: null }, isStriped: { classPropertyName: "isStriped", publicName: "isStriped", isSignal: true, isRequired: false, transformFunction: null }, tooltipByRow: { classPropertyName: "tooltipByRow", publicName: "tooltipByRow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChange: "onValueChange", onClickRow: "onClickRow", onDoubleClickRow: "onDoubleClickRow", onInnerLoadingChange: "onInnerLoadingChange", onCheckboxChange: "onCheckboxChange", onClickDeleteRow: "onClickDeleteRow", onClickEditRow: "onClickEditRow", onClickGoRow: "onClickGoRow", onSwitchChange: "onSwitchChange", onTextboxChange: "onTextboxChange", onNumberboxChange: "onNumberboxChange", onSelectboxChange: "onSelectboxChange", onKeyupEnter: "onKeyupEnter", onKeyupEnterLast: "onKeyupEnterLast" }, viewQueries: [{ propertyName: "_coerCheckboxList", predicate: CoerCheckbox, descendants: true, isSignal: true }, { propertyName: "_coerGridCellList", predicate: (CoerGridCell), descendants: true, isSignal: true }], ngImport: i0, template: "<section class=\"coer-grid-body\">\r\n <table [ngClass]=\"{ \r\n 'table' : true,\r\n 'table-sm': true, \r\n 'table-responsive': true,\r\n 'table-striped' : isStriped()\r\n }\">\r\n \r\n <thead>\r\n <tr>\r\n <!-- Checkbox All -->\r\n @if(_showCheckbox()) {\r\n <th class=\"action-column\" scope=\"col\"> \r\n <div class=\"action-column-content\">\r\n <div [ngClass]=\"{ 'display-none': _isInvisibleCheckboxAll }\">\r\n <coer-checkbox\r\n [id]=\"GetIdCalculated()(-1, -1, 'checkbox-all')\"\r\n [ignoreDataBinding]=\"true\" \r\n (onChange)=\"_ClickCheckAll($event)\"\r\n ></coer-checkbox>\r\n </div> \r\n \r\n <div [class]=\"_isLoadingInner ? 'display-contents' : 'display-none'\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i> \r\n </div> \r\n </div>\r\n </th>\r\n }\r\n \r\n <!-- Dynamic Grid Column -->\r\n @for(header of columns(); track header.indexColumn) {\r\n <th scope=\"col\" [class]=\"_cursorHeader()\" (dblclick)=\"_SortToggle(header.property)\" [ngStyle]=\"{ 'width': header.config?.width || 'auto' }\"> \r\n <div class=\"th-content\">\r\n <span> {{ header.columnName }} </span>\r\n <i [class]=\"_IconShortHeader(header.property)\"></i>\r\n <i [class]=\"_IconSearchHeader(header.property)\"></i>\r\n </div>\r\n </th>\r\n }\r\n \r\n @if(_ShowButtonByRow('showDeleteButton')) {\r\n <th class=\"action-column\" scope=\"col\"></th>\r\n }\r\n \r\n @if(_ShowButtonByRow('showEditButton')) { \r\n <th class=\"action-column\" scope=\"col\"></th>\r\n } \r\n \r\n @if(_ShowButtonByRow('showGoButton')) {\r\n <th class=\"action-column\" scope=\"col\"></th>\r\n }\r\n </tr>\r\n </thead>\r\n \r\n <!-- body -->\r\n @for(group of dataSource(); track group.indexGroup) {\r\n <tbody> \r\n @for(row of group.rows; track row.indexRow) {\r\n <tr [id]=\"GetIdCalculated()(row.indexRow, 0, 'row')\" \r\n (click)=\"_focusRowIndex.set(row.indexRow)\"\r\n [ngClass]=\"{ \r\n 'loading' : isLoading(),\r\n 'row-focus': (row.indexRow == _focusRowIndex() && enableFocusRow()),\r\n 'row-hover-none': !enableHoverRow()\r\n }\">\r\n \r\n <!-- CheckBox Column -->\r\n @if(_showCheckbox()) {\r\n <td class=\"action-column\">\r\n <div class=\"action-column-content\">\r\n <div [ngClass]=\"{ 'display-none': _isLoadingInner }\">\r\n <coer-checkbox\r\n [id]=\"GetIdCalculated()(row.indexRow, 0, 'checkbox')\"\r\n [ignoreDataBinding]=\"true\"\r\n [isDisabled]=\"!isEnabled()\"\r\n (onChange)=\"_ClickCheck($event, row)\"\r\n ></coer-checkbox>\r\n </div>\r\n \r\n <div [class]=\"_isLoadingInner ? 'display-contents' : 'display-none'\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i> \r\n </div>\r\n </div>\r\n </td>\r\n }\r\n \r\n <!-- Dynamic Column -->\r\n @for(header of columns(); track header.indexColumn) {\r\n <td class=\"td-content\">\r\n <coer-grid-cell\r\n [id]=\"GetIdCalculated()(row.indexRow, header.indexColumn)\"\r\n [header]=\"header\"\r\n [row]=\"row\"\r\n [checkOnRow]=\"_checkOnRow()\"\r\n [enableInputs]=\"isEnabled() && !_isLoadingInner\"\r\n (onClickRow)=\"isEnabled() ? _ClickOnRow(row) : null\"\r\n (onDoubleClickRow)=\"isEnabled() ? onDoubleClickRow.emit(row) : null\"\r\n (onSwitchChange)=\"onSwitchChange.emit($event)\"\r\n (onTextboxChange)=\"onTextboxChange.emit($event)\"\r\n (onNumberboxChange)=\"onNumberboxChange.emit($event)\"\r\n (onSelectboxChange)=\"onSelectboxChange.emit($event)\"\r\n (onKeyupEnter)=\"_NextInput(row.indexRow, header.indexColumn, $event)\"\r\n ></coer-grid-cell>\r\n </td>\r\n }\r\n \r\n <!-- Delete Button -->\r\n @if(_ShowButtonByRow('showDeleteButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showDeleteButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorDelete()\"\r\n icon=\"delete\"\r\n [tooltip]=\"_GetTooltip('Delete', row)\" \r\n tooltipPosition=\"left\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickDeleteRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n \r\n <!-- Edit Button -->\r\n @if(_ShowButtonByRow('showEditButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showEditButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorEdit()\"\r\n icon=\"edit\"\r\n [tooltip]=\"_GetTooltip('Edit', row)\" \r\n tooltipPosition=\"left\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickEditRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n \r\n <!-- Go Button -->\r\n @if(_ShowButtonByRow('showGoButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showGoButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorGo()\"\r\n icon=\"go\"\r\n [tooltip]=\"_GetTooltip('Go to', row, 'detail')\" \r\n tooltipPosition=\"left\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickGoRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n }\r\n </table> \r\n</section>", styles: ["section.coer-grid-body table{table-layout:auto;border-collapse:separate;border-spacing:1px 0px;margin:0;font-size:14px}section.coer-grid-body table thead tr th{position:sticky!important;top:0!important;z-index:100!important;vertical-align:middle!important;background-color:var(--gray)!important;color:var(--smoke)!important;overflow:hidden;white-space:nowrap!important;word-wrap:break-word;text-overflow:ellipsis;min-width:30px!important;max-height:30px!important;height:30px!important}section.coer-grid-body table thead tr th div.th-content{display:flex!important;align-items:center!important}section.coer-grid-body table thead tr th div.th-content::selection{background-color:transparent!important}section.coer-grid-body table tbody tr td{border:0px!important;white-space:break-spaces!important;text-overflow:ellipsis!important;overflow:hidden!important;min-height:30px!important;background-color:inherit!important}section.coer-grid-body table tbody tr td.td-content{padding:0!important;vertical-align:middle!important;overflow:visible!important}section.coer-grid-body table tbody tr:not(.row-focus):not(.row-hover-none):hover td{color:#000!important;background-color:color-mix(in srgb,var(--inputs-items-inner),var(--white) 95%)!important}section.coer-grid-body table tbody tr.row-focus td{background-color:color-mix(in srgb,var(--inputs-items-inner),var(--white) 65%)!important}section.coer-grid-body table th.action-column,section.coer-grid-body table td.action-column{width:30px!important;min-width:30px!important;max-width:30px!important;padding:0!important;overflow:hidden!important;vertical-align:middle!important}section.coer-grid-body table th.action-column div.action-column-content,section.coer-grid-body table td.action-column div.action-column-content{display:flex!important;align-items:center!important;justify-content:center!important;max-height:30px!important;height:30px!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoerButton, selector: "coer-button", inputs: ["id", "color", "type", "typeBreakpoint", "icon", "iconPosition", "path", "isLoading", "isDisabled", "isReadonly", "isInvisible", "isHidde", "width", "widthBreakpoint", "minWidth", "maxWidth", "height", "minHeight", "marginTop", "marginRight", "marginBottom", "marginLeft", "tooltip", "tooltipPosition"], outputs: ["onClick"] }, { kind: "component", type: CoerCheckbox, selector: "coer-checkbox", inputs: ["id", "label", "labelPosition", "isLoading", "isDisabled", "isReadonly", "isInvisible", "ignoreDataBinding", "value"], outputs: ["onChange"] }, { kind: "component", type: CoerGridCell, selector: "coer-grid-cell", inputs: ["id", "header", "row", "checkOnRow", "enableInputs"], outputs: ["onClickRow", "onDoubleClickRow", "onSwitchChange", "onTextboxChange", "onNumberboxChange", "onSelectboxChange", "onKeyupEnter"] }] }); }
3164
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: CoerGridBody, isStandalone: false, selector: "coer-grid-body", inputs: { GetIdCalculated: { classPropertyName: "GetIdCalculated", publicName: "GetIdCalculated", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, dataSourceSelected: { classPropertyName: "dataSourceSelected", publicName: "dataSourceSelected", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, searchInner: { classPropertyName: "searchInner", publicName: "searchInner", isSignal: true, isRequired: false, transformFunction: null }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: true, isRequired: false, transformFunction: null }, buttonByRow: { classPropertyName: "buttonByRow", publicName: "buttonByRow", isSignal: true, isRequired: false, transformFunction: null }, isLoadingInner: { classPropertyName: "isLoadingInner", publicName: "isLoadingInner", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, isInvisible: { classPropertyName: "isInvisible", publicName: "isInvisible", isSignal: true, isRequired: false, transformFunction: null }, isEnabled: { classPropertyName: "isEnabled", publicName: "isEnabled", isSignal: true, isRequired: false, transformFunction: null }, enableSort: { classPropertyName: "enableSort", publicName: "enableSort", isSignal: true, isRequired: false, transformFunction: null }, enableFocusNext: { classPropertyName: "enableFocusNext", publicName: "enableFocusNext", isSignal: true, isRequired: false, transformFunction: null }, enableFocusRow: { classPropertyName: "enableFocusRow", publicName: "enableFocusRow", isSignal: true, isRequired: false, transformFunction: null }, enableHoverRow: { classPropertyName: "enableHoverRow", publicName: "enableHoverRow", isSignal: true, isRequired: false, transformFunction: null }, isStriped: { classPropertyName: "isStriped", publicName: "isStriped", isSignal: true, isRequired: false, transformFunction: null }, tooltipByRow: { classPropertyName: "tooltipByRow", publicName: "tooltipByRow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChange: "onValueChange", onClickRow: "onClickRow", onDoubleClickRow: "onDoubleClickRow", onInnerLoadingChange: "onInnerLoadingChange", onCheckboxChange: "onCheckboxChange", onClickDeleteRow: "onClickDeleteRow", onClickEditRow: "onClickEditRow", onClickModalRow: "onClickModalRow", onClickGoRow: "onClickGoRow", onSwitchChange: "onSwitchChange", onTextboxChange: "onTextboxChange", onNumberboxChange: "onNumberboxChange", onSelectboxChange: "onSelectboxChange", onKeyupEnter: "onKeyupEnter", onKeyupEnterLast: "onKeyupEnterLast" }, viewQueries: [{ propertyName: "_coerCheckboxList", predicate: CoerCheckbox, descendants: true, isSignal: true }, { propertyName: "_coerGridCellList", predicate: (CoerGridCell), descendants: true, isSignal: true }], ngImport: i0, template: "<section class=\"coer-grid-body\">\r\n <table [ngClass]=\"{ \r\n 'table' : true,\r\n 'table-sm': true, \r\n 'table-responsive': true,\r\n 'table-striped' : isStriped()\r\n }\">\r\n \r\n <thead>\r\n <tr>\r\n <!-- Checkbox All -->\r\n @if(_showCheckbox()) {\r\n <th class=\"action-column\" scope=\"col\"> \r\n <div class=\"action-column-content\">\r\n <div [ngClass]=\"{ 'display-none': _isInvisibleCheckboxAll }\">\r\n <coer-checkbox\r\n [id]=\"GetIdCalculated()(-1, -1, 'checkbox-all')\"\r\n [ignoreDataBinding]=\"true\" \r\n (onChange)=\"_ClickCheckAll($event)\"\r\n ></coer-checkbox>\r\n </div> \r\n \r\n <div [class]=\"_isLoadingInner ? 'display-contents' : 'display-none'\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i> \r\n </div> \r\n </div>\r\n </th>\r\n }\r\n \r\n <!-- Dynamic Grid Column -->\r\n @for(header of columns(); track header.indexColumn) {\r\n <th scope=\"col\" [class]=\"_cursorHeader()\" (dblclick)=\"_SortToggle(header.property)\" [ngStyle]=\"{ 'width': header.config?.width || 'auto' }\"> \r\n <div class=\"th-content\">\r\n <span> {{ header.columnName }} </span>\r\n <i [class]=\"_IconShortHeader(header.property)\"></i>\r\n <i [class]=\"_IconSearchHeader(header.property)\"></i>\r\n </div>\r\n </th>\r\n }\r\n \r\n @if(_ShowButtonByRow('showDeleteButton')) {\r\n <th class=\"action-column\" scope=\"col\"></th>\r\n }\r\n \r\n @if(_ShowButtonByRow('showEditButton')) { \r\n <th class=\"action-column\" scope=\"col\"></th>\r\n } \r\n\r\n @if(_ShowButtonByRow('showModalButton')) { \r\n <th class=\"action-column\" scope=\"col\"></th>\r\n } \r\n \r\n @if(_ShowButtonByRow('showGoButton')) {\r\n <th class=\"action-column\" scope=\"col\"></th>\r\n }\r\n </tr>\r\n </thead>\r\n \r\n <!-- body -->\r\n @for(group of dataSource(); track group.indexGroup) {\r\n <tbody> \r\n @for(row of group.rows; track row.indexRow) {\r\n <tr [id]=\"GetIdCalculated()(row.indexRow, 0, 'row')\" \r\n (click)=\"_focusRowIndex.set(row.indexRow)\"\r\n [ngClass]=\"{ \r\n 'loading' : isLoading(),\r\n 'row-focus': (row.indexRow == _focusRowIndex() && enableFocusRow()),\r\n 'row-hover-none': !enableHoverRow()\r\n }\">\r\n \r\n <!-- CheckBox Column -->\r\n @if(_showCheckbox()) {\r\n <td class=\"action-column\">\r\n <div class=\"action-column-content\">\r\n <div [ngClass]=\"{ 'display-none': _isLoadingInner }\">\r\n <coer-checkbox\r\n [id]=\"GetIdCalculated()(row.indexRow, 0, 'checkbox')\"\r\n [ignoreDataBinding]=\"true\"\r\n [isDisabled]=\"!isEnabled()\"\r\n (onChange)=\"_ClickCheck($event, row)\"\r\n ></coer-checkbox>\r\n </div>\r\n \r\n <div [class]=\"_isLoadingInner ? 'display-contents' : 'display-none'\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i> \r\n </div>\r\n </div>\r\n </td>\r\n }\r\n \r\n <!-- Dynamic Column -->\r\n @for(header of columns(); track header.indexColumn) {\r\n <td class=\"td-content\">\r\n <coer-grid-cell\r\n [id]=\"GetIdCalculated()(row.indexRow, header.indexColumn)\"\r\n [header]=\"header\"\r\n [row]=\"row\"\r\n [checkOnRow]=\"_checkOnRow()\"\r\n [enableInputs]=\"isEnabled() && !_isLoadingInner\"\r\n (onClickRow)=\"isEnabled() ? _ClickOnRow(row) : null\"\r\n (onDoubleClickRow)=\"isEnabled() ? onDoubleClickRow.emit(row) : null\"\r\n (onSwitchChange)=\"onSwitchChange.emit($event)\"\r\n (onTextboxChange)=\"onTextboxChange.emit($event)\"\r\n (onNumberboxChange)=\"onNumberboxChange.emit($event)\"\r\n (onSelectboxChange)=\"onSelectboxChange.emit($event)\"\r\n (onKeyupEnter)=\"_NextInput(row.indexRow, header.indexColumn, $event)\"\r\n ></coer-grid-cell>\r\n </td>\r\n }\r\n \r\n <!-- Delete Button -->\r\n @if(_ShowButtonByRow('showDeleteButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showDeleteButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorDelete()\"\r\n icon=\"delete\"\r\n [tooltip]=\"_GetTooltip('Delete', row)\" \r\n tooltipPosition=\"left\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickDeleteRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n \r\n <!-- Edit Button -->\r\n @if(_ShowButtonByRow('showEditButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showEditButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorEdit()\"\r\n icon=\"edit\"\r\n [tooltip]=\"_GetTooltip('Edit', row)\" \r\n tooltipPosition=\"left\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickEditRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n\r\n\r\n <!-- Modal Button -->\r\n @if(_ShowButtonByRow('showModalButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showModalButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorModal()\"\r\n icon=\"icon-modal icon-fill\"\r\n [tooltip]=\"_GetTooltip('Open', row)\" \r\n tooltipPosition=\"left\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickModalRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n \r\n <!-- Go Button -->\r\n @if(_ShowButtonByRow('showGoButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showGoButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorGo()\"\r\n icon=\"go\"\r\n [tooltip]=\"_GetTooltip('Go to', row, 'detail')\" \r\n tooltipPosition=\"left\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickGoRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n }\r\n </table> \r\n</section>", styles: ["section.coer-grid-body table{table-layout:auto;border-collapse:separate;border-spacing:1px 0px;margin:0;font-size:14px}section.coer-grid-body table thead tr th{position:sticky!important;top:0!important;z-index:100!important;vertical-align:middle!important;background-color:var(--gray)!important;color:var(--smoke)!important;overflow:hidden;white-space:nowrap!important;word-wrap:break-word;text-overflow:ellipsis;min-width:30px!important;max-height:30px!important;height:30px!important}section.coer-grid-body table thead tr th div.th-content{display:flex!important;align-items:center!important}section.coer-grid-body table thead tr th div.th-content::selection{background-color:transparent!important}section.coer-grid-body table tbody tr td{border:0px!important;white-space:break-spaces!important;text-overflow:ellipsis!important;overflow:hidden!important;min-height:30px!important;background-color:inherit!important}section.coer-grid-body table tbody tr td.td-content{padding:0!important;vertical-align:middle!important;overflow:visible!important}section.coer-grid-body table tbody tr:not(.row-focus):not(.row-hover-none):hover td{color:#000!important;background-color:color-mix(in srgb,var(--inputs-items-inner),var(--white) 95%)!important}section.coer-grid-body table tbody tr.row-focus td{background-color:color-mix(in srgb,var(--inputs-items-inner),var(--white) 65%)!important}section.coer-grid-body table th.action-column,section.coer-grid-body table td.action-column{width:30px!important;min-width:30px!important;max-width:30px!important;padding:0!important;overflow:hidden!important;vertical-align:middle!important}section.coer-grid-body table th.action-column div.action-column-content,section.coer-grid-body table td.action-column div.action-column-content{display:flex!important;align-items:center!important;justify-content:center!important;max-height:30px!important;height:30px!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoerButton, selector: "coer-button", inputs: ["id", "color", "type", "typeBreakpoint", "icon", "iconPosition", "path", "isLoading", "isDisabled", "isReadonly", "isInvisible", "isHidde", "width", "widthBreakpoint", "minWidth", "maxWidth", "height", "minHeight", "marginTop", "marginRight", "marginBottom", "marginLeft", "tooltip", "tooltipPosition"], outputs: ["onClick"] }, { kind: "component", type: CoerCheckbox, selector: "coer-checkbox", inputs: ["id", "label", "labelPosition", "isLoading", "isDisabled", "isReadonly", "isInvisible", "ignoreDataBinding", "value"], outputs: ["onChange"] }, { kind: "component", type: CoerGridCell, selector: "coer-grid-cell", inputs: ["id", "header", "row", "checkOnRow", "enableInputs"], outputs: ["onClickRow", "onDoubleClickRow", "onSwitchChange", "onTextboxChange", "onNumberboxChange", "onSelectboxChange", "onKeyupEnter"] }] }); }
3166
3165
  }
3167
3166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: CoerGridBody, decorators: [{
3168
3167
  type: Component,
3169
- args: [{ selector: 'coer-grid-body', standalone: false, template: "<section class=\"coer-grid-body\">\r\n <table [ngClass]=\"{ \r\n 'table' : true,\r\n 'table-sm': true, \r\n 'table-responsive': true,\r\n 'table-striped' : isStriped()\r\n }\">\r\n \r\n <thead>\r\n <tr>\r\n <!-- Checkbox All -->\r\n @if(_showCheckbox()) {\r\n <th class=\"action-column\" scope=\"col\"> \r\n <div class=\"action-column-content\">\r\n <div [ngClass]=\"{ 'display-none': _isInvisibleCheckboxAll }\">\r\n <coer-checkbox\r\n [id]=\"GetIdCalculated()(-1, -1, 'checkbox-all')\"\r\n [ignoreDataBinding]=\"true\" \r\n (onChange)=\"_ClickCheckAll($event)\"\r\n ></coer-checkbox>\r\n </div> \r\n \r\n <div [class]=\"_isLoadingInner ? 'display-contents' : 'display-none'\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i> \r\n </div> \r\n </div>\r\n </th>\r\n }\r\n \r\n <!-- Dynamic Grid Column -->\r\n @for(header of columns(); track header.indexColumn) {\r\n <th scope=\"col\" [class]=\"_cursorHeader()\" (dblclick)=\"_SortToggle(header.property)\" [ngStyle]=\"{ 'width': header.config?.width || 'auto' }\"> \r\n <div class=\"th-content\">\r\n <span> {{ header.columnName }} </span>\r\n <i [class]=\"_IconShortHeader(header.property)\"></i>\r\n <i [class]=\"_IconSearchHeader(header.property)\"></i>\r\n </div>\r\n </th>\r\n }\r\n \r\n @if(_ShowButtonByRow('showDeleteButton')) {\r\n <th class=\"action-column\" scope=\"col\"></th>\r\n }\r\n \r\n @if(_ShowButtonByRow('showEditButton')) { \r\n <th class=\"action-column\" scope=\"col\"></th>\r\n } \r\n \r\n @if(_ShowButtonByRow('showGoButton')) {\r\n <th class=\"action-column\" scope=\"col\"></th>\r\n }\r\n </tr>\r\n </thead>\r\n \r\n <!-- body -->\r\n @for(group of dataSource(); track group.indexGroup) {\r\n <tbody> \r\n @for(row of group.rows; track row.indexRow) {\r\n <tr [id]=\"GetIdCalculated()(row.indexRow, 0, 'row')\" \r\n (click)=\"_focusRowIndex.set(row.indexRow)\"\r\n [ngClass]=\"{ \r\n 'loading' : isLoading(),\r\n 'row-focus': (row.indexRow == _focusRowIndex() && enableFocusRow()),\r\n 'row-hover-none': !enableHoverRow()\r\n }\">\r\n \r\n <!-- CheckBox Column -->\r\n @if(_showCheckbox()) {\r\n <td class=\"action-column\">\r\n <div class=\"action-column-content\">\r\n <div [ngClass]=\"{ 'display-none': _isLoadingInner }\">\r\n <coer-checkbox\r\n [id]=\"GetIdCalculated()(row.indexRow, 0, 'checkbox')\"\r\n [ignoreDataBinding]=\"true\"\r\n [isDisabled]=\"!isEnabled()\"\r\n (onChange)=\"_ClickCheck($event, row)\"\r\n ></coer-checkbox>\r\n </div>\r\n \r\n <div [class]=\"_isLoadingInner ? 'display-contents' : 'display-none'\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i> \r\n </div>\r\n </div>\r\n </td>\r\n }\r\n \r\n <!-- Dynamic Column -->\r\n @for(header of columns(); track header.indexColumn) {\r\n <td class=\"td-content\">\r\n <coer-grid-cell\r\n [id]=\"GetIdCalculated()(row.indexRow, header.indexColumn)\"\r\n [header]=\"header\"\r\n [row]=\"row\"\r\n [checkOnRow]=\"_checkOnRow()\"\r\n [enableInputs]=\"isEnabled() && !_isLoadingInner\"\r\n (onClickRow)=\"isEnabled() ? _ClickOnRow(row) : null\"\r\n (onDoubleClickRow)=\"isEnabled() ? onDoubleClickRow.emit(row) : null\"\r\n (onSwitchChange)=\"onSwitchChange.emit($event)\"\r\n (onTextboxChange)=\"onTextboxChange.emit($event)\"\r\n (onNumberboxChange)=\"onNumberboxChange.emit($event)\"\r\n (onSelectboxChange)=\"onSelectboxChange.emit($event)\"\r\n (onKeyupEnter)=\"_NextInput(row.indexRow, header.indexColumn, $event)\"\r\n ></coer-grid-cell>\r\n </td>\r\n }\r\n \r\n <!-- Delete Button -->\r\n @if(_ShowButtonByRow('showDeleteButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showDeleteButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorDelete()\"\r\n icon=\"delete\"\r\n [tooltip]=\"_GetTooltip('Delete', row)\" \r\n tooltipPosition=\"left\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickDeleteRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n \r\n <!-- Edit Button -->\r\n @if(_ShowButtonByRow('showEditButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showEditButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorEdit()\"\r\n icon=\"edit\"\r\n [tooltip]=\"_GetTooltip('Edit', row)\" \r\n tooltipPosition=\"left\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickEditRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n \r\n <!-- Go Button -->\r\n @if(_ShowButtonByRow('showGoButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showGoButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorGo()\"\r\n icon=\"go\"\r\n [tooltip]=\"_GetTooltip('Go to', row, 'detail')\" \r\n tooltipPosition=\"left\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickGoRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n }\r\n </table> \r\n</section>", styles: ["section.coer-grid-body table{table-layout:auto;border-collapse:separate;border-spacing:1px 0px;margin:0;font-size:14px}section.coer-grid-body table thead tr th{position:sticky!important;top:0!important;z-index:100!important;vertical-align:middle!important;background-color:var(--gray)!important;color:var(--smoke)!important;overflow:hidden;white-space:nowrap!important;word-wrap:break-word;text-overflow:ellipsis;min-width:30px!important;max-height:30px!important;height:30px!important}section.coer-grid-body table thead tr th div.th-content{display:flex!important;align-items:center!important}section.coer-grid-body table thead tr th div.th-content::selection{background-color:transparent!important}section.coer-grid-body table tbody tr td{border:0px!important;white-space:break-spaces!important;text-overflow:ellipsis!important;overflow:hidden!important;min-height:30px!important;background-color:inherit!important}section.coer-grid-body table tbody tr td.td-content{padding:0!important;vertical-align:middle!important;overflow:visible!important}section.coer-grid-body table tbody tr:not(.row-focus):not(.row-hover-none):hover td{color:#000!important;background-color:color-mix(in srgb,var(--inputs-items-inner),var(--white) 95%)!important}section.coer-grid-body table tbody tr.row-focus td{background-color:color-mix(in srgb,var(--inputs-items-inner),var(--white) 65%)!important}section.coer-grid-body table th.action-column,section.coer-grid-body table td.action-column{width:30px!important;min-width:30px!important;max-width:30px!important;padding:0!important;overflow:hidden!important;vertical-align:middle!important}section.coer-grid-body table th.action-column div.action-column-content,section.coer-grid-body table td.action-column div.action-column-content{display:flex!important;align-items:center!important;justify-content:center!important;max-height:30px!important;height:30px!important}\n"] }]
3168
+ args: [{ selector: 'coer-grid-body', standalone: false, template: "<section class=\"coer-grid-body\">\r\n <table [ngClass]=\"{ \r\n 'table' : true,\r\n 'table-sm': true, \r\n 'table-responsive': true,\r\n 'table-striped' : isStriped()\r\n }\">\r\n \r\n <thead>\r\n <tr>\r\n <!-- Checkbox All -->\r\n @if(_showCheckbox()) {\r\n <th class=\"action-column\" scope=\"col\"> \r\n <div class=\"action-column-content\">\r\n <div [ngClass]=\"{ 'display-none': _isInvisibleCheckboxAll }\">\r\n <coer-checkbox\r\n [id]=\"GetIdCalculated()(-1, -1, 'checkbox-all')\"\r\n [ignoreDataBinding]=\"true\" \r\n (onChange)=\"_ClickCheckAll($event)\"\r\n ></coer-checkbox>\r\n </div> \r\n \r\n <div [class]=\"_isLoadingInner ? 'display-contents' : 'display-none'\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i> \r\n </div> \r\n </div>\r\n </th>\r\n }\r\n \r\n <!-- Dynamic Grid Column -->\r\n @for(header of columns(); track header.indexColumn) {\r\n <th scope=\"col\" [class]=\"_cursorHeader()\" (dblclick)=\"_SortToggle(header.property)\" [ngStyle]=\"{ 'width': header.config?.width || 'auto' }\"> \r\n <div class=\"th-content\">\r\n <span> {{ header.columnName }} </span>\r\n <i [class]=\"_IconShortHeader(header.property)\"></i>\r\n <i [class]=\"_IconSearchHeader(header.property)\"></i>\r\n </div>\r\n </th>\r\n }\r\n \r\n @if(_ShowButtonByRow('showDeleteButton')) {\r\n <th class=\"action-column\" scope=\"col\"></th>\r\n }\r\n \r\n @if(_ShowButtonByRow('showEditButton')) { \r\n <th class=\"action-column\" scope=\"col\"></th>\r\n } \r\n\r\n @if(_ShowButtonByRow('showModalButton')) { \r\n <th class=\"action-column\" scope=\"col\"></th>\r\n } \r\n \r\n @if(_ShowButtonByRow('showGoButton')) {\r\n <th class=\"action-column\" scope=\"col\"></th>\r\n }\r\n </tr>\r\n </thead>\r\n \r\n <!-- body -->\r\n @for(group of dataSource(); track group.indexGroup) {\r\n <tbody> \r\n @for(row of group.rows; track row.indexRow) {\r\n <tr [id]=\"GetIdCalculated()(row.indexRow, 0, 'row')\" \r\n (click)=\"_focusRowIndex.set(row.indexRow)\"\r\n [ngClass]=\"{ \r\n 'loading' : isLoading(),\r\n 'row-focus': (row.indexRow == _focusRowIndex() && enableFocusRow()),\r\n 'row-hover-none': !enableHoverRow()\r\n }\">\r\n \r\n <!-- CheckBox Column -->\r\n @if(_showCheckbox()) {\r\n <td class=\"action-column\">\r\n <div class=\"action-column-content\">\r\n <div [ngClass]=\"{ 'display-none': _isLoadingInner }\">\r\n <coer-checkbox\r\n [id]=\"GetIdCalculated()(row.indexRow, 0, 'checkbox')\"\r\n [ignoreDataBinding]=\"true\"\r\n [isDisabled]=\"!isEnabled()\"\r\n (onChange)=\"_ClickCheck($event, row)\"\r\n ></coer-checkbox>\r\n </div>\r\n \r\n <div [class]=\"_isLoadingInner ? 'display-contents' : 'display-none'\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i> \r\n </div>\r\n </div>\r\n </td>\r\n }\r\n \r\n <!-- Dynamic Column -->\r\n @for(header of columns(); track header.indexColumn) {\r\n <td class=\"td-content\">\r\n <coer-grid-cell\r\n [id]=\"GetIdCalculated()(row.indexRow, header.indexColumn)\"\r\n [header]=\"header\"\r\n [row]=\"row\"\r\n [checkOnRow]=\"_checkOnRow()\"\r\n [enableInputs]=\"isEnabled() && !_isLoadingInner\"\r\n (onClickRow)=\"isEnabled() ? _ClickOnRow(row) : null\"\r\n (onDoubleClickRow)=\"isEnabled() ? onDoubleClickRow.emit(row) : null\"\r\n (onSwitchChange)=\"onSwitchChange.emit($event)\"\r\n (onTextboxChange)=\"onTextboxChange.emit($event)\"\r\n (onNumberboxChange)=\"onNumberboxChange.emit($event)\"\r\n (onSelectboxChange)=\"onSelectboxChange.emit($event)\"\r\n (onKeyupEnter)=\"_NextInput(row.indexRow, header.indexColumn, $event)\"\r\n ></coer-grid-cell>\r\n </td>\r\n }\r\n \r\n <!-- Delete Button -->\r\n @if(_ShowButtonByRow('showDeleteButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showDeleteButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorDelete()\"\r\n icon=\"delete\"\r\n [tooltip]=\"_GetTooltip('Delete', row)\" \r\n tooltipPosition=\"left\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickDeleteRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n \r\n <!-- Edit Button -->\r\n @if(_ShowButtonByRow('showEditButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showEditButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorEdit()\"\r\n icon=\"edit\"\r\n [tooltip]=\"_GetTooltip('Edit', row)\" \r\n tooltipPosition=\"left\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickEditRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n\r\n\r\n <!-- Modal Button -->\r\n @if(_ShowButtonByRow('showModalButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showModalButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorModal()\"\r\n icon=\"icon-modal icon-fill\"\r\n [tooltip]=\"_GetTooltip('Open', row)\" \r\n tooltipPosition=\"left\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickModalRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n \r\n <!-- Go Button -->\r\n @if(_ShowButtonByRow('showGoButton')) {\r\n <td class=\"action-column\">\r\n @if(_ShowButtonByRow('showGoButton', row)) {\r\n <div class=\"action-column-content\">\r\n <coer-button\r\n type=\"icon-no-border\"\r\n [color]=\"_ButtonByRowColorGo()\"\r\n icon=\"go\"\r\n [tooltip]=\"_GetTooltip('Go to', row, 'detail')\" \r\n tooltipPosition=\"left\"\r\n [isDisabled]=\"_isLoadingInner\"\r\n (onClick)=\"onClickGoRow.emit(row)\"\r\n ></coer-button>\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n }\r\n </table> \r\n</section>", styles: ["section.coer-grid-body table{table-layout:auto;border-collapse:separate;border-spacing:1px 0px;margin:0;font-size:14px}section.coer-grid-body table thead tr th{position:sticky!important;top:0!important;z-index:100!important;vertical-align:middle!important;background-color:var(--gray)!important;color:var(--smoke)!important;overflow:hidden;white-space:nowrap!important;word-wrap:break-word;text-overflow:ellipsis;min-width:30px!important;max-height:30px!important;height:30px!important}section.coer-grid-body table thead tr th div.th-content{display:flex!important;align-items:center!important}section.coer-grid-body table thead tr th div.th-content::selection{background-color:transparent!important}section.coer-grid-body table tbody tr td{border:0px!important;white-space:break-spaces!important;text-overflow:ellipsis!important;overflow:hidden!important;min-height:30px!important;background-color:inherit!important}section.coer-grid-body table tbody tr td.td-content{padding:0!important;vertical-align:middle!important;overflow:visible!important}section.coer-grid-body table tbody tr:not(.row-focus):not(.row-hover-none):hover td{color:#000!important;background-color:color-mix(in srgb,var(--inputs-items-inner),var(--white) 95%)!important}section.coer-grid-body table tbody tr.row-focus td{background-color:color-mix(in srgb,var(--inputs-items-inner),var(--white) 65%)!important}section.coer-grid-body table th.action-column,section.coer-grid-body table td.action-column{width:30px!important;min-width:30px!important;max-width:30px!important;padding:0!important;overflow:hidden!important;vertical-align:middle!important}section.coer-grid-body table th.action-column div.action-column-content,section.coer-grid-body table td.action-column div.action-column-content{display:flex!important;align-items:center!important;justify-content:center!important;max-height:30px!important;height:30px!important}\n"] }]
3170
3169
  }] });
3171
3170
 
3172
3171
  class CoerGridfooter {
@@ -3343,11 +3342,11 @@ class CoerGrid extends CoerGridExtension {
3343
3342
  return dataSource.shift();
3344
3343
  }
3345
3344
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: CoerGrid, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3346
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: CoerGrid, isStandalone: false, selector: "coer-grid", providers: [CONTROL_VALUE(CoerGrid)], usesInheritance: true, ngImport: i0, template: "<div [id]=\"_GetIdCalculated(-1, -1, 'coer-grid-inner')\" class=\"coer-grid\" [ngStyle]=\"{ 'width': width(), 'min-Width': MinWidth(), 'max-Width': MaxWidth(), 'margin': margin() }\">\r\n <!-- HEADER -->\r\n <coer-grid-header \r\n #coerGridHeader \r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [GetColumnName]=\"_GetColumnName\"\r\n [columns]=\"_columns()\"\r\n [dataSource]=\"_valueSignal()\"\r\n [dataSourceFiltered]=\"_dataSourceFiltered()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\"\r\n [exportButton]=\"exportButton\"\r\n [importButton]=\"importButton\"\r\n [addButton]=\"addButton\"\r\n [saveButton]=\"saveButton\"\r\n [search]=\"search\"\r\n [searchInner]=\"_searchInner()\"\r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n [isLoading]=\"isLoading()\"\r\n [isDisabled]=\"isDisabled()\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isInvisible]=\"isInvisible()\" \r\n (onClickExport)=\"onClickExport.emit($event)\"\r\n (onClickImport)=\"_Import($event)\"\r\n (onClickAdd)=\"onClickAdd.emit()\"\r\n (onClickSave)=\"onClickSave.emit()\"\r\n (onInputSearch)=\"_UpdateSearchInner($event)\"\r\n (onClickClearSearch)=\"_UpdateSearchInner($event)\"\r\n (onKeyupEnterSearch)=\"onKeyupEnter.emit($event)\"> \r\n <ng-content></ng-content> \r\n </coer-grid-header>\r\n\r\n <section class=\"coer-grid-container\" [ngStyle]=\"{ 'overflow': !isLoading() ? 'auto' : 'hidden' }\"> \r\n <div [ngStyle]=\"{ 'height': _height, 'min-height': minHeight(), 'max-height': maxHeight() }\"> \r\n <!-- BODY --> \r\n <coer-grid-body\r\n #coerGridBody\r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [value]=\"_valueSignal()\"\r\n [columns]=\"_columns()\"\r\n [dataSource]=\"_dataSource()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\"\r\n [search]=\"search\"\r\n [searchInner]=\"_searchInner()\"\r\n [checkbox]=\"checkbox\"\r\n [buttonByRow]=\"buttonByRow\"\r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n [isLoading]=\"isLoading()\"\r\n [isDisabled]=\"isDisabled()\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isInvisible]=\"isInvisible()\"\r\n [isEnabled]=\"_isEnabled()\"\r\n [enableSort]=\"enableSort()\"\r\n [tooltipByRow]=\"tooltipByRow()\"\r\n [enableFocusNext]=\"enableFocusNext()\"\r\n [enableFocusRow]=\"enableFocusRow()\"\r\n [enableHoverRow]=\"enableHoverRow()\"\r\n [isStriped]=\"isStriped()\"\r\n (onValueChange)=\"SetValue($event)\"\r\n (onClickRow)=\"onClickRow.emit($event)\"\r\n (onDoubleClickRow)=\"onDoubleClickRow.emit($event)\"\r\n (onCheckboxChange)=\"onCheckboxChange.emit($event)\"\r\n (onInnerLoadingChange)=\"_isLoadingInner.set($event)\"\r\n (onClickDeleteRow)=\"onClickDeleteRow.emit($event)\"\r\n (onClickEditRow)=\"onClickEditRow.emit($event)\" \r\n (onClickGoRow)=\"onClickGoRow.emit($event)\" \r\n (onSwitchChange)=\"_SetValueInput($event, 'coer-switch')\"\r\n (onTextboxChange)=\"_SetValueInput($event, 'coer-textbox')\"\r\n (onNumberboxChange)=\"_SetValueInput($event, 'coer-numberbox')\"\r\n (onSelectboxChange)=\"_SetValueInput($event, 'coer-selectbox')\"\r\n (onKeyupEnter)=\"onKeyupEnter.emit($event)\"\r\n (onKeyupEnterLast)=\"onKeyupEnterLast.emit($event)\"\r\n ></coer-grid-body>\r\n\r\n <!-- Loading / Empty -->\r\n @if(isLoading()) {\r\n <div class=\"loading\">\r\n <div class=\"loading-content\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i>\r\n <span class=\"fa-fade\">Loading</span>\r\n </div>\r\n </div> \r\n } \r\n\r\n @else if(_isEnabled() && _valueSignal().length <= 0) {\r\n <div class=\"empty-data\">\r\n <div class=\"empty-data-content\"> No Data </div>\r\n </div>\r\n } \r\n </div>\r\n </section> \r\n\r\n <!-- FOOTER -->\r\n <coer-grid-footer\r\n #coerGridFooter\r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [footer]=\"footer\"\r\n [dataSource]=\"_valueSignal()\"\r\n [dataSourceFiltered]=\"_dataSourceFiltered()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\" \r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n ></coer-grid-footer>\r\n</div>", styles: ["div.coer-grid section.coer-grid-container{position:relative!important}div.coer-grid section.coer-grid-container div.loading,div.coer-grid section.coer-grid-container div.empty-data{position:absolute!important;inset:0!important;z-index:100!important;display:flex!important;align-items:center!important;justify-content:center!important}div.coer-grid section.coer-grid-container div.loading div.loading-content,div.coer-grid section.coer-grid-container div.loading div.empty-data-content,div.coer-grid section.coer-grid-container div.empty-data div.loading-content,div.coer-grid section.coer-grid-container div.empty-data div.empty-data-content{flex-flow:column!important;display:inherit!important;justify-content:inherit!important;align-items:inherit!important;font-size:35px!important;color:var(--gray)!important}div.coer-grid section.coer-grid-container div.loading div.loading-content::selection,div.coer-grid section.coer-grid-container div.loading div.empty-data-content::selection,div.coer-grid section.coer-grid-container div.empty-data div.loading-content::selection,div.coer-grid section.coer-grid-container div.empty-data div.empty-data-content::selection{background-color:transparent!important}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoerGridHeader, selector: "coer-grid-header", inputs: ["GetIdCalculated", "GetColumnName", "columns", "dataSource", "dataSourceFiltered", "dataSourceSelected", "exportButton", "importButton", "addButton", "saveButton", "search", "searchInner", "isLoadingInner", "isLoading", "isDisabled", "isReadonly", "isInvisible"], outputs: ["onClickExport", "onClickImport", "onClickAdd", "onClickSave", "onInputSearch", "onClickClearSearch", "onKeyupEnterSearch"] }, { kind: "component", type: CoerGridBody, selector: "coer-grid-body", inputs: ["GetIdCalculated", "value", "columns", "dataSource", "dataSourceSelected", "search", "searchInner", "checkbox", "buttonByRow", "isLoadingInner", "isLoading", "isDisabled", "isReadonly", "isInvisible", "isEnabled", "enableSort", "enableFocusNext", "enableFocusRow", "enableHoverRow", "isStriped", "tooltipByRow"], outputs: ["onValueChange", "onClickRow", "onDoubleClickRow", "onInnerLoadingChange", "onCheckboxChange", "onClickDeleteRow", "onClickEditRow", "onClickGoRow", "onSwitchChange", "onTextboxChange", "onNumberboxChange", "onSelectboxChange", "onKeyupEnter", "onKeyupEnterLast"] }, { kind: "component", type: CoerGridfooter, selector: "coer-grid-footer", inputs: ["GetIdCalculated", "footer", "dataSource", "dataSourceFiltered", "dataSourceSelected", "isLoadingInner"] }] }); }
3345
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: CoerGrid, isStandalone: false, selector: "coer-grid", providers: [CONTROL_VALUE(CoerGrid)], usesInheritance: true, ngImport: i0, template: "<div [id]=\"_GetIdCalculated(-1, -1, 'coer-grid-inner')\" class=\"coer-grid\" [ngStyle]=\"{ 'width': width(), 'min-Width': MinWidth(), 'max-Width': MaxWidth(), 'margin': margin() }\">\r\n <!-- HEADER -->\r\n <coer-grid-header \r\n #coerGridHeader \r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [GetColumnName]=\"_GetColumnName\"\r\n [columns]=\"_columns()\"\r\n [dataSource]=\"_valueSignal()\"\r\n [dataSourceFiltered]=\"_dataSourceFiltered()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\"\r\n [exportButton]=\"exportButton\"\r\n [importButton]=\"importButton\"\r\n [addButton]=\"addButton\"\r\n [saveButton]=\"saveButton\"\r\n [search]=\"search\"\r\n [searchInner]=\"_searchInner()\"\r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n [isLoading]=\"isLoading()\"\r\n [isDisabled]=\"isDisabled()\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isInvisible]=\"isInvisible()\" \r\n (onClickExport)=\"onClickExport.emit($event)\"\r\n (onClickImport)=\"_Import($event)\"\r\n (onClickAdd)=\"onClickAdd.emit()\"\r\n (onClickSave)=\"onClickSave.emit()\"\r\n (onInputSearch)=\"_UpdateSearchInner($event)\"\r\n (onClickClearSearch)=\"_UpdateSearchInner($event)\"\r\n (onKeyupEnterSearch)=\"onKeyupEnter.emit($event)\"> \r\n <ng-content></ng-content> \r\n </coer-grid-header>\r\n\r\n <section class=\"coer-grid-container\" [ngStyle]=\"{ 'overflow': !isLoading() ? 'auto' : 'hidden' }\"> \r\n <div [ngStyle]=\"{ 'height': _height, 'min-height': minHeight(), 'max-height': maxHeight() }\"> \r\n <!-- BODY --> \r\n <coer-grid-body\r\n #coerGridBody\r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [value]=\"_valueSignal()\"\r\n [columns]=\"_columns()\"\r\n [dataSource]=\"_dataSource()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\"\r\n [search]=\"search\"\r\n [searchInner]=\"_searchInner()\"\r\n [checkbox]=\"checkbox\"\r\n [buttonByRow]=\"buttonByRow\"\r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n [isLoading]=\"isLoading()\"\r\n [isDisabled]=\"isDisabled()\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isInvisible]=\"isInvisible()\"\r\n [isEnabled]=\"_isEnabled()\"\r\n [enableSort]=\"enableSort()\"\r\n [tooltipByRow]=\"tooltipByRow()\"\r\n [enableFocusNext]=\"enableFocusNext()\"\r\n [enableFocusRow]=\"enableFocusRow()\"\r\n [enableHoverRow]=\"enableHoverRow()\"\r\n [isStriped]=\"isStriped()\"\r\n (onValueChange)=\"SetValue($event)\"\r\n (onClickRow)=\"onClickRow.emit($event)\"\r\n (onDoubleClickRow)=\"onDoubleClickRow.emit($event)\"\r\n (onCheckboxChange)=\"onCheckboxChange.emit($event)\"\r\n (onInnerLoadingChange)=\"_isLoadingInner.set($event)\"\r\n (onClickDeleteRow)=\"onClickDeleteRow.emit($event)\"\r\n (onClickEditRow)=\"onClickEditRow.emit($event)\" \r\n (onClickModalRow)=\"onClickModalRow.emit($event)\" \r\n (onClickGoRow)=\"onClickGoRow.emit($event)\" \r\n (onSwitchChange)=\"_SetValueInput($event, 'coer-switch')\"\r\n (onTextboxChange)=\"_SetValueInput($event, 'coer-textbox')\"\r\n (onNumberboxChange)=\"_SetValueInput($event, 'coer-numberbox')\"\r\n (onSelectboxChange)=\"_SetValueInput($event, 'coer-selectbox')\"\r\n (onKeyupEnter)=\"onKeyupEnter.emit($event)\"\r\n (onKeyupEnterLast)=\"onKeyupEnterLast.emit($event)\"\r\n ></coer-grid-body>\r\n\r\n <!-- Loading / Empty -->\r\n @if(isLoading()) {\r\n <div class=\"loading\">\r\n <div class=\"loading-content\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i>\r\n <span class=\"fa-fade\">Loading</span>\r\n </div>\r\n </div> \r\n } \r\n\r\n @else if(_isEnabled() && _valueSignal().length <= 0) {\r\n <div class=\"empty-data\">\r\n <div class=\"empty-data-content\"> No Data </div>\r\n </div>\r\n } \r\n </div>\r\n </section> \r\n\r\n <!-- FOOTER -->\r\n <coer-grid-footer\r\n #coerGridFooter\r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [footer]=\"footer\"\r\n [dataSource]=\"_valueSignal()\"\r\n [dataSourceFiltered]=\"_dataSourceFiltered()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\" \r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n ></coer-grid-footer>\r\n</div>", styles: ["div.coer-grid section.coer-grid-container{position:relative!important}div.coer-grid section.coer-grid-container div.loading,div.coer-grid section.coer-grid-container div.empty-data{position:absolute!important;inset:0!important;z-index:100!important;display:flex!important;align-items:center!important;justify-content:center!important}div.coer-grid section.coer-grid-container div.loading div.loading-content,div.coer-grid section.coer-grid-container div.loading div.empty-data-content,div.coer-grid section.coer-grid-container div.empty-data div.loading-content,div.coer-grid section.coer-grid-container div.empty-data div.empty-data-content{flex-flow:column!important;display:inherit!important;justify-content:inherit!important;align-items:inherit!important;font-size:35px!important;color:var(--gray)!important}div.coer-grid section.coer-grid-container div.loading div.loading-content::selection,div.coer-grid section.coer-grid-container div.loading div.empty-data-content::selection,div.coer-grid section.coer-grid-container div.empty-data div.loading-content::selection,div.coer-grid section.coer-grid-container div.empty-data div.empty-data-content::selection{background-color:transparent!important}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoerGridHeader, selector: "coer-grid-header", inputs: ["GetIdCalculated", "GetColumnName", "columns", "dataSource", "dataSourceFiltered", "dataSourceSelected", "exportButton", "importButton", "addButton", "saveButton", "search", "searchInner", "isLoadingInner", "isLoading", "isDisabled", "isReadonly", "isInvisible"], outputs: ["onClickExport", "onClickImport", "onClickAdd", "onClickSave", "onInputSearch", "onClickClearSearch", "onKeyupEnterSearch"] }, { kind: "component", type: CoerGridBody, selector: "coer-grid-body", inputs: ["GetIdCalculated", "value", "columns", "dataSource", "dataSourceSelected", "search", "searchInner", "checkbox", "buttonByRow", "isLoadingInner", "isLoading", "isDisabled", "isReadonly", "isInvisible", "isEnabled", "enableSort", "enableFocusNext", "enableFocusRow", "enableHoverRow", "isStriped", "tooltipByRow"], outputs: ["onValueChange", "onClickRow", "onDoubleClickRow", "onInnerLoadingChange", "onCheckboxChange", "onClickDeleteRow", "onClickEditRow", "onClickModalRow", "onClickGoRow", "onSwitchChange", "onTextboxChange", "onNumberboxChange", "onSelectboxChange", "onKeyupEnter", "onKeyupEnterLast"] }, { kind: "component", type: CoerGridfooter, selector: "coer-grid-footer", inputs: ["GetIdCalculated", "footer", "dataSource", "dataSourceFiltered", "dataSourceSelected", "isLoadingInner"] }] }); }
3347
3346
  }
3348
3347
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: CoerGrid, decorators: [{
3349
3348
  type: Component,
3350
- args: [{ selector: 'coer-grid', providers: [CONTROL_VALUE(CoerGrid)], standalone: false, template: "<div [id]=\"_GetIdCalculated(-1, -1, 'coer-grid-inner')\" class=\"coer-grid\" [ngStyle]=\"{ 'width': width(), 'min-Width': MinWidth(), 'max-Width': MaxWidth(), 'margin': margin() }\">\r\n <!-- HEADER -->\r\n <coer-grid-header \r\n #coerGridHeader \r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [GetColumnName]=\"_GetColumnName\"\r\n [columns]=\"_columns()\"\r\n [dataSource]=\"_valueSignal()\"\r\n [dataSourceFiltered]=\"_dataSourceFiltered()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\"\r\n [exportButton]=\"exportButton\"\r\n [importButton]=\"importButton\"\r\n [addButton]=\"addButton\"\r\n [saveButton]=\"saveButton\"\r\n [search]=\"search\"\r\n [searchInner]=\"_searchInner()\"\r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n [isLoading]=\"isLoading()\"\r\n [isDisabled]=\"isDisabled()\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isInvisible]=\"isInvisible()\" \r\n (onClickExport)=\"onClickExport.emit($event)\"\r\n (onClickImport)=\"_Import($event)\"\r\n (onClickAdd)=\"onClickAdd.emit()\"\r\n (onClickSave)=\"onClickSave.emit()\"\r\n (onInputSearch)=\"_UpdateSearchInner($event)\"\r\n (onClickClearSearch)=\"_UpdateSearchInner($event)\"\r\n (onKeyupEnterSearch)=\"onKeyupEnter.emit($event)\"> \r\n <ng-content></ng-content> \r\n </coer-grid-header>\r\n\r\n <section class=\"coer-grid-container\" [ngStyle]=\"{ 'overflow': !isLoading() ? 'auto' : 'hidden' }\"> \r\n <div [ngStyle]=\"{ 'height': _height, 'min-height': minHeight(), 'max-height': maxHeight() }\"> \r\n <!-- BODY --> \r\n <coer-grid-body\r\n #coerGridBody\r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [value]=\"_valueSignal()\"\r\n [columns]=\"_columns()\"\r\n [dataSource]=\"_dataSource()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\"\r\n [search]=\"search\"\r\n [searchInner]=\"_searchInner()\"\r\n [checkbox]=\"checkbox\"\r\n [buttonByRow]=\"buttonByRow\"\r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n [isLoading]=\"isLoading()\"\r\n [isDisabled]=\"isDisabled()\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isInvisible]=\"isInvisible()\"\r\n [isEnabled]=\"_isEnabled()\"\r\n [enableSort]=\"enableSort()\"\r\n [tooltipByRow]=\"tooltipByRow()\"\r\n [enableFocusNext]=\"enableFocusNext()\"\r\n [enableFocusRow]=\"enableFocusRow()\"\r\n [enableHoverRow]=\"enableHoverRow()\"\r\n [isStriped]=\"isStriped()\"\r\n (onValueChange)=\"SetValue($event)\"\r\n (onClickRow)=\"onClickRow.emit($event)\"\r\n (onDoubleClickRow)=\"onDoubleClickRow.emit($event)\"\r\n (onCheckboxChange)=\"onCheckboxChange.emit($event)\"\r\n (onInnerLoadingChange)=\"_isLoadingInner.set($event)\"\r\n (onClickDeleteRow)=\"onClickDeleteRow.emit($event)\"\r\n (onClickEditRow)=\"onClickEditRow.emit($event)\" \r\n (onClickGoRow)=\"onClickGoRow.emit($event)\" \r\n (onSwitchChange)=\"_SetValueInput($event, 'coer-switch')\"\r\n (onTextboxChange)=\"_SetValueInput($event, 'coer-textbox')\"\r\n (onNumberboxChange)=\"_SetValueInput($event, 'coer-numberbox')\"\r\n (onSelectboxChange)=\"_SetValueInput($event, 'coer-selectbox')\"\r\n (onKeyupEnter)=\"onKeyupEnter.emit($event)\"\r\n (onKeyupEnterLast)=\"onKeyupEnterLast.emit($event)\"\r\n ></coer-grid-body>\r\n\r\n <!-- Loading / Empty -->\r\n @if(isLoading()) {\r\n <div class=\"loading\">\r\n <div class=\"loading-content\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i>\r\n <span class=\"fa-fade\">Loading</span>\r\n </div>\r\n </div> \r\n } \r\n\r\n @else if(_isEnabled() && _valueSignal().length <= 0) {\r\n <div class=\"empty-data\">\r\n <div class=\"empty-data-content\"> No Data </div>\r\n </div>\r\n } \r\n </div>\r\n </section> \r\n\r\n <!-- FOOTER -->\r\n <coer-grid-footer\r\n #coerGridFooter\r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [footer]=\"footer\"\r\n [dataSource]=\"_valueSignal()\"\r\n [dataSourceFiltered]=\"_dataSourceFiltered()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\" \r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n ></coer-grid-footer>\r\n</div>", styles: ["div.coer-grid section.coer-grid-container{position:relative!important}div.coer-grid section.coer-grid-container div.loading,div.coer-grid section.coer-grid-container div.empty-data{position:absolute!important;inset:0!important;z-index:100!important;display:flex!important;align-items:center!important;justify-content:center!important}div.coer-grid section.coer-grid-container div.loading div.loading-content,div.coer-grid section.coer-grid-container div.loading div.empty-data-content,div.coer-grid section.coer-grid-container div.empty-data div.loading-content,div.coer-grid section.coer-grid-container div.empty-data div.empty-data-content{flex-flow:column!important;display:inherit!important;justify-content:inherit!important;align-items:inherit!important;font-size:35px!important;color:var(--gray)!important}div.coer-grid section.coer-grid-container div.loading div.loading-content::selection,div.coer-grid section.coer-grid-container div.loading div.empty-data-content::selection,div.coer-grid section.coer-grid-container div.empty-data div.loading-content::selection,div.coer-grid section.coer-grid-container div.empty-data div.empty-data-content::selection{background-color:transparent!important}\n"] }]
3349
+ args: [{ selector: 'coer-grid', providers: [CONTROL_VALUE(CoerGrid)], standalone: false, template: "<div [id]=\"_GetIdCalculated(-1, -1, 'coer-grid-inner')\" class=\"coer-grid\" [ngStyle]=\"{ 'width': width(), 'min-Width': MinWidth(), 'max-Width': MaxWidth(), 'margin': margin() }\">\r\n <!-- HEADER -->\r\n <coer-grid-header \r\n #coerGridHeader \r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [GetColumnName]=\"_GetColumnName\"\r\n [columns]=\"_columns()\"\r\n [dataSource]=\"_valueSignal()\"\r\n [dataSourceFiltered]=\"_dataSourceFiltered()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\"\r\n [exportButton]=\"exportButton\"\r\n [importButton]=\"importButton\"\r\n [addButton]=\"addButton\"\r\n [saveButton]=\"saveButton\"\r\n [search]=\"search\"\r\n [searchInner]=\"_searchInner()\"\r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n [isLoading]=\"isLoading()\"\r\n [isDisabled]=\"isDisabled()\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isInvisible]=\"isInvisible()\" \r\n (onClickExport)=\"onClickExport.emit($event)\"\r\n (onClickImport)=\"_Import($event)\"\r\n (onClickAdd)=\"onClickAdd.emit()\"\r\n (onClickSave)=\"onClickSave.emit()\"\r\n (onInputSearch)=\"_UpdateSearchInner($event)\"\r\n (onClickClearSearch)=\"_UpdateSearchInner($event)\"\r\n (onKeyupEnterSearch)=\"onKeyupEnter.emit($event)\"> \r\n <ng-content></ng-content> \r\n </coer-grid-header>\r\n\r\n <section class=\"coer-grid-container\" [ngStyle]=\"{ 'overflow': !isLoading() ? 'auto' : 'hidden' }\"> \r\n <div [ngStyle]=\"{ 'height': _height, 'min-height': minHeight(), 'max-height': maxHeight() }\"> \r\n <!-- BODY --> \r\n <coer-grid-body\r\n #coerGridBody\r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [value]=\"_valueSignal()\"\r\n [columns]=\"_columns()\"\r\n [dataSource]=\"_dataSource()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\"\r\n [search]=\"search\"\r\n [searchInner]=\"_searchInner()\"\r\n [checkbox]=\"checkbox\"\r\n [buttonByRow]=\"buttonByRow\"\r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n [isLoading]=\"isLoading()\"\r\n [isDisabled]=\"isDisabled()\"\r\n [isReadonly]=\"isReadonly()\"\r\n [isInvisible]=\"isInvisible()\"\r\n [isEnabled]=\"_isEnabled()\"\r\n [enableSort]=\"enableSort()\"\r\n [tooltipByRow]=\"tooltipByRow()\"\r\n [enableFocusNext]=\"enableFocusNext()\"\r\n [enableFocusRow]=\"enableFocusRow()\"\r\n [enableHoverRow]=\"enableHoverRow()\"\r\n [isStriped]=\"isStriped()\"\r\n (onValueChange)=\"SetValue($event)\"\r\n (onClickRow)=\"onClickRow.emit($event)\"\r\n (onDoubleClickRow)=\"onDoubleClickRow.emit($event)\"\r\n (onCheckboxChange)=\"onCheckboxChange.emit($event)\"\r\n (onInnerLoadingChange)=\"_isLoadingInner.set($event)\"\r\n (onClickDeleteRow)=\"onClickDeleteRow.emit($event)\"\r\n (onClickEditRow)=\"onClickEditRow.emit($event)\" \r\n (onClickModalRow)=\"onClickModalRow.emit($event)\" \r\n (onClickGoRow)=\"onClickGoRow.emit($event)\" \r\n (onSwitchChange)=\"_SetValueInput($event, 'coer-switch')\"\r\n (onTextboxChange)=\"_SetValueInput($event, 'coer-textbox')\"\r\n (onNumberboxChange)=\"_SetValueInput($event, 'coer-numberbox')\"\r\n (onSelectboxChange)=\"_SetValueInput($event, 'coer-selectbox')\"\r\n (onKeyupEnter)=\"onKeyupEnter.emit($event)\"\r\n (onKeyupEnterLast)=\"onKeyupEnterLast.emit($event)\"\r\n ></coer-grid-body>\r\n\r\n <!-- Loading / Empty -->\r\n @if(isLoading()) {\r\n <div class=\"loading\">\r\n <div class=\"loading-content\">\r\n <i class=\"icon-circle-notch animation-spin text-primary\"></i>\r\n <span class=\"fa-fade\">Loading</span>\r\n </div>\r\n </div> \r\n } \r\n\r\n @else if(_isEnabled() && _valueSignal().length <= 0) {\r\n <div class=\"empty-data\">\r\n <div class=\"empty-data-content\"> No Data </div>\r\n </div>\r\n } \r\n </div>\r\n </section> \r\n\r\n <!-- FOOTER -->\r\n <coer-grid-footer\r\n #coerGridFooter\r\n [GetIdCalculated]=\"_GetIdCalculated\"\r\n [footer]=\"footer\"\r\n [dataSource]=\"_valueSignal()\"\r\n [dataSourceFiltered]=\"_dataSourceFiltered()\"\r\n [dataSourceSelected]=\"dataSourceSelected()\" \r\n [isLoadingInner]=\"_isLoadingInner()\"\r\n ></coer-grid-footer>\r\n</div>", styles: ["div.coer-grid section.coer-grid-container{position:relative!important}div.coer-grid section.coer-grid-container div.loading,div.coer-grid section.coer-grid-container div.empty-data{position:absolute!important;inset:0!important;z-index:100!important;display:flex!important;align-items:center!important;justify-content:center!important}div.coer-grid section.coer-grid-container div.loading div.loading-content,div.coer-grid section.coer-grid-container div.loading div.empty-data-content,div.coer-grid section.coer-grid-container div.empty-data div.loading-content,div.coer-grid section.coer-grid-container div.empty-data div.empty-data-content{flex-flow:column!important;display:inherit!important;justify-content:inherit!important;align-items:inherit!important;font-size:35px!important;color:var(--gray)!important}div.coer-grid section.coer-grid-container div.loading div.loading-content::selection,div.coer-grid section.coer-grid-container div.loading div.empty-data-content::selection,div.coer-grid section.coer-grid-container div.empty-data div.loading-content::selection,div.coer-grid section.coer-grid-container div.empty-data div.empty-data-content::selection{background-color:transparent!important}\n"] }]
3351
3350
  }] });
3352
3351
 
3353
3352
  class CoerList {