@sumaris-net/ngx-components 1.22.8 → 1.22.9

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.
@@ -30234,116 +30234,6 @@
30234
30234
  SUBSCRIBE_JOB_PROGRESSION_ERROR: 50010
30235
30235
  };
30236
30236
 
30237
- var UserEvent_1;
30238
- var UserEventTypes = {
30239
- DEBUG_DATA: 'DEBUG_DATA',
30240
- INBOX_MESSAGE: 'INBOX_MESSAGE'
30241
- };
30242
- // @dynamic
30243
- exports.UserEvent = UserEvent_1 = /** @class */ (function (_super) {
30244
- __extends(UserEvent, _super);
30245
- function UserEvent() {
30246
- return _super.call(this, UserEvent_1.TYPENAME) || this;
30247
- }
30248
- UserEvent.prototype.asObject = function (opts) {
30249
- var target = _super.prototype.asObject.call(this, opts);
30250
- target.creationDate = toDateISOString(this.creationDate);
30251
- target.readDate = toDateISOString(this.readDate);
30252
- // Serialize content
30253
- if (typeof target.content === 'object') {
30254
- target.content = JSON.stringify(target.content);
30255
- }
30256
- delete target.avatar;
30257
- delete target.avatarIcon;
30258
- delete target.icon;
30259
- delete target.actions;
30260
- return target;
30261
- };
30262
- UserEvent.prototype.fromObject = function (source) {
30263
- Object.assign(this, source); // Copy all properties
30264
- _super.prototype.fromObject.call(this, source);
30265
- this.creationDate = fromDateISOString(source.creationDate);
30266
- this.readDate = fromDateISOString(source.readDate);
30267
- try {
30268
- // Deserialize content
30269
- if (typeof source.content === 'string' && source.content.startsWith('{')) {
30270
- this.content = JSON.parse(source.content);
30271
- }
30272
- // Deserialize content.context
30273
- if (this.content && typeof this.content.context === 'string' && this.content.context.startsWith('{')) {
30274
- this.content.context = JSON.parse(this.content.context);
30275
- }
30276
- }
30277
- catch (err) {
30278
- console.error('Error during UserEvent deserialization', err);
30279
- }
30280
- };
30281
- return UserEvent;
30282
- }(Entity));
30283
- exports.UserEvent = UserEvent_1 = __decorate([
30284
- EntityClass({ typename: 'UserEventVO' })
30285
- ], exports.UserEvent);
30286
- // @dynamic
30287
- exports.UserEventFilter = /** @class */ (function (_super) {
30288
- __extends(UserEventFilter, _super);
30289
- function UserEventFilter() {
30290
- var _this = _super.apply(this, __spread(arguments)) || this;
30291
- _this.types = [];
30292
- _this.levels = [];
30293
- _this.issuers = [];
30294
- _this.recipients = [];
30295
- _this.startDate = null;
30296
- _this.excludeRead = false;
30297
- return _this;
30298
- }
30299
- UserEventFilter.prototype.fromObject = function (source, opts) {
30300
- _super.prototype.fromObject.call(this, source, opts);
30301
- this.types = source.types || [];
30302
- this.levels = source.levels || [];
30303
- this.issuers = source.issuers || [];
30304
- this.recipients = source.recipients || [];
30305
- this.startDate = fromDateISOString(source.startDate);
30306
- this.excludeRead = source.excludeRead || false;
30307
- };
30308
- UserEventFilter.prototype.buildFilter = function () {
30309
- var _this = this;
30310
- var filterFns = _super.prototype.buildFilter.call(this);
30311
- if (isNotEmptyArray(this.types)) {
30312
- filterFns.push(function (t) { return _this.types.includes(t.type); });
30313
- }
30314
- if (isNotEmptyArray(this.levels)) {
30315
- filterFns.push(function (t) { return _this.levels.includes(t.level); });
30316
- }
30317
- if (isNotEmptyArray(this.issuers)) {
30318
- filterFns.push(function (t) { return _this.issuers.includes(t.issuer); });
30319
- }
30320
- if (isNotEmptyArray(this.recipients)) {
30321
- filterFns.push(function (t) { return _this.recipients.includes(t.recipient); });
30322
- }
30323
- if (isNotNil(this.startDate)) {
30324
- filterFns.push(function (t) { return _this.startDate.isSameOrBefore(t.creationDate); });
30325
- }
30326
- if (this.excludeRead === true) {
30327
- filterFns.push(function (t) { return isNil(t.readSignature); }); // todo or t.signature ?
30328
- }
30329
- return filterFns;
30330
- };
30331
- UserEventFilter.prototype.asObject = function (opts) {
30332
- var target = _super.prototype.asObject.call(this, opts);
30333
- return target;
30334
- };
30335
- return UserEventFilter;
30336
- }(EntityFilter));
30337
- exports.UserEventFilter = __decorate([
30338
- EntityClass({ typename: 'UserEventFilterVO' })
30339
- ], exports.UserEventFilter);
30340
-
30341
- var UserEventFragments = {
30342
- userEvent: core.gql(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["fragment UserEventFragment on UserEventVO {\n id\n issuer\n updateDate\n creationDate\n eventType\n recipient\n content\n hash\n signature\n readSignature\n __typename\n }"], ["fragment UserEventFragment on UserEventVO {\n id\n issuer\n updateDate\n creationDate\n eventType\n recipient\n content\n hash\n signature\n readSignature\n __typename\n }"]))),
30343
- lightUserEvent: core.gql(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["fragment LightUserEventFragment on UserEventVO {\n id\n issuer\n recipient\n updateDate\n creationDate\n eventType\n readSignature\n __typename\n }"], ["fragment LightUserEventFragment on UserEventVO {\n id\n issuer\n recipient\n updateDate\n creationDate\n eventType\n readSignature\n __typename\n }"])))
30344
- };
30345
- var templateObject_1$2, templateObject_2$2;
30346
-
30347
30237
  var moment$6 = momentImported__namespace;
30348
30238
  var USER_EVENT_SERVICE = new i0.InjectionToken('UserEventService');
30349
30239
  var AbstractUserEventService = /** @class */ (function (_super) {
@@ -30375,31 +30265,21 @@
30375
30265
  return __awaiter(this, void 0, void 0, function () {
30376
30266
  var _this = this;
30377
30267
  return __generator(this, function (_b) {
30378
- switch (_b.label) {
30379
- case 0:
30380
- // Update component when refresh is need (=login events)
30381
- this._subscriptions.add(rxjs.merge(this.accountService.onLogin, this.accountService.onLogout)
30382
- .pipe(
30383
- // Wait account service ready (can be restarted)
30384
- operators.mergeMap(function () { return _this.accountService.ready(); }), operators.map(function () { return _this.accountService.isLogin(); }), operators.distinctUntilChanged())
30385
- .subscribe(function (login) {
30386
- if (login) {
30387
- _this.onLogin();
30388
- }
30389
- else {
30390
- _this.onLogout();
30391
- }
30392
- }));
30393
- // First attempt if account is ready
30394
- return [4 /*yield*/, this.accountService.ready()];
30395
- case 1:
30396
- // First attempt if account is ready
30397
- _b.sent();
30398
- if (this.accountService.isLogin()) {
30399
- setTimeout(function () { return _this.onLogin(); });
30400
- }
30401
- return [2 /*return*/];
30402
- }
30268
+ // Update component when refresh is need (=login events)
30269
+ this._subscriptions.add(rxjs.merge(this.accountService.onLogin, this.accountService.onLogout, rxjs.of() // Starts with - first attempt if account is ready
30270
+ )
30271
+ .pipe(
30272
+ // Wait account service ready (can be restarted)
30273
+ operators.mergeMap(function () { return _this.accountService.ready(); }), operators.map(function () { return _this.accountService.isLogin(); }), operators.distinctUntilChanged())
30274
+ .subscribe(function (login) {
30275
+ if (login) {
30276
+ _this.onLogin();
30277
+ }
30278
+ else {
30279
+ _this.onLogout();
30280
+ }
30281
+ }));
30282
+ return [2 /*return*/];
30403
30283
  });
30404
30284
  });
30405
30285
  };
@@ -30923,206 +30803,6 @@
30923
30803
  { type: i1$2.TranslateService },
30924
30804
  { type: undefined }
30925
30805
  ]; };
30926
- var userEventQueries = {
30927
- loadAll: core.gql(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...LightUserEventFragment\n }\n }\n ", "\n "], ["\n query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...LightUserEventFragment\n }\n }\n ", "\n "])), UserEventFragments.lightUserEvent),
30928
- loadAllWithContent: core.gql(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\n query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...UserEventFragment\n }\n }\n ", "\n "], ["\n query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...UserEventFragment\n }\n }\n ", "\n "])), UserEventFragments.userEvent)
30929
- };
30930
- var userEventMutations = {
30931
- deleteByIds: core.gql(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n "], ["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n "]))),
30932
- save: core.gql(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n mutation SaveUserEvent($data: UserEventVOInput){\n data: saveUserEvent(userEvent: $data){\n ...UserEventFragment\n }\n }\n ", "\n "], ["\n mutation SaveUserEvent($data: UserEventVOInput){\n data: saveUserEvent(userEvent: $data){\n ...UserEventFragment\n }\n }\n ", "\n "])), UserEventFragments.userEvent)
30933
- };
30934
- var UserEventService = /** @class */ (function (_super) {
30935
- __extends(UserEventService, _super);
30936
- function UserEventService(graphql, accountService, network, translate, environment) {
30937
- var _this = _super.call(this, graphql, accountService, network, translate, {
30938
- queries: userEventQueries,
30939
- mutations: userEventMutations,
30940
- production: environment === null || environment === void 0 ? void 0 : environment.production
30941
- }) || this;
30942
- _this.graphql = graphql;
30943
- _this.accountService = accountService;
30944
- _this.network = network;
30945
- _this.translate = translate;
30946
- _this.environment = environment;
30947
- return _this;
30948
- }
30949
- UserEventService.prototype.asFilter = function (filter) {
30950
- return exports.UserEventFilter.fromObject(filter);
30951
- };
30952
- UserEventService.prototype.fromObject = function (source) {
30953
- return exports.UserEvent.fromObject(source);
30954
- };
30955
- /* -- protected methods -- */
30956
- UserEventService.prototype.fillDefaultProperties = function (entity) {
30957
- entity.issuer = this.accountService.account.pubkey;
30958
- // TODO: compute hash (using cryptoService)
30959
- // TODO: compute sign
30960
- console.warn('TODO: sign user event before sending');
30961
- };
30962
- return UserEventService;
30963
- }(AbstractUserEventService));
30964
- UserEventService.decorators = [
30965
- { type: i0.Injectable }
30966
- ];
30967
- UserEventService.ctorParameters = function () { return [
30968
- { type: GraphqlService },
30969
- { type: AccountService },
30970
- { type: NetworkService },
30971
- { type: i1$2.TranslateService },
30972
- { type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
30973
- ]; };
30974
- var templateObject_1$3, templateObject_2$3, templateObject_3$2, templateObject_4$2;
30975
-
30976
- var ICONS_MAP = {
30977
- DEBUG_DATA: { matIcon: 'bug_report' },
30978
- INBOX_MESSAGE: { matIcon: 'mail' }
30979
- };
30980
- var UserEventsTable = /** @class */ (function (_super) {
30981
- __extends(UserEventsTable, _super);
30982
- function UserEventsTable(injector, accountService, service, entities, cd, environment) {
30983
- var _this = _super.call(this, injector,
30984
- // columns
30985
- RESERVED_START_COLUMNS
30986
- .concat([
30987
- 'creationDate',
30988
- 'icon',
30989
- 'eventType',
30990
- 'message'
30991
- ])
30992
- .concat(RESERVED_END_COLUMNS), null, null) || this;
30993
- _this.accountService = accountService;
30994
- _this.service = service;
30995
- _this.entities = entities;
30996
- _this.cd = cd;
30997
- _this.environment = environment;
30998
- _this.i18nColumnPrefix = 'SOCIAL.USER_EVENT.';
30999
- _this.autoLoad = false; // this.start()
31000
- _this.inlineEdition = false;
31001
- _this.defaultSortBy = 'creationDate';
31002
- _this.defaultSortDirection = 'desc';
31003
- return _this;
31004
- }
31005
- UserEventsTable.prototype.ngOnInit = function () {
31006
- _super.prototype.ngOnInit.call(this);
31007
- // Load date/time pattern
31008
- this.dateTimePattern = this.translate.instant('COMMON.DATE_TIME_PATTERN');
31009
- this.withContent = toBoolean(this.withContent, false);
31010
- var account = this.accountService.account;
31011
- var pubkey = account && account.pubkey;
31012
- this.isAdmin = this.accountService.isAdmin();
31013
- this.canEdit = this.isAdmin || pubkey === this.recipient;
31014
- this.canDelete = this.canEdit;
31015
- this.setDatasource(new EntitiesTableDataSource(exports.UserEvent, this.service, null, {
31016
- prependNewElements: false,
31017
- suppressErrors: true,
31018
- dataServiceOptions: {
31019
- withContent: this.withContent
31020
- }
31021
- }));
31022
- var filter = this.filter || new exports.UserEventFilter();
31023
- filter.recipients = [this.recipient];
31024
- this.setFilter(filter, { emitEvent: true });
31025
- };
31026
- UserEventsTable.prototype.start = function () {
31027
- return __awaiter(this, void 0, void 0, function () {
31028
- return __generator(this, function (_a) {
31029
- switch (_a.label) {
31030
- case 0:
31031
- console.debug('[user-event] Starting...');
31032
- // Waiting account to be ready
31033
- return [4 /*yield*/, this.accountService.ready()];
31034
- case 1:
31035
- // Waiting account to be ready
31036
- _a.sent();
31037
- // Load data
31038
- this.onRefresh.emit();
31039
- return [2 /*return*/];
31040
- }
31041
- });
31042
- });
31043
- };
31044
- UserEventsTable.prototype.getIcon = function (source) {
31045
- return ICONS_MAP[source.type];
31046
- };
31047
- UserEventsTable.prototype.getDetail = function (source) {
31048
- if (!source)
31049
- return undefined;
31050
- if (source.content && source.type === UserEventTypes.DEBUG_DATA) {
31051
- var context = source.content.context;
31052
- if (context && context.__typename) {
31053
- // const actions = this.service.getActionsByTypename(context.__typename);
31054
- return {
31055
- // actions,
31056
- title: source.content.error && source.content.error.message || source.content.message,
31057
- description: source.content.error && source.content.error.details || undefined
31058
- };
31059
- }
31060
- }
31061
- console.debug('TODO: implement getDetail() for event: ', source);
31062
- return {};
31063
- };
31064
- UserEventsTable.prototype.doAction = function (action, row) {
31065
- return __awaiter(this, void 0, void 0, function () {
31066
- var event, res, _a, err_1;
31067
- return __generator(this, function (_b) {
31068
- switch (_b.label) {
31069
- case 0:
31070
- event = row.currentData;
31071
- // const context = event.content && event.content.context;
31072
- this.markAsLoading();
31073
- if (!(action && typeof action.executeAction === 'function')) return [3 /*break*/, 7];
31074
- _b.label = 1;
31075
- case 1:
31076
- _b.trys.push([1, 5, 6, 7]);
31077
- res = action.executeAction(event /*, context*/);
31078
- if (!(res instanceof Promise)) return [3 /*break*/, 3];
31079
- return [4 /*yield*/, res];
31080
- case 2:
31081
- _a = _b.sent();
31082
- return [3 /*break*/, 4];
31083
- case 3:
31084
- _a = res;
31085
- _b.label = 4;
31086
- case 4:
31087
- res = _a;
31088
- return [3 /*break*/, 7];
31089
- case 5:
31090
- err_1 = _b.sent();
31091
- this.setError(err_1 && err_1.message || err_1);
31092
- console.error("[user-event] Failed to execute action " + action.name + ": " + (err_1 && err_1.message || err_1), err_1);
31093
- return [3 /*break*/, 7];
31094
- case 6:
31095
- this.markAsLoaded();
31096
- return [7 /*endfinally*/];
31097
- case 7: return [2 /*return*/];
31098
- }
31099
- });
31100
- });
31101
- };
31102
- return UserEventsTable;
31103
- }(AppTable));
31104
- UserEventsTable.decorators = [
31105
- { type: i0.Component, args: [{
31106
- selector: 'app-user-events-table',
31107
- template: "\n<!-- Type = options menu -->\n<mat-menu #optionsMenu=\"matMenu\" xPosition=\"after\">\n\n <!-- display columns -->\n <button mat-menu-item\n (click)=\"openSelectColumnsModal($event)\">\n <mat-icon>view_column</mat-icon>\n <ion-label translate>COMMON.DISPLAYED_COLUMNS_DOTS</ion-label>\n </button>\n\n</mat-menu>\n\n<!-- top header -->\n<mat-toolbar>\n\n <ng-container *ngIf=\"!selection.hasValue(); else hasSelection\">\n\n <button mat-icon-button [title]=\"'COMMON.BTN_REFRESH'|translate\" (click)=\"onRefresh.emit()\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n </ng-container>\n\n <!-- if row selection -->\n <ng-template #hasSelection>\n\n <!-- delete -->\n <button mat-icon-button class=\"hidden-xs hidden-sm\" *ngIf=\"canDelete\"\n [title]=\"'COMMON.BTN_DELETE'|translate\" (click)=\"deleteSelection($event)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ng-template>\n\n <!-- error -->\n <ion-item *ngIf=\"error\" hidden-xs hidden-sm hidden-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <div class=\"toolbar-spacer\"></div>\n\n <button mat-icon-button\n [title]=\"'COMMON.BTN_OPTIONS'|translate\"\n [matMenuTriggerFor]=\"optionsMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n</mat-toolbar>\n\n\n<mat-table [dataSource]=\"dataSource\" matSort\n [matSortActive]=\"defaultSortBy\"\n [matSortDirection]=\"defaultSortDirection\"\n matSortDisableClear [trackBy]=\"trackByFn\">\n\n <!-- select -->\n <ng-container matColumnDef=\"select\">\n <mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!canEdit\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!canEdit\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </mat-cell>\n </ng-container>\n\n <!-- id -->\n <ng-container matColumnDef=\"id\">\n <mat-header-cell *matHeaderCellDef mat-sort-header [class.cdk-visually-hidden]=\"!isAdmin\">\n <app-loading-spinner [loading]=\"loadingSubject|async\"><ion-label>#</ion-label></app-loading-spinner>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!isAdmin\">{{ row.currentData.id | mathAbs }}</mat-cell>\n </ng-container>\n\n <!-- creationDate -->\n <ng-container matColumnDef=\"creationDate\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>SOCIAL.USER_EVENT.CREATION_DATE</ion-label>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\">\n <ion-text>\n {{row.currentData.creationDate | dateFromNow }}<br/>\n <ion-text color=\"medium\"><small>{{row.currentData.creationDate | dateFormat: {time: true} }}</small></ion-text>\n </ion-text>\n </mat-cell>\n </ng-container>\n\n <!-- icon -->\n <ng-container matColumnDef=\"icon\">\n <mat-header-cell *matHeaderCellDef>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row;\">\n <ng-container *ngIf=\"getIcon(row.currentData); let details\">\n <ion-icon slot=\"start\" *ngIf=\"details.icon\" [name]=\"details.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"details.matIcon\">{{details.matIcon}}</mat-icon>\n </ng-container>\n </mat-cell>\n </ng-container>\n\n <!-- event type -->\n <ng-container matColumnDef=\"eventType\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>SOCIAL.USER_EVENT.EVENT_TYPE</ion-label>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row;\">\n <span>{{'SOCIAL.USER_EVENT.TYPE_ENUM.' + row.currentData.eventType | translate}}</span>\n </mat-cell>\n </ng-container>\n\n <!-- message -->\n <ng-container matColumnDef=\"message\">\n <mat-header-cell *matHeaderCellDef>\n <ion-label translate>SOCIAL.USER_EVENT.MESSAGE</ion-label>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row;\">\n <ng-container *ngIf=\"getDetail(row.currentData); let details\">\n <ion-text [innerHTML]=\"details.title|translate\">\n </ion-text>\n </ng-container>\n </mat-cell>\n </ng-container>\n\n <!-- Actions buttons column -->\n <ng-container matColumnDef=\"actions\">\n <mat-header-cell *matHeaderCellDef>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\">\n <ng-container *ngIf=\"getDetail(row.currentData); let details\">\n <button mat-icon-button color=\"light\"\n *ngFor=\"let action of details.actions\"\n [title]=\"action.title |translate\"\n [color]=\"action.color\"\n (click)=\"doAction(action, row)\">\n <app-icon slot=\"start\" *ngIf=\"action.iconRef\" [ref]=\"action.iconRef\"></app-icon>\n </button>\n </ng-container>\n </mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n class=\"mat-row-disabled\"\n (click)=\"clickRow($event, row)\"></mat-row>\n\n</mat-table>\n\n<ion-row class=\"ion-no-padding\">\n <ion-col></ion-col>\n <ion-col class=\"ion-no-padding\" size=\"auto\">\n <mat-paginator [length]=\"totalRowCount\" [pageSize]=\"defaultPageSize\" [pageSizeOptions]=\"defaultPageSizeOptions\" showFirstLastButtons>\n </mat-paginator>\n </ion-col>\n</ion-row>\n",
31108
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
31109
- styles: [".mat-header-row .mat-column-icon,.mat-row .mat-column-icon{max-width:40px;padding-left:0}.mat-header-row .mat-column-icon ion-icon,.mat-header-row .mat-column-icon mat-icon,.mat-row .mat-column-icon ion-icon,.mat-row .mat-column-icon mat-icon{font-size:1.2em;height:1.2em;width:1.2em}.mat-header-row .mat-column-creationDate,.mat-row .mat-column-creationDate{min-width:100px;max-width:120px}"]
31110
- },] }
31111
- ];
31112
- UserEventsTable.ctorParameters = function () { return [
31113
- { type: i0.Injector },
31114
- { type: AccountService },
31115
- { type: undefined, decorators: [{ type: i0.Inject, args: [USER_EVENT_SERVICE,] }] },
31116
- { type: EntitiesStorage },
31117
- { type: i0.ChangeDetectorRef },
31118
- { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
31119
- ]; };
31120
- UserEventsTable.propDecorators = {
31121
- recipient: [{ type: i0.Input }],
31122
- withContent: [{ type: i0.Input }],
31123
- defaultSortBy: [{ type: i0.Input }],
31124
- defaultSortDirection: [{ type: i0.Input }]
31125
- };
31126
30806
 
31127
30807
  var UserEventNotificationList = /** @class */ (function () {
31128
30808
  function UserEventNotificationList(cd, popoverController, userEventService) {
@@ -31307,106 +30987,6 @@
31307
30987
  disabled: [{ type: i0.Input }]
31308
30988
  };
31309
30989
 
31310
- var UserEventTestService = /** @class */ (function (_super) {
31311
- __extends(UserEventTestService, _super);
31312
- function UserEventTestService(graphql, accountService, network, translate, environment) {
31313
- var _this = _super.call(this, graphql, accountService, network, translate, {
31314
- queries: {
31315
- loadAll: null,
31316
- loadAllWithContent: null
31317
- },
31318
- production: environment === null || environment === void 0 ? void 0 : environment.production
31319
- }) || this;
31320
- _this.graphql = graphql;
31321
- _this.accountService = accountService;
31322
- _this.network = network;
31323
- _this.translate = translate;
31324
- _this.environment = environment;
31325
- _this.userEvents = [];
31326
- return _this;
31327
- }
31328
- UserEventTestService.prototype.fromObject = function (source) {
31329
- return exports.UserEvent.fromObject(source);
31330
- };
31331
- UserEventTestService.prototype.add = function (entity) {
31332
- entity = this.processUserEvent(entity);
31333
- entity.id = this.userEvents.length + 1;
31334
- this.userEvents.push(entity);
31335
- this.count$.next(this.userEvents.length);
31336
- };
31337
- UserEventTestService.prototype.asFilter = function (filter) {
31338
- return filter;
31339
- };
31340
- UserEventTestService.prototype.count = function (filter, options) {
31341
- return Promise.resolve(this.userEvents.length);
31342
- };
31343
- UserEventTestService.prototype.delete = function (entity) {
31344
- return Promise.resolve(undefined);
31345
- };
31346
- UserEventTestService.prototype.deleteAll = function (data, opts) {
31347
- return Promise.resolve(undefined);
31348
- };
31349
- UserEventTestService.prototype.listenChanges = function (filter, options) {
31350
- return rxjs.of();
31351
- };
31352
- UserEventTestService.prototype.save = function (entity, options) {
31353
- var _a;
31354
- var toSave = (_a = this.userEvents) === null || _a === void 0 ? void 0 : _a.find(function (value) { return value.id == (entity === null || entity === void 0 ? void 0 : entity.id); });
31355
- Object.assign(toSave, entity);
31356
- return entity;
31357
- };
31358
- UserEventTestService.prototype.saveAll = function (data, opts) {
31359
- return __awaiter(this, void 0, void 0, function () {
31360
- var _b, _c, entity, e_1_1;
31361
- var e_1, _d;
31362
- return __generator(this, function (_e) {
31363
- switch (_e.label) {
31364
- case 0:
31365
- _e.trys.push([0, 5, 6, 7]);
31366
- _b = __values((data || [])), _c = _b.next();
31367
- _e.label = 1;
31368
- case 1:
31369
- if (!!_c.done) return [3 /*break*/, 4];
31370
- entity = _c.value;
31371
- return [4 /*yield*/, this.save(entity)];
31372
- case 2:
31373
- _e.sent();
31374
- _e.label = 3;
31375
- case 3:
31376
- _c = _b.next();
31377
- return [3 /*break*/, 1];
31378
- case 4: return [3 /*break*/, 7];
31379
- case 5:
31380
- e_1_1 = _e.sent();
31381
- e_1 = { error: e_1_1 };
31382
- return [3 /*break*/, 7];
31383
- case 6:
31384
- try {
31385
- if (_c && !_c.done && (_d = _b.return)) _d.call(_b);
31386
- }
31387
- finally { if (e_1) throw e_1.error; }
31388
- return [7 /*endfinally*/];
31389
- case 7: return [2 /*return*/, Promise.resolve(this.userEvents)];
31390
- }
31391
- });
31392
- });
31393
- };
31394
- UserEventTestService.prototype.watchAll = function (offset, size, sortBy, sortDirection, filter, options) {
31395
- return rxjs.of({ data: this.userEvents });
31396
- };
31397
- return UserEventTestService;
31398
- }(AbstractUserEventService));
31399
- UserEventTestService.decorators = [
31400
- { type: i0.Injectable }
31401
- ];
31402
- UserEventTestService.ctorParameters = function () { return [
31403
- { type: GraphqlService },
31404
- { type: AccountService },
31405
- { type: NetworkService },
31406
- { type: i1$2.TranslateService },
31407
- { type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
31408
- ]; };
31409
-
31410
30990
  var UserEventModule = /** @class */ (function () {
31411
30991
  function UserEventModule() {
31412
30992
  }
@@ -31420,16 +31000,11 @@
31420
31000
  AppIconModule
31421
31001
  ],
31422
31002
  declarations: [
31423
- UserEventsTable,
31424
31003
  UserEventNotificationComponent,
31425
- UserEventNotificationList,
31004
+ UserEventNotificationList
31426
31005
  ],
31427
31006
  exports: [
31428
- UserEventsTable,
31429
31007
  UserEventNotificationComponent
31430
- ],
31431
- providers: [
31432
- { provide: USER_EVENT_SERVICE, useClass: UserEventTestService }
31433
31008
  ]
31434
31009
  },] }
31435
31010
  ];
@@ -31718,7 +31293,7 @@
31718
31293
  ], exports.JobProgression);
31719
31294
 
31720
31295
  var JobProgressionServiceToken = new i0.InjectionToken('JobProgressionService');
31721
- var jobProgressionSubscription = core.gql(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["subscription UpdateJobProgression($id: Int!, $interval: Int){\n data: updateJobProgression(id: $id, interval: $interval) {\n id\n name\n message\n current\n total\n }\n}"], ["subscription UpdateJobProgression($id: Int!, $interval: Int){\n data: updateJobProgression(id: $id, interval: $interval) {\n id\n name\n message\n current\n total\n }\n}"])));
31296
+ var jobProgressionSubscription = core.gql(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["subscription UpdateJobProgression($id: Int!, $interval: Int){\n data: updateJobProgression(id: $id, interval: $interval) {\n id\n name\n message\n current\n total\n }\n}"], ["subscription UpdateJobProgression($id: Int!, $interval: Int){\n data: updateJobProgression(id: $id, interval: $interval) {\n id\n name\n message\n current\n total\n }\n}"])));
31722
31297
  var JobProgressionService = /** @class */ (function (_super) {
31723
31298
  __extends(JobProgressionService, _super);
31724
31299
  function JobProgressionService(graphql, environment) {
@@ -31758,7 +31333,7 @@
31758
31333
  { type: GraphqlService },
31759
31334
  { type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
31760
31335
  ]; };
31761
- var templateObject_1$4;
31336
+ var templateObject_1$2;
31762
31337
 
31763
31338
  var JobProgressionList = /** @class */ (function () {
31764
31339
  function JobProgressionList() {
@@ -32026,13 +31601,123 @@
32026
31601
  SharedModule,
32027
31602
  UserEventModule,
32028
31603
  JobModule,
32029
- MessageModule,
31604
+ MessageModule
32030
31605
  ],
32031
31606
  },] }
32032
31607
  ];
32033
31608
 
31609
+ var UserEvent_1;
31610
+ var UserEventTypes = {
31611
+ DEBUG_DATA: 'DEBUG_DATA',
31612
+ INBOX_MESSAGE: 'INBOX_MESSAGE'
31613
+ };
31614
+ // @dynamic
31615
+ exports.UserEvent = UserEvent_1 = /** @class */ (function (_super) {
31616
+ __extends(UserEvent, _super);
31617
+ function UserEvent() {
31618
+ return _super.call(this, UserEvent_1.TYPENAME) || this;
31619
+ }
31620
+ UserEvent.prototype.asObject = function (opts) {
31621
+ var target = _super.prototype.asObject.call(this, opts);
31622
+ target.creationDate = toDateISOString(this.creationDate);
31623
+ target.readDate = toDateISOString(this.readDate);
31624
+ // Serialize content
31625
+ if (typeof target.content === 'object') {
31626
+ target.content = JSON.stringify(target.content);
31627
+ }
31628
+ delete target.avatar;
31629
+ delete target.avatarIcon;
31630
+ delete target.icon;
31631
+ delete target.actions;
31632
+ return target;
31633
+ };
31634
+ UserEvent.prototype.fromObject = function (source) {
31635
+ Object.assign(this, source); // Copy all properties
31636
+ _super.prototype.fromObject.call(this, source);
31637
+ this.creationDate = fromDateISOString(source.creationDate);
31638
+ this.readDate = fromDateISOString(source.readDate);
31639
+ try {
31640
+ // Deserialize content
31641
+ if (typeof source.content === 'string' && source.content.startsWith('{')) {
31642
+ this.content = JSON.parse(source.content);
31643
+ }
31644
+ // Deserialize content.context
31645
+ if (this.content && typeof this.content.context === 'string' && this.content.context.startsWith('{')) {
31646
+ this.content.context = JSON.parse(this.content.context);
31647
+ }
31648
+ }
31649
+ catch (err) {
31650
+ console.error('Error during UserEvent deserialization', err);
31651
+ }
31652
+ };
31653
+ return UserEvent;
31654
+ }(Entity));
31655
+ exports.UserEvent = UserEvent_1 = __decorate([
31656
+ EntityClass({ typename: 'UserEventVO' })
31657
+ ], exports.UserEvent);
31658
+ // @dynamic
31659
+ exports.UserEventFilter = /** @class */ (function (_super) {
31660
+ __extends(UserEventFilter, _super);
31661
+ function UserEventFilter() {
31662
+ var _this = _super.apply(this, __spread(arguments)) || this;
31663
+ _this.types = [];
31664
+ _this.levels = [];
31665
+ _this.issuers = [];
31666
+ _this.recipients = [];
31667
+ _this.startDate = null;
31668
+ _this.excludeRead = false;
31669
+ return _this;
31670
+ }
31671
+ UserEventFilter.prototype.fromObject = function (source, opts) {
31672
+ _super.prototype.fromObject.call(this, source, opts);
31673
+ this.types = source.types || [];
31674
+ this.levels = source.levels || [];
31675
+ this.issuers = source.issuers || [];
31676
+ this.recipients = source.recipients || [];
31677
+ this.startDate = fromDateISOString(source.startDate);
31678
+ this.excludeRead = source.excludeRead || false;
31679
+ };
31680
+ UserEventFilter.prototype.buildFilter = function () {
31681
+ var _this = this;
31682
+ var filterFns = _super.prototype.buildFilter.call(this);
31683
+ if (isNotEmptyArray(this.types)) {
31684
+ filterFns.push(function (t) { return _this.types.includes(t.type); });
31685
+ }
31686
+ if (isNotEmptyArray(this.levels)) {
31687
+ filterFns.push(function (t) { return _this.levels.includes(t.level); });
31688
+ }
31689
+ if (isNotEmptyArray(this.issuers)) {
31690
+ filterFns.push(function (t) { return _this.issuers.includes(t.issuer); });
31691
+ }
31692
+ if (isNotEmptyArray(this.recipients)) {
31693
+ filterFns.push(function (t) { return _this.recipients.includes(t.recipient); });
31694
+ }
31695
+ if (isNotNil(this.startDate)) {
31696
+ filterFns.push(function (t) { return _this.startDate.isSameOrBefore(t.creationDate); });
31697
+ }
31698
+ if (this.excludeRead === true) {
31699
+ filterFns.push(function (t) { return isNil(t.readSignature); }); // todo or t.signature ?
31700
+ }
31701
+ return filterFns;
31702
+ };
31703
+ UserEventFilter.prototype.asObject = function (opts) {
31704
+ var target = _super.prototype.asObject.call(this, opts);
31705
+ return target;
31706
+ };
31707
+ return UserEventFilter;
31708
+ }(EntityFilter));
31709
+ exports.UserEventFilter = __decorate([
31710
+ EntityClass({ typename: 'UserEventFilterVO' })
31711
+ ], exports.UserEventFilter);
31712
+
31713
+ var UserEventFragments = {
31714
+ userEvent: core.gql(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["fragment UserEventFragment on UserEventVO {\n id\n issuer\n updateDate\n creationDate\n eventType\n recipient\n content\n hash\n signature\n readSignature\n __typename\n }"], ["fragment UserEventFragment on UserEventVO {\n id\n issuer\n updateDate\n creationDate\n eventType\n recipient\n content\n hash\n signature\n readSignature\n __typename\n }"]))),
31715
+ lightUserEvent: core.gql(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["fragment LightUserEventFragment on UserEventVO {\n id\n issuer\n recipient\n updateDate\n creationDate\n eventType\n readSignature\n __typename\n }"], ["fragment LightUserEventFragment on UserEventVO {\n id\n issuer\n recipient\n updateDate\n creationDate\n eventType\n readSignature\n __typename\n }"])))
31716
+ };
31717
+ var templateObject_1$3, templateObject_2$2;
31718
+
32034
31719
  var Mutations = {
32035
- send: core.gql(templateObject_1$5 || (templateObject_1$5 = __makeTemplateObject(["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"], ["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"])))
31720
+ send: core.gql(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"], ["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"])))
32036
31721
  };
32037
31722
  var MessageService = /** @class */ (function (_super) {
32038
31723
  __extends(MessageService, _super);
@@ -32116,7 +31801,7 @@
32116
31801
  { type: i1$5.ToastController },
32117
31802
  { type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
32118
31803
  ]; };
32119
- var templateObject_1$5;
31804
+ var templateObject_1$4;
32120
31805
 
32121
31806
  var PersonFilter_1;
32122
31807
  // @dynamic
@@ -32175,15 +31860,15 @@
32175
31860
  ], exports.PersonFilter);
32176
31861
 
32177
31862
  var PersonFragments = {
32178
- person: core.gql(templateObject_1$6 || (templateObject_1$6 = __makeTemplateObject(["fragment PersonFragment on PersonVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n username\n usernameExtranet\n department {\n id\n label\n name\n logo\n __typename\n }\n __typename\n }"], ["fragment PersonFragment on PersonVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n username\n usernameExtranet\n department {\n id\n label\n name\n logo\n __typename\n }\n __typename\n }"])))
31863
+ person: core.gql(templateObject_1$5 || (templateObject_1$5 = __makeTemplateObject(["fragment PersonFragment on PersonVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n username\n usernameExtranet\n department {\n id\n label\n name\n logo\n __typename\n }\n __typename\n }"], ["fragment PersonFragment on PersonVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n username\n usernameExtranet\n department {\n id\n label\n name\n logo\n __typename\n }\n __typename\n }"])))
32179
31864
  };
32180
31865
  // Load persons query
32181
31866
  var PersonQueries = {
32182
- loadAll: core.gql(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n }\n ", ""], ["\n query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n }\n ", ""])), PersonFragments.person),
32183
- loadAllWithTotal: core.gql(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n total: personsCount(filter: $filter)\n }\n ", ""], ["\n query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n total: personsCount(filter: $filter)\n }\n ", ""])), PersonFragments.person)
31867
+ loadAll: core.gql(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\n query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n }\n ", ""], ["\n query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n }\n ", ""])), PersonFragments.person),
31868
+ loadAllWithTotal: core.gql(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n total: personsCount(filter: $filter)\n }\n ", ""], ["\n query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n total: personsCount(filter: $filter)\n }\n ", ""])), PersonFragments.person)
32184
31869
  };
32185
31870
  var PersonMutations = {
32186
- saveAll: core.gql(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n mutation savePersons($data:[PersonVOInput]){\n data: savePersons(persons: $data){\n ...PersonFragment\n }\n }\n ", ""], ["\n mutation savePersons($data:[PersonVOInput]){\n data: savePersons(persons: $data){\n ...PersonFragment\n }\n }\n ", ""])), PersonFragments.person),
31871
+ saveAll: core.gql(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n mutation savePersons($data:[PersonVOInput]){\n data: savePersons(persons: $data){\n ...PersonFragment\n }\n }\n ", ""], ["\n mutation savePersons($data:[PersonVOInput]){\n data: savePersons(persons: $data){\n ...PersonFragment\n }\n }\n ", ""])), PersonFragments.person),
32187
31872
  deleteAll: core.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"], ["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"])))
32188
31873
  };
32189
31874
  var PersonService = /** @class */ (function (_super_1) {
@@ -32315,7 +32000,7 @@
32315
32000
  { type: NetworkService },
32316
32001
  { type: EntitiesStorage }
32317
32002
  ]; };
32318
- var templateObject_1$6, templateObject_2$4, templateObject_3$3, templateObject_4$3, templateObject_5$2;
32003
+ var templateObject_1$5, templateObject_2$3, templateObject_3$2, templateObject_4$2, templateObject_5$2;
32319
32004
 
32320
32005
  var PersonValidatorService = /** @class */ (function () {
32321
32006
  function PersonValidatorService(formBuilder, accountValidatorService) {
@@ -34449,9 +34134,7 @@
34449
34134
  exports.UserEventFragments = UserEventFragments;
34450
34135
  exports.UserEventModule = UserEventModule;
34451
34136
  exports.UserEventNotificationComponent = UserEventNotificationComponent;
34452
- exports.UserEventService = UserEventService;
34453
34137
  exports.UserEventTypes = UserEventTypes;
34454
- exports.UserEventsTable = UserEventsTable;
34455
34138
  exports.UsersPage = UsersPage;
34456
34139
  exports.accountToString = accountToString;
34457
34140
  exports.adaptValueToControl = adaptValueToControl;
@@ -34615,13 +34298,12 @@
34615
34298
  exports.ɵh = LocalSettingsValidatorService;
34616
34299
  exports.ɵi = AppUpdateOfflineModeCard;
34617
34300
  exports.ɵj = UserEventNotificationList;
34618
- exports.ɵk = UserEventTestService;
34619
- exports.ɵl = JobProgressionList;
34620
- exports.ɵm = DateTestPage;
34621
- exports.ɵn = NumpadTestPage;
34622
- exports.ɵo = MatBadgeIconTestPage;
34623
- exports.ɵp = ToastTestingModule;
34624
- exports.ɵq = ToastTestingPage;
34301
+ exports.ɵk = JobProgressionList;
34302
+ exports.ɵl = DateTestPage;
34303
+ exports.ɵm = NumpadTestPage;
34304
+ exports.ɵn = MatBadgeIconTestPage;
34305
+ exports.ɵo = ToastTestingModule;
34306
+ exports.ɵp = ToastTestingPage;
34625
34307
 
34626
34308
  Object.defineProperty(exports, '__esModule', { value: true });
34627
34309