@leapdev/app-platform 0.1.0-beta.4 → 0.1.0-beta.6
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/package.json +15 -15
- package/src/index.d.ts +25 -0
- package/src/index.js +42 -0
- package/src/index.js.map +1 -0
- package/src/lib/app-platform.d.ts +37 -0
- package/src/lib/app-platform.js +231 -0
- package/src/lib/app-platform.js.map +1 -0
- package/src/lib/environment/environment.d.ts +37 -0
- package/src/lib/environment/environment.dictionary.d.ts +4 -0
- package/src/lib/environment/environment.dictionary.js +30 -0
- package/src/lib/environment/environment.dictionary.js.map +1 -0
- package/src/lib/environment/environment.js +17 -0
- package/src/lib/environment/environment.js.map +1 -0
- package/src/lib/environment/{index.ts → index.d.ts} +2 -2
- package/src/lib/environment/index.js +9 -0
- package/src/lib/environment/index.js.map +1 -0
- package/src/lib/environment/leap/env.dev.au.config.d.ts +32 -0
- package/src/lib/environment/leap/env.dev.au.config.js +36 -0
- package/src/lib/environment/leap/env.dev.au.config.js.map +1 -0
- package/src/lib/environment/leap/env.live.au.config.d.ts +32 -0
- package/src/lib/environment/leap/env.live.au.config.js +36 -0
- package/src/lib/environment/leap/env.live.au.config.js.map +1 -0
- package/src/lib/environment/leap/env.live.ca.config.d.ts +32 -0
- package/src/lib/environment/leap/env.live.ca.config.js +36 -0
- package/src/lib/environment/leap/env.live.ca.config.js.map +1 -0
- package/src/lib/environment/leap/env.live.nz.config.d.ts +32 -0
- package/src/lib/environment/leap/env.live.nz.config.js +36 -0
- package/src/lib/environment/leap/env.live.nz.config.js.map +1 -0
- package/src/lib/environment/leap/env.live.uk.config.d.ts +32 -0
- package/src/lib/environment/leap/env.live.uk.config.js +36 -0
- package/src/lib/environment/leap/env.live.uk.config.js.map +1 -0
- package/src/lib/environment/leap/env.live.us.config.d.ts +32 -0
- package/src/lib/environment/leap/env.live.us.config.js +36 -0
- package/src/lib/environment/leap/env.live.us.config.js.map +1 -0
- package/src/lib/environment/leap/env.liveb.au.config.d.ts +32 -0
- package/src/lib/environment/leap/env.liveb.au.config.js +36 -0
- package/src/lib/environment/leap/env.liveb.au.config.js.map +1 -0
- package/src/lib/environment/leap/env.test.au.config.d.ts +32 -0
- package/src/lib/environment/leap/env.test.au.config.js +36 -0
- package/src/lib/environment/leap/env.test.au.config.js.map +1 -0
- package/src/lib/environment/leap/env.test.ca.config.d.ts +32 -0
- package/src/lib/environment/leap/env.test.ca.config.js +36 -0
- package/src/lib/environment/leap/env.test.ca.config.js.map +1 -0
- package/src/lib/environment/leap/env.test.nz.config.d.ts +32 -0
- package/src/lib/environment/leap/env.test.nz.config.js +36 -0
- package/src/lib/environment/leap/env.test.nz.config.js.map +1 -0
- package/src/lib/environment/leap/env.test.uk.config.d.ts +32 -0
- package/src/lib/environment/leap/env.test.uk.config.js +36 -0
- package/src/lib/environment/leap/env.test.uk.config.js.map +1 -0
- package/src/lib/environment/leap/env.test.us.config.d.ts +32 -0
- package/src/lib/environment/leap/env.test.us.config.js +36 -0
- package/src/lib/environment/leap/env.test.us.config.js.map +1 -0
- package/src/lib/functions/helpers.d.ts +5 -0
- package/src/lib/functions/helpers.js +95 -0
- package/src/lib/functions/helpers.js.map +1 -0
- package/src/lib/functions/xml.d.ts +2 -0
- package/src/lib/functions/xml.js +41 -0
- package/src/lib/functions/xml.js.map +1 -0
- package/src/lib/models/calc-api.model.d.ts +57 -0
- package/src/lib/models/calc-api.model.js +39 -0
- package/src/lib/models/calc-api.model.js.map +1 -0
- package/src/lib/models/constants/index.d.ts +28 -0
- package/src/lib/models/constants/index.js +32 -0
- package/src/lib/models/constants/index.js.map +1 -0
- package/src/lib/models/{index.ts → index.d.ts} +1 -1
- package/src/lib/models/index.js +5 -0
- package/src/lib/models/index.js.map +1 -0
- package/src/lib/models/leap-events.model.d.ts +56 -0
- package/src/lib/models/leap-events.model.js +71 -0
- package/src/lib/models/leap-events.model.js.map +1 -0
- package/src/lib/models/leap.model.d.ts +65 -0
- package/src/lib/models/leap.model.js +29 -0
- package/src/lib/models/leap.model.js.map +1 -0
- package/src/lib/models/signalr.model.d.ts +21 -0
- package/src/lib/models/signalr.model.js +3 -0
- package/src/lib/models/signalr.model.js.map +1 -0
- package/src/lib/services/auth/auth.service.d.ts +13 -0
- package/src/lib/services/auth/auth.service.js +185 -0
- package/src/lib/services/auth/auth.service.js.map +1 -0
- package/src/lib/services/calc-api/calc-api-service.interface.d.ts +4 -0
- package/src/lib/services/calc-api/calc-api-service.interface.js +3 -0
- package/src/lib/services/calc-api/calc-api-service.interface.js.map +1 -0
- package/src/lib/services/calc-api/calc-word.service.d.ts +10 -0
- package/src/lib/services/calc-api/calc-word.service.js +63 -0
- package/src/lib/services/calc-api/calc-word.service.js.map +1 -0
- package/src/lib/services/calc-api/promise-helper.function.d.ts +2 -0
- package/src/lib/services/calc-api/promise-helper.function.js +32 -0
- package/src/lib/services/calc-api/promise-helper.function.js.map +1 -0
- package/src/lib/services/custom-xml-part.service.d.ts +5 -0
- package/src/lib/services/custom-xml-part.service.js +269 -0
- package/src/lib/services/custom-xml-part.service.js.map +1 -0
- package/src/lib/services/document/document.service.d.ts +16 -0
- package/src/lib/services/document/document.service.js +32 -0
- package/src/lib/services/document/document.service.js.map +1 -0
- package/src/lib/services/{index.ts → index.d.ts} +5 -10
- package/src/lib/services/index.js +9 -0
- package/src/lib/services/index.js.map +1 -0
- package/src/lib/services/leap-events.service.d.ts +26 -0
- package/src/lib/services/leap-events.service.js +357 -0
- package/src/lib/services/leap-events.service.js.map +1 -0
- package/src/lib/services/logger/logger.service.d.ts +10 -0
- package/src/lib/services/logger/logger.service.js +39 -0
- package/src/lib/services/logger/logger.service.js.map +1 -0
- package/src/lib/services/signalr/signalr.service.d.ts +9 -0
- package/src/lib/services/signalr/signalr.service.js +93 -0
- package/src/lib/services/signalr/signalr.service.js.map +1 -0
- package/.eslintrc.json +0 -25
- package/project.json +0 -27
- package/src/index.ts +0 -44
- package/src/lib/app-platform.ts +0 -270
- package/src/lib/environment/environment.dictionary.ts +0 -28
- package/src/lib/environment/environment.ts +0 -44
- package/src/lib/environment/leap/env.dev.au.config.ts +0 -33
- package/src/lib/environment/leap/env.live.au.config.ts +0 -32
- package/src/lib/environment/leap/env.live.ca.config.ts +0 -32
- package/src/lib/environment/leap/env.live.nz.config.ts +0 -32
- package/src/lib/environment/leap/env.live.uk.config.ts +0 -32
- package/src/lib/environment/leap/env.live.us.config.ts +0 -32
- package/src/lib/environment/leap/env.liveb.au.config.ts +0 -32
- package/src/lib/environment/leap/env.test.au.config.ts +0 -33
- package/src/lib/environment/leap/env.test.ca.config.ts +0 -33
- package/src/lib/environment/leap/env.test.nz.config.ts +0 -33
- package/src/lib/environment/leap/env.test.uk.config.ts +0 -33
- package/src/lib/environment/leap/env.test.us.config.ts +0 -33
- package/src/lib/functions/helpers.ts +0 -100
- package/src/lib/functions/xml.ts +0 -41
- package/src/lib/models/calc-api.model.ts +0 -74
- package/src/lib/models/constants/index.ts +0 -29
- package/src/lib/models/leap-events.model.ts +0 -79
- package/src/lib/models/leap.model.ts +0 -78
- package/src/lib/models/signalr.model.ts +0 -22
- package/src/lib/services/auth/auth.service.ts +0 -219
- package/src/lib/services/calc-api/calc-api-service.interface.ts +0 -12
- package/src/lib/services/calc-api/calc-word.service.ts +0 -117
- package/src/lib/services/calc-api/promise-helper.function.ts +0 -26
- package/src/lib/services/custom-xml-part.service.ts +0 -340
- package/src/lib/services/document/document.service.ts +0 -33
- package/src/lib/services/leap-events.service.ts +0 -489
- package/src/lib/services/logger/logger.service.ts +0 -42
- package/src/lib/services/signalr/signalr.service.ts +0 -88
- package/tsconfig.json +0 -20
- package/tsconfig.lib.json +0 -12
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
/// <reference types="office-js" />
|
|
2
|
-
|
|
3
|
-
import { promisifyAsync } from '../functions/helpers';
|
|
4
|
-
import { toObj, toXml } from '../functions/xml';
|
|
5
|
-
const retryTimes = 5;
|
|
6
|
-
|
|
7
|
-
const getCustomXmlPartsByNamespace = (
|
|
8
|
-
namespace: string
|
|
9
|
-
): Promise<Array<Office.CustomXmlPart> | null> => {
|
|
10
|
-
const officeDocument: Office.Document = Office.context.document;
|
|
11
|
-
if (officeDocument) {
|
|
12
|
-
const officeCustomXmlParts = officeDocument.customXmlParts;
|
|
13
|
-
//todo: use this format instead of promisifyAsync
|
|
14
|
-
return new Promise((resolve) => {
|
|
15
|
-
officeCustomXmlParts.getByNamespaceAsync(namespace, (result)=> {
|
|
16
|
-
resolve(result.value)
|
|
17
|
-
})
|
|
18
|
-
} )
|
|
19
|
-
} else {
|
|
20
|
-
return Promise.resolve(null);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
//todo: remove all "any" reference in the project
|
|
25
|
-
const getCustomXmlPartByNamespace = (namespace: string): Promise<any> => {
|
|
26
|
-
return getCustomXmlPartsByNamespace(namespace)
|
|
27
|
-
.then((customXmlParts: any) => {
|
|
28
|
-
if (customXmlParts != null) {
|
|
29
|
-
// We have something
|
|
30
|
-
if (Array.isArray(customXmlParts)) {
|
|
31
|
-
if (customXmlParts.length > 0) {
|
|
32
|
-
return customXmlParts[0]; // Happy path
|
|
33
|
-
} else {
|
|
34
|
-
return null; // No error, but no matching custom XML part either
|
|
35
|
-
}
|
|
36
|
-
} else {
|
|
37
|
-
// We have something, but it's not an array
|
|
38
|
-
return customXmlParts;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return null; // No error, but no matching custom XML part either
|
|
42
|
-
})
|
|
43
|
-
.catch((error) => {
|
|
44
|
-
console.error(
|
|
45
|
-
error,
|
|
46
|
-
`[CustomXmlPartService] (getCustomXmlPartByNamespace) Failed to get custom XML part by namespace`
|
|
47
|
-
);
|
|
48
|
-
return null;
|
|
49
|
-
});
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
const getCustomXmlPartData = (partOrNamespace: string): Promise<any> => {
|
|
53
|
-
return new Promise((resolve, reject) => {
|
|
54
|
-
return new Promise((innerResolve) => {
|
|
55
|
-
if (typeof partOrNamespace === 'string') {
|
|
56
|
-
innerResolve(getCustomXmlPartByNamespace(partOrNamespace));
|
|
57
|
-
} else {
|
|
58
|
-
return innerResolve(partOrNamespace);
|
|
59
|
-
}
|
|
60
|
-
})
|
|
61
|
-
.then((customXmlPart: any) => {
|
|
62
|
-
if (customXmlPart != null) {
|
|
63
|
-
const getXmlAsync = promisifyAsync(
|
|
64
|
-
customXmlPart.getXmlAsync.bind(customXmlPart)
|
|
65
|
-
);
|
|
66
|
-
return getXmlAsync({});
|
|
67
|
-
} else {
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
})
|
|
71
|
-
.then((result) => {
|
|
72
|
-
resolve(toObj(result as string));
|
|
73
|
-
})
|
|
74
|
-
.catch((error) => {
|
|
75
|
-
console.error(
|
|
76
|
-
error,
|
|
77
|
-
`[CustomXmlPartService] (getCustomXmlPartData) Failed to get custom XML part data`
|
|
78
|
-
);
|
|
79
|
-
reject(error);
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const getNodes = (
|
|
85
|
-
customXmlPart: Office.CustomXmlPart,
|
|
86
|
-
xPath: string = '/*'
|
|
87
|
-
): Promise<Array<Office.CustomXmlNode>> => {
|
|
88
|
-
const getNodes = promisifyAsync<Array<Office.CustomXmlNode>>(
|
|
89
|
-
customXmlPart.getNodesAsync.bind(customXmlPart)
|
|
90
|
-
);
|
|
91
|
-
return getNodes(xPath);
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
const setNodeXml = (node: Office.CustomXmlNode, xml: string): Promise<void> => {
|
|
95
|
-
const setXml = promisifyAsync<void>(node.setXmlAsync.bind(node));
|
|
96
|
-
return setXml(xml, {});
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
const updateCustomXmlPart = (
|
|
100
|
-
customXmlPart: any,
|
|
101
|
-
xml: string,
|
|
102
|
-
rootTagName: string
|
|
103
|
-
): Promise<void> => {
|
|
104
|
-
rootTagName = rootTagName || '';
|
|
105
|
-
const promises: Array<Promise<void>> = [];
|
|
106
|
-
// If custom XML part exists, replace it
|
|
107
|
-
return getNodes(customXmlPart)
|
|
108
|
-
.then((nodes: Array<Office.CustomXmlNode>) => {
|
|
109
|
-
for (let i = 0; i < nodes.length; i++) {
|
|
110
|
-
const node: any = nodes[i] as Office.CustomXmlNode;
|
|
111
|
-
|
|
112
|
-
if (
|
|
113
|
-
node &&
|
|
114
|
-
node.baseName &&
|
|
115
|
-
node.baseName.toUpperCase() === rootTagName.toUpperCase()
|
|
116
|
-
) {
|
|
117
|
-
// Case-insensitive match
|
|
118
|
-
const promise = setNodeXml(node, xml)
|
|
119
|
-
.then(() => {
|
|
120
|
-
console.log(
|
|
121
|
-
'[CustomXmlPartService] updateCustomXmlPart succeeded'
|
|
122
|
-
);
|
|
123
|
-
})
|
|
124
|
-
.catch((error) => {
|
|
125
|
-
console.error(
|
|
126
|
-
error,
|
|
127
|
-
'[CustomXmlPartService] updateCustomXmlPart failed'
|
|
128
|
-
);
|
|
129
|
-
return Promise.reject(error);
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
promises.push(promise);
|
|
133
|
-
} else {
|
|
134
|
-
console.log(`Could not find ${rootTagName} in the custom XML part`);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
})
|
|
138
|
-
.then(() => {
|
|
139
|
-
return Promise.all(promises);
|
|
140
|
-
})
|
|
141
|
-
.then(() => {
|
|
142
|
-
return Promise.resolve();
|
|
143
|
-
});
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
const addCustomXmlPart = (objOrXml: any, options?: any): Promise<void> => {
|
|
147
|
-
return new Promise<void>((resolve, reject) => {
|
|
148
|
-
Promise.resolve()
|
|
149
|
-
.then(() => {
|
|
150
|
-
// Setup values
|
|
151
|
-
let obj: any; //todo: check this obj
|
|
152
|
-
let xml: string;
|
|
153
|
-
options = options || { rootTagName: '' };
|
|
154
|
-
if (typeof objOrXml === 'string' || objOrXml instanceof String) {
|
|
155
|
-
obj = toObj(objOrXml as string);
|
|
156
|
-
xml = objOrXml as string;
|
|
157
|
-
} else {
|
|
158
|
-
obj = objOrXml;
|
|
159
|
-
xml = toXml(objOrXml, options.rootTagName, options);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
const officeDocument: Office.Document = Office.context.document;
|
|
163
|
-
const officeCustomXmlParts = officeDocument.customXmlParts;
|
|
164
|
-
const add = promisifyAsync<Office.CustomXmlPart>(
|
|
165
|
-
officeCustomXmlParts.addAsync.bind(officeCustomXmlParts)
|
|
166
|
-
);
|
|
167
|
-
return add(xml, {});
|
|
168
|
-
})
|
|
169
|
-
.then((customXmlPart) => {
|
|
170
|
-
if (customXmlPart == null) {
|
|
171
|
-
// TODO
|
|
172
|
-
}
|
|
173
|
-
resolve();
|
|
174
|
-
})
|
|
175
|
-
.catch((error) => {
|
|
176
|
-
console.error(
|
|
177
|
-
error,
|
|
178
|
-
`[CustomXmlPartService] (addCustomXmlPart) Failed to add custom XML part`
|
|
179
|
-
);
|
|
180
|
-
reject(error);
|
|
181
|
-
});
|
|
182
|
-
});
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
const updateCustomXmlPartData = (
|
|
186
|
-
partOrNamespace: Office.CustomXmlPart | string,
|
|
187
|
-
objOrXml: any,
|
|
188
|
-
options?: any
|
|
189
|
-
): Promise<boolean> => {
|
|
190
|
-
return new Promise<boolean>((resolve, reject) => {
|
|
191
|
-
return new Promise<Office.CustomXmlPart | null>((innerResolve) => {
|
|
192
|
-
if (typeof partOrNamespace === 'string' || partOrNamespace instanceof String) {
|
|
193
|
-
innerResolve(getCustomXmlPartByNamespace(partOrNamespace as string));
|
|
194
|
-
} else {
|
|
195
|
-
return innerResolve(partOrNamespace);
|
|
196
|
-
}
|
|
197
|
-
})
|
|
198
|
-
.then((customXmlPart) => {
|
|
199
|
-
// Setup values
|
|
200
|
-
let obj: any;
|
|
201
|
-
let xml: string;
|
|
202
|
-
options = options || { rootTagName: '' };
|
|
203
|
-
if (typeof objOrXml === 'string' || objOrXml instanceof String) {
|
|
204
|
-
obj = toObj(objOrXml as string);
|
|
205
|
-
xml = objOrXml as string;
|
|
206
|
-
} else {
|
|
207
|
-
obj = objOrXml;
|
|
208
|
-
xml = toXml(objOrXml, options.rootTagName, options);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
if (customXmlPart != null) {
|
|
212
|
-
return updateCustomXmlPart(customXmlPart, xml, options.rootTagName);
|
|
213
|
-
} else {
|
|
214
|
-
return addCustomXmlPart(xml, options);
|
|
215
|
-
}
|
|
216
|
-
})
|
|
217
|
-
.then(() => {
|
|
218
|
-
resolve(true);
|
|
219
|
-
})
|
|
220
|
-
.catch((error) => {
|
|
221
|
-
console.error(
|
|
222
|
-
error,
|
|
223
|
-
`[CustomXmlPartService] (updateCustomXmlPartData) Failed to update ` +
|
|
224
|
-
`${
|
|
225
|
-
typeof partOrNamespace === 'string' ? partOrNamespace : ''
|
|
226
|
-
} custom XML part`
|
|
227
|
-
);
|
|
228
|
-
reject(error);
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
};
|
|
232
|
-
|
|
233
|
-
const retryUpdateCustomXmlPartData = (
|
|
234
|
-
namespace: string,
|
|
235
|
-
data: string,
|
|
236
|
-
options: { rootTagName: string } & { [key: string]: any },
|
|
237
|
-
retries = retryTimes
|
|
238
|
-
): Promise<void> => {
|
|
239
|
-
const { rootTagName } = options;
|
|
240
|
-
return new Promise<void>((resolve, reject) => {
|
|
241
|
-
console.log(
|
|
242
|
-
`[CustomXmlPartService] Updating ${namespace} tag ${rootTagName}`
|
|
243
|
-
);
|
|
244
|
-
updateCustomXmlPartData(namespace, data, options)
|
|
245
|
-
.then(() => {
|
|
246
|
-
resolve();
|
|
247
|
-
})
|
|
248
|
-
.catch((error) => {
|
|
249
|
-
if (retries > 0) {
|
|
250
|
-
console.log(
|
|
251
|
-
`[CustomXmlPartService] Update ${namespace} tag ${rootTagName} failed - Retrying ${
|
|
252
|
-
retryTimes - retries + 1
|
|
253
|
-
}...`
|
|
254
|
-
);
|
|
255
|
-
setTimeout(() => {
|
|
256
|
-
retryUpdateCustomXmlPartData(namespace, data, options, retries - 1)
|
|
257
|
-
.then(resolve)
|
|
258
|
-
.catch(reject);
|
|
259
|
-
}, 2000);
|
|
260
|
-
} else {
|
|
261
|
-
reject(error);
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
});
|
|
265
|
-
};
|
|
266
|
-
|
|
267
|
-
export const getDataByNamespace = (
|
|
268
|
-
namespace: string,
|
|
269
|
-
retries = 6
|
|
270
|
-
): Promise<any> => {
|
|
271
|
-
return new Promise((resolve, reject) => {
|
|
272
|
-
getCustomXmlPartData(namespace)
|
|
273
|
-
.then((data) => {
|
|
274
|
-
resolve(data);
|
|
275
|
-
})
|
|
276
|
-
.catch((_) => {
|
|
277
|
-
if (retries > 0) {
|
|
278
|
-
console.log(
|
|
279
|
-
`[CustomXmlPartService] Get data from ${namespace} failed - Retrying ${
|
|
280
|
-
retryTimes - retries + 1
|
|
281
|
-
}...`
|
|
282
|
-
);
|
|
283
|
-
setTimeout(() => {
|
|
284
|
-
getDataByNamespace(namespace, retries - 1)
|
|
285
|
-
.then(resolve)
|
|
286
|
-
.catch(reject);
|
|
287
|
-
}, 2000);
|
|
288
|
-
} else {
|
|
289
|
-
reject(`Unable to get custom XML part using namespace ${namespace}`);
|
|
290
|
-
}
|
|
291
|
-
});
|
|
292
|
-
});
|
|
293
|
-
};
|
|
294
|
-
|
|
295
|
-
export const updateXmlDataByNamespace = (
|
|
296
|
-
namespace: string,
|
|
297
|
-
data: string,
|
|
298
|
-
rootTagName: string
|
|
299
|
-
): Promise<void> => {
|
|
300
|
-
const options = { rootTagName };
|
|
301
|
-
return retryUpdateCustomXmlPartData(namespace, data, options);
|
|
302
|
-
};
|
|
303
|
-
|
|
304
|
-
export const addHandlerForCustomXmlPart = (
|
|
305
|
-
namespace: string,
|
|
306
|
-
eventType: Office.EventType,
|
|
307
|
-
handler: any
|
|
308
|
-
): Promise<void | null> => {
|
|
309
|
-
return getCustomXmlPartByNamespace(namespace).then((customXmlPart: any) => {
|
|
310
|
-
if (customXmlPart != null) {
|
|
311
|
-
const addHandler = promisifyAsync<void>(
|
|
312
|
-
customXmlPart.addHandlerAsync.bind(customXmlPart)
|
|
313
|
-
);
|
|
314
|
-
return addHandler(eventType, handler, {});
|
|
315
|
-
} else {
|
|
316
|
-
return null;
|
|
317
|
-
}
|
|
318
|
-
});
|
|
319
|
-
};
|
|
320
|
-
|
|
321
|
-
export const getChildNodes = (
|
|
322
|
-
node: Office.CustomXmlNode,
|
|
323
|
-
xPath: string = '*'
|
|
324
|
-
): Promise<Array<Office.CustomXmlNode>> => {
|
|
325
|
-
const getNodes = promisifyAsync<Array<Office.CustomXmlNode>>(
|
|
326
|
-
node.getNodesAsync.bind(node)
|
|
327
|
-
);
|
|
328
|
-
return getNodes(xPath);
|
|
329
|
-
};
|
|
330
|
-
|
|
331
|
-
export const getNodeText = (
|
|
332
|
-
node: Office.CustomXmlNode | null
|
|
333
|
-
): Promise<string> => {
|
|
334
|
-
if (node) {
|
|
335
|
-
const getText = promisifyAsync<string>(node.getTextAsync.bind(node));
|
|
336
|
-
return getText({});
|
|
337
|
-
} else {
|
|
338
|
-
return Promise.resolve('');
|
|
339
|
-
}
|
|
340
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { LeapEventAction, LeapEventType } from '../../models/leap-events.model';
|
|
2
|
-
import { LeapEventsService } from '../leap-events.service';
|
|
3
|
-
import { LoggerService } from '../logger/logger.service';
|
|
4
|
-
|
|
5
|
-
export class DocumentService {
|
|
6
|
-
constructor(
|
|
7
|
-
private leapEventsService: LeapEventsService,
|
|
8
|
-
private loggerService: LoggerService
|
|
9
|
-
) {}
|
|
10
|
-
|
|
11
|
-
createDocument(params: {precedentId: string, body: string, closeExisting?: boolean}): Promise<{precedentId: string, body: string, closeExisting?: boolean}> {
|
|
12
|
-
return new Promise((resolve) => {
|
|
13
|
-
Promise.resolve(() => {
|
|
14
|
-
this.loggerService.log(
|
|
15
|
-
'[DocumentService] (createDocument) Creating a document based on the precedent and generated body'
|
|
16
|
-
);
|
|
17
|
-
})
|
|
18
|
-
.then(() => {
|
|
19
|
-
const id = new Date().getTime().toString();
|
|
20
|
-
return this.leapEventsService.addEvent({
|
|
21
|
-
id,
|
|
22
|
-
correlationId: null,
|
|
23
|
-
eventType: LeapEventType.WordAppEvent,
|
|
24
|
-
action: LeapEventAction.WordApp_CreateDocument,
|
|
25
|
-
data: params
|
|
26
|
-
});
|
|
27
|
-
})
|
|
28
|
-
.then(() =>{
|
|
29
|
-
return resolve(params)
|
|
30
|
-
})
|
|
31
|
-
})
|
|
32
|
-
}
|
|
33
|
-
}
|