@abp/ng.theme.shared 4.4.0 → 4.4.4

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.
@@ -388,7 +388,13 @@
388
388
  DateAdapter.prototype.fromModel = function (value) {
389
389
  if (!value)
390
390
  return null;
391
- var date = new Date(value);
391
+ var date;
392
+ if (typeof value === 'string') {
393
+ date = this.dateOf(value);
394
+ }
395
+ else {
396
+ date = new Date(value);
397
+ }
392
398
  if (isNaN(date))
393
399
  return null;
394
400
  return {
@@ -404,6 +410,10 @@
404
410
  var formattedDate = common.formatDate(date, 'yyyy-MM-dd', 'en');
405
411
  return formattedDate;
406
412
  };
413
+ DateAdapter.prototype.dateOf = function (value) {
414
+ var dateUtc = new Date(Date.parse(value));
415
+ return new Date(dateUtc.getTime() + Math.abs(dateUtc.getTimezoneOffset() * 60000));
416
+ };
407
417
  return DateAdapter;
408
418
  }(ngBootstrap.NgbDateAdapter));
409
419
  DateAdapter.decorators = [
@@ -1144,6 +1154,9 @@
1144
1154
  this.propList = extensions.entityProps.get(name).props;
1145
1155
  this.actionList = extensions['entityActions'].get(name)
1146
1156
  .actions;
1157
+ var permissionService = injector.get(ng_core.PermissionService);
1158
+ this.hasAtLeastOnePermittedAction =
1159
+ permissionService.filterItemsByPolicy(this.actionList.toArray().map(function (action) { return ({ requiredPolicy: action.permission }); })).length > 0;
1147
1160
  this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);
1148
1161
  }
1149
1162
  Object.defineProperty(ExtensibleTableComponent.prototype, "actionsText", {
@@ -1220,7 +1233,7 @@
1220
1233
  { type: i0.Component, args: [{
1221
1234
  exportAs: 'abpExtensibleTable',
1222
1235
  selector: 'abp-extensible-table',
1223
- template: "<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\n <ngx-datatable-column\n *ngIf=\"actionsTemplate || actionList.length\"\n [name]=\"actionsText | abpLocalization\"\n [maxWidth]=\"columnWidths[0]\"\n [width]=\"columnWidths[0]\"\n [sortable]=\"false\"\n >\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n <ng-container\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\n ></ng-container>\n <ng-template #gridActions>\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\n </ng-template>\n </ng-template>\n </ngx-datatable-column>\n\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\n <ngx-datatable-column\n [width]=\"columnWidths[i + 1] || 200\"\n [name]=\"prop.displayName | abpLocalization\"\n [prop]=\"prop.name\"\n [sortable]=\"prop.sortable\"\n >\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\n <ng-container *abpPermission=\"prop.permission\">\n <div\n *ngIf=\"row['_' + prop.name].visible\"\n [innerHTML]=\"row['_' + prop.name].value | async\"\n (click)=\"\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\n \"\n [class.pointer]=\"prop.action\"\n ></div>\n </ng-container>\n </ng-template>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n",
1236
+ template: "<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\n <ngx-datatable-column\n *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\n [name]=\"actionsText | abpLocalization\"\n [maxWidth]=\"columnWidths[0]\"\n [width]=\"columnWidths[0]\"\n [sortable]=\"false\"\n >\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n <ng-container\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\n ></ng-container>\n <ng-template #gridActions>\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\n </ng-template>\n </ng-template>\n </ngx-datatable-column>\n\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\n <ngx-datatable-column\n [width]=\"columnWidths[i + 1] || 200\"\n [name]=\"prop.displayName | abpLocalization\"\n [prop]=\"prop.name\"\n [sortable]=\"prop.sortable\"\n >\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\n <ng-container *abpPermission=\"prop.permission\">\n <div\n *ngIf=\"row['_' + prop.name]?.visible\"\n [innerHTML]=\"row['_' + prop.name]?.value | async\"\n (click)=\"\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\n \"\n [class.pointer]=\"prop.action\"\n ></div>\n </ng-container>\n </ng-template>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n",
1224
1237
  changeDetection: i0.ChangeDetectionStrategy.OnPush
1225
1238
  },] }
1226
1239
  ];