@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
@@ -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
  */
@@ -1297,8 +1298,17 @@
1297
1298
  }
1298
1299
  return LocaleOptions;
1299
1300
  }());
1301
+ /**
1302
+ * @deprecated
1303
+ */
1300
1304
  var DEFAULT_CALENDAR_LOCALE_OPTIONS = new CalendarLocaleOptions();
1305
+ /**
1306
+ * @deprecated
1307
+ */
1301
1308
  var DEFAULT_NUMBER_LOCALE_OPTIONS = new NumberLocaleOptions();
1309
+ /**
1310
+ * @deprecated
1311
+ */
1302
1312
  var DEFAULT_LOCALE_OPTIONS = new LocaleOptions();
1303
1313
 
1304
1314
  var moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670
@@ -1632,7 +1642,7 @@
1632
1642
  function BignumberField(config) {
1633
1643
  var _a;
1634
1644
  var _this = _super.call(this, config) || this;
1635
- _this.numberLocaleOptions = config.numberLocaleOptions || DEFAULT_NUMBER_LOCALE_OPTIONS;
1645
+ _this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();
1636
1646
  _this.browserAutocomplete = config.browserAutocomplete;
1637
1647
  _this.precision = config.precision;
1638
1648
  _this.scale = (_a = config.scale) !== null && _a !== void 0 ? _a : 2;
@@ -1700,7 +1710,7 @@
1700
1710
  _this.maxDate = config.maxDate;
1701
1711
  _this.appendTo = config.appendTo;
1702
1712
  _this.showOnFocus = typeof config.showOnFocus === "boolean" ? config.showOnFocus : true;
1703
- _this.calendarLocaleOptions = config.calendarLocaleOptions || DEFAULT_CALENDAR_LOCALE_OPTIONS;
1713
+ _this.calendarLocaleOptions = config.calendarLocaleOptions || new CalendarLocaleOptions();
1704
1714
  _this.onBlur = config.onBlur;
1705
1715
  _this.onFocus = config.onFocus;
1706
1716
  _this.onSelect = config.onSelect;
@@ -1879,7 +1889,7 @@
1879
1889
  __extends(NumberField, _super);
1880
1890
  function NumberField(config) {
1881
1891
  var _this = _super.call(this, config) || this;
1882
- _this.numberLocaleOptions = config.numberLocaleOptions || DEFAULT_NUMBER_LOCALE_OPTIONS;
1892
+ _this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();
1883
1893
  _this.browserAutocomplete = config.browserAutocomplete;
1884
1894
  _this.precision = config.precision;
1885
1895
  _this.alignTo = config.alignTo || exports.NumberAlignmentOption.LEFT;
@@ -1902,7 +1912,7 @@
1902
1912
  __extends(DecimalField, _super);
1903
1913
  function DecimalField(config) {
1904
1914
  var _this = _super.call(this, config) || this;
1905
- _this.numberLocaleOptions = config.numberLocaleOptions || DEFAULT_NUMBER_LOCALE_OPTIONS;
1915
+ _this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();
1906
1916
  _this.alignTo = config.alignTo || exports.NumberAlignmentOption.RIGHT;
1907
1917
  _this.scale = config.scale || config.scale === 0 ? config.scale : 2;
1908
1918
  return _this;
@@ -1917,7 +1927,7 @@
1917
1927
  __extends(CurrencyField, _super);
1918
1928
  function CurrencyField(config) {
1919
1929
  var _this = _super.call(this, config) || this;
1920
- _this.numberLocaleOptions = config.numberLocaleOptions || DEFAULT_NUMBER_LOCALE_OPTIONS;
1930
+ _this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();
1921
1931
  return _this;
1922
1932
  }
1923
1933
  return CurrencyField;
@@ -2077,6 +2087,7 @@
2077
2087
  return new BooleanField(config);
2078
2088
  case exports.FieldType.Date:
2079
2089
  case exports.FieldType.DateTime:
2090
+ case exports.FieldType.LocalDateTime:
2080
2091
  case exports.FieldType.Time:
2081
2092
  return new CalendarField(config);
2082
2093
  case exports.FieldType.Lookup:
@@ -2138,9 +2149,24 @@
2138
2149
  LookupComponent_1 = LookupComponent;
2139
2150
  LookupComponent.prototype.ngOnInit = function () {
2140
2151
  var _this = this;
2152
+ if (!this.searchGridFields) {
2153
+ this.searchGridFields = this.searchFields.map(function (item) { return new FormField(__assign({}, item)); });
2154
+ }
2141
2155
  this.searchFields = this.searchFields.map(function (value) { return new FormField(__assign(__assign({}, value), { size: { sm: 12, md: 12, lg: 12, xl: 12 } })); });
2142
- this.searchGridFields = (this.searchGridFields || this.searchFields).map(function (gridField) {
2156
+ this.searchGridFields = this.searchGridFields.map(function (gridField) {
2143
2157
  gridField["width"] = _this.getColWidth(gridField.label);
2158
+ var calendarOptions = new CalendarLocaleOptions(__assign({}, gridField.calendarLocaleOptions));
2159
+ if (calendarOptions === null || calendarOptions === void 0 ? void 0 : calendarOptions.dateFormat) {
2160
+ switch (gridField.type) {
2161
+ case exports.FieldType.Date:
2162
+ calendarOptions.dateFormat = _this._convertToMomentDateFormat(calendarOptions.dateFormat);
2163
+ break;
2164
+ case exports.FieldType.Time:
2165
+ calendarOptions.dateFormat = _this._convertToMomentHourFormat(calendarOptions.hourFormat, calendarOptions.dateFormat);
2166
+ break;
2167
+ }
2168
+ gridField.calendarLocaleOptions = calendarOptions;
2169
+ }
2144
2170
  return gridField;
2145
2171
  });
2146
2172
  var formGroup = this.searchFields.reduce(function (result, field) {
@@ -2166,6 +2192,36 @@
2166
2192
  _this.onChange(newValue);
2167
2193
  });
2168
2194
  };
2195
+ LookupComponent.prototype._convertToMomentHourFormat = function (hourFormat, format) {
2196
+ if (format === "dd/mm/yy") { // valor padrão para o format.
2197
+ return "LTS";
2198
+ }
2199
+ if (hourFormat === "12") {
2200
+ return format
2201
+ .replace(/\bH\b/, "h") // hour (12 hour time) (no leading zero)
2202
+ .replace(/\bHH\b/, "hh"); // hour (12 hour time)
2203
+ }
2204
+ if (hourFormat === "24") {
2205
+ return format
2206
+ .replace(/\bh\b/, "H") // hour (24 hour time) (no leading zero)
2207
+ .replace(/\bhh\b/, "HH"); // hour (24 hour time)
2208
+ }
2209
+ return format;
2210
+ };
2211
+ LookupComponent.prototype._convertToMomentDateFormat = function (format) {
2212
+ // A ordem dos replaces é importante.
2213
+ return format
2214
+ .replace(/\bd\b/, "D") // day of month (no leading zero)
2215
+ .replace(/\bdd\b/, "DD") // day of month
2216
+ .replace(/\bo\b/, "DDD") // day of the year (no leading zero)
2217
+ .replace(/\boo\b/, "DDDD") // day of the year
2218
+ .replace(/\bM\b/, "MMM") // month name short
2219
+ .replace(/\bMM\b/, "MMMM") // month name long
2220
+ .replace(/\bm\b/, "M") // month of year (no leading)
2221
+ .replace(/\bmm\b/, "MM") // month of year
2222
+ .replace(/\by\b/, "YY") // year (two digits)
2223
+ .replace(/\byy\b/, "YYYY"); // year (four digits)
2224
+ };
2169
2225
  LookupComponent.prototype.ngAfterViewInit = function () {
2170
2226
  this.autocomplete.onOverlayAnimationDone = function (event) { };
2171
2227
  };
@@ -2484,7 +2540,7 @@
2484
2540
  LookupComponent = LookupComponent_1 = __decorate([
2485
2541
  core.Component({
2486
2542
  selector: "s-lookup",
2487
- 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",
2543
+ 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",
2488
2544
  providers: [
2489
2545
  {
2490
2546
  provide: forms.NG_VALUE_ACCESSOR,
@@ -2540,6 +2596,7 @@
2540
2596
  DynamicType["Chips"] = "Chips";
2541
2597
  DynamicType["Date"] = "Date";
2542
2598
  DynamicType["DateTime"] = "DateTime";
2599
+ DynamicType["LocalDateTime"] = "LocalDateTime";
2543
2600
  DynamicType["Double"] = "Double";
2544
2601
  DynamicType["Enum"] = "Enum";
2545
2602
  DynamicType["Fieldset"] = "Fieldset";
@@ -2610,6 +2667,7 @@
2610
2667
  return new ChipsField(config);
2611
2668
  case exports.DynamicType.Date:
2612
2669
  case exports.DynamicType.DateTime:
2670
+ case exports.DynamicType.LocalDateTime:
2613
2671
  case exports.DynamicType.Time:
2614
2672
  return new CalendarField(config);
2615
2673
  case exports.DynamicType.Double:
@@ -5114,6 +5172,10 @@
5114
5172
  component.instance.showTime = true;
5115
5173
  component.instance.showSeconds = true;
5116
5174
  break;
5175
+ case exports.FieldType.LocalDateTime:
5176
+ component.instance.showTime = true;
5177
+ component.instance.showSeconds = true;
5178
+ break;
5117
5179
  case exports.FieldType.Time:
5118
5180
  component.instance.timeOnly = true;
5119
5181
  component.instance.showSeconds = true;
@@ -5138,6 +5200,7 @@
5138
5200
  return ChipsFieldComponent;
5139
5201
  case exports.FieldType.Date:
5140
5202
  case exports.FieldType.DateTime:
5203
+ case exports.FieldType.LocalDateTime:
5141
5204
  case exports.FieldType.Time:
5142
5205
  return CalendarFieldComponent;
5143
5206
  case exports.FieldType.Double:
@@ -5540,6 +5603,7 @@
5540
5603
  CustomFieldType["Double"] = "Double";
5541
5604
  CustomFieldType["Date"] = "Date";
5542
5605
  CustomFieldType["DateTime"] = "DateTime";
5606
+ CustomFieldType["LocalDateTime"] = "LocalDateTime";
5543
5607
  CustomFieldType["Time"] = "Time";
5544
5608
  CustomFieldType["Money"] = "Money";
5545
5609
  CustomFieldType["Blob"] = "Blob";
@@ -5616,6 +5680,7 @@
5616
5680
  defaults[CustomFieldType.Money] = {};
5617
5681
  defaults[CustomFieldType.Date] = {};
5618
5682
  defaults[CustomFieldType.DateTime] = {};
5683
+ defaults[CustomFieldType.LocalDateTime] = {};
5619
5684
  defaults[CustomFieldType.Time] = {};
5620
5685
  defaults[CustomFieldType.Blob] = {};
5621
5686
  defaults[CustomFieldType.Enum] = {};
@@ -5639,6 +5704,7 @@
5639
5704
  CustomFieldType.Money,
5640
5705
  CustomFieldType.Date,
5641
5706
  CustomFieldType.DateTime,
5707
+ CustomFieldType.LocalDateTime,
5642
5708
  CustomFieldType.Time
5643
5709
  ];
5644
5710
  var validators = [];
@@ -5709,6 +5775,9 @@
5709
5775
  case exports.FieldType.DateTime:
5710
5776
  parsedValues[name] = moment$3(value).toDate();
5711
5777
  break;
5778
+ case exports.FieldType.LocalDateTime:
5779
+ parsedValues[name] = moment$3(value, "YYYY-MM-DD[T]HH:mm:ss.SSS").toDate();
5780
+ break;
5712
5781
  case exports.FieldType.Time:
5713
5782
  parsedValues[name] = moment$3(value, "HH:mm:ss").toDate();
5714
5783
  break;
@@ -5748,6 +5817,9 @@
5748
5817
  case exports.FieldType.DateTime:
5749
5818
  value = moment$3(value).format();
5750
5819
  break;
5820
+ case exports.FieldType.LocalDateTime:
5821
+ value = moment$3(value).format("YYYY-MM-DD[T]HH:mm:ss.SSS");
5822
+ break;
5751
5823
  case exports.FieldType.Time:
5752
5824
  value = moment$3(value).format("HH:mm:ss");
5753
5825
  break;
@@ -7888,6 +7960,8 @@
7888
7960
  MetaType["DATE"] = "DATE";
7889
7961
  // DateTime
7890
7962
  MetaType["DATETIME"] = "DATETIME";
7963
+ // DateTime
7964
+ MetaType["LOCALDATETIME"] = "LOCALDATETIME";
7891
7965
  // Time
7892
7966
  MetaType["TIME"] = "TIME";
7893
7967
  // Boolean