bx-rest 0.0.6 → 0.0.8

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.
Files changed (77) hide show
  1. package/README.md +24 -0
  2. package/bx-rest.service.d.ts +6 -0
  3. package/consts/time.d.ts +3 -0
  4. package/esm2020/bx-rest.mjs +5 -0
  5. package/esm2020/bx-rest.service.mjs +14 -0
  6. package/esm2020/consts/time.mjs +4 -0
  7. package/esm2020/public-api.mjs +7 -0
  8. package/esm2020/rest/bx-rest.module.mjs +28 -0
  9. package/esm2020/services/base.mjs +174 -0
  10. package/fesm2015/bx-rest.mjs +225 -0
  11. package/fesm2015/bx-rest.mjs.map +1 -0
  12. package/fesm2020/bx-rest.mjs +222 -0
  13. package/fesm2020/bx-rest.mjs.map +1 -0
  14. package/index.d.ts +5 -0
  15. package/package.json +40 -138
  16. package/public-api.d.ts +3 -0
  17. package/rest/bx-rest.module.d.ts +8 -0
  18. package/services/base.d.ts +32 -0
  19. package/LICENSE +0 -21
  20. package/src/consts/part-name-metods.ts +0 -11
  21. package/src/consts/time.ts +0 -3
  22. package/src/functions/isDate.ts +0 -8
  23. package/src/functions/isEqual.ts +0 -17
  24. package/src/functions/isValidDate.ts +0 -9
  25. package/src/functions/serializeJavascript.ts +0 -229
  26. package/src/index.d.ts +0 -19
  27. package/src/index.ts +0 -3
  28. package/src/rest/user/user.ts +0 -342
  29. package/src/services/base.ts +0 -187
  30. package/src/services/http/HttpBX.ts +0 -176
  31. package/src/services/http/HttpData.ts +0 -142
  32. package/src/services/http/base/HttpData.ts +0 -141
  33. package/src/services/http/base/base.ts +0 -40
  34. package/src/services/http/base/http.ts +0 -67
  35. package/src/services/http/http.ts +0 -182
  36. package/src/services/http/sessionKey.ts +0 -205
  37. package/src/services/map/base.ts +0 -8
  38. package/src/services/map/rest/user.ts +0 -82
  39. package/src/services/snack-bar/snack-bar.service.ts +0 -40
  40. package/src/services/snack-bar/toast-message/toast-message.component.html +0 -13
  41. package/src/services/snack-bar/toast-message/toast-message.component.scss +0 -53
  42. package/src/services/snack-bar/toast-message/toast-message.component.ts +0 -26
  43. package/src/services/vanilla/JSON.ts +0 -15
  44. package/src/services/vanilla/iframe.ts +0 -57
  45. package/src/services/vanilla/localStorage.ts +0 -42
  46. package/src/services/vanilla//321/201ookies.ts +0 -43
  47. package/src/store/auth.ts +0 -46
  48. package/src/store/users.ts +0 -88
  49. package/src/tsconfig.base.json +0 -6
  50. package/src/tsconfig.cjs.json +0 -10
  51. package/src/tsconfig.cjs.spec.json +0 -10
  52. package/src/tsconfig.esm.json +0 -9
  53. package/src/tsconfig.esm5.json +0 -11
  54. package/src/tsconfig.esm5.rollup.json +0 -8
  55. package/src/tsconfig.types.json +0 -14
  56. package/src/tsconfig.types.spec.json +0 -7
  57. package/src/typification/auth/OAuthBXParam.ts +0 -6
  58. package/src/typification/auth/application.ts +0 -8
  59. package/src/typification/auth/save.ts +0 -14
  60. package/src/typification/auth/urlData.ts +0 -4
  61. package/src/typification/rest/api-lib.ts +0 -18
  62. package/src/typification/rest/base/ApiPaginationBX.ts +0 -3
  63. package/src/typification/rest/base/OrderOptions.ts +0 -3
  64. package/src/typification/rest/base/YesNo.ts +0 -1
  65. package/src/typification/rest/base/fieldBXType.ts +0 -1
  66. package/src/typification/rest/base/filterGenerator.ts +0 -3
  67. package/src/typification/rest/base/httpAnswerBX.ts +0 -15
  68. package/src/typification/rest/batch/batchRequestParam.ts +0 -14
  69. package/src/typification/rest/lib.ts +0 -19
  70. package/src/typification/rest/settings.ts +0 -7
  71. package/src/typification/rest/support/param.ts +0 -8
  72. package/src/typification/rest/user/CustomUserFieldInfo.ts +0 -70
  73. package/src/typification/rest/user/UserFilterSearch.ts +0 -43
  74. package/src/typification/rest/user/get.ts +0 -17
  75. package/src/typification/rest/user/user.ts +0 -68
  76. package/src/typification/rest/user/userFilter.ts +0 -17
  77. package/tsconfig.json +0 -24
package/README.md CHANGED
@@ -0,0 +1,24 @@
1
+ # BxRest
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.0.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project bx-rest` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project bx-rest`.
8
+ > Note: Don't forget to add `--project bx-rest` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build bx-rest` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build bx-rest`, go to the dist folder `cd dist/bx-rest` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test bx-rest` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class BxRestService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<BxRestService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<BxRestService>;
6
+ }
@@ -0,0 +1,3 @@
1
+ export declare const time: {
2
+ oneDayMilliseconds: number;
3
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYngtcmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL2J4LXJlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BxRestService {
4
+ constructor() { }
5
+ }
6
+ BxRestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7
+ BxRestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestService, providedIn: 'root' });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYngtcmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvYngtcmVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBSzFDLE1BQU0sT0FBTyxhQUFhO0lBRXhCLGdCQUFnQixDQUFDOzswR0FGTixhQUFhOzhHQUFiLGFBQWEsY0FGWixNQUFNOzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJ4UmVzdFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export const time = {
2
+ oneDayMilliseconds: 1000 * 60 * 60 * 24
3
+ };
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL2NvbnN0cy90aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRztJQUNsQixrQkFBa0IsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0NBQ3hDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdGltZSA9IHtcclxuICBvbmVEYXlNaWxsaXNlY29uZHM6IDEwMDAgKiA2MCAqIDYwICogMjRcclxufVxyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Public API Surface of bx-rest
3
+ */
4
+ export * from './bx-rest.service';
5
+ export * from './rest/bx-rest.module';
6
+ export * from './services/base';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYngtcmVzdFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYngtcmVzdC5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9yZXN0L2J4LXJlc3QubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9iYXNlJ1xuIl19
@@ -0,0 +1,28 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MatIconModule } from '@angular/material/icon';
3
+ import { MatButtonModule } from '@angular/material/button';
4
+ import * as i0 from "@angular/core";
5
+ export class BxRestModule {
6
+ }
7
+ BxRestModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ BxRestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, imports: [MatIconModule,
9
+ MatButtonModule], exports: [MatButtonModule,
10
+ MatIconModule] });
11
+ BxRestModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, imports: [MatIconModule,
12
+ MatButtonModule, MatButtonModule,
13
+ MatIconModule] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [],
18
+ imports: [
19
+ MatIconModule,
20
+ MatButtonModule
21
+ ],
22
+ exports: [
23
+ MatButtonModule,
24
+ MatIconModule
25
+ ]
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYngtcmVzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXN0L2J4LXJlc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7QUFjMUQsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxZQVJyQixhQUFhO1FBQ2IsZUFBZSxhQUdmLGVBQWU7UUFDZixhQUFhOzBHQUdKLFlBQVksWUFSckIsYUFBYTtRQUNiLGVBQWUsRUFHZixlQUFlO1FBQ2YsYUFBYTsyRkFHSixZQUFZO2tCQVp4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbidcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCeFJlc3RNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,174 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { time } from '@/bx-rest/consts/time';
3
+ // import { environment } from '@/bx-rest/environments/environment'
4
+ import { DateTime } from 'luxon';
5
+ import * as i0 from "@angular/core";
6
+ export class BaseServices {
7
+ toStr(val) {
8
+ return (val) ? String(val) : '';
9
+ }
10
+ toNumber(val) {
11
+ return (val && Number(val)) ? Number(val) : 0;
12
+ }
13
+ toDate(val, format, opt) {
14
+ if (val instanceof Date) {
15
+ return val;
16
+ }
17
+ else if (typeof val == 'string') {
18
+ if (format) {
19
+ if (opt) {
20
+ return DateTime.fromFormat(val, format, opt).toJSDate();
21
+ }
22
+ return DateTime.fromFormat(val, format).toJSDate();
23
+ }
24
+ else {
25
+ return new Date(val);
26
+ }
27
+ }
28
+ else if (typeof val == 'number') {
29
+ return new Date(val);
30
+ }
31
+ console.error('Wrong date format', val, format);
32
+ throw 'Wrong date format';
33
+ }
34
+ getBXStrTime(date) {
35
+ return this.toISOStringWithTimezone(date);
36
+ }
37
+ toISOStringWithTimezone(date) {
38
+ const tzOffset = -date.getTimezoneOffset();
39
+ const diff = tzOffset >= 0 ? '+' : '-';
40
+ const pad = (n) => `${Math.floor(Math.abs(n))}`.padStart(2, '0');
41
+ return date.getFullYear() +
42
+ '-' + pad(date.getMonth() + 1) +
43
+ '-' + pad(date.getDate()) +
44
+ 'T' + pad(date.getHours()) +
45
+ ':' + pad(date.getMinutes()) +
46
+ ':' + pad(date.getSeconds()) +
47
+ diff + pad(tzOffset / 60) +
48
+ ':' + pad(tzOffset % 60);
49
+ }
50
+ ;
51
+ toBool(val) {
52
+ switch (typeof val) {
53
+ case 'string':
54
+ val = val.toLowerCase();
55
+ if (val === 'n' || val === 'y') { // битриксовые понятия о bool
56
+ return val === 'y';
57
+ }
58
+ else if (val === 'true' || val === 'false') { // битриксовые понятия о bool
59
+ return val === 'true';
60
+ }
61
+ else {
62
+ return false;
63
+ }
64
+ default:
65
+ return Boolean(val);
66
+ }
67
+ }
68
+ toBXYorN(val) {
69
+ return (val) ? 'Y' : 'N';
70
+ }
71
+ typeof(val) {
72
+ return typeof val;
73
+ }
74
+ typeDefClass(val) {
75
+ if (val) {
76
+ if (val instanceof Date) {
77
+ return 'date';
78
+ }
79
+ return undefined;
80
+ }
81
+ else {
82
+ return null;
83
+ }
84
+ }
85
+ toJSON(val) {
86
+ return JSON.stringify(val);
87
+ }
88
+ fromJSON(val) {
89
+ return JSON.parse(val);
90
+ }
91
+ prepareBaseAddress(url, add = '') {
92
+ if (url.search('https://') !== 0 && url.search('http://')) {
93
+ url = 'https://' + url;
94
+ }
95
+ if (url.lastIndexOf('/') !== (url.length - 1)) {
96
+ url = url + '/';
97
+ }
98
+ url = url + add;
99
+ return url;
100
+ }
101
+ getHomeAddress() {
102
+ // return this.prepareBaseAddress(environment.urls.home)
103
+ return this.prepareBaseAddress('b24.trace-studio.com');
104
+ }
105
+ dateDiff(a, b) {
106
+ return new Date(a.valueOf() - b.valueOf());
107
+ }
108
+ dateDiffInDays(a, b) {
109
+ return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);
110
+ }
111
+ getBase64File(file) {
112
+ return new Promise((resolve, reject) => {
113
+ const reader = new FileReader();
114
+ reader.readAsDataURL(file);
115
+ reader.onload = () => resolve(reader.result);
116
+ reader.onerror = error => reject(error);
117
+ });
118
+ }
119
+ async getBase64FileLikeStr(file) {
120
+ let result = await this.getBase64File(file);
121
+ if (typeof result === 'string') {
122
+ let split = result.split(',');
123
+ return {
124
+ header: split[0],
125
+ val: split[1]
126
+ };
127
+ }
128
+ return undefined;
129
+ }
130
+ sumArray(numbers) {
131
+ return numbers.reduce((a, b) => {
132
+ return a + b;
133
+ });
134
+ }
135
+ isItTheSameDate(date1, date2) {
136
+ return date1.getDate() === date2.getDate()
137
+ && date1.getMonth() === date2.getMonth()
138
+ && date1.getFullYear() === date2.getFullYear();
139
+ }
140
+ toUnix(date) {
141
+ return Math.floor(date.valueOf() / 1000);
142
+ }
143
+ arrSum(x) {
144
+ let s = 0;
145
+ for (let i = 0; i < x.length; i++) {
146
+ s += x[i];
147
+ }
148
+ return s;
149
+ }
150
+ getBaseUrlHttps(url, component = false) {
151
+ if (component) {
152
+ return encodeURI(this.cropUrl(url) + '/');
153
+ }
154
+ else {
155
+ return encodeURI('https://' + this.cropUrl(url) + '/');
156
+ }
157
+ }
158
+ cropUrl(url) {
159
+ url = (url) ? url.replace('https://', '') : '';
160
+ url = (url) ? url.replace('http://', '') : '';
161
+ url = (url) ? url.replace('https:', '') : '';
162
+ url = (url) ? url.replace('http:', '') : '';
163
+ return url;
164
+ }
165
+ }
166
+ BaseServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseServices, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
167
+ BaseServices.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseServices, providedIn: 'root' });
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseServices, decorators: [{
169
+ type: Injectable,
170
+ args: [{
171
+ providedIn: 'root'
172
+ }]
173
+ }] });
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDNUMsbUVBQW1FO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7O0FBTWhDLE1BQU0sT0FBTyxZQUFZO0lBRXJCLEtBQUssQ0FBQyxHQUFRO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVE7UUFDYixPQUFPLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQTJCLEVBQUUsTUFBZSxFQUFFLEdBQXFCO1FBQ3RFLElBQUksR0FBRyxZQUFZLElBQUksRUFBRTtZQUNyQixPQUFPLEdBQUcsQ0FBQTtTQUNiO2FBQU0sSUFBSSxPQUFPLEdBQUcsSUFBSSxRQUFRLEVBQUU7WUFDL0IsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7aUJBQzFEO2dCQUNELE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7YUFDckQ7aUJBQU07Z0JB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QUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUM1QyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUMzQyxPQUFPLEdBQUcsQ0FBQTtJQUNkLENBQUM7O3lHQWhMUSxZQUFZOzZHQUFaLFlBQVksY0FGVCxNQUFNOzJGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IHRpbWUgfSBmcm9tICdAL2J4LXJlc3QvY29uc3RzL3RpbWUnXHJcbi8vIGltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnQC9ieC1yZXN0L2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCdcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbidcclxuaW1wb3J0IHsgRGF0ZVRpbWVPcHRpb25zIH0gZnJvbSAnbHV4b24vc3JjL2RhdGV0aW1lJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZXMge1xyXG5cclxuICAgIHRvU3RyKHZhbDogYW55KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gKHZhbCkgPyBTdHJpbmcodmFsKSA6ICcnXHJcbiAgICB9XHJcblxyXG4gICAgdG9OdW1iZXIodmFsOiBhbnkpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAodmFsICYmIE51bWJlcih2YWwpKSA/IE51bWJlcih2YWwpIDogMFxyXG4gICAgfVxyXG5cclxuICAgIHRvRGF0ZSh2YWw6IG51bWJlciB8IHN0cmluZyB8IERhdGUsIGZvcm1hdD86IHN0cmluZywgb3B0PzogRGF0ZVRpbWVPcHRpb25zKTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbFxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBpZiAoZm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob3B0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodmFsLCBmb3JtYXQsIG9wdCkudG9KU0RhdGUoKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodmFsLCBmb3JtYXQpLnRvSlNEYXRlKClcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWwpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbClcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignV3JvbmcgZGF0ZSBmb3JtYXQnLCB2YWwsIGZvcm1hdClcclxuICAgICAgICB0aHJvdyAnV3JvbmcgZGF0ZSBmb3JtYXQnXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QlhTdHJUaW1lKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRvSVNPU3RyaW5nV2l0aFRpbWV6b25lKGRhdGUpXHJcbiAgICB9XHJcblxyXG4gICAgdG9JU09TdHJpbmdXaXRoVGltZXpvbmUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgdHpPZmZzZXQgPSAtZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpXHJcbiAgICAgICAgY29uc3QgZGlmZiA9IHR6T2Zmc2V0ID49IDAgPyAnKycgOiAnLSdcclxuICAgICAgICBjb25zdCBwYWQgPSAobjogbnVtYmVyKSA9PiBgJHtNYXRoLmZsb29yKE1hdGguYWJzKG4pKX1gLnBhZFN0YXJ0KDIsICcwJylcclxuICAgICAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpICtcclxuICAgICAgICAgICAgJy0nICsgcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpICtcclxuICAgICAgICAgICAgJy0nICsgcGFkKGRhdGUuZ2V0RGF0ZSgpKSArXHJcbiAgICAgICAgICAgICdUJyArIHBhZChkYXRlLmdldEhvdXJzKCkpICtcclxuICAgICAgICAgICAgJzonICsgcGFkKGRhdGUuZ2V0TWludXRlcygpKSArXHJcbiAgICAgICAgICAgICc6JyArIHBhZChkYXRlLmdldFNlY29uZHMoKSkgK1xyXG4gICAgICAgICAgICBkaWZmICsgcGFkKHR6T2Zmc2V0IC8gNjApICtcclxuICAgICAgICAgICAgJzonICsgcGFkKHR6T2Zmc2V0ICUgNjApXHJcbiAgICB9O1xyXG5cclxuICAgIHRvQm9vbCh2YWw6IGFueSkge1xyXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbCkge1xyXG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgICAgICAgICAgdmFsID0gdmFsLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICAgICAgIGlmICh2YWwgPT09ICduJyB8fCB2YWwgPT09ICd5JykgeyAvLyDQsdC40YLRgNC40LrRgdC+0LLRi9C1INC/0L7QvdGP0YLQuNGPINC+IGJvb2xcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSAneSdcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsID09PSAndHJ1ZScgfHwgdmFsID09PSAnZmFsc2UnKSB7IC8vINCx0LjRgtGA0LjQutGB0L7QstGL0LUg0L/QvtC90Y/RgtC40Y8g0L4gYm9vbFxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09ICd0cnVlJ1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuKHZhbClcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdG9CWFlvck4odmFsOiBib29sZWFuKSB7XHJcbiAgICAgICAgcmV0dXJuICh2YWwpID8gJ1knIDogJ04nXHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mKHZhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWxcclxuICAgIH1cclxuXHJcbiAgICB0eXBlRGVmQ2xhc3ModmFsOiBvYmplY3QpOiB1bmRlZmluZWQgfCBudWxsIHwgJ2RhdGUnIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RhdGUnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRvSlNPTih2YWw6IG9iamVjdCkge1xyXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWwpXHJcbiAgICB9XHJcblxyXG4gICAgZnJvbUpTT048VD4odmFsOiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWwpXHJcbiAgICB9XHJcblxyXG4gICAgcHJlcGFyZUJhc2VBZGRyZXNzKHVybDogc3RyaW5nLCBhZGQ6IHN0cmluZyA9ICcnKSB7XHJcbiAgICAgICAgaWYgKHVybC5zZWFyY2goJ2h0dHBzOi8vJykgIT09IDAgJiYgdXJsLnNlYXJjaCgnaHR0cDovLycpKSB7XHJcbiAgICAgICAgICAgIHVybCA9ICdodHRwczovLycgKyB1cmxcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh1cmwubGFzdEluZGV4T2YoJy8nKSAhPT0gKHVybC5sZW5ndGggLSAxKSkge1xyXG4gICAgICAgICAgICB1cmwgPSB1cmwgKyAnLydcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHVybCA9IHVybCArIGFkZFxyXG5cclxuICAgICAgICByZXR1cm4gdXJsXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SG9tZUFkZHJlc3MoKSB7XHJcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKGVudmlyb25tZW50LnVybHMuaG9tZSlcclxuICAgICAgICByZXR1cm4gdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3MoJ2IyNC50cmFjZS1zdHVkaW8uY29tJylcclxuICAgIH1cclxuXHJcbiAgICBkYXRlRGlmZihhOiBEYXRlLCBiOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGEudmFsdWVPZigpIC0gYi52YWx1ZU9mKCkpXHJcbiAgICB9XHJcblxyXG4gICAgZGF0ZURpZmZJbkRheXMoYTogRGF0ZSwgYjogRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMuZGF0ZURpZmYoYSwgYikudmFsdWVPZigpIC8gdGltZS5vbmVEYXlNaWxsaXNlY29uZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEJhc2U2NEZpbGUoZmlsZTogRmlsZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSlcclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdClcclxuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSBlcnJvciA9PiByZWplY3QoZXJyb3IpXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRCYXNlNjRGaWxlTGlrZVN0cihmaWxlOiBGaWxlKTogUHJvbWlzZTx7IGhlYWRlcjogc3RyaW5nLCB2YWw6IHN0cmluZyB9IHwgdW5kZWZpbmVkPiB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0QmFzZTY0RmlsZShmaWxlKVxyXG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBsZXQgc3BsaXQgPSByZXN1bHQuc3BsaXQoJywnKVxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVyOiBzcGxpdFswXSxcclxuICAgICAgICAgICAgICAgIHZhbDogc3BsaXRbMV1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICB9XHJcblxyXG4gICAgc3VtQXJyYXkobnVtYmVyczogbnVtYmVyW10pIHtcclxuICAgICAgICByZXR1cm4gbnVtYmVycy5yZWR1Y2UoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGEgKyBiO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgaXNJdFRoZVNhbWVEYXRlKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBkYXRlMS5nZXREYXRlKCkgPT09IGRhdGUyLmdldERhdGUoKVxyXG4gICAgICAgICAgICAmJiBkYXRlMS5nZXRNb250aCgpID09PSBkYXRlMi5nZXRNb250aCgpXHJcbiAgICAgICAgICAgICYmIGRhdGUxLmdldEZ1bGxZZWFyKCkgPT09IGRhdGUyLmdldEZ1bGxZZWFyKClcclxuICAgIH1cclxuXHJcbiAgICB0b1VuaXgoZGF0ZTogRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKGRhdGUudmFsdWVPZigpIC8gMTAwMClcclxuICAgIH1cclxuXHJcbiAgICBhcnJTdW0oeDogbnVtYmVyW10pIHtcclxuICAgICAgICBsZXQgcyA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgKz0geFtpXVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc1xyXG4gICAgfVxyXG5cclxuICAgIGdldEJhc2VVcmxIdHRwcyh1cmw6IHN0cmluZywgY29tcG9uZW50ID0gZmFsc2UpIHtcclxuICAgICAgICBpZiAoY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVVUkkodGhpcy5jcm9wVXJsKHVybCkgKyAnLycpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVVUkkoJ2h0dHBzOi8vJyArIHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JvcFVybCh1cmw6IHN0cmluZykge1xyXG4gICAgICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpIDogJydcclxuICAgICAgICB1cmwgPSAodXJsKSA/IHVybC5yZXBsYWNlKCdodHRwOi8vJywgJycpIDogJydcclxuICAgICAgICB1cmwgPSAodXJsKSA/IHVybC5yZXBsYWNlKCdodHRwczonLCAnJykgOiAnJ1xyXG4gICAgICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6JywgJycpIDogJydcclxuICAgICAgICByZXR1cm4gdXJsXHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,225 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, NgModule } from '@angular/core';
3
+ import { MatIconModule } from '@angular/material/icon';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { __awaiter } from 'tslib';
6
+ import { time } from '@/bx-rest/consts/time';
7
+ import { DateTime } from 'luxon';
8
+
9
+ class BxRestService {
10
+ constructor() { }
11
+ }
12
+ BxRestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13
+ BxRestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestService, providedIn: 'root' });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestService, decorators: [{
15
+ type: Injectable,
16
+ args: [{
17
+ providedIn: 'root'
18
+ }]
19
+ }], ctorParameters: function () { return []; } });
20
+
21
+ class BxRestModule {
22
+ }
23
+ BxRestModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ BxRestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, imports: [MatIconModule,
25
+ MatButtonModule], exports: [MatButtonModule,
26
+ MatIconModule] });
27
+ BxRestModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, imports: [MatIconModule,
28
+ MatButtonModule, MatButtonModule,
29
+ MatIconModule] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, decorators: [{
31
+ type: NgModule,
32
+ args: [{
33
+ declarations: [],
34
+ imports: [
35
+ MatIconModule,
36
+ MatButtonModule
37
+ ],
38
+ exports: [
39
+ MatButtonModule,
40
+ MatIconModule
41
+ ]
42
+ }]
43
+ }] });
44
+
45
+ class BaseServices {
46
+ toStr(val) {
47
+ return (val) ? String(val) : '';
48
+ }
49
+ toNumber(val) {
50
+ return (val && Number(val)) ? Number(val) : 0;
51
+ }
52
+ toDate(val, format, opt) {
53
+ if (val instanceof Date) {
54
+ return val;
55
+ }
56
+ else if (typeof val == 'string') {
57
+ if (format) {
58
+ if (opt) {
59
+ return DateTime.fromFormat(val, format, opt).toJSDate();
60
+ }
61
+ return DateTime.fromFormat(val, format).toJSDate();
62
+ }
63
+ else {
64
+ return new Date(val);
65
+ }
66
+ }
67
+ else if (typeof val == 'number') {
68
+ return new Date(val);
69
+ }
70
+ console.error('Wrong date format', val, format);
71
+ throw 'Wrong date format';
72
+ }
73
+ getBXStrTime(date) {
74
+ return this.toISOStringWithTimezone(date);
75
+ }
76
+ toISOStringWithTimezone(date) {
77
+ const tzOffset = -date.getTimezoneOffset();
78
+ const diff = tzOffset >= 0 ? '+' : '-';
79
+ const pad = (n) => `${Math.floor(Math.abs(n))}`.padStart(2, '0');
80
+ return date.getFullYear() +
81
+ '-' + pad(date.getMonth() + 1) +
82
+ '-' + pad(date.getDate()) +
83
+ 'T' + pad(date.getHours()) +
84
+ ':' + pad(date.getMinutes()) +
85
+ ':' + pad(date.getSeconds()) +
86
+ diff + pad(tzOffset / 60) +
87
+ ':' + pad(tzOffset % 60);
88
+ }
89
+ ;
90
+ toBool(val) {
91
+ switch (typeof val) {
92
+ case 'string':
93
+ val = val.toLowerCase();
94
+ if (val === 'n' || val === 'y') { // битриксовые понятия о bool
95
+ return val === 'y';
96
+ }
97
+ else if (val === 'true' || val === 'false') { // битриксовые понятия о bool
98
+ return val === 'true';
99
+ }
100
+ else {
101
+ return false;
102
+ }
103
+ default:
104
+ return Boolean(val);
105
+ }
106
+ }
107
+ toBXYorN(val) {
108
+ return (val) ? 'Y' : 'N';
109
+ }
110
+ typeof(val) {
111
+ return typeof val;
112
+ }
113
+ typeDefClass(val) {
114
+ if (val) {
115
+ if (val instanceof Date) {
116
+ return 'date';
117
+ }
118
+ return undefined;
119
+ }
120
+ else {
121
+ return null;
122
+ }
123
+ }
124
+ toJSON(val) {
125
+ return JSON.stringify(val);
126
+ }
127
+ fromJSON(val) {
128
+ return JSON.parse(val);
129
+ }
130
+ prepareBaseAddress(url, add = '') {
131
+ if (url.search('https://') !== 0 && url.search('http://')) {
132
+ url = 'https://' + url;
133
+ }
134
+ if (url.lastIndexOf('/') !== (url.length - 1)) {
135
+ url = url + '/';
136
+ }
137
+ url = url + add;
138
+ return url;
139
+ }
140
+ getHomeAddress() {
141
+ // return this.prepareBaseAddress(environment.urls.home)
142
+ return this.prepareBaseAddress('b24.trace-studio.com');
143
+ }
144
+ dateDiff(a, b) {
145
+ return new Date(a.valueOf() - b.valueOf());
146
+ }
147
+ dateDiffInDays(a, b) {
148
+ return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);
149
+ }
150
+ getBase64File(file) {
151
+ return new Promise((resolve, reject) => {
152
+ const reader = new FileReader();
153
+ reader.readAsDataURL(file);
154
+ reader.onload = () => resolve(reader.result);
155
+ reader.onerror = error => reject(error);
156
+ });
157
+ }
158
+ getBase64FileLikeStr(file) {
159
+ return __awaiter(this, void 0, void 0, function* () {
160
+ let result = yield this.getBase64File(file);
161
+ if (typeof result === 'string') {
162
+ let split = result.split(',');
163
+ return {
164
+ header: split[0],
165
+ val: split[1]
166
+ };
167
+ }
168
+ return undefined;
169
+ });
170
+ }
171
+ sumArray(numbers) {
172
+ return numbers.reduce((a, b) => {
173
+ return a + b;
174
+ });
175
+ }
176
+ isItTheSameDate(date1, date2) {
177
+ return date1.getDate() === date2.getDate()
178
+ && date1.getMonth() === date2.getMonth()
179
+ && date1.getFullYear() === date2.getFullYear();
180
+ }
181
+ toUnix(date) {
182
+ return Math.floor(date.valueOf() / 1000);
183
+ }
184
+ arrSum(x) {
185
+ let s = 0;
186
+ for (let i = 0; i < x.length; i++) {
187
+ s += x[i];
188
+ }
189
+ return s;
190
+ }
191
+ getBaseUrlHttps(url, component = false) {
192
+ if (component) {
193
+ return encodeURI(this.cropUrl(url) + '/');
194
+ }
195
+ else {
196
+ return encodeURI('https://' + this.cropUrl(url) + '/');
197
+ }
198
+ }
199
+ cropUrl(url) {
200
+ url = (url) ? url.replace('https://', '') : '';
201
+ url = (url) ? url.replace('http://', '') : '';
202
+ url = (url) ? url.replace('https:', '') : '';
203
+ url = (url) ? url.replace('http:', '') : '';
204
+ return url;
205
+ }
206
+ }
207
+ BaseServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseServices, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
208
+ BaseServices.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseServices, providedIn: 'root' });
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseServices, decorators: [{
210
+ type: Injectable,
211
+ args: [{
212
+ providedIn: 'root'
213
+ }]
214
+ }] });
215
+
216
+ /*
217
+ * Public API Surface of bx-rest
218
+ */
219
+
220
+ /**
221
+ * Generated bundle index. Do not edit.
222
+ */
223
+
224
+ export { BaseServices, BxRestModule, BxRestService };
225
+ //# sourceMappingURL=bx-rest.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/bx-rest.service.ts","../../../projects/bx-rest/src/rest/bx-rest.module.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { Injectable } from '@angular/core'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BxRestService {\n\n constructor() { }\n}\n","import { NgModule } from '@angular/core'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatButtonModule } from '@angular/material/button'\n\n@NgModule({\n declarations: [\n ],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [\n MatButtonModule,\n MatIconModule\n ]\n})\nexport class BxRestModule { }\n","import { Injectable } from '@angular/core'\r\nimport { time } from '@/bx-rest/consts/time'\r\n// import { environment } from '@/bx-rest/environments/environment'\r\nimport { DateTime } from 'luxon'\r\nimport { DateTimeOptions } from 'luxon/src/datetime'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseServices {\r\n\r\n toStr(val: any): string {\r\n return (val) ? String(val) : ''\r\n }\r\n\r\n toNumber(val: any): number {\r\n return (val && Number(val)) ? Number(val) : 0\r\n }\r\n\r\n toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions): Date {\r\n if (val instanceof Date) {\r\n return val\r\n } else if (typeof val == 'string') {\r\n if (format) {\r\n if (opt) {\r\n return DateTime.fromFormat(val, format, opt).toJSDate()\r\n }\r\n return DateTime.fromFormat(val, format).toJSDate()\r\n } else {\r\n return new Date(val)\r\n }\r\n } else if (typeof val == 'number') {\r\n return new Date(val)\r\n }\r\n console.error('Wrong date format', val, format)\r\n throw 'Wrong date format'\r\n }\r\n\r\n getBXStrTime(date: Date): string {\r\n return this.toISOStringWithTimezone(date)\r\n }\r\n\r\n toISOStringWithTimezone(date: Date): string {\r\n const tzOffset = -date.getTimezoneOffset()\r\n const diff = tzOffset >= 0 ? '+' : '-'\r\n const pad = (n: number) => `${Math.floor(Math.abs(n))}`.padStart(2, '0')\r\n return date.getFullYear() +\r\n '-' + pad(date.getMonth() + 1) +\r\n '-' + pad(date.getDate()) +\r\n 'T' + pad(date.getHours()) +\r\n ':' + pad(date.getMinutes()) +\r\n ':' + pad(date.getSeconds()) +\r\n diff + pad(tzOffset / 60) +\r\n ':' + pad(tzOffset % 60)\r\n };\r\n\r\n toBool(val: any) {\r\n switch (typeof val) {\r\n case 'string':\r\n val = val.toLowerCase()\r\n if (val === 'n' || val === 'y') { // битриксовые понятия о bool\r\n return val === 'y'\r\n } else if (val === 'true' || val === 'false') { // битриксовые понятия о bool\r\n return val === 'true'\r\n } else {\r\n return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n }\r\n\r\n toBXYorN(val: boolean) {\r\n return (val) ? 'Y' : 'N'\r\n }\r\n\r\n typeof(val: any) {\r\n return typeof val\r\n }\r\n\r\n typeDefClass(val: object): undefined | null | 'date' {\r\n if (val) {\r\n if (val instanceof Date) {\r\n return 'date'\r\n }\r\n return undefined\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n toJSON(val: object) {\r\n return JSON.stringify(val)\r\n }\r\n\r\n fromJSON<T>(val: string): T | undefined {\r\n return JSON.parse(val)\r\n }\r\n\r\n prepareBaseAddress(url: string, add: string = '') {\r\n if (url.search('https://') !== 0 && url.search('http://')) {\r\n url = 'https://' + url\r\n }\r\n\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n url = url + add\r\n\r\n return url\r\n }\r\n\r\n getHomeAddress() {\r\n // return this.prepareBaseAddress(environment.urls.home)\r\n return this.prepareBaseAddress('b24.trace-studio.com')\r\n }\r\n\r\n dateDiff(a: Date, b: Date) {\r\n return new Date(a.valueOf() - b.valueOf())\r\n }\r\n\r\n dateDiffInDays(a: Date, b: Date) {\r\n return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);\r\n }\r\n\r\n getBase64File(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result)\r\n reader.onerror = error => reject(error)\r\n })\r\n }\r\n\r\n async getBase64FileLikeStr(file: File): Promise<{ header: string, val: string } | undefined> {\r\n let result = await this.getBase64File(file)\r\n if (typeof result === 'string') {\r\n let split = result.split(',')\r\n return {\r\n header: split[0],\r\n val: split[1]\r\n }\r\n }\r\n return undefined\r\n }\r\n\r\n sumArray(numbers: number[]) {\r\n return numbers.reduce((a, b) => {\r\n return a + b;\r\n })\r\n }\r\n\r\n isItTheSameDate(date1: Date, date2: Date) {\r\n return date1.getDate() === date2.getDate()\r\n && date1.getMonth() === date2.getMonth()\r\n && date1.getFullYear() === date2.getFullYear()\r\n }\r\n\r\n toUnix(date: Date) {\r\n return Math.floor(date.valueOf() / 1000)\r\n }\r\n\r\n arrSum(x: number[]) {\r\n let s = 0;\r\n for (let i = 0; i < x.length; i++) {\r\n s += x[i]\r\n }\r\n return s\r\n }\r\n\r\n getBaseUrlHttps(url: string, component = false) {\r\n if (component) {\r\n return encodeURI(this.cropUrl(url) + '/');\r\n } else {\r\n return encodeURI('https://' + this.cropUrl(url) + '/');\r\n }\r\n }\r\n\r\n cropUrl(url: string) {\r\n url = (url) ? url.replace('https://', '') : ''\r\n url = (url) ? url.replace('http://', '') : ''\r\n url = (url) ? url.replace('https:', '') : ''\r\n url = (url) ? url.replace('http:', '') : ''\r\n return url\r\n }\r\n}\r\n","/*\n * Public API Surface of bx-rest\n */\n\nexport * from './bx-rest.service'\nexport * from './rest/bx-rest.module'\nexport * from './services/base'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}