@sumaris-net/ngx-components 1.22.6 → 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.
@@ -25958,126 +25958,6 @@ const SocialErrorCodes = {
25958
25958
  SUBSCRIBE_JOB_PROGRESSION_ERROR: 50010
25959
25959
  };
25960
25960
 
25961
- var UserEvent_1;
25962
- const UserEventTypes = {
25963
- DEBUG_DATA: 'DEBUG_DATA',
25964
- INBOX_MESSAGE: 'INBOX_MESSAGE'
25965
- };
25966
- // @dynamic
25967
- let UserEvent = UserEvent_1 = class UserEvent extends Entity {
25968
- constructor() {
25969
- super(UserEvent_1.TYPENAME);
25970
- }
25971
- asObject(opts) {
25972
- const target = super.asObject(opts);
25973
- target.creationDate = toDateISOString(this.creationDate);
25974
- target.readDate = toDateISOString(this.readDate);
25975
- // Serialize content
25976
- if (typeof target.content === 'object') {
25977
- target.content = JSON.stringify(target.content);
25978
- }
25979
- delete target.avatar;
25980
- delete target.avatarIcon;
25981
- delete target.icon;
25982
- delete target.actions;
25983
- return target;
25984
- }
25985
- fromObject(source) {
25986
- Object.assign(this, source); // Copy all properties
25987
- super.fromObject(source);
25988
- this.creationDate = fromDateISOString(source.creationDate);
25989
- this.readDate = fromDateISOString(source.readDate);
25990
- try {
25991
- // Deserialize content
25992
- if (typeof source.content === 'string' && source.content.startsWith('{')) {
25993
- this.content = JSON.parse(source.content);
25994
- }
25995
- // Deserialize content.context
25996
- if (this.content && typeof this.content.context === 'string' && this.content.context.startsWith('{')) {
25997
- this.content.context = JSON.parse(this.content.context);
25998
- }
25999
- }
26000
- catch (err) {
26001
- console.error('Error during UserEvent deserialization', err);
26002
- }
26003
- }
26004
- };
26005
- UserEvent = UserEvent_1 = __decorate([
26006
- EntityClass({ typename: 'UserEventVO' })
26007
- ], UserEvent);
26008
- // @dynamic
26009
- let UserEventFilter = class UserEventFilter extends EntityFilter {
26010
- constructor() {
26011
- super(...arguments);
26012
- this.types = [];
26013
- this.levels = [];
26014
- this.issuers = [];
26015
- this.recipients = [];
26016
- this.startDate = null;
26017
- this.excludeRead = false;
26018
- }
26019
- fromObject(source, opts) {
26020
- super.fromObject(source, opts);
26021
- this.types = source.types || [];
26022
- this.levels = source.levels || [];
26023
- this.issuers = source.issuers || [];
26024
- this.recipients = source.recipients || [];
26025
- this.startDate = fromDateISOString(source.startDate);
26026
- this.excludeRead = source.excludeRead || false;
26027
- }
26028
- buildFilter() {
26029
- const filterFns = super.buildFilter();
26030
- if (isNotEmptyArray(this.types)) {
26031
- filterFns.push(t => this.types.includes(t.type));
26032
- }
26033
- if (isNotEmptyArray(this.levels)) {
26034
- filterFns.push(t => this.levels.includes(t.level));
26035
- }
26036
- if (isNotEmptyArray(this.issuers)) {
26037
- filterFns.push(t => this.issuers.includes(t.issuer));
26038
- }
26039
- if (isNotEmptyArray(this.recipients)) {
26040
- filterFns.push(t => this.recipients.includes(t.recipient));
26041
- }
26042
- if (isNotNil(this.startDate)) {
26043
- filterFns.push(t => this.startDate.isSameOrBefore(t.creationDate));
26044
- }
26045
- if (this.excludeRead === true) {
26046
- filterFns.push(t => isNil(t.readSignature)); // todo or t.signature ?
26047
- }
26048
- return filterFns;
26049
- }
26050
- };
26051
- UserEventFilter = __decorate([
26052
- EntityClass({ typename: 'UserEventFilterVO' })
26053
- ], UserEventFilter);
26054
-
26055
- const UserEventFragments = {
26056
- userEvent: gql `fragment UserEventFragment on UserEventVO {
26057
- id
26058
- issuer
26059
- updateDate
26060
- creationDate
26061
- eventType
26062
- recipient
26063
- content
26064
- hash
26065
- signature
26066
- readSignature
26067
- __typename
26068
- }`,
26069
- lightUserEvent: gql `fragment LightUserEventFragment on UserEventVO {
26070
- id
26071
- issuer
26072
- recipient
26073
- updateDate
26074
- creationDate
26075
- eventType
26076
- readSignature
26077
- __typename
26078
- }`
26079
- };
26080
-
26081
25961
  const moment$6 = momentImported;
26082
25962
  const USER_EVENT_SERVICE = new InjectionToken('UserEventService');
26083
25963
  class AbstractUserEventService extends BaseGraphqlService {
@@ -26102,7 +25982,8 @@ class AbstractUserEventService extends BaseGraphqlService {
26102
25982
  ngOnStart() {
26103
25983
  return __awaiter(this, void 0, void 0, function* () {
26104
25984
  // Update component when refresh is need (=login events)
26105
- this._subscriptions.add(merge(this.accountService.onLogin, this.accountService.onLogout)
25985
+ this._subscriptions.add(merge(this.accountService.onLogin, this.accountService.onLogout, of() // Starts with - first attempt if account is ready
25986
+ )
26106
25987
  .pipe(
26107
25988
  // Wait account service ready (can be restarted)
26108
25989
  mergeMap(() => this.accountService.ready()), map(() => this.accountService.isLogin()), distinctUntilChanged())
@@ -26114,11 +25995,6 @@ class AbstractUserEventService extends BaseGraphqlService {
26114
25995
  this.onLogout();
26115
25996
  }
26116
25997
  }));
26117
- // First attempt if account is ready
26118
- yield this.accountService.ready();
26119
- if (this.accountService.isLogin()) {
26120
- setTimeout(() => this.onLogin());
26121
- }
26122
25998
  });
26123
25999
  }
26124
26000
  ngOnDestroy() {
@@ -26503,314 +26379,6 @@ AbstractUserEventService.ctorParameters = () => [
26503
26379
  { type: TranslateService },
26504
26380
  { type: undefined }
26505
26381
  ];
26506
- const userEventQueries = {
26507
- loadAll: gql `
26508
- query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){
26509
- data: userEvents(filter: $filter, page: $page){
26510
- ...LightUserEventFragment
26511
- }
26512
- }
26513
- ${UserEventFragments.lightUserEvent}
26514
- `,
26515
- loadAllWithContent: gql `
26516
- query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){
26517
- data: userEvents(filter: $filter, page: $page){
26518
- ...UserEventFragment
26519
- }
26520
- }
26521
- ${UserEventFragments.userEvent}
26522
- `
26523
- };
26524
- const userEventMutations = {
26525
- deleteByIds: gql `
26526
- mutation DeleteUserEvents($ids:[Int]){
26527
- deleteUserEvents(ids: $ids)
26528
- }
26529
- `,
26530
- save: gql `
26531
- mutation SaveUserEvent($data: UserEventVOInput){
26532
- data: saveUserEvent(userEvent: $data){
26533
- ...UserEventFragment
26534
- }
26535
- }
26536
- ${UserEventFragments.userEvent}
26537
- `
26538
- };
26539
- class UserEventService extends AbstractUserEventService {
26540
- constructor(graphql, accountService, network, translate, toastController, environment) {
26541
- super(graphql, accountService, network, translate, {
26542
- queries: userEventQueries,
26543
- mutations: userEventMutations,
26544
- production: environment === null || environment === void 0 ? void 0 : environment.production
26545
- });
26546
- this.graphql = graphql;
26547
- this.accountService = accountService;
26548
- this.network = network;
26549
- this.translate = translate;
26550
- this.toastController = toastController;
26551
- this.environment = environment;
26552
- }
26553
- showToastErrorWithContext(opts) {
26554
- return __awaiter(this, void 0, void 0, function* () {
26555
- let message = opts.message || (opts.error && opts.error.message || opts.error);
26556
- // Make sure message a string
26557
- if (!message || typeof message !== 'string') {
26558
- message = 'ERROR.UNKNOWN_TECHNICAL_ERROR';
26559
- }
26560
- // If offline, display a simple alert
26561
- if (this.network.offline) {
26562
- this.showToast({ message, type: 'error' });
26563
- return;
26564
- }
26565
- // Translate the message (to be able to extract details content)
26566
- message = this.translate.instant(message);
26567
- // Clean details parts
26568
- if (message && message.indexOf('<small>') !== -1) {
26569
- message = message.substr(0, message.indexOf('<small>') - 1);
26570
- }
26571
- const res = yield this.showToast({
26572
- type: 'error',
26573
- duration: 15000,
26574
- message: message + '<br/><br/><b>' + this.translate.instant('CONFIRM.SEND_DEBUG_DATA') + '</b>',
26575
- buttons: [{
26576
- icon: 'bug',
26577
- text: this.translate.instant('COMMON.BTN_SEND'),
26578
- role: 'send'
26579
- }]
26580
- });
26581
- if (!res || res.role !== 'send')
26582
- return;
26583
- // Send debug data
26584
- try {
26585
- if (this._debug)
26586
- console.debug('Sending debug data...');
26587
- // Call content factory
26588
- let context = opts && opts.context;
26589
- if (typeof context === 'function') {
26590
- context = context();
26591
- }
26592
- if (context instanceof Promise) {
26593
- context = yield context;
26594
- }
26595
- // Send the message
26596
- const userEvent = yield this.sendDataForDebug({
26597
- message,
26598
- error: opts.error || undefined,
26599
- context: this.convertObjectToString(context)
26600
- });
26601
- console.info('Debug data successfully sent to admin', userEvent);
26602
- this.showToast({
26603
- type: 'info',
26604
- message: 'INFO.DEBUG_DATA_SEND',
26605
- showCloseButton: true
26606
- });
26607
- }
26608
- catch (err) {
26609
- console.error('Error while sending debug data:', err);
26610
- }
26611
- });
26612
- }
26613
- sendDataForDebug(data) {
26614
- const userEvent = new UserEvent();
26615
- userEvent.type = UserEventTypes.DEBUG_DATA;
26616
- userEvent.content = this.convertObjectToString(data);
26617
- return this.save(userEvent);
26618
- }
26619
- asFilter(filter) {
26620
- return UserEventFilter.fromObject(filter);
26621
- }
26622
- fromObject(source) {
26623
- return UserEvent.fromObject(source);
26624
- }
26625
- /* -- protected methods -- */
26626
- convertObjectToString(data) {
26627
- if (typeof data === 'string') {
26628
- return data;
26629
- }
26630
- // Serialize content into string
26631
- else if (typeof data === 'object') {
26632
- if (data instanceof Entity) {
26633
- return JSON.stringify(data.asObject({ keepTypename: true, keepLocalId: true, minify: false }));
26634
- }
26635
- else {
26636
- return JSON.stringify(data);
26637
- }
26638
- }
26639
- }
26640
- showToast(opts) {
26641
- return __awaiter(this, void 0, void 0, function* () {
26642
- if (!this.toastController)
26643
- throw new Error('Missing toastController in component\'s constructor');
26644
- return yield Toasts.show(this.toastController, this.translate, opts);
26645
- });
26646
- }
26647
- fillDefaultProperties(entity) {
26648
- entity.issuer = this.accountService.account.pubkey;
26649
- // TODO: compute hash (using cryptoService)
26650
- // TODO: compute sign
26651
- console.warn('TODO: sign user event before sending');
26652
- }
26653
- }
26654
- UserEventService.decorators = [
26655
- { type: Injectable }
26656
- ];
26657
- UserEventService.ctorParameters = () => [
26658
- { type: GraphqlService },
26659
- { type: AccountService },
26660
- { type: NetworkService },
26661
- { type: TranslateService },
26662
- { type: ToastController },
26663
- { type: Environment, decorators: [{ type: Optional }, { type: Inject, args: [ENVIRONMENT,] }] }
26664
- ];
26665
-
26666
- const ICONS_MAP = {
26667
- DEBUG_DATA: { matIcon: 'bug_report' },
26668
- INBOX_MESSAGE: { matIcon: 'mail' }
26669
- };
26670
- // TODO: refactor with a registration done by data service:
26671
- // - userEventService.registerEventAction({__typename: 'TripVO', ...})
26672
- // - userEventService.getActionsFor(__typename): UserEventDetailAction
26673
- /*const DETAILS_MAP: {[key: string]: UserEventAction<RootDataEntity<any>>} = {
26674
- "TripVO": {
26675
- icon: null,
26676
- matIcon: "content_copy",
26677
- action: 'copyToLocal',
26678
- actionTitle: 'SOCIAL.USER_EVENT.BTN_COPY_TO_LOCAL',
26679
- actionColor: 'primary',
26680
- fromObject: Trip.fromObject,
26681
- childrenFields: ['operation', 'landing']
26682
- },
26683
- "ObservedLocationVO": {
26684
- icon: null,
26685
- matIcon: "content_copy",
26686
- action: 'copyToLocal',
26687
- actionTitle: 'SOCIAL.USER_EVENT.BTN_COPY_TO_LOCAL',
26688
- actionColor: 'primary',
26689
- fromObject: ObservedLocation.fromObject,
26690
- childrenFields: ['landings']
26691
- }
26692
- }*/
26693
- class UserEventsTable extends AppTable {
26694
- constructor(injector, accountService, service, entities, cd, environment) {
26695
- super(injector,
26696
- // columns
26697
- RESERVED_START_COLUMNS
26698
- .concat([
26699
- 'creationDate',
26700
- 'icon',
26701
- 'eventType',
26702
- 'message'
26703
- ])
26704
- .concat(RESERVED_END_COLUMNS), null, null);
26705
- this.accountService = accountService;
26706
- this.service = service;
26707
- this.entities = entities;
26708
- this.cd = cd;
26709
- this.environment = environment;
26710
- this.i18nColumnPrefix = 'SOCIAL.USER_EVENT.';
26711
- this.autoLoad = false; // this.start()
26712
- this.inlineEdition = false;
26713
- this.defaultSortBy = 'creationDate';
26714
- this.defaultSortDirection = 'desc';
26715
- }
26716
- ngOnInit() {
26717
- super.ngOnInit();
26718
- // Load date/time pattern
26719
- this.dateTimePattern = this.translate.instant('COMMON.DATE_TIME_PATTERN');
26720
- this.withContent = toBoolean(this.withContent, false);
26721
- const account = this.accountService.account;
26722
- const pubkey = account && account.pubkey;
26723
- this.isAdmin = this.accountService.isAdmin();
26724
- this.canEdit = this.isAdmin || pubkey === this.recipient;
26725
- this.canDelete = this.canEdit;
26726
- this.setDatasource(new EntitiesTableDataSource(UserEvent, this.service, null, {
26727
- prependNewElements: false,
26728
- suppressErrors: true,
26729
- dataServiceOptions: {
26730
- withContent: this.withContent
26731
- }
26732
- }));
26733
- const filter = this.filter || new UserEventFilter();
26734
- filter.recipients = [this.recipient];
26735
- this.setFilter(filter, { emitEvent: true });
26736
- }
26737
- start() {
26738
- return __awaiter(this, void 0, void 0, function* () {
26739
- console.debug('[user-event] Starting...');
26740
- // Waiting account to be ready
26741
- yield this.accountService.ready();
26742
- // Load data
26743
- this.onRefresh.emit();
26744
- });
26745
- }
26746
- getIcon(source) {
26747
- return ICONS_MAP[source.type];
26748
- }
26749
- getDetail(source) {
26750
- if (!source)
26751
- return undefined;
26752
- if (source.content && source.type === UserEventTypes.DEBUG_DATA) {
26753
- const context = source.content.context;
26754
- if (context && context.__typename) {
26755
- // const actions = this.service.getActionsByTypename(context.__typename);
26756
- return {
26757
- // actions,
26758
- title: source.content.error && source.content.error.message || source.content.message,
26759
- description: source.content.error && source.content.error.details || undefined
26760
- };
26761
- }
26762
- }
26763
- console.debug('TODO: implement getDetail() for event: ', source);
26764
- return {};
26765
- }
26766
- doAction(action, row) {
26767
- return __awaiter(this, void 0, void 0, function* () {
26768
- const event = row.currentData;
26769
- // const context = event.content && event.content.context;
26770
- this.markAsLoading();
26771
- if (action && typeof action.executeAction === 'function') {
26772
- try {
26773
- let res = action.executeAction(event /*, context*/);
26774
- res = (res instanceof Promise) ? yield res : res;
26775
- }
26776
- catch (err) {
26777
- this.setError(err && err.message || err);
26778
- console.error(`[user-event] Failed to execute action ${action.name}: ${err && err.message || err}`, err);
26779
- }
26780
- finally {
26781
- this.markAsLoaded();
26782
- }
26783
- }
26784
- });
26785
- }
26786
- }
26787
- UserEventsTable.decorators = [
26788
- { type: Component, args: [{
26789
- selector: 'app-user-events-table',
26790
- 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",
26791
- changeDetection: ChangeDetectionStrategy.OnPush,
26792
- providers: [
26793
- {
26794
- provide: USER_EVENT_SERVICE, useClass: UserEventService
26795
- }
26796
- ],
26797
- 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}"]
26798
- },] }
26799
- ];
26800
- UserEventsTable.ctorParameters = () => [
26801
- { type: Injector },
26802
- { type: AccountService },
26803
- { type: undefined, decorators: [{ type: Inject, args: [USER_EVENT_SERVICE,] }] },
26804
- { type: EntitiesStorage },
26805
- { type: ChangeDetectorRef },
26806
- { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] }
26807
- ];
26808
- UserEventsTable.propDecorators = {
26809
- recipient: [{ type: Input }],
26810
- withContent: [{ type: Input }],
26811
- defaultSortBy: [{ type: Input }],
26812
- defaultSortDirection: [{ type: Input }]
26813
- };
26814
26382
 
26815
26383
  class UserEventNotificationList {
26816
26384
  constructor(cd, popoverController, userEventService) {
@@ -26967,75 +26535,6 @@ UserEventNotificationComponent.propDecorators = {
26967
26535
  disabled: [{ type: Input }]
26968
26536
  };
26969
26537
 
26970
- class UserEventTestService extends AbstractUserEventService {
26971
- constructor(graphql, accountService, network, translate, environment) {
26972
- super(graphql, accountService, network, translate, {
26973
- queries: {
26974
- loadAll: null,
26975
- loadAllWithContent: null
26976
- },
26977
- production: environment === null || environment === void 0 ? void 0 : environment.production
26978
- });
26979
- this.graphql = graphql;
26980
- this.accountService = accountService;
26981
- this.network = network;
26982
- this.translate = translate;
26983
- this.environment = environment;
26984
- this.userEvents = [];
26985
- }
26986
- fromObject(source) {
26987
- return UserEvent.fromObject(source);
26988
- }
26989
- add(entity) {
26990
- entity = this.processUserEvent(entity);
26991
- entity.id = this.userEvents.length + 1;
26992
- this.userEvents.push(entity);
26993
- this.count$.next(this.userEvents.length);
26994
- }
26995
- asFilter(filter) {
26996
- return filter;
26997
- }
26998
- count(filter, options) {
26999
- return Promise.resolve(this.userEvents.length);
27000
- }
27001
- delete(entity) {
27002
- return Promise.resolve(undefined);
27003
- }
27004
- deleteAll(data, opts) {
27005
- return Promise.resolve(undefined);
27006
- }
27007
- listenChanges(filter, options) {
27008
- return of();
27009
- }
27010
- save(entity, options) {
27011
- var _a;
27012
- const toSave = (_a = this.userEvents) === null || _a === void 0 ? void 0 : _a.find(value => value.id == (entity === null || entity === void 0 ? void 0 : entity.id));
27013
- Object.assign(toSave, entity);
27014
- return entity;
27015
- }
27016
- saveAll(data, opts) {
27017
- return __awaiter(this, void 0, void 0, function* () {
27018
- for (const entity of (data || [])) {
27019
- yield this.save(entity);
27020
- }
27021
- return Promise.resolve(this.userEvents);
27022
- });
27023
- }
27024
- watchAll(offset, size, sortBy, sortDirection, filter, options) {
27025
- return of({ data: this.userEvents });
27026
- }
27027
- }
27028
- UserEventTestService.decorators = [
27029
- { type: Injectable }
27030
- ];
27031
- UserEventTestService.ctorParameters = () => [
27032
- { type: GraphqlService },
27033
- { type: AccountService },
27034
- { type: NetworkService },
27035
- { type: TranslateService },
27036
- { type: Environment, decorators: [{ type: Optional }, { type: Inject, args: [ENVIRONMENT,] }] }
27037
- ];
27038
-
27039
26538
  class UserEventModule {
27040
26539
  }
27041
26540
  UserEventModule.decorators = [
@@ -27046,16 +26545,11 @@ UserEventModule.decorators = [
27046
26545
  AppIconModule
27047
26546
  ],
27048
26547
  declarations: [
27049
- UserEventsTable,
27050
26548
  UserEventNotificationComponent,
27051
- UserEventNotificationList,
26549
+ UserEventNotificationList
27052
26550
  ],
27053
26551
  exports: [
27054
- UserEventsTable,
27055
26552
  UserEventNotificationComponent
27056
- ],
27057
- providers: [
27058
- { provide: USER_EVENT_SERVICE, useClass: UserEventTestService }
27059
26553
  ]
27060
26554
  },] }
27061
26555
  ];
@@ -27597,11 +27091,135 @@ SocialModule.decorators = [
27597
27091
  SharedModule,
27598
27092
  UserEventModule,
27599
27093
  JobModule,
27600
- MessageModule,
27094
+ MessageModule
27601
27095
  ],
27602
27096
  },] }
27603
27097
  ];
27604
27098
 
27099
+ var UserEvent_1;
27100
+ const UserEventTypes = {
27101
+ DEBUG_DATA: 'DEBUG_DATA',
27102
+ INBOX_MESSAGE: 'INBOX_MESSAGE'
27103
+ };
27104
+ // @dynamic
27105
+ let UserEvent = UserEvent_1 = class UserEvent extends Entity {
27106
+ constructor() {
27107
+ super(UserEvent_1.TYPENAME);
27108
+ }
27109
+ asObject(opts) {
27110
+ const target = super.asObject(opts);
27111
+ target.creationDate = toDateISOString(this.creationDate);
27112
+ target.readDate = toDateISOString(this.readDate);
27113
+ // Serialize content
27114
+ if (typeof target.content === 'object') {
27115
+ target.content = JSON.stringify(target.content);
27116
+ }
27117
+ delete target.avatar;
27118
+ delete target.avatarIcon;
27119
+ delete target.icon;
27120
+ delete target.actions;
27121
+ return target;
27122
+ }
27123
+ fromObject(source) {
27124
+ Object.assign(this, source); // Copy all properties
27125
+ super.fromObject(source);
27126
+ this.creationDate = fromDateISOString(source.creationDate);
27127
+ this.readDate = fromDateISOString(source.readDate);
27128
+ try {
27129
+ // Deserialize content
27130
+ if (typeof source.content === 'string' && source.content.startsWith('{')) {
27131
+ this.content = JSON.parse(source.content);
27132
+ }
27133
+ // Deserialize content.context
27134
+ if (this.content && typeof this.content.context === 'string' && this.content.context.startsWith('{')) {
27135
+ this.content.context = JSON.parse(this.content.context);
27136
+ }
27137
+ }
27138
+ catch (err) {
27139
+ console.error('Error during UserEvent deserialization', err);
27140
+ }
27141
+ }
27142
+ };
27143
+ UserEvent = UserEvent_1 = __decorate([
27144
+ EntityClass({ typename: 'UserEventVO' })
27145
+ ], UserEvent);
27146
+ // @dynamic
27147
+ let UserEventFilter = class UserEventFilter extends EntityFilter {
27148
+ constructor() {
27149
+ super(...arguments);
27150
+ this.types = [];
27151
+ this.levels = [];
27152
+ this.issuers = [];
27153
+ this.recipients = [];
27154
+ this.startDate = null;
27155
+ this.excludeRead = false;
27156
+ }
27157
+ fromObject(source, opts) {
27158
+ super.fromObject(source, opts);
27159
+ this.types = source.types || [];
27160
+ this.levels = source.levels || [];
27161
+ this.issuers = source.issuers || [];
27162
+ this.recipients = source.recipients || [];
27163
+ this.startDate = fromDateISOString(source.startDate);
27164
+ this.excludeRead = source.excludeRead || false;
27165
+ }
27166
+ buildFilter() {
27167
+ const filterFns = super.buildFilter();
27168
+ if (isNotEmptyArray(this.types)) {
27169
+ filterFns.push(t => this.types.includes(t.type));
27170
+ }
27171
+ if (isNotEmptyArray(this.levels)) {
27172
+ filterFns.push(t => this.levels.includes(t.level));
27173
+ }
27174
+ if (isNotEmptyArray(this.issuers)) {
27175
+ filterFns.push(t => this.issuers.includes(t.issuer));
27176
+ }
27177
+ if (isNotEmptyArray(this.recipients)) {
27178
+ filterFns.push(t => this.recipients.includes(t.recipient));
27179
+ }
27180
+ if (isNotNil(this.startDate)) {
27181
+ filterFns.push(t => this.startDate.isSameOrBefore(t.creationDate));
27182
+ }
27183
+ if (this.excludeRead === true) {
27184
+ filterFns.push(t => isNil(t.readSignature)); // todo or t.signature ?
27185
+ }
27186
+ return filterFns;
27187
+ }
27188
+ asObject(opts) {
27189
+ const target = super.asObject(opts);
27190
+ return target;
27191
+ }
27192
+ };
27193
+ UserEventFilter = __decorate([
27194
+ EntityClass({ typename: 'UserEventFilterVO' })
27195
+ ], UserEventFilter);
27196
+
27197
+ const UserEventFragments = {
27198
+ userEvent: gql `fragment UserEventFragment on UserEventVO {
27199
+ id
27200
+ issuer
27201
+ updateDate
27202
+ creationDate
27203
+ eventType
27204
+ recipient
27205
+ content
27206
+ hash
27207
+ signature
27208
+ readSignature
27209
+ __typename
27210
+ }`,
27211
+ lightUserEvent: gql `fragment LightUserEventFragment on UserEventVO {
27212
+ id
27213
+ issuer
27214
+ recipient
27215
+ updateDate
27216
+ creationDate
27217
+ eventType
27218
+ readSignature
27219
+ __typename
27220
+ }`
27221
+ };
27222
+
27605
27223
  const Mutations = {
27606
27224
  send: gql `mutation SendMessage($data: MessageVOInput){
27607
27225
  done: sendMessage(message: $data)
@@ -29533,5 +29151,5 @@ CoreTestingModule.decorators = [
29533
29151
  * Generated bundle index. Do not edit.
29534
29152
  */
29535
29153
 
29536
- export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_TESTING_PAGES, AboutModal, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppIconComponent, AppIconModule, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, Job, JobModule, JobProgression, JobProgressionComponent, JobProgressionService, JobProgressionServiceToken, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuOptions, MenuService, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, ResizableComponent, ResizableDirective, ResizableModule, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, USER_EVENT_SERVICE, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UserEvent, UserEventFilter, UserEventFragments, UserEventModule, UserEventNotificationComponent, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, escapeRegExp, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isBlankString, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moment$5 as moment, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, tz, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending, ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppUpdateOfflineModeCard as ɵi, UserEventNotificationList as ɵj, UserEventTestService as ɵk, JobProgressionList as ɵl, DateTestPage as ɵm, NumpadTestPage as ɵn, MatBadgeIconTestPage as ɵo, ToastTestingModule as ɵp, ToastTestingPage as ɵq };
29154
+ export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_TESTING_PAGES, AboutModal, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppIconComponent, AppIconModule, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, Job, JobModule, JobProgression, JobProgressionComponent, JobProgressionService, JobProgressionServiceToken, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuOptions, MenuService, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, ResizableComponent, ResizableDirective, ResizableModule, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, USER_EVENT_SERVICE, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UserEvent, UserEventFilter, UserEventFragments, UserEventModule, UserEventNotificationComponent, UserEventTypes, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, escapeRegExp, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isBlankString, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moment$5 as moment, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, tz, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending, ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppUpdateOfflineModeCard as ɵi, UserEventNotificationList as ɵj, JobProgressionList as ɵk, DateTestPage as ɵl, NumpadTestPage as ɵm, MatBadgeIconTestPage as ɵn, ToastTestingModule as ɵo, ToastTestingPage as ɵp };
29537
29155
  //# sourceMappingURL=sumaris-net.ngx-components.js.map