@seniorsistemas/angular-components 17.17.5 → 17.17.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +101 -12
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/dynamic-form/configurations/fields/field.d.ts +2 -0
  6. package/components/table/table-paging/table-paging.component.d.ts +26 -2
  7. package/esm2015/components/dynamic-form/components/lookup/lookup.component.js +2 -2
  8. package/esm2015/components/dynamic-form/configurations/fields/field.js +1 -1
  9. package/esm2015/components/dynamic-form/configurations/fields/text-field.js +2 -1
  10. package/esm2015/components/table/table-column/table-columns.component.js +6 -2
  11. package/esm2015/components/table/table-paging/table-paging.component.js +70 -19
  12. package/esm5/components/dynamic-form/components/lookup/lookup.component.js +2 -2
  13. package/esm5/components/dynamic-form/configurations/fields/field.js +1 -1
  14. package/esm5/components/dynamic-form/configurations/fields/text-field.js +2 -1
  15. package/esm5/components/table/table-column/table-columns.component.js +6 -2
  16. package/esm5/components/table/table-paging/table-paging.component.js +98 -13
  17. package/fesm2015/seniorsistemas-angular-components.js +74 -19
  18. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  19. package/fesm5/seniorsistemas-angular-components.js +101 -12
  20. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  21. package/package.json +1 -1
  22. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -6231,6 +6231,7 @@
6231
6231
  _this.onFocus = config.onFocus;
6232
6232
  _this.onComplete = config.onComplete;
6233
6233
  _this.onInput = config.onInput;
6234
+ _this.sortableColumnName = config.sortableColumnName;
6234
6235
  return _this;
6235
6236
  }
6236
6237
  return TextField;
@@ -6874,7 +6875,7 @@
6874
6875
  core.Injectable(),
6875
6876
  core.Component({
6876
6877
  selector: "s-lookup",
6877
- template: "<div [ngClass]=\"{ inputgroup: showSearch }\">\n <p-autoComplete\n #autocomplete\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [dataKey]=\"dataKey\"\n [multiple]=\"multiple\"\n [inputId]=\"id + '-autocomplete'\"\n [forceSelection]=\"autocompleteForceSelection\"\n [suggestions]=\"getLookupSuggestions()\"\n (completeMethod)=\"lazyLoadLookup($event)\"\n (onSelect)=\"onSelect.next($event)\"\n (onBlur)=\"onBlur.next($event)\"\n (onFocus)=\"onFocus.next($event)\"\n (onUnselect)=\"onUnselect.next($event)\"\n (onClear)=\"onClear.next($event)\"\n (onKeyUp)=\"onKeyUp.next($event)\"\n [field]=\"lookupDisplayField\"\n [emptyMessage]=\"lookupEmptyMessage\"\n [dropdown]=\"!showSearch\"\n [appendTo]=\"lookupAppendTo\"\n [placeholder]=\"placeholder || ' '\"\n [autoHighlight]=\"true\"\n inputStyleClass=\"mousetrap\">\n <ng-template let-item pTemplate=\"selectedItem\">\n <span\n class=\"ui-autocomplete-token-label ng-tns-c65-43 ng-star-inserted\"\n [sTooltip]=\"lookupDisplayFieldTooltip ? item[lookupDisplayField] : null\"\n tooltipPosition=\"top\">\n {{item[lookupDisplayField]}}\n </span>\n </ng-template>\n </p-autoComplete>\n <button\n *ngIf=\"showSearch\"\n pButton\n type=\"button\"\n icon=\"fa fa-search\"\n class=\"button-addon\"\n [disabled]=\"disabled\"\n (click)=\"showDialog()\">\n </button>\n</div>\n<p-dialog\n appendTo=\"body\"\n styleClass=\"s-lookup-modal\"\n [header]=\"searchTitle || 'platform.angular_components.advanced_search' | translate\"\n [(visible)]=\"dialogVisible\"\n [modal]=\"true\"\n (onHide)=\"hideDialog()\"\n [blockScroll]=\"true\"\n [focusOnShow]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n #dialog>\n <div\n *ngIf=\"dialogVisible\"\n class=\"s-lookup-modal-container\">\n <div\n *ngIf=\"searchFields && searchFields.length\"\n class=\"filter\"\n [@collapseContent]=\"collapsed\n ? { value: 'hidden', params: { transitionParams: transitionOptions } }\n : { value: 'visible', params: { transitionParams: transitionOptions } }\"\n (@collapseContent.done)=\"onToggleDone()\">\n <form\n [formGroup]=\"formGroupDialog\"\n novalidate\n autocomplete=\"off\">\n <div\n *ngIf=\"!collapsed\"\n class=\"form-content\"\n [@childCollapseContent]=\"collapsed\n ? { value: ':leave', params: { transitionParams: transitionOptions } }\n : { value: ':enter', params: { transitionParams: transitionOptions } }\">\n <div class=\"filter-title sds-section-title\">\n {{ filterTitle || \"platform.angular_components.filters\" | translate }}\n </div>\n <div class=\"form-fields\">\n <s-dynamic-form\n [fields]=\"searchFields\"\n [form]=\"formGroupDialog\">\n </s-dynamic-form>\n </div>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button\n [id]=\"id + '-filter-button'\"\n type=\"submit\"\n [label]=\"filterLabel || 'platform.angular_components.filter' | translate\"\n (onClick)=\"search()\"\n sTooltip=\"(ALT + SHIFT + F)\"\n tooltipPosition=\"top\"\n showDelay=\"500\">\n </s-button>\n <s-button\n [id]=\"id + '-clear-button'\"\n type=\"button\"\n [label]=\"clearLabel || 'platform.angular_components.clear' | translate\"\n (onClick)=\"clear()\"\n priority=\"link\"\n sTooltip=\"(ALT + SHIFT + L)\"\n tooltipPosition=\"top\"\n showDelay=\"500\">\n </s-button>\n </div>\n </div>\n </div>\n </form>\n </div>\n <div\n *ngIf=\"searchFields && searchFields.length\"\n class=\"filter-toggle\">\n <div class=\"filter-toggle--start-border-mask\"></div>\n <button\n [id]=\"id + '-filter-toggle-button'\"\n type=\"button\"\n (click)=\"filterToggle()\">\n <span\n class=\"fa\"\n [ngClass]=\"{'fa-chevron-left': !collapsed, 'fa-chevron-right': collapsed}\"\n aria-hidden=\"true\">\n </span>\n </button>\n <div class=\"filter-toggle--end-border-mask\"></div>\n </div>\n <div\n class=\"content\"\n [ngClass]=\"{'empty-content': !searchTotalRecords && !loading}\">\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n *ngIf=\"!searchTotalRecords && !loading\"\n [title]=\"searchEmptyTitle || 'platform.angular_components.no_records_found' | translate\"\n [description]=\"searchEmptyDescription\"\n iconClass=\"fa fa-search\">\n </s-empty-state>\n\n <div>\n <s-button\n *ngIf=\"showAddOption\"\n priority=\"default\"\n [label]=\"'platform.angular_components.add' | translate\"\n (onClick)=\"onAdd.emit()\">\n </s-button>\n <s-button\n *ngIf=\"showEditOption\"\n priority=\"default\"\n [label]=\"'platform.angular_components.edit' | translate\"\n [disabled]=\"selected.length !== 1\"\n (onClick)=\"onEdit.emit(this.selected[0])\">\n </s-button>\n <s-button\n *ngIf=\"showRemoveOption\"\n priority=\"default\"\n [label]=\"'platform.angular_components.remove' | translate\"\n [disabled]=\"!selected.length\"\n (onClick)=\"onRemove.emit(this.selected)\">\n </s-button>\n </div>\n\n <p-table\n [dataKey]=\"dataKey\"\n [value]=\"getGridData()\"\n [columns]=\"searchGridFields\"\n [lazy]=\"true\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n sortMode=\"multiple\"\n [totalRecords]=\"searchTotalRecords\"\n [rows]=\"10\"\n [selection]=\"selected\"\n (onLazyLoad)=\"lazyLoadGrid($event)\"\n *sLoadingState=\"{ loading: loading, indicator: 'logo' }\"\n [multiSortMeta]=\"multiSortMeta\"\n [attr.data-hidden]=\"!searchTotalRecords && !loading\"\n [selectionMode]=\"multiple ? 'multiple' : 'single'\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col\n *ngIf=\"multiple\"\n style=\"width: 50px\" />\n <col\n *ngFor=\"let col of columns\"\n [style.width]=\"col.width\" />\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th\n *ngIf=\"multiple\"\n style=\"width: 50px\">\n <s-table-header-checkbox\n [useAllObject]=\"lookupRowProps ? false : true\"\n [rowProps]=\"lookupRowProps\">\n </s-table-header-checkbox>\n </th>\n <th\n [style.width]=\"col.width\"\n *ngFor=\"let col of columns\"\n [pSortableColumn]=\"col.name\"\n [pSortableColumnDisabled]=\"sortableColumnsDisabled?.includes(col.name)\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.label }}</span>\n <p-sortIcon\n [field]=\"col.name\"\n *ngIf=\"!sortableColumnsDisabled?.includes(col.name)\">\n </p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns\n let-rowIndex=\"rowIndex\">\n <tr\n sNavigation\n [pSelectableRow]=\"rowData\"\n [pSelectableRowIndex]=\"rowIndex\"\n sDoubleClick (onDoubleClick)=\"onTableRowDoubleClick(rowData)\">\n <td\n *ngIf=\"multiple\"\n style=\"width: 50px\"\n tabindex=\"0\">\n <p-tableCheckbox\n [value]=\"rowData\"\n [pSelectableRow]=\"rowData\">\n </p-tableCheckbox>\n </td>\n <td\n [style.width]=\"col['width']\"\n *ngFor=\"let col of searchGridFields\"\n [ngSwitch]=\"col.type\"\n tabindex=\"0\">\n <ng-container *ngSwitchCase=\"'Boolean'\">\n <ng-container *ngIf=\"isBooleanValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getBooleanLabel(rowData, col.name, col.optionsLabel) }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Date'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate: col.calendarLocaleOptions?.dateFormat || \"L\" | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'DateTime'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'LocalDateTime'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Time'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedTime: col.calendarLocaleOptions?.dateFormat || \"LTS\" | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Integer'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedBignumber: getIntegerMaskConfig(col) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Double'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedBignumber: getDoubleMaskConfig(col) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Money'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedBignumber: getMoneyMaskConfig(col) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Number'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedBignumber: getNumberMaskConfig(col) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Enum'\">\n <ng-container *ngIf=\"getLabelForValue(getFieldValue(rowData, col.name), col.options); else emptyTemplate\">\n <ng-container *ngIf=\"getBadgeFromValue(getFieldValue(rowData, col.name), col.options); then withBadge; else withoutBadge\"></ng-container>\n <ng-template #withBadge>\n <s-badge\n [text]=\"getLabelForValue(getFieldValue(rowData, col.name), col.options)\"\n [color]=\"getBadgeFromValue(getFieldValue(rowData, col.name), col.options).color\"\n [type]=\"getBadgeFromValue(getFieldValue(rowData, col.name), col.options).type\"\n [iconClass]=\"getBadgeFromValue(getFieldValue(rowData, col.name), col.options).iconClass\"\n [iconPosition]=\"getBadgeFromValue(getFieldValue(rowData, col.name), col.options).iconPosition\">\n </s-badge>\n </ng-template>\n <ng-template #withoutBadge>\n <span> {{ getLabelForValue(getFieldValue(rowData, col.name), col.options) }} </span>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"col.mask && col.mask()\">\n <ng-container *ngIf=\"(isNumber(rowData, col.name) || getFieldValue(rowData, col.name))\">\n <span>{{ getFieldValue(rowData, col.name) | sMaskFormatter: col.mask() }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!(col.mask && col.mask())\">\n <ng-container *ngIf=\"(isNumber(rowData, col.name) || getFieldValue(rowData, col.name)); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) }}</span>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [attr.data-hidden]=\"loading\">\n {{ printRecordTotalizer() }}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n <p-footer>\n <s-button\n [id]=\"id + '-select-button'\"\n type=\"button\"\n [label]=\"selectLabel || 'platform.angular_components.select' | translate\"\n (onClick)=\"select()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [disabled]=\"!selected?.length\">\n </s-button>\n <s-button\n [id]=\"id + '-cancel-button'\"\n type=\"button\"\n priority=\"link\"\n [label]=\"cancelLabel || 'platform.angular_components.cancel' | translate\"\n (onClick)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n tooltipPosition=\"top\"\n showDelay=\"500\">\n </s-button>\n </p-footer>\n</p-dialog>\n<ng-template #emptyTemplate>\n <span [ngClass]=\"'sds-empty-value'\">\n {{ emptyFieldLabel || 'platform.angular_components.not_informed' | translate }}\n </span>\n</ng-template>\n",
6878
+ template: "<div [ngClass]=\"{ inputgroup: showSearch }\">\n <p-autoComplete\n #autocomplete\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [dataKey]=\"dataKey\"\n [multiple]=\"multiple\"\n [inputId]=\"id + '-autocomplete'\"\n [forceSelection]=\"autocompleteForceSelection\"\n [suggestions]=\"getLookupSuggestions()\"\n (completeMethod)=\"lazyLoadLookup($event)\"\n (onSelect)=\"onSelect.next($event)\"\n (onBlur)=\"onBlur.next($event)\"\n (onFocus)=\"onFocus.next($event)\"\n (onUnselect)=\"onUnselect.next($event)\"\n (onClear)=\"onClear.next($event)\"\n (onKeyUp)=\"onKeyUp.next($event)\"\n [field]=\"lookupDisplayField\"\n [emptyMessage]=\"lookupEmptyMessage\"\n [dropdown]=\"!showSearch\"\n [appendTo]=\"lookupAppendTo\"\n [placeholder]=\"placeholder || ' '\"\n [autoHighlight]=\"true\"\n inputStyleClass=\"mousetrap\">\n <ng-template let-item pTemplate=\"selectedItem\">\n <span\n class=\"ui-autocomplete-token-label ng-tns-c65-43 ng-star-inserted\"\n [sTooltip]=\"lookupDisplayFieldTooltip ? item[lookupDisplayField] : null\"\n tooltipPosition=\"top\">\n {{item[lookupDisplayField]}}\n </span>\n </ng-template>\n </p-autoComplete>\n <button\n *ngIf=\"showSearch\"\n pButton\n type=\"button\"\n icon=\"fa fa-search\"\n class=\"button-addon\"\n [disabled]=\"disabled\"\n (click)=\"showDialog()\">\n </button>\n</div>\n<p-dialog\n appendTo=\"body\"\n styleClass=\"s-lookup-modal\"\n [header]=\"searchTitle || 'platform.angular_components.advanced_search' | translate\"\n [(visible)]=\"dialogVisible\"\n [modal]=\"true\"\n (onHide)=\"hideDialog()\"\n [blockScroll]=\"true\"\n [focusOnShow]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n #dialog>\n <div\n *ngIf=\"dialogVisible\"\n class=\"s-lookup-modal-container\">\n <div\n *ngIf=\"searchFields && searchFields.length\"\n class=\"filter\"\n [@collapseContent]=\"collapsed\n ? { value: 'hidden', params: { transitionParams: transitionOptions } }\n : { value: 'visible', params: { transitionParams: transitionOptions } }\"\n (@collapseContent.done)=\"onToggleDone()\">\n <form\n [formGroup]=\"formGroupDialog\"\n novalidate\n autocomplete=\"off\">\n <div\n *ngIf=\"!collapsed\"\n class=\"form-content\"\n [@childCollapseContent]=\"collapsed\n ? { value: ':leave', params: { transitionParams: transitionOptions } }\n : { value: ':enter', params: { transitionParams: transitionOptions } }\">\n <div class=\"filter-title sds-section-title\">\n {{ filterTitle || \"platform.angular_components.filters\" | translate }}\n </div>\n <div class=\"form-fields\">\n <s-dynamic-form\n [fields]=\"searchFields\"\n [form]=\"formGroupDialog\">\n </s-dynamic-form>\n </div>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button\n [id]=\"id + '-filter-button'\"\n type=\"submit\"\n [label]=\"filterLabel || 'platform.angular_components.filter' | translate\"\n (onClick)=\"search()\"\n sTooltip=\"(ALT + SHIFT + F)\"\n tooltipPosition=\"top\"\n showDelay=\"500\">\n </s-button>\n <s-button\n [id]=\"id + '-clear-button'\"\n type=\"button\"\n [label]=\"clearLabel || 'platform.angular_components.clear' | translate\"\n (onClick)=\"clear()\"\n priority=\"link\"\n sTooltip=\"(ALT + SHIFT + L)\"\n tooltipPosition=\"top\"\n showDelay=\"500\">\n </s-button>\n </div>\n </div>\n </div>\n </form>\n </div>\n <div\n *ngIf=\"searchFields && searchFields.length\"\n class=\"filter-toggle\">\n <div class=\"filter-toggle--start-border-mask\"></div>\n <button\n [id]=\"id + '-filter-toggle-button'\"\n type=\"button\"\n (click)=\"filterToggle()\">\n <span\n class=\"fa\"\n [ngClass]=\"{'fa-chevron-left': !collapsed, 'fa-chevron-right': collapsed}\"\n aria-hidden=\"true\">\n </span>\n </button>\n <div class=\"filter-toggle--end-border-mask\"></div>\n </div>\n <div\n class=\"content\"\n [ngClass]=\"{'empty-content': !searchTotalRecords && !loading}\">\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n *ngIf=\"!searchTotalRecords && !loading\"\n [title]=\"searchEmptyTitle || 'platform.angular_components.no_records_found' | translate\"\n [description]=\"searchEmptyDescription\"\n iconClass=\"fa fa-search\">\n </s-empty-state>\n\n <div>\n <s-button\n *ngIf=\"showAddOption\"\n priority=\"default\"\n [label]=\"'platform.angular_components.add' | translate\"\n (onClick)=\"onAdd.emit()\">\n </s-button>\n <s-button\n *ngIf=\"showEditOption\"\n priority=\"default\"\n [label]=\"'platform.angular_components.edit' | translate\"\n [disabled]=\"selected.length !== 1\"\n (onClick)=\"onEdit.emit(this.selected[0])\">\n </s-button>\n <s-button\n *ngIf=\"showRemoveOption\"\n priority=\"default\"\n [label]=\"'platform.angular_components.remove' | translate\"\n [disabled]=\"!selected.length\"\n (onClick)=\"onRemove.emit(this.selected)\">\n </s-button>\n </div>\n\n <p-table\n [dataKey]=\"dataKey\"\n [value]=\"getGridData()\"\n [columns]=\"searchGridFields\"\n [lazy]=\"true\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n sortMode=\"multiple\"\n [totalRecords]=\"searchTotalRecords\"\n [rows]=\"10\"\n [selection]=\"selected\"\n (onLazyLoad)=\"lazyLoadGrid($event)\"\n *sLoadingState=\"{ loading: loading, indicator: 'logo' }\"\n [multiSortMeta]=\"multiSortMeta\"\n [attr.data-hidden]=\"!searchTotalRecords && !loading\"\n [selectionMode]=\"multiple ? 'multiple' : 'single'\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col\n *ngIf=\"multiple\"\n style=\"width: 50px\" />\n <col\n *ngFor=\"let col of columns\"\n [style.width]=\"col.width\" />\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th\n *ngIf=\"multiple\"\n style=\"width: 50px\">\n <s-table-header-checkbox\n [useAllObject]=\"lookupRowProps ? false : true\"\n [rowProps]=\"lookupRowProps\">\n </s-table-header-checkbox>\n </th>\n <th\n [style.width]=\"col.width\"\n *ngFor=\"let col of columns\"\n [pSortableColumn]=\"col.sortableColumnName ? col.sortableColumnName : col.name\"\n [pSortableColumnDisabled]=\"sortableColumnsDisabled?.includes(col.name)\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.label }}</span>\n <p-sortIcon\n [field]=\"col.name\"\n *ngIf=\"!sortableColumnsDisabled?.includes(col.name)\">\n </p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns\n let-rowIndex=\"rowIndex\">\n <tr\n sNavigation\n [pSelectableRow]=\"rowData\"\n [pSelectableRowIndex]=\"rowIndex\"\n sDoubleClick (onDoubleClick)=\"onTableRowDoubleClick(rowData)\">\n <td\n *ngIf=\"multiple\"\n style=\"width: 50px\"\n tabindex=\"0\">\n <p-tableCheckbox\n [value]=\"rowData\"\n [pSelectableRow]=\"rowData\">\n </p-tableCheckbox>\n </td>\n <td\n [style.width]=\"col['width']\"\n *ngFor=\"let col of searchGridFields\"\n [ngSwitch]=\"col.type\"\n tabindex=\"0\">\n <ng-container *ngSwitchCase=\"'Boolean'\">\n <ng-container *ngIf=\"isBooleanValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getBooleanLabel(rowData, col.name, col.optionsLabel) }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Date'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate: col.calendarLocaleOptions?.dateFormat || \"L\" | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'DateTime'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'LocalDateTime'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Time'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedTime: col.calendarLocaleOptions?.dateFormat || \"LTS\" | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Integer'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedBignumber: getIntegerMaskConfig(col) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Double'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedBignumber: getDoubleMaskConfig(col) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Money'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedBignumber: getMoneyMaskConfig(col) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Number'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedBignumber: getNumberMaskConfig(col) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Enum'\">\n <ng-container *ngIf=\"getLabelForValue(getFieldValue(rowData, col.name), col.options); else emptyTemplate\">\n <ng-container *ngIf=\"getBadgeFromValue(getFieldValue(rowData, col.name), col.options); then withBadge; else withoutBadge\"></ng-container>\n <ng-template #withBadge>\n <s-badge\n [text]=\"getLabelForValue(getFieldValue(rowData, col.name), col.options)\"\n [color]=\"getBadgeFromValue(getFieldValue(rowData, col.name), col.options).color\"\n [type]=\"getBadgeFromValue(getFieldValue(rowData, col.name), col.options).type\"\n [iconClass]=\"getBadgeFromValue(getFieldValue(rowData, col.name), col.options).iconClass\"\n [iconPosition]=\"getBadgeFromValue(getFieldValue(rowData, col.name), col.options).iconPosition\">\n </s-badge>\n </ng-template>\n <ng-template #withoutBadge>\n <span> {{ getLabelForValue(getFieldValue(rowData, col.name), col.options) }} </span>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"col.mask && col.mask()\">\n <ng-container *ngIf=\"(isNumber(rowData, col.name) || getFieldValue(rowData, col.name))\">\n <span>{{ getFieldValue(rowData, col.name) | sMaskFormatter: col.mask() }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!(col.mask && col.mask())\">\n <ng-container *ngIf=\"(isNumber(rowData, col.name) || getFieldValue(rowData, col.name)); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) }}</span>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [attr.data-hidden]=\"loading\">\n {{ printRecordTotalizer() }}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n <p-footer>\n <s-button\n [id]=\"id + '-select-button'\"\n type=\"button\"\n [label]=\"selectLabel || 'platform.angular_components.select' | translate\"\n (onClick)=\"select()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [disabled]=\"!selected?.length\">\n </s-button>\n <s-button\n [id]=\"id + '-cancel-button'\"\n type=\"button\"\n priority=\"link\"\n [label]=\"cancelLabel || 'platform.angular_components.cancel' | translate\"\n (onClick)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n tooltipPosition=\"top\"\n showDelay=\"500\">\n </s-button>\n </p-footer>\n</p-dialog>\n<ng-template #emptyTemplate>\n <span [ngClass]=\"'sds-empty-value'\">\n {{ emptyFieldLabel || 'platform.angular_components.not_informed' | translate }}\n </span>\n</ng-template>\n",
6878
6879
  providers: [
6879
6880
  {
6880
6881
  provide: forms.NG_VALUE_ACCESSOR,
@@ -9919,7 +9920,11 @@
9919
9920
  return ((_a = attributeValue === null || attributeValue === void 0 ? void 0 : attributeValue.options) === null || _a === void 0 ? void 0 : _a.numberFormatOptions) ? _this.numericService.instant(attributeValue.value, {
9920
9921
  numberFormatOptions: attributeValue.options.numberFormatOptions,
9921
9922
  })
9922
- : ng2CurrencyMask.applyMask(attributeValue, numberConfigs, _this.isNumber(attributeValue));
9923
+ : column.numberFormatOptions
9924
+ ? _this.numericService.instant(attributeValue, {
9925
+ numberFormatOptions: column.numberFormatOptions,
9926
+ })
9927
+ : ng2CurrencyMask.applyMask(attributeValue, numberConfigs, _this.isNumber(attributeValue));
9923
9928
  case exports.EnumColumnFieldType.DATE:
9924
9929
  var dateFormat = _this.getDateFormat(column, locale);
9925
9930
  return moment$4(attributeValue).format(dateFormat);
@@ -10119,7 +10124,7 @@
10119
10124
  var _a;
10120
10125
  if ((_a = changes.totalRecords) === null || _a === void 0 ? void 0 : _a.currentValue) {
10121
10126
  this.totalRecordsText = this.translate.instant(this.getTranslatePrefix() + "total_records", {
10122
- value: changes.totalRecords.currentValue
10127
+ value: changes.totalRecords.currentValue,
10123
10128
  });
10124
10129
  }
10125
10130
  };
@@ -10136,28 +10141,28 @@
10136
10141
  {
10137
10142
  id: "exportCurrentPage",
10138
10143
  label: this.translate.instant(this.getTranslatePrefix() + "export_current_page"),
10139
- command: function () { return _this.exportCurrentPage(); }
10140
- }
10144
+ command: function () { return _this.exportCurrentPage(); },
10145
+ },
10141
10146
  ];
10142
10147
  if (this.enableExportSelectedRecords) {
10143
10148
  actions.push({
10144
10149
  id: "exportSelected",
10145
10150
  label: this.translate.instant(this.getTranslatePrefix() + "export_selected_records"),
10146
- command: function () { return _this.exportSelectedRecords(); }
10151
+ command: function () { return _this.exportSelectedRecords(); },
10147
10152
  });
10148
10153
  }
10149
10154
  if (this.loadAllRecords) {
10150
10155
  actions.push({
10151
10156
  id: "exportAll",
10152
10157
  label: this.translate.instant(this.getTranslatePrefix() + "export_all_records"),
10153
- command: function () { return _this.exportAllRecords(); }
10158
+ command: function () { return _this.exportAllRecords(); },
10154
10159
  });
10155
10160
  }
10156
10161
  if ((_a = this.customActions) === null || _a === void 0 ? void 0 : _a.length) {
10157
10162
  var customMenus = this.customActions.map(function (p, index) { return ({
10158
10163
  id: "customAction_" + index,
10159
10164
  label: p.label,
10160
- command: p.command
10165
+ command: p.command,
10161
10166
  }); });
10162
10167
  actions.push.apply(actions, __spread(customMenus));
10163
10168
  }
@@ -10177,7 +10182,7 @@
10177
10182
  field: column.field,
10178
10183
  separator: (_a = column.separator) !== null && _a !== void 0 ? _a : " - ",
10179
10184
  enumPrefix: column.enumPrefix,
10180
- customExport: column.customExport
10185
+ customExport: column.customExport,
10181
10186
  };
10182
10187
  if (column.exportable === false) {
10183
10188
  exportColumn.exportable = false;
@@ -10199,6 +10204,7 @@
10199
10204
  tableData = this.loadCurrentPageRecords();
10200
10205
  }
10201
10206
  tableData = this.mapCustomExport(columns, tableData);
10207
+ tableData = this.mapNumberFormatOptionsExport(columns, tableData);
10202
10208
  return this.mapColumnsTranslations(columns, tableData);
10203
10209
  };
10204
10210
  TablePagingComponent.prototype.getSelectedRowsToExport = function (columns) {
@@ -10207,6 +10213,7 @@
10207
10213
  tableData = this.loadSelectedRecords();
10208
10214
  }
10209
10215
  tableData = this.mapCustomExport(columns, tableData);
10216
+ tableData = this.mapNumberFormatOptionsExport(columns, tableData);
10210
10217
  return this.mapColumnsTranslations(columns, tableData);
10211
10218
  };
10212
10219
  TablePagingComponent.prototype.getPropertyValue = function (obj, path) {
@@ -10221,7 +10228,7 @@
10221
10228
  obj[key] = value;
10222
10229
  return obj;
10223
10230
  }
10224
- obj[key] = (this.recursionSetValue((obj === null || obj === void 0 ? void 0 : obj[key]) || {}, keysList.slice(1), value));
10231
+ obj[key] = this.recursionSetValue((obj === null || obj === void 0 ? void 0 : obj[key]) || {}, keysList.slice(1), value);
10225
10232
  return obj;
10226
10233
  };
10227
10234
  TablePagingComponent.prototype.mapColumnsTranslations = function (columns, rows) {
@@ -10246,6 +10253,88 @@
10246
10253
  return newRow;
10247
10254
  });
10248
10255
  };
10256
+ /**
10257
+ * The purpose of this method is to map values
10258
+ * from the TableColumnsComponent, which uses the numberFormatOptions
10259
+ * field, along with rows that have a custom numberFormatOptions,
10260
+ * to ensure the correct values are exported by the TablePagingComponent.
10261
+ *
10262
+ * @returns Returns the correctly mapped tableData.
10263
+ */
10264
+ TablePagingComponent.prototype.mapNumberFormatOptionsExport = function (columns, tableData) {
10265
+ var hasNumberFormatOptionsColumns = columns.some(function (column) { return column.numberFormatOptions; });
10266
+ var hasNumberFormatOptionsRows = tableData.some(function (rowData) {
10267
+ return Object.keys(rowData).some(function (key) { var _a; return (_a = rowData[key].options) === null || _a === void 0 ? void 0 : _a.numberFormatOptions; });
10268
+ });
10269
+ if (!hasNumberFormatOptionsColumns && !hasNumberFormatOptionsRows)
10270
+ return tableData;
10271
+ var mappedTableData = __spread(tableData);
10272
+ if (hasNumberFormatOptionsColumns) {
10273
+ mappedTableData = mappedTableData.map(function (rowData) {
10274
+ var e_1, _a, e_2, _b;
10275
+ var _c;
10276
+ var row = __assign({}, rowData);
10277
+ var columnsWithNumberFormatOptions = columns.filter(function (column) { return column.numberFormatOptions; });
10278
+ try {
10279
+ for (var columnsWithNumberFormatOptions_1 = __values(columnsWithNumberFormatOptions), columnsWithNumberFormatOptions_1_1 = columnsWithNumberFormatOptions_1.next(); !columnsWithNumberFormatOptions_1_1.done; columnsWithNumberFormatOptions_1_1 = columnsWithNumberFormatOptions_1.next()) {
10280
+ var _d = columnsWithNumberFormatOptions_1_1.value, attributes = _d.attributes, numberFormatOptions = _d.numberFormatOptions;
10281
+ try {
10282
+ for (var attributes_1 = (e_2 = void 0, __values(attributes)), attributes_1_1 = attributes_1.next(); !attributes_1_1.done; attributes_1_1 = attributes_1.next()) {
10283
+ var attribute = attributes_1_1.value;
10284
+ if ((_c = row[attribute].options) === null || _c === void 0 ? void 0 : _c.numberFormatOptions)
10285
+ continue;
10286
+ var value = row[attribute];
10287
+ var mappedValue = numberFormatOptions.style === "percent" ? new BigNumber__default(value).times(100) : new BigNumber__default(value);
10288
+ var numberFormat = new Intl.NumberFormat("en-US", __assign(__assign({}, numberFormatOptions), { style: "decimal", useGrouping: false }));
10289
+ row[attribute] = numberFormat.format(mappedValue.toNumber());
10290
+ }
10291
+ }
10292
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
10293
+ finally {
10294
+ try {
10295
+ if (attributes_1_1 && !attributes_1_1.done && (_b = attributes_1.return)) _b.call(attributes_1);
10296
+ }
10297
+ finally { if (e_2) throw e_2.error; }
10298
+ }
10299
+ }
10300
+ }
10301
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
10302
+ finally {
10303
+ try {
10304
+ if (columnsWithNumberFormatOptions_1_1 && !columnsWithNumberFormatOptions_1_1.done && (_a = columnsWithNumberFormatOptions_1.return)) _a.call(columnsWithNumberFormatOptions_1);
10305
+ }
10306
+ finally { if (e_1) throw e_1.error; }
10307
+ }
10308
+ return row;
10309
+ });
10310
+ }
10311
+ if (hasNumberFormatOptionsRows) {
10312
+ mappedTableData = tableData.map(function (rowData) {
10313
+ var e_3, _a;
10314
+ var row = __assign({}, rowData);
10315
+ var keysWithNumberFormatOptions = Object.keys(row).filter(function (key) { var _a; return (_a = row[key].options) === null || _a === void 0 ? void 0 : _a.numberFormatOptions; });
10316
+ try {
10317
+ for (var keysWithNumberFormatOptions_1 = __values(keysWithNumberFormatOptions), keysWithNumberFormatOptions_1_1 = keysWithNumberFormatOptions_1.next(); !keysWithNumberFormatOptions_1_1.done; keysWithNumberFormatOptions_1_1 = keysWithNumberFormatOptions_1.next()) {
10318
+ var key = keysWithNumberFormatOptions_1_1.value;
10319
+ var value = rowData[key].value;
10320
+ var numberFormatOptions = rowData[key].options.numberFormatOptions;
10321
+ var mappedValue = numberFormatOptions.style === "percent" ? new BigNumber__default(value).times(100) : new BigNumber__default(value);
10322
+ var numberFormat = new Intl.NumberFormat("en-US", __assign(__assign({}, numberFormatOptions), { style: "decimal", useGrouping: false }));
10323
+ row[key] = numberFormat.format(mappedValue.toNumber());
10324
+ }
10325
+ }
10326
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
10327
+ finally {
10328
+ try {
10329
+ if (keysWithNumberFormatOptions_1_1 && !keysWithNumberFormatOptions_1_1.done && (_a = keysWithNumberFormatOptions_1.return)) _a.call(keysWithNumberFormatOptions_1);
10330
+ }
10331
+ finally { if (e_3) throw e_3.error; }
10332
+ }
10333
+ return row;
10334
+ });
10335
+ }
10336
+ return mappedTableData;
10337
+ };
10249
10338
  TablePagingComponent.prototype.mapCustomExport = function (columns, rows) {
10250
10339
  var _this = this;
10251
10340
  var customColumns = columns.filter(function (p) { return p.customExport; });
@@ -10287,8 +10376,7 @@
10287
10376
  return translatedValue;
10288
10377
  };
10289
10378
  TablePagingComponent.prototype.convertToSnakeCase = function (str) {
10290
- return str.replace(/([A-Z])/g, function (match, group) { return "_" + group.toLowerCase(); })
10291
- .replace(/^_/, '');
10379
+ return str.replace(/([A-Z])/g, function (match, group) { return "_" + group.toLowerCase(); }).replace(/^_/, "");
10292
10380
  };
10293
10381
  TablePagingComponent.prototype.getExportFileName = function () {
10294
10382
  var _a, _b;
@@ -10323,6 +10411,7 @@
10323
10411
  serverData = _a.sent();
10324
10412
  columns = this.getColumnsToExport();
10325
10413
  serverData = this.mapCustomExport(columns, serverData);
10414
+ serverData = this.mapNumberFormatOptionsExport(columns, serverData);
10326
10415
  dataToExport = this.mapColumnsTranslations(columns, serverData);
10327
10416
  ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());
10328
10417
  return [2 /*return*/];