@seniorsistemas/angular-components 14.14.0 → 14.14.3

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 +81 -7
  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/components/lookup/lookup.component.d.ts +2 -0
  7. package/components/dynamic-form/configurations/dynamic-type.d.ts +1 -0
  8. package/components/dynamic-form/configurations/field-type.d.ts +1 -0
  9. package/components/locale/options/index.d.ts +9 -0
  10. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.js +3 -1
  11. package/esm2015/components/custom-fields/custom-fields.component.js +10 -1
  12. package/esm2015/components/dynamic-form/components/lookup/lookup.component.js +50 -3
  13. package/esm2015/components/dynamic-form/configurations/dynamic-config.js +2 -1
  14. package/esm2015/components/dynamic-form/configurations/dynamic-type.js +2 -1
  15. package/esm2015/components/dynamic-form/configurations/field-type.js +2 -1
  16. package/esm2015/components/dynamic-form/configurations/fields/bignumber-field.js +3 -3
  17. package/esm2015/components/dynamic-form/configurations/fields/calendar-field.js +3 -3
  18. package/esm2015/components/dynamic-form/configurations/fields/currency-field.js +3 -3
  19. package/esm2015/components/dynamic-form/configurations/fields/decimal-field.js +3 -3
  20. package/esm2015/components/dynamic-form/configurations/fields/number-field.js +3 -3
  21. package/esm2015/components/dynamic-form/configurations/form-field.js +2 -1
  22. package/esm2015/components/dynamic-form/dynamic-form.js +6 -1
  23. package/esm2015/components/locale/options/index.js +10 -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 +50 -3
  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/fields/bignumber-field.js +3 -3
  31. package/esm5/components/dynamic-form/configurations/fields/calendar-field.js +3 -3
  32. package/esm5/components/dynamic-form/configurations/fields/currency-field.js +3 -3
  33. package/esm5/components/dynamic-form/configurations/fields/decimal-field.js +3 -3
  34. package/esm5/components/dynamic-form/configurations/fields/number-field.js +3 -3
  35. package/esm5/components/dynamic-form/configurations/form-field.js +2 -1
  36. package/esm5/components/dynamic-form/dynamic-form.js +6 -1
  37. package/esm5/components/locale/options/index.js +10 -1
  38. package/fesm2015/seniorsistemas-angular-components.js +81 -7
  39. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  40. package/fesm5/seniorsistemas-angular-components.js +81 -7
  41. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  42. package/package.json +1 -1
  43. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -1002,6 +1002,7 @@ var FieldType;
1002
1002
  FieldType["Chips"] = "Chips";
1003
1003
  FieldType["Date"] = "Date";
1004
1004
  FieldType["DateTime"] = "DateTime";
1005
+ FieldType["LocalDateTime"] = "LocalDateTime";
1005
1006
  /**
1006
1007
  * @deprecated Should use 'Number' instead
1007
1008
  */
@@ -1123,8 +1124,17 @@ var LocaleOptions = /** @class */ (function () {
1123
1124
  }
1124
1125
  return LocaleOptions;
1125
1126
  }());
1127
+ /**
1128
+ * @deprecated
1129
+ */
1126
1130
  var DEFAULT_CALENDAR_LOCALE_OPTIONS = new CalendarLocaleOptions();
1131
+ /**
1132
+ * @deprecated
1133
+ */
1127
1134
  var DEFAULT_NUMBER_LOCALE_OPTIONS = new NumberLocaleOptions();
1135
+ /**
1136
+ * @deprecated
1137
+ */
1128
1138
  var DEFAULT_LOCALE_OPTIONS = new LocaleOptions();
1129
1139
 
1130
1140
  var moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670
@@ -1458,7 +1468,7 @@ var BignumberField = /** @class */ (function (_super) {
1458
1468
  function BignumberField(config) {
1459
1469
  var _a;
1460
1470
  var _this = _super.call(this, config) || this;
1461
- _this.numberLocaleOptions = config.numberLocaleOptions || DEFAULT_NUMBER_LOCALE_OPTIONS;
1471
+ _this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();
1462
1472
  _this.browserAutocomplete = config.browserAutocomplete;
1463
1473
  _this.precision = config.precision;
1464
1474
  _this.scale = (_a = config.scale) !== null && _a !== void 0 ? _a : 2;
@@ -1526,7 +1536,7 @@ var CalendarField = /** @class */ (function (_super) {
1526
1536
  _this.maxDate = config.maxDate;
1527
1537
  _this.appendTo = config.appendTo;
1528
1538
  _this.showOnFocus = typeof config.showOnFocus === "boolean" ? config.showOnFocus : true;
1529
- _this.calendarLocaleOptions = config.calendarLocaleOptions || DEFAULT_CALENDAR_LOCALE_OPTIONS;
1539
+ _this.calendarLocaleOptions = config.calendarLocaleOptions || new CalendarLocaleOptions();
1530
1540
  _this.onBlur = config.onBlur;
1531
1541
  _this.onFocus = config.onFocus;
1532
1542
  _this.onSelect = config.onSelect;
@@ -1705,7 +1715,7 @@ var NumberField = /** @class */ (function (_super) {
1705
1715
  __extends(NumberField, _super);
1706
1716
  function NumberField(config) {
1707
1717
  var _this = _super.call(this, config) || this;
1708
- _this.numberLocaleOptions = config.numberLocaleOptions || DEFAULT_NUMBER_LOCALE_OPTIONS;
1718
+ _this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();
1709
1719
  _this.browserAutocomplete = config.browserAutocomplete;
1710
1720
  _this.precision = config.precision;
1711
1721
  _this.alignTo = config.alignTo || NumberAlignmentOption.LEFT;
@@ -1728,7 +1738,7 @@ var DecimalField = /** @class */ (function (_super) {
1728
1738
  __extends(DecimalField, _super);
1729
1739
  function DecimalField(config) {
1730
1740
  var _this = _super.call(this, config) || this;
1731
- _this.numberLocaleOptions = config.numberLocaleOptions || DEFAULT_NUMBER_LOCALE_OPTIONS;
1741
+ _this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();
1732
1742
  _this.alignTo = config.alignTo || NumberAlignmentOption.RIGHT;
1733
1743
  _this.scale = config.scale || config.scale === 0 ? config.scale : 2;
1734
1744
  return _this;
@@ -1743,7 +1753,7 @@ var CurrencyField = /** @class */ (function (_super) {
1743
1753
  __extends(CurrencyField, _super);
1744
1754
  function CurrencyField(config) {
1745
1755
  var _this = _super.call(this, config) || this;
1746
- _this.numberLocaleOptions = config.numberLocaleOptions || DEFAULT_NUMBER_LOCALE_OPTIONS;
1756
+ _this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();
1747
1757
  return _this;
1748
1758
  }
1749
1759
  return CurrencyField;
@@ -1903,6 +1913,7 @@ var FormField = /** @class */ (function () {
1903
1913
  return new BooleanField(config);
1904
1914
  case FieldType.Date:
1905
1915
  case FieldType.DateTime:
1916
+ case FieldType.LocalDateTime:
1906
1917
  case FieldType.Time:
1907
1918
  return new CalendarField(config);
1908
1919
  case FieldType.Lookup:
@@ -1964,9 +1975,24 @@ var LookupComponent = /** @class */ (function () {
1964
1975
  LookupComponent_1 = LookupComponent;
1965
1976
  LookupComponent.prototype.ngOnInit = function () {
1966
1977
  var _this = this;
1978
+ if (!this.searchGridFields) {
1979
+ this.searchGridFields = this.searchFields.map(function (item) { return new FormField(__assign({}, item)); });
1980
+ }
1967
1981
  this.searchFields = this.searchFields.map(function (value) { return new FormField(__assign(__assign({}, value), { size: { sm: 12, md: 12, lg: 12, xl: 12 } })); });
1968
- this.searchGridFields = (this.searchGridFields || this.searchFields).map(function (gridField) {
1982
+ this.searchGridFields = this.searchGridFields.map(function (gridField) {
1969
1983
  gridField["width"] = _this.getColWidth(gridField.label);
1984
+ var calendarOptions = new CalendarLocaleOptions(__assign({}, gridField.calendarLocaleOptions));
1985
+ if (calendarOptions === null || calendarOptions === void 0 ? void 0 : calendarOptions.dateFormat) {
1986
+ switch (gridField.type) {
1987
+ case FieldType.Date:
1988
+ calendarOptions.dateFormat = _this._convertToMomentDateFormat(calendarOptions.dateFormat);
1989
+ break;
1990
+ case FieldType.Time:
1991
+ calendarOptions.dateFormat = _this._convertToMomentHourFormat(calendarOptions.hourFormat, calendarOptions.dateFormat);
1992
+ break;
1993
+ }
1994
+ gridField.calendarLocaleOptions = calendarOptions;
1995
+ }
1970
1996
  return gridField;
1971
1997
  });
1972
1998
  var formGroup = this.searchFields.reduce(function (result, field) {
@@ -1992,6 +2018,36 @@ var LookupComponent = /** @class */ (function () {
1992
2018
  _this.onChange(newValue);
1993
2019
  });
1994
2020
  };
2021
+ LookupComponent.prototype._convertToMomentHourFormat = function (hourFormat, format) {
2022
+ if (format === "dd/mm/yy") { // valor padrão para o format.
2023
+ return "LTS";
2024
+ }
2025
+ if (hourFormat === "12") {
2026
+ return format
2027
+ .replace(/\bH\b/, "h") // hour (12 hour time) (no leading zero)
2028
+ .replace(/\bHH\b/, "hh"); // hour (12 hour time)
2029
+ }
2030
+ if (hourFormat === "24") {
2031
+ return format
2032
+ .replace(/\bh\b/, "H") // hour (24 hour time) (no leading zero)
2033
+ .replace(/\bhh\b/, "HH"); // hour (24 hour time)
2034
+ }
2035
+ return format;
2036
+ };
2037
+ LookupComponent.prototype._convertToMomentDateFormat = function (format) {
2038
+ // A ordem dos replaces é importante.
2039
+ return format
2040
+ .replace(/\bd\b/, "D") // day of month (no leading zero)
2041
+ .replace(/\bdd\b/, "DD") // day of month
2042
+ .replace(/\bo\b/, "DDD") // day of the year (no leading zero)
2043
+ .replace(/\boo\b/, "DDDD") // day of the year
2044
+ .replace(/\bM\b/, "MMM") // month name short
2045
+ .replace(/\bMM\b/, "MMMM") // month name long
2046
+ .replace(/\bm\b/, "M") // month of year (no leading)
2047
+ .replace(/\bmm\b/, "MM") // month of year
2048
+ .replace(/\by\b/, "YY") // year (two digits)
2049
+ .replace(/\byy\b/, "YYYY"); // year (four digits)
2050
+ };
1995
2051
  LookupComponent.prototype.ngAfterViewInit = function () {
1996
2052
  this.autocomplete.onOverlayAnimationDone = function (event) { };
1997
2053
  };
@@ -2310,7 +2366,7 @@ var LookupComponent = /** @class */ (function () {
2310
2366
  LookupComponent = LookupComponent_1 = __decorate([
2311
2367
  Component({
2312
2368
  selector: "s-lookup",
2313
- 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 ? {value: 'hidden', params: {transitionParams: transitionOptions }} : {value: 'visible', params: {transitionParams: transitionOptions}}\"\n (@collapseContent.done)=\"onToggleDone()\">\n <form [formGroup]=\"formGroupDialog\" novalidate autocomplete=\"off\">\n <div *ngIf=\"!collapsed\"\n [@childCollapseContent]=\"collapsed ? {value: ':leave', params: {transitionParams: transitionOptions }} : {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",
2369
+ 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",
2314
2370
  providers: [
2315
2371
  {
2316
2372
  provide: NG_VALUE_ACCESSOR,
@@ -2366,6 +2422,7 @@ var DynamicType;
2366
2422
  DynamicType["Chips"] = "Chips";
2367
2423
  DynamicType["Date"] = "Date";
2368
2424
  DynamicType["DateTime"] = "DateTime";
2425
+ DynamicType["LocalDateTime"] = "LocalDateTime";
2369
2426
  DynamicType["Double"] = "Double";
2370
2427
  DynamicType["Enum"] = "Enum";
2371
2428
  DynamicType["Fieldset"] = "Fieldset";
@@ -2436,6 +2493,7 @@ var DynamicConfig = /** @class */ (function () {
2436
2493
  return new ChipsField(config);
2437
2494
  case DynamicType.Date:
2438
2495
  case DynamicType.DateTime:
2496
+ case DynamicType.LocalDateTime:
2439
2497
  case DynamicType.Time:
2440
2498
  return new CalendarField(config);
2441
2499
  case DynamicType.Double:
@@ -4940,6 +4998,10 @@ var DynamicField = /** @class */ (function (_super) {
4940
4998
  component.instance.showTime = true;
4941
4999
  component.instance.showSeconds = true;
4942
5000
  break;
5001
+ case FieldType.LocalDateTime:
5002
+ component.instance.showTime = true;
5003
+ component.instance.showSeconds = true;
5004
+ break;
4943
5005
  case FieldType.Time:
4944
5006
  component.instance.timeOnly = true;
4945
5007
  component.instance.showSeconds = true;
@@ -4964,6 +5026,7 @@ var DynamicField = /** @class */ (function (_super) {
4964
5026
  return ChipsFieldComponent;
4965
5027
  case FieldType.Date:
4966
5028
  case FieldType.DateTime:
5029
+ case FieldType.LocalDateTime:
4967
5030
  case FieldType.Time:
4968
5031
  return CalendarFieldComponent;
4969
5032
  case FieldType.Double:
@@ -5366,6 +5429,7 @@ var CustomFieldType;
5366
5429
  CustomFieldType["Double"] = "Double";
5367
5430
  CustomFieldType["Date"] = "Date";
5368
5431
  CustomFieldType["DateTime"] = "DateTime";
5432
+ CustomFieldType["LocalDateTime"] = "LocalDateTime";
5369
5433
  CustomFieldType["Time"] = "Time";
5370
5434
  CustomFieldType["Money"] = "Money";
5371
5435
  CustomFieldType["Blob"] = "Blob";
@@ -5442,6 +5506,7 @@ var CustomFieldsComponent = /** @class */ (function () {
5442
5506
  defaults[CustomFieldType.Money] = {};
5443
5507
  defaults[CustomFieldType.Date] = {};
5444
5508
  defaults[CustomFieldType.DateTime] = {};
5509
+ defaults[CustomFieldType.LocalDateTime] = {};
5445
5510
  defaults[CustomFieldType.Time] = {};
5446
5511
  defaults[CustomFieldType.Blob] = {};
5447
5512
  defaults[CustomFieldType.Enum] = {};
@@ -5465,6 +5530,7 @@ var CustomFieldsComponent = /** @class */ (function () {
5465
5530
  CustomFieldType.Money,
5466
5531
  CustomFieldType.Date,
5467
5532
  CustomFieldType.DateTime,
5533
+ CustomFieldType.LocalDateTime,
5468
5534
  CustomFieldType.Time
5469
5535
  ];
5470
5536
  var validators = [];
@@ -5535,6 +5601,9 @@ var CustomFieldsComponent = /** @class */ (function () {
5535
5601
  case FieldType.DateTime:
5536
5602
  parsedValues[name] = moment$3(value).toDate();
5537
5603
  break;
5604
+ case FieldType.LocalDateTime:
5605
+ parsedValues[name] = moment$3(value, "YYYY-MM-DD[T]HH:mm:ss.SSS").toDate();
5606
+ break;
5538
5607
  case FieldType.Time:
5539
5608
  parsedValues[name] = moment$3(value, "HH:mm:ss").toDate();
5540
5609
  break;
@@ -5574,6 +5643,9 @@ var CustomFieldsComponent = /** @class */ (function () {
5574
5643
  case FieldType.DateTime:
5575
5644
  value = moment$3(value).format();
5576
5645
  break;
5646
+ case FieldType.LocalDateTime:
5647
+ value = moment$3(value).format("YYYY-MM-DD[T]HH:mm:ss.SSS");
5648
+ break;
5577
5649
  case FieldType.Time:
5578
5650
  value = moment$3(value).format("HH:mm:ss");
5579
5651
  break;
@@ -7714,6 +7786,8 @@ var MetaType;
7714
7786
  MetaType["DATE"] = "DATE";
7715
7787
  // DateTime
7716
7788
  MetaType["DATETIME"] = "DATETIME";
7789
+ // DateTime
7790
+ MetaType["LOCALDATETIME"] = "LOCALDATETIME";
7717
7791
  // Time
7718
7792
  MetaType["TIME"] = "TIME";
7719
7793
  // Boolean