@sumaris-net/ngx-components 1.23.66 → 1.23.68-alpha1
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 +65 -28
- 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/src/app/core/form/entity-editor-modal.class.js +3 -3
- package/esm2015/src/app/core/form/entity-editor.class.js +3 -3
- package/esm2015/src/app/core/home/home.js +1 -1
- package/esm2015/src/app/shared/material/boolean/material.boolean.js +1 -1
- package/esm2015/src/app/shared/material/swipe/testing/swipe.test.js +6 -6
- package/esm2015/src/app/shared/pipes/date-format.pipe.js +41 -11
- package/esm2015/src/app/shared/pipes/property.pipes.js +4 -4
- package/esm2015/src/app/shared/shared.module.js +3 -3
- package/esm2015/src/app/shared/upload-file/upload-file-popover.component.js +1 -1
- package/esm2015/src/app/social/job/progression/job-progression.list.js +1 -1
- package/esm2015/src/app/social/user-event/notification/user-event-notification.list.js +1 -1
- package/fesm2015/sumaris-net.ngx-components.js +56 -26
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/form/entity-editor-modal.class.d.ts +2 -2
- package/src/app/core/form/entity-editor.class.d.ts +2 -2
- package/src/app/shared/material/swipe/testing/swipe.test.d.ts +3 -3
- package/src/app/shared/pipes/date-format.pipe.d.ts +19 -9
- package/src/app/shared/pipes/property.pipes.d.ts +2 -2
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -2312,41 +2312,76 @@
|
|
|
2312
2312
|
items: [{ type: i0.Input }]
|
|
2313
2313
|
};
|
|
2314
2314
|
|
|
2315
|
-
var
|
|
2316
|
-
function
|
|
2315
|
+
var AbstractDateFormat = /** @class */ (function () {
|
|
2316
|
+
function AbstractDateFormat(dateAdapter, translate) {
|
|
2317
2317
|
this.dateAdapter = dateAdapter;
|
|
2318
2318
|
this.translate = translate;
|
|
2319
2319
|
var translations = translate.instant(['COMMON.DATE_PATTERN', 'COMMON.DATE_TIME_PATTERN', 'COMMON.DATE_TIME_SECONDS_PATTERN']);
|
|
2320
|
-
this.
|
|
2321
|
-
this.dateTimePattern = translations['COMMON.DATE_TIME_PATTERN'];
|
|
2322
|
-
this.dateTimeSecondsPattern = translations['COMMON.DATE_TIME_SECONDS_PATTERN'];
|
|
2320
|
+
this._updateTranslations(translations);
|
|
2323
2321
|
}
|
|
2324
|
-
|
|
2322
|
+
AbstractDateFormat.prototype.transform = function (value, args) {
|
|
2325
2323
|
var pattern = args && args.pattern ||
|
|
2326
2324
|
(args && args.time ? (args.seconds ? this.dateTimeSecondsPattern : this.dateTimePattern) : this.datePattern);
|
|
2327
2325
|
// Keep original moment object, if possible (to avoid a conversion)
|
|
2326
|
+
console.debug('DEBUG DATE PATERN TRANSFORM', pattern);
|
|
2328
2327
|
var date = momentImported.isMoment(value) ? value : this.dateAdapter.parse(value, DATE_ISO_PATTERN);
|
|
2329
2328
|
return date && this.dateAdapter.format(date, pattern) || '';
|
|
2330
2329
|
};
|
|
2331
|
-
|
|
2332
|
-
|
|
2330
|
+
AbstractDateFormat.prototype._updateTranslations = function (translations) {
|
|
2331
|
+
this.datePattern = this._getTranslationValue(translations, 'COMMON.DATE_PATTERN', 'DD/MM/YYYY');
|
|
2332
|
+
this.dateTimePattern = this._getTranslationValue(translations, 'COMMON.DATE_TIME_PATTERN', 'DD/MM/YYYY HH:mm');
|
|
2333
|
+
this.dateTimeSecondsPattern = this._getTranslationValue(translations, 'COMMON.DATE_TIME_SECONDS_PATTERN', 'DD/MM/YYYY HH:mm:ss');
|
|
2334
|
+
console.debug('DEBUG DATE PATERN UPDATE', this.datePattern);
|
|
2333
2335
|
};
|
|
2334
|
-
|
|
2335
|
-
return
|
|
2336
|
+
AbstractDateFormat.prototype._getTranslationValue = function (translations, key, defaultValue) {
|
|
2337
|
+
return (translations[key] !== key) ? translations[key] : defaultValue;
|
|
2336
2338
|
};
|
|
2337
|
-
return
|
|
2339
|
+
return AbstractDateFormat;
|
|
2338
2340
|
}());
|
|
2339
|
-
DateFormatPipe
|
|
2341
|
+
var DateFormatPipe = /** @class */ (function (_super) {
|
|
2342
|
+
__extends(DateFormatPipe, _super);
|
|
2343
|
+
function DateFormatPipe(dateAdapter, translate) {
|
|
2344
|
+
return _super.call(this, dateAdapter, translate) || this;
|
|
2345
|
+
}
|
|
2346
|
+
return DateFormatPipe;
|
|
2347
|
+
}(AbstractDateFormat));
|
|
2340
2348
|
DateFormatPipe.decorators = [
|
|
2341
2349
|
{ type: i0.Pipe, args: [{
|
|
2342
2350
|
name: 'dateFormat'
|
|
2343
|
-
},] }
|
|
2344
|
-
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
2351
|
+
},] }
|
|
2345
2352
|
];
|
|
2346
2353
|
DateFormatPipe.ctorParameters = function () { return [
|
|
2347
2354
|
{ type: i1$1.MomentDateAdapter },
|
|
2348
2355
|
{ type: i1$2.TranslateService }
|
|
2349
2356
|
]; };
|
|
2357
|
+
var DateFormatService = /** @class */ (function (_super) {
|
|
2358
|
+
__extends(DateFormatService, _super);
|
|
2359
|
+
function DateFormatService(dateAdapter, translate) {
|
|
2360
|
+
var _this = _super.call(this, dateAdapter, translate) || this;
|
|
2361
|
+
// Subscribe to changes (e.g. when platform not ready yet)
|
|
2362
|
+
_this._subscription = translate.get(['COMMON.DATE_PATTERN', 'COMMON.DATE_TIME_PATTERN', 'COMMON.DATE_TIME_SECONDS_PATTERN'])
|
|
2363
|
+
.subscribe(function (translations) { return _this._updateTranslations(translations); });
|
|
2364
|
+
return _this;
|
|
2365
|
+
}
|
|
2366
|
+
DateFormatService.prototype.ngOnDestroy = function () {
|
|
2367
|
+
this._subscription.unsubscribe();
|
|
2368
|
+
};
|
|
2369
|
+
DateFormatService.prototype.format = function (date, pattern) {
|
|
2370
|
+
return this.dateAdapter.format(date, pattern);
|
|
2371
|
+
};
|
|
2372
|
+
DateFormatService.prototype.parse = function (value, parseFormat) {
|
|
2373
|
+
return momentImported.isMoment(value) ? value : this.dateAdapter.parse(value, parseFormat || DATE_ISO_PATTERN);
|
|
2374
|
+
};
|
|
2375
|
+
return DateFormatService;
|
|
2376
|
+
}(AbstractDateFormat));
|
|
2377
|
+
DateFormatService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatService_Factory() { return new DateFormatService(i0.ɵɵinject(i1$1.MomentDateAdapter), i0.ɵɵinject(i1$2.TranslateService)); }, token: DateFormatService, providedIn: "root" });
|
|
2378
|
+
DateFormatService.decorators = [
|
|
2379
|
+
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
2380
|
+
];
|
|
2381
|
+
DateFormatService.ctorParameters = function () { return [
|
|
2382
|
+
{ type: i1$1.MomentDateAdapter },
|
|
2383
|
+
{ type: i1$2.TranslateService }
|
|
2384
|
+
]; };
|
|
2350
2385
|
|
|
2351
2386
|
var moment = momentImported__namespace;
|
|
2352
2387
|
var DateDiffDurationPipe = /** @class */ (function () {
|
|
@@ -5131,7 +5166,7 @@
|
|
|
5131
5166
|
});
|
|
5132
5167
|
return PropertyFormatPipe;
|
|
5133
5168
|
}());
|
|
5134
|
-
PropertyFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyFormatPipe_Factory() { return new PropertyFormatPipe(i0.ɵɵinject(
|
|
5169
|
+
PropertyFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyFormatPipe_Factory() { return new PropertyFormatPipe(i0.ɵɵinject(DateFormatService), i0.ɵɵinject(i1$2.TranslateService)); }, token: PropertyFormatPipe, providedIn: "root" });
|
|
5135
5170
|
PropertyFormatPipe.decorators = [
|
|
5136
5171
|
{ type: i0.Pipe, args: [{
|
|
5137
5172
|
name: 'propertyFormat'
|
|
@@ -5139,7 +5174,7 @@
|
|
|
5139
5174
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
5140
5175
|
];
|
|
5141
5176
|
PropertyFormatPipe.ctorParameters = function () { return [
|
|
5142
|
-
{ type:
|
|
5177
|
+
{ type: DateFormatService },
|
|
5143
5178
|
{ type: i1$2.TranslateService }
|
|
5144
5179
|
]; };
|
|
5145
5180
|
|
|
@@ -7573,7 +7608,7 @@
|
|
|
7573
7608
|
DEFAULT_VALUE_ACCESSOR$4
|
|
7574
7609
|
],
|
|
7575
7610
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7576
|
-
styles: [":host{width:100%}.mat-form-field.mat-boolean-field-radio{margin-top:-2px}.mat-form-field.mat-boolean-field-button{margin-top:-4px}.mat-form-field .mat-form-field-buttons{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}.mat-form-field .mat-form-field-buttons .mat-form-field-button{--button-padding-end:2px;--flex-basis:calc(100% / var(--buttons-col-count, 2) - var(--button-padding-end));flex:0 1 var(--flex-basis);max-width:min(var(--flex-basis),150px);text-transform:capitalize;white-space:normal;padding-inline-end:var(--button-padding-end)!important;padding-bottom:var(--button-padding-end)!important;height:40px}"]
|
|
7611
|
+
styles: [":host{width:100%}.mat-form-field.mat-boolean-field-radio{margin-top:-2px}.mat-form-field.mat-boolean-field-button{margin-top:-4px}.mat-form-field .mat-form-field-buttons{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}.mat-form-field .mat-form-field-buttons .mat-form-field-button{--button-padding-end:2px;--flex-basis:calc(100% / var(--buttons-col-count, 2) - var(--button-padding-end));flex:0 1 var(--flex-basis);max-width:min(var(--flex-basis),150px);text-transform:capitalize;white-space:normal;-webkit-padding-end:var(--button-padding-end)!important;padding-inline-end:var(--button-padding-end)!important;padding-bottom:var(--button-padding-end)!important;height:40px}"]
|
|
7577
7612
|
},] }
|
|
7578
7613
|
];
|
|
7579
7614
|
MatBooleanField.ctorParameters = function () { return [
|
|
@@ -18665,7 +18700,7 @@
|
|
|
18665
18700
|
template: "\n<ion-content class=\"ion-no-padding\" scrollY=\"false\">\n <div class=\"modal-content\">\n <app-upload-file\n #uploader\n [uploadFn]=\"uploadFn\"\n [deleteFn]=\"deleteFn\"\n [fileExtension]=\"fileExtension\"\n [instantUpload]=\"instantUpload\"\n [uniqueFile]=\"uniqueFile\"\n [maxParallelUpload]=\"maxParallelUpload\"\n ></app-upload-file>\n </div>\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col>\n <div *ngIf=\"importing\" class=\"importing-info\">\n <ion-text color=\"medium\"><small translate>FILE.UPLOAD.IMPORTING</small></ion-text>\n <ion-spinner name=\"dots\" color=\"accent\"></ion-spinner>\n </div>\n <ion-item *ngIf=\"error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"ion-text-wrap\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n >\n <ion-label translate>COMMON.BTN_IMPORT</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n",
|
|
18666
18701
|
encapsulation: i0.ViewEncapsulation.None,
|
|
18667
18702
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
18668
|
-
styles: [".importing-info{padding-inline-start:var(--ion-padding);display:inline-flex;flex-wrap:nowrap;padding-top:8px}"]
|
|
18703
|
+
styles: [".importing-info{-webkit-padding-start:var(--ion-padding);padding-inline-start:var(--ion-padding);display:inline-flex;flex-wrap:nowrap;padding-top:8px}"]
|
|
18669
18704
|
},] }
|
|
18670
18705
|
];
|
|
18671
18706
|
UploadFilePopover.ctorParameters = function () { return [
|
|
@@ -19772,8 +19807,8 @@
|
|
|
19772
19807
|
AudioProvider,
|
|
19773
19808
|
FileService,
|
|
19774
19809
|
TranslateContextService,
|
|
19810
|
+
DateFormatService,
|
|
19775
19811
|
// Export Pipes as providers
|
|
19776
|
-
DateFormatPipe,
|
|
19777
19812
|
DateFromNowPipe,
|
|
19778
19813
|
DateDiffDurationPipe,
|
|
19779
19814
|
LatLongFormatPipe,
|
|
@@ -22633,7 +22668,7 @@
|
|
|
22633
22668
|
template: "<app-toolbar [canGoBack]=\"false\"\n visible-xs visible-sm visible-mobile>\n\n <!-- change locale button -->\n <ion-button slot=\"end\" *ngIf=\"currentLocaleCode; let code\"\n [matMenuTriggerFor]=\"localeMenu\">\n <ion-label class=\"ion-text-uppercase\"> {{ code }}</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n</app-toolbar>\n\n<!-- change locale menu -->\n<mat-menu #localeMenu=\"matMenu\">\n <button *ngFor=\"let item of locales\"\n mat-menu-item\n (click)=\"changeLanguage(item.key)\">\n <ion-label>{{item.value}}</ion-label>\n </button>\n</mat-menu>\n\n<ion-content [ngStyle]=\"contentStyle\" no-padding-xs>\n\n <!-- loading spinner -->\n <div class=\"loading-page\" [class.cdk-visually-hidden]=\"!loading\">\n <div class=\"spinner\" *ngIf=\"loading && showSpinner\">\n <p [innerHTML]=\"'COMMON.LOADING_DOTS'|translate\"></p>\n <div class=\"sk-cube1 sk-cube\"></div>\n <div class=\"sk-cube2 sk-cube\"></div>\n <div class=\"sk-cube4 sk-cube\"></div>\n <div class=\"sk-cube3 sk-cube\"></div>\n </div>\n </div>\n\n <!-- Desktop: translucent top toolbar -->\n <div hidden-xs hidden-sm hidden-mobile>\n <ion-toolbar translucent>\n <ion-buttons slot=\"start\">\n <ion-menu-toggle>\n <ion-button color=\"light\" fill=\"clear\">\n <ion-icon slot=\"icon-only\" name=\"menu\"></ion-icon>\n </ion-button>\n </ion-menu-toggle>\n </ion-buttons>\n\n <ion-buttons slot=\"end\">\n <!-- change locale button -->\n <ion-button color=\"secondary\" fill=\"solid\"\n *ngIf=\"currentLocaleCode; let code\"\n [matMenuTriggerFor]=\"localeMenu\">\n <ion-label class=\"ion-text-uppercase\"> {{ code }}</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </div>\n\n <!-- Install (and upgrade) card -->\n <app-install-upgrade-card [isLogin]=\"isLogin\"\n showInstallButton=\"true\">\n </app-install-upgrade-card>\n\n <!-- Welcome card -->\n <ion-card *ngIf=\"!loading\"\n class=\"main welcome ion-padding ion-text-center ion-align-self-center\"\n @fadeInAnimation>\n <ion-card-header>\n <ion-card-title class=\"ion-text-center\">\n <span *ngIf=\"isWeb\" [innerHTML]=\"'HOME.WELCOME_WEB'|translate: {appName: appName}\"></span>\n <span *ngIf=\"!isWeb\" [innerHTML]=\"'HOME.WELCOME_APP'|translate: {appName: appName}\"></span>\n </ion-card-title>\n <ion-card-subtitle [innerHTML]=\"description\">\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content class=\"ion-no-padding\">\n <ion-text color=\"primary\">\n <img class=\"logo\" *ngIf=\"logo\" src=\"{{ logo }}\">\n </ion-text>\n <!-- register help text -->\n <ion-text *ngIf=\"!isLogin && canRegister\">\n <br/>\n <span translate>HOME.REGISTER_HELP</span>\n </ion-text>\n </ion-card-content>\n\n <ion-footer class=\"ion-padding-top\">\n\n <!-- If NOT login -->\n <ng-container *ngIf=\"!isLogin; else loginButtons;\">\n\n <ion-button *ngIf=\"canRegister\" expand=\"block\" color=\"tertiary\" (click)=\"register()\">\n <span translate>HOME.BTN_REGISTER</span>\n </ion-button>\n <ion-button expand=\"block\" color=\"light\" [routerLink]=\"['/']\" (click)=\"login()\">\n <span translate>AUTH.BTN_LOGIN</span>\n </ion-button>\n\n </ng-container>\n\n <!-- If user login -->\n <ng-template #loginButtons>\n\n <!-- Feature buttons -->\n <ng-container *ngIf=\"$filteredButtons | async as buttons\">\n <ng-container *ngFor=\"let item of buttons\">\n <ion-button *ngIf=\"item.path\"\n expand=\"block\" color=\"tertiary\"\n [class]=\"item.cssClass\"\n [routerLink]=\"item.path\"\n routerDirection=\"root\">\n <ion-icon slot=\"start\" class=\"ion-float-start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" class=\"ion-float-start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-text>{{'HOME.BTN_DATA_ENTRY'|translate: {name: (item.title | translate) } }}</ion-text>\n </ion-button>\n\n <!-- divider -->\n <div *ngIf=\"!item.path && !item.action\" [class]=\"item.cssClass\">\n <ion-label translate>{{item.title}} </ion-label>\n </div>\n </ng-container>\n\n <!--<p *ngIf=\"buttons.length\" class=\"visible-mobile\"> </p>-->\n </ng-container>\n\n <ion-button *ngIf=\"showAccountButton\" expand=\"block\" color=\"secondary\" [routerLink]=\"['/account']\">\n <ion-icon slot=\"start\" class=\"ion-float-start\" name=\"person-circle\"></ion-icon>\n <ion-text translate>HOME.BTN_MY_ACCOUNT</ion-text>\n </ion-button>\n\n <p hidden-xs hidden-sm hidden-mobile>\n <ion-text [innerHTML]=\"'HOME.NOT_THIS_ACCOUNT_QUESTION' | translate: {displayName: accountName }\"></ion-text>\n <br/>\n <ion-text>\n <a href=\"#\" (click)=\"logout($event)\">\n <span translate>HOME.BTN_DISCONNECT</span>\n </a>\n </ion-text>\n </p>\n\n\n </ng-template>\n\n </ion-footer>\n </ion-card>\n\n <!-- Page history -->\n <ion-grid *ngIf=\"!loading && isLogin && pageHistory.length; else bottomBanner\"\n class=\"history-container ion-align-self-center\">\n <ion-row>\n <ion-col size=\"12\" size-xl=\"\" *ngFor=\"let page of pageHistory; trackBy: getPagePath\"\n class=\"ion-text-center\">\n <ion-card class=\"ion-align-self-start ion-text-start\" @fadeInAnimation>\n <ion-card-header class=\"ion-no-padding\">\n <!-- top bar -->\n <ion-card-subtitle>\n <button type=\"button\" tabindex=\"-1\"\n (click)=\"settings.removePageHistory(page.path)\"\n mat-icon-button class=\"ion-float-start ion-no-margin\">\n <mat-icon>close</mat-icon>\n </button>\n <ion-label [innerHTML]=\"page.subtitle|translate\"></ion-label>\n <ion-text class=\"ion-float-end\" [title]=\"page.time|dateFormat:{time: true}\">\n <small><ion-icon name=\"time-outline\"></ion-icon> {{ page.time|dateFromNow }}</small> \n </ion-text>\n </ion-card-subtitle>\n\n <!-- main page -->\n <ion-card-title class=\"ion-no-margin ion-no-padding\">\n <ion-item detail=\"true\"\n tappable class=\"text-1x\"\n [routerLink]=\"page.path\"\n routerDirection=\"root\" lines=\"none\">\n <!-- page icon-->\n <ion-icon *ngIf=\"page.icon\" slot=\"start\" [name]=\"page.icon\"></ion-icon>\n <mat-icon *ngIf=\"page.matIcon\" slot=\"start\">{{page.matIcon}}</mat-icon>\n\n <ion-label color=\"primary\" [innerHTML]=\"page.title\"></ion-label>\n </ion-item>\n </ion-card-title>\n </ion-card-header>\n\n <!-- children pages -->\n <ion-card-content class=\"ion-no-padding ion-padding-start\" *ngIf=\"page.children?.length\">\n <ion-list class=\"ion-no-padding\">\n <ion-item detail=\"true\"\n *ngFor=\"let childPage of page.children\"\n tappable class=\"text-1x\"\n [routerLink]=\"childPage.path\"\n routerDirection=\"root\">\n <!-- page icon-->\n <ion-icon *ngIf=\"childPage.icon\" slot=\"start\" color=\"dark\" [name]=\"childPage.icon\"></ion-icon>\n <mat-icon *ngIf=\"childPage.matIcon\" slot=\"start\" color=\"dark\">{{childPage.matIcon}}</mat-icon>\n\n <ion-label color=\"dark\" [innerHTML]=\"childPage.title\"></ion-label>\n </ion-item>\n </ion-list>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <!-- Display configured Departments logos -->\n <ng-template #bottomBanner>\n <div class=\"bottom-banner ion-text-center ion-padding\" *ngIf=\"!loadingBanner\" @fadeInAnimation>\n <a href=\"{{ item.siteUrl }}\" *ngFor=\"let item of $partners | async \">\n <img class=\"logo\" src=\"{{ item.logo }}\" alt=\"{{item.label}}\" [title]=\"item.label\" />\n </a>\n </div>\n </ng-template>\n\n\n</ion-content>\n",
|
|
22634
22669
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
22635
22670
|
animations: [fadeInAnimation, slideUpDownAnimation],
|
|
22636
|
-
styles: ["h1,h2,h3,h4,h5{white-space:normal}.center,ion-content ion-card.welcome img{text-align:center;display:inline-block}ion-content{--background:transparent;background-size:cover;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;display:inline-block;padding:15px}ion-content,ion-content .loading-page{background-color:var(--ion-color-primary)}ion-content .loading-page{display:block;height:100%;width:100%;position:absolute;z-index:5;transition:background .5s linear;-webkit-transition:background 1.5s linear}ion-content .loading-page.hidden{background-color:rgba(var(--ion-color-primary),0)}ion-content ion-card{z-index:9}ion-content ion-card ion-card-header{display:block}ion-content ion-card ion-card-header ion-card-subtitle,ion-content ion-card ion-card-header ion-card-title{display:block;width:100%}ion-content ion-card.main{min-width:240px;max-width:400px;margin-left:auto;margin-right:auto}ion-content ion-card.welcome{background-color:hsla(0,0%,100%,.7)}ion-content ion-card.welcome button{margin-top:16px}ion-content ion-card.welcome img{max-width:250px}ion-content .history-container{margin-left:auto;margin-right:auto}ion-content .history-container ion-card{display:inline-block;box-sizing:border-box;z-index:8;min-width:240px;max-width:400px;width:100%;margin-left:auto;margin-right:auto;background-color:hsla(0,0%,100%,.7)}ion-content .history-container ion-card ion-card-header ion-card-subtitle{height:40px}ion-content .history-container ion-card ion-card-header ion-card-subtitle button[float-start]{z-index:99;margin:0}ion-content .history-container ion-card ion-card-header ion-card-subtitle ion-label{line-height:40px}ion-content .history-container ion-card ion-card-header ion-card-subtitle ion-label[float-end]{padding-right:16px;font-weight:400}ion-content .history-container ion-card ion-card-header ion-card-title ion-item{--ion-item-background:$transparent;--ion-item-icon-color:var(--ion-color-primary);--ion-item-text-color:var(--ion-color-primary)}ion-content .history-container ion-card ion-card-header ion-card-title ion-item ion-icon[slot=start],ion-content .history-container ion-card ion-card-header ion-card-title ion-item mat-icon[slot=start]{margin-right:unset;margin-inline-end:16px!important;color:var(--ion-item-icon-color)!important;fill:currentColor;stroke:currentColor}ion-content .history-container ion-card ion-card-header ion-card-title ion-item ion-label,ion-content .history-container ion-card ion-card-header ion-card-title ion-item ion-text{color:var(--ion-item-text-color)!important
|
|
22671
|
+
styles: ["h1,h2,h3,h4,h5{white-space:normal}.center,ion-content ion-card.welcome img{text-align:center;display:inline-block}ion-content{--background:transparent;background-size:cover;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;display:inline-block;padding:15px}ion-content,ion-content .loading-page{background-color:var(--ion-color-primary)}ion-content .loading-page{display:block;height:100%;width:100%;position:absolute;z-index:5;transition:background .5s linear;-webkit-transition:background 1.5s linear}ion-content .loading-page.hidden{background-color:rgba(var(--ion-color-primary),0)}ion-content ion-card{z-index:9}ion-content ion-card ion-card-header{display:block}ion-content ion-card ion-card-header ion-card-subtitle,ion-content ion-card ion-card-header ion-card-title{display:block;width:100%}ion-content ion-card.main{min-width:240px;max-width:400px;margin-left:auto;margin-right:auto}ion-content ion-card.welcome{background-color:hsla(0,0%,100%,.7)}ion-content ion-card.welcome button{margin-top:16px}ion-content ion-card.welcome img{max-width:250px}ion-content .history-container{margin-left:auto;margin-right:auto}ion-content .history-container ion-card{display:inline-block;box-sizing:border-box;z-index:8;min-width:240px;max-width:400px;width:100%;margin-left:auto;margin-right:auto;background-color:hsla(0,0%,100%,.7)}ion-content .history-container ion-card ion-card-header ion-card-subtitle{height:40px}ion-content .history-container ion-card ion-card-header ion-card-subtitle button[float-start]{z-index:99;margin:0}ion-content .history-container ion-card ion-card-header ion-card-subtitle ion-label{line-height:40px}ion-content .history-container ion-card ion-card-header ion-card-subtitle ion-label[float-end]{padding-right:16px;font-weight:400}ion-content .history-container ion-card ion-card-header ion-card-title ion-item{--ion-item-background:$transparent;--ion-item-icon-color:var(--ion-color-primary);--ion-item-text-color:var(--ion-color-primary)}ion-content .history-container ion-card ion-card-header ion-card-title ion-item ion-icon[slot=start],ion-content .history-container ion-card ion-card-header ion-card-title ion-item mat-icon[slot=start]{margin-right:unset;-webkit-margin-end:16px!important;margin-inline-end:16px!important;color:var(--ion-item-icon-color)!important;fill:currentColor;stroke:currentColor}ion-content .history-container ion-card ion-card-header ion-card-title ion-item ion-label,ion-content .history-container ion-card ion-card-header ion-card-title ion-item ion-text{color:var(--ion-item-text-color)!important;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}ion-content .history-container ion-card ion-card-content ion-list{--ion-item-background:var(--ion-color-transparent)}ion-content .history-container ion-card ion-card-content ion-list ion-item{--ion-item-icon-color:var(--ion-color-dark);--ion-item-text-color:var(--ion-color-dark)}ion-content .history-container ion-card ion-card-content ion-list ion-item ion-icon[slot=start],ion-content .history-container ion-card ion-card-content ion-list ion-item mat-icon[slot=start]{color:var(--ion-item-icon-color)!important;fill:currentColor;stroke:currentColor;margin-right:unset;-webkit-margin-end:16px!important;margin-inline-end:16px!important}ion-content .history-container ion-card ion-card-content ion-list ion-item ion-label,ion-content .history-container ion-card ion-card-content ion-list ion-item ion-text{color:var(--ion-item-text-color)!important}ion-content .bottom-banner{background-color:hsla(0,0%,100%,.7);min-width:240px;z-index:0;position:absolute;left:16px;right:16px;bottom:16px}ion-content .bottom-banner img.logo{max-height:50px;margin-left:8px}ion-content ion-text{text-align:center}@media screen and (max-width:575px){ion-content ion-card{min-width:160px;width:calc(100% - 20px);max-width:100%;margin-left:10px;margin-right:10px}ion-content ion-card h1{margin-top:0;font-size:20px}ion-content ion-card ion-card-content ion-button{margin-top:8px}ion-content .bottom-banner{display:block;position:unset}ion-content .bottom-banner img.logo{max-height:30px}}@media screen and (max-width:767px) and (min-width:576px){ion-content{min-height:555px}ion-content .bottom-banner img.logo{max-height:40px}}@media screen and (min-width:768px){ion-content{min-height:calc(100% - 100px)}}"]
|
|
22637
22672
|
},] }
|
|
22638
22673
|
];
|
|
22639
22674
|
HomePage.ctorParameters = function () { return [
|
|
@@ -29462,7 +29497,7 @@
|
|
|
29462
29497
|
_this.settings = injector.get(LocalSettingsService);
|
|
29463
29498
|
_this.errorTranslator = injector.get(FormErrorTranslator);
|
|
29464
29499
|
_this.cd = injector.get(i0.ChangeDetectorRef);
|
|
29465
|
-
_this.dateFormat = injector.get(
|
|
29500
|
+
_this.dateFormat = injector.get(DateFormatService);
|
|
29466
29501
|
_this.toastController = injector.get(i1$5.ToastController);
|
|
29467
29502
|
_this._enableListenChanges = options.enableListenChanges;
|
|
29468
29503
|
_this._listenIntervalInSeconds = options.listenIntervalInSeconds;
|
|
@@ -30303,7 +30338,7 @@
|
|
|
30303
30338
|
_this.settings = injector.get(LocalSettingsService);
|
|
30304
30339
|
_this.errorTranslator = injector.get(FormErrorTranslator);
|
|
30305
30340
|
_this.cd = injector.get(i0.ChangeDetectorRef);
|
|
30306
|
-
_this.dateFormat = injector.get(
|
|
30341
|
+
_this.dateFormat = injector.get(DateFormatService);
|
|
30307
30342
|
_this.modalCtrl = injector.get(i1$5.ModalController);
|
|
30308
30343
|
_this.i18nContext = {
|
|
30309
30344
|
prefix: options.i18nPrefix,
|
|
@@ -31801,7 +31836,7 @@
|
|
|
31801
31836
|
selector: 'app-user-event-notification-list',
|
|
31802
31837
|
template: "<ion-content>\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-col class=\"top-action\" *ngIf=\"$items|async|isNotEmptyArray\">\n <ion-text color=\"primary\">\n <a (click)=\"markAllAsRead($event)\">{{'SOCIAL.USER_EVENT.NOTIFICATION.READ_ALL' | translate}}</a>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <ion-item\n *ngFor=\"let item of $items | async; trackBy: trackByFn; last as last\"\n [lines]=\"last ? 'none' : undefined\"\n [class.unread]=\"!item.readDate\"\n [class.tappable]=\"item.actions|arrayFilter:isDefaultAction|isNotEmptyArray\"\n (click)=\"click($event, item)\">\n\n <ion-avatar slot=\"start\">\n\n <img *ngIf=\"item.avatar; else avatarIcon\" src=\"{{ item.avatar }}\">\n\n <ng-template #avatarIcon>\n <app-icon\n *ngIf=\"item.avatarIcon; else generateIcon\"\n [ref]=\"item.avatarIcon\"\n height=\"40\"\n width=\"40\"\n ></app-icon>\n </ng-template>\n\n <ng-template #generateIcon>\n <div class=\"avatar\" *ngIf=\"item.avatarJdenticon\">\n <svg width=\"40\" width=\"40\" [data-jdenticon-value]=\"item.avatarJdenticon\"></svg>\n </div>\n </ng-template>\n\n </ion-avatar>\n\n <ion-grid class=\"ion-no-margin ion-no-padding message\">\n <ion-row>\n <ion-col size=\"12\">\n <p [class.unread]=\"!item.readDate\" [innerHTML]=\"item.message\"></p>\n </ion-col>\n </ion-row>\n\n <!-- date -->\n <ion-row>\n <ion-col size=\"12\">\n <app-icon\n *ngIf=\"item.icon\"\n [ref]=\"item.icon\"\n height=\"16\"\n width=\"16\"\n style=\"vertical-align: sub; margin-right: 3px\"\n ></app-icon>\n <small>\n <span>{{item.creationDate|dateFromNow}}</span>\n <span style=\"color: gray\">{{ ' | ' + (item.creationDate|dateFormat:{time:true}) }}</span>\n </small>\n </ion-col>\n </ion-row>\n\n <!-- actions -->\n <ion-row *ngIf=\"item.actions|isNotEmptyArray\">\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ng-container *ngFor=\"let action of item.actions\">\n <a *ngIf=\"!action.default\" class=\"action\" (click)=\"executeAction($event, action, item)\" [title]=\"(action.title || action.name) |translate\">\n <app-icon *ngIf=\"action.iconRef\" slot=\"start\" height=\"20\" width=\"20\" [ref]=\"action.iconRef\"></app-icon>\n <span>{{ action.name | translate }}</span>\n </a>\n </ng-container>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n <mat-icon slot=\"end\" *ngIf=\"item.actions|arrayFilter: isDefaultAction|isNotEmptyArray\">chevron_right</mat-icon>\n </ion-item>\n\n <!-- loading -->\n <ng-container *ngIf=\"!($items|async); else notLoading\">\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <ng-template #notLoading>\n <!-- no result -->\n <ion-item *ngIf=\"$items|async|isEmptyArray\" lines=\"none\">\n <ion-text color=\"dark\" class=\"text-italic\">{{'SOCIAL.USER_EVENT.NOTIFICATION.EMPTY' | translate}}</ion-text>\n </ion-item>\n\n <!-- Fetching more -->\n <ng-container *ngIf=\"fetchingMore; else infiniteLoop\" lines=\"none\" disabled>\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <!-- Infinite loop -->\n <ng-template #infiniteLoop>\n <ng-container *ngIf=\"canFetchMore\" lines=\"none\" disabled\n [ngTemplateOutlet]=\"loadingItem\">\n </ng-container>\n </ng-template>\n </ng-template>\n\n <!-- footer -->\n <ion-row class=\"ion-list-footer column\">\n <ion-col>\n <ion-text *ngIf=\"$itemCount|async; let count\"\n class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n </ion-list>\n</ion-content>\n\n<!-- loading -->\n<ng-template #loadingItem>\n <ion-item lines=\"none\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </ion-item>\n</ng-template>\n",
|
|
31803
31838
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
31804
|
-
styles: [":host(.popover-viewport){overflow-y:auto;user-select:none;max-height:calc(90vh - 20px)}ion-list ion-item.tappable{cursor:pointer}ion-list ion-item.tappable:hover{--ion-item-background:var(--ion-item-background-color-hover)}.message{font-size:.9em}.message p{margin-top:5px;margin-bottom:5px}.message p.unread{font-weight:700}.top-action{text-align:end;margin-right:8px}.top-action a{cursor:pointer;color:var(--ion-color-contrast)}.top-action a:hover{text-decoration:underline}a.action{font-size:.9em;margin-right:10px;cursor:pointer}a.action:hover span{text-decoration:underline}a.action app-icon{vertical-align:middle}ion-avatar .avatar svg,ion-avatar img{border:1px solid rgba(var(--ion-color-secondary-rgb,.5));border-radius:50%}"]
|
|
31839
|
+
styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none;max-height:calc(90vh - 20px)}ion-list ion-item.tappable{cursor:pointer}ion-list ion-item.tappable:hover{--ion-item-background:var(--ion-item-background-color-hover)}.message{font-size:.9em}.message p{margin-top:5px;margin-bottom:5px}.message p.unread{font-weight:700}.top-action{text-align:end;margin-right:8px}.top-action a{cursor:pointer;color:var(--ion-color-contrast)}.top-action a:hover{text-decoration:underline}a.action{font-size:.9em;margin-right:10px;cursor:pointer}a.action:hover span{text-decoration:underline}a.action app-icon{vertical-align:middle}ion-avatar .avatar svg,ion-avatar img{border:1px solid rgba(var(--ion-color-secondary-rgb,.5));border-radius:50%}"]
|
|
31805
31840
|
},] }
|
|
31806
31841
|
];
|
|
31807
31842
|
UserEventNotificationList.ctorParameters = function () { return [
|
|
@@ -32320,7 +32355,7 @@
|
|
|
32320
32355
|
{ type: i0.Component, args: [{
|
|
32321
32356
|
selector: 'app-job-progression-list',
|
|
32322
32357
|
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\" class=\"ion-item-job-progression\">\n <ion-grid class=\"ion-no-margin\">\n <ion-row class=\"name\">\n <ion-col>\n {{jobProgression.name}}\n </ion-col>\n </ion-row>\n <ion-row class=\"message\">\n <ion-col>\n {{jobProgression.message}}\n </ion-col>\n </ion-row>\n <ion-row class=\"progress-bar\">\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",
|
|
32323
|
-
styles: [":host(.popover-viewport){overflow-y:auto;user-select:none}.ion-item-job-progression{font-size:.9em}.ion-item-job-progression .message{font-style:italic}.ion-item-job-progression .progress-bar{margin-top:5px;margin-bottom:5px}"]
|
|
32358
|
+
styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ion-item-job-progression{font-size:.9em}.ion-item-job-progression .message{font-style:italic}.ion-item-job-progression .progress-bar{margin-top:5px;margin-bottom:5px}"]
|
|
32324
32359
|
},] }
|
|
32325
32360
|
];
|
|
32326
32361
|
JobProgressionList.ctorParameters = function () { return []; };
|
|
@@ -33492,9 +33527,9 @@
|
|
|
33492
33527
|
|
|
33493
33528
|
var moment$7 = momentImported__namespace;
|
|
33494
33529
|
var SwipeTestPage = /** @class */ (function () {
|
|
33495
|
-
function SwipeTestPage(formBuilder,
|
|
33530
|
+
function SwipeTestPage(formBuilder, dateFormat) {
|
|
33496
33531
|
this.formBuilder = formBuilder;
|
|
33497
|
-
this.
|
|
33532
|
+
this.dateFormat = dateFormat;
|
|
33498
33533
|
this.$dates = new rxjs.BehaviorSubject(undefined);
|
|
33499
33534
|
this._today = moment$7().startOf('day');
|
|
33500
33535
|
this.form = formBuilder.group({
|
|
@@ -33539,7 +33574,7 @@
|
|
|
33539
33574
|
/* -- protected methods -- */
|
|
33540
33575
|
SwipeTestPage.prototype.displayDate = function () {
|
|
33541
33576
|
var _this = this;
|
|
33542
|
-
return function (obj) { return _this.
|
|
33577
|
+
return function (obj) { return _this.dateFormat.transform(obj, { pattern: 'dddd L' }).toString(); };
|
|
33543
33578
|
};
|
|
33544
33579
|
SwipeTestPage.prototype.compareDate = function () {
|
|
33545
33580
|
return function (d1, d2) { return d1 && d2 && d1.isSame(d2) || false; };
|
|
@@ -33554,7 +33589,7 @@
|
|
|
33554
33589
|
];
|
|
33555
33590
|
SwipeTestPage.ctorParameters = function () { return [
|
|
33556
33591
|
{ type: i1.FormBuilder },
|
|
33557
|
-
{ type:
|
|
33592
|
+
{ type: DateFormatService }
|
|
33558
33593
|
]; };
|
|
33559
33594
|
|
|
33560
33595
|
var moment$8 = momentImported__namespace;
|
|
@@ -35547,6 +35582,7 @@
|
|
|
35547
35582
|
exports.APP_TESTING_PAGES = APP_TESTING_PAGES;
|
|
35548
35583
|
exports.APP_USER_EVENT_SERVICE = APP_USER_EVENT_SERVICE;
|
|
35549
35584
|
exports.AboutModal = AboutModal;
|
|
35585
|
+
exports.AbstractDateFormat = AbstractDateFormat;
|
|
35550
35586
|
exports.AbstractUserEventService = AbstractUserEventService;
|
|
35551
35587
|
exports.AccountPage = AccountPage;
|
|
35552
35588
|
exports.AccountService = AccountService;
|
|
@@ -35625,6 +35661,7 @@
|
|
|
35625
35661
|
exports.DEFAULT_REQUIRED_COLUMNS = DEFAULT_REQUIRED_COLUMNS;
|
|
35626
35662
|
exports.DateDiffDurationPipe = DateDiffDurationPipe;
|
|
35627
35663
|
exports.DateFormatPipe = DateFormatPipe;
|
|
35664
|
+
exports.DateFormatService = DateFormatService;
|
|
35628
35665
|
exports.DateFromNowPipe = DateFromNowPipe;
|
|
35629
35666
|
exports.DateTimeTestPage = DateTimeTestPage;
|
|
35630
35667
|
exports.DateUtils = DateUtils;
|