@tko/binding.core 4.0.0-beta1.3 → 4.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/dist/attr.js +10 -14
- package/dist/attr.js.map +2 -2
- package/dist/checked.js +19 -28
- package/dist/checked.js.map +3 -3
- package/dist/click.js +4 -5
- package/dist/click.js.map +2 -2
- package/dist/css.js +6 -12
- package/dist/css.js.map +2 -2
- package/dist/descendantsComplete.js +3 -4
- package/dist/descendantsComplete.js.map +2 -2
- package/dist/enableDisable.js +6 -7
- package/dist/enableDisable.js.map +2 -2
- package/dist/event.js +7 -8
- package/dist/event.js.map +3 -3
- package/dist/hasfocus.js +23 -22
- package/dist/hasfocus.js.map +2 -2
- package/dist/html.js +8 -8
- package/dist/html.js.map +2 -2
- package/dist/index.cjs +1037 -863
- package/dist/index.cjs.map +4 -4
- package/dist/index.js +6 -5
- package/dist/index.js.map +2 -2
- package/dist/index.mjs +6 -5
- package/dist/index.mjs.map +2 -2
- package/dist/let.js +6 -7
- package/dist/let.js.map +2 -2
- package/dist/options.js +39 -26
- package/dist/options.js.map +2 -2
- package/dist/selectedOptions.js +8 -9
- package/dist/selectedOptions.js.map +2 -2
- package/dist/style.js +8 -13
- package/dist/style.js.map +2 -2
- package/dist/submit.js +7 -8
- package/dist/submit.js.map +2 -2
- package/dist/text.js +4 -5
- package/dist/text.js.map +2 -2
- package/dist/textInput.js +24 -59
- package/dist/textInput.js.map +2 -2
- package/dist/uniqueName.js +5 -7
- package/dist/uniqueName.js.map +2 -2
- package/dist/using.js +6 -7
- package/dist/using.js.map +2 -2
- package/dist/value.js +17 -23
- package/dist/value.js.map +2 -2
- package/dist/visible.js +7 -8
- package/dist/visible.js.map +2 -2
- package/package.json +6 -7
- package/LICENSE +0 -22
- package/dist/test-helper.js +0 -14
- package/dist/test-helper.js.map +0 -7
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// @tko/binding.core 🥊 4.0.0
|
|
1
|
+
// @tko/binding.core 🥊 4.0.0 ESM
|
|
2
|
+
"use strict";
|
|
2
3
|
import { attr } from "./attr";
|
|
3
4
|
import { checked, checkedValue } from "./checked";
|
|
4
5
|
import { click } from "./click";
|
|
@@ -19,22 +20,22 @@ import { uniqueName } from "./uniqueName";
|
|
|
19
20
|
import { value } from "./value";
|
|
20
21
|
import { visible, hidden } from "./visible";
|
|
21
22
|
import { using } from "./using";
|
|
22
|
-
export
|
|
23
|
+
export const bindings = {
|
|
23
24
|
attr,
|
|
24
25
|
checked,
|
|
25
26
|
checkedValue,
|
|
26
27
|
click,
|
|
27
28
|
css,
|
|
28
|
-
|
|
29
|
+
class: css,
|
|
29
30
|
descendantsComplete,
|
|
30
31
|
enable,
|
|
31
|
-
|
|
32
|
+
event: eventHandler,
|
|
32
33
|
disable,
|
|
33
34
|
hasfocus,
|
|
34
35
|
hasFocus: hasfocus,
|
|
35
36
|
hidden,
|
|
36
37
|
html,
|
|
37
|
-
|
|
38
|
+
let: $let,
|
|
38
39
|
on: onHandler,
|
|
39
40
|
options,
|
|
40
41
|
selectedOptions,
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";
|
|
4
|
+
"sourcesContent": ["import { attr } from './attr'\nimport { checked, checkedValue } from './checked'\nimport { click } from './click'\nimport { css } from './css'\nimport descendantsComplete from './descendantsComplete'\nimport { enable, disable } from './enableDisable'\nimport { eventHandler, onHandler } from './event'\nimport { hasfocus } from './hasfocus'\nimport { html } from './html'\nimport $let from './let'\nimport { options } from './options'\nimport { selectedOptions } from './selectedOptions'\nimport { style } from './style'\nimport { submit } from './submit'\nimport { text } from './text'\nimport { textInput } from './textInput'\nimport { uniqueName } from './uniqueName'\nimport { value } from './value'\nimport { visible, hidden } from './visible'\nimport { using } from './using'\n\nexport const bindings = {\n attr,\n checked,\n checkedValue,\n click,\n css,\n class: css,\n descendantsComplete,\n enable,\n event: eventHandler,\n disable,\n hasfocus,\n hasFocus: hasfocus,\n hidden,\n html,\n let: $let,\n on: onHandler,\n options,\n selectedOptions,\n style,\n submit,\n text,\n textInput,\n textinput: textInput,\n uniqueName,\n using,\n value,\n visible\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA,SAAS,YAAY;AACrB,SAAS,SAAS,oBAAoB;AACtC,SAAS,aAAa;AACtB,SAAS,WAAW;AACpB,OAAO,yBAAyB;AAChC,SAAS,QAAQ,eAAe;AAChC,SAAS,cAAc,iBAAiB;AACxC,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,OAAO,UAAU;AACjB,SAAS,eAAe;AACxB,SAAS,uBAAuB;AAChC,SAAS,aAAa;AACtB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,aAAa;AACtB,SAAS,SAAS,cAAc;AAChC,SAAS,aAAa;AAEf,aAAM,WAAW;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,KAAK;AAAA,EACL,IAAI;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// @tko/binding.core 🥊 4.0.0
|
|
1
|
+
// @tko/binding.core 🥊 4.0.0 MJS
|
|
2
|
+
"use strict";
|
|
2
3
|
import { attr } from "./attr";
|
|
3
4
|
import { checked, checkedValue } from "./checked";
|
|
4
5
|
import { click } from "./click";
|
|
@@ -19,22 +20,22 @@ import { uniqueName } from "./uniqueName";
|
|
|
19
20
|
import { value } from "./value";
|
|
20
21
|
import { visible, hidden } from "./visible";
|
|
21
22
|
import { using } from "./using";
|
|
22
|
-
export
|
|
23
|
+
export const bindings = {
|
|
23
24
|
attr,
|
|
24
25
|
checked,
|
|
25
26
|
checkedValue,
|
|
26
27
|
click,
|
|
27
28
|
css,
|
|
28
|
-
|
|
29
|
+
class: css,
|
|
29
30
|
descendantsComplete,
|
|
30
31
|
enable,
|
|
31
|
-
|
|
32
|
+
event: eventHandler,
|
|
32
33
|
disable,
|
|
33
34
|
hasfocus,
|
|
34
35
|
hasFocus: hasfocus,
|
|
35
36
|
hidden,
|
|
36
37
|
html,
|
|
37
|
-
|
|
38
|
+
let: $let,
|
|
38
39
|
on: onHandler,
|
|
39
40
|
options,
|
|
40
41
|
selectedOptions,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";
|
|
4
|
+
"sourcesContent": ["import { attr } from './attr'\nimport { checked, checkedValue } from './checked'\nimport { click } from './click'\nimport { css } from './css'\nimport descendantsComplete from './descendantsComplete'\nimport { enable, disable } from './enableDisable'\nimport { eventHandler, onHandler } from './event'\nimport { hasfocus } from './hasfocus'\nimport { html } from './html'\nimport $let from './let'\nimport { options } from './options'\nimport { selectedOptions } from './selectedOptions'\nimport { style } from './style'\nimport { submit } from './submit'\nimport { text } from './text'\nimport { textInput } from './textInput'\nimport { uniqueName } from './uniqueName'\nimport { value } from './value'\nimport { visible, hidden } from './visible'\nimport { using } from './using'\n\nexport const bindings = {\n attr,\n checked,\n checkedValue,\n click,\n css,\n class: css,\n descendantsComplete,\n enable,\n event: eventHandler,\n disable,\n hasfocus,\n hasFocus: hasfocus,\n hidden,\n html,\n let: $let,\n on: onHandler,\n options,\n selectedOptions,\n style,\n submit,\n text,\n textInput,\n textinput: textInput,\n uniqueName,\n using,\n value,\n visible\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA,SAAS,YAAY;AACrB,SAAS,SAAS,oBAAoB;AACtC,SAAS,aAAa;AACtB,SAAS,WAAW;AACpB,OAAO,yBAAyB;AAChC,SAAS,QAAQ,eAAe;AAChC,SAAS,cAAc,iBAAiB;AACxC,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,OAAO,UAAU;AACjB,SAAS,eAAe;AACxB,SAAS,uBAAuB;AAChC,SAAS,aAAa;AACtB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,aAAa;AACtB,SAAS,SAAS,cAAc;AAChC,SAAS,aAAa;AAEf,aAAM,WAAW;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,KAAK;AAAA,EACL,IAAI;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/let.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
// @tko/binding.core 🥊 4.0.0
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from "@tko/bind";
|
|
1
|
+
// @tko/binding.core 🥊 4.0.0 ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import { applyBindingsToDescendants } from "@tko/bind";
|
|
5
4
|
export default {
|
|
6
|
-
init: function(element, valueAccessor,
|
|
7
|
-
|
|
5
|
+
init: function(element, valueAccessor, _allBindings, _viewModel, bindingContext) {
|
|
6
|
+
const innerContext = bindingContext["extend"](valueAccessor);
|
|
8
7
|
applyBindingsToDescendants(innerContext, element);
|
|
9
|
-
return {
|
|
8
|
+
return { controlsDescendantBindings: true };
|
|
10
9
|
},
|
|
11
10
|
allowVirtualElements: true
|
|
12
11
|
};
|
package/dist/let.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/let.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import { applyBindingsToDescendants } from '@tko/bind'\n\nimport type { BindingContext } from '@tko/bind'\n\nexport default {\n init: function (element, valueAccessor, _allBindings, _viewModel, bindingContext: BindingContext) {\n // Make a modified binding context, with extra properties, and apply it to descendant elements\n const innerContext = bindingContext['extend'](valueAccessor)\n applyBindingsToDescendants(innerContext, element)\n\n return { controlsDescendantBindings: true }\n },\n allowVirtualElements: true\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA,SAAS,kCAAkC;AAI3C,eAAe;AAAA,EACb,MAAM,SAAU,SAAS,eAAe,cAAc,YAAY,gBAAgC;AAEhG,UAAM,eAAe,eAAe,QAAQ,EAAE,aAAa;AAC3D,+BAA2B,cAAc,OAAO;AAEhD,WAAO,EAAE,4BAA4B,KAAK;AAAA,EAC5C;AAAA,EACA,sBAAsB;AACxB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/options.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// @tko/binding.core 🥊 4.0.0
|
|
1
|
+
// @tko/binding.core 🥊 4.0.0 ESM
|
|
2
|
+
"use strict";
|
|
2
3
|
import {
|
|
3
4
|
tagNameLower,
|
|
4
5
|
arrayFilter,
|
|
@@ -7,18 +8,12 @@ import {
|
|
|
7
8
|
arrayIndexOf,
|
|
8
9
|
setOptionNodeSelectionState,
|
|
9
10
|
triggerEvent,
|
|
10
|
-
ensureSelectElementIsRenderedCorrectly,
|
|
11
11
|
selectExtensions
|
|
12
12
|
} from "@tko/utils";
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
setDomNodeChildrenFromArrayMapping
|
|
19
|
-
} from "@tko/bind";
|
|
20
|
-
var captionPlaceholder = {};
|
|
21
|
-
export var options = {
|
|
13
|
+
import { unwrap, dependencyDetection } from "@tko/observable";
|
|
14
|
+
import { setDomNodeChildrenFromArrayMapping } from "@tko/bind";
|
|
15
|
+
const captionPlaceholder = {};
|
|
16
|
+
export const options = {
|
|
22
17
|
init: function(element) {
|
|
23
18
|
if (tagNameLower(element) !== "select") {
|
|
24
19
|
throw new Error("options binding applies only to SELECT elements");
|
|
@@ -26,7 +21,7 @@ export var options = {
|
|
|
26
21
|
while (element.length > 0) {
|
|
27
22
|
element.remove(0);
|
|
28
23
|
}
|
|
29
|
-
return {
|
|
24
|
+
return { controlsDescendantBindings: true };
|
|
30
25
|
},
|
|
31
26
|
update: function(element, valueAccessor, allBindings) {
|
|
32
27
|
function selectedOptions() {
|
|
@@ -34,7 +29,7 @@ export var options = {
|
|
|
34
29
|
return node.selected;
|
|
35
30
|
});
|
|
36
31
|
}
|
|
37
|
-
|
|
32
|
+
let selectWasPreviouslyEmpty = element.length == 0, multiple = element.multiple, previousScrollTop = !selectWasPreviouslyEmpty && multiple ? element.scrollTop : null, unwrappedArray = unwrap(valueAccessor()), valueAllowUnset = allBindings.get("valueAllowUnset") && allBindings["has"]("value"), includeDestroyed = allBindings.get("optionsIncludeDestroyed"), arrayToDomNodeChildrenOptions = {}, captionValue, filteredArray, previousSelectedValues = new Array();
|
|
38
33
|
if (!valueAllowUnset) {
|
|
39
34
|
if (multiple) {
|
|
40
35
|
previousSelectedValues = arrayMap(selectedOptions(), selectExtensions.readValue);
|
|
@@ -58,7 +53,7 @@ export var options = {
|
|
|
58
53
|
} else {
|
|
59
54
|
}
|
|
60
55
|
function applyToObject(object, predicate, defaultValue) {
|
|
61
|
-
|
|
56
|
+
const predicateType = typeof predicate;
|
|
62
57
|
if (predicateType === "function") {
|
|
63
58
|
return predicate(object);
|
|
64
59
|
} else if (predicateType == "string") {
|
|
@@ -67,20 +62,20 @@ export var options = {
|
|
|
67
62
|
return defaultValue;
|
|
68
63
|
}
|
|
69
64
|
}
|
|
70
|
-
|
|
65
|
+
let itemUpdate = false;
|
|
71
66
|
function optionForArrayItem(arrayEntry, index, oldOptions) {
|
|
72
67
|
if (oldOptions.length) {
|
|
73
68
|
previousSelectedValues = !valueAllowUnset && oldOptions[0].selected ? [selectExtensions.readValue(oldOptions[0])] : [];
|
|
74
69
|
itemUpdate = true;
|
|
75
70
|
}
|
|
76
|
-
|
|
71
|
+
const option = element.ownerDocument.createElement("option");
|
|
77
72
|
if (arrayEntry === captionPlaceholder) {
|
|
78
73
|
setTextContent(option, allBindings.get("optionsCaption"));
|
|
79
74
|
selectExtensions.writeValue(option, void 0);
|
|
80
75
|
} else {
|
|
81
|
-
|
|
76
|
+
const optionValue = applyToObject(arrayEntry, allBindings.get("optionsValue"), arrayEntry);
|
|
82
77
|
selectExtensions.writeValue(option, unwrap(optionValue));
|
|
83
|
-
|
|
78
|
+
const optionText = applyToObject(arrayEntry, allBindings.get("optionsText"), optionValue);
|
|
84
79
|
setTextContent(option, optionText);
|
|
85
80
|
}
|
|
86
81
|
return [option];
|
|
@@ -90,28 +85,47 @@ export var options = {
|
|
|
90
85
|
};
|
|
91
86
|
function setSelectionCallback(arrayEntry, newOptions) {
|
|
92
87
|
if (itemUpdate && valueAllowUnset) {
|
|
93
|
-
selectExtensions.writeValue(
|
|
88
|
+
selectExtensions.writeValue(
|
|
89
|
+
element,
|
|
90
|
+
unwrap(allBindings.get("value")),
|
|
91
|
+
true
|
|
92
|
+
/* allowUnset */
|
|
93
|
+
);
|
|
94
94
|
} else if (previousSelectedValues.length) {
|
|
95
|
-
|
|
95
|
+
const isSelected = arrayIndexOf(previousSelectedValues, selectExtensions.readValue(newOptions[0])) >= 0;
|
|
96
96
|
setOptionNodeSelectionState(newOptions[0], isSelected);
|
|
97
97
|
if (itemUpdate && !isSelected) {
|
|
98
98
|
dependencyDetection.ignore(triggerEvent, null, [element, "change"]);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
|
|
102
|
+
let callback = setSelectionCallback;
|
|
103
103
|
if (allBindings["has"]("optionsAfterRender") && typeof allBindings.get("optionsAfterRender") === "function") {
|
|
104
104
|
callback = function(arrayEntry, newOptions) {
|
|
105
105
|
setSelectionCallback(arrayEntry, newOptions);
|
|
106
|
-
dependencyDetection.ignore(allBindings.get("optionsAfterRender"), null, [
|
|
106
|
+
dependencyDetection.ignore(allBindings.get("optionsAfterRender"), null, [
|
|
107
|
+
newOptions[0],
|
|
108
|
+
arrayEntry !== captionPlaceholder ? arrayEntry : void 0
|
|
109
|
+
]);
|
|
107
110
|
};
|
|
108
111
|
}
|
|
109
|
-
setDomNodeChildrenFromArrayMapping(
|
|
112
|
+
setDomNodeChildrenFromArrayMapping(
|
|
113
|
+
element,
|
|
114
|
+
filteredArray,
|
|
115
|
+
optionForArrayItem,
|
|
116
|
+
arrayToDomNodeChildrenOptions,
|
|
117
|
+
callback
|
|
118
|
+
);
|
|
110
119
|
dependencyDetection.ignore(function() {
|
|
111
120
|
if (valueAllowUnset) {
|
|
112
|
-
selectExtensions.writeValue(
|
|
121
|
+
selectExtensions.writeValue(
|
|
122
|
+
element,
|
|
123
|
+
unwrap(allBindings.get("value")),
|
|
124
|
+
true
|
|
125
|
+
/* allowUnset */
|
|
126
|
+
);
|
|
113
127
|
} else {
|
|
114
|
-
|
|
128
|
+
let selectionChanged;
|
|
115
129
|
if (multiple) {
|
|
116
130
|
selectionChanged = previousSelectedValues.length && selectedOptions().length < previousSelectedValues.length;
|
|
117
131
|
} else {
|
|
@@ -122,7 +136,6 @@ export var options = {
|
|
|
122
136
|
}
|
|
123
137
|
}
|
|
124
138
|
});
|
|
125
|
-
ensureSelectElementIsRenderedCorrectly(element);
|
|
126
139
|
if (previousScrollTop && Math.abs(previousScrollTop - element.scrollTop) > 20) {
|
|
127
140
|
element.scrollTop = previousScrollTop;
|
|
128
141
|
}
|
package/dist/options.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/options.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import {\n tagNameLower,\n arrayFilter,\n arrayMap,\n setTextContent,\n arrayIndexOf,\n setOptionNodeSelectionState,\n triggerEvent,\n selectExtensions\n} from '@tko/utils'\n\nimport { unwrap, dependencyDetection } from '@tko/observable'\nimport { setDomNodeChildrenFromArrayMapping } from '@tko/bind'\nimport type { AllBindings } from '@tko/bind'\nconst captionPlaceholder = {}\n\nexport const options = {\n init: function (element) {\n if (tagNameLower(element) !== 'select') {\n throw new Error('options binding applies only to SELECT elements')\n }\n\n // Remove all existing <option>s.\n while (element.length > 0) {\n element.remove(0)\n }\n\n // Ensures that the binding processor doesn't try to bind the options\n return { controlsDescendantBindings: true }\n },\n update: function (element, valueAccessor, allBindings: AllBindings) {\n function selectedOptions() {\n return arrayFilter(element.options, function (node) {\n return node.selected\n })\n }\n\n let selectWasPreviouslyEmpty = element.length == 0,\n multiple = element.multiple,\n previousScrollTop = !selectWasPreviouslyEmpty && multiple ? element.scrollTop : null,\n unwrappedArray = unwrap(valueAccessor()),\n valueAllowUnset = allBindings.get('valueAllowUnset') && allBindings['has']('value'),\n includeDestroyed = allBindings.get('optionsIncludeDestroyed'),\n arrayToDomNodeChildrenOptions = {},\n captionValue,\n filteredArray,\n previousSelectedValues = new Array()\n\n if (!valueAllowUnset) {\n if (multiple) {\n previousSelectedValues = arrayMap(selectedOptions(), selectExtensions.readValue)\n } else if (element.selectedIndex >= 0) {\n previousSelectedValues.push(selectExtensions.readValue(element.options[element.selectedIndex]))\n }\n }\n\n if (unwrappedArray) {\n if (typeof unwrappedArray.length === 'undefined') // Coerce single value into array\n {\n unwrappedArray = [unwrappedArray]\n }\n\n // Filter out any entries marked as destroyed\n filteredArray = arrayFilter(unwrappedArray, function (item) {\n return includeDestroyed || item === undefined || item === null || !unwrap(item['_destroy'])\n })\n\n // If caption is included, add it to the array\n if (allBindings['has']('optionsCaption')) {\n captionValue = unwrap(allBindings.get('optionsCaption'))\n // If caption value is null or undefined, don't show a caption\n if (captionValue !== null && captionValue !== undefined) {\n filteredArray.unshift(captionPlaceholder)\n }\n }\n } else {\n // If a falsy value is provided (e.g. null), we'll simply empty the select element\n }\n\n function applyToObject(object, predicate, defaultValue) {\n const predicateType = typeof predicate\n if (predicateType === 'function') // Given a function; run it against the data value\n {\n return predicate(object)\n } else if (predicateType == 'string') // Given a string; treat it as a property name on the data value\n {\n return object[predicate]\n } else // Given no optionsText arg; use the data value itself\n {\n return defaultValue\n }\n }\n\n // The following functions can run at two different times:\n // The first is when the whole array is being updated directly from this binding handler.\n // The second is when an observable value for a specific array entry is updated.\n // oldOptions will be empty in the first case, but will be filled with the previously generated option in the second.\n let itemUpdate = false\n function optionForArrayItem(arrayEntry, index, oldOptions) {\n if (oldOptions.length) {\n previousSelectedValues =\n !valueAllowUnset && oldOptions[0].selected ? [selectExtensions.readValue(oldOptions[0])] : []\n itemUpdate = true\n }\n const option = element.ownerDocument.createElement('option')\n if (arrayEntry === captionPlaceholder) {\n setTextContent(option, allBindings.get('optionsCaption'))\n selectExtensions.writeValue(option, undefined)\n } else {\n // Apply a value to the option element\n const optionValue = applyToObject(arrayEntry, allBindings.get('optionsValue'), arrayEntry)\n selectExtensions.writeValue(option, unwrap(optionValue))\n\n // Apply some text to the option element\n const optionText = applyToObject(arrayEntry, allBindings.get('optionsText'), optionValue)\n setTextContent(option, optionText)\n }\n return [option]\n }\n\n // By using a beforeRemove callback, we delay the removal until after new items are added. This fixes a selection\n // problem in IE<=8 and Firefox. See https://github.com/knockout/knockout/issues/1208\n arrayToDomNodeChildrenOptions['beforeRemove'] = function (option) {\n element.removeChild(option)\n }\n\n function setSelectionCallback(arrayEntry, newOptions) {\n if (itemUpdate && valueAllowUnset) {\n // The model value is authoritative, so make sure its value is the one selected\n // There is no need to use dependencyDetection.ignore since setDomNodeChildrenFromArrayMapping does so already.\n selectExtensions.writeValue(element, unwrap(allBindings.get('value')), true /* allowUnset */)\n } else if (previousSelectedValues.length) {\n // IE6 doesn't like us to assign selection to OPTION nodes before they're added to the document.\n // That's why we first added them without selection. Now it's time to set the selection.\n const isSelected = arrayIndexOf(previousSelectedValues, selectExtensions.readValue(newOptions[0])) >= 0\n setOptionNodeSelectionState(newOptions[0], isSelected)\n\n // If this option was changed from being selected during a single-item update, notify the change\n if (itemUpdate && !isSelected) {\n dependencyDetection.ignore(triggerEvent, null, [element, 'change'])\n }\n }\n }\n\n let callback = setSelectionCallback\n if (allBindings['has']('optionsAfterRender') && typeof allBindings.get('optionsAfterRender') === 'function') {\n callback = function (arrayEntry, newOptions) {\n setSelectionCallback(arrayEntry, newOptions)\n dependencyDetection.ignore(allBindings.get('optionsAfterRender'), null, [\n newOptions[0],\n arrayEntry !== captionPlaceholder ? arrayEntry : undefined\n ])\n }\n }\n\n setDomNodeChildrenFromArrayMapping(\n element,\n filteredArray,\n optionForArrayItem,\n arrayToDomNodeChildrenOptions,\n callback\n )\n\n dependencyDetection.ignore(function () {\n if (valueAllowUnset) {\n // The model value is authoritative, so make sure its value is the one selected\n selectExtensions.writeValue(element, unwrap(allBindings.get('value')), true /* allowUnset */)\n } else {\n // Determine if the selection has changed as a result of updating the options list\n let selectionChanged\n if (multiple) {\n // For a multiple-select box, compare the new selection count to the previous one\n // But if nothing was selected before, the selection can't have changed\n selectionChanged = previousSelectedValues.length && selectedOptions().length < previousSelectedValues.length\n } else {\n // For a single-select box, compare the current value to the previous value\n // But if nothing was selected before or nothing is selected now, just look for a change in selection\n selectionChanged =\n previousSelectedValues.length && element.selectedIndex >= 0\n ? selectExtensions.readValue(element.options[element.selectedIndex]) !== previousSelectedValues[0]\n : previousSelectedValues.length || element.selectedIndex >= 0\n }\n\n // Ensure consistency between model value and selected option.\n // If the dropdown was changed so that selection is no longer the same,\n // notify the value or selectedOptions binding.\n if (selectionChanged) {\n triggerEvent(element, 'change')\n }\n }\n })\n\n if (previousScrollTop && Math.abs(previousScrollTop - element.scrollTop) > 20) {\n element.scrollTop = previousScrollTop\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/selectedOptions.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// @tko/binding.core 🥊 4.0.0
|
|
1
|
+
// @tko/binding.core 🥊 4.0.0 ESM
|
|
2
|
+
"use strict";
|
|
2
3
|
import {
|
|
3
4
|
arrayForEach,
|
|
4
5
|
setOptionNodeSelectionState,
|
|
@@ -7,14 +8,12 @@ import {
|
|
|
7
8
|
tagNameLower,
|
|
8
9
|
selectExtensions
|
|
9
10
|
} from "@tko/utils";
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
} from "@tko/observable";
|
|
13
|
-
export var selectedOptions = {
|
|
11
|
+
import { unwrap } from "@tko/observable";
|
|
12
|
+
export const selectedOptions = {
|
|
14
13
|
after: ["options", "foreach"],
|
|
15
|
-
init: function(element, valueAccessor,
|
|
14
|
+
init: function(element, valueAccessor, _allBindings) {
|
|
16
15
|
registerEventHandler(element, "change", function() {
|
|
17
|
-
|
|
16
|
+
const value = valueAccessor(), valueToWrite = new Array();
|
|
18
17
|
arrayForEach(element.getElementsByTagName("option"), function(node) {
|
|
19
18
|
if (node.selected) {
|
|
20
19
|
valueToWrite.push(selectExtensions.readValue(node));
|
|
@@ -27,10 +26,10 @@ export var selectedOptions = {
|
|
|
27
26
|
if (tagNameLower(element) != "select") {
|
|
28
27
|
throw new Error("values binding applies only to SELECT elements");
|
|
29
28
|
}
|
|
30
|
-
|
|
29
|
+
const newValue = unwrap(valueAccessor()), previousScrollTop = element.scrollTop;
|
|
31
30
|
if (newValue && typeof newValue.length === "number") {
|
|
32
31
|
arrayForEach(element.getElementsByTagName("option"), function(node) {
|
|
33
|
-
|
|
32
|
+
const isSelected = arrayIndexOf(newValue, selectExtensions.readValue(node)) >= 0;
|
|
34
33
|
if (node.selected != isSelected) {
|
|
35
34
|
setOptionNodeSelectionState(node, isSelected);
|
|
36
35
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/selectedOptions.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import {\n arrayForEach,\n setOptionNodeSelectionState,\n arrayIndexOf,\n registerEventHandler,\n tagNameLower,\n selectExtensions\n} from '@tko/utils'\n\nimport { unwrap } from '@tko/observable'\n\nimport type { AllBindings } from '@tko/bind'\n\nexport const selectedOptions = {\n after: ['options', 'foreach'],\n\n init: function (element, valueAccessor, _allBindings: AllBindings) {\n registerEventHandler(element, 'change', function () {\n const value = valueAccessor(),\n valueToWrite = new Array()\n arrayForEach(element.getElementsByTagName('option'), function (node) {\n if (node.selected) {\n valueToWrite.push(selectExtensions.readValue(node))\n }\n })\n valueAccessor(valueToWrite)\n })\n },\n\n update: function (element, valueAccessor) {\n if (tagNameLower(element) != 'select') {\n throw new Error('values binding applies only to SELECT elements')\n }\n\n const newValue = unwrap(valueAccessor()),\n previousScrollTop = element.scrollTop\n\n if (newValue && typeof newValue.length === 'number') {\n arrayForEach(element.getElementsByTagName('option'), function (node) {\n const isSelected = arrayIndexOf(newValue, selectExtensions.readValue(node)) >= 0\n if (node.selected != isSelected) {\n // This check prevents flashing of the select element in IE\n setOptionNodeSelectionState(node, isSelected)\n }\n })\n }\n\n element.scrollTop = previousScrollTop\n }\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,cAAc;AAIhB,aAAM,kBAAkB;AAAA,EAC7B,OAAO,CAAC,WAAW,SAAS;AAAA,EAE5B,MAAM,SAAU,SAAS,eAAe,cAA2B;AACjE,yBAAqB,SAAS,UAAU,WAAY;AAClD,YAAM,QAAQ,cAAc,GAC1B,eAAe,IAAI,MAAM;AAC3B,mBAAa,QAAQ,qBAAqB,QAAQ,GAAG,SAAU,MAAM;AACnE,YAAI,KAAK,UAAU;AACjB,uBAAa,KAAK,iBAAiB,UAAU,IAAI,CAAC;AAAA,QACpD;AAAA,MACF,CAAC;AACD,oBAAc,YAAY;AAAA,IAC5B,CAAC;AAAA,EACH;AAAA,EAEA,QAAQ,SAAU,SAAS,eAAe;AACxC,QAAI,aAAa,OAAO,KAAK,UAAU;AACrC,YAAM,IAAI,MAAM,gDAAgD;AAAA,IAClE;AAEA,UAAM,WAAW,OAAO,cAAc,CAAC,GACrC,oBAAoB,QAAQ;AAE9B,QAAI,YAAY,OAAO,SAAS,WAAW,UAAU;AACnD,mBAAa,QAAQ,qBAAqB,QAAQ,GAAG,SAAU,MAAM;AACnE,cAAM,aAAa,aAAa,UAAU,iBAAiB,UAAU,IAAI,CAAC,KAAK;AAC/E,YAAI,KAAK,YAAY,YAAY;AAE/B,sCAA4B,MAAM,UAAU;AAAA,QAC9C;AAAA,MACF,CAAC;AAAA,IACH;AAEA,YAAQ,YAAY;AAAA,EACtB;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/style.js
CHANGED
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
// @tko/binding.core 🥊 4.0.0
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
unwrap
|
|
8
|
-
} from "@tko/observable";
|
|
9
|
-
const { jQueryInstance } = options;
|
|
10
|
-
export var style = {
|
|
1
|
+
// @tko/binding.core 🥊 4.0.0 ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import { objectForEach, options } from "@tko/utils";
|
|
4
|
+
import { unwrap } from "@tko/observable";
|
|
5
|
+
export const style = {
|
|
11
6
|
update: function(element, valueAccessor) {
|
|
12
|
-
|
|
7
|
+
const value = unwrap(valueAccessor() || {});
|
|
13
8
|
objectForEach(value, function(styleName, styleValue) {
|
|
14
9
|
styleValue = unwrap(styleValue);
|
|
15
10
|
if (styleValue === null || styleValue === void 0 || styleValue === false) {
|
|
16
11
|
styleValue = "";
|
|
17
12
|
}
|
|
18
|
-
if (
|
|
19
|
-
|
|
13
|
+
if (options.jQuery) {
|
|
14
|
+
jQuery(element).css(styleName, styleValue);
|
|
20
15
|
} else {
|
|
21
16
|
styleName = styleName.replace(/-(\w)/g, (all, letter) => letter.toUpperCase());
|
|
22
17
|
const previousStyle = element.style[styleName];
|
package/dist/style.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/style.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import { objectForEach, options } from '@tko/utils'\n\nimport { unwrap } from '@tko/observable'\n\nexport const style = {\n update: function (element, valueAccessor) {\n const value = unwrap(valueAccessor() || {})\n objectForEach(value, function (styleName, styleValue) {\n styleValue = unwrap(styleValue)\n\n if (styleValue === null || styleValue === undefined || styleValue === false) {\n // Empty string removes the value, whereas null/undefined have no effect\n styleValue = ''\n }\n\n if (options.jQuery) {\n jQuery(element).css(styleName, styleValue)\n } else {\n styleName = styleName.replace(/-(\\w)/g, (all, letter) => letter.toUpperCase())\n const previousStyle = element.style[styleName]\n element.style[styleName] = styleValue\n if (styleValue !== previousStyle && element.style[styleName] === previousStyle && !isNaN(styleValue)) {\n element.style[styleName] = styleValue + 'px'\n }\n }\n })\n }\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA,SAAS,eAAe,eAAe;AAEvC,SAAS,cAAc;AAEhB,aAAM,QAAQ;AAAA,EACnB,QAAQ,SAAU,SAAS,eAAe;AACxC,UAAM,QAAQ,OAAO,cAAc,KAAK,CAAC,CAAC;AAC1C,kBAAc,OAAO,SAAU,WAAW,YAAY;AACpD,mBAAa,OAAO,UAAU;AAE9B,UAAI,eAAe,QAAQ,eAAe,UAAa,eAAe,OAAO;AAE3E,qBAAa;AAAA,MACf;AAEA,UAAI,QAAQ,QAAQ;AAClB,eAAO,OAAO,EAAE,IAAI,WAAW,UAAU;AAAA,MAC3C,OAAO;AACL,oBAAY,UAAU,QAAQ,UAAU,CAAC,KAAK,WAAW,OAAO,YAAY,CAAC;AAC7E,cAAM,gBAAgB,QAAQ,MAAM,SAAS;AAC7C,gBAAQ,MAAM,SAAS,IAAI;AAC3B,YAAI,eAAe,iBAAiB,QAAQ,MAAM,SAAS,MAAM,iBAAiB,CAAC,MAAM,UAAU,GAAG;AACpG,kBAAQ,MAAM,SAAS,IAAI,aAAa;AAAA,QAC1C;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/submit.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
// @tko/binding.core 🥊 4.0.0
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
|
|
1
|
+
// @tko/binding.core 🥊 4.0.0 ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import { registerEventHandler } from "@tko/utils";
|
|
4
|
+
export const submit = {
|
|
5
|
+
init: function(element, valueAccessor, _allBindings, _viewModel, bindingContext) {
|
|
7
6
|
if (typeof valueAccessor() !== "function") {
|
|
8
7
|
throw new Error("The value for a submit binding must be a function");
|
|
9
8
|
}
|
|
10
9
|
registerEventHandler(element, "submit", function(event) {
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
let handlerReturnValue;
|
|
11
|
+
const value = valueAccessor();
|
|
13
12
|
try {
|
|
14
13
|
handlerReturnValue = value.call(bindingContext["$data"], element);
|
|
15
14
|
} finally {
|
package/dist/submit.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/submit.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import { registerEventHandler } from '@tko/utils'\n\nimport type { BindingContext } from '@tko/bind'\n\nexport const submit = {\n init: function (element, valueAccessor, _allBindings, _viewModel, bindingContext: BindingContext) {\n if (typeof valueAccessor() !== 'function') {\n throw new Error('The value for a submit binding must be a function')\n }\n registerEventHandler(element, 'submit', function (event) {\n let handlerReturnValue\n const value = valueAccessor()\n try {\n handlerReturnValue = value.call(bindingContext['$data'], element)\n } finally {\n if (handlerReturnValue !== true) {\n // Normally we want to prevent default action. Developer can override this be explicitly returning true.\n if (event.preventDefault) {\n event.preventDefault()\n } else {\n event.returnValue = false\n }\n }\n }\n })\n }\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA,SAAS,4BAA4B;AAI9B,aAAM,SAAS;AAAA,EACpB,MAAM,SAAU,SAAS,eAAe,cAAc,YAAY,gBAAgC;AAChG,QAAI,OAAO,cAAc,MAAM,YAAY;AACzC,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACrE;AACA,yBAAqB,SAAS,UAAU,SAAU,OAAO;AACvD,UAAI;AACJ,YAAM,QAAQ,cAAc;AAC5B,UAAI;AACF,6BAAqB,MAAM,KAAK,eAAe,OAAO,GAAG,OAAO;AAAA,MAClE,UAAE;AACA,YAAI,uBAAuB,MAAM;AAE/B,cAAI,MAAM,gBAAgB;AACxB,kBAAM,eAAe;AAAA,UACvB,OAAO;AACL,kBAAM,cAAc;AAAA,UACtB;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/text.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
// @tko/binding.core 🥊 4.0.0
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export var text = {
|
|
1
|
+
// @tko/binding.core 🥊 4.0.0 ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import { setTextContent } from "@tko/utils";
|
|
4
|
+
export const text = {
|
|
6
5
|
init: function() {
|
|
7
6
|
return { controlsDescendantBindings: true };
|
|
8
7
|
},
|
package/dist/text.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/text.ts"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import { setTextContent } from '@tko/utils'\n\nexport const text = {\n init: function () {\n // Prevent binding on the dynamically-injected text node (as developers are unlikely to expect that, and it has security implications).\n // It should also make things faster, as we no longer have to consider whether the text node might be bindable.\n return { controlsDescendantBindings: true }\n },\n update: function (element, valueAccessor) {\n setTextContent(element, valueAccessor())\n },\n allowVirtualElements: true\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA,SAAS,sBAAsB;AAExB,aAAM,OAAO;AAAA,EAClB,MAAM,WAAY;AAGhB,WAAO,EAAE,4BAA4B,KAAK;AAAA,EAC5C;AAAA,EACA,QAAQ,SAAU,SAAS,eAAe;AACxC,mBAAe,SAAS,cAAc,CAAC;AAAA,EACzC;AAAA,EACA,sBAAsB;AACxB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|