@tko/provider.multi 4.0.0-beta1.3 → 4.0.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/dist/MultiProvider.js +16 -12
- package/dist/MultiProvider.js.map +2 -2
- package/dist/index.cjs +60 -1284
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +3 -2
- package/dist/index.js.map +2 -2
- package/dist/index.mjs +3 -2
- package/dist/index.mjs.map +2 -2
- package/package.json +8 -14
- package/LICENSE +0 -22
package/dist/index.cjs
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
// @tko/provider.multi 🥊 4.0.
|
|
1
|
+
// @tko/provider.multi 🥊 4.0.1 CommonJS
|
|
2
|
+
"use strict";
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
|
|
8
|
+
var __typeError = (msg) => {
|
|
9
|
+
throw TypeError(msg);
|
|
10
|
+
};
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
12
|
var __export = (target, all) => {
|
|
7
13
|
for (var name in all)
|
|
8
14
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,1297 +22,66 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
22
|
return to;
|
|
17
23
|
};
|
|
18
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
function arrayForEach(array, action, thisArg) {
|
|
30
|
-
if (arguments.length > 2) {
|
|
31
|
-
action = action.bind(thisArg);
|
|
32
|
-
}
|
|
33
|
-
for (let i = 0, j = array.length; i < j; ++i) {
|
|
34
|
-
action(array[i], i, array);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function arrayIndexOf(array, item) {
|
|
38
|
-
return (isArray(array) ? array : [...array]).indexOf(item);
|
|
39
|
-
}
|
|
40
|
-
function arrayRemoveItem(array, itemToRemove) {
|
|
41
|
-
var index = arrayIndexOf(array, itemToRemove);
|
|
42
|
-
if (index > 0) {
|
|
43
|
-
array.splice(index, 1);
|
|
44
|
-
} else if (index === 0) {
|
|
45
|
-
array.shift();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
function findMovesInArrayComparison(left, right, limitFailedCompares) {
|
|
49
|
-
if (left.length && right.length) {
|
|
50
|
-
var failedCompares, l, r, leftItem, rightItem;
|
|
51
|
-
for (failedCompares = l = 0; (!limitFailedCompares || failedCompares < limitFailedCompares) && (leftItem = left[l]); ++l) {
|
|
52
|
-
for (r = 0; rightItem = right[r]; ++r) {
|
|
53
|
-
if (leftItem.value === rightItem.value) {
|
|
54
|
-
leftItem.moved = rightItem.index;
|
|
55
|
-
rightItem.moved = leftItem.index;
|
|
56
|
-
right.splice(r, 1);
|
|
57
|
-
failedCompares = r = 0;
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
failedCompares += r;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
var statusNotInOld = "added";
|
|
66
|
-
var statusNotInNew = "deleted";
|
|
67
|
-
function compareArrays(oldArray, newArray, options2) {
|
|
68
|
-
options2 = typeof options2 === "boolean" ? { dontLimitMoves: options2 } : options2 || {};
|
|
69
|
-
oldArray = oldArray || [];
|
|
70
|
-
newArray = newArray || [];
|
|
71
|
-
if (oldArray.length < newArray.length) {
|
|
72
|
-
return compareSmallArrayToBigArray(oldArray, newArray, statusNotInOld, statusNotInNew, options2);
|
|
73
|
-
} else {
|
|
74
|
-
return compareSmallArrayToBigArray(newArray, oldArray, statusNotInNew, statusNotInOld, options2);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
function compareSmallArrayToBigArray(smlArray, bigArray, statusNotInSml, statusNotInBig, options2) {
|
|
78
|
-
var myMin = Math.min, myMax = Math.max, editDistanceMatrix = [], smlIndex, smlIndexMax = smlArray.length, bigIndex, bigIndexMax = bigArray.length, compareRange = bigIndexMax - smlIndexMax || 1, maxDistance = smlIndexMax + bigIndexMax + 1, thisRow, lastRow, bigIndexMaxForRow, bigIndexMinForRow;
|
|
79
|
-
for (smlIndex = 0; smlIndex <= smlIndexMax; smlIndex++) {
|
|
80
|
-
lastRow = thisRow;
|
|
81
|
-
editDistanceMatrix.push(thisRow = []);
|
|
82
|
-
bigIndexMaxForRow = myMin(bigIndexMax, smlIndex + compareRange);
|
|
83
|
-
bigIndexMinForRow = myMax(0, smlIndex - 1);
|
|
84
|
-
for (bigIndex = bigIndexMinForRow; bigIndex <= bigIndexMaxForRow; bigIndex++) {
|
|
85
|
-
if (!bigIndex) {
|
|
86
|
-
thisRow[bigIndex] = smlIndex + 1;
|
|
87
|
-
} else if (!smlIndex) {
|
|
88
|
-
thisRow[bigIndex] = bigIndex + 1;
|
|
89
|
-
} else if (smlArray[smlIndex - 1] === bigArray[bigIndex - 1]) {
|
|
90
|
-
thisRow[bigIndex] = lastRow[bigIndex - 1];
|
|
91
|
-
} else {
|
|
92
|
-
var northDistance = lastRow[bigIndex] || maxDistance;
|
|
93
|
-
var westDistance = thisRow[bigIndex - 1] || maxDistance;
|
|
94
|
-
thisRow[bigIndex] = myMin(northDistance, westDistance) + 1;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
var editScript = [], meMinusOne, notInSml = [], notInBig = [];
|
|
99
|
-
for (smlIndex = smlIndexMax, bigIndex = bigIndexMax; smlIndex || bigIndex; ) {
|
|
100
|
-
meMinusOne = editDistanceMatrix[smlIndex][bigIndex] - 1;
|
|
101
|
-
if (bigIndex && meMinusOne === editDistanceMatrix[smlIndex][bigIndex - 1]) {
|
|
102
|
-
notInSml.push(editScript[editScript.length] = {
|
|
103
|
-
"status": statusNotInSml,
|
|
104
|
-
"value": bigArray[--bigIndex],
|
|
105
|
-
"index": bigIndex
|
|
106
|
-
});
|
|
107
|
-
} else if (smlIndex && meMinusOne === editDistanceMatrix[smlIndex - 1][bigIndex]) {
|
|
108
|
-
notInBig.push(editScript[editScript.length] = {
|
|
109
|
-
"status": statusNotInBig,
|
|
110
|
-
"value": smlArray[--smlIndex],
|
|
111
|
-
"index": smlIndex
|
|
112
|
-
});
|
|
113
|
-
} else {
|
|
114
|
-
--bigIndex;
|
|
115
|
-
--smlIndex;
|
|
116
|
-
if (!options2.sparse) {
|
|
117
|
-
editScript.push({
|
|
118
|
-
"status": "retained",
|
|
119
|
-
"value": bigArray[bigIndex]
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
findMovesInArrayComparison(notInBig, notInSml, !options2.dontLimitMoves && smlIndexMax * 10);
|
|
125
|
-
return editScript.reverse();
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// ../utils/dist/options.js
|
|
129
|
-
var options = {
|
|
130
|
-
deferUpdates: false,
|
|
131
|
-
useOnlyNativeEvents: false,
|
|
132
|
-
protoProperty: "__ko_proto__",
|
|
133
|
-
defaultBindingAttribute: "data-bind",
|
|
134
|
-
allowVirtualElements: true,
|
|
135
|
-
bindingGlobals: /* @__PURE__ */ Object.create(null),
|
|
136
|
-
bindingProviderInstance: null,
|
|
137
|
-
createChildContextWithAs: false,
|
|
138
|
-
jQuery: globalThis.jQuery,
|
|
139
|
-
Promise: globalThis.Promise,
|
|
140
|
-
taskScheduler: null,
|
|
141
|
-
debug: false,
|
|
142
|
-
global: globalThis,
|
|
143
|
-
document: globalThis.document,
|
|
144
|
-
filters: {},
|
|
145
|
-
includeDestroyed: false,
|
|
146
|
-
foreachHidesDestroyed: false,
|
|
147
|
-
onError: function(e) {
|
|
148
|
-
throw e;
|
|
149
|
-
},
|
|
150
|
-
set: function(name, value) {
|
|
151
|
-
options[name] = value;
|
|
152
|
-
},
|
|
153
|
-
getBindingHandler() {
|
|
154
|
-
},
|
|
155
|
-
cleanExternalData() {
|
|
156
|
-
}
|
|
157
|
-
};
|
|
158
|
-
Object.defineProperty(options, "$", {
|
|
159
|
-
get: function() {
|
|
160
|
-
return options.jQuery;
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
var options_default = options;
|
|
164
|
-
|
|
165
|
-
// ../utils/dist/error.js
|
|
166
|
-
function catchFunctionErrors(delegate) {
|
|
167
|
-
if (!options_default.onError) {
|
|
168
|
-
return delegate;
|
|
169
|
-
}
|
|
170
|
-
return (...args) => {
|
|
171
|
-
try {
|
|
172
|
-
return delegate(...args);
|
|
173
|
-
} catch (err) {
|
|
174
|
-
options_default.onError(err);
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
function deferError(error) {
|
|
179
|
-
safeSetTimeout(function() {
|
|
180
|
-
throw error;
|
|
181
|
-
}, 0);
|
|
182
|
-
}
|
|
183
|
-
function safeSetTimeout(handler, timeout) {
|
|
184
|
-
return setTimeout(catchFunctionErrors(handler), timeout);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// ../utils/dist/async.js
|
|
188
|
-
function throttle(callback, timeout) {
|
|
189
|
-
var timeoutInstance;
|
|
190
|
-
return function(...args) {
|
|
191
|
-
if (!timeoutInstance) {
|
|
192
|
-
timeoutInstance = safeSetTimeout(function() {
|
|
193
|
-
timeoutInstance = void 0;
|
|
194
|
-
callback(...args);
|
|
195
|
-
}, timeout);
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
function debounce(callback, timeout) {
|
|
200
|
-
var timeoutInstance;
|
|
201
|
-
return function(...args) {
|
|
202
|
-
clearTimeout(timeoutInstance);
|
|
203
|
-
timeoutInstance = safeSetTimeout(() => callback(...args), timeout);
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// ../utils/dist/ie.js
|
|
208
|
-
var ieVersion = options_default.document && function() {
|
|
209
|
-
var version = 3, div = options_default.document.createElement("div"), iElems = div.getElementsByTagName("i");
|
|
210
|
-
while (div.innerHTML = "<!--[if gt IE " + ++version + "]><i></i><![endif]-->", iElems[0]) {
|
|
211
|
-
}
|
|
212
|
-
if (!version) {
|
|
213
|
-
const userAgent = window.navigator.userAgent;
|
|
214
|
-
return ua.match(/MSIE ([^ ]+)/) || ua.match(/rv:([^ )]+)/);
|
|
215
|
-
}
|
|
216
|
-
return version > 4 ? version : void 0;
|
|
217
|
-
}();
|
|
218
|
-
|
|
219
|
-
// ../utils/dist/object.js
|
|
220
|
-
function hasOwnProperty(obj, propName) {
|
|
221
|
-
return Object.prototype.hasOwnProperty.call(obj, propName);
|
|
222
|
-
}
|
|
223
|
-
function extend(target, source) {
|
|
224
|
-
if (source) {
|
|
225
|
-
for (var prop in source) {
|
|
226
|
-
if (hasOwnProperty(source, prop)) {
|
|
227
|
-
target[prop] = source[prop];
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
return target;
|
|
232
|
-
}
|
|
233
|
-
function objectForEach(obj, action) {
|
|
234
|
-
for (var prop in obj) {
|
|
235
|
-
if (hasOwnProperty(obj, prop)) {
|
|
236
|
-
action(prop, obj[prop]);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
function objectMap(source, mapping, thisArg) {
|
|
241
|
-
if (!source) {
|
|
242
|
-
return source;
|
|
243
|
-
}
|
|
244
|
-
if (arguments.length > 2) {
|
|
245
|
-
mapping = mapping.bind(thisArg);
|
|
246
|
-
}
|
|
247
|
-
var target = {};
|
|
248
|
-
for (var prop in source) {
|
|
249
|
-
if (hasOwnProperty(source, prop)) {
|
|
250
|
-
target[prop] = mapping(source[prop], prop, source);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
return target;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
// ../utils/dist/function.js
|
|
257
|
-
function testOverwrite() {
|
|
258
|
-
try {
|
|
259
|
-
Object.defineProperty(function x() {
|
|
260
|
-
}, "length", {});
|
|
261
|
-
return true;
|
|
262
|
-
} catch (e) {
|
|
263
|
-
return false;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
var functionSupportsLengthOverwrite = testOverwrite();
|
|
267
|
-
function overwriteLengthPropertyIfSupported(fn, descriptor) {
|
|
268
|
-
if (functionSupportsLengthOverwrite) {
|
|
269
|
-
Object.defineProperty(fn, "length", descriptor);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
// ../utils/dist/jquery.js
|
|
274
|
-
var jQueryInstance = options_default.global && options_default.global.jQuery;
|
|
275
|
-
|
|
276
|
-
// ../utils/dist/dom/info.js
|
|
277
|
-
function tagNameLower(element) {
|
|
278
|
-
return element && element.tagName && element.tagName.toLowerCase();
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
// ../utils/dist/dom/data.js
|
|
282
|
-
var datastoreTime = new Date().getTime();
|
|
283
|
-
var dataStoreKeyExpandoPropertyName = `__ko__${datastoreTime}`;
|
|
284
|
-
var dataStoreSymbol = Symbol("Knockout data");
|
|
285
|
-
var dataStore;
|
|
286
|
-
var uniqueId = 0;
|
|
287
|
-
var modern = {
|
|
288
|
-
getDataForNode(node, createIfNotFound) {
|
|
289
|
-
let dataForNode = node[dataStoreSymbol];
|
|
290
|
-
if (!dataForNode && createIfNotFound) {
|
|
291
|
-
dataForNode = node[dataStoreSymbol] = {};
|
|
292
|
-
}
|
|
293
|
-
return dataForNode;
|
|
294
|
-
},
|
|
295
|
-
clear(node) {
|
|
296
|
-
if (node[dataStoreSymbol]) {
|
|
297
|
-
delete node[dataStoreSymbol];
|
|
298
|
-
return true;
|
|
299
|
-
}
|
|
300
|
-
return false;
|
|
301
|
-
}
|
|
302
|
-
};
|
|
303
|
-
var IE = {
|
|
304
|
-
getDataforNode(node, createIfNotFound) {
|
|
305
|
-
let dataStoreKey = node[dataStoreKeyExpandoPropertyName];
|
|
306
|
-
const hasExistingDataStore = dataStoreKey && dataStoreKey !== "null" && dataStore[dataStoreKey];
|
|
307
|
-
if (!hasExistingDataStore) {
|
|
308
|
-
if (!createIfNotFound) {
|
|
309
|
-
return void 0;
|
|
310
|
-
}
|
|
311
|
-
dataStoreKey = node[dataStoreKeyExpandoPropertyName] = "ko" + uniqueId++;
|
|
312
|
-
dataStore[dataStoreKey] = {};
|
|
313
|
-
}
|
|
314
|
-
return dataStore[dataStoreKey];
|
|
315
|
-
},
|
|
316
|
-
clear(node) {
|
|
317
|
-
const dataStoreKey = node[dataStoreKeyExpandoPropertyName];
|
|
318
|
-
if (dataStoreKey) {
|
|
319
|
-
delete dataStore[dataStoreKey];
|
|
320
|
-
node[dataStoreKeyExpandoPropertyName] = null;
|
|
321
|
-
return true;
|
|
322
|
-
}
|
|
323
|
-
return false;
|
|
324
|
-
}
|
|
325
|
-
};
|
|
326
|
-
var { getDataForNode, clear } = ieVersion ? IE : modern;
|
|
327
|
-
function nextKey() {
|
|
328
|
-
return uniqueId++ + dataStoreKeyExpandoPropertyName;
|
|
329
|
-
}
|
|
330
|
-
function get(node, key) {
|
|
331
|
-
const dataForNode = getDataForNode(node, false);
|
|
332
|
-
return dataForNode && dataForNode[key];
|
|
333
|
-
}
|
|
334
|
-
function set(node, key, value) {
|
|
335
|
-
var dataForNode = getDataForNode(node, value !== void 0);
|
|
336
|
-
dataForNode && (dataForNode[key] = value);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
// ../utils/dist/dom/disposal.js
|
|
340
|
-
var domDataKey = nextKey();
|
|
341
|
-
function getDisposeCallbacksCollection(node, createIfNotFound) {
|
|
342
|
-
var allDisposeCallbacks = get(node, domDataKey);
|
|
343
|
-
if (allDisposeCallbacks === void 0 && createIfNotFound) {
|
|
344
|
-
allDisposeCallbacks = [];
|
|
345
|
-
set(node, domDataKey, allDisposeCallbacks);
|
|
346
|
-
}
|
|
347
|
-
return allDisposeCallbacks;
|
|
348
|
-
}
|
|
349
|
-
function destroyCallbacksCollection(node) {
|
|
350
|
-
set(node, domDataKey, void 0);
|
|
351
|
-
}
|
|
352
|
-
function addDisposeCallback(node, callback) {
|
|
353
|
-
if (typeof callback !== "function") {
|
|
354
|
-
throw new Error("Callback must be a function");
|
|
355
|
-
}
|
|
356
|
-
getDisposeCallbacksCollection(node, true).push(callback);
|
|
357
|
-
}
|
|
358
|
-
function removeDisposeCallback(node, callback) {
|
|
359
|
-
var callbacksCollection = getDisposeCallbacksCollection(node, false);
|
|
360
|
-
if (callbacksCollection) {
|
|
361
|
-
arrayRemoveItem(callbacksCollection, callback);
|
|
362
|
-
if (callbacksCollection.length === 0) {
|
|
363
|
-
destroyCallbacksCollection(node);
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
var otherNodeCleanerFunctions = [];
|
|
368
|
-
function cleanjQueryData(node) {
|
|
369
|
-
var jQueryCleanNodeFn = jQueryInstance ? jQueryInstance.cleanData : null;
|
|
370
|
-
if (jQueryCleanNodeFn) {
|
|
371
|
-
jQueryCleanNodeFn([node]);
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
otherNodeCleanerFunctions.push(cleanjQueryData);
|
|
375
|
-
|
|
376
|
-
// ../utils/dist/dom/event.js
|
|
377
|
-
var knownEvents = {};
|
|
378
|
-
var knownEventTypesByEventName = {};
|
|
379
|
-
var keyEventTypeName = options_default.global.navigator && /Firefox\/2/i.test(options_default.global.navigator.userAgent) ? "KeyboardEvent" : "UIEvents";
|
|
380
|
-
knownEvents[keyEventTypeName] = ["keyup", "keydown", "keypress"];
|
|
381
|
-
knownEvents["MouseEvents"] = [
|
|
382
|
-
"click",
|
|
383
|
-
"dblclick",
|
|
384
|
-
"mousedown",
|
|
385
|
-
"mouseup",
|
|
386
|
-
"mousemove",
|
|
387
|
-
"mouseover",
|
|
388
|
-
"mouseout",
|
|
389
|
-
"mouseenter",
|
|
390
|
-
"mouseleave"
|
|
391
|
-
];
|
|
392
|
-
objectForEach(knownEvents, function(eventType, knownEventsForType) {
|
|
393
|
-
if (knownEventsForType.length) {
|
|
394
|
-
for (var i = 0, j = knownEventsForType.length; i < j; i++) {
|
|
395
|
-
knownEventTypesByEventName[knownEventsForType[i]] = eventType;
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
});
|
|
399
|
-
|
|
400
|
-
// ../utils/dist/dom/virtualElements.js
|
|
401
|
-
var commentNodesHaveTextProperty = options_default.document && options_default.document.createComment("test").text === "<!--test-->";
|
|
402
|
-
|
|
403
|
-
// ../utils/dist/dom/html.js
|
|
404
|
-
var supportsTemplateTag = options_default.document && "content" in options_default.document.createElement("template");
|
|
405
|
-
|
|
406
|
-
// ../utils/dist/dom/selectExtensions.js
|
|
407
|
-
var hasDomDataExpandoProperty = Symbol("Knockout selectExtensions hasDomDataProperty");
|
|
408
|
-
var selectExtensions = {
|
|
409
|
-
optionValueDomDataKey: nextKey(),
|
|
410
|
-
readValue: function(element) {
|
|
411
|
-
switch (tagNameLower(element)) {
|
|
412
|
-
case "option":
|
|
413
|
-
if (element[hasDomDataExpandoProperty] === true) {
|
|
414
|
-
return get(element, selectExtensions.optionValueDomDataKey);
|
|
415
|
-
}
|
|
416
|
-
return element.value;
|
|
417
|
-
case "select":
|
|
418
|
-
return element.selectedIndex >= 0 ? selectExtensions.readValue(element.options[element.selectedIndex]) : void 0;
|
|
419
|
-
default:
|
|
420
|
-
return element.value;
|
|
421
|
-
}
|
|
422
|
-
},
|
|
423
|
-
writeValue: function(element, value, allowUnset) {
|
|
424
|
-
switch (tagNameLower(element)) {
|
|
425
|
-
case "option":
|
|
426
|
-
if (typeof value === "string") {
|
|
427
|
-
set(element, selectExtensions.optionValueDomDataKey, void 0);
|
|
428
|
-
if (hasDomDataExpandoProperty in element) {
|
|
429
|
-
delete element[hasDomDataExpandoProperty];
|
|
430
|
-
}
|
|
431
|
-
element.value = value;
|
|
432
|
-
} else {
|
|
433
|
-
set(element, selectExtensions.optionValueDomDataKey, value);
|
|
434
|
-
element[hasDomDataExpandoProperty] = true;
|
|
435
|
-
element.value = typeof value === "number" ? value : "";
|
|
436
|
-
}
|
|
437
|
-
break;
|
|
438
|
-
case "select":
|
|
439
|
-
if (value === "" || value === null) {
|
|
440
|
-
value = void 0;
|
|
441
|
-
}
|
|
442
|
-
var selection = -1;
|
|
443
|
-
for (let i = 0, n = element.options.length, optionValue; i < n; ++i) {
|
|
444
|
-
optionValue = selectExtensions.readValue(element.options[i]);
|
|
445
|
-
const strictEqual = optionValue === value;
|
|
446
|
-
const blankEqual = optionValue === "" && value === void 0;
|
|
447
|
-
const numericEqual = typeof value === "number" && Number(optionValue) === value;
|
|
448
|
-
if (strictEqual || blankEqual || numericEqual) {
|
|
449
|
-
selection = i;
|
|
450
|
-
break;
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
if (allowUnset || selection >= 0 || value === void 0 && element.size > 1) {
|
|
454
|
-
element.selectedIndex = selection;
|
|
455
|
-
}
|
|
456
|
-
break;
|
|
457
|
-
default:
|
|
458
|
-
if (value === null || value === void 0) {
|
|
459
|
-
value = "";
|
|
460
|
-
}
|
|
461
|
-
element.value = value;
|
|
462
|
-
break;
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
};
|
|
466
|
-
|
|
467
|
-
// ../utils/dist/tasks.js
|
|
468
|
-
var tasks_exports = {};
|
|
469
|
-
__export(tasks_exports, {
|
|
470
|
-
cancel: () => cancel,
|
|
471
|
-
resetForTesting: () => resetForTesting,
|
|
472
|
-
runEarly: () => processTasks,
|
|
473
|
-
schedule: () => schedule
|
|
474
|
-
});
|
|
475
|
-
var taskQueue = [];
|
|
476
|
-
var taskQueueLength = 0;
|
|
477
|
-
var nextHandle = 1;
|
|
478
|
-
var nextIndexToProcess = 0;
|
|
479
|
-
var w = options_default.global;
|
|
480
|
-
if (w && w.MutationObserver && !(w.navigator && w.navigator.standalone)) {
|
|
481
|
-
options_default.taskScheduler = function(callback) {
|
|
482
|
-
var div = w.document.createElement("div");
|
|
483
|
-
new w.MutationObserver(callback).observe(div, { attributes: true });
|
|
484
|
-
return function() {
|
|
485
|
-
div.classList.toggle("foo");
|
|
486
|
-
};
|
|
487
|
-
}(scheduledProcess);
|
|
488
|
-
} else if (w && w.document && "onreadystatechange" in w.document.createElement("script")) {
|
|
489
|
-
options_default.taskScheduler = function(callback) {
|
|
490
|
-
var script = document.createElement("script");
|
|
491
|
-
script.onreadystatechange = function() {
|
|
492
|
-
script.onreadystatechange = null;
|
|
493
|
-
document.documentElement.removeChild(script);
|
|
494
|
-
script = null;
|
|
495
|
-
callback();
|
|
496
|
-
};
|
|
497
|
-
document.documentElement.appendChild(script);
|
|
498
|
-
};
|
|
499
|
-
} else {
|
|
500
|
-
options_default.taskScheduler = function(callback) {
|
|
501
|
-
setTimeout(callback, 0);
|
|
502
|
-
};
|
|
503
|
-
}
|
|
504
|
-
function processTasks() {
|
|
505
|
-
if (taskQueueLength) {
|
|
506
|
-
var mark = taskQueueLength, countMarks = 0;
|
|
507
|
-
for (var task; nextIndexToProcess < taskQueueLength; ) {
|
|
508
|
-
if (task = taskQueue[nextIndexToProcess++]) {
|
|
509
|
-
if (nextIndexToProcess > mark) {
|
|
510
|
-
if (++countMarks >= 5e3) {
|
|
511
|
-
nextIndexToProcess = taskQueueLength;
|
|
512
|
-
deferError(Error("'Too much recursion' after processing " + countMarks + " task groups."));
|
|
513
|
-
break;
|
|
514
|
-
}
|
|
515
|
-
mark = taskQueueLength;
|
|
516
|
-
}
|
|
517
|
-
try {
|
|
518
|
-
task();
|
|
519
|
-
} catch (ex) {
|
|
520
|
-
deferError(ex);
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
function scheduledProcess() {
|
|
527
|
-
processTasks();
|
|
528
|
-
nextIndexToProcess = taskQueueLength = taskQueue.length = 0;
|
|
529
|
-
}
|
|
530
|
-
function scheduleTaskProcessing() {
|
|
531
|
-
options_default.taskScheduler(scheduledProcess);
|
|
532
|
-
}
|
|
533
|
-
function schedule(func) {
|
|
534
|
-
if (!taskQueueLength) {
|
|
535
|
-
scheduleTaskProcessing();
|
|
536
|
-
}
|
|
537
|
-
taskQueue[taskQueueLength++] = func;
|
|
538
|
-
return nextHandle++;
|
|
539
|
-
}
|
|
540
|
-
function cancel(handle) {
|
|
541
|
-
var index = handle - (nextHandle - taskQueueLength);
|
|
542
|
-
if (index >= nextIndexToProcess && index < taskQueueLength) {
|
|
543
|
-
taskQueue[index] = null;
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
function resetForTesting() {
|
|
547
|
-
var length = taskQueueLength - nextIndexToProcess;
|
|
548
|
-
nextIndexToProcess = taskQueueLength = taskQueue.length = 0;
|
|
549
|
-
return length;
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
// ../observable/dist/dependencyDetection.js
|
|
553
|
-
var dependencyDetection_exports = {};
|
|
554
|
-
__export(dependencyDetection_exports, {
|
|
555
|
-
begin: () => begin,
|
|
556
|
-
end: () => end,
|
|
557
|
-
getDependencies: () => getDependencies,
|
|
558
|
-
getDependenciesCount: () => getDependenciesCount,
|
|
559
|
-
ignore: () => ignore,
|
|
560
|
-
ignoreDependencies: () => ignore,
|
|
561
|
-
isInitial: () => isInitial,
|
|
562
|
-
registerDependency: () => registerDependency
|
|
563
|
-
});
|
|
564
|
-
|
|
565
|
-
// ../observable/dist/subscribableSymbol.js
|
|
566
|
-
var SUBSCRIBABLE_SYM = Symbol("Knockout Subscribable");
|
|
567
|
-
function isSubscribable(instance) {
|
|
568
|
-
return instance && instance[SUBSCRIBABLE_SYM] || false;
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
// ../observable/dist/dependencyDetection.js
|
|
572
|
-
var outerFrames = [];
|
|
573
|
-
var currentFrame;
|
|
574
|
-
var lastId = 0;
|
|
575
|
-
function getId() {
|
|
576
|
-
return ++lastId;
|
|
577
|
-
}
|
|
578
|
-
function begin(options2) {
|
|
579
|
-
outerFrames.push(currentFrame);
|
|
580
|
-
currentFrame = options2;
|
|
581
|
-
}
|
|
582
|
-
function end() {
|
|
583
|
-
currentFrame = outerFrames.pop();
|
|
584
|
-
}
|
|
585
|
-
function registerDependency(subscribable2) {
|
|
586
|
-
if (currentFrame) {
|
|
587
|
-
if (!isSubscribable(subscribable2)) {
|
|
588
|
-
throw new Error("Only subscribable things can act as dependencies");
|
|
589
|
-
}
|
|
590
|
-
currentFrame.callback.call(currentFrame.callbackTarget, subscribable2, subscribable2._id || (subscribable2._id = getId()));
|
|
591
|
-
}
|
|
592
|
-
}
|
|
593
|
-
function ignore(callback, callbackTarget, callbackArgs) {
|
|
594
|
-
try {
|
|
595
|
-
begin();
|
|
596
|
-
return callback.apply(callbackTarget, callbackArgs || []);
|
|
597
|
-
} finally {
|
|
598
|
-
end();
|
|
599
|
-
}
|
|
600
|
-
}
|
|
601
|
-
function getDependenciesCount() {
|
|
602
|
-
if (currentFrame) {
|
|
603
|
-
return currentFrame.computed.getDependenciesCount();
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
function getDependencies() {
|
|
607
|
-
if (currentFrame) {
|
|
608
|
-
return currentFrame.computed.getDependencies();
|
|
609
|
-
}
|
|
610
|
-
}
|
|
611
|
-
function isInitial() {
|
|
612
|
-
if (currentFrame) {
|
|
613
|
-
return currentFrame.isInitial;
|
|
614
|
-
}
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
// ../observable/dist/defer.js
|
|
618
|
-
function deferUpdates(target) {
|
|
619
|
-
if (target._deferUpdates) {
|
|
620
|
-
return;
|
|
621
|
-
}
|
|
622
|
-
target._deferUpdates = true;
|
|
623
|
-
target.limit(function(callback) {
|
|
624
|
-
let handle;
|
|
625
|
-
let ignoreUpdates = false;
|
|
626
|
-
return function() {
|
|
627
|
-
if (!ignoreUpdates) {
|
|
628
|
-
tasks_exports.cancel(handle);
|
|
629
|
-
handle = tasks_exports.schedule(callback);
|
|
630
|
-
try {
|
|
631
|
-
ignoreUpdates = true;
|
|
632
|
-
target.notifySubscribers(void 0, "dirty");
|
|
633
|
-
} finally {
|
|
634
|
-
ignoreUpdates = false;
|
|
635
|
-
}
|
|
636
|
-
}
|
|
637
|
-
};
|
|
638
|
-
});
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
// ../observable/dist/Subscription.js
|
|
642
|
-
var Subscription = class {
|
|
643
|
-
constructor(target, observer, disposeCallback) {
|
|
644
|
-
this._target = target;
|
|
645
|
-
this._callback = observer.next;
|
|
646
|
-
this._disposeCallback = disposeCallback;
|
|
647
|
-
this._isDisposed = false;
|
|
648
|
-
this._domNodeDisposalCallback = null;
|
|
649
|
-
}
|
|
650
|
-
dispose() {
|
|
651
|
-
if (this._domNodeDisposalCallback) {
|
|
652
|
-
removeDisposeCallback(this._node, this._domNodeDisposalCallback);
|
|
653
|
-
}
|
|
654
|
-
this._isDisposed = true;
|
|
655
|
-
this._disposeCallback();
|
|
656
|
-
}
|
|
657
|
-
disposeWhenNodeIsRemoved(node) {
|
|
658
|
-
this._node = node;
|
|
659
|
-
addDisposeCallback(node, this._domNodeDisposalCallback = this.dispose.bind(this));
|
|
660
|
-
}
|
|
661
|
-
unsubscribe() {
|
|
662
|
-
this.dispose();
|
|
663
|
-
}
|
|
664
|
-
get closed() {
|
|
665
|
-
return this._isDisposed;
|
|
666
|
-
}
|
|
667
|
-
};
|
|
668
|
-
|
|
669
|
-
// ../observable/dist/extenders.js
|
|
670
|
-
var primitiveTypes = {
|
|
671
|
-
"undefined": 1,
|
|
672
|
-
"boolean": 1,
|
|
673
|
-
"number": 1,
|
|
674
|
-
"string": 1
|
|
675
|
-
};
|
|
676
|
-
function valuesArePrimitiveAndEqual(a, b) {
|
|
677
|
-
var oldValueIsPrimitive = a === null || typeof a in primitiveTypes;
|
|
678
|
-
return oldValueIsPrimitive ? a === b : false;
|
|
679
|
-
}
|
|
680
|
-
function applyExtenders(requestedExtenders) {
|
|
681
|
-
var target = this;
|
|
682
|
-
if (requestedExtenders) {
|
|
683
|
-
objectForEach(requestedExtenders, function(key, value) {
|
|
684
|
-
var extenderHandler = extenders[key];
|
|
685
|
-
if (typeof extenderHandler === "function") {
|
|
686
|
-
target = extenderHandler(target, value) || target;
|
|
687
|
-
} else {
|
|
688
|
-
options_default.onError(new Error("Extender not found: " + key));
|
|
689
|
-
}
|
|
690
|
-
});
|
|
691
|
-
}
|
|
692
|
-
return target;
|
|
693
|
-
}
|
|
694
|
-
function notify(target, notifyWhen) {
|
|
695
|
-
target.equalityComparer = notifyWhen == "always" ? null : valuesArePrimitiveAndEqual;
|
|
696
|
-
}
|
|
697
|
-
function deferred(target, option) {
|
|
698
|
-
if (option !== true) {
|
|
699
|
-
throw new Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");
|
|
700
|
-
}
|
|
701
|
-
deferUpdates(target);
|
|
702
|
-
}
|
|
703
|
-
function rateLimit(target, options2) {
|
|
704
|
-
var timeout, method, limitFunction;
|
|
705
|
-
if (typeof options2 === "number") {
|
|
706
|
-
timeout = options2;
|
|
25
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
26
|
+
var __await = function(promise, isYieldStar) {
|
|
27
|
+
this[0] = promise;
|
|
28
|
+
this[1] = isYieldStar;
|
|
29
|
+
};
|
|
30
|
+
var __yieldStar = (value) => {
|
|
31
|
+
var obj = value[__knownSymbol("asyncIterator")], isAwait = false, method, it = {};
|
|
32
|
+
if (obj == null) {
|
|
33
|
+
obj = value[__knownSymbol("iterator")]();
|
|
34
|
+
method = (k) => it[k] = (x) => obj[k](x);
|
|
707
35
|
} else {
|
|
708
|
-
|
|
709
|
-
method =
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
var LATEST_VALUE = Symbol("Knockout latest value");
|
|
725
|
-
if (!Symbol.observable) {
|
|
726
|
-
Symbol.observable = Symbol.for("@tko/Symbol.observable");
|
|
727
|
-
}
|
|
728
|
-
function subscribable() {
|
|
729
|
-
Object.setPrototypeOf(this, ko_subscribable_fn);
|
|
730
|
-
ko_subscribable_fn.init(this);
|
|
731
|
-
}
|
|
732
|
-
var defaultEvent = "change";
|
|
733
|
-
var ko_subscribable_fn = {
|
|
734
|
-
[SUBSCRIBABLE_SYM]: true,
|
|
735
|
-
[Symbol.observable]() {
|
|
736
|
-
return this;
|
|
737
|
-
},
|
|
738
|
-
init(instance) {
|
|
739
|
-
instance._subscriptions = { change: [] };
|
|
740
|
-
instance._versionNumber = 1;
|
|
741
|
-
},
|
|
742
|
-
subscribe(callback, callbackTarget, event) {
|
|
743
|
-
const isTC39Callback = typeof callback === "object" && callback.next;
|
|
744
|
-
event = event || defaultEvent;
|
|
745
|
-
const observer = isTC39Callback ? callback : {
|
|
746
|
-
next: callbackTarget ? callback.bind(callbackTarget) : callback
|
|
36
|
+
obj = obj.call(value);
|
|
37
|
+
method = (k) => it[k] = (v) => {
|
|
38
|
+
if (isAwait) {
|
|
39
|
+
isAwait = false;
|
|
40
|
+
if (k === "throw") throw v;
|
|
41
|
+
return v;
|
|
42
|
+
}
|
|
43
|
+
isAwait = true;
|
|
44
|
+
return {
|
|
45
|
+
done: false,
|
|
46
|
+
value: new __await(new Promise((resolve) => {
|
|
47
|
+
var x = obj[k](v);
|
|
48
|
+
if (!(x instanceof Object)) __typeError("Object expected");
|
|
49
|
+
resolve(x);
|
|
50
|
+
}), 1)
|
|
51
|
+
};
|
|
747
52
|
};
|
|
748
|
-
const subscriptionInstance = new Subscription(this, observer, () => {
|
|
749
|
-
arrayRemoveItem(this._subscriptions[event], subscriptionInstance);
|
|
750
|
-
if (this.afterSubscriptionRemove) {
|
|
751
|
-
this.afterSubscriptionRemove(event);
|
|
752
|
-
}
|
|
753
|
-
});
|
|
754
|
-
if (this.beforeSubscriptionAdd) {
|
|
755
|
-
this.beforeSubscriptionAdd(event);
|
|
756
|
-
}
|
|
757
|
-
if (!this._subscriptions[event]) {
|
|
758
|
-
this._subscriptions[event] = [];
|
|
759
|
-
}
|
|
760
|
-
this._subscriptions[event].push(subscriptionInstance);
|
|
761
|
-
if (isTC39Callback && LATEST_VALUE in this) {
|
|
762
|
-
observer.next(this[LATEST_VALUE]);
|
|
763
|
-
}
|
|
764
|
-
return subscriptionInstance;
|
|
765
|
-
},
|
|
766
|
-
notifySubscribers(valueToNotify, event) {
|
|
767
|
-
event = event || defaultEvent;
|
|
768
|
-
if (event === defaultEvent) {
|
|
769
|
-
this.updateVersion();
|
|
770
|
-
}
|
|
771
|
-
if (this.hasSubscriptionsForEvent(event)) {
|
|
772
|
-
const subs = event === defaultEvent && this._changeSubscriptions || [...this._subscriptions[event]];
|
|
773
|
-
try {
|
|
774
|
-
begin();
|
|
775
|
-
for (let i = 0, subscriptionInstance; subscriptionInstance = subs[i]; ++i) {
|
|
776
|
-
if (!subscriptionInstance._isDisposed) {
|
|
777
|
-
subscriptionInstance._callback(valueToNotify);
|
|
778
|
-
}
|
|
779
|
-
}
|
|
780
|
-
} finally {
|
|
781
|
-
end();
|
|
782
|
-
}
|
|
783
|
-
}
|
|
784
|
-
},
|
|
785
|
-
getVersion() {
|
|
786
|
-
return this._versionNumber;
|
|
787
|
-
},
|
|
788
|
-
hasChanged(versionToCheck) {
|
|
789
|
-
return this.getVersion() !== versionToCheck;
|
|
790
|
-
},
|
|
791
|
-
updateVersion() {
|
|
792
|
-
++this._versionNumber;
|
|
793
|
-
},
|
|
794
|
-
hasSubscriptionsForEvent(event) {
|
|
795
|
-
return this._subscriptions[event] && this._subscriptions[event].length;
|
|
796
|
-
},
|
|
797
|
-
getSubscriptionsCount(event) {
|
|
798
|
-
if (event) {
|
|
799
|
-
return this._subscriptions[event] && this._subscriptions[event].length || 0;
|
|
800
|
-
} else {
|
|
801
|
-
var total = 0;
|
|
802
|
-
objectForEach(this._subscriptions, function(eventName, subscriptions) {
|
|
803
|
-
if (eventName !== "dirty") {
|
|
804
|
-
total += subscriptions.length;
|
|
805
|
-
}
|
|
806
|
-
});
|
|
807
|
-
return total;
|
|
808
|
-
}
|
|
809
|
-
},
|
|
810
|
-
isDifferent(oldValue, newValue) {
|
|
811
|
-
return !this.equalityComparer || !this.equalityComparer(oldValue, newValue);
|
|
812
|
-
},
|
|
813
|
-
once(cb) {
|
|
814
|
-
const subs = this.subscribe((nv) => {
|
|
815
|
-
subs.dispose();
|
|
816
|
-
cb(nv);
|
|
817
|
-
});
|
|
818
|
-
},
|
|
819
|
-
when(test, returnValue) {
|
|
820
|
-
const current = this.peek();
|
|
821
|
-
const givenRv = arguments.length > 1;
|
|
822
|
-
const testFn = typeof test === "function" ? test : (v) => v === test;
|
|
823
|
-
if (testFn(current)) {
|
|
824
|
-
return options_default.Promise.resolve(givenRv ? returnValue : current);
|
|
825
|
-
}
|
|
826
|
-
return new options_default.Promise((resolve, reject) => {
|
|
827
|
-
const subs = this.subscribe((newValue) => {
|
|
828
|
-
if (testFn(newValue)) {
|
|
829
|
-
subs.dispose();
|
|
830
|
-
resolve(givenRv ? returnValue : newValue);
|
|
831
|
-
}
|
|
832
|
-
});
|
|
833
|
-
});
|
|
834
|
-
},
|
|
835
|
-
yet(test, ...args) {
|
|
836
|
-
const testFn = typeof test === "function" ? test : (v) => v === test;
|
|
837
|
-
const negated = (v) => !testFn(v);
|
|
838
|
-
return this.when(negated, ...args);
|
|
839
|
-
},
|
|
840
|
-
next() {
|
|
841
|
-
return new Promise((resolve) => this.once(resolve));
|
|
842
|
-
},
|
|
843
|
-
toString() {
|
|
844
|
-
return "[object Object]";
|
|
845
|
-
},
|
|
846
|
-
extend: applyExtenders
|
|
847
|
-
};
|
|
848
|
-
Object.setPrototypeOf(ko_subscribable_fn, Function.prototype);
|
|
849
|
-
subscribable.fn = ko_subscribable_fn;
|
|
850
|
-
|
|
851
|
-
// ../observable/dist/observable.js
|
|
852
|
-
function observable(initialValue) {
|
|
853
|
-
function Observable() {
|
|
854
|
-
if (arguments.length > 0) {
|
|
855
|
-
if (Observable.isDifferent(Observable[LATEST_VALUE], arguments[0])) {
|
|
856
|
-
Observable.valueWillMutate();
|
|
857
|
-
Observable[LATEST_VALUE] = arguments[0];
|
|
858
|
-
Observable.valueHasMutated();
|
|
859
|
-
}
|
|
860
|
-
return this;
|
|
861
|
-
} else {
|
|
862
|
-
registerDependency(Observable);
|
|
863
|
-
return Observable[LATEST_VALUE];
|
|
864
|
-
}
|
|
865
|
-
}
|
|
866
|
-
overwriteLengthPropertyIfSupported(Observable, { value: void 0 });
|
|
867
|
-
Observable[LATEST_VALUE] = initialValue;
|
|
868
|
-
subscribable.fn.init(Observable);
|
|
869
|
-
Object.setPrototypeOf(Observable, observable.fn);
|
|
870
|
-
if (options_default.deferUpdates) {
|
|
871
|
-
deferUpdates(Observable);
|
|
872
|
-
}
|
|
873
|
-
return Observable;
|
|
874
|
-
}
|
|
875
|
-
observable.fn = {
|
|
876
|
-
equalityComparer: valuesArePrimitiveAndEqual,
|
|
877
|
-
peek() {
|
|
878
|
-
return this[LATEST_VALUE];
|
|
879
|
-
},
|
|
880
|
-
valueHasMutated() {
|
|
881
|
-
this.notifySubscribers(this[LATEST_VALUE], "spectate");
|
|
882
|
-
this.notifySubscribers(this[LATEST_VALUE]);
|
|
883
|
-
},
|
|
884
|
-
valueWillMutate() {
|
|
885
|
-
this.notifySubscribers(this[LATEST_VALUE], "beforeChange");
|
|
886
|
-
},
|
|
887
|
-
modify(fn, peek2 = true) {
|
|
888
|
-
return this(fn(peek2 ? this.peek() : this()));
|
|
889
|
-
},
|
|
890
|
-
isWriteable: true
|
|
891
|
-
};
|
|
892
|
-
function limitNotifySubscribers(value, event) {
|
|
893
|
-
if (!event || event === defaultEvent) {
|
|
894
|
-
this._limitChange(value);
|
|
895
|
-
} else if (event === "beforeChange") {
|
|
896
|
-
this._limitBeforeChange(value);
|
|
897
|
-
} else {
|
|
898
|
-
this._origNotifySubscribers(value, event);
|
|
899
|
-
}
|
|
900
|
-
}
|
|
901
|
-
subscribable.fn.limit = function limit(limitFunction) {
|
|
902
|
-
var self = this;
|
|
903
|
-
var selfIsObservable = isObservable(self);
|
|
904
|
-
var beforeChange = "beforeChange";
|
|
905
|
-
var ignoreBeforeChange, notifyNextChange, previousValue, pendingValue, didUpdate;
|
|
906
|
-
if (!self._origNotifySubscribers) {
|
|
907
|
-
self._origNotifySubscribers = self.notifySubscribers;
|
|
908
|
-
self.notifySubscribers = limitNotifySubscribers;
|
|
909
53
|
}
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
pendingValue = self._evalIfChanged ? self._evalIfChanged() : self();
|
|
914
|
-
}
|
|
915
|
-
const shouldNotify = notifyNextChange || didUpdate && self.isDifferent(previousValue, pendingValue);
|
|
916
|
-
self._notifyNextChange = didUpdate = ignoreBeforeChange = false;
|
|
917
|
-
if (shouldNotify) {
|
|
918
|
-
self._origNotifySubscribers(previousValue = pendingValue);
|
|
919
|
-
}
|
|
920
|
-
});
|
|
921
|
-
Object.assign(self, {
|
|
922
|
-
_limitChange(value, isDirty) {
|
|
923
|
-
if (!isDirty || !self._notificationIsPending) {
|
|
924
|
-
didUpdate = !isDirty;
|
|
925
|
-
}
|
|
926
|
-
self._changeSubscriptions = [...self._subscriptions[defaultEvent]];
|
|
927
|
-
self._notificationIsPending = ignoreBeforeChange = true;
|
|
928
|
-
pendingValue = value;
|
|
929
|
-
finish();
|
|
930
|
-
},
|
|
931
|
-
_limitBeforeChange(value) {
|
|
932
|
-
if (!ignoreBeforeChange) {
|
|
933
|
-
previousValue = value;
|
|
934
|
-
self._origNotifySubscribers(value, beforeChange);
|
|
935
|
-
}
|
|
936
|
-
},
|
|
937
|
-
_notifyNextChangeIfValueIsDifferent() {
|
|
938
|
-
if (self.isDifferent(previousValue, self.peek(true))) {
|
|
939
|
-
notifyNextChange = true;
|
|
940
|
-
}
|
|
941
|
-
},
|
|
942
|
-
_recordUpdate() {
|
|
943
|
-
didUpdate = true;
|
|
944
|
-
}
|
|
945
|
-
});
|
|
54
|
+
return it[__knownSymbol("iterator")] = () => it, method("next"), "throw" in obj ? method("throw") : it.throw = (x) => {
|
|
55
|
+
throw x;
|
|
56
|
+
}, "return" in obj && method("return"), it;
|
|
946
57
|
};
|
|
947
|
-
Object.setPrototypeOf(observable.fn, subscribable.fn);
|
|
948
|
-
var protoProperty = observable.protoProperty = options_default.protoProperty;
|
|
949
|
-
observable.fn[protoProperty] = observable;
|
|
950
|
-
observable.observablePrototypes = /* @__PURE__ */ new Set([observable]);
|
|
951
|
-
function isObservable(instance) {
|
|
952
|
-
const proto = typeof instance === "function" && instance[protoProperty];
|
|
953
|
-
if (proto && !observable.observablePrototypes.has(proto)) {
|
|
954
|
-
throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");
|
|
955
|
-
}
|
|
956
|
-
return !!proto;
|
|
957
|
-
}
|
|
958
58
|
|
|
959
|
-
//
|
|
960
|
-
var
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
if (options2 && typeof options2 === "object") {
|
|
964
|
-
extend(target.compareArrayOptions, options2);
|
|
965
|
-
}
|
|
966
|
-
target.compareArrayOptions.sparse = true;
|
|
967
|
-
if (target.cacheDiffForKnownOperation) {
|
|
968
|
-
return;
|
|
969
|
-
}
|
|
970
|
-
let trackingChanges = false;
|
|
971
|
-
let cachedDiff = null;
|
|
972
|
-
let arrayChangeSubscription;
|
|
973
|
-
let pendingNotifications = 0;
|
|
974
|
-
let underlyingNotifySubscribersFunction;
|
|
975
|
-
let underlyingBeforeSubscriptionAddFunction = target.beforeSubscriptionAdd;
|
|
976
|
-
let underlyingAfterSubscriptionRemoveFunction = target.afterSubscriptionRemove;
|
|
977
|
-
target.beforeSubscriptionAdd = function(event) {
|
|
978
|
-
if (underlyingBeforeSubscriptionAddFunction) {
|
|
979
|
-
underlyingBeforeSubscriptionAddFunction.call(target, event);
|
|
980
|
-
}
|
|
981
|
-
if (event === arrayChangeEventName) {
|
|
982
|
-
trackChanges();
|
|
983
|
-
}
|
|
984
|
-
};
|
|
985
|
-
target.afterSubscriptionRemove = function(event) {
|
|
986
|
-
if (underlyingAfterSubscriptionRemoveFunction) {
|
|
987
|
-
underlyingAfterSubscriptionRemoveFunction.call(target, event);
|
|
988
|
-
}
|
|
989
|
-
if (event === arrayChangeEventName && !target.hasSubscriptionsForEvent(arrayChangeEventName)) {
|
|
990
|
-
if (underlyingNotifySubscribersFunction) {
|
|
991
|
-
target.notifySubscribers = underlyingNotifySubscribersFunction;
|
|
992
|
-
underlyingNotifySubscribersFunction = void 0;
|
|
993
|
-
}
|
|
994
|
-
if (arrayChangeSubscription) {
|
|
995
|
-
arrayChangeSubscription.dispose();
|
|
996
|
-
}
|
|
997
|
-
arrayChangeSubscription = null;
|
|
998
|
-
trackingChanges = false;
|
|
999
|
-
}
|
|
1000
|
-
};
|
|
1001
|
-
function trackChanges() {
|
|
1002
|
-
if (trackingChanges) {
|
|
1003
|
-
return;
|
|
1004
|
-
}
|
|
1005
|
-
trackingChanges = true;
|
|
1006
|
-
underlyingNotifySubscribersFunction = target["notifySubscribers"];
|
|
1007
|
-
target.notifySubscribers = function(valueToNotify, event) {
|
|
1008
|
-
if (!event || event === defaultEvent) {
|
|
1009
|
-
++pendingNotifications;
|
|
1010
|
-
}
|
|
1011
|
-
return underlyingNotifySubscribersFunction.apply(this, arguments);
|
|
1012
|
-
};
|
|
1013
|
-
var previousContents = [].concat(target.peek() === void 0 ? [] : target.peek());
|
|
1014
|
-
cachedDiff = null;
|
|
1015
|
-
arrayChangeSubscription = target.subscribe(function(currentContents) {
|
|
1016
|
-
let changes;
|
|
1017
|
-
currentContents = [].concat(currentContents || []);
|
|
1018
|
-
if (target.hasSubscriptionsForEvent(arrayChangeEventName)) {
|
|
1019
|
-
changes = getChanges(previousContents, currentContents);
|
|
1020
|
-
}
|
|
1021
|
-
previousContents = currentContents;
|
|
1022
|
-
cachedDiff = null;
|
|
1023
|
-
pendingNotifications = 0;
|
|
1024
|
-
if (changes && changes.length) {
|
|
1025
|
-
target.notifySubscribers(changes, arrayChangeEventName);
|
|
1026
|
-
}
|
|
1027
|
-
});
|
|
1028
|
-
}
|
|
1029
|
-
function getChanges(previousContents, currentContents) {
|
|
1030
|
-
if (!cachedDiff || pendingNotifications > 1) {
|
|
1031
|
-
cachedDiff = trackArrayChanges.compareArrays(previousContents, currentContents, target.compareArrayOptions);
|
|
1032
|
-
}
|
|
1033
|
-
return cachedDiff;
|
|
1034
|
-
}
|
|
1035
|
-
target.cacheDiffForKnownOperation = function(rawArray, operationName, args) {
|
|
1036
|
-
if (!trackingChanges || pendingNotifications) {
|
|
1037
|
-
return;
|
|
1038
|
-
}
|
|
1039
|
-
var diff = [], arrayLength = rawArray.length, argsLength = args.length, offset = 0;
|
|
1040
|
-
function pushDiff(status, value, index) {
|
|
1041
|
-
return diff[diff.length] = { "status": status, "value": value, "index": index };
|
|
1042
|
-
}
|
|
1043
|
-
switch (operationName) {
|
|
1044
|
-
case "push":
|
|
1045
|
-
offset = arrayLength;
|
|
1046
|
-
case "unshift":
|
|
1047
|
-
for (let index = 0; index < argsLength; index++) {
|
|
1048
|
-
pushDiff("added", args[index], offset + index);
|
|
1049
|
-
}
|
|
1050
|
-
break;
|
|
1051
|
-
case "pop":
|
|
1052
|
-
offset = arrayLength - 1;
|
|
1053
|
-
case "shift":
|
|
1054
|
-
if (arrayLength) {
|
|
1055
|
-
pushDiff("deleted", rawArray[offset], offset);
|
|
1056
|
-
}
|
|
1057
|
-
break;
|
|
1058
|
-
case "splice":
|
|
1059
|
-
var startIndex = Math.min(Math.max(0, args[0] < 0 ? arrayLength + args[0] : args[0]), arrayLength), endDeleteIndex = argsLength === 1 ? arrayLength : Math.min(startIndex + (args[1] || 0), arrayLength), endAddIndex = startIndex + argsLength - 2, endIndex = Math.max(endDeleteIndex, endAddIndex), additions = [], deletions = [];
|
|
1060
|
-
for (let index = startIndex, argsIndex = 2; index < endIndex; ++index, ++argsIndex) {
|
|
1061
|
-
if (index < endDeleteIndex) {
|
|
1062
|
-
deletions.push(pushDiff("deleted", rawArray[index], index));
|
|
1063
|
-
}
|
|
1064
|
-
if (index < endAddIndex) {
|
|
1065
|
-
additions.push(pushDiff("added", args[argsIndex], index));
|
|
1066
|
-
}
|
|
1067
|
-
}
|
|
1068
|
-
findMovesInArrayComparison(deletions, additions);
|
|
1069
|
-
break;
|
|
1070
|
-
default:
|
|
1071
|
-
return;
|
|
1072
|
-
}
|
|
1073
|
-
cachedDiff = diff;
|
|
1074
|
-
};
|
|
1075
|
-
}
|
|
1076
|
-
trackArrayChanges.compareArrays = compareArrays;
|
|
1077
|
-
extenders.trackArrayChanges = trackArrayChanges;
|
|
1078
|
-
|
|
1079
|
-
// ../observable/dist/observableArray.js
|
|
1080
|
-
function observableArray(initialValues) {
|
|
1081
|
-
initialValues = initialValues || [];
|
|
1082
|
-
if (typeof initialValues !== "object" || !("length" in initialValues)) {
|
|
1083
|
-
throw new Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");
|
|
1084
|
-
}
|
|
1085
|
-
var result = observable(initialValues);
|
|
1086
|
-
Object.setPrototypeOf(result, observableArray.fn);
|
|
1087
|
-
trackArrayChanges(result);
|
|
1088
|
-
overwriteLengthPropertyIfSupported(result, { get: () => result().length });
|
|
1089
|
-
return result;
|
|
1090
|
-
}
|
|
1091
|
-
observableArray.fn = {
|
|
1092
|
-
remove(valueOrPredicate) {
|
|
1093
|
-
var underlyingArray = this.peek();
|
|
1094
|
-
var removedValues = [];
|
|
1095
|
-
var predicate = typeof valueOrPredicate === "function" && !isObservable(valueOrPredicate) ? valueOrPredicate : function(value2) {
|
|
1096
|
-
return value2 === valueOrPredicate;
|
|
1097
|
-
};
|
|
1098
|
-
for (var i = 0; i < underlyingArray.length; i++) {
|
|
1099
|
-
var value = underlyingArray[i];
|
|
1100
|
-
if (predicate(value)) {
|
|
1101
|
-
if (removedValues.length === 0) {
|
|
1102
|
-
this.valueWillMutate();
|
|
1103
|
-
}
|
|
1104
|
-
if (underlyingArray[i] !== value) {
|
|
1105
|
-
throw Error("Array modified during remove; cannot remove item");
|
|
1106
|
-
}
|
|
1107
|
-
removedValues.push(value);
|
|
1108
|
-
underlyingArray.splice(i, 1);
|
|
1109
|
-
i--;
|
|
1110
|
-
}
|
|
1111
|
-
}
|
|
1112
|
-
if (removedValues.length) {
|
|
1113
|
-
this.valueHasMutated();
|
|
1114
|
-
}
|
|
1115
|
-
return removedValues;
|
|
1116
|
-
},
|
|
1117
|
-
removeAll(arrayOfValues) {
|
|
1118
|
-
if (arrayOfValues === void 0) {
|
|
1119
|
-
var underlyingArray = this.peek();
|
|
1120
|
-
var allValues = underlyingArray.slice(0);
|
|
1121
|
-
this.valueWillMutate();
|
|
1122
|
-
underlyingArray.splice(0, underlyingArray.length);
|
|
1123
|
-
this.valueHasMutated();
|
|
1124
|
-
return allValues;
|
|
1125
|
-
}
|
|
1126
|
-
if (!arrayOfValues) {
|
|
1127
|
-
return [];
|
|
1128
|
-
}
|
|
1129
|
-
return this["remove"](function(value) {
|
|
1130
|
-
return arrayIndexOf(arrayOfValues, value) >= 0;
|
|
1131
|
-
});
|
|
1132
|
-
},
|
|
1133
|
-
destroy(valueOrPredicate) {
|
|
1134
|
-
var underlyingArray = this.peek();
|
|
1135
|
-
var predicate = typeof valueOrPredicate === "function" && !isObservable(valueOrPredicate) ? valueOrPredicate : function(value2) {
|
|
1136
|
-
return value2 === valueOrPredicate;
|
|
1137
|
-
};
|
|
1138
|
-
this.valueWillMutate();
|
|
1139
|
-
for (var i = underlyingArray.length - 1; i >= 0; i--) {
|
|
1140
|
-
var value = underlyingArray[i];
|
|
1141
|
-
if (predicate(value)) {
|
|
1142
|
-
value["_destroy"] = true;
|
|
1143
|
-
}
|
|
1144
|
-
}
|
|
1145
|
-
this.valueHasMutated();
|
|
1146
|
-
},
|
|
1147
|
-
destroyAll(arrayOfValues) {
|
|
1148
|
-
if (arrayOfValues === void 0) {
|
|
1149
|
-
return this.destroy(function() {
|
|
1150
|
-
return true;
|
|
1151
|
-
});
|
|
1152
|
-
}
|
|
1153
|
-
if (!arrayOfValues) {
|
|
1154
|
-
return [];
|
|
1155
|
-
}
|
|
1156
|
-
return this.destroy(function(value) {
|
|
1157
|
-
return arrayIndexOf(arrayOfValues, value) >= 0;
|
|
1158
|
-
});
|
|
1159
|
-
},
|
|
1160
|
-
indexOf(item) {
|
|
1161
|
-
return arrayIndexOf(this(), item);
|
|
1162
|
-
},
|
|
1163
|
-
replace(oldItem, newItem) {
|
|
1164
|
-
var index = this.indexOf(oldItem);
|
|
1165
|
-
if (index >= 0) {
|
|
1166
|
-
this.valueWillMutate();
|
|
1167
|
-
this.peek()[index] = newItem;
|
|
1168
|
-
this.valueHasMutated();
|
|
1169
|
-
}
|
|
1170
|
-
},
|
|
1171
|
-
sorted(compareFn) {
|
|
1172
|
-
return [...this()].sort(compareFn);
|
|
1173
|
-
},
|
|
1174
|
-
reversed() {
|
|
1175
|
-
return [...this()].reverse();
|
|
1176
|
-
},
|
|
1177
|
-
[Symbol.iterator]: function* () {
|
|
1178
|
-
yield* this();
|
|
1179
|
-
}
|
|
1180
|
-
};
|
|
1181
|
-
Object.setPrototypeOf(observableArray.fn, observable.fn);
|
|
1182
|
-
arrayForEach(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(methodName) {
|
|
1183
|
-
observableArray.fn[methodName] = function() {
|
|
1184
|
-
var underlyingArray = this.peek();
|
|
1185
|
-
this.valueWillMutate();
|
|
1186
|
-
this.cacheDiffForKnownOperation(underlyingArray, methodName, arguments);
|
|
1187
|
-
var methodCallResult = underlyingArray[methodName].apply(underlyingArray, arguments);
|
|
1188
|
-
this.valueHasMutated();
|
|
1189
|
-
return methodCallResult === underlyingArray ? this : methodCallResult;
|
|
1190
|
-
};
|
|
1191
|
-
});
|
|
1192
|
-
arrayForEach(["slice"], function(methodName) {
|
|
1193
|
-
observableArray.fn[methodName] = function() {
|
|
1194
|
-
var underlyingArray = this();
|
|
1195
|
-
return underlyingArray[methodName].apply(underlyingArray, arguments);
|
|
1196
|
-
};
|
|
59
|
+
// index.ts
|
|
60
|
+
var index_exports = {};
|
|
61
|
+
__export(index_exports, {
|
|
62
|
+
MultiProvider: () => MultiProvider
|
|
1197
63
|
});
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
// ../provider/dist/BindingHandlerObject.js
|
|
1201
|
-
var BindingHandlerObject = class {
|
|
1202
|
-
set(nameOrObject, value) {
|
|
1203
|
-
if (typeof nameOrObject === "string") {
|
|
1204
|
-
this[nameOrObject] = value;
|
|
1205
|
-
} else if (typeof nameOrObject === "object") {
|
|
1206
|
-
if (value !== void 0) {
|
|
1207
|
-
options_default.onError(new Error("Given extraneous `value` parameter (first param should be a string, but it was an object)." + nameOrObject));
|
|
1208
|
-
}
|
|
1209
|
-
Object.assign(this, nameOrObject);
|
|
1210
|
-
} else {
|
|
1211
|
-
options_default.onError(new Error("Given a bad binding handler type: " + nameOrObject));
|
|
1212
|
-
}
|
|
1213
|
-
}
|
|
1214
|
-
get(nameOrDotted) {
|
|
1215
|
-
const [name] = nameOrDotted.split(".");
|
|
1216
|
-
return this[name];
|
|
1217
|
-
}
|
|
1218
|
-
};
|
|
1219
|
-
|
|
1220
|
-
// ../provider/dist/Provider.js
|
|
1221
|
-
var Provider = class {
|
|
1222
|
-
constructor(params = {}) {
|
|
1223
|
-
if (this.constructor === Provider) {
|
|
1224
|
-
throw new Error("Provider is an abstract base class.");
|
|
1225
|
-
}
|
|
1226
|
-
if (!("FOR_NODE_TYPES" in this)) {
|
|
1227
|
-
throw new Error("Providers must have FOR_NODE_TYPES property");
|
|
1228
|
-
}
|
|
1229
|
-
this.bindingHandlers = params.bindingHandlers || new BindingHandlerObject();
|
|
1230
|
-
this.globals = params.globals || {};
|
|
1231
|
-
}
|
|
1232
|
-
setGlobals(globals) {
|
|
1233
|
-
this.globals = globals;
|
|
1234
|
-
}
|
|
1235
|
-
get preemptive() {
|
|
1236
|
-
return false;
|
|
1237
|
-
}
|
|
1238
|
-
nodeHasBindings() {
|
|
1239
|
-
}
|
|
1240
|
-
getBindingAccessors() {
|
|
1241
|
-
}
|
|
1242
|
-
preprocessNode(node) {
|
|
1243
|
-
}
|
|
1244
|
-
postProcess() {
|
|
1245
|
-
}
|
|
1246
|
-
get instance() {
|
|
1247
|
-
return this._overloadInstance || this;
|
|
1248
|
-
}
|
|
1249
|
-
set instance(provider) {
|
|
1250
|
-
if (!provider || provider === this) {
|
|
1251
|
-
this._overloadInstance = void 0;
|
|
1252
|
-
} else {
|
|
1253
|
-
this._overloadInstance = new LegacyProvider(provider, this);
|
|
1254
|
-
}
|
|
1255
|
-
}
|
|
1256
|
-
makeAccessorsFromFunction(callback) {
|
|
1257
|
-
return objectMap(dependencyDetection_exports.ignore(callback), (value, key) => () => callback()[key]);
|
|
1258
|
-
}
|
|
1259
|
-
makeValueAccessor(value) {
|
|
1260
|
-
return () => value;
|
|
1261
|
-
}
|
|
1262
|
-
makeBindingAccessors(bindings, context, node) {
|
|
1263
|
-
if (typeof bindings === "function") {
|
|
1264
|
-
return this.makeAccessorsFromFunction(bindings.bind(null, context, node));
|
|
1265
|
-
} else {
|
|
1266
|
-
return objectMap(bindings, this.makeValueAccessor);
|
|
1267
|
-
}
|
|
1268
|
-
}
|
|
1269
|
-
};
|
|
1270
|
-
var LegacyProvider = class extends Provider {
|
|
1271
|
-
get FOR_NODE_TYPES() {
|
|
1272
|
-
return [1, 3, 8];
|
|
1273
|
-
}
|
|
1274
|
-
constructor(providerObject, parentProvider) {
|
|
1275
|
-
super();
|
|
1276
|
-
Object.assign(this, { providerObject });
|
|
1277
|
-
this.bindingHandlers = providerObject.bindingHandlers || parentProvider.bindingHandlers;
|
|
1278
|
-
}
|
|
1279
|
-
getBindingsAndMakeAccessors(node, context) {
|
|
1280
|
-
const bindingsFn = this.providerObject.getBindings.bind(this.providerObject, node, context);
|
|
1281
|
-
return this.makeAccessorsFromFunction(bindingsFn);
|
|
1282
|
-
}
|
|
1283
|
-
getBindingAccessors(node, context) {
|
|
1284
|
-
return this.providerObject.getBindingAccessors ? this.providerObject.getBindingAccessors(node, context) : this.getBindingsAndMakeAccessors(node, context);
|
|
1285
|
-
}
|
|
1286
|
-
nodeHasBindings(node) {
|
|
1287
|
-
return this.providerObject.nodeHasBindings(node);
|
|
1288
|
-
}
|
|
1289
|
-
preprocessNode(node) {
|
|
1290
|
-
if (this.providerObject.preprocessNode) {
|
|
1291
|
-
return this.providerObject.preprocessNode(node);
|
|
1292
|
-
}
|
|
1293
|
-
}
|
|
1294
|
-
};
|
|
64
|
+
module.exports = __toCommonJS(index_exports);
|
|
1295
65
|
|
|
1296
66
|
// src/MultiProvider.ts
|
|
1297
|
-
var
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
}
|
|
1301
|
-
constructor(params = {}) {
|
|
67
|
+
var import_provider = require("@tko/provider");
|
|
68
|
+
var MultiProvider = class extends import_provider.Provider {
|
|
69
|
+
constructor(params) {
|
|
1302
70
|
super(params);
|
|
1303
|
-
|
|
71
|
+
__publicField(this, "nodeTypes");
|
|
72
|
+
__publicField(this, "nodeTypeMap");
|
|
73
|
+
__publicField(this, "providers");
|
|
74
|
+
const providers = (params == null ? void 0 : params.providers) || [];
|
|
1304
75
|
this.nodeTypeMap = {};
|
|
1305
76
|
this.nodeTypes = [];
|
|
1306
77
|
this.providers = [];
|
|
1307
78
|
providers.forEach((p) => this.addProvider(p));
|
|
1308
79
|
}
|
|
80
|
+
get FOR_NODE_TYPES() {
|
|
81
|
+
return this.nodeTypes;
|
|
82
|
+
}
|
|
1309
83
|
setGlobals(globals) {
|
|
84
|
+
;
|
|
1310
85
|
[this, ...this.providers].forEach((p) => p.globals = globals);
|
|
1311
86
|
}
|
|
1312
87
|
addProvider(provider) {
|
|
@@ -1316,7 +91,7 @@ var MultiProvider = class extends Provider {
|
|
|
1316
91
|
const nodeTypeMap = this.nodeTypeMap;
|
|
1317
92
|
for (const nodeType of provider.FOR_NODE_TYPES) {
|
|
1318
93
|
if (!nodeTypeMap[nodeType]) {
|
|
1319
|
-
nodeTypeMap[nodeType] =
|
|
94
|
+
nodeTypeMap[nodeType] = new Array();
|
|
1320
95
|
}
|
|
1321
96
|
nodeTypeMap[nodeType].push(provider);
|
|
1322
97
|
}
|
|
@@ -1325,7 +100,7 @@ var MultiProvider = class extends Provider {
|
|
|
1325
100
|
providersFor(node) {
|
|
1326
101
|
return this.nodeTypeMap[node.nodeType] || [];
|
|
1327
102
|
}
|
|
1328
|
-
nodeHasBindings(node) {
|
|
103
|
+
nodeHasBindings(node, context) {
|
|
1329
104
|
return this.providersFor(node).some((p) => p.nodeHasBindings(node));
|
|
1330
105
|
}
|
|
1331
106
|
preprocessNode(node) {
|
|
@@ -1335,22 +110,23 @@ var MultiProvider = class extends Provider {
|
|
|
1335
110
|
return newNodes;
|
|
1336
111
|
}
|
|
1337
112
|
}
|
|
113
|
+
return null;
|
|
1338
114
|
}
|
|
1339
|
-
*enumerateProviderBindings(node,
|
|
115
|
+
*enumerateProviderBindings(node, context) {
|
|
1340
116
|
for (const provider of this.providersFor(node)) {
|
|
1341
|
-
const bindings = provider.getBindingAccessors(node,
|
|
117
|
+
const bindings = provider.getBindingAccessors(node, context);
|
|
1342
118
|
if (!bindings) {
|
|
1343
119
|
continue;
|
|
1344
120
|
}
|
|
1345
|
-
yield* Object.entries(bindings || {});
|
|
121
|
+
yield* __yieldStar(Object.entries(bindings || {}));
|
|
1346
122
|
if (provider.preemptive) {
|
|
1347
123
|
return;
|
|
1348
124
|
}
|
|
1349
125
|
}
|
|
1350
126
|
}
|
|
1351
|
-
getBindingAccessors(node,
|
|
127
|
+
getBindingAccessors(node, context) {
|
|
1352
128
|
const bindings = {};
|
|
1353
|
-
for (const [key, accessor] of this.enumerateProviderBindings(node,
|
|
129
|
+
for (const [key, accessor] of this.enumerateProviderBindings(node, context)) {
|
|
1354
130
|
if (key in bindings) {
|
|
1355
131
|
throw new Error(`The binding "${key}" is duplicated by multiple providers`);
|
|
1356
132
|
}
|