barsa-novin-ray-core 2.0.135 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/fesm2022/barsa-novin-ray-core.mjs +818 -694
  2. package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
  3. package/lib/abstract-classes/form-base.d.ts +1 -0
  4. package/lib/abstract-classes/report-view-base.component.d.ts +2 -2
  5. package/lib/barsa-novin-ray-core.module.d.ts +5 -6
  6. package/lib/dynamic-component/base-view-props.d.ts +2 -2
  7. package/package.json +3 -5
  8. package/esm2022/barsa-novin-ray-core.mjs +0 -5
  9. package/esm2022/lib/abstract-classes/application-base.mjs +0 -24
  10. package/esm2022/lib/abstract-classes/barsa-api.mjs +0 -43
  11. package/esm2022/lib/abstract-classes/base-column-props.mjs +0 -84
  12. package/esm2022/lib/abstract-classes/base.component.mjs +0 -59
  13. package/esm2022/lib/abstract-classes/field-base.mjs +0 -232
  14. package/esm2022/lib/abstract-classes/files-validation-helper.mjs +0 -75
  15. package/esm2022/lib/abstract-classes/form-base.mjs +0 -156
  16. package/esm2022/lib/abstract-classes/form-field-report-page.component.mjs +0 -54
  17. package/esm2022/lib/abstract-classes/form-page-base.mjs +0 -129
  18. package/esm2022/lib/abstract-classes/form-page.component.mjs +0 -53
  19. package/esm2022/lib/abstract-classes/form-props.base.mjs +0 -97
  20. package/esm2022/lib/abstract-classes/form-toolbar-base.mjs +0 -56
  21. package/esm2022/lib/abstract-classes/index.mjs +0 -25
  22. package/esm2022/lib/abstract-classes/layout-item-base.mjs +0 -48
  23. package/esm2022/lib/abstract-classes/layout-panel-base.mjs +0 -63
  24. package/esm2022/lib/abstract-classes/linear-list-helper.mjs +0 -135
  25. package/esm2022/lib/abstract-classes/models.mjs +0 -184
  26. package/esm2022/lib/abstract-classes/module-with-dynamic-components.mjs +0 -2
  27. package/esm2022/lib/abstract-classes/number-base.mjs +0 -200
  28. package/esm2022/lib/abstract-classes/page-base.mjs +0 -97
  29. package/esm2022/lib/abstract-classes/page-with-form-handler-base.mjs +0 -40
  30. package/esm2022/lib/abstract-classes/report-base.mjs +0 -254
  31. package/esm2022/lib/abstract-classes/report-item-base.mjs +0 -53
  32. package/esm2022/lib/abstract-classes/report-view-base.component.mjs +0 -428
  33. package/esm2022/lib/abstract-classes/system-base.mjs +0 -24
  34. package/esm2022/lib/abstract-classes/tile-props.mjs +0 -46
  35. package/esm2022/lib/auth-guard.mjs +0 -48
  36. package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +0 -292
  37. package/esm2022/lib/barsa-novin-ray-core.module.mjs +0 -489
  38. package/esm2022/lib/base-ulv-setting.component.mjs +0 -45
  39. package/esm2022/lib/base.module.mjs +0 -28
  40. package/esm2022/lib/button-loading/button-loading.component.mjs +0 -18
  41. package/esm2022/lib/constants.mjs +0 -898
  42. package/esm2022/lib/container.component.mjs +0 -99
  43. package/esm2022/lib/controllers/base-controller.mjs +0 -30
  44. package/esm2022/lib/controllers/index.mjs +0 -5
  45. package/esm2022/lib/controllers/login-controller.mjs +0 -54
  46. package/esm2022/lib/controllers/login-verification-controller.mjs +0 -56
  47. package/esm2022/lib/controllers/models.mjs +0 -2
  48. package/esm2022/lib/custom-route-reuse-strategy.mjs +0 -32
  49. package/esm2022/lib/date-services/date-hijri.service.mjs +0 -146
  50. package/esm2022/lib/date-services/date-info.mjs +0 -2
  51. package/esm2022/lib/date-services/date-miladi.service.mjs +0 -124
  52. package/esm2022/lib/date-services/date-shamsi.service.mjs +0 -148
  53. package/esm2022/lib/date-services/date.service.mjs +0 -149
  54. package/esm2022/lib/date-services/index.mjs +0 -6
  55. package/esm2022/lib/device.mjs +0 -663
  56. package/esm2022/lib/directives/absolute-div-body.directive.mjs +0 -45
  57. package/esm2022/lib/directives/anchor-scroll.directive.mjs +0 -24
  58. package/esm2022/lib/directives/attr-rtl.directive.mjs +0 -35
  59. package/esm2022/lib/directives/base.directive.mjs +0 -55
  60. package/esm2022/lib/directives/body-click.directive.mjs +0 -35
  61. package/esm2022/lib/directives/column-resizer.directive.mjs +0 -39
  62. package/esm2022/lib/directives/copy.directive.mjs +0 -59
  63. package/esm2022/lib/directives/count-down.directive.mjs +0 -108
  64. package/esm2022/lib/directives/dynamic-command.directive.mjs +0 -42
  65. package/esm2022/lib/directives/dynamic-style.directive.mjs +0 -57
  66. package/esm2022/lib/directives/ellapsis-text.directive.mjs +0 -69
  67. package/esm2022/lib/directives/ellipsify.directive.mjs +0 -72
  68. package/esm2022/lib/directives/field-binding.directive.mjs +0 -17
  69. package/esm2022/lib/directives/fill-empty-space.mjs +0 -83
  70. package/esm2022/lib/directives/form-close.directive.mjs +0 -32
  71. package/esm2022/lib/directives/img-lazy.directive.mjs +0 -81
  72. package/esm2022/lib/directives/index.mjs +0 -35
  73. package/esm2022/lib/directives/intersection-observer.directive.mjs +0 -51
  74. package/esm2022/lib/directives/items-renderer.directive.mjs +0 -59
  75. package/esm2022/lib/directives/label-mandatory.directive.mjs +0 -48
  76. package/esm2022/lib/directives/load-external-files.directive.mjs +0 -37
  77. package/esm2022/lib/directives/mobile.directive.mjs +0 -29
  78. package/esm2022/lib/directives/nowraptext.directive.mjs +0 -26
  79. package/esm2022/lib/directives/numbers-only-input.directive.mjs +0 -26
  80. package/esm2022/lib/directives/placeHolder.directive.mjs +0 -15
  81. package/esm2022/lib/directives/prevent-default.directive.mjs +0 -20
  82. package/esm2022/lib/directives/render-ulv-paging.directive.mjs +0 -80
  83. package/esm2022/lib/directives/render-ulv-viewer.directive.mjs +0 -75
  84. package/esm2022/lib/directives/route-form-change.directive.mjs +0 -37
  85. package/esm2022/lib/directives/stop-propagation.directive.mjs +0 -20
  86. package/esm2022/lib/directives/table-resizer.directive.mjs +0 -235
  87. package/esm2022/lib/directives/ulv-command.directive.mjs +0 -42
  88. package/esm2022/lib/directives/until-inview.directive.mjs +0 -52
  89. package/esm2022/lib/directives/workflow-choice-command.directive.mjs +0 -60
  90. package/esm2022/lib/dynamic-component/base-dynamic.component.mjs +0 -96
  91. package/esm2022/lib/dynamic-component/base-form-toolbaritem-props.mjs +0 -52
  92. package/esm2022/lib/dynamic-component/base-item-content-props.mjs +0 -80
  93. package/esm2022/lib/dynamic-component/base-view-content-props.mjs +0 -20
  94. package/esm2022/lib/dynamic-component/base-view-item-props.mjs +0 -525
  95. package/esm2022/lib/dynamic-component/base-view-props.mjs +0 -162
  96. package/esm2022/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +0 -38
  97. package/esm2022/lib/dynamic-component/dynamic-form.component.mjs +0 -66
  98. package/esm2022/lib/dynamic-component/dynamic-item.component.mjs +0 -76
  99. package/esm2022/lib/dynamic-component/dynamic-layout.component.mjs +0 -63
  100. package/esm2022/lib/dynamic-component/index.mjs +0 -11
  101. package/esm2022/lib/empty-page/empty-page.component.mjs +0 -44
  102. package/esm2022/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +0 -16
  103. package/esm2022/lib/field-ui/field-ui.component.mjs +0 -146
  104. package/esm2022/lib/form/form.component.mjs +0 -211
  105. package/esm2022/lib/form-new/form-new.component.mjs +0 -30
  106. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.mjs +0 -54
  107. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page.module.mjs +0 -29
  108. package/esm2022/lib/form-page-routing/constants.mjs +0 -9
  109. package/esm2022/lib/form-page-routing/index.mjs +0 -3
  110. package/esm2022/lib/from-intersection-observer.mjs +0 -53
  111. package/esm2022/lib/global-error-handler.mjs +0 -26
  112. package/esm2022/lib/injdection-tokens.mjs +0 -8
  113. package/esm2022/lib/login-enter-mobile/login-enter-mobile.component.mjs +0 -64
  114. package/esm2022/lib/login-verification/login-verification.component.mjs +0 -79
  115. package/esm2022/lib/login2/login2.component.mjs +0 -60
  116. package/esm2022/lib/modal-root.component.mjs +0 -33
  117. package/esm2022/lib/not-found/not-found.component.mjs +0 -16
  118. package/esm2022/lib/not-internet/not-internet.component.mjs +0 -21
  119. package/esm2022/lib/pipes/barsa-icon-dict.pipe.mjs +0 -19
  120. package/esm2022/lib/pipes/bbb-translate.pipe.mjs +0 -35
  121. package/esm2022/lib/pipes/can-upload.pipe.mjs +0 -30
  122. package/esm2022/lib/pipes/column-custom-component.pipe.mjs +0 -40
  123. package/esm2022/lib/pipes/column-customui.pipe.mjs +0 -32
  124. package/esm2022/lib/pipes/column-icon.pipe.mjs +0 -22
  125. package/esm2022/lib/pipes/column-value.pipe.mjs +0 -34
  126. package/esm2022/lib/pipes/combo-row-img.pipe.mjs +0 -16
  127. package/esm2022/lib/pipes/context-menu.pipe.mjs +0 -40
  128. package/esm2022/lib/pipes/control-ui.pipe.mjs +0 -31
  129. package/esm2022/lib/pipes/convert-to-style.pipe.mjs +0 -32
  130. package/esm2022/lib/pipes/date-time-to-caption.pipe.mjs +0 -34
  131. package/esm2022/lib/pipes/fileinfo-count.pipe.mjs +0 -20
  132. package/esm2022/lib/pipes/filter-columns-by-details.pipe.mjs +0 -22
  133. package/esm2022/lib/pipes/filter-string.pipe.mjs +0 -44
  134. package/esm2022/lib/pipes/filter-tab.pipe.mjs +0 -19
  135. package/esm2022/lib/pipes/filter-toolbar-control.pipe.mjs +0 -16
  136. package/esm2022/lib/pipes/filter-workflow-mobile.pipe.mjs +0 -24
  137. package/esm2022/lib/pipes/filter.pipe.mjs +0 -33
  138. package/esm2022/lib/pipes/find-column-by-db-name.pipe.mjs +0 -27
  139. package/esm2022/lib/pipes/find-preview-column.pipe.mjs +0 -19
  140. package/esm2022/lib/pipes/fiori-icon.pipe.mjs +0 -42
  141. package/esm2022/lib/pipes/groupby.pipe.mjs +0 -63
  142. package/esm2022/lib/pipes/header-facet-value.pipe.mjs +0 -22
  143. package/esm2022/lib/pipes/hide-columns-inmobile.pipe.mjs +0 -22
  144. package/esm2022/lib/pipes/index.mjs +0 -48
  145. package/esm2022/lib/pipes/list-count.pipe.mjs +0 -17
  146. package/esm2022/lib/pipes/merge-fields-to-columns.pipe.mjs +0 -42
  147. package/esm2022/lib/pipes/mo-info-ulv-data.pipe.mjs +0 -58
  148. package/esm2022/lib/pipes/mo-info-ulv-paging.pipe.mjs +0 -16
  149. package/esm2022/lib/pipes/mo-report-value-concat.pipe.mjs +0 -35
  150. package/esm2022/lib/pipes/mo-report-value.pipe.mjs +0 -17
  151. package/esm2022/lib/pipes/mo-value.pipe.mjs +0 -18
  152. package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +0 -90
  153. package/esm2022/lib/pipes/numeral.pipe.mjs +0 -43
  154. package/esm2022/lib/pipes/picture-field-source.pipe.mjs +0 -22
  155. package/esm2022/lib/pipes/remove-newline.pipe.mjs +0 -20
  156. package/esm2022/lib/pipes/replace.pipe.mjs +0 -17
  157. package/esm2022/lib/pipes/reverse.pipe.mjs +0 -22
  158. package/esm2022/lib/pipes/rownumber.pipe.mjs +0 -25
  159. package/esm2022/lib/pipes/sanitize-text.pipe.mjs +0 -20
  160. package/esm2022/lib/pipes/seperator-fix.pipe.mjs +0 -23
  161. package/esm2022/lib/pipes/sort.pipe.mjs +0 -48
  162. package/esm2022/lib/pipes/th-image-icon.pipe.mjs +0 -22
  163. package/esm2022/lib/pipes/tlbButtons.pipe.mjs +0 -59
  164. package/esm2022/lib/pipes/total-summary.pipe.mjs +0 -16
  165. package/esm2022/lib/pipes/tree-item-isexpanded.pipe.mjs +0 -25
  166. package/esm2022/lib/pipes/visible-value.pipe.mjs +0 -18
  167. package/esm2022/lib/portal-page/portal-page.component.mjs +0 -23
  168. package/esm2022/lib/portal-page/portal-sidebar.component.mjs +0 -36
  169. package/esm2022/lib/redirect-home-guard.mjs +0 -51
  170. package/esm2022/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +0 -12
  171. package/esm2022/lib/report-container/report-container.component.mjs +0 -63
  172. package/esm2022/lib/resizable-module/resizable.component.mjs +0 -31
  173. package/esm2022/lib/resizable-module/resizable.directive.mjs +0 -41
  174. package/esm2022/lib/resizable-module/resizable.module.mjs +0 -17
  175. package/esm2022/lib/resolvers/index.mjs +0 -6
  176. package/esm2022/lib/resolvers/portal-dynamic-page.resolver.mjs +0 -49
  177. package/esm2022/lib/resolvers/portal-form-page.resolver.mjs +0 -18
  178. package/esm2022/lib/resolvers/portal-page.resolver.mjs +0 -30
  179. package/esm2022/lib/resolvers/portal-report-page.resolver.mjs +0 -37
  180. package/esm2022/lib/resolvers/tile-group-breadcrumb.resolver.mjs +0 -30
  181. package/esm2022/lib/root-page/root-page.component.mjs +0 -21
  182. package/esm2022/lib/root-portal/root-portal.component.mjs +0 -164
  183. package/esm2022/lib/server-connection-error/server-connection-error.component.mjs +0 -19
  184. package/esm2022/lib/services/api.service.mjs +0 -63
  185. package/esm2022/lib/services/audio-recording.service.mjs +0 -95
  186. package/esm2022/lib/services/barsa-dialog.service.mjs +0 -80
  187. package/esm2022/lib/services/barsa-storage.service.mjs +0 -78
  188. package/esm2022/lib/services/breadcrumb.service.mjs +0 -64
  189. package/esm2022/lib/services/column.service.mjs +0 -20
  190. package/esm2022/lib/services/container.service.mjs +0 -69
  191. package/esm2022/lib/services/dynamic-component.service.mjs +0 -55
  192. package/esm2022/lib/services/form-panel.service.mjs +0 -380
  193. package/esm2022/lib/services/form.service.mjs +0 -14
  194. package/esm2022/lib/services/horizontal-layout.service.mjs +0 -16
  195. package/esm2022/lib/services/index.mjs +0 -29
  196. package/esm2022/lib/services/indexeddb.service.mjs +0 -34
  197. package/esm2022/lib/services/layout.service.mjs +0 -42
  198. package/esm2022/lib/services/local-storage.service.mjs +0 -32
  199. package/esm2022/lib/services/log.service.mjs +0 -50
  200. package/esm2022/lib/services/network-status.service.mjs +0 -15
  201. package/esm2022/lib/services/notification-popup.service.mjs +0 -2
  202. package/esm2022/lib/services/notification-sw.service.mjs +0 -180
  203. package/esm2022/lib/services/notification.service.mjs +0 -308
  204. package/esm2022/lib/services/portal.service.mjs +0 -929
  205. package/esm2022/lib/services/prompt-update.service.mjs +0 -56
  206. package/esm2022/lib/services/routing.service.mjs +0 -60
  207. package/esm2022/lib/services/save-scoll-position.service.mjs +0 -29
  208. package/esm2022/lib/services/service-worker-communication.service.mjs +0 -120
  209. package/esm2022/lib/services/toast.service.mjs +0 -2
  210. package/esm2022/lib/services/ui.service.mjs +0 -23
  211. package/esm2022/lib/services/ulvmain.service.mjs +0 -810
  212. package/esm2022/lib/services/upload.service.mjs +0 -161
  213. package/esm2022/lib/services/video-recording.service.mjs +0 -115
  214. package/esm2022/public-api.mjs +0 -44
@@ -1,161 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpErrorResponse, HttpEventType } from '@angular/common/http';
3
- import { Subject, throwError, from } from 'rxjs';
4
- import { catchError, finalize, map, takeUntil } from 'rxjs/operators';
5
- import { BarsaApi } from '../abstract-classes';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common/http";
8
- export class UploadService {
9
- constructor(httpClient) {
10
- this.httpClient = httpClient;
11
- this._uploadingStateSource = new Subject();
12
- this.uploadingState$ = this._uploadingStateSource.asObservable();
13
- this.cancelation$ = new Subject();
14
- this.uploadURL = `/Fields/File/Base/FileUploadFormMulti.ashx`;
15
- }
16
- upload(data, fdId, key = '') {
17
- let state = {
18
- key,
19
- progress: 0,
20
- state: 'Start',
21
- uploading: false
22
- };
23
- this._setUploadingStatus(state);
24
- return this.httpClient
25
- .post(this.uploadURL, data, {
26
- reportProgress: true,
27
- observe: 'events',
28
- headers: { fdId, IsPortal: 'true' }
29
- })
30
- .pipe(map((event) => {
31
- switch (event.type) {
32
- case HttpEventType.UploadProgress: {
33
- const total = event.total || 0;
34
- const progress = Math.round((100 * event.loaded) / total);
35
- return { status: 'progress', message: progress };
36
- }
37
- case HttpEventType.Response:
38
- return event.body;
39
- default:
40
- return `Unhandled event: ${event.type}`;
41
- }
42
- }), map((res) => {
43
- if (Array.isArray(res)) {
44
- state = this._setUploadingStatus({ ...state, state: 'Complete', uploading: false });
45
- }
46
- else if (res !== null && typeof res === 'object') {
47
- if (res.status === 'error') {
48
- state = this._setUploadingStatus({ ...state, state: 'Error', uploading: false });
49
- }
50
- else if (res.status === 'progress') {
51
- state = this._setUploadingStatus({
52
- ...state,
53
- state: 'Uploading',
54
- uploading: true,
55
- progress: res.message
56
- });
57
- }
58
- }
59
- return res;
60
- }), takeUntil(this.cancelation$.asObservable()), catchError((err) => {
61
- if (err instanceof HttpErrorResponse) {
62
- BarsaApi.Bw.Toast.Error(`${err.status} : ${err.message}`);
63
- }
64
- return throwError(() => new Error(err));
65
- }), finalize(() => {
66
- state = this._setUploadingStatus({
67
- ...state,
68
- uploading: false
69
- });
70
- }));
71
- }
72
- compressFiles$(files) {
73
- return from(this.compressFiles(files));
74
- }
75
- _setUploadingStatus(state) {
76
- if (state.state === 'Start') {
77
- state.uploading = true;
78
- }
79
- this._uploadingStateSource.next(state);
80
- return state;
81
- }
82
- compressFiles(files) {
83
- const formData = new FormData();
84
- return new Promise((resolve, reject) => {
85
- files.forEach((file, index) => {
86
- const file2 = file; // get the file
87
- const blobURL = URL.createObjectURL(file2);
88
- const img = new Image();
89
- img.src = blobURL;
90
- const biggerThan1MB = file.size / 1024 > 1000;
91
- console.log(`file size ${biggerThan1MB}`);
92
- const mimeTypeJpg = 'image/jpeg';
93
- const MAX_WIDTH = 1920;
94
- const MAX_HEIGHT = 1080;
95
- const MIME_TYPE = biggerThan1MB ? mimeTypeJpg : file.type;
96
- const QUALITY = biggerThan1MB && file.type === mimeTypeJpg ? 0.5 : 1;
97
- if (MIME_TYPE === file.type && QUALITY === 1) {
98
- formData.append('file', file, file.name);
99
- if (index === files.length - 1) {
100
- resolve(formData);
101
- }
102
- }
103
- img.onerror = function () {
104
- URL.revokeObjectURL(img.src);
105
- // Handle the failure properly
106
- console.log('Cannot load image');
107
- reject(new Error('Cannot load image'));
108
- };
109
- img.onload = function () {
110
- URL.revokeObjectURL(img.src);
111
- const [newWidth, newHeight] = calculateSize(img, MAX_WIDTH, MAX_HEIGHT);
112
- const canvas = document.createElement('canvas');
113
- canvas.width = newWidth;
114
- canvas.height = newHeight;
115
- const ctx = canvas.getContext('2d');
116
- ctx?.drawImage(img, 0, 0, newWidth, newHeight);
117
- canvas.toBlob((blob) => {
118
- // Handle the compressed image. es. upload or save in local state
119
- if (blob) {
120
- // formData.append(
121
- // 'unicFileName',
122
- // 'x' + BarsaApi.Common.Util.GetNewMetaGuid() + ';;;' + file.name
123
- // );
124
- formData.append('file', blob, file.name);
125
- }
126
- if (index === files.length - 1) {
127
- resolve(formData);
128
- }
129
- }, MIME_TYPE, QUALITY);
130
- };
131
- function calculateSize(img1, maxWidth, maxHeight) {
132
- let width = img1.width;
133
- let height = img1.height;
134
- // calculate the width and height, constraining the proportions
135
- if (width > height) {
136
- if (width > maxWidth) {
137
- height = Math.round((height * maxWidth) / width);
138
- width = maxWidth;
139
- }
140
- }
141
- else {
142
- if (height > maxHeight) {
143
- width = Math.round((width * maxHeight) / height);
144
- height = maxHeight;
145
- }
146
- }
147
- return [width, height];
148
- }
149
- });
150
- });
151
- }
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UploadService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
153
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UploadService, providedIn: 'root' }); }
154
- }
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UploadService, decorators: [{
156
- type: Injectable,
157
- args: [{
158
- providedIn: 'root'
159
- }]
160
- }], ctorParameters: () => [{ type: i1.HttpClient }] });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxPQUFPLEVBQWMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBS2hFLE1BQU0sT0FBTyxhQUFhO0lBS3RCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFKbEMsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFDL0Qsb0JBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUQsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ25DLGNBQVMsR0FBRyw0Q0FBNEMsQ0FBQztJQUNaLENBQUM7SUFFdkMsTUFBTSxDQUFDLElBQWMsRUFBRSxJQUFZLEVBQUUsTUFBYyxFQUFFO1FBQ3hELElBQUksS0FBSyxHQUFvQjtZQUN6QixHQUFHO1lBQ0gsUUFBUSxFQUFFLENBQUM7WUFDWCxLQUFLLEVBQUUsT0FBTztZQUNkLFNBQVMsRUFBRSxLQUFLO1NBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsVUFBVTth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LEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQzs0QkFDakQsTUFBTSxHQUFHLFNBQVMsQ0FBQzt3QkFDdkIsQ0FBQztvQkFDTCxDQUFDO29CQUNELE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F4SlEsYUFBYTtrSEFBYixhQUFhLGNBRlYsTUFBTTs7MkZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFyc2FBcGksIElVcGxvYWRpbmdTdGF0ZSB9IGZyb20gJy4uL2Fic3RyYWN0LWNsYXNzZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX3VwbG9hZGluZ1N0YXRlU291cmNlID0gbmV3IFN1YmplY3Q8SVVwbG9hZGluZ1N0YXRlPigpO1xuICAgIHVwbG9hZGluZ1N0YXRlJCA9IHRoaXMuX3VwbG9hZGluZ1N0YXRlU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIGNhbmNlbGF0aW9uJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdXBsb2FkVVJMID0gYC9GaWVsZHMvRmlsZS9CYXNlL0ZpbGVVcGxvYWRGb3JtTXVsdGkuYXNoeGA7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7fVxuXG4gICAgcHVibGljIHVwbG9hZChkYXRhOiBGb3JtRGF0YSwgZmRJZDogc3RyaW5nLCBrZXk6IHN0cmluZyA9ICcnKTogT2JzZXJ2YWJsZTxJVXBsb2FkaW5nU3RhdGU+IHtcbiAgICAgICAgbGV0IHN0YXRlOiBJVXBsb2FkaW5nU3RhdGUgPSB7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBwcm9ncmVzczogMCxcbiAgICAgICAgICAgIHN0YXRlOiAnU3RhcnQnLFxuICAgICAgICAgICAgdXBsb2FkaW5nOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9zZXRVcGxvYWRpbmdTdGF0dXMoc3RhdGUpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdDxhbnk+KHRoaXMudXBsb2FkVVJMLCBkYXRhLCB7XG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogeyBmZElkLCBJc1BvcnRhbDogJ3RydWUnIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSBldmVudC50b3RhbCB8fCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2dyZXNzID0gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIHRvdGFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6ICdwcm9ncmVzcycsIG1lc3NhZ2U6IHByb2dyZXNzIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgVW5oYW5kbGVkIGV2ZW50OiAke2V2ZW50LnR5cGV9YDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gdGhpcy5fc2V0VXBsb2FkaW5nU3RhdHVzKHsgLi4uc3RhdGUsIHN0YXRlOiAnQ29tcGxldGUnLCB1cGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlcyAhPT0gbnVsbCAmJiB0eXBlb2YgcmVzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHRoaXMuX3NldFVwbG9hZGluZ1N0YXR1cyh7IC4uLnN0YXRlLCBzdGF0ZTogJ0Vycm9yJywgdXBsb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gJ3Byb2dyZXNzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gdGhpcy5fc2V0VXBsb2FkaW5nU3RhdHVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiAnVXBsb2FkaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkaW5nOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzczogcmVzLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmNhbmNlbGF0aW9uJC5hc09ic2VydmFibGUoKSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQncuVG9hc3QuRXJyb3IoYCR7ZXJyLnN0YXR1c30gOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGVycikpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSB0aGlzLl9zZXRVcGxvYWRpbmdTdGF0dXMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWRpbmc6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb21wcmVzc0ZpbGVzJChmaWxlczogRmlsZVtdKTogT2JzZXJ2YWJsZTxGb3JtRGF0YT4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLmNvbXByZXNzRmlsZXMoZmlsZXMpKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0VXBsb2FkaW5nU3RhdHVzKHN0YXRlOiBJVXBsb2FkaW5nU3RhdGUpOiBJVXBsb2FkaW5nU3RhdGUge1xuICAgICAgICBpZiAoc3RhdGUuc3RhdGUgPT09ICdTdGFydCcpIHtcbiAgICAgICAgICAgIHN0YXRlLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBsb2FkaW5nU3RhdGVTb3VyY2UubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBjb21wcmVzc0ZpbGVzKGZpbGVzOiBGaWxlW10pOiBQcm9taXNlPEZvcm1EYXRhPiB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBmaWxlcy5mb3JFYWNoKChmaWxlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGUyID0gZmlsZTsgLy8gZ2V0IHRoZSBmaWxlXG4gICAgICAgICAgICAgICAgY29uc3QgYmxvYlVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZTIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xuICAgICAgICAgICAgICAgIGltZy5zcmMgPSBibG9iVVJMO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJpZ2dlclRoYW4xTUIgPSBmaWxlLnNpemUgLyAxMDI0ID4gMTAwMDtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgZmlsZSBzaXplICR7YmlnZ2VyVGhhbjFNQn1gKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtaW1lVHlwZUpwZyA9ICdpbWFnZS9qcGVnJztcbiAgICAgICAgICAgICAgICBjb25zdCBNQVhfV0lEVEggPSAxOTIwO1xuICAgICAgICAgICAgICAgIGNvbnN0IE1BWF9IRUlHSFQgPSAxMDgwO1xuICAgICAgICAgICAgICAgIGNvbnN0IE1JTUVfVFlQRSA9IGJpZ2dlclRoYW4xTUIgPyBtaW1lVHlwZUpwZyA6IGZpbGUudHlwZTtcbiAgICAgICAgICAgICAgICBjb25zdCBRVUFMSVRZID0gYmlnZ2VyVGhhbjFNQiAmJiBmaWxlLnR5cGUgPT09IG1pbWVUeXBlSnBnID8gMC41IDogMTtcbiAgICAgICAgICAgICAgICBpZiAoTUlNRV9UWVBFID09PSBmaWxlLnR5cGUgJiYgUVVBTElUWSA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlLCBmaWxlLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IGZpbGVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZm9ybURhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24gKCk6IHZvaWQge1xuICAgICAgICAgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGltZy5zcmMpO1xuICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgdGhlIGZhaWx1cmUgcHJvcGVybHlcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0Nhbm5vdCBsb2FkIGltYWdlJyk7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0Nhbm5vdCBsb2FkIGltYWdlJykpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uICgpOiB2b2lkIHtcbiAgICAgICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChpbWcuc3JjKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW25ld1dpZHRoLCBuZXdIZWlnaHRdID0gY2FsY3VsYXRlU2l6ZShpbWcsIE1BWF9XSURUSCwgTUFYX0hFSUdIVCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBuZXdXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IG5ld0hlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgICAgICAgICAgICAgIGN0eD8uZHJhd0ltYWdlKGltZywgMCwgMCwgbmV3V2lkdGgsIG5ld0hlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIGNhbnZhcy50b0Jsb2IoXG4gICAgICAgICAgICAgICAgICAgICAgICAoYmxvYikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSB0aGUgY29tcHJlc3NlZCBpbWFnZS4gZXMuIHVwbG9hZCBvciBzYXZlIGluIGxvY2FsIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgJ3VuaWNGaWxlTmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAneCcgKyBCYXJzYUFwaS5Db21tb24uVXRpbC5HZXROZXdNZXRhR3VpZCgpICsgJzs7OycgKyBmaWxlLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgYmxvYiwgZmlsZS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBmaWxlcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZm9ybURhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBNSU1FX1RZUEUsXG4gICAgICAgICAgICAgICAgICAgICAgICBRVUFMSVRZXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBjYWxjdWxhdGVTaXplKGltZzEsIG1heFdpZHRoLCBtYXhIZWlnaHQpOiBudW1iZXJbXSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IGltZzEud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGxldCBoZWlnaHQgPSBpbWcxLmhlaWdodDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgdGhlIHdpZHRoIGFuZCBoZWlnaHQsIGNvbnN0cmFpbmluZyB0aGUgcHJvcG9ydGlvbnNcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoID4gaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGggPiBtYXhXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCA9IE1hdGgucm91bmQoKGhlaWdodCAqIG1heFdpZHRoKSAvIHdpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IG1heFdpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodCA+IG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gTWF0aC5yb3VuZCgod2lkdGggKiBtYXhIZWlnaHQpIC8gaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSBtYXhIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFt3aWR0aCwgaGVpZ2h0XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,115 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import RecordRTC from 'recordrtc';
3
- import moment from 'moment';
4
- import { Subject } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- export class VideoRecordingService {
7
- constructor() {
8
- this._stream = new Subject();
9
- this._recorded = new Subject();
10
- this._recordedUrl = new Subject();
11
- this._recordingTime = new Subject();
12
- this._recordingFailed = new Subject();
13
- }
14
- getRecordedUrl() {
15
- return this._recordedUrl.asObservable();
16
- }
17
- getRecordedBlob() {
18
- return this._recorded.asObservable();
19
- }
20
- getRecordedTime() {
21
- return this._recordingTime.asObservable();
22
- }
23
- recordingFailed() {
24
- return this._recordingFailed.asObservable();
25
- }
26
- getStream() {
27
- return this._stream.asObservable();
28
- }
29
- startRecording(conf) {
30
- const browser = navigator;
31
- if (this.recorder) {
32
- // It means recording is already started or it is already recording something
33
- return Promise.resolve(this.stream);
34
- }
35
- this._recordingTime.next('00:00');
36
- return new Promise((resolve, reject) => {
37
- browser.mediaDevices
38
- .getUserMedia(conf)
39
- .then((stream) => {
40
- this.stream = stream;
41
- this.record();
42
- resolve(this.stream);
43
- })
44
- .catch((error) => {
45
- this._recordingFailed.next('');
46
- reject(error);
47
- });
48
- });
49
- }
50
- abortRecording() {
51
- this.stopMedia();
52
- }
53
- stopRecording() {
54
- if (this.recorder) {
55
- this.recorder.stopRecording(this.processVideo.bind(this));
56
- // this.processVideo.bind(this.recorder)
57
- // this.processVideo(this.recorder);
58
- // this.stopMedia();
59
- }
60
- }
61
- record() {
62
- this.recorder = new RecordRTC(this.stream, {
63
- type: 'video',
64
- mimeType: 'video/webm',
65
- bitsPerSecond: 44000
66
- });
67
- this.recorder.startRecording();
68
- this.startTime = moment();
69
- this.interval = setInterval(() => {
70
- const currentTime = moment();
71
- const diffTime = moment.duration(currentTime.diff(this.startTime));
72
- const time = this.toString(diffTime.minutes()) + ':' + this.toString(diffTime.seconds());
73
- this._recordingTime.next(time);
74
- this._stream.next(this.stream);
75
- }, 500);
76
- }
77
- toString(value) {
78
- let val = value;
79
- if (!value) {
80
- val = '00';
81
- }
82
- if (value < 10) {
83
- val = '0' + value;
84
- }
85
- return val;
86
- }
87
- processVideo(audioVideoWebMURL) {
88
- // console.log(audioVideoWebMURL);
89
- const recordedBlob = this.recorder.getBlob();
90
- this.recorder.getDataURL(function (_) { });
91
- const recordedName = encodeURIComponent('video_' + new Date().getTime() + '.webm');
92
- this._recorded.next({ blob: recordedBlob, url: audioVideoWebMURL, title: recordedName });
93
- this.stopMedia();
94
- // this.recorder.save(recordedName);
95
- }
96
- stopMedia() {
97
- if (this.recorder) {
98
- this.recorder = null;
99
- clearInterval(this.interval);
100
- this.startTime = null;
101
- if (this.stream) {
102
- this.stream.getAudioTracks().forEach((track) => track.stop());
103
- this.stream.getVideoTracks().forEach((track) => track.stop());
104
- this.stream.stop();
105
- this.stream = null;
106
- }
107
- }
108
- }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: VideoRecordingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
110
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: VideoRecordingService }); }
111
- }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: VideoRecordingService, decorators: [{
113
- type: Injectable
114
- }] });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcmVjb3JkaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL3ZpZGVvLXJlY29yZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVMzQyxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBTVksWUFBTyxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFDckMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO1FBQy9DLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNyQyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDdkMscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztLQTRHcEQ7SUExR0csY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxTQUFTO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxjQUFjLENB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QztZQUN2QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7OEdBcEhRLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgUmVjb3JkUlRDIGZyb20gJ3JlY29yZHJ0Yyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW50ZXJmYWNlIFJlY29yZGVkVmlkZW9PdXRwdXQge1xyXG4gICAgYmxvYjogQmxvYjtcclxuICAgIHVybDogc3RyaW5nO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgc3RyZWFtO1xyXG4gICAgcHJpdmF0ZSByZWNvcmRlcjtcclxuICAgIHByaXZhdGUgaW50ZXJ2YWw7XHJcbiAgICBwcml2YXRlIHN0YXJ0VGltZTtcclxuICAgIHByaXZhdGUgX3N0cmVhbSA9IG5ldyBTdWJqZWN0PE1lZGlhU3RyZWFtPigpO1xyXG4gICAgcHJpdmF0ZSBfcmVjb3JkZWQgPSBuZXcgU3ViamVjdDxSZWNvcmRlZFZpZGVvT3V0cHV0PigpO1xyXG4gICAgcHJpdmF0ZSBfcmVjb3JkZWRVcmwgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgICBwcml2YXRlIF9yZWNvcmRpbmdUaW1lID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gICAgcHJpdmF0ZSBfcmVjb3JkaW5nRmFpbGVkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG5cclxuICAgIGdldFJlY29yZGVkVXJsKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZGVkVXJsLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFJlY29yZGVkQmxvYigpOiBPYnNlcnZhYmxlPFJlY29yZGVkVmlkZW9PdXRwdXQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmVjb3JkZWRUaW1lKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZGluZ1RpbWUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVjb3JkaW5nRmFpbGVkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZGluZ0ZhaWxlZC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdHJlYW0oKTogT2JzZXJ2YWJsZTxNZWRpYVN0cmVhbT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdHJlYW0uYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRSZWNvcmRpbmcoY29uZjogYW55KTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBjb25zdCBicm93c2VyID0gPGFueT5uYXZpZ2F0b3I7XHJcbiAgICAgICAgaWYgKHRoaXMucmVjb3JkZXIpIHtcclxuICAgICAgICAgICAgLy8gSXQgbWVhbnMgcmVjb3JkaW5nIGlzIGFscmVhZHkgc3RhcnRlZCBvciBpdCBpcyBhbHJlYWR5IHJlY29yZGluZyBzb21ldGhpbmdcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnN0cmVhbSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9yZWNvcmRpbmdUaW1lLm5leHQoJzAwOjAwJyk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgYnJvd3Nlci5tZWRpYURldmljZXNcclxuICAgICAgICAgICAgICAgIC5nZXRVc2VyTWVkaWEoY29uZilcclxuICAgICAgICAgICAgICAgIC50aGVuKChzdHJlYW0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmVhbSA9IHN0cmVhbTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29yZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodGhpcy5zdHJlYW0pO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWNvcmRpbmdGYWlsZWQubmV4dCgnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFib3J0UmVjb3JkaW5nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3RvcE1lZGlhKCk7XHJcbiAgICB9XHJcbiAgICBzdG9wUmVjb3JkaW5nKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnJlY29yZGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVjb3JkZXIuc3RvcFJlY29yZGluZyh0aGlzLnByb2Nlc3NWaWRlby5iaW5kKHRoaXMpKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5wcm9jZXNzVmlkZW8uYmluZCh0aGlzLnJlY29yZGVyKVxyXG4gICAgICAgICAgICAvLyB0aGlzLnByb2Nlc3NWaWRlbyh0aGlzLnJlY29yZGVyKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5zdG9wTWVkaWEoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZWNvcmQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRlciA9IG5ldyBSZWNvcmRSVEModGhpcy5zdHJlYW0sIHtcclxuICAgICAgICAgICAgdHlwZTogJ3ZpZGVvJyxcclxuICAgICAgICAgICAgbWltZVR5cGU6ICd2aWRlby93ZWJtJyxcclxuICAgICAgICAgICAgYml0c1BlclNlY29uZDogNDQwMDBcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnJlY29yZGVyLnN0YXJ0UmVjb3JkaW5nKCk7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBtb21lbnQoKTtcclxuICAgICAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VGltZSA9IG1vbWVudCgpO1xyXG4gICAgICAgICAgICBjb25zdCBkaWZmVGltZSA9IG1vbWVudC5kdXJhdGlvbihjdXJyZW50VGltZS5kaWZmKHRoaXMuc3RhcnRUaW1lKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLnRvU3RyaW5nKGRpZmZUaW1lLm1pbnV0ZXMoKSkgKyAnOicgKyB0aGlzLnRvU3RyaW5nKGRpZmZUaW1lLnNlY29uZHMoKSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZ1RpbWUubmV4dCh0aW1lKTtcclxuICAgICAgICAgICAgdGhpcy5fc3RyZWFtLm5leHQodGhpcy5zdHJlYW0pO1xyXG4gICAgICAgIH0sIDUwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0b1N0cmluZyh2YWx1ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHZhbCA9IHZhbHVlO1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgdmFsID0gJzAwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHZhbHVlIDwgMTApIHtcclxuICAgICAgICAgICAgdmFsID0gJzAnICsgdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2YWw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzVmlkZW8oYXVkaW9WaWRlb1dlYk1VUkwpOiB2b2lkIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhhdWRpb1ZpZGVvV2ViTVVSTCk7XHJcbiAgICAgICAgY29uc3QgcmVjb3JkZWRCbG9iID0gdGhpcy5yZWNvcmRlci5nZXRCbG9iKCk7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRlci5nZXREYXRhVVJMKGZ1bmN0aW9uIChfKSB7fSk7XHJcbiAgICAgICAgY29uc3QgcmVjb3JkZWROYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KCd2aWRlb18nICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyAnLndlYm0nKTtcclxuICAgICAgICB0aGlzLl9yZWNvcmRlZC5uZXh0KHsgYmxvYjogcmVjb3JkZWRCbG9iLCB1cmw6IGF1ZGlvVmlkZW9XZWJNVVJMLCB0aXRsZTogcmVjb3JkZWROYW1lIH0pO1xyXG4gICAgICAgIHRoaXMuc3RvcE1lZGlhKCk7XHJcbiAgICAgICAgLy8gdGhpcy5yZWNvcmRlci5zYXZlKHJlY29yZGVkTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdG9wTWVkaWEoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVjb3JkZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWNvcmRlciA9IG51bGw7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gbnVsbDtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RyZWFtKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmZvckVhY2goKHRyYWNrKSA9PiB0cmFjay5zdG9wKCkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5mb3JFYWNoKCh0cmFjaykgPT4gdHJhY2suc3RvcCgpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RyZWFtLnN0b3AoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RyZWFtID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,44 +0,0 @@
1
- export * from './lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component';
2
- export * from './lib/empty-page/empty-page.component';
3
- export * from './lib/redirect-report-navigator-command/redirect-report-navigator-command.component';
4
- export * from './lib/portal-page/portal-page.component';
5
- export * from './lib/portal-page/portal-sidebar.component';
6
- export * from './lib/not-found/not-found.component';
7
- export * from './lib/dynamic-component';
8
- export * from './lib/root-portal/root-portal.component';
9
- export * from './lib/abstract-classes/base.component';
10
- export * from './lib/directives';
11
- export * from './lib/pipes';
12
- export * from './lib/services';
13
- export * from './lib/resolvers';
14
- export * from './lib/date-services';
15
- export * from './lib/form-new/form-new.component';
16
- export * from './lib/report-container/report-container.component';
17
- export * from './lib/form/form.component';
18
- export * from './lib/field-ui/field-ui.component';
19
- export * from './lib/form-page-routing';
20
- export * from './lib/controllers';
21
- export * from './lib/modal-root.component';
22
- export * from './lib/login-enter-mobile/login-enter-mobile.component';
23
- export * from './lib/login-verification/login-verification.component';
24
- export * from './lib/button-loading/button-loading.component';
25
- export * from './lib/login2/login2.component';
26
- /*
27
- * Public API Surface of barsa-novin-ray-core
28
- */
29
- export * from './lib/injdection-tokens';
30
- export * from './lib/abstract-classes';
31
- export * from './lib/base-ulv-setting.component';
32
- export * from './lib/constants';
33
- export * from './lib/container.component';
34
- export * from './lib/from-intersection-observer';
35
- export * from './lib/custom-route-reuse-strategy';
36
- export * from './lib/auth-guard';
37
- export * from './lib/redirect-home-guard';
38
- export * from './lib/root-page/root-page.component';
39
- export * from './lib/base.module';
40
- export * from './lib/resizable-module/resizable.component';
41
- export * from './lib/resizable-module/resizable.directive';
42
- export * from './lib/resizable-module/resizable.module';
43
- export * from './lib/barsa-novin-ray-core.module';
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLHFGQUFxRixDQUFDO0FBQ3BHLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDOztHQUVHO0FBQ0gsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9lbXB0eS1wYWdlLXdpdGgtcm91dGVyLWFuZC1yb3V0ZXItb3V0bGV0L2VtcHR5LXBhZ2Utd2l0aC1yb3V0ZXItYW5kLXJvdXRlci1vdXRsZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VtcHR5LXBhZ2UvZW1wdHktcGFnZS5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWRpcmVjdC1yZXBvcnQtbmF2aWdhdG9yLWNvbW1hbmQvcmVkaXJlY3QtcmVwb3J0LW5hdmlnYXRvci1jb21tYW5kLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wb3J0YWwtcGFnZS9wb3J0YWwtcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcG9ydGFsLXBhZ2UvcG9ydGFsLXNpZGViYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25vdC1mb3VuZC9ub3QtZm91bmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2R5bmFtaWMtY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jvb3QtcG9ydGFsL3Jvb3QtcG9ydGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hYnN0cmFjdC1jbGFzc2VzL2Jhc2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGUtc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS1uZXcvZm9ybS1uZXcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlcG9ydC1jb250YWluZXIvcmVwb3J0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC11aS9maWVsZC11aS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS1wYWdlLXJvdXRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbGxlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kYWwtcm9vdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9naW4tZW50ZXItbW9iaWxlL2xvZ2luLWVudGVyLW1vYmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9naW4tdmVyaWZpY2F0aW9uL2xvZ2luLXZlcmlmaWNhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uLWxvYWRpbmcvYnV0dG9uLWxvYWRpbmcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvZ2luMi9sb2dpbjIuY29tcG9uZW50Jztcbi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYmFyc2Etbm92aW4tcmF5LWNvcmVcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5qZGVjdGlvbi10b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWJzdHJhY3QtY2xhc3Nlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLXVsdi1zZXR0aW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mcm9tLWludGVyc2VjdGlvbi1vYnNlcnZlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jdXN0b20tcm91dGUtcmV1c2Utc3RyYXRlZ3knO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aC1ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWRpcmVjdC1ob21lLWd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jvb3QtcGFnZS9yb290LXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc2l6YWJsZS1tb2R1bGUvcmVzaXphYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXNpemFibGUtbW9kdWxlL3Jlc2l6YWJsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzaXphYmxlLW1vZHVsZS9yZXNpemFibGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JhcnNhLW5vdmluLXJheS1jb3JlLm1vZHVsZSc7XG4iXX0=