web-utils-curd
Version:
前端工具包
207 lines (194 loc) • 25.8 kB
JavaScript
/*
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(function webpackUniversalModuleDefinition(root, factory) {
if (typeof exports === "object" && typeof module === "object")
module.exports = factory();
else if (typeof define === "function" && define.amd) define([], factory);
else if (typeof exports === "object") exports["Utils"] = factory();
else root["Utils"] = factory();
})(self, function () {
return /******/ (() => {
// webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = {
/***/ "./src/ArrayTool.ts":
/*!**************************!*\
!*** ./src/ArrayTool.ts ***!
\**************************/
/***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
) => {
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\r\n * 封装对数组的操作方法\r\n */\n;\n\nclass ArrayTool {\n /**\r\n * 数组的 map 方法\r\n * @param arr 传入的数组\r\n * @param callback 回调函数\r\n * @returns 返回新的数组\r\n */\n map(arr, callback) {\n // 声明一个空的数组\n let result = []; // 遍历数组\n\n for (let i = 0; i < arr.length; i++) {\n result.push(callback(arr[i], i));\n }\n\n return result;\n }\n\n /**\r\n * 数组的 reduce\r\n * @param arr 传入的数组\r\n * @param callback 回调函数\r\n * @param initValue 初始值\r\n * @returns 返回新数组\r\n */\n reduce(arr, callback, initValue) {\n // 声明变量\n let result = initValue; // 执行回调\n\n for (let i = 0; i < arr.length; i++) {\n // 执行回调\n result = callback(result, arr[i]);\n } // 返回最终的结果\n\n\n return result;\n }\n /**\r\n * 筛选数组元素\r\n * @param arr 传入数组\r\n * @param callback 回调函数\r\n * @returns 返回找到的元素 或 []\r\n */\n\n\n filter(arr, callback) {\n // 声明一个空的数组\n let result = [];\n\n for (let i = 0; i < arr.length; i++) {\n // 执行回调\n let res = callback(arr[i], i); // 判断, 如果为真则压入 reuslt 结果中\n\n if (res) {\n result.push(arr[i]);\n }\n }\n\n return result;\n }\n /**\r\n * 查找数组中元素\r\n * @param arr 传入数组\r\n * @param callback 回调函数\r\n * @returns 返回元素或 undefined\r\n */\n\n\n find(arr, callback) {\n // 遍历数组\n for (let i = 0; i < arr.length; i++) {\n let res = callback(arr[i], i);\n\n if (res) {\n // 返回当前正在遍历的元素\n return arr[i];\n }\n } // 如果没有遇到满足条件的 返回 undefined\n\n\n return undefined;\n }\n /**\r\n * 查找元素下标\r\n * @param arr 传入的数组\r\n * @param callback 回调函数\r\n * @returns 数组下标\r\n */\n\n\n findIndex(arr, callback) {\n // 遍历数组\n for (let i = 0; i < arr.length; i++) {\n let res = callback(arr[i], i);\n\n if (res) {\n // 返回当前正在遍历的元素\n return i;\n }\n } // 如果没有遇到满足条件的 返回 undefined\n\n\n return -1;\n }\n /**\r\n * 查找数组中所有元素是否满足条件,满足 返回 true, 有一个不满足立即返回 false\r\n * @param arr 传入数组\r\n * @param callback 回调函数\r\n * @returns 返回 true 或 false\r\n */\n\n\n every(arr, callback) {\n // 遍历数组\n for (let i = 0; i < arr.length; i++) {\n // 执行回调, 返回结果为 false\n if (!callback(arr[i], i)) {\n return false;\n }\n }\n\n return true;\n }\n /**\r\n * 查找数组至少有一个元素是否满足条件,满足 返回 true, 不满足立即返回 false\r\n * @param arr 传入数组\r\n * @param callback 回调函数\r\n * @returns 返回 true 或 false\r\n */\n\n\n some(arr, callback) {\n // 遍历数组\n for (let i = 0; i < arr.length; i++) {\n // 执行回调, 返回结果为 false\n if (callback(arr[i], i)) {\n return true;\n }\n }\n\n return false;\n }\n /**\r\n * 数组元素进行去重\r\n * @param arr 传入的数组\r\n * @returns 返回去重的数组\r\n */\n\n\n unique(arr) {\n // 声明一个空的数组\n const result = []; // 遍历数组\n\n arr.forEach(item => {\n // 检测 result 数组中是否包含这个元素\n if (result.indexOf(item) === -1) {\n // 若没有在该元素,则插入到 result 中\n result.push(item);\n }\n });\n return result;\n }\n /**\r\n * ES6 newSet 去重\r\n * @param arr 原数组\r\n * @returns 返回去重后的数组\r\n */\n\n\n uniqueBySet(arr) {\n let set = new Set(arr); // 将 set 展开创建一个数组\n\n let result = [...set];\n return result;\n }\n /**\r\n * 合并数组方法\r\n * @param arr 原数组\r\n * @param args 形参\r\n * @returns 返回合并后的数组\r\n */\n\n\n concat(arr) {\n // 声明一个空的数组\n const result = [...arr]; // 遍历数组\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n args.forEach(item => {\n // 判断是否是数组\n if (Array.isArray(item)) {\n result.push(...item);\n } else {\n result.push(item);\n }\n });\n return result;\n }\n /**\r\n * 数组切片\r\n * @param arr 传入的数组\r\n * @param begin 开始截取下标\r\n * @param end 结束截取的下标\r\n * @returns 返回截取后的数组\r\n */\n\n\n slice(arr) {\n let begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n\n // 若 arr 的数组长度为 0\n if (arr.length === 0) {\n return [];\n }\n\n if (begin >= arr.length) {\n return [];\n }\n\n if (end < begin) {\n end = arr.length;\n } // 声明一个空的数组\n\n\n const result = []; // 遍历数组\n\n for (let i = 0; i < arr.length; i++) {\n if (i >= begin && i < end) {\n // 将下标对应的元素压入数组\n result.push(arr[i]);\n }\n }\n\n return result;\n }\n /**\r\n * 扁平化数组\r\n * @param arr 原数组\r\n * @returns 返回扁平后的数组\r\n */\n\n\n flatten(arr) {\n // 声明一个空的数组\n let result = [...arr]; // 遍历数组\n\n while (this.some(result, item => Array.isArray(item))) {\n result = [].concat(...result);\n }\n\n return result;\n }\n /**\r\n * 分割数组\r\n * @param arr 原数组\r\n * @param size 分割大小\r\n * @returns 返回多维数组\r\n */\n\n\n chunk(arr) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n if (arr.length === 0) {\n return [];\n } // 声明两个变量\n\n\n let result = [];\n let tmp = []; // 遍历数组\n\n arr.forEach(item => {\n // 判断 tmp 元素的长度是否为 0\n if (tmp.length === 0) {\n // 将 tmp 压入到 result 中\n result.push(tmp);\n } // 将元素压入到临时的数组 tmp 中\n\n\n tmp.push(item);\n\n if (tmp.length === size) {\n tmp = [];\n }\n });\n return result;\n }\n\n /**\r\n * 比较两个数组差值\r\n * @param arr1 原数组\r\n * @param arr2 原数组\r\n * @returns \r\n */\n difference() {\n let arr1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let arr2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n if (arr1.length === 0) {\n return [];\n }\n\n if (arr2.length === 0) {\n return arr1.slice();\n }\n\n const result = arr1.filter(item => !arr2.includes(item));\n return result;\n }\n /**\r\n * 删除数组内元素\r\n * @param arr 原数组\r\n * @param args 元素\r\n * @returns 返回删除后的数组\r\n */\n\n\n pull(arr) {\n // 声明空数组,保存删掉的元素\n const result = []; // 遍历 arr\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n for (let i = 0; i < arr.length; i++) {\n // 判断当前元素是否存在于 args 数组中\n if (args.includes(arr[i])) {\n // 将当前元素存入到 result 中\n result.push(arr[i]); // 删除当前的元素\n\n arr.splice(i, 1); // 下标自减\n\n i--;\n }\n } // 返回结果\n\n\n return result;\n }\n /**\r\n * 根据数组删除数组内元素\r\n * @param { Array } arr\r\n * @param { Array } values\r\n * @returns\r\n */\n\n\n pullAll(arr) {\n let values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return this.pull(arr, ...values);\n }\n /**\r\n 数组丢弃指定个数元素\r\n @param { Array } arr\r\n @param { Number } size\r\n @returns\r\n */\n\n\n drop(arr, size) {\n // 过滤原数组,产生新数组\n return this.filter(arr, (value, index) => index >= size);\n }\n /**\r\n * 数组丢弃指定个数元素\r\n * @param { Array } arr\r\n * @param { Number } size\r\n * @returns\r\n */\n\n\n dropRight(arr, size) {\n // 过滤原数组,产生新数组\n return this.filter(arr, (value, index) => index < arr.length - size);\n }\n /**\r\n * 数组根据 id 删除元素\r\n * @param arr 元素组\r\n * @param id 元素 id\r\n */\n\n\n pullById(arr, id) {\n let result = [];\n result = this.filter(arr, arr => arr.id !== id);\n return result;\n }\n\n pullByIds(arr, ids) {\n let result = [];\n ids.forEach(id => {\n result = this.pullById(arr, id);\n });\n return result;\n }\n\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new ArrayTool());\n\n//# sourceURL=webpack://Utils/./src/ArrayTool.ts?'
);
/***/
},
/***/ "./src/EventTool.ts":
/*!**************************!*\
!*** ./src/EventTool.ts ***!
\**************************/
/***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
) => {
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nclass EventTool {\n addEventListener(el, type, fn, selector) {\n // 判断 el 的类型\n if (typeof el === "string") {\n el = document.querySelector(el);\n } // 事件绑定, 若没有传递子元素的选择器,则给 el 绑定事件\n\n\n if (!selector) {\n el.addEventListener(type, fn);\n } else {\n el.addEventListener(type, e => {\n // 获取点击的目标事件源\n const target = e.target; // 判断当前点击的元素与选择器是否相符合\n\n if (target.matches(selector)) {\n // 如符合,则调用回调\n fn.call(target, e);\n }\n });\n }\n }\n\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new EventTool());\n\n//# sourceURL=webpack://Utils/./src/EventTool.ts?'
);
/***/
},
/***/ "./src/ObjectTool.ts":
/*!***************************!*\
!*** ./src/ObjectTool.ts ***!
\***************************/
/***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
) => {
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction 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; }\n\nfunction _objectSpread(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; }\n\nfunction _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; }\n\n/**\r\n * 封装操作对象的方法\r\n */\nclass ObjectTool {\n mergeObject() {\n // 声明一个空对象\n const result = {}; // 遍历所有的参数对象\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n args.forEach(obj => {\n // 获取当前对象所有的属性\n Object.keys(obj).forEach(key => {\n // 检测 result 是否存在 key 属性\n if (result.hasOwnProperty(key)) {\n result[key] = [].concat(result[key], obj[key]);\n } else {\n // 如果没有 则直接写入\n result[key] = obj[key];\n }\n });\n });\n return result;\n }\n /**\r\n * 浅拷贝\r\n * @param target 目标对象\r\n * @returns 拷贝过后的对象\r\n */\n\n\n clone(target) {\n // 类型判断\n if (typeof target === "object" && target !== null) {\n // 判断数据是否为数组\n if (Array.isArray(target)) {\n return [...target];\n } else {\n return _objectSpread({}, target);\n }\n } else {\n return target;\n }\n }\n\n /**\r\n * 深拷贝,解决了循环引用问题\r\n * @param target 目标对象\r\n * @param map map\r\n * @returns 返回拷贝后的对象\r\n */\n deepClone(target) {\n let map = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();\n\n // 检测数据类型\n if (typeof target === "object" && target !== null) {\n // 克隆数据之前,进行判断,数据是否之前克隆过\n let cache = map.get(target);\n\n if (cache) {\n return cache;\n } // 创建一个容器\n\n\n let isArray = Array.isArray(target);\n const result = isArray ? [] : {}; // 将新的结果存入到容器中\n\n map.set(target, result); // 遍历元素\n // 如果目标数据为数组使用 forEach\n\n if (isArray) {\n // forEach 遍历\n target.forEach((item, index) => {\n result[index] = this.deepClone(item, map);\n });\n } else {\n // 如果是对象\n Object.keys(target).forEach(key => {\n result[key] = this.deepClone(target[key], map);\n });\n }\n\n return result;\n } else {\n return target;\n }\n }\n\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new ObjectTool());\n\n//# sourceURL=webpack://Utils/./src/ObjectTool.ts?'
);
/***/
},
/***/ "./src/StringTool.ts":
/*!***************************!*\
!*** ./src/StringTool.ts ***!
\***************************/
/***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
) => {
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nclass StringTool {\n /**\r\n * 反转字符串\r\n * @param { String } str 原字符串\r\n */\n reverseString(str) {\n // 将字符串转换为数组\n let arr = [...str]; // 反转数组\n\n arr.reverse(); // 将数组拼接成字符串\n\n let s = arr.join("");\n return s;\n }\n /**\r\n * 判断字符串是否为回文\r\n * @param { String } str\r\n */\n\n\n palindrome(str) {\n return this.reverseString(str) === str;\n }\n /**\r\n * 截取字符串\r\n * @param { String } str 原字符串\r\n * @param { Number } size 截取长度\r\n */\n\n\n truncate(str) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : str.length;\n return str.slice(0, size) + "...";\n }\n\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new StringTool());\n\n//# sourceURL=webpack://Utils/./src/StringTool.ts?'
);
/***/
},
/***/ "./src/TimerFn.ts":
/*!************************!*\
!*** ./src/TimerFn.ts ***!
\************************/
/***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
) => {
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\r\n * 对于时间工具的封装\r\n */\nclass TimerFn {\n /**\r\n * 函数节流\r\n * @param callback 回调函数\r\n * @param wait 等待时间\r\n * @returns \r\n */\n throttle(callback, wait) {\n // 定义开始时间\n let start = 0; // 返回结果\n\n return e => {\n // 获取当前的时间戳\n let now = Date.now();\n\n if (now - start >= wait) {\n // 满足条件,执行回调函数\n callback(e);\n start = now;\n }\n };\n }\n\n debounce(callback, time) {\n // 声明一个 timerId 用来存储定时器\n let timerId = null;\n return e => {\n // 判断 timerId 是否存在, 存在则清除\n if (timerId) {\n clearTimeout(timerId);\n }\n\n timerId = setTimeout(() => {\n callback(e); // 重置定时器变量\n\n timerId = null;\n }, time);\n };\n }\n\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new TimerFn());\n\n//# sourceURL=webpack://Utils/./src/TimerFn.ts?'
);
/***/
},
/***/ "./src/main.ts":
/*!*********************!*\
!*** ./src/main.ts ***!
\*********************/
/***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
) => {
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _TimerFn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TimerFn */ "./src/TimerFn.ts");\n/* harmony import */ var _StringTool__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./StringTool */ "./src/StringTool.ts");\n/* harmony import */ var _ArrayTool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ArrayTool */ "./src/ArrayTool.ts");\n/* harmony import */ var _ObjectTool__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ObjectTool */ "./src/ObjectTool.ts");\n/* harmony import */ var _EventTool__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./EventTool */ "./src/EventTool.ts");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n throttle: _TimerFn__WEBPACK_IMPORTED_MODULE_0__["default"].throttle,\n debounce: _TimerFn__WEBPACK_IMPORTED_MODULE_0__["default"].debounce,\n map: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].map,\n reduce: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].reduce,\n filter: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].filter,\n find: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].find,\n findIndex: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].findIndex,\n every: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].every,\n some: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].some,\n unique: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].unique,\n uniqueBySet: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].uniqueBySet,\n slice: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].slice,\n flatten: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].flatten,\n chunk: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].chunk,\n difference: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].difference,\n pull: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].pull,\n pullAll: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].pullAll,\n drop: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].drop,\n dropRight: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].dropRight,\n pullById: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].pullById,\n pullByIds: _ArrayTool__WEBPACK_IMPORTED_MODULE_2__["default"].pullByIds,\n clone: _ObjectTool__WEBPACK_IMPORTED_MODULE_3__["default"].clone,\n deepClone: _ObjectTool__WEBPACK_IMPORTED_MODULE_3__["default"].deepClone,\n mergeObject: _ObjectTool__WEBPACK_IMPORTED_MODULE_3__["default"].mergeObject,\n reverseString: _StringTool__WEBPACK_IMPORTED_MODULE_1__["default"].reverseString,\n palindrome: _StringTool__WEBPACK_IMPORTED_MODULE_1__["default"].palindrome,\n truncate: _StringTool__WEBPACK_IMPORTED_MODULE_1__["default"].truncate,\n addEventListener: _EventTool__WEBPACK_IMPORTED_MODULE_4__["default"].addEventListener\n});\n\n//# sourceURL=webpack://Utils/./src/main.ts?'
);
/***/
},
/******/
};
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/
}
/******/ // Create a new module (and put it into the cache)
/******/ var module = (__webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {},
/******/
});
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](
module,
module.exports,
__webpack_require__
);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/
}
/******/
/************************************************************************/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for (var key in definition) {
/******/ if (
__webpack_require__.o(definition, key) &&
!__webpack_require__.o(exports, key)
) {
/******/ Object.defineProperty(exports, key, {
enumerable: true,
get: definition[key],
});
/******/
}
/******/
}
/******/
};
/******/
})();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) =>
Object.prototype.hasOwnProperty.call(obj, prop);
/******/
})();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, {
value: "Module",
});
/******/
}
/******/ Object.defineProperty(exports, "__esModule", { value: true });
/******/
};
/******/
})();
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval devtool is used.
/******/ var __webpack_exports__ = __webpack_require__("./src/main.ts");
/******/
/******/ return __webpack_exports__;
/******/
})();
});