@sumaris-net/ngx-components 1.21.0-beta1 → 1.21.0-beta12
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.
- package/bundles/sumaris-net.ngx-components.umd.js +91 -53
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/esm2015/public_api.js +5 -2
- package/esm2015/src/app/core/menu/menu.component.js +2 -2
- package/esm2015/src/app/social/job/job.service.js +1 -2
- package/esm2015/src/app/social/job/progression/job-progression.component.js +34 -13
- package/esm2015/src/app/social/job/progression/job-progression.list.js +2 -2
- package/esm2015/src/app/social/social.module.js +3 -2
- package/esm2015/src/app/social/user-event/notification/user-event-notification.component.js +20 -9
- package/esm2015/src/app/social/user-event/notification/user-event-notification.list.js +2 -2
- package/esm2015/src/app/social/user-event/user-event.model.js +1 -1
- package/esm2015/src/app/social/user-event/user-event.service.js +23 -19
- package/esm2015/sumaris-net.ngx-components.js +8 -11
- package/fesm2015/sumaris-net.ngx-components.js +75 -40
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +4 -1
- package/src/app/social/job/progression/job-progression.component.d.ts +12 -3
- package/src/app/social/social.module.d.ts +8 -0
- package/src/app/social/user-event/notification/user-event-notification.component.d.ts +0 -1
- package/src/app/social/user-event/user-event.model.d.ts +1 -1
- package/src/app/social/user-event/user-event.service.d.ts +3 -4
- package/src/assets/i18n/en-US.json +9 -3
- package/src/assets/i18n/en.json +9 -3
- package/src/assets/i18n/fr.json +9 -3
- package/sumaris-net.ngx-components.d.ts +7 -10
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -24749,7 +24749,7 @@
|
|
|
24749
24749
|
MenuComponent.decorators = [
|
|
24750
24750
|
{ type: i0.Component, args: [{
|
|
24751
24751
|
selector: 'app-menu',
|
|
24752
|
-
template: "<ion-split-pane #splitPane [contentId]=\"contentId\" (swiperight)=\"onSwipeRight($event)\">\n\n <ion-menu [id]=\"id\" [menuId]=\"menuId\" contentId=\"menu-content\">\n <ion-header>\n\n <ion-toolbar @fadeInAnimation *ngIf=\"isLogin; else notLogin\" class=\"ion-toolbar-top\">\n <ion-grid>\n <ion-row>\n <ion-col size=\"4\">\n <button type=\"button\" mat-flat-button\n class=\"user-avatar\" [class.primary]=\"!accountAvatar\"\n [style.background-image]=\"'url('+(accountAvatar||'./assets/img/person.png')+')'\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"close()\">\n </button>\n </ion-col>\n <ion-col size=\"8\" class=\"user-logo\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"108px;\"/>\n <span *ngIf=\"!logo\" width=\"108px;\">{{appName}}</span>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-no-padding\">\n\n <button mat-button type=\"button\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"close()\">\n <ion-label color=\"primary\" class=\"ion-text-wrap ion-text-start\">\n <h3 class=\"no-margin username\">\n <b>{{accountName}}</b>\n </h3>\n <h4>{{accountEmail}}</h4>\n </ion-label>\n </button>\n\n </ion-row>\n </ion-grid>\n\n </ion-toolbar>\n\n <!-- User not logged -->\n <ng-template #notLogin>\n <mat-toolbar class=\"ion-padding\" @fadeInAnimation\n style=\"height: unset; display: block; margin: auto; text-align: center;\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"150px;\">\n <span *ngIf=\"!logo\" style=\"width: 150px\">{{appName}}</span>\n </mat-toolbar>\n </ng-template>\n </ion-header>\n\n <ion-content [class.has-user-header]=\"isLogin\">\n\n <ion-list lines=\"none\">\n <ion-menu-toggle auto-hide=\"false\"\n [class.flex-spacer]=\"item.cssClass == 'flex-spacer'\"\n *ngFor=\"let item of $items | async\">\n\n <!-- link -->\n <ion-item *ngIf=\"!loading && item.path\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n [routerLink]=\"item.path\"\n routerDirection=\"root\"\n routerLinkActive=\"selected\"\n [routerLinkActiveOptions]=\"{exact: (item.path === '/')}\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- action -->\n <ion-item *ngIf=\"!loading && item.action\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n (click)=\"doAction(item.action, $event)\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- divider -->\n <ion-item-divider @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}}\"\n *ngIf=\"!loading && !item.path && !item.action\">\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item-divider>\n\n </ion-menu-toggle>\n </ion-list>\n </ion-content>\n\n <ion-footer class=\"hidden-xs hidden-sm\">\n <ion-toolbar>\n\n <ion-buttons slot=\"start\">\n <ion-button mat-icon-button color=\"accent\" (click)=\"openAboutModal($event)\">\n <mat-icon slot=\"icon-only\">help_outline</mat-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title (click)=\"openAboutModal($event)\" color=\"medium\">\n {{'MENU.FOOTER_VERSION_ABOUT'| translate: {version: appVersion} }}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n <button mat-icon-button color=\"accent\" (click)=\"toggleSplitPaneShow($event)\"\n class=\"hidden-xs hidden-sm hidden-md\"\n [title]=\"(splitPane.when ? 'COMMON.BTN_HIDE_MENU' : 'COMMON.BTN_SHOW_MENU') |translate\">\n <mat-icon><span>{{splitPane.when ? '«' : '»'}}</span></mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-footer>\n\n </ion-menu>\n\n <ng-content></ng-content>\n\n</ion-split-pane>\n",
|
|
24752
|
+
template: "<ion-split-pane #splitPane [contentId]=\"contentId\" (swiperight)=\"onSwipeRight($event)\">\n\n <ion-menu [id]=\"id\" [menuId]=\"menuId\" contentId=\"menu-content\">\n <ion-header>\n\n <ion-toolbar @fadeInAnimation *ngIf=\"isLogin; else notLogin\" class=\"ion-toolbar-top\">\n <ion-grid>\n <ion-row>\n <ion-col size=\"4\">\n <button type=\"button\" mat-flat-button\n class=\"user-avatar\" [class.primary]=\"!accountAvatar\"\n [style.background-image]=\"'url('+(accountAvatar||'./assets/img/person.png')+')'\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"close()\">\n </button>\n </ion-col>\n <ion-col size=\"8\" class=\"user-logo\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"108px;\"/>\n <span *ngIf=\"!logo\" width=\"108px;\">{{appName}}</span>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-no-padding\">\n\n <button mat-button type=\"button\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"close()\">\n <ion-label color=\"primary\" class=\"ion-text-wrap ion-text-start\">\n <h3 class=\"no-margin username\">\n <b>{{accountName}}</b>\n </h3>\n <h4>{{accountEmail}}</h4>\n </ion-label>\n </button>\n\n<!-- todo ajouter ici les 2 composants du module social -->\n\n </ion-row>\n </ion-grid>\n\n </ion-toolbar>\n\n <!-- User not logged -->\n <ng-template #notLogin>\n <mat-toolbar class=\"ion-padding\" @fadeInAnimation\n style=\"height: unset; display: block; margin: auto; text-align: center;\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"150px;\">\n <span *ngIf=\"!logo\" style=\"width: 150px\">{{appName}}</span>\n </mat-toolbar>\n </ng-template>\n </ion-header>\n\n <ion-content [class.has-user-header]=\"isLogin\">\n\n <ion-list lines=\"none\">\n <ion-menu-toggle auto-hide=\"false\"\n [class.flex-spacer]=\"item.cssClass == 'flex-spacer'\"\n *ngFor=\"let item of $items | async\">\n\n <!-- link -->\n <ion-item *ngIf=\"!loading && item.path\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n [routerLink]=\"item.path\"\n routerDirection=\"root\"\n routerLinkActive=\"selected\"\n [routerLinkActiveOptions]=\"{exact: (item.path === '/')}\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- action -->\n <ion-item *ngIf=\"!loading && item.action\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n (click)=\"doAction(item.action, $event)\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- divider -->\n <ion-item-divider @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}}\"\n *ngIf=\"!loading && !item.path && !item.action\">\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item-divider>\n\n </ion-menu-toggle>\n </ion-list>\n </ion-content>\n\n <ion-footer class=\"hidden-xs hidden-sm\">\n <ion-toolbar>\n\n <ion-buttons slot=\"start\">\n <ion-button mat-icon-button color=\"accent\" (click)=\"openAboutModal($event)\">\n <mat-icon slot=\"icon-only\">help_outline</mat-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title (click)=\"openAboutModal($event)\" color=\"medium\">\n {{'MENU.FOOTER_VERSION_ABOUT'| translate: {version: appVersion} }}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n <button mat-icon-button color=\"accent\" (click)=\"toggleSplitPaneShow($event)\"\n class=\"hidden-xs hidden-sm hidden-md\"\n [title]=\"(splitPane.when ? 'COMMON.BTN_HIDE_MENU' : 'COMMON.BTN_SHOW_MENU') |translate\">\n <mat-icon><span>{{splitPane.when ? '«' : '»'}}</span></mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-footer>\n\n </ion-menu>\n\n <ng-content></ng-content>\n\n</ion-split-pane>\n",
|
|
24753
24753
|
animations: [fadeInAnimation],
|
|
24754
24754
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
24755
24755
|
styles: ["ion-menu{--ion-item-background:transparent;--ion-item-divider-background:transparent;--ion-item-icon-color:var(--ion-color-primary-tint);--ion-item-text-color:var(--ion-color-primary-tint);--ion-item-background-selected:var(--ion-color-secondary100);--ion-item-text-color-selected:var(--ion-color-primary);--ion-item-icon-color-selected:var(--ion-color-primary);--ion-item-text-color-disable:var(--ion-color-medium);--ion-item-icon-color-disable:var(--ion-color-medium)}ion-menu ion-header ion-text{color:var(--ion-color-primary)}ion-menu ion-header .user-avatar{background-size:cover;background-repeat:no-repeat;background-position:50%;background-color:var(--ion-color-secondary);border:1px solid var(--ion-color-primary);overflow:hidden!important;font-size:var(--avatar-size,60px)!important;line-height:var(--avatar-size,60px);height:var(--avatar-size,60px)!important;width:var(--avatar-size,60px)!important;border-radius:50%;display:inline-block}ion-menu ion-header .user-logo{text-align:right}ion-menu ion-header .user-logo img{max-width:120px;max-height:var(--avatar-size,60px);width:auto}ion-menu ion-header .username{padding-top:0;margin-top:0;margin-bottom:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ion-menu ion-header button[mat-button]{padding:0;text-align:start!important;width:100%}ion-menu .scroll-content{margin-top:79px!important}ion-menu .has-user-header .scroll-content{margin-top:188px!important}ion-menu ion-content.has-profile-header{--offset-top:188px}ion-menu ion-content.no-profile-header{--offset-top:79px}ion-menu ion-content ion-list{min-height:100%;display:flex;flex-direction:column;justify-content:flex-start}ion-menu ion-content ion-list ion-menu-toggle.flex-spacer{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end}ion-menu ion-content ion-list ion-item.primary{--ion-item-icon-color:var(--ion-color-primary-tint);--ion-item-text-color:var(--ion-color-primary-tint)}ion-menu ion-content ion-list ion-item.secondary{--ion-item-icon-color:var(--ion-color-secondary-tint);--ion-item-text-color:var(--ion-color-secondary-tint)}ion-menu ion-content ion-list ion-item.tertiary{--ion-item-icon-color:var(--ion-color-tertiary-tint);--ion-item-text-color:var(--ion-color-tertiary-tint)}ion-menu ion-content ion-list ion-item.danger{--ion-item-icon-color:var(--ion-color-danger-tint);--ion-item-text-color:var(--ion-color-danger-tint)}ion-menu ion-content ion-list ion-item.medium{--ion-item-icon-color:var(--ion-color-medium-shade);--ion-item-text-color:var(--ion-color-medium-shade)}ion-menu ion-content ion-list ion-item.dark{--ion-item-icon-color:var(--ion-color-dark-tint);--ion-item-text-color:var(--ion-color-dark-tint)}ion-menu ion-content ion-list ion-item ion-icon,ion-menu ion-content ion-list ion-item mat-icon{color:var(--ion-item-icon-color)!important;fill:currentColor;stroke:currentColor}ion-menu ion-content ion-list ion-item ion-label,ion-menu ion-content ion-list ion-item ion-text{color:var(--ion-item-text-color)!important}ion-menu ion-content ion-list ion-item.selected{background-color:var(--ion-item-background-selected)!important;--color-hover:var(--ion-item-background-selected)!important}ion-menu ion-content ion-list ion-item.selected ion-icon,ion-menu ion-content ion-list ion-item.selected mat-icon{color:var(--ion-item-icon-color-selected)!important;fill:currentColor;stroke:currentColor}ion-menu ion-content ion-list ion-item.selected ion-label,ion-menu ion-content ion-list ion-item.selected ion-text{color:var(--ion-item-text-color-selected)!important}ion-menu ion-content ion-list ion-item.selected:hover{--color-hover:var(--ion-item-background-selected)!important;--ion-item-icon-color-selected:var(--ion-item-icon-color)!important;--ion-item-text-color-selected:var(--ion-item-text-color)!important}ion-menu ion-footer{display:block!important}ion-menu ion-footer ion-toolbar ion-title{cursor:pointer;font-size:12pt;font-weight:400;text-align:center;padding:0 8px}ion-menu ion-footer ion-toolbar ion-button{--width:40px}@media screen and (max-width:767px){ion-menu ion-footer{display:none!important;visibility:hidden!important}}@media screen and (min-width:768px){ion-menu ion-scroll{overflow-y:auto!important}ion-menu .user-avatar{font-size:var(--avatar-size,80px)!important;line-height:var(--avatar-size,80px);height:var(--avatar-size,80px)!important;width:var(--avatar-size,80px)!important}ion-menu .user-logo img{max-height:var(--avatar-size,80px)}}"]
|
|
@@ -30172,13 +30172,12 @@
|
|
|
30172
30172
|
var UserEventServiceToken = new i0.InjectionToken('UserEventService');
|
|
30173
30173
|
var AbstractUserEventService = /** @class */ (function (_super) {
|
|
30174
30174
|
__extends(AbstractUserEventService, _super);
|
|
30175
|
-
function AbstractUserEventService(graphql, accountService, network, translate,
|
|
30175
|
+
function AbstractUserEventService(graphql, accountService, network, translate, queries, mutations, subscriptions, environment) {
|
|
30176
30176
|
var _this = _super.call(this, graphql, environment) || this;
|
|
30177
30177
|
_this.graphql = graphql;
|
|
30178
30178
|
_this.accountService = accountService;
|
|
30179
30179
|
_this.network = network;
|
|
30180
30180
|
_this.translate = translate;
|
|
30181
|
-
_this.toastController = toastController;
|
|
30182
30181
|
_this.queries = queries;
|
|
30183
30182
|
_this.mutations = mutations;
|
|
30184
30183
|
_this.subscriptions = subscriptions;
|
|
@@ -30194,7 +30193,7 @@
|
|
|
30194
30193
|
var count;
|
|
30195
30194
|
return __generator(this, function (_b) {
|
|
30196
30195
|
switch (_b.label) {
|
|
30197
|
-
case 0: return [4 /*yield*/, this.count(
|
|
30196
|
+
case 0: return [4 /*yield*/, this.count(undefined)];
|
|
30198
30197
|
case 1:
|
|
30199
30198
|
count = _b.sent();
|
|
30200
30199
|
if (count && this._debug) {
|
|
@@ -30224,13 +30223,15 @@
|
|
|
30224
30223
|
var _this = this;
|
|
30225
30224
|
var _a;
|
|
30226
30225
|
var now = this._debug && Date.now();
|
|
30227
|
-
|
|
30226
|
+
if (!filter) {
|
|
30227
|
+
filter = this.defaultFilter();
|
|
30228
|
+
}
|
|
30228
30229
|
console.debug(this._logPrefix + "Loading user events...", filter);
|
|
30229
30230
|
filter = this.asFilter(filter);
|
|
30230
30231
|
// Force recipient to current issuer, if not admin and not specified
|
|
30231
|
-
if (isEmptyArray(filter.recipients) || !this.accountService.isAdmin()) {
|
|
30232
|
+
if (isEmptyArray(filter === null || filter === void 0 ? void 0 : filter.recipients) || !this.accountService.isAdmin()) {
|
|
30232
30233
|
var recipient = this.defaultRecipient();
|
|
30233
|
-
if (!((_a = filter.recipients) === null || _a === void 0 ? void 0 : _a.includes(recipient))) {
|
|
30234
|
+
if (!((_a = filter === null || filter === void 0 ? void 0 : filter.recipients) === null || _a === void 0 ? void 0 : _a.includes(recipient))) {
|
|
30234
30235
|
console.warn('[user-events-service] Force user event filter.recipient=' + recipient);
|
|
30235
30236
|
filter.recipients = [recipient];
|
|
30236
30237
|
}
|
|
@@ -30240,7 +30241,10 @@
|
|
|
30240
30241
|
queryName: withContent ? 'LoadAllWithContent' : 'LoadAll',
|
|
30241
30242
|
query: withContent ? this.queries.loadAllWithContent : this.queries.loadAll,
|
|
30242
30243
|
variables: {
|
|
30243
|
-
page: Object.assign({ sortBy: '
|
|
30244
|
+
page: Object.assign(Object.assign({ sortBy: 'creationDate' }, page), {
|
|
30245
|
+
// @ts-ignore
|
|
30246
|
+
sortDirection: (page.sortDirection || 'desc').toUpperCase()
|
|
30247
|
+
}),
|
|
30244
30248
|
filter: filter && filter.asPodObject()
|
|
30245
30249
|
},
|
|
30246
30250
|
arrayFieldName: 'data',
|
|
@@ -30248,12 +30252,13 @@
|
|
|
30248
30252
|
fetchPolicy: (options === null || options === void 0 ? void 0 : options.fetchPolicy) || "cache-first"
|
|
30249
30253
|
})
|
|
30250
30254
|
.pipe(operators.map(function (res) {
|
|
30251
|
-
var data = ((res === null || res === void 0 ? void 0 : res.data) || []).map(_this.processUserEvent);
|
|
30255
|
+
var data = ((res === null || res === void 0 ? void 0 : res.data) || []).map(function (value) { return _this.processUserEvent(value, _this); });
|
|
30252
30256
|
if (now) {
|
|
30253
30257
|
console.debug("" + _this._logPrefix + data.length + " user events loaded in " + (Date.now() - now) + "ms");
|
|
30254
30258
|
now = null;
|
|
30255
30259
|
}
|
|
30256
30260
|
var unreadCount = _this.unreadEvents(data);
|
|
30261
|
+
_this._count$.next(unreadCount);
|
|
30257
30262
|
return {
|
|
30258
30263
|
data: data,
|
|
30259
30264
|
total: toNumber(res === null || res === void 0 ? void 0 : res.total, unreadCount)
|
|
@@ -30284,7 +30289,7 @@
|
|
|
30284
30289
|
return [2 /*return*/, undefined];
|
|
30285
30290
|
}
|
|
30286
30291
|
if (!filter)
|
|
30287
|
-
|
|
30292
|
+
filter = this.defaultFilter();
|
|
30288
30293
|
filter = this.asFilter(filter);
|
|
30289
30294
|
if (this._debug)
|
|
30290
30295
|
console.debug(this._logPrefix + "Counting user events with filter:", filter);
|
|
@@ -30311,7 +30316,7 @@
|
|
|
30311
30316
|
return rxjs.of();
|
|
30312
30317
|
}
|
|
30313
30318
|
if (!filter)
|
|
30314
|
-
|
|
30319
|
+
filter = this.defaultFilter();
|
|
30315
30320
|
filter = this.asFilter(filter);
|
|
30316
30321
|
var withContent = (options === null || options === void 0 ? void 0 : options.withContent) === true;
|
|
30317
30322
|
if (this._debug)
|
|
@@ -30328,7 +30333,7 @@
|
|
|
30328
30333
|
var data = _b.data;
|
|
30329
30334
|
if (data && _this._debug)
|
|
30330
30335
|
console.debug(_this._logPrefix + "Received new user events:", data);
|
|
30331
|
-
var updatedData = data === null || data === void 0 ? void 0 : data.map(_this.processUserEvent);
|
|
30336
|
+
var updatedData = data === null || data === void 0 ? void 0 : data.map(function (value) { return _this.processUserEvent(value, _this); });
|
|
30332
30337
|
// Update cache
|
|
30333
30338
|
_this.insertIntoMutableCachedQueries(_this.graphql.cache, {
|
|
30334
30339
|
query: withContent ? _this.queries.loadAllWithContent : _this.queries.loadAll,
|
|
@@ -30501,12 +30506,13 @@
|
|
|
30501
30506
|
this.listeners.push(listener);
|
|
30502
30507
|
};
|
|
30503
30508
|
/* -- protected methods -- */
|
|
30504
|
-
AbstractUserEventService.prototype.processUserEvent = function (source) {
|
|
30509
|
+
AbstractUserEventService.prototype.processUserEvent = function (source, that) {
|
|
30505
30510
|
var e_2, _b;
|
|
30511
|
+
that = that || this;
|
|
30506
30512
|
// Convert json source to IUserEvent
|
|
30507
|
-
var target =
|
|
30513
|
+
var target = that.fromObject(source);
|
|
30508
30514
|
// Get listeners
|
|
30509
|
-
var listeners = (
|
|
30515
|
+
var listeners = (that.listeners || []).filter(function (listener) { return listener.onReceived; }).filter(function (listener) { return listener.accept(target); });
|
|
30510
30516
|
try {
|
|
30511
30517
|
for (var listeners_1 = __values(listeners), listeners_1_1 = listeners_1.next(); !listeners_1_1.done; listeners_1_1 = listeners_1.next()) {
|
|
30512
30518
|
var listener = listeners_1_1.value;
|
|
@@ -30514,8 +30520,8 @@
|
|
|
30514
30520
|
target = listener.onReceived(target);
|
|
30515
30521
|
}
|
|
30516
30522
|
else {
|
|
30517
|
-
if (
|
|
30518
|
-
console.debug(
|
|
30523
|
+
if (that._debug)
|
|
30524
|
+
console.debug(that._logPrefix + "Event has been rejected by a listener", source);
|
|
30519
30525
|
break;
|
|
30520
30526
|
}
|
|
30521
30527
|
}
|
|
@@ -30585,7 +30591,6 @@
|
|
|
30585
30591
|
{ type: AccountService },
|
|
30586
30592
|
{ type: NetworkService },
|
|
30587
30593
|
{ type: i1$2.TranslateService },
|
|
30588
|
-
{ type: i1$5.ToastController },
|
|
30589
30594
|
{ type: undefined },
|
|
30590
30595
|
{ type: undefined },
|
|
30591
30596
|
{ type: undefined },
|
|
@@ -30602,7 +30607,7 @@
|
|
|
30602
30607
|
var UserEventService = /** @class */ (function (_super) {
|
|
30603
30608
|
__extends(UserEventService, _super);
|
|
30604
30609
|
function UserEventService(graphql, accountService, network, translate, toastController, environment) {
|
|
30605
|
-
var _this = _super.call(this, graphql, accountService, network, translate,
|
|
30610
|
+
var _this = _super.call(this, graphql, accountService, network, translate, userEventQueries, userEventMutations, undefined, environment) || this;
|
|
30606
30611
|
_this.graphql = graphql;
|
|
30607
30612
|
_this.accountService = accountService;
|
|
30608
30613
|
_this.network = network;
|
|
@@ -30949,7 +30954,7 @@
|
|
|
30949
30954
|
UserEventNotificationList.decorators = [
|
|
30950
30955
|
{ type: i0.Component, args: [{
|
|
30951
30956
|
selector: 'app-user-event-notification-list',
|
|
30952
|
-
template: "\n<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n </ion-row>\n\n <ion-item *ngIf=\"!(userEvents | async)?.length\">\n {{'
|
|
30957
|
+
template: "\n<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n </ion-row>\n\n <ion-item *ngIf=\"!(userEvents | async)?.length\">\n {{'SOCIAL.USER_EVENT.NOTIFICATION.EMPTY' | translate}}\n </ion-item>\n <ion-item\n *ngFor=\"let userEvent of userEvents | async\"\n (click)=\"read($event, userEvent)\"\n >\n\n <ion-avatar slot=\"start\">\n\n <img *ngIf=\"userEvent.avatar; else avatarIcon\" src=\"{{ userEvent.avatar }}\">\n\n <ng-template #avatarIcon>\n <app-icon\n *ngIf=\"userEvent.avatarIcon\"\n [ref]=\"userEvent.avatarIcon\"\n height=\"40\"\n width=\"40\"\n ></app-icon>\n </ng-template>\n\n </ion-avatar>\n\n <ion-grid class=\"ion-no-margin ion-no-padding\">\n <ion-row>\n <ion-col>\n <p [class.unread]=\"!userEvent.readDate\">\n {{userEvent.message}}\n </p>\n </ion-col>\n </ion-row>\n <ion-row *ngIf=\"userEvent.actions?.length\">\n <ion-col>\n <p>\n <span *ngFor=\"let action of userEvent.actions\">\n <a\n [style.margin-right.px]=\"8\"\n [style.cursor]=\"'pointer'\"\n (click)=\"executeAction(action, userEvent)\"\n >\n {{ '➞ ' + action.name}}\n </a>\n </span>\n </p>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <app-icon\n *ngIf=\"userEvent.icon\"\n [ref]=\"userEvent.icon\"\n height=\"16\"\n width=\"16\"\n [style.vertical-align]=\"'sub'\"\n ></app-icon>\n <small>\n <span>{{userEvent.creationDate|dateFromNow}}</span>\n <span [style.color]=\"'gray'\">{{ ' | ' + (userEvent.creationDate|dateFormat:{time:true}) }}</span>\n </small>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-item>\n\n</ion-list>\n",
|
|
30953
30958
|
styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.unread{font-weight:700}"]
|
|
30954
30959
|
},] }
|
|
30955
30960
|
];
|
|
@@ -30969,7 +30974,7 @@
|
|
|
30969
30974
|
this.popoverController = popoverController;
|
|
30970
30975
|
this.cd = cd;
|
|
30971
30976
|
this.debug = false;
|
|
30972
|
-
this.titleI18n = 'SOCIAL.USER_EVENT.TITLE';
|
|
30977
|
+
this.titleI18n = 'SOCIAL.USER_EVENT.NOTIFICATION.TITLE';
|
|
30973
30978
|
this.disabled = false;
|
|
30974
30979
|
this.userEventsSubject = new rxjs.BehaviorSubject(undefined);
|
|
30975
30980
|
this._subscriptions = new rxjs.Subscription();
|
|
@@ -30978,23 +30983,33 @@
|
|
|
30978
30983
|
}
|
|
30979
30984
|
Object.defineProperty(UserEventNotificationComponent.prototype, "count", {
|
|
30980
30985
|
get: function () {
|
|
30981
|
-
|
|
30986
|
+
var _a;
|
|
30987
|
+
return (_a = this.userEventService) === null || _a === void 0 ? void 0 : _a.userEventCount.pipe(operators.map(function (value) { return value === 0 ? undefined : value; }));
|
|
30982
30988
|
},
|
|
30983
30989
|
enumerable: false,
|
|
30984
30990
|
configurable: true
|
|
30985
30991
|
});
|
|
30986
30992
|
UserEventNotificationComponent.prototype.ngOnInit = function () {
|
|
30987
30993
|
var _this = this;
|
|
30988
|
-
|
|
30989
|
-
|
|
30990
|
-
|
|
30991
|
-
|
|
30994
|
+
if (isNil(this.userEventService)) {
|
|
30995
|
+
console.warn(this._logPrefix + "No service injected");
|
|
30996
|
+
this.disabled = true;
|
|
30997
|
+
return;
|
|
30998
|
+
}
|
|
30999
|
+
// Watch first
|
|
31000
|
+
this._subscriptions.add(this.userEventService.watchAll(0, 10, 'creationDate', 'desc').subscribe(function (value) {
|
|
30992
31001
|
var data = value.data;
|
|
30993
31002
|
if (_this.debug) {
|
|
30994
31003
|
console.debug(_this._logPrefix + "Receiving user events", data);
|
|
30995
31004
|
}
|
|
30996
31005
|
_this.userEventsSubject.next(data);
|
|
30997
31006
|
}));
|
|
31007
|
+
// Then listen changes
|
|
31008
|
+
this._subscriptions.add(this.userEventService.listenChanges(undefined).subscribe(function (data) {
|
|
31009
|
+
if (_this.debug) {
|
|
31010
|
+
console.debug(_this._logPrefix + "Receiving new user events", data);
|
|
31011
|
+
}
|
|
31012
|
+
}));
|
|
30998
31013
|
this._readEvent.subscribe(function (value) {
|
|
30999
31014
|
_this.userEventService.markAsRead(value);
|
|
31000
31015
|
});
|
|
@@ -31047,7 +31062,7 @@
|
|
|
31047
31062
|
},] }
|
|
31048
31063
|
];
|
|
31049
31064
|
UserEventNotificationComponent.ctorParameters = function () { return [
|
|
31050
|
-
{ type: undefined, decorators: [{ type: i0.Inject, args: [UserEventServiceToken,] }] },
|
|
31065
|
+
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [UserEventServiceToken,] }] },
|
|
31051
31066
|
{ type: AccountService },
|
|
31052
31067
|
{ type: i1$5.PopoverController },
|
|
31053
31068
|
{ type: i0.ChangeDetectorRef }
|
|
@@ -31363,7 +31378,7 @@
|
|
|
31363
31378
|
], exports.JobProgression);
|
|
31364
31379
|
|
|
31365
31380
|
var JobProgressionServiceToken = new i0.InjectionToken('JobProgressionService');
|
|
31366
|
-
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 message\n current\n total\n
|
|
31381
|
+
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 message\n current\n total\n }\n}"], ["subscription UpdateJobProgression($id: Int!, $interval: Int){\n data: updateJobProgression(id: $id, interval: $interval) {\n id\n message\n current\n total\n }\n}"])));
|
|
31367
31382
|
var JobProgressionService = /** @class */ (function (_super) {
|
|
31368
31383
|
__extends(JobProgressionService, _super);
|
|
31369
31384
|
function JobProgressionService(graphql, environment) {
|
|
@@ -31415,7 +31430,7 @@
|
|
|
31415
31430
|
JobProgressionList.decorators = [
|
|
31416
31431
|
{ type: i0.Component, args: [{
|
|
31417
31432
|
selector: 'app-job-progression-list',
|
|
31418
|
-
template: "<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n </ion-row>\n\n <ion-item *ngIf=\"!jobProgressions?.length\">\n {{'
|
|
31433
|
+
template: "<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n </ion-row>\n\n <ion-item *ngIf=\"!jobProgressions?.length\">\n {{'SOCIAL.JOB.PROGRESSION.EMPTY' | translate}}\n </ion-item>\n <ion-item *ngFor=\"let jobProgression of jobProgressions\">\n <ion-grid class=\"ion-no-margin\">\n <ion-row>\n <ion-col>\n {{jobProgression.message}}\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-progress-bar\n [value]=\"jobProgression.total > 0 ? jobProgression.current / jobProgression.total : undefined\"\n [type]=\"jobProgression.total > 0 ? 'determinate' : 'indeterminate'\">\n </ion-progress-bar>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-item>\n\n</ion-list>\n",
|
|
31419
31434
|
styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}"]
|
|
31420
31435
|
},] }
|
|
31421
31436
|
];
|
|
@@ -31431,10 +31446,7 @@
|
|
|
31431
31446
|
this.popoverController = popoverController;
|
|
31432
31447
|
this.cd = cd;
|
|
31433
31448
|
this.debug = false;
|
|
31434
|
-
this.titleI18n = 'SOCIAL.
|
|
31435
|
-
this.autoRemove = true;
|
|
31436
|
-
this.autoHide = false;
|
|
31437
|
-
this.autoHideDelay = 1000; // millisecond
|
|
31449
|
+
this.titleI18n = 'SOCIAL.JOB.PROGRESSION.TITLE';
|
|
31438
31450
|
this.jobFinished = new i0.EventEmitter();
|
|
31439
31451
|
this.disabled = true;
|
|
31440
31452
|
this.color = 'accent';
|
|
@@ -31446,9 +31458,23 @@
|
|
|
31446
31458
|
this._logPrefix = '[job-progression] ';
|
|
31447
31459
|
}
|
|
31448
31460
|
JobProgressionComponent.prototype.ngOnInit = function () {
|
|
31461
|
+
var _a, _b, _c, _d;
|
|
31462
|
+
if (isNil(this.jobProgressionService)) {
|
|
31463
|
+
console.warn(this._logPrefix + "No service injected");
|
|
31464
|
+
}
|
|
31465
|
+
// parse options
|
|
31466
|
+
this.autoHide = toBoolean((_a = this.options) === null || _a === void 0 ? void 0 : _a.autoHide, false);
|
|
31467
|
+
this.visible = !this.autoHide;
|
|
31468
|
+
this.autoHideDelay = toNumber((_b = this.options) === null || _b === void 0 ? void 0 : _b.autoHideDelay, 1000);
|
|
31469
|
+
this.autoRemove = toBoolean((_c = this.options) === null || _c === void 0 ? void 0 : _c.autoRemove, true);
|
|
31470
|
+
this.autoRemoveDelay = toNumber((_d = this.options) === null || _d === void 0 ? void 0 : _d.autoRemoveDelay, 1000);
|
|
31449
31471
|
};
|
|
31450
31472
|
JobProgressionComponent.prototype.addJob = function (id) {
|
|
31451
31473
|
var _this = this;
|
|
31474
|
+
if (isNil(this.jobProgressionService)) {
|
|
31475
|
+
console.warn(this._logPrefix + "No service injected. Can't add a job");
|
|
31476
|
+
return;
|
|
31477
|
+
}
|
|
31452
31478
|
if (this.debug) {
|
|
31453
31479
|
console.debug(this._logPrefix + "Add job id=" + id);
|
|
31454
31480
|
}
|
|
@@ -31465,6 +31491,8 @@
|
|
|
31465
31491
|
}
|
|
31466
31492
|
return true;
|
|
31467
31493
|
}), operators.map(function (progression) {
|
|
31494
|
+
// Ensure visible
|
|
31495
|
+
_this.visible = true;
|
|
31468
31496
|
// Get current progression object
|
|
31469
31497
|
var currentProgression = _this.getProgression(id);
|
|
31470
31498
|
if (!currentProgression) {
|
|
@@ -31494,7 +31522,17 @@
|
|
|
31494
31522
|
// emit event
|
|
31495
31523
|
_this.jobFinished.emit(progression.id);
|
|
31496
31524
|
if (_this.autoRemove) {
|
|
31497
|
-
setTimeout(function () {
|
|
31525
|
+
setTimeout(function () {
|
|
31526
|
+
var _a;
|
|
31527
|
+
_this.removeJob(progression.id);
|
|
31528
|
+
// If last job
|
|
31529
|
+
if (_this.autoHide && !((_a = _this.jobProgressions) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
31530
|
+
setTimeout(function () {
|
|
31531
|
+
_this.visible = false;
|
|
31532
|
+
_this.markForCheck();
|
|
31533
|
+
}, _this.autoHideDelay);
|
|
31534
|
+
}
|
|
31535
|
+
}, _this.autoRemoveDelay);
|
|
31498
31536
|
}
|
|
31499
31537
|
}
|
|
31500
31538
|
});
|
|
@@ -31543,8 +31581,8 @@
|
|
|
31543
31581
|
JobProgressionComponent.prototype.showList = function (event) {
|
|
31544
31582
|
return __awaiter(this, void 0, void 0, function () {
|
|
31545
31583
|
var popover;
|
|
31546
|
-
return __generator(this, function (
|
|
31547
|
-
switch (
|
|
31584
|
+
return __generator(this, function (_e) {
|
|
31585
|
+
switch (_e.label) {
|
|
31548
31586
|
case 0: return [4 /*yield*/, this.popoverController.create({
|
|
31549
31587
|
component: JobProgressionList,
|
|
31550
31588
|
componentProps: {
|
|
@@ -31558,10 +31596,10 @@
|
|
|
31558
31596
|
cssClass: 'popover-large'
|
|
31559
31597
|
})];
|
|
31560
31598
|
case 1:
|
|
31561
|
-
popover =
|
|
31599
|
+
popover = _e.sent();
|
|
31562
31600
|
return [4 /*yield*/, popover.present()];
|
|
31563
31601
|
case 2:
|
|
31564
|
-
|
|
31602
|
+
_e.sent();
|
|
31565
31603
|
return [2 /*return*/];
|
|
31566
31604
|
}
|
|
31567
31605
|
});
|
|
@@ -31581,22 +31619,20 @@
|
|
|
31581
31619
|
JobProgressionComponent.decorators = [
|
|
31582
31620
|
{ type: i0.Component, args: [{
|
|
31583
31621
|
selector: 'app-job-progression',
|
|
31584
|
-
template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *ngIf=\"
|
|
31622
|
+
template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *ngIf=\"visible\"\n (click)=\"showList($event)\"\n>\n <mat-icon\n [matBadge]=\"jobProgressions?.length\"\n [matBadgeHidden]=\"!jobProgressions?.length\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n >{{ disabled || jobProgressions?.length ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *ngIf=\"jobProgressions?.length\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode\"\n [value]=\"value\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n\n",
|
|
31585
31623
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
31586
31624
|
styles: [".floating-spinner{position:absolute;top:6px;left:5px}"]
|
|
31587
31625
|
},] }
|
|
31588
31626
|
];
|
|
31589
31627
|
JobProgressionComponent.ctorParameters = function () { return [
|
|
31590
|
-
{ type: undefined, decorators: [{ type: i0.Inject, args: [JobProgressionServiceToken,] }] },
|
|
31628
|
+
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [JobProgressionServiceToken,] }] },
|
|
31591
31629
|
{ type: i1$5.PopoverController },
|
|
31592
31630
|
{ type: i0.ChangeDetectorRef }
|
|
31593
31631
|
]; };
|
|
31594
31632
|
JobProgressionComponent.propDecorators = {
|
|
31595
31633
|
debug: [{ type: i0.Input }],
|
|
31596
31634
|
titleI18n: [{ type: i0.Input }],
|
|
31597
|
-
|
|
31598
|
-
autoHide: [{ type: i0.Input }],
|
|
31599
|
-
autoHideDelay: [{ type: i0.Input }],
|
|
31635
|
+
options: [{ type: i0.Input }],
|
|
31600
31636
|
jobFinished: [{ type: i0.Output }]
|
|
31601
31637
|
};
|
|
31602
31638
|
|
|
@@ -31622,6 +31658,7 @@
|
|
|
31622
31658
|
},] }
|
|
31623
31659
|
];
|
|
31624
31660
|
|
|
31661
|
+
var SocialModuleOptionsToken = new i0.InjectionToken("SocialModuleOptions");
|
|
31625
31662
|
var SocialModule = /** @class */ (function () {
|
|
31626
31663
|
function SocialModule() {
|
|
31627
31664
|
}
|
|
@@ -33911,6 +33948,7 @@
|
|
|
33911
33948
|
exports.IsNotOnFieldModePipe = IsNotOnFieldModePipe;
|
|
33912
33949
|
exports.IsOnFieldModePipe = IsOnFieldModePipe;
|
|
33913
33950
|
exports.Job = Job;
|
|
33951
|
+
exports.JobModule = JobModule;
|
|
33914
33952
|
exports.JobProgressionComponent = JobProgressionComponent;
|
|
33915
33953
|
exports.JobProgressionService = JobProgressionService;
|
|
33916
33954
|
exports.JobProgressionServiceToken = JobProgressionServiceToken;
|
|
@@ -33951,6 +33989,7 @@
|
|
|
33951
33989
|
exports.MenuService = MenuService;
|
|
33952
33990
|
exports.MessageForm = MessageForm;
|
|
33953
33991
|
exports.MessageModal = MessageModal;
|
|
33992
|
+
exports.MessageModule = MessageModule;
|
|
33954
33993
|
exports.MessageService = MessageService;
|
|
33955
33994
|
exports.MessageTypeList = MessageTypeList;
|
|
33956
33995
|
exports.MessageTypes = MessageTypes;
|
|
@@ -34018,6 +34057,7 @@
|
|
|
34018
34057
|
exports.SharedValidators = SharedValidators;
|
|
34019
34058
|
exports.SocialErrorCodes = SocialErrorCodes;
|
|
34020
34059
|
exports.SocialModule = SocialModule;
|
|
34060
|
+
exports.SocialModuleOptionsToken = SocialModuleOptionsToken;
|
|
34021
34061
|
exports.StartableService = StartableService;
|
|
34022
34062
|
exports.StatusById = StatusById;
|
|
34023
34063
|
exports.StatusIds = StatusIds;
|
|
@@ -34046,6 +34086,7 @@
|
|
|
34046
34086
|
exports.UploadFileTestingPage = UploadFileTestingPage;
|
|
34047
34087
|
exports.UriUtils = UriUtils;
|
|
34048
34088
|
exports.UserEventFragments = UserEventFragments;
|
|
34089
|
+
exports.UserEventModule = UserEventModule;
|
|
34049
34090
|
exports.UserEventNotificationComponent = UserEventNotificationComponent;
|
|
34050
34091
|
exports.UserEventService = UserEventService;
|
|
34051
34092
|
exports.UserEventServiceToken = UserEventServiceToken;
|
|
@@ -34213,16 +34254,13 @@
|
|
|
34213
34254
|
exports.ɵh = LocalSettingsValidatorService;
|
|
34214
34255
|
exports.ɵi = AppUpdateOfflineModeCard;
|
|
34215
34256
|
exports.ɵj = AppIconComponent;
|
|
34216
|
-
exports.ɵk =
|
|
34217
|
-
exports.ɵl =
|
|
34218
|
-
exports.ɵm =
|
|
34219
|
-
exports.ɵn =
|
|
34220
|
-
exports.ɵo =
|
|
34221
|
-
exports.ɵp =
|
|
34222
|
-
exports.ɵq =
|
|
34223
|
-
exports.ɵr = MatBadgeIconTestPage;
|
|
34224
|
-
exports.ɵs = ToastTestingModule;
|
|
34225
|
-
exports.ɵt = ToastTestingPage;
|
|
34257
|
+
exports.ɵk = UserEventNotificationList;
|
|
34258
|
+
exports.ɵl = JobProgressionList;
|
|
34259
|
+
exports.ɵm = DateTestPage;
|
|
34260
|
+
exports.ɵn = NumpadTestPage;
|
|
34261
|
+
exports.ɵo = MatBadgeIconTestPage;
|
|
34262
|
+
exports.ɵp = ToastTestingModule;
|
|
34263
|
+
exports.ɵq = ToastTestingPage;
|
|
34226
34264
|
|
|
34227
34265
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
34228
34266
|
|