cavalion-vcl 1.1.70 → 1.1.71
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/.md +36 -108
- package/CHANGELOG.md +8 -0
- package/package.json +1 -1
- package/src/Control.js +14 -0
- package/src/entities/Query.js +1 -1
- package/src/ui/List.js +5 -6
package/.md
CHANGED
|
@@ -1,82 +1,40 @@
|
|
|
1
1
|
* [CHANGELOG.md]() - [README.md]() - [package.json]()
|
|
2
|
-
* [
|
|
3
|
-
|
|
4
|
-
#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
*
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
>> app._onDispatchChildEvent = (component, name, evt, f, args) => {
|
|
41
|
-
if(name === "mousemove" && component instanceof Console) {
|
|
42
|
-
if(evt.target.classList.contains("value") && evt.target.parentNode.classList.contains("node")) {
|
|
43
|
-
setTarget(evt.target);
|
|
44
|
-
} else {
|
|
45
|
-
setTarget(null);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
# `2022/10/28-1` √ List is buggy
|
|
51
|
-
|
|
52
|
-
Finally got to work on (and fix( that annoying bug where loading the second page triggered the "busy"-state/class (again), resulting in way too much animated-loading-image showing.
|
|
53
|
-
|
|
54
|
-
* `#VA-20221028-1`
|
|
55
|
-
* √ show loading image too long => use _count instead of _topRow
|
|
56
|
-
* √ error causes loading state to continue forever
|
|
57
|
-
* √ better error handling in entities/Query
|
|
58
|
-
|
|
59
|
-
# `2022/07/28` Control.prototype.makeVisible
|
|
60
|
-
|
|
61
|
-
Been working on coding in Markdown documents, basically in order to be able print results in the workspace console. Therefore the method `p()` has been introduced. It cancels the behaviour of opening a document while linking a link. Instead it evaluates the code and print its result in the workspace console.
|
|
62
|
-
|
|
63
|
-
So, now we can do something like:
|
|
64
|
-
|
|
65
|
-
* ```[`123`](`${p(:)}`)``` ==> [`123`](`${p(:)}`) - check the console after clicking 123
|
|
66
|
-
|
|
67
|
-
However, the console doesn't show yet automatically. Therefore the method `Control.prototype.makeVisible` is introduced. It will call the method `Control.prototype.show` and travel up in the parent-hierarchy and call more in case necessary.
|
|
68
|
-
|
|
69
|
-
* makeVisible() already exists in vcl/ui/Tab.prototype.
|
|
70
|
-
|
|
71
|
-
# `2022/05/19` vcl/Factory `#CVLN-20220519-1`
|
|
72
|
-
|
|
73
|
-
* how is the implicit base determined in `["", {}, []]`
|
|
74
|
-
|
|
75
|
-
>> require("vcl/Factory!devtools/App<code>");
|
|
76
|
-
=> Factory.load
|
|
77
|
-
=> Factory.prototype.load
|
|
78
|
-
|
|
79
|
-
# `2022/04/17` prototypes
|
|
2
|
+
* [.workspace](`(devtools/Workspace<${ws.getSpecializer()}>)`) - [.js]()
|
|
3
|
+
|
|
4
|
+
# cavalion-entities // va-objects
|
|
5
|
+
|
|
6
|
+
* Interpret, modify, kvp via a model
|
|
7
|
+
|
|
8
|
+
# cavalion-vcl
|
|
9
|
+
|
|
10
|
+
* [src](:/)
|
|
11
|
+
* [Factory](src/:.js) [.parse](src/Factory:.js) - [Reader](src/:.js) - [Writer](src/:.js)
|
|
12
|
+
* [CssRules](src/:.js) - [Listeners](src/:.js)
|
|
13
|
+
* **[Component](src/:.js)** [.query](src/Component:.js)
|
|
14
|
+
* **[Application](src/:.js)** - **[Action](src/:.js)**
|
|
15
|
+
* [data](src/:/) / [Array](src/data/:.js)
|
|
16
|
+
* [entities](src/:/) / [Query](src/entities/:.js) - [Instance](src/entities/:.js)
|
|
17
|
+
* **[Control](src/:.js)** < [ui](src/:/) /
|
|
18
|
+
* [Element](src/ui/:.js) < [LargeIcon](src/ui/:.js) << _smdl - alert_
|
|
19
|
+
* [Button](src/ui/:.js) < [PopupButton](src/ui/:.js)
|
|
20
|
+
* [Select](src/ui/:.js)
|
|
21
|
+
* [Input](src/ui/:.js) < [Checkbox](src/ui/:.js) - [Combobox](src/ui/:.js) - [DatePicker](src/ui/:.js)
|
|
22
|
+
* [Container](src/ui/:.js)
|
|
23
|
+
* [Group](src/ui/:.js)
|
|
24
|
+
* [Bar](src/ui/:.js)
|
|
25
|
+
* [CheckGroup](src/ui/:.js)
|
|
26
|
+
* [Panel](src/ui/:.js)
|
|
27
|
+
* [Popup](src/ui/:.js) - [Ace](src/ui/:.js) - [Console](src/ui/:.js)
|
|
28
|
+
* [Form](src/ui/:.js) - [FormContainer](src/ui/:.js)
|
|
29
|
+
* [List](src/ui/:.js) | [ListColumn](src/ui/:.js) - [ListBody](src/ui/:.js) - [ListFooter](src/ui/:.js) - [ListHeader](src/ui/:.js) - [ListRow](src/ui/:.js)
|
|
30
|
+
* [Sizer](src/ui/:.js)
|
|
31
|
+
* [Tabs](src/ui/:.js)
|
|
32
|
+
* [Tab](src/ui/:.js)
|
|
33
|
+
* [Tree](src/ui/:.js)
|
|
34
|
+
* [Node](src/ui/:.js)
|
|
35
|
+
* [.closeable](src/ui/Node:.js)
|
|
36
|
+
|
|
37
|
+
# prototypes `2022/04/17`
|
|
80
38
|
|
|
81
39
|
> * [App](src/prototypes/:.js) - <= _#window is instantiated here (weirdly not in .desktop)_
|
|
82
40
|
* [.console](src/prototypes/App:.js) << _hotkeys_ _probably deprecated_
|
|
@@ -103,34 +61,4 @@ However, the console doesn't show yet automatically. Therefore the method `Contr
|
|
|
103
61
|
* [Query](src/prototypes/ui/entities/:.js) - [.scaffold](src/prototypes/ui/entities/Query:.js) - [scaffold.future](src/prototypes/ui/entities/Query:.js)
|
|
104
62
|
* [QueryFilters](src/prototypes/ui/entities/:.js)
|
|
105
63
|
|
|
106
|
-
# `2022/04/03` classes
|
|
107
|
-
|
|
108
|
-
* [Factory](src/:.js) [.parse](src/Factory:.js) - [Reader](src/:.js) - [Writer](src/:.js)
|
|
109
|
-
* [CssRules](src/:.js) - [Listeners](src/:.js)
|
|
110
|
-
* [Component](src/:.js) [.query](src/Component:.js)
|
|
111
|
-
* [Action](src/:.js) - [Application](src/:.js)
|
|
112
|
-
* [data](src/:/) / [Array](src/data/:.js)
|
|
113
|
-
* [entities](src/:/) / [Query](src/entities/:.js) - [Instance](src/entities/:.js)
|
|
114
|
-
* [Control](src/:.js) < [ui](src/:/) /
|
|
115
|
-
* [Element](src/ui/:.js) < [LargeIcon](src/ui/:.js) << _smdl - alert_
|
|
116
|
-
* [Button](src/ui/:.js) < [PopupButton](src/ui/:.js)
|
|
117
|
-
* [Select](src/ui/:.js)
|
|
118
|
-
* [Input](src/ui/:.js) < [Checkbox](src/ui/:.js) - [Combobox](src/ui/:.js) - [DatePicker](src/ui/:.js)
|
|
119
|
-
* [Container](src/ui/:.js)
|
|
120
|
-
* [Group](src/ui/:.js)
|
|
121
|
-
* [Bar](src/ui/:.js)
|
|
122
|
-
* [CheckGroup](src/ui/:.js)
|
|
123
|
-
* [Panel](src/ui/:.js)
|
|
124
|
-
* [Popup](src/ui/:.js) - [Ace](src/ui/:.js) - [Console](src/ui/:.js)
|
|
125
|
-
* [Form](src/ui/:.js) - [FormContainer](src/ui/:.js)
|
|
126
|
-
* [List](src/ui/:.js) | [ListColumn](src/ui/:.js) - [ListBody](src/ui/:.js) - [ListFooter](src/ui/:.js) - [ListHeader](src/ui/:.js) - [ListRow](src/ui/:.js)
|
|
127
|
-
* [Sizer](src/ui/:.js)
|
|
128
|
-
* [Tabs](src/ui/:.js)
|
|
129
|
-
* [Tab](src/ui/:.js)
|
|
130
|
-
* [Tree](src/ui/:.js)
|
|
131
|
-
* [Node](src/ui/:.js)
|
|
132
|
-
* [.closeable](src/ui/Node:.js)
|
|
133
|
-
|
|
134
|
-
# resources
|
|
135
64
|
|
|
136
|
-
* ...
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
### 2022/11/15 - 1.1.71
|
|
2
|
+
|
|
3
|
+
* Updates the docs
|
|
4
|
+
* Control: adds onmouseout and onmouseover event properties
|
|
5
|
+
* Query: fixes some bug in error handling
|
|
6
|
+
* List: improves rendering while loading
|
|
7
|
+
|
|
8
|
+
|
|
1
9
|
### 2022/10/30 - 1.1.70
|
|
2
10
|
|
|
3
11
|
`#VA-20221028-1`, `-2` & `-3`
|
package/package.json
CHANGED
package/src/Control.js
CHANGED
|
@@ -92,6 +92,8 @@ define(function(require) {
|
|
|
92
92
|
_onMouseMove: null,
|
|
93
93
|
_onMouseEnter: null,
|
|
94
94
|
_onMouseLeave: null,
|
|
95
|
+
_onMouseOut: null,
|
|
96
|
+
_onMouseOver: null,
|
|
95
97
|
_onDraggerNeeded: null,
|
|
96
98
|
_onDragStart: null,
|
|
97
99
|
_onDragEvent: null,
|
|
@@ -1537,6 +1539,12 @@ this._updateCalls = this._updateCalls || 0; this._updateCalls++;
|
|
|
1537
1539
|
onmouseleave: function() {
|
|
1538
1540
|
this.fire("onMouseLeave", arguments);
|
|
1539
1541
|
},
|
|
1542
|
+
onmouseout: function() {
|
|
1543
|
+
this.fire("onMouseOut", arguments);
|
|
1544
|
+
},
|
|
1545
|
+
onmouseleave: function() {
|
|
1546
|
+
this.fire("onMouseOver", arguments);
|
|
1547
|
+
},
|
|
1540
1548
|
ontap: function() {
|
|
1541
1549
|
this.fire("onTap", arguments);
|
|
1542
1550
|
},
|
|
@@ -2034,6 +2042,12 @@ this._updateCalls = this._updateCalls || 0; this._updateCalls++;
|
|
|
2034
2042
|
"onMouseLeave": {
|
|
2035
2043
|
type: Type.EVENT
|
|
2036
2044
|
},
|
|
2045
|
+
"onMouseOut": {
|
|
2046
|
+
type: Type.EVENT
|
|
2047
|
+
},
|
|
2048
|
+
"onMouseOver": {
|
|
2049
|
+
type: Type.EVENT
|
|
2050
|
+
},
|
|
2037
2051
|
"onNodeCreated": {
|
|
2038
2052
|
type: Type.EVENT
|
|
2039
2053
|
},
|
package/src/entities/Query.js
CHANGED
|
@@ -302,7 +302,7 @@ define(function(require) {
|
|
|
302
302
|
if(this._pageReqs && (this._request !== this._pageReqs[page])) {
|
|
303
303
|
// console.debug(this._entity, "requestPage: page", page, "receveid, but IGNORED");
|
|
304
304
|
/* ...it should be ignored */
|
|
305
|
-
return
|
|
305
|
+
return e;
|
|
306
306
|
}
|
|
307
307
|
|
|
308
308
|
delete this._request;
|
package/src/ui/List.js
CHANGED
|
@@ -753,6 +753,7 @@ define(function(require) {
|
|
|
753
753
|
},
|
|
754
754
|
|
|
755
755
|
sourceNotifyEvent: function(event, data) {
|
|
756
|
+
// this.app().print(js.sf("event: %s - data: %s => busy: %s, count: %s, topRow: %s", event, data, this.hasClass("busy"), this._count, this._topRow))
|
|
756
757
|
switch(event) {
|
|
757
758
|
|
|
758
759
|
case SourceEvent.activeChanged:
|
|
@@ -767,13 +768,11 @@ define(function(require) {
|
|
|
767
768
|
break;
|
|
768
769
|
|
|
769
770
|
case SourceEvent.busyChanged:
|
|
770
|
-
if((data && this._count > 0) || this.hasClass("ignore-busy")) { /* TODO what about scrolling up? */
|
|
771
|
-
return;
|
|
772
|
-
}
|
|
773
|
-
|
|
774
|
-
this.app().print(js.sf("data: %s => busy: %s, count: %s, topRow: %s", data, this.hasClass("busy"), this._count, this._topRow))
|
|
775
771
|
|
|
776
772
|
this.setTimeout("update-busy", function() {
|
|
773
|
+
if((data && this._count > 0) || this.hasClass("ignore-busy")) { /* TODO what about scrolling up? */
|
|
774
|
+
return;
|
|
775
|
+
}
|
|
777
776
|
if(data && !this.hasClass("busy")) {
|
|
778
777
|
this.addClass("busy");
|
|
779
778
|
} else if(!data && this.hasClass("busy")) {
|
|
@@ -835,7 +834,7 @@ this.app().print(js.sf("data: %s => busy: %s, count: %s, topRow: %s", data, this
|
|
|
835
834
|
},
|
|
836
835
|
|
|
837
836
|
valueByColumnAndRow(column, row) {
|
|
838
|
-
var value = this._source.getAttributeValue(column._attribute, row);
|
|
837
|
+
var value = this._source.getAttributeValue(column._attribute, row, true);
|
|
839
838
|
if(column._wantsNullValues || (value !== null && value !== undefined)) {
|
|
840
839
|
if(column._displayFormat !== "") {
|
|
841
840
|
value = String.format(column._displayFormat, value);
|