v-annotator
Version:
## Project setup ``` yarn install ```
13,120 lines • 472 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("vue"));
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["v-annotator"] = factory(require("vue"));
else
root["v-annotator"] = factory(root["Vue"]);
})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "fb15");
/******/ })
/************************************************************************/
/******/ ({
/***/ "00ee":
/***/ (function(module, exports, __webpack_require__) {
var wellKnownSymbol = __webpack_require__("b622");
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var test = {};
test[TO_STRING_TAG] = 'z';
module.exports = String(test) === '[object z]';
/***/ }),
/***/ "0366":
/***/ (function(module, exports, __webpack_require__) {
var aFunction = __webpack_require__("1c0b");
// optional / simple context binding
module.exports = function (fn, that, length) {
aFunction(fn);
if (that === undefined) return fn;
switch (length) {
case 0: return function () {
return fn.call(that);
};
case 1: return function (a) {
return fn.call(that, a);
};
case 2: return function (a, b) {
return fn.call(that, a, b);
};
case 3: return function (a, b, c) {
return fn.call(that, a, b, c);
};
}
return function (/* ...args */) {
return fn.apply(that, arguments);
};
};
/***/ }),
/***/ "04d1":
/***/ (function(module, exports, __webpack_require__) {
var userAgent = __webpack_require__("342f");
var firefox = userAgent.match(/firefox\/(\d+)/i);
module.exports = !!firefox && +firefox[1];
/***/ }),
/***/ "0538":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var aFunction = __webpack_require__("1c0b");
var isObject = __webpack_require__("861d");
var slice = [].slice;
var factories = {};
var construct = function (C, argsLength, args) {
if (!(argsLength in factories)) {
for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';
// eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only
factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');
} return factories[argsLength](C, args);
};
// `Function.prototype.bind` method implementation
// https://tc39.es/ecma262/#sec-function.prototype.bind
module.exports = Function.bind || function bind(that /* , ...args */) {
var fn = aFunction(this);
var partArgs = slice.call(arguments, 1);
var boundFunction = function bound(/* args... */) {
var args = partArgs.concat(slice.call(arguments));
return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);
};
if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;
return boundFunction;
};
/***/ }),
/***/ "057f":
/***/ (function(module, exports, __webpack_require__) {
/* eslint-disable es/no-object-getownpropertynames -- safe */
var toIndexedObject = __webpack_require__("fc6a");
var $getOwnPropertyNames = __webpack_require__("241c").f;
var toString = {}.toString;
var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
? Object.getOwnPropertyNames(window) : [];
var getWindowNames = function (it) {
try {
return $getOwnPropertyNames(it);
} catch (error) {
return windowNames.slice();
}
};
// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
module.exports.f = function getOwnPropertyNames(it) {
return windowNames && toString.call(it) == '[object Window]'
? getWindowNames(it)
: $getOwnPropertyNames(toIndexedObject(it));
};
/***/ }),
/***/ "06cf":
/***/ (function(module, exports, __webpack_require__) {
var DESCRIPTORS = __webpack_require__("83ab");
var propertyIsEnumerableModule = __webpack_require__("d1e7");
var createPropertyDescriptor = __webpack_require__("5c6c");
var toIndexedObject = __webpack_require__("fc6a");
var toPrimitive = __webpack_require__("c04e");
var has = __webpack_require__("5135");
var IE8_DOM_DEFINE = __webpack_require__("0cfb");
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// `Object.getOwnPropertyDescriptor` method
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
O = toIndexedObject(O);
P = toPrimitive(P, true);
if (IE8_DOM_DEFINE) try {
return $getOwnPropertyDescriptor(O, P);
} catch (error) { /* empty */ }
if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
};
/***/ }),
/***/ "0cfb":
/***/ (function(module, exports, __webpack_require__) {
var DESCRIPTORS = __webpack_require__("83ab");
var fails = __webpack_require__("d039");
var createElement = __webpack_require__("cc12");
// Thank's IE8 for his funny defineProperty
module.exports = !DESCRIPTORS && !fails(function () {
// eslint-disable-next-line es/no-object-defineproperty -- requied for testing
return Object.defineProperty(createElement('div'), 'a', {
get: function () { return 7; }
}).a != 7;
});
/***/ }),
/***/ "1276":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var fixRegExpWellKnownSymbolLogic = __webpack_require__("d784");
var isRegExp = __webpack_require__("44e7");
var anObject = __webpack_require__("825a");
var requireObjectCoercible = __webpack_require__("1d80");
var speciesConstructor = __webpack_require__("4840");
var advanceStringIndex = __webpack_require__("8aa5");
var toLength = __webpack_require__("50c4");
var callRegExpExec = __webpack_require__("14c3");
var regexpExec = __webpack_require__("9263");
var stickyHelpers = __webpack_require__("9f7f");
var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;
var arrayPush = [].push;
var min = Math.min;
var MAX_UINT32 = 0xFFFFFFFF;
// @@split logic
fixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {
var internalSplit;
if (
'abbc'.split(/(b)*/)[1] == 'c' ||
// eslint-disable-next-line regexp/no-empty-group -- required for testing
'test'.split(/(?:)/, -1).length != 4 ||
'ab'.split(/(?:ab)*/).length != 2 ||
'.'.split(/(.?)(.?)/).length != 4 ||
// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing
'.'.split(/()()/).length > 1 ||
''.split(/.?/).length
) {
// based on es5-shim implementation, need to rework it
internalSplit = function (separator, limit) {
var string = String(requireObjectCoercible(this));
var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
if (lim === 0) return [];
if (separator === undefined) return [string];
// If `separator` is not a regex, use native split
if (!isRegExp(separator)) {
return nativeSplit.call(string, separator, lim);
}
var output = [];
var flags = (separator.ignoreCase ? 'i' : '') +
(separator.multiline ? 'm' : '') +
(separator.unicode ? 'u' : '') +
(separator.sticky ? 'y' : '');
var lastLastIndex = 0;
// Make `global` and avoid `lastIndex` issues by working with a copy
var separatorCopy = new RegExp(separator.source, flags + 'g');
var match, lastIndex, lastLength;
while (match = regexpExec.call(separatorCopy, string)) {
lastIndex = separatorCopy.lastIndex;
if (lastIndex > lastLastIndex) {
output.push(string.slice(lastLastIndex, match.index));
if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));
lastLength = match[0].length;
lastLastIndex = lastIndex;
if (output.length >= lim) break;
}
if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop
}
if (lastLastIndex === string.length) {
if (lastLength || !separatorCopy.test('')) output.push('');
} else output.push(string.slice(lastLastIndex));
return output.length > lim ? output.slice(0, lim) : output;
};
// Chakra, V8
} else if ('0'.split(undefined, 0).length) {
internalSplit = function (separator, limit) {
return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);
};
} else internalSplit = nativeSplit;
return [
// `String.prototype.split` method
// https://tc39.es/ecma262/#sec-string.prototype.split
function split(separator, limit) {
var O = requireObjectCoercible(this);
var splitter = separator == undefined ? undefined : separator[SPLIT];
return splitter !== undefined
? splitter.call(separator, O, limit)
: internalSplit.call(String(O), separator, limit);
},
// `RegExp.prototype[@@split]` method
// https://tc39.es/ecma262/#sec-regexp.prototype-@@split
//
// NOTE: This cannot be properly polyfilled in engines that don't support
// the 'y' flag.
function (regexp, limit) {
var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);
if (res.done) return res.value;
var rx = anObject(regexp);
var S = String(this);
var C = speciesConstructor(rx, RegExp);
var unicodeMatching = rx.unicode;
var flags = (rx.ignoreCase ? 'i' : '') +
(rx.multiline ? 'm' : '') +
(rx.unicode ? 'u' : '') +
(UNSUPPORTED_Y ? 'g' : 'y');
// ^(? + rx + ) is needed, in combination with some S slicing, to
// simulate the 'y' flag.
var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);
var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
if (lim === 0) return [];
if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
var p = 0;
var q = 0;
var A = [];
while (q < S.length) {
splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;
var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);
var e;
if (
z === null ||
(e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p
) {
q = advanceStringIndex(S, q, unicodeMatching);
} else {
A.push(S.slice(p, q));
if (A.length === lim) return A;
for (var i = 1; i <= z.length - 1; i++) {
A.push(z[i]);
if (A.length === lim) return A;
}
q = p = e;
}
}
A.push(S.slice(p));
return A;
}
];
}, UNSUPPORTED_Y);
/***/ }),
/***/ "129f":
/***/ (function(module, exports) {
// `SameValue` abstract operation
// https://tc39.es/ecma262/#sec-samevalue
// eslint-disable-next-line es/no-object-is -- safe
module.exports = Object.is || function is(x, y) {
// eslint-disable-next-line no-self-compare -- NaN check
return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
};
/***/ }),
/***/ "14c3":
/***/ (function(module, exports, __webpack_require__) {
var classof = __webpack_require__("c6b6");
var regexpExec = __webpack_require__("9263");
// `RegExpExec` abstract operation
// https://tc39.es/ecma262/#sec-regexpexec
module.exports = function (R, S) {
var exec = R.exec;
if (typeof exec === 'function') {
var result = exec.call(R, S);
if (typeof result !== 'object') {
throw TypeError('RegExp exec method returned something other than an Object or null');
}
return result;
}
if (classof(R) !== 'RegExp') {
throw TypeError('RegExp#exec called on incompatible receiver');
}
return regexpExec.call(R, S);
};
/***/ }),
/***/ "159b":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
var DOMIterables = __webpack_require__("fdbc");
var forEach = __webpack_require__("17c2");
var createNonEnumerableProperty = __webpack_require__("9112");
for (var COLLECTION_NAME in DOMIterables) {
var Collection = global[COLLECTION_NAME];
var CollectionPrototype = Collection && Collection.prototype;
// some Chrome versions have non-configurable methods on DOMTokenList
if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {
createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);
} catch (error) {
CollectionPrototype.forEach = forEach;
}
}
/***/ }),
/***/ "17c2":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $forEach = __webpack_require__("b727").forEach;
var arrayMethodIsStrict = __webpack_require__("a640");
var STRICT_METHOD = arrayMethodIsStrict('forEach');
// `Array.prototype.forEach` method implementation
// https://tc39.es/ecma262/#sec-array.prototype.foreach
module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {
return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
// eslint-disable-next-line es/no-array-prototype-foreach -- safe
} : [].forEach;
/***/ }),
/***/ "19aa":
/***/ (function(module, exports) {
module.exports = function (it, Constructor, name) {
if (!(it instanceof Constructor)) {
throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');
} return it;
};
/***/ }),
/***/ "1be4":
/***/ (function(module, exports, __webpack_require__) {
var getBuiltIn = __webpack_require__("d066");
module.exports = getBuiltIn('document', 'documentElement');
/***/ }),
/***/ "1c0b":
/***/ (function(module, exports) {
module.exports = function (it) {
if (typeof it != 'function') {
throw TypeError(String(it) + ' is not a function');
} return it;
};
/***/ }),
/***/ "1c7e":
/***/ (function(module, exports, __webpack_require__) {
var wellKnownSymbol = __webpack_require__("b622");
var ITERATOR = wellKnownSymbol('iterator');
var SAFE_CLOSING = false;
try {
var called = 0;
var iteratorWithReturn = {
next: function () {
return { done: !!called++ };
},
'return': function () {
SAFE_CLOSING = true;
}
};
iteratorWithReturn[ITERATOR] = function () {
return this;
};
// eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
Array.from(iteratorWithReturn, function () { throw 2; });
} catch (error) { /* empty */ }
module.exports = function (exec, SKIP_CLOSING) {
if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
var ITERATION_SUPPORT = false;
try {
var object = {};
object[ITERATOR] = function () {
return {
next: function () {
return { done: ITERATION_SUPPORT = true };
}
};
};
exec(object);
} catch (error) { /* empty */ }
return ITERATION_SUPPORT;
};
/***/ }),
/***/ "1d80":
/***/ (function(module, exports) {
// `RequireObjectCoercible` abstract operation
// https://tc39.es/ecma262/#sec-requireobjectcoercible
module.exports = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
/***/ }),
/***/ "1dde":
/***/ (function(module, exports, __webpack_require__) {
var fails = __webpack_require__("d039");
var wellKnownSymbol = __webpack_require__("b622");
var V8_VERSION = __webpack_require__("2d00");
var SPECIES = wellKnownSymbol('species');
module.exports = function (METHOD_NAME) {
// We can't use this feature detection in V8 since it causes
// deoptimization and serious performance degradation
// https://github.com/zloirock/core-js/issues/677
return V8_VERSION >= 51 || !fails(function () {
var array = [];
var constructor = array.constructor = {};
constructor[SPECIES] = function () {
return { foo: 1 };
};
return array[METHOD_NAME](Boolean).foo !== 1;
});
};
/***/ }),
/***/ "2266":
/***/ (function(module, exports, __webpack_require__) {
var anObject = __webpack_require__("825a");
var isArrayIteratorMethod = __webpack_require__("e95a");
var toLength = __webpack_require__("50c4");
var bind = __webpack_require__("0366");
var getIteratorMethod = __webpack_require__("35a1");
var iteratorClose = __webpack_require__("2a62");
var Result = function (stopped, result) {
this.stopped = stopped;
this.result = result;
};
module.exports = function (iterable, unboundFunction, options) {
var that = options && options.that;
var AS_ENTRIES = !!(options && options.AS_ENTRIES);
var IS_ITERATOR = !!(options && options.IS_ITERATOR);
var INTERRUPTED = !!(options && options.INTERRUPTED);
var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);
var iterator, iterFn, index, length, result, next, step;
var stop = function (condition) {
if (iterator) iteratorClose(iterator);
return new Result(true, condition);
};
var callFn = function (value) {
if (AS_ENTRIES) {
anObject(value);
return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
} return INTERRUPTED ? fn(value, stop) : fn(value);
};
if (IS_ITERATOR) {
iterator = iterable;
} else {
iterFn = getIteratorMethod(iterable);
if (typeof iterFn != 'function') throw TypeError('Target is not iterable');
// optimisation for array iterators
if (isArrayIteratorMethod(iterFn)) {
for (index = 0, length = toLength(iterable.length); length > index; index++) {
result = callFn(iterable[index]);
if (result && result instanceof Result) return result;
} return new Result(false);
}
iterator = iterFn.call(iterable);
}
next = iterator.next;
while (!(step = next.call(iterator)).done) {
try {
result = callFn(step.value);
} catch (error) {
iteratorClose(iterator);
throw error;
}
if (typeof result == 'object' && result && result instanceof Result) return result;
} return new Result(false);
};
/***/ }),
/***/ "23cb":
/***/ (function(module, exports, __webpack_require__) {
var toInteger = __webpack_require__("a691");
var max = Math.max;
var min = Math.min;
// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
module.exports = function (index, length) {
var integer = toInteger(index);
return integer < 0 ? max(integer + length, 0) : min(integer, length);
};
/***/ }),
/***/ "23e7":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
var getOwnPropertyDescriptor = __webpack_require__("06cf").f;
var createNonEnumerableProperty = __webpack_require__("9112");
var redefine = __webpack_require__("6eeb");
var setGlobal = __webpack_require__("ce4e");
var copyConstructorProperties = __webpack_require__("e893");
var isForced = __webpack_require__("94ca");
/*
options.target - name of the target object
options.global - target is the global object
options.stat - export as static methods of target
options.proto - export as prototype methods of target
options.real - real prototype method for the `pure` version
options.forced - export even if the native feature is available
options.bind - bind methods to the target, required for the `pure` version
options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
options.unsafe - use the simple assignment of property instead of delete + defineProperty
options.sham - add a flag to not completely full polyfills
options.enumerable - export as enumerable property
options.noTargetGet - prevent calling a getter on target
*/
module.exports = function (options, source) {
var TARGET = options.target;
var GLOBAL = options.global;
var STATIC = options.stat;
var FORCED, target, key, targetProperty, sourceProperty, descriptor;
if (GLOBAL) {
target = global;
} else if (STATIC) {
target = global[TARGET] || setGlobal(TARGET, {});
} else {
target = (global[TARGET] || {}).prototype;
}
if (target) for (key in source) {
sourceProperty = source[key];
if (options.noTargetGet) {
descriptor = getOwnPropertyDescriptor(target, key);
targetProperty = descriptor && descriptor.value;
} else targetProperty = target[key];
FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
// contained in target
if (!FORCED && targetProperty !== undefined) {
if (typeof sourceProperty === typeof targetProperty) continue;
copyConstructorProperties(sourceProperty, targetProperty);
}
// add a flag to not completely full polyfills
if (options.sham || (targetProperty && targetProperty.sham)) {
createNonEnumerableProperty(sourceProperty, 'sham', true);
}
// extend global
redefine(target, key, sourceProperty, options);
}
};
/***/ }),
/***/ "241c":
/***/ (function(module, exports, __webpack_require__) {
var internalObjectKeys = __webpack_require__("ca84");
var enumBugKeys = __webpack_require__("7839");
var hiddenKeys = enumBugKeys.concat('length', 'prototype');
// `Object.getOwnPropertyNames` method
// https://tc39.es/ecma262/#sec-object.getownpropertynames
// eslint-disable-next-line es/no-object-getownpropertynames -- safe
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return internalObjectKeys(O, hiddenKeys);
};
/***/ }),
/***/ "252c":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* unused harmony export install */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ResizeObserver; });
function getInternetExplorerVersion() {
var ua = window.navigator.userAgent;
var msie = ua.indexOf('MSIE ');
if (msie > 0) {
// IE 10 or older => return version number
return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
}
var trident = ua.indexOf('Trident/');
if (trident > 0) {
// IE 11 => return version number
var rv = ua.indexOf('rv:');
return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
}
var edge = ua.indexOf('Edge/');
if (edge > 0) {
// Edge (IE 12+) => return version number
return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
}
// other browser
return -1;
}
var isIE = void 0;
function initCompat() {
if (!initCompat.init) {
initCompat.init = true;
isIE = getInternetExplorerVersion() !== -1;
}
}
var ResizeObserver = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: "resize-observer", attrs: { "tabindex": "-1" } });
}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',
name: 'resize-observer',
methods: {
compareAndNotify: function compareAndNotify() {
if (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {
this._w = this.$el.offsetWidth;
this._h = this.$el.offsetHeight;
this.$emit('notify');
}
},
addResizeHandlers: function addResizeHandlers() {
this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);
this.compareAndNotify();
},
removeResizeHandlers: function removeResizeHandlers() {
if (this._resizeObject && this._resizeObject.onload) {
if (!isIE && this._resizeObject.contentDocument) {
this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);
}
delete this._resizeObject.onload;
}
}
},
mounted: function mounted() {
var _this = this;
initCompat();
this.$nextTick(function () {
_this._w = _this.$el.offsetWidth;
_this._h = _this.$el.offsetHeight;
});
var object = document.createElement('object');
this._resizeObject = object;
object.setAttribute('aria-hidden', 'true');
object.setAttribute('tabindex', -1);
object.onload = this.addResizeHandlers;
object.type = 'text/html';
if (isIE) {
this.$el.appendChild(object);
}
object.data = 'about:blank';
if (!isIE) {
this.$el.appendChild(object);
}
},
beforeDestroy: function beforeDestroy() {
this.removeResizeHandlers();
}
};
// Install the components
function install(Vue) {
Vue.component('resize-observer', ResizeObserver);
Vue.component('ResizeObserver', ResizeObserver);
}
// Plugin
var plugin = {
// eslint-disable-next-line no-undef
version: "0.4.5",
install: install
};
// Auto-install
var GlobalVue = null;
if (typeof window !== 'undefined') {
GlobalVue = window.Vue;
} else if (typeof global !== 'undefined') {
GlobalVue = global.Vue;
}
if (GlobalVue) {
GlobalVue.use(plugin);
}
/* unused harmony default export */ var _unused_webpack_default_export = (plugin);
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("c8ba")))
/***/ }),
/***/ "2626":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var getBuiltIn = __webpack_require__("d066");
var definePropertyModule = __webpack_require__("9bf2");
var wellKnownSymbol = __webpack_require__("b622");
var DESCRIPTORS = __webpack_require__("83ab");
var SPECIES = wellKnownSymbol('species');
module.exports = function (CONSTRUCTOR_NAME) {
var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
var defineProperty = definePropertyModule.f;
if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {
defineProperty(Constructor, SPECIES, {
configurable: true,
get: function () { return this; }
});
}
};
/***/ }),
/***/ "2a62":
/***/ (function(module, exports, __webpack_require__) {
var anObject = __webpack_require__("825a");
module.exports = function (iterator) {
var returnMethod = iterator['return'];
if (returnMethod !== undefined) {
return anObject(returnMethod.call(iterator)).value;
}
};
/***/ }),
/***/ "2d00":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
var userAgent = __webpack_require__("342f");
var process = global.process;
var versions = process && process.versions;
var v8 = versions && versions.v8;
var match, version;
if (v8) {
match = v8.split('.');
version = match[0] < 4 ? 1 : match[0] + match[1];
} else if (userAgent) {
match = userAgent.match(/Edge\/(\d+)/);
if (!match || match[1] >= 74) {
match = userAgent.match(/Chrome\/(\d+)/);
if (match) version = match[1];
}
}
module.exports = version && +version;
/***/ }),
/***/ "2de1":
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "3410":
/***/ (function(module, exports, __webpack_require__) {
var $ = __webpack_require__("23e7");
var fails = __webpack_require__("d039");
var toObject = __webpack_require__("7b0b");
var nativeGetPrototypeOf = __webpack_require__("e163");
var CORRECT_PROTOTYPE_GETTER = __webpack_require__("e177");
var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });
// `Object.getPrototypeOf` method
// https://tc39.es/ecma262/#sec-object.getprototypeof
$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {
getPrototypeOf: function getPrototypeOf(it) {
return nativeGetPrototypeOf(toObject(it));
}
});
/***/ }),
/***/ "342f":
/***/ (function(module, exports, __webpack_require__) {
var getBuiltIn = __webpack_require__("d066");
module.exports = getBuiltIn('navigator', 'userAgent') || '';
/***/ }),
/***/ "35a1":
/***/ (function(module, exports, __webpack_require__) {
var classof = __webpack_require__("f5df");
var Iterators = __webpack_require__("3f8c");
var wellKnownSymbol = __webpack_require__("b622");
var ITERATOR = wellKnownSymbol('iterator');
module.exports = function (it) {
if (it != undefined) return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
};
/***/ }),
/***/ "37e8":
/***/ (function(module, exports, __webpack_require__) {
var DESCRIPTORS = __webpack_require__("83ab");
var definePropertyModule = __webpack_require__("9bf2");
var anObject = __webpack_require__("825a");
var objectKeys = __webpack_require__("df75");
// `Object.defineProperties` method
// https://tc39.es/ecma262/#sec-object.defineproperties
// eslint-disable-next-line es/no-object-defineproperties -- safe
module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
anObject(O);
var keys = objectKeys(Properties);
var length = keys.length;
var index = 0;
var key;
while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
return O;
};
/***/ }),
/***/ "3bbe":
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__("861d");
module.exports = function (it) {
if (!isObject(it) && it !== null) {
throw TypeError("Can't set " + String(it) + ' as a prototype');
} return it;
};
/***/ }),
/***/ "3ca3":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var charAt = __webpack_require__("6547").charAt;
var InternalStateModule = __webpack_require__("69f3");
var defineIterator = __webpack_require__("7dd0");
var STRING_ITERATOR = 'String Iterator';
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
// `String.prototype[@@iterator]` method
// https://tc39.es/ecma262/#sec-string.prototype-@@iterator
defineIterator(String, 'String', function (iterated) {
setInternalState(this, {
type: STRING_ITERATOR,
string: String(iterated),
index: 0
});
// `%StringIteratorPrototype%.next` method
// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next
}, function next() {
var state = getInternalState(this);
var string = state.string;
var index = state.index;
var point;
if (index >= string.length) return { value: undefined, done: true };
point = charAt(string, index);
state.index += point.length;
return { value: point, done: false };
});
/***/ }),
/***/ "3f8c":
/***/ (function(module, exports) {
module.exports = {};
/***/ }),
/***/ "3fbb":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VAnnotator_vue_vue_type_style_index_0_id_24577b23_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6bb5");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VAnnotator_vue_vue_type_style_index_0_id_24577b23_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VAnnotator_vue_vue_type_style_index_0_id_24577b23_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */
/***/ }),
/***/ "428f":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
module.exports = global;
/***/ }),
/***/ "44ad":
/***/ (function(module, exports, __webpack_require__) {
var fails = __webpack_require__("d039");
var classof = __webpack_require__("c6b6");
var split = ''.split;
// fallback for non-array-like ES3 and non-enumerable old V8 strings
module.exports = fails(function () {
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
// eslint-disable-next-line no-prototype-builtins -- safe
return !Object('z').propertyIsEnumerable(0);
}) ? function (it) {
return classof(it) == 'String' ? split.call(it, '') : Object(it);
} : Object;
/***/ }),
/***/ "44d2":
/***/ (function(module, exports, __webpack_require__) {
var wellKnownSymbol = __webpack_require__("b622");
var create = __webpack_require__("7c73");
var definePropertyModule = __webpack_require__("9bf2");
var UNSCOPABLES = wellKnownSymbol('unscopables');
var ArrayPrototype = Array.prototype;
// Array.prototype[@@unscopables]
// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
if (ArrayPrototype[UNSCOPABLES] == undefined) {
definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {
configurable: true,
value: create(null)
});
}
// add a key to Array.prototype[@@unscopables]
module.exports = function (key) {
ArrayPrototype[UNSCOPABLES][key] = true;
};
/***/ }),
/***/ "44e7":
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__("861d");
var classof = __webpack_require__("c6b6");
var wellKnownSymbol = __webpack_require__("b622");
var MATCH = wellKnownSymbol('match');
// `IsRegExp` abstract operation
// https://tc39.es/ecma262/#sec-isregexp
module.exports = function (it) {
var isRegExp;
return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
};
/***/ }),
/***/ "4840":
/***/ (function(module, exports, __webpack_require__) {
var anObject = __webpack_require__("825a");
var aFunction = __webpack_require__("1c0b");
var wellKnownSymbol = __webpack_require__("b622");
var SPECIES = wellKnownSymbol('species');
// `SpeciesConstructor` abstract operation
// https://tc39.es/ecma262/#sec-speciesconstructor
module.exports = function (O, defaultConstructor) {
var C = anObject(O).constructor;
var S;
return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);
};
/***/ }),
/***/ "4930":
/***/ (function(module, exports, __webpack_require__) {
/* eslint-disable es/no-symbol -- required for testing */
var V8_VERSION = __webpack_require__("2d00");
var fails = __webpack_require__("d039");
// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
var symbol = Symbol();
// Chrome 38 Symbol has incorrect toString conversion
// `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
// Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
!Symbol.sham && V8_VERSION && V8_VERSION < 41;
});
/***/ }),
/***/ "4ae1":
/***/ (function(module, exports, __webpack_require__) {
var $ = __webpack_require__("23e7");
var getBuiltIn = __webpack_require__("d066");
var aFunction = __webpack_require__("1c0b");
var anObject = __webpack_require__("825a");
var isObject = __webpack_require__("861d");
var create = __webpack_require__("7c73");
var bind = __webpack_require__("0538");
var fails = __webpack_require__("d039");
var nativeConstruct = getBuiltIn('Reflect', 'construct');
// `Reflect.construct` method
// https://tc39.es/ecma262/#sec-reflect.construct
// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
var NEW_TARGET_BUG = fails(function () {
function F() { /* empty */ }
return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);
});
var ARGS_BUG = !fails(function () {
nativeConstruct(function () { /* empty */ });
});
var FORCED = NEW_TARGET_BUG || ARGS_BUG;
$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {
construct: function construct(Target, args /* , newTarget */) {
aFunction(Target);
anObject(args);
var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);
if (Target == newTarget) {
// w/o altered newTarget, optimization for 0-4 arguments
switch (args.length) {
case 0: return new Target();
case 1: return new Target(args[0]);
case 2: return new Target(args[0], args[1]);
case 3: return new Target(args[0], args[1], args[2]);
case 4: return new Target(args[0], args[1], args[2], args[3]);
}
// w/o altered newTarget, lot of arguments case
var $args = [null];
$args.push.apply($args, args);
return new (bind.apply(Target, $args))();
}
// with altered newTarget, not support built-in constructors
var proto = newTarget.prototype;
var instance = create(isObject(proto) ? proto : Object.prototype);
var result = Function.apply.call(Target, instance, args);
return isObject(result) ? result : instance;
}
});
/***/ }),
/***/ "4d64":
/***/ (function(module, exports, __webpack_require__) {
var toIndexedObject = __webpack_require__("fc6a");
var toLength = __webpack_require__("50c4");
var toAbsoluteIndex = __webpack_require__("23cb");
// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIndexedObject($this);
var length = toLength(O.length);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare -- NaN check
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare -- NaN check
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) {
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
module.exports = {
// `Array.prototype.includes` method
// https://tc39.es/ecma262/#sec-array.prototype.includes
includes: createMethod(true),
// `Array.prototype.indexOf` method
// https://tc39.es/ecma262/#sec-array.prototype.indexof
indexOf: createMethod(false)
};
/***/ }),
/***/ "4de4":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $ = __webpack_require__("23e7");
var $filter = __webpack_require__("b727").filter;
var arrayMethodHasSpeciesSupport = __webpack_require__("1dde");
var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
// `Array.prototype.filter` method
// https://tc39.es/ecma262/#sec-array.prototype.filter
// with adding support of @@species
$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
filter: function filter(callbackfn /* , thisArg */) {
return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
/***/ }),
/***/ "4df4":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var bind = __webpack_require__("0366");
var toObject = __webpack_require__("7b0b");
var callWithSafeIterationClosing = __webpack_require__("9bdd");
var isArrayIteratorMethod = __webpack_require__("e95a");
var toLength = __webpack_require__("50c4");
var createProperty = __webpack_require__("8418");
var getIteratorMethod = __webpack_require__("35a1");
// `Array.from` method implementation
// https://tc39.es/ecma262/#sec-array.from
module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
var O = toObject(arrayLike);
var C = typeof this == 'function' ? this : Array;
var argumentsLength = arguments.length;
var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
var mapping = mapfn !== undefined;
var iteratorMethod = getIteratorMethod(O);
var index = 0;
var length, result, step, iterator, next, value;
if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
// if the target is not iterable or it's an array with the default iterator - use a simple case
if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
iterator = iteratorMethod.call(O);
next = iterator.next;
result = new C();
for (;!(step = next.call(iterator)).done; index++) {
value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
createProperty(result, index, value);
}
} else {
length = toLength(O.length);
result = new C(length);
for (;length > index; index++) {
value = mapping ? mapfn(O[index], index) : O[index];
createProperty(result, index, value);
}
}
result.length = index;
return result;
};
/***/ }),
/***/ "4e82":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $ = __webpack_require__("23e7");
var aFunction = __webpack_require__("1c0b");
var toObject = __webpack_require__("7b0b");
var toLength = __webpack_require__("50c4");
var fails = __webpack_require__("d039");
var internalSort = __webpack_require__("addb");
var arrayMethodIsStrict = __webpack_require__("a640");
var FF = __webpack_require__("04d1");
var IE_OR_EDGE = __webpack_require__("d998");
var V8 = __webpack_require__("2d00");
var WEBKIT = __webpack_require__("512c");
var test = [];
var nativeSort = test.sort;
// IE8-
var FAILS_ON_UNDEFINED = fails(function () {
test.sort(undefined);
});
// V8 bug
var FAILS_ON_NULL = fails(function () {
test.sort(null);
});
// Old WebKit
var STRICT_METHOD = arrayMethodIsStrict('sort');
var STABLE_SORT = !fails(function () {
// feature detection can be too slow, so check engines versions
if (V8) return V8 < 70;
if (FF && FF > 3) return;
if (IE_OR_EDGE) return true;
if (WEBKIT) return WEBKIT < 603;
var result = '';
var code, chr, value, index;
// generate an array with more 512 elements (Chakra and old V8 fails only in this case)
for (code = 65; code < 76; code++) {
chr = String.fromCharCode(code);
switch (code) {
case 66: case 69: case 70: case 72: value = 3; break;
case 68: case 71: value = 4; break;
default: value = 2;
}
for (index = 0; index < 47; index++) {
test.push({ k: chr + index, v: value });
}
}
test.sort(function (a, b) { return b.v - a.v; });
for (index = 0; index < test.length; index++) {
chr = test[index].k.charAt(0);
if (result.charAt(result.length - 1) !== chr) result += chr;
}
return result !== 'DGBEFHACIJK';
});
var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;
var getSortCompare = function (comparefn) {
return function (x, y) {
if (y === undefined) return -1;
if (x === undefined) return 1;
if (comparefn !== undefined) return +comparefn(x, y) || 0;
return String(x) > String(y) ? 1 : -1;
};
};
// `Array.prototype.sort` method
// https://tc39.es/ecma262/#sec-array.prototype.sort
$({ target: 'Array', proto: true, forced: FORCED }, {
sort: function sort(comparefn) {
if (comparefn !== undefined) aFunction(comparefn);
var array = toObject(this);
if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);
var items = [];
var arrayLength = toLength(array.length);
var itemsLength, index;
for (index = 0; index < arrayLength; index++) {
if (index in array) items.push(array[index]);
}
items = internalSort(items, getSortCompare(comparefn));
itemsLength = items.length;
index = 0;
while (index < itemsLength) array[index] = items[index++];
while (index < arrayLength) delete array[index++];
return array;
}
});
/***/ }),
/***/ "4ec9":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var collection = __webpack_require__("6d61");
var collectionStrong = __webpack_require__("6566");
// `Map` constructor
// https://tc39.es/ecma262/#sec-map-objects
module.exports = collection('Map', function (init) {
return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };
}, collectionStrong);
/***/ }),
/***/ "50c4":
/***/ (function(module, exports, __webpack_require__) {
var toInteger = __webpack_require__("a691");
var min = Math.min;
// `ToLength` abstract operation
// https://tc39.es/ecma262/#sec-tolength
module.exports = function (argument) {
return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};
/***/ }),
/***/ "512c":
/***/ (function(module, exports, __webpack_require__) {
var userAgent = __webpack_require__("342f");
var webkit = userAgent.match(/AppleWebKit\/(\d+)\./);
module.exports = !!webkit && +webkit[1];
/***/ }),
/***/ "5135":
/***/ (function(module, exports, __webpack_require__) {
var toObject = __webpack_require__("7b0b");
var hasOwnProperty = {}.hasOwnProperty;
module.exports = Object.hasOwn || function hasOwn(it, key) {
return hasOwnProperty.call(toObject(it), key);
};
/***/ }),
/***/ "5692":
/***/ (function(module, exports, __webpack_require__) {
var IS_PURE = __webpack_require__("c430");
var store = __webpack_require__("c6cd");
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: '3.14.0',
mode: IS_PURE ? 'pure' : 'global',
copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
});
/***/ }),
/***/ "56ef":
/***/ (function(module, exports, __webpack_require__) {
var getBuiltIn = __webpack_require__("d066");
var getOwnPropertyNamesModule = __webpack_require__("241c");
var getOwnPropertySymbolsModule = __webpack_require__("7418");
var anObject = __webpack_require__("825a");
// all object keys, includes non-enumerable and symbols
module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
var keys = getOwnPropertyNamesModule.f(anObject(it));
var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
};
/***/ }),
/***/ "5899":
/***/ (function(module, exports) {
// a string of all valid unicode whitespaces
module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
'\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
/***/ }),
/***/ "58a8":
/***/ (function(module, exports, __webpack_require__) {
var requireObjectCoercible = __webpack_require__("1d80");
var whitespaces = __webpack_require__("5899");
var whitespace = '[' + whitespaces + ']';
var ltrim = RegExp('^' + whitespace + whitespace + '*');
var rtrim = RegExp(whitespace + whitespace + '*$');
// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
var createMethod = function (TYPE) {
return function ($this) {
var string = String(requireObjectCoercible($this));
if (TYPE & 1) string = string.replace(ltrim, '');
if (TYPE & 2) string = string.replace(rtrim, '');
return string;
};
};
module.exports = {
// `String.prototype.{ trimLeft, trimStart }` methods
// https://tc39.es/ecma262/#sec-string.prototype.trimstart
start: createMethod(1),
// `String.prototype.{ trimRight, trimEnd }` methods
// https://tc39.es/ecma262/#sec-string.prototype.trimend
end: createMethod(2),
// `String.prototype.trim` method
// https://tc39.es/ecma262/#sec-string.prototype.trim
trim: createMethod(3)
};
/***/ }),
/***/ "5c6c":
/***/ (function(module, exports) {
module.exports = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
/***/ }),
/***/ "5ea3":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
/* harmony default export */ __webpack_exports__["a"] = (freeGlobal);
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("c8ba")))
/***/ }),
/***/ "6062":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var collection = __webpack_require__("6d61");
var collectionStrong = __webpack_require__("6566");
// `Set` constructor
// https://tc39.es/ecma262/#sec-set-objects
module.exports = collection('Set', function (init) {
return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };
}, collectionStrong);
/***/ }),
/***/ "6386":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseText_vue_vue_type_style_index_0_id_5225550e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2de1");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseText_vue_vue_type_style_index_0_id_5225550e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseText_vue_vue_type_style_index_0_id_5225550e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */
/***/ }),
/***/ "6547":
/***/ (function(module, exports, __webpack_require__) {
var toInteger = __webpack_require__("a691");
var requireObjectCoercible = __webpack_require__("1d80");
// `String.prototype.{ codePointAt, at }` methods implementation
var createMethod = function (CONVERT_TO_STRING) {
return function ($this, pos) {
var S = String(requireObjectCoercible($this));
var position = toInteger(pos);
var size = S.length;
var first, second;
if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
first = S.charCodeAt(position);
return first < 0xD800 || first > 0xDBFF || position + 1 === size
|| (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
? CONVERT_TO_STRING ? S.charAt(position) : first
: CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
};
};
module.exports = {
// `String.prototype.codePointAt` method
// https://tc39.es/ecma262/#sec-string.prototype.codepointat
codeAt: createMethod(false),
// `String.prototype.at` method
// https://github.com/mathiasbynens/String.prototype.at
charAt: createMethod(true)
};
/***/ }),
/***/ "6566":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var defineProperty = __webpack_require__("9bf2").f;
var create = __webpack_require__("7c73");
var redefineAll = __webpack_require__("e2cc");
var bind = __webpack_require__("0366");
var anInstance = __webpack_require__("19aa");
var iterate = __webpack_require__("2266");
var defineIterator = __webpack_require__("7dd0");
var setSpecies = __webpack_require__("2626");
var DESCRIPTORS = __webpack_require__("83ab");
var fastKey = __webpack_require__("f183").fastKey;
var InternalStateModule = __webpack_require__("69f3");
var setInternalState = InternalStateModule.set;
var internalStateGetterFor = InternalStateModule.getterFor;
module.exports = {
getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
var C = wrapper(function (that, iterable) {
anInstance(that, C, CONSTRUCTOR_NAME);
setInternalState(that, {
type: CONSTRUCTOR_NAME,
index: create(null),
first: undefined,
last: undefined,
size: 0
});
if (!DESCRIPTORS) that.size = 0;
if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
});
var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
var define = function (that, key, value) {
var state = getInternalState(that);
var entry = getEntry(that, key);
var previous, index;
// change existing entry
if (entry) {
entry.value = value;
// create new entry
} else {
state.last = entry = {
index: index = fastKey(key, true),
key: key,
value: value,
previous: previous = state.last,
next: undefined,
removed: false
};
if (!state.first) state.first = entry;
if (previous) previous.next = entry;
if (DESCRIPTORS) state.size++;
else that.size++;
// add to index
if (index !== 'F') state.index[index] = entry;
} return that;
};
var getEntry = function (that, key) {
var state = getInternalState(that);
// fast case
var index = fastKey(key);
var entry;
if (index !== 'F') return state.index[index];
// frozen object case
for (entry = state.first; entry; entry = entry.next) {
if (entry.key == key) return entry;
}
};
redefineAll(C.prototype, {
// `{ Map, Set }.prototype.clear()` methods
// https://tc39.es/ecma262/#sec-map.prototype.clear
// https://tc39.es/ecma262/#sec-set.prototype.clear
clear: function clear() {
var that = this;
var state = getInternalState(that);
var data = state.index;
var entry = state.first;
while (entry) {
entry.removed = true;
if (entry.previous) entry.previous = entry.previous.next = undefined;
delete data[entry.index];
entry = entry.next;
}
state.first = state.last = undefined;
if (DESCRIPTORS) state.size = 0;
else that.size = 0;
},
// `{ Map, Set }.prototype.delete(key)` methods
// https://tc39.es/ecma262/#sec-map.prototype.delete
// https://tc39.es/ecma262/#sec-set.prototype.delete
'delete': function (key) {
var that = this;
var state = getInternalState(that);
var entry = getEntry(that, key);
if (entry) {
var next = entry.next;
var prev = entry.previous;
delete state.index[entry.index];
entry.removed = true;
if (prev) prev.next = next;
if (next) next.previous = prev;
if (state.first == entry) state.first = next;
if (state.last == entry) state.last = prev;
if (DESCRIPTORS) state.size--;
else that.size--;
} return !!entry;
},
// `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods
// https://tc39.es/ecma262/#sec-map.prototype.foreach
// https://tc39.es/ecma262/#sec-set.prototype.foreach
forEach: function forEach(callbackfn /* , that = undefined */) {
var state = getInternalState(this);
var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
var entry;
while (entry = entry ? entry.next : state.first) {
boundFunction(entry.value, entry.key, this);
// revert to the last existing entry
while (entry && entry.removed) entry = entry.previous;
}
},
// `{ Map, Set}.prototype.has(key)` methods
// https://tc39.es/ecma262/#sec-map.prototype.has
// https://tc39.es/ecma262/#sec-set.prototype.has
has: function has(key) {
return !!getEntry(this, key);
}
});
redefineAll(C.prototype, IS_MAP ? {
// `Map.prototype.get(key)` method
// https://tc39.es/ecma262/#sec-map.prototype.get
get: function get(key) {
var entry = getEntry(this, key);
return entry && entry.value;
},
// `Map.prototype.set(key, value)` method
// https://tc39.es/ecma262/#sec-map.prototype.set
set: function set(key, value) {
return define(this, key === 0 ? 0 : key, value);
}
} : {
// `Set.prototype.add(value)` method
// https://tc39.es/ecma262/#sec-set.prototype.add
add: function add(value) {
return define(this, value = value === 0 ? 0 : value, value);
}
});
if (DESCRIPTORS) defineProperty(C.prototype, 'size', {
get: function () {
return getInternalState(this).size;
}
});
return C;
},
setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {
var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';
var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);
var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);
// `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods
// https://tc39.es/ecma262/#sec-map.prototype.entries
// https://tc39.es/ecma262/#sec-map.prototype.keys
// https://tc39.es/ecma262/#sec-map.prototype.values
// https://tc39.es/ecma262/#sec-map.prototype-@@iterator
// https://tc39.es/ecma262/#sec-set.prototype.entries
// https://tc39.es/ecma262/#sec-set.prototype.keys
// https://tc39.es/ecma262/#sec-set.prototype.values
// https://tc39.es/ecma262/#sec-set.prototype-@@iterator
defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {
setInternalState(this, {
type: ITERATOR_NAME,
target: iterated,
state: getInternalCollectionState(iterated),
kind: kind,
last: undefined
});
}, function () {
var state = getInternalIteratorState(this);
var kind = state.kind;
var entry = state.last;
// revert to the last existing entry
while (entry && entry.removed) entry = entry.previous;
// get next entry
if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {
// or finish the iteration
state.target = undefined;
return { value: undefined, done: true };
}
// return step by kind
if (kind == 'keys') return { value: entry.key, done: false };
if (kind == 'values') return { value: entry.value, done: false };
return { value: [entry.key, entry.value], done: false };
}, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
// `{ Map, Set }.prototype[@@species]` accessors
// https://tc39.es/ecma262/#sec-get-map-@@species
// https://tc39.es/ecma262/#sec-get-set-@@species
setSpecies(CONSTRUCTOR_NAME);
}
};
/***/ }),
/***/ "65f0":
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__("861d");
var isArray = __webpack_require__("e8b5");
var wellKnownSymbol = __webpack_require__("b622");
var SPECIES = wellKnownSymbol('species');
// `ArraySpeciesCreate` abstract operation
// https://tc39.es/ecma262/#sec-arrayspeciescreate
module.exports = function (originalArray, length) {
var C;
if (isArray(originalArray)) {
C = originalArray.constructor;
// cross-realm fallback
if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
else if (isObject(C)) {
C = C[SPECIES];
if (C === null) C = undefined;
}
} return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
};
/***/ }),
/***/ "69f3":
/***/ (function(module, exports, __webpack_require__) {
var NATIVE_WEAK_MAP = __webpack_require__("7f9a");
var global = __webpack_require__("da84");
var isObject = __webpack_require__("861d");
var createNonEnumerableProperty = __webpack_require__("9112");
var objectHas = __webpack_require__("5135");
var shared = __webpack_require__("c6cd");
var sharedKey = __webpack_require__("f772");
var hiddenKeys = __webpack_require__("d012");
var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
var WeakMap = global.WeakMap;
var set, get, has;
var enforce = function (it) {
return has(it) ? get(it) : set(it, {});
};
var getterFor = function (TYPE) {
return function (it) {
var state;
if (!isObject(it) || (state = get(it)).type !== TYPE) {
throw TypeError('Incompatible receiver, ' + TYPE + ' required');
} return state;
};
};
if (NATIVE_WEAK_MAP || shared.state) {
var store = shared.state || (shared.state = new WeakMap());
var wmget = store.get;
var wmhas = store.has;
var wmset = store.set;
set = function (it, metadata) {
if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
metadata.facade = it;
wmset.call(store, it, metadata);
return metadata;
};
get = function (it) {
return wmget.call(store, it) || {};
};
has = function (it) {
return wmhas.call(store, it);
};
} else {
var STATE = sharedKey('state');
hiddenKeys[STATE] = true;
set = function (it, metadata) {
if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
metadata.facade = it;
createNonEnumerableProperty(it, STATE, metadata);
return metadata;
};
get = function (it) {
return objectHas(it, STATE) ? it[STATE] : {};
};
has = function (it) {
return objectHas(it, STATE);
};
}
module.exports = {
set: set,
get: get,
has: has,
enforce: enforce,
getterFor: getterFor
};
/***/ }),
/***/ "6bb5":
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "6d61":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $ = __webpack_require__("23e7");
var global = __webpack_require__("da84");
var isForced = __webpack_require__("94ca");
var redefine = __webpack_require__("6eeb");
var InternalMetadataModule = __webpack_require__("f183");
var iterate = __webpack_require__("2266");
var anInstance = __webpack_require__("19aa");
var isObject = __webpack_require__("861d");
var fails = __webpack_require__("d039");
var checkCorrectnessOfIteration = __webpack_require__("1c7e");
var setToStringTag = __webpack_require__("d44e");
var inheritIfRequired = __webpack_require__("7156");
module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;
var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;
var ADDER = IS_MAP ? 'set' : 'add';
var NativeConstructor = global[CONSTRUCTOR_NAME];
var NativePrototype = NativeConstructor && NativeConstructor.prototype;
var Constructor = NativeConstructor;
var exported = {};
var fixMethod = function (KEY) {
var nativeMethod = NativePrototype[KEY];
redefine(NativePrototype, KEY,
KEY == 'add' ? function add(value) {
nativeMethod.call(this, value === 0 ? 0 : value);
return this;
} : KEY == 'delete' ? function (key) {
return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);
} : KEY == 'get' ? function get(key) {
return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);
} : KEY == 'has' ? function has(key) {
return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);
} : function set(key, value) {
nativeMethod.call(this, key === 0 ? 0 : key, value);
return this;
}
);
};
var REPLACE = isForced(
CONSTRUCTOR_NAME,
typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {
new NativeConstructor().entries().next();
}))
);
if (REPLACE) {
// create collection constructor
Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);
InternalMetadataModule.REQUIRED = true;
} else if (isForced(CONSTRUCTOR_NAME, true)) {
var instance = new Constructor();
// early implementations not supports chaining
var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
// V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });
// most early implementations doesn't supports iterables, most modern - not close it correctly
// eslint-disable-next-line no-new -- required for testing
var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });
// for early implementations -0 and +0 not the same
var BUGGY_ZERO = !IS_WEAK && fails(function () {
// V8 ~ Chromium 42- fails only with 5+ elements
var $instance = new NativeConstructor();
var index = 5;
while (index--) $instance[ADDER](index, index);
return !$instance.has(-0);
});
if (!ACCEPT_ITERABLES) {
Constructor = wrapper(function (dummy, iterable) {
anInstance(dummy, Constructor, CONSTRUCTOR_NAME);
var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);
if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
return that;
});
Constructor.prototype = NativePrototype;
NativePrototype.constructor = Constructor;
}
if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
fixMethod('delete');
fixMethod('has');
IS_MAP && fixMethod('get');
}
if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
// weak collections should not contains .clear method
if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;
}
exported[CONSTRUCTOR_NAME] = Constructor;
$({ global: true, forced: Constructor != NativeConstructor }, exported);
setToStringTag(Constructor, CONSTRUCTOR_NAME);
if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);
return Constructor;
};
/***/ }),
/***/ "6eeb":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
var createNonEnumerableProperty = __webpack_require__("9112");
var has = __webpack_require__("5135");
var setGlobal = __webpack_require__("ce4e");
var inspectSource = __webpack_require__("8925");
var InternalStateModule = __webpack_require__("69f3");
var getInternalState = InternalStateModule.get;
var enforceInternalState = InternalStateModule.enforce;
var TEMPLATE = String(String).split('String');
(module.exports = function (O, key, value, options) {
var unsafe = options ? !!options.unsafe : false;
var simple = options ? !!options.enumerable : false;
var noTargetGet = options ? !!options.noTargetGet : false;
var state;
if (typeof value == 'function') {
if (typeof key == 'string' && !has(value, 'name')) {
createNonEnumerableProperty(value, 'name', key);
}
state = enforceInternalState(value);
if (!state.source) {
state.source = TEMPLATE.join(typeof key == 'string' ? key : '');
}
}
if (O === global) {
if (simple) O[key] = value;
else setGlobal(key, value);
return;
} else if (!unsafe) {
delete O[key];
} else if (!noTargetGet && O[key]) {
simple = true;
}
if (simple) O[key] = value;
else createNonEnumerableProperty(O, key, value);
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, 'toString', function toString() {
return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
});
/***/ }),
/***/ "7037":
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__("a4d3");
__webpack_require__("e01a");
__webpack_require__("d3b7");
__webpack_require__("d28b");
__webpack_require__("3ca3");
__webpack_require__("ddb0");
function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
module.exports = _typeof = function _typeof(obj) {
return typeof obj;
};
module.exports["default"] = module.exports, module.exports.__esModule = true;
} else {
module.exports = _typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
module.exports["default"] = module.exports, module.exports.__esModule = true;
}
return _typeof(obj);
}
module.exports = _typeof;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/***/ "7156":
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__("861d");
var setPrototypeOf = __webpack_require__("d2bb");
// makes subclassing work correct for wrapped built-ins
module.exports = function ($this, dummy, Wrapper) {
var NewTarget, NewTargetPrototype;
if (
// it can work only with native `setPrototypeOf`
setPrototypeOf &&
// we haven't completely correct pre-ES6 way for getting `new.target`, so use this
typeof (NewTarget = dummy.constructor) == 'function' &&
NewTarget !== Wrapper &&
isObject(NewTargetPrototype = NewTarget.prototype) &&
NewTargetPrototype !== Wrapper.prototype
) setPrototypeOf($this, NewTargetPrototype);
return $this;
};
/***/ }),
/***/ "7418":
/***/ (function(module, exports) {
// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
exports.f = Object.getOwnPropertySymbols;
/***/ }),
/***/ "746f":
/***/ (function(module, exports, __webpack_require__) {
var path = __webpack_require__("428f");
var has = __webpack_require__("5135");
var wrappedWellKnownSymbolModule = __webpack_require__("e538");
var defineProperty = __webpack_require__("9bf2").f;
module.exports = function (NAME) {
var Symbol = path.Symbol || (path.Symbol = {});
if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {
value: wrappedWellKnownSymbolModule.f(NAME)
});
};
/***/ }),
/***/ "7839":
/***/ (function(module, exports) {
// IE8- don't enum bug keys
module.exports = [
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf'
];
/***/ }),
/***/ "7b0b":
/***/ (function(module, exports, __webpack_require__) {
var requireObjectCoercible = __webpack_require__("1d80");
// `ToObject` abstract operation
// https://tc39.es/ecma262/#sec-toobject
module.exports = function (argument) {
return Object(requireObjectCoercible(argument));
};
/***/ }),
/***/ "7c73":
/***/ (function(module, exports, __webpack_require__) {
var anObject = __webpack_require__("825a");
var defineProperties = __webpack_require__("37e8");
var enumBugKeys = __webpack_require__("7839");
var hiddenKeys = __webpack_require__("d012");
var html = __webpack_require__("1be4");
var documentCreateElement = __webpack_require__("cc12");
var sharedKey = __webpack_require__("f772");
var GT = '>';
var LT = '<';
var PROTOTYPE = 'prototype';
var SCRIPT = 'script';
var IE_PROTO = sharedKey('IE_PROTO');
var EmptyConstructor = function () { /* empty */ };
var scriptTag = function (content) {
return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
};
// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
var NullProtoObjectViaActiveX = function (activeXDocument) {
activeXDocument.write(scriptTag(''));
activeXDocument.close();
var temp = activeXDocument.parentWindow.Object;
activeXDocument = null; // avoid memory leak
return temp;
};
// Create object with fake `null` prototype: use iframe Object with cleared prototype
var NullProtoObjectViaIFrame = function () {
// Thrash, waste and sodomy: IE GC bug
var iframe = documentCreateElement('iframe');
var JS = 'java' + SCRIPT + ':';
var iframeDocument;
iframe.style.display = 'none';
html.appendChild(iframe);
// https://github.com/zloirock/core-js/issues/475
iframe.src = String(JS);
iframeDocument = iframe.contentWindow.document;
iframeDocument.open();
iframeDocument.write(scriptTag('document.F=Object'));
iframeDocument.close();
return iframeDocument.F;
};
// Check for document.domain and active x support
// No need to use active x approach when document.domain is not set
// see https://github.com/es-shims/es5-shim/issues/150
// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
// avoid IE GC bug
var activeXDocument;
var NullProtoObject = function () {
try {
/* global ActiveXObject -- old IE */
activeXDocument = document.domain && new ActiveXObject('htmlfile');
} catch (error) { /* ignore */ }
NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
var length = enumBugKeys.length;
while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
return NullProtoObject();
};
hiddenKeys[IE_PROTO] = true;
// `Object.create` method
// https://tc39.es/ecma262/#sec-object.create
module.exports = Object.create || function create(O, Properties) {
var result;
if (O !== null) {
EmptyConstructor[PROTOTYPE] = anObject(O);
result = new EmptyConstructor();
EmptyConstructor[PROTOTYPE] = null;
// add "__proto__" for Object.getPrototypeOf polyfill
result[IE_PROTO] = O;
} else result = NullProtoObject();
return Properties === undefined ? result : defineProperties(result, Properties);
};
/***/ }),
/***/ "7dd0":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $ = __webpack_require__("23e7");
var createIteratorConstructor = __webpack_require__("9ed3");
var getPrototypeOf = __webpack_require__("e163");
var setPrototypeOf = __webpack_require__("d2bb");
var setToStringTag = __webpack_require__("d44e");
var createNonEnumerableProperty = __webpack_require__("9112");
var redefine = __webpack_require__("6eeb");
var wellKnownSymbol = __webpack_require__("b622");
var IS_PURE = __webpack_require__("c430");
var Iterators = __webpack_require__("3f8c");
var IteratorsCore = __webpack_require__("ae93");
var IteratorPrototype = IteratorsCore.IteratorPrototype;
var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
var ITERATOR = wellKnownSymbol('iterator');
var KEYS = 'keys';
var VALUES = 'values';
var ENTRIES = 'entries';
var returnThis = function () { return this; };
module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
createIteratorConstructor(IteratorConstructor, NAME, next);
var getIterationMethod = function (KIND) {
if (KIND === DEFAULT && defaultIterator) return defaultIterator;
if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];
switch (KIND) {
case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };
case VALUES: return function values() { return new IteratorConstructor(this, KIND); };
case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };
} return function () { return new IteratorConstructor(this); };
};
var TO_STRING_TAG = NAME + ' Iterator';
var INCORRECT_VALUES_NAME = false;
var IterablePrototype = Iterable.prototype;
var nativeIterator = IterablePrototype[ITERATOR]
|| IterablePrototype['@@iterator']
|| DEFAULT && IterablePrototype[DEFAULT];
var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
var CurrentIteratorPrototype, methods, KEY;
// fix native
if (anyNativeIterator) {
CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
if (setPrototypeOf) {
setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
} else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {
createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);
}
}
// Set @@toStringTag to native iterators
setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;
}
}
// fix Array.prototype.{ values, @@iterator }.name in V8 / FF
if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
INCORRECT_VALUES_NAME = true;
defaultIterator = function values() { return nativeIterator.call(this); };
}
// define iterator
if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);
}
Iterators[NAME] = defaultIterator;
// export additional methods
if (DEFAULT) {
methods = {
values: getIterationMethod(VALUES),
keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
entries: getIterationMethod(ENTRIES)
};
if (FORCED) for (KEY in methods) {
if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
redefine(IterablePrototype, KEY, methods[KEY]);
}
} else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
}
return methods;
};
/***/ }),
/***/ "7f9a":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
var inspectSource = __webpack_require__("8925");
var WeakMap = global.WeakMap;
module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
/***/ }),
/***/ "825a":
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__("861d");
module.exports = function (it) {
if (!isObject(it)) {
throw TypeError(String(it) + ' is not an object');
} return it;
};
/***/ }),
/***/ "83ab":
/***/ (function(module, exports, __webpack_require__) {
var fails = __webpack_require__("d039");
// Detect IE8's incomplete defineProperty implementation
module.exports = !fails(function () {
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
});
/***/ }),
/***/ "8418":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var toPrimitive = __webpack_require__("c04e");
var definePropertyModule = __webpack_require__("9bf2");
var createPropertyDescriptor = __webpack_require__("5c6c");
module.exports = function (object, key, value) {
var propertyKey = toPrimitive(key);
if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
else object[propertyKey] = value;
};
/***/ }),
/***/ "841c":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var fixRegExpWellKnownSymbolLogic = __webpack_require__("d784");
var anObject = __webpack_require__("825a");
var requireObjectCoercible = __webpack_require__("1d80");
var sameValue = __webpack_require__("129f");
var regExpExec = __webpack_require__("14c3");
// @@search logic
fixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {
return [
// `String.prototype.search` method
// https://tc39.es/ecma262/#sec-string.prototype.search
function search(regexp) {
var O = requireObjectCoercible(this);
var searcher = regexp == undefined ? undefined : regexp[SEARCH];
return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
},
// `RegExp.prototype[@@search]` method
// https://tc39.es/ecma262/#sec-regexp.prototype-@@search
function (regexp) {
var res = maybeCallNative(nativeSearch, regexp, this);
if (res.done) return res.value;
var rx = anObject(regexp);
var S = String(this);
var previousLastIndex = rx.lastIndex;
if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;
var result = regExpExec(rx, S);
if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;
return result === null ? -1 : result.index;
}
];
});
/***/ }),
/***/ "85fe":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ObserveVisibility; });
/* unused harmony export install */
function _typeof(obj) {
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
_typeof = function (obj) {
return typeof obj;
};
} else {
_typeof = function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
return _typeof(obj);
}
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
}
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
}
}
function _iterableToArray(iter) {
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance");
}
function processOptions(value) {
var options;
if (typeof value === 'function') {
// Simple options (callback-only)
options = {
callback: value
};
} else {
// Options object
options = value;
}
return options;
}
function throttle(callback, delay) {
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var timeout;
var lastState;
var currentArgs;
var throttled = function throttled(state) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
currentArgs = args;
if (timeout && state === lastState) return;
var leading = options.leading;
if (typeof leading === 'function') {
leading = leading(state, lastState);
}
if ((!timeout || state !== lastState) && leading) {
callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));
}
lastState = state;
clearTimeout(timeout);
timeout = setTimeout(function () {
callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));
timeout = 0;
}, delay);
};
throttled._clear = function () {
clearTimeout(timeout);
timeout = null;
};
return throttled;
}
function deepEqual(val1, val2) {
if (val1 === val2) return true;
if (_typeof(val1) === 'object') {
for (var key in val1) {
if (!deepEqual(val1[key], val2[key])) {
return false;
}
}
return true;
}
return false;
}
var VisibilityState =
/*#__PURE__*/
function () {
function VisibilityState(el, options, vnode) {
_classCallCheck(this, VisibilityState);
this.el = el;
this.observer = null;
this.frozen = false;
this.createObserver(options, vnode);
}
_createClass(VisibilityState, [{
key: "createObserver",
value: function createObserver(options, vnode) {
var _this = this;
if (this.observer) {
this.destroyObserver();
}
if (this.frozen) return;
this.options = processOptions(options);
this.callback = function (result, entry) {
_this.options.callback(result, entry);
if (result && _this.options.once) {
_this.frozen = true;
_this.destroyObserver();
}
}; // Throttle
if (this.callback && this.options.throttle) {
var _ref = this.options.throttleOptions || {},
_leading = _ref.leading;
this.callback = throttle(this.callback, this.options.throttle, {
leading: function leading(state) {
return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;
}
});
}
this.oldResult = undefined;
this.observer = new IntersectionObserver(function (entries) {
var entry = entries[0];
if (entries.length > 1) {
var intersectingEntry = entries.find(function (e) {
return e.isIntersecting;
});
if (intersectingEntry) {
entry = intersectingEntry;
}
}
if (_this.callback) {
// Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.
var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;
if (result === _this.oldResult) return;
_this.oldResult = result;
_this.callback(result, entry);
}
}, this.options.intersection); // Wait for the element to be in document
vnode.context.$nextTick(function () {
if (_this.observer) {
_this.observer.observe(_this.el);
}
});
}
}, {
key: "destroyObserver",
value: function destroyObserver() {
if (this.observer) {
this.observer.disconnect();
this.observer = null;
} // Cancel throttled call
if (this.callback && this.callback._clear) {
this.callback._clear();
this.callback = null;
}
}
}, {
key: "threshold",
get: function get() {
return this.options.intersection && this.options.intersection.threshold || 0;
}
}]);
return VisibilityState;
}();
function bind(el, _ref2, vnode) {
var value = _ref2.value;
if (!value) return;
if (typeof IntersectionObserver === 'undefined') {
console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');
} else {
var state = new VisibilityState(el, value, vnode);
el._vue_visibilityState = state;
}
}
function update(el, _ref3, vnode) {
var value = _ref3.value,
oldValue = _ref3.oldValue;
if (deepEqual(value, oldValue)) return;
var state = el._vue_visibilityState;
if (!value) {
unbind(el);
return;
}
if (state) {
state.createObserver(value, vnode);
} else {
bind(el, {
value: value
}, vnode);
}
}
function unbind(el) {
var state = el._vue_visibilityState;
if (state) {
state.destroyObserver();
delete el._vue_visibilityState;
}
}
var ObserveVisibility = {
bind: bind,
update: update,
unbind: unbind
};
function install(Vue) {
Vue.directive('observe-visibility', ObserveVisibility);
/* -- Add more components here -- */
}
/* -- Plugin definition & Auto-install -- */
/* You shouldn't have to modify the code below */
// Plugin
var plugin = {
// eslint-disable-next-line no-undef
version: "0.4.6",
install: install
};
var GlobalVue = null;
if (typeof window !== 'undefined') {
GlobalVue = window.Vue;
} else if (typeof global !== 'undefined') {
GlobalVue = global.Vue;
}
if (GlobalVue) {
GlobalVue.use(plugin);
}
/* unused harmony default export */ var _unused_webpack_default_export = (plugin);
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("c8ba")))
/***/ }),
/***/ "861d":
/***/ (function(module, exports) {
module.exports = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
/***/ }),
/***/ "8875":
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller
// MIT license
// source: https://github.com/amiller-gh/currentScript-polyfill
// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505
(function (root, factory) {
if (true) {
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else {}
}(typeof self !== 'undefined' ? self : this, function () {
function getCurrentScript () {
var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')
// for chrome
if (!descriptor && 'currentScript' in document && document.currentScript) {
return document.currentScript
}
// for other browsers with native support for currentScript
if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {
return document.currentScript
}
// IE 8-10 support script readyState
// IE 11+ & Firefox support stack trace
try {
throw new Error();
}
catch (err) {
// Find the second match for the "at" string to get file src url from stack.
var ieStackRegExp = /.*at [^(]*\((.*):(.+):(.+)\)$/ig,
ffStackRegExp = /@([^@]*):(\d+):(\d+)\s*$/ig,
stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),
scriptLocation = (stackDetails && stackDetails[1]) || false,
line = (stackDetails && stackDetails[2]) || false,
currentLocation = document.location.href.replace(document.location.hash, ''),
pageSource,
inlineScriptSourceRegExp,
inlineScriptSource,
scripts = document.getElementsByTagName('script'); // Live NodeList collection
if (scriptLocation === currentLocation) {
pageSource = document.documentElement.outerHTML;
inlineScriptSourceRegExp = new RegExp('(?:[^\\n]+?\\n){0,' + (line - 2) + '}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*', 'i');
inlineScriptSource = pageSource.replace(inlineScriptSourceRegExp, '$1').trim();
}
for (var i = 0; i < scripts.length; i++) {
// If ready state is interactive, return the script tag
if (scripts[i].readyState === 'interactive') {
return scripts[i];
}
// If src matches, return the script tag
if (scripts[i].src === scriptLocation) {
return scripts[i];
}
// If inline source matches, return the script tag
if (
scriptLocation === currentLocation &&
scripts[i].innerHTML &&
scripts[i].innerHTML.trim() === inlineScriptSource
) {
return scripts[i];
}
}
// If no match, return null
return null;
}
};
return getCurrentScript
}));
/***/ }),
/***/ "8925":
/***/ (function(module, exports, __webpack_require__) {
var store = __webpack_require__("c6cd");
var functionToString = Function.toString;
// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
if (typeof store.inspectSource != 'function') {
store.inspectSource = function (it) {
return functionToString.call(it);
};
}
module.exports = store.inspectSource;
/***/ }),
/***/ "8aa5":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var charAt = __webpack_require__("6547").charAt;
// `AdvanceStringIndex` abstract operation
// https://tc39.es/ecma262/#sec-advancestringindex
module.exports = function (S, index, unicode) {
return index + (unicode ? charAt(S, index).length : 1);
};
/***/ }),
/***/ "8bbf":
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;
/***/ }),
/***/ "90e3":
/***/ (function(module, exports) {
var id = 0;
var postfix = Math.random();
module.exports = function (key) {
return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
};
/***/ }),
/***/ "9112":
/***/ (function(module, exports, __webpack_require__) {
var DESCRIPTORS = __webpack_require__("83ab");
var definePropertyModule = __webpack_require__("9bf2");
var createPropertyDescriptor = __webpack_require__("5c6c");
module.exports = DESCRIPTORS ? function (object, key, value) {
return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
/***/ }),
/***/ "9263":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
/* eslint-disable regexp/no-useless-quantifier -- testing */
var regexpFlags = __webpack_require__("ad6d");
var stickyHelpers = __webpack_require__("9f7f");
var shared = __webpack_require__("5692");
var nativeExec = RegExp.prototype.exec;
var nativeReplace = shared('native-string-replace', String.prototype.replace);
var patchedExec = nativeExec;
var UPDATES_LAST_INDEX_WRONG = (function () {
var re1 = /a/;
var re2 = /b*/g;
nativeExec.call(re1, 'a');
nativeExec.call(re2, 'a');
return re1.lastIndex !== 0 || re2.lastIndex !== 0;
})();
var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;
// nonparticipating capturing group, copied from es5-shim's String#split patch.
var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;
if (PATCH) {
patchedExec = function exec(str) {
var re = this;
var lastIndex, reCopy, match, i;
var sticky = UNSUPPORTED_Y && re.sticky;
var flags = regexpFlags.call(re);
var source = re.source;
var charsAdded = 0;
var strCopy = str;
if (sticky) {
flags = flags.replace('y', '');
if (flags.indexOf('g') === -1) {
flags += 'g';
}
strCopy = String(str).slice(re.lastIndex);
// Support anchored sticky behavior.
if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
source = '(?: ' + source + ')';
strCopy = ' ' + strCopy;
charsAdded++;
}
// ^(? + rx + ) is needed, in combination with some str slicing, to
// simulate the 'y' flag.
reCopy = new RegExp('^(?:' + source + ')', flags);
}
if (NPCG_INCLUDED) {
reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
}
if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
match = nativeExec.call(sticky ? reCopy : re, strCopy);
if (sticky) {
if (match) {
match.input = match.input.slice(charsAdded);
match[0] = match[0].slice(charsAdded);
match.index = re.lastIndex;
re.lastIndex += match[0].length;
} else re.lastIndex = 0;
} else if (UPDATES_LAST_INDEX_WRONG && match) {
re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
}
if (NPCG_INCLUDED && match && match.length > 1) {
// Fix browsers whose `exec` methods don't consistently return `undefined`
// for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
nativeReplace.call(match[0], reCopy, function () {
for (i = 1; i < arguments.length - 2; i++) {
if (arguments[i] === undefined) match[i] = undefined;
}
});
}
return match;
};
}
module.exports = patchedExec;
/***/ }),
/***/ "94ca":
/***/ (function(module, exports, __webpack_require__) {
var fails = __webpack_require__("d039");
var replacement = /#|\.prototype\./;
var isForced = function (feature, detection) {
var value = data[normalize(feature)];
return value == POLYFILL ? true
: value == NATIVE ? false
: typeof detection == 'function' ? fails(detection)
: !!detection;
};
var normalize = isForced.normalize = function (string) {
return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';
module.exports = isForced;
/***/ }),
/***/ "99af":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $ = __webpack_require__("23e7");
var fails = __webpack_require__("d039");
var isArray = __webpack_require__("e8b5");
var isObject = __webpack_require__("861d");
var toObject = __webpack_require__("7b0b");
var toLength = __webpack_require__("50c4");
var createProperty = __webpack_require__("8418");
var arraySpeciesCreate = __webpack_require__("65f0");
var arrayMethodHasSpeciesSupport = __webpack_require__("1dde");
var wellKnownSymbol = __webpack_require__("b622");
var V8_VERSION = __webpack_require__("2d00");
var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
// We can't use this feature detection in V8 since it causes
// deoptimization and serious performance degradation
// https://github.com/zloirock/core-js/issues/679
var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {
var array = [];
array[IS_CONCAT_SPREADABLE] = false;
return array.concat()[0] !== array;
});
var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
var isConcatSpreadable = function (O) {
if (!isObject(O)) return false;
var spreadable = O[IS_CONCAT_SPREADABLE];
return spreadable !== undefined ? !!spreadable : isArray(O);
};
var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
// `Array.prototype.concat` method
// https://tc39.es/ecma262/#sec-array.prototype.concat
// with adding support of @@isConcatSpreadable and @@species
$({ target: 'Array', proto: true, forced: FORCED }, {
// eslint-disable-next-line no-unused-vars -- required for `.length`
concat: function concat(arg) {
var O = toObject(this);
var A = arraySpeciesCreate(O, 0);
var n = 0;
var i, k, length, len, E;
for (i = -1, length = arguments.length; i < length; i++) {
E = i === -1 ? O : arguments[i];
if (isConcatSpreadable(E)) {
len = toLength(E.length);
if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
} else {
if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
createProperty(A, n++, E);
}
}
A.length = n;
return A;
}
});
/***/ }),
/***/ "9bdd":
/***/ (function(module, exports, __webpack_require__) {
var anObject = __webpack_require__("825a");
var iteratorClose = __webpack_require__("2a62");
// call something on iterator step with safe closing on error
module.exports = function (iterator, fn, value, ENTRIES) {
try {
return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
} catch (error) {
iteratorClose(iterator);
throw error;
}
};
/***/ }),
/***/ "9bf2":
/***/ (function(module, exports, __webpack_require__) {
var DESCRIPTORS = __webpack_require__("83ab");
var IE8_DOM_DEFINE = __webpack_require__("0cfb");
var anObject = __webpack_require__("825a");
var toPrimitive = __webpack_require__("c04e");
// eslint-disable-next-line es/no-object-defineproperty -- safe
var $defineProperty = Object.defineProperty;
// `Object.defineProperty` method
// https://tc39.es/ecma262/#sec-object.defineproperty
exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
if (IE8_DOM_DEFINE) try {
return $defineProperty(O, P, Attributes);
} catch (error) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
/***/ }),
/***/ "9ed3":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var IteratorPrototype = __webpack_require__("ae93").IteratorPrototype;
var create = __webpack_require__("7c73");
var createPropertyDescriptor = __webpack_require__("5c6c");
var setToStringTag = __webpack_require__("d44e");
var Iterators = __webpack_require__("3f8c");
var returnThis = function () { return this; };
module.exports = function (IteratorConstructor, NAME, next) {
var TO_STRING_TAG = NAME + ' Iterator';
IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });
setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
Iterators[TO_STRING_TAG] = returnThis;
return IteratorConstructor;
};
/***/ }),
/***/ "9f7f":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var fails = __webpack_require__("d039");
// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
// so we use an intermediate function.
function RE(s, f) {
return RegExp(s, f);
}
exports.UNSUPPORTED_Y = fails(function () {
// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
var re = RE('a', 'y');
re.lastIndex = 2;
return re.exec('abcd') != null;
});
exports.BROKEN_CARET = fails(function () {
// https://bugzilla.mozilla.org/show_bug.cgi?id=773687
var re = RE('^r', 'gy');
re.lastIndex = 2;
return re.exec('str') != null;
});
/***/ }),
/***/ "a053":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VLine_vue_vue_type_style_index_0_id_040f6976_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e11f");
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VLine_vue_vue_type_style_index_0_id_040f6976_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VLine_vue_vue_type_style_index_0_id_040f6976_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */
/***/ }),
/***/ "a15b":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $ = __webpack_require__("23e7");
var IndexedObject = __webpack_require__("44ad");
var toIndexedObject = __webpack_require__("fc6a");
var arrayMethodIsStrict = __webpack_require__("a640");
var nativeJoin = [].join;
var ES3_STRINGS = IndexedObject != Object;
var STRICT_METHOD = arrayMethodIsStrict('join', ',');
// `Array.prototype.join` method
// https://tc39.es/ecma262/#sec-array.prototype.join
$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {
join: function join(separator) {
return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
}
});
/***/ }),
/***/ "a4d3":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $ = __webpack_require__("23e7");
var global = __webpack_require__("da84");
var getBuiltIn = __webpack_require__("d066");
var IS_PURE = __webpack_require__("c430");
var DESCRIPTORS = __webpack_require__("83ab");
var NATIVE_SYMBOL = __webpack_require__("4930");
var USE_SYMBOL_AS_UID = __webpack_require__("fdbf");
var fails = __webpack_require__("d039");
var has = __webpack_require__("5135");
var isArray = __webpack_require__("e8b5");
var isObject = __webpack_require__("861d");
var anObject = __webpack_require__("825a");
var toObject = __webpack_require__("7b0b");
var toIndexedObject = __webpack_require__("fc6a");
var toPrimitive = __webpack_require__("c04e");
var createPropertyDescriptor = __webpack_require__("5c6c");
var nativeObjectCreate = __webpack_require__("7c73");
var objectKeys = __webpack_require__("df75");
var getOwnPropertyNamesModule = __webpack_require__("241c");
var getOwnPropertyNamesExternal = __webpack_require__("057f");
var getOwnPropertySymbolsModule = __webpack_require__("7418");
var getOwnPropertyDescriptorModule = __webpack_require__("06cf");
var definePropertyModule = __webpack_require__("9bf2");
var propertyIsEnumerableModule = __webpack_require__("d1e7");
var createNonEnumerableProperty = __webpack_require__("9112");
var redefine = __webpack_require__("6eeb");
var shared = __webpack_require__("5692");
var sharedKey = __webpack_require__("f772");
var hiddenKeys = __webpack_require__("d012");
var uid = __webpack_require__("90e3");
var wellKnownSymbol = __webpack_require__("b622");
var wrappedWellKnownSymbolModule = __webpack_require__("e538");
var defineWellKnownSymbol = __webpack_require__("746f");
var setToStringTag = __webpack_require__("d44e");
var InternalStateModule = __webpack_require__("69f3");
var $forEach = __webpack_require__("b727").forEach;
var HIDDEN = sharedKey('hidden');
var SYMBOL = 'Symbol';
var PROTOTYPE = 'prototype';
var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(SYMBOL);
var ObjectPrototype = Object[PROTOTYPE];
var $Symbol = global.Symbol;
var $stringify = getBuiltIn('JSON', 'stringify');
var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
var nativeDefineProperty = definePropertyModule.f;
var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
var AllSymbols = shared('symbols');
var ObjectPrototypeSymbols = shared('op-symbols');
var StringToSymbolRegistry = shared('string-to-symbol-registry');
var SymbolToStringRegistry = shared('symbol-to-string-registry');
var WellKnownSymbolsStore = shared('wks');
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDescriptor = DESCRIPTORS && fails(function () {
return nativeObjectCreate(nativeDefineProperty({}, 'a', {
get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }
})).a != 7;
}) ? function (O, P, Attributes) {
var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];
nativeDefineProperty(O, P, Attributes);
if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
}
} : nativeDefineProperty;
var wrap = function (tag, description) {
var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);
setInternalState(symbol, {
type: SYMBOL,
tag: tag,
description: description
});
if (!DESCRIPTORS) symbol.description = description;
return symbol;
};
var isSymbol = USE_SYMBOL_AS_UID ? function (it) {
return typeof it == 'symbol';
} : function (it) {
return Object(it) instanceof $Symbol;
};
var $defineProperty = function defineProperty(O, P, Attributes) {
if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
anObject(O);
var key = toPrimitive(P, true);
anObject(Attributes);
if (has(AllSymbols, key)) {
if (!Attributes.enumerable) {
if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
O[HIDDEN][key] = true;
} else {
if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
} return setSymbolDescriptor(O, key, Attributes);
} return nativeDefineProperty(O, key, Attributes);
};
var $defineProperties = function defineProperties(O, Properties) {
anObject(O);
var properties = toIndexedObject(Properties);
var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
$forEach(keys, function (key) {
if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);
});
return O;
};
var $create = function create(O, Properties) {
return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
};
var $propertyIsEnumerable = function propertyIsEnumerable(V) {
var P = toPrimitive(V, true);
var enumerable = nativePropertyIsEnumerable.call(this, P);
if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;
return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
var it = toIndexedObject(O);
var key = toPrimitive(P, true);
if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;
var descriptor = nativeGetOwnPropertyDescriptor(it, key);
if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {
descriptor.enumerable = true;
}
return descriptor;
};
var $getOwnPropertyNames = function getOwnPropertyNames(O) {
var names = nativeGetOwnPropertyNames(toIndexedObject(O));
var result = [];
$forEach(names, function (key) {
if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);
});
return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
var result = [];
$forEach(names, function (key) {
if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {
result.push(AllSymbols[key]);
}
});
return result;
};
// `Symbol` constructor
// https://tc39.es/ecma262/#sec-symbol-constructor
if (!NATIVE_SYMBOL) {
$Symbol = function Symbol() {
if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');
var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);
var tag = uid(description);
var setter = function (value) {
if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);
if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
};
if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });
return wrap(tag, description);
};
redefine($Symbol[PROTOTYPE], 'toString', function toString() {
return getInternalState(this).tag;
});
redefine($Symbol, 'withoutSetter', function (description) {
return wrap(uid(description), description);
});
propertyIsEnumerableModule.f = $propertyIsEnumerable;
definePropertyModule.f = $defineProperty;
getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
wrappedWellKnownSymbolModule.f = function (name) {
return wrap(wellKnownSymbol(name), name);
};
if (DESCRIPTORS) {
// https://github.com/tc39/proposal-Symbol-description
nativeDefineProperty($Symbol[PROTOTYPE], 'description', {
configurable: true,
get: function description() {
return getInternalState(this).description;
}
});
if (!IS_PURE) {
redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
}
}
}
$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
Symbol: $Symbol
});
$forEach(objectKeys(WellKnownSymbolsStore), function (name) {
defineWellKnownSymbol(name);
});
$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {
// `Symbol.for` method
// https://tc39.es/ecma262/#sec-symbol.for
'for': function (key) {
var string = String(key);
if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
var symbol = $Symbol(string);
StringToSymbolRegistry[string] = symbol;
SymbolToStringRegistry[symbol] = string;
return symbol;
},
// `Symbol.keyFor` method
// https://tc39.es/ecma262/#sec-symbol.keyfor
keyFor: function keyFor(sym) {
if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');
if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
},
useSetter: function () { USE_SETTER = true; },
useSimple: function () { USE_SETTER = false; }
});
$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {
// `Object.create` method
// https://tc39.es/ecma262/#sec-object.create
create: $create,
// `Object.defineProperty` method
// https://tc39.es/ecma262/#sec-object.defineproperty
defineProperty: $defineProperty,
// `Object.defineProperties` method
// https://tc39.es/ecma262/#sec-object.defineproperties
defineProperties: $defineProperties,
// `Object.getOwnPropertyDescriptor` method
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors
getOwnPropertyDescriptor: $getOwnPropertyDescriptor
});
$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {
// `Object.getOwnPropertyNames` method
// https://tc39.es/ecma262/#sec-object.getownpropertynames
getOwnPropertyNames: $getOwnPropertyNames,
// `Object.getOwnPropertySymbols` method
// https://tc39.es/ecma262/#sec-object.getownpropertysymbols
getOwnPropertySymbols: $getOwnPropertySymbols
});
// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {
getOwnPropertySymbols: function getOwnPropertySymbols(it) {
return getOwnPropertySymbolsModule.f(toObject(it));
}
});
// `JSON.stringify` method behavior with symbols
// https://tc39.es/ecma262/#sec-json.stringify
if ($stringify) {
var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {
var symbol = $Symbol();
// MS Edge converts symbol values to JSON as {}
return $stringify([symbol]) != '[null]'
// WebKit converts symbol values to JSON as null
|| $stringify({ a: symbol }) != '{}'
// V8 throws on boxed symbols
|| $stringify(Object(symbol)) != '{}';
});
$({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
// eslint-disable-next-line no-unused-vars -- required for `.length`
stringify: function stringify(it, replacer, space) {
var args = [it];
var index = 1;
var $replacer;
while (arguments.length > index) args.push(arguments[index++]);
$replacer = replacer;
if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
if (!isArray(replacer)) replacer = function (key, value) {
if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
if (!isSymbol(value)) return value;
};
args[1] = replacer;
return $stringify.apply(null, args);
}
});
}
// `Symbol.prototype[@@toPrimitive]` method
// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
}
// `Symbol.prototype[@@toStringTag]` property
// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag
setToStringTag($Symbol, SYMBOL);
hiddenKeys[HIDDEN] = true;
/***/ }),
/***/ "a630":
/***/ (function(module, exports, __webpack_require__) {
var $ = __webpack_require__("23e7");
var from = __webpack_require__("4df4");
var checkCorrectnessOfIteration = __webpack_require__("1c7e");
var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
// eslint-disable-next-line es/no-array-from -- required for testing
Array.from(iterable);
});
// `Array.from` method
// https://tc39.es/ecma262/#sec-array.from
$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {
from: from
});
/***/ }),
/***/ "a640":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var fails = __webpack_require__("d039");
module.exports = function (METHOD_NAME, argument) {
var method = [][METHOD_NAME];
return !!method && fails(function () {
// eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
method.call(null, argument || function () { throw 1; }, 1);
});
};
/***/ }),
/***/ "a691":
/***/ (function(module, exports) {
var ceil = Math.ceil;
var floor = Math.floor;
// `ToInteger` abstract operation
// https://tc39.es/ecma262/#sec-tointeger
module.exports = function (argument) {
return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
};
/***/ }),
/***/ "a899":
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "a9e3":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var DESCRIPTORS = __webpack_require__("83ab");
var global = __webpack_require__("da84");
var isForced = __webpack_require__("94ca");
var redefine = __webpack_require__("6eeb");
var has = __webpack_require__("5135");
var classof = __webpack_require__("c6b6");
var inheritIfRequired = __webpack_require__("7156");
var toPrimitive = __webpack_require__("c04e");
var fails = __webpack_require__("d039");
var create = __webpack_require__("7c73");
var getOwnPropertyNames = __webpack_require__("241c").f;
var getOwnPropertyDescriptor = __webpack_require__("06cf").f;
var defineProperty = __webpack_require__("9bf2").f;
var trim = __webpack_require__("58a8").trim;
var NUMBER = 'Number';
var NativeNumber = global[NUMBER];
var NumberPrototype = NativeNumber.prototype;
// Opera ~12 has broken Object#toString
var BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;
// `ToNumber` abstract operation
// https://tc39.es/ecma262/#sec-tonumber
var toNumber = function (argument) {
var it = toPrimitive(argument, false);
var first, third, radix, maxCode, digits, length, index, code;
if (typeof it == 'string' && it.length > 2) {
it = trim(it);
first = it.charCodeAt(0);
if (first === 43 || first === 45) {
third = it.charCodeAt(2);
if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
} else if (first === 48) {
switch (it.charCodeAt(1)) {
case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i
case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i
default: return +it;
}
digits = it.slice(2);
length = digits.length;
for (index = 0; index < length; index++) {
code = digits.charCodeAt(index);
// parseInt parses a string to a first unavailable symbol
// but ToNumber should return NaN if a string contains unavailable symbols
if (code < 48 || code > maxCode) return NaN;
} return parseInt(digits, radix);
}
} return +it;
};
// `Number` constructor
// https://tc39.es/ecma262/#sec-number-constructor
if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {
var NumberWrapper = function Number(value) {
var it = arguments.length < 1 ? 0 : value;
var dummy = this;
return dummy instanceof NumberWrapper
// check on 1..constructor(foo) case
&& (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)
? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);
};
for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (
// ES3:
'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
// ES2015 (in case, if modules with ES2015 Number statics required before):
'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +
// ESNext
'fromString,range'
).split(','), j = 0, key; keys.length > j; j++) {
if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {
defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));
}
}
NumberWrapper.prototype = NumberPrototype;
NumberPrototype.constructor = NumberWrapper;
redefine(global, NUMBER, NumberWrapper);
}
/***/ }),
/***/ "ac1f":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $ = __webpack_require__("23e7");
var exec = __webpack_require__("9263");
// `RegExp.prototype.exec` method
// https://tc39.es/ecma262/#sec-regexp.prototype.exec
$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {
exec: exec
});
/***/ }),
/***/ "ad6d":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var anObject = __webpack_require__("825a");
// `RegExp.prototype.flags` getter implementation
// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
module.exports = function () {
var that = anObject(this);
var result = '';
if (that.global) result += 'g';
if (that.ignoreCase) result += 'i';
if (that.multiline) result += 'm';
if (that.dotAll) result += 's';
if (that.unicode) result += 'u';
if (that.sticky) result += 'y';
return result;
};
/***/ }),
/***/ "addb":
/***/ (function(module, exports) {
// TODO: use something more complex like timsort?
var floor = Math.floor;
var mergeSort = function (array, comparefn) {
var length = array.length;
var middle = floor(length / 2);
return length < 8 ? insertionSort(array, comparefn) : merge(
mergeSort(array.slice(0, middle), comparefn),
mergeSort(array.slice(middle), comparefn),
comparefn
);
};
var insertionSort = function (array, comparefn) {
var length = array.length;
var i = 1;
var element, j;
while (i < length) {
j = i;
element = array[i];
while (j && comparefn(array[j - 1], element) > 0) {
array[j] = array[--j];
}
if (j !== i++) array[j] = element;
} return array;
};
var merge = function (left, right, comparefn) {
var llength = left.length;
var rlength = right.length;
var lindex = 0;
var rindex = 0;
var result = [];
while (lindex < llength || rindex < rlength) {
if (lindex < llength && rindex < rlength) {
result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);
} else {
result.push(lindex < llength ? left[lindex++] : right[rindex++]);
}
} return result;
};
module.exports = mergeSort;
/***/ }),
/***/ "ae93":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var fails = __webpack_require__("d039");
var getPrototypeOf = __webpack_require__("e163");
var createNonEnumerableProperty = __webpack_require__("9112");
var has = __webpack_require__("5135");
var wellKnownSymbol = __webpack_require__("b622");
var IS_PURE = __webpack_require__("c430");
var ITERATOR = wellKnownSymbol('iterator');
var BUGGY_SAFARI_ITERATORS = false;
var returnThis = function () { return this; };
// `%IteratorPrototype%` object
// https://tc39.es/ecma262/#sec-%iteratorprototype%-object
var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
/* eslint-disable es/no-array-prototype-keys -- safe */
if ([].keys) {
arrayIterator = [].keys();
// Safari 8 has buggy iterators w/o `next`
if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
else {
PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
}
}
var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {
var test = {};
// FF44- legacy iterators case
return IteratorPrototype[ITERATOR].call(test) !== test;
});
if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};
// `%IteratorPrototype%[@@iterator]()` method
// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
if ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {
createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
}
module.exports = {
IteratorPrototype: IteratorPrototype,
BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
};
/***/ }),
/***/ "b041":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var TO_STRING_TAG_SUPPORT = __webpack_require__("00ee");
var classof = __webpack_require__("f5df");
// `Object.prototype.toString` method implementation
// https://tc39.es/ecma262/#sec-object.prototype.tostring
module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
return '[object ' + classof(this) + ']';
};
/***/ }),
/***/ "b0c0":
/***/ (function(module, exports, __webpack_require__) {
var DESCRIPTORS = __webpack_require__("83ab");
var defineProperty = __webpack_require__("9bf2").f;
var FunctionPrototype = Function.prototype;
var FunctionPrototypeToString = FunctionPrototype.toString;
var nameRE = /^\s*function ([^ (]*)/;
var NAME = 'name';
// Function instances `.name` property
// https://tc39.es/ecma262/#sec-function-instances-name
if (DESCRIPTORS && !(NAME in FunctionPrototype)) {
defineProperty(FunctionPrototype, NAME, {
configurable: true,
get: function () {
try {
return FunctionPrototypeToString.call(this).match(nameRE)[1];
} catch (error) {
return '';
}
}
});
}
/***/ }),
/***/ "b622":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
var shared = __webpack_require__("5692");
var has = __webpack_require__("5135");
var uid = __webpack_require__("90e3");
var NATIVE_SYMBOL = __webpack_require__("4930");
var USE_SYMBOL_AS_UID = __webpack_require__("fdbf");
var WellKnownSymbolsStore = shared('wks');
var Symbol = global.Symbol;
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
module.exports = function (name) {
if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
if (NATIVE_SYMBOL && has(Symbol, name)) {
WellKnownSymbolsStore[name] = Symbol[name];
} else {
WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
}
} return WellKnownSymbolsStore[name];
};
/***/ }),
/***/ "b727":
/***/ (function(module, exports, __webpack_require__) {
var bind = __webpack_require__("0366");
var IndexedObject = __webpack_require__("44ad");
var toObject = __webpack_require__("7b0b");
var toLength = __webpack_require__("50c4");
var arraySpeciesCreate = __webpack_require__("65f0");
var push = [].push;
// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
var createMethod = function (TYPE) {
var IS_MAP = TYPE == 1;
var IS_FILTER = TYPE == 2;
var IS_SOME = TYPE == 3;
var IS_EVERY = TYPE == 4;
var IS_FIND_INDEX = TYPE == 6;
var IS_FILTER_OUT = TYPE == 7;
var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
return function ($this, callbackfn, that, specificCreate) {
var O = toObject($this);
var self = IndexedObject(O);
var boundFunction = bind(callbackfn, that, 3);
var length = toLength(self.length);
var index = 0;
var create = specificCreate || arraySpeciesCreate;
var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
var value, result;
for (;length > index; index++) if (NO_HOLES || index in self) {
value = self[index];
result = boundFunction(value, index, O);
if (TYPE) {
if (IS_MAP) target[index] = result; // map
else if (result) switch (TYPE) {
case 3: return true; // some
case 5: return value; // find
case 6: return index; // findIndex
case 2: push.call(target, value); // filter
} else switch (TYPE) {
case 4: return false; // every
case 7: push.call(target, value); // filterOut
}
}
}
return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
};
};
module.exports = {
// `Array.prototype.forEach` method
// https://tc39.es/ecma262/#sec-array.prototype.foreach
forEach: createMethod(0),
// `Array.prototype.map` method
// https://tc39.es/ecma262/#sec-array.prototype.map
map: createMethod(1),
// `Array.prototype.filter` method
// https://tc39.es/ecma262/#sec-array.prototype.filter
filter: createMethod(2),
// `Array.prototype.some` method
// https://tc39.es/ecma262/#sec-array.prototype.some
some: createMethod(3),
// `Array.prototype.every` method
// https://tc39.es/ecma262/#sec-array.prototype.every
every: createMethod(4),
// `Array.prototype.find` method
// https://tc39.es/ecma262/#sec-array.prototype.find
find: createMethod(5),
// `Array.prototype.findIndex` method
// https://tc39.es/ecma262/#sec-array.prototype.findIndex
findIndex: createMethod(6),
// `Array.prototype.filterOut` method
// https://github.com/tc39/proposal-array-filtering
filterOut: createMethod(7)
};
/***/ }),
/***/ "bb2f":
/***/ (function(module, exports, __webpack_require__) {
var fails = __webpack_require__("d039");
module.exports = !fails(function () {
// eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing
return Object.isExtensible(Object.preventExtensions({}));
});
/***/ }),
/***/ "be34":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return install; });
/* harmony import */ var _components_VAnnotator_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eb31");
function install(Vue) {
if (install.installed) return;
install.installed = true;
Vue.component("VAnnotator", _components_VAnnotator_vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]);
}
var plugin = {
install: install
};
var GlobalVue = null;
if (typeof window !== "undefined") {
GlobalVue = window.Vue;
} else if (typeof global !== "undefined") {
GlobalVue = global.Vue;
}
if (GlobalVue) {
GlobalVue.use(plugin);
}
/* harmony default export */ __webpack_exports__["a"] = (_components_VAnnotator_vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]);
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("c8ba")))
/***/ }),
/***/ "c04e":
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__("861d");
// `ToPrimitive` abstract operation
// https://tc39.es/ecma262/#sec-toprimitive
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (input, PREFERRED_STRING) {
if (!isObject(input)) return input;
var fn, val;
if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
throw TypeError("Can't convert object to primitive value");
};
/***/ }),
/***/ "c097":
/***/ (function(module, exports, __webpack_require__) {
/*
Breaks a Javascript string into individual user-perceived "characters"
called extended grapheme clusters by implementing the Unicode UAX-29 standard, version 10.0.0
Usage:
var splitter = new GraphemeSplitter();
//returns an array of strings, one string for each grapheme cluster
var graphemes = splitter.splitGraphemes(string);
*/
function GraphemeSplitter(){
var CR = 0,
LF = 1,
Control = 2,
Extend = 3,
Regional_Indicator = 4,
SpacingMark = 5,
L = 6,
V = 7,
T = 8,
LV = 9,
LVT = 10,
Other = 11,
Prepend = 12,
E_Base = 13,
E_Modifier = 14,
ZWJ = 15,
Glue_After_Zwj = 16,
E_Base_GAZ = 17;
// BreakTypes
var NotBreak = 0,
BreakStart = 1,
Break = 2,
BreakLastRegional = 3,
BreakPenultimateRegional = 4;
function isSurrogate(str, pos) {
return 0xd800 <= str.charCodeAt(pos) && str.charCodeAt(pos) <= 0xdbff &&
0xdc00 <= str.charCodeAt(pos + 1) && str.charCodeAt(pos + 1) <= 0xdfff;
}
// Private function, gets a Unicode code point from a JavaScript UTF-16 string
// handling surrogate pairs appropriately
function codePointAt(str, idx){
if(idx === undefined){
idx = 0;
}
var code = str.charCodeAt(idx);
// if a high surrogate
if (0xD800 <= code && code <= 0xDBFF &&
idx < str.length - 1){
var hi = code;
var low = str.charCodeAt(idx + 1);
if (0xDC00 <= low && low <= 0xDFFF){
return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;
}
return hi;
}
// if a low surrogate
if (0xDC00 <= code && code <= 0xDFFF &&
idx >= 1){
var hi = str.charCodeAt(idx - 1);
var low = code;
if (0xD800 <= hi && hi <= 0xDBFF){
return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;
}
return low;
}
//just return the char if an unmatched surrogate half or a
//single-char codepoint
return code;
}
// Private function, returns whether a break is allowed between the
// two given grapheme breaking classes
function shouldBreak(start, mid, end){
var all = [start].concat(mid).concat([end]);
var previous = all[all.length - 2]
var next = end
// Lookahead termintor for:
// GB10. (E_Base | EBG) Extend* ? E_Modifier
var eModifierIndex = all.lastIndexOf(E_Modifier)
if(eModifierIndex > 1 &&
all.slice(1, eModifierIndex).every(function(c){return c == Extend}) &&
[Extend, E_Base, E_Base_GAZ].indexOf(start) == -1){
return Break
}
// Lookahead termintor for:
// GB12. ^ (RI RI)* RI ? RI
// GB13. [^RI] (RI RI)* RI ? RI
var rIIndex = all.lastIndexOf(Regional_Indicator)
if(rIIndex > 0 &&
all.slice(1, rIIndex).every(function(c){return c == Regional_Indicator}) &&
[Prepend, Regional_Indicator].indexOf(previous) == -1) {
if(all.filter(function(c){return c == Regional_Indicator}).length % 2 == 1) {
return BreakLastRegional
}
else {
return BreakPenultimateRegional
}
}
// GB3. CR X LF
if(previous == CR && next == LF){
return NotBreak;
}
// GB4. (Control|CR|LF) ÷
else if(previous == Control || previous == CR || previous == LF){
if(next == E_Modifier && mid.every(function(c){return c == Extend})){
return Break
}
else {
return BreakStart
}
}
// GB5. ÷ (Control|CR|LF)
else if(next == Control || next == CR || next == LF){
return BreakStart;
}
// GB6. L X (L|V|LV|LVT)
else if(previous == L &&
(next == L || next == V || next == LV || next == LVT)){
return NotBreak;
}
// GB7. (LV|V) X (V|T)
else if((previous == LV || previous == V) &&
(next == V || next == T)){
return NotBreak;
}
// GB8. (LVT|T) X (T)
else if((previous == LVT || previous == T) &&
next == T){
return NotBreak;
}
// GB9. X (Extend|ZWJ)
else if (next == Extend || next == ZWJ){
return NotBreak;
}
// GB9a. X SpacingMark
else if(next == SpacingMark){
return NotBreak;
}
// GB9b. Prepend X
else if (previous == Prepend){
return NotBreak;
}
// GB10. (E_Base | EBG) Extend* ? E_Modifier
var previousNonExtendIndex = all.indexOf(Extend) != -1 ? all.lastIndexOf(Extend) - 1 : all.length - 2;
if([E_Base, E_Base_GAZ].indexOf(all[previousNonExtendIndex]) != -1 &&
all.slice(previousNonExtendIndex + 1, -1).every(function(c){return c == Extend}) &&
next == E_Modifier){
return NotBreak;
}
// GB11. ZWJ ? (Glue_After_Zwj | EBG)
if(previous == ZWJ && [Glue_After_Zwj, E_Base_GAZ].indexOf(next) != -1) {
return NotBreak;
}
// GB12. ^ (RI RI)* RI ? RI
// GB13. [^RI] (RI RI)* RI ? RI
if(mid.indexOf(Regional_Indicator) != -1) {
return Break;
}
if(previous == Regional_Indicator && next == Regional_Indicator) {
return NotBreak;
}
// GB999. Any ? Any
return BreakStart;
}
// Returns the next grapheme break in the string after the given index
this.nextBreak = function(string, index){
if(index === undefined){
index = 0;
}
if(index < 0){
return 0;
}
if(index >= string.length - 1){
return string.length;
}
var prev = getGraphemeBreakProperty(codePointAt(string, index));
var mid = []
for (var i = index + 1; i < string.length; i++) {
// check for already processed low surrogates
if(isSurrogate(string, i - 1)){
continue;
}
var next = getGraphemeBreakProperty(codePointAt(string, i));
if(shouldBreak(prev, mid, next)){
return i;
}
mid.push(next);
}
return string.length;
};
// Breaks the given string into an array of grapheme cluster strings
this.splitGraphemes = function(str){
var res = [];
var index = 0;
var brk;
while((brk = this.nextBreak(str, index)) < str.length){
res.push(str.slice(index, brk));
index = brk;
}
if(index < str.length){
res.push(str.slice(index));
}
return res;
};
// Returns the iterator of grapheme clusters there are in the given string
this.iterateGraphemes = function(str) {
var index = 0;
var res = {
next: (function() {
var value;
var brk;
if ((brk = this.nextBreak(str, index)) < str.length) {
value = str.slice(index, brk);
index = brk;
return { value: value, done: false };
}
if (index < str.length) {
value = str.slice(index);
index = str.length;
return { value: value, done: false };
}
return { value: undefined, done: true };
}).bind(this)
};
// ES2015 @@iterator method (iterable) for spread syntax and for...of statement
if (typeof Symbol !== 'undefined' && Symbol.iterator) {
res[Symbol.iterator] = function() {return res};
}
return res;
};
// Returns the number of grapheme clusters there are in the given string
this.countGraphemes = function(str){
var count = 0;
var index = 0;
var brk;
while((brk = this.nextBreak(str, index)) < str.length){
index = brk;
count++;
}
if(index < str.length){
count++;
}
return count;
};
//given a Unicode code point, determines this symbol's grapheme break property
function getGraphemeBreakProperty(code){
//grapheme break property for Unicode 10.0.0,
//taken from http://www.unicode.org/Public/10.0.0/ucd/auxiliary/GraphemeBreakProperty.txt
//and adapted to JavaScript rules
if(
(0x0600 <= code && code <= 0x0605) || // Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
0x06DD == code || // Cf ARABIC END OF AYAH
0x070F == code || // Cf SYRIAC ABBREVIATION MARK
0x08E2 == code || // Cf ARABIC DISPUTED END OF AYAH
0x0D4E == code || // Lo MALAYALAM LETTER DOT REPH
0x110BD == code || // Cf KAITHI NUMBER SIGN
(0x111C2 <= code && code <= 0x111C3) || // Lo [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA
0x11A3A == code || // Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
(0x11A86 <= code && code <= 0x11A89) || // Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA
0x11D46 == code // Lo MASARAM GONDI REPHA
){
return Prepend;
}
if(
0x000D == code // Cc <control-000D>
){
return CR;
}
if(
0x000A == code // Cc <control-000A>
){
return LF;
}
if(
(0x0000 <= code && code <= 0x0009) || // Cc [10] <control-0000>..<control-0009>
(0x000B <= code && code <= 0x000C) || // Cc [2] <control-000B>..<control-000C>
(0x000E <= code && code <= 0x001F) || // Cc [18] <control-000E>..<control-001F>
(0x007F <= code && code <= 0x009F) || // Cc [33] <control-007F>..<control-009F>
0x00AD == code || // Cf SOFT HYPHEN
0x061C == code || // Cf ARABIC LETTER MARK
0x180E == code || // Cf MONGOLIAN VOWEL SEPARATOR
0x200B == code || // Cf ZERO WIDTH SPACE
(0x200E <= code && code <= 0x200F) || // Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
0x2028 == code || // Zl LINE SEPARATOR
0x2029 == code || // Zp PARAGRAPH SEPARATOR
(0x202A <= code && code <= 0x202E) || // Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
(0x2060 <= code && code <= 0x2064) || // Cf [5] WORD JOINER..INVISIBLE PLUS
0x2065 == code || // Cn <reserved-2065>
(0x2066 <= code && code <= 0x206F) || // Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
(0xD800 <= code && code <= 0xDFFF) || // Cs [2048] <surrogate-D800>..<surrogate-DFFF>
0xFEFF == code || // Cf ZERO WIDTH NO-BREAK SPACE
(0xFFF0 <= code && code <= 0xFFF8) || // Cn [9] <reserved-FFF0>..<reserved-FFF8>
(0xFFF9 <= code && code <= 0xFFFB) || // Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
(0x1BCA0 <= code && code <= 0x1BCA3) || // Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
(0x1D173 <= code && code <= 0x1D17A) || // Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
0xE0000 == code || // Cn <reserved-E0000>
0xE0001 == code || // Cf LANGUAGE TAG
(0xE0002 <= code && code <= 0xE001F) || // Cn [30] <reserved-E0002>..<reserved-E001F>
(0xE0080 <= code && code <= 0xE00FF) || // Cn [128] <reserved-E0080>..<reserved-E00FF>
(0xE01F0 <= code && code <= 0xE0FFF) // Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
){
return Control;
}
if(
(0x0300 <= code && code <= 0x036F) || // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
(0x0483 <= code && code <= 0x0487) || // Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
(0x0488 <= code && code <= 0x0489) || // Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
(0x0591 <= code && code <= 0x05BD) || // Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
0x05BF == code || // Mn HEBREW POINT RAFE
(0x05C1 <= code && code <= 0x05C2) || // Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
(0x05C4 <= code && code <= 0x05C5) || // Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
0x05C7 == code || // Mn HEBREW POINT QAMATS QATAN
(0x0610 <= code && code <= 0x061A) || // Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
(0x064B <= code && code <= 0x065F) || // Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
0x0670 == code || // Mn ARABIC LETTER SUPERSCRIPT ALEF
(0x06D6 <= code && code <= 0x06DC) || // Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
(0x06DF <= code && code <= 0x06E4) || // Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
(0x06E7 <= code && code <= 0x06E8) || // Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
(0x06EA <= code && code <= 0x06ED) || // Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
0x0711 == code || // Mn SYRIAC LETTER SUPERSCRIPT ALAPH
(0x0730 <= code && code <= 0x074A) || // Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
(0x07A6 <= code && code <= 0x07B0) || // Mn [11] THAANA ABAFILI..THAANA SUKUN
(0x07EB <= code && code <= 0x07F3) || // Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
(0x0816 <= code && code <= 0x0819) || // Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
(0x081B <= code && code <= 0x0823) || // Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
(0x0825 <= code && code <= 0x0827) || // Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
(0x0829 <= code && code <= 0x082D) || // Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
(0x0859 <= code && code <= 0x085B) || // Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
(0x08D4 <= code && code <= 0x08E1) || // Mn [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA
(0x08E3 <= code && code <= 0x0902) || // Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
0x093A == code || // Mn DEVANAGARI VOWEL SIGN OE
0x093C == code || // Mn DEVANAGARI SIGN NUKTA
(0x0941 <= code && code <= 0x0948) || // Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
0x094D == code || // Mn DEVANAGARI SIGN VIRAMA
(0x0951 <= code && code <= 0x0957) || // Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
(0x0962 <= code && code <= 0x0963) || // Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
0x0981 == code || // Mn BENGALI SIGN CANDRABINDU
0x09BC == code || // Mn BENGALI SIGN NUKTA
0x09BE == code || // Mc BENGALI VOWEL SIGN AA
(0x09C1 <= code && code <= 0x09C4) || // Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
0x09CD == code || // Mn BENGALI SIGN VIRAMA
0x09D7 == code || // Mc BENGALI AU LENGTH MARK
(0x09E2 <= code && code <= 0x09E3) || // Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
(0x0A01 <= code && code <= 0x0A02) || // Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
0x0A3C == code || // Mn GURMUKHI SIGN NUKTA
(0x0A41 <= code && code <= 0x0A42) || // Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
(0x0A47 <= code && code <= 0x0A48) || // Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
(0x0A4B <= code && code <= 0x0A4D) || // Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
0x0A51 == code || // Mn GURMUKHI SIGN UDAAT
(0x0A70 <= code && code <= 0x0A71) || // Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
0x0A75 == code || // Mn GURMUKHI SIGN YAKASH
(0x0A81 <= code && code <= 0x0A82) || // Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
0x0ABC == code || // Mn GUJARATI SIGN NUKTA
(0x0AC1 <= code && code <= 0x0AC5) || // Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
(0x0AC7 <= code && code <= 0x0AC8) || // Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
0x0ACD == code || // Mn GUJARATI SIGN VIRAMA
(0x0AE2 <= code && code <= 0x0AE3) || // Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
(0x0AFA <= code && code <= 0x0AFF) || // Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
0x0B01 == code || // Mn ORIYA SIGN CANDRABINDU
0x0B3C == code || // Mn ORIYA SIGN NUKTA
0x0B3E == code || // Mc ORIYA VOWEL SIGN AA
0x0B3F == code || // Mn ORIYA VOWEL SIGN I
(0x0B41 <= code && code <= 0x0B44) || // Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
0x0B4D == code || // Mn ORIYA SIGN VIRAMA
0x0B56 == code || // Mn ORIYA AI LENGTH MARK
0x0B57 == code || // Mc ORIYA AU LENGTH MARK
(0x0B62 <= code && code <= 0x0B63) || // Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
0x0B82 == code || // Mn TAMIL SIGN ANUSVARA
0x0BBE == code || // Mc TAMIL VOWEL SIGN AA
0x0BC0 == code || // Mn TAMIL VOWEL SIGN II
0x0BCD == code || // Mn TAMIL SIGN VIRAMA
0x0BD7 == code || // Mc TAMIL AU LENGTH MARK
0x0C00 == code || // Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
(0x0C3E <= code && code <= 0x0C40) || // Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
(0x0C46 <= code && code <= 0x0C48) || // Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
(0x0C4A <= code && code <= 0x0C4D) || // Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
(0x0C55 <= code && code <= 0x0C56) || // Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
(0x0C62 <= code && code <= 0x0C63) || // Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
0x0C81 == code || // Mn KANNADA SIGN CANDRABINDU
0x0CBC == code || // Mn KANNADA SIGN NUKTA
0x0CBF == code || // Mn KANNADA VOWEL SIGN I
0x0CC2 == code || // Mc KANNADA VOWEL SIGN UU
0x0CC6 == code || // Mn KANNADA VOWEL SIGN E
(0x0CCC <= code && code <= 0x0CCD) || // Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
(0x0CD5 <= code && code <= 0x0CD6) || // Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
(0x0CE2 <= code && code <= 0x0CE3) || // Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
(0x0D00 <= code && code <= 0x0D01) || // Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
(0x0D3B <= code && code <= 0x0D3C) || // Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
0x0D3E == code || // Mc MALAYALAM VOWEL SIGN AA
(0x0D41 <= code && code <= 0x0D44) || // Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
0x0D4D == code || // Mn MALAYALAM SIGN VIRAMA
0x0D57 == code || // Mc MALAYALAM AU LENGTH MARK
(0x0D62 <= code && code <= 0x0D63) || // Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
0x0DCA == code || // Mn SINHALA SIGN AL-LAKUNA
0x0DCF == code || // Mc SINHALA VOWEL SIGN AELA-PILLA
(0x0DD2 <= code && code <= 0x0DD4) || // Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
0x0DD6 == code || // Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
0x0DDF == code || // Mc SINHALA VOWEL SIGN GAYANUKITTA
0x0E31 == code || // Mn THAI CHARACTER MAI HAN-AKAT
(0x0E34 <= code && code <= 0x0E3A) || // Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
(0x0E47 <= code && code <= 0x0E4E) || // Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0x0EB1 == code || // Mn LAO VOWEL SIGN MAI KAN
(0x0EB4 <= code && code <= 0x0EB9) || // Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
(0x0EBB <= code && code <= 0x0EBC) || // Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
(0x0EC8 <= code && code <= 0x0ECD) || // Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
(0x0F18 <= code && code <= 0x0F19) || // Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0x0F35 == code || // Mn TIBETAN MARK NGAS BZUNG NYI ZLA
0x0F37 == code || // Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
0x0F39 == code || // Mn TIBETAN MARK TSA -PHRU
(0x0F71 <= code && code <= 0x0F7E) || // Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
(0x0F80 <= code && code <= 0x0F84) || // Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
(0x0F86 <= code && code <= 0x0F87) || // Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
(0x0F8D <= code && code <= 0x0F97) || // Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
(0x0F99 <= code && code <= 0x0FBC) || // Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
0x0FC6 == code || // Mn TIBETAN SYMBOL PADMA GDAN
(0x102D <= code && code <= 0x1030) || // Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
(0x1032 <= code && code <= 0x1037) || // Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
(0x1039 <= code && code <= 0x103A) || // Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
(0x103D <= code && code <= 0x103E) || // Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
(0x1058 <= code && code <= 0x1059) || // Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
(0x105E <= code && code <= 0x1060) || // Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
(0x1071 <= code && code <= 0x1074) || // Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
0x1082 == code || // Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
(0x1085 <= code && code <= 0x1086) || // Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
0x108D == code || // Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
0x109D == code || // Mn MYANMAR VOWEL SIGN AITON AI
(0x135D <= code && code <= 0x135F) || // Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
(0x1712 <= code && code <= 0x1714) || // Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
(0x1732 <= code && code <= 0x1734) || // Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
(0x1752 <= code && code <= 0x1753) || // Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
(0x1772 <= code && code <= 0x1773) || // Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
(0x17B4 <= code && code <= 0x17B5) || // Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
(0x17B7 <= code && code <= 0x17BD) || // Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
0x17C6 == code || // Mn KHMER SIGN NIKAHIT
(0x17C9 <= code && code <= 0x17D3) || // Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
0x17DD == code || // Mn KHMER SIGN ATTHACAN
(0x180B <= code && code <= 0x180D) || // Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
(0x1885 <= code && code <= 0x1886) || // Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
0x18A9 == code || // Mn MONGOLIAN LETTER ALI GALI DAGALGA
(0x1920 <= code && code <= 0x1922) || // Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
(0x1927 <= code && code <= 0x1928) || // Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
0x1932 == code || // Mn LIMBU SMALL LETTER ANUSVARA
(0x1939 <= code && code <= 0x193B) || // Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
(0x1A17 <= code && code <= 0x1A18) || // Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
0x1A1B == code || // Mn BUGINESE VOWEL SIGN AE
0x1A56 == code || // Mn TAI THAM CONSONANT SIGN MEDIAL LA
(0x1A58 <= code && code <= 0x1A5E) || // Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
0x1A60 == code || // Mn TAI THAM SIGN SAKOT
0x1A62 == code || // Mn TAI THAM VOWEL SIGN MAI SAT
(0x1A65 <= code && code <= 0x1A6C) || // Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
(0x1A73 <= code && code <= 0x1A7C) || // Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
0x1A7F == code || // Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
(0x1AB0 <= code && code <= 0x1ABD) || // Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
0x1ABE == code || // Me COMBINING PARENTHESES OVERLAY
(0x1B00 <= code && code <= 0x1B03) || // Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
0x1B34 == code || // Mn BALINESE SIGN REREKAN
(0x1B36 <= code && code <= 0x1B3A) || // Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
0x1B3C == code || // Mn BALINESE VOWEL SIGN LA LENGA
0x1B42 == code || // Mn BALINESE VOWEL SIGN PEPET
(0x1B6B <= code && code <= 0x1B73) || // Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
(0x1B80 <= code && code <= 0x1B81) || // Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
(0x1BA2 <= code && code <= 0x1BA5) || // Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
(0x1BA8 <= code && code <= 0x1BA9) || // Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
(0x1BAB <= code && code <= 0x1BAD) || // Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
0x1BE6 == code || // Mn BATAK SIGN TOMPI
(0x1BE8 <= code && code <= 0x1BE9) || // Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
0x1BED == code || // Mn BATAK VOWEL SIGN KARO O
(0x1BEF <= code && code <= 0x1BF1) || // Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
(0x1C2C <= code && code <= 0x1C33) || // Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
(0x1C36 <= code && code <= 0x1C37) || // Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
(0x1CD0 <= code && code <= 0x1CD2) || // Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
(0x1CD4 <= code && code <= 0x1CE0) || // Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
(0x1CE2 <= code && code <= 0x1CE8) || // Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
0x1CED == code || // Mn VEDIC SIGN TIRYAK
0x1CF4 == code || // Mn VEDIC TONE CANDRA ABOVE
(0x1CF8 <= code && code <= 0x1CF9) || // Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
(0x1DC0 <= code && code <= 0x1DF9) || // Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
(0x1DFB <= code && code <= 0x1DFF) || // Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
0x200C == code || // Cf ZERO WIDTH NON-JOINER
(0x20D0 <= code && code <= 0x20DC) || // Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
(0x20DD <= code && code <= 0x20E0) || // Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
0x20E1 == code || // Mn COMBINING LEFT RIGHT ARROW ABOVE
(0x20E2 <= code && code <= 0x20E4) || // Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
(0x20E5 <= code && code <= 0x20F0) || // Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
(0x2CEF <= code && code <= 0x2CF1) || // Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
0x2D7F == code || // Mn TIFINAGH CONSONANT JOINER
(0x2DE0 <= code && code <= 0x2DFF) || // Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
(0x302A <= code && code <= 0x302D) || // Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
(0x302E <= code && code <= 0x302F) || // Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
(0x3099 <= code && code <= 0x309A) || // Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
0xA66F == code || // Mn COMBINING CYRILLIC VZMET
(0xA670 <= code && code <= 0xA672) || // Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
(0xA674 <= code && code <= 0xA67D) || // Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
(0xA69E <= code && code <= 0xA69F) || // Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
(0xA6F0 <= code && code <= 0xA6F1) || // Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
0xA802 == code || // Mn SYLOTI NAGRI SIGN DVISVARA
0xA806 == code || // Mn SYLOTI NAGRI SIGN HASANTA
0xA80B == code || // Mn SYLOTI NAGRI SIGN ANUSVARA
(0xA825 <= code && code <= 0xA826) || // Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
(0xA8C4 <= code && code <= 0xA8C5) || // Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
(0xA8E0 <= code && code <= 0xA8F1) || // Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
(0xA926 <= code && code <= 0xA92D) || // Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
(0xA947 <= code && code <= 0xA951) || // Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
(0xA980 <= code && code <= 0xA982) || // Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
0xA9B3 == code || // Mn JAVANESE SIGN CECAK TELU
(0xA9B6 <= code && code <= 0xA9B9) || // Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
0xA9BC == code || // Mn JAVANESE VOWEL SIGN PEPET
0xA9E5 == code || // Mn MYANMAR SIGN SHAN SAW
(0xAA29 <= code && code <= 0xAA2E) || // Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
(0xAA31 <= code && code <= 0xAA32) || // Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
(0xAA35 <= code && code <= 0xAA36) || // Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
0xAA43 == code || // Mn CHAM CONSONANT SIGN FINAL NG
0xAA4C == code || // Mn CHAM CONSONANT SIGN FINAL M
0xAA7C == code || // Mn MYANMAR SIGN TAI LAING TONE-2
0xAAB0 == code || // Mn TAI VIET MAI KANG
(0xAAB2 <= code && code <= 0xAAB4) || // Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
(0xAAB7 <= code && code <= 0xAAB8) || // Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
(0xAABE <= code && code <= 0xAABF) || // Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
0xAAC1 == code || // Mn TAI VIET TONE MAI THO
(0xAAEC <= code && code <= 0xAAED) || // Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
0xAAF6 == code || // Mn MEETEI MAYEK VIRAMA
0xABE5 == code || // Mn MEETEI MAYEK VOWEL SIGN ANAP
0xABE8 == code || // Mn MEETEI MAYEK VOWEL SIGN UNAP
0xABED == code || // Mn MEETEI MAYEK APUN IYEK
0xFB1E == code || // Mn HEBREW POINT JUDEO-SPANISH VARIKA
(0xFE00 <= code && code <= 0xFE0F) || // Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
(0xFE20 <= code && code <= 0xFE2F) || // Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
(0xFF9E <= code && code <= 0xFF9F) || // Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
0x101FD == code || // Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
0x102E0 == code || // Mn COPTIC EPACT THOUSANDS MARK
(0x10376 <= code && code <= 0x1037A) || // Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
(0x10A01 <= code && code <= 0x10A03) || // Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
(0x10A05 <= code && code <= 0x10A06) || // Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
(0x10A0C <= code && code <= 0x10A0F) || // Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
(0x10A38 <= code && code <= 0x10A3A) || // Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
0x10A3F == code || // Mn KHAROSHTHI VIRAMA
(0x10AE5 <= code && code <= 0x10AE6) || // Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
0x11001 == code || // Mn BRAHMI SIGN ANUSVARA
(0x11038 <= code && code <= 0x11046) || // Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
(0x1107F <= code && code <= 0x11081) || // Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
(0x110B3 <= code && code <= 0x110B6) || // Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
(0x110B9 <= code && code <= 0x110BA) || // Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
(0x11100 <= code && code <= 0x11102) || // Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
(0x11127 <= code && code <= 0x1112B) || // Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
(0x1112D <= code && code <= 0x11134) || // Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
0x11173 == code || // Mn MAHAJANI SIGN NUKTA
(0x11180 <= code && code <= 0x11181) || // Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
(0x111B6 <= code && code <= 0x111BE) || // Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
(0x111CA <= code && code <= 0x111CC) || // Mn [3] SHARADA SIGN NUKTA..SHARADA EXTRA SHORT VOWEL MARK
(0x1122F <= code && code <= 0x11231) || // Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
0x11234 == code || // Mn KHOJKI SIGN ANUSVARA
(0x11236 <= code && code <= 0x11237) || // Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
0x1123E == code || // Mn KHOJKI SIGN SUKUN
0x112DF == code || // Mn KHUDAWADI SIGN ANUSVARA
(0x112E3 <= code && code <= 0x112EA) || // Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
(0x11300 <= code && code <= 0x11301) || // Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
0x1133C == code || // Mn GRANTHA SIGN NUKTA
0x1133E == code || // Mc GRANTHA VOWEL SIGN AA
0x11340 == code || // Mn GRANTHA VOWEL SIGN II
0x11357 == code || // Mc GRANTHA AU LENGTH MARK
(0x11366 <= code && code <= 0x1136C) || // Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
(0x11370 <= code && code <= 0x11374) || // Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
(0x11438 <= code && code <= 0x1143F) || // Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
(0x11442 <= code && code <= 0x11444) || // Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
0x11446 == code || // Mn NEWA SIGN NUKTA
0x114B0 == code || // Mc TIRHUTA VOWEL SIGN AA
(0x114B3 <= code && code <= 0x114B8) || // Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
0x114BA == code || // Mn TIRHUTA VOWEL SIGN SHORT E
0x114BD == code || // Mc TIRHUTA VOWEL SIGN SHORT O
(0x114BF <= code && code <= 0x114C0) || // Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
(0x114C2 <= code && code <= 0x114C3) || // Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
0x115AF == code || // Mc SIDDHAM VOWEL SIGN AA
(0x115B2 <= code && code <= 0x115B5) || // Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
(0x115BC <= code && code <= 0x115BD) || // Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
(0x115BF <= code && code <= 0x115C0) || // Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
(0x115DC <= code && code <= 0x115DD) || // Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
(0x11633 <= code && code <= 0x1163A) || // Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
0x1163D == code || // Mn MODI SIGN ANUSVARA
(0x1163F <= code && code <= 0x11640) || // Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
0x116AB == code || // Mn TAKRI SIGN ANUSVARA
0x116AD == code || // Mn TAKRI VOWEL SIGN AA
(0x116B0 <= code && code <= 0x116B5) || // Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
0x116B7 == code || // Mn TAKRI SIGN NUKTA
(0x1171D <= code && code <= 0x1171F) || // Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
(0x11722 <= code && code <= 0x11725) || // Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
(0x11727 <= code && code <= 0x1172B) || // Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
(0x11A01 <= code && code <= 0x11A06) || // Mn [6] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL SIGN O
(0x11A09 <= code && code <= 0x11A0A) || // Mn [2] ZANABAZAR SQUARE VOWEL SIGN REVERSED I..ZANABAZAR SQUARE VOWEL LENGTH MARK
(0x11A33 <= code && code <= 0x11A38) || // Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
(0x11A3B <= code && code <= 0x11A3E) || // Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
0x11A47 == code || // Mn ZANABAZAR SQUARE SUBJOINER
(0x11A51 <= code && code <= 0x11A56) || // Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
(0x11A59 <= code && code <= 0x11A5B) || // Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
(0x11A8A <= code && code <= 0x11A96) || // Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
(0x11A98 <= code && code <= 0x11A99) || // Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
(0x11C30 <= code && code <= 0x11C36) || // Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
(0x11C38 <= code && code <= 0x11C3D) || // Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
0x11C3F == code || // Mn BHAIKSUKI SIGN VIRAMA
(0x11C92 <= code && code <= 0x11CA7) || // Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
(0x11CAA <= code && code <= 0x11CB0) || // Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
(0x11CB2 <= code && code <= 0x11CB3) || // Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
(0x11CB5 <= code && code <= 0x11CB6) || // Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
(0x11D31 <= code && code <= 0x11D36) || // Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
0x11D3A == code || // Mn MASARAM GONDI VOWEL SIGN E
(0x11D3C <= code && code <= 0x11D3D) || // Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
(0x11D3F <= code && code <= 0x11D45) || // Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
0x11D47 == code || // Mn MASARAM GONDI RA-KARA
(0x16AF0 <= code && code <= 0x16AF4) || // Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
(0x16B30 <= code && code <= 0x16B36) || // Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
(0x16F8F <= code && code <= 0x16F92) || // Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
(0x1BC9D <= code && code <= 0x1BC9E) || // Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
0x1D165 == code || // Mc MUSICAL SYMBOL COMBINING STEM
(0x1D167 <= code && code <= 0x1D169) || // Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
(0x1D16E <= code && code <= 0x1D172) || // Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
(0x1D17B <= code && code <= 0x1D182) || // Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
(0x1D185 <= code && code <= 0x1D18B) || // Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
(0x1D1AA <= code && code <= 0x1D1AD) || // Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
(0x1D242 <= code && code <= 0x1D244) || // Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
(0x1DA00 <= code && code <= 0x1DA36) || // Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
(0x1DA3B <= code && code <= 0x1DA6C) || // Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
0x1DA75 == code || // Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
0x1DA84 == code || // Mn SIGNWRITING LOCATION HEAD NECK
(0x1DA9B <= code && code <= 0x1DA9F) || // Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
(0x1DAA1 <= code && code <= 0x1DAAF) || // Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
(0x1E000 <= code && code <= 0x1E006) || // Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
(0x1E008 <= code && code <= 0x1E018) || // Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
(0x1E01B <= code && code <= 0x1E021) || // Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
(0x1E023 <= code && code <= 0x1E024) || // Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
(0x1E026 <= code && code <= 0x1E02A) || // Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
(0x1E8D0 <= code && code <= 0x1E8D6) || // Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
(0x1E944 <= code && code <= 0x1E94A) || // Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
(0xE0020 <= code && code <= 0xE007F) || // Cf [96] TAG SPACE..CANCEL TAG
(0xE0100 <= code && code <= 0xE01EF) // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
){
return Extend;
}
if(
(0x1F1E6 <= code && code <= 0x1F1FF) // So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
){
return Regional_Indicator;
}
if(
0x0903 == code || // Mc DEVANAGARI SIGN VISARGA
0x093B == code || // Mc DEVANAGARI VOWEL SIGN OOE
(0x093E <= code && code <= 0x0940) || // Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
(0x0949 <= code && code <= 0x094C) || // Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
(0x094E <= code && code <= 0x094F) || // Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
(0x0982 <= code && code <= 0x0983) || // Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
(0x09BF <= code && code <= 0x09C0) || // Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II
(0x09C7 <= code && code <= 0x09C8) || // Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
(0x09CB <= code && code <= 0x09CC) || // Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
0x0A03 == code || // Mc GURMUKHI SIGN VISARGA
(0x0A3E <= code && code <= 0x0A40) || // Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
0x0A83 == code || // Mc GUJARATI SIGN VISARGA
(0x0ABE <= code && code <= 0x0AC0) || // Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
0x0AC9 == code || // Mc GUJARATI VOWEL SIGN CANDRA O
(0x0ACB <= code && code <= 0x0ACC) || // Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
(0x0B02 <= code && code <= 0x0B03) || // Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
0x0B40 == code || // Mc ORIYA VOWEL SIGN II
(0x0B47 <= code && code <= 0x0B48) || // Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
(0x0B4B <= code && code <= 0x0B4C) || // Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
0x0BBF == code || // Mc TAMIL VOWEL SIGN I
(0x0BC1 <= code && code <= 0x0BC2) || // Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
(0x0BC6 <= code && code <= 0x0BC8) || // Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
(0x0BCA <= code && code <= 0x0BCC) || // Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
(0x0C01 <= code && code <= 0x0C03) || // Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
(0x0C41 <= code && code <= 0x0C44) || // Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
(0x0C82 <= code && code <= 0x0C83) || // Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
0x0CBE == code || // Mc KANNADA VOWEL SIGN AA
(0x0CC0 <= code && code <= 0x0CC1) || // Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U
(0x0CC3 <= code && code <= 0x0CC4) || // Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
(0x0CC7 <= code && code <= 0x0CC8) || // Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
(0x0CCA <= code && code <= 0x0CCB) || // Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
(0x0D02 <= code && code <= 0x0D03) || // Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
(0x0D3F <= code && code <= 0x0D40) || // Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
(0x0D46 <= code && code <= 0x0D48) || // Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
(0x0D4A <= code && code <= 0x0D4C) || // Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
(0x0D82 <= code && code <= 0x0D83) || // Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
(0x0DD0 <= code && code <= 0x0DD1) || // Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
(0x0DD8 <= code && code <= 0x0DDE) || // Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
(0x0DF2 <= code && code <= 0x0DF3) || // Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
0x0E33 == code || // Lo THAI CHARACTER SARA AM
0x0EB3 == code || // Lo LAO VOWEL SIGN AM
(0x0F3E <= code && code <= 0x0F3F) || // Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
0x0F7F == code || // Mc TIBETAN SIGN RNAM BCAD
0x1031 == code || // Mc MYANMAR VOWEL SIGN E
(0x103B <= code && code <= 0x103C) || // Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
(0x1056 <= code && code <= 0x1057) || // Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
0x1084 == code || // Mc MYANMAR VOWEL SIGN SHAN E
0x17B6 == code || // Mc KHMER VOWEL SIGN AA
(0x17BE <= code && code <= 0x17C5) || // Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
(0x17C7 <= code && code <= 0x17C8) || // Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
(0x1923 <= code && code <= 0x1926) || // Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
(0x1929 <= code && code <= 0x192B) || // Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
(0x1930 <= code && code <= 0x1931) || // Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
(0x1933 <= code && code <= 0x1938) || // Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
(0x1A19 <= code && code <= 0x1A1A) || // Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
0x1A55 == code || // Mc TAI THAM CONSONANT SIGN MEDIAL RA
0x1A57 == code || // Mc TAI THAM CONSONANT SIGN LA TANG LAI
(0x1A6D <= code && code <= 0x1A72) || // Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
0x1B04 == code || // Mc BALINESE SIGN BISAH
0x1B35 == code || // Mc BALINESE VOWEL SIGN TEDUNG
0x1B3B == code || // Mc BALINESE VOWEL SIGN RA REPA TEDUNG
(0x1B3D <= code && code <= 0x1B41) || // Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
(0x1B43 <= code && code <= 0x1B44) || // Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
0x1B82 == code || // Mc SUNDANESE SIGN PANGWISAD
0x1BA1 == code || // Mc SUNDANESE CONSONANT SIGN PAMINGKAL
(0x1BA6 <= code && code <= 0x1BA7) || // Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
0x1BAA == code || // Mc SUNDANESE SIGN PAMAAEH
0x1BE7 == code || // Mc BATAK VOWEL SIGN E
(0x1BEA <= code && code <= 0x1BEC) || // Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
0x1BEE == code || // Mc BATAK VOWEL SIGN U
(0x1BF2 <= code && code <= 0x1BF3) || // Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
(0x1C24 <= code && code <= 0x1C2B) || // Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
(0x1C34 <= code && code <= 0x1C35) || // Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
0x1CE1 == code || // Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
(0x1CF2 <= code && code <= 0x1CF3) || // Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
0x1CF7 == code || // Mc VEDIC SIGN ATIKRAMA
(0xA823 <= code && code <= 0xA824) || // Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
0xA827 == code || // Mc SYLOTI NAGRI VOWEL SIGN OO
(0xA880 <= code && code <= 0xA881) || // Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
(0xA8B4 <= code && code <= 0xA8C3) || // Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
(0xA952 <= code && code <= 0xA953) || // Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
0xA983 == code || // Mc JAVANESE SIGN WIGNYAN
(0xA9B4 <= code && code <= 0xA9B5) || // Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
(0xA9BA <= code && code <= 0xA9BB) || // Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
(0xA9BD <= code && code <= 0xA9C0) || // Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
(0xAA2F <= code && code <= 0xAA30) || // Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
(0xAA33 <= code && code <= 0xAA34) || // Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
0xAA4D == code || // Mc CHAM CONSONANT SIGN FINAL H
0xAAEB == code || // Mc MEETEI MAYEK VOWEL SIGN II
(0xAAEE <= code && code <= 0xAAEF) || // Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
0xAAF5 == code || // Mc MEETEI MAYEK VOWEL SIGN VISARGA
(0xABE3 <= code && code <= 0xABE4) || // Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
(0xABE6 <= code && code <= 0xABE7) || // Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
(0xABE9 <= code && code <= 0xABEA) || // Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
0xABEC == code || // Mc MEETEI MAYEK LUM IYEK
0x11000 == code || // Mc BRAHMI SIGN CANDRABINDU
0x11002 == code || // Mc BRAHMI SIGN VISARGA
0x11082 == code || // Mc KAITHI SIGN VISARGA
(0x110B0 <= code && code <= 0x110B2) || // Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
(0x110B7 <= code && code <= 0x110B8) || // Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
0x1112C == code || // Mc CHAKMA VOWEL SIGN E
0x11182 == code || // Mc SHARADA SIGN VISARGA
(0x111B3 <= code && code <= 0x111B5) || // Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
(0x111BF <= code && code <= 0x111C0) || // Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
(0x1122C <= code && code <= 0x1122E) || // Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
(0x11232 <= code && code <= 0x11233) || // Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
0x11235 == code || // Mc KHOJKI SIGN VIRAMA
(0x112E0 <= code && code <= 0x112E2) || // Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
(0x11302 <= code && code <= 0x11303) || // Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
0x1133F == code || // Mc GRANTHA VOWEL SIGN I
(0x11341 <= code && code <= 0x11344) || // Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
(0x11347 <= code && code <= 0x11348) || // Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
(0x1134B <= code && code <= 0x1134D) || // Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
(0x11362 <= code && code <= 0x11363) || // Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
(0x11435 <= code && code <= 0x11437) || // Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
(0x11440 <= code && code <= 0x11441) || // Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
0x11445 == code || // Mc NEWA SIGN VISARGA
(0x114B1 <= code && code <= 0x114B2) || // Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II
0x114B9 == code || // Mc TIRHUTA VOWEL SIGN E
(0x114BB <= code && code <= 0x114BC) || // Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
0x114BE == code || // Mc TIRHUTA VOWEL SIGN AU
0x114C1 == code || // Mc TIRHUTA SIGN VISARGA
(0x115B0 <= code && code <= 0x115B1) || // Mc [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II
(0x115B8 <= code && code <= 0x115BB) || // Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
0x115BE == code || // Mc SIDDHAM SIGN VISARGA
(0x11630 <= code && code <= 0x11632) || // Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
(0x1163B <= code && code <= 0x1163C) || // Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
0x1163E == code || // Mc MODI SIGN VISARGA
0x116AC == code || // Mc TAKRI SIGN VISARGA
(0x116AE <= code && code <= 0x116AF) || // Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
0x116B6 == code || // Mc TAKRI SIGN VIRAMA
(0x11720 <= code && code <= 0x11721) || // Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
0x11726 == code || // Mc AHOM VOWEL SIGN E
(0x11A07 <= code && code <= 0x11A08) || // Mc [2] ZANABAZAR SQUARE VOWEL SIGN AI..ZANABAZAR SQUARE VOWEL SIGN AU
0x11A39 == code || // Mc ZANABAZAR SQUARE SIGN VISARGA
(0x11A57 <= code && code <= 0x11A58) || // Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
0x11A97 == code || // Mc SOYOMBO SIGN VISARGA
0x11C2F == code || // Mc BHAIKSUKI VOWEL SIGN AA
0x11C3E == code || // Mc BHAIKSUKI SIGN VISARGA
0x11CA9 == code || // Mc MARCHEN SUBJOINED LETTER YA
0x11CB1 == code || // Mc MARCHEN VOWEL SIGN I
0x11CB4 == code || // Mc MARCHEN VOWEL SIGN O
(0x16F51 <= code && code <= 0x16F7E) || // Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
0x1D166 == code || // Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
0x1D16D == code // Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT
){
return SpacingMark;
}
if(
(0x1100 <= code && code <= 0x115F) || // Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
(0xA960 <= code && code <= 0xA97C) // Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
){
return L;
}
if(
(0x1160 <= code && code <= 0x11A7) || // Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
(0xD7B0 <= code && code <= 0xD7C6) // Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
){
return V;
}
if(
(0x11A8 <= code && code <= 0x11FF) || // Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
(0xD7CB <= code && code <= 0xD7FB) // Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
){
return T;
}
if(
0xAC00 == code || // Lo HANGUL SYLLABLE GA
0xAC1C == code || // Lo HANGUL SYLLABLE GAE
0xAC38 == code || // Lo HANGUL SYLLABLE GYA
0xAC54 == code || // Lo HANGUL SYLLABLE GYAE
0xAC70 == code || // Lo HANGUL SYLLABLE GEO
0xAC8C == code || // Lo HANGUL SYLLABLE GE
0xACA8 == code || // Lo HANGUL SYLLABLE GYEO
0xACC4 == code || // Lo HANGUL SYLLABLE GYE
0xACE0 == code || // Lo HANGUL SYLLABLE GO
0xACFC == code || // Lo HANGUL SYLLABLE GWA
0xAD18 == code || // Lo HANGUL SYLLABLE GWAE
0xAD34 == code || // Lo HANGUL SYLLABLE GOE
0xAD50 == code || // Lo HANGUL SYLLABLE GYO
0xAD6C == code || // Lo HANGUL SYLLABLE GU
0xAD88 == code || // Lo HANGUL SYLLABLE GWEO
0xADA4 == code || // Lo HANGUL SYLLABLE GWE
0xADC0 == code || // Lo HANGUL SYLLABLE GWI
0xADDC == code || // Lo HANGUL SYLLABLE GYU
0xADF8 == code || // Lo HANGUL SYLLABLE GEU
0xAE14 == code || // Lo HANGUL SYLLABLE GYI
0xAE30 == code || // Lo HANGUL SYLLABLE GI
0xAE4C == code || // Lo HANGUL SYLLABLE GGA
0xAE68 == code || // Lo HANGUL SYLLABLE GGAE
0xAE84 == code || // Lo HANGUL SYLLABLE GGYA
0xAEA0 == code || // Lo HANGUL SYLLABLE GGYAE
0xAEBC == code || // Lo HANGUL SYLLABLE GGEO
0xAED8 == code || // Lo HANGUL SYLLABLE GGE
0xAEF4 == code || // Lo HANGUL SYLLABLE GGYEO
0xAF10 == code || // Lo HANGUL SYLLABLE GGYE
0xAF2C == code || // Lo HANGUL SYLLABLE GGO
0xAF48 == code || // Lo HANGUL SYLLABLE GGWA
0xAF64 == code || // Lo HANGUL SYLLABLE GGWAE
0xAF80 == code || // Lo HANGUL SYLLABLE GGOE
0xAF9C == code || // Lo HANGUL SYLLABLE GGYO
0xAFB8 == code || // Lo HANGUL SYLLABLE GGU
0xAFD4 == code || // Lo HANGUL SYLLABLE GGWEO
0xAFF0 == code || // Lo HANGUL SYLLABLE GGWE
0xB00C == code || // Lo HANGUL SYLLABLE GGWI
0xB028 == code || // Lo HANGUL SYLLABLE GGYU
0xB044 == code || // Lo HANGUL SYLLABLE GGEU
0xB060 == code || // Lo HANGUL SYLLABLE GGYI
0xB07C == code || // Lo HANGUL SYLLABLE GGI
0xB098 == code || // Lo HANGUL SYLLABLE NA
0xB0B4 == code || // Lo HANGUL SYLLABLE NAE
0xB0D0 == code || // Lo HANGUL SYLLABLE NYA
0xB0EC == code || // Lo HANGUL SYLLABLE NYAE
0xB108 == code || // Lo HANGUL SYLLABLE NEO
0xB124 == code || // Lo HANGUL SYLLABLE NE
0xB140 == code || // Lo HANGUL SYLLABLE NYEO
0xB15C == code || // Lo HANGUL SYLLABLE NYE
0xB178 == code || // Lo HANGUL SYLLABLE NO
0xB194 == code || // Lo HANGUL SYLLABLE NWA
0xB1B0 == code || // Lo HANGUL SYLLABLE NWAE
0xB1CC == code || // Lo HANGUL SYLLABLE NOE
0xB1E8 == code || // Lo HANGUL SYLLABLE NYO
0xB204 == code || // Lo HANGUL SYLLABLE NU
0xB220 == code || // Lo HANGUL SYLLABLE NWEO
0xB23C == code || // Lo HANGUL SYLLABLE NWE
0xB258 == code || // Lo HANGUL SYLLABLE NWI
0xB274 == code || // Lo HANGUL SYLLABLE NYU
0xB290 == code || // Lo HANGUL SYLLABLE NEU
0xB2AC == code || // Lo HANGUL SYLLABLE NYI
0xB2C8 == code || // Lo HANGUL SYLLABLE NI
0xB2E4 == code || // Lo HANGUL SYLLABLE DA
0xB300 == code || // Lo HANGUL SYLLABLE DAE
0xB31C == code || // Lo HANGUL SYLLABLE DYA
0xB338 == code || // Lo HANGUL SYLLABLE DYAE
0xB354 == code || // Lo HANGUL SYLLABLE DEO
0xB370 == code || // Lo HANGUL SYLLABLE DE
0xB38C == code || // Lo HANGUL SYLLABLE DYEO
0xB3A8 == code || // Lo HANGUL SYLLABLE DYE
0xB3C4 == code || // Lo HANGUL SYLLABLE DO
0xB3E0 == code || // Lo HANGUL SYLLABLE DWA
0xB3FC == code || // Lo HANGUL SYLLABLE DWAE
0xB418 == code || // Lo HANGUL SYLLABLE DOE
0xB434 == code || // Lo HANGUL SYLLABLE DYO
0xB450 == code || // Lo HANGUL SYLLABLE DU
0xB46C == code || // Lo HANGUL SYLLABLE DWEO
0xB488 == code || // Lo HANGUL SYLLABLE DWE
0xB4A4 == code || // Lo HANGUL SYLLABLE DWI
0xB4C0 == code || // Lo HANGUL SYLLABLE DYU
0xB4DC == code || // Lo HANGUL SYLLABLE DEU
0xB4F8 == code || // Lo HANGUL SYLLABLE DYI
0xB514 == code || // Lo HANGUL SYLLABLE DI
0xB530 == code || // Lo HANGUL SYLLABLE DDA
0xB54C == code || // Lo HANGUL SYLLABLE DDAE
0xB568 == code || // Lo HANGUL SYLLABLE DDYA
0xB584 == code || // Lo HANGUL SYLLABLE DDYAE
0xB5A0 == code || // Lo HANGUL SYLLABLE DDEO
0xB5BC == code || // Lo HANGUL SYLLABLE DDE
0xB5D8 == code || // Lo HANGUL SYLLABLE DDYEO
0xB5F4 == code || // Lo HANGUL SYLLABLE DDYE
0xB610 == code || // Lo HANGUL SYLLABLE DDO
0xB62C == code || // Lo HANGUL SYLLABLE DDWA
0xB648 == code || // Lo HANGUL SYLLABLE DDWAE
0xB664 == code || // Lo HANGUL SYLLABLE DDOE
0xB680 == code || // Lo HANGUL SYLLABLE DDYO
0xB69C == code || // Lo HANGUL SYLLABLE DDU
0xB6B8 == code || // Lo HANGUL SYLLABLE DDWEO
0xB6D4 == code || // Lo HANGUL SYLLABLE DDWE
0xB6F0 == code || // Lo HANGUL SYLLABLE DDWI
0xB70C == code || // Lo HANGUL SYLLABLE DDYU
0xB728 == code || // Lo HANGUL SYLLABLE DDEU
0xB744 == code || // Lo HANGUL SYLLABLE DDYI
0xB760 == code || // Lo HANGUL SYLLABLE DDI
0xB77C == code || // Lo HANGUL SYLLABLE RA
0xB798 == code || // Lo HANGUL SYLLABLE RAE
0xB7B4 == code || // Lo HANGUL SYLLABLE RYA
0xB7D0 == code || // Lo HANGUL SYLLABLE RYAE
0xB7EC == code || // Lo HANGUL SYLLABLE REO
0xB808 == code || // Lo HANGUL SYLLABLE RE
0xB824 == code || // Lo HANGUL SYLLABLE RYEO
0xB840 == code || // Lo HANGUL SYLLABLE RYE
0xB85C == code || // Lo HANGUL SYLLABLE RO
0xB878 == code || // Lo HANGUL SYLLABLE RWA
0xB894 == code || // Lo HANGUL SYLLABLE RWAE
0xB8B0 == code || // Lo HANGUL SYLLABLE ROE
0xB8CC == code || // Lo HANGUL SYLLABLE RYO
0xB8E8 == code || // Lo HANGUL SYLLABLE RU
0xB904 == code || // Lo HANGUL SYLLABLE RWEO
0xB920 == code || // Lo HANGUL SYLLABLE RWE
0xB93C == code || // Lo HANGUL SYLLABLE RWI
0xB958 == code || // Lo HANGUL SYLLABLE RYU
0xB974 == code || // Lo HANGUL SYLLABLE REU
0xB990 == code || // Lo HANGUL SYLLABLE RYI
0xB9AC == code || // Lo HANGUL SYLLABLE RI
0xB9C8 == code || // Lo HANGUL SYLLABLE MA
0xB9E4 == code || // Lo HANGUL SYLLABLE MAE
0xBA00 == code || // Lo HANGUL SYLLABLE MYA
0xBA1C == code || // Lo HANGUL SYLLABLE MYAE
0xBA38 == code || // Lo HANGUL SYLLABLE MEO
0xBA54 == code || // Lo HANGUL SYLLABLE ME
0xBA70 == code || // Lo HANGUL SYLLABLE MYEO
0xBA8C == code || // Lo HANGUL SYLLABLE MYE
0xBAA8 == code || // Lo HANGUL SYLLABLE MO
0xBAC4 == code || // Lo HANGUL SYLLABLE MWA
0xBAE0 == code || // Lo HANGUL SYLLABLE MWAE
0xBAFC == code || // Lo HANGUL SYLLABLE MOE
0xBB18 == code || // Lo HANGUL SYLLABLE MYO
0xBB34 == code || // Lo HANGUL SYLLABLE MU
0xBB50 == code || // Lo HANGUL SYLLABLE MWEO
0xBB6C == code || // Lo HANGUL SYLLABLE MWE
0xBB88 == code || // Lo HANGUL SYLLABLE MWI
0xBBA4 == code || // Lo HANGUL SYLLABLE MYU
0xBBC0 == code || // Lo HANGUL SYLLABLE MEU
0xBBDC == code || // Lo HANGUL SYLLABLE MYI
0xBBF8 == code || // Lo HANGUL SYLLABLE MI
0xBC14 == code || // Lo HANGUL SYLLABLE BA
0xBC30 == code || // Lo HANGUL SYLLABLE BAE
0xBC4C == code || // Lo HANGUL SYLLABLE BYA
0xBC68 == code || // Lo HANGUL SYLLABLE BYAE
0xBC84 == code || // Lo HANGUL SYLLABLE BEO
0xBCA0 == code || // Lo HANGUL SYLLABLE BE
0xBCBC == code || // Lo HANGUL SYLLABLE BYEO
0xBCD8 == code || // Lo HANGUL SYLLABLE BYE
0xBCF4 == code || // Lo HANGUL SYLLABLE BO
0xBD10 == code || // Lo HANGUL SYLLABLE BWA
0xBD2C == code || // Lo HANGUL SYLLABLE BWAE
0xBD48 == code || // Lo HANGUL SYLLABLE BOE
0xBD64 == code || // Lo HANGUL SYLLABLE BYO
0xBD80 == code || // Lo HANGUL SYLLABLE BU
0xBD9C == code || // Lo HANGUL SYLLABLE BWEO
0xBDB8 == code || // Lo HANGUL SYLLABLE BWE
0xBDD4 == code || // Lo HANGUL SYLLABLE BWI
0xBDF0 == code || // Lo HANGUL SYLLABLE BYU
0xBE0C == code || // Lo HANGUL SYLLABLE BEU
0xBE28 == code || // Lo HANGUL SYLLABLE BYI
0xBE44 == code || // Lo HANGUL SYLLABLE BI
0xBE60 == code || // Lo HANGUL SYLLABLE BBA
0xBE7C == code || // Lo HANGUL SYLLABLE BBAE
0xBE98 == code || // Lo HANGUL SYLLABLE BBYA
0xBEB4 == code || // Lo HANGUL SYLLABLE BBYAE
0xBED0 == code || // Lo HANGUL SYLLABLE BBEO
0xBEEC == code || // Lo HANGUL SYLLABLE BBE
0xBF08 == code || // Lo HANGUL SYLLABLE BBYEO
0xBF24 == code || // Lo HANGUL SYLLABLE BBYE
0xBF40 == code || // Lo HANGUL SYLLABLE BBO
0xBF5C == code || // Lo HANGUL SYLLABLE BBWA
0xBF78 == code || // Lo HANGUL SYLLABLE BBWAE
0xBF94 == code || // Lo HANGUL SYLLABLE BBOE
0xBFB0 == code || // Lo HANGUL SYLLABLE BBYO
0xBFCC == code || // Lo HANGUL SYLLABLE BBU
0xBFE8 == code || // Lo HANGUL SYLLABLE BBWEO
0xC004 == code || // Lo HANGUL SYLLABLE BBWE
0xC020 == code || // Lo HANGUL SYLLABLE BBWI
0xC03C == code || // Lo HANGUL SYLLABLE BBYU
0xC058 == code || // Lo HANGUL SYLLABLE BBEU
0xC074 == code || // Lo HANGUL SYLLABLE BBYI
0xC090 == code || // Lo HANGUL SYLLABLE BBI
0xC0AC == code || // Lo HANGUL SYLLABLE SA
0xC0C8 == code || // Lo HANGUL SYLLABLE SAE
0xC0E4 == code || // Lo HANGUL SYLLABLE SYA
0xC100 == code || // Lo HANGUL SYLLABLE SYAE
0xC11C == code || // Lo HANGUL SYLLABLE SEO
0xC138 == code || // Lo HANGUL SYLLABLE SE
0xC154 == code || // Lo HANGUL SYLLABLE SYEO
0xC170 == code || // Lo HANGUL SYLLABLE SYE
0xC18C == code || // Lo HANGUL SYLLABLE SO
0xC1A8 == code || // Lo HANGUL SYLLABLE SWA
0xC1C4 == code || // Lo HANGUL SYLLABLE SWAE
0xC1E0 == code || // Lo HANGUL SYLLABLE SOE
0xC1FC == code || // Lo HANGUL SYLLABLE SYO
0xC218 == code || // Lo HANGUL SYLLABLE SU
0xC234 == code || // Lo HANGUL SYLLABLE SWEO
0xC250 == code || // Lo HANGUL SYLLABLE SWE
0xC26C == code || // Lo HANGUL SYLLABLE SWI
0xC288 == code || // Lo HANGUL SYLLABLE SYU
0xC2A4 == code || // Lo HANGUL SYLLABLE SEU
0xC2C0 == code || // Lo HANGUL SYLLABLE SYI
0xC2DC == code || // Lo HANGUL SYLLABLE SI
0xC2F8 == code || // Lo HANGUL SYLLABLE SSA
0xC314 == code || // Lo HANGUL SYLLABLE SSAE
0xC330 == code || // Lo HANGUL SYLLABLE SSYA
0xC34C == code || // Lo HANGUL SYLLABLE SSYAE
0xC368 == code || // Lo HANGUL SYLLABLE SSEO
0xC384 == code || // Lo HANGUL SYLLABLE SSE
0xC3A0 == code || // Lo HANGUL SYLLABLE SSYEO
0xC3BC == code || // Lo HANGUL SYLLABLE SSYE
0xC3D8 == code || // Lo HANGUL SYLLABLE SSO
0xC3F4 == code || // Lo HANGUL SYLLABLE SSWA
0xC410 == code || // Lo HANGUL SYLLABLE SSWAE
0xC42C == code || // Lo HANGUL SYLLABLE SSOE
0xC448 == code || // Lo HANGUL SYLLABLE SSYO
0xC464 == code || // Lo HANGUL SYLLABLE SSU
0xC480 == code || // Lo HANGUL SYLLABLE SSWEO
0xC49C == code || // Lo HANGUL SYLLABLE SSWE
0xC4B8 == code || // Lo HANGUL SYLLABLE SSWI
0xC4D4 == code || // Lo HANGUL SYLLABLE SSYU
0xC4F0 == code || // Lo HANGUL SYLLABLE SSEU
0xC50C == code || // Lo HANGUL SYLLABLE SSYI
0xC528 == code || // Lo HANGUL SYLLABLE SSI
0xC544 == code || // Lo HANGUL SYLLABLE A
0xC560 == code || // Lo HANGUL SYLLABLE AE
0xC57C == code || // Lo HANGUL SYLLABLE YA
0xC598 == code || // Lo HANGUL SYLLABLE YAE
0xC5B4 == code || // Lo HANGUL SYLLABLE EO
0xC5D0 == code || // Lo HANGUL SYLLABLE E
0xC5EC == code || // Lo HANGUL SYLLABLE YEO
0xC608 == code || // Lo HANGUL SYLLABLE YE
0xC624 == code || // Lo HANGUL SYLLABLE O
0xC640 == code || // Lo HANGUL SYLLABLE WA
0xC65C == code || // Lo HANGUL SYLLABLE WAE
0xC678 == code || // Lo HANGUL SYLLABLE OE
0xC694 == code || // Lo HANGUL SYLLABLE YO
0xC6B0 == code || // Lo HANGUL SYLLABLE U
0xC6CC == code || // Lo HANGUL SYLLABLE WEO
0xC6E8 == code || // Lo HANGUL SYLLABLE WE
0xC704 == code || // Lo HANGUL SYLLABLE WI
0xC720 == code || // Lo HANGUL SYLLABLE YU
0xC73C == code || // Lo HANGUL SYLLABLE EU
0xC758 == code || // Lo HANGUL SYLLABLE YI
0xC774 == code || // Lo HANGUL SYLLABLE I
0xC790 == code || // Lo HANGUL SYLLABLE JA
0xC7AC == code || // Lo HANGUL SYLLABLE JAE
0xC7C8 == code || // Lo HANGUL SYLLABLE JYA
0xC7E4 == code || // Lo HANGUL SYLLABLE JYAE
0xC800 == code || // Lo HANGUL SYLLABLE JEO
0xC81C == code || // Lo HANGUL SYLLABLE JE
0xC838 == code || // Lo HANGUL SYLLABLE JYEO
0xC854 == code || // Lo HANGUL SYLLABLE JYE
0xC870 == code || // Lo HANGUL SYLLABLE JO
0xC88C == code || // Lo HANGUL SYLLABLE JWA
0xC8A8 == code || // Lo HANGUL SYLLABLE JWAE
0xC8C4 == code || // Lo HANGUL SYLLABLE JOE
0xC8E0 == code || // Lo HANGUL SYLLABLE JYO
0xC8FC == code || // Lo HANGUL SYLLABLE JU
0xC918 == code || // Lo HANGUL SYLLABLE JWEO
0xC934 == code || // Lo HANGUL SYLLABLE JWE
0xC950 == code || // Lo HANGUL SYLLABLE JWI
0xC96C == code || // Lo HANGUL SYLLABLE JYU
0xC988 == code || // Lo HANGUL SYLLABLE JEU
0xC9A4 == code || // Lo HANGUL SYLLABLE JYI
0xC9C0 == code || // Lo HANGUL SYLLABLE JI
0xC9DC == code || // Lo HANGUL SYLLABLE JJA
0xC9F8 == code || // Lo HANGUL SYLLABLE JJAE
0xCA14 == code || // Lo HANGUL SYLLABLE JJYA
0xCA30 == code || // Lo HANGUL SYLLABLE JJYAE
0xCA4C == code || // Lo HANGUL SYLLABLE JJEO
0xCA68 == code || // Lo HANGUL SYLLABLE JJE
0xCA84 == code || // Lo HANGUL SYLLABLE JJYEO
0xCAA0 == code || // Lo HANGUL SYLLABLE JJYE
0xCABC == code || // Lo HANGUL SYLLABLE JJO
0xCAD8 == code || // Lo HANGUL SYLLABLE JJWA
0xCAF4 == code || // Lo HANGUL SYLLABLE JJWAE
0xCB10 == code || // Lo HANGUL SYLLABLE JJOE
0xCB2C == code || // Lo HANGUL SYLLABLE JJYO
0xCB48 == code || // Lo HANGUL SYLLABLE JJU
0xCB64 == code || // Lo HANGUL SYLLABLE JJWEO
0xCB80 == code || // Lo HANGUL SYLLABLE JJWE
0xCB9C == code || // Lo HANGUL SYLLABLE JJWI
0xCBB8 == code || // Lo HANGUL SYLLABLE JJYU
0xCBD4 == code || // Lo HANGUL SYLLABLE JJEU
0xCBF0 == code || // Lo HANGUL SYLLABLE JJYI
0xCC0C == code || // Lo HANGUL SYLLABLE JJI
0xCC28 == code || // Lo HANGUL SYLLABLE CA
0xCC44 == code || // Lo HANGUL SYLLABLE CAE
0xCC60 == code || // Lo HANGUL SYLLABLE CYA
0xCC7C == code || // Lo HANGUL SYLLABLE CYAE
0xCC98 == code || // Lo HANGUL SYLLABLE CEO
0xCCB4 == code || // Lo HANGUL SYLLABLE CE
0xCCD0 == code || // Lo HANGUL SYLLABLE CYEO
0xCCEC == code || // Lo HANGUL SYLLABLE CYE
0xCD08 == code || // Lo HANGUL SYLLABLE CO
0xCD24 == code || // Lo HANGUL SYLLABLE CWA
0xCD40 == code || // Lo HANGUL SYLLABLE CWAE
0xCD5C == code || // Lo HANGUL SYLLABLE COE
0xCD78 == code || // Lo HANGUL SYLLABLE CYO
0xCD94 == code || // Lo HANGUL SYLLABLE CU
0xCDB0 == code || // Lo HANGUL SYLLABLE CWEO
0xCDCC == code || // Lo HANGUL SYLLABLE CWE
0xCDE8 == code || // Lo HANGUL SYLLABLE CWI
0xCE04 == code || // Lo HANGUL SYLLABLE CYU
0xCE20 == code || // Lo HANGUL SYLLABLE CEU
0xCE3C == code || // Lo HANGUL SYLLABLE CYI
0xCE58 == code || // Lo HANGUL SYLLABLE CI
0xCE74 == code || // Lo HANGUL SYLLABLE KA
0xCE90 == code || // Lo HANGUL SYLLABLE KAE
0xCEAC == code || // Lo HANGUL SYLLABLE KYA
0xCEC8 == code || // Lo HANGUL SYLLABLE KYAE
0xCEE4 == code || // Lo HANGUL SYLLABLE KEO
0xCF00 == code || // Lo HANGUL SYLLABLE KE
0xCF1C == code || // Lo HANGUL SYLLABLE KYEO
0xCF38 == code || // Lo HANGUL SYLLABLE KYE
0xCF54 == code || // Lo HANGUL SYLLABLE KO
0xCF70 == code || // Lo HANGUL SYLLABLE KWA
0xCF8C == code || // Lo HANGUL SYLLABLE KWAE
0xCFA8 == code || // Lo HANGUL SYLLABLE KOE
0xCFC4 == code || // Lo HANGUL SYLLABLE KYO
0xCFE0 == code || // Lo HANGUL SYLLABLE KU
0xCFFC == code || // Lo HANGUL SYLLABLE KWEO
0xD018 == code || // Lo HANGUL SYLLABLE KWE
0xD034 == code || // Lo HANGUL SYLLABLE KWI
0xD050 == code || // Lo HANGUL SYLLABLE KYU
0xD06C == code || // Lo HANGUL SYLLABLE KEU
0xD088 == code || // Lo HANGUL SYLLABLE KYI
0xD0A4 == code || // Lo HANGUL SYLLABLE KI
0xD0C0 == code || // Lo HANGUL SYLLABLE TA
0xD0DC == code || // Lo HANGUL SYLLABLE TAE
0xD0F8 == code || // Lo HANGUL SYLLABLE TYA
0xD114 == code || // Lo HANGUL SYLLABLE TYAE
0xD130 == code || // Lo HANGUL SYLLABLE TEO
0xD14C == code || // Lo HANGUL SYLLABLE TE
0xD168 == code || // Lo HANGUL SYLLABLE TYEO
0xD184 == code || // Lo HANGUL SYLLABLE TYE
0xD1A0 == code || // Lo HANGUL SYLLABLE TO
0xD1BC == code || // Lo HANGUL SYLLABLE TWA
0xD1D8 == code || // Lo HANGUL SYLLABLE TWAE
0xD1F4 == code || // Lo HANGUL SYLLABLE TOE
0xD210 == code || // Lo HANGUL SYLLABLE TYO
0xD22C == code || // Lo HANGUL SYLLABLE TU
0xD248 == code || // Lo HANGUL SYLLABLE TWEO
0xD264 == code || // Lo HANGUL SYLLABLE TWE
0xD280 == code || // Lo HANGUL SYLLABLE TWI
0xD29C == code || // Lo HANGUL SYLLABLE TYU
0xD2B8 == code || // Lo HANGUL SYLLABLE TEU
0xD2D4 == code || // Lo HANGUL SYLLABLE TYI
0xD2F0 == code || // Lo HANGUL SYLLABLE TI
0xD30C == code || // Lo HANGUL SYLLABLE PA
0xD328 == code || // Lo HANGUL SYLLABLE PAE
0xD344 == code || // Lo HANGUL SYLLABLE PYA
0xD360 == code || // Lo HANGUL SYLLABLE PYAE
0xD37C == code || // Lo HANGUL SYLLABLE PEO
0xD398 == code || // Lo HANGUL SYLLABLE PE
0xD3B4 == code || // Lo HANGUL SYLLABLE PYEO
0xD3D0 == code || // Lo HANGUL SYLLABLE PYE
0xD3EC == code || // Lo HANGUL SYLLABLE PO
0xD408 == code || // Lo HANGUL SYLLABLE PWA
0xD424 == code || // Lo HANGUL SYLLABLE PWAE
0xD440 == code || // Lo HANGUL SYLLABLE POE
0xD45C == code || // Lo HANGUL SYLLABLE PYO
0xD478 == code || // Lo HANGUL SYLLABLE PU
0xD494 == code || // Lo HANGUL SYLLABLE PWEO
0xD4B0 == code || // Lo HANGUL SYLLABLE PWE
0xD4CC == code || // Lo HANGUL SYLLABLE PWI
0xD4E8 == code || // Lo HANGUL SYLLABLE PYU
0xD504 == code || // Lo HANGUL SYLLABLE PEU
0xD520 == code || // Lo HANGUL SYLLABLE PYI
0xD53C == code || // Lo HANGUL SYLLABLE PI
0xD558 == code || // Lo HANGUL SYLLABLE HA
0xD574 == code || // Lo HANGUL SYLLABLE HAE
0xD590 == code || // Lo HANGUL SYLLABLE HYA
0xD5AC == code || // Lo HANGUL SYLLABLE HYAE
0xD5C8 == code || // Lo HANGUL SYLLABLE HEO
0xD5E4 == code || // Lo HANGUL SYLLABLE HE
0xD600 == code || // Lo HANGUL SYLLABLE HYEO
0xD61C == code || // Lo HANGUL SYLLABLE HYE
0xD638 == code || // Lo HANGUL SYLLABLE HO
0xD654 == code || // Lo HANGUL SYLLABLE HWA
0xD670 == code || // Lo HANGUL SYLLABLE HWAE
0xD68C == code || // Lo HANGUL SYLLABLE HOE
0xD6A8 == code || // Lo HANGUL SYLLABLE HYO
0xD6C4 == code || // Lo HANGUL SYLLABLE HU
0xD6E0 == code || // Lo HANGUL SYLLABLE HWEO
0xD6FC == code || // Lo HANGUL SYLLABLE HWE
0xD718 == code || // Lo HANGUL SYLLABLE HWI
0xD734 == code || // Lo HANGUL SYLLABLE HYU
0xD750 == code || // Lo HANGUL SYLLABLE HEU
0xD76C == code || // Lo HANGUL SYLLABLE HYI
0xD788 == code // Lo HANGUL SYLLABLE HI
){
return LV;
}
if(
(0xAC01 <= code && code <= 0xAC1B) || // Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
(0xAC1D <= code && code <= 0xAC37) || // Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
(0xAC39 <= code && code <= 0xAC53) || // Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
(0xAC55 <= code && code <= 0xAC6F) || // Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
(0xAC71 <= code && code <= 0xAC8B) || // Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
(0xAC8D <= code && code <= 0xACA7) || // Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
(0xACA9 <= code && code <= 0xACC3) || // Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
(0xACC5 <= code && code <= 0xACDF) || // Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
(0xACE1 <= code && code <= 0xACFB) || // Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
(0xACFD <= code && code <= 0xAD17) || // Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
(0xAD19 <= code && code <= 0xAD33) || // Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
(0xAD35 <= code && code <= 0xAD4F) || // Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
(0xAD51 <= code && code <= 0xAD6B) || // Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
(0xAD6D <= code && code <= 0xAD87) || // Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
(0xAD89 <= code && code <= 0xADA3) || // Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
(0xADA5 <= code && code <= 0xADBF) || // Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
(0xADC1 <= code && code <= 0xADDB) || // Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
(0xADDD <= code && code <= 0xADF7) || // Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
(0xADF9 <= code && code <= 0xAE13) || // Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
(0xAE15 <= code && code <= 0xAE2F) || // Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
(0xAE31 <= code && code <= 0xAE4B) || // Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
(0xAE4D <= code && code <= 0xAE67) || // Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
(0xAE69 <= code && code <= 0xAE83) || // Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
(0xAE85 <= code && code <= 0xAE9F) || // Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
(0xAEA1 <= code && code <= 0xAEBB) || // Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
(0xAEBD <= code && code <= 0xAED7) || // Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
(0xAED9 <= code && code <= 0xAEF3) || // Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
(0xAEF5 <= code && code <= 0xAF0F) || // Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
(0xAF11 <= code && code <= 0xAF2B) || // Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
(0xAF2D <= code && code <= 0xAF47) || // Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
(0xAF49 <= code && code <= 0xAF63) || // Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
(0xAF65 <= code && code <= 0xAF7F) || // Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
(0xAF81 <= code && code <= 0xAF9B) || // Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
(0xAF9D <= code && code <= 0xAFB7) || // Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
(0xAFB9 <= code && code <= 0xAFD3) || // Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
(0xAFD5 <= code && code <= 0xAFEF) || // Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
(0xAFF1 <= code && code <= 0xB00B) || // Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
(0xB00D <= code && code <= 0xB027) || // Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
(0xB029 <= code && code <= 0xB043) || // Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
(0xB045 <= code && code <= 0xB05F) || // Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
(0xB061 <= code && code <= 0xB07B) || // Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
(0xB07D <= code && code <= 0xB097) || // Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
(0xB099 <= code && code <= 0xB0B3) || // Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
(0xB0B5 <= code && code <= 0xB0CF) || // Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
(0xB0D1 <= code && code <= 0xB0EB) || // Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
(0xB0ED <= code && code <= 0xB107) || // Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
(0xB109 <= code && code <= 0xB123) || // Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
(0xB125 <= code && code <= 0xB13F) || // Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
(0xB141 <= code && code <= 0xB15B) || // Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
(0xB15D <= code && code <= 0xB177) || // Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
(0xB179 <= code && code <= 0xB193) || // Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
(0xB195 <= code && code <= 0xB1AF) || // Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
(0xB1B1 <= code && code <= 0xB1CB) || // Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
(0xB1CD <= code && code <= 0xB1E7) || // Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
(0xB1E9 <= code && code <= 0xB203) || // Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
(0xB205 <= code && code <= 0xB21F) || // Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
(0xB221 <= code && code <= 0xB23B) || // Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
(0xB23D <= code && code <= 0xB257) || // Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
(0xB259 <= code && code <= 0xB273) || // Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
(0xB275 <= code && code <= 0xB28F) || // Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
(0xB291 <= code && code <= 0xB2AB) || // Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
(0xB2AD <= code && code <= 0xB2C7) || // Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
(0xB2C9 <= code && code <= 0xB2E3) || // Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
(0xB2E5 <= code && code <= 0xB2FF) || // Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
(0xB301 <= code && code <= 0xB31B) || // Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
(0xB31D <= code && code <= 0xB337) || // Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
(0xB339 <= code && code <= 0xB353) || // Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
(0xB355 <= code && code <= 0xB36F) || // Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
(0xB371 <= code && code <= 0xB38B) || // Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
(0xB38D <= code && code <= 0xB3A7) || // Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
(0xB3A9 <= code && code <= 0xB3C3) || // Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
(0xB3C5 <= code && code <= 0xB3DF) || // Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
(0xB3E1 <= code && code <= 0xB3FB) || // Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
(0xB3FD <= code && code <= 0xB417) || // Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
(0xB419 <= code && code <= 0xB433) || // Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
(0xB435 <= code && code <= 0xB44F) || // Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
(0xB451 <= code && code <= 0xB46B) || // Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
(0xB46D <= code && code <= 0xB487) || // Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
(0xB489 <= code && code <= 0xB4A3) || // Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
(0xB4A5 <= code && code <= 0xB4BF) || // Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
(0xB4C1 <= code && code <= 0xB4DB) || // Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
(0xB4DD <= code && code <= 0xB4F7) || // Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
(0xB4F9 <= code && code <= 0xB513) || // Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
(0xB515 <= code && code <= 0xB52F) || // Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
(0xB531 <= code && code <= 0xB54B) || // Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
(0xB54D <= code && code <= 0xB567) || // Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
(0xB569 <= code && code <= 0xB583) || // Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
(0xB585 <= code && code <= 0xB59F) || // Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
(0xB5A1 <= code && code <= 0xB5BB) || // Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
(0xB5BD <= code && code <= 0xB5D7) || // Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
(0xB5D9 <= code && code <= 0xB5F3) || // Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
(0xB5F5 <= code && code <= 0xB60F) || // Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
(0xB611 <= code && code <= 0xB62B) || // Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
(0xB62D <= code && code <= 0xB647) || // Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
(0xB649 <= code && code <= 0xB663) || // Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
(0xB665 <= code && code <= 0xB67F) || // Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
(0xB681 <= code && code <= 0xB69B) || // Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
(0xB69D <= code && code <= 0xB6B7) || // Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
(0xB6B9 <= code && code <= 0xB6D3) || // Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
(0xB6D5 <= code && code <= 0xB6EF) || // Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
(0xB6F1 <= code && code <= 0xB70B) || // Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
(0xB70D <= code && code <= 0xB727) || // Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
(0xB729 <= code && code <= 0xB743) || // Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
(0xB745 <= code && code <= 0xB75F) || // Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
(0xB761 <= code && code <= 0xB77B) || // Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
(0xB77D <= code && code <= 0xB797) || // Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
(0xB799 <= code && code <= 0xB7B3) || // Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
(0xB7B5 <= code && code <= 0xB7CF) || // Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
(0xB7D1 <= code && code <= 0xB7EB) || // Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
(0xB7ED <= code && code <= 0xB807) || // Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
(0xB809 <= code && code <= 0xB823) || // Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
(0xB825 <= code && code <= 0xB83F) || // Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
(0xB841 <= code && code <= 0xB85B) || // Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
(0xB85D <= code && code <= 0xB877) || // Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
(0xB879 <= code && code <= 0xB893) || // Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
(0xB895 <= code && code <= 0xB8AF) || // Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
(0xB8B1 <= code && code <= 0xB8CB) || // Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
(0xB8CD <= code && code <= 0xB8E7) || // Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
(0xB8E9 <= code && code <= 0xB903) || // Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
(0xB905 <= code && code <= 0xB91F) || // Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
(0xB921 <= code && code <= 0xB93B) || // Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
(0xB93D <= code && code <= 0xB957) || // Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
(0xB959 <= code && code <= 0xB973) || // Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
(0xB975 <= code && code <= 0xB98F) || // Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
(0xB991 <= code && code <= 0xB9AB) || // Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
(0xB9AD <= code && code <= 0xB9C7) || // Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
(0xB9C9 <= code && code <= 0xB9E3) || // Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
(0xB9E5 <= code && code <= 0xB9FF) || // Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
(0xBA01 <= code && code <= 0xBA1B) || // Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
(0xBA1D <= code && code <= 0xBA37) || // Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
(0xBA39 <= code && code <= 0xBA53) || // Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
(0xBA55 <= code && code <= 0xBA6F) || // Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
(0xBA71 <= code && code <= 0xBA8B) || // Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
(0xBA8D <= code && code <= 0xBAA7) || // Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
(0xBAA9 <= code && code <= 0xBAC3) || // Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
(0xBAC5 <= code && code <= 0xBADF) || // Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
(0xBAE1 <= code && code <= 0xBAFB) || // Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
(0xBAFD <= code && code <= 0xBB17) || // Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
(0xBB19 <= code && code <= 0xBB33) || // Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
(0xBB35 <= code && code <= 0xBB4F) || // Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
(0xBB51 <= code && code <= 0xBB6B) || // Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
(0xBB6D <= code && code <= 0xBB87) || // Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
(0xBB89 <= code && code <= 0xBBA3) || // Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
(0xBBA5 <= code && code <= 0xBBBF) || // Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
(0xBBC1 <= code && code <= 0xBBDB) || // Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
(0xBBDD <= code && code <= 0xBBF7) || // Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
(0xBBF9 <= code && code <= 0xBC13) || // Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
(0xBC15 <= code && code <= 0xBC2F) || // Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
(0xBC31 <= code && code <= 0xBC4B) || // Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
(0xBC4D <= code && code <= 0xBC67) || // Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
(0xBC69 <= code && code <= 0xBC83) || // Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
(0xBC85 <= code && code <= 0xBC9F) || // Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
(0xBCA1 <= code && code <= 0xBCBB) || // Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
(0xBCBD <= code && code <= 0xBCD7) || // Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
(0xBCD9 <= code && code <= 0xBCF3) || // Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
(0xBCF5 <= code && code <= 0xBD0F) || // Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
(0xBD11 <= code && code <= 0xBD2B) || // Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
(0xBD2D <= code && code <= 0xBD47) || // Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
(0xBD49 <= code && code <= 0xBD63) || // Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
(0xBD65 <= code && code <= 0xBD7F) || // Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
(0xBD81 <= code && code <= 0xBD9B) || // Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
(0xBD9D <= code && code <= 0xBDB7) || // Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
(0xBDB9 <= code && code <= 0xBDD3) || // Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
(0xBDD5 <= code && code <= 0xBDEF) || // Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
(0xBDF1 <= code && code <= 0xBE0B) || // Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
(0xBE0D <= code && code <= 0xBE27) || // Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
(0xBE29 <= code && code <= 0xBE43) || // Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
(0xBE45 <= code && code <= 0xBE5F) || // Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
(0xBE61 <= code && code <= 0xBE7B) || // Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
(0xBE7D <= code && code <= 0xBE97) || // Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
(0xBE99 <= code && code <= 0xBEB3) || // Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
(0xBEB5 <= code && code <= 0xBECF) || // Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
(0xBED1 <= code && code <= 0xBEEB) || // Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
(0xBEED <= code && code <= 0xBF07) || // Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
(0xBF09 <= code && code <= 0xBF23) || // Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
(0xBF25 <= code && code <= 0xBF3F) || // Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
(0xBF41 <= code && code <= 0xBF5B) || // Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
(0xBF5D <= code && code <= 0xBF77) || // Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
(0xBF79 <= code && code <= 0xBF93) || // Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
(0xBF95 <= code && code <= 0xBFAF) || // Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
(0xBFB1 <= code && code <= 0xBFCB) || // Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
(0xBFCD <= code && code <= 0xBFE7) || // Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
(0xBFE9 <= code && code <= 0xC003) || // Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
(0xC005 <= code && code <= 0xC01F) || // Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
(0xC021 <= code && code <= 0xC03B) || // Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
(0xC03D <= code && code <= 0xC057) || // Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
(0xC059 <= code && code <= 0xC073) || // Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
(0xC075 <= code && code <= 0xC08F) || // Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
(0xC091 <= code && code <= 0xC0AB) || // Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
(0xC0AD <= code && code <= 0xC0C7) || // Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
(0xC0C9 <= code && code <= 0xC0E3) || // Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
(0xC0E5 <= code && code <= 0xC0FF) || // Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
(0xC101 <= code && code <= 0xC11B) || // Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
(0xC11D <= code && code <= 0xC137) || // Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
(0xC139 <= code && code <= 0xC153) || // Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
(0xC155 <= code && code <= 0xC16F) || // Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
(0xC171 <= code && code <= 0xC18B) || // Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
(0xC18D <= code && code <= 0xC1A7) || // Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
(0xC1A9 <= code && code <= 0xC1C3) || // Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
(0xC1C5 <= code && code <= 0xC1DF) || // Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
(0xC1E1 <= code && code <= 0xC1FB) || // Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
(0xC1FD <= code && code <= 0xC217) || // Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
(0xC219 <= code && code <= 0xC233) || // Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
(0xC235 <= code && code <= 0xC24F) || // Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
(0xC251 <= code && code <= 0xC26B) || // Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
(0xC26D <= code && code <= 0xC287) || // Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
(0xC289 <= code && code <= 0xC2A3) || // Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
(0xC2A5 <= code && code <= 0xC2BF) || // Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
(0xC2C1 <= code && code <= 0xC2DB) || // Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
(0xC2DD <= code && code <= 0xC2F7) || // Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
(0xC2F9 <= code && code <= 0xC313) || // Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
(0xC315 <= code && code <= 0xC32F) || // Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
(0xC331 <= code && code <= 0xC34B) || // Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
(0xC34D <= code && code <= 0xC367) || // Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
(0xC369 <= code && code <= 0xC383) || // Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
(0xC385 <= code && code <= 0xC39F) || // Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
(0xC3A1 <= code && code <= 0xC3BB) || // Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
(0xC3BD <= code && code <= 0xC3D7) || // Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
(0xC3D9 <= code && code <= 0xC3F3) || // Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
(0xC3F5 <= code && code <= 0xC40F) || // Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
(0xC411 <= code && code <= 0xC42B) || // Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
(0xC42D <= code && code <= 0xC447) || // Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
(0xC449 <= code && code <= 0xC463) || // Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
(0xC465 <= code && code <= 0xC47F) || // Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
(0xC481 <= code && code <= 0xC49B) || // Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
(0xC49D <= code && code <= 0xC4B7) || // Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
(0xC4B9 <= code && code <= 0xC4D3) || // Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
(0xC4D5 <= code && code <= 0xC4EF) || // Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
(0xC4F1 <= code && code <= 0xC50B) || // Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
(0xC50D <= code && code <= 0xC527) || // Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
(0xC529 <= code && code <= 0xC543) || // Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
(0xC545 <= code && code <= 0xC55F) || // Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
(0xC561 <= code && code <= 0xC57B) || // Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
(0xC57D <= code && code <= 0xC597) || // Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
(0xC599 <= code && code <= 0xC5B3) || // Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
(0xC5B5 <= code && code <= 0xC5CF) || // Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
(0xC5D1 <= code && code <= 0xC5EB) || // Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
(0xC5ED <= code && code <= 0xC607) || // Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
(0xC609 <= code && code <= 0xC623) || // Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
(0xC625 <= code && code <= 0xC63F) || // Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
(0xC641 <= code && code <= 0xC65B) || // Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
(0xC65D <= code && code <= 0xC677) || // Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
(0xC679 <= code && code <= 0xC693) || // Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
(0xC695 <= code && code <= 0xC6AF) || // Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
(0xC6B1 <= code && code <= 0xC6CB) || // Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
(0xC6CD <= code && code <= 0xC6E7) || // Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
(0xC6E9 <= code && code <= 0xC703) || // Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
(0xC705 <= code && code <= 0xC71F) || // Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
(0xC721 <= code && code <= 0xC73B) || // Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
(0xC73D <= code && code <= 0xC757) || // Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
(0xC759 <= code && code <= 0xC773) || // Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
(0xC775 <= code && code <= 0xC78F) || // Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
(0xC791 <= code && code <= 0xC7AB) || // Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
(0xC7AD <= code && code <= 0xC7C7) || // Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
(0xC7C9 <= code && code <= 0xC7E3) || // Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
(0xC7E5 <= code && code <= 0xC7FF) || // Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
(0xC801 <= code && code <= 0xC81B) || // Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
(0xC81D <= code && code <= 0xC837) || // Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
(0xC839 <= code && code <= 0xC853) || // Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
(0xC855 <= code && code <= 0xC86F) || // Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
(0xC871 <= code && code <= 0xC88B) || // Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
(0xC88D <= code && code <= 0xC8A7) || // Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
(0xC8A9 <= code && code <= 0xC8C3) || // Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
(0xC8C5 <= code && code <= 0xC8DF) || // Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
(0xC8E1 <= code && code <= 0xC8FB) || // Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
(0xC8FD <= code && code <= 0xC917) || // Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
(0xC919 <= code && code <= 0xC933) || // Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
(0xC935 <= code && code <= 0xC94F) || // Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
(0xC951 <= code && code <= 0xC96B) || // Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
(0xC96D <= code && code <= 0xC987) || // Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
(0xC989 <= code && code <= 0xC9A3) || // Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
(0xC9A5 <= code && code <= 0xC9BF) || // Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
(0xC9C1 <= code && code <= 0xC9DB) || // Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
(0xC9DD <= code && code <= 0xC9F7) || // Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
(0xC9F9 <= code && code <= 0xCA13) || // Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
(0xCA15 <= code && code <= 0xCA2F) || // Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
(0xCA31 <= code && code <= 0xCA4B) || // Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
(0xCA4D <= code && code <= 0xCA67) || // Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
(0xCA69 <= code && code <= 0xCA83) || // Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
(0xCA85 <= code && code <= 0xCA9F) || // Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
(0xCAA1 <= code && code <= 0xCABB) || // Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
(0xCABD <= code && code <= 0xCAD7) || // Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
(0xCAD9 <= code && code <= 0xCAF3) || // Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
(0xCAF5 <= code && code <= 0xCB0F) || // Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
(0xCB11 <= code && code <= 0xCB2B) || // Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
(0xCB2D <= code && code <= 0xCB47) || // Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
(0xCB49 <= code && code <= 0xCB63) || // Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
(0xCB65 <= code && code <= 0xCB7F) || // Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
(0xCB81 <= code && code <= 0xCB9B) || // Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
(0xCB9D <= code && code <= 0xCBB7) || // Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
(0xCBB9 <= code && code <= 0xCBD3) || // Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
(0xCBD5 <= code && code <= 0xCBEF) || // Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
(0xCBF1 <= code && code <= 0xCC0B) || // Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
(0xCC0D <= code && code <= 0xCC27) || // Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
(0xCC29 <= code && code <= 0xCC43) || // Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
(0xCC45 <= code && code <= 0xCC5F) || // Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
(0xCC61 <= code && code <= 0xCC7B) || // Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
(0xCC7D <= code && code <= 0xCC97) || // Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
(0xCC99 <= code && code <= 0xCCB3) || // Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
(0xCCB5 <= code && code <= 0xCCCF) || // Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
(0xCCD1 <= code && code <= 0xCCEB) || // Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
(0xCCED <= code && code <= 0xCD07) || // Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
(0xCD09 <= code && code <= 0xCD23) || // Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
(0xCD25 <= code && code <= 0xCD3F) || // Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
(0xCD41 <= code && code <= 0xCD5B) || // Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
(0xCD5D <= code && code <= 0xCD77) || // Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
(0xCD79 <= code && code <= 0xCD93) || // Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
(0xCD95 <= code && code <= 0xCDAF) || // Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
(0xCDB1 <= code && code <= 0xCDCB) || // Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
(0xCDCD <= code && code <= 0xCDE7) || // Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
(0xCDE9 <= code && code <= 0xCE03) || // Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
(0xCE05 <= code && code <= 0xCE1F) || // Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
(0xCE21 <= code && code <= 0xCE3B) || // Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
(0xCE3D <= code && code <= 0xCE57) || // Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
(0xCE59 <= code && code <= 0xCE73) || // Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
(0xCE75 <= code && code <= 0xCE8F) || // Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
(0xCE91 <= code && code <= 0xCEAB) || // Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
(0xCEAD <= code && code <= 0xCEC7) || // Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
(0xCEC9 <= code && code <= 0xCEE3) || // Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
(0xCEE5 <= code && code <= 0xCEFF) || // Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
(0xCF01 <= code && code <= 0xCF1B) || // Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
(0xCF1D <= code && code <= 0xCF37) || // Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
(0xCF39 <= code && code <= 0xCF53) || // Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
(0xCF55 <= code && code <= 0xCF6F) || // Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
(0xCF71 <= code && code <= 0xCF8B) || // Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
(0xCF8D <= code && code <= 0xCFA7) || // Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
(0xCFA9 <= code && code <= 0xCFC3) || // Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
(0xCFC5 <= code && code <= 0xCFDF) || // Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
(0xCFE1 <= code && code <= 0xCFFB) || // Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
(0xCFFD <= code && code <= 0xD017) || // Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
(0xD019 <= code && code <= 0xD033) || // Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
(0xD035 <= code && code <= 0xD04F) || // Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
(0xD051 <= code && code <= 0xD06B) || // Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
(0xD06D <= code && code <= 0xD087) || // Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
(0xD089 <= code && code <= 0xD0A3) || // Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
(0xD0A5 <= code && code <= 0xD0BF) || // Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
(0xD0C1 <= code && code <= 0xD0DB) || // Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
(0xD0DD <= code && code <= 0xD0F7) || // Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
(0xD0F9 <= code && code <= 0xD113) || // Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
(0xD115 <= code && code <= 0xD12F) || // Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
(0xD131 <= code && code <= 0xD14B) || // Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
(0xD14D <= code && code <= 0xD167) || // Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
(0xD169 <= code && code <= 0xD183) || // Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
(0xD185 <= code && code <= 0xD19F) || // Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
(0xD1A1 <= code && code <= 0xD1BB) || // Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
(0xD1BD <= code && code <= 0xD1D7) || // Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
(0xD1D9 <= code && code <= 0xD1F3) || // Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
(0xD1F5 <= code && code <= 0xD20F) || // Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
(0xD211 <= code && code <= 0xD22B) || // Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
(0xD22D <= code && code <= 0xD247) || // Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
(0xD249 <= code && code <= 0xD263) || // Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
(0xD265 <= code && code <= 0xD27F) || // Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
(0xD281 <= code && code <= 0xD29B) || // Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
(0xD29D <= code && code <= 0xD2B7) || // Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
(0xD2B9 <= code && code <= 0xD2D3) || // Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
(0xD2D5 <= code && code <= 0xD2EF) || // Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
(0xD2F1 <= code && code <= 0xD30B) || // Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
(0xD30D <= code && code <= 0xD327) || // Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
(0xD329 <= code && code <= 0xD343) || // Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
(0xD345 <= code && code <= 0xD35F) || // Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
(0xD361 <= code && code <= 0xD37B) || // Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
(0xD37D <= code && code <= 0xD397) || // Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
(0xD399 <= code && code <= 0xD3B3) || // Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
(0xD3B5 <= code && code <= 0xD3CF) || // Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
(0xD3D1 <= code && code <= 0xD3EB) || // Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
(0xD3ED <= code && code <= 0xD407) || // Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
(0xD409 <= code && code <= 0xD423) || // Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
(0xD425 <= code && code <= 0xD43F) || // Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
(0xD441 <= code && code <= 0xD45B) || // Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
(0xD45D <= code && code <= 0xD477) || // Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
(0xD479 <= code && code <= 0xD493) || // Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
(0xD495 <= code && code <= 0xD4AF) || // Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
(0xD4B1 <= code && code <= 0xD4CB) || // Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
(0xD4CD <= code && code <= 0xD4E7) || // Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
(0xD4E9 <= code && code <= 0xD503) || // Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
(0xD505 <= code && code <= 0xD51F) || // Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
(0xD521 <= code && code <= 0xD53B) || // Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
(0xD53D <= code && code <= 0xD557) || // Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
(0xD559 <= code && code <= 0xD573) || // Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
(0xD575 <= code && code <= 0xD58F) || // Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
(0xD591 <= code && code <= 0xD5AB) || // Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
(0xD5AD <= code && code <= 0xD5C7) || // Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
(0xD5C9 <= code && code <= 0xD5E3) || // Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
(0xD5E5 <= code && code <= 0xD5FF) || // Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
(0xD601 <= code && code <= 0xD61B) || // Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
(0xD61D <= code && code <= 0xD637) || // Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
(0xD639 <= code && code <= 0xD653) || // Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
(0xD655 <= code && code <= 0xD66F) || // Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
(0xD671 <= code && code <= 0xD68B) || // Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
(0xD68D <= code && code <= 0xD6A7) || // Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
(0xD6A9 <= code && code <= 0xD6C3) || // Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
(0xD6C5 <= code && code <= 0xD6DF) || // Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
(0xD6E1 <= code && code <= 0xD6FB) || // Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
(0xD6FD <= code && code <= 0xD717) || // Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
(0xD719 <= code && code <= 0xD733) || // Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
(0xD735 <= code && code <= 0xD74F) || // Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
(0xD751 <= code && code <= 0xD76B) || // Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
(0xD76D <= code && code <= 0xD787) || // Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
(0xD789 <= code && code <= 0xD7A3) // Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
){
return LVT;
}
if(
0x261D == code || // So WHITE UP POINTING INDEX
0x26F9 == code || // So PERSON WITH BALL
(0x270A <= code && code <= 0x270D) || // So [4] RAISED FIST..WRITING HAND
0x1F385 == code || // So FATHER CHRISTMAS
(0x1F3C2 <= code && code <= 0x1F3C4) || // So [3] SNOWBOARDER..SURFER
0x1F3C7 == code || // So HORSE RACING
(0x1F3CA <= code && code <= 0x1F3CC) || // So [3] SWIMMER..GOLFER
(0x1F442 <= code && code <= 0x1F443) || // So [2] EAR..NOSE
(0x1F446 <= code && code <= 0x1F450) || // So [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN
0x1F46E == code || // So POLICE OFFICER
(0x1F470 <= code && code <= 0x1F478) || // So [9] BRIDE WITH VEIL..PRINCESS
0x1F47C == code || // So BABY ANGEL
(0x1F481 <= code && code <= 0x1F483) || // So [3] INFORMATION DESK PERSON..DANCER
(0x1F485 <= code && code <= 0x1F487) || // So [3] NAIL POLISH..HAIRCUT
0x1F4AA == code || // So FLEXED BICEPS
(0x1F574 <= code && code <= 0x1F575) || // So [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY
0x1F57A == code || // So MAN DANCING
0x1F590 == code || // So RAISED HAND WITH FINGERS SPLAYED
(0x1F595 <= code && code <= 0x1F596) || // So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
(0x1F645 <= code && code <= 0x1F647) || // So [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY
(0x1F64B <= code && code <= 0x1F64F) || // So [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS
0x1F6A3 == code || // So ROWBOAT
(0x1F6B4 <= code && code <= 0x1F6B6) || // So [3] BICYCLIST..PEDESTRIAN
0x1F6C0 == code || // So BATH
0x1F6CC == code || // So SLEEPING ACCOMMODATION
(0x1F918 <= code && code <= 0x1F91C) || // So [5] SIGN OF THE HORNS..RIGHT-FACING FIST
(0x1F91E <= code && code <= 0x1F91F) || // So [2] HAND WITH INDEX AND MIDDLE FINGERS CROSSED..I LOVE YOU HAND SIGN
0x1F926 == code || // So FACE PALM
(0x1F930 <= code && code <= 0x1F939) || // So [10] PREGNANT WOMAN..JUGGLING
(0x1F93D <= code && code <= 0x1F93E) || // So [2] WATER POLO..HANDBALL
(0x1F9D1 <= code && code <= 0x1F9DD) // So [13] ADULT..ELF
){
return E_Base;
}
if(
(0x1F3FB <= code && code <= 0x1F3FF) // Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
){
return E_Modifier;
}
if(
0x200D == code // Cf ZERO WIDTH JOINER
){
return ZWJ;
}
if(
0x2640 == code || // So FEMALE SIGN
0x2642 == code || // So MALE SIGN
(0x2695 <= code && code <= 0x2696) || // So [2] STAFF OF AESCULAPIUS..SCALES
0x2708 == code || // So AIRPLANE
0x2764 == code || // So HEAVY BLACK HEART
0x1F308 == code || // So RAINBOW
0x1F33E == code || // So EAR OF RICE
0x1F373 == code || // So COOKING
0x1F393 == code || // So GRADUATION CAP
0x1F3A4 == code || // So MICROPHONE
0x1F3A8 == code || // So ARTIST PALETTE
0x1F3EB == code || // So SCHOOL
0x1F3ED == code || // So FACTORY
0x1F48B == code || // So KISS MARK
(0x1F4BB <= code && code <= 0x1F4BC) || // So [2] PERSONAL COMPUTER..BRIEFCASE
0x1F527 == code || // So WRENCH
0x1F52C == code || // So MICROSCOPE
0x1F5E8 == code || // So LEFT SPEECH BUBBLE
0x1F680 == code || // So ROCKET
0x1F692 == code // So FIRE ENGINE
){
return Glue_After_Zwj;
}
if(
(0x1F466 <= code && code <= 0x1F469) // So [4] BOY..WOMAN
){
return E_Base_GAZ;
}
//all unlisted characters have a grapheme break property of "Other"
return Other;
}
return this;
}
if ( true && module.exports) {
module.exports = GraphemeSplitter;
}
/***/ }),
/***/ "c430":
/***/ (function(module, exports) {
module.exports = false;
/***/ }),
/***/ "c6b6":
/***/ (function(module, exports) {
var toString = {}.toString;
module.exports = function (it) {
return toString.call(it).slice(8, -1);
};
/***/ }),
/***/ "c6cd":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
var setGlobal = __webpack_require__("ce4e");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || setGlobal(SHARED, {});
module.exports = store;
/***/ }),
/***/ "c8ba":
/***/ (function(module, exports) {
var g;
// This works in non-strict mode
g = (function() {
return this;
})();
try {
// This works if eval is allowed (see CSP)
g = g || new Function("return this")();
} catch (e) {
// This works if the window reference is available
if (typeof window === "object") g = window;
}
// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}
module.exports = g;
/***/ }),
/***/ "ca84":
/***/ (function(module, exports, __webpack_require__) {
var has = __webpack_require__("5135");
var toIndexedObject = __webpack_require__("fc6a");
var indexOf = __webpack_require__("4d64").indexOf;
var hiddenKeys = __webpack_require__("d012");
module.exports = function (object, names) {
var O = toIndexedObject(object);
var i = 0;
var result = [];
var key;
for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while (names.length > i) if (has(O, key = names[i++])) {
~indexOf(result, key) || result.push(key);
}
return result;
};
/***/ }),
/***/ "cc12":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
var isObject = __webpack_require__("861d");
var document = global.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
return EXISTS ? document.createElement(it) : {};
};
/***/ }),
/***/ "ce4e":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
var createNonEnumerableProperty = __webpack_require__("9112");
module.exports = function (key, value) {
try {
createNonEnumerableProperty(global, key, value);
} catch (error) {
global[key] = value;
} return value;
};
/***/ }),
/***/ "d012":
/***/ (function(module, exports) {
module.exports = {};
/***/ }),
/***/ "d039":
/***/ (function(module, exports) {
module.exports = function (exec) {
try {
return !!exec();
} catch (error) {
return true;
}
};
/***/ }),
/***/ "d066":
/***/ (function(module, exports, __webpack_require__) {
var path = __webpack_require__("428f");
var global = __webpack_require__("da84");
var aFunction = function (variable) {
return typeof variable == 'function' ? variable : undefined;
};
module.exports = function (namespace, method) {
return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])
: path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
};
/***/ }),
/***/ "d1e7":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $propertyIsEnumerable = {}.propertyIsEnumerable;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);
// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
var descriptor = getOwnPropertyDescriptor(this, V);
return !!descriptor && descriptor.enumerable;
} : $propertyIsEnumerable;
/***/ }),
/***/ "d28b":
/***/ (function(module, exports, __webpack_require__) {
var defineWellKnownSymbol = __webpack_require__("746f");
// `Symbol.iterator` well-known symbol
// https://tc39.es/ecma262/#sec-symbol.iterator
defineWellKnownSymbol('iterator');
/***/ }),
/***/ "d2bb":
/***/ (function(module, exports, __webpack_require__) {
/* eslint-disable no-proto -- safe */
var anObject = __webpack_require__("825a");
var aPossiblePrototype = __webpack_require__("3bbe");
// `Object.setPrototypeOf` method
// https://tc39.es/ecma262/#sec-object.setprototypeof
// Works with __proto__ only. Old v8 can't work with null proto objects.
// eslint-disable-next-line es/no-object-setprototypeof -- safe
module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
var CORRECT_SETTER = false;
var test = {};
var setter;
try {
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
setter.call(test, []);
CORRECT_SETTER = test instanceof Array;
} catch (error) { /* empty */ }
return function setPrototypeOf(O, proto) {
anObject(O);
aPossiblePrototype(proto);
if (CORRECT_SETTER) setter.call(O, proto);
else O.__proto__ = proto;
return O;
};
}() : undefined);
/***/ }),
/***/ "d3b7":
/***/ (function(module, exports, __webpack_require__) {
var TO_STRING_TAG_SUPPORT = __webpack_require__("00ee");
var redefine = __webpack_require__("6eeb");
var toString = __webpack_require__("b041");
// `Object.prototype.toString` method
// https://tc39.es/ecma262/#sec-object.prototype.tostring
if (!TO_STRING_TAG_SUPPORT) {
redefine(Object.prototype, 'toString', toString, { unsafe: true });
}
/***/ }),
/***/ "d44e":
/***/ (function(module, exports, __webpack_require__) {
var defineProperty = __webpack_require__("9bf2").f;
var has = __webpack_require__("5135");
var wellKnownSymbol = __webpack_require__("b622");
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
module.exports = function (it, TAG, STATIC) {
if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });
}
};
/***/ }),
/***/ "d784":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// TODO: Remove from `core-js@4` since it's moved to entry points
__webpack_require__("ac1f");
var redefine = __webpack_require__("6eeb");
var regexpExec = __webpack_require__("9263");
var fails = __webpack_require__("d039");
var wellKnownSymbol = __webpack_require__("b622");
var createNonEnumerableProperty = __webpack_require__("9112");
var SPECIES = wellKnownSymbol('species');
var RegExpPrototype = RegExp.prototype;
var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
// #replace needs built-in support for named groups.
// #match works fine because it just return the exec results, even if it has
// a "grops" property.
var re = /./;
re.exec = function () {
var result = [];
result.groups = { a: '7' };
return result;
};
return ''.replace(re, '$<a>') !== '7';
});
// IE <= 11 replaces $0 with the whole match, as if it was $&
// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
var REPLACE_KEEPS_$0 = (function () {
// eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing
return 'a'.replace(/./, '$0') === '$0';
})();
var REPLACE = wellKnownSymbol('replace');
// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
if (/./[REPLACE]) {
return /./[REPLACE]('a', '$0') === '';
}
return false;
})();
// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
// Weex JS has frozen built-in prototypes, so use try / catch wrapper
var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
// eslint-disable-next-line regexp/no-empty-group -- required for testing
var re = /(?:)/;
var originalExec = re.exec;
re.exec = function () { return originalExec.apply(this, arguments); };
var result = 'ab'.split(re);
return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
});
module.exports = function (KEY, length, exec, sham) {
var SYMBOL = wellKnownSymbol(KEY);
var DELEGATES_TO_SYMBOL = !fails(function () {
// String methods call symbol-named RegEp methods
var O = {};
O[SYMBOL] = function () { return 7; };
return ''[KEY](O) != 7;
});
var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
// Symbol-named RegExp methods call .exec
var execCalled = false;
var re = /a/;
if (KEY === 'split') {
// We can't use real regex here since it causes deoptimization
// and serious performance degradation in V8
// https://github.com/zloirock/core-js/issues/306
re = {};
// RegExp[@@split] doesn't call the regex's exec method, but first creates
// a new one. We need to return the patched regex when creating the new one.
re.constructor = {};
re.constructor[SPECIES] = function () { return re; };
re.flags = '';
re[SYMBOL] = /./[SYMBOL];
}
re.exec = function () { execCalled = true; return null; };
re[SYMBOL]('');
return !execCalled;
});
if (
!DELEGATES_TO_SYMBOL ||
!DELEGATES_TO_EXEC ||
(KEY === 'replace' && !(
REPLACE_SUPPORTS_NAMED_GROUPS &&
REPLACE_KEEPS_$0 &&
!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
)) ||
(KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
) {
var nativeRegExpMethod = /./[SYMBOL];
var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
var $exec = regexp.exec;
if ($exec === regexpExec || $exec === RegExpPrototype.exec) {
if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
// The native String method already delegates to @@method (this
// polyfilled function), leasing to infinite recursion.
// We avoid it by directly calling the native @@method method.
return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
}
return { done: true, value: nativeMethod.call(str, regexp, arg2) };
}
return { done: false };
}, {
REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,
REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
});
var stringMethod = methods[0];
var regexMethod = methods[1];
redefine(String.prototype, KEY, stringMethod);
redefine(RegExpPrototype, SYMBOL, length == 2
// 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
// 21.2.5.11 RegExp.prototype[@@split](string, limit)
? function (string, arg) { return regexMethod.call(string, this, arg); }
// 21.2.5.6 RegExp.prototype[@@match](string)
// 21.2.5.9 RegExp.prototype[@@search](string)
: function (string) { return regexMethod.call(string, this); }
);
}
if (sham) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);
};
/***/ }),
/***/ "d81d":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $ = __webpack_require__("23e7");
var $map = __webpack_require__("b727").map;
var arrayMethodHasSpeciesSupport = __webpack_require__("1dde");
var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');
// `Array.prototype.map` method
// https://tc39.es/ecma262/#sec-array.prototype.map
// with adding support of @@species
$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
map: function map(callbackfn /* , thisArg */) {
return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
/***/ }),
/***/ "d998":
/***/ (function(module, exports, __webpack_require__) {
var UA = __webpack_require__("342f");
module.exports = /MSIE|Trident/.test(UA);
/***/ }),
/***/ "da84":
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {
return it && it.Math == Math && it;
};
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
module.exports =
// eslint-disable-next-line es/no-global-this -- safe
check(typeof globalThis == 'object' && globalThis) ||
check(typeof window == 'object' && window) ||
// eslint-disable-next-line no-restricted-globals -- safe
check(typeof self == 'object' && self) ||
check(typeof global == 'object' && global) ||
// eslint-disable-next-line no-new-func -- fallback
(function () { return this; })() || Function('return this')();
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("c8ba")))
/***/ }),
/***/ "dca8":
/***/ (function(module, exports, __webpack_require__) {
var $ = __webpack_require__("23e7");
var FREEZING = __webpack_require__("bb2f");
var fails = __webpack_require__("d039");
var isObject = __webpack_require__("861d");
var onFreeze = __webpack_require__("f183").onFreeze;
// eslint-disable-next-line es/no-object-freeze -- safe
var $freeze = Object.freeze;
var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });
// `Object.freeze` method
// https://tc39.es/ecma262/#sec-object.freeze
$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {
freeze: function freeze(it) {
return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;
}
});
/***/ }),
/***/ "ddb0":
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__("da84");
var DOMIterables = __webpack_require__("fdbc");
var ArrayIteratorMethods = __webpack_require__("e260");
var createNonEnumerableProperty = __webpack_require__("9112");
var wellKnownSymbol = __webpack_require__("b622");
var ITERATOR = wellKnownSymbol('iterator');
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var ArrayValues = ArrayIteratorMethods.values;
for (var COLLECTION_NAME in DOMIterables) {
var Collection = global[COLLECTION_NAME];
var CollectionPrototype = Collection && Collection.prototype;
if (CollectionPrototype) {
// some Chrome versions have non-configurable methods on DOMTokenList
if (CollectionPrototype[ITERATOR] !== ArrayValues) try {
createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);
} catch (error) {
CollectionPrototype[ITERATOR] = ArrayValues;
}
if (!CollectionPrototype[TO_STRING_TAG]) {
createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
}
if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {
// some Chrome versions have non-configurable methods on DOMTokenList
if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {
createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);
} catch (error) {
CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];
}
}
}
}
/***/ }),
/***/ "df75":
/***/ (function(module, exports, __webpack_require__) {
var internalObjectKeys = __webpack_require__("ca84");
var enumBugKeys = __webpack_require__("7839");
// `Object.keys` method
// https://tc39.es/ecma262/#sec-object.keys
// eslint-disable-next-line es/no-object-keys -- safe
module.exports = Object.keys || function keys(O) {
return internalObjectKeys(O, enumBugKeys);
};
/***/ }),
/***/ "e01a":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// `Symbol.prototype.description` getter
// https://tc39.es/ecma262/#sec-symbol.prototype.description
var $ = __webpack_require__("23e7");
var DESCRIPTORS = __webpack_require__("83ab");
var global = __webpack_require__("da84");
var has = __webpack_require__("5135");
var isObject = __webpack_require__("861d");
var defineProperty = __webpack_require__("9bf2").f;
var copyConstructorProperties = __webpack_require__("e893");
var NativeSymbol = global.Symbol;
if (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||
// Safari 12 bug
NativeSymbol().description !== undefined
)) {
var EmptyStringDescriptionStore = {};
// wrap Symbol constructor for correct work with undefined description
var SymbolWrapper = function Symbol() {
var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);
var result = this instanceof SymbolWrapper
? new NativeSymbol(description)
// in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
: description === undefined ? NativeSymbol() : NativeSymbol(description);
if (description === '') EmptyStringDescriptionStore[result] = true;
return result;
};
copyConstructorProperties(SymbolWrapper, NativeSymbol);
var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;
symbolPrototype.constructor = SymbolWrapper;
var symbolToString = symbolPrototype.toString;
var native = String(NativeSymbol('test')) == 'Symbol(test)';
var regexp = /^Symbol\((.*)\)[^)]+$/;
defineProperty(symbolPrototype, 'description', {
configurable: true,
get: function description() {
var symbol = isObject(this) ? this.valueOf() : this;
var string = symbolToString.call(symbol);
if (has(EmptyStringDescriptionStore, symbol)) return '';
var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');
return desc === '' ? undefined : desc;
}
});
$({ global: true, forced: true }, {
Symbol: SymbolWrapper
});
}
/***/ }),
/***/ "e11f":
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "e163":
/***/ (function(module, exports, __webpack_require__) {
var has = __webpack_require__("5135");
var toObject = __webpack_require__("7b0b");
var sharedKey = __webpack_require__("f772");
var CORRECT_PROTOTYPE_GETTER = __webpack_require__("e177");
var IE_PROTO = sharedKey('IE_PROTO');
var ObjectPrototype = Object.prototype;
// `Object.getPrototypeOf` method
// https://tc39.es/ecma262/#sec-object.getprototypeof
// eslint-disable-next-line es/no-object-getprototypeof -- safe
module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
O = toObject(O);
if (has(O, IE_PROTO)) return O[IE_PROTO];
if (typeof O.constructor == 'function' && O instanceof O.constructor) {
return O.constructor.prototype;
} return O instanceof Object ? ObjectPrototype : null;
};
/***/ }),
/***/ "e177":
/***/ (function(module, exports, __webpack_require__) {
var fails = __webpack_require__("d039");
module.exports = !fails(function () {
function F() { /* empty */ }
F.prototype.constructor = null;
// eslint-disable-next-line es/no-object-getprototypeof -- required for testing
return Object.getPrototypeOf(new F()) !== F.prototype;
});
/***/ }),
/***/ "e260":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var toIndexedObject = __webpack_require__("fc6a");
var addToUnscopables = __webpack_require__("44d2");
var Iterators = __webpack_require__("3f8c");
var InternalStateModule = __webpack_require__("69f3");
var defineIterator = __webpack_require__("7dd0");
var ARRAY_ITERATOR = 'Array Iterator';
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);
// `Array.prototype.entries` method
// https://tc39.es/ecma262/#sec-array.prototype.entries
// `Array.prototype.keys` method
// https://tc39.es/ecma262/#sec-array.prototype.keys
// `Array.prototype.values` method
// https://tc39.es/ecma262/#sec-array.prototype.values
// `Array.prototype[@@iterator]` method
// https://tc39.es/ecma262/#sec-array.prototype-@@iterator
// `CreateArrayIterator` internal method
// https://tc39.es/ecma262/#sec-createarrayiterator
module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
setInternalState(this, {
type: ARRAY_ITERATOR,
target: toIndexedObject(iterated), // target
index: 0, // next index
kind: kind // kind
});
// `%ArrayIteratorPrototype%.next` method
// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next
}, function () {
var state = getInternalState(this);
var target = state.target;
var kind = state.kind;
var index = state.index++;
if (!target || index >= target.length) {
state.target = undefined;
return { value: undefined, done: true };
}
if (kind == 'keys') return { value: index, done: false };
if (kind == 'values') return { value: target[index], done: false };
return { value: [index, target[index]], done: false };
}, 'values');
// argumentsList[@@iterator] is %ArrayProto_values%
// https://tc39.es/ecma262/#sec-createunmappedargumentsobject
// https://tc39.es/ecma262/#sec-createmappedargumentsobject
Iterators.Arguments = Iterators.Array;
// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');
/***/ }),
/***/ "e2cc":
/***/ (function(module, exports, __webpack_require__) {
var redefine = __webpack_require__("6eeb");
module.exports = function (target, src, options) {
for (var key in src) redefine(target, key, src[key], options);
return target;
};
/***/ }),
/***/ "e508":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* unused harmony export DynamicScroller */
/* unused harmony export DynamicScrollerItem */
/* unused harmony export IdState */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __vue_component__; });
/* harmony import */ var vue_resize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("252c");
/* harmony import */ var vue_observe_visibility__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("85fe");
/* harmony import */ var scrollparent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("ed83");
/* harmony import */ var scrollparent__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(scrollparent__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("8bbf");
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_3__);
var config = {
itemsLimit: 1000
};
function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
_typeof = function (obj) {
return typeof obj;
};
} else {
_typeof = function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
return _typeof(obj);
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
keys.push.apply(keys, symbols);
}
return keys;
}
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
if (i % 2) {
ownKeys(Object(source), true).forEach(function (key) {
_defineProperty(target, key, source[key]);
});
} else if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
}
return target;
}
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(n);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _createForOfIteratorHelper(o) {
if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) {
var i = 0;
var F = function () {};
return {
s: F,
n: function () {
if (i >= o.length) return {
done: true
};
return {
done: false,
value: o[i++]
};
},
e: function (e) {
throw e;
},
f: F
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
var it,
normalCompletion = true,
didErr = false,
err;
return {
s: function () {
it = o[Symbol.iterator]();
},
n: function () {
var step = it.next();
normalCompletion = step.done;
return step;
},
e: function (e) {
didErr = true;
err = e;
},
f: function () {
try {
if (!normalCompletion && it.return != null) it.return();
} finally {
if (didErr) throw err;
}
}
};
}
var props = {
items: {
type: Array,
required: true
},
keyField: {
type: String,
default: 'id'
},
direction: {
type: String,
default: 'vertical',
validator: function validator(value) {
return ['vertical', 'horizontal'].includes(value);
}
}
};
function simpleArray() {
return this.items.length && _typeof(this.items[0]) !== 'object';
}
var supportsPassive = false;
if (typeof window !== 'undefined') {
supportsPassive = false;
try {
var opts = Object.defineProperty({}, 'passive', {
get: function get() {
supportsPassive = true;
}
});
window.addEventListener('test', null, opts);
} catch (e) {}
}
var uid = 0;
var script = {
name: 'RecycleScroller',
components: {
ResizeObserver: vue_resize__WEBPACK_IMPORTED_MODULE_0__[/* ResizeObserver */ "a"]
},
directives: {
ObserveVisibility: vue_observe_visibility__WEBPACK_IMPORTED_MODULE_1__[/* ObserveVisibility */ "a"]
},
props: _objectSpread2({}, props, {
itemSize: {
type: Number,
default: null
},
minItemSize: {
type: [Number, String],
default: null
},
sizeField: {
type: String,
default: 'size'
},
typeField: {
type: String,
default: 'type'
},
buffer: {
type: Number,
default: 200
},
pageMode: {
type: Boolean,
default: false
},
prerender: {
type: Number,
default: 0
},
emitUpdate: {
type: Boolean,
default: false
}
}),
data: function data() {
return {
pool: [],
totalSize: 0,
ready: false,
hoverKey: null
};
},
computed: {
sizes: function sizes() {
if (this.itemSize === null) {
var sizes = {
'-1': {
accumulator: 0
}
};
var items = this.items;
var field = this.sizeField;
var minItemSize = this.minItemSize;
var computedMinSize = 10000;
var accumulator = 0;
var current;
for (var i = 0, l = items.length; i < l; i++) {
current = items[i][field] || minItemSize;
if (current < computedMinSize) {
computedMinSize = current;
}
accumulator += current;
sizes[i] = {
accumulator: accumulator,
size: current
};
} // eslint-disable-next-line
this.$_computedMinItemSize = computedMinSize;
return sizes;
}
return [];
},
simpleArray: simpleArray
},
watch: {
items: function items() {
this.updateVisibleItems(true);
},
pageMode: function pageMode() {
this.applyPageMode();
this.updateVisibleItems(false);
},
sizes: {
handler: function handler() {
this.updateVisibleItems(false);
},
deep: true
}
},
created: function created() {
this.$_startIndex = 0;
this.$_endIndex = 0;
this.$_views = new Map();
this.$_unusedViews = new Map();
this.$_scrollDirty = false;
this.$_lastUpdateScrollPosition = 0; // In SSR mode, we also prerender the same number of item for the first render
// to avoir mismatch between server and client templates
if (this.prerender) {
this.$_prerender = true;
this.updateVisibleItems(false);
}
},
mounted: function mounted() {
var _this = this;
this.applyPageMode();
this.$nextTick(function () {
// In SSR mode, render the real number of visible items
_this.$_prerender = false;
_this.updateVisibleItems(true);
_this.ready = true;
});
},
beforeDestroy: function beforeDestroy() {
this.removeListeners();
},
methods: {
addView: function addView(pool, index, item, key, type) {
var view = {
item: item,
position: 0
};
var nonReactive = {
id: uid++,
index: index,
used: true,
key: key,
type: type
};
Object.defineProperty(view, 'nr', {
configurable: false,
value: nonReactive
});
pool.push(view);
return view;
},
unuseView: function unuseView(view) {
var fake = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var unusedViews = this.$_unusedViews;
var type = view.nr.type;
var unusedPool = unusedViews.get(type);
if (!unusedPool) {
unusedPool = [];
unusedViews.set(type, unusedPool);
}
unusedPool.push(view);
if (!fake) {
view.nr.used = false;
view.position = -9999;
this.$_views.delete(view.nr.key);
}
},
handleResize: function handleResize() {
this.$emit('resize');
if (this.ready) this.updateVisibleItems(false);
},
handleScroll: function handleScroll(event) {
var _this2 = this;
if (!this.$_scrollDirty) {
this.$_scrollDirty = true;
requestAnimationFrame(function () {
_this2.$_scrollDirty = false;
var _this2$updateVisibleI = _this2.updateVisibleItems(false, true),
continuous = _this2$updateVisibleI.continuous; // It seems sometimes chrome doesn't fire scroll event :/
// When non continous scrolling is ending, we force a refresh
if (!continuous) {
clearTimeout(_this2.$_refreshTimout);
_this2.$_refreshTimout = setTimeout(_this2.handleScroll, 100);
}
});
}
},
handleVisibilityChange: function handleVisibilityChange(isVisible, entry) {
var _this3 = this;
if (this.ready) {
if (isVisible || entry.boundingClientRect.width !== 0 || entry.boundingClientRect.height !== 0) {
this.$emit('visible');
requestAnimationFrame(function () {
_this3.updateVisibleItems(false);
});
} else {
this.$emit('hidden');
}
}
},
updateVisibleItems: function updateVisibleItems(checkItem) {
var checkPositionDiff = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var itemSize = this.itemSize;
var minItemSize = this.$_computedMinItemSize;
var typeField = this.typeField;
var keyField = this.simpleArray ? null : this.keyField;
var items = this.items;
var count = items.length;
var sizes = this.sizes;
var views = this.$_views;
var unusedViews = this.$_unusedViews;
var pool = this.pool;
var startIndex, endIndex;
var totalSize;
if (!count) {
startIndex = endIndex = totalSize = 0;
} else if (this.$_prerender) {
startIndex = 0;
endIndex = this.prerender;
totalSize = null;
} else {
var scroll = this.getScroll(); // Skip update if use hasn't scrolled enough
if (checkPositionDiff) {
var positionDiff = scroll.start - this.$_lastUpdateScrollPosition;
if (positionDiff < 0) positionDiff = -positionDiff;
if (itemSize === null && positionDiff < minItemSize || positionDiff < itemSize) {
return {
continuous: true
};
}
}
this.$_lastUpdateScrollPosition = scroll.start;
var buffer = this.buffer;
scroll.start -= buffer;
scroll.end += buffer; // Variable size mode
if (itemSize === null) {
var h;
var a = 0;
var b = count - 1;
var i = ~~(count / 2);
var oldI; // Searching for startIndex
do {
oldI = i;
h = sizes[i].accumulator;
if (h < scroll.start) {
a = i;
} else if (i < count - 1 && sizes[i + 1].accumulator > scroll.start) {
b = i;
}
i = ~~((a + b) / 2);
} while (i !== oldI);
i < 0 && (i = 0);
startIndex = i; // For container style
totalSize = sizes[count - 1].accumulator; // Searching for endIndex
for (endIndex = i; endIndex < count && sizes[endIndex].accumulator < scroll.end; endIndex++) {
}
if (endIndex === -1) {
endIndex = items.length - 1;
} else {
endIndex++; // Bounds
endIndex > count && (endIndex = count);
}
} else {
// Fixed size mode
startIndex = ~~(scroll.start / itemSize);
endIndex = Math.ceil(scroll.end / itemSize); // Bounds
startIndex < 0 && (startIndex = 0);
endIndex > count && (endIndex = count);
totalSize = count * itemSize;
}
}
if (endIndex - startIndex > config.itemsLimit) {
this.itemsLimitError();
}
this.totalSize = totalSize;
var view;
var continuous = startIndex <= this.$_endIndex && endIndex >= this.$_startIndex;
if (this.$_continuous !== continuous) {
if (continuous) {
views.clear();
unusedViews.clear();
for (var _i = 0, l = pool.length; _i < l; _i++) {
view = pool[_i];
this.unuseView(view);
}
}
this.$_continuous = continuous;
} else if (continuous) {
for (var _i2 = 0, _l = pool.length; _i2 < _l; _i2++) {
view = pool[_i2];
if (view.nr.used) {
// Update view item index
if (checkItem) {
view.nr.index = items.findIndex(function (item) {
return keyField ? item[keyField] === view.item[keyField] : item === view.item;
});
} // Check if index is still in visible range
if (view.nr.index === -1 || view.nr.index < startIndex || view.nr.index >= endIndex) {
this.unuseView(view);
}
}
}
}
var unusedIndex = continuous ? null : new Map();
var item, type, unusedPool;
var v;
for (var _i3 = startIndex; _i3 < endIndex; _i3++) {
item = items[_i3];
var key = keyField ? item[keyField] : item;
if (key == null) {
throw new Error("Key is ".concat(key, " on item (keyField is '").concat(keyField, "')"));
}
view = views.get(key);
if (!itemSize && !sizes[_i3].size) {
if (view) this.unuseView(view);
continue;
} // No view assigned to item
if (!view) {
type = item[typeField];
unusedPool = unusedViews.get(type);
if (continuous) {
// Reuse existing view
if (unusedPool && unusedPool.length) {
view = unusedPool.pop();
view.item = item;
view.nr.used = true;
view.nr.index = _i3;
view.nr.key = key;
view.nr.type = type;
} else {
view = this.addView(pool, _i3, item, key, type);
}
} else {
// Use existing view
// We don't care if they are already used
// because we are not in continous scrolling
v = unusedIndex.get(type) || 0;
if (!unusedPool || v >= unusedPool.length) {
view = this.addView(pool, _i3, item, key, type);
this.unuseView(view, true);
unusedPool = unusedViews.get(type);
}
view = unusedPool[v];
view.item = item;
view.nr.used = true;
view.nr.index = _i3;
view.nr.key = key;
view.nr.type = type;
unusedIndex.set(type, v + 1);
v++;
}
views.set(key, view);
} else {
view.nr.used = true;
view.item = item;
} // Update position
if (itemSize === null) {
view.position = sizes[_i3 - 1].accumulator;
} else {
view.position = _i3 * itemSize;
}
}
this.$_startIndex = startIndex;
this.$_endIndex = endIndex;
if (this.emitUpdate) this.$emit('update', startIndex, endIndex); // After the user has finished scrolling
// Sort views so text selection is correct
clearTimeout(this.$_sortTimer);
this.$_sortTimer = setTimeout(this.sortViews, 300);
return {
continuous: continuous
};
},
getListenerTarget: function getListenerTarget() {
var target = scrollparent__WEBPACK_IMPORTED_MODULE_2___default()(this.$el); // Fix global scroll target for Chrome and Safari
if (window.document && (target === window.document.documentElement || target === window.document.body)) {
target = window;
}
return target;
},
getScroll: function getScroll() {
var el = this.$el,
direction = this.direction;
var isVertical = direction === 'vertical';
var scrollState;
if (this.pageMode) {
var bounds = el.getBoundingClientRect();
var boundsSize = isVertical ? bounds.height : bounds.width;
var start = -(isVertical ? bounds.top : bounds.left);
var size = isVertical ? window.innerHeight : window.innerWidth;
if (start < 0) {
size += start;
start = 0;
}
if (start + size > boundsSize) {
size = boundsSize - start;
}
scrollState = {
start: start,
end: start + size
};
} else if (isVertical) {
scrollState = {
start: el.scrollTop,
end: el.scrollTop + el.clientHeight
};
} else {
scrollState = {
start: el.scrollLeft,
end: el.scrollLeft + el.clientWidth
};
}
return scrollState;
},
applyPageMode: function applyPageMode() {
if (this.pageMode) {
this.addListeners();
} else {
this.removeListeners();
}
},
addListeners: function addListeners() {
this.listenerTarget = this.getListenerTarget();
this.listenerTarget.addEventListener('scroll', this.handleScroll, supportsPassive ? {
passive: true
} : false);
this.listenerTarget.addEventListener('resize', this.handleResize);
},
removeListeners: function removeListeners() {
if (!this.listenerTarget) {
return;
}
this.listenerTarget.removeEventListener('scroll', this.handleScroll);
this.listenerTarget.removeEventListener('resize', this.handleResize);
this.listenerTarget = null;
},
scrollToItem: function scrollToItem(index) {
var scroll;
if (this.itemSize === null) {
scroll = index > 0 ? this.sizes[index - 1].accumulator : 0;
} else {
scroll = index * this.itemSize;
}
this.scrollToPosition(scroll);
},
scrollToPosition: function scrollToPosition(position) {
if (this.direction === 'vertical') {
this.$el.scrollTop = position;
} else {
this.$el.scrollLeft = position;
}
},
itemsLimitError: function itemsLimitError() {
var _this4 = this;
setTimeout(function () {
console.log('It seems the scroller element isn\'t scrolling, so it tries to render all the items at once.', 'Scroller:', _this4.$el);
console.log('Make sure the scroller has a fixed height (or width) and \'overflow-y\' (or \'overflow-x\') set to \'auto\' so it can scroll correctly and only render the items visible in the scroll viewport.');
});
throw new Error('Rendered items limit reached');
},
sortViews: function sortViews() {
this.pool.sort(function (viewA, viewB) {
return viewA.nr.index - viewB.nr.index;
});
}
}
};
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
if (typeof shadowMode !== 'boolean') {
createInjectorSSR = createInjector;
createInjector = shadowMode;
shadowMode = false;
}
// Vue.extend constructor export interop.
const options = typeof script === 'function' ? script.options : script;
// render functions
if (template && template.render) {
options.render = template.render;
options.staticRenderFns = template.staticRenderFns;
options._compiled = true;
// functional template
if (isFunctionalTemplate) {
options.functional = true;
}
}
// scopedId
if (scopeId) {
options._scopeId = scopeId;
}
let hook;
if (moduleIdentifier) {
// server build
hook = function (context) {
// 2.3 injection
context =
context || // cached call
(this.$vnode && this.$vnode.ssrContext) || // stateful
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__;
}
// inject component styles
if (style) {
style.call(this, createInjectorSSR(context));
}
// register component module identifier for async chunk inference
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier);
}
};
// used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook;
}
else if (style) {
hook = shadowMode
? function (context) {
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
}
: function (context) {
style.call(this, createInjector(context));
};
}
if (hook) {
if (options.functional) {
// register for functional component in vue file
const originalRender = options.render;
options.render = function renderWithStyleInjection(h, context) {
hook.call(context);
return originalRender(h, context);
};
}
else {
// inject component registration as beforeCreate hook
const existing = options.beforeCreate;
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
}
}
return script;
}
/* script */
const __vue_script__ = script;
/* template */
var __vue_render__ = function() {
var _obj, _obj$1;
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{
directives: [
{
name: "observe-visibility",
rawName: "v-observe-visibility",
value: _vm.handleVisibilityChange,
expression: "handleVisibilityChange"
}
],
staticClass: "vue-recycle-scroller",
class:
((_obj = {
ready: _vm.ready,
"page-mode": _vm.pageMode
}),
(_obj["direction-" + _vm.direction] = true),
_obj),
on: {
"&scroll": function($event) {
return _vm.handleScroll($event)
}
}
},
[
_vm.$slots.before
? _c(
"div",
{ staticClass: "vue-recycle-scroller__slot" },
[_vm._t("before")],
2
)
: _vm._e(),
_vm._v(" "),
_c(
"div",
{
ref: "wrapper",
staticClass: "vue-recycle-scroller__item-wrapper",
style:
((_obj$1 = {}),
(_obj$1[_vm.direction === "vertical" ? "minHeight" : "minWidth"] =
_vm.totalSize + "px"),
_obj$1)
},
_vm._l(_vm.pool, function(view) {
return _c(
"div",
{
key: view.nr.id,
staticClass: "vue-recycle-scroller__item-view",
class: { hover: _vm.hoverKey === view.nr.key },
style: _vm.ready
? {
transform:
"translate" +
(_vm.direction === "vertical" ? "Y" : "X") +
"(" +
view.position +
"px)"
}
: null,
on: {
mouseenter: function($event) {
_vm.hoverKey = view.nr.key;
},
mouseleave: function($event) {
_vm.hoverKey = null;
}
}
},
[
_vm._t("default", null, {
item: view.item,
index: view.nr.index,
active: view.nr.used
})
],
2
)
}),
0
),
_vm._v(" "),
_vm.$slots.after
? _c(
"div",
{ staticClass: "vue-recycle-scroller__slot" },
[_vm._t("after")],
2
)
: _vm._e(),
_vm._v(" "),
_c("ResizeObserver", { on: { notify: _vm.handleResize } })
],
1
)
};
var __vue_staticRenderFns__ = [];
__vue_render__._withStripped = true;
/* style */
const __vue_inject_styles__ = undefined;
/* scoped */
const __vue_scope_id__ = undefined;
/* module identifier */
const __vue_module_identifier__ = undefined;
/* functional template */
const __vue_is_functional_template__ = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
const __vue_component__ = normalizeComponent(
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
__vue_inject_styles__,
__vue_script__,
__vue_scope_id__,
__vue_is_functional_template__,
__vue_module_identifier__,
false,
undefined,
undefined,
undefined
);
var script$1 = {
name: 'DynamicScroller',
components: {
RecycleScroller: __vue_component__
},
inheritAttrs: false,
provide: function provide() {
if (typeof ResizeObserver !== 'undefined') {
this.$_resizeObserver = new ResizeObserver(function (entries) {
var _iterator = _createForOfIteratorHelper(entries),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var entry = _step.value;
if (entry.target) {
var event = new CustomEvent('resize', {
detail: {
contentRect: entry.contentRect
}
});
entry.target.dispatchEvent(event);
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
});
}
return {
vscrollData: this.vscrollData,
vscrollParent: this,
vscrollResizeObserver: this.$_resizeObserver
};
},
props: _objectSpread2({}, props, {
minItemSize: {
type: [Number, String],
required: true
}
}),
data: function data() {
return {
vscrollData: {
active: true,
sizes: {},
validSizes: {},
keyField: this.keyField,
simpleArray: false
}
};
},
computed: {
simpleArray: simpleArray,
itemsWithSize: function itemsWithSize() {
var result = [];
var items = this.items,
keyField = this.keyField,
simpleArray = this.simpleArray;
var sizes = this.vscrollData.sizes;
for (var i = 0; i < items.length; i++) {
var item = items[i];
var id = simpleArray ? i : item[keyField];
var size = sizes[id];
if (typeof size === 'undefined' && !this.$_undefinedMap[id]) {
size = 0;
}
result.push({
item: item,
id: id,
size: size
});
}
return result;
},
listeners: function listeners() {
var listeners = {};
for (var key in this.$listeners) {
if (key !== 'resize' && key !== 'visible') {
listeners[key] = this.$listeners[key];
}
}
return listeners;
}
},
watch: {
items: function items() {
this.forceUpdate(false);
},
simpleArray: {
handler: function handler(value) {
this.vscrollData.simpleArray = value;
},
immediate: true
},
direction: function direction(value) {
this.forceUpdate(true);
}
},
created: function created() {
this.$_updates = [];
this.$_undefinedSizes = 0;
this.$_undefinedMap = {};
},
activated: function activated() {
this.vscrollData.active = true;
},
deactivated: function deactivated() {
this.vscrollData.active = false;
},
methods: {
onScrollerResize: function onScrollerResize() {
var scroller = this.$refs.scroller;
if (scroller) {
this.forceUpdate();
}
this.$emit('resize');
},
onScrollerVisible: function onScrollerVisible() {
this.$emit('vscroll:update', {
force: false
});
this.$emit('visible');
},
forceUpdate: function forceUpdate() {
var clear = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
if (clear || this.simpleArray) {
this.vscrollData.validSizes = {};
}
this.$emit('vscroll:update', {
force: true
});
},
scrollToItem: function scrollToItem(index) {
var scroller = this.$refs.scroller;
if (scroller) scroller.scrollToItem(index);
},
getItemSize: function getItemSize(item) {
var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
var id = this.simpleArray ? index != null ? index : this.items.indexOf(item) : item[this.keyField];
return this.vscrollData.sizes[id] || 0;
},
scrollToBottom: function scrollToBottom() {
var _this = this;
if (this.$_scrollingToBottom) return;
this.$_scrollingToBottom = true;
var el = this.$el; // Item is inserted to the DOM
this.$nextTick(function () {
el.scrollTop = el.scrollHeight + 5000; // Item sizes are computed
var cb = function cb() {
el.scrollTop = el.scrollHeight + 5000;
requestAnimationFrame(function () {
el.scrollTop = el.scrollHeight + 5000;
if (_this.$_undefinedSizes === 0) {
_this.$_scrollingToBottom = false;
} else {
requestAnimationFrame(cb);
}
});
};
requestAnimationFrame(cb);
});
}
}
};
/* script */
const __vue_script__$1 = script$1;
/* template */
var __vue_render__$1 = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"RecycleScroller",
_vm._g(
_vm._b(
{
ref: "scroller",
attrs: {
items: _vm.itemsWithSize,
"min-item-size": _vm.minItemSize,
direction: _vm.direction,
"key-field": "id"
},
on: { resize: _vm.onScrollerResize, visible: _vm.onScrollerVisible },
scopedSlots: _vm._u(
[
{
key: "default",
fn: function(ref) {
var itemWithSize = ref.item;
var index = ref.index;
var active = ref.active;
return [
_vm._t("default", null, null, {
item: itemWithSize.item,
index: index,
active: active,
itemWithSize: itemWithSize
})
]
}
}
],
null,
true
)
},
"RecycleScroller",
_vm.$attrs,
false
),
_vm.listeners
),
[
_vm._v(" "),
_c("template", { slot: "before" }, [_vm._t("before")], 2),
_vm._v(" "),
_c("template", { slot: "after" }, [_vm._t("after")], 2)
],
2
)
};
var __vue_staticRenderFns__$1 = [];
__vue_render__$1._withStripped = true;
/* style */
const __vue_inject_styles__$1 = undefined;
/* scoped */
const __vue_scope_id__$1 = undefined;
/* module identifier */
const __vue_module_identifier__$1 = undefined;
/* functional template */
const __vue_is_functional_template__$1 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
const __vue_component__$1 = normalizeComponent(
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
__vue_inject_styles__$1,
__vue_script__$1,
__vue_scope_id__$1,
__vue_is_functional_template__$1,
__vue_module_identifier__$1,
false,
undefined,
undefined,
undefined
);
var script$2 = {
name: 'DynamicScrollerItem',
inject: ['vscrollData', 'vscrollParent', 'vscrollResizeObserver'],
props: {
// eslint-disable-next-line vue/require-prop-types
item: {
required: true
},
watchData: {
type: Boolean,
default: false
},
/**
* Indicates if the view is actively used to display an item.
*/
active: {
type: Boolean,
required: true
},
index: {
type: Number,
default: undefined
},
sizeDependencies: {
type: [Array, Object],
default: null
},
emitResize: {
type: Boolean,
default: false
},
tag: {
type: String,
default: 'div'
}
},
computed: {
id: function id() {
return this.vscrollData.simpleArray ? this.index : this.item[this.vscrollData.keyField];
},
size: function size() {
return this.vscrollData.validSizes[this.id] && this.vscrollData.sizes[this.id] || 0;
},
finalActive: function finalActive() {
return this.active && this.vscrollData.active;
}
},
watch: {
watchData: 'updateWatchData',
id: function id() {
if (!this.size) {
this.onDataUpdate();
}
},
finalActive: function finalActive(value) {
if (!this.size) {
if (value) {
if (!this.vscrollParent.$_undefinedMap[this.id]) {
this.vscrollParent.$_undefinedSizes++;
this.vscrollParent.$_undefinedMap[this.id] = true;
}
} else {
if (this.vscrollParent.$_undefinedMap[this.id]) {
this.vscrollParent.$_undefinedSizes--;
this.vscrollParent.$_undefinedMap[this.id] = false;
}
}
}
if (this.vscrollResizeObserver) {
if (value) {
this.observeSize();
} else {
this.unobserveSize();
}
} else if (value && this.$_pendingVScrollUpdate === this.id) {
this.updateSize();
}
}
},
created: function created() {
var _this = this;
if (this.$isServer) return;
this.$_forceNextVScrollUpdate = null;
this.updateWatchData();
if (!this.vscrollResizeObserver) {
var _loop = function _loop(k) {
_this.$watch(function () {
return _this.sizeDependencies[k];
}, _this.onDataUpdate);
};
for (var k in this.sizeDependencies) {
_loop(k);
}
this.vscrollParent.$on('vscroll:update', this.onVscrollUpdate);
this.vscrollParent.$on('vscroll:update-size', this.onVscrollUpdateSize);
}
},
mounted: function mounted() {
if (this.vscrollData.active) {
this.updateSize();
this.observeSize();
}
},
beforeDestroy: function beforeDestroy() {
this.vscrollParent.$off('vscroll:update', this.onVscrollUpdate);
this.vscrollParent.$off('vscroll:update-size', this.onVscrollUpdateSize);
this.unobserveSize();
},
methods: {
updateSize: function updateSize() {
if (this.finalActive) {
if (this.$_pendingSizeUpdate !== this.id) {
this.$_pendingSizeUpdate = this.id;
this.$_forceNextVScrollUpdate = null;
this.$_pendingVScrollUpdate = null;
this.computeSize(this.id);
}
} else {
this.$_forceNextVScrollUpdate = this.id;
}
},
updateWatchData: function updateWatchData() {
var _this2 = this;
if (this.watchData) {
this.$_watchData = this.$watch('data', function () {
_this2.onDataUpdate();
}, {
deep: true
});
} else if (this.$_watchData) {
this.$_watchData();
this.$_watchData = null;
}
},
onVscrollUpdate: function onVscrollUpdate(_ref) {
var force = _ref.force;
// If not active, sechedule a size update when it becomes active
if (!this.finalActive && force) {
this.$_pendingVScrollUpdate = this.id;
}
if (this.$_forceNextVScrollUpdate === this.id || force || !this.size) {
this.updateSize();
}
},
onDataUpdate: function onDataUpdate() {
this.updateSize();
},
computeSize: function computeSize(id) {
var _this3 = this;
this.$nextTick(function () {
if (_this3.id === id) {
var width = _this3.$el.offsetWidth;
var height = _this3.$el.offsetHeight;
_this3.applySize(width, height);
}
_this3.$_pendingSizeUpdate = null;
});
},
applySize: function applySize(width, height) {
var size = Math.round(this.vscrollParent.direction === 'vertical' ? height : width);
if (size && this.size !== size) {
if (this.vscrollParent.$_undefinedMap[this.id]) {
this.vscrollParent.$_undefinedSizes--;
this.vscrollParent.$_undefinedMap[this.id] = undefined;
}
this.$set(this.vscrollData.sizes, this.id, size);
this.$set(this.vscrollData.validSizes, this.id, true);
if (this.emitResize) this.$emit('resize', this.id);
}
},
observeSize: function observeSize() {
if (!this.vscrollResizeObserver) return;
this.vscrollResizeObserver.observe(this.$el.parentNode);
this.$el.parentNode.addEventListener('resize', this.onResize);
},
unobserveSize: function unobserveSize() {
if (!this.vscrollResizeObserver) return;
this.vscrollResizeObserver.unobserve(this.$el.parentNode);
this.$el.parentNode.removeEventListener('resize', this.onResize);
},
onResize: function onResize(event) {
var _event$detail$content = event.detail.contentRect,
width = _event$detail$content.width,
height = _event$detail$content.height;
this.applySize(width, height);
}
},
render: function render(h) {
return h(this.tag, this.$slots.default);
}
};
/* script */
const __vue_script__$2 = script$2;
/* template */
/* style */
const __vue_inject_styles__$2 = undefined;
/* scoped */
const __vue_scope_id__$2 = undefined;
/* module identifier */
const __vue_module_identifier__$2 = undefined;
/* functional template */
const __vue_is_functional_template__$2 = undefined;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
const __vue_component__$2 = normalizeComponent(
{},
__vue_inject_styles__$2,
__vue_script__$2,
__vue_scope_id__$2,
__vue_is_functional_template__$2,
__vue_module_identifier__$2,
false,
undefined,
undefined,
undefined
);
function IdState () {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
_ref$idProp = _ref.idProp,
idProp = _ref$idProp === void 0 ? function (vm) {
return vm.item.id;
} : _ref$idProp;
var store = {};
var vm = new vue__WEBPACK_IMPORTED_MODULE_3___default.a({
data: function data() {
return {
store: store
};
}
}); // @vue/component
return {
data: function data() {
return {
idState: null
};
},
created: function created() {
var _this = this;
this.$_id = null;
if (typeof idProp === 'function') {
this.$_getId = function () {
return idProp.call(_this, _this);
};
} else {
this.$_getId = function () {
return _this[idProp];
};
}
this.$watch(this.$_getId, {
handler: function handler(value) {
var _this2 = this;
this.$nextTick(function () {
_this2.$_id = value;
});
},
immediate: true
});
this.$_updateIdState();
},
beforeUpdate: function beforeUpdate() {
this.$_updateIdState();
},
methods: {
/**
* Initialize an idState
* @param {number|string} id Unique id for the data
*/
$_idStateInit: function $_idStateInit(id) {
var factory = this.$options.idState;
if (typeof factory === 'function') {
var data = factory.call(this, this);
vm.$set(store, id, data);
this.$_id = id;
return data;
} else {
throw new Error('[mixin IdState] Missing `idState` function on component definition.');
}
},
/**
* Ensure idState is created and up-to-date
*/
$_updateIdState: function $_updateIdState() {
var id = this.$_getId();
if (id == null) {
console.warn("No id found for IdState with idProp: '".concat(idProp, "'."));
}
if (id !== this.$_id) {
if (!store[id]) {
this.$_idStateInit(id);
}
this.idState = store[id];
}
}
}
};
}
function registerComponents(Vue, prefix) {
Vue.component("".concat(prefix, "recycle-scroller"), __vue_component__);
Vue.component("".concat(prefix, "RecycleScroller"), __vue_component__);
Vue.component("".concat(prefix, "dynamic-scroller"), __vue_component__$1);
Vue.component("".concat(prefix, "DynamicScroller"), __vue_component__$1);
Vue.component("".concat(prefix, "dynamic-scroller-item"), __vue_component__$2);
Vue.component("".concat(prefix, "DynamicScrollerItem"), __vue_component__$2);
}
var plugin = {
// eslint-disable-next-line no-undef
version: "1.0.10",
install: function install(Vue, options) {
var finalOptions = Object.assign({}, {
installComponents: true,
componentsPrefix: ''
}, options);
for (var key in finalOptions) {
if (typeof finalOptions[key] !== 'undefined') {
config[key] = finalOptions[key];
}
}
if (finalOptions.installComponents) {
registerComponents(Vue, finalOptions.componentsPrefix);
}
}
};
var GlobalVue = null;
if (typeof window !== 'undefined') {
GlobalVue = window.Vue;
} else if (typeof global !== 'undefined') {
GlobalVue = global.Vue;
}
if (GlobalVue) {
GlobalVue.use(plugin);
}
/* unused harmony default export */ var _unused_webpack_default_export = (plugin);
//# sourceMappingURL=vue-virtual-scroller.esm.js.map
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("c8ba")))
/***/ }),
/***/ "e538":
/***/ (function(module, exports, __webpack_require__) {
var wellKnownSymbol = __webpack_require__("b622");
exports.f = wellKnownSymbol;
/***/ }),
/***/ "e893":
/***/ (function(module, exports, __webpack_require__) {
var has = __webpack_require__("5135");
var ownKeys = __webpack_require__("56ef");
var getOwnPropertyDescriptorModule = __webpack_require__("06cf");
var definePropertyModule = __webpack_require__("9bf2");
module.exports = function (target, source) {
var keys = ownKeys(source);
var defineProperty = definePropertyModule.f;
var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
}
};
/***/ }),
/***/ "e8b5":
/***/ (function(module, exports, __webpack_require__) {
var classof = __webpack_require__("c6b6");
// `IsArray` abstract operation
// https://tc39.es/ecma262/#sec-isarray
// eslint-disable-next-line es/no-array-isarray -- safe
module.exports = Array.isArray || function isArray(arg) {
return classof(arg) == 'Array';
};
/***/ }),
/***/ "e95a":
/***/ (function(module, exports, __webpack_require__) {
var wellKnownSymbol = __webpack_require__("b622");
var Iterators = __webpack_require__("3f8c");
var ITERATOR = wellKnownSymbol('iterator');
var ArrayPrototype = Array.prototype;
// check on default Array iterator
module.exports = function (it) {
return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
};
/***/ }),
/***/ "eb31":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"80c2989a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/VAnnotator.vue?vue&type=template&id=24577b23&scoped=true&
var VAnnotatorvue_type_template_id_24577b23_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{"id":("container-" + _vm.uuid)},on:{"click":_vm.open,"touchend":_vm.open}},[_c('svg',{attrs:{"version":"1.1","xmlns":"http://www.w3.org/2000/svg"}},[_c('defs',[_c('marker',{attrs:{"id":"v-annotator-arrow","viewBox":"0 0 10 10","refX":"5","refY":"5","markerWidth":"6","markerHeight":"6","orient":"auto-start-reverse"}},[_c('path',{attrs:{"d":"M 0 0 L 10 5 L 0 10 z","stroke":"#74b8dc","fill":"#74b8dc"}})])])]),_c('RecycleScroller',{staticClass:"scroller",attrs:{"page-mode":"","items":_vm.items},scopedSlots:_vm._u([{key:"default",fn:function(ref){
var item = ref.item;
var index = ref.index;
return [_c('v-line',{key:(index + ":" + _vm.rtl),attrs:{"annotator-uuid":_vm.uuid,"dark":_vm.dark,"entities":_vm.entityList.filterByRange(
item.textLine.startOffset,
item.textLine.endOffset
),"entityLabels":_vm.entityLabelList,"relations":_vm.relationList.filterByRange(
item.textLine.startOffset,
item.textLine.endOffset
),"maxLabelLength":_vm.maxLabelLength,"relationLabels":_vm.relationLabelList,"font":_vm.font,"rtl":_vm.rtl,"selected-entities":_vm.highlightedEntities,"selected-relation":_vm.selectedRelation,"text":_vm.text,"textLine":item.textLine,"base-x":_vm.baseX,"left":_vm.left,"right":_vm.right},on:{"click:entity":_vm.clicked,"click:relation":_vm.onRelationClicked,"contextmenu:entity":function($event){return _vm.$emit('contextmenu:entity', $event)},"contextmenu:relation":function($event){return _vm.$emit('contextmenu:relation', $event)},"update:height":_vm.updateHeight,"setSelectedEntity":function($event){_vm.selectedEntity = $event},"setSelectedRelation":function($event){_vm.selectedRelation = $event}}})]}}])}),_c('svg',{attrs:{"version":"1.1","xmlns":"http://www.w3.org/2000/svg"}},[_c('text',{staticStyle:{"white-space":"pre"},attrs:{"id":("text-" + _vm.uuid)}})])],1)}
var staticRenderFns = []
// CONCATENATED MODULE: ./src/components/VAnnotator.vue?vue&type=template&id=24577b23&scoped=true&
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js
var es_symbol = __webpack_require__("a4d3");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.description.js
var es_symbol_description = __webpack_require__("e01a");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
var es_object_to_string = __webpack_require__("d3b7");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.iterator.js
var es_symbol_iterator = __webpack_require__("d28b");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js
var es_string_iterator = __webpack_require__("3ca3");
// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js
var web_dom_collections_iterator = __webpack_require__("ddb0");
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
function _iterableToArrayLimit(arr, i) {
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
if (_i == null) return;
var _arr = [];
var _n = true;
var _d = false;
var _s, _e;
try {
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js
var es_array_slice = __webpack_require__("fb6a");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js
var es_function_name = __webpack_require__("b0c0");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.from.js
var es_array_from = __webpack_require__("a630");
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) {
arr2[i] = arr[i];
}
return arr2;
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
}
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.number.constructor.js
var es_number_constructor = __webpack_require__("a9e3");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js
var es_array_map = __webpack_require__("d81d");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js
var es_array_concat = __webpack_require__("99af");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js
var es_regexp_exec = __webpack_require__("ac1f");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.split.js
var es_string_split = __webpack_require__("1276");
// CONCATENATED MODULE: ./node_modules/lodash-es/isObject.js
/**
* Checks if `value` is the
* [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
*
* @static
* @memberOf _
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an object, else `false`.
* @example
*
* _.isObject({});
* // => true
*
* _.isObject([1, 2, 3]);
* // => true
*
* _.isObject(_.noop);
* // => true
*
* _.isObject(null);
* // => false
*/
function isObject(value) {
var type = typeof value;
return value != null && (type == 'object' || type == 'function');
}
/* harmony default export */ var lodash_es_isObject = (isObject);
// EXTERNAL MODULE: ./node_modules/lodash-es/_freeGlobal.js
var _freeGlobal = __webpack_require__("5ea3");
// CONCATENATED MODULE: ./node_modules/lodash-es/_root.js
/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */
var root = _freeGlobal["a" /* default */] || freeSelf || Function('return this')();
/* harmony default export */ var _root = (root);
// CONCATENATED MODULE: ./node_modules/lodash-es/now.js
/**
* Gets the timestamp of the number of milliseconds that have elapsed since
* the Unix epoch (1 January 1970 00:00:00 UTC).
*
* @static
* @memberOf _
* @since 2.4.0
* @category Date
* @returns {number} Returns the timestamp.
* @example
*
* _.defer(function(stamp) {
* console.log(_.now() - stamp);
* }, _.now());
* // => Logs the number of milliseconds it took for the deferred invocation.
*/
var now = function() {
return _root.Date.now();
};
/* harmony default export */ var lodash_es_now = (now);
// CONCATENATED MODULE: ./node_modules/lodash-es/_trimmedEndIndex.js
/** Used to match a single whitespace character. */
var reWhitespace = /\s/;
/**
* Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
* character of `string`.
*
* @private
* @param {string} string The string to inspect.
* @returns {number} Returns the index of the last non-whitespace character.
*/
function trimmedEndIndex(string) {
var index = string.length;
while (index-- && reWhitespace.test(string.charAt(index))) {}
return index;
}
/* harmony default export */ var _trimmedEndIndex = (trimmedEndIndex);
// CONCATENATED MODULE: ./node_modules/lodash-es/_baseTrim.js
/** Used to match leading whitespace. */
var reTrimStart = /^\s+/;
/**
* The base implementation of `_.trim`.
*
* @private
* @param {string} string The string to trim.
* @returns {string} Returns the trimmed string.
*/
function baseTrim(string) {
return string
? string.slice(0, _trimmedEndIndex(string) + 1).replace(reTrimStart, '')
: string;
}
/* harmony default export */ var _baseTrim = (baseTrim);
// CONCATENATED MODULE: ./node_modules/lodash-es/_Symbol.js
/** Built-in value references. */
var _Symbol_Symbol = _root.Symbol;
/* harmony default export */ var _Symbol = (_Symbol_Symbol);
// CONCATENATED MODULE: ./node_modules/lodash-es/_getRawTag.js
/** Used for built-in method references. */
var objectProto = Object.prototype;
/** Used to check objects for own properties. */
var _getRawTag_hasOwnProperty = objectProto.hasOwnProperty;
/**
* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var nativeObjectToString = objectProto.toString;
/** Built-in value references. */
var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;
/**
* A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the raw `toStringTag`.
*/
function getRawTag(value) {
var isOwn = _getRawTag_hasOwnProperty.call(value, symToStringTag),
tag = value[symToStringTag];
try {
value[symToStringTag] = undefined;
var unmasked = true;
} catch (e) {}
var result = nativeObjectToString.call(value);
if (unmasked) {
if (isOwn) {
value[symToStringTag] = tag;
} else {
delete value[symToStringTag];
}
}
return result;
}
/* harmony default export */ var _getRawTag = (getRawTag);
// CONCATENATED MODULE: ./node_modules/lodash-es/_objectToString.js
/** Used for built-in method references. */
var _objectToString_objectProto = Object.prototype;
/**
* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var _objectToString_nativeObjectToString = _objectToString_objectProto.toString;
/**
* Converts `value` to a string using `Object.prototype.toString`.
*
* @private
* @param {*} value The value to convert.
* @returns {string} Returns the converted string.
*/
function objectToString(value) {
return _objectToString_nativeObjectToString.call(value);
}
/* harmony default export */ var _objectToString = (objectToString);
// CONCATENATED MODULE: ./node_modules/lodash-es/_baseGetTag.js
/** `Object#toString` result references. */
var nullTag = '[object Null]',
undefinedTag = '[object Undefined]';
/** Built-in value references. */
var _baseGetTag_symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;
/**
* The base implementation of `getTag` without fallbacks for buggy environments.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the `toStringTag`.
*/
function baseGetTag(value) {
if (value == null) {
return value === undefined ? undefinedTag : nullTag;
}
return (_baseGetTag_symToStringTag && _baseGetTag_symToStringTag in Object(value))
? _getRawTag(value)
: _objectToString(value);
}
/* harmony default export */ var _baseGetTag = (baseGetTag);
// CONCATENATED MODULE: ./node_modules/lodash-es/isObjectLike.js
/**
* Checks if `value` is object-like. A value is object-like if it's not `null`
* and has a `typeof` result of "object".
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
* @example
*
* _.isObjectLike({});
* // => true
*
* _.isObjectLike([1, 2, 3]);
* // => true
*
* _.isObjectLike(_.noop);
* // => false
*
* _.isObjectLike(null);
* // => false
*/
function isObjectLike(value) {
return value != null && typeof value == 'object';
}
/* harmony default export */ var lodash_es_isObjectLike = (isObjectLike);
// CONCATENATED MODULE: ./node_modules/lodash-es/isSymbol.js
/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';
/**
* Checks if `value` is classified as a `Symbol` primitive or object.
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
* @example
*
* _.isSymbol(Symbol.iterator);
* // => true
*
* _.isSymbol('abc');
* // => false
*/
function isSymbol(value) {
return typeof value == 'symbol' ||
(lodash_es_isObjectLike(value) && _baseGetTag(value) == symbolTag);
}
/* harmony default export */ var lodash_es_isSymbol = (isSymbol);
// CONCATENATED MODULE: ./node_modules/lodash-es/toNumber.js
/** Used as references for various `Number` constants. */
var NAN = 0 / 0;
/** Used to detect bad signed hexadecimal string values. */
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
/** Used to detect binary string values. */
var reIsBinary = /^0b[01]+$/i;
/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;
/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;
/**
* Converts `value` to a number.
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to process.
* @returns {number} Returns the number.
* @example
*
* _.toNumber(3.2);
* // => 3.2
*
* _.toNumber(Number.MIN_VALUE);
* // => 5e-324
*
* _.toNumber(Infinity);
* // => Infinity
*
* _.toNumber('3.2');
* // => 3.2
*/
function toNumber(value) {
if (typeof value == 'number') {
return value;
}
if (lodash_es_isSymbol(value)) {
return NAN;
}
if (lodash_es_isObject(value)) {
var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
value = lodash_es_isObject(other) ? (other + '') : other;
}
if (typeof value != 'string') {
return value === 0 ? value : +value;
}
value = _baseTrim(value);
var isBinary = reIsBinary.test(value);
return (isBinary || reIsOctal.test(value))
? freeParseInt(value.slice(2), isBinary ? 2 : 8)
: (reIsBadHex.test(value) ? NAN : +value);
}
/* harmony default export */ var lodash_es_toNumber = (toNumber);
// CONCATENATED MODULE: ./node_modules/lodash-es/debounce.js
/** Error message constants. */
var FUNC_ERROR_TEXT = 'Expected a function';
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max,
nativeMin = Math.min;
/**
* Creates a debounced function that delays invoking `func` until after `wait`
* milliseconds have elapsed since the last time the debounced function was
* invoked. The debounced function comes with a `cancel` method to cancel
* delayed `func` invocations and a `flush` method to immediately invoke them.
* Provide `options` to indicate whether `func` should be invoked on the
* leading and/or trailing edge of the `wait` timeout. The `func` is invoked
* with the last arguments provided to the debounced function. Subsequent
* calls to the debounced function return the result of the last `func`
* invocation.
*
* **Note:** If `leading` and `trailing` options are `true`, `func` is
* invoked on the trailing edge of the timeout only if the debounced function
* is invoked more than once during the `wait` timeout.
*
* If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
* until to the next tick, similar to `setTimeout` with a timeout of `0`.
*
* See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
* for details over the differences between `_.debounce` and `_.throttle`.
*
* @static
* @memberOf _
* @since 0.1.0
* @category Function
* @param {Function} func The function to debounce.
* @param {number} [wait=0] The number of milliseconds to delay.
* @param {Object} [options={}] The options object.
* @param {boolean} [options.leading=false]
* Specify invoking on the leading edge of the timeout.
* @param {number} [options.maxWait]
* The maximum time `func` is allowed to be delayed before it's invoked.
* @param {boolean} [options.trailing=true]
* Specify invoking on the trailing edge of the timeout.
* @returns {Function} Returns the new debounced function.
* @example
*
* // Avoid costly calculations while the window size is in flux.
* jQuery(window).on('resize', _.debounce(calculateLayout, 150));
*
* // Invoke `sendMail` when clicked, debouncing subsequent calls.
* jQuery(element).on('click', _.debounce(sendMail, 300, {
* 'leading': true,
* 'trailing': false
* }));
*
* // Ensure `batchLog` is invoked once after 1 second of debounced calls.
* var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
* var source = new EventSource('/stream');
* jQuery(source).on('message', debounced);
*
* // Cancel the trailing debounced invocation.
* jQuery(window).on('popstate', debounced.cancel);
*/
function debounce(func, wait, options) {
var lastArgs,
lastThis,
maxWait,
result,
timerId,
lastCallTime,
lastInvokeTime = 0,
leading = false,
maxing = false,
trailing = true;
if (typeof func != 'function') {
throw new TypeError(FUNC_ERROR_TEXT);
}
wait = lodash_es_toNumber(wait) || 0;
if (lodash_es_isObject(options)) {
leading = !!options.leading;
maxing = 'maxWait' in options;
maxWait = maxing ? nativeMax(lodash_es_toNumber(options.maxWait) || 0, wait) : maxWait;
trailing = 'trailing' in options ? !!options.trailing : trailing;
}
function invokeFunc(time) {
var args = lastArgs,
thisArg = lastThis;
lastArgs = lastThis = undefined;
lastInvokeTime = time;
result = func.apply(thisArg, args);
return result;
}
function leadingEdge(time) {
// Reset any `maxWait` timer.
lastInvokeTime = time;
// Start the timer for the trailing edge.
timerId = setTimeout(timerExpired, wait);
// Invoke the leading edge.
return leading ? invokeFunc(time) : result;
}
function remainingWait(time) {
var timeSinceLastCall = time - lastCallTime,
timeSinceLastInvoke = time - lastInvokeTime,
timeWaiting = wait - timeSinceLastCall;
return maxing
? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
: timeWaiting;
}
function shouldInvoke(time) {
var timeSinceLastCall = time - lastCallTime,
timeSinceLastInvoke = time - lastInvokeTime;
// Either this is the first call, activity has stopped and we're at the
// trailing edge, the system time has gone backwards and we're treating
// it as the trailing edge, or we've hit the `maxWait` limit.
return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
(timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
}
function timerExpired() {
var time = lodash_es_now();
if (shouldInvoke(time)) {
return trailingEdge(time);
}
// Restart the timer.
timerId = setTimeout(timerExpired, remainingWait(time));
}
function trailingEdge(time) {
timerId = undefined;
// Only invoke if we have `lastArgs` which means `func` has been
// debounced at least once.
if (trailing && lastArgs) {
return invokeFunc(time);
}
lastArgs = lastThis = undefined;
return result;
}
function cancel() {
if (timerId !== undefined) {
clearTimeout(timerId);
}
lastInvokeTime = 0;
lastArgs = lastCallTime = lastThis = timerId = undefined;
}
function flush() {
return timerId === undefined ? result : trailingEdge(lodash_es_now());
}
function debounced() {
var time = lodash_es_now(),
isInvoking = shouldInvoke(time);
lastArgs = arguments;
lastThis = this;
lastCallTime = time;
if (isInvoking) {
if (timerId === undefined) {
return leadingEdge(lastCallTime);
}
if (maxing) {
// Handle invocations in a tight loop.
clearTimeout(timerId);
timerId = setTimeout(timerExpired, wait);
return invokeFunc(lastCallTime);
}
}
if (timerId === undefined) {
timerId = setTimeout(timerExpired, wait);
}
return result;
}
debounced.cancel = cancel;
debounced.flush = flush;
return debounced;
}
/* harmony default export */ var lodash_es_debounce = (debounce);
// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/native.js
const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
/* harmony default export */ var esm_browser_native = ({
randomUUID
});
// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/rng.js
// Unique ID creation requires a high quality random # generator. In the browser we therefore
// require the crypto API and do not support built-in fallback to lower quality random number
// generators (like Math.random()).
let getRandomValues;
const rnds8 = new Uint8Array(16);
function rng() {
// lazy load so that environments that need to polyfill have a chance to do so
if (!getRandomValues) {
// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
if (!getRandomValues) {
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
}
}
return getRandomValues(rnds8);
}
// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/regex.js
/* harmony default export */ var regex = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i);
// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/validate.js
function validate(uuid) {
return typeof uuid === 'string' && regex.test(uuid);
}
/* harmony default export */ var esm_browser_validate = (validate);
// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/stringify.js
/**
* Convert array of 16 byte values to UUID string format of the form:
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
*/
const byteToHex = [];
for (let i = 0; i < 256; ++i) {
byteToHex.push((i + 0x100).toString(16).slice(1));
}
function unsafeStringify(arr, offset = 0) {
// Note: Be careful editing this code! It's been tuned for performance
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
}
function stringify(arr, offset = 0) {
const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one
// of the following:
// - One or more input array values don't map to a hex octet (leading to
// "undefined" in the uuid)
// - Invalid input values for the RFC `version` or `variant` fields
if (!esm_browser_validate(uuid)) {
throw TypeError('Stringified UUID is invalid');
}
return uuid;
}
/* harmony default export */ var esm_browser_stringify = (stringify);
// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/v4.js
function v4(options, buf, offset) {
if (esm_browser_native.randomUUID && !buf && !options) {
return esm_browser_native.randomUUID();
}
options = options || {};
const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
rnds[6] = rnds[6] & 0x0f | 0x40;
rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
if (buf) {
offset = offset || 0;
for (let i = 0; i < 16; ++i) {
buf[offset + i] = rnds[i];
}
return buf;
}
return unsafeStringify(rnds);
}
/* harmony default export */ var esm_browser_v4 = (v4);
// EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__("8bbf");
var external_commonjs_vue_commonjs2_vue_root_Vue_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_vue_commonjs2_vue_root_Vue_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"80c2989a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/VLine.vue?vue&type=template&id=040f6976&scoped=true&
var VLinevue_type_template_id_040f6976_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{"version":"1.1","xmlns":"http://www.w3.org/2000/svg","direction":_vm.direction,"id":_vm.svgId,"width":"100%"}},[_c('g',{attrs:{"transform":_vm.translate}},[_vm._l((_vm.lineRelations),function(relation){return _c('BaseRelation',{key:relation.relation.id,attrs:{"dark":_vm.dark,"font-size":_vm.font.fontSize,"x1":relation.x1,"x2":relation.x2,"level":relation.level,"label":relation.label,"label-width":relation.labelWidth,"marker":relation.marker,"max-level":_vm.maxRelationLevel,"openLeft":relation.openLeft,"openRight":relation.openRight,"rtl":_vm.rtl,"margin":_vm.left,"selected":_vm.isSelectedRelation(relation.relation)},on:{"click:relation":function($event){return _vm.$emit('click:relation', $event, relation.relation)},"contextmenu:relation":function($event){return _vm.$emit('contextmenu:relation', relation.relation)},"mouseover":function($event){return _vm.$emit('setSelectedRelation', relation.relation)},"mouseleave":function($event){return _vm.$emit('setSelectedRelation', null)}}})}),_c('g',{attrs:{"transform":_vm.translateEntity}},[_c('BaseText',{attrs:{"id":_vm.basetextId,"text-line":_vm.textLine,"text":_vm.text,"x":_vm.baseX}}),_vm._l((_vm.geometricEntities),function(gEntity){return _c('BaseEntity',{key:gEntity.entity.id,attrs:{"ranges":gEntity.ranges,"color":_vm.color(gEntity.entity),"label":_vm.labelText(gEntity.entity),"no-text":_vm.noText(gEntity.entity),"rtl":_vm.rtl,"margin":_vm.left,"level":gEntity.level,"font-size":_vm.font.fontSize,"selected":_vm.isSelectedEntity(gEntity.entity)},on:{"click:entity":function($event){return _vm.$emit('click:entity', $event, gEntity.entity)},"contextmenu:entity":function($event){return _vm.$emit('contextmenu:entity', gEntity.entity)},"mouseover":function($event){return _vm.$emit('setSelectedEntity', gEntity.entity)},"mouseleave":function($event){return _vm.$emit('setSelectedEntity', null)}}})})],2)],2)])}
var VLinevue_type_template_id_040f6976_scoped_true_staticRenderFns = []
// CONCATENATED MODULE: ./src/components/VLine.vue?vue&type=template&id=040f6976&scoped=true&
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
function _iterableToArray(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
}
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js
var es_array_filter = __webpack_require__("4de4");
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"80c2989a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseEntity.vue?vue&type=template&id=390c03c2&
var BaseEntityvue_type_template_id_390c03c2_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('g',{on:{"mouseover":function($event){return _vm.$emit('mouseover')},"mouseleave":function($event){return _vm.$emit('mouseleave')}}},[_vm._l((_vm.coordinates),function(ref,index){
var x1 = ref[0];
var x2 = ref[1];
return _c('BaseEntityLine',{key:index,attrs:{"x1":x1,"x2":x2,"y":_vm.lineY,"color":_vm.color,"height":_vm.height}})}),(!_vm.noText)?_c('BaseEntityText',{attrs:{"r":_vm.r,"x":_vm.textX,"y":_vm.textY,"dx":_vm.dx,"rtl":_vm.rtl,"text":_vm.label,"color":_vm.color},on:{"click:entity":function($event){return _vm.$emit('click:entity', $event)},"contextmenu:entity":function($event){return _vm.$emit('contextmenu:entity')}}}):_vm._e()],2)}
var BaseEntityvue_type_template_id_390c03c2_staticRenderFns = []
// CONCATENATED MODULE: ./src/components/BaseEntity.vue?vue&type=template&id=390c03c2&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"80c2989a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseEntityText.vue?vue&type=template&id=2cfcdc16&
var BaseEntityTextvue_type_template_id_2cfcdc16_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('g',{staticStyle:{"cursor":"pointer","user-select":"none"},on:{"click":function($event){return _vm.$emit('click:entity', $event)},"contextmenu":function($event){$event.preventDefault();return _vm.$emit('contextmenu:entity')}}},[_c('circle',{attrs:{"r":_vm.r,"fill":_vm.color,"cx":_vm.cx,"cy":_vm.y}}),_c('text',{attrs:{"x":_vm.x,"y":_vm.y,"fill":"currentColor","dx":_vm.dx,"dy":"0.35em"},domProps:{"textContent":_vm._s(_vm.text)}})])}
var BaseEntityTextvue_type_template_id_2cfcdc16_staticRenderFns = []
// CONCATENATED MODULE: ./src/components/BaseEntityText.vue?vue&type=template&id=2cfcdc16&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseEntityText.vue?vue&type=script&lang=ts&
/* harmony default export */ var BaseEntityTextvue_type_script_lang_ts_ = (external_commonjs_vue_commonjs2_vue_root_Vue_default.a.extend({
props: {
r: {
type: Number,
required: true
},
x: {
type: Number,
required: true
},
y: {
type: Number,
required: true
},
dx: {
type: Number,
required: true
},
color: {
type: String,
required: true
},
text: {
type: String,
required: true
},
rtl: {
type: Boolean,
default: false
}
},
computed: {
cx: function cx() {
return this.rtl ? this.x - this.r : this.x + this.r;
}
}
}));
// CONCATENATED MODULE: ./src/components/BaseEntityText.vue?vue&type=script&lang=ts&
/* harmony default export */ var components_BaseEntityTextvue_type_script_lang_ts_ = (BaseEntityTextvue_type_script_lang_ts_);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
/* globals __VUE_SSR_CONTEXT__ */
// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.
function normalizeComponent (
scriptExports,
render,
staticRenderFns,
functionalTemplate,
injectStyles,
scopeId,
moduleIdentifier, /* server only */
shadowMode /* vue-cli only */
) {
// Vue.extend constructor export interop
var options = typeof scriptExports === 'function'
? scriptExports.options
: scriptExports
// render functions
if (render) {
options.render = render
options.staticRenderFns = staticRenderFns
options._compiled = true
}
// functional template
if (functionalTemplate) {
options.functional = true
}
// scopedId
if (scopeId) {
options._scopeId = 'data-v-' + scopeId
}
var hook
if (moduleIdentifier) { // server build
hook = function (context) {
// 2.3 injection
context =
context || // cached call
(this.$vnode && this.$vnode.ssrContext) || // stateful
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__
}
// inject component styles
if (injectStyles) {
injectStyles.call(this, context)
}
// register component module identifier for async chunk inferrence
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier)
}
}
// used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook
} else if (injectStyles) {
hook = shadowMode
? function () {
injectStyles.call(
this,
(options.functional ? this.parent : this).$root.$options.shadowRoot
)
}
: injectStyles
}
if (hook) {
if (options.functional) {
// for template-only hot-reload because in that case the render fn doesn't
// go through the normalizer
options._injectStyles = hook
// register for functional component in vue file
var originalRender = options.render
options.render = function renderWithStyleInjection (h, context) {
hook.call(context)
return originalRender(h, context)
}
} else {
// inject component registration as beforeCreate hook
var existing = options.beforeCreate
options.beforeCreate = existing
? [].concat(existing, hook)
: [hook]
}
}
return {
exports: scriptExports,
options: options
}
}
// CONCATENATED MODULE: ./src/components/BaseEntityText.vue
/* normalize component */
var component = normalizeComponent(
components_BaseEntityTextvue_type_script_lang_ts_,
BaseEntityTextvue_type_template_id_2cfcdc16_render,
BaseEntityTextvue_type_template_id_2cfcdc16_staticRenderFns,
false,
null,
null,
null
)
/* harmony default export */ var BaseEntityText = (component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"80c2989a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseEntityLine.vue?vue&type=template&id=73c44f5d&
var BaseEntityLinevue_type_template_id_73c44f5d_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('line',{attrs:{"x1":_vm._x1,"y1":_vm.y,"x2":_vm._x2,"y2":_vm.y,"stroke":_vm.color,"stroke-width":_vm.height,"stroke-linecap":"round"}})}
var BaseEntityLinevue_type_template_id_73c44f5d_staticRenderFns = []
// CONCATENATED MODULE: ./src/components/BaseEntityLine.vue?vue&type=template&id=73c44f5d&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseEntityLine.vue?vue&type=script&lang=ts&
/* harmony default export */ var BaseEntityLinevue_type_script_lang_ts_ = (external_commonjs_vue_commonjs2_vue_root_Vue_default.a.extend({
props: {
x1: {
type: Number
},
x2: {
type: Number
},
y: {
type: Number
},
height: {
type: Number,
default: 5
},
color: {
type: String
}
},
computed: {
_x1: function _x1() {
var x = this.x1 < this.x2 ? this.x1 : this.x2;
return x + this.height / 2;
},
_x2: function _x2() {
var x = this.x1 < this.x2 ? this.x2 : this.x1;
return x - this.height / 2;
}
}
}));
// CONCATENATED MODULE: ./src/components/BaseEntityLine.vue?vue&type=script&lang=ts&
/* harmony default export */ var components_BaseEntityLinevue_type_script_lang_ts_ = (BaseEntityLinevue_type_script_lang_ts_);
// CONCATENATED MODULE: ./src/components/BaseEntityLine.vue
/* normalize component */
var BaseEntityLine_component = normalizeComponent(
components_BaseEntityLinevue_type_script_lang_ts_,
BaseEntityLinevue_type_template_id_73c44f5d_render,
BaseEntityLinevue_type_template_id_73c44f5d_staticRenderFns,
false,
null,
null,
null
)
/* harmony default export */ var BaseEntityLine = (BaseEntityLine_component.exports);
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.freeze.js
var es_object_freeze = __webpack_require__("dca8");
// CONCATENATED MODULE: ./src/domain/models/Config/Config.ts
var defaultConfig = Object.freeze({
radius: 3,
lineWidth: 5,
maxLabelLength: 12,
get labelMargin() {
return 5 + this.radius;
},
get diameter() {
return this.radius * 2;
}
});
/* harmony default export */ var Config = (defaultConfig);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseEntity.vue?vue&type=script&lang=ts&
/* harmony default export */ var BaseEntityvue_type_script_lang_ts_ = (external_commonjs_vue_commonjs2_vue_root_Vue_default.a.extend({
components: {
BaseEntityText: BaseEntityText,
BaseEntityLine: BaseEntityLine
},
props: {
ranges: {
type: Object,
required: true
},
color: {
type: String,
required: true
},
noText: {
type: Boolean,
required: false
},
label: {
type: String,
required: true
},
rtl: {
type: Boolean,
default: false
},
margin: {
type: Number,
default: 0
},
level: {
type: Number,
default: 0
},
fontSize: {
type: Number,
default: 17
},
selected: {
type: Boolean,
default: false
}
},
computed: {
dx: function dx() {
return this.rtl ? -Config.labelMargin : Config.labelMargin;
},
r: function r() {
return Config.radius;
},
height: function height() {
return this.selected ? Config.lineWidth * 1.5 : Config.lineWidth;
},
textX: function textX() {
if (this.rtl) {
return this.x(this.ranges.first.x2);
} else {
return this.x(this.ranges.first.x1);
}
},
textY: function textY() {
var marginTop = 5;
return this.lineY + this.fontSize / 2 + marginTop;
},
lineY: function lineY() {
var marginBottom = 8;
return Config.lineWidth + (Config.lineWidth + this.fontSize + marginBottom) * this.level;
},
coordinates: function coordinates() {
var _this = this;
return this.ranges.items.map(function (range) {
return [_this.x(range.x1), _this.x(range.x2)];
});
}
},
methods: {
x: function x(_x) {
return _x - this.margin;
}
}
}));
// CONCATENATED MODULE: ./src/components/BaseEntity.vue?vue&type=script&lang=ts&
/* harmony default export */ var components_BaseEntityvue_type_script_lang_ts_ = (BaseEntityvue_type_script_lang_ts_);
// CONCATENATED MODULE: ./src/components/BaseEntity.vue
/* normalize component */
var BaseEntity_component = normalizeComponent(
components_BaseEntityvue_type_script_lang_ts_,
BaseEntityvue_type_template_id_390c03c2_render,
BaseEntityvue_type_template_id_390c03c2_staticRenderFns,
false,
null,
null,
null
)
/* harmony default export */ var BaseEntity = (BaseEntity_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"80c2989a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseText.vue?vue&type=template&id=5225550e&scoped=true&
var BaseTextvue_type_template_id_5225550e_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.snippet)?_c('text',{staticStyle:{"white-space":"pre"},attrs:{"fill":"currentColor"},domProps:{"textContent":_vm._s(_vm.snippet)}}):_c('text',{staticStyle:{"font-size":"6px"},attrs:{"fill":"currentColor"}},[_vm._v("⮐")])}
var BaseTextvue_type_template_id_5225550e_scoped_true_staticRenderFns = []
// CONCATENATED MODULE: ./src/components/BaseText.vue?vue&type=template&id=5225550e&scoped=true&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseText.vue?vue&type=script&lang=ts&
/* harmony default export */ var BaseTextvue_type_script_lang_ts_ = (external_commonjs_vue_commonjs2_vue_root_Vue_default.a.extend({
props: {
text: {
type: String,
default: "",
required: true
},
textLine: {
type: Object,
required: true
}
},
computed: {
snippet: function snippet() {
return this.text.substring(this.textLine.startOffset, this.textLine.endOffset);
}
},
watch: {
textLine: {
immediate: true,
handler: function handler() {
var _this = this;
this.$nextTick(function () {
_this.$el.annotatorElement = _this.textLine;
});
}
}
}
}));
// CONCATENATED MODULE: ./src/components/BaseText.vue?vue&type=script&lang=ts&
/* harmony default export */ var components_BaseTextvue_type_script_lang_ts_ = (BaseTextvue_type_script_lang_ts_);
// EXTERNAL MODULE: ./src/components/BaseText.vue?vue&type=style&index=0&id=5225550e&scoped=true&lang=css&
var BaseTextvue_type_style_index_0_id_5225550e_scoped_true_lang_css_ = __webpack_require__("6386");
// CONCATENATED MODULE: ./src/components/BaseText.vue
/* normalize component */
var BaseText_component = normalizeComponent(
components_BaseTextvue_type_script_lang_ts_,
BaseTextvue_type_template_id_5225550e_scoped_true_render,
BaseTextvue_type_template_id_5225550e_scoped_true_staticRenderFns,
false,
null,
"5225550e",
null
)
/* harmony default export */ var BaseText = (BaseText_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"80c2989a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseRelation.vue?vue&type=template&id=b2628ba2&
var BaseRelationvue_type_template_id_b2628ba2_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('g',{staticStyle:{"cursor":"pointer","userselect":"none"},on:{"click":function($event){return _vm.$emit('click:relation', $event)},"contextmenu":function($event){return _vm.$emit('contextmenu:relation')},"mouseover":function($event){return _vm.$emit('mouseover')},"mouseleave":function($event){return _vm.$emit('mouseleave')}}},[_c('path',_vm._b({attrs:{"d":_vm.d,"stroke":"#74b8dc","stroke-width":_vm.width,"fill":"none"}},'path',_vm.markerObj,false)),(_vm.x1)?_c('g',[_c('rect',{attrs:{"x":_vm.rectX,"y":_vm.rectY,"width":_vm.labelWidth,"height":_vm.fontSize,"fill":_vm.fill}}),_c('text',{attrs:{"x":_vm.center,"y":_vm.textY,"fill":"currentColor","text-anchor":"middle"},domProps:{"textContent":_vm._s(_vm.label)}})]):_vm._e()])}
var BaseRelationvue_type_template_id_b2628ba2_staticRenderFns = []
// CONCATENATED MODULE: ./src/components/BaseRelation.vue?vue&type=template&id=b2628ba2&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseRelation.vue?vue&type=script&lang=ts&
/* harmony default export */ var BaseRelationvue_type_script_lang_ts_ = (external_commonjs_vue_commonjs2_vue_root_Vue_default.a.extend({
props: {
fontSize: {
type: Number,
required: true
},
x1: {
type: Number
},
x2: {
type: Number
},
dark: {
type: Boolean,
default: false
},
label: {
type: String,
required: true
},
labelWidth: {
type: Number,
required: true
},
level: {
type: Number,
default: 0
},
openLeft: {
type: Boolean,
default: false
},
openRight: {
type: Boolean,
default: false
},
rtl: {
type: Boolean,
default: false
},
margin: {
type: Number,
default: 0
},
marker: {
type: String
},
maxLevel: {
type: Number
},
selected: {
type: Boolean,
default: false
}
},
computed: {
r: function r() {
return 12;
},
y: function y() {
return 20 + this.fontSize * this.maxLevel + this.fontSize / 2;
},
d: function d() {
if (this.openLeft && this.openRight) {
return "M ".concat(this._x1, " ").concat(this.y - this.dy - this.r, "\n H ").concat(this._x2, "\n ");
} else if (this.openLeft) {
return "M ".concat(this._x1, " ").concat(this.y - this.dy - this.r, "\n H ").concat(this._x2 - this.r, "\n A ").concat(this.r, " ").concat(this.r, " 0 0 1 ").concat(this._x2, " ").concat(this.lineY + this.r, "\n v ").concat(this.dy - 3, "\n ");
} else if (this.openRight) {
return "M ".concat(this._x1, " ").concat(this.y, "\n v -").concat(this.dy, "\n A ").concat(this.r, " ").concat(this.r, " 0 0 1 ").concat(this._x1 + this.r, " ").concat(this.lineY, "\n H ").concat(this._x2, "\n ");
} else {
return "M ".concat(this._x1, " ").concat(this.y, "\n v -").concat(this.dy, "\n A ").concat(this.r, " ").concat(this.r, " 0 0 1 ").concat(this._x1 + this.r, " ").concat(this.lineY, "\n H ").concat(this._x2 - this.r, "\n A ").concat(this.r, " ").concat(this.r, " 0 0 1 ").concat(this._x2, " ").concat(this.lineY + this.r, "\n v ").concat(this.dy - 3, "\n ");
}
},
dy: function dy() {
return 20 + this.fontSize * this.level;
},
center: function center() {
return this._x1 + (this._x2 - this._x1) / 2;
},
rectX: function rectX() {
return this.center - this.labelWidth / 2;
},
rectY: function rectY() {
return this.lineY - this.fontSize / 2;
},
lineY: function lineY() {
return this.y - this.dy - this.r;
},
textY: function textY() {
return this.lineY + this.fontSize / 2 - 3;
},
_x1: function _x1() {
return this.x1 - this.margin;
},
_x2: function _x2() {
return this.x2 - this.margin;
},
width: function width() {
return this.selected ? 3 : 1;
},
markerObj: function markerObj() {
if (this.marker === "start") {
return {
"marker-start": "url(#v-annotator-arrow)"
};
} else if (this.marker === "end") {
return {
"marker-end": "url(#v-annotator-arrow)"
};
} else {
return {};
}
},
fill: function fill() {
return this.dark ? "#1E1E1E" : "white";
}
}
}));
// CONCATENATED MODULE: ./src/components/BaseRelation.vue?vue&type=script&lang=ts&
/* harmony default export */ var components_BaseRelationvue_type_script_lang_ts_ = (BaseRelationvue_type_script_lang_ts_);
// CONCATENATED MODULE: ./src/components/BaseRelation.vue
/* normalize component */
var BaseRelation_component = normalizeComponent(
components_BaseRelationvue_type_script_lang_ts_,
BaseRelationvue_type_template_id_b2628ba2_render,
BaseRelationvue_type_template_id_b2628ba2_staticRenderFns,
false,
null,
null,
null
)
/* harmony default export */ var BaseRelation = (BaseRelation_component.exports);
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js
function _createForOfIteratorHelper(o, allowArrayLike) {
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
if (!it) {
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
if (it) o = it;
var i = 0;
var F = function F() {};
return {
s: F,
n: function n() {
if (i >= o.length) return {
done: true
};
return {
done: false,
value: o[i++]
};
},
e: function e(_e) {
throw _e;
},
f: F
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
var normalCompletion = true,
didErr = false,
err;
return {
s: function s() {
it = it.call(o);
},
n: function n() {
var step = it.next();
normalCompletion = step.done;
return step;
},
e: function e(_e2) {
didErr = true;
err = _e2;
},
f: function f() {
try {
if (!normalCompletion && it["return"] != null) it["return"]();
} finally {
if (didErr) throw err;
}
}
};
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
_typeof = function _typeof(obj) {
return typeof obj;
};
} else {
_typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
return _typeof(obj);
}
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.map.js
var es_map = __webpack_require__("4ec9");
// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js
var web_dom_collections_for_each = __webpack_require__("159b");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.search.js
var es_string_search = __webpack_require__("841c");
// CONCATENATED MODULE: ./node_modules/@flatten-js/interval-tree/dist/main.esm.js
/**
* Created by Alex Bol on 4/1/2017.
*/
/**
* Interval is a pair of numbers or a pair of any comparable objects on which may be defined predicates
* *equal*, *less* and method *max(p1, p1)* that returns maximum in a pair.
* When interval is an object rather than pair of numbers, this object should have properties *low*, *high*, *max*
* and implement methods *less_than(), equal_to(), intersect(), not_intersect(), clone(), output()*.
* Two static methods *comparable_max(), comparable_less_than()* define how to compare values in pair. <br/>
* This interface is described in typescript definition file *index.d.ts*
*
* Axis aligned rectangle is an example of such interval.
* We may look at rectangle as an interval between its low left and top right corners.
* See **Box** class in [flatten-js](https://github.com/alexbol99/flatten-js) library as the example
* of Interval interface implementation
* @type {Interval}
*/
const Interval = class Interval {
/**
* Accept two comparable values and creates new instance of interval
* Predicate Interval.comparable_less(low, high) supposed to return true on these values
* @param low
* @param high
*/
constructor(low, high) {
this.low = low;
this.high = high;
}
/**
* Clone interval
* @returns {Interval}
*/
clone() {
return new Interval(this.low, this.high);
}
/**
* Propery max returns clone of this interval
* @returns {Interval}
*/
get max() {
return this.clone(); // this.high;
}
/**
* Predicate returns true is this interval less than other interval
* @param other_interval
* @returns {boolean}
*/
less_than(other_interval) {
return this.low < other_interval.low ||
this.low == other_interval.low && this.high < other_interval.high;
}
/**
* Predicate returns true is this interval equals to other interval
* @param other_interval
* @returns {boolean}
*/
equal_to(other_interval) {
return this.low == other_interval.low && this.high == other_interval.high;
}
/**
* Predicate returns true if this interval intersects other interval
* @param other_interval
* @returns {boolean}
*/
intersect(other_interval) {
return !this.not_intersect(other_interval);
}
/**
* Predicate returns true if this interval does not intersect other interval
* @param other_interval
* @returns {boolean}
*/
not_intersect(other_interval) {
return (this.high < other_interval.low || other_interval.high < this.low);
}
/**
* Returns new interval merged with other interval
* @param {Interval} interval - Other interval to merge with
* @returns {Interval}
*/
merge(other_interval) {
return new Interval(
this.low === undefined ? other_interval.low : Math.min(this.low, other_interval.low),
this.high === undefined ? other_interval.high : Math.max(this.high, other_interval.high)
);
}
/**
* Returns how key should return
*/
output() {
return [this.low, this.high];
}
/**
* Function returns maximum between two comparable values
* @param interval1
* @param interval2
* @returns {Interval}
*/
static comparable_max(interval1, interval2) {
return interval1.merge(interval2);
}
/**
* Predicate returns true if first value less than second value
* @param val1
* @param val2
* @returns {boolean}
*/
static comparable_less_than(val1, val2 ) {
return val1 < val2;
}
};
/**
* Created by Alex Bol on 3/28/2017.
*/
// module.exports = {
// RB_TREE_COLOR_RED: 0,
// RB_TREE_COLOR_BLACK: 1
// };
const RB_TREE_COLOR_RED = 0;
const RB_TREE_COLOR_BLACK = 1;
/**
* Created by Alex Bol on 4/1/2017.
*/
class Node {
constructor(key = undefined, value = undefined,
left = null, right = null, parent = null, color = RB_TREE_COLOR_BLACK) {
this.left = left; // reference to left child node
this.right = right; // reference to right child node
this.parent = parent; // reference to parent node
this.color = color;
this.item = {key: key, value: value}; // key is supposed to be instance of Interval
/* If not, this should by an array of two numbers */
if (key && key instanceof Array && key.length == 2) {
if (!Number.isNaN(key[0]) && !Number.isNaN(key[1])) {
this.item.key = new Interval(Math.min(key[0], key[1]), Math.max(key[0], key[1]));
}
}
this.max = this.item.key ? this.item.key.max : undefined;
}
isNil() {
return (this.item.key === undefined && this.item.value === undefined &&
this.left === null && this.right === null && this.color === RB_TREE_COLOR_BLACK);
}
less_than(other_node) {
// if tree stores only keys
if (this.item.value === this.item.key && other_node.item.value === other_node.item.key) {
return this.item.key.less_than(other_node.item.key);
}
else { // if tree stores keys and values
let value_less_than = this.item.value && other_node.item.value && this.item.value.less_than ? this.item.value.less_than(other_node.item.value) :
this.item.value < other_node.item.value;
return this.item.key.less_than(other_node.item.key) ||
this.item.key.equal_to((other_node.item.key)) && value_less_than;
}
// if (this.item.value && other_node.item.value) {
// let item_less_than = this.item.value.less_than ? this.item.value.less_than(other_node.item.value) :
// this.item.value < other_node.item.value;
// return this.item.key.less_than(other_node.item.key) ||
// this.item.key.equal_to((other_node.item.key)) && item_less_than;
// }
// else {
// return this.item.key.less_than(other_node.item.key);
// }
}
equal_to(other_node) {
// if tree stores only keys
if (this.item.value === this.item.key && other_node.item.value === other_node.item.key) {
return this.item.key.equal_to(other_node.item.key);
}
else { // if tree stores keys and values
let value_equal = this.item.value && other_node.item.value && this.item.value.equal_to ? this.item.value.equal_to(other_node.item.value) :
this.item.value == other_node.item.value;
return this.item.key.equal_to(other_node.item.key) && value_equal;
}
// let value_equal = true;
// if (this.item.value && other_node.item.value) {
// value_equal = this.item.value.equal_to ? this.item.value.equal_to(other_node.item.value) :
// this.item.value == other_node.item.value;
// }
// return this.item.key.equal_to(other_node.item.key) && value_equal;
}
intersect(other_node) {
return this.item.key.intersect(other_node.item.key);
}
copy_data(other_node) {
this.item.key = other_node.item.key.clone();
this.item.value = other_node.item.value && other_node.item.value.clone ? other_node.item.value.clone() : other_node.item.value;
}
update_max() {
// use key (Interval) max property instead of key.high
this.max = this.item.key ? this.item.key.max : undefined;
if (this.right && this.right.max) {
const comparable_max = this.item.key.constructor.comparable_max; // static method
this.max = comparable_max(this.max, this.right.max);
}
if (this.left && this.left.max) {
const comparable_max = this.item.key.constructor.comparable_max; // static method
this.max = comparable_max(this.max, this.left.max);
}
}
// Other_node does not intersect any node of left subtree, if this.left.max < other_node.item.key.low
not_intersect_left_subtree(search_node) {
const comparable_less_than = this.item.key.constructor.comparable_less_than; // static method
let high = this.left.max.high !== undefined ? this.left.max.high : this.left.max;
return comparable_less_than(high, search_node.item.key.low);
}
// Other_node does not intersect right subtree if other_node.item.key.high < this.right.key.low
not_intersect_right_subtree(search_node) {
const comparable_less_than = this.item.key.constructor.comparable_less_than; // static method
let low = this.right.max.low !== undefined ? this.right.max.low : this.right.item.key.low;
return comparable_less_than(search_node.item.key.high, low);
}
}
/**
* Created by Alex Bol on 3/31/2017.
*/
// const nil_node = new Node();
/**
* Implementation of interval binary search tree <br/>
* Interval tree stores items which are couples of {key:interval, value: value} <br/>
* Interval is an object with high and low properties or simply pair [low,high] of numeric values <br />
* @type {IntervalTree}
*/
class IntervalTree {
/**
* Construct new empty instance of IntervalTree
*/
constructor() {
this.root = null;
this.nil_node = new Node();
}
/**
* Returns number of items stored in the interval tree
* @returns {number}
*/
get size() {
let count = 0;
this.tree_walk(this.root, () => count++);
return count;
}
/**
* Returns array of sorted keys in the ascending order
* @returns {Array}
*/
get keys() {
let res = [];
this.tree_walk(this.root, (node) => res.push(
node.item.key.output ? node.item.key.output() : node.item.key
));
return res;
}
/**
* Return array of values in the ascending keys order
* @returns {Array}
*/
get values() {
let res = [];
this.tree_walk(this.root, (node) => res.push(node.item.value));
return res;
}
/**
* Returns array of items (<key,value> pairs) in the ascended keys order
* @returns {Array}
*/
get items() {
let res = [];
this.tree_walk(this.root, (node) => res.push({
key: node.item.key.output ? node.item.key.output() : node.item.key,
value: node.item.value
}));
return res;
}
/**
* Returns true if tree is empty
* @returns {boolean}
*/
isEmpty() {
return (this.root == null || this.root == this.nil_node);
}
/**
* Insert new item into interval tree
* @param {Interval} key - interval object or array of two numbers [low, high]
* @param {any} value - value representing any object (optional)
* @returns {Node} returns reference to inserted node as an object {key:interval, value: value}
*/
insert(key, value = key) {
if (key === undefined) return;
let insert_node = new Node(key, value, this.nil_node, this.nil_node, null, RB_TREE_COLOR_RED);
this.tree_insert(insert_node);
this.recalc_max(insert_node);
return insert_node;
}
/**
* Returns true if item {key,value} exist in the tree
* @param {Interval} key - interval correspondent to keys stored in the tree
* @param {any} value - value object to be checked
* @returns {boolean} true if item {key, value} exist in the tree, false otherwise
*/
exist(key, value = key) {
let search_node = new Node(key, value);
return this.tree_search(this.root, search_node) ? true : false;
}
/**
* Remove entry {key, value} from the tree
* @param {Interval} key - interval correspondent to keys stored in the tree
* @param {any} value - value object
* @returns {boolean} true if item {key, value} deleted, false if not found
*/
remove(key, value = key) {
let search_node = new Node(key, value);
let delete_node = this.tree_search(this.root, search_node);
if (delete_node) {
this.tree_delete(delete_node);
}
return delete_node;
}
/**
* Returns array of entry values which keys intersect with given interval <br/>
* If no values stored in the tree, returns array of keys which intersect given interval
* @param {Interval} interval - search interval, or tuple [low, high]
* @param outputMapperFn(value,key) - optional function that maps (value, key) to custom output
* @returns {Array}
*/
search(interval, outputMapperFn = (value, key) => value === key ? key.output() : value) {
let search_node = new Node(interval);
let resp_nodes = [];
this.tree_search_interval(this.root, search_node, resp_nodes);
return resp_nodes.map(node => outputMapperFn(node.item.value, node.item.key))
}
/**
* Returns true if intersection between given and any interval stored in the tree found
* @param {Interval} interval - search interval or tuple [low, high]
* @returns {boolean}
*/
intersect_any(interval) {
let search_node = new Node(interval);
let found = this.tree_find_any_interval(this.root, search_node);
return found;
}
/**
* Tree visitor. For each node implement a callback function. <br/>
* Method calls a callback function with two parameters (key, value)
* @param visitor(key,value) - function to be called for each tree item
*/
forEach(visitor) {
this.tree_walk(this.root, (node) => visitor(node.item.key, node.item.value));
}
/** Value Mapper. Walk through every node and map node value to another value
* @param callback(value,key) - function to be called for each tree item
*/
map(callback) {
const tree = new IntervalTree();
this.tree_walk(this.root, (node) => tree.insert(node.item.key, callback(node.item.value, node.item.key)));
return tree;
}
recalc_max(node) {
let node_current = node;
while (node_current.parent != null) {
node_current.parent.update_max();
node_current = node_current.parent;
}
}
tree_insert(insert_node) {
let current_node = this.root;
let parent_node = null;
if (this.root == null || this.root == this.nil_node) {
this.root = insert_node;
}
else {
while (current_node != this.nil_node) {
parent_node = current_node;
if (insert_node.less_than(current_node)) {
current_node = current_node.left;
}
else {
current_node = current_node.right;
}
}
insert_node.parent = parent_node;
if (insert_node.less_than(parent_node)) {
parent_node.left = insert_node;
}
else {
parent_node.right = insert_node;
}
}
this.insert_fixup(insert_node);
}
// After insertion insert_node may have red-colored parent, and this is a single possible violation
// Go upwords to the root and re-color until violation will be resolved
insert_fixup(insert_node) {
let current_node;
let uncle_node;
current_node = insert_node;
while (current_node != this.root && current_node.parent.color == RB_TREE_COLOR_RED) {
if (current_node.parent == current_node.parent.parent.left) { // parent is left child of grandfather
uncle_node = current_node.parent.parent.right; // right brother of parent
if (uncle_node.color == RB_TREE_COLOR_RED) { // Case 1. Uncle is red
// re-color father and uncle into black
current_node.parent.color = RB_TREE_COLOR_BLACK;
uncle_node.color = RB_TREE_COLOR_BLACK;
current_node.parent.parent.color = RB_TREE_COLOR_RED;
current_node = current_node.parent.parent;
}
else { // Case 2 & 3. Uncle is black
if (current_node == current_node.parent.right) { // Case 2. Current if right child
// This case is transformed into Case 3.
current_node = current_node.parent;
this.rotate_left(current_node);
}
current_node.parent.color = RB_TREE_COLOR_BLACK; // Case 3. Current is left child.
// Re-color father and grandfather, rotate grandfather right
current_node.parent.parent.color = RB_TREE_COLOR_RED;
this.rotate_right(current_node.parent.parent);
}
}
else { // parent is right child of grandfather
uncle_node = current_node.parent.parent.left; // left brother of parent
if (uncle_node.color == RB_TREE_COLOR_RED) { // Case 4. Uncle is red
// re-color father and uncle into black
current_node.parent.color = RB_TREE_COLOR_BLACK;
uncle_node.color = RB_TREE_COLOR_BLACK;
current_node.parent.parent.color = RB_TREE_COLOR_RED;
current_node = current_node.parent.parent;
}
else {
if (current_node == current_node.parent.left) { // Case 5. Current is left child
// Transform into case 6
current_node = current_node.parent;
this.rotate_right(current_node);
}
current_node.parent.color = RB_TREE_COLOR_BLACK; // Case 6. Current is right child.
// Re-color father and grandfather, rotate grandfather left
current_node.parent.parent.color = RB_TREE_COLOR_RED;
this.rotate_left(current_node.parent.parent);
}
}
}
this.root.color = RB_TREE_COLOR_BLACK;
}
tree_delete(delete_node) {
let cut_node; // node to be cut - either delete_node or successor_node ("y" from 14.4)
let fix_node; // node to fix rb tree property ("x" from 14.4)
if (delete_node.left == this.nil_node || delete_node.right == this.nil_node) { // delete_node has less then 2 children
cut_node = delete_node;
}
else { // delete_node has 2 children
cut_node = this.tree_successor(delete_node);
}
// fix_node if single child of cut_node
if (cut_node.left != this.nil_node) {
fix_node = cut_node.left;
}
else {
fix_node = cut_node.right;
}
// remove cut_node from parent
/*if (fix_node != this.nil_node) {*/
fix_node.parent = cut_node.parent;
/*}*/
if (cut_node == this.root) {
this.root = fix_node;
}
else {
if (cut_node == cut_node.parent.left) {
cut_node.parent.left = fix_node;
}
else {
cut_node.parent.right = fix_node;
}
cut_node.parent.update_max(); // update max property of the parent
}
this.recalc_max(fix_node); // update max property upward from fix_node to root
// COPY DATA !!!
// Delete_node becomes cut_node, it means that we cannot hold reference
// to node in outer structure and we will have to delete by key, additional search need
if (cut_node != delete_node) {
delete_node.copy_data(cut_node);
delete_node.update_max(); // update max property of the cut node at the new place
this.recalc_max(delete_node); // update max property upward from delete_node to root
}
if (/*fix_node != this.nil_node && */cut_node.color == RB_TREE_COLOR_BLACK) {
this.delete_fixup(fix_node);
}
}
delete_fixup(fix_node) {
let current_node = fix_node;
let brother_node;
while (current_node != this.root && current_node.parent != null && current_node.color == RB_TREE_COLOR_BLACK) {
if (current_node == current_node.parent.left) { // fix node is left child
brother_node = current_node.parent.right;
if (brother_node.color == RB_TREE_COLOR_RED) { // Case 1. Brother is red
brother_node.color = RB_TREE_COLOR_BLACK; // re-color brother
current_node.parent.color = RB_TREE_COLOR_RED; // re-color father
this.rotate_left(current_node.parent);
brother_node = current_node.parent.right; // update brother
}
// Derive to cases 2..4: brother is black
if (brother_node.left.color == RB_TREE_COLOR_BLACK &&
brother_node.right.color == RB_TREE_COLOR_BLACK) { // case 2: both nephews black
brother_node.color = RB_TREE_COLOR_RED; // re-color brother
current_node = current_node.parent; // continue iteration
}
else {
if (brother_node.right.color == RB_TREE_COLOR_BLACK) { // case 3: left nephew red, right nephew black
brother_node.color = RB_TREE_COLOR_RED; // re-color brother
brother_node.left.color = RB_TREE_COLOR_BLACK; // re-color nephew
this.rotate_right(brother_node);
brother_node = current_node.parent.right; // update brother
// Derive to case 4: left nephew black, right nephew red
}
// case 4: left nephew black, right nephew red
brother_node.color = current_node.parent.color;
current_node.parent.color = RB_TREE_COLOR_BLACK;
brother_node.right.color = RB_TREE_COLOR_BLACK;
this.rotate_left(current_node.parent);
current_node = this.root; // exit from loop
}
}
else { // fix node is right child
brother_node = current_node.parent.left;
if (brother_node.color == RB_TREE_COLOR_RED) { // Case 1. Brother is red
brother_node.color = RB_TREE_COLOR_BLACK; // re-color brother
current_node.parent.color = RB_TREE_COLOR_RED; // re-color father
this.rotate_right(current_node.parent);
brother_node = current_node.parent.left; // update brother
}
// Go to cases 2..4
if (brother_node.left.color == RB_TREE_COLOR_BLACK &&
brother_node.right.color == RB_TREE_COLOR_BLACK) { // case 2
brother_node.color = RB_TREE_COLOR_RED; // re-color brother
current_node = current_node.parent; // continue iteration
}
else {
if (brother_node.left.color == RB_TREE_COLOR_BLACK) { // case 3: right nephew red, left nephew black
brother_node.color = RB_TREE_COLOR_RED; // re-color brother
brother_node.right.color = RB_TREE_COLOR_BLACK; // re-color nephew
this.rotate_left(brother_node);
brother_node = current_node.parent.left; // update brother
// Derive to case 4: right nephew black, left nephew red
}
// case 4: right nephew black, left nephew red
brother_node.color = current_node.parent.color;
current_node.parent.color = RB_TREE_COLOR_BLACK;
brother_node.left.color = RB_TREE_COLOR_BLACK;
this.rotate_right(current_node.parent);
current_node = this.root; // force exit from loop
}
}
}
current_node.color = RB_TREE_COLOR_BLACK;
}
tree_search(node, search_node) {
if (node == null || node == this.nil_node)
return undefined;
if (search_node.equal_to(node)) {
return node;
}
if (search_node.less_than(node)) {
return this.tree_search(node.left, search_node);
}
else {
return this.tree_search(node.right, search_node);
}
}
// Original search_interval method; container res support push() insertion
// Search all intervals intersecting given one
tree_search_interval(node, search_node, res) {
if (node != null && node != this.nil_node) {
// if (node->left != this.nil_node && node->left->max >= low) {
if (node.left != this.nil_node && !node.not_intersect_left_subtree(search_node)) {
this.tree_search_interval(node.left, search_node, res);
}
// if (low <= node->high && node->low <= high) {
if (node.intersect(search_node)) {
res.push(node);
}
// if (node->right != this.nil_node && node->low <= high) {
if (node.right != this.nil_node && !node.not_intersect_right_subtree(search_node)) {
this.tree_search_interval(node.right, search_node, res);
}
}
}
tree_find_any_interval(node, search_node) {
let found = false;
if (node != null && node != this.nil_node) {
// if (node->left != this.nil_node && node->left->max >= low) {
if (node.left != this.nil_node && !node.not_intersect_left_subtree(search_node)) {
found = this.tree_find_any_interval(node.left, search_node);
}
// if (low <= node->high && node->low <= high) {
if (!found) {
found = node.intersect(search_node);
}
// if (node->right != this.nil_node && node->low <= high) {
if (!found && node.right != this.nil_node && !node.not_intersect_right_subtree(search_node)) {
found = this.tree_find_any_interval(node.right, search_node);
}
}
return found;
}
local_minimum(node) {
let node_min = node;
while (node_min.left != null && node_min.left != this.nil_node) {
node_min = node_min.left;
}
return node_min;
}
// not in use
local_maximum(node) {
let node_max = node;
while (node_max.right != null && node_max.right != this.nil_node) {
node_max = node_max.right;
}
return node_max;
}
tree_successor(node) {
let node_successor;
let current_node;
let parent_node;
if (node.right != this.nil_node) {
node_successor = this.local_minimum(node.right);
}
else {
current_node = node;
parent_node = node.parent;
while (parent_node != null && parent_node.right == current_node) {
current_node = parent_node;
parent_node = parent_node.parent;
}
node_successor = parent_node;
}
return node_successor;
}
// | right-rotate(T,y) |
// y ---------------. x
// / \ / \
// x c left-rotate(T,x) a y
// / \ <--------------- / \
// a b b c
rotate_left(x) {
let y = x.right;
x.right = y.left; // b goes to x.right
if (y.left != this.nil_node) {
y.left.parent = x; // x becomes parent of b
}
y.parent = x.parent; // move parent
if (x == this.root) {
this.root = y; // y becomes root
}
else { // y becomes child of x.parent
if (x == x.parent.left) {
x.parent.left = y;
}
else {
x.parent.right = y;
}
}
y.left = x; // x becomes left child of y
x.parent = y; // and y becomes parent of x
if (x != null && x != this.nil_node) {
x.update_max();
}
y = x.parent;
if (y != null && y != this.nil_node) {
y.update_max();
}
}
rotate_right(y) {
let x = y.left;
y.left = x.right; // b goes to y.left
if (x.right != this.nil_node) {
x.right.parent = y; // y becomes parent of b
}
x.parent = y.parent; // move parent
if (y == this.root) { // x becomes root
this.root = x;
}
else { // y becomes child of x.parent
if (y == y.parent.left) {
y.parent.left = x;
}
else {
y.parent.right = x;
}
}
x.right = y; // y becomes right child of x
y.parent = x; // and x becomes parent of y
if (y != null && y != this.nil_node) {
y.update_max();
}
x = y.parent;
if (x != null && x != this.nil_node) {
x.update_max();
}
}
tree_walk(node, action) {
if (node != null && node != this.nil_node) {
this.tree_walk(node.left, action);
// arr.push(node.toArray());
action(node);
this.tree_walk(node.right, action);
}
}
/* Return true if all red nodes have exactly two black child nodes */
testRedBlackProperty() {
let res = true;
this.tree_walk(this.root, function (node) {
if (node.color == RB_TREE_COLOR_RED) {
if (!(node.left.color == RB_TREE_COLOR_BLACK && node.right.color == RB_TREE_COLOR_BLACK)) {
res = false;
}
}
});
return res;
}
/* Throw error if not every path from root to bottom has same black height */
testBlackHeightProperty(node) {
let height = 0;
let heightLeft = 0;
let heightRight = 0;
if (node.color == RB_TREE_COLOR_BLACK) {
height++;
}
if (node.left != this.nil_node) {
heightLeft = this.testBlackHeightProperty(node.left);
}
else {
heightLeft = 1;
}
if (node.right != this.nil_node) {
heightRight = this.testBlackHeightProperty(node.right);
}
else {
heightRight = 1;
}
if (heightLeft != heightRight) {
throw new Error('Red-black height property violated');
}
height += heightLeft;
return height;
};
}
/* harmony default export */ var main_esm = (IntervalTree);
// CONCATENATED MODULE: ./src/domain/models/Line/LevelManager.ts
var LevelManager_LevelManager = /*#__PURE__*/function () {
function LevelManager() {
_classCallCheck(this, LevelManager);
this.intervalPerLevel = [];
this.id2level = new Map(); // <id, level>
}
_createClass(LevelManager, [{
key: "update",
value: function update(item, ranges) {
var _this = this;
var _iterator = _createForOfIteratorHelper(this.intervalPerLevel.entries()),
_step;
try {
var _loop = function _loop() {
var _step$value = _slicedToArray(_step.value, 2),
level = _step$value[0],
tree = _step$value[1];
if (ranges.every(function (range) {
return !_this.intersectAny(tree, range);
})) {
ranges.forEach(function (range) {
tree.insert(range);
});
_this.id2level.set(item.id, level);
return {
v: void 0
};
}
};
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var _ret = _loop();
if (_typeof(_ret) === "object") return _ret.v;
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
this.id2level.set(item.id, this.intervalPerLevel.length);
var tree = new main_esm();
ranges.forEach(function (range) {
tree.insert(range);
});
this.intervalPerLevel.push(tree);
}
}, {
key: "intersectAny",
value: function intersectAny(tree, range) {
var res = tree.search(range);
return res.filter(function (r) {
return !(r[0] === range[1] || r[1] === range[0]);
}).length > 0;
}
}, {
key: "fetchLevel",
value: function fetchLevel(item) {
return this.id2level.get(item.id);
}
}, {
key: "clear",
value: function clear() {
this.intervalPerLevel = [];
this.id2level.clear();
}
}]);
return LevelManager;
}();
// CONCATENATED MODULE: ./src/domain/models/Line/LineEntity.ts
var LineEntity_GeometricEntity = /*#__PURE__*/function () {
function GeometricEntity(entity, ranges, level) {
_classCallCheck(this, GeometricEntity);
this.entity = entity;
this.ranges = ranges;
this.level = level;
}
_createClass(GeometricEntity, [{
key: "center",
get: function get() {
return this.ranges.center;
}
}]);
return GeometricEntity;
}();
var LineEntity_Range = /*#__PURE__*/function () {
function Range(x1, x2) {
_classCallCheck(this, Range);
this.x1 = x1;
this.x2 = x2;
if (x1 > x2) {
throw new RangeError("The argument must be x1 <= x2.");
}
}
_createClass(Range, [{
key: "center",
get: function get() {
return this.x1 + (this.x2 - this.x1) / 2;
}
}, {
key: "getInterval",
value: function getInterval() {
var rtl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var labelWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (rtl) {
return [Math.min(this.x1, this.x2 - labelWidth), this.x2];
} else {
return [this.x1, Math.max(this.x2, this.x1 + labelWidth)];
}
}
}]);
return Range;
}();
var LineEntity_Ranges = /*#__PURE__*/function () {
function Ranges() {
var rtl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
_classCallCheck(this, Ranges);
this.rtl = rtl;
this._items = [];
}
_createClass(Ranges, [{
key: "items",
get: function get() {
return this._items;
}
}, {
key: "add",
value: function add(x1, x2) {
var range = new LineEntity_Range(x1, x2);
if (this.rtl) {
this._items.unshift(range);
} else {
this._items.push(range);
}
}
}, {
key: "first",
get: function get() {
return this.items[0];
}
}, {
key: "center",
get: function get() {
return this.first.center;
}
}, {
key: "getIntervals",
value: function getIntervals(startsWith, labelWidth) {
var _this = this;
return this.items.map(function (range, index) {
return index === 0 && startsWith ? range.getInterval(_this.rtl, labelWidth) : range.getInterval();
});
}
}]);
return Ranges;
}();
var LineEntity_EntityLine = /*#__PURE__*/function () {
function EntityLine(textLine) {
var rtl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
_classCallCheck(this, EntityLine);
this.textLine = textLine;
this.rtl = rtl;
this.levelManager = new LevelManager_LevelManager();
}
_createClass(EntityLine, [{
key: "render",
value: function render(element, entities, entityLabels) {
if (element.getNumberOfChars() === 0) {
return [];
}
var geometricEntities = [];
this.levelManager.clear();
var _iterator = _createForOfIteratorHelper(entities),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var entity = _step.value;
var ranges = this.createRanges(element, entity);
var startsWith = entity.startsAfter(this.textLine.startOffset);
var labelWidth = entityLabels.getWidth(entity.label);
var intervals = ranges.getIntervals(startsWith, labelWidth);
this.levelManager.update(entity, intervals);
var level = this.levelManager.fetchLevel(entity);
geometricEntities.push(new LineEntity_GeometricEntity(entity, ranges, level));
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
return geometricEntities;
}
}, {
key: "createRanges",
value: function createRanges(element, entity) {
var ranges = new LineEntity_Ranges(this.rtl);
var node = element.firstChild;
var s = Math.max(entity.startOffset, this.textLine.startOffset) - this.textLine.startOffset;
var e = Math.min(entity.endOffset, this.textLine.endOffset) - this.textLine.startOffset;
if (node.textContent && node.textContent.length < e) {
ranges.add(0, 0);
return ranges;
}
var range = document.createRange();
range.setStart(node, s);
range.setEnd(node, e);
var rects = range.getClientRects();
var _iterator2 = _createForOfIteratorHelper(rects),
_step2;
try {
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
var rect = _step2.value;
ranges.add(rect.left, rect.right);
}
} catch (err) {
_iterator2.e(err);
} finally {
_iterator2.f();
}
return ranges;
}
}]);
return EntityLine;
}();
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.sort.js
var es_array_sort = __webpack_require__("4e82");
// CONCATENATED MODULE: ./src/domain/models/Line/LineRelation.ts
var LineRelation_RelationLine = /*#__PURE__*/function () {
function RelationLine(relations, relationLabels, textLine, left, right) {
_classCallCheck(this, RelationLine);
this.relations = relations;
this.relationLabels = relationLabels;
this.textLine = textLine;
this.left = left;
this.right = right;
this.levelManager = new LevelManager_LevelManager();
}
_createClass(RelationLine, [{
key: "render",
value: function render(entities, rtl) {
var lineRelations = [];
this.levelManager.clear();
var entityMap = new Map();
entities.forEach(function (entity) {
entityMap.set(entity.entity.id, entity);
});
this.relations.sort(function (r1, r2) {
return r1.width - r2.width;
});
var _iterator = _createForOfIteratorHelper(this.relations),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var relation = _step.value;
if (!relation.isVisible(this.textLine.startOffset)) {
continue;
}
var x1 = this.left;
var x2 = this.right;
var marker = "";
var fromEntity = entityMap.get(relation.fromEntity.id);
var toEntity = entityMap.get(relation.toEntity.id);
var label = this.relationLabels.getById(relation.labelId);
var openStart = relation.isOpenOnLeft(this.textLine.startOffset);
var openEnd = relation.isOpenOnRight(this.textLine.endOffset);
if (openStart && openEnd) {
x1 = this.left;
x2 = this.right;
} else if (openStart) {
if (rtl) {
if (fromEntity) {
x1 = fromEntity.center;
} else if (toEntity) {
x1 = toEntity.center;
}
} else {
if (fromEntity) {
x2 = fromEntity.center;
} else if (toEntity) {
x2 = toEntity.center;
}
}
} else if (openEnd) {
if (rtl) {
if (fromEntity) {
x2 = fromEntity.center;
} else if (toEntity) {
x2 = toEntity.center;
}
} else {
if (fromEntity) {
x1 = fromEntity.center;
} else if (toEntity) {
x1 = toEntity.center;
}
}
} else {
if (toEntity && fromEntity) {
x1 = Math.min(toEntity.center, fromEntity.center);
x2 = Math.max(toEntity.center, fromEntity.center);
}
}
if (toEntity && x1 === toEntity.center) {
marker = "start";
} else if (toEntity && x2 === toEntity.center) {
marker = "end";
}
if (x1 > x2) {
var _ref = [x2, x1];
x1 = _ref[0];
x2 = _ref[1];
}
if (rtl) {
var _ref2 = [openEnd, openStart];
openStart = _ref2[0];
openEnd = _ref2[1];
}
if (x2 - x1 < label.truncatedWidth) {
var center = x1 + (x2 - x1) / 2;
var half = label.truncatedWidth / 2;
this.levelManager.update(relation, [[center - half, center + half]]);
} else {
this.levelManager.update(relation, [[x1, x2]]);
}
var level = this.levelManager.fetchLevel(relation);
lineRelations.push({
x1: x1,
x2: x2,
level: level,
label: label.truncatedText,
labelWidth: label.truncatedWidth,
relation: relation,
marker: marker,
openLeft: openStart,
openRight: openEnd
});
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
return lineRelations;
}
}]);
return RelationLine;
}();
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/VLine.vue?vue&type=script&lang=ts&
/* harmony default export */ var VLinevue_type_script_lang_ts_ = (external_commonjs_vue_commonjs2_vue_root_Vue_default.a.extend({
components: {
BaseEntity: BaseEntity,
BaseText: BaseText,
BaseRelation: BaseRelation
},
props: {
annotatorUuid: {
type: String,
required: true
},
entities: {
type: [],
default: function _default() {
return [];
},
required: true
},
relations: {
type: [],
default: function _default() {
return [];
}
},
textLine: {
type: Object,
required: true
},
dark: {
type: Boolean,
default: false
},
font: {
type: Object,
required: true
},
text: {
type: String,
required: true
},
entityLabels: {
type: Object,
required: true
},
relationLabels: {
type: Object
},
rtl: {
type: Boolean,
default: false
},
baseX: {
type: Number,
default: 0
},
left: {
type: Number,
default: 0
},
right: {
type: Number,
default: 0
},
selectedEntities: {
type: Array
},
selectedRelation: {
type: Object
}
},
data: function data() {
return {
element: null
};
},
mounted: function mounted() {
this.setElement();
},
watch: {
textLine: {
handler: function handler() {
this.setElement();
},
deep: true
},
entities: {
handler: function handler() {
var _this = this;
this.$nextTick(function () {
var svg = document.getElementById(_this.svgId);
var height = svg.getBBox().height + 30;
svg.setAttribute("style", "height: ".concat(height, "px"));
_this.$emit("update:height", _this.id, height);
});
},
deep: true,
immediate: true
}
},
computed: {
translate: function translate() {
return "translate(0, ".concat(this.font.lineHeight, ")");
},
geometricEntities: function geometricEntities() {
if (this.element) {
var view = new LineEntity_EntityLine(this.textLine, this.rtl);
return view.render(this.element, this.entities, this.entityLabels);
} else {
return [];
}
},
lineRelations: function lineRelations() {
var view = new LineRelation_RelationLine(this.relations, this.relationLabels, this.textLine, this.left, this.right);
return view.render(this.geometricEntities, this.rtl);
},
maxRelationLevel: function maxRelationLevel() {
return Math.max.apply(Math, _toConsumableArray(this.lineRelations.map(function (r) {
return r.level;
})).concat([0]));
},
y: function y() {
var level = Math.max.apply(Math, _toConsumableArray(this.lineRelations.map(function (item) {
return item.level;
})));
if (level < 0) {
return 0;
} else {
return 20 + this.font.fontSize * (level + 1.5);
}
},
translateEntity: function translateEntity() {
return "translate(0, ".concat(this.y, ")");
},
direction: function direction() {
return this.rtl ? "rtl" : "ltr";
},
id: function id() {
return "".concat(this.textLine.startOffset, ":").concat(this.textLine.endOffset);
},
basetextId: function basetextId() {
return "basetext-".concat(this.annotatorUuid, "-").concat(this.id);
},
svgId: function svgId() {
return "svg-".concat(this.annotatorUuid, "-").concat(this.id);
}
},
methods: {
noText: function noText(entity) {
// Do not show a label text if the entity continues from the previous line.
return entity.startOffset < this.textLine.startOffset;
},
setElement: function setElement() {
var _this2 = this;
this.$nextTick(function () {
_this2.element = document.getElementById(_this2.basetextId);
});
},
color: function color(entity) {
return this.entityLabels.getColor(entity.label);
},
labelText: function labelText(entity) {
return this.entityLabels.getText(entity.label);
},
isSelectedRelation: function isSelectedRelation(relation) {
return this.selectedRelation === relation;
},
isSelectedEntity: function isSelectedEntity(entity) {
if (this.selectedRelation) {
return this.selectedRelation.consistOf(entity);
} else {
return this.selectedEntities.filter(function (e) {
return e.id === entity.id;
}).length > 0;
}
}
}
}));
// CONCATENATED MODULE: ./src/components/VLine.vue?vue&type=script&lang=ts&
/* harmony default export */ var components_VLinevue_type_script_lang_ts_ = (VLinevue_type_script_lang_ts_);
// EXTERNAL MODULE: ./src/components/VLine.vue?vue&type=style&index=0&id=040f6976&scoped=true&lang=css&
var VLinevue_type_style_index_0_id_040f6976_scoped_true_lang_css_ = __webpack_require__("a053");
// CONCATENATED MODULE: ./src/components/VLine.vue
/* normalize component */
var VLine_component = normalizeComponent(
components_VLinevue_type_script_lang_ts_,
VLinevue_type_template_id_040f6976_scoped_true_render,
VLinevue_type_template_id_040f6976_scoped_true_staticRenderFns,
false,
null,
"040f6976",
null
)
/* harmony default export */ var VLine = (VLine_component.exports);
// EXTERNAL MODULE: ./node_modules/vue-virtual-scroller/dist/vue-virtual-scroller.css
var vue_virtual_scroller = __webpack_require__("a899");
// EXTERNAL MODULE: ./node_modules/vue-virtual-scroller/dist/vue-virtual-scroller.esm.js
var vue_virtual_scroller_esm = __webpack_require__("e508");
// EXTERNAL MODULE: ./node_modules/grapheme-splitter/index.js
var grapheme_splitter = __webpack_require__("c097");
var grapheme_splitter_default = /*#__PURE__*/__webpack_require__.n(grapheme_splitter);
// CONCATENATED MODULE: ./src/domain/models/Label/Text.ts
var Text_Text = /*#__PURE__*/function () {
function Text(text) {
_classCallCheck(this, Text);
this.text = text;
this.graphemes = [];
this.g2c = new Map();
this.c2g = new Map();
this.idx2len = new Map();
this.setGraphemeMapping();
this.setCodePointMapping();
this.setWordBoundary();
}
_createClass(Text, [{
key: "setCodePointMapping",
value: function setCodePointMapping() {
var _iterator = _createForOfIteratorHelper(this.g2c),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var _step$value = _slicedToArray(_step.value, 2),
graphemeOffset = _step$value[0],
codeOffset = _step$value[1];
this.c2g.set(codeOffset, graphemeOffset);
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
}
}, {
key: "setGraphemeMapping",
value: function setGraphemeMapping() {
var splitter = new grapheme_splitter_default.a();
this.graphemes = splitter.splitGraphemes(this.text);
var total = 0;
for (var i = 0; i < this.graphemeLength; i++) {
this.g2c.set(i, total);
total += this.graphemeAt(i).length;
}
this.g2c.set(this.graphemeLength, total);
}
}, {
key: "setWordBoundary",
value: function setWordBoundary() {
var index = 0;
var words = this.text.split(/\s/);
for (var i = 0; i < words.length; i++) {
if (words[i] === "") {
index++;
continue;
} else {
this.idx2len.set(index, words[i].length);
index += words[i].length + 1; // +1 is whitespace.
}
}
}
/**
* Returns the word of the specified index.
* If there is no word at the index, returns undefined.
* @param {number} index - An integer between 0 and this.codePointLength.
* @returns {(string | undefined)} - a word or undefined.
*/
}, {
key: "getWord",
value: function getWord(index) {
var len = this.idx2len.get(index);
return len ? this.text.substr(index, len) : undefined;
}
/**
* Converts the given codePointOffset to the graphemeOffset.
* If there is no corresponding offset, returns undefined.
* @param {number} codePointOffset - An integer between 0 and this.codePointLength.
* @returns {(number | undefined)} - A graphemeOffset or undefined.
*/
}, {
key: "toGraphemeOffset",
value: function toGraphemeOffset(codePointOffset) {
return this.c2g.get(codePointOffset);
}
/**
* Converts the given graphemeOffset to the codePointOffset.
* @param {number} graphemeOffset - An integer between 0 and this.graphemeLength.
* @returns {(number | undefined)} - A codePointOffset or undefined.
*/
}, {
key: "toCodePointOffset",
value: function toCodePointOffset(graphemeOffset) {
return this.g2c.get(graphemeOffset);
}
/**
* The index of the graphemes to be returned.
* If index is out of range, this returns empty string;
* @param {number} index - An integer between 0 and this.graphemeLength.
* @returns {string} - A grapheme.
*/
}, {
key: "graphemeAt",
value: function graphemeAt(index) {
if (0 <= index && index < this.graphemeLength) {
return this.graphemes[index];
} else {
return "";
}
}
/**
* Returns a new string consisting of the single UTF-16 code unit.
* If index is out of range, this returns empty string.
* @param {number} index - An integer between 0 and this.codePointLength.
* @returns {string} - A character.
*/
}, {
key: "charAt",
value: function charAt(index) {
return this.text.charAt(index);
}
/**
* Return text length by grapheme clusters.
* @returns {number} - text length.
*/
}, {
key: "graphemeLength",
get: function get() {
return this.graphemes.length;
}
/**
* Return text length by CodePoints.
* @returns {number} - text length.
*/
}, {
key: "codePointLength",
get: function get() {
return this.text.length;
}
/**
* Return substring of the text.
* @param {number} from - The Unicode CodePoint offset.
* @param {number} length - The length. The unit is per CodePoint.
* @returns {string} - text.
*/
}, {
key: "substr",
value: function substr(from, length) {
return this.text.substr(from, length);
}
}]);
return Text;
}();
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
function _setPrototypeOf(o, p) {
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}
});
if (superClass) _setPrototypeOf(subClass, superClass);
}
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.reflect.construct.js
var es_reflect_construct = __webpack_require__("4ae1");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-prototype-of.js
var es_object_get_prototype_of = __webpack_require__("3410");
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
function _getPrototypeOf(o) {
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
function _isNativeReflectConstruct() {
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
if (Reflect.construct.sham) return false;
if (typeof Proxy === "function") return true;
try {
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
return true;
} catch (e) {
return false;
}
}
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/typeof.js
var helpers_typeof = __webpack_require__("7037");
var typeof_default = /*#__PURE__*/__webpack_require__.n(helpers_typeof);
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
function _possibleConstructorReturn(self, call) {
if (call && (typeof_default()(call) === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized(self);
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createSuper.js
function _createSuper(Derived) {
var hasNativeReflectConstruct = _isNativeReflectConstruct();
return function _createSuperInternal() {
var Super = _getPrototypeOf(Derived),
result;
if (hasNativeReflectConstruct) {
var NewTarget = _getPrototypeOf(this).constructor;
result = Reflect.construct(Super, arguments, NewTarget);
} else {
result = Super.apply(this, arguments);
}
return _possibleConstructorReturn(this, result);
};
}
// CONCATENATED MODULE: ./src/domain/models/Label/Label.ts
var Label_LabelListItem = /*#__PURE__*/function () {
function LabelListItem(id, text, color, textWidth) {
var maxLength = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : Config.maxLabelLength;
_classCallCheck(this, LabelListItem);
this.id = id;
this.text = text;
this.color = color;
this.textWidth = textWidth;
this.maxLength = maxLength;
}
_createClass(LabelListItem, [{
key: "width",
get: function get() {
return this.textWidth;
}
}, {
key: "truncatedText",
get: function get() {
if (this.text.length <= this.maxLength) {
return this.text;
} else {
return "".concat(this.text.slice(0, this.maxLength), "...");
}
}
}, {
key: "truncatedWidth",
get: function get() {
var meanCharLength = this.textWidth / this.text.length;
return meanCharLength * Math.min(this.text.length, this.maxLength);
}
}]);
return LabelListItem;
}();
var Label_EntityLabelListItem = /*#__PURE__*/function (_LabelListItem) {
_inherits(EntityLabelListItem, _LabelListItem);
var _super = _createSuper(EntityLabelListItem);
function EntityLabelListItem() {
_classCallCheck(this, EntityLabelListItem);
return _super.apply(this, arguments);
}
_createClass(EntityLabelListItem, [{
key: "width",
get: function get() {
return Config.diameter + Config.labelMargin + this.textWidth;
}
}]);
return EntityLabelListItem;
}(Label_LabelListItem);
var Label_RelationLabelListItem = /*#__PURE__*/function (_LabelListItem2) {
_inherits(RelationLabelListItem, _LabelListItem2);
var _super2 = _createSuper(RelationLabelListItem);
function RelationLabelListItem() {
_classCallCheck(this, RelationLabelListItem);
return _super2.apply(this, arguments);
}
return RelationLabelListItem;
}(Label_LabelListItem);
var Label_LabelList = /*#__PURE__*/function () {
function LabelList(labels) {
_classCallCheck(this, LabelList);
this.labels = labels;
this.id2Label = {};
var _iterator = _createForOfIteratorHelper(labels),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var label = _step.value;
this.id2Label[label.id] = label;
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
}
_createClass(LabelList, [{
key: "getById",
value: function getById(id) {
return this.id2Label[id];
}
}, {
key: "getColor",
value: function getColor(id) {
var _this$getById;
return (_this$getById = this.getById(id)) === null || _this$getById === void 0 ? void 0 : _this$getById.color;
}
}, {
key: "getText",
value: function getText(id) {
var _this$getById2;
return (_this$getById2 = this.getById(id)) === null || _this$getById2 === void 0 ? void 0 : _this$getById2.truncatedText;
}
}, {
key: "getWidth",
value: function getWidth(id) {
var _this$getById3;
return (_this$getById3 = this.getById(id)) === null || _this$getById3 === void 0 ? void 0 : _this$getById3.truncatedWidth;
}
}, {
key: "maxLabelWidth",
get: function get() {
return Math.max.apply(Math, _toConsumableArray(this.labels.map(function (label) {
return label.truncatedWidth;
})).concat([0]));
}
}], [{
key: "valueOf",
value: function valueOf(maxLabelLength, labels, widths, itemClass) {
return new LabelList(labels.map(function (label, index) {
return new itemClass(label.id, label.text, label.color || label.backgroundColor, widths[index], maxLabelLength);
}));
}
}]);
return LabelList;
}();
// CONCATENATED MODULE: ./src/domain/models/Label/Entity.ts
var Entity_Entity = /*#__PURE__*/function () {
function Entity(id, label, startOffset, endOffset) {
_classCallCheck(this, Entity);
this.id = id;
this.label = label;
this.startOffset = startOffset;
this.endOffset = endOffset;
if (startOffset > endOffset) {
throw new RangeError("The startOffset(".concat(startOffset, ") must be smaller than endOffset(").concat(endOffset, ")."));
}
}
/**
* Return true if the entity and start/end offset has some overlapping.
* @param {number} startOffset - start offset of something(maybe entity or relation)
* @param {number} endOffset - end offset of something(maybe entity or relation)
* @returns {boolean} - true if there is an overlapping, otherwise false.
*/
_createClass(Entity, [{
key: "isIn",
value: function isIn(startOffset, endOffset) {
return startOffset <= this.startOffset && this.startOffset < endOffset || startOffset < this.endOffset && this.endOffset <= endOffset || this.startOffset < startOffset && endOffset < this.endOffset;
}
/**
* Return true if the provided entity equals to the entity.
* @param {Entity} other - the provided entity.
* @returns {boolean}
*/
}, {
key: "equalTo",
value: function equalTo(other) {
return this.id === other.id;
}
/**
* Return true if the entity is located after the given offset.
* @param {number} offset - The offset.
* @returns {boolean} - true if offset <= this.startOffset.
*/
}, {
key: "startsAfter",
value: function startsAfter(offset) {
return offset <= this.startOffset;
}
/**
* Return the center offset of the entity.
* This is used to calculate the width of the relation.
*/
}, {
key: "center",
get: function get() {
return this.startOffset + (this.endOffset - this.startOffset) / 2;
}
}]);
return Entity;
}();
var Entity_Entities = /*#__PURE__*/function () {
function Entities(entities) {
_classCallCheck(this, Entities);
this.tree = new main_esm();
this.id2entity = new Map();
var _iterator = _createForOfIteratorHelper(entities),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var entity = _step.value;
this.tree.insert([entity.startOffset, entity.endOffset], entity);
this.id2entity.set(entity.id, entity);
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
}
_createClass(Entities, [{
key: "size",
get:
/**
* Returns the number of entities.
* @returns {number} - The number of entities.
*/
function get() {
return this.tree.size;
}
/**
* Returns the entity that matches the provided id.
* If no match is found, undefined is returned.
* @param {number} id - the entity id.
* @returns {(Entity | undefined)} - Entity if match is found, otherwise undefined.
*/
}, {
key: "findById",
value: function findById(id) {
return this.id2entity.get(id);
}
/**
* Filter entities by the provided start/end offsets.
* @param {number} startOffset - the start offset.
* @param {number} endOffset - the end offset.
* @returns {RelationListItem[]} - An array with the filtered entities.
*/
}, {
key: "filterByRange",
value: function filterByRange(startOffset, endOffset) {
return this.tree.search([startOffset, endOffset]).filter(function (entity) {
return entity.isIn(startOffset, endOffset);
});
}
/**
* Returns true if intersection between given offsets and entities found.
* @param {number} startOffset - the start offset.
* @param {number} endOffset - the end offset.
* @returns {boolean} - true if intersection found, otherwise false.
*/
}, {
key: "intersectAny",
value: function intersectAny(startOffset, endOffset) {
return this.filterByRange(startOffset, endOffset).length > 0;
}
}], [{
key: "valueOf",
value: function valueOf(entities, text) {
return new Entities(entities.map(function (entity) {
return new Entity_Entity(entity.id, entity.label, text ? text.toCodePointOffset(entity.startOffset) : entity.startOffset, text ? text.toCodePointOffset(entity.endOffset) : entity.endOffset);
}));
}
}]);
return Entities;
}();
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.js
var es_set = __webpack_require__("6062");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.join.js
var es_array_join = __webpack_require__("a15b");
// CONCATENATED MODULE: ./src/domain/models/Line/Font.ts
var Font_Font = /*#__PURE__*/function () {
function Font(fontSize, fontFamily, fontWeight, lineHeight, width) {
_classCallCheck(this, Font);
this.fontSize = fontSize;
this.fontFamily = fontFamily;
this.fontWeight = fontWeight;
this.lineHeight = lineHeight;
this.width = width;
}
_createClass(Font, [{
key: "widthOf",
value: function widthOf(text) {
var _this = this;
var return_max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (return_max) {
return Math.max.apply(Math, _toConsumableArray(Array.from(text).map(function (ch) {
return _this.widthOfChar(ch);
})).concat([20])); // Todo: return fixed width
} else {
return Array.from(text).map(function (ch) {
return _this.widthOfChar(ch);
}).reduce(function (a, b) {
return a + b;
}, 0);
}
}
}, {
key: "widthOfChar",
value: function widthOfChar(ch) {
return this.width.get(ch) || 0;
}
}], [{
key: "create",
value: function create(text, textElement) {
// Calculate font width
var characterSet = new Set(text);
var width = new Map();
characterSet.delete("\n");
var characterArray = Array.from(characterSet);
characterArray.sort();
textElement.textContent = characterArray.join("");
for (var i = 0; i < textElement.getNumberOfChars(); i++) {
var ch = textElement.textContent.charAt(i);
width.set(ch, textElement.getExtentOfChar(i).width);
}
width.set("\n", 0); // Extract font information
var fontSize = parseFloat(window.getComputedStyle(textElement).fontSize);
var fontFamily = window.getComputedStyle(textElement).fontFamily;
var fontWeight = window.getComputedStyle(textElement).fontWeight;
var lineHeight = textElement.getBoundingClientRect().height;
textElement.textContent = "";
return new Font(fontSize, fontFamily, fontWeight, lineHeight, width);
}
}]);
return Font;
}();
// CONCATENATED MODULE: ./src/domain/models/Line/Utils.ts
function Utils_widthOf(text, textElement) {
var width = 0;
textElement.textContent = text;
for (var i = 0; i < text.length; i++) {
width += textElement.getExtentOfChar(i).width;
}
textElement.textContent = "";
return width;
}
// CONCATENATED MODULE: ./src/domain/models/Line/WidthManager.ts
var WidthManager_LineWidthManager = /*#__PURE__*/function () {
function LineWidthManager(maxLineWidth, maxLabelWidth) {
_classCallCheck(this, LineWidthManager);
this.maxLineWidth = maxLineWidth;
this.maxLabelWidth = maxLabelWidth;
this.totalWidth = 0;
}
_createClass(LineWidthManager, [{
key: "width",
get: function get() {
return this.totalWidth;
}
}, {
key: "maxWidth",
get: function get() {
return this.maxLineWidth - this.maxLabelWidth;
}
}, {
key: "add",
value: function add(width) {
this.totalWidth += width;
}
}, {
key: "reset",
value: function reset() {
this.totalWidth = 0;
}
}, {
key: "isFull",
value: function isFull() {
var wordOrLabelWidth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.maxWidth < this.totalWidth + wordOrLabelWidth;
}
}, {
key: "canAdd",
value: function canAdd(width) {
return this.totalWidth + width <= this.maxWidth;
}
}, {
key: "isEmpty",
value: function isEmpty() {
return this.totalWidth === 0;
}
}]);
return LineWidthManager;
}();
// CONCATENATED MODULE: ./src/domain/models/Line/LineText.ts
var LineText_TextLine = function TextLine(startOffset, endOffset) {
_classCallCheck(this, TextLine);
this.startOffset = startOffset;
this.endOffset = endOffset;
};
// CONCATENATED MODULE: ./src/domain/models/Line/LineSplitter.ts
function isLF(ch) {
return ch === "\n";
}
function isCR(ch) {
return ch === "\r";
}
function isCRLF(text) {
return text === "\r\n";
}
var LineSplitter_TextLineSplitter = /*#__PURE__*/function () {
function TextLineSplitter(widthManager, font) {
_classCallCheck(this, TextLineSplitter);
this.widthManager = widthManager;
this.font = font;
}
_createClass(TextLineSplitter, [{
key: "split",
value: function split(text) {
this.widthManager.reset();
var startOffset = 0;
var i = startOffset;
var lines = [];
for (var j = 0; j < text.graphemeLength; j++) {
var ch = text.graphemeAt(j);
if (this.needsNewline(i, text, ch)) {
lines.push(new LineText_TextLine(startOffset, i));
this.widthManager.reset();
if (isCRLF(text.substr(i, 2))) {
startOffset = i + 2;
} else if (isLF(ch) || isCR(ch)) {
startOffset = i + 1;
} else {
startOffset = i;
this.widthManager.add(this.font.widthOf(ch, ch.length > 1));
}
} else {
this.widthManager.add(this.font.widthOf(ch, ch.length > 1));
}
i += ch.length;
}
if (!this.widthManager.isEmpty()) {
lines.push(new LineText_TextLine(startOffset, text.codePointLength));
}
return lines;
}
}, {
key: "needsNewline",
value: function needsNewline(i, text, char) {
var ch = text.charAt(i);
if (isLF(ch) || isCR(ch)) {
return true;
}
if (!this.widthManager.canAdd(this.font.widthOf(char, char.length > 1))) {
return true;
} // check whether the word exceeds the maxWidth
var wordWidth = this.calculateWordLength(i, text);
var isShortWord = wordWidth <= this.widthManager.maxWidth;
if (isShortWord && this.widthManager.isFull(wordWidth)) {
return true;
}
return false;
}
}, {
key: "calculateWordLength",
value: function calculateWordLength(i, text) {
var word = text.getWord(i);
if (word) {
var total = 0;
for (var j = i; j < i + word.length; j++) {
var ch = text.graphemeAt(j);
total += ch ? this.font.widthOf(ch, ch.length > 1) : 0;
}
return total;
} else {
return 0;
}
}
}]);
return TextLineSplitter;
}();
// CONCATENATED MODULE: ./src/domain/models/EventHandler/TextSelectionHandler.ts
var TextSelectionHandler_TextSelector = /*#__PURE__*/function () {
function TextSelector(allowOverlapping, graphemeMode) {
_classCallCheck(this, TextSelector);
this.allowOverlapping = allowOverlapping;
this.graphemeMode = graphemeMode;
}
/**
* Returns the offsets of the selected text.
* @param {Entities} entities - To decide whether or not the offsets overlap the entities.
* @param {Text} text - To convert the code point offsets to the grapheme offsets.
* @returns {[number, number]} - The offsets of the selected text.
*/
_createClass(TextSelector, [{
key: "getOffsets",
value: function getOffsets(entities, text) {
var _this$getRange = this.getRange(),
_this$getRange2 = _slicedToArray(_this$getRange, 2),
startOffset = _this$getRange2[0],
endOffset = _this$getRange2[1];
if (this.validate(startOffset, endOffset, entities)) {
return this.convert(startOffset, endOffset, text);
} else {
throw RangeError("[".concat(startOffset, ", ").concat(endOffset, "] is invalid."));
}
}
}, {
key: "getRange",
value: function getRange() {
var selection = window.getSelection(); // get elements.
var startElement = selection.anchorNode.parentNode;
var endElement = selection.focusNode.parentNode; // Get TextLine objects.
// This depends on BaseText.vue component.
// See the component in detail.
var startLine = startElement.annotatorElement;
var endLine = endElement.annotatorElement; // get offsets.
var startOffset = startLine.startOffset + selection.anchorOffset;
var endOffset = endLine.startOffset + selection.focusOffset;
selection === null || selection === void 0 ? void 0 : selection.removeAllRanges();
if (startOffset > endOffset) {
return [endOffset, startOffset];
} else {
return [startOffset, endOffset];
}
}
}, {
key: "validate",
value: function validate(startOffset, endOffset, entities) {
if (startOffset >= endOffset) {
return false;
}
if (this.allowOverlapping) {
return true;
}
if (entities.intersectAny(startOffset, endOffset)) {
return false;
}
return true;
}
}, {
key: "convert",
value: function convert(startOffset, endOffset, text) {
if (this.graphemeMode) {
return [text.toGraphemeOffset(startOffset), text.toGraphemeOffset(endOffset)];
} else {
return [startOffset, endOffset];
}
}
}]);
return TextSelector;
}();
// CONCATENATED MODULE: ./src/domain/models/Label/Relation.ts
var Relation_RelationListItem = /*#__PURE__*/function () {
function RelationListItem(id, labelId, fromEntity, toEntity) {
_classCallCheck(this, RelationListItem);
this.id = id;
this.labelId = labelId;
this.fromEntity = fromEntity;
this.toEntity = toEntity;
}
/**
* Return true if the relation and start/end offset has some overlapping.
* @param {number} startOffset - start offset of something(maybe entity or relation)
* @param {number} endOffset - end offset of something(maybe entity or relation)
* @returns {boolean} - true if there is an overlapping, otherwise false.
*/
_createClass(RelationListItem, [{
key: "isIn",
value: function isIn(startOffset, endOffset) {
return startOffset <= this.startOffset && this.startOffset < endOffset || startOffset < this.endOffset && this.endOffset <= endOffset || this.startOffset < startOffset && endOffset < this.endOffset;
}
/**
* Return true if entity is a part of the relation.
* @param {Entity} entity - an entity.
* @returns {boolean} - true if the entity is a part of the relation, otherwise false.
*/
}, {
key: "consistOf",
value: function consistOf(entity) {
return this.fromEntity.equalTo(entity) || this.toEntity.equalTo(entity);
}
/**
* Return true if the left side is open, otherwise return false.
* If the start offset of the relation is smaller than that of text line,
* this should return true because I assume that
* the vertical line of the relation starts with the first line of the entity.
* This may be in trouble when the first line is smaller than the second line.
* @param {number} startOffset - start offset of a text line.
* @returns {boolean} - the result.
*/
}, {
key: "isOpenOnLeft",
value: function isOpenOnLeft(startOffset) {
return this.startOffset < startOffset;
}
/**
* Return true if the right side is open, otherwise return false.
* If the start offset of the entity1 which appears after the another entity
* is larger than the end offset of text line,
* this should return true because I assume that the vertical line of the
* relation starts with the entity1.
* @param {number} endOffset - end offset of a text line.
* @returns {boolean} - the result.
*/
}, {
key: "isOpenOnRight",
value: function isOpenOnRight(endOffset) {
var offset = Math.max(this.fromEntity.startOffset, this.toEntity.startOffset);
return offset >= endOffset;
}
/**
* Return true if the relation is visible, otherwise return false.
* If the start offset of either entity is after the start offset of
* the TextLine, it should be visible.
* @param {number} startOffset - start offset of a text line.
* @returns {boolean} - the result.
*/
}, {
key: "isVisible",
value: function isVisible(startOffset) {
var offset = Math.max(this.fromEntity.startOffset, this.toEntity.startOffset);
return startOffset <= offset;
}
/**
* Return width between centers of each entity.
* @returns {number} - the width between each entity.
*/
}, {
key: "width",
get: function get() {
return Math.abs(this.fromEntity.center - this.toEntity.center);
}
/**
* Return start offset of the relation.
* The value is a smaller value of the two entities.
* @returns {number} - the start offset.
*/
}, {
key: "startOffset",
get: function get() {
return Math.min(this.fromEntity.startOffset, this.toEntity.startOffset);
}
/**
* Return end offset of the relation.
* The value is a bigger value of the two entities.
* @returns {number} - the end offset.
*/
}, {
key: "endOffset",
get: function get() {
return Math.max(this.fromEntity.endOffset, this.toEntity.endOffset);
}
}]);
return RelationListItem;
}();
var Relation_RelationList = /*#__PURE__*/function () {
function RelationList(relations, entities) {
_classCallCheck(this, RelationList);
this.tree = new main_esm();
var _iterator = _createForOfIteratorHelper(relations),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var relation = _step.value;
var fromEntity = entities.findById(relation.fromId);
var toEntity = entities.findById(relation.toId);
var item = new Relation_RelationListItem(relation.id, relation.labelId, fromEntity, toEntity);
this.tree.insert([item.startOffset, item.endOffset], item);
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
}
/**
* Filter relations by the provided start/end offsets.
* @param {number} startOffset - the start offset.
* @param {number} endOffset - the end offset.
* @returns {RelationListItem[]} - An array with the filtered relations.
*/
_createClass(RelationList, [{
key: "filterByRange",
value: function filterByRange(startOffset, endOffset) {
return this.tree.search([startOffset, endOffset]).filter(function (rel) {
return rel.isIn(startOffset, endOffset);
});
}
}]);
return RelationList;
}();
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/VAnnotator.vue?vue&type=script&lang=ts&
/* harmony default export */ var VAnnotatorvue_type_script_lang_ts_ = (external_commonjs_vue_commonjs2_vue_root_Vue_default.a.extend({
components: {
RecycleScroller: vue_virtual_scroller_esm["a" /* RecycleScroller */],
VLine: VLine
},
props: {
maxLabelLength: {
type: Number,
default: 12,
required: false
},
text: {
type: String,
default: "",
required: true
},
entities: {
type: Array,
default: function _default() {
return [];
},
required: true
},
entityLabels: {
type: Array,
default: function _default() {
return [];
},
required: true
},
relations: {
type: Array,
default: function _default() {
return [];
}
},
relationLabels: {
type: Array,
default: function _default() {
return [];
}
},
allowOverlapping: {
type: Boolean,
default: false,
required: false
},
rtl: {
type: Boolean,
default: false
},
graphemeMode: {
type: Boolean,
default: true
},
dark: {
type: Boolean,
default: false
},
selectedEntities: {
type: Array,
default: function _default() {
return [];
},
required: false
}
},
data: function data() {
return {
uuid: esm_browser_v4(),
font: null,
heights: {},
maxWidth: -1,
baseX: 0,
left: 0,
right: 0,
textElement: null,
selectedRelation: null,
selectedEntity: null
};
},
mounted: function mounted() {
this.textElement = document.getElementById("text-".concat(this.uuid));
window.addEventListener("resize", this.setMaxWidth);
this.setMaxWidth();
},
watch: {
text: {
handler: function handler() {
var _this = this;
this.heights = {};
this.$nextTick(function () {
_this.font = Font_Font.create(_this.text, _this.textElement);
});
},
immediate: true
},
rtl: function rtl() {
this.setMaxWidth();
}
},
computed: {
_text: function _text() {
return new Text_Text(this.text);
},
entityLabelList: function entityLabelList() {
var _this2 = this;
if (this.textElement) {
var widths = this.entityLabels.map(function (label) {
return Utils_widthOf(label.text, _this2.textElement);
});
return Label_LabelList.valueOf(this.maxLabelLength, this.entityLabels, widths, Label_EntityLabelListItem);
} else {
return null;
}
},
relationLabelList: function relationLabelList() {
var _this3 = this;
if (this.textElement) {
var widths = this.relationLabels.map(function (label) {
return Utils_widthOf(label.text, _this3.textElement);
});
return Label_LabelList.valueOf(this.maxLabelLength, this.relationLabels, widths, Label_RelationLabelListItem);
} else {
return null;
}
},
items: function items() {
if (!this.textLines) {
return [];
}
var viewLines = [];
for (var i = 0; i < this.textLines.length; i++) {
var id = "".concat(this.textLines[i].startOffset, ":").concat(this.textLines[i].endOffset);
viewLines.push({
id: id,
textLine: this.textLines[i],
size: this.heights[id] || 64
});
}
return viewLines;
},
entityList: function entityList() {
this.resetSelection();
if (this.graphemeMode) {
return Entity_Entities.valueOf(this.entities, this._text);
} else {
return Entity_Entities.valueOf(this.entities);
}
},
relationList: function relationList() {
this.resetSelection();
return new Relation_RelationList(this.relations, this.entityList);
},
textLines: function textLines() {
if (!this.font || !this.entityLabelList || this.maxWidth === -1) {
return [];
} else {
var maxLabelWidth = this.entityLabelList.maxLabelWidth;
var calculator = new WidthManager_LineWidthManager(this.maxWidth, maxLabelWidth);
var splitter = new LineSplitter_TextLineSplitter(calculator, this.font);
return splitter.split(this._text);
}
},
highlightedEntities: function highlightedEntities() {
if (this.selectedEntity) {
return this.selectedEntities.concat(this.selectedEntity);
} else {
return this.selectedEntities;
}
}
},
beforeDestroy: function beforeDestroy() {
window.removeEventListener("resize", this.setMaxWidth);
},
methods: {
clicked: function clicked(event, entity) {
this.$emit("click:entity", event, entity.id);
},
onRelationClicked: function onRelationClicked(event, relation) {
this.$emit("click:relation", event, relation);
},
setMaxWidth: function setMaxWidth() {
var _this4 = this;
this.$nextTick(lodash_es_debounce(function () {
var containerElement = document.getElementById("container-".concat(_this4.uuid));
_this4.maxWidth = containerElement.clientWidth;
var rect = containerElement.getBoundingClientRect();
_this4.left = rect.left;
_this4.right = rect.right - rect.left;
_this4.baseX = !_this4.rtl ? 0 : _this4.right;
}, 500));
},
updateHeight: function updateHeight(id, height) {
this.$set(this.heights, id, height);
},
resetSelection: function resetSelection() {
this.selectedRelation = null;
this.selectedEntity = null;
},
open: function open(event) {
try {
var selector = new TextSelectionHandler_TextSelector(this.allowOverlapping, this.graphemeMode);
var _selector$getOffsets = selector.getOffsets(this.entityList, this._text),
_selector$getOffsets2 = _slicedToArray(_selector$getOffsets, 2),
startOffset = _selector$getOffsets2[0],
endOffset = _selector$getOffsets2[1];
this.$emit("add:entity", event, startOffset, endOffset);
} catch (e) {
return;
}
}
}
}));
// CONCATENATED MODULE: ./src/components/VAnnotator.vue?vue&type=script&lang=ts&
/* harmony default export */ var components_VAnnotatorvue_type_script_lang_ts_ = (VAnnotatorvue_type_script_lang_ts_);
// EXTERNAL MODULE: ./src/components/VAnnotator.vue?vue&type=style&index=0&id=24577b23&scoped=true&lang=css&
var VAnnotatorvue_type_style_index_0_id_24577b23_scoped_true_lang_css_ = __webpack_require__("3fbb");
// CONCATENATED MODULE: ./src/components/VAnnotator.vue
/* normalize component */
var VAnnotator_component = normalizeComponent(
components_VAnnotatorvue_type_script_lang_ts_,
VAnnotatorvue_type_template_id_24577b23_scoped_true_render,
staticRenderFns,
false,
null,
"24577b23",
null
)
/* harmony default export */ var VAnnotator = __webpack_exports__["a"] = (VAnnotator_component.exports);
/***/ }),
/***/ "ed83":
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory) {
if (true) {
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else {}
}(this, function () {
var regex = /(auto|scroll)/;
var parents = function (node, ps) {
if (node.parentNode === null) { return ps; }
return parents(node.parentNode, ps.concat([node]));
};
var style = function (node, prop) {
return getComputedStyle(node, null).getPropertyValue(prop);
};
var overflow = function (node) {
return style(node, "overflow") + style(node, "overflow-y") + style(node, "overflow-x");
};
var scroll = function (node) {
return regex.test(overflow(node));
};
var scrollParent = function (node) {
if (!(node instanceof HTMLElement || node instanceof SVGElement)) {
return ;
}
var ps = parents(node.parentNode, []);
for (var i = 0; i < ps.length; i += 1) {
if (scroll(ps[i])) {
return ps[i];
}
}
return document.scrollingElement || document.documentElement;
};
return scrollParent;
}));
/***/ }),
/***/ "f183":
/***/ (function(module, exports, __webpack_require__) {
var hiddenKeys = __webpack_require__("d012");
var isObject = __webpack_require__("861d");
var has = __webpack_require__("5135");
var defineProperty = __webpack_require__("9bf2").f;
var uid = __webpack_require__("90e3");
var FREEZING = __webpack_require__("bb2f");
var METADATA = uid('meta');
var id = 0;
// eslint-disable-next-line es/no-object-isextensible -- safe
var isExtensible = Object.isExtensible || function () {
return true;
};
var setMetadata = function (it) {
defineProperty(it, METADATA, { value: {
objectID: 'O' + ++id, // object ID
weakData: {} // weak collections IDs
} });
};
var fastKey = function (it, create) {
// return a primitive with prefix
if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
if (!has(it, METADATA)) {
// can't set metadata to uncaught frozen object
if (!isExtensible(it)) return 'F';
// not necessary to add metadata
if (!create) return 'E';
// add missing metadata
setMetadata(it);
// return object ID
} return it[METADATA].objectID;
};
var getWeakData = function (it, create) {
if (!has(it, METADATA)) {
// can't set metadata to uncaught frozen object
if (!isExtensible(it)) return true;
// not necessary to add metadata
if (!create) return false;
// add missing metadata
setMetadata(it);
// return the store of weak collections IDs
} return it[METADATA].weakData;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);
return it;
};
var meta = module.exports = {
REQUIRED: false,
fastKey: fastKey,
getWeakData: getWeakData,
onFreeze: onFreeze
};
hiddenKeys[METADATA] = true;
/***/ }),
/***/ "f5df":
/***/ (function(module, exports, __webpack_require__) {
var TO_STRING_TAG_SUPPORT = __webpack_require__("00ee");
var classofRaw = __webpack_require__("c6b6");
var wellKnownSymbol = __webpack_require__("b622");
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
// ES3 wrong here
var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
try {
return it[key];
} catch (error) { /* empty */ }
};
// getting tag from ES6+ `Object.prototype.toString`
module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
var O, tag, result;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
: typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
// builtinTag case
: CORRECT_ARGUMENTS ? classofRaw(O)
// ES3 arguments fallback
: (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
};
/***/ }),
/***/ "f772":
/***/ (function(module, exports, __webpack_require__) {
var shared = __webpack_require__("5692");
var uid = __webpack_require__("90e3");
var keys = shared('keys');
module.exports = function (key) {
return keys[key] || (keys[key] = uid(key));
};
/***/ }),
/***/ "fb15":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, "install", function() { return /* reexport */ wrapper["b" /* install */]; });
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
// This file is imported into lib/wc client bundles.
if (typeof window !== 'undefined') {
var currentScript = window.document.currentScript
if (true) {
var getCurrentScript = __webpack_require__("8875")
currentScript = getCurrentScript()
// for backward compatibility, because previously we directly included the polyfill
if (!('currentScript' in document)) {
Object.defineProperty(document, 'currentScript', { get: getCurrentScript })
}
}
var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)
if (src) {
__webpack_require__.p = src[1] // eslint-disable-line
}
}
// Indicate to webpack that this file can be concatenated
/* harmony default export */ var setPublicPath = (null);
// EXTERNAL MODULE: ./src/wrapper.js
var wrapper = __webpack_require__("be34");
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
/* harmony default export */ var entry_lib = __webpack_exports__["default"] = (wrapper["a" /* default */]);
/***/ }),
/***/ "fb6a":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $ = __webpack_require__("23e7");
var isObject = __webpack_require__("861d");
var isArray = __webpack_require__("e8b5");
var toAbsoluteIndex = __webpack_require__("23cb");
var toLength = __webpack_require__("50c4");
var toIndexedObject = __webpack_require__("fc6a");
var createProperty = __webpack_require__("8418");
var wellKnownSymbol = __webpack_require__("b622");
var arrayMethodHasSpeciesSupport = __webpack_require__("1dde");
var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
var SPECIES = wellKnownSymbol('species');
var nativeSlice = [].slice;
var max = Math.max;
// `Array.prototype.slice` method
// https://tc39.es/ecma262/#sec-array.prototype.slice
// fallback for not array-like ES3 strings and DOM objects
$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
slice: function slice(start, end) {
var O = toIndexedObject(this);
var length = toLength(O.length);
var k = toAbsoluteIndex(start, length);
var fin = toAbsoluteIndex(end === undefined ? length : end, length);
// inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
var Constructor, result, n;
if (isArray(O)) {
Constructor = O.constructor;
// cross-realm fallback
if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {
Constructor = undefined;
} else if (isObject(Constructor)) {
Constructor = Constructor[SPECIES];
if (Constructor === null) Constructor = undefined;
}
if (Constructor === Array || Constructor === undefined) {
return nativeSlice.call(O, k, fin);
}
}
result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));
for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
result.length = n;
return result;
}
});
/***/ }),
/***/ "fc6a":
/***/ (function(module, exports, __webpack_require__) {
// toObject with fallback for non-array-like ES3 strings
var IndexedObject = __webpack_require__("44ad");
var requireObjectCoercible = __webpack_require__("1d80");
module.exports = function (it) {
return IndexedObject(requireObjectCoercible(it));
};
/***/ }),
/***/ "fdbc":
/***/ (function(module, exports) {
// iterable DOM collections
// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
module.exports = {
CSSRuleList: 0,
CSSStyleDeclaration: 0,
CSSValueList: 0,
ClientRectList: 0,
DOMRectList: 0,
DOMStringList: 0,
DOMTokenList: 1,
DataTransferItemList: 0,
FileList: 0,
HTMLAllCollection: 0,
HTMLCollection: 0,
HTMLFormElement: 0,
HTMLSelectElement: 0,
MediaList: 0,
MimeTypeArray: 0,
NamedNodeMap: 0,
NodeList: 1,
PaintRequestList: 0,
Plugin: 0,
PluginArray: 0,
SVGLengthList: 0,
SVGNumberList: 0,
SVGPathSegList: 0,
SVGPointList: 0,
SVGStringList: 0,
SVGTransformList: 0,
SourceBufferList: 0,
StyleSheetList: 0,
TextTrackCueList: 0,
TextTrackList: 0,
TouchList: 0
};
/***/ }),
/***/ "fdbf":
/***/ (function(module, exports, __webpack_require__) {
/* eslint-disable es/no-symbol -- required for testing */
var NATIVE_SYMBOL = __webpack_require__("4930");
module.exports = NATIVE_SYMBOL
&& !Symbol.sham
&& typeof Symbol.iterator == 'symbol';
/***/ })
/******/ });
});
//# sourceMappingURL=v-annotator.umd.js.map