cavalion-js 1.0.70 โ 1.0.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 +42 -42
- package/CHANGELOG.md +6 -0
- package/README.md +39 -6
- package/package.json +1 -1
- package/src/js/Class.js +12 -15
- package/src/js/_js.js +8 -7
- package/src/locale.js +41 -35
package/.md
CHANGED
|
@@ -2,44 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
# cavalion-js
|
|
4
4
|
|
|
5
|
-
# `0725`
|
|
6
|
-
|
|
7
|
-
Enhancing `js.groupBy` to accept multiple keys for grouping.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# `0429`
|
|
11
|
-
|
|
12
|
-
I want to be able to activate these source files with [an overlay]([!prototypes/Hover]{}) of Markdown. Or... no, I want to overlay the source I guess. ๐๐คจ๐ค
|
|
13
|
-
|
|
14
|
-
* [defineClass](src/js/:.js)
|
|
15
|
-
* [JsObject](src/js/:.js)
|
|
16
|
-
* [Method](src/js/:.js)
|
|
17
|
-
* [Class](src/js/:.js)
|
|
18
|
-
* [extensions](src/js/:.js)
|
|
19
|
-
* [mixIn](src/js/:.js)
|
|
20
|
-
* [nameOf](src/js/:.js)
|
|
21
|
-
* [Method](src/js/:.js)
|
|
22
|
-
* [Type](src/js/:.js)
|
|
23
|
-
|
|
24
|
-
Still, it would be nice to just
|
|
25
|
-
|
|
26
|
-
* Press (**โงโ.**) and overlay _the current context_ (whatever that might be anyways, probably a JavaScript module, rapportage-script) with _whatever_, starting with a _context-local_-[.md]()-file, sprouting in to whatever, but _mas-que-nada_ a starting point in order to...
|
|
27
|
-
* ...overlay notes, bookmarks, links, scripts, photos, ...
|
|
28
|
-
|
|
29
|
-
# `0424`
|
|
30
|
-
|
|
31
|
-
* `js.args(arr)` - concats and filters `arr` for non-undefined values
|
|
32
|
-
|
|
33
|
-
>> var v = (a, b, c, d) => control.vars.apply(control, js.args(a, b, c, d));
|
|
34
|
-
|
|
35
|
-
# cavalion-js
|
|
36
|
-
|
|
37
5
|
* [src](:/)
|
|
38
|
-
* [console](src/:/)
|
|
39
|
-
* [data](src/:/) - [design](src/:/)
|
|
40
|
-
* [entities](src/:/) - [entities.js](src/) - [features](src/:/)
|
|
6
|
+
* **[console](src/:/)**
|
|
7
|
+
* **[data](src/:/)** - [design](src/:/)
|
|
8
|
+
* **[entities](src/:/)** - [entities.js](src/) - [features](src/:/)
|
|
41
9
|
* [js](src/:/) / [\_js.js](src/js/:) - [extensions.js](src/js/:) - _[global.js](src/js/:)_? - _[define.js](src/js/:)?_
|
|
42
10
|
- [defineClass.js](src/js/:) - [referenceClass.js](src/js/:)
|
|
11
|
+
- [json.js](src/:) - [locale.js](src/:) - [text.js](src/:)
|
|
12
|
+
- [script.js](src/:) - [relscript.js](src/:)
|
|
13
|
+
- [stylesheet.js](src/:)
|
|
14
|
+
- [persistence](src/:/) - [persistence2](src/:/)
|
|
15
|
+
- [test](src/:/) - [yell.js](src/:) - [unrequire.js](src/:)
|
|
43
16
|
- [js.js](src/:)
|
|
44
17
|
- [on.js](src/:)
|
|
45
18
|
- [nameOf.js](src/js/:)
|
|
@@ -55,13 +28,8 @@ Still, it would be nice to just
|
|
|
55
28
|
- [Rest.js](src/util/:)
|
|
56
29
|
- [Stylesheet.js](src/util/:)
|
|
57
30
|
- [Xml.js](src/util/:)
|
|
58
|
-
- [json.js](src/:) - [locale.js](src/:) - [text.js](src/:)
|
|
59
|
-
- [script.js](src/:) - [relscript.js](src/:)
|
|
60
|
-
- [stylesheet.js](src/:)
|
|
61
|
-
- [persistence](src/:/) - [persistence2](src/:/)
|
|
62
|
-
- [test](src/:/) - [yell.js](src/:) - [unrequire.js](src/:)
|
|
63
31
|
|
|
64
|
-
#
|
|
32
|
+
#
|
|
65
33
|
|
|
66
34
|
- []()
|
|
67
35
|
- [ArrayFactory.js](src/js/:)
|
|
@@ -77,8 +45,40 @@ Still, it would be nice to just
|
|
|
77
45
|
- [Scaffold.js](src/js/:)
|
|
78
46
|
- [Type.js](src/js/:)
|
|
79
47
|
|
|
80
|
-
#
|
|
48
|
+
# `0913`
|
|
49
|
+
|
|
50
|
+
Working on [README.md]().
|
|
51
|
+
|
|
52
|
+
# `0725`
|
|
53
|
+
|
|
54
|
+
Enhancing `js.groupBy` to accept multiple keys for grouping.
|
|
55
|
+
|
|
56
|
+
# `0429`
|
|
57
|
+
|
|
58
|
+
I want to be able to activate these source files with [an overlay]([!prototypes/Hover]{}) of Markdown. Or... no, I want to overlay the source I guess. ๐๐คจ๐ค
|
|
59
|
+
|
|
60
|
+
* [defineClass](src/js/:.js)
|
|
61
|
+
* [JsObject](src/js/:.js)
|
|
62
|
+
* [Method](src/js/:.js)
|
|
63
|
+
* [Class](src/js/:.js)
|
|
64
|
+
* [extensions](src/js/:.js)
|
|
65
|
+
* [mixIn](src/js/:.js)
|
|
66
|
+
* [nameOf](src/js/:.js)
|
|
67
|
+
* [Method](src/js/:.js)
|
|
68
|
+
* [Type](src/js/:.js)
|
|
69
|
+
|
|
70
|
+
Still, it would be nice to just:
|
|
71
|
+
|
|
72
|
+
* Press (**โงโ.**) and overlay _the current context_ (whatever that might be anyways, probably a JavaScript module, rapportage-script) with _whatever_, starting with a _context-local_-[.md]()-file, sprouting in to whatever, but _mas-que-nada_ a starting point in order to...
|
|
73
|
+
* ...overlay notes, bookmarks, links, scripts, photos, ...
|
|
81
74
|
|
|
75
|
+
# `0424`
|
|
76
|
+
|
|
77
|
+
* `js.args(arr)` - concats and filters `arr` for non-undefined values
|
|
78
|
+
|
|
79
|
+
>> var v = (a, b, c, d) => control.vars.apply(control, js.args(a, b, c, d));
|
|
80
|
+
|
|
81
|
+
# js.nameOf for Array in console
|
|
82
82
|
|
|
83
83
|
# sort
|
|
84
84
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
### 2022/07/28 10/29 - 1.0.71
|
|
2
|
+
|
|
3
|
+
* Adjusts/enhances `js.groupBy()` to use js.get(key,obj) in case obj doesn't have key
|
|
4
|
+
* !!!???? Implements the support for falling back automatically ([CVLN-20220901-2-](/Dropbox-cavalion/Issues/:/))
|
|
5
|
+
fixes a bug where falling back on wildcarded terms was not working correctly
|
|
6
|
+
|
|
1
7
|
### 2022/07/28 - 1.0.70
|
|
2
8
|
|
|
3
9
|
* 2bb8d17 - updates/commits code that has been shipped for months now
|
package/README.md
CHANGED
|
@@ -1,13 +1,46 @@
|
|
|
1
1
|
# cavalion-js
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Cavalion common JavaScript library. It consist of:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
* Constructor class registration
|
|
6
|
+
* Console
|
|
7
|
+
* Data interfaces
|
|
8
|
+
* Design(er) package (in development)
|
|
9
|
+
* Utility Classes
|
|
10
|
+
* RequireJS plugins
|
|
6
11
|
|
|
7
|
-
|
|
12
|
+
# Installation
|
|
8
13
|
|
|
9
|
-
|
|
14
|
+
## Node
|
|
15
|
+
|
|
16
|
+
$ npm install cavalion-js
|
|
17
|
+
|
|
18
|
+
## RequireJS
|
|
19
|
+
|
|
20
|
+
require.config({ paths: { js: `${path-to-cavalion-js}/src/js`}})
|
|
21
|
+
|
|
22
|
+
require("js");
|
|
23
|
+
|
|
24
|
+
# Class System
|
|
25
|
+
|
|
26
|
+
* [defineClass](src/js/:.js) - _basically a shortcut to Class.define with some sugar_
|
|
27
|
+
* [JsObject](src/js/:.js) - _kind of super class_
|
|
28
|
+
* [Method](src/js/:.js) - _hacking with functions_
|
|
29
|
+
* [Class](src/js/:.js) - _Class.make() is where the meat is_
|
|
30
|
+
* [extensions](src/js/:.js)
|
|
31
|
+
* [mixIn](src/js/:.js)
|
|
32
|
+
* [nameOf](src/js/:.js)
|
|
33
|
+
* [Method](src/js/:.js)
|
|
34
|
+
* [Type](src/js/:.js)
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+
|
|
38
|
+
# RequireJS plugins
|
|
39
|
+
|
|
40
|
+
* [json](src/:.js)
|
|
41
|
+
* [stylesheet](src/:.js)
|
|
42
|
+
* [script](src/:.js)
|
|
43
|
+
* [relscript](src/:.js)
|
|
44
|
+
* [text](src/:.js)
|
|
10
45
|
|
|
11
|
-
require.config({ paths: { js: "`${npm("cavalion-js")}`/src/js"}})
|
|
12
46
|
|
|
13
|
-
require("js");
|
package/package.json
CHANGED
package/src/js/Class.js
CHANGED
|
@@ -20,9 +20,6 @@ define(function(require) {
|
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
-
/**
|
|
24
|
-
*
|
|
25
|
-
*/
|
|
26
23
|
function getDefaultInherits() {
|
|
27
24
|
if(classMap["js/JsObject"] === undefined) {
|
|
28
25
|
console.log("JsObject not defined!");
|
|
@@ -33,21 +30,21 @@ define(function(require) {
|
|
|
33
30
|
return classMap["js/JsObject"];
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
/**
|
|
37
|
-
* toString implementation for constructors
|
|
38
|
-
*/
|
|
39
33
|
function classConstructorToString() {
|
|
34
|
+
/**
|
|
35
|
+
* toString implementation for constructors
|
|
36
|
+
*/
|
|
40
37
|
if(this.hasOwnProperty(classObjKeyName)) {
|
|
41
38
|
return String.format("function %s() { [constructor code] }", this[classObjKeyName].name);
|
|
42
39
|
}
|
|
43
40
|
return Function.prototype.toString.apply(this, arguments);
|
|
44
41
|
}
|
|
45
42
|
|
|
46
|
-
/**
|
|
47
|
-
* This is Chrome specific (as far as I know). It will show fancy names for
|
|
48
|
-
* object instances in the console.
|
|
49
|
-
*/
|
|
50
43
|
function namedFunction(name, f) {
|
|
44
|
+
/**
|
|
45
|
+
* This is Chrome specific (as far as I know). It will show fancy names for
|
|
46
|
+
* object instances in the console.
|
|
47
|
+
*/
|
|
51
48
|
var symbol;
|
|
52
49
|
var g = f, fname = f.name;
|
|
53
50
|
|
|
@@ -80,12 +77,12 @@ define(function(require) {
|
|
|
80
77
|
return f;
|
|
81
78
|
}
|
|
82
79
|
|
|
83
|
-
/**
|
|
84
|
-
* Create a constructor function used for instances of Class.defin(e)itions
|
|
85
|
-
*
|
|
86
|
-
* @returns {Function}
|
|
87
|
-
*/
|
|
88
80
|
function createConstructor(name) {
|
|
81
|
+
/**
|
|
82
|
+
* Create a constructor function used for instances of Class.defin(e)itions
|
|
83
|
+
*
|
|
84
|
+
* @returns {Function}
|
|
85
|
+
*/
|
|
89
86
|
return namedFunction(name || "AnonymousClass", function() {
|
|
90
87
|
/**
|
|
91
88
|
* js/Class.constructor: This constructor inspects it's classObj in
|
package/src/js/_js.js
CHANGED
|
@@ -59,13 +59,14 @@ define(function(require) {
|
|
|
59
59
|
|
|
60
60
|
var obj = groupBy(arr, keys.shift());
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
for (var k in obj) {
|
|
63
|
+
var v = obj.hasOwnProperty(k) ? obj[k] : js.get(k, obj);
|
|
64
|
+
if (keys.length) {
|
|
65
|
+
obj[k] = js.groupBy(v, [].concat(keys), mth);
|
|
66
|
+
} else if (mth) {
|
|
67
|
+
obj[k] = mth(v);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
69
70
|
|
|
70
71
|
return obj;
|
|
71
72
|
},
|
package/src/locale.js
CHANGED
|
@@ -15,35 +15,7 @@ define(function(require) {
|
|
|
15
15
|
function locale(id) {
|
|
16
16
|
var loc = locale.loc;//arguments.callee.loc;
|
|
17
17
|
|
|
18
|
-
if(id === undefined || locale[loc] === undefined) {
|
|
19
|
-
return "{{" + id + "}}";
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
if(id instanceof RegExp) {
|
|
23
|
-
var m = [], match;
|
|
24
|
-
for(var k in locale[loc]) {
|
|
25
|
-
if((match = id.exec(k)) !== null && match.length > 0) {
|
|
26
|
-
if(m.indexOf(match[0]) === -1) {
|
|
27
|
-
m.push(match[0]);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return m;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if(locale.slashDotRepl === true) {
|
|
35
|
-
id = id.replace(/\/\./g, "#");
|
|
36
|
-
}
|
|
37
|
-
|
|
38
18
|
function resolve(id) {
|
|
39
|
-
if(id === undefined) debugger;
|
|
40
|
-
|
|
41
|
-
var began;
|
|
42
|
-
if((began = locale.debug)) {
|
|
43
|
-
console.group("locale-resolve", id);
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
|
|
47
19
|
/*- Find in the dictionary */
|
|
48
20
|
var r = window.locale[loc][id], i, nid, dash = id.indexOf("-"), dot = id.indexOf(".");
|
|
49
21
|
var preferdash = (dot === -1 || dot > dash);
|
|
@@ -101,14 +73,43 @@ try {
|
|
|
101
73
|
}
|
|
102
74
|
|
|
103
75
|
return r;
|
|
104
|
-
} finally {
|
|
105
|
-
if(began) {
|
|
106
|
-
console.groupEnd();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
76
|
}
|
|
110
77
|
|
|
111
|
-
|
|
78
|
+
if(id === undefined || locale[loc] === undefined) {
|
|
79
|
+
return "{{" + id + "}}";
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if(id instanceof RegExp) {
|
|
83
|
+
var m = [], match;
|
|
84
|
+
for(var k in locale[loc]) {
|
|
85
|
+
if((match = id.exec(k)) !== null && match.length > 0) {
|
|
86
|
+
// if(m.indexOf(match[0]) === -1) {
|
|
87
|
+
m.push([k, locale[loc][k]]);
|
|
88
|
+
// }
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return m.sort((i1, i2) => i1[0] < i2[0] ? -1 : i1[0] === i2[0] ? 0 : 1);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
var r;
|
|
95
|
+
if(id instanceof Array) { // #CVLN-202209091-1
|
|
96
|
+
// r = resolve(id.join(""));
|
|
97
|
+
var id_ = id.join("");
|
|
98
|
+
r = locale[loc][id.join("")];
|
|
99
|
+
while(r === undefined && id.length > 1) {
|
|
100
|
+
while(id.shift() === "*") ;
|
|
101
|
+
id.unshift("*");
|
|
102
|
+
|
|
103
|
+
r = resolve(id.join(""));
|
|
104
|
+
}
|
|
105
|
+
if(r == undefined) r = locale(id_);
|
|
106
|
+
} else {
|
|
107
|
+
if(locale.slashDotRepl === true) {
|
|
108
|
+
id = id.replace(/\/\./g, "#");
|
|
109
|
+
}
|
|
110
|
+
r = resolve(id);
|
|
111
|
+
}
|
|
112
|
+
|
|
112
113
|
if(r === undefined) {
|
|
113
114
|
var arr = (window.locale.missing = (window.locale.missing || []));
|
|
114
115
|
arr.push(id);
|
|
@@ -162,7 +163,12 @@ try {
|
|
|
162
163
|
}
|
|
163
164
|
|
|
164
165
|
var args = js.copy_args(arguments);
|
|
165
|
-
args[0]
|
|
166
|
+
if(args[0] instanceof Array) {
|
|
167
|
+
args[0].unshift(prefix);
|
|
168
|
+
args[0] = [args[0].pop(), args[0].join("")].reverse();
|
|
169
|
+
} else {
|
|
170
|
+
args[0] = [prefix, id];
|
|
171
|
+
}
|
|
166
172
|
return locale.apply(this, args);
|
|
167
173
|
};
|
|
168
174
|
};
|