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 CHANGED
@@ -1,82 +1,40 @@
1
1
  * [CHANGELOG.md]() - [README.md]() - [package.json]()
2
- * [Workspace<vcl>](/Library/vcl-comps/devtools/Workspace$/vcl.js) - [.js]()
3
-
4
- # `2022/10/28-3` vcl/Component.getKeysByUri - bug (?!!)
5
-
6
- Found a bug in [Component](src/:.js). Amazing that that still happens, even in a function used so F'n frequently...
7
-
8
- * `#VA-20221028-3` Characters missing when no <>
9
-
10
- ![20221028-172348-nnqDdO](https://raw.githubusercontent.com/relluf/screenshots/master/20221028-172348-nnqDdO.png)
11
-
12
- ![20221028-172420-PT3Fro](https://raw.githubusercontent.com/relluf/screenshots/master/20221028-172420-PT3Fro.png)
13
-
14
- Squeezed and fixed:
15
-
16
- ![20221028-172807-fO3Z56](https://raw.githubusercontent.com/relluf/screenshots/master/20221028-172807-fO3Z56.png)
17
-
18
- # `2022/10/28-2` Console should hint textContent
19
-
20
- Many times I need to scroll the console horizontally to read error messages or other large strings. Let's try to hint that content while mousing over it.
21
-
22
- * `#VA-20221028-2`
23
-
24
- The following works [nicely](//.js) and can be easily implemented on [Console](src/ui/:.js) itself, by hooking the mousemove-event:
25
-
26
- >> const setTarget = (value) => {
27
- const target = app.vars("target");
28
- if(value !== target) {
29
- if(target) {
30
- target.title = target.title$$;
31
- delete target.title$$;
32
- }
33
- value.title$$ = value.title;
34
- value.title = value.textContent;
35
- app.vars("target", value);
36
- app.print("target", app.vars("target"));
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cavalion-vcl",
3
- "version": "1.1.70",
3
+ "version": "1.1.71",
4
4
  "description": "Visual Component Library for vcl-comps",
5
5
  "main": "index.js",
6
6
  "scripts": {
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
  },
@@ -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 res;
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);