@po-ui/ng-sync 15.15.0 → 16.0.0-next.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 (127) hide show
  1. package/README.md +3 -3
  2. package/{esm2020 → esm2022}/lib/index.mjs +14 -14
  3. package/{esm2020 → esm2022}/lib/models/index.mjs +5 -5
  4. package/{esm2020 → esm2022}/lib/models/po-data-message.model.mjs +56 -56
  5. package/esm2022/lib/models/po-data-transform.model.mjs +23 -0
  6. package/esm2022/lib/models/po-entity/po-entity.model.mjs +217 -0
  7. package/esm2022/lib/models/po-event-sourcing-error-response.model.mjs +21 -0
  8. package/esm2022/lib/models/po-network-status.model.mjs +45 -0
  9. package/{esm2020 → esm2022}/lib/models/po-network-type.enum.mjs +29 -29
  10. package/esm2022/lib/models/po-query-builder/po-query-builder.model.mjs +246 -0
  11. package/{esm2020 → esm2022}/lib/models/po-request-type.enum.mjs +15 -15
  12. package/{esm2020 → esm2022}/lib/po-sync.module.mjs +40 -40
  13. package/{esm2020 → esm2022}/lib/services/po-event-sourcing/enums/po-event-sourcing-operation.enum.mjs +16 -16
  14. package/{esm2020 → esm2022}/lib/services/po-event-sourcing/index.mjs +3 -3
  15. package/{esm2020 → esm2022}/lib/services/po-event-sourcing/interfaces/po-event-sourcing-item.interface.mjs +1 -1
  16. package/{esm2020 → esm2022}/lib/services/po-event-sourcing/interfaces/po-event-sourcing-summary-item.interface.mjs +1 -1
  17. package/esm2022/lib/services/po-event-sourcing/po-event-sourcing.service.mjs +379 -0
  18. package/{esm2020 → esm2022}/lib/services/po-http-client/interfaces/po-http-header-option.interface.mjs +10 -10
  19. package/{esm2020 → esm2022}/lib/services/po-http-client/interfaces/po-http-request-data.interface.mjs +1 -1
  20. package/{esm2020 → esm2022}/lib/services/po-http-client/interfaces/po-response-api.interface.mjs +1 -1
  21. package/esm2022/lib/services/po-http-client/po-http-client.service.mjs +149 -0
  22. package/{esm2020 → esm2022}/lib/services/po-http-client/po-http-request-type.enum.mjs +24 -24
  23. package/esm2022/lib/services/po-network/po-network.service.mjs +59 -0
  24. package/{esm2020 → esm2022}/lib/services/po-schema/index.mjs +3 -3
  25. package/esm2022/lib/services/po-schema/po-schema-definition/po-schema-definition.service.mjs +78 -0
  26. package/esm2022/lib/services/po-schema/po-schema-util/po-schema-util.model.mjs +124 -0
  27. package/esm2022/lib/services/po-schema/po-schema.service.mjs +176 -0
  28. package/{esm2020 → esm2022}/lib/services/po-sync/interfaces/po-sync-config.interface.mjs +1 -1
  29. package/{esm2020 → esm2022}/lib/services/po-sync/interfaces/po-sync-field-options.interface.mjs +1 -1
  30. package/{esm2020 → esm2022}/lib/services/po-sync/interfaces/po-sync-response.interface.mjs +1 -1
  31. package/{esm2020 → esm2022}/lib/services/po-sync/interfaces/po-sync-schema.interface.mjs +1 -1
  32. package/esm2022/lib/services/po-sync/po-sync.service.mjs +336 -0
  33. package/{esm2020 → esm2022}/lib/utils/utils.mjs +62 -62
  34. package/{esm2020 → esm2022}/po-ui-ng-sync.mjs +4 -4
  35. package/{esm2020 → esm2022}/public-api.mjs +1 -1
  36. package/{fesm2020 → fesm2022}/po-ui-ng-sync.mjs +2004 -1962
  37. package/{fesm2020 → fesm2022}/po-ui-ng-sync.mjs.map +1 -1
  38. package/index.d.ts +5 -5
  39. package/lib/index.d.ts +14 -14
  40. package/lib/models/index.d.ts +5 -5
  41. package/lib/models/po-data-message.model.d.ts +46 -46
  42. package/lib/models/po-data-transform.model.d.ts +52 -52
  43. package/lib/models/po-entity/po-entity.model.d.ts +122 -122
  44. package/lib/models/po-event-sourcing-error-response.model.d.ts +20 -20
  45. package/lib/models/po-network-status.model.d.ts +25 -25
  46. package/lib/models/po-network-type.enum.d.ts +28 -28
  47. package/lib/models/po-query-builder/po-query-builder.model.d.ts +126 -126
  48. package/lib/models/po-request-type.enum.d.ts +14 -14
  49. package/lib/po-sync.module.d.ts +11 -11
  50. package/lib/services/po-event-sourcing/enums/po-event-sourcing-operation.enum.d.ts +11 -11
  51. package/lib/services/po-event-sourcing/index.d.ts +3 -3
  52. package/lib/services/po-event-sourcing/interfaces/po-event-sourcing-item.interface.d.ts +26 -26
  53. package/lib/services/po-event-sourcing/interfaces/po-event-sourcing-summary-item.interface.d.ts +16 -16
  54. package/lib/services/po-event-sourcing/po-event-sourcing.service.d.ts +74 -74
  55. package/lib/services/po-http-client/interfaces/po-http-header-option.interface.d.ts +15 -15
  56. package/lib/services/po-http-client/interfaces/po-http-request-data.interface.d.ts +24 -24
  57. package/lib/services/po-http-client/interfaces/po-response-api.interface.d.ts +14 -14
  58. package/lib/services/po-http-client/po-http-client.service.d.ts +78 -78
  59. package/lib/services/po-http-client/po-http-request-type.enum.d.ts +23 -23
  60. package/lib/services/po-network/po-network.service.d.ts +35 -35
  61. package/lib/services/po-schema/index.d.ts +3 -3
  62. package/lib/services/po-schema/po-schema-definition/po-schema-definition.service.d.ts +51 -51
  63. package/lib/services/po-schema/po-schema-util/po-schema-util.model.d.ts +79 -79
  64. package/lib/services/po-schema/po-schema.service.d.ts +98 -98
  65. package/lib/services/po-sync/interfaces/po-sync-config.interface.d.ts +24 -24
  66. package/lib/services/po-sync/interfaces/po-sync-field-options.interface.d.ts +15 -15
  67. package/lib/services/po-sync/interfaces/po-sync-response.interface.d.ts +20 -20
  68. package/lib/services/po-sync/interfaces/po-sync-schema.interface.d.ts +37 -37
  69. package/lib/services/po-sync/po-sync.service.d.ts +162 -162
  70. package/lib/utils/utils.d.ts +36 -36
  71. package/package.json +10 -16
  72. package/po-ui-ng-sync-16.0.0-next.2.tgz +0 -0
  73. package/public-api.d.ts +1 -1
  74. package/schematics/migrations.json +1 -1
  75. package/schematics/ng-add/index.d.ts +7 -7
  76. package/schematics/ng-add/index.js +31 -31
  77. package/schematics/ng-add/index.spec.d.ts +1 -1
  78. package/schematics/ng-add/index.spec.js +60 -60
  79. package/schematics/ng-generate/schema/index.d.ts +4 -4
  80. package/schematics/ng-generate/schema/index.js +12 -12
  81. package/schematics/ng-generate/schema/index.spec.d.ts +1 -1
  82. package/schematics/ng-generate/schema/index.spec.js +44 -44
  83. package/schematics/ng-generate/schema/schema.d.ts +3 -3
  84. package/schematics/ng-generate/schema/schema.js +2 -2
  85. package/schematics/ng-update/v14/changes.d.ts +2 -2
  86. package/schematics/ng-update/v14/changes.js +13 -13
  87. package/schematics/ng-update/v14/index.d.ts +1 -1
  88. package/schematics/ng-update/v14/index.js +15 -15
  89. package/schematics/ng-update/v15/changes.d.ts +4 -4
  90. package/schematics/ng-update/v15/changes.js +15 -15
  91. package/schematics/ng-update/v15/index.d.ts +1 -1
  92. package/schematics/ng-update/v15/index.js +36 -36
  93. package/schematics/ng-update/v2/changes.d.ts +8 -8
  94. package/schematics/ng-update/v2/changes.js +20 -20
  95. package/schematics/ng-update/v2/index.d.ts +5 -5
  96. package/schematics/ng-update/v2/index.js +101 -101
  97. package/schematics/ng-update/v3/changes.d.ts +2 -2
  98. package/schematics/ng-update/v3/changes.js +14 -14
  99. package/schematics/ng-update/v3/index.d.ts +1 -1
  100. package/schematics/ng-update/v3/index.js +16 -16
  101. package/schematics/ng-update/v4/changes.d.ts +2 -2
  102. package/schematics/ng-update/v4/changes.js +14 -14
  103. package/schematics/ng-update/v4/index.d.ts +1 -1
  104. package/schematics/ng-update/v4/index.js +15 -15
  105. package/schematics/ng-update/v5/changes.d.ts +2 -2
  106. package/schematics/ng-update/v5/changes.js +13 -13
  107. package/schematics/ng-update/v5/index.d.ts +1 -1
  108. package/schematics/ng-update/v5/index.js +15 -15
  109. package/schematics/ng-update/v6/changes.d.ts +2 -2
  110. package/schematics/ng-update/v6/changes.js +13 -13
  111. package/schematics/ng-update/v6/index.d.ts +1 -1
  112. package/schematics/ng-update/v6/index.js +15 -15
  113. package/esm2020/lib/models/po-data-transform.model.mjs +0 -22
  114. package/esm2020/lib/models/po-entity/po-entity.model.mjs +0 -214
  115. package/esm2020/lib/models/po-event-sourcing-error-response.model.mjs +0 -17
  116. package/esm2020/lib/models/po-network-status.model.mjs +0 -44
  117. package/esm2020/lib/models/po-query-builder/po-query-builder.model.mjs +0 -238
  118. package/esm2020/lib/services/po-event-sourcing/po-event-sourcing.service.mjs +0 -372
  119. package/esm2020/lib/services/po-http-client/po-http-client.service.mjs +0 -148
  120. package/esm2020/lib/services/po-network/po-network.service.mjs +0 -56
  121. package/esm2020/lib/services/po-schema/po-schema-definition/po-schema-definition.service.mjs +0 -77
  122. package/esm2020/lib/services/po-schema/po-schema-util/po-schema-util.model.mjs +0 -124
  123. package/esm2020/lib/services/po-schema/po-schema.service.mjs +0 -174
  124. package/esm2020/lib/services/po-sync/po-sync.service.mjs +0 -325
  125. package/fesm2015/po-ui-ng-sync.mjs +0 -2113
  126. package/fesm2015/po-ui-ng-sync.mjs.map +0 -1
  127. package/po-ui-ng-sync-15.15.0.tgz +0 -0
@@ -0,0 +1,149 @@
1
+ import { HttpHeaders } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { PoHttpRequestType } from './po-http-request-type.enum';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ /**
7
+ * @docsPrivate
8
+ *
9
+ * @description
10
+ *
11
+ * Serviço para execução de requisições HTTP.
12
+ */
13
+ export class PoHttpClientService {
14
+ httpClient;
15
+ constructor(httpClient) {
16
+ this.httpClient = httpClient;
17
+ }
18
+ /**
19
+ * Constrói uma requisição HTTP personalizada.
20
+ *
21
+ * @param {PoHttpRequestData} poHttpOperationData Parâmetros para a construção
22
+ * da requisição.
23
+ */
24
+ createRequest(poHttpOperationData) {
25
+ const httpHeaders = this.createHttpHeaders(poHttpOperationData.headers);
26
+ return this.httpClient.request(poHttpOperationData.method, poHttpOperationData.url, {
27
+ observe: 'response',
28
+ headers: httpHeaders,
29
+ body: poHttpOperationData.body
30
+ });
31
+ }
32
+ /**
33
+ * Constrói uma requisição com o método `delete`.
34
+ *
35
+ * @param {string} url URL da requisição.
36
+ * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
37
+ */
38
+ delete(url, httpHeaders) {
39
+ const requestData = {
40
+ url: url,
41
+ method: PoHttpRequestType.DELETE,
42
+ headers: httpHeaders
43
+ };
44
+ return this.createRequest(requestData);
45
+ }
46
+ /**
47
+ * Constrói uma requisição com o método `get`.
48
+ *
49
+ * @param {string} url URL da requisição.
50
+ * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
51
+ */
52
+ get(url, httpHeaders) {
53
+ const requestData = {
54
+ url: url,
55
+ method: PoHttpRequestType.GET,
56
+ headers: httpHeaders
57
+ };
58
+ return this.createRequest(requestData);
59
+ }
60
+ /**
61
+ * Constrói uma requisição com o método `head`.
62
+ *
63
+ * @param {string} url URL da requisição.
64
+ * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
65
+ */
66
+ head(url, httpHeaders) {
67
+ const requestData = {
68
+ url: url,
69
+ method: PoHttpRequestType.HEAD,
70
+ headers: httpHeaders
71
+ };
72
+ return this.createRequest(requestData);
73
+ }
74
+ /**
75
+ * Constrói uma requisição com o método `options`.
76
+ *
77
+ * @param {string} url URL da requisição.
78
+ * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
79
+ */
80
+ options(url, httpHeaders) {
81
+ const requestData = {
82
+ url: url,
83
+ method: PoHttpRequestType.OPTIONS,
84
+ headers: httpHeaders
85
+ };
86
+ return this.createRequest(requestData);
87
+ }
88
+ /**
89
+ * Constrói uma requisição com o método `patch`.
90
+ *
91
+ * @param {string} url URL da requisição.
92
+ * @param {any} body Corpo da requisição.
93
+ * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
94
+ */
95
+ patch(url, body, httpHeaders) {
96
+ const requestData = {
97
+ url: url,
98
+ method: PoHttpRequestType.PATCH,
99
+ headers: httpHeaders,
100
+ body: body
101
+ };
102
+ return this.createRequest(requestData);
103
+ }
104
+ /**
105
+ * Constrói uma requisição com o método `post`.
106
+ *
107
+ * @param {string} url URL da requisição.
108
+ * @param {any} body Corpo da requisição.
109
+ * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
110
+ */
111
+ post(url, body, httpHeaders) {
112
+ const requestData = {
113
+ url: url,
114
+ method: PoHttpRequestType.POST,
115
+ headers: httpHeaders,
116
+ body: body
117
+ };
118
+ return this.createRequest(requestData);
119
+ }
120
+ /**
121
+ * Constrói uma requisição com o método `put`.
122
+ *
123
+ * @param {string} url URL da requisição.
124
+ * @param {any} body Corpo da requisição.
125
+ * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
126
+ */
127
+ put(url, body, httpHeaders) {
128
+ const requestData = {
129
+ url: url,
130
+ method: PoHttpRequestType.PUT,
131
+ headers: httpHeaders,
132
+ body: body
133
+ };
134
+ return this.createRequest(requestData);
135
+ }
136
+ createHttpHeaders(poHttpOperationHeaders) {
137
+ let httpHeaders = new HttpHeaders();
138
+ if (poHttpOperationHeaders && poHttpOperationHeaders.length > 0) {
139
+ poHttpOperationHeaders.forEach(poHttpHeader => (httpHeaders = httpHeaders.append(poHttpHeader.name, poHttpHeader.value)));
140
+ }
141
+ return httpHeaders;
142
+ }
143
+ static ɵfac = function PoHttpClientService_Factory(t) { return new (t || PoHttpClientService)(i0.ɵɵinject(i1.HttpClient)); };
144
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoHttpClientService, factory: PoHttpClientService.ɵfac });
145
+ }
146
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoHttpClientService, [{
147
+ type: Injectable
148
+ }], function () { return [{ type: i1.HttpClient }]; }, null); })();
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taHR0cC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9zZXJ2aWNlcy9wby1odHRwLWNsaWVudC9wby1odHRwLWNsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRWhFOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFDVjtJQUFwQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUU5Qzs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxtQkFBc0M7UUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEdBQUcsRUFBRTtZQUNsRixPQUFPLEVBQUUsVUFBVTtZQUNuQixPQUFPLEVBQUUsV0FBVztZQUNwQixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBVyxFQUFFLFdBQXVDO1FBQ3pELE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO1lBQ2hDLE9BQU8sRUFBRSxXQUFXO1NBQ3JCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsR0FBRyxDQUFDLEdBQVcsRUFBRSxXQUF1QztRQUN0RCxNQUFNLFdBQVcsR0FBc0I7WUFDckMsR0FBRyxFQUFFLEdBQUc7WUFDUixNQUFNLEVBQUUsaUJBQWlCLENBQUMsR0FBRztZQUM3QixPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxHQUFXLEVBQUUsV0FBdUM7UUFDdkQsTUFBTSxXQUFXLEdBQXNCO1lBQ3JDLEdBQUcsRUFBRSxHQUFHO1lBQ1IsTUFBTSxFQUFFLGlCQUFpQixDQUFDLElBQUk7WUFDOUIsT0FBTyxFQUFFLFdBQVc7U0FDckIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsR0FBVyxFQUFFLFdBQXVDO1FBQzFELE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPO1lBQ2pDLE9BQU8sRUFBRSxXQUFXO1NBQ3JCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxHQUFXLEVBQUUsSUFBVSxFQUFFLFdBQXVDO1FBQ3BFLE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO1lBQy9CLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLEdBQVcsRUFBRSxJQUFVLEVBQUUsV0FBdUM7UUFDbkUsTUFBTSxXQUFXLEdBQXNCO1lBQ3JDLEdBQUcsRUFBRSxHQUFHO1lBQ1IsTUFBTSxFQUFFLGlCQUFpQixDQUFDLElBQUk7WUFDOUIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQUMsR0FBVyxFQUFFLElBQVUsRUFBRSxXQUF1QztRQUNsRSxNQUFNLFdBQVcsR0FBc0I7WUFDckMsR0FBRyxFQUFFLEdBQUc7WUFDUixNQUFNLEVBQUUsaUJBQWlCLENBQUMsR0FBRztZQUM3QixPQUFPLEVBQUUsV0FBVztZQUNwQixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLHNCQUFzQjtRQUM5QyxJQUFJLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRXBDLElBQUksc0JBQXNCLElBQUksc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvRCxzQkFBc0IsQ0FBQyxPQUFPLENBQzVCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMxRixDQUFDO1NBQ0g7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzZFQTdJVSxtQkFBbUI7Z0VBQW5CLG1CQUFtQixXQUFuQixtQkFBbUI7O3VGQUFuQixtQkFBbUI7Y0FEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFBvSHR0cEhlYWRlck9wdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1odHRwLWhlYWRlci1vcHRpb24uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9IdHRwUmVxdWVzdERhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8taHR0cC1yZXF1ZXN0LWRhdGEuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9IdHRwUmVxdWVzdFR5cGUgfSBmcm9tICcuL3BvLWh0dHAtcmVxdWVzdC10eXBlLmVudW0nO1xyXG5cclxuLyoqXHJcbiAqIEBkb2NzUHJpdmF0ZVxyXG4gKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICpcclxuICogU2VydmnDp28gcGFyYSBleGVjdcOnw6NvIGRlIHJlcXVpc2nDp8O1ZXMgSFRUUC5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFBvSHR0cENsaWVudFNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gSFRUUCBwZXJzb25hbGl6YWRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtQb0h0dHBSZXF1ZXN0RGF0YX0gcG9IdHRwT3BlcmF0aW9uRGF0YSBQYXLDom1ldHJvcyBwYXJhIGEgY29uc3RydcOnw6NvXHJcbiAgICogZGEgcmVxdWlzacOnw6NvLlxyXG4gICAqL1xyXG4gIGNyZWF0ZVJlcXVlc3QocG9IdHRwT3BlcmF0aW9uRGF0YTogUG9IdHRwUmVxdWVzdERhdGEpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxPYmplY3Q+PiB7XHJcbiAgICBjb25zdCBodHRwSGVhZGVycyA9IHRoaXMuY3JlYXRlSHR0cEhlYWRlcnMocG9IdHRwT3BlcmF0aW9uRGF0YS5oZWFkZXJzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3QocG9IdHRwT3BlcmF0aW9uRGF0YS5tZXRob2QsIHBvSHR0cE9wZXJhdGlvbkRhdGEudXJsLCB7XHJcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXHJcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzLFxyXG4gICAgICBib2R5OiBwb0h0dHBPcGVyYXRpb25EYXRhLmJvZHlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gY29tIG8gbcOpdG9kbyBgZGVsZXRlYC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIGRhIHJlcXVpc2nDp8Ojby5cclxuICAgKiBAcGFyYW0ge0FycmF5PFBvSGVhZGVyT3B0aW9uPn0gaHR0cEhlYWRlcnMgQ2FiZcOnYWxob3MgZGEgcmVxdWlzacOnw6NvLlxyXG4gICAqL1xyXG4gIGRlbGV0ZSh1cmw6IHN0cmluZywgaHR0cEhlYWRlcnM/OiBBcnJheTxQb0h0dHBIZWFkZXJPcHRpb24+KSB7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICBtZXRob2Q6IFBvSHR0cFJlcXVlc3RUeXBlLkRFTEVURSxcclxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnNcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXF1ZXN0KHJlcXVlc3REYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIGNvbSBvIG3DqXRvZG8gYGdldGAuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXHJcbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cclxuICAgKi9cclxuICBnZXQodXJsOiBzdHJpbmcsIGh0dHBIZWFkZXJzPzogQXJyYXk8UG9IdHRwSGVhZGVyT3B0aW9uPikge1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0ge1xyXG4gICAgICB1cmw6IHVybCxcclxuICAgICAgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZS5HRVQsXHJcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHLDs2kgdW1hIHJlcXVpc2nDp8OjbyBjb20gbyBtw6l0b2RvIGBoZWFkYC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIGRhIHJlcXVpc2nDp8Ojby5cclxuICAgKiBAcGFyYW0ge0FycmF5PFBvSGVhZGVyT3B0aW9uPn0gaHR0cEhlYWRlcnMgQ2FiZcOnYWxob3MgZGEgcmVxdWlzacOnw6NvLlxyXG4gICAqL1xyXG4gIGhlYWQodXJsOiBzdHJpbmcsIGh0dHBIZWFkZXJzPzogQXJyYXk8UG9IdHRwSGVhZGVyT3B0aW9uPikge1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0ge1xyXG4gICAgICB1cmw6IHVybCxcclxuICAgICAgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZS5IRUFELFxyXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVyc1xyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlcXVlc3QocmVxdWVzdERhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gY29tIG8gbcOpdG9kbyBgb3B0aW9uc2AuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXHJcbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cclxuICAgKi9cclxuICBvcHRpb25zKHVybDogc3RyaW5nLCBodHRwSGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj4pIHtcclxuICAgIGNvbnN0IHJlcXVlc3REYXRhOiBQb0h0dHBSZXF1ZXN0RGF0YSA9IHtcclxuICAgICAgdXJsOiB1cmwsXHJcbiAgICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUuT1BUSU9OUyxcclxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnNcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXF1ZXN0KHJlcXVlc3REYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIGNvbSBvIG3DqXRvZG8gYHBhdGNoYC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIGRhIHJlcXVpc2nDp8Ojby5cclxuICAgKiBAcGFyYW0ge2FueX0gYm9keSBDb3JwbyBkYSByZXF1aXNpw6fDo28uXHJcbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cclxuICAgKi9cclxuICBwYXRjaCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgaHR0cEhlYWRlcnM/OiBBcnJheTxQb0h0dHBIZWFkZXJPcHRpb24+KSB7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICBtZXRob2Q6IFBvSHR0cFJlcXVlc3RUeXBlLlBBVENILFxyXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVycyxcclxuICAgICAgYm9keTogYm9keVxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlcXVlc3QocmVxdWVzdERhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gY29tIG8gbcOpdG9kbyBgcG9zdGAuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXHJcbiAgICogQHBhcmFtIHthbnl9IGJvZHkgQ29ycG8gZGEgcmVxdWlzacOnw6NvLlxyXG4gICAqIEBwYXJhbSB7QXJyYXk8UG9IZWFkZXJPcHRpb24+fSBodHRwSGVhZGVycyBDYWJlw6dhbGhvcyBkYSByZXF1aXNpw6fDo28uXHJcbiAgICovXHJcbiAgcG9zdCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgaHR0cEhlYWRlcnM/OiBBcnJheTxQb0h0dHBIZWFkZXJPcHRpb24+KSB7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICBtZXRob2Q6IFBvSHR0cFJlcXVlc3RUeXBlLlBPU1QsXHJcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzLFxyXG4gICAgICBib2R5OiBib2R5XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHLDs2kgdW1hIHJlcXVpc2nDp8OjbyBjb20gbyBtw6l0b2RvIGBwdXRgLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCBVUkwgZGEgcmVxdWlzacOnw6NvLlxyXG4gICAqIEBwYXJhbSB7YW55fSBib2R5IENvcnBvIGRhIHJlcXVpc2nDp8Ojby5cclxuICAgKiBAcGFyYW0ge0FycmF5PFBvSGVhZGVyT3B0aW9uPn0gaHR0cEhlYWRlcnMgQ2FiZcOnYWxob3MgZGEgcmVxdWlzacOnw6NvLlxyXG4gICAqL1xyXG4gIHB1dCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgaHR0cEhlYWRlcnM/OiBBcnJheTxQb0h0dHBIZWFkZXJPcHRpb24+KSB7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICBtZXRob2Q6IFBvSHR0cFJlcXVlc3RUeXBlLlBVVCxcclxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnMsXHJcbiAgICAgIGJvZHk6IGJvZHlcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUh0dHBIZWFkZXJzKHBvSHR0cE9wZXJhdGlvbkhlYWRlcnMpIHtcclxuICAgIGxldCBodHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG5cclxuICAgIGlmIChwb0h0dHBPcGVyYXRpb25IZWFkZXJzICYmIHBvSHR0cE9wZXJhdGlvbkhlYWRlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwb0h0dHBPcGVyYXRpb25IZWFkZXJzLmZvckVhY2goXHJcbiAgICAgICAgcG9IdHRwSGVhZGVyID0+IChodHRwSGVhZGVycyA9IGh0dHBIZWFkZXJzLmFwcGVuZChwb0h0dHBIZWFkZXIubmFtZSwgcG9IdHRwSGVhZGVyLnZhbHVlKSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaHR0cEhlYWRlcnM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,25 +1,25 @@
1
- /**
2
- * @usedBy PoHttpClientService, PoHttpCommandResponse, PoSyncService
3
- *
4
- * @description
5
- *
6
- * Define o método de requisição HTTP.
7
- */
8
- export var PoHttpRequestType;
9
- (function (PoHttpRequestType) {
10
- /** Método `delete` do protocolo HTTP. */
11
- PoHttpRequestType["DELETE"] = "DELETE";
12
- /** Método `get` do protocolo HTTP. */
13
- PoHttpRequestType["GET"] = "GET";
14
- /** Método `head` do protocolo HTTP. */
15
- PoHttpRequestType["HEAD"] = "HEAD";
16
- /** Método `options` do protocolo HTTP. */
17
- PoHttpRequestType["OPTIONS"] = "OPTIONS";
18
- /** Método `patch` do protocolo HTTP. */
19
- PoHttpRequestType["PATCH"] = "PATCH";
20
- /** Método `post` do protocolo HTTP. */
21
- PoHttpRequestType["POST"] = "POST";
22
- /** Método `put` do protocolo HTTP. */
23
- PoHttpRequestType["PUT"] = "PUT";
24
- })(PoHttpRequestType || (PoHttpRequestType = {}));
1
+ /**
2
+ * @usedBy PoHttpClientService, PoHttpCommandResponse, PoSyncService
3
+ *
4
+ * @description
5
+ *
6
+ * Define o método de requisição HTTP.
7
+ */
8
+ export var PoHttpRequestType;
9
+ (function (PoHttpRequestType) {
10
+ /** Método `delete` do protocolo HTTP. */
11
+ PoHttpRequestType["DELETE"] = "DELETE";
12
+ /** Método `get` do protocolo HTTP. */
13
+ PoHttpRequestType["GET"] = "GET";
14
+ /** Método `head` do protocolo HTTP. */
15
+ PoHttpRequestType["HEAD"] = "HEAD";
16
+ /** Método `options` do protocolo HTTP. */
17
+ PoHttpRequestType["OPTIONS"] = "OPTIONS";
18
+ /** Método `patch` do protocolo HTTP. */
19
+ PoHttpRequestType["PATCH"] = "PATCH";
20
+ /** Método `post` do protocolo HTTP. */
21
+ PoHttpRequestType["POST"] = "POST";
22
+ /** Método `put` do protocolo HTTP. */
23
+ PoHttpRequestType["PUT"] = "PUT";
24
+ })(PoHttpRequestType || (PoHttpRequestType = {}));
25
25
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taHR0cC1yZXF1ZXN0LXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9zZXJ2aWNlcy9wby1odHRwLWNsaWVudC9wby1odHRwLXJlcXVlc3QtdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBTixJQUFZLGlCQXFCWDtBQXJCRCxXQUFZLGlCQUFpQjtJQUMzQix5Q0FBeUM7SUFDekMsc0NBQWlCLENBQUE7SUFFakIsc0NBQXNDO0lBQ3RDLGdDQUFXLENBQUE7SUFFWCx1Q0FBdUM7SUFDdkMsa0NBQWEsQ0FBQTtJQUViLDBDQUEwQztJQUMxQyx3Q0FBbUIsQ0FBQTtJQUVuQix3Q0FBd0M7SUFDeEMsb0NBQWUsQ0FBQTtJQUVmLHVDQUF1QztJQUN2QyxrQ0FBYSxDQUFBO0lBRWIsc0NBQXNDO0lBQ3RDLGdDQUFXLENBQUE7QUFDYixDQUFDLEVBckJXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFxQjVCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEB1c2VkQnkgUG9IdHRwQ2xpZW50U2VydmljZSwgUG9IdHRwQ29tbWFuZFJlc3BvbnNlLCBQb1N5bmNTZXJ2aWNlXHJcbiAqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBEZWZpbmUgbyBtw6l0b2RvIGRlIHJlcXVpc2nDp8OjbyBIVFRQLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gUG9IdHRwUmVxdWVzdFR5cGUge1xyXG4gIC8qKiBNw6l0b2RvIGBkZWxldGVgIGRvIHByb3RvY29sbyBIVFRQLiAqL1xyXG4gIERFTEVURSA9ICdERUxFVEUnLFxyXG5cclxuICAvKiogTcOpdG9kbyBgZ2V0YCBkbyBwcm90b2NvbG8gSFRUUC4gKi9cclxuICBHRVQgPSAnR0VUJyxcclxuXHJcbiAgLyoqIE3DqXRvZG8gYGhlYWRgIGRvIHByb3RvY29sbyBIVFRQLiAqL1xyXG4gIEhFQUQgPSAnSEVBRCcsXHJcblxyXG4gIC8qKiBNw6l0b2RvIGBvcHRpb25zYCBkbyBwcm90b2NvbG8gSFRUUC4gKi9cclxuICBPUFRJT05TID0gJ09QVElPTlMnLFxyXG5cclxuICAvKiogTcOpdG9kbyBgcGF0Y2hgIGRvIHByb3RvY29sbyBIVFRQLiAqL1xyXG4gIFBBVENIID0gJ1BBVENIJyxcclxuXHJcbiAgLyoqIE3DqXRvZG8gYHBvc3RgIGRvIHByb3RvY29sbyBIVFRQLiAqL1xyXG4gIFBPU1QgPSAnUE9TVCcsXHJcblxyXG4gIC8qKiBNw6l0b2RvIGBwdXRgIGRvIHByb3RvY29sbyBIVFRQLiAqL1xyXG4gIFBVVCA9ICdQVVQnXHJcbn1cclxuIl19
@@ -0,0 +1,59 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { Network } from '@capacitor/network';
4
+ import { PoNetworkStatus } from './../../models';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * @description
8
+ *
9
+ * O `PoNetworkService` é utilizado para verificar o status e o tipo da conexão de rede do dispositivo.
10
+ */
11
+ export class PoNetworkService {
12
+ networkType;
13
+ networkTypeNow;
14
+ poNetworkStatus;
15
+ constructor() {
16
+ this.initNetwork();
17
+ }
18
+ /**
19
+ * Retorna as propriedades tipo e status da conexão do dispositivo no momento da chamada.
20
+ *
21
+ * @returns {PoNetworkStatus} Instância de [PoNetworkStatus](/documentation/po-network-status) com as
22
+ * propriedades da conexão.
23
+ */
24
+ getConnectionStatus() {
25
+ this.poNetworkStatus = new PoNetworkStatus(this.networkType);
26
+ return this.poNetworkStatus;
27
+ }
28
+ /**
29
+ * Notifica as mudanças no tipo de conexão de rede do dispositivo.
30
+ *
31
+ * @returns {Observable<{ status: boolean, type: string }>} Observable com as propriedades da conexão.
32
+ */
33
+ onChange() {
34
+ return this.networkTypeNow.asObservable();
35
+ }
36
+ initNetwork() {
37
+ this.networkTypeNow = new Subject();
38
+ this.initSubscriber();
39
+ }
40
+ async getStatus() {
41
+ return await Network.getStatus();
42
+ }
43
+ async initSubscriber() {
44
+ const networkStatus = await this.getStatus();
45
+ this.networkType = networkStatus.connected ? networkStatus.connectionType : 'none';
46
+ this.networkTypeNow.next({ status: networkStatus.connected, type: this.networkType });
47
+ /* istanbul ignore next */
48
+ Network.addListener('networkStatusChange', status => {
49
+ this.networkType = status.connected ? status.connectionType : 'none';
50
+ this.networkTypeNow.next({ status: status.connected, type: this.networkType });
51
+ });
52
+ }
53
+ static ɵfac = function PoNetworkService_Factory(t) { return new (t || PoNetworkService)(); };
54
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoNetworkService, factory: PoNetworkService.ɵfac });
55
+ }
56
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoNetworkService, [{
57
+ type: Injectable
58
+ }], function () { return []; }, null); })();
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3luYy9zcmMvbGliL3NlcnZpY2VzL3BvLW5ldHdvcmsvcG8tbmV0d29yay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFnQyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFakQ7Ozs7R0FJRztBQUdILE1BQU0sT0FBTyxnQkFBZ0I7SUFDbkIsV0FBVyxDQUFTO0lBQ3BCLGNBQWMsQ0FBNkM7SUFDM0QsZUFBZSxDQUFrQjtJQUV6QztRQUNFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxLQUFLLENBQUMsU0FBUztRQUNyQixPQUFPLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYztRQUMxQixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNuRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUV0RiwwQkFBMEI7UUFDMUIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNyRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7MEVBaERVLGdCQUFnQjtnRUFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQjs7dUZBQWhCLGdCQUFnQjtjQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXBUbyB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICdAY2FwYWNpdG9yL25ldHdvcmsnO1xyXG5cclxuaW1wb3J0IHsgUG9OZXR3b3JrU3RhdHVzIH0gZnJvbSAnLi8uLi8uLi9tb2RlbHMnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBPIGBQb05ldHdvcmtTZXJ2aWNlYCDDqSB1dGlsaXphZG8gcGFyYSB2ZXJpZmljYXIgbyBzdGF0dXMgZSBvIHRpcG8gZGEgY29uZXjDo28gZGUgcmVkZSBkbyBkaXNwb3NpdGl2by5cclxuICovXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQb05ldHdvcmtTZXJ2aWNlIHtcclxuICBwcml2YXRlIG5ldHdvcmtUeXBlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBuZXR3b3JrVHlwZU5vdzogU3ViamVjdDx7IHN0YXR1czogYm9vbGVhbjsgdHlwZTogc3RyaW5nIH0+O1xyXG4gIHByaXZhdGUgcG9OZXR3b3JrU3RhdHVzOiBQb05ldHdvcmtTdGF0dXM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5pbml0TmV0d29yaygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0b3JuYSBhcyBwcm9wcmllZGFkZXMgdGlwbyBlIHN0YXR1cyBkYSBjb25leMOjbyBkbyBkaXNwb3NpdGl2byBubyBtb21lbnRvIGRhIGNoYW1hZGEuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7UG9OZXR3b3JrU3RhdHVzfSBJbnN0w6JuY2lhIGRlIFtQb05ldHdvcmtTdGF0dXNdKC9kb2N1bWVudGF0aW9uL3BvLW5ldHdvcmstc3RhdHVzKSBjb20gYXNcclxuICAgKiBwcm9wcmllZGFkZXMgZGEgY29uZXjDo28uXHJcbiAgICovXHJcbiAgZ2V0Q29ubmVjdGlvblN0YXR1cygpOiBQb05ldHdvcmtTdGF0dXMge1xyXG4gICAgdGhpcy5wb05ldHdvcmtTdGF0dXMgPSBuZXcgUG9OZXR3b3JrU3RhdHVzKHRoaXMubmV0d29ya1R5cGUpO1xyXG4gICAgcmV0dXJuIHRoaXMucG9OZXR3b3JrU3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTm90aWZpY2EgYXMgbXVkYW7Dp2FzIG5vIHRpcG8gZGUgY29uZXjDo28gZGUgcmVkZSBkbyBkaXNwb3NpdGl2by5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPHsgc3RhdHVzOiBib29sZWFuLCB0eXBlOiBzdHJpbmcgfT59IE9ic2VydmFibGUgY29tIGFzIHByb3ByaWVkYWRlcyBkYSBjb25leMOjby5cclxuICAgKi9cclxuICBvbkNoYW5nZSgpOiBPYnNlcnZhYmxlPHsgc3RhdHVzOiBib29sZWFuOyB0eXBlOiBzdHJpbmcgfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubmV0d29ya1R5cGVOb3cuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXROZXR3b3JrKCkge1xyXG4gICAgdGhpcy5uZXR3b3JrVHlwZU5vdyA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICB0aGlzLmluaXRTdWJzY3JpYmVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGdldFN0YXR1cygpIHtcclxuICAgIHJldHVybiBhd2FpdCBOZXR3b3JrLmdldFN0YXR1cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBpbml0U3Vic2NyaWJlcigpIHtcclxuICAgIGNvbnN0IG5ldHdvcmtTdGF0dXMgPSBhd2FpdCB0aGlzLmdldFN0YXR1cygpO1xyXG4gICAgdGhpcy5uZXR3b3JrVHlwZSA9IG5ldHdvcmtTdGF0dXMuY29ubmVjdGVkID8gbmV0d29ya1N0YXR1cy5jb25uZWN0aW9uVHlwZSA6ICdub25lJztcclxuICAgIHRoaXMubmV0d29ya1R5cGVOb3cubmV4dCh7IHN0YXR1czogbmV0d29ya1N0YXR1cy5jb25uZWN0ZWQsIHR5cGU6IHRoaXMubmV0d29ya1R5cGUgfSk7XHJcblxyXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cclxuICAgIE5ldHdvcmsuYWRkTGlzdGVuZXIoJ25ldHdvcmtTdGF0dXNDaGFuZ2UnLCBzdGF0dXMgPT4ge1xyXG4gICAgICB0aGlzLm5ldHdvcmtUeXBlID0gc3RhdHVzLmNvbm5lY3RlZCA/IHN0YXR1cy5jb25uZWN0aW9uVHlwZSA6ICdub25lJztcclxuICAgICAgdGhpcy5uZXR3b3JrVHlwZU5vdy5uZXh0KHsgc3RhdHVzOiBzdGF0dXMuY29ubmVjdGVkLCB0eXBlOiB0aGlzLm5ldHdvcmtUeXBlIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- export * from './po-schema-definition/po-schema-definition.service';
2
- export * from './po-schema.service';
3
- export * from './po-schema-util/po-schema-util.model';
1
+ export * from './po-schema-definition/po-schema-definition.service';
2
+ export * from './po-schema.service';
3
+ export * from './po-schema-util/po-schema-util.model';
4
4
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeW5jL3NyYy9saWIvc2VydmljZXMvcG8tc2NoZW1hL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wby1zY2hlbWEtZGVmaW5pdGlvbi9wby1zY2hlbWEtZGVmaW5pdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wby1zY2hlbWEuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcG8tc2NoZW1hLXV0aWwvcG8tc2NoZW1hLXV0aWwubW9kZWwnO1xyXG4iXX0=
@@ -0,0 +1,78 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { PoSchemaUtil } from './../po-schema-util/po-schema-util.model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@po-ui/ng-storage";
5
+ /**
6
+ * @docsPrivate
7
+ *
8
+ * @description
9
+ *
10
+ * Serviço que disponibiliza métodos que permite operar sobre as definições dos *schemas*.
11
+ */
12
+ export class PoSchemaDefinitionService {
13
+ poStorage;
14
+ constructor(poStorage) {
15
+ this.poStorage = poStorage;
16
+ }
17
+ /**
18
+ * Destrói a chave do *storage* que contém as definições dos *schemas*.
19
+ *
20
+ * > Para que não venham ocorrer erros em ações que dependam das definições dos *schemas*,
21
+ * recomenda-se utilizar o método `prepare()` em seguida.
22
+ *
23
+ * @returns {Promise<void>} Promessa que é resolvida quando a chave referente as definições dos *schemas* for destruída.
24
+ */
25
+ destroy() {
26
+ return this.poStorage.remove(PoSchemaUtil.syncSchemasName);
27
+ }
28
+ /**
29
+ * Busca um *schema* a partir do nome informado.
30
+ *
31
+ * @param {string} schemaName Nome do *schema*.
32
+ * @returns {Promise<PoSyncSchema>} Promessa que é resolvida quando o *schema* for retornado.
33
+ */
34
+ get(schemaName) {
35
+ return this.poStorage.getItemByField(PoSchemaUtil.syncSchemasName, 'name', schemaName);
36
+ }
37
+ /**
38
+ * Retorna uma promessa com a lista dos *schemas* definidos.
39
+ *
40
+ * @returns {Promise<Array<PoSyncSchema>>} Promessa que é resolvida quando a lista dos *schemas* definidos for retornada.
41
+ */
42
+ getAll() {
43
+ return this.poStorage.get(PoSchemaUtil.syncSchemasName);
44
+ }
45
+ /**
46
+ * Salva uma lista de *schemas*.
47
+ *
48
+ * @param {Array<PoSyncSchema>} schemas Lista de schemas que serão salvos.
49
+ * @returns {Promise<Array<PoSyncSchema>>} Promessa que é resolvida quando a lista de *schemas* for salva.
50
+ */
51
+ saveAll(schemas) {
52
+ return this.poStorage.set(PoSchemaUtil.syncSchemasName, schemas);
53
+ }
54
+ /**
55
+ * Atualiza um *schema* a partir do *schema name*.
56
+ *
57
+ * @param {PoSyncSchema} updatedSchema **Schema* que será atualizado.
58
+ */
59
+ async update(updatedSchema) {
60
+ let schemas = await this.getAll();
61
+ const replaceUpdatedSchema = schema => {
62
+ if (schema.name === updatedSchema.name) {
63
+ return updatedSchema;
64
+ }
65
+ else {
66
+ return schema;
67
+ }
68
+ };
69
+ schemas = schemas.map(replaceUpdatedSchema);
70
+ return this.saveAll(schemas);
71
+ }
72
+ static ɵfac = function PoSchemaDefinitionService_Factory(t) { return new (t || PoSchemaDefinitionService)(i0.ɵɵinject(i1.PoStorageService)); };
73
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoSchemaDefinitionService, factory: PoSchemaDefinitionService.ɵfac });
74
+ }
75
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoSchemaDefinitionService, [{
76
+ type: Injectable
77
+ }], function () { return [{ type: i1.PoStorageService }]; }, null); })();
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2NoZW1hLWRlZmluaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9zZXJ2aWNlcy9wby1zY2hlbWEvcG8tc2NoZW1hLWRlZmluaXRpb24vcG8tc2NoZW1hLWRlZmluaXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7O0FBR3hFOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFDaEI7SUFBcEIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRW5EOzs7Ozs7O09BT0c7SUFDSCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsR0FBRyxDQUFDLFVBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLE9BQTRCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBMkI7UUFDdEMsSUFBSSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFbEMsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsRUFBRTtZQUNwQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLElBQUksRUFBRTtnQkFDdEMsT0FBTyxhQUFhLENBQUM7YUFDdEI7aUJBQU07Z0JBQ0wsT0FBTyxNQUFNLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQztRQUVGLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7bUZBOURVLHlCQUF5QjtnRUFBekIseUJBQXlCLFdBQXpCLHlCQUF5Qjs7dUZBQXpCLHlCQUF5QjtjQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgUG9TdG9yYWdlU2VydmljZSB9IGZyb20gJ0Bwby11aS9uZy1zdG9yYWdlJztcclxuXHJcbmltcG9ydCB7IFBvU2NoZW1hVXRpbCB9IGZyb20gJy4vLi4vcG8tc2NoZW1hLXV0aWwvcG8tc2NoZW1hLXV0aWwubW9kZWwnO1xyXG5pbXBvcnQgeyBQb1N5bmNTY2hlbWEgfSBmcm9tICcuLy4uLy4uL3BvLXN5bmMvaW50ZXJmYWNlcy9wby1zeW5jLXNjaGVtYS5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIEBkb2NzUHJpdmF0ZVxyXG4gKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICpcclxuICogU2VydmnDp28gcXVlIGRpc3BvbmliaWxpemEgbcOpdG9kb3MgcXVlIHBlcm1pdGUgb3BlcmFyIHNvYnJlIGFzIGRlZmluacOnw7VlcyBkb3MgKnNjaGVtYXMqLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUG9TY2hlbWFEZWZpbml0aW9uU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb1N0b3JhZ2U6IFBvU3RvcmFnZVNlcnZpY2UpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc3Ryw7NpIGEgY2hhdmUgZG8gKnN0b3JhZ2UqIHF1ZSBjb250w6ltIGFzIGRlZmluacOnw7VlcyBkb3MgKnNjaGVtYXMqLlxyXG4gICAqXHJcbiAgICogPiBQYXJhIHF1ZSBuw6NvIHZlbmhhbSBvY29ycmVyIGVycm9zIGVtIGHDp8O1ZXMgcXVlIGRlcGVuZGFtIGRhcyBkZWZpbmnDp8O1ZXMgZG9zICpzY2hlbWFzKixcclxuICAgKiByZWNvbWVuZGEtc2UgdXRpbGl6YXIgbyBtw6l0b2RvIGBwcmVwYXJlKClgIGVtIHNlZ3VpZGEuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUHJvbWVzc2EgcXVlIMOpIHJlc29sdmlkYSBxdWFuZG8gYSBjaGF2ZSByZWZlcmVudGUgYXMgZGVmaW5pw6fDtWVzIGRvcyAqc2NoZW1hcyogZm9yIGRlc3RydcOtZGEuXHJcbiAgICovXHJcbiAgZGVzdHJveSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLnBvU3RvcmFnZS5yZW1vdmUoUG9TY2hlbWFVdGlsLnN5bmNTY2hlbWFzTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdXNjYSB1bSAqc2NoZW1hKiBhIHBhcnRpciBkbyBub21lIGluZm9ybWFkby5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY2hlbWFOYW1lIE5vbWUgZG8gKnNjaGVtYSouXHJcbiAgICogQHJldHVybnMge1Byb21pc2U8UG9TeW5jU2NoZW1hPn0gUHJvbWVzc2EgcXVlIMOpIHJlc29sdmlkYSBxdWFuZG8gbyAqc2NoZW1hKiBmb3IgcmV0b3JuYWRvLlxyXG4gICAqL1xyXG4gIGdldChzY2hlbWFOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFBvU3luY1NjaGVtYT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucG9TdG9yYWdlLmdldEl0ZW1CeUZpZWxkKFBvU2NoZW1hVXRpbC5zeW5jU2NoZW1hc05hbWUsICduYW1lJywgc2NoZW1hTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRvcm5hIHVtYSBwcm9tZXNzYSBjb20gYSBsaXN0YSBkb3MgKnNjaGVtYXMqIGRlZmluaWRvcy5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PFBvU3luY1NjaGVtYT4+fSBQcm9tZXNzYSBxdWUgw6kgcmVzb2x2aWRhIHF1YW5kbyBhIGxpc3RhIGRvcyAqc2NoZW1hcyogZGVmaW5pZG9zIGZvciByZXRvcm5hZGEuXHJcbiAgICovXHJcbiAgZ2V0QWxsKCk6IFByb21pc2U8QXJyYXk8UG9TeW5jU2NoZW1hPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMucG9TdG9yYWdlLmdldChQb1NjaGVtYVV0aWwuc3luY1NjaGVtYXNOYW1lKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhbHZhIHVtYSBsaXN0YSBkZSAqc2NoZW1hcyouXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0FycmF5PFBvU3luY1NjaGVtYT59IHNjaGVtYXMgTGlzdGEgZGUgc2NoZW1hcyBxdWUgc2Vyw6NvIHNhbHZvcy5cclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxQb1N5bmNTY2hlbWE+Pn0gUHJvbWVzc2EgcXVlIMOpIHJlc29sdmlkYSBxdWFuZG8gYSBsaXN0YSBkZSAqc2NoZW1hcyogZm9yIHNhbHZhLlxyXG4gICAqL1xyXG4gIHNhdmVBbGwoc2NoZW1hczogQXJyYXk8UG9TeW5jU2NoZW1hPik6IFByb21pc2U8QXJyYXk8UG9TeW5jU2NoZW1hPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMucG9TdG9yYWdlLnNldChQb1NjaGVtYVV0aWwuc3luY1NjaGVtYXNOYW1lLCBzY2hlbWFzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF0dWFsaXphIHVtICpzY2hlbWEqIGEgcGFydGlyIGRvICpzY2hlbWEgbmFtZSouXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1BvU3luY1NjaGVtYX0gdXBkYXRlZFNjaGVtYSAqKlNjaGVtYSogcXVlIHNlcsOhIGF0dWFsaXphZG8uXHJcbiAgICovXHJcbiAgYXN5bmMgdXBkYXRlKHVwZGF0ZWRTY2hlbWE6IFBvU3luY1NjaGVtYSkge1xyXG4gICAgbGV0IHNjaGVtYXMgPSBhd2FpdCB0aGlzLmdldEFsbCgpO1xyXG5cclxuICAgIGNvbnN0IHJlcGxhY2VVcGRhdGVkU2NoZW1hID0gc2NoZW1hID0+IHtcclxuICAgICAgaWYgKHNjaGVtYS5uYW1lID09PSB1cGRhdGVkU2NoZW1hLm5hbWUpIHtcclxuICAgICAgICByZXR1cm4gdXBkYXRlZFNjaGVtYTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gc2NoZW1hO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHNjaGVtYXMgPSBzY2hlbWFzLm1hcChyZXBsYWNlVXBkYXRlZFNjaGVtYSk7XHJcbiAgICByZXR1cm4gdGhpcy5zYXZlQWxsKHNjaGVtYXMpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @docsPrivate
3
+ *
4
+ * @description
5
+ *
6
+ * Serviço utilitário para operações no PoSyncSchema.
7
+ */
8
+ export class PoSchemaUtil {
9
+ /** Valor `default` para o campo `lastSync`. */
10
+ static defaultLastSync = new Date(-8640000000000000).toISOString();
11
+ /** Nome da chave do identificador interno do sync. */
12
+ static syncInternalIdFieldName = 'SyncInternalId';
13
+ /** Nome da chave no `storage` para os Schemas. */
14
+ static syncSchemasName = 'SyncSchemas';
15
+ /**
16
+ * Verica se existem campos locais no *schema* informado.
17
+ *
18
+ * @param {PoSyncSchema} schema **Schema* a ser processado.
19
+ *
20
+ * @returns {boolean} Valor do tipo *boolean* que indica se existem campos locais no *schema* informado.
21
+ */
22
+ static containsLocalFields(schema) {
23
+ if (schema.fields) {
24
+ return !!schema.fields.find(field => typeof field === 'object' && field.local);
25
+ }
26
+ }
27
+ /**
28
+ * Retorna o valor atual do `lastSync` para determinado *schema*.
29
+ *
30
+ * @param {Array<PoSyncSchema>} storageSchemas Lista de *schemas* a serem pesquisados.
31
+ * @param {string} schemaName Nome do *schema* que se deseja ler o lastSync.
32
+ *
33
+ * @returns {string} Retorna uma *string* com o valor da última sincronização.
34
+ */
35
+ static getLastSync(storageSchemas, schemaName) {
36
+ if (storageSchemas) {
37
+ const schemaFound = storageSchemas.find(schema => schema.name === schemaName);
38
+ return schemaFound && schemaFound.lastSync ? schemaFound.lastSync : PoSchemaUtil.defaultLastSync;
39
+ }
40
+ return PoSchemaUtil.defaultLastSync;
41
+ }
42
+ /**
43
+ * Retorna a lista de campos locais definidos no *schema*.
44
+ *
45
+ * @param {PoSyncSchema} schema **Schema* a ser processado.
46
+ */
47
+ static getLocalFieldNames(schema) {
48
+ if (schema.fields) {
49
+ return schema.fields.reduce((fieldsAccumulator, currentField) => {
50
+ if (typeof currentField === 'object' && currentField.local) {
51
+ fieldsAccumulator.push(currentField.name);
52
+ }
53
+ return fieldsAccumulator;
54
+ }, []);
55
+ }
56
+ }
57
+ /**
58
+ * Retorna a lista de campos não locais definidos no *schema*.
59
+ *
60
+ * @param {PoSyncSchema} schema **Schema* a ser processado.
61
+ */
62
+ static getNonLocalFieldNames(schema) {
63
+ if (schema.fields) {
64
+ return schema.fields.reduce((fieldsAccumulator, currentField) => {
65
+ if (typeof currentField === 'string' || !currentField.local) {
66
+ fieldsAccumulator.push(typeof currentField === 'string' ? currentField : currentField.name);
67
+ }
68
+ return fieldsAccumulator;
69
+ }, []);
70
+ }
71
+ }
72
+ /**
73
+ * Retorna o `id` referente ao registro do *schema* informado.
74
+ *
75
+ * @param {object} record Registro que será buscado o id.
76
+ * @param {PoSyncSchema} schema **Schema* a ser processado.
77
+ */
78
+ static getRecordId(record, schema) {
79
+ return record[schema.idField] || record[PoSchemaUtil.syncInternalIdFieldName];
80
+ }
81
+ /**
82
+ * Retorna a url correspondente do `PoSyncSchema` dependendo do tipo da requisição `PoRequestType`.
83
+ *
84
+ * @param {PoSyncSchema} schema **Schema* a ser processado.
85
+ * @param {PoRequestType} requestType Tipo da requisição.
86
+ */
87
+ static getUrl(schema, requestType) {
88
+ return schema[`${requestType}UrlApi`];
89
+ }
90
+ /**
91
+ * Compara se dois objetos são iguais baseado na lista de campos.
92
+ *
93
+ * @param {Array<string>} fields Lista de campos a serem considerados na comparação.
94
+ * @param {any} model1 Objeto 1 a ser comparado.
95
+ * @param {any} model2 Objeto 2 a ser comparado.
96
+ */
97
+ static isModelsEqual(fields, model1, model2) {
98
+ if (fields) {
99
+ return fields.every(field => JSON.stringify(model1[field]) === JSON.stringify(model2[field]));
100
+ }
101
+ }
102
+ /**
103
+ * Retorna uma lista com dois objetos referentes ao registro informado.
104
+ * O primeiro é o registro com os campos que vão para o servidor e o segundo é com os campos locais.
105
+ *
106
+ * @param {PoSyncSchema} schema **Schema* do registro.
107
+ * @param {object} record Registro que será realizada a separação dos campos locais e do servidor.
108
+ */
109
+ static separateSchemaFields(schema, record) {
110
+ const localFields = PoSchemaUtil.getLocalFieldNames(schema);
111
+ const localRecord = {};
112
+ const serverRecord = {};
113
+ Object.keys(record).forEach(field => {
114
+ if (localFields.includes(field)) {
115
+ localRecord[field] = record[field];
116
+ }
117
+ else {
118
+ serverRecord[field] = record[field];
119
+ }
120
+ });
121
+ return { serverRecord, localRecord };
122
+ }
123
+ }
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2NoZW1hLXV0aWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeW5jL3NyYy9saWIvc2VydmljZXMvcG8tc2NoZW1hL3BvLXNjaGVtYS11dGlsL3BvLXNjaGVtYS11dGlsLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLCtDQUErQztJQUN4QyxNQUFNLENBQVUsZUFBZSxHQUFXLElBQUksSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUUzRixzREFBc0Q7SUFDL0MsTUFBTSxDQUFVLHVCQUF1QixHQUFXLGdCQUFnQixDQUFDO0lBRTFFLGtEQUFrRDtJQUMzQyxNQUFNLENBQVUsZUFBZSxHQUFXLGFBQWEsQ0FBQztJQUUvRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBb0I7UUFDcEQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoRjtJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFtQyxFQUFFLFVBQWtCO1FBQy9FLElBQUksY0FBYyxFQUFFO1lBQ2xCLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1lBQzlFLE9BQU8sV0FBVyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7U0FDbEc7UUFDRCxPQUFPLFlBQVksQ0FBQyxlQUFlLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBb0I7UUFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxpQkFBZ0MsRUFBRSxZQUF5QyxFQUFFLEVBQUU7Z0JBQzFHLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUU7b0JBQzFELGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzNDO2dCQUNELE9BQU8saUJBQWlCLENBQUM7WUFDM0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFvQjtRQUN0RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGlCQUFnQyxFQUFFLFlBQXlDLEVBQUUsRUFBRTtnQkFDMUcsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFO29CQUMzRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxZQUFZLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDN0Y7Z0JBQ0QsT0FBTyxpQkFBaUIsQ0FBQztZQUMzQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDUjtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBYyxFQUFFLE1BQW9CO1FBQzVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFvQixFQUFFLFdBQTBCO1FBQ25FLE9BQU8sTUFBTSxDQUFDLEdBQUcsV0FBVyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFxQixFQUFFLE1BQVcsRUFBRSxNQUFXO1FBQ3pFLElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0Y7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLG9CQUFvQixDQUNoQyxNQUFvQixFQUNwQixNQUFjO1FBRWQsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMvQixXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BDO2lCQUFNO2dCQUNMLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvUmVxdWVzdFR5cGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcG8tcmVxdWVzdC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBQb1N5bmNGaWVsZE9wdGlvbnMgfSBmcm9tICcuLi8uLi9wby1zeW5jL2ludGVyZmFjZXMvcG8tc3luYy1maWVsZC1vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvU3luY1NjaGVtYSB9IGZyb20gJy4uLy4uL3BvLXN5bmMvaW50ZXJmYWNlcy9wby1zeW5jLXNjaGVtYS5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIEBkb2NzUHJpdmF0ZVxyXG4gKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICpcclxuICogU2VydmnDp28gdXRpbGl0w6FyaW8gcGFyYSBvcGVyYcOnw7VlcyBubyBQb1N5bmNTY2hlbWEuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUG9TY2hlbWFVdGlsIHtcclxuICAvKiogVmFsb3IgYGRlZmF1bHRgIHBhcmEgbyBjYW1wbyBgbGFzdFN5bmNgLiAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdExhc3RTeW5jOiBzdHJpbmcgPSBuZXcgRGF0ZSgtODY0MDAwMDAwMDAwMDAwMCkudG9JU09TdHJpbmcoKTtcclxuXHJcbiAgLyoqIE5vbWUgZGEgY2hhdmUgZG8gaWRlbnRpZmljYWRvciBpbnRlcm5vIGRvIHN5bmMuICovXHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBzeW5jSW50ZXJuYWxJZEZpZWxkTmFtZTogc3RyaW5nID0gJ1N5bmNJbnRlcm5hbElkJztcclxuXHJcbiAgLyoqIE5vbWUgZGEgY2hhdmUgbm8gYHN0b3JhZ2VgIHBhcmEgb3MgU2NoZW1hcy4gKi9cclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHN5bmNTY2hlbWFzTmFtZTogc3RyaW5nID0gJ1N5bmNTY2hlbWFzJztcclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWNhIHNlIGV4aXN0ZW0gY2FtcG9zIGxvY2FpcyBubyAqc2NoZW1hKiBpbmZvcm1hZG8uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1BvU3luY1NjaGVtYX0gc2NoZW1hICoqU2NoZW1hKiBhIHNlciBwcm9jZXNzYWRvLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMge2Jvb2xlYW59IFZhbG9yIGRvIHRpcG8gKmJvb2xlYW4qIHF1ZSBpbmRpY2Egc2UgZXhpc3RlbSBjYW1wb3MgbG9jYWlzIG5vICpzY2hlbWEqIGluZm9ybWFkby5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGNvbnRhaW5zTG9jYWxGaWVsZHMoc2NoZW1hOiBQb1N5bmNTY2hlbWEpOiBib29sZWFuIHtcclxuICAgIGlmIChzY2hlbWEuZmllbGRzKSB7XHJcbiAgICAgIHJldHVybiAhIXNjaGVtYS5maWVsZHMuZmluZChmaWVsZCA9PiB0eXBlb2YgZmllbGQgPT09ICdvYmplY3QnICYmIGZpZWxkLmxvY2FsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldG9ybmEgbyB2YWxvciBhdHVhbCBkbyBgbGFzdFN5bmNgIHBhcmEgZGV0ZXJtaW5hZG8gKnNjaGVtYSouXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0FycmF5PFBvU3luY1NjaGVtYT59IHN0b3JhZ2VTY2hlbWFzIExpc3RhIGRlICpzY2hlbWFzKiBhIHNlcmVtIHBlc3F1aXNhZG9zLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY2hlbWFOYW1lIE5vbWUgZG8gKnNjaGVtYSogcXVlIHNlIGRlc2VqYSBsZXIgbyBsYXN0U3luYy5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldG9ybmEgdW1hICpzdHJpbmcqIGNvbSBvIHZhbG9yIGRhIMO6bHRpbWEgc2luY3Jvbml6YcOnw6NvLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TGFzdFN5bmMoc3RvcmFnZVNjaGVtYXM6IEFycmF5PFBvU3luY1NjaGVtYT4sIHNjaGVtYU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoc3RvcmFnZVNjaGVtYXMpIHtcclxuICAgICAgY29uc3Qgc2NoZW1hRm91bmQgPSBzdG9yYWdlU2NoZW1hcy5maW5kKHNjaGVtYSA9PiBzY2hlbWEubmFtZSA9PT0gc2NoZW1hTmFtZSk7XHJcbiAgICAgIHJldHVybiBzY2hlbWFGb3VuZCAmJiBzY2hlbWFGb3VuZC5sYXN0U3luYyA/IHNjaGVtYUZvdW5kLmxhc3RTeW5jIDogUG9TY2hlbWFVdGlsLmRlZmF1bHRMYXN0U3luYztcclxuICAgIH1cclxuICAgIHJldHVybiBQb1NjaGVtYVV0aWwuZGVmYXVsdExhc3RTeW5jO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0b3JuYSBhIGxpc3RhIGRlIGNhbXBvcyBsb2NhaXMgZGVmaW5pZG9zIG5vICpzY2hlbWEqLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtQb1N5bmNTY2hlbWF9IHNjaGVtYSAqKlNjaGVtYSogYSBzZXIgcHJvY2Vzc2Fkby5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGdldExvY2FsRmllbGROYW1lcyhzY2hlbWE6IFBvU3luY1NjaGVtYSk6IEFycmF5PHN0cmluZz4ge1xyXG4gICAgaWYgKHNjaGVtYS5maWVsZHMpIHtcclxuICAgICAgcmV0dXJuIHNjaGVtYS5maWVsZHMucmVkdWNlKChmaWVsZHNBY2N1bXVsYXRvcjogQXJyYXk8c3RyaW5nPiwgY3VycmVudEZpZWxkOiBzdHJpbmcgfCBQb1N5bmNGaWVsZE9wdGlvbnMpID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRGaWVsZCA9PT0gJ29iamVjdCcgJiYgY3VycmVudEZpZWxkLmxvY2FsKSB7XHJcbiAgICAgICAgICBmaWVsZHNBY2N1bXVsYXRvci5wdXNoKGN1cnJlbnRGaWVsZC5uYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZpZWxkc0FjY3VtdWxhdG9yO1xyXG4gICAgICB9LCBbXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRvcm5hIGEgbGlzdGEgZGUgY2FtcG9zIG7Do28gbG9jYWlzIGRlZmluaWRvcyBubyAqc2NoZW1hKi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UG9TeW5jU2NoZW1hfSBzY2hlbWEgKipTY2hlbWEqIGEgc2VyIHByb2Nlc3NhZG8uXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBnZXROb25Mb2NhbEZpZWxkTmFtZXMoc2NoZW1hOiBQb1N5bmNTY2hlbWEpOiBBcnJheTxzdHJpbmc+IHtcclxuICAgIGlmIChzY2hlbWEuZmllbGRzKSB7XHJcbiAgICAgIHJldHVybiBzY2hlbWEuZmllbGRzLnJlZHVjZSgoZmllbGRzQWNjdW11bGF0b3I6IEFycmF5PHN0cmluZz4sIGN1cnJlbnRGaWVsZDogc3RyaW5nIHwgUG9TeW5jRmllbGRPcHRpb25zKSA9PiB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RmllbGQgPT09ICdzdHJpbmcnIHx8ICFjdXJyZW50RmllbGQubG9jYWwpIHtcclxuICAgICAgICAgIGZpZWxkc0FjY3VtdWxhdG9yLnB1c2godHlwZW9mIGN1cnJlbnRGaWVsZCA9PT0gJ3N0cmluZycgPyBjdXJyZW50RmllbGQgOiBjdXJyZW50RmllbGQubmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaWVsZHNBY2N1bXVsYXRvcjtcclxuICAgICAgfSwgW10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0b3JuYSBvIGBpZGAgcmVmZXJlbnRlIGFvIHJlZ2lzdHJvIGRvICpzY2hlbWEqIGluZm9ybWFkby5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByZWNvcmQgUmVnaXN0cm8gcXVlIHNlcsOhIGJ1c2NhZG8gbyBpZC5cclxuICAgKiBAcGFyYW0ge1BvU3luY1NjaGVtYX0gc2NoZW1hICoqU2NoZW1hKiBhIHNlciBwcm9jZXNzYWRvLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UmVjb3JkSWQocmVjb3JkOiBvYmplY3QsIHNjaGVtYTogUG9TeW5jU2NoZW1hKSB7XHJcbiAgICByZXR1cm4gcmVjb3JkW3NjaGVtYS5pZEZpZWxkXSB8fCByZWNvcmRbUG9TY2hlbWFVdGlsLnN5bmNJbnRlcm5hbElkRmllbGROYW1lXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldG9ybmEgYSB1cmwgY29ycmVzcG9uZGVudGUgZG8gYFBvU3luY1NjaGVtYWAgZGVwZW5kZW5kbyBkbyB0aXBvIGRhIHJlcXVpc2nDp8OjbyBgUG9SZXF1ZXN0VHlwZWAuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1BvU3luY1NjaGVtYX0gc2NoZW1hICoqU2NoZW1hKiBhIHNlciBwcm9jZXNzYWRvLlxyXG4gICAqIEBwYXJhbSB7UG9SZXF1ZXN0VHlwZX0gcmVxdWVzdFR5cGUgVGlwbyBkYSByZXF1aXNpw6fDo28uXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBnZXRVcmwoc2NoZW1hOiBQb1N5bmNTY2hlbWEsIHJlcXVlc3RUeXBlOiBQb1JlcXVlc3RUeXBlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBzY2hlbWFbYCR7cmVxdWVzdFR5cGV9VXJsQXBpYF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wYXJhIHNlIGRvaXMgb2JqZXRvcyBzw6NvIGlndWFpcyBiYXNlYWRvIG5hIGxpc3RhIGRlIGNhbXBvcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gZmllbGRzIExpc3RhIGRlIGNhbXBvcyBhIHNlcmVtIGNvbnNpZGVyYWRvcyBuYSBjb21wYXJhw6fDo28uXHJcbiAgICogQHBhcmFtIHthbnl9IG1vZGVsMSBPYmpldG8gMSBhIHNlciBjb21wYXJhZG8uXHJcbiAgICogQHBhcmFtIHthbnl9IG1vZGVsMiBPYmpldG8gMiBhIHNlciBjb21wYXJhZG8uXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBpc01vZGVsc0VxdWFsKGZpZWxkczogQXJyYXk8c3RyaW5nPiwgbW9kZWwxOiBhbnksIG1vZGVsMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZmllbGRzKSB7XHJcbiAgICAgIHJldHVybiBmaWVsZHMuZXZlcnkoZmllbGQgPT4gSlNPTi5zdHJpbmdpZnkobW9kZWwxW2ZpZWxkXSkgPT09IEpTT04uc3RyaW5naWZ5KG1vZGVsMltmaWVsZF0pKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldG9ybmEgdW1hIGxpc3RhIGNvbSBkb2lzIG9iamV0b3MgcmVmZXJlbnRlcyBhbyByZWdpc3RybyBpbmZvcm1hZG8uXHJcbiAgICogTyBwcmltZWlybyDDqSBvIHJlZ2lzdHJvIGNvbSBvcyBjYW1wb3MgcXVlIHbDo28gcGFyYSBvIHNlcnZpZG9yIGUgbyBzZWd1bmRvIMOpIGNvbSBvcyBjYW1wb3MgbG9jYWlzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtQb1N5bmNTY2hlbWF9IHNjaGVtYSAqKlNjaGVtYSogZG8gcmVnaXN0cm8uXHJcbiAgICogQHBhcmFtIHtvYmplY3R9IHJlY29yZCBSZWdpc3RybyBxdWUgc2Vyw6EgcmVhbGl6YWRhIGEgc2VwYXJhw6fDo28gZG9zIGNhbXBvcyBsb2NhaXMgZSBkbyBzZXJ2aWRvci5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHNlcGFyYXRlU2NoZW1hRmllbGRzKFxyXG4gICAgc2NoZW1hOiBQb1N5bmNTY2hlbWEsXHJcbiAgICByZWNvcmQ6IG9iamVjdFxyXG4gICk6IHsgc2VydmVyUmVjb3JkOiBvYmplY3Q7IGxvY2FsUmVjb3JkOiBvYmplY3QgfSB7XHJcbiAgICBjb25zdCBsb2NhbEZpZWxkcyA9IFBvU2NoZW1hVXRpbC5nZXRMb2NhbEZpZWxkTmFtZXMoc2NoZW1hKTtcclxuICAgIGNvbnN0IGxvY2FsUmVjb3JkID0ge307XHJcbiAgICBjb25zdCBzZXJ2ZXJSZWNvcmQgPSB7fTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhyZWNvcmQpLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBpZiAobG9jYWxGaWVsZHMuaW5jbHVkZXMoZmllbGQpKSB7XHJcbiAgICAgICAgbG9jYWxSZWNvcmRbZmllbGRdID0gcmVjb3JkW2ZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzZXJ2ZXJSZWNvcmRbZmllbGRdID0gcmVjb3JkW2ZpZWxkXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHsgc2VydmVyUmVjb3JkLCBsb2NhbFJlY29yZCB9O1xyXG4gIH1cclxufVxyXG4iXX0=