cradova 3.0.0 → 3.1.1
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/README.md +11 -9
- package/dist/index.d.ts +184 -172
- package/dist/index.js +397 -408
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
============================================================================="
|
|
4
|
+
██████╗ ██████╗ █████═╗ ███████╗ ███████╗ ██╗ ██╗ █████╗
|
|
5
|
+
██╔════╝ ██╔══██╗ ██╔═╗██║ █ ██ ██╔═════╝█ ██║ ██║ ██╔═╗██
|
|
6
|
+
██║ ██████╔╝ ███████║ █ ██ ██║ ██ ██║ ██║ ██████╗
|
|
7
|
+
██║ ██╔══██╗ ██║ ██║ █ ██ ██║ ██ ╚██╗ ██╔╝ ██║ ██╗
|
|
8
|
+
╚██████╗ ██║ ██║ ██║ ██║ ███████╔╝ ████████ ╚███╔╝ ██║ ██║
|
|
9
|
+
╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚════╝ ╚══╝ ╚═╝ ╚═╝
|
|
10
|
+
=============================================================================
|
|
11
|
+
Cradova FrameWork
|
|
12
|
+
@version 3.0.0
|
|
13
|
+
License: Apache V2
|
|
14
|
+
Copyright 2022 Friday Candour.
|
|
15
|
+
Repository - https://github.com/fridaycandour/cradova
|
|
16
|
+
=============================================================================
|
|
17
|
+
*/
|
|
1
18
|
// lib/parts/fns.ts
|
|
2
|
-
var isNode = (
|
|
19
|
+
var isNode = (element) => element instanceof HTMLElement || element instanceof DocumentFragment;
|
|
3
20
|
var cradovaEvent = class {
|
|
4
21
|
constructor() {
|
|
5
22
|
this.listeners = {};
|
|
@@ -10,6 +27,9 @@ var cradovaEvent = class {
|
|
|
10
27
|
}
|
|
11
28
|
this.listeners[eventName].push(callback);
|
|
12
29
|
}
|
|
30
|
+
// removeEventListener(eventName: string, num: number) {
|
|
31
|
+
// this.listeners[eventName].splice(num, 1);
|
|
32
|
+
// }
|
|
13
33
|
dispatchEvent(eventName, eventArgs) {
|
|
14
34
|
const eventListeners = this.listeners[eventName] || [];
|
|
15
35
|
for (; eventListeners.length !== 0; ) {
|
|
@@ -71,6 +91,12 @@ function assert(condition, ...elements) {
|
|
|
71
91
|
}
|
|
72
92
|
return void 0;
|
|
73
93
|
}
|
|
94
|
+
function assertOr(condition, ifTrue, ifFalse) {
|
|
95
|
+
if (condition) {
|
|
96
|
+
return ifTrue;
|
|
97
|
+
}
|
|
98
|
+
return ifFalse;
|
|
99
|
+
}
|
|
74
100
|
function loop(datalist2, component) {
|
|
75
101
|
if (typeof component !== "function") {
|
|
76
102
|
throw new Error(
|
|
@@ -79,87 +105,81 @@ function loop(datalist2, component) {
|
|
|
79
105
|
}
|
|
80
106
|
return Array.isArray(datalist2) ? datalist2.map(component) : void 0;
|
|
81
107
|
}
|
|
82
|
-
function assertOr(condition, ifTrue, ifFalse) {
|
|
83
|
-
if (condition) {
|
|
84
|
-
return ifTrue;
|
|
85
|
-
}
|
|
86
|
-
return ifFalse;
|
|
87
|
-
}
|
|
88
108
|
var Ref = class {
|
|
89
109
|
constructor(component) {
|
|
90
110
|
this.effects = [];
|
|
91
111
|
this.effectuate = null;
|
|
92
112
|
this.rendered = false;
|
|
93
113
|
this.published = false;
|
|
94
|
-
this.hasFirstStateUpdateRun = false;
|
|
95
114
|
this.preRendered = null;
|
|
96
115
|
this.reference = new reference();
|
|
116
|
+
// hooks management
|
|
117
|
+
this._state = [];
|
|
118
|
+
this._state_track = {};
|
|
119
|
+
this._state_index = 0;
|
|
97
120
|
this.component = component.bind(this);
|
|
98
121
|
}
|
|
99
122
|
preRender(data2) {
|
|
100
|
-
let
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
phtml = ihtml;
|
|
104
|
-
ihtml = phtml();
|
|
123
|
+
let html = this.component(data2);
|
|
124
|
+
if (typeof html === "function") {
|
|
125
|
+
html = html();
|
|
105
126
|
}
|
|
106
|
-
if (
|
|
107
|
-
this.preRendered =
|
|
127
|
+
if (isNode(html)) {
|
|
128
|
+
this.preRendered = html;
|
|
108
129
|
}
|
|
109
130
|
if (!this.preRendered) {
|
|
110
131
|
throw new Error(
|
|
111
132
|
" \u2718 Cradova err : Invalid component type for cradova Ref got - " + this.preRendered
|
|
112
133
|
);
|
|
113
134
|
}
|
|
114
|
-
this.reference._appendDomForce("
|
|
135
|
+
this.reference._appendDomForce("html", this.preRendered);
|
|
115
136
|
}
|
|
116
137
|
destroyPreRendered() {
|
|
117
138
|
this.preRendered = null;
|
|
118
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Cradova Ref
|
|
142
|
+
* ---
|
|
143
|
+
* returns html with cradova reference
|
|
144
|
+
* @param data
|
|
145
|
+
* @returns () => HTMLElement
|
|
146
|
+
*/
|
|
119
147
|
render(data2, stash) {
|
|
120
148
|
this.effects = [];
|
|
121
149
|
this.rendered = false;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
phtml = ihtml;
|
|
129
|
-
ihtml = phtml();
|
|
130
|
-
}
|
|
131
|
-
if (ihtml instanceof HTMLElement) {
|
|
132
|
-
element = ihtml;
|
|
133
|
-
}
|
|
134
|
-
if (!element) {
|
|
135
|
-
throw new Error(
|
|
136
|
-
" \u2718 Cradova err : Invalid component type for cradova Ref, got - " + element
|
|
137
|
-
);
|
|
138
|
-
}
|
|
150
|
+
let html = this.component(data2);
|
|
151
|
+
if (typeof html === "function") {
|
|
152
|
+
html = html();
|
|
153
|
+
}
|
|
154
|
+
if (!html) {
|
|
155
|
+
html = this.preRendered;
|
|
139
156
|
}
|
|
140
157
|
if (stash) {
|
|
141
158
|
this.stash = data2;
|
|
142
159
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
this.reference._appendDomForce("element", element);
|
|
154
|
-
return element;
|
|
160
|
+
if (isNode(html)) {
|
|
161
|
+
this.reference._appendDomForce("html", html);
|
|
162
|
+
this.effector.apply(this);
|
|
163
|
+
this.rendered = true;
|
|
164
|
+
this.published = true;
|
|
165
|
+
} else {
|
|
166
|
+
console.error(" \u2718 Cradova err : Invalid html content, got - " + html);
|
|
167
|
+
}
|
|
168
|
+
return html;
|
|
155
169
|
}
|
|
156
170
|
instance() {
|
|
157
|
-
return this.reference.
|
|
171
|
+
return this.reference.html;
|
|
158
172
|
}
|
|
159
173
|
_setExtra(Extra) {
|
|
160
174
|
this.Signal = Extra;
|
|
161
175
|
}
|
|
162
|
-
|
|
176
|
+
_roll_state(data2, idx, get = false) {
|
|
177
|
+
if (!get) {
|
|
178
|
+
this._state[idx] = data2;
|
|
179
|
+
}
|
|
180
|
+
return this._state[idx];
|
|
181
|
+
}
|
|
182
|
+
_effect(fn) {
|
|
163
183
|
if (!this.rendered) {
|
|
164
184
|
this.effects.push(fn.bind(this));
|
|
165
185
|
}
|
|
@@ -169,29 +189,30 @@ var Ref = class {
|
|
|
169
189
|
for (let i2 = 0; i2 < this.effects.length; i2++) {
|
|
170
190
|
await this.effects[i2].apply(this);
|
|
171
191
|
}
|
|
192
|
+
this.effects = [];
|
|
172
193
|
}
|
|
173
|
-
if (
|
|
174
|
-
|
|
194
|
+
if (this.effectuate) {
|
|
195
|
+
this.effectuate();
|
|
196
|
+
this.effectuate = null;
|
|
175
197
|
}
|
|
176
|
-
this.hasFirstStateUpdateRun = true;
|
|
177
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Cradova Ref
|
|
201
|
+
* ---
|
|
202
|
+
* update ref component with new data and update the dom.
|
|
203
|
+
* @param data
|
|
204
|
+
* @returns
|
|
205
|
+
*/
|
|
178
206
|
updateState(data2, stash) {
|
|
179
|
-
if (!this) {
|
|
180
|
-
console.error(
|
|
181
|
-
" \u2718 Cradova err: Ref.updateState has is passed out of scope"
|
|
182
|
-
);
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
207
|
if (!this.rendered) {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
208
|
+
this.effectuate = () => {
|
|
209
|
+
if (this.published) {
|
|
210
|
+
this.Activate(data2);
|
|
211
|
+
}
|
|
212
|
+
};
|
|
190
213
|
} else {
|
|
191
214
|
if (this.published) {
|
|
192
|
-
(
|
|
193
|
-
await this.Activate(data2);
|
|
194
|
-
})();
|
|
215
|
+
this.Activate(data2);
|
|
195
216
|
}
|
|
196
217
|
}
|
|
197
218
|
if (stash) {
|
|
@@ -199,40 +220,24 @@ var Ref = class {
|
|
|
199
220
|
}
|
|
200
221
|
}
|
|
201
222
|
async Activate(data2) {
|
|
202
|
-
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
223
|
+
this._state_index = 0;
|
|
205
224
|
this.published = false;
|
|
206
|
-
if (!this.
|
|
225
|
+
if (!this.rendered) {
|
|
207
226
|
return;
|
|
208
227
|
}
|
|
209
|
-
let
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
if (typeof ihtml === "function") {
|
|
213
|
-
phtml = ihtml;
|
|
214
|
-
ihtml = phtml();
|
|
215
|
-
}
|
|
216
|
-
if (ihtml instanceof HTMLElement) {
|
|
217
|
-
element = ihtml;
|
|
228
|
+
let html = this.component(data2);
|
|
229
|
+
if (typeof html === "function") {
|
|
230
|
+
html = html();
|
|
218
231
|
}
|
|
219
|
-
if (
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
if (this.reference.element.parentElement) {
|
|
226
|
-
this.reference.element.parentElement.removeChild(this.reference.element);
|
|
232
|
+
if (isNode(html)) {
|
|
233
|
+
this.reference.html.insertAdjacentElement("beforebegin", html);
|
|
234
|
+
this.reference.html.remove();
|
|
235
|
+
this.published = true;
|
|
236
|
+
this.reference._appendDomForce("html", html);
|
|
237
|
+
CradovaEvent.dispatchEvent("onmountEvent");
|
|
227
238
|
} else {
|
|
228
|
-
|
|
239
|
+
console.error(" \u2718 Cradova err : Invalid html content, got - " + html);
|
|
229
240
|
}
|
|
230
|
-
this.reference._appendDomForce("element", element);
|
|
231
|
-
this.published = true;
|
|
232
|
-
CradovaEvent.dispatchEvent("onmountEvent");
|
|
233
|
-
}
|
|
234
|
-
remove() {
|
|
235
|
-
this.reference.element.remove();
|
|
236
241
|
}
|
|
237
242
|
};
|
|
238
243
|
var frag = function(children) {
|
|
@@ -280,6 +285,25 @@ var reference = class {
|
|
|
280
285
|
this[name] = Element;
|
|
281
286
|
}
|
|
282
287
|
};
|
|
288
|
+
function useState(initialValue, ActiveRef) {
|
|
289
|
+
ActiveRef._state_index += 1;
|
|
290
|
+
const idx = ActiveRef._state_index;
|
|
291
|
+
if (!ActiveRef._state_track[idx]) {
|
|
292
|
+
ActiveRef._roll_state(initialValue, idx);
|
|
293
|
+
ActiveRef._state_track[idx] = true;
|
|
294
|
+
}
|
|
295
|
+
function setState(newState) {
|
|
296
|
+
ActiveRef._roll_state(newState, idx);
|
|
297
|
+
ActiveRef.updateState(newState);
|
|
298
|
+
}
|
|
299
|
+
return [ActiveRef._roll_state(null, idx, true), setState];
|
|
300
|
+
}
|
|
301
|
+
function useEffect(effect, ActiveRef) {
|
|
302
|
+
ActiveRef._effect(effect);
|
|
303
|
+
}
|
|
304
|
+
function useRef() {
|
|
305
|
+
return new reference();
|
|
306
|
+
}
|
|
283
307
|
|
|
284
308
|
// lib/parts/track.ts
|
|
285
309
|
function dispatch(element, state) {
|
|
@@ -365,6 +389,13 @@ var createSignal = class {
|
|
|
365
389
|
}
|
|
366
390
|
}
|
|
367
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Cradova Signal
|
|
394
|
+
* ----
|
|
395
|
+
* set signal value
|
|
396
|
+
* @param value - signal value
|
|
397
|
+
* @returns void
|
|
398
|
+
*/
|
|
368
399
|
set(value, shouldRefRender) {
|
|
369
400
|
if (typeof value === "function") {
|
|
370
401
|
this.value = value(this.value);
|
|
@@ -381,6 +412,14 @@ var createSignal = class {
|
|
|
381
412
|
this.callback(this.value);
|
|
382
413
|
}
|
|
383
414
|
}
|
|
415
|
+
/**
|
|
416
|
+
* Cradova Signal
|
|
417
|
+
* ----
|
|
418
|
+
* set a key value if it's an object
|
|
419
|
+
* @param key - key of the key
|
|
420
|
+
* @param value - value of the key
|
|
421
|
+
* @returns void
|
|
422
|
+
*/
|
|
384
423
|
setKey(key, value, shouldRefRender) {
|
|
385
424
|
if (typeof this.value === "object" && !Array.isArray(this.value)) {
|
|
386
425
|
this.value[key] = value;
|
|
@@ -401,6 +440,13 @@ var createSignal = class {
|
|
|
401
440
|
);
|
|
402
441
|
}
|
|
403
442
|
}
|
|
443
|
+
/**
|
|
444
|
+
* Cradova Signal
|
|
445
|
+
* ----
|
|
446
|
+
* set a key to signal an action
|
|
447
|
+
* @param name - name of the action
|
|
448
|
+
* @param action function to execute
|
|
449
|
+
*/
|
|
404
450
|
createAction(name, action) {
|
|
405
451
|
if (typeof name === "string" && typeof action === "function") {
|
|
406
452
|
this.actions[name] = action;
|
|
@@ -410,6 +456,13 @@ var createSignal = class {
|
|
|
410
456
|
);
|
|
411
457
|
}
|
|
412
458
|
}
|
|
459
|
+
/**
|
|
460
|
+
* Cradova Signal
|
|
461
|
+
* ----
|
|
462
|
+
* creates man y actions at a time
|
|
463
|
+
* @param name - name of the action
|
|
464
|
+
* @param action function to execute
|
|
465
|
+
*/
|
|
413
466
|
createActions(Actions) {
|
|
414
467
|
for (const [name, action] of Object.entries(Actions)) {
|
|
415
468
|
if (typeof name === "string" && typeof action === "function") {
|
|
@@ -421,14 +474,29 @@ var createSignal = class {
|
|
|
421
474
|
}
|
|
422
475
|
}
|
|
423
476
|
}
|
|
477
|
+
/**
|
|
478
|
+
* Cradova Signal
|
|
479
|
+
* ----
|
|
480
|
+
* fires an action if available
|
|
481
|
+
* @param key - string key of the action
|
|
482
|
+
* @param data - data for the action
|
|
483
|
+
*/
|
|
424
484
|
fireAction(key, data2) {
|
|
425
485
|
this._updateState(key, data2);
|
|
426
486
|
if (typeof this.actions[key] === "function") {
|
|
427
|
-
this.actions[key].call(this, data2);
|
|
487
|
+
return this.actions[key].call(this, data2);
|
|
428
488
|
} else {
|
|
429
489
|
throw Error("\u2718 Cradova err : action " + key + " does not exist!");
|
|
430
490
|
}
|
|
431
491
|
}
|
|
492
|
+
/**
|
|
493
|
+
* Cradova
|
|
494
|
+
* ---
|
|
495
|
+
* is used to bind signal data to elements and Refs
|
|
496
|
+
*
|
|
497
|
+
* @param prop
|
|
498
|
+
* @returns something
|
|
499
|
+
*/
|
|
432
500
|
bind(prop) {
|
|
433
501
|
if (typeof this.value === "object" && typeof this.value[prop] !== "undefined") {
|
|
434
502
|
return [this, prop];
|
|
@@ -486,6 +554,14 @@ var createSignal = class {
|
|
|
486
554
|
}
|
|
487
555
|
}
|
|
488
556
|
}
|
|
557
|
+
/**
|
|
558
|
+
* Cradova Signal
|
|
559
|
+
* ----
|
|
560
|
+
* set a auto - rendering component for this store
|
|
561
|
+
*
|
|
562
|
+
* @param Ref component to bind to.
|
|
563
|
+
* @param path a property in the object to send to attached ref
|
|
564
|
+
*/
|
|
489
565
|
bindRef(ref, binding = { signalProperty: "", _element_property: "" }) {
|
|
490
566
|
if (ref.render) {
|
|
491
567
|
ref.render = ref.render.bind(ref, this.value);
|
|
@@ -506,9 +582,21 @@ var createSignal = class {
|
|
|
506
582
|
"\u2718 Cradova err : Invalid parameters for binding ref to Signal"
|
|
507
583
|
);
|
|
508
584
|
}
|
|
585
|
+
/**
|
|
586
|
+
* Cradova Signal
|
|
587
|
+
* ----
|
|
588
|
+
* set a update listener on value changes
|
|
589
|
+
* @param callback
|
|
590
|
+
*/
|
|
509
591
|
listen(callback) {
|
|
510
592
|
this.callback = callback;
|
|
511
593
|
}
|
|
594
|
+
/**
|
|
595
|
+
* Cradova Signal
|
|
596
|
+
* ----
|
|
597
|
+
* clear the history on local storage
|
|
598
|
+
*
|
|
599
|
+
*/
|
|
512
600
|
clearPersist() {
|
|
513
601
|
if (this.persistName) {
|
|
514
602
|
localStorage.removeItem(this.persistName);
|
|
@@ -520,7 +608,13 @@ var createSignal = class {
|
|
|
520
608
|
var localTree = new reference();
|
|
521
609
|
var Screen = class {
|
|
522
610
|
constructor(cradova_screen_initials) {
|
|
611
|
+
/**
|
|
612
|
+
* this is a set of added html to the screen
|
|
613
|
+
*/
|
|
523
614
|
this._secondaryChildren = [];
|
|
615
|
+
/**
|
|
616
|
+
* error handler for the screen
|
|
617
|
+
*/
|
|
524
618
|
this._errorHandler = null;
|
|
525
619
|
this._packed = false;
|
|
526
620
|
this._template = document.createElement("div");
|
|
@@ -533,6 +627,7 @@ var Screen = class {
|
|
|
533
627
|
this._template.setAttribute("id", "cradova-screen-set");
|
|
534
628
|
if (renderInParallel === true) {
|
|
535
629
|
this._delegatedRoutesCount = 0;
|
|
630
|
+
this._persist = false;
|
|
536
631
|
} else {
|
|
537
632
|
if (typeof persist === "boolean") {
|
|
538
633
|
this._persist = persist;
|
|
@@ -555,7 +650,7 @@ var Screen = class {
|
|
|
555
650
|
}
|
|
556
651
|
async _package() {
|
|
557
652
|
if (typeof this._html === "function") {
|
|
558
|
-
let fuc = await this._html.apply(this
|
|
653
|
+
let fuc = await this._html.apply(this);
|
|
559
654
|
if (typeof fuc === "function") {
|
|
560
655
|
fuc = fuc();
|
|
561
656
|
if (isNode(fuc)) {
|
|
@@ -566,6 +661,10 @@ var Screen = class {
|
|
|
566
661
|
if (isNode(fuc)) {
|
|
567
662
|
this._template.innerHTML = "";
|
|
568
663
|
this._template.appendChild(fuc);
|
|
664
|
+
} else {
|
|
665
|
+
throw new Error(
|
|
666
|
+
` \u2718 Cradova err: template function for the screen with name '${this._name}' returned ${fuc} instead of html`
|
|
667
|
+
);
|
|
569
668
|
}
|
|
570
669
|
}
|
|
571
670
|
}
|
|
@@ -586,33 +685,25 @@ var Screen = class {
|
|
|
586
685
|
if (this._deCallBack) {
|
|
587
686
|
await this._deCallBack();
|
|
588
687
|
}
|
|
589
|
-
if (this._transition) {
|
|
590
|
-
this._template.classList.remove(this._transition);
|
|
591
|
-
}
|
|
592
688
|
}
|
|
593
689
|
async _Activate(force = false) {
|
|
594
690
|
if (!this._persist || force || !this._packed) {
|
|
595
691
|
await this._package();
|
|
596
692
|
this._packed = true;
|
|
597
693
|
}
|
|
598
|
-
if (!localTree._doc) {
|
|
599
|
-
localTree._appendDomForce(
|
|
600
|
-
"_doc",
|
|
601
|
-
document.querySelector("[data-wrapper=app]")
|
|
602
|
-
);
|
|
603
|
-
}
|
|
604
|
-
if (!localTree._doc) {
|
|
605
|
-
throw new Error(
|
|
606
|
-
" \u2718 Cradova err: Unable to render, cannot find cradova root <div data-wrapper='app'> ... </div>"
|
|
607
|
-
);
|
|
608
|
-
}
|
|
609
694
|
if (this._transition) {
|
|
610
695
|
this._template.classList.add(this._transition);
|
|
611
696
|
}
|
|
612
|
-
localTree._doc.innerHTML = "";
|
|
613
|
-
localTree._doc.appendChild(this._template);
|
|
614
697
|
document.title = this._name;
|
|
698
|
+
localTree.doc.innerHTML = "";
|
|
699
|
+
localTree.doc.appendChild(this._template);
|
|
615
700
|
CradovaEvent.dispatchEvent("onmountEvent");
|
|
701
|
+
window.scrollTo({
|
|
702
|
+
top: 0,
|
|
703
|
+
left: 0,
|
|
704
|
+
// @ts-ignore
|
|
705
|
+
behavior: "instant"
|
|
706
|
+
});
|
|
616
707
|
if (this._callBack) {
|
|
617
708
|
await this._callBack();
|
|
618
709
|
}
|
|
@@ -627,16 +718,16 @@ RouterBox["lastNavigatedRoute"] = null;
|
|
|
627
718
|
RouterBox["pageShow"] = null;
|
|
628
719
|
RouterBox["pageHide"] = null;
|
|
629
720
|
RouterBox["errorHandler"] = null;
|
|
630
|
-
RouterBox["loadingScreen"] =
|
|
721
|
+
RouterBox["loadingScreen"] = null;
|
|
631
722
|
RouterBox["params"] = {};
|
|
632
723
|
RouterBox["routes"] = {};
|
|
633
724
|
RouterBox["pageevents"] = [];
|
|
634
|
-
RouterBox["start_pageevents"] = async function(
|
|
725
|
+
RouterBox["start_pageevents"] = async function(url) {
|
|
635
726
|
setTimeout(() => {
|
|
636
727
|
for (let ci = 0; ci < RouterBox["pageevents"].length; ci++) {
|
|
637
|
-
RouterBox["pageevents"][ci](
|
|
728
|
+
RouterBox["pageevents"][ci](url);
|
|
638
729
|
}
|
|
639
|
-
},
|
|
730
|
+
}, 100);
|
|
640
731
|
};
|
|
641
732
|
var checker = (url) => {
|
|
642
733
|
if (RouterBox.routes[url]) {
|
|
@@ -732,6 +823,7 @@ RouterBox.router = async function(_e, _force) {
|
|
|
732
823
|
RouterBox.params.params = params;
|
|
733
824
|
}
|
|
734
825
|
await route._Activate(_force);
|
|
826
|
+
RouterBox["start_pageevents"](url);
|
|
735
827
|
RouterBox["lastNavigatedRouteController"] && RouterBox["lastNavigatedRouteController"]._deActivate();
|
|
736
828
|
RouterBox["lastNavigatedRoute"] = url;
|
|
737
829
|
RouterBox["lastNavigatedRouteController"] = route;
|
|
@@ -750,12 +842,21 @@ RouterBox.router = async function(_e, _force) {
|
|
|
750
842
|
}
|
|
751
843
|
}
|
|
752
844
|
} else {
|
|
753
|
-
if (RouterBox.routes["
|
|
754
|
-
await RouterBox.routes["
|
|
845
|
+
if (RouterBox.routes["/*"]) {
|
|
846
|
+
await RouterBox.routes["/*"]._Activate(_force);
|
|
755
847
|
}
|
|
756
848
|
}
|
|
757
849
|
};
|
|
758
850
|
var RouterClass = class {
|
|
851
|
+
/** cradova router
|
|
852
|
+
* ---
|
|
853
|
+
* Registers a route.
|
|
854
|
+
*
|
|
855
|
+
* accepts an object containing
|
|
856
|
+
*
|
|
857
|
+
* @param {string} path Route path.
|
|
858
|
+
* @param screen the cradova screen.
|
|
859
|
+
*/
|
|
759
860
|
BrowserRoutes(obj) {
|
|
760
861
|
for (const path in obj) {
|
|
761
862
|
let screen = obj[path];
|
|
@@ -770,12 +871,28 @@ var RouterClass = class {
|
|
|
770
871
|
}
|
|
771
872
|
this._mount();
|
|
772
873
|
}
|
|
874
|
+
/**
|
|
875
|
+
Go back in Navigation history
|
|
876
|
+
*/
|
|
773
877
|
back() {
|
|
774
878
|
history.go(-1);
|
|
775
879
|
}
|
|
880
|
+
/**
|
|
881
|
+
Go forward in Navigation history
|
|
882
|
+
*/
|
|
776
883
|
forward() {
|
|
777
884
|
history.go(1);
|
|
778
885
|
}
|
|
886
|
+
/**
|
|
887
|
+
* Cradova Router
|
|
888
|
+
* ------
|
|
889
|
+
*
|
|
890
|
+
* Navigates to a designated screen in your app
|
|
891
|
+
*
|
|
892
|
+
* @param href string
|
|
893
|
+
* @param data object
|
|
894
|
+
* @param force boolean
|
|
895
|
+
*/
|
|
779
896
|
navigate(href, data2 = null, force = false) {
|
|
780
897
|
if (typeof href !== "string") {
|
|
781
898
|
throw new TypeError(
|
|
@@ -786,8 +903,7 @@ var RouterClass = class {
|
|
|
786
903
|
if (href.includes("://")) {
|
|
787
904
|
window.location.href = href;
|
|
788
905
|
} else {
|
|
789
|
-
|
|
790
|
-
if (href === lastR) {
|
|
906
|
+
if (href === window.location.pathname) {
|
|
791
907
|
return;
|
|
792
908
|
}
|
|
793
909
|
[route, params] = checker(href);
|
|
@@ -798,9 +914,17 @@ var RouterClass = class {
|
|
|
798
914
|
RouterBox.params.params = params;
|
|
799
915
|
RouterBox.params.data = data2;
|
|
800
916
|
RouterBox.router(null, force);
|
|
801
|
-
RouterBox["start_pageevents"](lastR, href);
|
|
802
917
|
}
|
|
803
918
|
}
|
|
919
|
+
/**
|
|
920
|
+
* Cradova
|
|
921
|
+
* ---
|
|
922
|
+
* Loading screen for your app
|
|
923
|
+
*
|
|
924
|
+
* lazy loaded loading use
|
|
925
|
+
*
|
|
926
|
+
* @param screen
|
|
927
|
+
*/
|
|
804
928
|
setLoadingScreen(screen) {
|
|
805
929
|
if (screen instanceof Screen) {
|
|
806
930
|
RouterBox["LoadingScreen"] = screen;
|
|
@@ -810,6 +934,12 @@ var RouterClass = class {
|
|
|
810
934
|
);
|
|
811
935
|
}
|
|
812
936
|
}
|
|
937
|
+
/** cradova router
|
|
938
|
+
* ---
|
|
939
|
+
* Listen for navigation events
|
|
940
|
+
*
|
|
941
|
+
* @param callback () => void
|
|
942
|
+
*/
|
|
813
943
|
onPageEvent(callback) {
|
|
814
944
|
if (typeof callback === "function") {
|
|
815
945
|
RouterBox["pageevents"].push(callback);
|
|
@@ -819,6 +949,13 @@ var RouterClass = class {
|
|
|
819
949
|
);
|
|
820
950
|
}
|
|
821
951
|
}
|
|
952
|
+
/** cradova router
|
|
953
|
+
* ---
|
|
954
|
+
* get a screen ready before time.
|
|
955
|
+
*
|
|
956
|
+
* @param {string} path Route path.
|
|
957
|
+
* @param data data for the screen.
|
|
958
|
+
*/
|
|
822
959
|
async packageScreen(path, data2 = {}) {
|
|
823
960
|
if (!RouterBox.routes[path]) {
|
|
824
961
|
console.error(" \u2718 Cradova err: no screen with path " + path);
|
|
@@ -830,17 +967,43 @@ var RouterClass = class {
|
|
|
830
967
|
if (!route._Activate && typeof route === "function") {
|
|
831
968
|
route = await route();
|
|
832
969
|
}
|
|
970
|
+
if (route._delegatedRoutes !== -1) {
|
|
971
|
+
route._delegatedRoutes = true;
|
|
972
|
+
route = new Screen({
|
|
973
|
+
name: route._name,
|
|
974
|
+
template: route._html
|
|
975
|
+
});
|
|
976
|
+
RouterBox.routes[path] = route;
|
|
977
|
+
}
|
|
833
978
|
route._package(Object.assign(data2, params || {}));
|
|
834
979
|
route._packed = true;
|
|
835
980
|
}
|
|
981
|
+
/**
|
|
982
|
+
* Cradova Router
|
|
983
|
+
* ------
|
|
984
|
+
*
|
|
985
|
+
* return last set router params
|
|
986
|
+
*
|
|
987
|
+
* .
|
|
988
|
+
*/
|
|
836
989
|
getParams() {
|
|
837
990
|
return RouterBox["params"];
|
|
838
991
|
}
|
|
992
|
+
/**
|
|
993
|
+
* Cradova
|
|
994
|
+
* ---
|
|
995
|
+
* Error Handler for your app
|
|
996
|
+
*
|
|
997
|
+
* @param callback
|
|
998
|
+
* @param path? page path
|
|
999
|
+
*/
|
|
839
1000
|
addErrorHandler(callback) {
|
|
840
1001
|
if (typeof callback === "function") {
|
|
841
1002
|
RouterBox["errorHandler"] = callback;
|
|
842
1003
|
} else {
|
|
843
|
-
throw new Error(
|
|
1004
|
+
throw new Error(
|
|
1005
|
+
" \u2718 Cradova err: callback for error event is not a function"
|
|
1006
|
+
);
|
|
844
1007
|
}
|
|
845
1008
|
}
|
|
846
1009
|
_mount() {
|
|
@@ -850,9 +1013,12 @@ var RouterClass = class {
|
|
|
850
1013
|
doc.setAttribute("data-wrapper", "app");
|
|
851
1014
|
document.body.appendChild(doc);
|
|
852
1015
|
localTree._appendDomForce("doc", doc);
|
|
1016
|
+
} else {
|
|
1017
|
+
localTree._appendDomForce("doc", doc);
|
|
853
1018
|
}
|
|
854
1019
|
window.addEventListener("pageshow", RouterBox.router);
|
|
855
1020
|
window.addEventListener("popstate", (_e) => {
|
|
1021
|
+
_e.preventDefault();
|
|
856
1022
|
RouterBox.router();
|
|
857
1023
|
});
|
|
858
1024
|
}
|
|
@@ -865,12 +1031,12 @@ var makeElement = (element, ElementChildrenAndPropertyList) => {
|
|
|
865
1031
|
if (ElementChildrenAndPropertyList.length !== 0) {
|
|
866
1032
|
for (let i2 = 0; i2 < ElementChildrenAndPropertyList.length; i2++) {
|
|
867
1033
|
let child = ElementChildrenAndPropertyList[i2];
|
|
868
|
-
if (child instanceof Ref) {
|
|
869
|
-
child = child.render();
|
|
870
|
-
}
|
|
871
1034
|
if (typeof child === "function") {
|
|
872
1035
|
child = child();
|
|
873
1036
|
}
|
|
1037
|
+
if (child instanceof Ref) {
|
|
1038
|
+
child = child.render();
|
|
1039
|
+
}
|
|
874
1040
|
if (isNode(child)) {
|
|
875
1041
|
element.appendChild(child);
|
|
876
1042
|
continue;
|
|
@@ -900,52 +1066,27 @@ var makeElement = (element, ElementChildrenAndPropertyList) => {
|
|
|
900
1066
|
if (typeof props === "object" && element) {
|
|
901
1067
|
for (const [prop, value] of Object.entries(props)) {
|
|
902
1068
|
if (prop === "style" && typeof value === "object") {
|
|
903
|
-
|
|
904
|
-
if (typeof element.style[k] !== "undefined" && k !== "src") {
|
|
905
|
-
element.style[k] = v;
|
|
906
|
-
} else {
|
|
907
|
-
throw new Error(
|
|
908
|
-
"\u2718 Cradova err : " + k + " is not a valid css style property"
|
|
909
|
-
);
|
|
910
|
-
}
|
|
911
|
-
}
|
|
912
|
-
continue;
|
|
913
|
-
}
|
|
914
|
-
if (typeof element.style[prop] !== "undefined" && prop !== "src") {
|
|
915
|
-
element.style[prop] = value;
|
|
916
|
-
continue;
|
|
917
|
-
}
|
|
918
|
-
if (prop === "text" && typeof value === "string" && value !== "") {
|
|
919
|
-
text = value;
|
|
920
|
-
continue;
|
|
921
|
-
}
|
|
922
|
-
if (prop === "href" && typeof value === "string") {
|
|
923
|
-
const href = value || "";
|
|
924
|
-
if (!href.includes("://")) {
|
|
925
|
-
element.addEventListener(
|
|
926
|
-
"click",
|
|
927
|
-
(e) => {
|
|
928
|
-
e.preventDefault();
|
|
929
|
-
Router.navigate(element.pathname);
|
|
930
|
-
}
|
|
931
|
-
);
|
|
932
|
-
}
|
|
933
|
-
element.setAttribute(prop, value);
|
|
1069
|
+
Object.assign(element.style, value);
|
|
934
1070
|
continue;
|
|
935
1071
|
}
|
|
936
1072
|
if (Array.isArray(value)) {
|
|
937
|
-
|
|
938
|
-
if (clas[0] instanceof createSignal) {
|
|
1073
|
+
if (value[0] instanceof createSignal) {
|
|
939
1074
|
element["updateState"] = dispatch.bind(null, element);
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
1075
|
+
value[0].bindRef(
|
|
1076
|
+
element,
|
|
1077
|
+
{
|
|
1078
|
+
_element_property: prop,
|
|
1079
|
+
signalProperty: value[1]
|
|
1080
|
+
}
|
|
1081
|
+
);
|
|
944
1082
|
continue;
|
|
945
1083
|
}
|
|
946
|
-
if (prop == "reference" &&
|
|
1084
|
+
if (prop == "reference" && value[0] instanceof reference) {
|
|
947
1085
|
element["updateState"] = dispatch.bind(null, element);
|
|
948
|
-
|
|
1086
|
+
value[0]._appendDomForce(
|
|
1087
|
+
value[1],
|
|
1088
|
+
element
|
|
1089
|
+
);
|
|
949
1090
|
continue;
|
|
950
1091
|
}
|
|
951
1092
|
}
|
|
@@ -965,6 +1106,30 @@ var makeElement = (element, ElementChildrenAndPropertyList) => {
|
|
|
965
1106
|
element.setAttribute(prop, value);
|
|
966
1107
|
continue;
|
|
967
1108
|
}
|
|
1109
|
+
if (prop === "href" && typeof value === "string") {
|
|
1110
|
+
const href = value || "";
|
|
1111
|
+
if (!href.includes("://")) {
|
|
1112
|
+
element.addEventListener(
|
|
1113
|
+
"click",
|
|
1114
|
+
(e) => {
|
|
1115
|
+
e.preventDefault();
|
|
1116
|
+
Router.navigate(
|
|
1117
|
+
element.pathname
|
|
1118
|
+
);
|
|
1119
|
+
if (href.includes("#")) {
|
|
1120
|
+
const l = href.split("#").at(-1);
|
|
1121
|
+
document.getElementById("#" + l)?.scrollIntoView();
|
|
1122
|
+
}
|
|
1123
|
+
}
|
|
1124
|
+
);
|
|
1125
|
+
}
|
|
1126
|
+
element.setAttribute(prop, value);
|
|
1127
|
+
continue;
|
|
1128
|
+
}
|
|
1129
|
+
if (typeof element.style[prop] !== "undefined" && prop !== "src") {
|
|
1130
|
+
element.style[prop] = value;
|
|
1131
|
+
continue;
|
|
1132
|
+
}
|
|
968
1133
|
element[prop] = value;
|
|
969
1134
|
}
|
|
970
1135
|
}
|
|
@@ -973,46 +1138,89 @@ var makeElement = (element, ElementChildrenAndPropertyList) => {
|
|
|
973
1138
|
}
|
|
974
1139
|
return element;
|
|
975
1140
|
};
|
|
976
|
-
var
|
|
977
|
-
|
|
978
|
-
return
|
|
979
|
-
}
|
|
1141
|
+
var make = function(descriptor) {
|
|
1142
|
+
if (!descriptor.length) {
|
|
1143
|
+
return ["DIV"];
|
|
1144
|
+
}
|
|
1145
|
+
if (Array.isArray(descriptor)) {
|
|
1146
|
+
descriptor = descriptor[0];
|
|
1147
|
+
}
|
|
1148
|
+
let innerValue = "";
|
|
1149
|
+
if (descriptor.includes("|")) {
|
|
1150
|
+
[descriptor, innerValue] = descriptor.split("|");
|
|
1151
|
+
if (!descriptor) {
|
|
1152
|
+
return ["P", void 0, void 0, innerValue];
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1155
|
+
let tag;
|
|
1156
|
+
if (!descriptor.includes("#")) {
|
|
1157
|
+
descriptor = descriptor.split(".");
|
|
1158
|
+
tag = descriptor.shift();
|
|
1159
|
+
if (!tag) {
|
|
1160
|
+
tag = "DIV";
|
|
1161
|
+
}
|
|
1162
|
+
return [tag, void 0, descriptor.join(" "), innerValue];
|
|
1163
|
+
} else {
|
|
1164
|
+
if (!descriptor.includes(".")) {
|
|
1165
|
+
descriptor = descriptor.split("#");
|
|
1166
|
+
tag = descriptor.shift();
|
|
1167
|
+
if (!tag) {
|
|
1168
|
+
tag = "DIV";
|
|
1169
|
+
}
|
|
1170
|
+
if (descriptor[0].includes(" ")) {
|
|
1171
|
+
descriptor = [descriptor[0].split(" ")[1]];
|
|
1172
|
+
}
|
|
1173
|
+
return [tag, descriptor[0], void 0, innerValue];
|
|
1174
|
+
}
|
|
1175
|
+
}
|
|
1176
|
+
descriptor = descriptor.split(".");
|
|
1177
|
+
const classes = [];
|
|
1178
|
+
const IDs = [];
|
|
1179
|
+
tag = !descriptor[0].includes("#") && descriptor.shift();
|
|
1180
|
+
if (!tag) {
|
|
1181
|
+
tag = "DIV";
|
|
1182
|
+
}
|
|
1183
|
+
for (let i2 = 0; i2 < descriptor.length; i2++) {
|
|
1184
|
+
if (descriptor[i2].includes("#")) {
|
|
1185
|
+
const item = descriptor[i2].split("#");
|
|
1186
|
+
IDs.push(item[1]);
|
|
1187
|
+
if (i2 === 0) {
|
|
1188
|
+
tag = item[0];
|
|
1189
|
+
continue;
|
|
1190
|
+
}
|
|
1191
|
+
classes.push(item[0]);
|
|
1192
|
+
continue;
|
|
1193
|
+
}
|
|
1194
|
+
classes.push(descriptor[i2]);
|
|
1195
|
+
}
|
|
1196
|
+
return [tag || "DIV", IDs[0], classes.join(" "), innerValue];
|
|
1197
|
+
};
|
|
1198
|
+
var cra = (tag) => {
|
|
1199
|
+
const extend = (...Children_and_Properties) => makeElement(document.createElement(tag), Children_and_Properties);
|
|
1200
|
+
return extend;
|
|
980
1201
|
};
|
|
981
1202
|
var a = cra("a");
|
|
982
|
-
var abbr = cra("abbr");
|
|
983
|
-
var address = cra("address");
|
|
984
1203
|
var area = cra("area");
|
|
985
1204
|
var article = cra("article");
|
|
986
1205
|
var aside = cra("aside");
|
|
987
1206
|
var audio = cra("audio");
|
|
988
1207
|
var b = cra("b");
|
|
989
1208
|
var base = cra("base");
|
|
990
|
-
var bdi = cra("bdi");
|
|
991
|
-
var bdo = cra("bdo");
|
|
992
1209
|
var blockquote = cra("blockquote");
|
|
993
|
-
var body = cra("body");
|
|
994
1210
|
var br = cra("br");
|
|
995
1211
|
var button = cra("button");
|
|
996
1212
|
var canvas = cra("canvas");
|
|
997
1213
|
var caption = cra("caption");
|
|
998
|
-
var cite = cra("cite");
|
|
999
1214
|
var code = cra("code");
|
|
1000
1215
|
var col = cra("col");
|
|
1001
1216
|
var colgroup = cra("colgroup");
|
|
1002
1217
|
var data = cra("data");
|
|
1003
1218
|
var datalist = cra("datalist");
|
|
1004
|
-
var dd = cra("dd");
|
|
1005
|
-
var del = cra("del");
|
|
1006
1219
|
var details = cra("details");
|
|
1007
|
-
var dfn = cra("dfn");
|
|
1008
1220
|
var dialog = cra("dialog");
|
|
1009
1221
|
var div = cra("div");
|
|
1010
|
-
var dl = cra("dl");
|
|
1011
|
-
var dt = cra("dt");
|
|
1012
1222
|
var em = cra("em");
|
|
1013
1223
|
var embed = cra("embed");
|
|
1014
|
-
var fieldset = cra("fieldset");
|
|
1015
|
-
var figcaption = cra("figcaption");
|
|
1016
1224
|
var figure = cra("figure");
|
|
1017
1225
|
var footer = cra("footer");
|
|
1018
1226
|
var form = cra("form");
|
|
@@ -1025,70 +1233,43 @@ var h6 = cra("h6");
|
|
|
1025
1233
|
var head = cra("head");
|
|
1026
1234
|
var header = cra("header");
|
|
1027
1235
|
var hr = cra("hr");
|
|
1028
|
-
var html = cra("html");
|
|
1029
1236
|
var i = cra("i");
|
|
1030
1237
|
var iframe = cra("iframe");
|
|
1031
1238
|
var img = cra("img");
|
|
1032
1239
|
var input = cra("input");
|
|
1033
|
-
var ins = cra("ins");
|
|
1034
|
-
var kbd = cra("kbd");
|
|
1035
1240
|
var label = cra("label");
|
|
1036
1241
|
var legend = cra("legend");
|
|
1037
1242
|
var li = cra("li");
|
|
1038
1243
|
var link = cra("link");
|
|
1039
1244
|
var main = cra("main");
|
|
1040
|
-
var map = cra("map");
|
|
1041
|
-
var mark = cra("mark");
|
|
1042
|
-
var math = cra("math");
|
|
1043
1245
|
var menu = cra("menu");
|
|
1044
|
-
var meta = cra("meta");
|
|
1045
|
-
var meter = cra("meter");
|
|
1046
1246
|
var nav = cra("nav");
|
|
1047
1247
|
var object = cra("object");
|
|
1048
1248
|
var ol = cra("ol");
|
|
1049
1249
|
var optgroup = cra("optgroup");
|
|
1050
1250
|
var option = cra("option");
|
|
1051
|
-
var output = cra("output");
|
|
1052
1251
|
var p = cra("p");
|
|
1053
|
-
var picture = cra("picture");
|
|
1054
|
-
var portal = cra("portal");
|
|
1055
1252
|
var pre = cra("pre");
|
|
1056
1253
|
var progress = cra("progress");
|
|
1057
1254
|
var q = cra("q");
|
|
1058
|
-
var rp = cra("rp");
|
|
1059
|
-
var rt = cra("rt");
|
|
1060
|
-
var ruby = cra("ruby");
|
|
1061
|
-
var s = cra("s");
|
|
1062
|
-
var samp = cra("samp");
|
|
1063
|
-
var script = cra("script");
|
|
1064
1255
|
var section = cra("section");
|
|
1065
1256
|
var select = cra("select");
|
|
1066
|
-
var slot = cra("slot");
|
|
1067
|
-
var small = cra("small");
|
|
1068
1257
|
var source = cra("source");
|
|
1069
1258
|
var span = cra("span");
|
|
1070
1259
|
var strong = cra("strong");
|
|
1071
|
-
var style = cra("style");
|
|
1072
|
-
var sub = cra("sub");
|
|
1073
1260
|
var summary = cra("summary");
|
|
1074
|
-
var sup = cra("sup");
|
|
1075
1261
|
var table = cra("table");
|
|
1076
1262
|
var tbody = cra("tbody");
|
|
1077
1263
|
var td = cra("td");
|
|
1078
1264
|
var template = cra("template");
|
|
1079
1265
|
var textarea = cra("textarea");
|
|
1080
|
-
var tfoot = cra("tfoot");
|
|
1081
1266
|
var th = cra("th");
|
|
1082
|
-
var thead = cra("thead");
|
|
1083
|
-
var time = cra("time");
|
|
1084
1267
|
var title = cra("title");
|
|
1085
1268
|
var tr = cra("tr");
|
|
1086
1269
|
var track = cra("track");
|
|
1087
1270
|
var u = cra("u");
|
|
1088
1271
|
var ul = cra("ul");
|
|
1089
|
-
var val = cra("val");
|
|
1090
1272
|
var video = cra("video");
|
|
1091
|
-
var wbr = cra("wbr");
|
|
1092
1273
|
|
|
1093
1274
|
// lib/parts/ajax.ts
|
|
1094
1275
|
function Ajax(url, opts = {}) {
|
|
@@ -1096,7 +1277,7 @@ function Ajax(url, opts = {}) {
|
|
|
1096
1277
|
if (typeof url !== "string") {
|
|
1097
1278
|
throw new Error("\u2718 Cradova err : Ajax invalid url " + url);
|
|
1098
1279
|
}
|
|
1099
|
-
return new Promise(function(resolve) {
|
|
1280
|
+
return new Promise(function(resolve, reject) {
|
|
1100
1281
|
const ajax = new XMLHttpRequest();
|
|
1101
1282
|
const formData = new FormData();
|
|
1102
1283
|
if (callbacks && typeof callbacks === "object") {
|
|
@@ -1120,18 +1301,14 @@ function Ajax(url, opts = {}) {
|
|
|
1120
1301
|
}
|
|
1121
1302
|
}
|
|
1122
1303
|
ajax.addEventListener("error", () => {
|
|
1123
|
-
console.error(
|
|
1124
|
-
"\u2718 Cradova Ajax err : ",
|
|
1125
|
-
ajax.response || "ERR_INTERNET_DISCONNECTED"
|
|
1126
|
-
);
|
|
1127
1304
|
if (!navigator.onLine) {
|
|
1128
|
-
|
|
1305
|
+
reject(
|
|
1129
1306
|
JSON.stringify({
|
|
1130
1307
|
message: `this device is offline!`
|
|
1131
1308
|
})
|
|
1132
1309
|
);
|
|
1133
1310
|
} else {
|
|
1134
|
-
|
|
1311
|
+
reject(
|
|
1135
1312
|
JSON.stringify({
|
|
1136
1313
|
message: `problem with the action, please try again!`
|
|
1137
1314
|
})
|
|
@@ -1153,67 +1330,6 @@ function Ajax(url, opts = {}) {
|
|
|
1153
1330
|
}
|
|
1154
1331
|
|
|
1155
1332
|
// lib/index.ts
|
|
1156
|
-
var make = function(txx) {
|
|
1157
|
-
if (Array.isArray(txx)) {
|
|
1158
|
-
txx = txx[0];
|
|
1159
|
-
}
|
|
1160
|
-
if (typeof txx !== "string") {
|
|
1161
|
-
return [];
|
|
1162
|
-
}
|
|
1163
|
-
if (Array.isArray(txx)) {
|
|
1164
|
-
txx = txx[0];
|
|
1165
|
-
}
|
|
1166
|
-
let innerValue = "";
|
|
1167
|
-
if (txx.includes("|")) {
|
|
1168
|
-
[txx, innerValue] = txx.split("|");
|
|
1169
|
-
if (!txx) {
|
|
1170
|
-
return ["P", void 0, void 0, innerValue];
|
|
1171
|
-
}
|
|
1172
|
-
}
|
|
1173
|
-
let tag;
|
|
1174
|
-
let teak;
|
|
1175
|
-
if (!txx.includes("#")) {
|
|
1176
|
-
teak = txx.split(".");
|
|
1177
|
-
tag = teak.shift();
|
|
1178
|
-
if (!tag) {
|
|
1179
|
-
tag = "DIV";
|
|
1180
|
-
}
|
|
1181
|
-
return [tag, void 0, teak.join(" "), innerValue];
|
|
1182
|
-
} else {
|
|
1183
|
-
if (!txx.includes(".")) {
|
|
1184
|
-
teak = txx.split("#");
|
|
1185
|
-
tag = teak.shift();
|
|
1186
|
-
if (!tag) {
|
|
1187
|
-
tag = "DIV";
|
|
1188
|
-
}
|
|
1189
|
-
if (teak[0].includes(" ")) {
|
|
1190
|
-
teak = [teak[0].split(" ")[1]];
|
|
1191
|
-
}
|
|
1192
|
-
return [tag, teak[0], void 0, innerValue];
|
|
1193
|
-
}
|
|
1194
|
-
}
|
|
1195
|
-
teak = txx.split(".");
|
|
1196
|
-
const classes = [];
|
|
1197
|
-
const IDs = [];
|
|
1198
|
-
tag = !teak[0].includes("#") && teak.shift();
|
|
1199
|
-
if (!tag) {
|
|
1200
|
-
tag = "DIV";
|
|
1201
|
-
}
|
|
1202
|
-
for (let i2 = 0; i2 < teak.length; i2++) {
|
|
1203
|
-
if (teak[i2].includes("#")) {
|
|
1204
|
-
const item = teak[i2].split("#");
|
|
1205
|
-
IDs.push(item[1]);
|
|
1206
|
-
if (i2 === 0) {
|
|
1207
|
-
tag = item[0];
|
|
1208
|
-
continue;
|
|
1209
|
-
}
|
|
1210
|
-
classes.push(item[0]);
|
|
1211
|
-
continue;
|
|
1212
|
-
}
|
|
1213
|
-
classes.push(teak[i2]);
|
|
1214
|
-
}
|
|
1215
|
-
return [tag || "DIV", IDs[0], classes.join(" "), innerValue];
|
|
1216
|
-
};
|
|
1217
1333
|
var _2 = (...element_initials) => {
|
|
1218
1334
|
const {
|
|
1219
1335
|
0: tag,
|
|
@@ -1221,149 +1337,22 @@ var _2 = (...element_initials) => {
|
|
|
1221
1337
|
2: className,
|
|
1222
1338
|
3: innerText
|
|
1223
1339
|
} = make(element_initials[0]);
|
|
1224
|
-
let props = {};
|
|
1225
1340
|
const element = tag ? document.createElement(tag) : new DocumentFragment();
|
|
1226
|
-
if (
|
|
1341
|
+
if (tag) {
|
|
1227
1342
|
if (className) {
|
|
1228
|
-
|
|
1343
|
+
element.className = className;
|
|
1229
1344
|
}
|
|
1230
1345
|
if (id) {
|
|
1231
|
-
|
|
1346
|
+
element.id = id;
|
|
1232
1347
|
}
|
|
1233
1348
|
if (innerText) {
|
|
1234
|
-
|
|
1349
|
+
element.innerText = innerText;
|
|
1235
1350
|
}
|
|
1351
|
+
element_initials.shift();
|
|
1236
1352
|
}
|
|
1237
|
-
typeof tag === "string" && element_initials.shift();
|
|
1238
|
-
props && element_initials.push(props);
|
|
1239
1353
|
return makeElement(element, element_initials);
|
|
1240
1354
|
};
|
|
1241
1355
|
var lib_default = _2;
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
Router,
|
|
1246
|
-
Screen,
|
|
1247
|
-
a,
|
|
1248
|
-
abbr,
|
|
1249
|
-
address,
|
|
1250
|
-
area,
|
|
1251
|
-
article,
|
|
1252
|
-
aside,
|
|
1253
|
-
assert,
|
|
1254
|
-
assertOr,
|
|
1255
|
-
audio,
|
|
1256
|
-
b,
|
|
1257
|
-
base,
|
|
1258
|
-
bdi,
|
|
1259
|
-
bdo,
|
|
1260
|
-
blockquote,
|
|
1261
|
-
body,
|
|
1262
|
-
br,
|
|
1263
|
-
button,
|
|
1264
|
-
canvas,
|
|
1265
|
-
caption,
|
|
1266
|
-
cite,
|
|
1267
|
-
code,
|
|
1268
|
-
col,
|
|
1269
|
-
colgroup,
|
|
1270
|
-
createSignal,
|
|
1271
|
-
css,
|
|
1272
|
-
data,
|
|
1273
|
-
datalist,
|
|
1274
|
-
dd,
|
|
1275
|
-
lib_default as default,
|
|
1276
|
-
del,
|
|
1277
|
-
details,
|
|
1278
|
-
dfn,
|
|
1279
|
-
dialog,
|
|
1280
|
-
div,
|
|
1281
|
-
dl,
|
|
1282
|
-
dt,
|
|
1283
|
-
em,
|
|
1284
|
-
embed,
|
|
1285
|
-
fieldset,
|
|
1286
|
-
figcaption,
|
|
1287
|
-
figure,
|
|
1288
|
-
footer,
|
|
1289
|
-
form,
|
|
1290
|
-
h1,
|
|
1291
|
-
h2,
|
|
1292
|
-
h3,
|
|
1293
|
-
h4,
|
|
1294
|
-
h5,
|
|
1295
|
-
h6,
|
|
1296
|
-
head,
|
|
1297
|
-
header,
|
|
1298
|
-
hr,
|
|
1299
|
-
html,
|
|
1300
|
-
i,
|
|
1301
|
-
iframe,
|
|
1302
|
-
img,
|
|
1303
|
-
input,
|
|
1304
|
-
ins,
|
|
1305
|
-
kbd,
|
|
1306
|
-
label,
|
|
1307
|
-
lazy,
|
|
1308
|
-
legend,
|
|
1309
|
-
li,
|
|
1310
|
-
link,
|
|
1311
|
-
loop,
|
|
1312
|
-
main,
|
|
1313
|
-
makeElement,
|
|
1314
|
-
map,
|
|
1315
|
-
mark,
|
|
1316
|
-
math,
|
|
1317
|
-
menu,
|
|
1318
|
-
meta,
|
|
1319
|
-
meter,
|
|
1320
|
-
nav,
|
|
1321
|
-
object,
|
|
1322
|
-
ol,
|
|
1323
|
-
optgroup,
|
|
1324
|
-
option,
|
|
1325
|
-
output,
|
|
1326
|
-
p,
|
|
1327
|
-
picture,
|
|
1328
|
-
portal,
|
|
1329
|
-
pre,
|
|
1330
|
-
progress,
|
|
1331
|
-
q,
|
|
1332
|
-
reference,
|
|
1333
|
-
rp,
|
|
1334
|
-
rt,
|
|
1335
|
-
ruby,
|
|
1336
|
-
s,
|
|
1337
|
-
samp,
|
|
1338
|
-
script,
|
|
1339
|
-
section,
|
|
1340
|
-
select,
|
|
1341
|
-
slot,
|
|
1342
|
-
small,
|
|
1343
|
-
source,
|
|
1344
|
-
span,
|
|
1345
|
-
strong,
|
|
1346
|
-
style,
|
|
1347
|
-
sub,
|
|
1348
|
-
summary,
|
|
1349
|
-
sup,
|
|
1350
|
-
table,
|
|
1351
|
-
tbody,
|
|
1352
|
-
td,
|
|
1353
|
-
template,
|
|
1354
|
-
textarea,
|
|
1355
|
-
tfoot,
|
|
1356
|
-
th,
|
|
1357
|
-
thead,
|
|
1358
|
-
time,
|
|
1359
|
-
title,
|
|
1360
|
-
tr,
|
|
1361
|
-
track,
|
|
1362
|
-
u,
|
|
1363
|
-
ul,
|
|
1364
|
-
val,
|
|
1365
|
-
video,
|
|
1366
|
-
wbr
|
|
1367
|
-
};
|
|
1368
|
-
//! always starts events a moment later
|
|
1369
|
-
//! value could be a promise
|
|
1356
|
+
//! get url hash here and scroll into view
|
|
1357
|
+
|
|
1358
|
+
export { Ajax, CradovaEvent, Ref, Rhoda, Router, Screen, a, area, article, aside, assert, assertOr, audio, b, base, blockquote, br, button, canvas, caption, code, col, colgroup, cradovaEvent, createSignal, css, data, datalist, lib_default as default, details, dialog, div, em, embed, figure, footer, form, frag, h1, h2, h3, h4, h5, h6, head, header, hr, i, iframe, img, input, isNode, label, lazy, legend, li, link, loop, main, make, makeElement, menu, nav, object, ol, optgroup, option, p, pre, progress, q, reference, section, select, source, span, strong, summary, table, tbody, td, template, textarea, th, title, tr, track, u, ul, useEffect, useRef, useState, video };
|