cbcore-ts 1.0.0
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/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/uicore.iml +9 -0
- package/.idea/vcs.xml +6 -0
- package/.jshintrc +4 -0
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/compiledScripts/CBCore.d.ts +54 -0
- package/compiledScripts/CBCore.js +182 -0
- package/compiledScripts/CBCore.js.map +7 -0
- package/compiledScripts/CBDataInterfaces.d.ts +156 -0
- package/compiledScripts/CBDataInterfaces.js +35 -0
- package/compiledScripts/CBDataInterfaces.js.map +7 -0
- package/compiledScripts/CBLanguageService.d.ts +43 -0
- package/compiledScripts/CBLanguageService.js +167 -0
- package/compiledScripts/CBLanguageService.js.map +7 -0
- package/compiledScripts/CBServerClient.d.ts +10 -0
- package/compiledScripts/CBServerClient.js +88 -0
- package/compiledScripts/CBServerClient.js.map +7 -0
- package/compiledScripts/CBSocketCallbackHolder.d.ts +65 -0
- package/compiledScripts/CBSocketCallbackHolder.js +343 -0
- package/compiledScripts/CBSocketCallbackHolder.js.map +7 -0
- package/compiledScripts/CBSocketClient.d.ts +70 -0
- package/compiledScripts/CBSocketClient.js +371 -0
- package/compiledScripts/CBSocketClient.js.map +7 -0
- package/compiledScripts/index.d.ts +6 -0
- package/compiledScripts/index.js +23 -0
- package/compiledScripts/index.js.map +7 -0
- package/etsc.config.mjs +23 -0
- package/package.json +51 -0
- package/rollup.config.js +49 -0
- package/scripts/CBCore.ts +381 -0
- package/scripts/CBDataInterfaces.ts +336 -0
- package/scripts/CBLanguageService.ts +371 -0
- package/scripts/CBServerClient.ts +147 -0
- package/scripts/CBSocketCallbackHolder.ts +872 -0
- package/scripts/CBSocketClient.ts +748 -0
- package/scripts/index.ts +18 -0
- package/tsconfig.json +69 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FIRST_OR_NIL,
|
|
3
|
+
IS,
|
|
4
|
+
IS_DEFINED,
|
|
5
|
+
IS_NOT,
|
|
6
|
+
nil,
|
|
7
|
+
UICore,
|
|
8
|
+
UILanguageService,
|
|
9
|
+
UILocalizedTextObject,
|
|
10
|
+
UIRoute,
|
|
11
|
+
UIView
|
|
12
|
+
} from "uicore-ts"
|
|
13
|
+
import { CBCore } from "./CBCore"
|
|
14
|
+
import { CBLocalizedTextObject } from "./CBDataInterfaces"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
export interface ParticularLanguageValues {
|
|
18
|
+
|
|
19
|
+
[x: string]: string
|
|
20
|
+
|
|
21
|
+
topBarTitle: string;
|
|
22
|
+
selectLanguageTitle: string;
|
|
23
|
+
languageNameShort: string;
|
|
24
|
+
leftBarTitle: string;
|
|
25
|
+
languageName: string
|
|
26
|
+
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
export interface LanguageValues {
|
|
31
|
+
|
|
32
|
+
[x: string]: ParticularLanguageValues
|
|
33
|
+
|
|
34
|
+
en: ParticularLanguageValues
|
|
35
|
+
est: ParticularLanguageValues
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
export class CBLanguageService implements UILanguageService {
|
|
41
|
+
|
|
42
|
+
static _currentLanguageKey: string
|
|
43
|
+
|
|
44
|
+
static languageValues: LanguageValues = {
|
|
45
|
+
|
|
46
|
+
en: {
|
|
47
|
+
|
|
48
|
+
languageName: "English",
|
|
49
|
+
languageNameShort: "ENG",
|
|
50
|
+
|
|
51
|
+
topBarTitle: "UICore application",
|
|
52
|
+
|
|
53
|
+
selectLanguageTitle: "Select language",
|
|
54
|
+
leftBarTitle: "Title"
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
},
|
|
58
|
+
est: {
|
|
59
|
+
|
|
60
|
+
languageName: "Eesti keel",
|
|
61
|
+
languageNameShort: "EST",
|
|
62
|
+
|
|
63
|
+
topBarTitle: "UICore rakendus",
|
|
64
|
+
|
|
65
|
+
selectLanguageTitle: "Vali keel",
|
|
66
|
+
leftBarTitle: "Pealkiri"
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
static languages = JSON.parse(JSON.stringify(CBLanguageService.languageValues))
|
|
77
|
+
|
|
78
|
+
static useStoredLanguageValues(values = {}) {
|
|
79
|
+
|
|
80
|
+
const result = JSON.parse(JSON.stringify(CBLanguageService.languageValues))
|
|
81
|
+
.objectByCopyingValuesRecursivelyFromObject(
|
|
82
|
+
values) as any
|
|
83
|
+
|
|
84
|
+
if (JSON.stringify(result) != JSON.stringify(CBLanguageService.languages)) {
|
|
85
|
+
|
|
86
|
+
CBLanguageService.languages = result
|
|
87
|
+
|
|
88
|
+
CBLanguageService.broadcastLanguageChangeEvent()
|
|
89
|
+
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
static broadcastLanguageChangeEvent(view?: UIView) {
|
|
96
|
+
|
|
97
|
+
view = view as any || CBCore.sharedInstance.viewCores.everyElement.rootViewController.view.rootView as any
|
|
98
|
+
|
|
99
|
+
view.broadcastEventInSubtree({
|
|
100
|
+
name: UIView.broadcastEventName.LanguageChanged,
|
|
101
|
+
parameters: {}
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
static get defaultLanguageKey() {
|
|
107
|
+
|
|
108
|
+
// @ts-ignore
|
|
109
|
+
return (CBCoreInitializerObject.defaultLanguageKey || "en")
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
static get currentLanguageKey() {
|
|
114
|
+
|
|
115
|
+
if (!CBLanguageService._currentLanguageKey) {
|
|
116
|
+
|
|
117
|
+
CBLanguageService.updateCurrentLanguageKey()
|
|
118
|
+
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return CBLanguageService._currentLanguageKey
|
|
122
|
+
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
updateCurrentLanguageKey() {
|
|
126
|
+
|
|
127
|
+
CBLanguageService.updateCurrentLanguageKey()
|
|
128
|
+
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
static updateCurrentLanguageKey(route = UIRoute.currentRoute) {
|
|
132
|
+
|
|
133
|
+
let result = route.componentWithName("settings").parameters.language
|
|
134
|
+
|
|
135
|
+
if (IS_NOT(result)) {
|
|
136
|
+
|
|
137
|
+
result = CBLanguageService.defaultLanguageKey
|
|
138
|
+
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const isChanged = (result != CBLanguageService._currentLanguageKey)
|
|
142
|
+
|
|
143
|
+
CBLanguageService._currentLanguageKey = result
|
|
144
|
+
|
|
145
|
+
if (isChanged) {
|
|
146
|
+
|
|
147
|
+
CBCore.sharedInstance.languageKey = result
|
|
148
|
+
|
|
149
|
+
CBLanguageService.broadcastLanguageChangeEvent()
|
|
150
|
+
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
get currentLanguageKey() {
|
|
156
|
+
|
|
157
|
+
const result = CBLanguageService.currentLanguageKey
|
|
158
|
+
|
|
159
|
+
return result
|
|
160
|
+
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
static stringForKey(
|
|
166
|
+
key: string,
|
|
167
|
+
languageKey: string,
|
|
168
|
+
defaultString: string,
|
|
169
|
+
parameters?: { [x: string]: string | UILocalizedTextObject; }
|
|
170
|
+
) {
|
|
171
|
+
|
|
172
|
+
var result
|
|
173
|
+
|
|
174
|
+
if (IS(key) && CBLanguageService.languages[languageKey] &&
|
|
175
|
+
IS_DEFINED(CBLanguageService.languages[languageKey][key])) {
|
|
176
|
+
|
|
177
|
+
result = CBLanguageService.languages[languageKey][key]
|
|
178
|
+
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
|
|
182
|
+
result = defaultString
|
|
183
|
+
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (IS(parameters)) {
|
|
187
|
+
|
|
188
|
+
const parameterKeys = Object.keys(parameters)
|
|
189
|
+
|
|
190
|
+
parameterKeys.forEach(function (key, index, array) {
|
|
191
|
+
|
|
192
|
+
const keyString = "%" + key + "%"
|
|
193
|
+
|
|
194
|
+
const parameter = parameters[key]
|
|
195
|
+
|
|
196
|
+
var parameterString
|
|
197
|
+
|
|
198
|
+
if (parameter instanceof Object) {
|
|
199
|
+
|
|
200
|
+
parameterString = UICore.languageService.stringForCurrentLanguage(parameter as UILocalizedTextObject)
|
|
201
|
+
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
|
|
205
|
+
parameterString = parameter
|
|
206
|
+
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
result = result.replace(new RegExp(keyString, "g"), parameterString)
|
|
211
|
+
|
|
212
|
+
})
|
|
213
|
+
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
return result
|
|
217
|
+
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
stringForKey(
|
|
221
|
+
key: string,
|
|
222
|
+
languageKey: string,
|
|
223
|
+
defaultString: string,
|
|
224
|
+
parameters?: { [x: string]: string | UILocalizedTextObject; }
|
|
225
|
+
) {
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
return CBLanguageService.stringForKey(key, languageKey, defaultString, parameters)
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
static localizedTextObjectForKey(
|
|
235
|
+
key: string,
|
|
236
|
+
defaultString = key,
|
|
237
|
+
parameters?: { [x: string]: string | UILocalizedTextObject; }
|
|
238
|
+
) {
|
|
239
|
+
|
|
240
|
+
const result = {}
|
|
241
|
+
|
|
242
|
+
CBLanguageService.languages.forEach(function (languageObject, languageKey) {
|
|
243
|
+
|
|
244
|
+
result[languageKey] = CBLanguageService.stringForKey(key, languageKey, defaultString, parameters)
|
|
245
|
+
|
|
246
|
+
})
|
|
247
|
+
|
|
248
|
+
return result
|
|
249
|
+
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
localizedTextObjectForKey(
|
|
253
|
+
key: string,
|
|
254
|
+
defaultString?: string,
|
|
255
|
+
parameters?: { [x: string]: string | UILocalizedTextObject; }
|
|
256
|
+
) {
|
|
257
|
+
|
|
258
|
+
const result = CBLanguageService.localizedTextObjectForKey(key, defaultString, parameters)
|
|
259
|
+
|
|
260
|
+
return result
|
|
261
|
+
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
static localizedTextObjectForText(text: string) {
|
|
266
|
+
|
|
267
|
+
if (IS_NOT(text)) {
|
|
268
|
+
|
|
269
|
+
return nil
|
|
270
|
+
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
const result = {
|
|
274
|
+
|
|
275
|
+
[CBLanguageService.defaultLanguageKey]: text
|
|
276
|
+
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
return result
|
|
280
|
+
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
localizedTextObjectForText(text: string) {
|
|
284
|
+
|
|
285
|
+
const result = CBLanguageService.localizedTextObjectForText(text)
|
|
286
|
+
|
|
287
|
+
return result
|
|
288
|
+
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
static stringForCurrentLanguage(localizedTextObject: CBLocalizedTextObject | string) {
|
|
293
|
+
|
|
294
|
+
if (!CBLanguageService || !localizedTextObject) {
|
|
295
|
+
|
|
296
|
+
const asd = 1
|
|
297
|
+
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
if (localizedTextObject === "" + localizedTextObject) {
|
|
301
|
+
|
|
302
|
+
return localizedTextObject
|
|
303
|
+
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
localizedTextObject = FIRST_OR_NIL(localizedTextObject)
|
|
307
|
+
|
|
308
|
+
var result = localizedTextObject[CBLanguageService.currentLanguageKey]
|
|
309
|
+
|
|
310
|
+
if (IS_NOT(result)) {
|
|
311
|
+
|
|
312
|
+
result = localizedTextObject[CBLanguageService.defaultLanguageKey]
|
|
313
|
+
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
if (IS_NOT(result)) {
|
|
317
|
+
|
|
318
|
+
result = localizedTextObject["en"]
|
|
319
|
+
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
if (IS_NOT(result)) {
|
|
323
|
+
|
|
324
|
+
result = ""
|
|
325
|
+
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
return result
|
|
329
|
+
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
stringForCurrentLanguage(localizedTextObject: CBLocalizedTextObject) {
|
|
333
|
+
|
|
334
|
+
return CBLanguageService.stringForCurrentLanguage(localizedTextObject)
|
|
335
|
+
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
UICore.languageService = CBLanguageService
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { IS, nil, UIObject, YES } from "../../uicore-ts"
|
|
2
|
+
import { CBCore } from "./CBCore"
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
export class CBServerClient extends UIObject {
|
|
6
|
+
|
|
7
|
+
_core: CBCore
|
|
8
|
+
|
|
9
|
+
constructor(core: CBCore) {
|
|
10
|
+
|
|
11
|
+
super()
|
|
12
|
+
|
|
13
|
+
this._core = core
|
|
14
|
+
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
sendJSONObject(URL: string, objectToSend: any, completion: (response: any) => void) {
|
|
19
|
+
|
|
20
|
+
this.sendRequest("POST", URL, objectToSend, function (this: CBServerClient, status, response) {
|
|
21
|
+
if (status != 200) {
|
|
22
|
+
|
|
23
|
+
console.log("GET " + URL + " " + status)
|
|
24
|
+
|
|
25
|
+
if (IS(completion)) {
|
|
26
|
+
completion(nil)
|
|
27
|
+
}
|
|
28
|
+
return
|
|
29
|
+
}
|
|
30
|
+
const result = JSON.parse(response)
|
|
31
|
+
|
|
32
|
+
if (IS(completion)) {
|
|
33
|
+
completion(result)
|
|
34
|
+
}
|
|
35
|
+
}.bind(this))
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
retrieveJSONObject(URL: string, completion: (response: any) => void) {
|
|
40
|
+
|
|
41
|
+
this.retrieveJSONObjectWithCaching(URL, nil, nil, YES, completion)
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
retrieveJSONObjectWithCaching(
|
|
46
|
+
URL: string,
|
|
47
|
+
cacheObject: any,
|
|
48
|
+
cacheKey: string,
|
|
49
|
+
forceUpdate: boolean,
|
|
50
|
+
completion: (response: any) => void
|
|
51
|
+
) {
|
|
52
|
+
if (IS(cacheObject[cacheKey]) && !forceUpdate) {
|
|
53
|
+
if (IS(completion)) {
|
|
54
|
+
completion(cacheObject[cacheKey])
|
|
55
|
+
}
|
|
56
|
+
return
|
|
57
|
+
}
|
|
58
|
+
this.sendRequest("GET", URL, null, function (this: CBServerClient, status, response) {
|
|
59
|
+
if (status != 200) {
|
|
60
|
+
|
|
61
|
+
console.log("GET " + URL + " " + status)
|
|
62
|
+
|
|
63
|
+
if (IS(completion)) {
|
|
64
|
+
completion(nil)
|
|
65
|
+
}
|
|
66
|
+
return
|
|
67
|
+
}
|
|
68
|
+
const result = JSON.parse(response)
|
|
69
|
+
cacheObject[cacheKey] = result
|
|
70
|
+
if (IS(completion)) {
|
|
71
|
+
completion(result)
|
|
72
|
+
}
|
|
73
|
+
}.bind(this))
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
sendRequest(method: string, URL: string, data: any, completion: (status: number, response: string) => void) {
|
|
77
|
+
|
|
78
|
+
const xhr = new XMLHttpRequest()
|
|
79
|
+
xhr.open(method, URL, true)
|
|
80
|
+
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8")
|
|
81
|
+
xhr.onreadystatechange = processRequest
|
|
82
|
+
|
|
83
|
+
function processRequest(event: Event) {
|
|
84
|
+
|
|
85
|
+
if (xhr.readyState == 4) {
|
|
86
|
+
if (IS(completion)) {
|
|
87
|
+
completion(xhr.status, xhr.responseText)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
xhr.send(JSON.stringify(data))
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|