@wavemaker/angular-app 11.14.1-21.64739 → 11.14.1-22.647453

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.
@@ -28490,17 +28490,17 @@ var root = freeGlobal || freeSelf || Function('return this')();
28490
28490
  var Symbol$1 = root.Symbol;
28491
28491
 
28492
28492
  /** Used for built-in method references. */
28493
- var objectProto$i = Object.prototype;
28493
+ var objectProto$h = Object.prototype;
28494
28494
 
28495
28495
  /** Used to check objects for own properties. */
28496
- var hasOwnProperty$f = objectProto$i.hasOwnProperty;
28496
+ var hasOwnProperty$e = objectProto$h.hasOwnProperty;
28497
28497
 
28498
28498
  /**
28499
28499
  * Used to resolve the
28500
28500
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
28501
28501
  * of values.
28502
28502
  */
28503
- var nativeObjectToString$1 = objectProto$i.toString;
28503
+ var nativeObjectToString$1 = objectProto$h.toString;
28504
28504
 
28505
28505
  /** Built-in value references. */
28506
28506
  var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
@@ -28513,7 +28513,7 @@ var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
28513
28513
  * @returns {string} Returns the raw `toStringTag`.
28514
28514
  */
28515
28515
  function getRawTag(value) {
28516
- var isOwn = hasOwnProperty$f.call(value, symToStringTag$1),
28516
+ var isOwn = hasOwnProperty$e.call(value, symToStringTag$1),
28517
28517
  tag = value[symToStringTag$1];
28518
28518
 
28519
28519
  try {
@@ -28533,14 +28533,14 @@ function getRawTag(value) {
28533
28533
  }
28534
28534
 
28535
28535
  /** Used for built-in method references. */
28536
- var objectProto$h = Object.prototype;
28536
+ var objectProto$g = Object.prototype;
28537
28537
 
28538
28538
  /**
28539
28539
  * Used to resolve the
28540
28540
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
28541
28541
  * of values.
28542
28542
  */
28543
- var nativeObjectToString = objectProto$h.toString;
28543
+ var nativeObjectToString = objectProto$g.toString;
28544
28544
 
28545
28545
  /**
28546
28546
  * Converts `value` to a string using `Object.prototype.toString`.
@@ -29006,17 +29006,17 @@ var reIsHostCtor = /^\[object .+?Constructor\]$/;
29006
29006
 
29007
29007
  /** Used for built-in method references. */
29008
29008
  var funcProto$1 = Function.prototype,
29009
- objectProto$g = Object.prototype;
29009
+ objectProto$f = Object.prototype;
29010
29010
 
29011
29011
  /** Used to resolve the decompiled source of functions. */
29012
29012
  var funcToString$1 = funcProto$1.toString;
29013
29013
 
29014
29014
  /** Used to check objects for own properties. */
29015
- var hasOwnProperty$e = objectProto$g.hasOwnProperty;
29015
+ var hasOwnProperty$d = objectProto$f.hasOwnProperty;
29016
29016
 
29017
29017
  /** Used to detect if a method is native. */
29018
29018
  var reIsNative = RegExp('^' +
29019
- funcToString$1.call(hasOwnProperty$e).replace(reRegExpChar, '\\$&')
29019
+ funcToString$1.call(hasOwnProperty$d).replace(reRegExpChar, '\\$&')
29020
29020
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
29021
29021
  );
29022
29022
 
@@ -29431,10 +29431,10 @@ function eq(value, other) {
29431
29431
  }
29432
29432
 
29433
29433
  /** Used for built-in method references. */
29434
- var objectProto$f = Object.prototype;
29434
+ var objectProto$e = Object.prototype;
29435
29435
 
29436
29436
  /** Used to check objects for own properties. */
29437
- var hasOwnProperty$d = objectProto$f.hasOwnProperty;
29437
+ var hasOwnProperty$c = objectProto$e.hasOwnProperty;
29438
29438
 
29439
29439
  /**
29440
29440
  * Assigns `value` to `key` of `object` if the existing value is not equivalent
@@ -29448,7 +29448,7 @@ var hasOwnProperty$d = objectProto$f.hasOwnProperty;
29448
29448
  */
29449
29449
  function assignValue(object, key, value) {
29450
29450
  var objValue = object[key];
29451
- if (!(hasOwnProperty$d.call(object, key) && eq(objValue, value)) ||
29451
+ if (!(hasOwnProperty$c.call(object, key) && eq(objValue, value)) ||
29452
29452
  (value === undefined && !(key in object))) {
29453
29453
  baseAssignValue(object, key, value);
29454
29454
  }
@@ -29654,7 +29654,7 @@ function createAssigner(assigner) {
29654
29654
  }
29655
29655
 
29656
29656
  /** Used for built-in method references. */
29657
- var objectProto$e = Object.prototype;
29657
+ var objectProto$d = Object.prototype;
29658
29658
 
29659
29659
  /**
29660
29660
  * Checks if `value` is likely a prototype object.
@@ -29665,7 +29665,7 @@ var objectProto$e = Object.prototype;
29665
29665
  */
29666
29666
  function isPrototype(value) {
29667
29667
  var Ctor = value && value.constructor,
29668
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$e;
29668
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$d;
29669
29669
 
29670
29670
  return value === proto;
29671
29671
  }
@@ -29704,13 +29704,13 @@ function baseIsArguments(value) {
29704
29704
  }
29705
29705
 
29706
29706
  /** Used for built-in method references. */
29707
- var objectProto$d = Object.prototype;
29707
+ var objectProto$c = Object.prototype;
29708
29708
 
29709
29709
  /** Used to check objects for own properties. */
29710
- var hasOwnProperty$c = objectProto$d.hasOwnProperty;
29710
+ var hasOwnProperty$b = objectProto$c.hasOwnProperty;
29711
29711
 
29712
29712
  /** Built-in value references. */
29713
- var propertyIsEnumerable$1 = objectProto$d.propertyIsEnumerable;
29713
+ var propertyIsEnumerable$1 = objectProto$c.propertyIsEnumerable;
29714
29714
 
29715
29715
  /**
29716
29716
  * Checks if `value` is likely an `arguments` object.
@@ -29731,7 +29731,7 @@ var propertyIsEnumerable$1 = objectProto$d.propertyIsEnumerable;
29731
29731
  * // => false
29732
29732
  */
29733
29733
  var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
29734
- return isObjectLike(value) && hasOwnProperty$c.call(value, 'callee') &&
29734
+ return isObjectLike(value) && hasOwnProperty$b.call(value, 'callee') &&
29735
29735
  !propertyIsEnumerable$1.call(value, 'callee');
29736
29736
  };
29737
29737
 
@@ -29904,10 +29904,10 @@ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
29904
29904
  var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
29905
29905
 
29906
29906
  /** Used for built-in method references. */
29907
- var objectProto$c = Object.prototype;
29907
+ var objectProto$b = Object.prototype;
29908
29908
 
29909
29909
  /** Used to check objects for own properties. */
29910
- var hasOwnProperty$b = objectProto$c.hasOwnProperty;
29910
+ var hasOwnProperty$a = objectProto$b.hasOwnProperty;
29911
29911
 
29912
29912
  /**
29913
29913
  * Creates an array of the enumerable property names of the array-like `value`.
@@ -29927,7 +29927,7 @@ function arrayLikeKeys(value, inherited) {
29927
29927
  length = result.length;
29928
29928
 
29929
29929
  for (var key in value) {
29930
- if ((inherited || hasOwnProperty$b.call(value, key)) &&
29930
+ if ((inherited || hasOwnProperty$a.call(value, key)) &&
29931
29931
  !(skipIndexes && (
29932
29932
  // Safari 9 has enumerable `arguments.length` in strict mode.
29933
29933
  key == 'length' ||
@@ -29962,10 +29962,10 @@ function overArg(func, transform) {
29962
29962
  var nativeKeys = overArg(Object.keys, Object);
29963
29963
 
29964
29964
  /** Used for built-in method references. */
29965
- var objectProto$b = Object.prototype;
29965
+ var objectProto$a = Object.prototype;
29966
29966
 
29967
29967
  /** Used to check objects for own properties. */
29968
- var hasOwnProperty$a = objectProto$b.hasOwnProperty;
29968
+ var hasOwnProperty$9 = objectProto$a.hasOwnProperty;
29969
29969
 
29970
29970
  /**
29971
29971
  * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
@@ -29980,7 +29980,7 @@ function baseKeys(object) {
29980
29980
  }
29981
29981
  var result = [];
29982
29982
  for (var key in Object(object)) {
29983
- if (hasOwnProperty$a.call(object, key) && key != 'constructor') {
29983
+ if (hasOwnProperty$9.call(object, key) && key != 'constructor') {
29984
29984
  result.push(key);
29985
29985
  }
29986
29986
  }
@@ -30020,10 +30020,10 @@ function keys(object) {
30020
30020
  }
30021
30021
 
30022
30022
  /** Used for built-in method references. */
30023
- var objectProto$a = Object.prototype;
30023
+ var objectProto$9 = Object.prototype;
30024
30024
 
30025
30025
  /** Used to check objects for own properties. */
30026
- var hasOwnProperty$9 = objectProto$a.hasOwnProperty;
30026
+ var hasOwnProperty$8 = objectProto$9.hasOwnProperty;
30027
30027
 
30028
30028
  /**
30029
30029
  * Assigns own enumerable string keyed properties of source objects to the
@@ -30063,7 +30063,7 @@ var assign = createAssigner(function(object, source) {
30063
30063
  return;
30064
30064
  }
30065
30065
  for (var key in source) {
30066
- if (hasOwnProperty$9.call(source, key)) {
30066
+ if (hasOwnProperty$8.call(source, key)) {
30067
30067
  assignValue(object, key, source[key]);
30068
30068
  }
30069
30069
  }
@@ -30089,10 +30089,10 @@ function nativeKeysIn(object) {
30089
30089
  }
30090
30090
 
30091
30091
  /** Used for built-in method references. */
30092
- var objectProto$9 = Object.prototype;
30092
+ var objectProto$8 = Object.prototype;
30093
30093
 
30094
30094
  /** Used to check objects for own properties. */
30095
- var hasOwnProperty$8 = objectProto$9.hasOwnProperty;
30095
+ var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
30096
30096
 
30097
30097
  /**
30098
30098
  * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
@@ -30109,7 +30109,7 @@ function baseKeysIn(object) {
30109
30109
  result = [];
30110
30110
 
30111
30111
  for (var key in object) {
30112
- if (!(key == 'constructor' && (isProto || !hasOwnProperty$8.call(object, key)))) {
30112
+ if (!(key == 'constructor' && (isProto || !hasOwnProperty$7.call(object, key)))) {
30113
30113
  result.push(key);
30114
30114
  }
30115
30115
  }
@@ -30203,10 +30203,10 @@ function hashDelete(key) {
30203
30203
  var HASH_UNDEFINED$2 = '__lodash_hash_undefined__';
30204
30204
 
30205
30205
  /** Used for built-in method references. */
30206
- var objectProto$8 = Object.prototype;
30206
+ var objectProto$7 = Object.prototype;
30207
30207
 
30208
30208
  /** Used to check objects for own properties. */
30209
- var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
30209
+ var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
30210
30210
 
30211
30211
  /**
30212
30212
  * Gets the hash value for `key`.
@@ -30223,14 +30223,14 @@ function hashGet(key) {
30223
30223
  var result = data[key];
30224
30224
  return result === HASH_UNDEFINED$2 ? undefined : result;
30225
30225
  }
30226
- return hasOwnProperty$7.call(data, key) ? data[key] : undefined;
30226
+ return hasOwnProperty$6.call(data, key) ? data[key] : undefined;
30227
30227
  }
30228
30228
 
30229
30229
  /** Used for built-in method references. */
30230
- var objectProto$7 = Object.prototype;
30230
+ var objectProto$6 = Object.prototype;
30231
30231
 
30232
30232
  /** Used to check objects for own properties. */
30233
- var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
30233
+ var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
30234
30234
 
30235
30235
  /**
30236
30236
  * Checks if a hash value for `key` exists.
@@ -30243,7 +30243,7 @@ var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
30243
30243
  */
30244
30244
  function hashHas(key) {
30245
30245
  var data = this.__data__;
30246
- return nativeCreate ? (data[key] !== undefined) : hasOwnProperty$6.call(data, key);
30246
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty$5.call(data, key);
30247
30247
  }
30248
30248
 
30249
30249
  /** Used to stand-in for `undefined` hash values. */
@@ -30888,13 +30888,13 @@ var objectTag$3 = '[object Object]';
30888
30888
 
30889
30889
  /** Used for built-in method references. */
30890
30890
  var funcProto = Function.prototype,
30891
- objectProto$6 = Object.prototype;
30891
+ objectProto$5 = Object.prototype;
30892
30892
 
30893
30893
  /** Used to resolve the decompiled source of functions. */
30894
30894
  var funcToString = funcProto.toString;
30895
30895
 
30896
30896
  /** Used to check objects for own properties. */
30897
- var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
30897
+ var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
30898
30898
 
30899
30899
  /** Used to infer the `Object` constructor. */
30900
30900
  var objectCtorString = funcToString.call(Object);
@@ -30935,7 +30935,7 @@ function isPlainObject(value) {
30935
30935
  if (proto === null) {
30936
30936
  return true;
30937
30937
  }
30938
- var Ctor = hasOwnProperty$5.call(proto, 'constructor') && proto.constructor;
30938
+ var Ctor = hasOwnProperty$4.call(proto, 'constructor') && proto.constructor;
30939
30939
  return typeof Ctor == 'function' && Ctor instanceof Ctor &&
30940
30940
  funcToString.call(Ctor) == objectCtorString;
30941
30941
  }
@@ -31740,10 +31740,10 @@ function stubArray() {
31740
31740
  }
31741
31741
 
31742
31742
  /** Used for built-in method references. */
31743
- var objectProto$5 = Object.prototype;
31743
+ var objectProto$4 = Object.prototype;
31744
31744
 
31745
31745
  /** Built-in value references. */
31746
- var propertyIsEnumerable = objectProto$5.propertyIsEnumerable;
31746
+ var propertyIsEnumerable = objectProto$4.propertyIsEnumerable;
31747
31747
 
31748
31748
  /* Built-in method references for those with the same name as other `lodash` methods. */
31749
31749
  var nativeGetSymbols$1 = Object.getOwnPropertySymbols;
@@ -31906,10 +31906,10 @@ if ((DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$3)
31906
31906
  }
31907
31907
 
31908
31908
  /** Used for built-in method references. */
31909
- var objectProto$4 = Object.prototype;
31909
+ var objectProto$3 = Object.prototype;
31910
31910
 
31911
31911
  /** Used to check objects for own properties. */
31912
- var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
31912
+ var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
31913
31913
 
31914
31914
  /**
31915
31915
  * Initializes an array clone.
@@ -31923,7 +31923,7 @@ function initCloneArray(array) {
31923
31923
  result = new array.constructor(length);
31924
31924
 
31925
31925
  // Add properties assigned by `RegExp#exec`.
31926
- if (length && typeof array[0] == 'string' && hasOwnProperty$4.call(array, 'index')) {
31926
+ if (length && typeof array[0] == 'string' && hasOwnProperty$3.call(array, 'index')) {
31927
31927
  result.index = array.index;
31928
31928
  result.input = array.input;
31929
31929
  }
@@ -32384,7 +32384,7 @@ function setCacheAdd(value) {
32384
32384
  * @name has
32385
32385
  * @memberOf SetCache
32386
32386
  * @param {*} value The value to search for.
32387
- * @returns {boolean} Returns `true` if `value` is found, else `false`.
32387
+ * @returns {number} Returns `true` if `value` is found, else `false`.
32388
32388
  */
32389
32389
  function setCacheHas(value) {
32390
32390
  return this.__data__.has(value);
@@ -32667,10 +32667,10 @@ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
32667
32667
  var COMPARE_PARTIAL_FLAG$3 = 1;
32668
32668
 
32669
32669
  /** Used for built-in method references. */
32670
- var objectProto$3 = Object.prototype;
32670
+ var objectProto$2 = Object.prototype;
32671
32671
 
32672
32672
  /** Used to check objects for own properties. */
32673
- var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
32673
+ var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
32674
32674
 
32675
32675
  /**
32676
32676
  * A specialized version of `baseIsEqualDeep` for objects with support for
@@ -32698,7 +32698,7 @@ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
32698
32698
  var index = objLength;
32699
32699
  while (index--) {
32700
32700
  var key = objProps[index];
32701
- if (!(isPartial ? key in other : hasOwnProperty$3.call(other, key))) {
32701
+ if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) {
32702
32702
  return false;
32703
32703
  }
32704
32704
  }
@@ -32759,10 +32759,10 @@ var argsTag = '[object Arguments]',
32759
32759
  objectTag = '[object Object]';
32760
32760
 
32761
32761
  /** Used for built-in method references. */
32762
- var objectProto$2 = Object.prototype;
32762
+ var objectProto$1 = Object.prototype;
32763
32763
 
32764
32764
  /** Used to check objects for own properties. */
32765
- var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
32765
+ var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
32766
32766
 
32767
32767
  /**
32768
32768
  * A specialized version of `baseIsEqual` for arrays and objects which performs
@@ -32805,8 +32805,8 @@ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
32805
32805
  : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
32806
32806
  }
32807
32807
  if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
32808
- var objIsWrapped = objIsObj && hasOwnProperty$2.call(object, '__wrapped__'),
32809
- othIsWrapped = othIsObj && hasOwnProperty$2.call(other, '__wrapped__');
32808
+ var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, '__wrapped__'),
32809
+ othIsWrapped = othIsObj && hasOwnProperty$1.call(other, '__wrapped__');
32810
32810
 
32811
32811
  if (objIsWrapped || othIsWrapped) {
32812
32812
  var objUnwrapped = objIsWrapped ? object.value() : object,
@@ -34349,10 +34349,10 @@ var mapTag = '[object Map]',
34349
34349
  setTag = '[object Set]';
34350
34350
 
34351
34351
  /** Used for built-in method references. */
34352
- var objectProto$1 = Object.prototype;
34352
+ var objectProto = Object.prototype;
34353
34353
 
34354
34354
  /** Used to check objects for own properties. */
34355
- var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
34355
+ var hasOwnProperty = objectProto.hasOwnProperty;
34356
34356
 
34357
34357
  /**
34358
34358
  * Checks if `value` is an empty object, collection, map, or set.
@@ -34404,7 +34404,7 @@ function isEmpty(value) {
34404
34404
  return !baseKeys(value).length;
34405
34405
  }
34406
34406
  for (var key in value) {
34407
- if (hasOwnProperty$1.call(value, key)) {
34407
+ if (hasOwnProperty.call(value, key)) {
34408
34408
  return false;
34409
34409
  }
34410
34410
  }
@@ -34628,12 +34628,6 @@ var merge$1 = createAssigner(function(object, source, srcIndex) {
34628
34628
  baseMerge(object, source, srcIndex);
34629
34629
  });
34630
34630
 
34631
- /** Used for built-in method references. */
34632
- var objectProto = Object.prototype;
34633
-
34634
- /** Used to check objects for own properties. */
34635
- var hasOwnProperty = objectProto.hasOwnProperty;
34636
-
34637
34631
  /**
34638
34632
  * The base implementation of `_.unset`.
34639
34633
  *
@@ -34644,34 +34638,8 @@ var hasOwnProperty = objectProto.hasOwnProperty;
34644
34638
  */
34645
34639
  function baseUnset(object, path) {
34646
34640
  path = castPath(path, object);
34647
-
34648
- // Prevent prototype pollution:
34649
- // https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg
34650
- // https://github.com/lodash/lodash/security/advisories/GHSA-f23m-r3pf-42rh
34651
- var index = -1,
34652
- length = path.length;
34653
-
34654
- if (!length) {
34655
- return true;
34656
- }
34657
-
34658
- while (++index < length) {
34659
- var key = toKey(path[index]);
34660
-
34661
- // Always block "__proto__" anywhere in the path if it's not expected
34662
- if (key === '__proto__' && !hasOwnProperty.call(object, '__proto__')) {
34663
- return false;
34664
- }
34665
-
34666
- // Block constructor/prototype as non-terminal traversal keys to prevent
34667
- // escaping the object graph into built-in constructors and prototypes.
34668
- if ((key === 'constructor' || key === 'prototype') && index < length - 1) {
34669
- return false;
34670
- }
34671
- }
34672
-
34673
- var obj = parent$1(object, path);
34674
- return obj == null || delete obj[toKey(last$1(path))];
34641
+ object = parent$1(object, path);
34642
+ return object == null || delete object[toKey(last$1(path))];
34675
34643
  }
34676
34644
 
34677
34645
  /**
@@ -34848,7 +34816,7 @@ function baseOrderBy(collection, iteratees, orders) {
34848
34816
  if (isArray(iteratee)) {
34849
34817
  return function(value) {
34850
34818
  return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
34851
- };
34819
+ }
34852
34820
  }
34853
34821
  return iteratee;
34854
34822
  });
@@ -37843,14 +37811,14 @@ function requireDom () {
37843
37811
  ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]="DOMString size error"),2);
37844
37812
  var HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]="Hierarchy request error"),3);
37845
37813
  ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]="Wrong document"),4);
37846
- ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]="Invalid character"),5);
37814
+ var INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]="Invalid character"),5);
37847
37815
  ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]="No data allowed"),6);
37848
37816
  ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]="No modification allowed"),7);
37849
37817
  var NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]="Not found"),8);
37850
37818
  ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]="Not supported"),9);
37851
37819
  var INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]="Attribute in use"),10);
37852
37820
  //level2
37853
- ExceptionCode.INVALID_STATE_ERR = ((ExceptionMessage[11]="Invalid state"),11);
37821
+ var INVALID_STATE_ERR = ExceptionCode.INVALID_STATE_ERR = ((ExceptionMessage[11]="Invalid state"),11);
37854
37822
  ExceptionCode.SYNTAX_ERR = ((ExceptionMessage[12]="Syntax error"),12);
37855
37823
  ExceptionCode.INVALID_MODIFICATION_ERR = ((ExceptionMessage[13]="Invalid modification"),13);
37856
37824
  ExceptionCode.NAMESPACE_ERR = ((ExceptionMessage[14]="Invalid namespace"),14);
@@ -37900,9 +37868,10 @@ function requireDom () {
37900
37868
  item: function(index) {
37901
37869
  return index >= 0 && index < this.length ? this[index] : null;
37902
37870
  },
37903
- toString:function(isHTML,nodeFilter){
37871
+ toString:function(isHTML,nodeFilter,options){
37872
+ var requireWellFormed = !!options && !!options.requireWellFormed;
37904
37873
  for(var buf = [], i = 0;i<this.length;i++){
37905
- serializeToString(this[i],buf,isHTML,nodeFilter);
37874
+ serializeToString(this[i],buf,isHTML,nodeFilter,null,requireWellFormed);
37906
37875
  }
37907
37876
  return buf.join('');
37908
37877
  },
@@ -38147,13 +38116,28 @@ function requireDom () {
38147
38116
  /**
38148
38117
  * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.
38149
38118
  *
38150
- * __This behavior is slightly different from the in the specs__:
38119
+ * __This implementation differs from the specification:__
38151
38120
  * - this implementation is not validating names or qualified names
38152
38121
  * (when parsing XML strings, the SAX parser takes care of that)
38153
38122
  *
38123
+ * Note: `internalSubset` can only be introduced via a direct property write to `node.internalSubset` after creation.
38124
+ * Creation-time validation of `publicId`, `systemId` is not enforced.
38125
+ * The serializer-level check covers all mutation vectors, including direct property writes.
38126
+ * `internalSubset` is only serialized as `[ ... ]` when both `publicId` and `systemId` are
38127
+ * absent (empty or `'.'`) — if either external identifier is present, `internalSubset` is
38128
+ * silently omitted from the serialized output.
38129
+ *
38154
38130
  * @param {string} qualifiedName
38155
38131
  * @param {string} [publicId]
38132
+ * The external subset public identifier. Stored verbatim including surrounding quotes.
38133
+ * When serialized with `requireWellFormed: true` (via the 4th-parameter options object),
38134
+ * throws `DOMException` with code `INVALID_STATE_ERR` if the value is non-empty and does
38135
+ * not match the XML `PubidLiteral` production (W3C DOM Parsing §3.2.1.3; XML 1.0 [12]).
38156
38136
  * @param {string} [systemId]
38137
+ * The external subset system identifier. Stored verbatim including surrounding quotes.
38138
+ * When serialized with `requireWellFormed: true`, throws `DOMException` with code
38139
+ * `INVALID_STATE_ERR` if the value is non-empty and does not match the XML `SystemLiteral`
38140
+ * production (W3C DOM Parsing §3.2.1.3; XML 1.0 [11]).
38157
38141
  * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation
38158
38142
  * or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`
38159
38143
  *
@@ -38219,18 +38203,44 @@ function requireDom () {
38219
38203
  return cloneNode(this.ownerDocument||this,this,deep);
38220
38204
  },
38221
38205
  // Modified in DOM Level 2:
38222
- normalize:function(){
38223
- var child = this.firstChild;
38224
- while(child){
38225
- var next = child.nextSibling;
38226
- if(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){
38227
- this.removeChild(next);
38228
- child.appendData(next.data);
38229
- }else {
38230
- child.normalize();
38231
- child = next;
38232
- }
38233
- }
38206
+ /**
38207
+ * Puts the specified node and all of its subtree into a "normalized" form. In a normalized
38208
+ * subtree, no text nodes in the subtree are empty and there are no adjacent text nodes.
38209
+ *
38210
+ * Specifically, this method merges any adjacent text nodes (i.e., nodes for which `nodeType`
38211
+ * is `TEXT_NODE`) into a single node with the combined data. It also removes any empty text
38212
+ * nodes.
38213
+ *
38214
+ * This method iteratively traverses all child nodes to normalize all descendant nodes within
38215
+ * the subtree.
38216
+ *
38217
+ * @throws {DOMException}
38218
+ * May throw a DOMException if operations within removeChild or appendData (which are
38219
+ * potentially invoked in this method) do not meet their specific constraints.
38220
+ * @see {@link Node.removeChild}
38221
+ * @see {@link CharacterData.appendData}
38222
+ * @see ../docs/walk-dom.md.
38223
+ */
38224
+ normalize: function () {
38225
+ walkDOM(this, null, {
38226
+ enter: function (node) {
38227
+ // Merge adjacent text children of node before walkDOM schedules them.
38228
+ // walkDOM reads lastChild/previousSibling after enter returns, so the
38229
+ // surviving post-merge children are what it descends into.
38230
+ var child = node.firstChild;
38231
+ while (child) {
38232
+ var next = child.nextSibling;
38233
+ if (next !== null && next.nodeType === TEXT_NODE && child.nodeType === TEXT_NODE) {
38234
+ node.removeChild(next);
38235
+ child.appendData(next.data);
38236
+ // Do not advance child: re-check new nextSibling for another text run
38237
+ } else {
38238
+ child = next;
38239
+ }
38240
+ }
38241
+ return true; // descend into surviving children
38242
+ },
38243
+ });
38234
38244
  },
38235
38245
  // Introduced in DOM Level 2:
38236
38246
  isSupported:function(feature, version){
@@ -38306,21 +38316,103 @@ function requireDom () {
38306
38316
  copy(NodeType,Node.prototype);
38307
38317
 
38308
38318
  /**
38309
- * @param callback return true for continue,false for break
38310
- * @return boolean true: break visit;
38319
+ * @param {Node} node
38320
+ * Root of the subtree to visit.
38321
+ * @param {function(Node): boolean} callback
38322
+ * Called for each node in depth-first pre-order. Return a truthy value to stop traversal early.
38323
+ * @return {boolean} `true` if traversal was aborted by the callback, `false` otherwise.
38311
38324
  */
38312
- function _visitNode(node,callback){
38313
- if(callback(node)){
38314
- return true;
38315
- }
38316
- if(node = node.firstChild){
38317
- do{
38318
- if(_visitNode(node,callback)){return true}
38319
- }while(node=node.nextSibling)
38320
- }
38325
+ function _visitNode(node, callback) {
38326
+ return walkDOM(node, null, { enter: function (n) { return callback(n) ? walkDOM.STOP : true; } }) === walkDOM.STOP;
38321
38327
  }
38322
38328
 
38329
+ /**
38330
+ * Depth-first pre/post-order DOM tree walker.
38331
+ *
38332
+ * Visits every node in the subtree rooted at `node`. For each node:
38333
+ *
38334
+ * 1. Calls `callbacks.enter(node, context)` before descending into the node's children. The
38335
+ * return value becomes the `context` passed to each child's `enter` call and to the matching
38336
+ * `exit` call.
38337
+ * 2. If `enter` returns `null` or `undefined`, the node's children are skipped;
38338
+ * sibling traversal continues normally.
38339
+ * 3. If `enter` returns `walkDOM.STOP`, the entire traversal is aborted immediately — no
38340
+ * further `enter` or `exit` calls are made.
38341
+ * 4. `lastChild` and `previousSibling` are read **after** `enter` returns, so `enter` may
38342
+ * safely modify the node's own child list before the walker descends. Modifying siblings of
38343
+ * the current node or any other part of the tree produces unpredictable results: nodes already
38344
+ * queued on the stack are visited regardless of DOM changes, and newly inserted nodes outside
38345
+ * the current child list are never visited.
38346
+ * 5. Calls `callbacks.exit(node, context)` (if provided) after all of a node's children have
38347
+ * been visited, passing the same `context` that `enter`
38348
+ * returned for that node.
38349
+ *
38350
+ * This implementation uses an explicit stack and does not recurse — it is safe on arbitrarily
38351
+ * deep trees.
38352
+ *
38353
+ * @param {Node} node
38354
+ * Root of the subtree to walk.
38355
+ * @param {*} context
38356
+ * Initial context value passed to the root node's `enter`.
38357
+ * @param {{ enter: function(Node, *): *, exit?: function(Node, *): void }} callbacks
38358
+ * @returns {void | walkDOM.STOP}
38359
+ * @see ../docs/walk-dom.md.
38360
+ */
38361
+ function walkDOM(node, context, callbacks) {
38362
+ // Each stack frame is {node, context, phase}:
38363
+ // walkDOM.ENTER — call enter, then push children
38364
+ // walkDOM.EXIT — call exit
38365
+ var stack = [{ node: node, context: context, phase: walkDOM.ENTER }];
38366
+ while (stack.length > 0) {
38367
+ var frame = stack.pop();
38368
+ if (frame.phase === walkDOM.ENTER) {
38369
+ var childContext = callbacks.enter(frame.node, frame.context);
38370
+ if (childContext === walkDOM.STOP) {
38371
+ return walkDOM.STOP;
38372
+ }
38373
+ // Push exit frame before children so it fires after all children are processed (Last In First Out)
38374
+ stack.push({ node: frame.node, context: childContext, phase: walkDOM.EXIT });
38375
+ if (childContext === null || childContext === undefined) {
38376
+ continue; // skip children
38377
+ }
38378
+ // lastChild is read after enter returns, so enter may modify the child list.
38379
+ var child = frame.node.lastChild;
38380
+ // Traverse from lastChild backwards so that pushing onto the stack
38381
+ // naturally yields firstChild on top (processed first).
38382
+ while (child) {
38383
+ stack.push({ node: child, context: childContext, phase: walkDOM.ENTER });
38384
+ child = child.previousSibling;
38385
+ }
38386
+ } else {
38387
+ // frame.phase === walkDOM.EXIT
38388
+ if (callbacks.exit) {
38389
+ callbacks.exit(frame.node, frame.context);
38390
+ }
38391
+ }
38392
+ }
38393
+ }
38323
38394
 
38395
+ /**
38396
+ * Sentinel value returned from a `walkDOM` `enter` callback to abort the entire traversal
38397
+ * immediately.
38398
+ *
38399
+ * @type {symbol}
38400
+ */
38401
+ walkDOM.STOP = Symbol('walkDOM.STOP');
38402
+ /**
38403
+ * Phase constant for a stack frame that has not yet been visited.
38404
+ * The `enter` callback is called and children are scheduled.
38405
+ *
38406
+ * @type {number}
38407
+ */
38408
+ walkDOM.ENTER = 0;
38409
+ /**
38410
+ * Phase constant for a stack frame whose subtree has been fully visited.
38411
+ * The `exit` callback is called.
38412
+ *
38413
+ * @type {number}
38414
+ */
38415
+ walkDOM.EXIT = 1;
38324
38416
 
38325
38417
  function Document(){
38326
38418
  this.ownerDocument = this;
@@ -38924,12 +39016,44 @@ function requireDom () {
38924
39016
  node.appendData(data);
38925
39017
  return node;
38926
39018
  },
39019
+ /**
39020
+ * Returns a new CDATASection node whose data is `data`.
39021
+ *
39022
+ * __This implementation differs from the specification:__
39023
+ * - calling this method on an HTML document does not throw `NotSupportedError`.
39024
+ *
39025
+ * @param {string} data
39026
+ * @returns {CDATASection}
39027
+ * @throws DOMException with code `INVALID_CHARACTER_ERR` if `data` contains `"]]>"`.
39028
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createCDATASection
39029
+ * @see https://dom.spec.whatwg.org/#dom-document-createcdatasection
39030
+ */
38927
39031
  createCDATASection : function(data){
39032
+ if (data.indexOf(']]>') !== -1) {
39033
+ throw new DOMException(INVALID_CHARACTER_ERR, 'data contains "]]>"');
39034
+ }
38928
39035
  var node = new CDATASection();
38929
39036
  node.ownerDocument = this;
38930
39037
  node.appendData(data);
38931
39038
  return node;
38932
39039
  },
39040
+ /**
39041
+ * Returns a ProcessingInstruction node whose target is target and data is data.
39042
+ *
39043
+ * __This implementation differs from the specification:__
39044
+ * - it does not do any input validation on the arguments and doesn't throw "InvalidCharacterError".
39045
+ *
39046
+ * Note: When the resulting document is serialized with `requireWellFormed: true`, the
39047
+ * serializer throws with code `INVALID_STATE_ERR` if `.data` contains `?>` (W3C DOM Parsing
39048
+ * §3.2.1.7). Without that option the data is emitted verbatim.
39049
+ *
39050
+ * @param {string} target
39051
+ * @param {string} data
39052
+ * @returns {ProcessingInstruction}
39053
+ * @see https://developer.mozilla.org/docs/Web/API/Document/createProcessingInstruction
39054
+ * @see https://dom.spec.whatwg.org/#dom-document-createprocessinginstruction
39055
+ * @see https://www.w3.org/TR/DOM-Parsing/#dfn-concept-serialize-xml §3.2.1.7
39056
+ */
38933
39057
  createProcessingInstruction : function(target,data){
38934
39058
  var node = new ProcessingInstruction();
38935
39059
  node.ownerDocument = this;
@@ -39155,6 +39279,19 @@ function requireDom () {
39155
39279
  _extends(CDATASection,CharacterData);
39156
39280
 
39157
39281
 
39282
+ /**
39283
+ * Represents a DocumentType node (the `<!DOCTYPE ...>` declaration).
39284
+ *
39285
+ * `publicId`, `systemId`, and `internalSubset` are plain own-property assignments.
39286
+ * xmldom does not enforce the `readonly` constraint declared by the WHATWG DOM spec —
39287
+ * direct property writes succeed silently. Values are serialized verbatim when
39288
+ * `requireWellFormed` is false (the default). When the serializer is invoked with
39289
+ * `requireWellFormed: true` (via the 4th-parameter options object), it validates each
39290
+ * field and throws `DOMException` with code `INVALID_STATE_ERR` on invalid values.
39291
+ *
39292
+ * @class
39293
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentType MDN
39294
+ */
39158
39295
  function DocumentType() {
39159
39296
  } DocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;
39160
39297
  _extends(DocumentType,Node);
@@ -39182,11 +39319,48 @@ function requireDom () {
39182
39319
  ProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;
39183
39320
  _extends(ProcessingInstruction,Node);
39184
39321
  function XMLSerializer(){}
39185
- XMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){
39186
- return nodeSerializeToString.call(node,isHtml,nodeFilter);
39322
+ /**
39323
+ * Returns the result of serializing `node` to XML.
39324
+ *
39325
+ * When `options.requireWellFormed` is `true`, the serializer throws for content that would
39326
+ * produce ill-formed XML.
39327
+ *
39328
+ * __This implementation differs from the specification:__
39329
+ * - CDATASection nodes whose data contains `]]>` are serialized by splitting the section
39330
+ * at each `]]>` occurrence (following W3C DOM Level 3 Core `split-cdata-sections`
39331
+ * default behaviour) unless `requireWellFormed` is `true`.
39332
+ * - when `requireWellFormed` is `true`, `DOMException` with code `INVALID_STATE_ERR`
39333
+ * is only thrown to prevent injection vectors, not for all the spec mandated checks.
39334
+ *
39335
+ * @param {Node} node
39336
+ * @param {boolean} [isHtml]
39337
+ * @param {function} [nodeFilter]
39338
+ * @param {Object} [options]
39339
+ * @param {boolean} [options.requireWellFormed=false]
39340
+ * When `true`, throws for content that would produce ill-formed XML.
39341
+ * @returns {string}
39342
+ * @throws {DOMException}
39343
+ * With code `INVALID_STATE_ERR` when `requireWellFormed` is `true` and:
39344
+ * - a CDATASection node's data contains `"]]>"`,
39345
+ * - a Comment node's data contains `"-->"` (bare `"--"` does not throw on this branch),
39346
+ * - a ProcessingInstruction's data contains `"?>"`,
39347
+ * - a DocumentType's `publicId` is non-empty and does not match the XML `PubidLiteral`
39348
+ * production,
39349
+ * - a DocumentType's `systemId` is non-empty and does not match the XML `SystemLiteral`
39350
+ * production, or
39351
+ * - a DocumentType's `internalSubset` contains `"]>"`.
39352
+ * Note: xmldom does not enforce `readonly` on DocumentType fields — direct property
39353
+ * writes succeed and are covered by the serializer-level checks above.
39354
+ * @see https://html.spec.whatwg.org/#dom-xmlserializer-serializetostring
39355
+ * @see https://w3c.github.io/DOM-Parsing/#xml-serialization
39356
+ * @see https://github.com/w3c/DOM-Parsing/issues/84
39357
+ */
39358
+ XMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter,options){
39359
+ return nodeSerializeToString.call(node,isHtml,nodeFilter,options);
39187
39360
  };
39188
39361
  Node.prototype.toString = nodeSerializeToString;
39189
- function nodeSerializeToString(isHtml,nodeFilter){
39362
+ function nodeSerializeToString(isHtml,nodeFilter,options){
39363
+ var requireWellFormed = !!options && !!options.requireWellFormed;
39190
39364
  var buf = [];
39191
39365
  var refNode = this.nodeType == 9 && this.documentElement || this;
39192
39366
  var prefix = refNode.prefix;
@@ -39203,7 +39377,7 @@ function requireDom () {
39203
39377
  ];
39204
39378
  }
39205
39379
  }
39206
- serializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);
39380
+ serializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces,requireWellFormed);
39207
39381
  //console.log('###',this.nodeType,uri,prefix,buf.join(''))
39208
39382
  return buf.join('');
39209
39383
  }
@@ -39252,271 +39426,323 @@ function requireDom () {
39252
39426
  buf.push(' ', qualifiedName, '="', value.replace(/[<>&"\t\n\r]/g, _xmlEncoder), '"');
39253
39427
  }
39254
39428
 
39255
- function serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){
39429
+ function serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces, requireWellFormed) {
39256
39430
  if (!visibleNamespaces) {
39257
39431
  visibleNamespaces = [];
39258
39432
  }
39259
-
39260
- if(nodeFilter){
39261
- node = nodeFilter(node);
39262
- if(node){
39263
- if(typeof node == 'string'){
39264
- buf.push(node);
39265
- return;
39266
- }
39267
- }else {
39268
- return;
39269
- }
39270
- //buf.sort.apply(attrs, attributeSorter);
39271
- }
39272
-
39273
- switch(node.nodeType){
39274
- case ELEMENT_NODE:
39275
- var attrs = node.attributes;
39276
- var len = attrs.length;
39277
- var child = node.firstChild;
39278
- var nodeName = node.tagName;
39279
-
39280
- isHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML;
39281
-
39282
- var prefixedNodeName = nodeName;
39283
- if (!isHTML && !node.prefix && node.namespaceURI) {
39284
- var defaultNS;
39285
- // lookup current default ns from `xmlns` attribute
39286
- for (var ai = 0; ai < attrs.length; ai++) {
39287
- if (attrs.item(ai).name === 'xmlns') {
39288
- defaultNS = attrs.item(ai).value;
39289
- break
39290
- }
39291
- }
39292
- if (!defaultNS) {
39293
- // lookup current default ns in visibleNamespaces
39294
- for (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {
39295
- var namespace = visibleNamespaces[nsi];
39296
- if (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {
39297
- defaultNS = namespace.namespace;
39298
- break
39433
+ walkDOM(node, { ns: visibleNamespaces, isHTML: isHTML }, {
39434
+ enter: function (n, ctx) {
39435
+ var ns = ctx.ns;
39436
+ var html = ctx.isHTML;
39437
+
39438
+ if (nodeFilter) {
39439
+ n = nodeFilter(n);
39440
+ if (n) {
39441
+ if (typeof n == 'string') {
39442
+ buf.push(n);
39443
+ return null;
39299
39444
  }
39445
+ } else {
39446
+ return null;
39300
39447
  }
39301
39448
  }
39302
- if (defaultNS !== node.namespaceURI) {
39303
- for (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {
39304
- var namespace = visibleNamespaces[nsi];
39305
- if (namespace.namespace === node.namespaceURI) {
39306
- if (namespace.prefix) {
39307
- prefixedNodeName = namespace.prefix + ':' + nodeName;
39449
+
39450
+ switch (n.nodeType) {
39451
+ case ELEMENT_NODE:
39452
+ var attrs = n.attributes;
39453
+ var len = attrs.length;
39454
+ var nodeName = n.tagName;
39455
+
39456
+ html = NAMESPACE.isHTML(n.namespaceURI) || html;
39457
+
39458
+ var prefixedNodeName = nodeName;
39459
+ if (!html && !n.prefix && n.namespaceURI) {
39460
+ var defaultNS;
39461
+ // lookup current default ns from `xmlns` attribute
39462
+ for (var ai = 0; ai < attrs.length; ai++) {
39463
+ if (attrs.item(ai).name === 'xmlns') {
39464
+ defaultNS = attrs.item(ai).value;
39465
+ break;
39466
+ }
39467
+ }
39468
+ if (!defaultNS) {
39469
+ // lookup current default ns in visibleNamespaces
39470
+ for (var nsi = ns.length - 1; nsi >= 0; nsi--) {
39471
+ var nsEntry = ns[nsi];
39472
+ if (nsEntry.prefix === '' && nsEntry.namespace === n.namespaceURI) {
39473
+ defaultNS = nsEntry.namespace;
39474
+ break;
39475
+ }
39476
+ }
39477
+ }
39478
+ if (defaultNS !== n.namespaceURI) {
39479
+ for (var nsi = ns.length - 1; nsi >= 0; nsi--) {
39480
+ var nsEntry = ns[nsi];
39481
+ if (nsEntry.namespace === n.namespaceURI) {
39482
+ if (nsEntry.prefix) {
39483
+ prefixedNodeName = nsEntry.prefix + ':' + nodeName;
39484
+ }
39485
+ break;
39486
+ }
39487
+ }
39308
39488
  }
39309
- break
39310
39489
  }
39311
- }
39312
- }
39313
- }
39314
39490
 
39315
- buf.push('<', prefixedNodeName);
39491
+ buf.push('<', prefixedNodeName);
39492
+
39493
+ // Build a fresh namespace snapshot for this element's children.
39494
+ // The slice prevents sibling elements from inheriting each other's declarations.
39495
+ var childNs = ns.slice();
39496
+ for (var i = 0; i < len; i++) {
39497
+ var attr = attrs.item(i);
39498
+ if (attr.prefix == 'xmlns') {
39499
+ childNs.push({ prefix: attr.localName, namespace: attr.value });
39500
+ } else if (attr.nodeName == 'xmlns') {
39501
+ childNs.push({ prefix: '', namespace: attr.value });
39502
+ }
39503
+ }
39316
39504
 
39317
- for(var i=0;i<len;i++){
39318
- // add namespaces for attributes
39319
- var attr = attrs.item(i);
39320
- if (attr.prefix == 'xmlns') {
39321
- visibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });
39322
- }else if(attr.nodeName == 'xmlns'){
39323
- visibleNamespaces.push({ prefix: '', namespace: attr.value });
39324
- }
39325
- }
39505
+ for (var i = 0; i < len; i++) {
39506
+ var attr = attrs.item(i);
39507
+ if (needNamespaceDefine(attr, html, childNs)) {
39508
+ var attrPrefix = attr.prefix || '';
39509
+ var uri = attr.namespaceURI;
39510
+ addSerializedAttribute(buf, attrPrefix ? 'xmlns:' + attrPrefix : 'xmlns', uri);
39511
+ childNs.push({ prefix: attrPrefix, namespace: uri });
39512
+ }
39513
+ // Apply nodeFilter and serialize the attribute.
39514
+ var filteredAttr = nodeFilter ? nodeFilter(attr) : attr;
39515
+ if (filteredAttr) {
39516
+ if (typeof filteredAttr === 'string') {
39517
+ buf.push(filteredAttr);
39518
+ } else {
39519
+ addSerializedAttribute(buf, filteredAttr.name, filteredAttr.value);
39520
+ }
39521
+ }
39522
+ }
39326
39523
 
39327
- for(var i=0;i<len;i++){
39328
- var attr = attrs.item(i);
39329
- if (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {
39330
- var prefix = attr.prefix||'';
39331
- var uri = attr.namespaceURI;
39332
- addSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : "xmlns", uri);
39333
- visibleNamespaces.push({ prefix: prefix, namespace:uri });
39334
- }
39335
- serializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);
39336
- }
39524
+ // add namespace for current node
39525
+ if (nodeName === prefixedNodeName && needNamespaceDefine(n, html, childNs)) {
39526
+ var nodePrefix = n.prefix || '';
39527
+ var uri = n.namespaceURI;
39528
+ addSerializedAttribute(buf, nodePrefix ? 'xmlns:' + nodePrefix : 'xmlns', uri);
39529
+ childNs.push({ prefix: nodePrefix, namespace: uri });
39530
+ }
39337
39531
 
39338
- // add namespace for current node
39339
- if (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) {
39340
- var prefix = node.prefix||'';
39341
- var uri = node.namespaceURI;
39342
- addSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : "xmlns", uri);
39343
- visibleNamespaces.push({ prefix: prefix, namespace:uri });
39344
- }
39532
+ var child = n.firstChild;
39533
+ if (child || html && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {
39534
+ buf.push('>');
39535
+ if (html && /^script$/i.test(nodeName)) {
39536
+ // Inline serialization for <script> children; return null to skip walkDOM descent.
39537
+ while (child) {
39538
+ if (child.data) {
39539
+ buf.push(child.data);
39540
+ } else {
39541
+ serializeToString(child, buf, html, nodeFilter, childNs.slice(), requireWellFormed);
39542
+ }
39543
+ child = child.nextSibling;
39544
+ }
39545
+ buf.push('</', nodeName, '>');
39546
+ return null;
39547
+ }
39548
+ // Return child context; walkDOM descends and exit emits the closing tag.
39549
+ return { ns: childNs, isHTML: html, tag: prefixedNodeName };
39550
+ } else {
39551
+ buf.push('/>');
39552
+ return null;
39553
+ }
39345
39554
 
39346
- if(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){
39347
- buf.push('>');
39348
- //if is cdata child node
39349
- if(isHTML && /^script$/i.test(nodeName)){
39350
- while(child){
39351
- if(child.data){
39352
- buf.push(child.data);
39353
- }else {
39354
- serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());
39555
+ case DOCUMENT_NODE:
39556
+ case DOCUMENT_FRAGMENT_NODE:
39557
+ // Descend into children; exit is a no-op (tag is null).
39558
+ return { ns: ns.slice(), isHTML: html, tag: null };
39559
+
39560
+ case ATTRIBUTE_NODE:
39561
+ addSerializedAttribute(buf, n.name, n.value);
39562
+ return null;
39563
+
39564
+ case TEXT_NODE:
39565
+ /**
39566
+ * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,
39567
+ * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.
39568
+ * If they are needed elsewhere, they must be escaped using either numeric character references or the strings
39569
+ * `&amp;` and `&lt;` respectively.
39570
+ * The right angle bracket (>) may be represented using the string " &gt; ", and must, for compatibility,
39571
+ * be escaped using either `&gt;` or a character reference when it appears in the string `]]>` in content,
39572
+ * when that string is not marking the end of a CDATA section.
39573
+ *
39574
+ * In the content of elements, character data is any string of characters
39575
+ * which does not contain the start-delimiter of any markup
39576
+ * and does not include the CDATA-section-close delimiter, `]]>`.
39577
+ *
39578
+ * @see https://www.w3.org/TR/xml/#NT-CharData
39579
+ * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node
39580
+ */
39581
+ buf.push(n.data.replace(/[<&>]/g, _xmlEncoder));
39582
+ return null;
39583
+
39584
+ case CDATA_SECTION_NODE:
39585
+ if (requireWellFormed && n.data.indexOf(']]>') !== -1) {
39586
+ throw new DOMException(INVALID_STATE_ERR, 'The CDATASection data contains "]]>"');
39355
39587
  }
39356
- child = child.nextSibling;
39357
- }
39358
- }else
39359
- {
39360
- while(child){
39361
- serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());
39362
- child = child.nextSibling;
39363
- }
39364
- }
39365
- buf.push('</',prefixedNodeName,'>');
39366
- }else {
39367
- buf.push('/>');
39368
- }
39369
- // remove added visible namespaces
39370
- //visibleNamespaces.length = startVisibleNamespaces;
39371
- return;
39372
- case DOCUMENT_NODE:
39373
- case DOCUMENT_FRAGMENT_NODE:
39374
- var child = node.firstChild;
39375
- while(child){
39376
- serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());
39377
- child = child.nextSibling;
39378
- }
39379
- return;
39380
- case ATTRIBUTE_NODE:
39381
- return addSerializedAttribute(buf, node.name, node.value);
39382
- case TEXT_NODE:
39383
- /**
39384
- * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,
39385
- * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.
39386
- * If they are needed elsewhere, they must be escaped using either numeric character references or the strings
39387
- * `&amp;` and `&lt;` respectively.
39388
- * The right angle bracket (>) may be represented using the string " &gt; ", and must, for compatibility,
39389
- * be escaped using either `&gt;` or a character reference when it appears in the string `]]>` in content,
39390
- * when that string is not marking the end of a CDATA section.
39391
- *
39392
- * In the content of elements, character data is any string of characters
39393
- * which does not contain the start-delimiter of any markup
39394
- * and does not include the CDATA-section-close delimiter, `]]>`.
39395
- *
39396
- * @see https://www.w3.org/TR/xml/#NT-CharData
39397
- * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node
39398
- */
39399
- return buf.push(node.data
39400
- .replace(/[<&>]/g,_xmlEncoder)
39401
- );
39402
- case CDATA_SECTION_NODE:
39403
- return buf.push( '<![CDATA[',node.data,']]>');
39404
- case COMMENT_NODE:
39405
- return buf.push( "<!--",node.data,"-->");
39406
- case DOCUMENT_TYPE_NODE:
39407
- var pubid = node.publicId;
39408
- var sysid = node.systemId;
39409
- buf.push('<!DOCTYPE ',node.name);
39410
- if(pubid){
39411
- buf.push(' PUBLIC ', pubid);
39412
- if (sysid && sysid!='.') {
39413
- buf.push(' ', sysid);
39588
+ buf.push('<![CDATA[', n.data.replace(/]]>/g, ']]]]><![CDATA[>'), ']]>');
39589
+ return null;
39590
+
39591
+ case COMMENT_NODE:
39592
+ if (requireWellFormed && n.data.indexOf('-->') !== -1) {
39593
+ throw new DOMException(INVALID_STATE_ERR, 'The comment node data contains "-->"');
39594
+ }
39595
+ buf.push('<!--', n.data, '-->');
39596
+ return null;
39597
+
39598
+ case DOCUMENT_TYPE_NODE:
39599
+ if (requireWellFormed) {
39600
+ if (n.publicId && !/^("[\x20\r\na-zA-Z0-9\-()+,.\/:=?;!*#@$_%']*"|'[\x20\r\na-zA-Z0-9\-()+,.\/:=?;!*#@$_%'"]*')$/.test(n.publicId)) {
39601
+ throw new DOMException(INVALID_STATE_ERR, 'DocumentType publicId is not a valid PubidLiteral');
39602
+ }
39603
+ if (n.systemId && !/^("[^"]*"|'[^']*')$/.test(n.systemId)) {
39604
+ throw new DOMException(INVALID_STATE_ERR, 'DocumentType systemId is not a valid SystemLiteral');
39605
+ }
39606
+ if (n.internalSubset && n.internalSubset.indexOf(']>') !== -1) {
39607
+ throw new DOMException(INVALID_STATE_ERR, 'DocumentType internalSubset contains "]>"');
39608
+ }
39609
+ }
39610
+ var pubid = n.publicId;
39611
+ var sysid = n.systemId;
39612
+ buf.push('<!DOCTYPE ', n.name);
39613
+ if (pubid) {
39614
+ buf.push(' PUBLIC ', pubid);
39615
+ if (sysid && sysid != '.') {
39616
+ buf.push(' ', sysid);
39617
+ }
39618
+ buf.push('>');
39619
+ } else if (sysid && sysid != '.') {
39620
+ buf.push(' SYSTEM ', sysid, '>');
39621
+ } else {
39622
+ var sub = n.internalSubset;
39623
+ if (sub) {
39624
+ buf.push(' [', sub, ']');
39625
+ }
39626
+ buf.push('>');
39627
+ }
39628
+ return null;
39629
+
39630
+ case PROCESSING_INSTRUCTION_NODE:
39631
+ if (requireWellFormed && n.data.indexOf('?>') !== -1) {
39632
+ throw new DOMException(INVALID_STATE_ERR, 'The ProcessingInstruction data contains "?>"');
39633
+ }
39634
+ buf.push('<?', n.target, ' ', n.data, '?>');
39635
+ return null;
39636
+
39637
+ case ENTITY_REFERENCE_NODE:
39638
+ buf.push('&', n.nodeName, ';');
39639
+ return null;
39640
+
39641
+ //case ENTITY_NODE:
39642
+ //case NOTATION_NODE:
39643
+ default:
39644
+ buf.push('??', n.nodeName);
39645
+ return null;
39414
39646
  }
39415
- buf.push('>');
39416
- }else if(sysid && sysid!='.'){
39417
- buf.push(' SYSTEM ', sysid, '>');
39418
- }else {
39419
- var sub = node.internalSubset;
39420
- if(sub){
39421
- buf.push(" [",sub,"]");
39647
+ },
39648
+ exit: function (n, childCtx) {
39649
+ if (childCtx && childCtx.tag) {
39650
+ buf.push('</', childCtx.tag, '>');
39422
39651
  }
39423
- buf.push(">");
39424
- }
39425
- return;
39426
- case PROCESSING_INSTRUCTION_NODE:
39427
- return buf.push( "<?",node.target," ",node.data,"?>");
39428
- case ENTITY_REFERENCE_NODE:
39429
- return buf.push( '&',node.nodeName,';');
39430
- //case ENTITY_NODE:
39431
- //case NOTATION_NODE:
39432
- default:
39433
- buf.push('??',node.nodeName);
39434
- }
39652
+ },
39653
+ });
39435
39654
  }
39436
- function importNode(doc,node,deep){
39437
- var node2;
39438
- switch (node.nodeType) {
39439
- case ELEMENT_NODE:
39440
- node2 = node.cloneNode(false);
39441
- node2.ownerDocument = doc;
39442
- //var attrs = node2.attributes;
39443
- //var len = attrs.length;
39444
- //for(var i=0;i<len;i++){
39445
- //node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));
39446
- //}
39447
- case DOCUMENT_FRAGMENT_NODE:
39448
- break;
39449
- case ATTRIBUTE_NODE:
39450
- deep = true;
39451
- break;
39452
- //case ENTITY_REFERENCE_NODE:
39453
- //case PROCESSING_INSTRUCTION_NODE:
39454
- ////case TEXT_NODE:
39455
- //case CDATA_SECTION_NODE:
39456
- //case COMMENT_NODE:
39457
- // deep = false;
39458
- // break;
39459
- //case DOCUMENT_NODE:
39460
- //case DOCUMENT_TYPE_NODE:
39461
- //cannot be imported.
39462
- //case ENTITY_NODE:
39463
- //case NOTATION_NODE:
39464
- //can not hit in level3
39465
- //default:throw e;
39466
- }
39467
- if(!node2){
39468
- node2 = node.cloneNode(false);//false
39469
- }
39470
- node2.ownerDocument = doc;
39471
- node2.parentNode = null;
39472
- if(deep){
39473
- var child = node.firstChild;
39474
- while(child){
39475
- node2.appendChild(importNode(doc,child,deep));
39476
- child = child.nextSibling;
39477
- }
39478
- }
39479
- return node2;
39655
+ /**
39656
+ * Imports a node from a different document into `doc`, creating a new copy.
39657
+ * Delegates to {@link walkDOM} for traversal. Each node in the subtree is shallow-cloned,
39658
+ * stamped with `doc` as its `ownerDocument`, and detached (`parentNode` set to `null`).
39659
+ * Children are imported recursively when `deep` is `true`; for {@link Attr} nodes `deep` is
39660
+ * always forced to `true`
39661
+ * because an attribute's value lives in a child text node.
39662
+ *
39663
+ * @param {Document} doc
39664
+ * The document that will own the imported node.
39665
+ * @param {Node} node
39666
+ * The node to import.
39667
+ * @param {boolean} deep
39668
+ * If `true`, descendants are imported recursively.
39669
+ * @returns {Node}
39670
+ * The newly imported node, now owned by `doc`.
39671
+ */
39672
+ function importNode(doc, node, deep) {
39673
+ var destRoot;
39674
+ walkDOM(node, null, {
39675
+ enter: function (srcNode, destParent) {
39676
+ // Shallow-clone the node and stamp it into the target document.
39677
+ var destNode = srcNode.cloneNode(false);
39678
+ destNode.ownerDocument = doc;
39679
+ destNode.parentNode = null;
39680
+ // capture as the root of the imported subtree or attach to parent.
39681
+ if (destParent === null) {
39682
+ destRoot = destNode;
39683
+ } else {
39684
+ destParent.appendChild(destNode);
39685
+ }
39686
+ // ATTRIBUTE_NODE must always be imported deeply: its value lives in a child text node.
39687
+ var shouldDeep = srcNode.nodeType === ATTRIBUTE_NODE || deep;
39688
+ return shouldDeep ? destNode : null;
39689
+ },
39690
+ });
39691
+ return destRoot;
39480
39692
  }
39481
39693
  //
39482
39694
  //var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,
39483
39695
  // attributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};
39484
- function cloneNode(doc,node,deep){
39485
- var node2 = new node.constructor();
39486
- for (var n in node) {
39487
- if (Object.prototype.hasOwnProperty.call(node, n)) {
39488
- var v = node[n];
39489
- if (typeof v != "object") {
39490
- if (v != node2[n]) {
39491
- node2[n] = v;
39696
+ function cloneNode(doc, node, deep) {
39697
+ var destRoot;
39698
+ walkDOM(node, null, {
39699
+ enter: function (srcNode, destParent) {
39700
+ // 1. Create a blank node of the same type and copy all scalar own properties.
39701
+ var destNode = new srcNode.constructor();
39702
+ for (var n in srcNode) {
39703
+ if (Object.prototype.hasOwnProperty.call(srcNode, n)) {
39704
+ var v = srcNode[n];
39705
+ if (typeof v != 'object') {
39706
+ if (v != destNode[n]) {
39707
+ destNode[n] = v;
39708
+ }
39709
+ }
39492
39710
  }
39493
39711
  }
39494
- }
39495
- }
39496
- if(node.childNodes){
39497
- node2.childNodes = new NodeList();
39498
- }
39499
- node2.ownerDocument = doc;
39500
- switch (node2.nodeType) {
39501
- case ELEMENT_NODE:
39502
- var attrs = node.attributes;
39503
- var attrs2 = node2.attributes = new NamedNodeMap();
39504
- var len = attrs.length;
39505
- attrs2._ownerElement = node2;
39506
- for(var i=0;i<len;i++){
39507
- node2.setAttributeNode(cloneNode(doc,attrs.item(i),true));
39508
- }
39509
- break; case ATTRIBUTE_NODE:
39510
- deep = true;
39511
- }
39512
- if(deep){
39513
- var child = node.firstChild;
39514
- while(child){
39515
- node2.appendChild(cloneNode(doc,child,deep));
39516
- child = child.nextSibling;
39517
- }
39518
- }
39519
- return node2;
39712
+ if (srcNode.childNodes) {
39713
+ destNode.childNodes = new NodeList();
39714
+ }
39715
+ destNode.ownerDocument = doc;
39716
+ // 2. Handle node-type-specific setup.
39717
+ // Attributes are not DOM children, so they are cloned inline here
39718
+ // rather than by walkDOM descent.
39719
+ // ATTRIBUTE_NODE forces deep=true so its own children are walked.
39720
+ var shouldDeep = deep;
39721
+ switch (destNode.nodeType) {
39722
+ case ELEMENT_NODE:
39723
+ var attrs = srcNode.attributes;
39724
+ var attrs2 = (destNode.attributes = new NamedNodeMap());
39725
+ var len = attrs.length;
39726
+ attrs2._ownerElement = destNode;
39727
+ for (var i = 0; i < len; i++) {
39728
+ destNode.setAttributeNode(cloneNode(doc, attrs.item(i), true));
39729
+ }
39730
+ break;
39731
+ case ATTRIBUTE_NODE:
39732
+ shouldDeep = true;
39733
+ }
39734
+ // 3. Attach to parent, or capture as the root of the cloned subtree.
39735
+ if (destParent !== null) {
39736
+ destParent.appendChild(destNode);
39737
+ } else {
39738
+ destRoot = destNode;
39739
+ }
39740
+ // 4. Return destNode as the context for children (causes walkDOM to descend),
39741
+ // or null to skip children (shallow clone).
39742
+ return shouldDeep ? destNode : null;
39743
+ },
39744
+ });
39745
+ return destRoot;
39520
39746
  }
39521
39747
 
39522
39748
  function __set__(object,key,value){
@@ -39532,49 +39758,55 @@ function requireDom () {
39532
39758
  }
39533
39759
  });
39534
39760
 
39535
- Object.defineProperty(Node.prototype,'textContent',{
39536
- get:function(){
39537
- return getTextContent(this);
39761
+ /**
39762
+ * The text content of this node and its descendants.
39763
+ *
39764
+ * Setting `textContent` on an element or document fragment replaces all child nodes with a
39765
+ * single text node; on other nodes it sets `data`, `value`, and `nodeValue` directly.
39766
+ *
39767
+ * @type {string | null}
39768
+ * @see {@link https://dom.spec.whatwg.org/#dom-node-textcontent}
39769
+ */
39770
+ Object.defineProperty(Node.prototype, 'textContent', {
39771
+ get: function () {
39772
+ if (this.nodeType === ELEMENT_NODE || this.nodeType === DOCUMENT_FRAGMENT_NODE) {
39773
+ var buf = [];
39774
+ walkDOM(this, null, {
39775
+ enter: function (n) {
39776
+ if (n.nodeType === ELEMENT_NODE || n.nodeType === DOCUMENT_FRAGMENT_NODE) {
39777
+ return true; // enter children
39778
+ }
39779
+ if (n.nodeType === PROCESSING_INSTRUCTION_NODE || n.nodeType === COMMENT_NODE) {
39780
+ return null; // excluded from text content
39781
+ }
39782
+ buf.push(n.nodeValue);
39783
+ },
39784
+ });
39785
+ return buf.join('');
39786
+ }
39787
+ return this.nodeValue;
39538
39788
  },
39539
39789
 
39540
- set:function(data){
39541
- switch(this.nodeType){
39542
- case ELEMENT_NODE:
39543
- case DOCUMENT_FRAGMENT_NODE:
39544
- while(this.firstChild){
39545
- this.removeChild(this.firstChild);
39546
- }
39547
- if(data || String(data)){
39548
- this.appendChild(this.ownerDocument.createTextNode(data));
39549
- }
39550
- break;
39790
+ set: function (data) {
39791
+ switch (this.nodeType) {
39792
+ case ELEMENT_NODE:
39793
+ case DOCUMENT_FRAGMENT_NODE:
39794
+ while (this.firstChild) {
39795
+ this.removeChild(this.firstChild);
39796
+ }
39797
+ if (data || String(data)) {
39798
+ this.appendChild(this.ownerDocument.createTextNode(data));
39799
+ }
39800
+ break;
39551
39801
 
39552
- default:
39553
- this.data = data;
39554
- this.value = data;
39555
- this.nodeValue = data;
39802
+ default:
39803
+ this.data = data;
39804
+ this.value = data;
39805
+ this.nodeValue = data;
39556
39806
  }
39557
- }
39807
+ },
39558
39808
  });
39559
39809
 
39560
- function getTextContent(node){
39561
- switch(node.nodeType){
39562
- case ELEMENT_NODE:
39563
- case DOCUMENT_FRAGMENT_NODE:
39564
- var buf = [];
39565
- node = node.firstChild;
39566
- while(node){
39567
- if(node.nodeType!==7 && node.nodeType !==8){
39568
- buf.push(getTextContent(node));
39569
- }
39570
- node = node.nextSibling;
39571
- }
39572
- return buf.join('');
39573
- default:
39574
- return node.nodeValue;
39575
- }
39576
- }
39577
-
39578
39810
  __set__ = function(object,key,value){
39579
39811
  //console.log(value)
39580
39812
  object['$$'+key] = value;
@@ -39590,6 +39822,7 @@ function requireDom () {
39590
39822
  dom.Element = Element;
39591
39823
  dom.Node = Node;
39592
39824
  dom.NodeList = NodeList;
39825
+ dom.walkDOM = walkDOM;
39593
39826
  dom.XMLSerializer = XMLSerializer;
39594
39827
  //}
39595
39828
  return dom;
@@ -42380,7 +42613,7 @@ function requireSax () {
42380
42613
  function parseInstruction(source,start,domBuilder){
42381
42614
  var end = source.indexOf('?>',start);
42382
42615
  if(end){
42383
- var match = source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);
42616
+ var match = source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)$/);
42384
42617
  if(match){
42385
42618
  match[0].length;
42386
42619
  domBuilder.processingInstruction(match[1], match[2]) ;
@@ -49267,7 +49500,7 @@ function requireMomentTimezone () {
49267
49500
  hasRequiredMomentTimezone = 1;
49268
49501
  (function (module) {
49269
49502
  //! moment-timezone.js
49270
- //! version : 0.6.0
49503
+ //! version : 0.6.2
49271
49504
  //! Copyright (c) JS Foundation and other contributors
49272
49505
  //! license : MIT
49273
49506
  //! github.com/moment/moment-timezone
@@ -49293,7 +49526,7 @@ function requireMomentTimezone () {
49293
49526
  // return moment;
49294
49527
  // }
49295
49528
 
49296
- var VERSION = "0.6.0",
49529
+ var VERSION = "0.6.2",
49297
49530
  zones = {},
49298
49531
  links = {},
49299
49532
  countries = {},