diff --git a/packages/monster/source/dom/attributes.js b/packages/monster/source/dom/attributes.js index caf1c9821bca95f601b52e4a602aa3eb902a6efc..dbd667442bafd65a444be5dd81f251c912a919cd 100644 --- a/packages/monster/source/dom/attributes.js +++ b/packages/monster/source/dom/attributes.js @@ -4,9 +4,40 @@ * @author schukai GmbH */ +import {isSymbol} from "../../test/web/tests.js"; import {Monster} from '../namespace.js'; import {TokenList} from "../types/tokenlist.js"; -import {validateInstance, validateString} from "../types/validate.js"; +import {validateInstance, validatePrimitive, validateString} from "../types/validate.js"; +import {ATTRIBUTE_OBJECTLINK} from "./constants.js"; + + +function addObjectLink(element, symbol, object) { + + if (element?.[symbol] === undefined) { + element[symbol] = new Set; + } + + addAttributeToken(ATTRIBUTE_OBJECTLINK, symbol.toString()); + element[symbol].add(object); + return element; + +} + +function removeObjectLink(element, symbol) { + + validateInstance(element, HTMLElement); + validatePrimitive(symbol) + validateString(key) + + if (this.element?.[symbol] === undefined) { + return element + } + + removeAttributeToken(ATTRIBUTE_OBJECTLINK, symbol.toString()); + delete this.element[symbol]; + return element; + +} /** diff --git a/packages/monster/source/dom/constants.js b/packages/monster/source/dom/constants.js index 9121fecf6df3184c0d1be036f32d11746529a67e..891ac5b23b9b63686dff9d81f8f071edfabea4a3 100644 --- a/packages/monster/source/dom/constants.js +++ b/packages/monster/source/dom/constants.js @@ -88,7 +88,7 @@ const ATTRIBUTE_UPDATER_BIND = ATTRIBUTE_PREFIX + 'bind'; * @type {string} * @since 1.9.0 */ -const ATTRIBUTE_UPDATER_HASSYMBOL = ATTRIBUTE_PREFIX + 'hassymbol'; +const ATTRIBUTE_OBJECTLINK = ATTRIBUTE_PREFIX + 'objectlink'; export { @@ -104,5 +104,5 @@ export { ATTRIBUTE_UPDATER_INSERT_REFERENCE, ATTRIBUTE_UPDATER_REMOVE, ATTRIBUTE_UPDATER_BIND, - ATTRIBUTE_UPDATER_HASSYMBOL + ATTRIBUTE_OBJECTLINK } \ No newline at end of file diff --git a/packages/monster/source/dom/updater.js b/packages/monster/source/dom/updater.js index 05f9a7f1ff945194d4d290b783346e122c83b964..d2ccb0553410f428e02938c1186394591fcb2567 100644 --- a/packages/monster/source/dom/updater.js +++ b/packages/monster/source/dom/updater.js @@ -18,6 +18,7 @@ import { ATTRIBUTE_UPDATER_BIND, ATTRIBUTE_UPDATER_HASSYMBOL } from "../dom/constants.js"; +import {addAttributeToken, removeAttributeToken} from "./attributes.js"; import {getDocument} from "./util.js"; /** @@ -107,13 +108,7 @@ class Updater extends Base { */ this.element = validateInstance(element, HTMLElement); - - if (this.element?.[symbol] === undefined) { - this.element[symbol] = new Set; - } - - this.element[symbol].add(this); - this.element.setAttribute(ATTRIBUTE_UPDATER_HASSYMBOL,symbol.toString()); + addReference.call(this); if (subject === undefined) subject = {} if (!isInstance(subject, ProxyObserver)) { @@ -221,6 +216,7 @@ class Updater extends Base { } + /** * @private * @param event diff --git a/packages/monster/source/types/is.js b/packages/monster/source/types/is.js index a1c2fb954210269b6f3986ce2239dc2f63442e8f..fba62de227d3c0ef6857c6f21a57b1024ce3ac74 100644 --- a/packages/monster/source/types/is.js +++ b/packages/monster/source/types/is.js @@ -89,6 +89,39 @@ function isPrimitive(value) { return false; } +/** + * Checks whether the value passed is a symbol + * + * You can call the method via the monster namespace `Monster.Types.isSymbol()`. + * + * ``` + * <script type="module"> + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; + * console.log(Monster.Types.isSymbol('2')) // ↦ false + * console.log(Monster.Types.isSymbol(Symbol('test')) // ↦ true + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {isSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; + * console.log(isSymbol(Symbol('a'))) // ↦ true + * console.log(isSymbol([]) // ↦ false + * </script> + * ``` + * + * @param {*} value + * @returns {boolean} + * @since 1.9.0 + * @copyright schukai GmbH + * @memberOf Monster/Types + */ +function isSymbol(value) { + return ('symbol' === typeof value) ? true : false; +} + /** * Checks whether the value passed is a boolean * @@ -362,5 +395,17 @@ function isInteger(value) { } -Monster.assignToNamespace('Monster.Types', isPrimitive, isBoolean, isString, isObject, isArray, isFunction, isIterable, isInteger); -export {Monster, isPrimitive, isBoolean, isString, isObject, isInstance, isArray, isFunction, isIterable, isInteger} +Monster.assignToNamespace('Monster.Types', isPrimitive, isBoolean, isString, isObject, isArray, isFunction, isIterable, isInteger, isSymbol); +export { + Monster, + isPrimitive, + isBoolean, + isString, + isObject, + isInstance, + isArray, + isFunction, + isIterable, + isInteger, + isSymbol +} diff --git a/packages/monster/source/types/validate.js b/packages/monster/source/types/validate.js index 28efae13a761f25fd287ad7c2ba5485b1791ec33..08b555d13fcbcb202a1ff10e1e8382e81bd3a5c1 100644 --- a/packages/monster/source/types/validate.js +++ b/packages/monster/source/types/validate.js @@ -14,7 +14,8 @@ import { isFunction, isIterable, isInstance, - isInteger + isInteger, + isSymbol } from './is.js'; /** @@ -26,7 +27,7 @@ import { * <script type="module"> * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateIterable('2')) // ↦ TypeError - * console.log(Monster.Types.validateIterable([])) // ↦ undefined + * console.log(Monster.Types.validateIterable([])) // ↦ value * </script> * ``` * @@ -36,7 +37,7 @@ import { * <script type="module"> * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateIterable('2')) // ↦ TypeError - * console.log(validateIterable([])) // ↦ undefined + * console.log(validateIterable([])) // ↦ value * </script> * ``` * @@ -65,7 +66,7 @@ function validateIterable(value) { * ``` * <script type="module"> * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(Monster.Types.validatePrimitive('2')) // ↦ undefined + * console.log(Monster.Types.validatePrimitive('2')) // ↦ value * console.log(Monster.Types.validatePrimitive([])) // ↦ TypeError * </script> * ``` @@ -75,7 +76,7 @@ function validateIterable(value) { * ``` * <script type="module"> * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(validatePrimitive('2')) // ↦ undefined + * console.log(validatePrimitive('2')) // ↦ value * console.log(validatePrimitive([])) // ↦ TypeError * </script> * ``` @@ -105,7 +106,7 @@ function validatePrimitive(value) { * ``` * <script type="module"> * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(Monster.Types.validateBoolean(true)) // ↦ undefined + * console.log(Monster.Types.validateBoolean(true)) // ↦ value * console.log(Monster.Types.validateBoolean('2')) // ↦ TypeError * console.log(Monster.Types.validateBoolean([])) // ↦ TypeError * </script> @@ -116,7 +117,7 @@ function validatePrimitive(value) { * ``` * <script type="module"> * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(validateBoolean(false)) // ↦ undefined + * console.log(validateBoolean(false)) // ↦ value * console.log(validateBoolean('2')) // ↦ TypeError * console.log(validateBoolean([])) // ↦ TypeError * </script> @@ -145,7 +146,7 @@ function validateBoolean(value) { * ``` * <script type="module"> * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(Monster.Types.validateString('2')) // ↦ undefined + * console.log(Monster.Types.validateString('2')) // ↦ value * console.log(Monster.Types.validateString([])) // ↦ TypeError * </script> * ``` @@ -155,7 +156,7 @@ function validateBoolean(value) { * ``` * <script type="module"> * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(validateString('2')) // ↦ undefined + * console.log(validateString('2')) // ↦ value * console.log(validateString([])) // ↦ TypeError * </script> * ``` @@ -183,7 +184,7 @@ function validateString(value) { * ``` * <script type="module"> * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(Monster.Types.validateObject({})) // ↦ undefined + * console.log(Monster.Types.validateObject({})) // ↦ value * console.log(Monster.Types.validateObject('2')) // ↦ TypeError * console.log(Monster.Types.validateObject([])) // ↦ TypeError * </script> @@ -194,7 +195,7 @@ function validateString(value) { * ``` * <script type="module"> * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(validateObject({})) // ↦ undefined + * console.log(validateObject({})) // ↦ value * console.log(validateObject('2')) // ↦ TypeError * console.log(validateObject([])) // ↦ TypeError * </script> @@ -222,7 +223,7 @@ function validateObject(value) { * ``` * <script type="module"> * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(Monster.Types.validateInstance({}, Object)) // ↦ undefined + * console.log(Monster.Types.validateInstance({}, Object)) // ↦ value * console.log(Monster.Types.validateInstance('2', Object)) // ↦ TypeError * console.log(Monster.Types.validateInstance([], Object)) // ↦ TypeError * </script> @@ -233,7 +234,7 @@ function validateObject(value) { * ``` * <script type="module"> * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(validateInstance({}, Object)) // ↦ undefined + * console.log(validateInstance({}, Object)) // ↦ value * console.log(validateInstance('2', Object)) // ↦ TypeError * console.log(validateInstance([], Object)) // ↦ TypeError * </script> @@ -271,7 +272,7 @@ function validateInstance(value, instance) { * <script type="module"> * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateArray('2')) // ↦ TypeError - * console.log(Monster.Types.validateArray([])) // ↦ undefined + * console.log(Monster.Types.validateArray([])) // ↦ value * </script> * ``` * @@ -281,7 +282,7 @@ function validateInstance(value, instance) { * <script type="module"> * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateArray('2')) // ↦ TypeError - * console.log(validateArray([])) // ↦ undefined + * console.log(validateArray([])) // ↦ value * </script> * ``` * @@ -299,6 +300,43 @@ function validateArray(value) { return value } +/** + * This method checks if the type matches the symbol type. this function is identical to isSymbol() except that a TypeError is thrown. + * + * You can call the method via the monster namespace `Monster.Types.validateSymbol()`. + * + * ``` + * <script type="module"> + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; + * console.log(Monster.Types.validateSymbol('2')) // ↦ TypeError + * console.log(Monster.Types.validateSymbol([])) // ↦ value + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {validateSymbol} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; + * console.log(validateSymbol('2')) // ↦ TypeError + * console.log(validateSymbol()) // ↦ value + * </script> + * ``` + * + * @param {*} value + * @return {*} + * @since 1.9.0 + * @copyright schukai GmbH + * @memberOf Monster/Types + * @throws {TypeError} value is not an symbol + */ +function validateSymbol(value) { + if (!isSymbol(value)) { + throw new TypeError('value is not an symbol') + } + return value +} + /** * This method checks if the type matches the function type. this function is identical to isFunction() except that a TypeError is thrown. * @@ -307,7 +345,7 @@ function validateArray(value) { * ``` * <script type="module"> * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(Monster.Types.validateFunction(()=>{})) // ↦ undefined + * console.log(Monster.Types.validateFunction(()=>{})) // ↦ value * console.log(Monster.Types.validateFunction('2')) // ↦ TypeError * console.log(Monster.Types.validateFunction([])) // ↦ TypeError * </script> @@ -318,7 +356,7 @@ function validateArray(value) { * ``` * <script type="module"> * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; - * console.log(validateFunction(()=>{})) // ↦ undefined + * console.log(validateFunction(()=>{})) // ↦ value * console.log(validateFunction('2')) // ↦ TypeError * console.log(validateFunction([])) // ↦ TypeError * </script> @@ -348,7 +386,7 @@ function validateFunction(value) { * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateInteger(true)) // ↦ TypeError * console.log(Monster.Types.validateInteger('2')) // ↦ TypeError - * console.log(Monster.Types.validateInteger(2)) // ↦ undefined + * console.log(Monster.Types.validateInteger(2)) // ↦ value * </script> * ``` * @@ -359,7 +397,7 @@ function validateFunction(value) { * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateInteger(true)) // ↦ TypeError * console.log(validateInteger('2')) // ↦ TypeError - * console.log(validateInteger(2)) // ↦ undefined + * console.log(validateInteger(2)) // ↦ value * </script> * ``` * @@ -388,5 +426,6 @@ export { validateArray, validateFunction, validateIterable, - validateInteger + validateInteger, + validateSymbol } diff --git a/packages/monster/test/cases/types/is.js b/packages/monster/test/cases/types/is.js index 3e544a891db146776c82e1cf1b4db902b8f9259d..a973e23a382672bbaaa05666012b2bc24a1dcdca 100644 --- a/packages/monster/test/cases/types/is.js +++ b/packages/monster/test/cases/types/is.js @@ -8,7 +8,8 @@ import { isInstance, isFunction, isIterable, - isInteger + isInteger, + isSymbol } from "../../../source/types/is.js"; @@ -50,6 +51,34 @@ describe('Is', function () { }); + }); + describe('.isSymbol()', function () { + + [ + ['test1', false], + [undefined, false], + [null, false], + [() => { + }, false], + [2, false], + [parseInt("a"), false], + [false, false], + [true, false], + [4.5, false], + [{}, false], + [[1, 2, 3], false], + [Symbol("foo"), true], + ].forEach(function (data) { + + let a = data.shift() + let b = data.shift() + + it('is.isSymbol(' + typeof a + ') should return ' + b, function () { + expect(isSymbol(a)).is.equal(b) + }); + }); + + }); describe('.isInteger()', function () { diff --git a/packages/monster/test/cases/types/validate.js b/packages/monster/test/cases/types/validate.js index 2422c3a22947681c252ebb9e17b7333f7a8d127d..74c91c1b55eba17dde4bc8ac7f3d84940a8c1dcc 100644 --- a/packages/monster/test/cases/types/validate.js +++ b/packages/monster/test/cases/types/validate.js @@ -8,7 +8,8 @@ import { validateFunction, validateInteger, validateInstance, - validateIterable + validateIterable, + validateSymbol } from "../../../source/types/validate.js" import {Base} from "../../../source/types/base.js" @@ -90,6 +91,43 @@ describe('validate', function () { }); + }); + + describe('.validateSymbol()', function () { + + [ + ['test1', false], + [undefined, false], + [null, false], + [() => { + }, false], + [2, false], + [false, false], + [true, false], + [4.5, false], + [{}, false], + [[1, 2, 3], false], + [Symbol("foo"), true], + ].forEach(function (data) { + + let a = data.shift() + let b = data.shift() + + if (b === false) { + + it('.validateSymbol(' + typeof a + ') should throw TypeException ' + b, function () { + expect(() => validateSymbol(a)).to.throw(TypeError); + }); + + } else { + it('.validateSymbol(' + typeof a + ') should not throw TypeException ' + b, function () { + expect(validateSymbol(a)).to.be.equal(a); + }); + } + + }); + + }); describe('.validateIterable()', function () { diff --git a/packages/monster/test/web/import.js b/packages/monster/test/web/import.js index a24d22b8775aca1fc8b04a496abaf9c44feb0064..583dfd8d49bb8214b5dc764160a6b727a8d78b02 100644 --- a/packages/monster/test/web/import.js +++ b/packages/monster/test/web/import.js @@ -5,6 +5,7 @@ import "../cases/logging/handler.js"; import "../cases/logging/logentry.js"; import "../cases/dom/handle.js"; import "../cases/dom/updater.js"; +import "../cases/dom/attributes.js"; import "../cases/dom/template.js"; import "../cases/dom/util.js"; import "../cases/dom/assembler.js"; diff --git a/packages/monster/test/web/tests.js b/packages/monster/test/web/tests.js index 4952a7a1bd1562205aa7a070c202b2c3962e89ed..1889df4ac969c44bed7d8fc86f17c5aaa112f3af 100644 --- a/packages/monster/test/web/tests.js +++ b/packages/monster/test/web/tests.js @@ -4802,7 +4802,7 @@ Object.defineProperty(exports, 'CryptoKey', { exports.Crypto = Crypto; }).call(this)}).call(this,require("buffer").Buffer) -},{"@peculiar/asn1-schema":36,"@peculiar/json-schema":45,"buffer":128,"crypto":173,"process":1212,"pvtsutils":989,"tslib":1059,"webcrypto-core":1078}],47:[function(require,module,exports){ +},{"@peculiar/asn1-schema":36,"@peculiar/json-schema":45,"buffer":128,"crypto":173,"process":1214,"pvtsutils":989,"tslib":1059,"webcrypto-core":1078}],47:[function(require,module,exports){ "use strict"; function noop() { } function once(emitter, name) { @@ -220990,7 +220990,7 @@ exports.AbstractConstraint = AbstractConstraint; _namespace.Monster.assignToNamespace('Monster.Constraints', AbstractConstraint); -},{"../namespace.js":1151,"../types/base.js":1152,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1127:[function(require,module,exports){ +},{"../namespace.js":1152,"../types/base.js":1153,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1127:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -221105,7 +221105,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/andoperator.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/andoperator.js'; * new Monster.Constraint.AndOperator(); * </script> * ``` @@ -221114,16 +221114,16 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/andoperator.js'; + * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/andoperator.js'; * new AndOperator(); * </script> * ``` * * @example * - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/valid.js'; - * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/invalid.js'; - * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/andoperator.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/valid.js'; + * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/invalid.js'; + * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/andoperator.js'; * * new AndOperator( * new Valid(), new Valid()).isValid() @@ -221213,7 +221213,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/invalid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/invalid.js'; * new Monster.Constraint.Invalid(); * </script> * ``` @@ -221222,14 +221222,14 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/invalid.js'; + * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/invalid.js'; * new Invalid(); * </script> * ``` * * @example * - * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/invalid.js'; + * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/invalid.js'; * * new Invalid().isValid() * .then(()=>console.log(true)) @@ -221312,7 +221312,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/isarray.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/isarray.js'; * console.log(new Monster.Constraint.IsArray()) * </script> * ``` @@ -221321,14 +221321,14 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/isarray.js'; + * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/isarray.js'; * console.log(new IsArray()) * </script> * ``` * * @example * - * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/isarray.js'; + * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/isarray.js'; * * new IsArray() * .isValid([]) @@ -221378,7 +221378,7 @@ exports.IsArray = IsArray; _abstract.Monster.assignToNamespace('Monster.Constraints', IsArray); -},{"../types/is.js":1155,"./abstract.js":1126,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1131:[function(require,module,exports){ +},{"../types/is.js":1156,"./abstract.js":1126,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1131:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -221420,7 +221420,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/isobject.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/isobject.js'; * console.log(new Monster.Constraint.IsObject()) * </script> * ``` @@ -221429,14 +221429,14 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/isobject.js'; + * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/isobject.js'; * console.log(new IsObject()) * </script> * ``` * * @example * - * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/isobject.js'; + * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/isobject.js'; * * new IsObject() * .isValid({}) @@ -221487,7 +221487,7 @@ exports.IsObject = IsObject; _abstract.Monster.assignToNamespace('Monster.Constraints', IsObject); -},{"../types/is.js":1155,"./abstract.js":1126,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1132:[function(require,module,exports){ +},{"../types/is.js":1156,"./abstract.js":1126,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1132:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -221527,7 +221527,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraint/oroperator.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraint/oroperator.js'; * new Monster.Constraint.OrOperator(); * </script> * ``` @@ -221536,16 +221536,16 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraint/oroperator.js'; + * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraint/oroperator.js'; * new OrOperator(); * </script> * ``` * * @example * - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/valid.js'; - * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/invalid.js'; - * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/oroperator.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/valid.js'; + * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/invalid.js'; + * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/oroperator.js'; * * new OrOperator( * new Valid(), new Invalid()).isValid() @@ -221658,7 +221658,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/valid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/valid.js'; * new Monster.Constraint.Valid(); * </script> * ``` @@ -221667,14 +221667,14 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/valid.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/valid.js'; * new Valid(); * </script> * ``` * * @example * - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/constraints/valid.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/constraints/valid.js'; * * new Valid().isValid() * .then(()=>console.log(true)) @@ -221762,7 +221762,7 @@ function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(re, groups) { return * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/buildmap.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/buildmap.js'; * console.log(Monster.Data.buildMap()) * </script> * ``` @@ -221771,7 +221771,7 @@ function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(re, groups) { return * * ``` * <script type="module"> - * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/buildmap.js'; + * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/buildmap.js'; * console.log(buildMap()) * </script> * ``` @@ -221911,7 +221911,7 @@ function build(subject, definition, defaultValue) { _namespace.Monster.assignToNamespace('Monster.Data', buildMap); -},{"../namespace.js":1151,"../types/is.js":1155,"../types/validate.js":1165,"./pathfinder.js":1136,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/setPrototypeOf":20,"@babel/runtime/helpers/toConsumableArray":23,"@babel/runtime/helpers/typeof":24}],1135:[function(require,module,exports){ +},{"../namespace.js":1152,"../types/is.js":1156,"../types/validate.js":1166,"./pathfinder.js":1136,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/setPrototypeOf":20,"@babel/runtime/helpers/toConsumableArray":23,"@babel/runtime/helpers/typeof":24}],1135:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -221943,7 +221943,7 @@ var _is = require("../types/is.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/diff.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/diff.js'; * console.log(Monster.Data.Diff(a, b)) * </script> * ``` @@ -221952,14 +221952,14 @@ var _is = require("../types/is.js"); * * ``` * <script type="module"> - * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/diff.js'; + * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/diff.js'; * console.log(Diff(a, b)) * </script> * ``` * * @example * - * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/diff.js'; + * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/diff.js'; * * // given are two objects x and y. * @@ -222175,7 +222175,7 @@ function getOperator(a, b) { _is.Monster.assignToNamespace('Monster.Data', Diff); -},{"../types/is.js":1155,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24}],1136:[function(require,module,exports){ +},{"../types/is.js":1156,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24}],1136:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -222242,7 +222242,7 @@ var WILDCARD = '*'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/pathfinder.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/pathfinder.js'; * console.log(new Monster.Data.Pathfinder()) * </script> * ``` @@ -222251,7 +222251,7 @@ var WILDCARD = '*'; * * ``` * <script type="module"> - * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/pathfinder.js'; + * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/pathfinder.js'; * console.log(new Pathfinder()) * </script> * ``` @@ -222293,7 +222293,7 @@ var WILDCARD = '*'; * * @example * - * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/pathfinder.js'; + * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/pathfinder.js'; * * let value = new Pathfinder({ * a: { @@ -222319,7 +222319,7 @@ var WILDCARD = '*'; * * @example * - * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/pathfinder.js'; + * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/pathfinder.js'; * * let p = new Pathfinder({ * a: { @@ -222663,7 +222663,7 @@ function deleteValueViaPath(object, path) { return; } -},{"../namespace.js":1151,"../types/base.js":1152,"../types/is.js":1155,"../types/stack.js":1161,"../types/validate.js":1165,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/slicedToArray":21,"@babel/runtime/helpers/toConsumableArray":23,"@babel/runtime/helpers/typeof":24}],1137:[function(require,module,exports){ +},{"../namespace.js":1152,"../types/base.js":1153,"../types/is.js":1156,"../types/stack.js":1162,"../types/validate.js":1166,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/slicedToArray":21,"@babel/runtime/helpers/toConsumableArray":23,"@babel/runtime/helpers/typeof":24}],1137:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -222714,7 +222714,7 @@ var DELIMITER = '|'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/pipe.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/pipe.js'; * console.log(new Monster.Data.Pipe()) * </script> * ``` @@ -222723,7 +222723,7 @@ var DELIMITER = '|'; * * ``` * <script type="module"> - * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/pipe.js'; + * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/pipe.js'; * console.log(new Pipe()) * </script> * ``` @@ -222734,7 +222734,7 @@ var DELIMITER = '|'; * the word is then converted to uppercase letters and a prefix Hello is added. the two backslash safe the space char. * * @example - * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/pipe.js'; + * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/pipe.js'; * * let obj = { * a: { @@ -222821,7 +222821,7 @@ exports.Pipe = Pipe; _namespace.Monster.assignToNamespace('Monster.Data', Pipe); -},{"../namespace.js":1151,"../types/base.js":1152,"../types/validate.js":1165,"./transformer.js":1138,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/slicedToArray":21}],1138:[function(require,module,exports){ +},{"../namespace.js":1152,"../types/base.js":1153,"../types/validate.js":1166,"./transformer.js":1138,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/slicedToArray":21}],1138:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -222891,7 +222891,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/transformer.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/transformer.js'; * console.log(new Monster.Data.Transformer()) * </script> * ``` @@ -222900,7 +222900,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/transformer.js'; + * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/transformer.js'; * console.log(new Transformer()) * </script> * ``` @@ -222977,7 +222977,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * @example * - * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/data/transformer.js'; + * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/data/transformer.js'; * * const transformer = new Transformer("tolower") * @@ -223325,7 +223325,7 @@ function transform(value) { return value; } -},{"../namespace.js":1151,"../types/base.js":1152,"../types/id.js":1154,"../types/is.js":1155,"../types/validate.js":1165,"../util/clone.js":1167,"./pathfinder.js":1136,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/setPrototypeOf":20,"@babel/runtime/helpers/toConsumableArray":23,"@babel/runtime/helpers/typeof":24}],1139:[function(require,module,exports){ +},{"../namespace.js":1152,"../types/base.js":1153,"../types/id.js":1155,"../types/is.js":1156,"../types/validate.js":1166,"../util/clone.js":1168,"./pathfinder.js":1136,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/setPrototypeOf":20,"@babel/runtime/helpers/toConsumableArray":23,"@babel/runtime/helpers/typeof":24}],1139:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -223378,7 +223378,7 @@ var ATTRIBUTEPREFIX = "data-monster-"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/assembler.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/assembler.js'; * console.log(new Monster.DOM.Assembler()) * </script> * ``` @@ -223387,7 +223387,7 @@ var ATTRIBUTEPREFIX = "data-monster-"; * * ``` * <script type="module"> - * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/assembler.js'; + * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/assembler.js'; * console.log(new Assembler()) * </script> * ``` @@ -223471,7 +223471,301 @@ exports.Assembler = Assembler; _base.Monster.assignToNamespace('Monster.DOM', Assembler); -},{"../types/base.js":1152,"../types/global.js":1153,"../types/proxyobserver.js":1158,"../types/validate.js":1165,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1140:[function(require,module,exports){ +},{"../types/base.js":1153,"../types/global.js":1154,"../types/proxyobserver.js":1159,"../types/validate.js":1166,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1140:[function(require,module,exports){ +'use strict'; +/** + * @author schukai GmbH + */ + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.clearAttributeTokens = clearAttributeTokens; +exports.replaceAttributeToken = replaceAttributeToken; +exports.containsAttributeToken = containsAttributeToken; +exports.removeAttributeToken = removeAttributeToken; +exports.addAttributeToken = addAttributeToken; +exports.toggleAttributeToken = toggleAttributeToken; +Object.defineProperty(exports, "Monster", { + enumerable: true, + get: function get() { + return _namespace.Monster; + } +}); + +var _namespace = require("../namespace.js"); + +var _tokenlist = require("../types/tokenlist.js"); + +var _validate = require("../types/validate.js"); + +/** + * With this method tokens in an attribute can be switched on or off. For example, classes can be switched on and off in the elements class attribute. + * + * Tokens are always separated by a space. + * + * You can call the method via the monster namespace `new Monster.DOM.toggleAttributeToken()`. + * + * ``` + * <script type="module"> + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * Monster.DOM.toggleAttributeToken(); + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * toggleAttributeToken(); + * </script> + * ``` + * + * @since 1.9.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + * @param {HTMLElement} element + * @param {string} key + * @param {string} token + * @return {HTMLElement} + */ +function toggleAttributeToken(element, key, token) { + (0, _validate.validateInstance)(element, HTMLElement); + (0, _validate.validateString)(token); + (0, _validate.validateString)(key); + + if (!element.hasAttribute(key)) { + element.setAttribute(key, token); + return element; + } + + element.setAttribute(key, new _tokenlist.TokenList(element.getAttribute(key)).toggle(token).toString()); + return element; +} +/** + * this method can be used to add a token to an attribute. Tokens are always separated by a space. + * + * You can call the method via the monster namespace `new Monster.DOM.addAttributeToken()`. + * + * ``` + * <script type="module"> + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * Monster.DOM.addAttributeToken(); + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * addAttributeToken(); + * </script> + * ``` + * + * @since 1.9.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + * @param {HTMLElement} element + * @param {string} key + * @param {string} token + * @return {HTMLElement} + */ + + +function addAttributeToken(element, key, token) { + (0, _validate.validateInstance)(element, HTMLElement); + (0, _validate.validateString)(token); + (0, _validate.validateString)(key); + + if (!element.hasAttribute(key)) { + element.setAttribute(key, token); + return element; + } + + element.setAttribute(key, new _tokenlist.TokenList(element.getAttribute(key)).add(token).toString()); + return element; +} +/** + * This function can be used to remove tokens from an attribute. + * + * Tokens are always separated by a space. + * + * You can call the method via the monster namespace `new Monster.DOM.removeAttributeToken()`. + * + * ``` + * <script type="module"> + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * Monster.DOM.removeAttributeToken(); + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * removeAttributeToken(); + * </script> + * ``` + * + * @since 1.9.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + * @param {HTMLElement} element + * @param {string} key + * @param {string} token + * @return {HTMLElement} + */ + + +function removeAttributeToken(element, key, token) { + (0, _validate.validateInstance)(element, HTMLElement); + (0, _validate.validateString)(token); + (0, _validate.validateString)(key); + + if (!element.hasAttribute(key)) { + return element; + } + + element.setAttribute(key, new _tokenlist.TokenList(element.getAttribute(key)).remove(token).toString()); + return element; +} +/** + * This method can be used to determine whether an attribute has a token. + * + * Tokens are always separated by a space. + * + * You can call the method via the monster namespace `new Monster.DOM.containsAttributeToken()`. + * + * ``` + * <script type="module"> + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * Monster.DOM.containsAttributeToken(); + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * containsAttributeToken(); + * </script> + * ``` + * + * @since 1.9.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + * @param {HTMLElement} element + * @param {string} key + * @param {string} token + * @return {boolean} + */ + + +function containsAttributeToken(element, key, token) { + (0, _validate.validateInstance)(element, HTMLElement); + (0, _validate.validateString)(token); + (0, _validate.validateString)(key); + + if (!element.hasAttribute(key)) { + return false; + } + + return new _tokenlist.TokenList(element.getAttribute(key)).contains(token); +} +/** + * Tokens are always separated by a space. + * + * You can call the method via the monster namespace `new Monster.DOM.replaceAttributeToken()`. + * + * ``` + * <script type="module"> + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * Monster.DOM.replaceAttributeToken(); + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * replaceAttributeToken(); + * </script> + * ``` + * + * @since 1.9.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + * @param {HTMLElement} element + * @param {string} key + * @param {string} from + * @param {string} to + * @return {HTMLElement} + */ + + +function replaceAttributeToken(element, key, from, to) { + (0, _validate.validateInstance)(element, HTMLElement); + (0, _validate.validateString)(from); + (0, _validate.validateString)(to); + (0, _validate.validateString)(key); + + if (!element.hasAttribute(key)) { + return element; + } + + element.setAttribute(key, new _tokenlist.TokenList(element.getAttribute(key)).replace(from, to).toString()); + return element; +} +/** + * Tokens are always separated by a space. + * + * You can call the method via the monster namespace `new Monster.DOM.clearAttributeTokens()`. + * + * ``` + * <script type="module"> + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * Monster.DOM.clearAttributeTokens(); + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/attributes.js'; + * clearAttributeTokens(); + * </script> + * ``` + * + * @since 1.9.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + * @param {HTMLElement} element + * @param {string} key + * @return {HTMLElement} + */ + + +function clearAttributeTokens(element, key) { + (0, _validate.validateInstance)(element, HTMLElement); + (0, _validate.validateString)(key); + + if (!element.hasAttribute(key)) { + return element; + } + + element.setAttribute(key, ""); + return element; +} + +_namespace.Monster.assignToNamespace('Monster.DOM', clearAttributeTokens, replaceAttributeToken, containsAttributeToken, removeAttributeToken, addAttributeToken, toggleAttributeToken); + +},{"../namespace.js":1152,"../types/tokenlist.js":1163,"../types/validate.js":1166}],1141:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -223483,7 +223777,7 @@ Object.defineProperty(exports, "Monster", { return _namespace.Monster; } }); -exports.ATTRIBUTE_UPDATER_REMOVE = exports.ATTRIBUTE_UPDATER_INSERT_REFERENCE = exports.ATTRIBUTE_UPDATER_INSERT = exports.ATTRIBUTE_UPDATER_REPLACE = exports.ATTRIBUTE_UPDATER_ATTRIBUTES = exports.ATTRIBUTE_THEME_NAME = exports.ATTRIBUTE_THEME_PREFIX = exports.DEFAULT_THEME = exports.ATTRIBUTE_OPTIONS = exports.ATTRIBUTE_PREFIX = void 0; +exports.ATTRIBUTE_UPDATER_HASSYMBOL = exports.ATTRIBUTE_UPDATER_BIND = exports.ATTRIBUTE_UPDATER_REMOVE = exports.ATTRIBUTE_UPDATER_INSERT_REFERENCE = exports.ATTRIBUTE_UPDATER_INSERT = exports.ATTRIBUTE_UPDATER_REPLACE = exports.ATTRIBUTE_UPDATER_ATTRIBUTES = exports.ATTRIBUTE_THEME_NAME = exports.ATTRIBUTE_THEME_PREFIX = exports.DEFAULT_THEME = exports.ATTRIBUTE_OPTIONS = exports.ATTRIBUTE_PREFIX = void 0; var _namespace = require("../namespace.js"); @@ -223568,9 +223862,25 @@ var ATTRIBUTE_UPDATER_INSERT_REFERENCE = ATTRIBUTE_PREFIX + 'insert-reference'; exports.ATTRIBUTE_UPDATER_INSERT_REFERENCE = ATTRIBUTE_UPDATER_INSERT_REFERENCE; var ATTRIBUTE_UPDATER_REMOVE = ATTRIBUTE_PREFIX + 'remove'; +/** + * @memberOf Monster/DOM + * @type {string} + * @since 1.9.0 + */ + exports.ATTRIBUTE_UPDATER_REMOVE = ATTRIBUTE_UPDATER_REMOVE; +var ATTRIBUTE_UPDATER_BIND = ATTRIBUTE_PREFIX + 'bind'; +/** + * @memberOf Monster/DOM + * @type {string} + * @since 1.9.0 + */ + +exports.ATTRIBUTE_UPDATER_BIND = ATTRIBUTE_UPDATER_BIND; +var ATTRIBUTE_UPDATER_HASSYMBOL = ATTRIBUTE_PREFIX + 'hassymbol'; +exports.ATTRIBUTE_UPDATER_HASSYMBOL = ATTRIBUTE_UPDATER_HASSYMBOL; -},{"../namespace.js":1151}],1141:[function(require,module,exports){ +},{"../namespace.js":1152}],1142:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -223626,7 +223936,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/customelement.js'; + * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/customelement.js'; * console.log(new Monster.DOM.CustomElement()) * </script> * ``` @@ -223635,7 +223945,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/customelement.js'; + * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/customelement.js'; * console.log(new CustomElement()) * </script> * ``` @@ -223958,7 +224268,7 @@ function registerCustomElement(element) { _validate.Monster.assignToNamespace('Monster.DOM', CustomElement, registerCustomElement); -},{"../types/global.js":1153,"../types/validate.js":1165,"./constants.js":1140,"./template.js":1143,"@babel/runtime/helpers/assertThisInitialized":4,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/wrapNativeSuper":26}],1142:[function(require,module,exports){ +},{"../types/global.js":1154,"../types/validate.js":1166,"./constants.js":1141,"./template.js":1144,"@babel/runtime/helpers/assertThisInitialized":4,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/wrapNativeSuper":26}],1143:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -224028,7 +224338,7 @@ var MONSTERDOMHANDLE = Symbol('MonsterHandle'); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/handle.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/handle.js'; * console.log(new Monster.DOM.Handle()) * </script> * ``` @@ -224037,7 +224347,7 @@ var MONSTERDOMHANDLE = Symbol('MonsterHandle'); * * ``` * <script type="module"> - * import {Handle} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/handle.js'; + * import {Handle} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/handle.js'; * console.log(new Handle()) * </script> * ``` @@ -224202,7 +224512,7 @@ function createMutationObserver() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/handle.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/handle.js'; * console.log(Monster.DOM.getHandleFromNode()) * </script> * ``` @@ -224211,7 +224521,7 @@ function createMutationObserver() { * * ``` * <script type="module"> - * import {getHandleFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/handle.js'; + * import {getHandleFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/handle.js'; * console.log(getHandleFromNode()) * </script> * ``` @@ -224244,7 +224554,7 @@ function getHandleFromNode(node) { _base.Monster.assignToNamespace('Monster.DOM', getHandleFromNode, Handle); -},{"../types/base.js":1152,"../types/global.js":1153,"../types/id.js":1154,"../types/is.js":1155,"../types/observer.js":1156,"../types/proxyobserver.js":1158,"../types/stack.js":1161,"../types/validate.js":1165,"./assembler.js":1139,"@babel/runtime/helpers/assertThisInitialized":4,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1143:[function(require,module,exports){ +},{"../types/base.js":1153,"../types/global.js":1154,"../types/id.js":1155,"../types/is.js":1156,"../types/observer.js":1157,"../types/proxyobserver.js":1159,"../types/stack.js":1162,"../types/validate.js":1166,"./assembler.js":1139,"@babel/runtime/helpers/assertThisInitialized":4,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1144:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -224291,7 +224601,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/template.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/template.js'; * console.log(new Monster.DOM.Template()) * </script> * ``` @@ -224300,7 +224610,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/template.js'; + * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/template.js'; * console.log(new Template()) * </script> * ``` @@ -224363,7 +224673,7 @@ var Template = /*#__PURE__*/function (_Base) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/template.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/template.js'; * console.log(Monster.DOM.findDocumentTemplate()) * </script> * ``` @@ -224372,7 +224682,7 @@ var Template = /*#__PURE__*/function (_Base) { * * ``` * <script type="module"> - * import {findTemplate} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/template.js'; + * import {findTemplate} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/template.js'; * console.log(findDocumentTemplate()) * </script> * ``` @@ -224412,7 +224722,7 @@ function findDocumentTemplate(id) { _base.Monster.assignToNamespace('Monster.DOM', Template, findDocumentTemplate); -},{"../types/base.js":1152,"../types/global.js":1153,"../types/validate.js":1165,"./theme.js":1144,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1144:[function(require,module,exports){ +},{"../types/base.js":1153,"../types/global.js":1154,"../types/validate.js":1166,"./theme.js":1145,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1145:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -224459,7 +224769,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/theme.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/theme.js'; * console.log(new Monster.DOM.Theme()) * </script> * ``` @@ -224468,14 +224778,14 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Theme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/theme.js'; + * import {Theme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/theme.js'; * console.log(new Theme()) * </script> * ``` * * @example * - * import {getDocumentTheme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/theme.js'; + * import {getDocumentTheme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/theme.js'; * * const theme = getDocumentTheme(); * console.log(theme.getName()); @@ -224555,7 +224865,7 @@ function getDocumentTheme() { _base.Monster.assignToNamespace('Monster.DOM', Theme, getDocumentTheme); -},{"../types/base.js":1152,"../types/global.js":1153,"../types/validate.js":1165,"./constants.js":1140,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1145:[function(require,module,exports){ +},{"../types/base.js":1153,"../types/global.js":1154,"../types/validate.js":1166,"./constants.js":1141,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1146:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -224585,6 +224895,8 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); +var _pathfinder = require("../data/pathfinder.js"); + var _pipe = require("../data/pipe.js"); var _base = require("../types/base.js"); @@ -224620,11 +224932,20 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re */ /** + * @private + * @type {Symbol} + */ +var symbol = Symbol('monster-updater'); +/** + * The updater class connects an object with the dom. in this way, structures and contents in the DOM can be programmatically adapted via attributes. + * + * For example, to include a string from an object, the attribute `data-monster-replace` can be used. + * * you can call the method via the monster namespace `new Monster.DOM.Updater()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/updater.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/updater.js'; * console.log(new Monster.DOM.Updater()) * </script> * ``` @@ -224633,14 +224954,36 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/updater.js'; + * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/updater.js'; * console.log(new Updater()) * </script> * ``` - * + * * @example - * - * + * + * import {Updater} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/updater.js'; + * + * // First we prepare the html document. + * // This is done here via script, but can also be inserted into the document as pure html. + * // To do this, simply insert the tag <h1 data-monster-replace="path:headline"></h1>. + * const body = document.querySelector('body'); + * const headline = document.createElement('h1'); + * headline.setAttribute('data-monster-replace','path:headline') + * body.appendChild(headline); + * + * // the data structure + * let obj = { + * headline: "Hello World", + * }; + * + * // Now comes the real magic. we pass the updater the parent HTMLElement + * // and the desired data structure. + * const updater = new Updater(body, obj); + * updater.run(); + * + * // Now you can change the data structure and the HTML will follow these changes. + * const subject = updater.getSubject(); + * subject['headline'] = "Hello World!" * * @since 1.8.0 * @copyright schukai GmbH @@ -224648,7 +224991,11 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * @throws {Error} the value is not iterable * @throws {Error} pipes are not allowed when cloning a node. * @throws {Error} no template was found with the specified key. + * @throws {Error} the maximum depth for the recursion is reached. + * @throws {TypeError} value is not a object + * @throws {TypeError} value is not an instance of HTMLElement */ + var Updater = /*#__PURE__*/function (_Base) { (0, _inherits2["default"])(Updater, _Base); @@ -224657,9 +225004,13 @@ var Updater = /*#__PURE__*/function (_Base) { /** * @since 1.8.0 * @param {HTMLElement} element - * @param {object|ProxyObserver} subject + * @param {object|ProxyObserver|undefined} subject + * @throws {TypeError} value is not a object + * @throws {TypeError} value is not an instance of HTMLElement */ function Updater(element, subject) { + var _this$element; + var _this; (0, _classCallCheck2["default"])(this, Updater); @@ -224670,6 +225021,16 @@ var Updater = /*#__PURE__*/function (_Base) { _this.element = (0, _validate.validateInstance)(element, HTMLElement); + if (((_this$element = _this.element) === null || _this$element === void 0 ? void 0 : _this$element[symbol]) === undefined) { + _this.element[symbol] = new Set(); + } + + _this.element[symbol].add((0, _assertThisInitialized2["default"])(_this)); + + _this.element.setAttribute(_constants.ATTRIBUTE_UPDATER_HASSYMBOL, symbol.toString()); + + if (subject === undefined) subject = {}; + if (!(0, _is.isInstance)(subject, _proxyobserver.ProxyObserver)) { subject = new _proxyobserver.ProxyObserver(subject); } @@ -224696,21 +225057,87 @@ var Updater = /*#__PURE__*/function (_Base) { updateAttributes.call((0, _assertThisInitialized2["default"])(_this), change); } })); + _this.eventTypes = ['keyup', 'click']; return _this; } /** - * - * @return {Promise} + * + * @since 1.9.0 + * @return {Updater} */ (0, _createClass2["default"])(Updater, [{ + key: "enableEventProcessing", + value: function enableEventProcessing() { + this.disableEventProcessing(); + var pathfinder = new _pathfinder.Pathfinder(this.subject.getSubject()); + + var _iterator = _createForOfIteratorHelper(this.eventTypes), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var type = _step.value; + this.element.addEventListener(type, controlEventHandler); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return this; + } + /** + * + * @since 1.9.0 + * @return {Updater} + */ + + }, { + key: "disableEventProcessing", + value: function disableEventProcessing() { + var _iterator2 = _createForOfIteratorHelper(this.eventTypes), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var type = _step2.value; + this.element.removeEventListener(type, controlEventHandler); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + + return this; + } + /** + * Let the magic begin + * + * The run method must be called for the update to start working. + * + * @return {Promise} + */ + + }, { key: "run", value: function run() { - this.last = {}; + // the key __init__has no further meaning and is only + // used to create the diff for empty objects. + this.last = { + '__init__': true + }; return this.subject.notifyObservers(); } /** + * If you have passed a ProxyObserver in the constructor, you will get the same object here. + * However, if you have passed a simple object, you will get the ProxyObserver here. + * + * For changes the ProxyObserver must be used. + * * @since 1.8.0 * @return {ProxyObserver} */ @@ -224721,6 +225148,8 @@ var Updater = /*#__PURE__*/function (_Base) { return this.subject.getSubject(); } /** + * This method can be used to register commands that can be called via call: instruction. + * This can be used to provide a pipe with its own functionality. * * @param {string} name * @param {function} callback @@ -224738,6 +225167,26 @@ var Updater = /*#__PURE__*/function (_Base) { }]); return Updater; }(_base.Base); +/** + * @private + * @param event + */ + + +exports.Updater = Updater; + +function controlEventHandler(event) { + var element = event.target; + + if (element.hasAttribute(_constants.ATTRIBUTE_UPDATER_BIND)) { + var value = element.getAttribute(_constants.ATTRIBUTE_UPDATER_BIND); + console.log(value); + console.log(element[symbol]); + element[symbol].forEach(function (a, b) { + console.log(a, b); + }); + } +} /** * @private * @since 1.8.0 @@ -224746,23 +225195,21 @@ var Updater = /*#__PURE__*/function (_Base) { */ -exports.Updater = Updater; - function removeElement(change) { - var _iterator = _createForOfIteratorHelper(this.element.querySelectorAll(':scope [' + _constants.ATTRIBUTE_UPDATER_REMOVE + ']').entries()), - _step; + var _iterator3 = _createForOfIteratorHelper(this.element.querySelectorAll(':scope [' + _constants.ATTRIBUTE_UPDATER_REMOVE + ']').entries()), + _step3; try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _step$value = (0, _slicedToArray2["default"])(_step.value, 2), - element = _step$value[1]; + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var _step3$value = (0, _slicedToArray2["default"])(_step3.value, 2), + element = _step3$value[1]; element.parentNode.removeChild(element); } } catch (err) { - _iterator.e(err); + _iterator3.e(err); } finally { - _iterator.f(); + _iterator3.f(); } return this; @@ -224775,6 +225222,7 @@ function removeElement(change) { * @throws {Error} the value is not iterable * @throws {Error} pipes are not allowed when cloning a node. * @throws {Error} no template was found with the specified key. + * @throws {Error} the maximum depth for the recursion is reached. */ @@ -224784,96 +225232,110 @@ function insertElement(change) { var self = this; var subject = self.subject.getRealSubject(); var document = (0, _util.getDocument)(); - var p = (0, _clone.clone)(change === null || change === void 0 ? void 0 : change['path']); - if (!(0, _is.isArray)(p)) return this; var mem = new WeakSet(); + var wd = 0; + + while (true) { + var found = false; + wd++; + var p = (0, _clone.clone)(change === null || change === void 0 ? void 0 : change['path']); + if (!(0, _is.isArray)(p)) return this; - while (p.length > 0) { - var current = p.join('.'); + while (p.length > 0) { + var current = p.join('.'); + var list = this.element.querySelectorAll(':scope [' + _constants.ATTRIBUTE_UPDATER_INSERT + '*="path:' + current + '"]').entries(); - var _iterator2 = _createForOfIteratorHelper(this.element.querySelectorAll(':scope [' + _constants.ATTRIBUTE_UPDATER_INSERT + '*="path:' + current + '"]').entries()), - _step2; + var _iterator4 = _createForOfIteratorHelper(list), + _step4; - try { - var _loop = function _loop() { - var _step2$value = (0, _slicedToArray2["default"])(_step2.value, 2), - containerElement = _step2$value[1]; + try { + var _loop = function _loop() { + var _step4$value = (0, _slicedToArray2["default"])(_step4.value, 2), + containerElement = _step4$value[1]; - if (mem.has(containerElement)) return "continue"; - mem.add(containerElement); - var attributes = containerElement.getAttribute(_constants.ATTRIBUTE_UPDATER_INSERT); - var def = attributes.trim(); - var i = def.indexOf(' '); - var key = def.substr(0, i).trim(); - var refPrefix = key + '-'; - var cmd = def.substr(i).trim(); + if (mem.has(containerElement)) return "continue"; + mem.add(containerElement); + found = true; + var attributes = containerElement.getAttribute(_constants.ATTRIBUTE_UPDATER_INSERT); + var def = attributes.trim(); + var i = def.indexOf(' '); + var key = def.substr(0, i).trim(); + var refPrefix = key + '-'; + var cmd = def.substr(i).trim(); - if (cmd.indexOf('|') > 0) { - throw new Error("pipes are not allowed when cloning a node."); - } + if (cmd.indexOf('|') > 0) { + throw new Error("pipes are not allowed when cloning a node."); + } - var pipe = new _pipe.Pipe(cmd); + var pipe = new _pipe.Pipe(cmd); - _this2.callbacks.forEach(function (f, n) { - pipe.setCallback(n, f); - }); + _this2.callbacks.forEach(function (f, n) { + pipe.setCallback(n, f); + }); - var value = pipe.run(subject); - var dataPath = cmd.split(':').pop(); - var insertPoint = void 0; + var value = pipe.run(subject); + var dataPath = cmd.split(':').pop(); + var insertPoint = void 0; - if (containerElement.hasChildNodes()) { - insertPoint = containerElement.lastChild; - } + if (containerElement.hasChildNodes()) { + insertPoint = containerElement.lastChild; + } - if (!(0, _is.isArray)(value)) { - throw new Error('the value is not iterable'); - } + if (!(0, _is.isArray)(value)) { + throw new Error('the value is not iterable'); + } - var available = new Set(); + var available = new Set(); - for (var _i2 = 0, _Object$entries2 = Object.entries(value); _i2 < _Object$entries2.length; _i2++) { - var _Object$entries2$_i = (0, _slicedToArray2["default"])(_Object$entries2[_i2], 2), - _i3 = _Object$entries2$_i[0], - obj = _Object$entries2$_i[1]; + for (var _i2 = 0, _Object$entries2 = Object.entries(value); _i2 < _Object$entries2.length; _i2++) { + var _Object$entries2$_i = (0, _slicedToArray2["default"])(_Object$entries2[_i2], 2), + _i3 = _Object$entries2$_i[0], + obj = _Object$entries2$_i[1]; - var ref = refPrefix + _i3; - var currentPath = dataPath + "." + _i3; - available.add(ref); - var refElement = containerElement.querySelector('[' + _constants.ATTRIBUTE_UPDATER_INSERT_REFERENCE + '="' + ref + '"]'); + var ref = refPrefix + _i3; + var currentPath = dataPath + "." + _i3; + available.add(ref); + var refElement = containerElement.querySelector('[' + _constants.ATTRIBUTE_UPDATER_INSERT_REFERENCE + '="' + ref + '"]'); - if (refElement instanceof HTMLElement) { - insertPoint = refElement; - continue; - } + if (refElement instanceof HTMLElement) { + insertPoint = refElement; + continue; + } - appendNewDocumentFragment(containerElement, key, ref, currentPath); - } + appendNewDocumentFragment(containerElement, key, ref, currentPath); + } - var nodes = containerElement.querySelectorAll('[' + _constants.ATTRIBUTE_UPDATER_INSERT_REFERENCE + '*="' + refPrefix + '"]'); + var nodes = containerElement.querySelectorAll('[' + _constants.ATTRIBUTE_UPDATER_INSERT_REFERENCE + '*="' + refPrefix + '"]'); - for (var _i4 = 0, _Object$entries3 = Object.entries(nodes); _i4 < _Object$entries3.length; _i4++) { - var _Object$entries3$_i = (0, _slicedToArray2["default"])(_Object$entries3[_i4], 2), - node = _Object$entries3$_i[1]; + for (var _i4 = 0, _Object$entries3 = Object.entries(nodes); _i4 < _Object$entries3.length; _i4++) { + var _Object$entries3$_i = (0, _slicedToArray2["default"])(_Object$entries3[_i4], 2), + node = _Object$entries3$_i[1]; - if (!available.has(node.getAttribute(_constants.ATTRIBUTE_UPDATER_INSERT_REFERENCE))) { - containerElement.removeChild(node); + if (!available.has(node.getAttribute(_constants.ATTRIBUTE_UPDATER_INSERT_REFERENCE))) { + containerElement.removeChild(node); + } } - } - }; + }; - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var _ret = _loop(); + for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { + var _ret = _loop(); - if (_ret === "continue") continue; + if (_ret === "continue") continue; + } + } catch (err) { + _iterator4.e(err); + } finally { + _iterator4.f(); } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); + + p.pop(); } - p.pop(); + if (found === false) break; + + if (wd++ > 200) { + throw new Error('the maximum depth for the recursion is reached.'); + } } } /** @@ -224903,8 +225365,11 @@ function appendNewDocumentFragment(container, key, ref, path) { if (node instanceof HTMLElement) { node.setAttribute(_constants.ATTRIBUTE_UPDATER_INSERT_REFERENCE, ref); - var value = node.getAttribute(_constants.ATTRIBUTE_UPDATER_REPLACE); - node.setAttribute(_constants.ATTRIBUTE_UPDATER_REPLACE, value.replace("path:" + key, "path:" + path)); + + if (node.hasAttribute(_constants.ATTRIBUTE_UPDATER_REPLACE)) { + var value = node.getAttribute(_constants.ATTRIBUTE_UPDATER_REPLACE); + node.setAttribute(_constants.ATTRIBUTE_UPDATER_REPLACE, value.replace("path:" + key, "path:" + path)); + } } container.appendChild(node); @@ -224926,7 +225391,6 @@ function updateContent(change) { return this; } /** - * * @private * @since 1.8.0 * @param {HTMLElement} container @@ -224945,15 +225409,15 @@ function runUpdateContent(container, parts, subject) { while (parts.length > 0) { var current = parts.join('.'); - parts.pop(); + parts.pop(); // Unfortunately, static data is always changed as well, since it is not possible to react to changes here. - var _iterator3 = _createForOfIteratorHelper(container.querySelectorAll(':scope [' + _constants.ATTRIBUTE_UPDATER_REPLACE + '^="path:' + current + '"]').entries()), - _step3; + var _iterator5 = _createForOfIteratorHelper(container.querySelectorAll(':scope [' + _constants.ATTRIBUTE_UPDATER_REPLACE + '^="path:' + current + '"], [' + _constants.ATTRIBUTE_UPDATER_REPLACE + '^="static:"]').entries()), + _step5; try { var _loop2 = function _loop2() { - var _step3$value = (0, _slicedToArray2["default"])(_step3.value, 2), - element = _step3$value[1]; + var _step5$value = (0, _slicedToArray2["default"])(_step5.value, 2), + element = _step5$value[1]; if (mem.has(element)) return "continue"; mem.add(element); @@ -224978,15 +225442,15 @@ function runUpdateContent(container, parts, subject) { } }; - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { var _ret2 = _loop2(); if (_ret2 === "continue") continue; } } catch (err) { - _iterator3.e(err); + _iterator5.e(err); } finally { - _iterator3.f(); + _iterator5.f(); } } } @@ -225024,13 +225488,13 @@ function runUpdateAttributes(container, parts, subject) { var current = parts.join('.'); parts.pop(); - var _iterator4 = _createForOfIteratorHelper(container.querySelectorAll(':scope [' + _constants.ATTRIBUTE_UPDATER_ATTRIBUTES + '*="path:' + current + '"]').entries()), - _step4; + var _iterator6 = _createForOfIteratorHelper(container.querySelectorAll(':scope [' + _constants.ATTRIBUTE_UPDATER_ATTRIBUTES + '*="path:' + current + '"]').entries()), + _step6; try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var _step4$value = (0, _slicedToArray2["default"])(_step4.value, 2), - element = _step4$value[1]; + for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { + var _step6$value = (0, _slicedToArray2["default"])(_step6.value, 2), + element = _step6$value[1]; if (mem.has(element)) continue; mem.add(element); @@ -225052,16 +225516,16 @@ function runUpdateAttributes(container, parts, subject) { } } } catch (err) { - _iterator4.e(err); + _iterator6.e(err); } finally { - _iterator4.f(); + _iterator6.f(); } } } _base.Monster.assignToNamespace('Monster.DOM', Updater); -},{"../data/diff.js":1135,"../data/pipe.js":1137,"../dom/constants.js":1140,"../types/base.js":1152,"../types/is.js":1155,"../types/observer.js":1156,"../types/proxyobserver.js":1158,"../types/validate.js":1165,"../util/clone.js":1167,"./util.js":1146,"@babel/runtime/helpers/assertThisInitialized":4,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/slicedToArray":21}],1146:[function(require,module,exports){ +},{"../data/diff.js":1135,"../data/pathfinder.js":1136,"../data/pipe.js":1137,"../dom/constants.js":1141,"../types/base.js":1153,"../types/is.js":1156,"../types/observer.js":1157,"../types/proxyobserver.js":1159,"../types/validate.js":1166,"../util/clone.js":1168,"./util.js":1147,"@babel/runtime/helpers/assertThisInitialized":4,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/slicedToArray":21}],1147:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -225093,7 +225557,7 @@ var _validate = require("../types/validate.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getDocument()) * </script> * ``` @@ -225102,7 +225566,7 @@ var _validate = require("../types/validate.js"); * * ``` * <script type="module"> - * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/util.js'; + * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/util.js'; * console.log(getDocument()) * </script> * ``` @@ -225156,7 +225620,7 @@ function getDocument() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getWindow()) * </script> * ``` @@ -225165,7 +225629,7 @@ function getDocument() { * * ``` * <script type="module"> - * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/util.js'; + * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/util.js'; * console.log(getWindow(null)) * </script> * ``` @@ -225225,7 +225689,7 @@ function getWindow() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getDocumentFragmentFromString()) * </script> * ``` @@ -225234,7 +225698,7 @@ function getWindow() { * * ``` * <script type="module"> - * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/dom/util.js'; + * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/dom/util.js'; * console.log(getDocumentFragmentFromString('<div></div>')) * </script> * ``` @@ -225285,7 +225749,7 @@ function getDocumentFragmentFromString(html) { _global.Monster.assignToNamespace('Monster.DOM', getWindow, getDocument, getDocumentFragmentFromString); -},{"../types/global.js":1153,"../types/validate.js":1165,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24}],1147:[function(require,module,exports){ +},{"../types/global.js":1154,"../types/validate.js":1166,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24}],1148:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -225333,7 +225797,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/logging/handler.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/logging/handler.js'; * console.log(new Monster.Logging.Handler()) * </script> * ``` @@ -225342,7 +225806,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/logging/handler.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/logging/handler.js'; * console.log(new Handler()) * </script> * ``` @@ -225531,7 +225995,7 @@ exports.Handler = Handler; _namespace.Monster.assignToNamespace('Monster.Logging', Handler); -},{"../namespace.js":1151,"../types/base.js":1152,"../types/validate.js":1165,"./logentry.js":1148,"./logger.js":1149,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1148:[function(require,module,exports){ +},{"../namespace.js":1152,"../types/base.js":1153,"../types/validate.js":1166,"./logentry.js":1149,"./logger.js":1150,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1149:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -225575,7 +226039,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/logging/logentry.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/logging/logentry.js'; * console.log(new Monster.Logging.LogEntry()) * </script> * ``` @@ -225584,7 +226048,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/logging/logentry.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/logging/logentry.js'; * console.log(new LogEntry()) * </script> * ``` @@ -225647,7 +226111,7 @@ exports.LogEntry = LogEntry; _namespace.Monster.assignToNamespace('Monster.Logging', LogEntry); -},{"../namespace.js":1151,"../types/base.js":1152,"../types/validate.js":1165,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1149:[function(require,module,exports){ +},{"../namespace.js":1152,"../types/base.js":1153,"../types/validate.js":1166,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1150:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -225763,7 +226227,7 @@ var OFF = 0; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/logging/logger.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/logging/logger.js'; * console.log(new Monster.Logging.Logger()) * </script> * ``` @@ -225772,7 +226236,7 @@ var OFF = 0; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/logging/logger.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/logging/logger.js'; * console.log(new Logger()) * </script> * ``` @@ -226018,7 +226482,7 @@ function triggerLog(loglevel) { return logger; } -},{"../logging/handler.js":1147,"../logging/logentry.js":1148,"../namespace.js":1151,"../types/base.js":1152,"../types/validate.js":1165,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1150:[function(require,module,exports){ +},{"../logging/handler.js":1148,"../logging/logentry.js":1149,"../namespace.js":1152,"../types/base.js":1153,"../types/validate.js":1166,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1151:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -226044,7 +226508,7 @@ var _global = require("../types/global.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/math/random.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/math/random.js'; * console.log(Monster.Math.random(1,10)) // ↦ 5 * </script> * ``` @@ -226053,7 +226517,7 @@ var _global = require("../types/global.js"); * * ``` * <script type="module"> - * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/math/random.js'; + * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/math/random.js'; * console.log(random(1,10)) // ↦ 5 * </script> * ``` @@ -226145,7 +226609,7 @@ function create(min, max) { _global.Monster.assignToNamespace('Monster.Math', random); -},{"../types/global.js":1153}],1151:[function(require,module,exports){ +},{"../types/global.js":1154}],1152:[function(require,module,exports){ 'use strict'; /** * @namespace Monster @@ -226237,7 +226701,7 @@ assignToNamespace('Monster', assignToNamespace); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/namespace.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/namespace.js'; * function hello() { * console.log('Hello World!'); * } @@ -226327,7 +226791,7 @@ function namespaceFor(parts) { return space; } -},{"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/interopRequireDefault":12}],1152:[function(require,module,exports){ +},{"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/interopRequireDefault":12}],1153:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -226371,7 +226835,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/base.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/base.js'; * console.log(new Monster.Types.Base()) * console.log(new Monster.Types.Base()) * </script> @@ -226381,7 +226845,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Object} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/base.js'; + * import {Object} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/base.js'; * console.log(new Base()) * console.log(new Base()) * </script> @@ -226421,7 +226885,7 @@ exports.Base = Base; _namespace.Monster.assignToNamespace('Monster.Types', Base); -},{"../namespace.js":1151,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/wrapNativeSuper":26}],1153:[function(require,module,exports){ +},{"../namespace.js":1152,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/wrapNativeSuper":26}],1154:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -226494,7 +226958,7 @@ function getGlobal() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/global.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/global.js'; * console.log(Monster.Types.getGlobalObject('document')) // ↦ { } * </script> * ``` @@ -226503,7 +226967,7 @@ function getGlobal() { * * ``` * <script type="module"> - * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/global.js'; + * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/global.js'; * console.log(getGlobalObject('document')) // ↦ { } * </script> * ``` @@ -226534,7 +226998,7 @@ function getGlobalObject(name) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/global.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/global.js'; * console.log(Monster.Types.getGlobalFunction('parseInt')) // ↦ f parseInt() { } * </script> * ``` @@ -226543,7 +227007,7 @@ function getGlobalObject(name) { * * ``` * <script type="module"> - * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/global.js'; + * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/global.js'; * console.log(getGlobalFunction('parseInt')) // ↦ f parseInt() { } * </script> * ``` @@ -226570,7 +227034,7 @@ function getGlobalFunction(name) { _namespace.Monster.assignToNamespace('Monster.Types', getGlobal, getGlobalObject, getGlobalFunction); -},{"../namespace.js":1151,"./validate.js":1165,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24}],1154:[function(require,module,exports){ +},{"../namespace.js":1152,"./validate.js":1166,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24}],1155:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -226623,7 +227087,7 @@ var internalCounter = new Map(); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/id.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/id.js'; * console.log(new Monster.Types.ID()) * </script> * ``` @@ -226632,7 +227096,7 @@ var internalCounter = new Map(); * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/id.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/id.js'; * console.log(new ID()) * </script> * ``` @@ -226691,7 +227155,7 @@ exports.ID = ID; _base.Monster.assignToNamespace('Monster.Types', ID); -},{"./base.js":1152,"./validate.js":1165,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1155:[function(require,module,exports){ +},{"./base.js":1153,"./validate.js":1166,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1156:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -226729,7 +227193,7 @@ var _namespace = require("../namespace.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(Monster.Types.isIterable(null)) // ↦ false * console.log(Monster.Types.isIterable('hello')) // ↦ true * console.log(Monster.Types.isIterable([])) // ↦ true @@ -226740,7 +227204,7 @@ var _namespace = require("../namespace.js"); * * ``` * <script type="module"> - * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(isIterable(null)) // ↦ false * console.log(isIterable('hello')) // ↦ true * console.log(isIterable([])) // ↦ true @@ -226765,7 +227229,7 @@ function isIterable(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(Monster.Types.isPrimitive('2')) // ↦ false * console.log(Monster.Types.isPrimitive([])) // ↦ true * </script> @@ -226775,7 +227239,7 @@ function isIterable(value) { * * ``` * <script type="module"> - * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(isPrimitive('2')) // ↦ true * console.log(isPrimitive([])) // ↦ false * </script> @@ -226811,7 +227275,7 @@ function isPrimitive(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(Monster.Types.isBoolean('2')) // ↦ false * console.log(Monster.Types.isBoolean([])) // ↦ false * console.log(Monster.Types.isBoolean(true)) // ↦ true @@ -226822,7 +227286,7 @@ function isPrimitive(value) { * * ``` * <script type="module"> - * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(isBoolean('2')) // ↦ false * console.log(isBoolean([])) // ↦ false * console.log(isBoolean(2>4)) // ↦ true @@ -226851,7 +227315,7 @@ function isBoolean(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(Monster.Types.isString('2')) // ↦ true * console.log(Monster.Types.isString([])) // ↦ false * </script> @@ -226861,7 +227325,7 @@ function isBoolean(value) { * * ``` * <script type="module"> - * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(isString('2')) // ↦ true * console.log(isString([])) // ↦ false * </script> @@ -226889,7 +227353,7 @@ function isString(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(Monster.Types.isObject('2')) // ↦ false * console.log(Monster.Types.isObject([])) // ↦ false * console.log(Monster.Types.isObject({})) // ↦ true @@ -226900,7 +227364,7 @@ function isString(value) { * * ``` * <script type="module"> - * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(isObject('2')) // ↦ false * console.log(isObject([])) // ↦ false * </script> @@ -226931,7 +227395,7 @@ function isObject(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(Monster.Types.isInstance('2')) // ↦ false * console.log(Monster.Types.isInstance([])) // ↦ false * console.log(Monster.Types.isInstance({})) // ↦ true @@ -226942,7 +227406,7 @@ function isObject(value) { * * ``` * <script type="module"> - * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(isInstance('2')) // ↦ false * console.log(isInstance([])) // ↦ false * </script> @@ -226970,7 +227434,7 @@ function isInstance(value, instance) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(Monster.Types.isArray('2')) // ↦ false * console.log(Monster.Types.isArray([])) // ↦ true * </script> @@ -226980,7 +227444,7 @@ function isInstance(value, instance) { * * ``` * <script type="module"> - * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(isArray('2')) // ↦ false * console.log(isArray([])) // ↦ true * </script> @@ -227008,7 +227472,7 @@ function isArray(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(Monster.Types.isFunction(()=>{})) // ↦ true * console.log(Monster.Types.isFunction('2')) // ↦ false * console.log(Monster.Types.isFunction([])) // ↦ false @@ -227019,7 +227483,7 @@ function isArray(value) { * * ``` * <script type="module"> - * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(isFunction(()=>{})) // ↦ true * console.log(isFunction('2')) // ↦ false * console.log(isFunction([])) // ↦ false @@ -227051,7 +227515,7 @@ function isFunction(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(Monster.Types.isInteger(()=>{})) // ↦ true * console.log(Monster.Types.isInteger('2')) // ↦ false * console.log(Monster.Types.isInteger(2)) // ↦ true @@ -227062,7 +227526,7 @@ function isFunction(value) { * * ``` * <script type="module"> - * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * console.log(isInteger(()=>{})) // ↦ true * console.log(isInteger('2')) // ↦ false * console.log(isInteger(2)) // ↦ true @@ -227083,7 +227547,7 @@ function isInteger(value) { _namespace.Monster.assignToNamespace('Monster.Types', isPrimitive, isBoolean, isString, isObject, isArray, isFunction, isIterable, isInteger); -},{"../namespace.js":1151,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24}],1156:[function(require,module,exports){ +},{"../namespace.js":1152,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24}],1157:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -227133,7 +227597,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/observer.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/observer.js'; * console.log(new Monster.Types.Observer()) * </script> * ``` @@ -227142,7 +227606,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/observer.js'; + * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/observer.js'; * console.log(new Observer()) * </script> * ``` @@ -227176,7 +227640,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * @example * - * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/observer.js'; + * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/observer.js'; * * const observer = new Observer(function(a, b, c) { * console.log(this, a, b, c); // ↦ "a", 2, true @@ -227315,7 +227779,7 @@ exports.Observer = Observer; _namespace.Monster.assignToNamespace('Monster.Types', Observer); -},{"../namespace.js":1151,"./base.js":1152,"./is.js":1155,"./tokenlist.js":1162,"./uniquequeue.js":1164,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1157:[function(require,module,exports){ +},{"../namespace.js":1152,"./base.js":1153,"./is.js":1156,"./tokenlist.js":1163,"./uniquequeue.js":1165,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1158:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -227363,7 +227827,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/observerlist.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/observerlist.js'; * console.log(new Monster.Types.ObserverList()) * console.log(new Monster.Types.ObserverList()) * </script> @@ -227373,7 +227837,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/observerlist.js'; + * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/observerlist.js'; * console.log(ObserverList()) * console.log(ObserverList()) * </script> @@ -227485,7 +227949,7 @@ exports.ObserverList = ObserverList; _namespace.Monster.assignToNamespace('Monster.Types', ObserverList); -},{"../namespace.js":1151,"./base.js":1152,"./observer.js":1156,"./validate.js":1165,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1158:[function(require,module,exports){ +},{"../namespace.js":1152,"./base.js":1153,"./observer.js":1157,"./validate.js":1166,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1159:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -227541,7 +228005,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/proxyobserver.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/proxyobserver.js'; * console.log(new Monster.Types.ProxyObserver()) * </script> * ``` @@ -227550,7 +228014,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/proxyobserver.js'; + * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/proxyobserver.js'; * console.log(new ProxyObserver()) * </script> * ``` @@ -227561,9 +228025,9 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * @example * - * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/proxyobserver.js'; - * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/observer.js'; - * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/is.js'; + * import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/proxyobserver.js'; + * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/observer.js'; + * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/is.js'; * * const o = new Observer(function () { * if (isObject(this) && this instanceof ProxyObserver) { @@ -227779,7 +228243,7 @@ function getHandler() { return handler; } -},{"../namespace.js":1151,"./base.js":1152,"./is.js":1155,"./observer.js":1156,"./observerlist.js":1157,"./validate.js":1165,"@babel/runtime/helpers/assertThisInitialized":4,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/typeof":24}],1159:[function(require,module,exports){ +},{"../namespace.js":1152,"./base.js":1153,"./is.js":1156,"./observer.js":1157,"./observerlist.js":1158,"./validate.js":1166,"@babel/runtime/helpers/assertThisInitialized":4,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/typeof":24}],1160:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -227816,7 +228280,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/queue.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/queue.js'; * console.log(new Monster.Types.Queue()) * </script> * ``` @@ -227825,14 +228289,14 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/queue.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/queue.js'; * console.log(new Queue()) * </script> * ``` * * @example * - * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/queue.js'; + * import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/queue.js'; * * const queue = new Queue; * @@ -227947,7 +228411,7 @@ exports.Queue = Queue; _base.Monster.assignToNamespace('Monster.Types', Queue); -},{"./base.js":1152,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1160:[function(require,module,exports){ +},{"./base.js":1153,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1161:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -227994,7 +228458,7 @@ var internalCounter = 0; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/randomid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/randomid.js'; * console.log(new Monster.Types.RandomID()) * </script> * ``` @@ -228003,7 +228467,7 @@ var internalCounter = 0; * * ``` * <script type="module"> - * import {RandomID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/randomid.js'; + * import {RandomID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/randomid.js'; * console.log(new RandomID()) * </script> * ``` @@ -228040,7 +228504,7 @@ exports.RandomID = RandomID; _id.Monster.assignToNamespace('Monster.Types', RandomID); -},{"../math/random.js":1150,"./global.js":1153,"./id.js":1154,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1161:[function(require,module,exports){ +},{"../math/random.js":1151,"./global.js":1154,"./id.js":1155,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1162:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -228077,7 +228541,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/stack.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/stack.js'; * console.log(new Monster.Types.Stack()) * </script> * ``` @@ -228086,7 +228550,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/stack.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/stack.js'; * console.log(new Stack()) * </script> * ``` @@ -228188,7 +228652,7 @@ exports.Stack = Stack; _base.Monster.assignToNamespace('Monster.Types', Stack); -},{"./base.js":1152,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1162:[function(require,module,exports){ +},{"./base.js":1153,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1163:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -228244,7 +228708,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/tokenlist.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/tokenlist.js'; * console.log(new Monster.Types.TokenList("myclass row")) * console.log(new Monster.Types.TokenList("myclass row")) * </script> @@ -228254,7 +228718,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/tokenlist.js'; + * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/tokenlist.js'; * console.log(new TokenList("myclass row")) * console.log(new TokenList("myclass row")) * </script> @@ -228624,7 +229088,7 @@ function toggleValue(token) { _namespace.Monster.assignToNamespace('Monster.Types', TokenList); -},{"../namespace.js":1151,"../types/is.js":1155,"../types/validate.js":1165,"./base.js":1152,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1163:[function(require,module,exports){ +},{"../namespace.js":1152,"../types/is.js":1156,"../types/validate.js":1166,"./base.js":1153,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1164:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -228650,7 +229114,7 @@ var _namespace = require("../namespace.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/typeof.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/typeof.js'; * console.log(Monster.Types.typeOf()) * </script> * ``` @@ -228659,14 +229123,14 @@ var _namespace = require("../namespace.js"); * * ``` * <script type="module"> - * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/typeof.js'; + * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/typeof.js'; * console.log(typeOf()) * </script> * ``` * * @example * - * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/typeof.js'; + * import {typeOf} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/typeof.js'; * * console.log(typeOf(undefined)); // ↦ undefined * console.log(typeOf("")); // ↦ string @@ -228696,7 +229160,7 @@ function typeOf(value) { _namespace.Monster.assignToNamespace('Monster.Types', typeOf); -},{"../namespace.js":1151}],1164:[function(require,module,exports){ +},{"../namespace.js":1152}],1165:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -228737,7 +229201,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/uniquequeue.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/uniquequeue.js'; * console.log(new Monster.Types.UniqueQueue()) * </script> * ``` @@ -228746,7 +229210,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {UniqueQueue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/uniquequeue.js'; + * import {UniqueQueue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/uniquequeue.js'; * console.log(new UniqueQueue()) * </script> * ``` @@ -228831,7 +229295,7 @@ exports.UniqueQueue = UniqueQueue; _queue.Monster.assignToNamespace('Monster.Types', UniqueQueue); -},{"./queue.js":1159,"./validate.js":1165,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/get":9,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1165:[function(require,module,exports){ +},{"./queue.js":1160,"./validate.js":1166,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/get":9,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1166:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -228867,7 +229331,7 @@ var _is = require("./is.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateIterable('2')) // ↦ TypeError * console.log(Monster.Types.validateIterable([])) // ↦ undefined * </script> @@ -228877,7 +229341,7 @@ var _is = require("./is.js"); * * ``` * <script type="module"> - * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateIterable('2')) // ↦ TypeError * console.log(validateIterable([])) // ↦ undefined * </script> @@ -228907,7 +229371,7 @@ function validateIterable(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validatePrimitive('2')) // ↦ undefined * console.log(Monster.Types.validatePrimitive([])) // ↦ TypeError * </script> @@ -228917,7 +229381,7 @@ function validateIterable(value) { * * ``` * <script type="module"> - * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validatePrimitive('2')) // ↦ undefined * console.log(validatePrimitive([])) // ↦ TypeError * </script> @@ -228949,7 +229413,7 @@ function validatePrimitive(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateBoolean(true)) // ↦ undefined * console.log(Monster.Types.validateBoolean('2')) // ↦ TypeError * console.log(Monster.Types.validateBoolean([])) // ↦ TypeError @@ -228960,7 +229424,7 @@ function validatePrimitive(value) { * * ``` * <script type="module"> - * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateBoolean(false)) // ↦ undefined * console.log(validateBoolean('2')) // ↦ TypeError * console.log(validateBoolean([])) // ↦ TypeError @@ -228991,7 +229455,7 @@ function validateBoolean(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateString('2')) // ↦ undefined * console.log(Monster.Types.validateString([])) // ↦ TypeError * </script> @@ -229001,7 +229465,7 @@ function validateBoolean(value) { * * ``` * <script type="module"> - * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateString('2')) // ↦ undefined * console.log(validateString([])) // ↦ TypeError * </script> @@ -229030,7 +229494,7 @@ function validateString(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateObject({})) // ↦ undefined * console.log(Monster.Types.validateObject('2')) // ↦ TypeError * console.log(Monster.Types.validateObject([])) // ↦ TypeError @@ -229041,7 +229505,7 @@ function validateString(value) { * * ``` * <script type="module"> - * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateObject({})) // ↦ undefined * console.log(validateObject('2')) // ↦ TypeError * console.log(validateObject([])) // ↦ TypeError @@ -229071,7 +229535,7 @@ function validateObject(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateInstance({}, Object)) // ↦ undefined * console.log(Monster.Types.validateInstance('2', Object)) // ↦ TypeError * console.log(Monster.Types.validateInstance([], Object)) // ↦ TypeError @@ -229082,7 +229546,7 @@ function validateObject(value) { * * ``` * <script type="module"> - * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateInstance({}, Object)) // ↦ undefined * console.log(validateInstance('2', Object)) // ↦ TypeError * console.log(validateInstance([], Object)) // ↦ TypeError @@ -229122,7 +229586,7 @@ function validateInstance(value, instance) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateArray('2')) // ↦ TypeError * console.log(Monster.Types.validateArray([])) // ↦ undefined * </script> @@ -229132,7 +229596,7 @@ function validateInstance(value, instance) { * * ``` * <script type="module"> - * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateArray('2')) // ↦ TypeError * console.log(validateArray([])) // ↦ undefined * </script> @@ -229161,7 +229625,7 @@ function validateArray(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateFunction(()=>{})) // ↦ undefined * console.log(Monster.Types.validateFunction('2')) // ↦ TypeError * console.log(Monster.Types.validateFunction([])) // ↦ TypeError @@ -229172,7 +229636,7 @@ function validateArray(value) { * * ``` * <script type="module"> - * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateFunction(()=>{})) // ↦ undefined * console.log(validateFunction('2')) // ↦ TypeError * console.log(validateFunction([])) // ↦ TypeError @@ -229202,7 +229666,7 @@ function validateFunction(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateInteger(true)) // ↦ TypeError * console.log(Monster.Types.validateInteger('2')) // ↦ TypeError * console.log(Monster.Types.validateInteger(2)) // ↦ undefined @@ -229213,7 +229677,7 @@ function validateFunction(value) { * * ``` * <script type="module"> - * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/validate.js'; + * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/validate.js'; * console.log(validateInteger(true)) // ↦ TypeError * console.log(validateInteger('2')) // ↦ TypeError * console.log(validateInteger(2)) // ↦ undefined @@ -229239,7 +229703,7 @@ function validateInteger(value) { _namespace.Monster.assignToNamespace('Monster.Types', validatePrimitive, validateBoolean, validateString, validateObject, validateArray, validateFunction, validateIterable, validateInteger); -},{"../namespace.js":1151,"./is.js":1155}],1166:[function(require,module,exports){ +},{"../namespace.js":1152,"./is.js":1156}],1167:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -229281,7 +229745,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/version.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/version.js'; * console.log(new Monster.Types.Version('1.2.3')) // ↦ 1.2.3 * console.log(new Monster.Types.Version('1')) // ↦ 1.0.0 * </script> @@ -229291,7 +229755,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/version.js'; + * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/version.js'; * console.log(new Version('1.2.3')) // ↦ 1.2.3 * console.log(new Version('1')) // ↦ 1.0.0 * </script> @@ -229299,7 +229763,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * @example * - * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/version.js'; + * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/version.js'; * * new Version('1.0.0') // ↦ 1.0.0 * new Version(1) // ↦ 1.0.0 @@ -229432,7 +229896,7 @@ var monsterVersion; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/version.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/version.js'; * console.log(Monster.getVersion()) * console.log(Monster.getVersion()) * </script> @@ -229442,7 +229906,7 @@ var monsterVersion; * * ``` * <script type="module"> - * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/types/version.js'; + * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/types/version.js'; * console.log(getVersion()) * console.log(getVersion()) * </script> @@ -229462,7 +229926,7 @@ function getVersion() { /**#@+ dont touch, replaced by make with package.json version */ - monsterVersion = new Version('1.8.0'); + monsterVersion = new Version('1.9.0'); /**#@-*/ return monsterVersion; @@ -229470,7 +229934,7 @@ function getVersion() { _namespace.Monster.assignToNamespace('Monster', getVersion); -},{"../namespace.js":1151,"./base.js":1152,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1167:[function(require,module,exports){ +},{"../namespace.js":1152,"./base.js":1153,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19}],1168:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -229510,7 +229974,7 @@ var _global = require("../types/global.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/util/clone.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/util/clone.js'; * console.log(Monster.Util.clone({})) * </script> * ``` @@ -229519,7 +229983,7 @@ var _global = require("../types/global.js"); * * ``` * <script type="module"> - * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/util/clone.js'; + * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/util/clone.js'; * console.log(clone({})) * </script> * ``` @@ -229635,7 +230099,7 @@ function cloneObject(obj) { _namespace.Monster.assignToNamespace('Monster.Util', clone); -},{"../namespace.js":1151,"../types/global.js":1153,"../types/is.js":1155,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24}],1168:[function(require,module,exports){ +},{"../namespace.js":1152,"../types/global.js":1154,"../types/is.js":1156,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24}],1169:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -229679,7 +230143,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/util/comparator.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/util/comparator.js'; * console.log(new Monster.Util.Comparator()) * </script> * ``` @@ -229688,7 +230152,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/util/comparator.js'; + * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/util/comparator.js'; * console.log(new Comparator()) * </script> * ``` @@ -229713,7 +230177,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * @example * - * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.8.0/dist/modules/util/comparator.js'; + * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.9.0/dist/modules/util/comparator.js'; * * console.log(new Comparator().lessThanOrEqual(2, 5)) * // ↦ true @@ -229862,7 +230326,7 @@ exports.Comparator = Comparator; _base.Monster.assignToNamespace('Monster.Util', Comparator); -},{"../types/base.js":1152,"../types/is.js":1155,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/typeof":24}],1169:[function(require,module,exports){ +},{"../types/base.js":1153,"../types/is.js":1156,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/typeof":24}],1170:[function(require,module,exports){ "use strict"; var _valid = require("../../../source/constraints/valid.js"); @@ -229889,7 +230353,7 @@ describe('AndOperator', function () { }); }); -},{"../../../source/constraints/andoperator.js":1128,"../../../source/constraints/invalid.js":1129,"../../../source/constraints/valid.js":1133}],1170:[function(require,module,exports){ +},{"../../../source/constraints/andoperator.js":1128,"../../../source/constraints/invalid.js":1129,"../../../source/constraints/valid.js":1133}],1171:[function(require,module,exports){ "use strict"; var _invalid = require("../../../source/constraints/invalid.js"); @@ -229908,7 +230372,7 @@ describe('Invalid', function () { }); }); -},{"../../../source/constraints/invalid.js":1129,"chai":132}],1171:[function(require,module,exports){ +},{"../../../source/constraints/invalid.js":1129,"chai":132}],1172:[function(require,module,exports){ "use strict"; var _isarray = require("../../../source/constraints/isarray.js"); @@ -229929,7 +230393,7 @@ describe('IsArray', function () { }); }); -},{"../../../source/constraints/isarray.js":1130,"chai":132}],1172:[function(require,module,exports){ +},{"../../../source/constraints/isarray.js":1130,"chai":132}],1173:[function(require,module,exports){ "use strict"; var _isobject = require("../../../source/constraints/isobject.js"); @@ -229950,7 +230414,7 @@ describe('IsObject', function () { }); }); -},{"../../../source/constraints/isobject.js":1131,"chai":132}],1173:[function(require,module,exports){ +},{"../../../source/constraints/isobject.js":1131,"chai":132}],1174:[function(require,module,exports){ "use strict"; var _valid = require("../../../source/constraints/valid.js"); @@ -229977,7 +230441,7 @@ describe('OrOperator', function () { }); }); -},{"../../../source/constraints/invalid.js":1129,"../../../source/constraints/oroperator.js":1132,"../../../source/constraints/valid.js":1133}],1174:[function(require,module,exports){ +},{"../../../source/constraints/invalid.js":1129,"../../../source/constraints/oroperator.js":1132,"../../../source/constraints/valid.js":1133}],1175:[function(require,module,exports){ "use strict"; var _valid = require("../../../source/constraints/valid.js"); @@ -229997,7 +230461,7 @@ describe('Valid', function () { }); }); -},{"../../../source/constraints/valid.js":1133,"chai":132}],1175:[function(require,module,exports){ +},{"../../../source/constraints/valid.js":1133,"chai":132}],1176:[function(require,module,exports){ "use strict"; var _buildmap = require("../../../source/data/buildmap.js"); @@ -230087,7 +230551,7 @@ describe('buildMap', function () { }); }); -},{"../../../source/data/buildmap.js":1134,"chai":132}],1176:[function(require,module,exports){ +},{"../../../source/data/buildmap.js":1134,"chai":132}],1177:[function(require,module,exports){ "use strict"; var _diff = require("../../../source/data/diff.js"); @@ -230168,7 +230632,7 @@ describe('Diff', function () { }); }); -},{"../../../source/data/diff.js":1135,"../../../source/types/queue.js":1159,"chai":132}],1177:[function(require,module,exports){ +},{"../../../source/data/diff.js":1135,"../../../source/types/queue.js":1160,"chai":132}],1178:[function(require,module,exports){ "use strict"; var _pathfinder = require("../../../source/data/pathfinder.js"); @@ -230389,7 +230853,7 @@ describe('Pathfinder', function () { }); }); -},{"../../../source/data/pathfinder.js":1136,"chai":132}],1178:[function(require,module,exports){ +},{"../../../source/data/pathfinder.js":1136,"chai":132}],1179:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -230450,7 +230914,7 @@ describe('Pipe', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/data/pipe.js":1137,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132}],1179:[function(require,module,exports){ +},{"../../../source/data/pipe.js":1137,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132}],1180:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -230560,7 +231024,7 @@ describe('Transformer', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/data/transformer.js":1138,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132,"jsdom":337}],1180:[function(require,module,exports){ +},{"../../../source/data/transformer.js":1138,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132,"jsdom":337}],1181:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -230626,7 +231090,83 @@ describe('Assembler', function () { }); }); -},{"../../../source/dom/assembler.js":1139,"../../util/jsdom.js":1210,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/regenerator":28,"chai":132}],1181:[function(require,module,exports){ +},{"../../../source/dom/assembler.js":1139,"../../util/jsdom.js":1212,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/regenerator":28,"chai":132}],1182:[function(require,module,exports){ +'use strict'; + +var _chai = require("chai"); + +var _attributes = require("../../../source/dom/attributes.js"); + +var _jsdom = require("../../util/jsdom.js"); + +var html1 = "<div id=\"test1\"></div>"; +describe('Attributes', function () { + before(function (done) { + (0, _jsdom.initJSDOM)().then(function () { + done(); + }); + }); + describe('Attributes', function () { + beforeEach(function () { + var mocks = document.getElementById('mocks'); + mocks.innerHTML = html1; + }); + afterEach(function () { + var mocks = document.getElementById('mocks'); + mocks.innerHTML = ""; + }); + var atributeKey = 'data-test'; + it('toggleAttributeToken(element, key, value)', function () { + var element = document.getElementById('test1'); + (0, _chai.expect)(element.hasAttribute(atributeKey)).to.be["false"]; + element.setAttribute(atributeKey, 'apple bananna'); + (0, _attributes.toggleAttributeToken)(element, atributeKey, 'pinapple'); + (0, _chai.expect)(element.getAttribute(atributeKey)).to.be.equal('apple bananna pinapple'); + (0, _attributes.toggleAttributeToken)(element, atributeKey, 'pinapple'); + (0, _chai.expect)(element.getAttribute(atributeKey)).to.be.equal('apple bananna'); + }); + it('addAttributeToken(element, key, value)', function () { + var element = document.getElementById('test1'); + (0, _chai.expect)(element.hasAttribute(atributeKey)).to.be["false"]; + (0, _attributes.addAttributeToken)(element, atributeKey, 'pinapple'); + (0, _chai.expect)(element.getAttribute(atributeKey)).to.be.equal('pinapple'); + (0, _attributes.addAttributeToken)(element, atributeKey, 'bananna'); + (0, _chai.expect)(element.getAttribute(atributeKey)).to.be.equal('pinapple bananna'); + }); + it('removeAttributeToken(element, key, value)', function () { + var element = document.getElementById('test1'); + element.setAttribute(atributeKey, 'apple bananna lemmon'); + (0, _attributes.removeAttributeToken)(element, atributeKey, 'pinapple'); + (0, _chai.expect)(element.getAttribute(atributeKey)).to.be.equal('apple bananna lemmon'); + (0, _attributes.removeAttributeToken)(element, atributeKey, 'bananna'); + (0, _chai.expect)(element.getAttribute(atributeKey)).to.be.equal('apple lemmon'); + }); + it('containsAttributeToken(element, key, value)', function () { + var element = document.getElementById('test1'); + (0, _chai.expect)((0, _attributes.containsAttributeToken)(element, atributeKey, 'pinapple')).to.be["false"]; + element.setAttribute(atributeKey, 'apple bananna'); + (0, _chai.expect)((0, _attributes.containsAttributeToken)(element, atributeKey, 'pinapple')).to.be["false"]; + (0, _chai.expect)((0, _attributes.containsAttributeToken)(element, atributeKey, 'bananna')).to.be["true"]; + (0, _chai.expect)((0, _attributes.containsAttributeToken)(element, atributeKey, 'apple')).to.be["true"]; + }); + it(' replaceAttributeToken(element, key, value)', function () { + var element = document.getElementById('test1'); + element.setAttribute(atributeKey, 'apple bananna tomato'); + (0, _attributes.replaceAttributeToken)(element, atributeKey, 'tomato', 'lemmon'); + (0, _chai.expect)(element.getAttribute(atributeKey)).to.be.equal('apple bananna lemmon'); + (0, _attributes.replaceAttributeToken)(element, atributeKey, 'bananna', 'pear'); + (0, _chai.expect)(element.getAttribute(atributeKey)).to.be.equal('apple pear lemmon'); + }); + it('clearAttributeTokens(element, key)', function () { + var element = document.getElementById('test1'); + element.setAttribute(atributeKey, 'apple bananna'); + (0, _attributes.clearAttributeTokens)(element, atributeKey); + (0, _chai.expect)(element.getAttribute(atributeKey)).to.be.equal(''); + }); + }); +}); + +},{"../../../source/dom/attributes.js":1140,"../../util/jsdom.js":1212,"chai":132}],1183:[function(require,module,exports){ 'use strict'; // var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -230702,7 +231242,7 @@ describe('DOM', function () { }); }); -},{"../../../source/dom/customelement.js":1141,"../../util/jsdom.js":1210,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/typeof":24,"chai":132}],1182:[function(require,module,exports){ +},{"../../../source/dom/customelement.js":1142,"../../util/jsdom.js":1212,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"@babel/runtime/helpers/typeof":24,"chai":132}],1184:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -230785,7 +231325,7 @@ describe('Handle', function () { }); }); -},{"../../../source/dom/handle.js":1142,"../../../source/dom/util.js":1146,"../../../source/types/global.js":1153,"../../../source/types/proxyobserver.js":1158,"../../util/jsdom.js":1210,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/regenerator":28,"chai":132}],1183:[function(require,module,exports){ +},{"../../../source/dom/handle.js":1143,"../../../source/dom/util.js":1147,"../../../source/types/global.js":1154,"../../../source/types/proxyobserver.js":1159,"../../util/jsdom.js":1212,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/regenerator":28,"chai":132}],1185:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -230842,7 +231382,7 @@ describe('Template', function () { }); }); -},{"../../../source/dom/template.js":1143,"../../util/jsdom.js":1210,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/regenerator":28,"chai":132}],1184:[function(require,module,exports){ +},{"../../../source/dom/template.js":1144,"../../util/jsdom.js":1212,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/regenerator":28,"chai":132}],1186:[function(require,module,exports){ 'use strict'; var _util = require("../../../source/dom/util.js"); @@ -230898,7 +231438,7 @@ describe('Theme', function () { }); }); -},{"../../../source/dom/theme.js":1144,"../../../source/dom/util.js":1146,"../../util/jsdom.js":1210,"chai":132}],1185:[function(require,module,exports){ +},{"../../../source/dom/theme.js":1145,"../../../source/dom/util.js":1147,"../../util/jsdom.js":1212,"chai":132}],1187:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -230918,7 +231458,8 @@ var expect = _chai["default"].expect; _chai["default"].use(_chaiDom.chaiDom); var html1 = "\n <template id=\"current\">\n <li data-monster-replace=\"path:current | tojson\"></li>\n </template>\n <div id=\"test1\">\n <ul data-monster-insert=\"current path:a.b\">\n </ul>\n </div>\n"; -var html2 = "\n <div id=\"test1\">\n <div data-monster-replace=\"path:text | tolower\"> </div>\n <div data-monster-replace=\"path:text | call:myformatter\"> </div>\n </div>\n"; +var html2 = "\n <div id=\"test1\">\n <div data-monster-replace=\"path:text | tolower\"> </div>\n <div data-monster-replace=\"path:text | call:myformatter\"> </div>\n <div data-monster-replace=\"static:hello\"></div>\n </div>\n"; +var html3 = "\n\n<template id=\"myinnerid\">\n <span data-monster-replace=\"path:myinnerid | tojson\"></span>\n</template>\n\n<template id=\"myid\">\n <p data-monster-insert=\"myinnerid path:a.b\"></p>\n</template>\n\n<div id=\"test1\">\n <div data-monster-insert=\"myid path:a.b\"></div>\n</div>\n\n"; describe('DOM', function () { before(function (done) { (0, _jsdom.initJSDOM)().then(function () { @@ -230933,9 +231474,6 @@ describe('DOM', function () { var mocks = document.getElementById('mocks'); mocks.innerHTML = ""; }); - describe('Updater()', function () { - describe('Example code', function () {}); - }); describe('Updater()', function () { describe('test Errors', function () { it('should throw value is not an instance of HTMLElement Error', function () { @@ -230943,10 +231481,10 @@ describe('DOM', function () { return new _updater.Updater(); }).to["throw"](TypeError); }); - it('should throw value is not an instance of HTMLElement Error', function () { + it('should throw value is wrong', function () { var element = document.getElementById('test1'); expect(function () { - return new _updater.Updater(element); + return new _updater.Updater(element, null); }).to["throw"](TypeError); }); it('should throw Error: the value is not iterable', function (done) { @@ -231028,6 +231566,34 @@ describe('DOM', function () { expect((0, _typeof2["default"])(d)).is.equal('object'); expect(element).contain.html('<div data-monster-replace="path:text | tolower">hallo</div>'); expect(element).contain.html('<div data-monster-replace="path:text | call:myformatter">HALLOyes!</div>'); + expect(element).contain.html('<div data-monster-replace="static:hello">hello</div>'); + done(); + })["catch"](function (e) { + done(new Error(e)); + }); + }); + }); + }); + describe('Updater()', function () { + beforeEach(function () { + var mocks = document.getElementById('mocks'); + mocks.innerHTML = html3; + }); + describe('Replace', function () { + it('should ', function (done) { + var element = document.getElementById('test1'); + var d = new _updater.Updater(element, { + a: { + b: [{ + i: '0' + }] + } + }); + d.run().then(function () { + expect((0, _typeof2["default"])(d)).is.equal('object'); + expect(element).contain.html('<div data-monster-insert="myid path:a.b">'); + expect(element).contain.html('<p data-monster-insert="myinnerid path:a.b" data-monster-insert-reference="myid-0">'); + expect(element).contain.html('<span data-monster-replace="path:a.b.0 | tojson" data-monster-insert-reference="myinnerid-0">{"i":"0"}</span>'); done(); })["catch"](function (e) { done(new Error(e)); @@ -231037,7 +231603,7 @@ describe('DOM', function () { }); }); -},{"../../../source/dom/updater.js":1145,"../../util/chai-dom.js":1209,"../../util/jsdom.js":1210,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"chai":132}],1186:[function(require,module,exports){ +},{"../../../source/dom/updater.js":1146,"../../util/chai-dom.js":1211,"../../util/jsdom.js":1212,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"chai":132}],1188:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -231098,7 +231664,7 @@ describe('DOM', function () { }); }); -},{"../../../source/dom/util.js":1146,"../../util/jsdom.js":1210,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"@babel/runtime/regenerator":28,"chai":132}],1187:[function(require,module,exports){ +},{"../../../source/dom/util.js":1147,"../../util/jsdom.js":1212,"@babel/runtime/helpers/asyncToGenerator":5,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"@babel/runtime/regenerator":28,"chai":132}],1189:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -231269,7 +231835,7 @@ describe('Logging', function () { }); }); -},{"../../../source/logging/handler.js":1147,"../../../source/logging/logentry.js":1148,"../../../source/logging/logger.js":1149,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/get":9,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"chai":132}],1188:[function(require,module,exports){ +},{"../../../source/logging/handler.js":1148,"../../../source/logging/logentry.js":1149,"../../../source/logging/logger.js":1150,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/get":9,"@babel/runtime/helpers/getPrototypeOf":10,"@babel/runtime/helpers/inherits":11,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/possibleConstructorReturn":19,"chai":132}],1190:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -231300,7 +231866,7 @@ describe('Log', function () { }); }); -},{"../../../source/logging/logentry.js":1148,"chai":132}],1189:[function(require,module,exports){ +},{"../../../source/logging/logentry.js":1149,"chai":132}],1191:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -231363,7 +231929,7 @@ describe('Logging', function () { }); }); -},{"../../../source/logging/logger.js":1149,"chai":132}],1190:[function(require,module,exports){ +},{"../../../source/logging/logger.js":1150,"chai":132}],1192:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -231415,7 +231981,7 @@ describe('Math', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/math/random.js":1150,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132}],1191:[function(require,module,exports){ +},{"../../../source/math/random.js":1151,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132}],1193:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -231427,7 +231993,7 @@ describe('Monster', function () { var monsterVersion; /**#@+ dont touch, replaced by make with package.json version */ - monsterVersion = new _version.Version('1.8.0'); + monsterVersion = new _version.Version('1.9.0'); /**#@-*/ var m = _version.Monster.getVersion(); @@ -231438,7 +232004,7 @@ describe('Monster', function () { }); }); -},{"../../source/types/version.js":1166,"chai":132}],1192:[function(require,module,exports){ +},{"../../source/types/version.js":1167,"chai":132}],1194:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -231456,7 +232022,7 @@ describe('Base', function () { }); }); -},{"../../../source/types/base.js":1152,"chai":132}],1193:[function(require,module,exports){ +},{"../../../source/types/base.js":1153,"chai":132}],1195:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -231488,7 +232054,7 @@ describe('Global', function () { }); }); -},{"../../../source/types/global.js":1153,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"chai":132}],1194:[function(require,module,exports){ +},{"../../../source/types/global.js":1154,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"chai":132}],1196:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -231524,7 +232090,7 @@ describe('ID', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/types/id.js":1154,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132}],1195:[function(require,module,exports){ +},{"../../../source/types/id.js":1155,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132}],1197:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -231636,7 +232202,7 @@ describe('Is', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/types/id.js":1154,"../../../source/types/is.js":1155,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132}],1196:[function(require,module,exports){ +},{"../../../source/types/id.js":1155,"../../../source/types/is.js":1156,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132}],1198:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -231728,7 +232294,7 @@ describe('Observer', function () { }); }); -},{"../../../source/types/observer.js":1156,"chai":132}],1197:[function(require,module,exports){ +},{"../../../source/types/observer.js":1157,"chai":132}],1199:[function(require,module,exports){ "use strict"; var _observerlist = require("../../../source/types/observerlist.js"); @@ -231805,7 +232371,7 @@ describe('ObserverList', function () { }); }); -},{"../../../source/types/observer.js":1156,"../../../source/types/observerlist.js":1157,"chai":132}],1198:[function(require,module,exports){ +},{"../../../source/types/observer.js":1157,"../../../source/types/observerlist.js":1158,"chai":132}],1200:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -231899,7 +232465,7 @@ describe('ProxyObserver', function () { }); }); -},{"../../../source/types/is.js":1155,"../../../source/types/observer.js":1156,"../../../source/types/proxyobserver.js":1158,"chai":132}],1199:[function(require,module,exports){ +},{"../../../source/types/is.js":1156,"../../../source/types/observer.js":1157,"../../../source/types/proxyobserver.js":1159,"chai":132}],1201:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -231940,7 +232506,7 @@ describe('Queue', function () { }); }); -},{"../../../source/types/queue.js":1159,"chai":132}],1200:[function(require,module,exports){ +},{"../../../source/types/queue.js":1160,"chai":132}],1202:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -231971,7 +232537,7 @@ describe('RandomID', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/types/randomid.js":1160,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132}],1201:[function(require,module,exports){ +},{"../../../source/types/randomid.js":1161,"@babel/runtime/helpers/typeof":24,"@peculiar/webcrypto":46,"chai":132}],1203:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -232012,7 +232578,7 @@ describe('Stack', function () { }); }); -},{"../../../source/types/stack.js":1161,"chai":132}],1202:[function(require,module,exports){ +},{"../../../source/types/stack.js":1162,"chai":132}],1204:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -232209,7 +232775,7 @@ describe('TokenList', function () { }); }); -},{"../../../source/types/tokenlist.js":1162,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/toConsumableArray":23,"@babel/runtime/helpers/typeof":24,"chai":132}],1203:[function(require,module,exports){ +},{"../../../source/types/tokenlist.js":1163,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/toConsumableArray":23,"@babel/runtime/helpers/typeof":24,"chai":132}],1205:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -232244,7 +232810,7 @@ describe('typeOf', function () { }); }); -},{"../../../source/types/stack.js":1161,"../../../source/types/typeof.js":1163,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/regenerator":28,"chai":132}],1204:[function(require,module,exports){ +},{"../../../source/types/stack.js":1162,"../../../source/types/typeof.js":1164,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/regenerator":28,"chai":132}],1206:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -232330,7 +232896,7 @@ describe('UniqueQueue', function () { }); }); -},{"../../../source/types/uniquequeue.js":1164,"chai":132}],1205:[function(require,module,exports){ +},{"../../../source/types/uniquequeue.js":1165,"chai":132}],1207:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -232518,7 +233084,7 @@ describe('validate', function () { }); }); -},{"../../../source/types/base.js":1152,"../../../source/types/id.js":1154,"../../../source/types/validate.js":1165,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"chai":132}],1206:[function(require,module,exports){ +},{"../../../source/types/base.js":1153,"../../../source/types/id.js":1155,"../../../source/types/validate.js":1166,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"chai":132}],1208:[function(require,module,exports){ "use strict"; var _version = require("../../../source/types/version.js"); @@ -232549,7 +233115,7 @@ describe('Version', function () { }); }); -},{"../../../source/types/version.js":1166,"chai":132}],1207:[function(require,module,exports){ +},{"../../../source/types/version.js":1167,"chai":132}],1209:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -232661,7 +233227,7 @@ describe('Clone', function () { }); }); -},{"../../../source/util/clone.js":1167,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"chai":132}],1208:[function(require,module,exports){ +},{"../../../source/util/clone.js":1168,"@babel/runtime/helpers/classCallCheck":6,"@babel/runtime/helpers/createClass":8,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"chai":132}],1210:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -232778,7 +233344,7 @@ describe('Comparator', function () { }); }); -},{"../../../source/util/comparator.js":1168,"chai":132}],1209:[function(require,module,exports){ +},{"../../../source/util/comparator.js":1169,"chai":132}],1211:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -233026,7 +233592,7 @@ function chaiDom(chai, utils) { }); } -},{}],1210:[function(require,module,exports){ +},{}],1212:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -233079,7 +233645,7 @@ function initJSDOM() { }); } -},{"../../source/types/global.js":1153,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"jsdom":337}],1211:[function(require,module,exports){ +},{"../../source/types/global.js":1154,"@babel/runtime/helpers/interopRequireDefault":12,"@babel/runtime/helpers/typeof":24,"jsdom":337}],1213:[function(require,module,exports){ "use strict"; require("../cases/logging/logger.js"); @@ -233092,6 +233658,8 @@ require("../cases/dom/handle.js"); require("../cases/dom/updater.js"); +require("../cases/dom/attributes.js"); + require("../cases/dom/template.js"); require("../cases/dom/util.js"); @@ -233165,6 +233733,6 @@ require("../cases/monster.js"); /** this file was created automatically by the make target test-browser-monster */ SharedArrayBuffer = ArrayBuffer; -},{"../cases/constraint/andoperator.js":1169,"../cases/constraint/invalid.js":1170,"../cases/constraint/isarray.js":1171,"../cases/constraint/isobject.js":1172,"../cases/constraint/oroperator.js":1173,"../cases/constraint/valid.js":1174,"../cases/data/buildmap.js":1175,"../cases/data/diff.js":1176,"../cases/data/pathfinder.js":1177,"../cases/data/pipe.js":1178,"../cases/data/transformer.js":1179,"../cases/dom/assembler.js":1180,"../cases/dom/customelement.js":1181,"../cases/dom/handle.js":1182,"../cases/dom/template.js":1183,"../cases/dom/theme.js":1184,"../cases/dom/updater.js":1185,"../cases/dom/util.js":1186,"../cases/logging/handler.js":1187,"../cases/logging/logentry.js":1188,"../cases/logging/logger.js":1189,"../cases/math/random.js":1190,"../cases/monster.js":1191,"../cases/types/base.js":1192,"../cases/types/global.js":1193,"../cases/types/id.js":1194,"../cases/types/is.js":1195,"../cases/types/observer.js":1196,"../cases/types/observerlist.js":1197,"../cases/types/proxyobserver.js":1198,"../cases/types/queue.js":1199,"../cases/types/randomid.js":1200,"../cases/types/stack.js":1201,"../cases/types/tokenlist.js":1202,"../cases/types/typeof.js":1203,"../cases/types/uniquequeue.js":1204,"../cases/types/validate.js":1205,"../cases/types/version.js":1206,"../cases/util/clone.js":1207,"../cases/util/comparator.js":1208}],1212:[function(require,module,exports){ +},{"../cases/constraint/andoperator.js":1170,"../cases/constraint/invalid.js":1171,"../cases/constraint/isarray.js":1172,"../cases/constraint/isobject.js":1173,"../cases/constraint/oroperator.js":1174,"../cases/constraint/valid.js":1175,"../cases/data/buildmap.js":1176,"../cases/data/diff.js":1177,"../cases/data/pathfinder.js":1178,"../cases/data/pipe.js":1179,"../cases/data/transformer.js":1180,"../cases/dom/assembler.js":1181,"../cases/dom/attributes.js":1182,"../cases/dom/customelement.js":1183,"../cases/dom/handle.js":1184,"../cases/dom/template.js":1185,"../cases/dom/theme.js":1186,"../cases/dom/updater.js":1187,"../cases/dom/util.js":1188,"../cases/logging/handler.js":1189,"../cases/logging/logentry.js":1190,"../cases/logging/logger.js":1191,"../cases/math/random.js":1192,"../cases/monster.js":1193,"../cases/types/base.js":1194,"../cases/types/global.js":1195,"../cases/types/id.js":1196,"../cases/types/is.js":1197,"../cases/types/observer.js":1198,"../cases/types/observerlist.js":1199,"../cases/types/proxyobserver.js":1200,"../cases/types/queue.js":1201,"../cases/types/randomid.js":1202,"../cases/types/stack.js":1203,"../cases/types/tokenlist.js":1204,"../cases/types/typeof.js":1205,"../cases/types/uniquequeue.js":1206,"../cases/types/validate.js":1207,"../cases/types/version.js":1208,"../cases/util/clone.js":1209,"../cases/util/comparator.js":1210}],1214:[function(require,module,exports){ arguments[4][81][0].apply(exports,arguments) -},{"dup":81}]},{},[1211]); +},{"dup":81}]},{},[1213]);