@sumaris-net/ngx-components 1.18.7 → 1.19.2
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 +804 -429
- 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 +10 -0
- package/esm2015/public_api.js +10 -5
- package/esm2015/src/app/admin/admin-routing.module.js +3 -1
- package/esm2015/src/app/admin/admin.module.js +2 -1
- package/esm2015/src/app/admin/users/list/users.js +45 -7
- package/esm2015/src/app/core/services/base-entity-service.class.js +6 -6
- package/esm2015/src/app/core/services/local-settings.service.js +5 -5
- package/esm2015/src/app/core/services/model/referential.model.js +1 -1
- package/esm2015/src/app/core/services/platform.service.js +3 -4
- package/esm2015/src/app/shared/material/datetime/material.date.js +82 -70
- package/esm2015/src/app/shared/material/datetime/material.datetime.js +3 -3
- package/esm2015/src/app/shared/material/datetime/testing/mat-date.test.js +7 -5
- package/esm2015/src/app/shared/platforms.js +20 -4
- package/esm2015/src/app/shared/validator/validators.js +2 -2
- package/esm2015/src/app/social/message/message.form.js +73 -0
- package/esm2015/src/app/social/message/message.modal.js +96 -0
- package/esm2015/src/app/social/message/message.model.js +65 -0
- package/esm2015/src/app/social/message/message.service.js +87 -0
- package/esm2015/src/app/social/social.errors.js +6 -0
- package/esm2015/src/app/social/social.module.js +12 -15
- package/esm2015/src/app/social/user-event/user-event.fragments.js +27 -0
- package/esm2015/src/app/social/user-event/user-event.model.js +46 -0
- package/esm2015/src/app/social/user-event/user-event.service.js +367 -0
- package/esm2015/src/app/social/user-event/user-events.table.js +154 -0
- package/fesm2015/sumaris-net.ngx-components.js +734 -411
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +4 -3
- package/public_api.d.ts +9 -4
- package/src/app/admin/users/list/users.d.ts +10 -6
- package/src/app/core/services/local-settings.service.d.ts +3 -2
- package/src/app/core/services/model/referential.model.d.ts +7 -7
- package/src/app/shared/material/datetime/material.date.d.ts +6 -8
- package/src/app/shared/material/datetime/material.datetime.d.ts +2 -2
- package/src/app/shared/platforms.d.ts +1 -1
- package/src/app/social/message/message.form.d.ts +27 -0
- package/src/app/social/message/message.modal.d.ts +36 -0
- package/src/app/social/message/message.model.d.ts +31 -0
- package/src/app/social/message/message.service.d.ts +24 -0
- package/src/app/social/{services/errors.d.ts → social.errors.d.ts} +2 -1
- package/src/app/social/social.module.d.ts +0 -2
- package/src/app/social/{services/social.fragments.d.ts → user-event/user-event.fragments.d.ts} +1 -1
- package/src/app/social/{services/model → user-event}/user-event.model.d.ts +1 -1
- package/src/app/social/{services → user-event}/user-event.service.d.ts +4 -3
- package/src/app/social/{list → user-event}/user-events.table.d.ts +2 -2
- package/src/assets/i18n/en-US.json +23 -4
- package/src/assets/i18n/en.json +23 -4
- package/src/assets/i18n/fr.json +25 -5
- package/src/theme/_ionic.globals.scss +2 -1
- package/sumaris-net.ngx-components.metadata.json +1 -1
- package/esm2015/src/app/admin/services/errors.js +0 -6
- package/esm2015/src/app/social/list/user-events.table.js +0 -154
- package/esm2015/src/app/social/services/errors.js +0 -5
- package/esm2015/src/app/social/services/model/user-event.model.js +0 -46
- package/esm2015/src/app/social/services/social.fragments.js +0 -27
- package/esm2015/src/app/social/services/user-event.service.js +0 -367
- package/src/app/admin/services/errors.d.ts +0 -5
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
+
import { gql } from '@apollo/client/core';
|
|
4
|
+
import { SocialErrorCodes } from '../social.errors';
|
|
5
|
+
import { GraphqlService } from '../../core/graphql/graphql.service';
|
|
6
|
+
import { ToastController } from '@ionic/angular';
|
|
7
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
8
|
+
import { BaseGraphqlService } from '../../core/services/base-graphql-service.class';
|
|
9
|
+
import { Environment, ENVIRONMENT } from '../../../environments/environment.class';
|
|
10
|
+
import { MINIFY_ENTITY_FOR_POD } from '../../core/services/model/referential.model';
|
|
11
|
+
import { Toasts } from '../../shared/toast/toasts';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "../../core/graphql/graphql.service";
|
|
14
|
+
import * as i2 from "@ngx-translate/core";
|
|
15
|
+
import * as i3 from "@ionic/angular";
|
|
16
|
+
import * as i4 from "../../../environments/environment.class";
|
|
17
|
+
const Mutations = {
|
|
18
|
+
send: gql `mutation SendMessage($data: MessageVOInput){
|
|
19
|
+
done: sendMessage(message: $data)
|
|
20
|
+
}`
|
|
21
|
+
};
|
|
22
|
+
export class MessageService extends BaseGraphqlService {
|
|
23
|
+
constructor(graphql, translate, toastController, environment) {
|
|
24
|
+
super(graphql, environment);
|
|
25
|
+
this.graphql = graphql;
|
|
26
|
+
this.translate = translate;
|
|
27
|
+
this.toastController = toastController;
|
|
28
|
+
this.environment = environment;
|
|
29
|
+
// For DEV only
|
|
30
|
+
this._debug = !environment.production;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Send a message to recipient(s)
|
|
34
|
+
*
|
|
35
|
+
* @param entity
|
|
36
|
+
* @param opts
|
|
37
|
+
*/
|
|
38
|
+
send(entity, opts) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
// Transform into json
|
|
41
|
+
const data = entity.asObject(MINIFY_ENTITY_FOR_POD);
|
|
42
|
+
const now = Date.now();
|
|
43
|
+
if (this._debug)
|
|
44
|
+
console.debug(`[message-service] Send message...`, data);
|
|
45
|
+
try {
|
|
46
|
+
const { done } = yield this.graphql.mutate({
|
|
47
|
+
mutation: Mutations.send,
|
|
48
|
+
variables: { data },
|
|
49
|
+
error: { code: SocialErrorCodes.SEND_MESSAGE_ERROR, message: 'SOCIAL.ERROR.SEND_MESSAGE_ERROR' }
|
|
50
|
+
});
|
|
51
|
+
if (this._debug)
|
|
52
|
+
console.debug(`[message-service] Send message [OK] in ${Date.now() - now}ms`);
|
|
53
|
+
if (done && (!opts || opts.showToast !== false)) {
|
|
54
|
+
yield this.showToast({ type: 'info', message: 'SOCIAL.INFO.MESSAGE_SENT' });
|
|
55
|
+
}
|
|
56
|
+
return done;
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
const error = err && err.message || err;
|
|
60
|
+
console.error(error);
|
|
61
|
+
// Show error
|
|
62
|
+
if (!opts || opts.showToast !== false) {
|
|
63
|
+
let message = error || 'SOCIAL.ERROR.SEND_MESSAGE_ERROR';
|
|
64
|
+
yield this.showToast({ type: 'error', message });
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/* -- protected methods -- */
|
|
71
|
+
showToast(opts) {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
return Toasts.show(this.toastController, this.translate, Object.assign({ type: 'info', message: 'SOCIAL.INFO.MESSAGE_SENT' }, opts));
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
MessageService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MessageService_Factory() { return new MessageService(i0.ɵɵinject(i1.GraphqlService), i0.ɵɵinject(i2.TranslateService), i0.ɵɵinject(i3.ToastController), i0.ɵɵinject(i4.ENVIRONMENT, 8)); }, token: MessageService, providedIn: "root" });
|
|
78
|
+
MessageService.decorators = [
|
|
79
|
+
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
80
|
+
];
|
|
81
|
+
MessageService.ctorParameters = () => [
|
|
82
|
+
{ type: GraphqlService },
|
|
83
|
+
{ type: TranslateService },
|
|
84
|
+
{ type: ToastController },
|
|
85
|
+
{ type: Environment, decorators: [{ type: Optional }, { type: Inject, args: [ENVIRONMENT,] }] }
|
|
86
|
+
];
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvbWVzc2FnZS9tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDeEMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRWxFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRWpGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBbUIsTUFBTSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7OztBQUluRSxNQUFNLFNBQVMsR0FBRztJQUNoQixJQUFJLEVBQUUsR0FBRyxDQUFBOztJQUVQO0NBQ0gsQ0FBQztBQUdGLE1BQU0sT0FBTyxjQUNYLFNBQVEsa0JBQTBDO0lBRWxELFlBQ1ksT0FBdUIsRUFDdkIsU0FBMkIsRUFDM0IsZUFBZ0MsRUFDQyxXQUF3QjtRQUVuRSxLQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBTGxCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBSW5FLGVBQWU7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDRyxJQUFJLENBQUMsTUFBZSxFQUFFLElBQTRCOztZQUV0RCxzQkFBc0I7WUFDdEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBRXBELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFMUUsSUFBSTtnQkFDRixNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBa0I7b0JBQ3hELFFBQVEsRUFBRSxTQUFTLENBQUMsSUFBSTtvQkFDeEIsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFO29CQUNuQixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFO2lCQUNqRyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxJQUFJLENBQUMsTUFBTTtvQkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFFL0YsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUFFO29CQUMvQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBQyxDQUFDLENBQUM7aUJBQzNFO2dCQUNELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxPQUFPLEdBQUcsRUFBRTtnQkFDVixNQUFNLEtBQUssR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7Z0JBQ3hDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRXJCLGFBQWE7Z0JBQ2IsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtvQkFDckMsSUFBSSxPQUFPLEdBQUcsS0FBSyxJQUFJLGlDQUFpQyxDQUFDO29CQUN6RCxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7aUJBQ2hEO2dCQUNELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7UUFDSCxDQUFDO0tBQUE7SUFFRCw2QkFBNkI7SUFFYixTQUFTLENBQUMsSUFBc0I7O1lBQzlDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLGtCQUNyRCxJQUFJLEVBQUUsTUFBTSxFQUNaLE9BQU8sRUFBRSwwQkFBMEIsSUFDaEMsSUFBSSxFQUNQLENBQUM7UUFDTCxDQUFDO0tBQUE7Ozs7WUFqRUYsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7O1lBbEJ4QixjQUFjO1lBR2QsZ0JBQWdCO1lBRGhCLGVBQWU7WUFHZixXQUFXLHVCQXFCZCxRQUFRLFlBQUksTUFBTSxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtncWx9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHtTb2NpYWxFcnJvckNvZGVzfSBmcm9tICcuLi9zb2NpYWwuZXJyb3JzJztcbmltcG9ydCB7R3JhcGhxbFNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvZ3JhcGhxbC9ncmFwaHFsLnNlcnZpY2UnO1xuaW1wb3J0IHtFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnN9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1RvYXN0Q29udHJvbGxlcn0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QmFzZUdyYXBocWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2Jhc2UtZ3JhcGhxbC1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7RW52aXJvbm1lbnQsIEVOVklST05NRU5UfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuaW1wb3J0IHtNZXNzYWdlLCBNZXNzYWdlRmlsdGVyfSBmcm9tICcuL21lc3NhZ2UubW9kZWwnO1xuaW1wb3J0IHtNSU5JRllfRU5USVRZX0ZPUl9QT0R9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcmVmZXJlbnRpYWwubW9kZWwnO1xuaW1wb3J0IHtTaG93VG9hc3RPcHRpb25zLCBUb2FzdHN9IGZyb20gJy4uLy4uL3NoYXJlZC90b2FzdC90b2FzdHMnO1xuaW1wb3J0IHtpc05vdE5pbE9yQmxhbmt9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuXG5cbmNvbnN0IE11dGF0aW9ucyA9IHtcbiAgc2VuZDogZ3FsYG11dGF0aW9uIFNlbmRNZXNzYWdlKCRkYXRhOiBNZXNzYWdlVk9JbnB1dCl7XG4gICAgZG9uZTogc2VuZE1lc3NhZ2UobWVzc2FnZTogJGRhdGEpXG4gIH1gXG59O1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlU2VydmljZVxuICBleHRlbmRzIEJhc2VHcmFwaHFsU2VydmljZTxNZXNzYWdlLCBNZXNzYWdlRmlsdGVyPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRcbiAgKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgZW52aXJvbm1lbnQpO1xuXG4gICAgLy8gRm9yIERFViBvbmx5XG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIGEgbWVzc2FnZSB0byByZWNpcGllbnQocylcbiAgICpcbiAgICogQHBhcmFtIGVudGl0eVxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgYXN5bmMgc2VuZChlbnRpdHk6IE1lc3NhZ2UsIG9wdHM/OiB7c2hvd1RvYXN0PzogYm9vbGVhbn0pOiBQcm9taXNlPGJvb2xlYW4+IHtcblxuICAgIC8vIFRyYW5zZm9ybSBpbnRvIGpzb25cbiAgICBjb25zdCBkYXRhID0gZW50aXR5LmFzT2JqZWN0KE1JTklGWV9FTlRJVFlfRk9SX1BPRCk7XG5cbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW21lc3NhZ2Utc2VydmljZV0gU2VuZCBtZXNzYWdlLi4uYCwgZGF0YSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qge2RvbmV9ID0gYXdhaXQgdGhpcy5ncmFwaHFsLm11dGF0ZTx7ZG9uZTogYm9vbGVhbn0+KHtcbiAgICAgICAgbXV0YXRpb246IE11dGF0aW9ucy5zZW5kLFxuICAgICAgICB2YXJpYWJsZXM6IHsgZGF0YSB9LFxuICAgICAgICBlcnJvcjogeyBjb2RlOiBTb2NpYWxFcnJvckNvZGVzLlNFTkRfTUVTU0FHRV9FUlJPUiwgbWVzc2FnZTogJ1NPQ0lBTC5FUlJPUi5TRU5EX01FU1NBR0VfRVJST1InIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYFttZXNzYWdlLXNlcnZpY2VdIFNlbmQgbWVzc2FnZSBbT0tdIGluICR7RGF0ZS5ub3coKSAtIG5vd31tc2ApO1xuXG4gICAgICBpZiAoZG9uZSAmJiAoIW9wdHMgfHwgb3B0cy5zaG93VG9hc3QgIT09IGZhbHNlKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7dHlwZTogJ2luZm8nLCBtZXNzYWdlOiAnU09DSUFMLklORk8uTUVTU0FHRV9TRU5UJ30pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRvbmU7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycjtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXG4gICAgICAvLyBTaG93IGVycm9yXG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5zaG93VG9hc3QgIT09IGZhbHNlKSB7XG4gICAgICAgIGxldCBtZXNzYWdlID0gZXJyb3IgfHwgJ1NPQ0lBTC5FUlJPUi5TRU5EX01FU1NBR0VfRVJST1InO1xuICAgICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7dHlwZTogJ2Vycm9yJywgbWVzc2FnZX0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNob3dUb2FzdChvcHRzOiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgcmV0dXJuIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgdHlwZTogJ2luZm8nLFxuICAgICAgbWVzc2FnZTogJ1NPQ0lBTC5JTkZPLk1FU1NBR0VfU0VOVCcsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const SocialErrorCodes = {
|
|
2
|
+
LOAD_USER_EVENTS_ERROR: 50000,
|
|
3
|
+
SAVE_USER_EVENT_ERROR: 50001,
|
|
4
|
+
SEND_MESSAGE_ERROR: 50003
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLmVycm9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3NvY2lhbC5lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsc0JBQXNCLEVBQUUsS0FBSztJQUM3QixxQkFBcUIsRUFBRSxLQUFLO0lBQzVCLGtCQUFrQixFQUFFLEtBQUs7Q0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGNvbnN0IFNvY2lhbEVycm9yQ29kZXMgPSB7XG4gIExPQURfVVNFUl9FVkVOVFNfRVJST1I6IDUwMDAwLFxuICBTQVZFX1VTRVJfRVZFTlRfRVJST1I6IDUwMDAxLFxuICBTRU5EX01FU1NBR0VfRVJST1I6IDUwMDAzXG59O1xuIl19
|
|
@@ -1,31 +1,28 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import {
|
|
4
|
-
import { UserEventsTable } from './list/user-events.table';
|
|
3
|
+
import { UserEventsTable } from './user-event/user-events.table';
|
|
5
4
|
import { CoreModule } from '../core/core.module';
|
|
5
|
+
import { MessageModal } from './message/message.modal';
|
|
6
|
+
import { SharedModule } from '../shared/shared.module';
|
|
7
|
+
import { MessageForm } from './message/message.form';
|
|
6
8
|
export class SocialModule {
|
|
7
|
-
static forRoot() {
|
|
8
|
-
console.debug('[social] Creating module (root)');
|
|
9
|
-
return {
|
|
10
|
-
ngModule: SocialModule,
|
|
11
|
-
providers: [
|
|
12
|
-
UserEventService
|
|
13
|
-
]
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
9
|
}
|
|
17
10
|
SocialModule.decorators = [
|
|
18
11
|
{ type: NgModule, args: [{
|
|
19
12
|
imports: [
|
|
20
13
|
CommonModule,
|
|
21
|
-
CoreModule
|
|
14
|
+
CoreModule,
|
|
15
|
+
SharedModule
|
|
22
16
|
],
|
|
23
17
|
declarations: [
|
|
24
|
-
UserEventsTable
|
|
18
|
+
UserEventsTable,
|
|
19
|
+
MessageModal,
|
|
20
|
+
MessageForm
|
|
25
21
|
],
|
|
26
22
|
exports: [
|
|
27
|
-
UserEventsTable
|
|
23
|
+
UserEventsTable,
|
|
24
|
+
MessageModal
|
|
28
25
|
]
|
|
29
26
|
},] }
|
|
30
27
|
];
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3NvY2lhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFrQm5ELE1BQU0sT0FBTyxZQUFZOzs7WUFoQnhCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixVQUFVO29CQUNWLFlBQVk7aUJBQ2I7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLGVBQWU7b0JBQ2YsWUFBWTtvQkFDWixXQUFXO2lCQUNaO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxlQUFlO29CQUNmLFlBQVk7aUJBQ2I7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1VzZXJFdmVudHNUYWJsZX0gZnJvbSAnLi91c2VyLWV2ZW50L3VzZXItZXZlbnRzLnRhYmxlJztcbmltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSAnLi4vY29yZS9jb3JlLm1vZHVsZSc7XG5pbXBvcnQge01lc3NhZ2VNb2RhbH0gZnJvbSAnLi9tZXNzYWdlL21lc3NhZ2UubW9kYWwnO1xuaW1wb3J0IHtTaGFyZWRNb2R1bGV9IGZyb20gJy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7TWVzc2FnZUZvcm19IGZyb20gJy4vbWVzc2FnZS9tZXNzYWdlLmZvcm0nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENvcmVNb2R1bGUsXG4gICAgU2hhcmVkTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFVzZXJFdmVudHNUYWJsZSxcbiAgICBNZXNzYWdlTW9kYWwsXG4gICAgTWVzc2FnZUZvcm1cbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFVzZXJFdmVudHNUYWJsZSxcbiAgICBNZXNzYWdlTW9kYWxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTb2NpYWxNb2R1bGUge1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { gql } from '@apollo/client/core';
|
|
2
|
+
export const UserEventFragments = {
|
|
3
|
+
userEvent: gql `fragment UserEventFragment on UserEventVO {
|
|
4
|
+
id
|
|
5
|
+
issuer
|
|
6
|
+
updateDate
|
|
7
|
+
creationDate
|
|
8
|
+
eventType
|
|
9
|
+
recipient
|
|
10
|
+
content
|
|
11
|
+
hash
|
|
12
|
+
signature
|
|
13
|
+
readSignature
|
|
14
|
+
__typename
|
|
15
|
+
}`,
|
|
16
|
+
lightUserEvent: gql `fragment LightUserEventFragment on UserEventVO {
|
|
17
|
+
id
|
|
18
|
+
issuer
|
|
19
|
+
recipient
|
|
20
|
+
updateDate
|
|
21
|
+
creationDate
|
|
22
|
+
eventType
|
|
23
|
+
readSignature
|
|
24
|
+
__typename
|
|
25
|
+
}`
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC5mcmFnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L3VzZXItZXZlbnQuZnJhZ21lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxTQUFTLEVBQUUsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7SUFZWjtJQUNGLGNBQWMsRUFBRSxHQUFHLENBQUE7Ozs7Ozs7OztJQVNqQjtDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2dxbH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBVc2VyRXZlbnRGcmFnbWVudHMgPSB7XG4gIHVzZXJFdmVudDogZ3FsYGZyYWdtZW50IFVzZXJFdmVudEZyYWdtZW50IG9uIFVzZXJFdmVudFZPIHtcbiAgICBpZFxuICAgIGlzc3VlclxuICAgIHVwZGF0ZURhdGVcbiAgICBjcmVhdGlvbkRhdGVcbiAgICBldmVudFR5cGVcbiAgICByZWNpcGllbnRcbiAgICBjb250ZW50XG4gICAgaGFzaFxuICAgIHNpZ25hdHVyZVxuICAgIHJlYWRTaWduYXR1cmVcbiAgICBfX3R5cGVuYW1lXG4gIH1gLFxuICBsaWdodFVzZXJFdmVudDogZ3FsYGZyYWdtZW50IExpZ2h0VXNlckV2ZW50RnJhZ21lbnQgb24gVXNlckV2ZW50Vk8ge1xuICAgIGlkXG4gICAgaXNzdWVyXG4gICAgcmVjaXBpZW50XG4gICAgdXBkYXRlRGF0ZVxuICAgIGNyZWF0aW9uRGF0ZVxuICAgIGV2ZW50VHlwZVxuICAgIHJlYWRTaWduYXR1cmVcbiAgICBfX3R5cGVuYW1lXG4gIH1gXG59O1xuIl19
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var UserEvent_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { Entity } from '../../core/services/model/entity.model';
|
|
4
|
+
import { fromDateISOString } from '../../shared/dates';
|
|
5
|
+
import { EntityClass } from '../../core/services/model/entity.decorators';
|
|
6
|
+
export const UserEventTypes = {
|
|
7
|
+
DEBUG_DATA: 'DEBUG_DATA',
|
|
8
|
+
INBOX_MESSAGE: 'INBOX_MESSAGE'
|
|
9
|
+
};
|
|
10
|
+
// @dynamic
|
|
11
|
+
let UserEvent = UserEvent_1 = class UserEvent extends Entity {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(UserEvent_1.TYPENAME);
|
|
14
|
+
}
|
|
15
|
+
asObject(opts) {
|
|
16
|
+
const target = super.asObject(opts);
|
|
17
|
+
// Serialize content
|
|
18
|
+
if (typeof target.content === 'object') {
|
|
19
|
+
target.content = JSON.stringify(target.content);
|
|
20
|
+
}
|
|
21
|
+
return target;
|
|
22
|
+
}
|
|
23
|
+
fromObject(source) {
|
|
24
|
+
Object.assign(this, source); // Copy all properties
|
|
25
|
+
super.fromObject(source);
|
|
26
|
+
this.creationDate = fromDateISOString(source.creationDate);
|
|
27
|
+
try {
|
|
28
|
+
// Deserialize content
|
|
29
|
+
if (typeof source.content === 'string' && source.content.startsWith('{')) {
|
|
30
|
+
this.content = JSON.parse(source.content);
|
|
31
|
+
}
|
|
32
|
+
// Deserialize content.context
|
|
33
|
+
if (this.content && typeof this.content.context === 'string' && this.content.context.startsWith('{')) {
|
|
34
|
+
this.content.context = JSON.parse(this.content.context);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
console.error('Error during UserEvent deserialization', err);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
UserEvent = UserEvent_1 = __decorate([
|
|
43
|
+
EntityClass({ typename: 'UserEventVO' })
|
|
44
|
+
], UserEvent);
|
|
45
|
+
export { UserEvent };
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvdXNlci1ldmVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQWlDLE1BQU0sd0NBQXdDLENBQUM7QUFFOUYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixVQUFVLEVBQUUsWUFBWTtJQUN4QixhQUFhLEVBQUUsZUFBZTtDQUMvQixDQUFDO0FBRUYsV0FBVztJQUVFLFNBQVMsdUJBQVQsU0FBVSxTQUFRLE1BQWlCO0lBYzlDO1FBQ0UsS0FBSyxDQUFDLFdBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQTRCO1FBQ25DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEMsb0JBQW9CO1FBQ3BCLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUN0QyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFXO1FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsc0JBQXNCO1FBQ25ELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0QsSUFBSTtZQUNGLHNCQUFzQjtZQUN0QixJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDM0M7WUFFRCw4QkFBOEI7WUFDOUIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDcEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3pEO1NBQ0Y7UUFDRCxPQUFNLEdBQUcsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQWpEWSxTQUFTO0lBRHJCLFdBQVcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUMsQ0FBQztHQUMxQixTQUFTLENBaURyQjtTQWpEWSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb21lbnR9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0VudGl0eSwgRW50aXR5QXNPYmplY3RPcHRpb25zLCBJRW50aXR5fSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQge1ByZWRlZmluZWRDb2xvcnN9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7ZnJvbURhdGVJU09TdHJpbmd9IGZyb20gJy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5pbXBvcnQge0VudGl0eUNsYXNzfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IFVzZXJFdmVudFR5cGVzID0ge1xuICBERUJVR19EQVRBOiAnREVCVUdfREFUQScsXG4gIElOQk9YX01FU1NBR0U6ICdJTkJPWF9NRVNTQUdFJ1xufTtcblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdVc2VyRXZlbnRWTyd9KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudCBleHRlbmRzIEVudGl0eTxVc2VyRXZlbnQ+IHtcblxuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBVc2VyRXZlbnQ7XG5cbiAgZXZlbnRUeXBlOiBzdHJpbmc7XG4gIGlzc3Vlcjogc3RyaW5nO1xuICByZWNpcGllbnQ6IHN0cmluZztcbiAgdXBkYXRlRGF0ZTogTW9tZW50O1xuICBjcmVhdGlvbkRhdGU6IE1vbWVudDtcblxuICBjb250ZW50OiBzdHJpbmcgfCBhbnk7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICByZWFkU2lnbmF0dXJlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVXNlckV2ZW50LlRZUEVOQU1FKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHRhcmdldCA9IHN1cGVyLmFzT2JqZWN0KG9wdHMpO1xuXG4gICAgLy8gU2VyaWFsaXplIGNvbnRlbnRcbiAgICBpZiAodHlwZW9mIHRhcmdldC5jb250ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgdGFyZ2V0LmNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeSh0YXJnZXQuY29udGVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnkpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHNvdXJjZSk7IC8vIENvcHkgYWxsIHByb3BlcnRpZXNcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgdGhpcy5jcmVhdGlvbkRhdGUgPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2UuY3JlYXRpb25EYXRlKTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBEZXNlcmlhbGl6ZSBjb250ZW50XG4gICAgICBpZiAodHlwZW9mIHNvdXJjZS5jb250ZW50ID09PSAnc3RyaW5nJyAmJiBzb3VyY2UuY29udGVudC5zdGFydHNXaXRoKCd7JykpIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gSlNPTi5wYXJzZShzb3VyY2UuY29udGVudCk7XG4gICAgICB9XG5cbiAgICAgIC8vIERlc2VyaWFsaXplIGNvbnRlbnQuY29udGV4dFxuICAgICAgaWYgKHRoaXMuY29udGVudCAmJiB0eXBlb2YgdGhpcy5jb250ZW50LmNvbnRleHQgPT09ICdzdHJpbmcnICYmIHRoaXMuY29udGVudC5jb250ZXh0LnN0YXJ0c1dpdGgoJ3snKSkge1xuICAgICAgICB0aGlzLmNvbnRlbnQuY29udGV4dCA9IEpTT04ucGFyc2UodGhpcy5jb250ZW50LmNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgICBjYXRjaChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGR1cmluZyBVc2VyRXZlbnQgZGVzZXJpYWxpemF0aW9uJywgZXJyKTtcbiAgICB9XG4gIH1cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJFdmVudEFjdGlvbjxUIGV4dGVuZHMgSUVudGl0eTxUPj4ge1xuXG4gIG5hbWU6IHN0cmluZyB8IGFueTtcbiAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgaWNvbj86IHN0cmluZztcbiAgbWF0SWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBQcmVkZWZpbmVkQ29sb3JzO1xuXG4gIGV4ZWN1dGVBY3Rpb246IChldmVudDogVXNlckV2ZW50LCBjb250ZXh0PzogVCkgPT4gYW55IHwgUHJvbWlzZTxhbnk+O1xuXG59XG4iXX0=
|