@sankhyalabs/sankhyablocks 1.3.2 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{index-4720dab8.js → index-8272993f.js} +439 -7
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/sankhyablocks.cjs.js +2 -2
- package/dist/cjs/snk-application.cjs.entry.js +260 -71
- package/dist/cjs/snk-pesquisa.cjs.entry.js +19 -0
- package/dist/cjs/teste-pesquisa.cjs.entry.js +37 -0
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/snk-application/snk-application.js +104 -3
- package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +3 -0
- package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +74 -0
- package/dist/collection/components/teste-pesquisa/teste-pesquisa.css +3 -0
- package/dist/collection/components/teste-pesquisa/teste-pesquisa.js +33 -0
- package/dist/collection/lib/http/data-fetcher/DataFetcher.js +47 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/dataunit-fetcher.js +51 -31
- package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +82 -0
- package/dist/collection/lib/workspace/workspace.js +2 -1
- package/dist/components/snk-application.js +1 -7089
- package/dist/components/snk-application2.js +7288 -0
- package/dist/components/snk-pesquisa.d.ts +11 -0
- package/dist/components/snk-pesquisa.js +6 -0
- package/dist/components/snk-pesquisa2.js +34 -0
- package/dist/components/teste-pesquisa.d.ts +11 -0
- package/dist/components/teste-pesquisa.js +63 -0
- package/dist/esm/{index-72d4e2e0.js → index-427447f8.js} +439 -8
- package/dist/esm/loader.js +2 -2
- package/dist/esm/sankhyablocks.js +2 -2
- package/dist/esm/snk-application.entry.js +261 -72
- package/dist/esm/snk-pesquisa.entry.js +15 -0
- package/dist/esm/teste-pesquisa.entry.js +33 -0
- package/dist/sankhyablocks/p-727ea2f4.entry.js +63 -0
- package/dist/sankhyablocks/p-91ca1a98.entry.js +1 -0
- package/dist/sankhyablocks/p-e6ba985e.entry.js +1 -0
- package/dist/sankhyablocks/p-ee5a384b.js +2 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-application/snk-application.d.ts +8 -0
- package/dist/types/components/snk-pesquisa/snk-pesquisa.d.ts +7 -0
- package/dist/types/components/teste-pesquisa/teste-pesquisa.d.ts +6 -0
- package/dist/types/components.d.ts +34 -0
- package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +3 -0
- package/dist/types/lib/http/data-fetcher/fetchers/dataunit-fetcher.d.ts +1 -1
- package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +17 -0
- package/package.json +1 -1
- package/react/components.d.ts +2 -0
- package/react/components.js +2 -0
- package/react/components.js.map +1 -1
- package/dist/sankhyablocks/p-76b95007.entry.js +0 -57
- package/dist/sankhyablocks/p-a33afc3b.js +0 -2
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Component, Host, h, Prop } from '@stencil/core';
|
|
2
|
+
export class SnkPesquisa {
|
|
3
|
+
render() {
|
|
4
|
+
return (h(Host, null,
|
|
5
|
+
h("ez-text-input", { ref: ref => this._textInput = ref, value: this.argument }),
|
|
6
|
+
h("button", { onClick: () => this.searchLoader(this._textInput["value"]) }, "pesquisar"),
|
|
7
|
+
h("button", { onClick: () => this.onSelectItem({ value: "10", label: "Zé das couves" }) }, "selecionar")));
|
|
8
|
+
}
|
|
9
|
+
static get is() { return "snk-pesquisa"; }
|
|
10
|
+
static get encapsulation() { return "shadow"; }
|
|
11
|
+
static get originalStyleUrls() { return {
|
|
12
|
+
"$": ["snk-pesquisa.css"]
|
|
13
|
+
}; }
|
|
14
|
+
static get styleUrls() { return {
|
|
15
|
+
"$": ["snk-pesquisa.css"]
|
|
16
|
+
}; }
|
|
17
|
+
static get properties() { return {
|
|
18
|
+
"searchLoader": {
|
|
19
|
+
"type": "unknown",
|
|
20
|
+
"mutable": false,
|
|
21
|
+
"complexType": {
|
|
22
|
+
"original": "Function",
|
|
23
|
+
"resolved": "Function",
|
|
24
|
+
"references": {
|
|
25
|
+
"Function": {
|
|
26
|
+
"location": "global"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"required": false,
|
|
31
|
+
"optional": false,
|
|
32
|
+
"docs": {
|
|
33
|
+
"tags": [],
|
|
34
|
+
"text": ""
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"onSelectItem": {
|
|
38
|
+
"type": "unknown",
|
|
39
|
+
"mutable": false,
|
|
40
|
+
"complexType": {
|
|
41
|
+
"original": "Function",
|
|
42
|
+
"resolved": "Function",
|
|
43
|
+
"references": {
|
|
44
|
+
"Function": {
|
|
45
|
+
"location": "global"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"required": false,
|
|
50
|
+
"optional": false,
|
|
51
|
+
"docs": {
|
|
52
|
+
"tags": [],
|
|
53
|
+
"text": ""
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"argument": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"mutable": true,
|
|
59
|
+
"complexType": {
|
|
60
|
+
"original": "string",
|
|
61
|
+
"resolved": "string",
|
|
62
|
+
"references": {}
|
|
63
|
+
},
|
|
64
|
+
"required": false,
|
|
65
|
+
"optional": false,
|
|
66
|
+
"docs": {
|
|
67
|
+
"tags": [],
|
|
68
|
+
"text": ""
|
|
69
|
+
},
|
|
70
|
+
"attribute": "argument",
|
|
71
|
+
"reflect": false
|
|
72
|
+
}
|
|
73
|
+
}; }
|
|
74
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { DataType, DataUnit, UserInterface } from '@sankhyalabs/core';
|
|
2
|
+
import { Component, h } from '@stencil/core';
|
|
3
|
+
export class TestePesquisa {
|
|
4
|
+
componentWillLoad() {
|
|
5
|
+
this.dataUnit = new DataUnit("testes_com_formulario");
|
|
6
|
+
this.dataUnit.metadata = {
|
|
7
|
+
name: "dd://br.com.sankhya.fin.cad.movimentacaoFinanceira/Financeiro",
|
|
8
|
+
label: "Parceiro",
|
|
9
|
+
fields: [
|
|
10
|
+
{
|
|
11
|
+
name: "CODPARC",
|
|
12
|
+
label: "Parceiro",
|
|
13
|
+
dataType: DataType.NUMBER,
|
|
14
|
+
userInterface: UserInterface.SEARCH,
|
|
15
|
+
required: true,
|
|
16
|
+
properties: { ENTITYNAME: "Parceiro" }
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
render() {
|
|
22
|
+
return (h("snk-application", null,
|
|
23
|
+
h("ez-form", { dataUnit: this.dataUnit })));
|
|
24
|
+
}
|
|
25
|
+
static get is() { return "teste-pesquisa"; }
|
|
26
|
+
static get encapsulation() { return "shadow"; }
|
|
27
|
+
static get originalStyleUrls() { return {
|
|
28
|
+
"$": ["teste-pesquisa.css"]
|
|
29
|
+
}; }
|
|
30
|
+
static get styleUrls() { return {
|
|
31
|
+
"$": ["teste-pesquisa.css"]
|
|
32
|
+
}; }
|
|
33
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { batchRequests } from 'graphql-request';
|
|
2
|
+
import UrlUtils from "../../../lib/utils/urlutils";
|
|
2
3
|
export class HttpFetcher {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.watingRequestsById = new Map();
|
|
@@ -45,6 +46,52 @@ export class HttpFetcher {
|
|
|
45
46
|
return (_a = this.getWatingRequest(reqKey)) === null || _a === void 0 ? void 0 : _a.promise;
|
|
46
47
|
}
|
|
47
48
|
}
|
|
49
|
+
resolveURL() {
|
|
50
|
+
if (window['mock_url'])
|
|
51
|
+
return window['mock_url'];
|
|
52
|
+
return UrlUtils.getUrlBase();
|
|
53
|
+
}
|
|
54
|
+
getContext() {
|
|
55
|
+
const urlParams = UrlUtils.getQueryParams(location.search);
|
|
56
|
+
return {
|
|
57
|
+
baseUrl: `${this.resolveURL()}/mge/service.sbr`,
|
|
58
|
+
appName: "SankhyaBlocks",
|
|
59
|
+
mgeSession: `${window['skw_session'] || urlParams.mgeSession}`,
|
|
60
|
+
globalID: "85C0093DFA240EAB699B4E47A10215BD",
|
|
61
|
+
resourceID: "br.com.sankhya.mov.bancaria"
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
async callServiceBroker(serviceName, payload) {
|
|
65
|
+
return new Promise((accept, reject) => {
|
|
66
|
+
const ctx = this.getContext();
|
|
67
|
+
const url = `${ctx.baseUrl}?serviceName=${serviceName}&counter=21&application=${ctx.appName}&outputType=json&preventTransform=false&mgeSession=${ctx.mgeSession}&resourceID=${ctx.resourceID}&globalID=${ctx.globalID}&allowConcurrentCalls=true`;
|
|
68
|
+
document.cookie = `JSESSIONID=${ctx.mgeSession};`;
|
|
69
|
+
const http = new XMLHttpRequest();
|
|
70
|
+
http.open("POST", url, true);
|
|
71
|
+
http.withCredentials = true;
|
|
72
|
+
http.send(payload);
|
|
73
|
+
http.onreadystatechange = function () {
|
|
74
|
+
if (this.readyState == 4 && this.status == 200) {
|
|
75
|
+
try {
|
|
76
|
+
const jsonResp = JSON.parse(this.responseText);
|
|
77
|
+
if (jsonResp.status == 1) {
|
|
78
|
+
accept(jsonResp.responseBody);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
reject(jsonResp);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
console.warn(`callServiceBroker error to parser response to JSON ${e}`);
|
|
86
|
+
reject(this.responseText);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else if (this.readyState == 4 && this.status != 200) {
|
|
90
|
+
reject(this.responseText);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
}
|
|
48
95
|
getReqKey(req) {
|
|
49
96
|
return window.btoa(this.hashCode(`${req.query}${JSON.stringify(req.values || "")}`)).replace(/=/g, "");
|
|
50
97
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataUnit, ChangeOperation, } from "@sankhyalabs/core";
|
|
1
|
+
import { DataUnit, ChangeOperation, StringUtils, } from "@sankhyalabs/core";
|
|
2
2
|
import { HttpFetcher } from "../DataFetcher";
|
|
3
3
|
import { gql } from "graphql-request";
|
|
4
4
|
export default class DataUnitFetcher {
|
|
@@ -14,6 +14,7 @@ export default class DataUnitFetcher {
|
|
|
14
14
|
name
|
|
15
15
|
defaultValue
|
|
16
16
|
label
|
|
17
|
+
visible
|
|
17
18
|
readOnly
|
|
18
19
|
required
|
|
19
20
|
dataType
|
|
@@ -30,10 +31,10 @@ export default class DataUnitFetcher {
|
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
}`);
|
|
33
|
-
this.templateByQuery.set("fetchData", gql `query($dataunit: String! $
|
|
34
|
+
this.templateByQuery.set("fetchData", gql `query($dataunit: String! $limit: Int $offset:Int $filter: [Filter!] $sort: [Sort!]) {
|
|
34
35
|
$queryAlias$: fetchDataUnit(name: $dataunit){
|
|
35
|
-
data(
|
|
36
|
-
|
|
36
|
+
data(limit: $limit offset: $offset filters: $filter sort: $sort){
|
|
37
|
+
limit
|
|
37
38
|
offset
|
|
38
39
|
total
|
|
39
40
|
hasMore
|
|
@@ -61,7 +62,7 @@ export default class DataUnitFetcher {
|
|
|
61
62
|
getDataUnit(entityName, resourceID) {
|
|
62
63
|
const dataUnit = new DataUnit(`dd://${entityName}/${resourceID}`);
|
|
63
64
|
dataUnit.metadataLoader = (dataUnit) => this.loadMetadata(dataUnit);
|
|
64
|
-
dataUnit.dataLoader = (dataUnit, sort, filters) => this.loadData(dataUnit, sort, filters);
|
|
65
|
+
dataUnit.dataLoader = (dataUnit, page, sort, filters) => this.loadData(dataUnit, page, sort, filters);
|
|
65
66
|
dataUnit.saveLoader = (dataUnit, changes) => this.saveData(dataUnit, changes);
|
|
66
67
|
dataUnit.removeLoader = (dataUnit, recordIds) => this.removeRecords(dataUnit, recordIds);
|
|
67
68
|
return dataUnit;
|
|
@@ -95,24 +96,36 @@ export default class DataUnitFetcher {
|
|
|
95
96
|
});
|
|
96
97
|
});
|
|
97
98
|
}
|
|
98
|
-
loadData(dataUnit, sort, filters) {
|
|
99
|
+
loadData(dataUnit, page, sort, filters) {
|
|
99
100
|
return new Promise((resolve, reject) => {
|
|
101
|
+
const variables = { dataunit: dataUnit.name, sort, filters };
|
|
102
|
+
if (page) {
|
|
103
|
+
variables.limit = page.limit;
|
|
104
|
+
variables.offset = page.offset;
|
|
105
|
+
}
|
|
106
|
+
if (!StringUtils.isEmpty(page === null || page === void 0 ? void 0 : page.quickFilter)) {
|
|
107
|
+
variables.filter = [{
|
|
108
|
+
name: "__ALL_SEARCHABLE_FIELDS__",
|
|
109
|
+
expression: "__ALL_SEARCHABLE_FIELDS__",
|
|
110
|
+
params: [{ name: "term", value: page.quickFilter }]
|
|
111
|
+
}];
|
|
112
|
+
}
|
|
100
113
|
HttpFetcher.get()
|
|
101
114
|
.callGraphQL({
|
|
102
|
-
values:
|
|
115
|
+
values: variables,
|
|
103
116
|
query: this.templateByQuery.get("fetchData"),
|
|
104
117
|
})
|
|
105
118
|
.then((resp) => {
|
|
106
|
-
const
|
|
107
|
-
const
|
|
108
|
-
|
|
119
|
+
const pageResult = resp.data;
|
|
120
|
+
const records = [];
|
|
121
|
+
pageResult.records.forEach((responseRecord) => {
|
|
109
122
|
const duRecord = { __record__id__: responseRecord.id };
|
|
110
123
|
responseRecord.fields.forEach(({ name, value }) => {
|
|
111
124
|
duRecord[name] = dataUnit.valueFromString(name, value);
|
|
112
125
|
});
|
|
113
|
-
|
|
126
|
+
records.push(duRecord);
|
|
114
127
|
});
|
|
115
|
-
resolve(
|
|
128
|
+
resolve(Object.assign(Object.assign({}, pageResult), { records }));
|
|
116
129
|
})
|
|
117
130
|
.catch((error) => {
|
|
118
131
|
reject(error);
|
|
@@ -122,10 +135,17 @@ export default class DataUnitFetcher {
|
|
|
122
135
|
saveData(dataUnit, duChanges) {
|
|
123
136
|
const changes = duChanges.map((change) => {
|
|
124
137
|
const { dataUnit: changeDU, record, updatingFields, operation } = change;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
138
|
+
let parsedUpdatingFields;
|
|
139
|
+
if (updatingFields) {
|
|
140
|
+
parsedUpdatingFields = Object.entries(updatingFields).map(([fieldName, value]) => {
|
|
141
|
+
return { fieldName, value: formatValueToServer(value) };
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
const reqChange = { dataUnit: changeDU, updatingFields: parsedUpdatingFields, operation, recordId: record.__record__id__ };
|
|
145
|
+
if (change.sourceId) {
|
|
146
|
+
reqChange.sourceId = change.sourceId;
|
|
147
|
+
}
|
|
148
|
+
return reqChange;
|
|
129
149
|
});
|
|
130
150
|
return new Promise((resolve, reject) => {
|
|
131
151
|
HttpFetcher.get()
|
|
@@ -152,21 +172,6 @@ export default class DataUnitFetcher {
|
|
|
152
172
|
});
|
|
153
173
|
});
|
|
154
174
|
}
|
|
155
|
-
formatValueToServer(value) {
|
|
156
|
-
if (value === undefined)
|
|
157
|
-
return value;
|
|
158
|
-
try {
|
|
159
|
-
if (value instanceof Date || typeof value === 'string') {
|
|
160
|
-
return value.toString();
|
|
161
|
-
}
|
|
162
|
-
//Any others objects
|
|
163
|
-
value = JSON.stringify(value);
|
|
164
|
-
}
|
|
165
|
-
catch (_a) {
|
|
166
|
-
value = value.toString();
|
|
167
|
-
}
|
|
168
|
-
return value;
|
|
169
|
-
}
|
|
170
175
|
removeRecords(dataUnit, recordIds) {
|
|
171
176
|
const changes = recordIds.map((recordId) => {
|
|
172
177
|
return { dataUnit: dataUnit.name, operation: ChangeOperation.DELETE, recordId };
|
|
@@ -186,3 +191,18 @@ export default class DataUnitFetcher {
|
|
|
186
191
|
});
|
|
187
192
|
}
|
|
188
193
|
}
|
|
194
|
+
export const formatValueToServer = (value) => {
|
|
195
|
+
if (value === undefined)
|
|
196
|
+
return value;
|
|
197
|
+
try {
|
|
198
|
+
if (value instanceof Date) {
|
|
199
|
+
return value.toString();
|
|
200
|
+
}
|
|
201
|
+
//Any others objects
|
|
202
|
+
value = JSON.stringify(value);
|
|
203
|
+
}
|
|
204
|
+
catch (_a) {
|
|
205
|
+
value = value.toString();
|
|
206
|
+
}
|
|
207
|
+
return value;
|
|
208
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { DataType } from "@sankhyalabs/core";
|
|
2
|
+
import { gql } from "graphql-request";
|
|
3
|
+
import { HttpFetcher } from "../DataFetcher";
|
|
4
|
+
export class PesquisaFetcher {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.templateByQuery = new Map();
|
|
7
|
+
this.buldTemplates();
|
|
8
|
+
}
|
|
9
|
+
buldTemplates() {
|
|
10
|
+
this.templateByQuery.set("search", gql `query($entityName: String! $argument: String $criteria: SearchCriteria) {
|
|
11
|
+
$queryAlias$: search(entityName: $entityName argument: $argument criteria: $criteria){
|
|
12
|
+
value
|
|
13
|
+
label
|
|
14
|
+
}
|
|
15
|
+
}`);
|
|
16
|
+
}
|
|
17
|
+
loadSearchOptions(entityName, argument, criteria) {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
HttpFetcher.get()
|
|
20
|
+
.callGraphQL({
|
|
21
|
+
values: { argument, entityName, criteria },
|
|
22
|
+
query: this.templateByQuery.get("search"),
|
|
23
|
+
})
|
|
24
|
+
.then((result) => {
|
|
25
|
+
resolve(result);
|
|
26
|
+
})
|
|
27
|
+
.catch((error) => {
|
|
28
|
+
reject(error);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
loadAdvancedSearch(entityName, argument, criteria) {
|
|
33
|
+
const serviceName = "PesquisaSP.getSuggestion";
|
|
34
|
+
const externalCriteria = {
|
|
35
|
+
query: {
|
|
36
|
+
$: criteria === null || criteria === void 0 ? void 0 : criteria.expression
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
if ((criteria === null || criteria === void 0 ? void 0 : criteria.params.length) > 0) {
|
|
40
|
+
externalCriteria.params = {
|
|
41
|
+
param: criteria.params.map(p => { return { $: p.value, type: convertParamType(p.dataType) }; })
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const reqBody = {
|
|
45
|
+
"serviceName": serviceName,
|
|
46
|
+
"requestBody": {
|
|
47
|
+
"criteria": {
|
|
48
|
+
"entityName": entityName,
|
|
49
|
+
"compacted": false,
|
|
50
|
+
"ignoreEntityCriteria": false,
|
|
51
|
+
"limit": "5",
|
|
52
|
+
"query": { "$": argument },
|
|
53
|
+
"orderByDesc": false,
|
|
54
|
+
"options": { "showInactives": false },
|
|
55
|
+
"externalCriteria": externalCriteria
|
|
56
|
+
},
|
|
57
|
+
"clientEventList": {
|
|
58
|
+
"clientEvent": []
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
return new Promise((resolve, reject) => {
|
|
63
|
+
HttpFetcher.get()
|
|
64
|
+
.callServiceBroker("PesquisaSP.getSuggestion", JSON.stringify(reqBody))
|
|
65
|
+
.then(result => resolve(result))
|
|
66
|
+
.catch(error => reject(error));
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function convertParamType(dataType) {
|
|
71
|
+
//Alerta: Cuidado pra não contaminar o DataType com a implementação
|
|
72
|
+
//atual da pesquisa... em geral, somente inteiros,
|
|
73
|
+
//data (com ou sem hora) e string são realmente relevantes
|
|
74
|
+
switch (dataType) {
|
|
75
|
+
case DataType.NUMBER:
|
|
76
|
+
return "I";
|
|
77
|
+
case DataType.DATE:
|
|
78
|
+
return "D";
|
|
79
|
+
default:
|
|
80
|
+
return "S";
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
export default class Workspace {
|
|
2
3
|
static openAppActivity(resourceId, pkObject) {
|
|
3
4
|
var _a;
|
|
4
5
|
(_a = window["workspace"]) === null || _a === void 0 ? void 0 : _a.openAppActivity(resourceId, pkObject);
|
|
5
6
|
}
|
|
6
7
|
}
|
|
7
|
-
Workspace.resourceID = window["workspace"].resourceID;
|
|
8
|
+
Workspace.resourceID = (_a = window["workspace"]) === null || _a === void 0 ? void 0 : _a.resourceID;
|