@excent/excent-serv-positions 1.0.30 → 1.0.32

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.
@@ -1,9 +1,9 @@
1
1
  import { HttpParams } from '@angular/common/http';
2
2
  import { Injectable } from '@angular/core';
3
- import { Symbol, } from '@excent/excent-models';
4
- import { endpoint } from './excent-serv-positions.enpoints';
3
+ import { Symbol } from '@excent/excent-models';
5
4
  import { BehaviorSubject, Subject, tap } from 'rxjs';
6
5
  import { map } from 'rxjs/operators';
6
+ import { endpoint } from './excent-serv-positions.enpoints';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common/http";
9
9
  export class ExcentServPositionsService {
@@ -41,8 +41,13 @@ export class ExcentServPositionsService {
41
41
  const params = new HttpParams().set('idAccount', idUser);
42
42
  return this.httpClient.get(endpoint.open, { params });
43
43
  }
44
- getOpenCsv(tradingAccountUuid, headers) {
45
- let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
44
+ getOpenCsv(headers, data) {
45
+ let params = new HttpParams();
46
+ if (data) {
47
+ for (let entry of data.entries()) {
48
+ params = params.append(entry[0], entry[1]);
49
+ }
50
+ }
46
51
  return this.httpClient.get(endpoint.listOpen, {
47
52
  params,
48
53
  headers,
@@ -82,8 +87,13 @@ export class ExcentServPositionsService {
82
87
  }
83
88
  }));
84
89
  }
85
- getCloseCsv(tradingAccountUuid, headers) {
86
- let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
90
+ getCloseCsv(headers, data) {
91
+ let params = new HttpParams();
92
+ if (data) {
93
+ for (let entry of data.entries()) {
94
+ params = params.append(entry[0], entry[1]);
95
+ }
96
+ }
87
97
  return this.httpClient.get(endpoint.closePosition, {
88
98
  params,
89
99
  headers,
@@ -91,6 +101,24 @@ export class ExcentServPositionsService {
91
101
  responseType: 'blob',
92
102
  });
93
103
  }
104
+ getCloseCSVTrading(data, headers) {
105
+ let params = new HttpParams();
106
+ if (data) {
107
+ for (let entry of data.entries()) {
108
+ params = params.append(entry[0], entry[1]);
109
+ }
110
+ }
111
+ return this.httpClient.get(endpoint.closePosition, headers
112
+ ? {
113
+ params,
114
+ headers,
115
+ observe: 'body',
116
+ responseType: 'blob',
117
+ }
118
+ : {
119
+ params,
120
+ });
121
+ }
94
122
  getClose(tradingAccountUuid, data) {
95
123
  let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
96
124
  if (data) {
@@ -237,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
237
265
  providedIn: 'root',
238
266
  }]
239
267
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZW50LXNlcnYtcG9zaXRpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leGNlbnQtc2Vydi1wb3NpdGlvbnMvc3JjL2xpYi9leGNlbnQtc2Vydi1wb3NpdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUlMLE1BQU0sR0FRUCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFNckMsTUFBTSxPQUFPLDBCQUEwQjtJQTJCckMsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTFCbEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFtQixJQUFJLENBQUMsQ0FBQztRQUN4RCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUN4RCxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUF3QixFQUFFLENBQUMsQ0FBQztRQUNqRSxjQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QyxtQkFBYyxHQUNuQixJQUFJLGVBQWUsQ0FBa0M7WUFDbkQsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLEVBQUU7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LEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ3hFLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxNQUFxQjtRQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsY0FBcUM7UUFDNUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVNLHNCQUFzQixDQUFJLEVBQVUsRUFBRSxJQUFzQjtRQUNqRSxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO1FBQzdCLElBQUksSUFBSSxFQUFFO1lBQ1IsS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2hDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM1QztTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ2hGLENBQUM7O3VIQXZTVSwwQkFBMEI7MkhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzJGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIElQb3NpdGlvbixcbiAgSVJlc3BvbnNlT3JkZXIsXG4gIElDbG9zZVBvc2l0aW9uLFxuICBTeW1ib2wsXG4gIElPcmRlcixcbiAgSVJlc3BvbnNlQ2xvc2UsXG4gIElUcmFkZVN1bW1hcnksXG4gIElQb3NpdGlvblN1bW1hcnlEZWFsaW5nLFxuICBJUGF5bG9hZENyZWF0ZU9yZGVyLFxuICBJUGF5bG9hZENyZWF0ZVBvc2l0aW9uLFxuICBSZXNwb25zZVBhZ2luYXRvcixcbn0gZnJvbSAnQGV4Y2VudC9leGNlbnQtbW9kZWxzJztcbmltcG9ydCB7IGVuZHBvaW50IH0gZnJvbSAnLi9leGNlbnQtc2Vydi1wb3NpdGlvbnMuZW5wb2ludHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxudHlwZSBJUG9zaXRpb25SZXNwb25zZSA9IFBhcnRpYWw8SVBvc2l0aW9uPiAmIHsgY3VycmVudFByaWNlOiBudW1iZXIgfTtcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFeGNlbnRTZXJ2UG9zaXRpb25zU2VydmljZSB7XG4gIHByaXZhdGUgX3JlZnJlc2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBwb3NpdGlvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVBvc2l0aW9uIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyBwZW5kaW5nT3JkZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8SU9yZGVyPj4oW10pO1xuICBwdWJsaWMgY2xvc2VQb3NpdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxJQ2xvc2VQb3NpdGlvbj4+KFtdKTtcbiAgcHVibGljIHBvc2l0aW9uJCA9IHRoaXMucG9zaXRpb24uYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyBvcGVyYXRpb25PcmRlcjogQmVoYXZpb3JTdWJqZWN0PHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogSU9yZGVyIH0+ID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogSU9yZGVyIH0+KHtcbiAgICAgIHR5cGU6ICcnLFxuICAgICAgdmFsdWU6IHtcbiAgICAgICAgdXVpZDogJycsXG4gICAgICAgIGlkOiAnJyxcbiAgICAgICAgdHJhZGluZ0FjY291bnQ6ICcnLFxuICAgICAgICBzeW1ib2w6IG5ldyBTeW1ib2woKS5pZCxcbiAgICAgICAgaWRTeW1ib2w6IDAsXG4gICAgICAgIG9yZGVyVHlwZTogMCxcbiAgICAgICAgb3JkZXJTdGF0dXM6IDAsXG4gICAgICAgIHZvbHVtZTogMCxcbiAgICAgICAgYnV5OiBmYWxzZSxcbiAgICAgICAgc3RvcExvc3M6IDAsXG4gICAgICAgIHRha2VQcm9maXQ6IDAsXG4gICAgICAgIGFjdGl2YXRpb25QcmljZTogMCxcbiAgICAgICAgY2FuY2VsbGF0aW9uRGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgY3JlYXRpb25EYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XG5cbiAgZ2V0IHJlZnJlc2gkKCk6IFN1YmplY3Q8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9yZWZyZXNoJDtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRQb3NpdGlvbnMoaWRVc2VyOiBudW1iZXIpOiBPYnNlcnZhYmxlPElQb3NpdGlvbltdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkQWNjb3VudCcsIGlkVXNlcik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8SVBvc2l0aW9uW10+KGVuZHBvaW50Lm9wZW4sIHsgcGFyYW1zIH0pO1xuICB9XG5cbiAgcHVibGljIGdldE9wZW5Dc3Y8VD4odHJhZGluZ0FjY291bnRVdWlkOiBzdHJpbmcsIGhlYWRlcnM6IEh0dHBIZWFkZXJzKSB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCd0cmFkaW5nQWNjb3VudCcsIHRyYWRpbmdBY2NvdW50VXVpZCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoZW5kcG9pbnQubGlzdE9wZW4sIHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3BlbjxUPihcbiAgICB1dWlkPzogc3RyaW5nLFxuICAgIGRhdGE/OiBNYXA8c3RyaW5nLCBhbnk+XG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIFxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgaWYgKHV1aWQpIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3RyYWRpbmdBY2NvdW50JywgdXVpZCk7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldDxUPihlbmRwb2ludC5saXN0T3Blbiwge1xuICAgICAgICBwYXJhbXMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZWw6IGFueSkgPT4ge1xuICAgICAgICAgIGlmKGVsLnJlc3VsdHMpIHtcbiAgICAgICAgICAgIGxldCBwb3NpdGlvbnMgPSAoZWwgYXMgUmVzcG9uc2VQYWdpbmF0b3I8SVBvc2l0aW9uPikucmVzdWx0cy5tYXAoKHBvc2l0aW9uKSA9PiAoe1xuICAgICAgICAgICAgICAuLi5wb3NpdGlvbixcbiAgICAgICAgICAgICAgc3ltYm9sSWQ6IHBvc2l0aW9uLnN5bWJvbCxcbiAgICAgICAgICAgICAgc3ltYm9sOiBuZXcgU3ltYm9sKCksXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICByZXR1cm4gey4uLmVsLCAncmVzdWx0cyc6IHBvc2l0aW9ucyB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsID0gKGVsIGFzIEFycmF5PElQb3NpdGlvbj4pLm1hcCgocG9zaXRpb24pID0+ICh7XG4gICAgICAgICAgICAgIC4uLnBvc2l0aW9uLFxuICAgICAgICAgICAgICBzeW1ib2xJZDogcG9zaXRpb24uc3ltYm9sLFxuICAgICAgICAgICAgICBzeW1ib2w6IG5ldyBTeW1ib2woKSxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHJldHVybiBlbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldENsb3NlQ3N2PFQ+KHRyYWRpbmdBY2NvdW50VXVpZDogc3RyaW5nLCBoZWFkZXJzOiBIdHRwSGVhZGVycykge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgndHJhZGluZ0FjY291bnQnLCB0cmFkaW5nQWNjb3VudFV1aWQpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGVuZHBvaW50LmNsb3NlUG9zaXRpb24sIHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2xvc2U8VD4oXG4gICAgdHJhZGluZ0FjY291bnRVdWlkOiBzdHJpbmcsXG4gICAgZGF0YT86IE1hcDxzdHJpbmcsIGFueT5cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCd0cmFkaW5nQWNjb3VudCcsIHRyYWRpbmdBY2NvdW50VXVpZCk7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8VD4oZW5kcG9pbnQuY2xvc2VQb3NpdGlvbiwge1xuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldE9yZGVyc0NzdjxUPih0cmFkaW5nQWNjb3VudFV1aWQ6IHN0cmluZywgaGVhZGVyczogSHR0cEhlYWRlcnMpIHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3RyYWRpbmdBY2NvdW50JywgdHJhZGluZ0FjY291bnRVdWlkKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdvcmRlclN0YXR1cycsIDEpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGVuZHBvaW50Lm9yZGVycywge1xuICAgICAgcGFyYW1zLFxuICAgICAgaGVhZGVycyxcbiAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPcmRlcnM8VD4oXG4gICAgdHJhZGluZ0FjY291bnRVdWlkOiBzdHJpbmcsXG4gICAgb3JkZXJTdGF0dXM6IG51bWJlcixcbiAgICBkYXRhPzogTWFwPHN0cmluZywgYW55PlxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3RyYWRpbmdBY2NvdW50JywgdHJhZGluZ0FjY291bnRVdWlkKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdvcmRlclN0YXR1cycsIG9yZGVyU3RhdHVzKTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChsZXQgZW50cnkgb2YgZGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUPihlbmRwb2ludC5vcmRlcnMsIHtcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGUodmFsdWU6IElQYXlsb2FkQ3JlYXRlUG9zaXRpb24pOiBPYnNlcnZhYmxlPElQb3NpdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxJUG9zaXRpb24+KGVuZHBvaW50LmNyZWF0ZSwgdmFsdWUpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLl9yZWZyZXNoJC5uZXh0KCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlT3JkZXI8VCwgVT4odmFsdWU6IFUpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8VD4oZW5kcG9pbnQuY3JlYXRlT3JkZXIsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVBvc2l0aW9ucyhcbiAgICB2b2x1bWU6IHsgdm9sdW1lOiBudW1iZXIgfSxcbiAgICB1dWlkOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQ2xvc2VQb3NpdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0PElDbG9zZVBvc2l0aW9uPihcbiAgICAgICAgYC9wb3NpdGlvbnMvdHJhZGluZy1wb3NpdGlvbnMvJHt1dWlkfS9jbG9zZS9gLFxuICAgICAgICB2b2x1bWVcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVmcmVzaCQubmV4dCgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQb3NpdGlvbihwb3NpdGlvbjogSVBvc2l0aW9uIHwgbnVsbCkge1xuICAgIHRoaXMucG9zaXRpb24ubmV4dChwb3NpdGlvbik7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsbE9yZGVyKHV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SVJlc3BvbnNlT3JkZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8SVJlc3BvbnNlT3JkZXI+KFxuICAgICAgZW5kcG9pbnQuY2FuY2VsbE9yZGVyMSArIHV1aWQgKyBlbmRwb2ludC5jYW5jZWxsT3JkZXIyLFxuICAgICAge31cbiAgICApO1xuICB9XG5cbiAgcHVibGljIHBhdGNoUG9zaXRpb24oXG4gICAgZm9ybTogeyBzdG9wTG9zcz86IG51bWJlcjsgdGFrZVByb2ZpdD86IG51bWJlcjsgdm9sdW1lPzogbnVtYmVyIH0sXG4gICAgdXVpZDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SVBvc2l0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaDxJUG9zaXRpb24+KFxuICAgICAgZW5kcG9pbnQucGF0Y2hQb3NpdGlvbiArIHV1aWQgKyAnLycsXG4gICAgICBmb3JtXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaE9yZGVyKHZhbHVlOiBhbnksIHV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SVJlc3BvbnNlT3JkZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBhdGNoPElSZXNwb25zZU9yZGVyPihcbiAgICAgIGVuZHBvaW50LnBhdGNoT3JkZXIgKyB1dWlkICsgJy8nLFxuICAgICAgdmFsdWVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFBvc2l0aW9uc1RyYWRlU3VtbWFyeShcbiAgICBkYXRhPzogTWFwPHN0cmluZywgYW55PlxuICApOiBPYnNlcnZhYmxlPElUcmFkZVN1bW1hcnlbXT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBmb3IgKGxldCBlbnRyeSBvZiBkYXRhLmVudHJpZXMoKSkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8SVRyYWRlU3VtbWFyeVtdPihlbmRwb2ludC50cmFkZVN1bW1hcnksIHtcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFBvc2l0aW9uc1N1bW1hcnlEZWFsaW5nKFxuICAgIGRhdGE/OiBNYXA8c3RyaW5nLCBhbnk+XG4gICk6IE9ic2VydmFibGU8SVBvc2l0aW9uU3VtbWFyeURlYWxpbmdbXT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBmb3IgKGxldCBlbnRyeSBvZiBkYXRhLmVudHJpZXMoKSkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8SVBvc2l0aW9uU3VtbWFyeURlYWxpbmdbXT4oXG4gICAgICBlbmRwb2ludC5wb3NpdGlvblN1bW1hcnlEZWFsaW5nLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNsb3NlQWxsUG9zaXRpb25zKHV1aWRBY2NvdW50VHJkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcnJheTxJUmVzcG9uc2VDbG9zZT4+KFxuICAgICAgYC9hY2NvdW50cy90cmFkaW5nLWFjY291bnRzLyR7dXVpZEFjY291bnRUcmR9L2Nsb3NlLWFsbC1wb3NpdGlvbnMvYFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBvc2l0aW9uU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMucG9zaXRpb24uZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxBbGxPcmRlcnM8VD4odXVpZEFjY291bnRUcmQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5nZXQ8VD4oYC9hY2NvdW50cy90cmFkaW5nLWFjY291bnRzLyR7dXVpZEFjY291bnRUcmR9L2NhbmNlbC1hbGwtb3JkZXJzL2ApXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VG90YWxQb3NpdGlvbnM8VD4oZGF0YT86IE1hcDxzdHJpbmcsYW55Pikge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8VD4oZW5kcG9pbnQubGlzdE9wZW4gKyAndG90YWxzLycsIHsgcGFyYW1zIH0pXG4gIH1cblxuICBwdWJsaWMgZ2V0Q2xvc2VkUG9zaXRpb25zVG90YWxzPFQ+KGRhdGE/OiBNYXA8c3RyaW5nLGFueT4pIHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgIGlmIChkYXRhKSB7XG4gICAgICBmb3IgKGxldCBlbnRyeSBvZiBkYXRhLmVudHJpZXMoKSkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PFQ+KGVuZHBvaW50LmNsb3NlUG9zaXRpb24gKyAndG90YWxzLycsIHsgcGFyYW1zIH0pXG4gIH1cblxuICBwdWJsaWMgZ2V0QWN0aXZlT3JkZXJzVG90YWxzPFQ+KGRhdGE/OiBNYXA8c3RyaW5nLGFueT4pIHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgIGlmIChkYXRhKSB7XG4gICAgICBmb3IgKGxldCBlbnRyeSBvZiBkYXRhLmVudHJpZXMoKSkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PFQ+KGVuZHBvaW50Lm9yZGVycyArICd0b3RhbHMvJywgeyBwYXJhbXMgfSlcbiAgfVxuXG4gIHB1YmxpYyBzZXRQZW5kaW5nT3JkZXJzKG9yZGVyczogQXJyYXk8SU9yZGVyPikge1xuICAgIHRoaXMucGVuZGluZ09yZGVycyQubmV4dChvcmRlcnMpXG4gIH1cblxuICBwdWJsaWMgc2V0Q2xvc2VQb3NpdGlvbnMoY2xvc2VQb3NpdGlvbnM6IEFycmF5PElDbG9zZVBvc2l0aW9uPikge1xuICAgIHRoaXMuY2xvc2VQb3NpdGlvbnMkLm5leHQoY2xvc2VQb3NpdGlvbnMpXG4gIH1cblxuICBwdWJsaWMgZ2V0TGlzdFBvc2l0aW9uc1NsYXZlczxUPihpZDogc3RyaW5nLCBkYXRhPzogTWFwPHN0cmluZyxhbnk+KSB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChsZXQgZW50cnkgb2YgZGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PFQ+KGAke2VuZHBvaW50Lmxpc3RPcGVufSR7aWR9L3NsYXZlcy9gLCB7IHBhcmFtcyB9KVxuICB9XG59XG4iXX0=
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZW50LXNlcnYtcG9zaXRpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leGNlbnQtc2Vydi1wb3NpdGlvbnMvc3JjL2xpYi9leGNlbnQtc2Vydi1wb3NpdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQVVMLE1BQU0sRUFDUCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFNNUQsTUFBTSxPQUFPLDBCQUEwQjtJQTJCckMsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTFCbEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFtQixJQUFJLENBQUMsQ0FBQztRQUN4RCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUN4RCxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUF3QixFQUFFLENBQUMsQ0FBQztRQUNqRSxjQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QyxtQkFBYyxHQUNuQixJQUFJLGVBQWUsQ0FBa0M7WUFDbkQsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLEVBQUU7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Q0FBQyxjQUFjLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRU0sc0JBQXNCLENBQUksRUFBVSxFQUFFLElBQXNCO1FBQ2pFLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7UUFDN0IsSUFBSSxJQUFJLEVBQUU7WUFDUixLQUFLLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDaEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzVDO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDaEYsQ0FBQzs7dUhBNVVVLDBCQUEwQjsySEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07MkZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSUNsb3NlUG9zaXRpb24sXG4gIElPcmRlcixcbiAgSVBheWxvYWRDcmVhdGVQb3NpdGlvbixcbiAgSVBvc2l0aW9uLFxuICBJUG9zaXRpb25TdW1tYXJ5RGVhbGluZyxcbiAgSVJlc3BvbnNlQ2xvc2UsXG4gIElSZXNwb25zZU9yZGVyLFxuICBJVHJhZGVTdW1tYXJ5LFxuICBSZXNwb25zZVBhZ2luYXRvcixcbiAgU3ltYm9sXG59IGZyb20gJ0BleGNlbnQvZXhjZW50LW1vZGVscyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZW5kcG9pbnQgfSBmcm9tICcuL2V4Y2VudC1zZXJ2LXBvc2l0aW9ucy5lbnBvaW50cyc7XG5cbnR5cGUgSVBvc2l0aW9uUmVzcG9uc2UgPSBQYXJ0aWFsPElQb3NpdGlvbj4gJiB7IGN1cnJlbnRQcmljZTogbnVtYmVyIH07XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXhjZW50U2VydlBvc2l0aW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIF9yZWZyZXNoJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcG9zaXRpb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElQb3NpdGlvbiB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcGVuZGluZ09yZGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PElPcmRlcj4+KFtdKTtcbiAgcHVibGljIGNsb3NlUG9zaXRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8SUNsb3NlUG9zaXRpb24+PihbXSk7XG4gIHB1YmxpYyBwb3NpdGlvbiQgPSB0aGlzLnBvc2l0aW9uLmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgb3BlcmF0aW9uT3JkZXI6IEJlaGF2aW9yU3ViamVjdDx7IHR5cGU6IHN0cmluZzsgdmFsdWU6IElPcmRlciB9PiA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDx7IHR5cGU6IHN0cmluZzsgdmFsdWU6IElPcmRlciB9Pih7XG4gICAgICB0eXBlOiAnJyxcbiAgICAgIHZhbHVlOiB7XG4gICAgICAgIHV1aWQ6ICcnLFxuICAgICAgICBpZDogJycsXG4gICAgICAgIHRyYWRpbmdBY2NvdW50OiAnJyxcbiAgICAgICAgc3ltYm9sOiBuZXcgU3ltYm9sKCkuaWQsXG4gICAgICAgIGlkU3ltYm9sOiAwLFxuICAgICAgICBvcmRlclR5cGU6IDAsXG4gICAgICAgIG9yZGVyU3RhdHVzOiAwLFxuICAgICAgICB2b2x1bWU6IDAsXG4gICAgICAgIGJ1eTogZmFsc2UsXG4gICAgICAgIHN0b3BMb3NzOiAwLFxuICAgICAgICB0YWtlUHJvZml0OiAwLFxuICAgICAgICBhY3RpdmF0aW9uUHJpY2U6IDAsXG4gICAgICAgIGNhbmNlbGxhdGlvbkRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgIGNyZWF0aW9uRGF0ZTogbmV3IERhdGUoKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7fVxuXG4gIGdldCByZWZyZXNoJCgpOiBTdWJqZWN0PHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVmcmVzaCQ7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkUG9zaXRpb25zKGlkVXNlcjogbnVtYmVyKTogT2JzZXJ2YWJsZTxJUG9zaXRpb25bXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdpZEFjY291bnQnLCBpZFVzZXIpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PElQb3NpdGlvbltdPihlbmRwb2ludC5vcGVuLCB7IHBhcmFtcyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPcGVuQ3N2PFQ+KGhlYWRlcnM6IEh0dHBIZWFkZXJzLCBkYXRhPzogTWFwPHN0cmluZywgYW55Pikge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChlbmRwb2ludC5saXN0T3Blbiwge1xuICAgICAgcGFyYW1zLFxuICAgICAgaGVhZGVycyxcbiAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPcGVuPFQ+KFxuICAgIHV1aWQ/OiBzdHJpbmcsXG4gICAgZGF0YT86IE1hcDxzdHJpbmcsIGFueT5cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG5cbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgIGlmICh1dWlkKSBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCd0cmFkaW5nQWNjb3VudCcsIHV1aWQpO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBmb3IgKGxldCBlbnRyeSBvZiBkYXRhLmVudHJpZXMoKSkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldDxUPihlbmRwb2ludC5saXN0T3Blbiwge1xuICAgICAgICBwYXJhbXMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZWw6IGFueSkgPT4ge1xuICAgICAgICAgIGlmKGVsLnJlc3VsdHMpIHtcbiAgICAgICAgICAgIGxldCBwb3NpdGlvbnMgPSAoZWwgYXMgUmVzcG9uc2VQYWdpbmF0b3I8SVBvc2l0aW9uPikucmVzdWx0cy5tYXAoKHBvc2l0aW9uKSA9PiAoe1xuICAgICAgICAgICAgICAuLi5wb3NpdGlvbixcbiAgICAgICAgICAgICAgc3ltYm9sSWQ6IHBvc2l0aW9uLnN5bWJvbCxcbiAgICAgICAgICAgICAgc3ltYm9sOiBuZXcgU3ltYm9sKCksXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICByZXR1cm4gey4uLmVsLCAncmVzdWx0cyc6IHBvc2l0aW9ucyB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsID0gKGVsIGFzIEFycmF5PElQb3NpdGlvbj4pLm1hcCgocG9zaXRpb24pID0+ICh7XG4gICAgICAgICAgICAgIC4uLnBvc2l0aW9uLFxuICAgICAgICAgICAgICBzeW1ib2xJZDogcG9zaXRpb24uc3ltYm9sLFxuICAgICAgICAgICAgICBzeW1ib2w6IG5ldyBTeW1ib2woKSxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHJldHVybiBlbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldENsb3NlQ3N2PFQ+KGhlYWRlcnM6IEh0dHBIZWFkZXJzLCBkYXRhPzogTWFwPHN0cmluZywgYW55Pikge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoZW5kcG9pbnQuY2xvc2VQb3NpdGlvbiwge1xuICAgICAgcGFyYW1zLFxuICAgICAgaGVhZGVycyxcbiAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDbG9zZUNTVlRyYWRpbmc8VD4oZGF0YT86IE1hcDxzdHJpbmcsIGFueT4sIGhlYWRlcnM/OiBIdHRwSGVhZGVycykge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUPihcbiAgICAgIGVuZHBvaW50LmNsb3NlUG9zaXRpb24sXG4gICAgICBoZWFkZXJzXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyxcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldENsb3NlPFQ+KFxuICAgIHRyYWRpbmdBY2NvdW50VXVpZDogc3RyaW5nLFxuICAgIGRhdGE/OiBNYXA8c3RyaW5nLCBhbnk+XG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgndHJhZGluZ0FjY291bnQnLCB0cmFkaW5nQWNjb3VudFV1aWQpO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBmb3IgKGxldCBlbnRyeSBvZiBkYXRhLmVudHJpZXMoKSkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PFQ+KGVuZHBvaW50LmNsb3NlUG9zaXRpb24sIHtcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPcmRlcnNDc3Y8VD4odHJhZGluZ0FjY291bnRVdWlkOiBzdHJpbmcsIGhlYWRlcnM6IEh0dHBIZWFkZXJzKSB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCd0cmFkaW5nQWNjb3VudCcsIHRyYWRpbmdBY2NvdW50VXVpZCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnb3JkZXJTdGF0dXMnLCAxKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChlbmRwb2ludC5vcmRlcnMsIHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3JkZXJzPFQ+KFxuICAgIHRyYWRpbmdBY2NvdW50VXVpZDogc3RyaW5nLFxuICAgIG9yZGVyU3RhdHVzOiBudW1iZXIsXG4gICAgZGF0YT86IE1hcDxzdHJpbmcsIGFueT5cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCd0cmFkaW5nQWNjb3VudCcsIHRyYWRpbmdBY2NvdW50VXVpZCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnb3JkZXJTdGF0dXMnLCBvcmRlclN0YXR1cyk7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8VD4oZW5kcG9pbnQub3JkZXJzLCB7XG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlKHZhbHVlOiBJUGF5bG9hZENyZWF0ZVBvc2l0aW9uKTogT2JzZXJ2YWJsZTxJUG9zaXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8SVBvc2l0aW9uPihlbmRwb2ludC5jcmVhdGUsIHZhbHVlKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaCQubmV4dCgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZU9yZGVyPFQsIFU+KHZhbHVlOiBVKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFQ+KGVuZHBvaW50LmNyZWF0ZU9yZGVyLCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VQb3NpdGlvbnMoXG4gICAgdm9sdW1lOiB7IHZvbHVtZTogbnVtYmVyIH0sXG4gICAgdXVpZDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUNsb3NlUG9zaXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucG9zdDxJQ2xvc2VQb3NpdGlvbj4oXG4gICAgICAgIGAvcG9zaXRpb25zL3RyYWRpbmctcG9zaXRpb25zLyR7dXVpZH0vY2xvc2UvYCxcbiAgICAgICAgdm9sdW1lXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0UG9zaXRpb24ocG9zaXRpb246IElQb3NpdGlvbiB8IG51bGwpIHtcbiAgICB0aGlzLnBvc2l0aW9uLm5leHQocG9zaXRpb24pO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbGxPcmRlcih1dWlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElSZXNwb25zZU9yZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PElSZXNwb25zZU9yZGVyPihcbiAgICAgIGVuZHBvaW50LmNhbmNlbGxPcmRlcjEgKyB1dWlkICsgZW5kcG9pbnQuY2FuY2VsbE9yZGVyMixcbiAgICAgIHt9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaFBvc2l0aW9uKFxuICAgIGZvcm06IHsgc3RvcExvc3M/OiBudW1iZXI7IHRha2VQcm9maXQ/OiBudW1iZXI7IHZvbHVtZT86IG51bWJlciB9LFxuICAgIHV1aWQ6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElQb3NpdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucGF0Y2g8SVBvc2l0aW9uPihcbiAgICAgIGVuZHBvaW50LnBhdGNoUG9zaXRpb24gKyB1dWlkICsgJy8nLFxuICAgICAgZm9ybVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2hPcmRlcih2YWx1ZTogYW55LCB1dWlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElSZXNwb25zZU9yZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaDxJUmVzcG9uc2VPcmRlcj4oXG4gICAgICBlbmRwb2ludC5wYXRjaE9yZGVyICsgdXVpZCArICcvJyxcbiAgICAgIHZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQb3NpdGlvbnNUcmFkZVN1bW1hcnkoXG4gICAgZGF0YT86IE1hcDxzdHJpbmcsIGFueT5cbiAgKTogT2JzZXJ2YWJsZTxJVHJhZGVTdW1tYXJ5W10+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChsZXQgZW50cnkgb2YgZGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PElUcmFkZVN1bW1hcnlbXT4oZW5kcG9pbnQudHJhZGVTdW1tYXJ5LCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQb3NpdGlvbnNTdW1tYXJ5RGVhbGluZyhcbiAgICBkYXRhPzogTWFwPHN0cmluZywgYW55PlxuICApOiBPYnNlcnZhYmxlPElQb3NpdGlvblN1bW1hcnlEZWFsaW5nW10+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChsZXQgZW50cnkgb2YgZGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PElQb3NpdGlvblN1bW1hcnlEZWFsaW5nW10+KFxuICAgICAgZW5kcG9pbnQucG9zaXRpb25TdW1tYXJ5RGVhbGluZyxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUFsbFBvc2l0aW9ucyh1dWlkQWNjb3VudFRyZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXJyYXk8SVJlc3BvbnNlQ2xvc2U+PihcbiAgICAgIGAvYWNjb3VudHMvdHJhZGluZy1hY2NvdW50cy8ke3V1aWRBY2NvdW50VHJkfS9jbG9zZS1hbGwtcG9zaXRpb25zL2BcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBwb3NpdGlvblNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLnBvc2l0aW9uLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsQWxsT3JkZXJzPFQ+KHV1aWRBY2NvdW50VHJkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PFQ+KGAvYWNjb3VudHMvdHJhZGluZy1hY2NvdW50cy8ke3V1aWRBY2NvdW50VHJkfS9jYW5jZWwtYWxsLW9yZGVycy9gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoJC5uZXh0KCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFRvdGFsUG9zaXRpb25zPFQ+KGRhdGE/OiBNYXA8c3RyaW5nLGFueT4pIHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgIGlmIChkYXRhKSB7XG4gICAgICBmb3IgKGxldCBlbnRyeSBvZiBkYXRhLmVudHJpZXMoKSkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PFQ+KGVuZHBvaW50Lmxpc3RPcGVuICsgJ3RvdGFscy8nLCB7IHBhcmFtcyB9KVxuICB9XG5cbiAgcHVibGljIGdldENsb3NlZFBvc2l0aW9uc1RvdGFsczxUPihkYXRhPzogTWFwPHN0cmluZyxhbnk+KSB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChsZXQgZW50cnkgb2YgZGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUPihlbmRwb2ludC5jbG9zZVBvc2l0aW9uICsgJ3RvdGFscy8nLCB7IHBhcmFtcyB9KVxuICB9XG5cbiAgcHVibGljIGdldEFjdGl2ZU9yZGVyc1RvdGFsczxUPihkYXRhPzogTWFwPHN0cmluZyxhbnk+KSB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChsZXQgZW50cnkgb2YgZGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUPihlbmRwb2ludC5vcmRlcnMgKyAndG90YWxzLycsIHsgcGFyYW1zIH0pXG4gIH1cblxuICBwdWJsaWMgc2V0UGVuZGluZ09yZGVycyhvcmRlcnM6IEFycmF5PElPcmRlcj4pIHtcbiAgICB0aGlzLnBlbmRpbmdPcmRlcnMkLm5leHQob3JkZXJzKVxuICB9XG5cbiAgcHVibGljIHNldENsb3NlUG9zaXRpb25zKGNsb3NlUG9zaXRpb25zOiBBcnJheTxJQ2xvc2VQb3NpdGlvbj4pIHtcbiAgICB0aGlzLmNsb3NlUG9zaXRpb25zJC5uZXh0KGNsb3NlUG9zaXRpb25zKVxuICB9XG5cbiAgcHVibGljIGdldExpc3RQb3NpdGlvbnNTbGF2ZXM8VD4oaWQ6IHN0cmluZywgZGF0YT86IE1hcDxzdHJpbmcsYW55Pikge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUPihgJHtlbmRwb2ludC5saXN0T3Blbn0ke2lkfS9zbGF2ZXMvYCwgeyBwYXJhbXMgfSlcbiAgfVxufVxuIl19
@@ -59,8 +59,13 @@ class ExcentServPositionsService {
59
59
  const params = new HttpParams().set('idAccount', idUser);
60
60
  return this.httpClient.get(endpoint.open, { params });
61
61
  }
62
- getOpenCsv(tradingAccountUuid, headers) {
63
- let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
62
+ getOpenCsv(headers, data) {
63
+ let params = new HttpParams();
64
+ if (data) {
65
+ for (let entry of data.entries()) {
66
+ params = params.append(entry[0], entry[1]);
67
+ }
68
+ }
64
69
  return this.httpClient.get(endpoint.listOpen, {
65
70
  params,
66
71
  headers,
@@ -92,8 +97,13 @@ class ExcentServPositionsService {
92
97
  }
93
98
  }));
94
99
  }
95
- getCloseCsv(tradingAccountUuid, headers) {
96
- let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
100
+ getCloseCsv(headers, data) {
101
+ let params = new HttpParams();
102
+ if (data) {
103
+ for (let entry of data.entries()) {
104
+ params = params.append(entry[0], entry[1]);
105
+ }
106
+ }
97
107
  return this.httpClient.get(endpoint.closePosition, {
98
108
  params,
99
109
  headers,
@@ -101,6 +111,24 @@ class ExcentServPositionsService {
101
111
  responseType: 'blob',
102
112
  });
103
113
  }
114
+ getCloseCSVTrading(data, headers) {
115
+ let params = new HttpParams();
116
+ if (data) {
117
+ for (let entry of data.entries()) {
118
+ params = params.append(entry[0], entry[1]);
119
+ }
120
+ }
121
+ return this.httpClient.get(endpoint.closePosition, headers
122
+ ? {
123
+ params,
124
+ headers,
125
+ observe: 'body',
126
+ responseType: 'blob',
127
+ }
128
+ : {
129
+ params,
130
+ });
131
+ }
104
132
  getClose(tradingAccountUuid, data) {
105
133
  let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
106
134
  if (data) {
@@ -1 +1 @@
1
- {"version":3,"file":"excent-excent-serv-positions.mjs","sources":["../../../projects/excent-serv-positions/src/lib/excent-serv-positions.enpoints.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.service.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.component.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.module.ts","../../../projects/excent-serv-positions/src/public-api.ts","../../../projects/excent-serv-positions/src/excent-excent-serv-positions.ts"],"sourcesContent":["export const endpoint = {\n open: '/position/open/',\n closed: '/position/closed/',\n orders: '/positions/orders/',\n wsCancelOrder: '/position/order/cancel/',\n closePosition: '/positions/position-history/',\n positionSummary: '/report/position-summary',\n listOpen: '/positions/trading-positions/',\n create: '/positions/trading-positions/',\n createOrder: '/positions/orders/',\n cancellOrder1: '/positions/orders/',\n cancellOrder2: '/cancel/',\n patchPosition: '/positions/trading-positions/',\n patchOrder: '/positions/orders/',\n tradeSummary: '/positions/trade-summary/',\n positionSummaryDealing: '/positions/positions-summary/',\n};\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n IPosition,\n IResponseOrder,\n IClosePosition,\n Symbol,\n IOrder,\n IResponseClose,\n ITradeSummary,\n IPositionSummaryDealing,\n IPayloadCreateOrder,\n IPayloadCreatePosition,\n ResponsePaginator,\n} from '@excent/excent-models';\nimport { endpoint } from './excent-serv-positions.enpoints';\nimport { BehaviorSubject, Observable, Subject, tap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\ntype IPositionResponse = Partial<IPosition> & { currentPrice: number };\n@Injectable({\n providedIn: 'root',\n})\nexport class ExcentServPositionsService {\n private _refresh$ = new Subject<void>();\n private position = new BehaviorSubject<IPosition | null>(null);\n public pendingOrders$ = new BehaviorSubject<Array<IOrder>>([]);\n public closePositions$ = new BehaviorSubject<Array<IClosePosition>>([]);\n public position$ = this.position.asObservable();\n public operationOrder: BehaviorSubject<{ type: string; value: IOrder }> =\n new BehaviorSubject<{ type: string; value: IOrder }>({\n type: '',\n value: {\n uuid: '',\n id: '',\n tradingAccount: '',\n symbol: new Symbol().id,\n idSymbol: 0,\n orderType: 0,\n orderStatus: 0,\n volume: 0,\n buy: false,\n stopLoss: 0,\n takeProfit: 0,\n activationPrice: 0,\n cancellationDate: new Date(),\n creationDate: new Date(),\n },\n });\n\n constructor(private httpClient: HttpClient) {}\n\n get refresh$(): Subject<void> {\n return this._refresh$;\n }\n\n public reloadPositions(idUser: number): Observable<IPosition[]> {\n const params = new HttpParams().set('idAccount', idUser);\n return this.httpClient.get<IPosition[]>(endpoint.open, { params });\n }\n\n public getOpenCsv<T>(tradingAccountUuid: string, headers: HttpHeaders) {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n return this.httpClient.get(endpoint.listOpen, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getOpen<T>(\n uuid?: string,\n data?: Map<string, any>\n ): Observable<T> {\n \n let params = new HttpParams()\n if (uuid) params = params.append('tradingAccount', uuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n \n return this.httpClient\n .get<T>(endpoint.listOpen, {\n params,\n })\n .pipe(\n map((el: any) => {\n if(el.results) {\n let positions = (el as ResponsePaginator<IPosition>).results.map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return {...el, 'results': positions }\n } else {\n el = (el as Array<IPosition>).map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return el;\n }\n })\n );\n }\n\n public getCloseCsv<T>(tradingAccountUuid: string, headers: HttpHeaders) {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n return this.httpClient.get(endpoint.closePosition, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getClose<T>(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition, {\n params,\n });\n }\n\n public getOrdersCsv<T>(tradingAccountUuid: string, headers: HttpHeaders) {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', 1);\n return this.httpClient.get(endpoint.orders, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getOrders<T>(\n tradingAccountUuid: string,\n orderStatus: number,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', orderStatus);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.orders, {\n params,\n });\n }\n\n public create(value: IPayloadCreatePosition): Observable<IPosition> {\n return this.httpClient.post<IPosition>(endpoint.create, value).pipe(\n tap(() => {\n this._refresh$.next();\n })\n );\n }\n\n public createOrder<T, U>(value: U) {\n return this.httpClient.post<T>(endpoint.createOrder, value);\n }\n\n public closePositions(\n volume: { volume: number },\n uuid: string\n ): Observable<IClosePosition> {\n return this.httpClient\n .post<IClosePosition>(\n `/positions/trading-positions/${uuid}/close/`,\n volume\n )\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public setPosition(position: IPosition | null) {\n this.position.next(position);\n }\n\n public cancellOrder(uuid: string): Observable<IResponseOrder> {\n return this.httpClient.post<IResponseOrder>(\n endpoint.cancellOrder1 + uuid + endpoint.cancellOrder2,\n {}\n );\n }\n\n public patchPosition(\n form: { stopLoss?: number; takeProfit?: number; volume?: number },\n uuid: string\n ): Observable<IPosition> {\n return this.httpClient.patch<IPosition>(\n endpoint.patchPosition + uuid + '/',\n form\n );\n }\n\n public patchOrder(value: any, uuid: string): Observable<IResponseOrder> {\n return this.httpClient.patch<IResponseOrder>(\n endpoint.patchOrder + uuid + '/',\n value\n );\n }\n\n public getPositionsTradeSummary(\n data?: Map<string, any>\n ): Observable<ITradeSummary[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<ITradeSummary[]>(endpoint.tradeSummary, {\n params: params,\n });\n }\n\n public getPositionsSummaryDealing(\n data?: Map<string, any>\n ): Observable<IPositionSummaryDealing[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<IPositionSummaryDealing[]>(\n endpoint.positionSummaryDealing,\n {\n params: params,\n }\n );\n }\n\n public closeAllPositions(uuidAccountTrd: string) {\n return this.httpClient.get<Array<IResponseClose>>(\n `/accounts/trading-accounts/${uuidAccountTrd}/close-all-positions/`\n );\n }\n\n public get positionSelected() {\n return this.position.getValue();\n }\n\n public cancelAllOrders<T>(uuidAccountTrd: string) {\n return this.httpClient\n .get<T>(`/accounts/trading-accounts/${uuidAccountTrd}/cancel-all-orders/`)\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public getTotalPositions<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.listOpen + 'totals/', { params })\n }\n\n public getClosedPositionsTotals<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition + 'totals/', { params })\n }\n\n public getActiveOrdersTotals<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.orders + 'totals/', { params })\n }\n\n public setPendingOrders(orders: Array<IOrder>) {\n this.pendingOrders$.next(orders)\n }\n\n public setClosePositions(closePositions: Array<IClosePosition>) {\n this.closePositions$.next(closePositions)\n }\n\n public getListPositionsSlaves<T>(id: string, data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<T>(`${endpoint.listOpen}${id}/slaves/`, { params })\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-excent-serv-positions',\n template: `\n <p>\n excent-serv-positions works!\n </p>\n `,\n styles: [\n ]\n})\nexport class ExcentServPositionsComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { ExcentServPositionsComponent } from './excent-serv-positions.component';\n\n\n\n@NgModule({\n declarations: [\n ExcentServPositionsComponent\n ],\n imports: [\n ],\n exports: [\n ExcentServPositionsComponent\n ]\n})\nexport class ExcentServPositionsModule { }\n","/*\n * Public API Surface of excent-serv-positions\n */\n\nexport * from './lib/excent-serv-positions.service';\nexport * from './lib/excent-serv-positions.component';\nexport * from './lib/excent-serv-positions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAAO,MAAM,QAAQ,GAAG;AACtB,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,MAAM,EAAE,mBAAmB;AAC3B,IAAA,MAAM,EAAE,oBAAoB;AAC5B,IAAA,aAAa,EAAE,yBAAyB;AACxC,IAAA,aAAa,EAAE,8BAA8B;AAC7C,IAAA,eAAe,EAAE,0BAA0B;AAC3C,IAAA,QAAQ,EAAE,+BAA+B;AACzC,IAAA,MAAM,EAAE,+BAA+B;AACvC,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,aAAa,EAAE,oBAAoB;AACnC,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,aAAa,EAAE,+BAA+B;AAC9C,IAAA,UAAU,EAAE,oBAAoB;AAChC,IAAA,YAAY,EAAE,2BAA2B;AACzC,IAAA,sBAAsB,EAAE,+BAA+B;CACxD;;MCOY,0BAA0B,CAAA;AA2BrC,IAAA,WAAA,CAAoB,UAAsB,EAAA;AAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AA1BlC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;QAChC,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAmB,IAAI,CAAC,CAAC;QACxD,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAgB,EAAE,CAAC,CAAC;QACxD,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAwB,EAAE,CAAC,CAAC;QACjE,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;AACzC,QAAA,IAAc,CAAA,cAAA,GACnB,IAAI,eAAe,CAAkC;AACnD,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,KAAK,EAAE;AACL,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,EAAE,EAAE,EAAE;AACN,gBAAA,cAAc,EAAE,EAAE;AAClB,gBAAA,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC,EAAE;AACvB,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,GAAG,EAAE,KAAK;AACV,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,eAAe,EAAE,CAAC;gBAClB,gBAAgB,EAAE,IAAI,IAAI,EAAE;gBAC5B,YAAY,EAAE,IAAI,IAAI,EAAE;AACzB,aAAA;AACF,SAAA,CAAC,CAAC;KAEyC;AAE9C,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAEM,IAAA,eAAe,CAAC,MAAc,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAc,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;KACpE;IAEM,UAAU,CAAI,kBAA0B,EAAE,OAAoB,EAAA;AACnE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC5C,MAAM;YACN,OAAO;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,YAAY,EAAE,MAAgB;AAC/B,SAAA,CAAC,CAAC;KACJ;IAEM,OAAO,CACZ,IAAa,EACb,IAAuB,EAAA;AAGvB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;AAC7B,QAAA,IAAI,IAAI;YAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AACzD,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;QAED,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAI,QAAQ,CAAC,QAAQ,EAAE;YACzB,MAAM;SACP,CAAC;AACD,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,EAAO,KAAI;YACd,IAAG,EAAE,CAAC,OAAO,EAAE;AACb,gBAAA,IAAI,SAAS,GAAI,EAAmC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC1E,QAAQ,CAAA,EAAA,EACX,QAAQ,EAAE,QAAQ,CAAC,MAAM,EACzB,MAAM,EAAE,IAAI,MAAM,EAAE,EAAA,CAAA,CACpB,CAAC,CAAC;AACJ,gBAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAW,EAAE,CAAA,EAAA,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA,CAAA;AACtC,aAAA;AAAM,iBAAA;gBACL,EAAE,GAAI,EAAuB,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC3C,QAAQ,CAAA,EAAA,EACX,QAAQ,EAAE,QAAQ,CAAC,MAAM,EACzB,MAAM,EAAE,IAAI,MAAM,EAAE,EACpB,CAAA,CAAA,CAAC,CAAC;AACJ,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,CACH,CAAC;KACL;IAEM,WAAW,CAAI,kBAA0B,EAAE,OAAoB,EAAA;AACpE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE;YACjD,MAAM;YACN,OAAO;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,YAAY,EAAE,MAAgB;AAC/B,SAAA,CAAC,CAAC;KACJ;IAEM,QAAQ,CACb,kBAA0B,EAC1B,IAAuB,EAAA;AAEvB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AACxE,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,QAAQ,CAAC,aAAa,EAAE;YACpD,MAAM;AACP,SAAA,CAAC,CAAC;KACJ;IAEM,YAAY,CAAI,kBAA0B,EAAE,OAAoB,EAAA;AACrE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QACxE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC1C,MAAM;YACN,OAAO;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,YAAY,EAAE,MAAgB;AAC/B,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,SAAS,CACd,kBAA0B,EAC1B,WAAmB,EACnB,IAAuB,EAAA;AAEvB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QACxE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACnD,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,QAAQ,CAAC,MAAM,EAAE;YAC7C,MAAM;AACP,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,MAAM,CAAC,KAA6B,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAY,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CACjE,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACvB,CAAC,CACH,CAAC;KACH;AAEM,IAAA,WAAW,CAAO,KAAQ,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;KAC7D;IAEM,cAAc,CACnB,MAA0B,EAC1B,IAAY,EAAA;QAEZ,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CACH,CAAgC,6BAAA,EAAA,IAAI,CAAS,OAAA,CAAA,EAC7C,MAAM,CACP;AACA,aAAA,IAAI,CACH,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB,CAAC,CACH,CAAC;KACL;AAEM,IAAA,WAAW,CAAC,QAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9B;AAEM,IAAA,YAAY,CAAC,IAAY,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,QAAQ,CAAC,aAAa,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,EACtD,EAAE,CACH,CAAC;KACH;IAEM,aAAa,CAClB,IAAiE,EACjE,IAAY,EAAA;AAEZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAC1B,QAAQ,CAAC,aAAa,GAAG,IAAI,GAAG,GAAG,EACnC,IAAI,CACL,CAAC;KACH;IAEM,UAAU,CAAC,KAAU,EAAE,IAAY,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAC1B,QAAQ,CAAC,UAAU,GAAG,IAAI,GAAG,GAAG,EAChC,KAAK,CACN,CAAC;KACH;AAEM,IAAA,wBAAwB,CAC7B,IAAuB,EAAA;AAEvB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAkB,QAAQ,CAAC,YAAY,EAAE;AACjE,YAAA,MAAM,EAAE,MAAM;AACf,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,0BAA0B,CAC/B,IAAuB,EAAA;AAEvB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,QAAQ,CAAC,sBAAsB,EAC/B;AACE,YAAA,MAAM,EAAE,MAAM;AACf,SAAA,CACF,CAAC;KACH;AAEM,IAAA,iBAAiB,CAAC,cAAsB,EAAA;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAA8B,2BAAA,EAAA,cAAc,CAAuB,qBAAA,CAAA,CACpE,CAAC;KACH;AAED,IAAA,IAAW,gBAAgB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KACjC;AAEM,IAAA,eAAe,CAAI,cAAsB,EAAA;QAC9C,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAI,CAAA,2BAAA,EAA8B,cAAc,CAAA,mBAAA,CAAqB,CAAC;AACzE,aAAA,IAAI,CACH,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB,CAAC,CACH,CAAC;KACL;AAEM,IAAA,iBAAiB,CAAI,IAAsB,EAAA;AAChD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;AAC7B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,QAAQ,CAAC,QAAQ,GAAG,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;KACzE;AAEM,IAAA,wBAAwB,CAAI,IAAsB,EAAA;AACvD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;AAC7B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,QAAQ,CAAC,aAAa,GAAG,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9E;AAEM,IAAA,qBAAqB,CAAI,IAAsB,EAAA;AACpD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;AAC7B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;KACvE;AAEM,IAAA,gBAAgB,CAAC,MAAqB,EAAA;AAC3C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACjC;AAEM,IAAA,iBAAiB,CAAC,cAAqC,EAAA;AAC5D,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;KAC1C;IAEM,sBAAsB,CAAI,EAAU,EAAE,IAAsB,EAAA;AACjE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;AAC7B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,GAAG,QAAQ,CAAC,QAAQ,CAAA,EAAG,EAAE,CAAU,QAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;KAC/E;;uHAvSU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;2FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCVY,4BAA4B,CAAA;;yHAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAR7B,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAIU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAVxC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAC3B,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;MCOU,yBAAyB,CAAA;;sHAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;uHAAzB,yBAAyB,EAAA,YAAA,EAAA,CARlC,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAK5B,4BAA4B,CAAA,EAAA,CAAA,CAAA;uHAGnB,yBAAyB,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE;wBACP,4BAA4B;AAC7B,qBAAA;iBACF,CAAA;;;ACdD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"excent-excent-serv-positions.mjs","sources":["../../../projects/excent-serv-positions/src/lib/excent-serv-positions.enpoints.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.service.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.component.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.module.ts","../../../projects/excent-serv-positions/src/public-api.ts","../../../projects/excent-serv-positions/src/excent-excent-serv-positions.ts"],"sourcesContent":["export const endpoint = {\n open: '/position/open/',\n closed: '/position/closed/',\n orders: '/positions/orders/',\n wsCancelOrder: '/position/order/cancel/',\n closePosition: '/positions/position-history/',\n positionSummary: '/report/position-summary',\n listOpen: '/positions/trading-positions/',\n create: '/positions/trading-positions/',\n createOrder: '/positions/orders/',\n cancellOrder1: '/positions/orders/',\n cancellOrder2: '/cancel/',\n patchPosition: '/positions/trading-positions/',\n patchOrder: '/positions/orders/',\n tradeSummary: '/positions/trade-summary/',\n positionSummaryDealing: '/positions/positions-summary/',\n};\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n IClosePosition,\n IOrder,\n IPayloadCreatePosition,\n IPosition,\n IPositionSummaryDealing,\n IResponseClose,\n IResponseOrder,\n ITradeSummary,\n ResponsePaginator,\n Symbol\n} from '@excent/excent-models';\nimport { BehaviorSubject, Observable, Subject, tap } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { endpoint } from './excent-serv-positions.enpoints';\n\ntype IPositionResponse = Partial<IPosition> & { currentPrice: number };\n@Injectable({\n providedIn: 'root',\n})\nexport class ExcentServPositionsService {\n private _refresh$ = new Subject<void>();\n private position = new BehaviorSubject<IPosition | null>(null);\n public pendingOrders$ = new BehaviorSubject<Array<IOrder>>([]);\n public closePositions$ = new BehaviorSubject<Array<IClosePosition>>([]);\n public position$ = this.position.asObservable();\n public operationOrder: BehaviorSubject<{ type: string; value: IOrder }> =\n new BehaviorSubject<{ type: string; value: IOrder }>({\n type: '',\n value: {\n uuid: '',\n id: '',\n tradingAccount: '',\n symbol: new Symbol().id,\n idSymbol: 0,\n orderType: 0,\n orderStatus: 0,\n volume: 0,\n buy: false,\n stopLoss: 0,\n takeProfit: 0,\n activationPrice: 0,\n cancellationDate: new Date(),\n creationDate: new Date(),\n },\n });\n\n constructor(private httpClient: HttpClient) {}\n\n get refresh$(): Subject<void> {\n return this._refresh$;\n }\n\n public reloadPositions(idUser: number): Observable<IPosition[]> {\n const params = new HttpParams().set('idAccount', idUser);\n return this.httpClient.get<IPosition[]>(endpoint.open, { params });\n }\n\n public getOpenCsv<T>(headers: HttpHeaders, data?: Map<string, any>) {\n let params = new HttpParams();\n\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get(endpoint.listOpen, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getOpen<T>(\n uuid?: string,\n data?: Map<string, any>\n ): Observable<T> {\n\n let params = new HttpParams()\n if (uuid) params = params.append('tradingAccount', uuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient\n .get<T>(endpoint.listOpen, {\n params,\n })\n .pipe(\n map((el: any) => {\n if(el.results) {\n let positions = (el as ResponsePaginator<IPosition>).results.map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return {...el, 'results': positions }\n } else {\n el = (el as Array<IPosition>).map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return el;\n }\n })\n );\n }\n\n public getCloseCsv<T>(headers: HttpHeaders, data?: Map<string, any>) {\n let params = new HttpParams();\n\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get(endpoint.closePosition, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getCloseCSVTrading<T>(data?: Map<string, any>, headers?: HttpHeaders) {\n let params = new HttpParams();\n\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<T>(\n endpoint.closePosition,\n headers\n ? {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n }\n : {\n params,\n }\n );\n }\n\n public getClose<T>(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition, {\n params,\n });\n }\n\n public getOrdersCsv<T>(tradingAccountUuid: string, headers: HttpHeaders) {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', 1);\n return this.httpClient.get(endpoint.orders, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getOrders<T>(\n tradingAccountUuid: string,\n orderStatus: number,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', orderStatus);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.orders, {\n params,\n });\n }\n\n public create(value: IPayloadCreatePosition): Observable<IPosition> {\n return this.httpClient.post<IPosition>(endpoint.create, value).pipe(\n tap(() => {\n this._refresh$.next();\n })\n );\n }\n\n public createOrder<T, U>(value: U) {\n return this.httpClient.post<T>(endpoint.createOrder, value);\n }\n\n public closePositions(\n volume: { volume: number },\n uuid: string\n ): Observable<IClosePosition> {\n return this.httpClient\n .post<IClosePosition>(\n `/positions/trading-positions/${uuid}/close/`,\n volume\n )\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public setPosition(position: IPosition | null) {\n this.position.next(position);\n }\n\n public cancellOrder(uuid: string): Observable<IResponseOrder> {\n return this.httpClient.post<IResponseOrder>(\n endpoint.cancellOrder1 + uuid + endpoint.cancellOrder2,\n {}\n );\n }\n\n public patchPosition(\n form: { stopLoss?: number; takeProfit?: number; volume?: number },\n uuid: string\n ): Observable<IPosition> {\n return this.httpClient.patch<IPosition>(\n endpoint.patchPosition + uuid + '/',\n form\n );\n }\n\n public patchOrder(value: any, uuid: string): Observable<IResponseOrder> {\n return this.httpClient.patch<IResponseOrder>(\n endpoint.patchOrder + uuid + '/',\n value\n );\n }\n\n public getPositionsTradeSummary(\n data?: Map<string, any>\n ): Observable<ITradeSummary[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<ITradeSummary[]>(endpoint.tradeSummary, {\n params: params,\n });\n }\n\n public getPositionsSummaryDealing(\n data?: Map<string, any>\n ): Observable<IPositionSummaryDealing[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<IPositionSummaryDealing[]>(\n endpoint.positionSummaryDealing,\n {\n params: params,\n }\n );\n }\n\n public closeAllPositions(uuidAccountTrd: string) {\n return this.httpClient.get<Array<IResponseClose>>(\n `/accounts/trading-accounts/${uuidAccountTrd}/close-all-positions/`\n );\n }\n\n public get positionSelected() {\n return this.position.getValue();\n }\n\n public cancelAllOrders<T>(uuidAccountTrd: string) {\n return this.httpClient\n .get<T>(`/accounts/trading-accounts/${uuidAccountTrd}/cancel-all-orders/`)\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public getTotalPositions<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.listOpen + 'totals/', { params })\n }\n\n public getClosedPositionsTotals<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition + 'totals/', { params })\n }\n\n public getActiveOrdersTotals<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.orders + 'totals/', { params })\n }\n\n public setPendingOrders(orders: Array<IOrder>) {\n this.pendingOrders$.next(orders)\n }\n\n public setClosePositions(closePositions: Array<IClosePosition>) {\n this.closePositions$.next(closePositions)\n }\n\n public getListPositionsSlaves<T>(id: string, data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<T>(`${endpoint.listOpen}${id}/slaves/`, { params })\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-excent-serv-positions',\n template: `\n <p>\n excent-serv-positions works!\n </p>\n `,\n styles: [\n ]\n})\nexport class ExcentServPositionsComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { ExcentServPositionsComponent } from './excent-serv-positions.component';\n\n\n\n@NgModule({\n declarations: [\n ExcentServPositionsComponent\n ],\n imports: [\n ],\n exports: [\n ExcentServPositionsComponent\n ]\n})\nexport class ExcentServPositionsModule { }\n","/*\n * Public API Surface of excent-serv-positions\n */\n\nexport * from './lib/excent-serv-positions.service';\nexport * from './lib/excent-serv-positions.component';\nexport * from './lib/excent-serv-positions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -59,8 +59,13 @@ class ExcentServPositionsService {
59
59
  const params = new HttpParams().set('idAccount', idUser);
60
60
  return this.httpClient.get(endpoint.open, { params });
61
61
  }
62
- getOpenCsv(tradingAccountUuid, headers) {
63
- let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
62
+ getOpenCsv(headers, data) {
63
+ let params = new HttpParams();
64
+ if (data) {
65
+ for (let entry of data.entries()) {
66
+ params = params.append(entry[0], entry[1]);
67
+ }
68
+ }
64
69
  return this.httpClient.get(endpoint.listOpen, {
65
70
  params,
66
71
  headers,
@@ -100,8 +105,13 @@ class ExcentServPositionsService {
100
105
  }
101
106
  }));
102
107
  }
103
- getCloseCsv(tradingAccountUuid, headers) {
104
- let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
108
+ getCloseCsv(headers, data) {
109
+ let params = new HttpParams();
110
+ if (data) {
111
+ for (let entry of data.entries()) {
112
+ params = params.append(entry[0], entry[1]);
113
+ }
114
+ }
105
115
  return this.httpClient.get(endpoint.closePosition, {
106
116
  params,
107
117
  headers,
@@ -109,6 +119,24 @@ class ExcentServPositionsService {
109
119
  responseType: 'blob',
110
120
  });
111
121
  }
122
+ getCloseCSVTrading(data, headers) {
123
+ let params = new HttpParams();
124
+ if (data) {
125
+ for (let entry of data.entries()) {
126
+ params = params.append(entry[0], entry[1]);
127
+ }
128
+ }
129
+ return this.httpClient.get(endpoint.closePosition, headers
130
+ ? {
131
+ params,
132
+ headers,
133
+ observe: 'body',
134
+ responseType: 'blob',
135
+ }
136
+ : {
137
+ params,
138
+ });
139
+ }
112
140
  getClose(tradingAccountUuid, data) {
113
141
  let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
114
142
  if (data) {
@@ -1 +1 @@
1
- {"version":3,"file":"excent-excent-serv-positions.mjs","sources":["../../../projects/excent-serv-positions/src/lib/excent-serv-positions.enpoints.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.service.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.component.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.module.ts","../../../projects/excent-serv-positions/src/public-api.ts","../../../projects/excent-serv-positions/src/excent-excent-serv-positions.ts"],"sourcesContent":["export const endpoint = {\n open: '/position/open/',\n closed: '/position/closed/',\n orders: '/positions/orders/',\n wsCancelOrder: '/position/order/cancel/',\n closePosition: '/positions/position-history/',\n positionSummary: '/report/position-summary',\n listOpen: '/positions/trading-positions/',\n create: '/positions/trading-positions/',\n createOrder: '/positions/orders/',\n cancellOrder1: '/positions/orders/',\n cancellOrder2: '/cancel/',\n patchPosition: '/positions/trading-positions/',\n patchOrder: '/positions/orders/',\n tradeSummary: '/positions/trade-summary/',\n positionSummaryDealing: '/positions/positions-summary/',\n};\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n IPosition,\n IResponseOrder,\n IClosePosition,\n Symbol,\n IOrder,\n IResponseClose,\n ITradeSummary,\n IPositionSummaryDealing,\n IPayloadCreateOrder,\n IPayloadCreatePosition,\n ResponsePaginator,\n} from '@excent/excent-models';\nimport { endpoint } from './excent-serv-positions.enpoints';\nimport { BehaviorSubject, Observable, Subject, tap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\ntype IPositionResponse = Partial<IPosition> & { currentPrice: number };\n@Injectable({\n providedIn: 'root',\n})\nexport class ExcentServPositionsService {\n private _refresh$ = new Subject<void>();\n private position = new BehaviorSubject<IPosition | null>(null);\n public pendingOrders$ = new BehaviorSubject<Array<IOrder>>([]);\n public closePositions$ = new BehaviorSubject<Array<IClosePosition>>([]);\n public position$ = this.position.asObservable();\n public operationOrder: BehaviorSubject<{ type: string; value: IOrder }> =\n new BehaviorSubject<{ type: string; value: IOrder }>({\n type: '',\n value: {\n uuid: '',\n id: '',\n tradingAccount: '',\n symbol: new Symbol().id,\n idSymbol: 0,\n orderType: 0,\n orderStatus: 0,\n volume: 0,\n buy: false,\n stopLoss: 0,\n takeProfit: 0,\n activationPrice: 0,\n cancellationDate: new Date(),\n creationDate: new Date(),\n },\n });\n\n constructor(private httpClient: HttpClient) {}\n\n get refresh$(): Subject<void> {\n return this._refresh$;\n }\n\n public reloadPositions(idUser: number): Observable<IPosition[]> {\n const params = new HttpParams().set('idAccount', idUser);\n return this.httpClient.get<IPosition[]>(endpoint.open, { params });\n }\n\n public getOpenCsv<T>(tradingAccountUuid: string, headers: HttpHeaders) {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n return this.httpClient.get(endpoint.listOpen, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getOpen<T>(\n uuid?: string,\n data?: Map<string, any>\n ): Observable<T> {\n \n let params = new HttpParams()\n if (uuid) params = params.append('tradingAccount', uuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n \n return this.httpClient\n .get<T>(endpoint.listOpen, {\n params,\n })\n .pipe(\n map((el: any) => {\n if(el.results) {\n let positions = (el as ResponsePaginator<IPosition>).results.map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return {...el, 'results': positions }\n } else {\n el = (el as Array<IPosition>).map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return el;\n }\n })\n );\n }\n\n public getCloseCsv<T>(tradingAccountUuid: string, headers: HttpHeaders) {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n return this.httpClient.get(endpoint.closePosition, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getClose<T>(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition, {\n params,\n });\n }\n\n public getOrdersCsv<T>(tradingAccountUuid: string, headers: HttpHeaders) {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', 1);\n return this.httpClient.get(endpoint.orders, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getOrders<T>(\n tradingAccountUuid: string,\n orderStatus: number,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', orderStatus);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.orders, {\n params,\n });\n }\n\n public create(value: IPayloadCreatePosition): Observable<IPosition> {\n return this.httpClient.post<IPosition>(endpoint.create, value).pipe(\n tap(() => {\n this._refresh$.next();\n })\n );\n }\n\n public createOrder<T, U>(value: U) {\n return this.httpClient.post<T>(endpoint.createOrder, value);\n }\n\n public closePositions(\n volume: { volume: number },\n uuid: string\n ): Observable<IClosePosition> {\n return this.httpClient\n .post<IClosePosition>(\n `/positions/trading-positions/${uuid}/close/`,\n volume\n )\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public setPosition(position: IPosition | null) {\n this.position.next(position);\n }\n\n public cancellOrder(uuid: string): Observable<IResponseOrder> {\n return this.httpClient.post<IResponseOrder>(\n endpoint.cancellOrder1 + uuid + endpoint.cancellOrder2,\n {}\n );\n }\n\n public patchPosition(\n form: { stopLoss?: number; takeProfit?: number; volume?: number },\n uuid: string\n ): Observable<IPosition> {\n return this.httpClient.patch<IPosition>(\n endpoint.patchPosition + uuid + '/',\n form\n );\n }\n\n public patchOrder(value: any, uuid: string): Observable<IResponseOrder> {\n return this.httpClient.patch<IResponseOrder>(\n endpoint.patchOrder + uuid + '/',\n value\n );\n }\n\n public getPositionsTradeSummary(\n data?: Map<string, any>\n ): Observable<ITradeSummary[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<ITradeSummary[]>(endpoint.tradeSummary, {\n params: params,\n });\n }\n\n public getPositionsSummaryDealing(\n data?: Map<string, any>\n ): Observable<IPositionSummaryDealing[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<IPositionSummaryDealing[]>(\n endpoint.positionSummaryDealing,\n {\n params: params,\n }\n );\n }\n\n public closeAllPositions(uuidAccountTrd: string) {\n return this.httpClient.get<Array<IResponseClose>>(\n `/accounts/trading-accounts/${uuidAccountTrd}/close-all-positions/`\n );\n }\n\n public get positionSelected() {\n return this.position.getValue();\n }\n\n public cancelAllOrders<T>(uuidAccountTrd: string) {\n return this.httpClient\n .get<T>(`/accounts/trading-accounts/${uuidAccountTrd}/cancel-all-orders/`)\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public getTotalPositions<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.listOpen + 'totals/', { params })\n }\n\n public getClosedPositionsTotals<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition + 'totals/', { params })\n }\n\n public getActiveOrdersTotals<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.orders + 'totals/', { params })\n }\n\n public setPendingOrders(orders: Array<IOrder>) {\n this.pendingOrders$.next(orders)\n }\n\n public setClosePositions(closePositions: Array<IClosePosition>) {\n this.closePositions$.next(closePositions)\n }\n\n public getListPositionsSlaves<T>(id: string, data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<T>(`${endpoint.listOpen}${id}/slaves/`, { params })\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-excent-serv-positions',\n template: `\n <p>\n excent-serv-positions works!\n </p>\n `,\n styles: [\n ]\n})\nexport class ExcentServPositionsComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { ExcentServPositionsComponent } from './excent-serv-positions.component';\n\n\n\n@NgModule({\n declarations: [\n ExcentServPositionsComponent\n ],\n imports: [\n ],\n exports: [\n ExcentServPositionsComponent\n ]\n})\nexport class ExcentServPositionsModule { }\n","/*\n * Public API Surface of excent-serv-positions\n */\n\nexport * from './lib/excent-serv-positions.service';\nexport * from './lib/excent-serv-positions.component';\nexport * from './lib/excent-serv-positions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"excent-excent-serv-positions.mjs","sources":["../../../projects/excent-serv-positions/src/lib/excent-serv-positions.enpoints.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.service.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.component.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.module.ts","../../../projects/excent-serv-positions/src/public-api.ts","../../../projects/excent-serv-positions/src/excent-excent-serv-positions.ts"],"sourcesContent":["export const endpoint = {\n open: '/position/open/',\n closed: '/position/closed/',\n orders: '/positions/orders/',\n wsCancelOrder: '/position/order/cancel/',\n closePosition: '/positions/position-history/',\n positionSummary: '/report/position-summary',\n listOpen: '/positions/trading-positions/',\n create: '/positions/trading-positions/',\n createOrder: '/positions/orders/',\n cancellOrder1: '/positions/orders/',\n cancellOrder2: '/cancel/',\n patchPosition: '/positions/trading-positions/',\n patchOrder: '/positions/orders/',\n tradeSummary: '/positions/trade-summary/',\n positionSummaryDealing: '/positions/positions-summary/',\n};\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n IClosePosition,\n IOrder,\n IPayloadCreatePosition,\n IPosition,\n IPositionSummaryDealing,\n IResponseClose,\n IResponseOrder,\n ITradeSummary,\n ResponsePaginator,\n Symbol\n} from '@excent/excent-models';\nimport { BehaviorSubject, Observable, Subject, tap } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { endpoint } from './excent-serv-positions.enpoints';\n\ntype IPositionResponse = Partial<IPosition> & { currentPrice: number };\n@Injectable({\n providedIn: 'root',\n})\nexport class ExcentServPositionsService {\n private _refresh$ = new Subject<void>();\n private position = new BehaviorSubject<IPosition | null>(null);\n public pendingOrders$ = new BehaviorSubject<Array<IOrder>>([]);\n public closePositions$ = new BehaviorSubject<Array<IClosePosition>>([]);\n public position$ = this.position.asObservable();\n public operationOrder: BehaviorSubject<{ type: string; value: IOrder }> =\n new BehaviorSubject<{ type: string; value: IOrder }>({\n type: '',\n value: {\n uuid: '',\n id: '',\n tradingAccount: '',\n symbol: new Symbol().id,\n idSymbol: 0,\n orderType: 0,\n orderStatus: 0,\n volume: 0,\n buy: false,\n stopLoss: 0,\n takeProfit: 0,\n activationPrice: 0,\n cancellationDate: new Date(),\n creationDate: new Date(),\n },\n });\n\n constructor(private httpClient: HttpClient) {}\n\n get refresh$(): Subject<void> {\n return this._refresh$;\n }\n\n public reloadPositions(idUser: number): Observable<IPosition[]> {\n const params = new HttpParams().set('idAccount', idUser);\n return this.httpClient.get<IPosition[]>(endpoint.open, { params });\n }\n\n public getOpenCsv<T>(headers: HttpHeaders, data?: Map<string, any>) {\n let params = new HttpParams();\n\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get(endpoint.listOpen, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getOpen<T>(\n uuid?: string,\n data?: Map<string, any>\n ): Observable<T> {\n\n let params = new HttpParams()\n if (uuid) params = params.append('tradingAccount', uuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient\n .get<T>(endpoint.listOpen, {\n params,\n })\n .pipe(\n map((el: any) => {\n if(el.results) {\n let positions = (el as ResponsePaginator<IPosition>).results.map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return {...el, 'results': positions }\n } else {\n el = (el as Array<IPosition>).map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return el;\n }\n })\n );\n }\n\n public getCloseCsv<T>(headers: HttpHeaders, data?: Map<string, any>) {\n let params = new HttpParams();\n\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get(endpoint.closePosition, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getCloseCSVTrading<T>(data?: Map<string, any>, headers?: HttpHeaders) {\n let params = new HttpParams();\n\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<T>(\n endpoint.closePosition,\n headers\n ? {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n }\n : {\n params,\n }\n );\n }\n\n public getClose<T>(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition, {\n params,\n });\n }\n\n public getOrdersCsv<T>(tradingAccountUuid: string, headers: HttpHeaders) {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', 1);\n return this.httpClient.get(endpoint.orders, {\n params,\n headers,\n observe: 'body',\n responseType: 'blob' as 'json',\n });\n }\n\n public getOrders<T>(\n tradingAccountUuid: string,\n orderStatus: number,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', orderStatus);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.orders, {\n params,\n });\n }\n\n public create(value: IPayloadCreatePosition): Observable<IPosition> {\n return this.httpClient.post<IPosition>(endpoint.create, value).pipe(\n tap(() => {\n this._refresh$.next();\n })\n );\n }\n\n public createOrder<T, U>(value: U) {\n return this.httpClient.post<T>(endpoint.createOrder, value);\n }\n\n public closePositions(\n volume: { volume: number },\n uuid: string\n ): Observable<IClosePosition> {\n return this.httpClient\n .post<IClosePosition>(\n `/positions/trading-positions/${uuid}/close/`,\n volume\n )\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public setPosition(position: IPosition | null) {\n this.position.next(position);\n }\n\n public cancellOrder(uuid: string): Observable<IResponseOrder> {\n return this.httpClient.post<IResponseOrder>(\n endpoint.cancellOrder1 + uuid + endpoint.cancellOrder2,\n {}\n );\n }\n\n public patchPosition(\n form: { stopLoss?: number; takeProfit?: number; volume?: number },\n uuid: string\n ): Observable<IPosition> {\n return this.httpClient.patch<IPosition>(\n endpoint.patchPosition + uuid + '/',\n form\n );\n }\n\n public patchOrder(value: any, uuid: string): Observable<IResponseOrder> {\n return this.httpClient.patch<IResponseOrder>(\n endpoint.patchOrder + uuid + '/',\n value\n );\n }\n\n public getPositionsTradeSummary(\n data?: Map<string, any>\n ): Observable<ITradeSummary[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<ITradeSummary[]>(endpoint.tradeSummary, {\n params: params,\n });\n }\n\n public getPositionsSummaryDealing(\n data?: Map<string, any>\n ): Observable<IPositionSummaryDealing[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<IPositionSummaryDealing[]>(\n endpoint.positionSummaryDealing,\n {\n params: params,\n }\n );\n }\n\n public closeAllPositions(uuidAccountTrd: string) {\n return this.httpClient.get<Array<IResponseClose>>(\n `/accounts/trading-accounts/${uuidAccountTrd}/close-all-positions/`\n );\n }\n\n public get positionSelected() {\n return this.position.getValue();\n }\n\n public cancelAllOrders<T>(uuidAccountTrd: string) {\n return this.httpClient\n .get<T>(`/accounts/trading-accounts/${uuidAccountTrd}/cancel-all-orders/`)\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public getTotalPositions<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.listOpen + 'totals/', { params })\n }\n\n public getClosedPositionsTotals<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition + 'totals/', { params })\n }\n\n public getActiveOrdersTotals<T>(data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.orders + 'totals/', { params })\n }\n\n public setPendingOrders(orders: Array<IOrder>) {\n this.pendingOrders$.next(orders)\n }\n\n public setClosePositions(closePositions: Array<IClosePosition>) {\n this.closePositions$.next(closePositions)\n }\n\n public getListPositionsSlaves<T>(id: string, data?: Map<string,any>) {\n let params = new HttpParams()\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<T>(`${endpoint.listOpen}${id}/slaves/`, { params })\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-excent-serv-positions',\n template: `\n <p>\n excent-serv-positions works!\n </p>\n `,\n styles: [\n ]\n})\nexport class ExcentServPositionsComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { ExcentServPositionsComponent } from './excent-serv-positions.component';\n\n\n\n@NgModule({\n declarations: [\n ExcentServPositionsComponent\n ],\n imports: [\n ],\n exports: [\n ExcentServPositionsComponent\n ]\n})\nexport class ExcentServPositionsModule { }\n","/*\n * Public API Surface of excent-serv-positions\n */\n\nexport * from './lib/excent-serv-positions.service';\nexport * from './lib/excent-serv-positions.component';\nexport * from './lib/excent-serv-positions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { HttpClient, HttpHeaders } from '@angular/common/http';
2
- import { IPosition, IResponseOrder, IClosePosition, IOrder, IResponseClose, ITradeSummary, IPositionSummaryDealing, IPayloadCreatePosition } from '@excent/excent-models';
2
+ import { IClosePosition, IOrder, IPayloadCreatePosition, IPosition, IPositionSummaryDealing, IResponseClose, IResponseOrder, ITradeSummary } from '@excent/excent-models';
3
3
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ExcentServPositionsService {
@@ -16,9 +16,10 @@ export declare class ExcentServPositionsService {
16
16
  constructor(httpClient: HttpClient);
17
17
  get refresh$(): Subject<void>;
18
18
  reloadPositions(idUser: number): Observable<IPosition[]>;
19
- getOpenCsv<T>(tradingAccountUuid: string, headers: HttpHeaders): Observable<Object>;
19
+ getOpenCsv<T>(headers: HttpHeaders, data?: Map<string, any>): Observable<Object>;
20
20
  getOpen<T>(uuid?: string, data?: Map<string, any>): Observable<T>;
21
- getCloseCsv<T>(tradingAccountUuid: string, headers: HttpHeaders): Observable<Object>;
21
+ getCloseCsv<T>(headers: HttpHeaders, data?: Map<string, any>): Observable<Object>;
22
+ getCloseCSVTrading<T>(data?: Map<string, any>, headers?: HttpHeaders): Observable<T>;
22
23
  getClose<T>(tradingAccountUuid: string, data?: Map<string, any>): Observable<T>;
23
24
  getOrdersCsv<T>(tradingAccountUuid: string, headers: HttpHeaders): Observable<Object>;
24
25
  getOrders<T>(tradingAccountUuid: string, orderStatus: number, data?: Map<string, any>): Observable<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@excent/excent-serv-positions",
3
- "version": "1.0.30",
3
+ "version": "1.0.32",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^15.2.0",
6
6
  "@angular/core": "^15.2.0"