@sumaris-net/ngx-components 1.21.8 → 1.22.1
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 +4056 -2920
- 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/doc/changelog.md +6 -0
- package/esm2015/public_api.js +8 -1
- package/esm2015/src/app/core/core.module.js +5 -5
- package/esm2015/src/app/core/icon/icon.component.js +5 -2
- package/esm2015/src/app/core/icon/icon.module.js +26 -0
- package/esm2015/src/app/core/menu/menu.component.js +9 -5
- package/esm2015/src/app/core/menu/menu.model.js +3 -1
- package/esm2015/src/app/core/menu/menu.module.js +4 -2
- package/esm2015/src/app/shared/pipes/date-diff-duration.pipe.js +9 -5
- package/esm2015/src/app/shared/types.js +1 -1
- package/esm2015/src/app/social/job/job.model.js +26 -0
- package/esm2015/src/app/social/job/job.module.js +25 -0
- package/esm2015/src/app/social/job/job.service.js +54 -0
- package/esm2015/src/app/social/job/progression/job-progression.component.js +200 -0
- package/esm2015/src/app/social/job/progression/job-progression.list.js +20 -0
- package/esm2015/src/app/social/message/message.module.js +25 -0
- package/esm2015/src/app/social/social.errors.js +5 -2
- package/esm2015/src/app/social/social.module.js +10 -15
- package/esm2015/src/app/social/user-event/notification/user-event-notification.component.js +89 -0
- package/esm2015/src/app/social/user-event/notification/user-event-notification.list.js +78 -0
- package/esm2015/src/app/social/user-event/testing/user-event.testing.service.js +73 -0
- package/esm2015/src/app/social/user-event/user-event.model.js +58 -2
- package/esm2015/src/app/social/user-event/user-event.module.js +33 -0
- package/esm2015/src/app/social/user-event/user-event.service.js +412 -173
- package/esm2015/src/app/social/user-event/user-events.table.js +18 -13
- package/esm2015/sumaris-net.ngx-components.js +17 -13
- package/fesm2015/sumaris-net.ngx-components.js +3269 -2374
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +7 -0
- package/src/app/core/icon/icon.component.d.ts +4 -4
- package/src/app/core/icon/icon.module.d.ts +2 -0
- package/src/app/core/menu/menu.component.d.ts +7 -5
- package/src/app/core/menu/menu.model.d.ts +3 -0
- package/src/app/shared/material/badge/badge-icon.test.d.ts +1 -1
- package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +6 -2
- package/src/app/shared/types.d.ts +4 -0
- package/src/app/social/job/job.model.d.ts +33 -0
- package/src/app/social/job/job.module.d.ts +2 -0
- package/src/app/social/job/job.service.d.ts +23 -0
- package/src/app/social/job/progression/job-progression.component.d.ts +44 -0
- package/src/app/social/job/progression/job-progression.list.d.ts +12 -0
- package/src/app/social/message/message.module.d.ts +2 -0
- package/src/app/social/social.errors.d.ts +3 -0
- package/src/app/social/social.module.d.ts +8 -0
- package/src/app/social/user-event/notification/user-event-notification.component.d.ts +22 -0
- package/src/app/social/user-event/notification/user-event-notification.list.d.ts +30 -0
- package/src/app/social/user-event/testing/user-event.testing.service.d.ts +35 -0
- package/src/app/social/user-event/user-event.model.d.ts +52 -8
- package/src/app/social/user-event/user-event.module.d.ts +2 -0
- package/src/app/social/user-event/user-event.service.d.ts +101 -51
- package/src/app/social/user-event/user-events.table.d.ts +6 -6
- package/src/assets/i18n/en-US.json +17 -3
- package/src/assets/i18n/en.json +18 -3
- package/src/assets/i18n/fr.json +17 -2
- package/src/theme/_ngx-components.scss +8 -0
- package/sumaris-net.ngx-components.d.ts +16 -12
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Injectable, Pipe } from '@angular/core';
|
|
2
|
+
import * as momentImported from 'moment';
|
|
2
3
|
import { DateAdapter } from '@angular/material/core';
|
|
3
4
|
import { DATE_ISO_PATTERN } from '../constants';
|
|
4
5
|
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
-
import * as momentImported from 'moment';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@angular/material/core";
|
|
8
8
|
import * as i2 from "@ngx-translate/core";
|
|
@@ -19,17 +19,21 @@ export class DateDiffDurationPipe {
|
|
|
19
19
|
return '';
|
|
20
20
|
const startDate = this.dateAdapter.parse(value.startValue, DATE_ISO_PATTERN);
|
|
21
21
|
const endDate = this.dateAdapter.parse(value.endValue, DATE_ISO_PATTERN);
|
|
22
|
-
return this.format(startDate, endDate);
|
|
22
|
+
return this.format(startDate, endDate, args);
|
|
23
23
|
}
|
|
24
|
-
format(startDate, endDate) {
|
|
24
|
+
format(startDate, endDate, args) {
|
|
25
25
|
const duration = moment.duration(endDate.diff(startDate));
|
|
26
26
|
if (duration.asMinutes() < 0)
|
|
27
27
|
return '';
|
|
28
|
+
const withSeconds = args === null || args === void 0 ? void 0 : args.seconds;
|
|
28
29
|
const timeDuration = moment(0)
|
|
29
30
|
.hour(duration.hours())
|
|
30
31
|
.minute(duration.minutes());
|
|
32
|
+
if (withSeconds) {
|
|
33
|
+
timeDuration.second(duration.seconds());
|
|
34
|
+
}
|
|
31
35
|
const days = Math.floor(duration.asDays());
|
|
32
|
-
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
|
|
36
|
+
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format(withSeconds ? 'HH:mm:ss' : 'HH:mm');
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
DateDiffDurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(i0.ɵɵinject(i1.DateAdapter), i0.ɵɵinject(i2.TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
@@ -43,4 +47,4 @@ DateDiffDurationPipe.ctorParameters = () => [
|
|
|
43
47
|
{ type: DateAdapter },
|
|
44
48
|
{ type: TranslateService }
|
|
45
49
|
];
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kaWZmLWR1cmF0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9kYXRlLWRpZmYtZHVyYXRpb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxLQUFLLGNBQWMsTUFBTSxRQUFRLENBQUM7QUFFekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUV2RCxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUM7QUFNOUIsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUNVLFdBQWdDLEVBQ2hDLFNBQTJCO1FBRDNCLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUVuQyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRCxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlFLEVBQUUsSUFBNEI7UUFDdkcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXBELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFekUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFpQixFQUFFLE9BQWUsRUFBRSxJQUEyQjtRQUNwRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE9BQU8sQ0FBQztRQUVsQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDdEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLElBQUksV0FBVyxFQUFFO1lBQ2YsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN6QztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVILENBQUM7Ozs7WUF2Q0YsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxrQkFBa0I7YUFDekI7WUFDQSxVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzs7WUFUdkIsV0FBVztZQUVYLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIG1vbWVudEltcG9ydGVkIGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IERBVEVfSVNPX1BBVFRFUk4gfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5jb25zdCBtb21lbnQgPSBtb21lbnRJbXBvcnRlZDtcblxuQFBpcGUoe1xuICBuYW1lOiAnZGF0ZURpZmZEdXJhdGlvbidcbn0pXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBEYXRlRGlmZkR1cmF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHByb3RlY3RlZCBkYXlVbml0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8TW9tZW50PixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuXG4gICAgdGhpcy5kYXlVbml0ID0gdHJhbnNsYXRlLmluc3RhbnQoJ0NPTU1PTi5EQVlfVU5JVCcpO1xuICAgIHRyYW5zbGF0ZS5nZXQoJ0NPTU1PTi5EQVlfVU5JVCcpLnN1YnNjcmliZShkYXlVbml0ID0+IHRoaXMuZGF5VW5pdCA9IGRheVVuaXQpO1xuICB9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiB7IHN0YXJ0VmFsdWU6IHN0cmluZyB8IE1vbWVudDsgZW5kVmFsdWU6IHN0cmluZyB8IE1vbWVudCB9LCBhcmdzPzogeyBzZWNvbmRzPzogYm9vbGVhbiB9KTogc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIXZhbHVlLnN0YXJ0VmFsdWUgfHwgIXZhbHVlLmVuZFZhbHVlKSByZXR1cm4gJyc7XG5cbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLmRhdGVBZGFwdGVyLnBhcnNlKHZhbHVlLnN0YXJ0VmFsdWUsIERBVEVfSVNPX1BBVFRFUk4pO1xuICAgIGNvbnN0IGVuZERhdGUgPSB0aGlzLmRhdGVBZGFwdGVyLnBhcnNlKHZhbHVlLmVuZFZhbHVlLCBEQVRFX0lTT19QQVRURVJOKTtcblxuICAgIHJldHVybiB0aGlzLmZvcm1hdChzdGFydERhdGUsIGVuZERhdGUsIGFyZ3MpO1xuICB9XG5cbiAgZm9ybWF0KHN0YXJ0RGF0ZTogTW9tZW50LCBlbmREYXRlOiBNb21lbnQsIGFyZ3M6IHsgc2Vjb25kcz86IGJvb2xlYW4gfSk6IHN0cmluZyB7XG4gICAgY29uc3QgZHVyYXRpb24gPSBtb21lbnQuZHVyYXRpb24oZW5kRGF0ZS5kaWZmKHN0YXJ0RGF0ZSkpO1xuICAgIGlmIChkdXJhdGlvbi5hc01pbnV0ZXMoKSA8IDApIHJldHVybiAnJztcbiAgICBjb25zdCB3aXRoU2Vjb25kcyA9IGFyZ3M/LnNlY29uZHM7XG5cbiAgICBjb25zdCB0aW1lRHVyYXRpb24gPSBtb21lbnQoMClcbiAgICAgIC5ob3VyKGR1cmF0aW9uLmhvdXJzKCkpXG4gICAgICAubWludXRlKGR1cmF0aW9uLm1pbnV0ZXMoKSk7XG4gICAgaWYgKHdpdGhTZWNvbmRzKSB7XG4gICAgICB0aW1lRHVyYXRpb24uc2Vjb25kKGR1cmF0aW9uLnNlY29uZHMoKSk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoZHVyYXRpb24uYXNEYXlzKCkpO1xuICAgIHJldHVybiAoZGF5cyA+IDAgPyBkYXlzLnRvU3RyaW5nKCkgKyAodGhpcy5kYXlVbml0ICsgJyAnKSA6ICcnKSArIHRpbWVEdXJhdGlvbi5mb3JtYXQod2l0aFNlY29uZHMgPyAnSEg6bW06c3MnIDogJ0hIOm1tJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBQcmVkZWZpbmVkQ29sb3JzIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIEtleVR5cGUgPSBzdHJpbmcgfCBudW1iZXI7XG5leHBvcnQgZGVjbGFyZSB0eXBlIEtleVZhbHVlVHlwZTxUPiA9IHtba2V5IGluIEtleVR5cGVdOiBUfTtcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBLZXlzRW51bTxUPiA9IHsgW1AgaW4ga2V5b2YgUmVxdWlyZWQ8VD5dOiBib29sZWFuIH07XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBPYmplY3RNYXA8TyA9IGFueT4ge1xuICBba2V5OiBzdHJpbmddOiBPO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgT2JqZWN0TWFwRW50cnk8TyA9IGFueT4ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU/OiBPO1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFByb3BlcnRpZXNNYXAgPSBPYmplY3RNYXA8c3RyaW5nPjtcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBQcm9wZXJ0eSA9IE9iamVjdE1hcEVudHJ5PHN0cmluZz47XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgUHJvcGVydGllc0FycmF5ID0gUHJvcGVydHlbXTtcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBBcHBDb2xvcnMgPSBQcmVkZWZpbmVkQ29sb3JzIHwgVGhlbWVQYWxldHRlIHwgc3RyaW5nO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSWNvblJlZiB7XG4gIGljb24/OiBzdHJpbmc7IC8vIEFuIGlvbi1pY29uIG5hbWVcbiAgbWF0SWNvbj86IHN0cmluZzsgLy8gQSBtYXQgaWNvblxuICBtYXRTdmdJY29uPzogc3RyaW5nOyAvLyBBIG1hdCBTVkcgaWNvblxuICBjb2xvcj86IEFwcENvbG9ycztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var JobProgression_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { EntityClass } from '../../core/services/model/entity.decorators';
|
|
4
|
+
import { Entity } from '../../core/services/model/entity.model';
|
|
5
|
+
// todo use entity
|
|
6
|
+
export class Job {
|
|
7
|
+
}
|
|
8
|
+
// @dynamic
|
|
9
|
+
let JobProgression = JobProgression_1 = class JobProgression extends Entity {
|
|
10
|
+
constructor(id) {
|
|
11
|
+
super(JobProgression_1.TYPENAME);
|
|
12
|
+
this.id = id;
|
|
13
|
+
}
|
|
14
|
+
fromObject(source) {
|
|
15
|
+
super.fromObject(source);
|
|
16
|
+
this.name = source.name;
|
|
17
|
+
this.message = source.message;
|
|
18
|
+
this.current = source.current;
|
|
19
|
+
this.total = source.total;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
JobProgression = JobProgression_1 = __decorate([
|
|
23
|
+
EntityClass({ typename: 'JobProgressionVO' })
|
|
24
|
+
], JobProgression);
|
|
25
|
+
export { JobProgression };
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvam9iL2pvYi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFlaEUsa0JBQWtCO0FBQ2xCLE1BQU0sT0FBTyxHQUFHO0NBU2Y7QUFFRCxXQUFXO0lBRUUsY0FBYyw0QkFBZCxjQUFlLFNBQVEsTUFBc0I7SUFVeEQsWUFBWSxFQUFXO1FBQ3JCLEtBQUssQ0FBQyxnQkFBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFXO1FBQ3BCLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7Q0FDRixDQUFBO0FBdEJZLGNBQWM7SUFEMUIsV0FBVyxDQUFDLEVBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFDLENBQUM7R0FDL0IsY0FBYyxDQXNCMUI7U0F0QlksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBFbnRpdHlDbGFzcyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5LmRlY29yYXRvcnMnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuXG5leHBvcnQgdHlwZSBKb2JTdGF0dXMgPSAnUEVORElORycgfCAnUlVOTklORycgfCAnU1VDQ0VTUycgfCAnRVJST1InIHwgJ0ZBSUxFRCcgfCAnV0FSTklORycgfCAnQ0FOQ0VMTEVEJztcblxuZXhwb3J0IGludGVyZmFjZSBJSm9iIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHN0YXR1czogSm9iU3RhdHVzO1xuICBzdGFydERhdGU6IE1vbWVudDtcbiAgZW5kRGF0ZTogTW9tZW50O1xuICBjb25maWd1cmF0aW9uOiBzdHJpbmc7XG4gIHJlcG9ydDogc3RyaW5nO1xufVxuXG4vLyB0b2RvIHVzZSBlbnRpdHlcbmV4cG9ydCBjbGFzcyBKb2IgaW1wbGVtZW50cyBJSm9iIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHN0YXR1czogSm9iU3RhdHVzO1xuICBzdGFydERhdGU6IE1vbWVudDtcbiAgZW5kRGF0ZTogTW9tZW50O1xuICBjb25maWd1cmF0aW9uOiBzdHJpbmc7XG4gIHJlcG9ydDogc3RyaW5nO1xufVxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHt0eXBlbmFtZTogJ0pvYlByb2dyZXNzaW9uVk8nfSlcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvbiBleHRlbmRzIEVudGl0eTxKb2JQcm9ncmVzc2lvbj4ge1xuXG4gIHN0YXRpYyBmcm9tT2JqZWN0OiAoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpID0+IEpvYlByb2dyZXNzaW9uO1xuXG4gIGlkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBjdXJyZW50OiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoaWQ/OiBudW1iZXIpIHtcbiAgICBzdXBlcihKb2JQcm9ncmVzc2lvbi5UWVBFTkFNRSk7XG4gICAgdGhpcy5pZCA9IGlkO1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSkge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB0aGlzLm5hbWUgPSBzb3VyY2UubmFtZTtcbiAgICB0aGlzLm1lc3NhZ2UgPSBzb3VyY2UubWVzc2FnZTtcbiAgICB0aGlzLmN1cnJlbnQgPSBzb3VyY2UuY3VycmVudDtcbiAgICB0aGlzLnRvdGFsID0gc291cmNlLnRvdGFsO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { SharedModule } from '../../shared/shared.module';
|
|
5
|
+
import { JobProgressionComponent } from './progression/job-progression.component';
|
|
6
|
+
import { JobProgressionList } from './progression/job-progression.list';
|
|
7
|
+
export class JobModule {
|
|
8
|
+
}
|
|
9
|
+
JobModule.decorators = [
|
|
10
|
+
{ type: NgModule, args: [{
|
|
11
|
+
imports: [
|
|
12
|
+
CommonModule,
|
|
13
|
+
SharedModule,
|
|
14
|
+
TranslateModule.forChild(),
|
|
15
|
+
],
|
|
16
|
+
declarations: [
|
|
17
|
+
JobProgressionComponent,
|
|
18
|
+
JobProgressionList
|
|
19
|
+
],
|
|
20
|
+
exports: [
|
|
21
|
+
JobProgressionComponent
|
|
22
|
+
]
|
|
23
|
+
},] }
|
|
24
|
+
];
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi9qb2IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFnQnhFLE1BQU0sT0FBTyxTQUFTOzs7WUFkckIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFlBQVk7b0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtpQkFDM0I7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHVCQUF1QjtvQkFDdkIsa0JBQWtCO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsdUJBQXVCO2lCQUN4QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50JztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uTGlzdCB9IGZyb20gJy4vcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmxpc3QnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNoYXJlZE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgSm9iUHJvZ3Jlc3Npb25Db21wb25lbnQsXG4gICAgSm9iUHJvZ3Jlc3Npb25MaXN0XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBKb2JQcm9ncmVzc2lvbkNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEpvYk1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
|
|
2
|
+
import { JobProgression } from './job.model';
|
|
3
|
+
import { BaseGraphqlService } from '../../core/services/base-graphql-service.class';
|
|
4
|
+
import { GraphqlService } from '../../core/graphql/graphql.service';
|
|
5
|
+
import { Environment, ENVIRONMENT } from '../../../environments/environment.class';
|
|
6
|
+
import { gql } from '@apollo/client/core';
|
|
7
|
+
import { isNil, toNumber } from '../../shared/functions';
|
|
8
|
+
import { map } from 'rxjs/operators';
|
|
9
|
+
import { SocialErrorCodes } from '../social.errors';
|
|
10
|
+
export const JobProgressionServiceToken = new InjectionToken('JobProgressionService');
|
|
11
|
+
const jobProgressionSubscription = gql `subscription UpdateJobProgression($id: Int!, $interval: Int){
|
|
12
|
+
data: updateJobProgression(id: $id, interval: $interval) {
|
|
13
|
+
id
|
|
14
|
+
name
|
|
15
|
+
message
|
|
16
|
+
current
|
|
17
|
+
total
|
|
18
|
+
}
|
|
19
|
+
}`;
|
|
20
|
+
export class JobProgressionService extends BaseGraphqlService {
|
|
21
|
+
constructor(graphql, environment) {
|
|
22
|
+
super(graphql, environment);
|
|
23
|
+
this.graphql = graphql;
|
|
24
|
+
this.environment = environment;
|
|
25
|
+
this._logPrefix = '[job-progression-service] ';
|
|
26
|
+
// For DEV only
|
|
27
|
+
this._debug = !(environment === null || environment === void 0 ? void 0 : environment.production);
|
|
28
|
+
}
|
|
29
|
+
listenChanges(id, options) {
|
|
30
|
+
if (isNil(id))
|
|
31
|
+
throw new Error(`${this._logPrefix}Missing argument 'id'`);
|
|
32
|
+
if (this._debug)
|
|
33
|
+
console.debug(`${this._logPrefix}[WS] Listening changes for job progression {${id}}...`);
|
|
34
|
+
return this.graphql.subscribe({
|
|
35
|
+
query: jobProgressionSubscription,
|
|
36
|
+
fetchPolicy: options === null || options === void 0 ? void 0 : options.fetchPolicy,
|
|
37
|
+
variables: { id, interval: toNumber(options === null || options === void 0 ? void 0 : options.interval, 10) },
|
|
38
|
+
error: { code: SocialErrorCodes.SUBSCRIBE_JOB_PROGRESSION_ERROR, message: 'SOCIAL.ERROR.SUBSCRIBE_JOB_PROGRESSION_ERROR' }
|
|
39
|
+
}).pipe(map(({ data }) => {
|
|
40
|
+
const progression = data && JobProgression.fromObject(data);
|
|
41
|
+
if (progression && this._debug)
|
|
42
|
+
console.debug(`${this._logPrefix}Job progression ${id} updated on server`, progression);
|
|
43
|
+
return progression;
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
JobProgressionService.decorators = [
|
|
48
|
+
{ type: Injectable }
|
|
49
|
+
];
|
|
50
|
+
JobProgressionService.ctorParameters = () => [
|
|
51
|
+
{ type: GraphqlService },
|
|
52
|
+
{ type: Environment, decorators: [{ type: Optional }, { type: Inject, args: [ENVIRONMENT,] }] }
|
|
53
|
+
];
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2Ivam9iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRW5GLE9BQU8sRUFBZSxHQUFHLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FBd0IsdUJBQXVCLENBQUMsQ0FBQztBQUU3RyxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7RUFRcEMsQ0FBQTtBQU9GLE1BQU0sT0FBTyxxQkFDWCxTQUFRLGtCQUFrQztJQUcxQyxZQUNZLE9BQXVCLEVBQ1UsV0FBd0I7UUFFbkUsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUhsQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUNVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR25FLElBQUksQ0FBQyxVQUFVLEdBQUcsNEJBQTRCLENBQUM7UUFDL0MsZUFBZTtRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBQyxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsVUFBVSxDQUFBLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFVLEVBQUUsT0FHekI7UUFFQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsdUJBQXVCLENBQUMsQ0FBQztRQUMxRSxJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLCtDQUErQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQWdCO1lBQzNDLEtBQUssRUFBRSwwQkFBMEI7WUFDakMsV0FBVyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXO1lBQ2pDLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUM7WUFDM0QsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLCtCQUErQixFQUFFLE9BQU8sRUFBRSw4Q0FBOEMsRUFBQztTQUN6SCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRTtZQUNiLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVELElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN4SCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUosQ0FBQzs7O1lBcENGLFVBQVU7OztZQXhCRixjQUFjO1lBQ2QsV0FBVyx1QkE4QmYsUUFBUSxZQUFJLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uIH0gZnJvbSAnLi9qb2IubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUdyYXBocWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9iYXNlLWdyYXBocWwtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaHFsU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZ3JhcGhxbC9ncmFwaHFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZldGNoUG9saWN5LCBncWwgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IGlzTmlsLCB0b051bWJlciB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU29jaWFsRXJyb3JDb2RlcyB9IGZyb20gJy4uL3NvY2lhbC5lcnJvcnMnO1xuXG5leHBvcnQgY29uc3QgSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Sm9iUHJvZ3Jlc3Npb25TZXJ2aWNlPignSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlJyk7XG5cbmNvbnN0IGpvYlByb2dyZXNzaW9uU3Vic2NyaXB0aW9uID0gZ3FsYHN1YnNjcmlwdGlvbiBVcGRhdGVKb2JQcm9ncmVzc2lvbigkaWQ6IEludCEsICRpbnRlcnZhbDogSW50KXtcbiAgZGF0YTogdXBkYXRlSm9iUHJvZ3Jlc3Npb24oaWQ6ICRpZCwgaW50ZXJ2YWw6ICRpbnRlcnZhbCkge1xuICAgIGlkXG4gICAgbmFtZVxuICAgIG1lc3NhZ2VcbiAgICBjdXJyZW50XG4gICAgdG90YWxcbiAgfVxufWBcblxuZXhwb3J0IGludGVyZmFjZSBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlIHtcbiAgbGlzdGVuQ2hhbmdlcyhpZDogbnVtYmVyLCBvcHRpb25zPzogeyBpbnRlcnZhbD86IG51bWJlcjsgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeSB9KTogT2JzZXJ2YWJsZTxKb2JQcm9ncmVzc2lvbj47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvblNlcnZpY2VcbiAgZXh0ZW5kcyBCYXNlR3JhcGhxbFNlcnZpY2U8Sm9iUHJvZ3Jlc3Npb24+XG4gIGltcGxlbWVudHMgSUpvYlByb2dyZXNzaW9uU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRcbiAgKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgZW52aXJvbm1lbnQpO1xuICAgIHRoaXMuX2xvZ1ByZWZpeCA9ICdbam9iLXByb2dyZXNzaW9uLXNlcnZpY2VdICc7XG4gICAgLy8gRm9yIERFViBvbmx5XG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQ/LnByb2R1Y3Rpb247XG4gIH1cblxuICBsaXN0ZW5DaGFuZ2VzKGlkOiBudW1iZXIsIG9wdGlvbnM/OiB7XG4gICAgaW50ZXJ2YWw/OiBudW1iZXI7XG4gICAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeVxuICB9KTogT2JzZXJ2YWJsZTxKb2JQcm9ncmVzc2lvbj4ge1xuXG4gICAgaWYgKGlzTmlsKGlkKSkgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMuX2xvZ1ByZWZpeH1NaXNzaW5nIGFyZ3VtZW50ICdpZCdgKTtcbiAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVtXU10gTGlzdGVuaW5nIGNoYW5nZXMgZm9yIGpvYiBwcm9ncmVzc2lvbiB7JHtpZH19Li4uYCk7XG5cbiAgICByZXR1cm4gdGhpcy5ncmFwaHFsLnN1YnNjcmliZTx7IGRhdGE6IGFueSB9Pih7XG4gICAgICBxdWVyeTogam9iUHJvZ3Jlc3Npb25TdWJzY3JpcHRpb24sXG4gICAgICBmZXRjaFBvbGljeTogb3B0aW9ucz8uZmV0Y2hQb2xpY3ksXG4gICAgICB2YXJpYWJsZXM6IHsgaWQsIGludGVydmFsOiB0b051bWJlcihvcHRpb25zPy5pbnRlcnZhbCwgMTApfSxcbiAgICAgIGVycm9yOiB7Y29kZTogU29jaWFsRXJyb3JDb2Rlcy5TVUJTQ1JJQkVfSk9CX1BST0dSRVNTSU9OX0VSUk9SLCBtZXNzYWdlOiAnU09DSUFMLkVSUk9SLlNVQlNDUklCRV9KT0JfUFJPR1JFU1NJT05fRVJST1InfVxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHtkYXRhfSkgPT4ge1xuICAgICAgICBjb25zdCBwcm9ncmVzc2lvbiA9IGRhdGEgJiYgSm9iUHJvZ3Jlc3Npb24uZnJvbU9iamVjdChkYXRhKTtcbiAgICAgICAgaWYgKHByb2dyZXNzaW9uICYmIHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1Kb2IgcHJvZ3Jlc3Npb24gJHtpZH0gdXBkYXRlZCBvbiBzZXJ2ZXJgLCBwcm9ncmVzc2lvbik7XG4gICAgICAgIHJldHVybiBwcm9ncmVzc2lvbjtcbiAgICAgIH0pXG4gICAgKTtcblxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';
|
|
3
|
+
import { JobProgressionServiceToken } from '../job.service';
|
|
4
|
+
import { JobProgression } from '../job.model';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
import { arraySize, isNil, toBoolean, toNumber } from '../../../shared/functions';
|
|
7
|
+
import { filter, map } from 'rxjs/operators';
|
|
8
|
+
import { PopoverController } from '@ionic/angular';
|
|
9
|
+
import { JobProgressionList } from './job-progression.list';
|
|
10
|
+
export class JobProgressionComponent {
|
|
11
|
+
constructor(jobProgressionService, popoverController, cd) {
|
|
12
|
+
this.jobProgressionService = jobProgressionService;
|
|
13
|
+
this.popoverController = popoverController;
|
|
14
|
+
this.cd = cd;
|
|
15
|
+
this.debug = false;
|
|
16
|
+
this.titleI18n = 'SOCIAL.JOB.PROGRESSION.TITLE';
|
|
17
|
+
this.jobFinished = new EventEmitter();
|
|
18
|
+
this.disabled = true;
|
|
19
|
+
this.color = 'accent';
|
|
20
|
+
this.mode = 'determinate';
|
|
21
|
+
this.value = 0;
|
|
22
|
+
this.jobProgressions = [];
|
|
23
|
+
this._subscriptions = new Subscription();
|
|
24
|
+
this._subscriptionsById = {};
|
|
25
|
+
this._logPrefix = '[job-progression] ';
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
var _a, _b, _c, _d;
|
|
29
|
+
if (isNil(this.jobProgressionService)) {
|
|
30
|
+
console.warn(`${this._logPrefix}No service injected`);
|
|
31
|
+
}
|
|
32
|
+
// parse options
|
|
33
|
+
this.autoHide = toBoolean((_a = this.options) === null || _a === void 0 ? void 0 : _a.autoHide, false);
|
|
34
|
+
this.visible = !this.autoHide;
|
|
35
|
+
this.autoHideDelay = toNumber((_b = this.options) === null || _b === void 0 ? void 0 : _b.autoHideDelay, 1000);
|
|
36
|
+
this.autoRemove = toBoolean((_c = this.options) === null || _c === void 0 ? void 0 : _c.autoRemove, true);
|
|
37
|
+
this.autoRemoveDelay = toNumber((_d = this.options) === null || _d === void 0 ? void 0 : _d.autoRemoveDelay, 1000);
|
|
38
|
+
}
|
|
39
|
+
addJob(id) {
|
|
40
|
+
if (isNil(this.jobProgressionService)) {
|
|
41
|
+
console.warn(`${this._logPrefix}No service injected. Can't add a job`);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!!this.getProgression(id)) {
|
|
45
|
+
console.warn(`${this._logPrefix}Job (id=${id}) already present`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (this.debug) {
|
|
49
|
+
console.debug(`${this._logPrefix}Add job id=${id}`);
|
|
50
|
+
}
|
|
51
|
+
// Adding empty job progression
|
|
52
|
+
const progression = new JobProgression(id);
|
|
53
|
+
this.jobProgressions.push(progression);
|
|
54
|
+
this.disabled = false;
|
|
55
|
+
const sub = this.jobProgressionService.listenChanges(id)
|
|
56
|
+
.pipe(filter(progression => {
|
|
57
|
+
if (id !== progression.id) {
|
|
58
|
+
console.error(`${this._logPrefix}Job progression (id=${progression.id}) doesn't match expected job (id=${id})`);
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
}), map(progression => {
|
|
63
|
+
// Ensure visible
|
|
64
|
+
this.visible = true;
|
|
65
|
+
// Get current progression object
|
|
66
|
+
const currentProgression = this.getProgression(id);
|
|
67
|
+
if (!currentProgression) {
|
|
68
|
+
// add it if absent
|
|
69
|
+
this.jobProgressions.push(progression);
|
|
70
|
+
if (this.debug) {
|
|
71
|
+
console.debug(`${this._logPrefix}Progression added id=${id}`, progression);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// update current
|
|
76
|
+
Object.assign(currentProgression, progression);
|
|
77
|
+
if (this.debug) {
|
|
78
|
+
console.debug(`${this._logPrefix}Progression updated id=${id}`, progression);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return progression;
|
|
82
|
+
}))
|
|
83
|
+
.subscribe(progression => {
|
|
84
|
+
// update value
|
|
85
|
+
this.updateValue();
|
|
86
|
+
// job finished
|
|
87
|
+
if (progression.total > 0 && progression.current == progression.total) {
|
|
88
|
+
if (this.debug) {
|
|
89
|
+
console.debug(`${this._logPrefix}Finished job id=${progression.id}`);
|
|
90
|
+
}
|
|
91
|
+
// emit event
|
|
92
|
+
this.jobFinished.emit(progression.id);
|
|
93
|
+
if (this.autoRemove) {
|
|
94
|
+
setTimeout(() => {
|
|
95
|
+
var _a;
|
|
96
|
+
this.removeJob(progression.id);
|
|
97
|
+
// If last job
|
|
98
|
+
if (this.autoHide && !((_a = this.jobProgressions) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
99
|
+
setTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
var _b;
|
|
101
|
+
(_b = this._listPopover) === null || _b === void 0 ? void 0 : _b.dismiss();
|
|
102
|
+
this.visible = false;
|
|
103
|
+
this.markForCheck();
|
|
104
|
+
}), this.autoHideDelay);
|
|
105
|
+
}
|
|
106
|
+
}, this.autoRemoveDelay);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
this._subscriptionsById[id] = sub;
|
|
111
|
+
this._subscriptions.add(sub);
|
|
112
|
+
}
|
|
113
|
+
removeJob(id) {
|
|
114
|
+
if (this.debug) {
|
|
115
|
+
console.debug(`${this._logPrefix}Remove job id=${id}`);
|
|
116
|
+
}
|
|
117
|
+
const sub = this._subscriptionsById[id];
|
|
118
|
+
if (sub) {
|
|
119
|
+
this._subscriptions.remove(sub);
|
|
120
|
+
sub.unsubscribe();
|
|
121
|
+
}
|
|
122
|
+
const progression = this.getProgression(id);
|
|
123
|
+
if (progression) {
|
|
124
|
+
this.jobProgressions.splice(this.jobProgressions.indexOf(progression), 1);
|
|
125
|
+
}
|
|
126
|
+
this.updateValue();
|
|
127
|
+
}
|
|
128
|
+
getProgression(id) {
|
|
129
|
+
return this.jobProgressions.find(progression => progression.id === id);
|
|
130
|
+
}
|
|
131
|
+
updateValue() {
|
|
132
|
+
if (this.debug) {
|
|
133
|
+
console.debug(`${this._logPrefix}Updating value`);
|
|
134
|
+
}
|
|
135
|
+
let value = 0;
|
|
136
|
+
const nbProgression = arraySize(this.jobProgressions);
|
|
137
|
+
let allIndeterminate = nbProgression > 0;
|
|
138
|
+
this.jobProgressions.forEach(progression => {
|
|
139
|
+
const indeterminate = progression.total === 0;
|
|
140
|
+
allIndeterminate = allIndeterminate && indeterminate;
|
|
141
|
+
if (!indeterminate) {
|
|
142
|
+
value = value + progression.current * 100 / progression.total;
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
this.value = nbProgression > 0 ? value / nbProgression : 0;
|
|
146
|
+
this.mode = allIndeterminate ? 'indeterminate' : 'determinate';
|
|
147
|
+
if (this.debug) {
|
|
148
|
+
console.debug(`${this._logPrefix}Setting value=${this.value}, mode=${this.mode}`);
|
|
149
|
+
}
|
|
150
|
+
this.markForCheck();
|
|
151
|
+
}
|
|
152
|
+
showList(event) {
|
|
153
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
this._listPopover = yield this.popoverController.create({
|
|
155
|
+
component: JobProgressionList,
|
|
156
|
+
componentProps: {
|
|
157
|
+
titleI18n: this.titleI18n,
|
|
158
|
+
jobProgressions: this.jobProgressions
|
|
159
|
+
},
|
|
160
|
+
backdropDismiss: true,
|
|
161
|
+
keyboardClose: true,
|
|
162
|
+
event,
|
|
163
|
+
translucent: true,
|
|
164
|
+
cssClass: 'popover-large'
|
|
165
|
+
});
|
|
166
|
+
yield this._listPopover.present();
|
|
167
|
+
yield this._listPopover.onDidDismiss();
|
|
168
|
+
this._listPopover = undefined;
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
markForCheck() {
|
|
172
|
+
this.cd.markForCheck();
|
|
173
|
+
}
|
|
174
|
+
ngOnDestroy() {
|
|
175
|
+
if (this.debug) {
|
|
176
|
+
console.debug(`${this._logPrefix}Destroying`);
|
|
177
|
+
}
|
|
178
|
+
this._subscriptions.unsubscribe();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
JobProgressionComponent.decorators = [
|
|
182
|
+
{ type: Component, args: [{
|
|
183
|
+
selector: 'app-job-progression',
|
|
184
|
+
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",
|
|
185
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
186
|
+
styles: [".floating-spinner{position:absolute;top:6px;left:5px}"]
|
|
187
|
+
},] }
|
|
188
|
+
];
|
|
189
|
+
JobProgressionComponent.ctorParameters = () => [
|
|
190
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [JobProgressionServiceToken,] }] },
|
|
191
|
+
{ type: PopoverController },
|
|
192
|
+
{ type: ChangeDetectorRef }
|
|
193
|
+
];
|
|
194
|
+
JobProgressionComponent.propDecorators = {
|
|
195
|
+
debug: [{ type: Input }],
|
|
196
|
+
titleI18n: [{ type: Input }],
|
|
197
|
+
options: [{ type: Input }],
|
|
198
|
+
jobFinished: [{ type: Output }]
|
|
199
|
+
};
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hKLE9BQU8sRUFBMEIsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUE2QixNQUFNLHdCQUF3QixDQUFDO0FBZXZGLE1BQU0sT0FBTyx1QkFBdUI7SUF3QmxDLFlBQzRELHFCQUE2QyxFQUM3RixpQkFBb0MsRUFDcEMsRUFBcUI7UUFGMkIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQUM3RixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBekJ4QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsY0FBUyxHQUFHLDhCQUE4QixDQUFDO1FBRTFDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUdu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LHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7NENBMEJJLFFBQVEsWUFBSSxNQUFNLFNBQUMsMEJBQTBCO1lBekN6QyxpQkFBaUI7WUFUUSxpQkFBaUI7OztvQkEyQmhELEtBQUs7d0JBQ0wsS0FBSztzQkFDTCxLQUFLOzBCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlLCBKb2JQcm9ncmVzc2lvblNlcnZpY2VUb2tlbiB9IGZyb20gJy4uL2pvYi5zZXJ2aWNlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uIH0gZnJvbSAnLi4vam9iLm1vZGVsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT2JqZWN0TWFwIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCB7IGFycmF5U2l6ZSwgaXNOaWwsIHRvQm9vbGVhbiwgdG9OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBKb2JQcm9ncmVzc2lvbkxpc3QsIEpvYlByb2dyZXNzaW9uTGlzdE9wdGlvbnMgfSBmcm9tICcuL2pvYi1wcm9ncmVzc2lvbi5saXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9ncmVzc2lvbk9wdGlvbnMge1xuICBhdXRvSGlkZTogYm9vbGVhbjtcbiAgYXV0b0hpZGVEZWxheTogbnVtYmVyO1xuICBhdXRvUmVtb3ZlOiBib29sZWFuO1xuICBhdXRvUmVtb3ZlRGVsYXk6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWpvYi1wcm9ncmVzc2lvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuICBASW5wdXQoKSB0aXRsZUkxOG4gPSAnU09DSUFMLkpPQi5QUk9HUkVTU0lPTi5USVRMRSc7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IEpvYlByb2dyZXNzaW9uT3B0aW9ucztcbiAgQE91dHB1dCgpIGpvYkZpbmlzaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgZGlzYWJsZWQgPSB0cnVlO1xuICBjb2xvcjogVGhlbWVQYWxldHRlID0gJ2FjY2VudCc7XG4gIG1vZGU6IFByb2dyZXNzU3Bpbm5lck1vZGUgPSAnZGV0ZXJtaW5hdGUnO1xuICB2YWx1ZSA9IDA7XG4gIGpvYlByb2dyZXNzaW9uczogSm9iUHJvZ3Jlc3Npb25bXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBhdXRvSGlkZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGF1dG9IaWRlRGVsYXk6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGF1dG9SZW1vdmU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBhdXRvUmVtb3ZlRGVsYXk6IG51bWJlcjtcblxuICBwcml2YXRlIF9saXN0UG9wb3ZlcjogSFRNTElvblBvcG92ZXJFbGVtZW50O1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zQnlJZDogT2JqZWN0TWFwPFN1YnNjcmlwdGlvbj4gPSB7fTtcbiAgcHJpdmF0ZSBfbG9nUHJlZml4ID0gJ1tqb2ItcHJvZ3Jlc3Npb25dICc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChKb2JQcm9ncmVzc2lvblNlcnZpY2VUb2tlbikgcHJvdGVjdGVkIGpvYlByb2dyZXNzaW9uU2VydmljZTogSUpvYlByb2dyZXNzaW9uU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmIChpc05pbCh0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgJHt0aGlzLl9sb2dQcmVmaXh9Tm8gc2VydmljZSBpbmplY3RlZGApO1xuICAgIH1cbiAgICAvLyBwYXJzZSBvcHRpb25zXG4gICAgdGhpcy5hdXRvSGlkZSA9IHRvQm9vbGVhbih0aGlzLm9wdGlvbnM/LmF1dG9IaWRlLCBmYWxzZSk7XG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMuYXV0b0hpZGU7XG4gICAgdGhpcy5hdXRvSGlkZURlbGF5ID0gdG9OdW1iZXIodGhpcy5vcHRpb25zPy5hdXRvSGlkZURlbGF5LCAxMDAwKTtcbiAgICB0aGlzLmF1dG9SZW1vdmUgPSB0b0Jvb2xlYW4odGhpcy5vcHRpb25zPy5hdXRvUmVtb3ZlLCB0cnVlKTtcbiAgICB0aGlzLmF1dG9SZW1vdmVEZWxheSA9IHRvTnVtYmVyKHRoaXMub3B0aW9ucz8uYXV0b1JlbW92ZURlbGF5LCAxMDAwKTtcbiAgfVxuXG4gIGFkZEpvYihpZDogbnVtYmVyKSB7XG4gICAgaWYgKGlzTmlsKHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1ObyBzZXJ2aWNlIGluamVjdGVkLiBDYW4ndCBhZGQgYSBqb2JgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISF0aGlzLmdldFByb2dyZXNzaW9uKGlkKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1Kb2IgKGlkPSR7aWR9KSBhbHJlYWR5IHByZXNlbnRgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUFkZCBqb2IgaWQ9JHtpZH1gKTtcbiAgICB9XG4gICAgLy8gQWRkaW5nIGVtcHR5IGpvYiBwcm9ncmVzc2lvblxuICAgIGNvbnN0IHByb2dyZXNzaW9uID0gbmV3IEpvYlByb2dyZXNzaW9uKGlkKTtcbiAgICB0aGlzLmpvYlByb2dyZXNzaW9ucy5wdXNoKHByb2dyZXNzaW9uKTtcblxuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1YiA9IHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlLmxpc3RlbkNoYW5nZXMoaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKHByb2dyZXNzaW9uID0+IHtcbiAgICAgICAgICBpZiAoaWQgIT09IHByb2dyZXNzaW9uLmlkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuX2xvZ1ByZWZpeH1Kb2IgcHJvZ3Jlc3Npb24gKGlkPSR7cHJvZ3Jlc3Npb24uaWR9KSBkb2Vzbid0IG1hdGNoIGV4cGVjdGVkIGpvYiAoaWQ9JHtpZH0pYCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKHByb2dyZXNzaW9uID0+IHtcbiAgICAgICAgICAvLyBFbnN1cmUgdmlzaWJsZVxuICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgLy8gR2V0IGN1cnJlbnQgcHJvZ3Jlc3Npb24gb2JqZWN0XG4gICAgICAgICAgY29uc3QgY3VycmVudFByb2dyZXNzaW9uID0gdGhpcy5nZXRQcm9ncmVzc2lvbihpZCk7XG4gICAgICAgICAgaWYgKCFjdXJyZW50UHJvZ3Jlc3Npb24pIHtcbiAgICAgICAgICAgIC8vIGFkZCBpdCBpZiBhYnNlbnRcbiAgICAgICAgICAgIHRoaXMuam9iUHJvZ3Jlc3Npb25zLnB1c2gocHJvZ3Jlc3Npb24pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9UHJvZ3Jlc3Npb24gYWRkZWQgaWQ9JHtpZH1gLCBwcm9ncmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBjdXJyZW50XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGN1cnJlbnRQcm9ncmVzc2lvbiwgcHJvZ3Jlc3Npb24pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9UHJvZ3Jlc3Npb24gdXBkYXRlZCBpZD0ke2lkfWAsIHByb2dyZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHByb2dyZXNzaW9uO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShwcm9ncmVzc2lvbiA9PiB7XG4gICAgICAgIC8vIHVwZGF0ZSB2YWx1ZVxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG5cbiAgICAgICAgLy8gam9iIGZpbmlzaGVkXG4gICAgICAgIGlmIChwcm9ncmVzc2lvbi50b3RhbCA+IDAgJiYgcHJvZ3Jlc3Npb24uY3VycmVudCA9PSBwcm9ncmVzc2lvbi50b3RhbCkge1xuICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1GaW5pc2hlZCBqb2IgaWQ9JHtwcm9ncmVzc2lvbi5pZH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZW1pdCBldmVudFxuICAgICAgICAgIHRoaXMuam9iRmluaXNoZWQuZW1pdChwcm9ncmVzc2lvbi5pZCk7XG4gICAgICAgICAgaWYgKHRoaXMuYXV0b1JlbW92ZSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlSm9iKHByb2dyZXNzaW9uLmlkKTtcbiAgICAgICAgICAgICAgLy8gSWYgbGFzdCBqb2JcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0hpZGUgJiYgIXRoaXMuam9iUHJvZ3Jlc3Npb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RQb3BvdmVyPy5kaXNtaXNzKCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSwgdGhpcy5hdXRvSGlkZURlbGF5KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdGhpcy5hdXRvUmVtb3ZlRGVsYXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zQnlJZFtpZF0gPSBzdWI7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoc3ViKTtcbiAgfVxuXG4gIHJlbW92ZUpvYihpZDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVJlbW92ZSBqb2IgaWQ9JHtpZH1gKTtcbiAgICB9XG4gICAgY29uc3Qgc3ViID0gdGhpcy5fc3Vic2NyaXB0aW9uc0J5SWRbaWRdO1xuICAgIGlmIChzdWIpIHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucmVtb3ZlKHN1Yik7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgY29uc3QgcHJvZ3Jlc3Npb24gPSB0aGlzLmdldFByb2dyZXNzaW9uKGlkKTtcbiAgICBpZiAocHJvZ3Jlc3Npb24pIHtcbiAgICAgIHRoaXMuam9iUHJvZ3Jlc3Npb25zLnNwbGljZSh0aGlzLmpvYlByb2dyZXNzaW9ucy5pbmRleE9mKHByb2dyZXNzaW9uKSwgMSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgfVxuXG4gIGdldFByb2dyZXNzaW9uKGlkOiBudW1iZXIpOiBKb2JQcm9ncmVzc2lvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuam9iUHJvZ3Jlc3Npb25zLmZpbmQocHJvZ3Jlc3Npb24gPT4gcHJvZ3Jlc3Npb24uaWQgPT09IGlkKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKCkge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1VcGRhdGluZyB2YWx1ZWApO1xuICAgIH1cbiAgICBsZXQgdmFsdWUgPSAwO1xuICAgIGNvbnN0IG5iUHJvZ3Jlc3Npb24gPSBhcnJheVNpemUodGhpcy5qb2JQcm9ncmVzc2lvbnMpO1xuICAgIGxldCBhbGxJbmRldGVybWluYXRlID0gbmJQcm9ncmVzc2lvbiA+IDA7XG5cbiAgICB0aGlzLmpvYlByb2dyZXNzaW9ucy5mb3JFYWNoKHByb2dyZXNzaW9uID0+IHtcbiAgICAgIGNvbnN0IGluZGV0ZXJtaW5hdGUgPSBwcm9ncmVzc2lvbi50b3RhbCA9PT0gMDtcbiAgICAgIGFsbEluZGV0ZXJtaW5hdGUgPSBhbGxJbmRldGVybWluYXRlICYmIGluZGV0ZXJtaW5hdGU7XG4gICAgICBpZiAoIWluZGV0ZXJtaW5hdGUpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZSArIHByb2dyZXNzaW9uLmN1cnJlbnQgKiAxMDAgLyBwcm9ncmVzc2lvbi50b3RhbDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudmFsdWUgPSBuYlByb2dyZXNzaW9uID4gMCA/IHZhbHVlIC8gbmJQcm9ncmVzc2lvbiA6IDA7XG4gICAgdGhpcy5tb2RlID0gYWxsSW5kZXRlcm1pbmF0ZSA/ICdpbmRldGVybWluYXRlJyA6ICdkZXRlcm1pbmF0ZSc7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVNldHRpbmcgdmFsdWU9JHt0aGlzLnZhbHVlfSwgbW9kZT0ke3RoaXMubW9kZX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXN5bmMgc2hvd0xpc3QoZXZlbnQ6IFVJRXZlbnQpIHtcbiAgICB0aGlzLl9saXN0UG9wb3ZlciA9IGF3YWl0IHRoaXMucG9wb3ZlckNvbnRyb2xsZXIuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogSm9iUHJvZ3Jlc3Npb25MaXN0LFxuICAgICAgY29tcG9uZW50UHJvcHM6IDxKb2JQcm9ncmVzc2lvbkxpc3RPcHRpb25zPntcbiAgICAgICAgdGl0bGVJMThuOiB0aGlzLnRpdGxlSTE4bixcbiAgICAgICAgam9iUHJvZ3Jlc3Npb25zOiB0aGlzLmpvYlByb2dyZXNzaW9uc1xuICAgICAgfSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICAgIGtleWJvYXJkQ2xvc2U6IHRydWUsXG4gICAgICBldmVudCxcbiAgICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgICAgY3NzQ2xhc3M6ICdwb3BvdmVyLWxhcmdlJ1xuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuX2xpc3RQb3BvdmVyLnByZXNlbnQoKTtcbiAgICBhd2FpdCB0aGlzLl9saXN0UG9wb3Zlci5vbkRpZERpc21pc3MoKTtcbiAgICB0aGlzLl9saXN0UG9wb3ZlciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1EZXN0cm95aW5nYCk7XG4gICAgfVxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
export class JobProgressionList {
|
|
3
|
+
constructor() {
|
|
4
|
+
}
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
JobProgressionList.decorators = [
|
|
9
|
+
{ type: Component, args: [{
|
|
10
|
+
selector: 'app-job-progression-list',
|
|
11
|
+
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",
|
|
12
|
+
styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;-moz-user-select:none;-ms-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}"]
|
|
13
|
+
},] }
|
|
14
|
+
];
|
|
15
|
+
JobProgressionList.ctorParameters = () => [];
|
|
16
|
+
JobProgressionList.propDecorators = {
|
|
17
|
+
titleI18n: [{ type: Input }],
|
|
18
|
+
jobProgressions: [{ type: Input }]
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFhekQsTUFBTSxPQUFPLGtCQUFrQjtJQUs3QjtJQUNBLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7O1lBZEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLG9sQ0FBMEM7O2FBRTNDOzs7O3dCQUdFLEtBQUs7OEJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSm9iUHJvZ3Jlc3Npb24gfSBmcm9tICcuLi9qb2IubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEpvYlByb2dyZXNzaW9uTGlzdE9wdGlvbnMge1xuICB0aXRsZUkxOG4/OiBzdHJpbmc7XG4gIGpvYlByb2dyZXNzaW9ucz86IEpvYlByb2dyZXNzaW9uW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1qb2ItcHJvZ3Jlc3Npb24tbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9qb2ItcHJvZ3Jlc3Npb24ubGlzdC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vam9iLXByb2dyZXNzaW9uLmxpc3Quc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvbkxpc3QgaW1wbGVtZW50cyBPbkluaXQsIEpvYlByb2dyZXNzaW9uTGlzdE9wdGlvbnMge1xuXG4gIEBJbnB1dCgpIHRpdGxlSTE4bjogc3RyaW5nO1xuICBASW5wdXQoKSBqb2JQcm9ncmVzc2lvbnM6IEpvYlByb2dyZXNzaW9uW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { CoreModule } from '../../core/core.module';
|
|
4
|
+
import { SharedModule } from '../../shared/shared.module';
|
|
5
|
+
import { MessageModal } from './message.modal';
|
|
6
|
+
import { MessageForm } from './message.form';
|
|
7
|
+
export class MessageModule {
|
|
8
|
+
}
|
|
9
|
+
MessageModule.decorators = [
|
|
10
|
+
{ type: NgModule, args: [{
|
|
11
|
+
imports: [
|
|
12
|
+
CommonModule,
|
|
13
|
+
CoreModule,
|
|
14
|
+
SharedModule
|
|
15
|
+
],
|
|
16
|
+
declarations: [
|
|
17
|
+
MessageModal,
|
|
18
|
+
MessageForm
|
|
19
|
+
],
|
|
20
|
+
exports: [
|
|
21
|
+
MessageModal
|
|
22
|
+
]
|
|
23
|
+
},] }
|
|
24
|
+
];
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9tZXNzYWdlL21lc3NhZ2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCN0MsTUFBTSxPQUFPLGFBQWE7OztZQWR6QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWixZQUFZO29CQUNaLFdBQVc7aUJBQ1o7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJy4uLy4uL2NvcmUvY29yZS5tb2R1bGUnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgTWVzc2FnZU1vZGFsIH0gZnJvbSAnLi9tZXNzYWdlLm1vZGFsJztcbmltcG9ydCB7IE1lc3NhZ2VGb3JtIH0gZnJvbSAnLi9tZXNzYWdlLmZvcm0nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENvcmVNb2R1bGUsXG4gICAgU2hhcmVkTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE1lc3NhZ2VNb2RhbCxcbiAgICBNZXNzYWdlRm9ybVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWVzc2FnZU1vZGFsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZU1vZHVsZSB7fVxuIl19
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export const SocialErrorCodes = {
|
|
2
2
|
LOAD_USER_EVENTS_ERROR: 50000,
|
|
3
3
|
SAVE_USER_EVENT_ERROR: 50001,
|
|
4
|
-
|
|
4
|
+
COUNT_USER_EVENT_ERROR: 50002,
|
|
5
|
+
SEND_MESSAGE_ERROR: 50003,
|
|
6
|
+
SUBSCRIBE_USER_EVENTS_ERROR: 50005,
|
|
7
|
+
SUBSCRIBE_JOB_PROGRESSION_ERROR: 50010
|
|
5
8
|
};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLmVycm9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3NvY2lhbC5lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsc0JBQXNCLEVBQUUsS0FBSztJQUM3QixxQkFBcUIsRUFBRSxLQUFLO0lBQzVCLHNCQUFzQixFQUFFLEtBQUs7SUFDN0Isa0JBQWtCLEVBQUUsS0FBSztJQUN6QiwyQkFBMkIsRUFBRSxLQUFLO0lBRWxDLCtCQUErQixFQUFFLEtBQUs7Q0FDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTb2NpYWxFcnJvckNvZGVzID0ge1xuICBMT0FEX1VTRVJfRVZFTlRTX0VSUk9SOiA1MDAwMCxcbiAgU0FWRV9VU0VSX0VWRU5UX0VSUk9SOiA1MDAwMSxcbiAgQ09VTlRfVVNFUl9FVkVOVF9FUlJPUjogNTAwMDIsXG4gIFNFTkRfTUVTU0FHRV9FUlJPUjogNTAwMDMsXG4gIFNVQlNDUklCRV9VU0VSX0VWRU5UU19FUlJPUjogNTAwMDUsXG5cbiAgU1VCU0NSSUJFX0pPQl9QUk9HUkVTU0lPTl9FUlJPUjogNTAwMTBcbn07XG4iXX0=
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
1
|
+
import { InjectionToken, NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { UserEventsTable } from './user-event/user-events.table';
|
|
4
3
|
import { CoreModule } from '../core/core.module';
|
|
5
|
-
import { MessageModal } from './message/message.modal';
|
|
6
4
|
import { SharedModule } from '../shared/shared.module';
|
|
7
|
-
import {
|
|
5
|
+
import { UserEventModule } from './user-event/user-event.module';
|
|
6
|
+
import { MessageModule } from './message/message.module';
|
|
7
|
+
import { JobModule } from './job/job.module';
|
|
8
|
+
export const SocialModuleOptionsToken = new InjectionToken("SocialModuleOptions");
|
|
8
9
|
export class SocialModule {
|
|
9
10
|
}
|
|
10
11
|
SocialModule.decorators = [
|
|
@@ -12,17 +13,11 @@ SocialModule.decorators = [
|
|
|
12
13
|
imports: [
|
|
13
14
|
CommonModule,
|
|
14
15
|
CoreModule,
|
|
15
|
-
SharedModule
|
|
16
|
+
SharedModule,
|
|
17
|
+
UserEventModule,
|
|
18
|
+
JobModule,
|
|
19
|
+
MessageModule,
|
|
16
20
|
],
|
|
17
|
-
declarations: [
|
|
18
|
-
UserEventsTable,
|
|
19
|
-
MessageModal,
|
|
20
|
-
MessageForm
|
|
21
|
-
],
|
|
22
|
-
exports: [
|
|
23
|
-
UserEventsTable,
|
|
24
|
-
MessageModal
|
|
25
|
-
]
|
|
26
21
|
},] }
|
|
27
22
|
];
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3NvY2lhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFVN0MsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQXNCLHFCQUFxQixDQUFDLENBQUM7QUFhdkcsTUFBTSxPQUFPLFlBQVk7OztZQVh4QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixZQUFZO29CQUVaLGVBQWU7b0JBQ2YsU0FBUztvQkFDVCxhQUFhO2lCQUNkO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnLi4vY29yZS9jb3JlLm1vZHVsZSc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnRNb2R1bGUgfSBmcm9tICcuL3VzZXItZXZlbnQvdXNlci1ldmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgTWVzc2FnZU1vZHVsZSB9IGZyb20gJy4vbWVzc2FnZS9tZXNzYWdlLm1vZHVsZSc7XG5pbXBvcnQgeyBKb2JNb2R1bGUgfSBmcm9tICcuL2pvYi9qb2IubW9kdWxlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uT3B0aW9ucyB9IGZyb20gJy4vam9iL3Byb2dyZXNzaW9uL2pvYi1wcm9ncmVzc2lvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvY2lhbE1vZHVsZU9wdGlvbnMge1xuICBzaG93VXNlckV2ZW50Tm90aWZpY2F0aW9uOiBib29sZWFuO1xuICAvLyB0b2RvIDogdXNlckV2ZW50Tm90aWZpY2F0aW9uT3B0aW9uc1xuICBzaG93Sm9iUHJvZ3Jlc3Npb246IGJvb2xlYW47XG4gIGpvYlByb2dyZXNzaW9uT3B0aW9uczogSm9iUHJvZ3Jlc3Npb25PcHRpb25zO1xufVxuXG5leHBvcnQgY29uc3QgU29jaWFsTW9kdWxlT3B0aW9uc1Rva2VuID0gbmV3IEluamVjdGlvblRva2VuPFNvY2lhbE1vZHVsZU9wdGlvbnM+KFwiU29jaWFsTW9kdWxlT3B0aW9uc1wiKTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIFNoYXJlZE1vZHVsZSxcblxuICAgIFVzZXJFdmVudE1vZHVsZSxcbiAgICBKb2JNb2R1bGUsXG4gICAgTWVzc2FnZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU29jaWFsTW9kdWxlIHtcblxufVxuIl19
|