@seniorsistemas/angular-components 14.14.2 → 14.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +118 -3
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.d.ts +1 -0
  6. package/components/dynamic-form/configurations/dynamic-type.d.ts +1 -0
  7. package/components/dynamic-form/configurations/field-type.d.ts +1 -0
  8. package/components/timeline/index.d.ts +2 -0
  9. package/components/timeline/timeline.component.d.ts +18 -0
  10. package/components/timeline/timeline.module.d.ts +2 -0
  11. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.js +3 -1
  12. package/esm2015/components/custom-fields/custom-fields.component.js +10 -1
  13. package/esm2015/components/dynamic-form/components/lookup/lookup.component.js +2 -2
  14. package/esm2015/components/dynamic-form/configurations/dynamic-config.js +2 -1
  15. package/esm2015/components/dynamic-form/configurations/dynamic-type.js +2 -1
  16. package/esm2015/components/dynamic-form/configurations/field-type.js +2 -1
  17. package/esm2015/components/dynamic-form/configurations/form-field.js +2 -1
  18. package/esm2015/components/dynamic-form/dynamic-form.js +6 -1
  19. package/esm2015/components/locale/options/number.js +2 -2
  20. package/esm2015/components/timeline/index.js +3 -0
  21. package/esm2015/components/timeline/timeline.component.js +79 -0
  22. package/esm2015/components/timeline/timeline.module.js +16 -0
  23. package/esm2015/public-api.js +2 -1
  24. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.js +3 -1
  25. package/esm5/components/custom-fields/custom-fields.component.js +10 -1
  26. package/esm5/components/dynamic-form/components/lookup/lookup.component.js +2 -2
  27. package/esm5/components/dynamic-form/configurations/dynamic-config.js +2 -1
  28. package/esm5/components/dynamic-form/configurations/dynamic-type.js +2 -1
  29. package/esm5/components/dynamic-form/configurations/field-type.js +2 -1
  30. package/esm5/components/dynamic-form/configurations/form-field.js +2 -1
  31. package/esm5/components/dynamic-form/dynamic-form.js +6 -1
  32. package/esm5/components/locale/options/number.js +2 -3
  33. package/esm5/components/timeline/index.js +3 -0
  34. package/esm5/components/timeline/timeline.component.js +85 -0
  35. package/esm5/components/timeline/timeline.module.js +19 -0
  36. package/esm5/public-api.js +2 -1
  37. package/fesm2015/seniorsistemas-angular-components.js +108 -3
  38. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  39. package/fesm5/seniorsistemas-angular-components.js +117 -4
  40. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  41. package/package.json +1 -1
  42. package/public-api.d.ts +1 -0
  43. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -1176,6 +1176,7 @@
1176
1176
  FieldType["Chips"] = "Chips";
1177
1177
  FieldType["Date"] = "Date";
1178
1178
  FieldType["DateTime"] = "DateTime";
1179
+ FieldType["LocalDateTime"] = "LocalDateTime";
1179
1180
  /**
1180
1181
  * @deprecated Should use 'Number' instead
1181
1182
  */
@@ -1277,12 +1278,11 @@
1277
1278
 
1278
1279
  var NumberLocaleOptions = /** @class */ (function () {
1279
1280
  function NumberLocaleOptions(config) {
1280
- var _this = this;
1281
1281
  if (config === void 0) { config = {}; }
1282
1282
  this.thousandsSeparator = ".";
1283
1283
  this.decimalSeparator = ",";
1284
1284
  this.currencySymbol = "R$";
1285
- Object.keys(config).forEach(function (key) { return (_this[key] = config[key] || _this[key]); });
1285
+ Object.assign(this, config);
1286
1286
  }
1287
1287
  return NumberLocaleOptions;
1288
1288
  }());
@@ -2086,6 +2086,7 @@
2086
2086
  return new BooleanField(config);
2087
2087
  case exports.FieldType.Date:
2088
2088
  case exports.FieldType.DateTime:
2089
+ case exports.FieldType.LocalDateTime:
2089
2090
  case exports.FieldType.Time:
2090
2091
  return new CalendarField(config);
2091
2092
  case exports.FieldType.Lookup:
@@ -2538,7 +2539,7 @@
2538
2539
  LookupComponent = LookupComponent_1 = __decorate([
2539
2540
  core.Component({
2540
2541
  selector: "s-lookup",
2541
- 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]=\"true\"\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 >\n <ng-template let-item pTemplate=\"selectedItem\">\n <span class=\"ui-autocomplete-token-label ng-tns-c65-43 ng-star-inserted\" \n [pTooltip]=\"lookupDisplayFieldTooltip ? item[lookupDisplayField] : null\" \n tooltipPosition=\"top\">\n {{item[lookupDisplayField]}}\n </span>\n </ng-template>\n </p-autoComplete>\n\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\n<p-dialog\n appendTo=\"body\"\n styleClass=\"s-lookup-modal\"\n [header]=\"searchTitle\"\n [(visible)]=\"dialogVisible\"\n [modal]=\"true\"\n (onHide)=\"hideDialog()\"\n [blockScroll]=\"true\"\n [focusOnShow]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n #dialog\n>\n <div *ngIf=\"dialogVisible\" class=\"s-lookup-modal-container\">\n <div *ngIf=\"searchFields && searchFields.length\" class=\"filter\"\n [@collapseContent]=\"collapsed \n ? { value: 'hidden', params: { transitionParams: transitionOptions } }\n : { value: 'visible', params: { transitionParams: transitionOptions } }\"\n (@collapseContent.done)=\"onToggleDone()\">\n <form [formGroup]=\"formGroupDialog\" novalidate autocomplete=\"off\">\n <div *ngIf=\"!collapsed\"\n [@childCollapseContent]=\"collapsed\n ? { value: ':leave', params: { transitionParams: transitionOptions } }\n : { value: ':enter', params: { transitionParams: transitionOptions } }\"\n class=\"form-content\">\n <div class=\"filter-title sds-section-title\">{{ filterTitle }}</div>\n <div class=\"form-fields\">\n <s-dynamic-form [fields]=\"searchFields\" [form]=\"formGroupDialog\"></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\"\n (onClick)=\"search()\"\n pTooltip=\"(ALT + SHIFT + F)\"\n showDelay=\"500\"\n ></s-button>\n <s-button\n [id]=\"id + '-clear-button'\"\n type=\"button\"\n [label]=\"clearLabel\"\n (onClick)=\"clear()\"\n priority=\"link\"\n pTooltip=\"(ALT + SHIFT + L)\"\n showDelay=\"500\"\n ></s-button>\n </div>\n </div>\n </div>\n </form> \n </div>\n <div *ngIf=\"searchFields && searchFields.length\" class=\"filter-toggle\">\n <div class=\"filter-toggle--start-border-mask\"></div>\n <button [id]=\"id + '-filter-toggle-button'\" type=\"button\" (click)=\"filterToggle()\">\n <span class=\"fa\" [ngClass]=\"{'fa-chevron-left': !collapsed, 'fa-chevron-right': collapsed}\"\n aria-hidden=\"true\"></span>\n </button>\n <div class=\"filter-toggle--end-border-mask\"></div>\n </div>\n <div class=\"content\" [ngClass]=\"{'empty-content': !searchTotalRecords && !loading}\">\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n *ngIf=\"!searchTotalRecords && !loading\"\n [title]=\"searchEmptyTitle\"\n [description]=\"searchEmptyDescription\"\n iconClass=\"fa fa-search\"\n ></s-empty-state>\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\"\n [multiSortMeta]=\"multiSortMeta\"\n [attr.data-hidden]=\"!searchTotalRecords && !loading\"\n [selectionMode]=\"multiple ? 'multiple' : 'single'\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngIf=\"multiple\" style=\"width: 50px\" />\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\" />\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngIf=\"multiple\" style=\"width: 50px\">\n <s-table-header-checkbox [useAllObject]=\"lookupRowProps ? false : true\" [rowProps]=\"lookupRowProps\"></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 >\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.label }}</span>\n <p-sortIcon [field]=\"col.name\" *ngIf=\"!sortableColumnsDisabled?.includes(col.name)\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns let-rowIndex=\"rowIndex\">\n <tr\n sNavigation\n [pSelectableRow]=\"rowData\"\n [pSelectableRowIndex]=\"rowIndex\"\n sDoubleClick (onDoubleClick)=\"onTableRowDoubleClick(rowData)\"\n >\n <td *ngIf=\"multiple\" style=\"width: 50px\" tabindex=\"0\">\n <p-tableCheckbox [value]=\"rowData\" [pSelectableRow]=\"rowData\"></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 >\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\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\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\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\n <ng-container *ngSwitchCase=\"'Double'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedNumber: getScale(col.scale) | async }} </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Money'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedCurrency | async }} </span>\n </ng-container>\n </ng-container>\n\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\n <ng-container *ngSwitchCase=\"'Enum'\">\n <ng-container\n *ngIf=\"getLabelForValue(getFieldValue(rowData, col.name), col.options); else emptyTemplate\"\n >\n <span> {{ getLabelForValue(getFieldValue(rowData, col.name), col.options) }} </span>\n </ng-container>\n </ng-container>\n\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 {{\n searchTotalRecordsLabel ||\n searchTotalRecords?.toString() + (searchTotalRecords === 1 ? recordLabel : recordsLabel)\n }}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n\n <p-footer>\n <s-button\n [id]=\"id + '-select-button'\"\n type=\"button\"\n [label]=\"selectLabel\"\n (onClick)=\"select()\"\n pTooltip=\"(ALT + SHIFT + S)\"\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\"\n (onClick)=\"hideDialog()\"\n pTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n ></s-button>\n </p-footer>\n</p-dialog>\n\n<ng-template #emptyTemplate>\n <span [ngClass]=\"'sds-empty-value'\">{{ emptyFieldLabel }}</span>\n</ng-template>\n",
2542
+ 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]=\"true\"\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 >\n <ng-template let-item pTemplate=\"selectedItem\">\n <span class=\"ui-autocomplete-token-label ng-tns-c65-43 ng-star-inserted\"\n [pTooltip]=\"lookupDisplayFieldTooltip ? item[lookupDisplayField] : null\"\n tooltipPosition=\"top\">\n {{item[lookupDisplayField]}}\n </span>\n </ng-template>\n </p-autoComplete>\n\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\n<p-dialog\n appendTo=\"body\"\n styleClass=\"s-lookup-modal\"\n [header]=\"searchTitle\"\n [(visible)]=\"dialogVisible\"\n [modal]=\"true\"\n (onHide)=\"hideDialog()\"\n [blockScroll]=\"true\"\n [focusOnShow]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n #dialog\n>\n <div *ngIf=\"dialogVisible\" class=\"s-lookup-modal-container\">\n <div *ngIf=\"searchFields && searchFields.length\" class=\"filter\"\n [@collapseContent]=\"collapsed \n ? { value: 'hidden', params: { transitionParams: transitionOptions } }\n : { value: 'visible', params: { transitionParams: transitionOptions } }\"\n (@collapseContent.done)=\"onToggleDone()\">\n <form [formGroup]=\"formGroupDialog\" novalidate autocomplete=\"off\">\n <div *ngIf=\"!collapsed\"\n [@childCollapseContent]=\"collapsed\n ? { value: ':leave', params: { transitionParams: transitionOptions } }\n : { value: ':enter', params: { transitionParams: transitionOptions } }\"\n class=\"form-content\">\n <div class=\"filter-title sds-section-title\">{{ filterTitle }}</div>\n <div class=\"form-fields\">\n <s-dynamic-form [fields]=\"searchFields\" [form]=\"formGroupDialog\"></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\"\n (onClick)=\"search()\"\n pTooltip=\"(ALT + SHIFT + F)\"\n showDelay=\"500\"\n ></s-button>\n <s-button\n [id]=\"id + '-clear-button'\"\n type=\"button\"\n [label]=\"clearLabel\"\n (onClick)=\"clear()\"\n priority=\"link\"\n pTooltip=\"(ALT + SHIFT + L)\"\n showDelay=\"500\"\n ></s-button>\n </div>\n </div>\n </div>\n </form>\n </div>\n <div *ngIf=\"searchFields && searchFields.length\" class=\"filter-toggle\">\n <div class=\"filter-toggle--start-border-mask\"></div>\n <button [id]=\"id + '-filter-toggle-button'\" type=\"button\" (click)=\"filterToggle()\">\n <span class=\"fa\" [ngClass]=\"{'fa-chevron-left': !collapsed, 'fa-chevron-right': collapsed}\"\n aria-hidden=\"true\"></span>\n </button>\n <div class=\"filter-toggle--end-border-mask\"></div>\n </div>\n <div class=\"content\" [ngClass]=\"{'empty-content': !searchTotalRecords && !loading}\">\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n *ngIf=\"!searchTotalRecords && !loading\"\n [title]=\"searchEmptyTitle\"\n [description]=\"searchEmptyDescription\"\n iconClass=\"fa fa-search\"\n ></s-empty-state>\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\"\n [multiSortMeta]=\"multiSortMeta\"\n [attr.data-hidden]=\"!searchTotalRecords && !loading\"\n [selectionMode]=\"multiple ? 'multiple' : 'single'\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngIf=\"multiple\" style=\"width: 50px\" />\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\" />\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngIf=\"multiple\" style=\"width: 50px\">\n <s-table-header-checkbox [useAllObject]=\"lookupRowProps ? false : true\" [rowProps]=\"lookupRowProps\"></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 >\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.label }}</span>\n <p-sortIcon [field]=\"col.name\" *ngIf=\"!sortableColumnsDisabled?.includes(col.name)\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns let-rowIndex=\"rowIndex\">\n <tr\n sNavigation\n [pSelectableRow]=\"rowData\"\n [pSelectableRowIndex]=\"rowIndex\"\n sDoubleClick (onDoubleClick)=\"onTableRowDoubleClick(rowData)\"\n >\n <td *ngIf=\"multiple\" style=\"width: 50px\" tabindex=\"0\">\n <p-tableCheckbox [value]=\"rowData\" [pSelectableRow]=\"rowData\"></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 >\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\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\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\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\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\n <ng-container *ngSwitchCase=\"'Double'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedNumber: getScale(col.scale) | async }} </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Money'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedCurrency | async }} </span>\n </ng-container>\n </ng-container>\n\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\n <ng-container *ngSwitchCase=\"'Enum'\">\n <ng-container\n *ngIf=\"getLabelForValue(getFieldValue(rowData, col.name), col.options); else emptyTemplate\"\n >\n <span> {{ getLabelForValue(getFieldValue(rowData, col.name), col.options) }} </span>\n </ng-container>\n </ng-container>\n\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 {{\n searchTotalRecordsLabel ||\n searchTotalRecords?.toString() + (searchTotalRecords === 1 ? recordLabel : recordsLabel)\n }}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n\n <p-footer>\n <s-button\n [id]=\"id + '-select-button'\"\n type=\"button\"\n [label]=\"selectLabel\"\n (onClick)=\"select()\"\n pTooltip=\"(ALT + SHIFT + S)\"\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\"\n (onClick)=\"hideDialog()\"\n pTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n ></s-button>\n </p-footer>\n</p-dialog>\n\n<ng-template #emptyTemplate>\n <span [ngClass]=\"'sds-empty-value'\">{{ emptyFieldLabel }}</span>\n</ng-template>\n",
2542
2543
  providers: [
2543
2544
  {
2544
2545
  provide: forms.NG_VALUE_ACCESSOR,
@@ -2594,6 +2595,7 @@
2594
2595
  DynamicType["Chips"] = "Chips";
2595
2596
  DynamicType["Date"] = "Date";
2596
2597
  DynamicType["DateTime"] = "DateTime";
2598
+ DynamicType["LocalDateTime"] = "LocalDateTime";
2597
2599
  DynamicType["Double"] = "Double";
2598
2600
  DynamicType["Enum"] = "Enum";
2599
2601
  DynamicType["Fieldset"] = "Fieldset";
@@ -2664,6 +2666,7 @@
2664
2666
  return new ChipsField(config);
2665
2667
  case exports.DynamicType.Date:
2666
2668
  case exports.DynamicType.DateTime:
2669
+ case exports.DynamicType.LocalDateTime:
2667
2670
  case exports.DynamicType.Time:
2668
2671
  return new CalendarField(config);
2669
2672
  case exports.DynamicType.Double:
@@ -5168,6 +5171,10 @@
5168
5171
  component.instance.showTime = true;
5169
5172
  component.instance.showSeconds = true;
5170
5173
  break;
5174
+ case exports.FieldType.LocalDateTime:
5175
+ component.instance.showTime = true;
5176
+ component.instance.showSeconds = true;
5177
+ break;
5171
5178
  case exports.FieldType.Time:
5172
5179
  component.instance.timeOnly = true;
5173
5180
  component.instance.showSeconds = true;
@@ -5192,6 +5199,7 @@
5192
5199
  return ChipsFieldComponent;
5193
5200
  case exports.FieldType.Date:
5194
5201
  case exports.FieldType.DateTime:
5202
+ case exports.FieldType.LocalDateTime:
5195
5203
  case exports.FieldType.Time:
5196
5204
  return CalendarFieldComponent;
5197
5205
  case exports.FieldType.Double:
@@ -5594,6 +5602,7 @@
5594
5602
  CustomFieldType["Double"] = "Double";
5595
5603
  CustomFieldType["Date"] = "Date";
5596
5604
  CustomFieldType["DateTime"] = "DateTime";
5605
+ CustomFieldType["LocalDateTime"] = "LocalDateTime";
5597
5606
  CustomFieldType["Time"] = "Time";
5598
5607
  CustomFieldType["Money"] = "Money";
5599
5608
  CustomFieldType["Blob"] = "Blob";
@@ -5670,6 +5679,7 @@
5670
5679
  defaults[CustomFieldType.Money] = {};
5671
5680
  defaults[CustomFieldType.Date] = {};
5672
5681
  defaults[CustomFieldType.DateTime] = {};
5682
+ defaults[CustomFieldType.LocalDateTime] = {};
5673
5683
  defaults[CustomFieldType.Time] = {};
5674
5684
  defaults[CustomFieldType.Blob] = {};
5675
5685
  defaults[CustomFieldType.Enum] = {};
@@ -5693,6 +5703,7 @@
5693
5703
  CustomFieldType.Money,
5694
5704
  CustomFieldType.Date,
5695
5705
  CustomFieldType.DateTime,
5706
+ CustomFieldType.LocalDateTime,
5696
5707
  CustomFieldType.Time
5697
5708
  ];
5698
5709
  var validators = [];
@@ -5763,6 +5774,9 @@
5763
5774
  case exports.FieldType.DateTime:
5764
5775
  parsedValues[name] = moment$3(value).toDate();
5765
5776
  break;
5777
+ case exports.FieldType.LocalDateTime:
5778
+ parsedValues[name] = moment$3(value, "YYYY-MM-DD[T]HH:mm:ss.SSS").toDate();
5779
+ break;
5766
5780
  case exports.FieldType.Time:
5767
5781
  parsedValues[name] = moment$3(value, "HH:mm:ss").toDate();
5768
5782
  break;
@@ -5802,6 +5816,9 @@
5802
5816
  case exports.FieldType.DateTime:
5803
5817
  value = moment$3(value).format();
5804
5818
  break;
5819
+ case exports.FieldType.LocalDateTime:
5820
+ value = moment$3(value).format("YYYY-MM-DD[T]HH:mm:ss.SSS");
5821
+ break;
5805
5822
  case exports.FieldType.Time:
5806
5823
  value = moment$3(value).format("HH:mm:ss");
5807
5824
  break;
@@ -7324,6 +7341,100 @@
7324
7341
  return StepsModule;
7325
7342
  }());
7326
7343
 
7344
+ var TimelineComponent = /** @class */ (function () {
7345
+ function TimelineComponent() {
7346
+ this.id = "s-timeline-" + TimelineComponent_1.nextId++;
7347
+ this.activeIndex = 0;
7348
+ }
7349
+ TimelineComponent_1 = TimelineComponent;
7350
+ TimelineComponent.prototype.barAnimation = function (index, activeIndex) {
7351
+ var visited = index < activeIndex;
7352
+ var activated = index === activeIndex;
7353
+ return visited || activated;
7354
+ };
7355
+ TimelineComponent.prototype.afterBarAnimation = function (index, activeIndex) {
7356
+ var visited = index < activeIndex;
7357
+ var activated = index === activeIndex - 1;
7358
+ return visited || activated;
7359
+ };
7360
+ Object.defineProperty(TimelineComponent.prototype, "visibledStep", {
7361
+ get: function () {
7362
+ return this.steps.filter(function (step) { return !step.hidden; });
7363
+ },
7364
+ enumerable: true,
7365
+ configurable: true
7366
+ });
7367
+ var TimelineComponent_1;
7368
+ TimelineComponent.nextId = 0;
7369
+ __decorate([
7370
+ core.Input()
7371
+ ], TimelineComponent.prototype, "id", void 0);
7372
+ __decorate([
7373
+ core.Input()
7374
+ ], TimelineComponent.prototype, "steps", void 0);
7375
+ __decorate([
7376
+ core.Input()
7377
+ ], TimelineComponent.prototype, "activeIndex", void 0);
7378
+ TimelineComponent = TimelineComponent_1 = __decorate([
7379
+ core.Component({
7380
+ selector: "s-timeline",
7381
+ template: "<div [id]=\"id\" class=\"s-timeline-container\">\n <ng-container *ngFor=\"let step of visibledStep; let i = index; let isFirst = first; let isLast = last\">\n <div *ngIf=\"!isFirst\" class=\"s-timeline-progress-bar\"\n [@activeDesative]=\"barAnimation(i, activeIndex) ? 'active': 'desactive'\" [ngClass]=\"{\n 's-timeline-step-completed': (i < activeIndex),\n 's-timeline-step-active': (i === activeIndex)\n }\"></div>\n <div [id]=\"id + '-step-' + (step.id || i)\" class=\"s-timeline-step-header\" role=\"tab\"\n tabindex=\"0\" [attr.aria-label]=\"step.ariaLabel || null\" [attr.aria-controls]=\"step.ariaControls\"\n [attr.aria-labelledby]=\"!step.ariaLabel ? 'step-label-' + i : null\" [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"visibledStep.length\" [attr.aria-selected]=\"activeIndex == i\" [ngClass]=\"{\n 's-timeline-step-completed': (i < activeIndex),\n 's-timeline-step-active': (i === activeIndex)\n }\">\n <div *ngIf=\"!isFirst\"\n [@beforeActiveDesative]=\"barAnimation(i, activeIndex) ? 'active': 'desactive'\"\n class=\"s-timeline-progress-bar-before\" [ngClass]=\"{\n 's-timeline-step-completed': (i < activeIndex),\n 's-timeline-step-active': (i === activeIndex)\n }\"></div>\n <div *ngIf=\"!isLast\"\n [@afterActiveDesative]=\"afterBarAnimation(i, activeIndex) ? 'active': 'desactive'\"\n class=\"s-timeline-progress-bar-after\" [ngClass]=\"{\n 's-timeline-step-completed': ((i + 1) < activeIndex),\n 's-timeline-step-active': (i === (activeIndex - 1))\n }\"></div>\n <div class=\"s-timeline-index\">\n <div class=\"s-timeline-index-content\">\n <span class=\"fas\" [ngClass]=\"step.stepIcon\" aria-hidden=\"true\" [attr.aria-label]=\"i + 1\"></span>\n </div>\n </div>\n <div [id]=\"'step-label-' + i\" class=\"s-timeline-label\">\n <span>{{step.label}}</span>\n </div>\n <div [id]=\"'step-help-label-' + i\" class=\"s-timeline-help-label\">\n <span>{{step.helpLabel}}</span>\n </div>\n </div>\n </ng-container>\n</div>\n",
7382
+ host: {
7383
+ "aria-orientation": "horizontal",
7384
+ role: "tablist",
7385
+ "tab-index": "0",
7386
+ },
7387
+ animations: [
7388
+ animations.trigger("beforeActiveDesative", [
7389
+ animations.state("active", animations.style({
7390
+ "background-position": "left bottom",
7391
+ })),
7392
+ animations.state("desactive", animations.style({
7393
+ "background-position": "right bottom",
7394
+ })),
7395
+ animations.transition("active => desactive", [animations.animate("50ms 100ms linear")]),
7396
+ animations.transition("desactive => active", [animations.animate("50ms 250ms linear")]),
7397
+ ]),
7398
+ animations.trigger("activeDesative", [
7399
+ animations.state("active", animations.style({
7400
+ "background-position": "left bottom",
7401
+ })),
7402
+ animations.state("desactive", animations.style({
7403
+ "background-position": "right bottom",
7404
+ })),
7405
+ animations.transition("active => desactive", [animations.animate("100ms 150ms linear")]),
7406
+ animations.transition("desactive => active", [animations.animate("100ms 150ms linear")]),
7407
+ ]),
7408
+ animations.trigger("afterActiveDesative", [
7409
+ animations.state("active", animations.style({
7410
+ "background-position": "left bottom",
7411
+ })),
7412
+ animations.state("desactive", animations.style({
7413
+ "background-position": "right bottom",
7414
+ })),
7415
+ animations.transition("active => desactive", [animations.animate("50ms 250ms linear")]),
7416
+ animations.transition("desactive => active", [animations.animate("50ms 100ms linear")]),
7417
+ ]),
7418
+ ],
7419
+ styles: ["@keyframes scale-up-center{0%{transform:scale(.5)}100%{transform:scale(1)}}.s-timeline-container{display:-ms-flexbox;display:flex;white-space:nowrap;-ms-flex-align:start;align-items:flex-start;overflow:hidden;padding:15px 10px}.s-timeline-step-header{box-sizing:border-box;-ms-flex-direction:column;flex-direction:column;height:auto;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:72px;max-height:98px;min-width:60px;width:100%}.s-timeline-step-header .s-timeline-help-label,.s-timeline-step-header .s-timeline-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all;color:#999;font-size:14px;font-weight:400;padding-top:5px}.s-timeline-step-header .s-timeline-progress-bar-before{margin:0;position:absolute;top:20px;-ms-flex:auto;flex:auto;height:3px;overflow:hidden;width:calc(50% - 20px);background-color:#697882;background-image:linear-gradient(to right,#0c9348 50%,#697882 50%);background-position:right bottom;background-size:300% 100%;left:-10px}.s-timeline-step-header .s-timeline-progress-bar-before.s-timeline-step-active,.s-timeline-step-header .s-timeline-progress-bar-before.s-timeline-step-completed{background-position:left bottom}.s-timeline-step-header .s-timeline-progress-bar-after{margin:0;position:absolute;top:20px;-ms-flex:auto;flex:auto;height:3px;overflow:hidden;width:calc(50% - 20px);background-color:#697882;background-image:linear-gradient(to right,#0c9348 50%,#697882 50%);background-position:right bottom;background-size:300% 100%;right:-10px}.s-timeline-step-header .s-timeline-progress-bar-after.s-timeline-step-active,.s-timeline-step-header .s-timeline-progress-bar-after.s-timeline-step-completed{background-position:left bottom}.s-timeline-progress-bar{margin:0;position:relative;top:20px;-ms-flex:auto;flex:auto;height:3px;overflow:hidden;width:100%;background-color:#697882;background-image:linear-gradient(to right,#0c9348 50%,#697882 50%);background-position:right bottom;background-size:300% 100%}.s-timeline-index{background-color:#697882;border:3px solid #697882;border-radius:50%;color:#fff;display:inline-block;font-weight:700;position:relative;transition:background-color .2s ease-out;height:46px;width:46px;-ms-flex:none;flex:none}.s-timeline-index .s-timeline-index-content{line-height:18px;font-size:18px;padding-top:8.5px;text-align:center;position:relative}.s-timeline-step-active .s-timeline-index,.s-timeline-step-completed .s-timeline-index{border-color:#0c9348;animation:.1s ease-out alternate scale-up-center;background-color:#0c9348}.s-timeline-step-active.s-timeline-progress-bar,.s-timeline-step-completed.s-timeline-progress-bar{background-position:left bottom}.s-timeline-step-active .s-timeline-label,.s-timeline-step-completed .s-timeline-label{color:#333;font-weight:700}@media (max-width:767px){.s-timeline-help-label,.s-timeline-label{display:none}}"]
7420
+ })
7421
+ ], TimelineComponent);
7422
+ return TimelineComponent;
7423
+ }());
7424
+
7425
+ var TimelineModule = /** @class */ (function () {
7426
+ function TimelineModule() {
7427
+ }
7428
+ TimelineModule = __decorate([
7429
+ core.NgModule({
7430
+ imports: [common.CommonModule, tooltip.TooltipModule],
7431
+ declarations: [TimelineComponent],
7432
+ exports: [TimelineComponent],
7433
+ })
7434
+ ], TimelineModule);
7435
+ return TimelineModule;
7436
+ }());
7437
+
7327
7438
  var TileComponent = /** @class */ (function () {
7328
7439
  function TileComponent() {
7329
7440
  this.id = "s-tile-" + TileComponent_1.nextId++;
@@ -7942,6 +8053,8 @@
7942
8053
  MetaType["DATE"] = "DATE";
7943
8054
  // DateTime
7944
8055
  MetaType["DATETIME"] = "DATETIME";
8056
+ // DateTime
8057
+ MetaType["LOCALDATETIME"] = "LOCALDATETIME";
7945
8058
  // Time
7946
8059
  MetaType["TIME"] = "TIME";
7947
8060
  // Boolean
@@ -9297,6 +9410,8 @@
9297
9410
  exports.ThumbnailModule = ThumbnailModule;
9298
9411
  exports.TileComponent = TileComponent;
9299
9412
  exports.TileModule = TileModule;
9413
+ exports.TimelineComponent = TimelineComponent;
9414
+ exports.TimelineModule = TimelineModule;
9300
9415
  exports.TokenListComponent = TokenListComponent;
9301
9416
  exports.TokenListModule = TokenListModule;
9302
9417
  exports.ɵa = LocalizedCurrencyImpurePipe;