From 05748974a4feae4418ff87d9b66a5bb9f77d4fc4 Mon Sep 17 00:00:00 2001 From: frank <> Date: Fri, 2 Apr 2021 22:25:59 +0000 Subject: [PATCH] fix: replace @cocraete/socket with socket-client --- .gitignore | 2 ++ dist/CoCreate-api.js | 2 -- dist/CoCreate-api.js.LICENSE.txt | 15 --------------- dist/CoCreate-api.min.js | 1 + src/index.js | 2 +- 5 files changed, 4 insertions(+), 18 deletions(-) delete mode 100644 dist/CoCreate-api.js delete mode 100644 dist/CoCreate-api.js.LICENSE.txt create mode 100644 dist/CoCreate-api.min.js diff --git a/.gitignore b/.gitignore index 550e254..4cb4ac0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ # ignore node_modules +dist/* +!dist/CoCreate-api.min.js \ No newline at end of file diff --git a/dist/CoCreate-api.js b/dist/CoCreate-api.js deleted file mode 100644 index 499c172..0000000 --- a/dist/CoCreate-api.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see CoCreate-api.js.LICENSE.txt */ -!function(Q,F){"object"==typeof exports&&"object"==typeof module?module.exports=F():"function"==typeof define&&define.amd?define([],F):"object"==typeof exports?exports.CoCreate=F():(Q.CoCreate=Q.CoCreate||{},Q.CoCreate.api=F())}(this,(function(){return(()=>{"use strict";var __webpack_modules__={"../CoCreate-action/src/index.js":(__unused_webpack_module,exports)=>{eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n// -testing1\nconst CoCreateAction = {\n attribute: 'data-actions',\n actions: {},\n selectedStage: [],\n stageIndex: 0,\n selectedElement: null,\n completedEventName: 'completedEvent',\n __init: function () {\n this.actionButtonEvent();\n },\n actionButtonEvent: function () {\n const self = this;\n document.addEventListener('click', function (event) {\n let btn = event.target;\n\n if (!btn.getAttribute('data-actions')) {\n btn = event.target.closest('[data-actions]');\n }\n\n if (!btn) return;\n event.preventDefault();\n let actions = (btn.getAttribute(self.attribute) || \"\").replace(/\\s/g, '').split(',');\n if (actions.length == 0) return;\n self.stageIndex = 0;\n self.selectedStage = actions; //. run function\n\n self.selectedElement = btn;\n\n self.__runActionFunc();\n });\n },\n init: function ({\n action,\n callback,\n endEvent\n }) {\n this.registerEvent(action, callback, null, endEvent);\n },\n\n /**\n * key: string\n * runFunc: function\n * instance: object\n * endEvent: string\n **/\n registerEvent: function (key, runFunc, instance, endEvent) {\n if (this.actions[key]) {\n return;\n }\n\n this.actions[key] = {\n key: key,\n runFunc: runFunc,\n instance: instance || window,\n endEvent: endEvent\n }; //. register events\n\n for (let __key in this.actions) {\n if (__key != key && this.actions[__key]['endEvent'] === endEvent) {\n return;\n }\n } //. register events\n\n\n const _this = this;\n\n document.addEventListener(endEvent, function (e) {\n _this.__nextAction(endEvent, e.detail);\n });\n },\n __runActionFunc: function (data) {\n if (this.stageIndex >= this.selectedStage.length) {\n //. if latest case, it will be run aTag\n if (this.stageIndex == this.selectedStage.length) {\n this.__runAtag(this.selectedElement);\n }\n\n return;\n }\n\n const actionName = this.selectedStage[this.stageIndex]; //. run function\n\n const action = this.actions[actionName];\n\n if (action) {\n if (action.runFunc) {\n action.runFunc.call(null, this.selectedElement, data);\n } else {\n this.__nextAction(action.endEvent, {});\n }\n } else {\n let status = this.__runSpecialAction(actionName, data);\n\n if (status === \"next\") {\n this.__moveNextAction();\n }\n }\n },\n __nextAction: function (eventName, data) {\n const key = this.selectedStage[this.stageIndex];\n\n if (!key) {\n return;\n }\n\n if (eventName !== this.actions[key].endEvent) {\n return;\n }\n\n this.__moveNextAction(data);\n },\n __runAtag: function (button) {\n var aTag = button.querySelector('a');\n\n if (aTag) {// CoCreate.logic.setLinkProcess(aTag)\n }\n },\n //. special action\n __runSpecialAction: function (actionName, data) {\n let matches = /(\\w+)\\{([a-zA-Z0-9_ \\-#$.]+)\\}/gm.exec(actionName);\n\n if (!matches || matches.length < 3) {\n return \"next\";\n }\n\n let type = matches[1],\n param = matches[2].trim();\n if (!param) return \"next\";\n const self = this;\n\n switch (type) {\n case 'event':\n console.log(\"Waiting Event....\");\n document.addEventListener(param, eventData => {\n console.log('Event Action (Received event from other section) ====== ' + param);\n\n self.__moveNextAction(eventData);\n }, {\n once: true\n });\n break;\n\n case 'timeout':\n let delayTime = parseInt(param);\n\n if (delayTime > 0) {\n setTimeout(function () {\n console.log(\"Timeout ======= \" + param);\n\n self.__moveNextAction(data);\n }, parseInt(param));\n }\n\n break;\n\n case 'action':\n let btn = document.querySelector(param);\n\n if (btn) {\n btn.click();\n }\n\n break;\n\n default:\n return \"next\";\n }\n },\n __moveNextAction: function (data) {\n this.stageIndex++;\n\n this.__runActionFunc(data);\n }\n};\n\nCoCreateAction.__init();\n\nvar _default = CoCreateAction;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db0NyZWF0ZS5hcGkvLi4vQ29DcmVhdGUtYWN0aW9uL3NyYy9pbmRleC5qcz81MGQ1Il0sIm5hbWVzIjpbIkNvQ3JlYXRlQWN0aW9uIiwiYXR0cmlidXRlIiwiYWN0aW9ucyIsInNlbGVjdGVkU3RhZ2UiLCJzdGFnZUluZGV4Iiwic2VsZWN0ZWRFbGVtZW50IiwiY29tcGxldGVkRXZlbnROYW1lIiwiX19pbml0IiwiYWN0aW9uQnV0dG9uRXZlbnQiLCJzZWxmIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiZXZlbnQiLCJidG4iLCJ0YXJnZXQiLCJnZXRBdHRyaWJ1dGUiLCJjbG9zZXN0IiwicHJldmVudERlZmF1bHQiLCJyZXBsYWNlIiwic3BsaXQiLCJsZW5ndGgiLCJfX3J1bkFjdGlvbkZ1bmMiLCJpbml0IiwiYWN0aW9uIiwiY2FsbGJhY2siLCJlbmRFdmVudCIsInJlZ2lzdGVyRXZlbnQiLCJrZXkiLCJydW5GdW5jIiwiaW5zdGFuY2UiLCJ3aW5kb3ciLCJfX2tleSIsIl90aGlzIiwiZSIsIl9fbmV4dEFjdGlvbiIsImRldGFpbCIsImRhdGEiLCJfX3J1bkF0YWciLCJhY3Rpb25OYW1lIiwiY2FsbCIsInN0YXR1cyIsIl9fcnVuU3BlY2lhbEFjdGlvbiIsIl9fbW92ZU5leHRBY3Rpb24iLCJldmVudE5hbWUiLCJidXR0b24iLCJhVGFnIiwicXVlcnlTZWxlY3RvciIsIm1hdGNoZXMiLCJleGVjIiwidHlwZSIsInBhcmFtIiwidHJpbSIsImNvbnNvbGUiLCJsb2ciLCJldmVudERhdGEiLCJvbmNlIiwiZGVsYXlUaW1lIiwicGFyc2VJbnQiLCJzZXRUaW1lb3V0IiwiY2xpY2siXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0EsTUFBTUEsY0FBYyxHQUFHO0FBQ3JCQyxXQUFTLEVBQUUsY0FEVTtBQUVyQkMsU0FBTyxFQUFFLEVBRlk7QUFHckJDLGVBQWEsRUFBRSxFQUhNO0FBSXJCQyxZQUFVLEVBQUUsQ0FKUztBQUty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QUF2QixDQUFWOztBQUNBLFlBQUlyQyxHQUFKLEVBQVM7QUFDUEEsYUFBRyxDQUFDOEMsS0FBSjtBQUNEOztBQUNEOztBQUNGO0FBQ0UsZUFBTyxNQUFQO0FBeEJKO0FBMEJELEdBNUpvQjtBQThKckJqQixrQkFBZ0IsRUFBRSxVQUFTTixJQUFULEVBQWU7QUFDL0IsU0FBS2hDLFVBQUw7O0FBQ0EsU0FBS2lCLGVBQUwsQ0FBcUJlLElBQXJCO0FBQ0Q7QUFqS29CLENBQXZCOztBQXFLQXBDLGNBQWMsQ0FBQ08sTUFBZjs7ZUFFZVAsYyIsImZpbGUiOiIuLi9Db0NyZWF0ZS1hY3Rpb24vc3JjL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLXRlc3RpbmcxXG5jb25zdCBDb0NyZWF0ZUFjdGlvbiA9IHtcbiAgYXR0cmlidXRlOiAnZGF0YS1hY3Rpb25zJyxcbiAgYWN0aW9uczoge30sXG4gIHNlbGVjdGVkU3RhZ2U6IFtdLFxuICBzdGFnZUluZGV4OiAwLFxuICBzZWxlY3RlZEVsZW1lbnQ6IG51bGwsXG4gIFxuICBjb21wbGV0ZWRFdmVudE5hbWU6ICdjb21wbGV0ZWRFdmVudCcsXG4gIFxuICBfX2luaXQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuYWN0aW9uQnV0dG9uRXZlbnQoKVxuICB9LFxuXG4gIGFjdGlvbkJ1dHRvbkV2ZW50OiBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICBsZXQgYnRuID0gZXZlbnQudGFyZ2V0O1xuICAgICAgaWYgKCFidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFjdGlvbnMnKSkge1xuICAgICAgICBidG4gPSBldmVudC50YXJnZXQuY2xvc2VzdCgnW2RhdGEtYWN0aW9uc10nKTtcbiAgICAgIH1cbiAgICAgIGlmICghYnRuKSByZXR1cm47XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBsZXQgYWN0aW9ucyA9IChidG4uZ2V0QXR0cmlidXRlKHNlbGYuYXR0cmlidXRlKSB8fCBcIlwiKS5yZXBsYWNlKC9cXHMvZywgJycpLnNwbGl0KCcsJyk7XG4gICAgICBpZiAoYWN0aW9ucy5sZW5ndGggPT0gMCkgcmV0dXJuO1xuICAgICAgc2VsZi5zdGFnZUluZGV4ID0gMDtcbiAgICAgIHNlbGYuc2VsZWN0ZWRTdGFnZSA9IGFjdGlvbnM7XG4gICAgICBcbiAgICAgIC8vLiBydW4gZnVuY3Rpb25cbiAgICAgIHNlbGYuc2VsZWN0ZWRFbGVtZW50ID0gYnRuO1xuICAgICAgc2VsZi5fX3J1bkFjdGlvbkZ1bmMoKTtcbiAgICB9KVxuICB9LFxuICBcbiAgaW5pdDogZnVuY3Rpb24oe2FjdGlvbiwgY2FsbGJhY2ssIGVuZEV2ZW50fSkge1xuICAgIHRoaXMucmVnaXN0ZXJFdmVudChhY3Rpb24sIGNhbGxiYWNrLCBudWxsLCBlbmRFdmVudCk7XG4gIH0sXG4gIFxuICAvKipcbiAgICoga2V5OiBzdHJpbmdcbiAgICogcnVuRnVuYzogZnVuY3Rpb25cbiAgICogaW5zdGFuY2U6IG9iamVjdFxuICAgKiBlbmRFdmVudDogc3RyaW5nXG4gICAqKi9cbiAgcmVnaXN0ZXJFdmVudDogZnVuY3Rpb24oa2V5LCBydW5GdW5jLCBpbnN0YW5jZSwgZW5kRXZlbnQpIHtcbiAgICBpZiAodGhpcy5hY3Rpb25zW2tleV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5hY3Rpb25zW2tleV0gPSB7XG4gICAgICBrZXk6IGtleSxcbiAgICAgIHJ1bkZ1bmM6IHJ1bkZ1bmMsXG4gICAgICBpbnN0YW5jZTogaW5zdGFuY2UgfHwgd2luZG93LFxuICAgICAgZW5kRXZlbnQ6IGVuZEV2ZW50XG4gICAgfVxuICAgIC8vLiByZWdpc3RlciBldmVudHNcbiAgICBcbiAgICBmb3IgKGxldCBfX2tleSBpbiB0aGlzLmFjdGlvbnMpIHtcbiAgICAgIGlmIChfX2tleSAhPSBrZXkgJiYgdGhpcy5hY3Rpb25zW19fa2V5XVsnZW5kRXZlbnQnXSA9PT0gZW5kRXZlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLy4gcmVnaXN0ZXIgZXZlbnRzXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoZW5kRXZlbnQsIGZ1bmN0aW9uKGUpIHtcbiAgICAgIF90aGlzLl9fbmV4dEFjdGlvbihlbmRFdmVudCwgZS5kZXRhaWwpXG4gICAgfSk7XG4gIH0sXG4gIFxuICBfX3J1bkFjdGlvbkZ1bmM6IGZ1bmN0aW9uKGRhdGEpIHtcblxuICAgIGlmICh0aGlzLnN0YWdlSW5kZXggPj0gdGhpcy5zZWxlY3RlZFN0YWdlLmxlbmd0aCkge1xuXG4gICAgICAvLy4gaWYgbGF0ZXN0IGNhc2UsIGl0IHdpbGwgYmUgcnVuIGFUYWdcbiAgICAgIGlmICh0aGlzLnN0YWdlSW5kZXggPT0gdGhpcy5zZWxlY3RlZFN0YWdlLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9fcnVuQXRhZyh0aGlzLnNlbGVjdGVkRWxlbWVudCk7ICAgICAgICBcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgYWN0aW9uTmFtZSA9IHRoaXMuc2VsZWN0ZWRTdGFnZVt0aGlzLnN0YWdlSW5kZXhdO1xuICAgIC8vLiBydW4gZnVuY3Rpb25cbiAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFjdGlvbnNbYWN0aW9uTmFtZV07XG4gICAgaWYgKGFjdGlvbikge1xuICAgICAgaWYgKGFjdGlvbi5ydW5GdW5jKSB7XG4gICAgICAgIGFjdGlvbi5ydW5GdW5jLmNhbGwobnVsbCwgdGhpcy5zZWxlY3RlZEVsZW1lbnQsIGRhdGEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fX25leHRBY3Rpb24oYWN0aW9uLmVuZEV2ZW50LCB7fSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBzdGF0dXMgPSB0aGlzLl9fcnVuU3BlY2lhbEFjdGlvbihhY3Rpb25OYW1lLCBkYXRhKTtcbiAgICAgIGlmIChzdGF0dXMgPT09IFwibmV4dFwiKSB7XG4gICAgICAgIHRoaXMuX19tb3ZlTmV4dEFjdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXG4gIF9fbmV4dEFjdGlvbjogZnVuY3Rpb24oZXZlbnROYW1lLCBkYXRhKSB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5zZWxlY3RlZFN0YWdlW3RoaXMuc3RhZ2VJbmRleF07XG4gICAgaWYgKCFrZXkpIHtcbiAgICAgIHJldHVybiA7XG4gICAgfVxuICAgIGlmIChldmVudE5hbWUgIT09IHRoaXMuYWN0aW9uc1trZXldLmVuZEV2ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX19tb3ZlTmV4dEFjdGlvbihkYXRhKTtcbiAgfSxcbiAgXG4gIF9fcnVuQXRhZzogZnVuY3Rpb24oYnV0dG9uKSB7XG4gICAgdmFyIGFUYWcgPSBidXR0b24ucXVlcnlTZWxlY3RvcignYScpO1xuICAgICAgICAgIFxuICAgIGlmIChhVGFnKSB7XG4gICAgICAvLyBDb0NyZWF0ZS5sb2dpYy5zZXRMaW5rUHJvY2VzcyhhVGFnKVxuICAgIH1cbiAgfSxcbiAgXG4gIC8vLiBzcGVjaWFsIGFjdGlvblxuICBcbiAgX19ydW5TcGVjaWFsQWN0aW9uOiBmdW5jdGlvbihhY3Rpb25OYW1lLCBkYXRhKSB7XG4gICAgbGV0IG1hdGNoZXMgPSAvKFxcdyspXFx7KFthLXpBLVowLTlfIFxcLSMkLl0rKVxcfS9nbS5leGVjKGFjdGlvbk5hbWUpXG4gICAgXG4gICAgaWYgKCFtYXRjaGVzIHx8IG1hdGNoZXMubGVuZ3RoIDwgMykge1xuICAgICAgcmV0dXJuIFwibmV4dFwiO1xuICAgIH1cbiAgICBcbiAgICBsZXQgdHlwZSA9IG1hdGNoZXNbMV0sIHBhcmFtID0gbWF0Y2hlc1syXS50cmltKClcbiAgICBpZiAoIXBhcmFtKSByZXR1cm4gXCJuZXh0XCI7XG4gICAgXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdldmVudCc6XG4gICAgICAgIGNvbnNvbGUubG9nKFwiV2FpdGluZyBFdmVudC4uLi5cIik7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIocGFyYW0sIChldmVudERhdGEpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnRXZlbnQgQWN0aW9uIChSZWNlaXZlZCBldmVudCBmcm9tIG90aGVyIHNlY3Rpb24pID09PT09PSAnICsgcGFyYW0pO1xuICAgICAgICAgIHNlbGYuX19tb3ZlTmV4dEFjdGlvbihldmVudERhdGEpO1xuICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSlcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0aW1lb3V0JzpcbiAgICAgICAgbGV0IGRlbGF5VGltZSA9IHBhcnNlSW50KHBhcmFtKTtcbiAgICAgICAgaWYgKGRlbGF5VGltZSA+IDApIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJUaW1lb3V0ID09PT09PT0gXCIgKyBwYXJhbSlcbiAgICAgICAgICAgIHNlbGYuX19tb3ZlTmV4dEFjdGlvbihkYXRhKTtcbiAgICAgICAgICB9LCBwYXJzZUludChwYXJhbSkpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWN0aW9uJzpcbiAgICAgICAgbGV0IGJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IocGFyYW0pO1xuICAgICAgICBpZiAoYnRuKSB7XG4gICAgICAgICAgYnRuLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gXCJuZXh0XCI7XG4gICAgfVxuICB9LFxuICBcbiAgX19tb3ZlTmV4dEFjdGlvbjogZnVuY3Rpb24oZGF0YSkge1xuICAgIHRoaXMuc3RhZ2VJbmRleCArKztcbiAgICB0aGlzLl9fcnVuQWN0aW9uRnVuYyhkYXRhKTtcbiAgfSxcbn1cblxuXG5Db0NyZWF0ZUFjdGlvbi5fX2luaXQoKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29DcmVhdGVBY3Rpb247Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../CoCreate-action/src/index.js\n")},"./src/index.js":(__unused_webpack_module,exports,__webpack_require__)=>{eval('\n\nObject.defineProperty(exports, "__esModule", ({\n value: true\n}));\nexports.default = void 0;\n\nvar _socket = _interopRequireDefault(__webpack_require__(/*! @cocreate/socket */ "../CoCreate-socket/src/index.js"));\n\nvar _action = _interopRequireDefault(__webpack_require__(/*! @cocreate/action */ "../CoCreate-action/src/index.js"));\n\nvar _render = _interopRequireDefault(__webpack_require__(/*! @cocreate/render */ "../CoCreate-render/src/index.js"));\n\nvar _api = _interopRequireDefault(__webpack_require__(/*! @cocreate/api */ "./src/index.js"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst CoCreateApi = {\n modules: {},\n init: function ({\n name,\n module\n }) {\n this.register(name, module);\n },\n register: function (name, m_instance) {\n const self = this;\n\n if (typeof this.modules[name] === \'undefined\') {\n this.modules[name] = m_instance;\n socketApi.listen(name, data => {\n self.__responseProcess(name, data);\n }); //. register actions\n\n if (Array.isArray(m_instance[\'actions\'])) {\n m_instance[\'actions\'].forEach(action => {\n if (typeof m_instance[`action_${action}`] !== \'function\') {\n m_instance[`action_${action}`] = function (element) {\n self.__commonAction(m_instance.id, action, element);\n };\n }\n\n _action.default.init({\n action: action,\n endEvent: action,\n callback: btn => {\n m_instance[`action_${action}`](btn);\n }\n });\n });\n }\n }\n },\n __responseProcess: function (m_name, data) {\n const {\n type,\n response\n } = data;\n const m_instance = this.modules[m_name];\n\n if (type && response && m_instance) {\n if (typeof m_instance[`render_${type}`] === \'function\') {\n m_instance[`render_${type}`](response);\n }\n\n this.render(type, response);\n document.dispatchEvent(new CustomEvent(type, {\n detail: {\n data: response\n }\n }));\n }\n },\n __commonAction: function (id, action, element) {\n const container = element.closest("form") || document;\n let data = CoCreateApi.getFormData(id, action, container);\n CoCreateApi.send(id, action, data);\n },\n getFormData: function (m_name, action, container) {\n const mainAttr = `data-${m_name}`;\n const self = this;\n const elements = container.querySelectorAll(`[${mainAttr}^="${action}."]`);\n let data = {};\n elements.forEach(element => {\n let name = element.getAttribute(mainAttr);\n let array_name = element.getAttribute(mainAttr + "_array");\n\n let value = self.__getElValue(element);\n\n if (!name) return;\n\n if (action) {\n let re = new RegExp(`^${action}.`, \'i\');\n\n if (re.test(name)) {\n name = name.replace(re, "");\n } else {\n return;\n }\n }\n\n if (array_name) {\n if (!data[name]) {\n data[name] = [];\n }\n\n data[name].push(self.getFormData(m_name, array_name, element));\n } else if (value != null) {\n data[name] = value;\n }\n });\n let keys = Object.keys(data);\n let objectData = {};\n keys.forEach(k => {\n if (k.split(\'.\').length > 1) {\n let newData = self.__createObject(data[k], k);\n\n delete data[k];\n objectData = self.__mergeObject(objectData, newData);\n } else {\n objectData[k] = data[k];\n }\n });\n return objectData;\n },\n __getElValue: function (element) {\n let value = null;\n\n if (typeof element.value !== "undefined") {\n switch (element.type.toLocaleLowerCase()) {\n case \'checkbox\':\n if (element.checked) {\n value = element.value;\n }\n\n break;\n\n default:\n value = element.value;\n break;\n }\n } else {\n value = element.getAttribute(\'value\');\n\n if (!value) {\n value = element.innerHTML;\n }\n }\n\n return value;\n },\n __mergeObject: function (target, source) {\n target = target || {};\n\n for (let key of Object.keys(source)) {\n if (source[key] instanceof Object) {\n Object.assign(source[key], this.__mergeObject(target[key], source[key]));\n }\n }\n\n Object.assign(target || {}, source);\n return target;\n },\n __createObject: function (data, path) {\n if (!path) return data;\n let keys = path.split(\'.\');\n let newObject = data;\n\n for (var i = keys.length - 1; i >= 0; i--) {\n newObject = {\n [keys[i]]: newObject\n };\n }\n\n return newObject;\n },\n send: function (module, action, data) {\n let request_data = this.getCommonParamsExtend(data || {});\n request_data = { ...request_data,\n data\n };\n socketApi.send(module, {\n type: action,\n data: request_data\n });\n },\n render: function (action, data) {\n _render.default.data({\n selector: `[data-template_id="${action}"]`,\n data: data\n });\n },\n createApiSocket: function (host, namespace) {\n if (namespace) {\n socketApi.create({\n namespace: namespace,\n room: null,\n host: host\n });\n socketApi.setGlobalScope(namespace);\n } else {\n socketApi.create({\n namespace: null,\n room: null,\n host: host\n });\n }\n },\n getCommonParamsExtend: function (info) {\n return {\n "apiKey": info.apiKey || config.apiKey,\n "securityKey": info.securityKey || config.securityKey,\n "organization_id": info.organization_id || config.organization_Id\n };\n }\n};\n\n_api.default.init({\n name: CoCreateApi.id,\n module: CoCreateApi\n});\n\nvar _default = CoCreateApi;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db0NyZWF0ZS5hcGkvLi9zcmMvaW5kZXguanM/YjYzNSJdLCJuYW1lcyI6WyJDb0NyZWF0ZUFwaSIsIm1vZHVsZXMiLCJpbml0IiwibmFtZSIsIm1vZHVsZSIsInJlZ2lzdGVyIiwibV9pbnN0YW5jZSIsInNlbGYiLCJzb2NrZXRBcGkiLCJsaXN0ZW4iLCJkYXRhIiwiX19yZXNwb25zZVByb2Nlc3MiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwiYWN0aW9uIiwiZWxlbWVudCIsIl9fY29tbW9uQWN0aW9uIiwiaWQiLCJDb0NyZWF0ZUFjdGlvbiIsImVuZEV2ZW50IiwiY2FsbGJhY2siLCJidG4iLCJtX25hbWUiLCJ0eXBlIiwicmVzcG9uc2UiLCJyZW5kZXIiLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImNvbnRhaW5lciIsImNsb3Nlc3QiLCJnZXRGb3JtRGF0YSIsInNlbmQiLCJtYWluQXR0ciIsImVsZW1lbnRzIiwicXVlcnlTZWxlY3RvckFsbCIsImdldEF0dHJpYnV0ZSIsImFycmF5X25hbWUiLCJ2YWx1ZSIsIl9fZ2V0RWxWYWx1ZSIsInJlIiwiUmVnRXhwIiwidGVzdCIsInJlcGxhY2UiLCJwdXNoIiwia2V5cyIsIk9iamVjdCIsIm9iamVjdERhdGEiLCJrIiwic3BsaXQiLCJsZW5ndGgiLCJuZXdEYXRhIiwiX19jcmVhdGVPYmplY3QiLCJfX21lcmdlT2JqZWN0IiwidG9Mb2NhbGVMb3dlckNhc2UiLCJjaGVja2VkIiwiaW5uZXJIVE1MIiwidGFyZ2V0Iiwic291cmNlIiwia2V5IiwiYXNzaWduIiwicGF0aCIsIm5ld09iamVjdCIsImkiLCJyZXF1ZXN0X2RhdGEiLCJnZXRDb21tb25QYXJhbXNFeHRlbmQiLCJDb0NyZWF0ZVJlbmRlciIsInNlbGVjdG9yIiwiY3JlYXRlQXBpU29ja2V0IiwiaG9zdCIsIm5hbWVzcGFjZSIsImNyZWF0ZSIsInJvb20iLCJzZXRHbG9iYWxTY29wZSIsImluZm8iLCJhcGlLZXkiLCJjb25maWciLCJzZWN1cml0eUtleSIsIm9yZ2FuaXphdGlvbl9pZCIsIm9yZ2FuaXphdGlvbl9JZCIsImFwaSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOzs7O0FBRUEsTUFBTUEsV0FBVyxHQUFHO0FBQ25CQyxTQUFPLEVBQUUsRUFEVTtBQUduQkMsTUFBSSxFQUFFLFVBQVM7QUFBQ0MsUUFBRDtBQUFPQztBQUFQLEdBQVQsRUFBeUI7QUFDOUIsU0FBS0MsUUFBTCxDQUFjRixJQUFkLEVBQW9CQyxNQUFwQjtBQUNBLEdBTGtCO0FBT25CQyxVQUFRLEVBQUUsVUFBU0YsSUFBVCxFQUFlRyxVQUFmLEVBQTJCO0FBQ3BDLFVBQU1DLElBQUksR0FBRyxJQUFiOztBQUNBLFFBQUksT0FBTyxLQUFLTixPQUFMLENBQWFFLElBQWIsQ0FBUCxLQUE4QixXQUFsQyxFQUErQztBQUM5QyxXQUFLRixPQUFMLENBQWFFLElBQWIsSUFBcUJHLFVBQXJCO0FBRUFFLGVBQVMsQ0FBQ0MsTUFBVixDQUFpQk4sSUFBakIsRUFBd0JPLElBQUQsSUFBVTtBQUNoQ0gsWUFBSSxDQUFDSSxpQkFBTCxDQUF1QlIsSUFBdkIsRUFBNkJPLElBQTdCO0FBQ0EsT0FGRCxFQUg4QyxDQU85Qzs7QUFFQSxVQUFJRSxLQUFLLENBQUNDLE9BQU4sQ0FBY1AsVUFBVSxDQUFDLFNBQUQsQ0FBeEIsQ0FBSixFQUEwQztBQUN6Q0Esa0JBQVUsQ0FBQyxTQUFELENBQVYsQ0FBc0JRLE9BQXRCLENBQStCQyxNQUFELElBQVk7QUFDekMsY0FBSSxPQUFPVCxVQUFVLENBQUUsVUFBU1MsTUFBTyxFQUFsQixDQUFqQixLQUEwQyxVQUE5QyxFQUEwRDtBQUN6RFQsc0JBQVUsQ0FBRSxVQUFTUyxNQUFPLEVBQWxCLENBQVYsR0FBaUMsVUFBU0MsT0FBVCxFQUFrQjtBQUNsRFQsa0JBQUksQ0FBQ1UsY0FBTCxDQUFvQlgsVUFBVSxDQUFDWSxFQUEvQixFQUFtQ0gsTUFBbkMsRUFB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QVYsQ0FBeUJILFNBQXpCO0FBQ0EsS0FQRCxNQU9PO0FBQ05oRSxlQUFTLENBQUNpRSxNQUFWLENBQWlCO0FBQ2hCRCxpQkFBUyxFQUFFLElBREs7QUFFaEJFLFlBQUksRUFBRSxJQUZVO0FBR2hCSCxZQUFJLEVBQUVBO0FBSFUsT0FBakI7QUFLQTtBQUNELEdBMUxrQjtBQTRMbkJKLHVCQUFxQixFQUFFLFVBQVNTLElBQVQsRUFDdkI7QUFDQyxXQUFPO0FBQ04sZ0JBQW9CQSxJQUFJLENBQUNDLE1BQUwsSUFBZUMsTUFBTSxDQUFDRCxNQURwQztBQUVOLHFCQUFvQkQsSUFBSSxDQUFDRyxXQUFMLElBQW9CRCxNQUFNLENBQUNDLFdBRnpDO0FBR04seUJBQW9CSCxJQUFJLENBQUNJLGVBQUwsSUFBd0JGLE1BQU0sQ0FBQ0c7QUFIN0MsS0FBUDtBQUtBO0FBbk1rQixDQUFwQjs7QUFzTUFDLGFBQUloRixJQUFKLENBQVM7QUFDUkMsTUFBSSxFQUFFSCxXQUFXLENBQUNrQixFQURWO0FBRVJkLFFBQU0sRUFBRUo7QUFGQSxDQUFUOztlQUtlQSxXIiwiZmlsZSI6Ii4vc3JjL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvQ3JlYXRlU29ja2V0IGZyb20gXCJAY29jcmVhdGUvc29ja2V0XCJcbmltcG9ydCBDb0NyZWF0ZUFjdGlvbiBmcm9tICdAY29jcmVhdGUvYWN0aW9uJ1xuaW1wb3J0IENvQ3JlYXRlUmVuZGVyIGZyb20gJ0Bjb2NyZWF0ZS9yZW5kZXInXG5cbmltcG9ydCBhcGkgZnJvbSAnQGNvY3JlYXRlL2FwaSdcblxuY29uc3QgQ29DcmVhdGVBcGkgPSB7IFxuXHRtb2R1bGVzOiB7IH0sXG5cdFxuXHRpbml0OiBmdW5jdGlvbih7bmFtZSwgbW9kdWxlfSkge1xuXHRcdHRoaXMucmVnaXN0ZXIobmFtZSwgbW9kdWxlKVx0XG5cdH0sXG5cdFxuXHRyZWdpc3RlcjogZnVuY3Rpb24obmFtZSwgbV9pbnN0YW5jZSkge1xuXHRcdGNvbnN0IHNlbGYgPSB0aGlzO1xuXHRcdGlmICh0eXBlb2YgdGhpcy5tb2R1bGVzW25hbWVdID09PSAndW5kZWZpbmVkJykge1xuXHRcdFx0dGhpcy5tb2R1bGVzW25hbWVdID0gbV9pbnN0YW5jZTtcblx0XHRcdFxuXHRcdFx0c29ja2V0QXBpLmxpc3RlbihuYW1lLCAoZGF0YSkgPT4ge1xuXHRcdFx0XHRzZWxmLl9fcmVzcG9uc2VQcm9jZXNzKG5hbWUsIGRhdGEpO1xuXHRcdFx0fSlcblx0XHRcdFxuXHRcdFx0Ly8uIHJlZ2lzdGVyIGFjdGlvbnNcblx0XHRcdFxuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkobV9pbnN0YW5jZVsnYWN0aW9ucyddKSkge1xuXHRcdFx0XHRtX2luc3RhbmNlWydhY3Rpb25zJ10uZm9yRWFjaCgoYWN0aW9uKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBtX2luc3RhbmNlW2BhY3Rpb25fJHthY3Rpb259YF0gIT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdG1faW5zdGFuY2VbYGFjdGlvbl8ke2FjdGlvbn1gXSA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcblx0XHRcdFx0XHRcdFx0c2VsZi5fX2NvbW1vbkFjdGlvbihtX2luc3RhbmNlLmlkLCBhY3Rpb24sIGVsZW1lbnQpXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBcblx0XHRcdFx0XHRDb0NyZWF0ZUFjdGlvbi5pbml0KHtcblx0XHRcdFx0XHRcdGFjdGlvbjogYWN0aW9uLFxuXHRcdFx0XHRcdFx0ZW5kRXZlbnQ6IGFjdGlvbixcblx0XHRcdFx0XHRcdGNhbGxiYWNrOiAoYnRuKSA9PiB7XG5cdFx0XHRcdFx0XHRcdG1faW5zdGFuY2VbYGFjdGlvbl8ke2FjdGlvbn1gXShidG4pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9KVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0XG5cdF9fcmVzcG9uc2VQcm9jZXNzOiBmdW5jdGlvbihtX25hbWUsIGRhdGEpIHtcblx0XHRjb25zdCB7dHlwZSwgcmVzcG9uc2V9ID0gZGF0YTtcblx0XHRjb25zdCBtX2luc3RhbmNlID0gdGhpcy5tb2R1bGVzW21fbmFtZV1cblx0XHRcblx0XHRpZiAodHlwZSAmJiByZXNwb25zZSAmJiBtX2luc3RhbmNlKSB7XG5cdFx0XG5cdFx0XHRpZiAoIHR5cGVvZiBtX2luc3RhbmNlW2ByZW5kZXJfJHt0eXBlfWBdID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdG1faW5zdGFuY2VbYHJlbmRlcl8ke3R5cGV9YF0ocmVzcG9uc2UpO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHR0aGlzLnJlbmRlcih0eXBlLCByZXNwb25zZSk7XG5cdFx0XHRcblx0XHRcdGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KHR5cGUsIHtcblx0XHRcdFx0ZGV0YWlsOiB7XG5cdFx0XHRcdFx0ZGF0YTogcmVzcG9uc2Vcblx0XHRcdFx0fVxuXHRcdFx0fSkpXG5cdFx0fVxuXHR9LFxuXHRcblx0X19jb21tb25BY3Rpb246IGZ1bmN0aW9uKGlkLCBhY3Rpb24sIGVsZW1lbnQpIHtcblx0XHRjb25zdCBjb250YWluZXIgPSBlbGVtZW50LmNsb3Nlc3QoXCJmb3JtXCIpIHx8IGRvY3VtZW50O1xuXHRcdGxldCBkYXRhID0gQ29DcmVhdGVBcGkuZ2V0Rm9ybURhdGEoaWQsIGFjdGlvbiwgIGNvbnRhaW5lcik7XG5cdFx0Q29DcmVhdGVBcGkuc2VuZChpZCwgYWN0aW9uLCBkYXRhKTtcblx0fSxcblx0XG5cdFxuXHRnZXRGb3JtRGF0YSA6IGZ1bmN0aW9uKG1fbmFtZSwgYWN0aW9uLCBjb250YWluZXIpe1xuXHRcdGNvbnN0IG1haW5BdHRyID0gYGRhdGEtJHttX25hbWV9YDtcblx0XHRjb25zdCBzZWxmID0gdGhpcztcblx0XHRjb25zdCBlbGVtZW50cyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKGBbJHttYWluQXR0cn1ePVwiJHthY3Rpb259LlwiXWApO1xuXG5cdFx0bGV0IGRhdGEgPSB7fVxuXHRcdGVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG5cdFx0XHRsZXQgbmFtZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKG1haW5BdHRyKTtcblx0XHRcdGxldCBhcnJheV9uYW1lID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUobWFpbkF0dHIgKyBcIl9hcnJheVwiKTtcblx0XHRcdGxldCB2YWx1ZSA9IHNlbGYuX19nZXRFbFZhbHVlKGVsZW1lbnQpO1xuXHRcdFx0XG5cdFx0XHRpZiAoIW5hbWUpIHJldHVyblxuXG5cdFx0XHRpZiAoYWN0aW9uKSB7XG5cdFx0XHRcdGxldCByZSA9IG5ldyBSZWdFeHAoYF4ke2FjdGlvbn0uYCwgJ2knKTtcblx0XHRcdFx0aWYgKHJlLnRlc3QobmFtZSkpIHtcblx0XHRcdFx0XHRuYW1lID0gbmFtZS5yZXBsYWNlKHJlLCBcIlwiKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0aWYgKGFycmF5X25hbWUpIHtcblx0XHRcdFx0aWYgKCFkYXRhW25hbWVdKSB7XG5cdFx0XHRcdFx0ZGF0YVtuYW1lXSA9IFtdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGFbbmFtZV0ucHVzaChzZWxmLmdldEZvcm1EYXRhKG1fbmFtZSwgYXJyYXlfbmFtZSwgZWxlbWVudCkpO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XG5cdFx0XHRcdGRhdGFbbmFtZV0gPSB2YWx1ZTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRcblx0XHRsZXQga2V5cyA9IE9iamVjdC5rZXlzKGRhdGEpXG5cdFx0bGV0IG9iamVjdERhdGEgPSB7fTtcblx0XHRrZXlzLmZvckVhY2goKGspID0+IHtcblx0XHRcdGlmIChrLnNwbGl0KCcuJykubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRsZXQgbmV3RGF0YSA9IHNlbGYuX19jcmVhdGVPYmplY3QoZGF0YVtrXSwgayk7XG5cdFx0XHRcdGRlbGV0ZSBkYXRhW2tdXG5cdFx0XHRcdFxuXHRcdFx0XHRvYmplY3REYXRhID0gc2VsZi5fX21lcmdlT2JqZWN0KG9iamVjdERhdGEsIG5ld0RhdGEpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b2JqZWN0RGF0YVtrXSA9IGRhdGFba107XG5cdFx0XHR9XG5cdFx0fSlcblx0XHRyZXR1cm4gb2JqZWN0RGF0YTtcblx0fSxcblx0XG5cdF9fZ2V0RWxWYWx1ZTogZnVuY3Rpb24oZWxlbWVudCkge1xuXHRcdGxldCB2YWx1ZSA9IG51bGw7XG5cdFx0aWYgKHR5cGVvZiBlbGVtZW50LnZhbHVlICE9PSBcInVuZGVmaW5lZFwiKSB7XG5cdFx0XHRzd2l0Y2ggKGVsZW1lbnQudHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSB7XG5cdFx0XHRcdGNhc2UgJ2NoZWNrYm94Jzpcblx0XHRcdFx0XHRpZiAoZWxlbWVudC5jaGVja2VkKSB7XG5cdFx0XHRcdFx0XHR2YWx1ZSA9IGVsZW1lbnQudmFsdWVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0dmFsdWUgPSBlbGVtZW50LnZhbHVlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR2YWx1ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd2YWx1ZScpO1xuXHRcdFx0aWYgKCF2YWx1ZSkge1xuXHRcdFx0XHR2YWx1ZSA9IGVsZW1lbnQuaW5uZXJIVE1MO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRyZXR1cm4gdmFsdWU7XG5cdH0sXG5cdFxuXHRfX21lcmdlT2JqZWN0OiBmdW5jdGlvbih0YXJnZXQsIHNvdXJjZSkge1xuXHRcdHRhcmdldCA9IHRhcmdldCB8fCB7fTtcblx0XHRmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMoc291cmNlKSkge1xuXHRcdFx0aWYgKHNvdXJjZVtrZXldIGluc3RhbmNlb2YgT2JqZWN0KSB7XG5cdFx0XHRcdE9iamVjdC5hc3NpZ24oc291cmNlW2tleV0sIHRoaXMuX19tZXJnZU9iamVjdCh0YXJnZXRba2V5XSwgc291cmNlW2tleV0pKVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRPYmplY3QuYXNzaWduKHRhcmdldCB8fCB7fSwgc291cmNlKVxuXHRcdHJldHVybiB0YXJnZXRcblx0fSxcblx0XG5cdF9fY3JlYXRlT2JqZWN0OiBmdW5jdGlvbiAoZGF0YSwgcGF0aCkge1xuXHRcdGlmICghcGF0aCkgcmV0dXJuIGRhdGE7XG5cdFx0XG5cdFx0bGV0IGtleXMgPSBwYXRoLnNwbGl0KCcuJylcblx0XHRsZXQgbmV3T2JqZWN0ID0gZGF0YTtcblxuXHRcdGZvciAodmFyICBpID0ga2V5cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuXHRcdFx0bmV3T2JqZWN0ID0ge1trZXlzW2ldXTogbmV3T2JqZWN0fVx0XHRcdFx0XG5cdFx0fVxuXHRcdHJldHVybiBuZXdPYmplY3Q7XG5cdH0sXG5cdFxuXHRzZW5kIDogZnVuY3Rpb24obW9kdWxlLCBhY3Rpb24sIGRhdGEpeyBcblx0XHRsZXQgcmVxdWVzdF9kYXRhID0gdGhpcy5nZXRDb21tb25QYXJhbXNFeHRlbmQoZGF0YSB8fCB7fSk7XG5cdFx0cmVxdWVzdF9kYXRhID0gey4uLnJlcXVlc3RfZGF0YSwgZGF0YX07XG5cdFx0c29ja2V0QXBpLnNlbmQobW9kdWxlLCB7dHlwZTogYWN0aW9uLCBkYXRhOiByZXF1ZXN0X2RhdGF9KTtcblx0fSxcblx0XG5cdHJlbmRlcjogZnVuY3Rpb24oYWN0aW9uLCBkYXRhKSB7XG5cdFx0Q29DcmVhdGVSZW5kZXIuZGF0YSh7XG5cdFx0XHRzZWxlY3RvcjogYFtkYXRhLXRlbXBsYXRlX2lkPVwiJHthY3Rpb259XCJdYCwgXG5cdFx0XHRkYXRhOiBkYXRhXG5cdFx0fSk7XG5cdH0sXG5cdFxuXHRjcmVhdGVBcGlTb2NrZXQ6IGZ1bmN0aW9uKGhvc3QsIG5hbWVzcGFjZSkge1xuXHRcdGlmIChuYW1lc3BhY2UpIHtcblx0XHRcdHNvY2tldEFwaS5jcmVhdGUoe1xuXHRcdFx0XHRuYW1lc3BhY2U6IG5hbWVzcGFjZSwgXG5cdFx0XHRcdHJvb206IG51bGwsXG5cdFx0XHRcdGhvc3Q6IGhvc3Rcblx0XHRcdH0pO1xuXHRcdFx0c29ja2V0QXBpLnNldEdsb2JhbFNjb3BlKG5hbWVzcGFjZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHNvY2tldEFwaS5jcmVhdGUoe1xuXHRcdFx0XHRuYW1lc3BhY2U6IG51bGwsIFxuXHRcdFx0XHRyb29tOiBudWxsLFxuXHRcdFx0XHRob3N0OiBob3N0XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cdFxuXHRnZXRDb21tb25QYXJhbXNFeHRlbmQ6IGZ1bmN0aW9uKGluZm8pIFxuXHR7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFwiYXBpS2V5XCI6ICAgICAgICAgICBpbmZvLmFwaUtleSB8fCBjb25maWcuYXBpS2V5LFxuXHRcdFx0XCJzZWN1cml0eUtleVwiOiAgICAgIGluZm8uc2VjdXJpdHlLZXkgfHwgY29uZmlnLnNlY3VyaXR5S2V5LFxuXHRcdFx0XCJvcmdhbml6YXRpb25faWRcIjogIGluZm8ub3JnYW5pemF0aW9uX2lkIHx8IGNvbmZpZy5vcmdhbml6YXRpb25fSWQsXG5cdFx0fVxuXHR9XG59XG5cbmFwaS5pbml0KHtcblx0bmFtZTogQ29DcmVhdGVBcGkuaWQsIFxuXHRtb2R1bGU6XHRDb0NyZWF0ZUFwaSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBDb0NyZWF0ZUFwaTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/index.js\n')},"../CoCreate-render/src/index.js":(__unused_webpack_module,exports)=>{eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\n/**\n * change name Class\n * add functionality to add value on any attr of each elements into template\n */\nconst CoCreateRender = {\n __getValueFromObject: function (json, path) {\n try {\n if (typeof json == 'undefined' || !path) return false;\n let jsonData = json,\n subpath = path.split('.');\n\n for (let i = 0; i < subpath.length; i++) {\n jsonData = jsonData[subpath[i]];\n if (!jsonData) return false;\n }\n\n return jsonData;\n } catch (error) {\n console.log(\"Error in getValueFromObject\", error);\n return false;\n }\n },\n __getValue: function (data, attrValue) {\n let result = /{{\\s*([\\w\\W]+)\\s*}}/g.exec(attrValue);\n\n if (result) {\n return this.__getValueFromObject(data, result[1].trim());\n }\n\n return false;\n },\n __createObject: function (data, path) {\n try {\n if (!path) return data;\n let keys = path.split('.');\n let newObject = data;\n\n for (var i = keys.length - 1; i >= 0; i--) {\n newObject = {\n [keys[i]]: newObject\n };\n }\n\n return newObject;\n } catch (error) {\n console.log(\"Error in getValueFromObject\", error);\n return false;\n }\n },\n __replaceValue: function (data, inputValue) {\n let isPass = false;\n let self = this;\n let resultValue = null; // let variables = inputValue.match(/{{\\s*(\\S+)\\s*}}/g);\n\n let variables = inputValue.match(/{{([A-Za-z0-9_.,\\- ]*)}}/g);\n\n if (variables) {\n variables.forEach(attr => {\n let value = self.__getValue(data, attr);\n\n if (value && typeof value !== \"object\") {\n isPass = true;\n inputValue = inputValue.replace(attr, value);\n }\n });\n\n if (isPass) {\n resultValue = inputValue;\n }\n }\n\n return resultValue;\n },\n setArray: function (template, data) {\n const type = template.getAttribute('data-render_array') || \"data\";\n const render_key = template.getAttribute('data-render_key') || type;\n const self = this;\n\n const arrayData = this.__getValueFromObject(data, type);\n\n if (type && Array.isArray(arrayData)) {\n arrayData.forEach((item, index) => {\n let cloneEl = template.cloneNode(true);\n cloneEl.classList.remove('template');\n cloneEl.classList.add('clone_' + type);\n\n if (typeof item !== 'object') {\n item = {\n \"--\": item\n };\n } else {\n item['index'] = index;\n }\n\n let r_data = self.__createObject(item, render_key);\n\n self.setValue([cloneEl], r_data);\n template.insertAdjacentHTML('beforebegin', cloneEl.outerHTML);\n });\n }\n },\n setValue: function (els, data, passTo, template) {\n if (!data) return;\n const that = this;\n Array.from(els).forEach(e => {\n let passId = e.getAttribute('data-pass_id');\n\n if (passTo && passId != passTo) {\n return;\n }\n\n Array.from(e.attributes).forEach(attr => {\n let attr_name = attr.name.toLowerCase();\n let isPass = false;\n let attrValue = attr.value;\n attrValue = that.__replaceValue(data, attrValue);\n\n if (attrValue) {\n if (attr_name == 'value') {\n let tag = e.tagName.toLowerCase();\n\n switch (tag) {\n case 'input':\n e.setAttribute(attr_name, attrValue);\n break;\n\n case 'textarea':\n e.setAttribute(attr_name, attrValue);\n e.textContent = attrValue;\n break;\n\n default:\n if (e.children.length === 0) {\n e.innerHTML = attrValue;\n }\n\n }\n }\n\n e.setAttribute(attr_name, attrValue);\n }\n });\n\n if (e.children.length == 0 && e.textContent) {\n let textContent = e.textContent;\n textContent = that.__replaceValue(data, textContent);\n\n if (textContent) {\n e.textContent = textContent;\n }\n }\n\n if (e.children.length > 0) {\n that.setValue(e.children, data);\n\n if (e.classList.contains('template')) {\n that.setArray(e, data);\n }\n }\n });\n },\n data: function ({\n selector,\n data,\n elements,\n passTo\n }) {\n if (selector) {\n this.render(selector, data);\n } else if (elements) {\n this.setValue(elements, data, passTo);\n }\n },\n render: function (selector, dataResult) {\n let template_div = document.querySelector(selector);\n\n if (!template_div) {\n return;\n }\n\n if (Array.isArray(dataResult)) {\n template_div.setAttribute('data-render_array', 'test');\n this.setValue([template_div], {\n test: dataResult\n });\n } else {\n this.setValue(template_div.children, dataResult);\n }\n }\n};\nvar _default = CoCreateRender;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db0NyZWF0ZS5hcGkvLi4vQ29DcmVhdGUtcmVuZGVyL3NyYy9pbmRleC5qcz85ZDc1Il0sIm5hbWVzIjpbIkNvQ3JlYXRlUmVuZGVyIiwiX19nZXRWYWx1ZUZyb21PYmplY3QiLCJqc29uIiwicGF0aCIsImpzb25EYXRhIiwic3VicGF0aCIsInNwbGl0IiwiaSIsImxlbmd0aCIsImVycm9yIiwiY29uc29sZSIsImxvZyIsIl9fZ2V0VmFsdWUiLCJkYXRhIiwiYXR0clZhbHVlIiwicmVzdWx0IiwiZXhlYyIsInRyaW0iLCJfX2NyZWF0ZU9iamVjdCIsImtleXMiLCJuZXdPYmplY3QiLCJfX3JlcGxhY2VWYWx1ZSIsImlucHV0VmFsdWUiLCJpc1Bhc3MiLCJzZWxmIiwicmVzdWx0VmFsdWUiLCJ2YXJpYWJsZXMiLCJtYXRjaCIsImZvckVhY2giLCJhdHRyIiwidmFsdWUiLCJyZXBsYWNlIiwic2V0QXJyYXkiLCJ0ZW1wbGF0ZSIsInR5cGUiLCJnZXRBdHRyaWJ1dGUiLCJyZW5kZXJfa2V5IiwiYXJyYXlEYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbSIsImluZGV4IiwiY2xvbmVFbCIsImNsb25lTm9kZSIsImNsYXNzTGlzdCIsInJlbW92ZSIsImFkZCIsInJfZGF0YSIsInNldFZhbHVlIiwiaW5zZXJ0QWRqYWNlbnRIVE1MIiwib3V0ZXJIVE1MIiwiZWxzIiwicGFzc1RvIiwidGhhdCIsImZyb20iLCJlIiwicGFzc0lkIiwiYXR0cmlidXRlcyIsImF0dHJfbmFtZSIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsInRhZyIsInRhZ05hbWUiLCJzZXRBdHRyaWJ1dGUiLCJ0ZXh0Q29udGVudCIsImNoaWxkcmVuIiwiaW5uZXJIVE1MIiwiY29udGFpbnMiLCJzZWxlY3RvciIsImVsZW1lbnRzIiwicmVuZGVyIiwiZGF0YVJlc3VsdCIsInRlbXBsYXRlX2RpdiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInRlc3QiXSwibWFwcGluZ3MiOiI7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QUFDQSxLQUZELE1BRU8sSUFBSXdELFFBQUosRUFBYztBQUNwQixXQUFLckIsUUFBTCxDQUFjcUIsUUFBZCxFQUF3QnhELElBQXhCLEVBQThCdUMsTUFBOUI7QUFDQTtBQUNELEdBMUpxQjtBQTRKdEJrQixRQUFNLEVBQUcsVUFBU0YsUUFBVCxFQUFtQkcsVUFBbkIsRUFBK0I7QUFDdkMsUUFBSUMsWUFBWSxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUJOLFFBQXZCLENBQW5COztBQUNBLFFBQUksQ0FBQ0ksWUFBTCxFQUFtQjtBQUNsQjtBQUNBOztBQUNELFFBQUlsQyxLQUFLLENBQUNDLE9BQU4sQ0FBY2dDLFVBQWQsQ0FBSixFQUErQjtBQUM5QkMsa0JBQVksQ0FBQ1QsWUFBYixDQUEwQixtQkFBMUIsRUFBK0MsTUFBL0M7QUFDQSxXQUFLZixRQUFMLENBQWMsQ0FBQ3dCLFlBQUQsQ0FBZCxFQUE4QjtBQUFDRyxZQUFJLEVBQUVKO0FBQVAsT0FBOUI7QUFDQSxLQUhELE1BR087QUFDTixXQUFLdkIsUUFBTCxDQUFjd0IsWUFBWSxDQUFDUCxRQUEzQixFQUFxQ00sVUFBckM7QUFDQTtBQUNEO0FBdktxQixDQUF2QjtlQTBLZXZFLGMiLCJmaWxlIjoiLi4vQ29DcmVhdGUtcmVuZGVyL3NyYy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogY2hhbmdlIG5hbWUgQ2xhc3NcbiAqIGFkZCBmdW5jdGlvbmFsaXR5IHRvIGFkZCB2YWx1ZSBvbiBhbnkgYXR0ciBvZiBlYWNoIGVsZW1lbnRzIGludG8gdGVtcGxhdGVcbiAqL1xuY29uc3QgQ29DcmVhdGVSZW5kZXIgPSB7XG5cblx0X19nZXRWYWx1ZUZyb21PYmplY3QgOiBmdW5jdGlvbihqc29uLCBwYXRoKSB7XG5cdFx0dHJ5IHtcblx0XHRcdGlmKHR5cGVvZiBqc29uID09ICd1bmRlZmluZWQnIHx8ICFwYXRoKVxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRsZXQganNvbkRhdGEgPSBqc29uLCBzdWJwYXRoID0gcGF0aC5zcGxpdCgnLicpO1xuXHRcdFx0XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHN1YnBhdGgubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0anNvbkRhdGEgPSBqc29uRGF0YVtzdWJwYXRoW2ldXTtcblx0XHRcdFx0aWYgKCFqc29uRGF0YSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGpzb25EYXRhO1xuXHRcdH1jYXRjaChlcnJvcil7XG5cdFx0XHRjb25zb2xlLmxvZyhcIkVycm9yIGluIGdldFZhbHVlRnJvbU9iamVjdFwiLCBlcnJvcik7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9LFxuXHRcblx0X19nZXRWYWx1ZTogZnVuY3Rpb24oZGF0YSwgYXR0clZhbHVlKSB7XG5cdFx0bGV0IHJlc3VsdCA9IC97e1xccyooW1xcd1xcV10rKVxccyp9fS9nLmV4ZWMoYXR0clZhbHVlKTtcblx0XHRpZiAocmVzdWx0KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fX2dldFZhbHVlRnJvbU9iamVjdChkYXRhLCByZXN1bHRbMV0udHJpbSgpKTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFxuXHR9LFxuXHRcblx0X19jcmVhdGVPYmplY3Q6IGZ1bmN0aW9uIChkYXRhLCBwYXRoKSB7XG5cdFx0dHJ5IHtcblx0XHRcdGlmICghcGF0aCkgcmV0dXJuIGRhdGE7XG5cdFx0XHRcblx0XHRcdGxldCBrZXlzID0gcGF0aC5zcGxpdCgnLicpXG5cdFx0XHRsZXQgbmV3T2JqZWN0ID0gZGF0YTtcblxuXHRcdFx0Zm9yICh2YXIgIGkgPSBrZXlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG5cdFx0XHRcdG5ld09iamVjdCA9IHtba2V5c1tpXV06IG5ld09iamVjdH1cdFx0XHRcdFxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG5ld09iamVjdDtcblx0XHRcdFxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIkVycm9yIGluIGdldFZhbHVlRnJvbU9iamVjdFwiLCBlcnJvcik7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9LFxuXHRcblx0X19yZXBsYWNlVmFsdWU6IGZ1bmN0aW9uKGRhdGEsIGlucHV0VmFsdWUpIHtcblx0XHRsZXQgaXNQYXNzID0gZmFsc2U7XG5cdFx0bGV0IHNlbGYgPSB0aGlzO1xuXHRcdGxldCByZXN1bHRWYWx1ZSA9IG51bGw7XG5cdFx0Ly8gbGV0IHZhcmlhYmxlcyA9IGlucHV0VmFsdWUubWF0Y2goL3t7XFxzKihcXFMrKVxccyp9fS9nKTtcblx0XHRsZXQgdmFyaWFibGVzID0gaW5wdXRWYWx1ZS5tYXRjaCgve3soW0EtWmEtejAtOV8uLFxcLSBdKil9fS9nKTtcblx0XHRpZiAodmFyaWFibGVzKSB7XG5cdFx0XHR2YXJpYWJsZXMuZm9yRWFjaCgoYXR0cikgPT4ge1xuXHRcdFx0XHRsZXQgdmFsdWUgPSBzZWxmLl9fZ2V0VmFsdWUoZGF0YSwgYXR0cilcblx0XHRcdFx0aWYgKHZhbHVlICYmIHR5cGVvZih2YWx1ZSkgIT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0XHRpc1Bhc3MgPSB0cnVlO1xuXHRcdFx0XHRcdGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlLnJlcGxhY2UoYXR0ciwgdmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0XG5cdFx0XHRpZiAoaXNQYXNzKSB7XG5cdFx0XHRcdHJlc3VsdFZhbHVlID0gaW5wdXRWYWx1ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHJlc3VsdFZhbHVlO1xuXHR9LFxuXHRcblx0c2V0QXJyYXk6IGZ1bmN0aW9uKHRlbXBsYXRlLCBkYXRhKSB7XG5cdFx0Y29uc3QgdHlwZSA9IHRlbXBsYXRlLmdldEF0dHJpYnV0ZSgnZGF0YS1yZW5kZXJfYXJyYXknKSB8fCBcImRhdGFcIjtcblx0XHRjb25zdCByZW5kZXJfa2V5ID0gdGVtcGxhdGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlbmRlcl9rZXknKSB8fCB0eXBlO1xuXHRcdGNvbnN0IHNlbGYgPSB0aGlzO1xuXHRcdGNvbnN0IGFycmF5RGF0YSA9IHRoaXMuX19nZXRWYWx1ZUZyb21PYmplY3QoZGF0YSwgdHlwZSk7XG5cblx0XHRpZiAodHlwZSAmJiBBcnJheS5pc0FycmF5KGFycmF5RGF0YSkpIHtcblx0XHRcdGFycmF5RGF0YS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRcblx0XHRcdFx0bGV0IGNsb25lRWwgPSB0ZW1wbGF0ZS5jbG9uZU5vZGUodHJ1ZSk7XG5cdFx0XHRcdGNsb25lRWwuY2xhc3NMaXN0LnJlbW92ZSgndGVtcGxhdGUnKTtcblx0XHRcdFx0Y2xvbmVFbC5jbGFzc0xpc3QuYWRkKCdjbG9uZV8nICsgdHlwZSk7XG5cdFx0XHRcdGlmICh0eXBlb2YgaXRlbSAhPT0gJ29iamVjdCcpIHtcblx0XHRcdFx0XHRpdGVtID0ge1wiLS1cIjogaXRlbX07XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aXRlbVsnaW5kZXgnXSA9IGluZGV4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCByX2RhdGEgPSBzZWxmLl9fY3JlYXRlT2JqZWN0KGl0ZW0sIHJlbmRlcl9rZXkpO1xuXG5cdFx0XHRcdHNlbGYuc2V0VmFsdWUoW2Nsb25lRWxdLCByX2RhdGEpO1xuXHRcdFx0XHR0ZW1wbGF0ZS5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWJlZ2luJywgY2xvbmVFbC5vdXRlckhUTUwpO1xuXHRcdFx0fSlcblx0XHR9XG5cdH0sXG4gXG5cdHNldFZhbHVlOmZ1bmN0aW9uKGVscywgZGF0YSwgcGFzc1RvLCB0ZW1wbGF0ZSl7XG5cdFx0aWYgKCFkYXRhKSByZXR1cm47XG5cdFx0Y29uc3QgdGhhdCA9IHRoaXM7XG5cdFx0QXJyYXkuZnJvbShlbHMpLmZvckVhY2goZSA9PiB7XG5cdFx0XHRsZXQgcGFzc0lkID0gZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGFzc19pZCcpO1xuXHRcdFx0aWYgKHBhc3NUbyAmJiBwYXNzSWQgIT0gcGFzc1RvKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdEFycmF5LmZyb20oZS5hdHRyaWJ1dGVzKS5mb3JFYWNoKGF0dHI9Pntcblx0XHRcdFx0bGV0IGF0dHJfbmFtZSA9IGF0dHIubmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHRsZXQgIGlzUGFzcyA9IGZhbHNlO1xuXHRcdFx0XHRsZXQgYXR0clZhbHVlID0gYXR0ci52YWx1ZTtcblx0XHRcdFx0YXR0clZhbHVlID0gdGhhdC5fX3JlcGxhY2VWYWx1ZShkYXRhLCBhdHRyVmFsdWUpO1xuXHRcdFx0XHRcblx0XHRcdFx0aWYgKGF0dHJWYWx1ZSkge1xuXHRcdFx0XHRcdGlmKGF0dHJfbmFtZSA9PSAndmFsdWUnKXtcblx0XHRcdFx0XHRcdGxldCB0YWcgPSBlLnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHRcdHN3aXRjaCAodGFnKSB7XG5cdFx0XHRcdFx0XHRcdGNhc2UgJ2lucHV0Jzpcblx0XHRcdFx0XHRcdFx0XHQgZS5zZXRBdHRyaWJ1dGUoYXR0cl9uYW1lLCBhdHRyVmFsdWUpO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRjYXNlICd0ZXh0YXJlYSc6XG5cdFx0XHRcdFx0XHRcdFx0ZS5zZXRBdHRyaWJ1dGUoYXR0cl9uYW1lLCBhdHRyVmFsdWUpO1xuXHRcdFx0XHRcdFx0XHRcdGUudGV4dENvbnRlbnQgPSBhdHRyVmFsdWU7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0aWYgKGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRlLmlubmVySFRNTCA9ICBhdHRyVmFsdWU7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlLnNldEF0dHJpYnV0ZShhdHRyX25hbWUsIGF0dHJWYWx1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0XG5cdFx0XHRpZiAoZS5jaGlsZHJlbi5sZW5ndGggPT0gMCAmJiBlLnRleHRDb250ZW50KSB7XG5cdFx0XHRcdGxldCB0ZXh0Q29udGVudCA9IGUudGV4dENvbnRlbnQ7XG5cdFx0XHRcdHRleHRDb250ZW50ID0gdGhhdC5fX3JlcGxhY2VWYWx1ZShkYXRhLCB0ZXh0Q29udGVudCk7XG5cdFx0XHRcdGlmICh0ZXh0Q29udGVudCkge1xuXHRcdFx0XHRcdGUudGV4dENvbnRlbnQgPSB0ZXh0Q29udGVudDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRcblx0XHRcdFxuXHRcdFx0aWYoZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdHRoYXQuc2V0VmFsdWUoZS5jaGlsZHJlbiwgZGF0YSlcblx0XHRcdFx0XG5cdFx0XHRcdGlmIChlLmNsYXNzTGlzdC5jb250YWlucygndGVtcGxhdGUnKSkge1xuXHRcdFx0XHRcdHRoYXQuc2V0QXJyYXkoZSwgZGF0YSk7XG5cdFx0XHRcdH0gXG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cdFxuXHRkYXRhOiBmdW5jdGlvbih7c2VsZWN0b3IsIGRhdGEsIGVsZW1lbnRzLCBwYXNzVG99KSB7XG5cdFx0aWYgKHNlbGVjdG9yKSB7XG5cdFx0XHR0aGlzLnJlbmRlcihzZWxlY3RvciwgZGF0YSk7XG5cdFx0fSBlbHNlIGlmIChlbGVtZW50cykge1xuXHRcdFx0dGhpcy5zZXRWYWx1ZShlbGVtZW50cywgZGF0YSwgcGFzc1RvKTtcblx0XHR9XG5cdH0sXG5cdFxuXHRyZW5kZXIgOiBmdW5jdGlvbihzZWxlY3RvciwgZGF0YVJlc3VsdCkge1xuXHRcdGxldCB0ZW1wbGF0ZV9kaXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKVxuXHRcdGlmICghdGVtcGxhdGVfZGl2KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmIChBcnJheS5pc0FycmF5KGRhdGFSZXN1bHQpKSB7XG5cdFx0XHR0ZW1wbGF0ZV9kaXYuc2V0QXR0cmlidXRlKCdkYXRhLXJlbmRlcl9hcnJheScsICd0ZXN0Jyk7XG5cdFx0XHR0aGlzLnNldFZhbHVlKFt0ZW1wbGF0ZV9kaXZdLCB7dGVzdDogZGF0YVJlc3VsdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnNldFZhbHVlKHRlbXBsYXRlX2Rpdi5jaGlsZHJlbiwgZGF0YVJlc3VsdCk7XG5cdFx0fVxuXHR9XG5cbn1cbmV4cG9ydCBkZWZhdWx0IENvQ3JlYXRlUmVuZGVyOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../CoCreate-render/src/index.js\n")},"../CoCreate-socket/src/index.js":(__unused_webpack_module,exports)=>{eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\nclass CoCreateSocket {\n constructor(prefix = \"crud\") {\n this.prefix = prefix || \"crud\";\n this.sockets = new Map();\n this.listeners = new Map();\n this.messageQueue = new Map();\n this.saveFileName = '';\n this.globalScope = \"\";\n }\n\n setGlobalScope(scope) {\n this.globalScope = `${this.prefix}/${scope}`;\n }\n\n getGlobalScope() {\n return this.globalScope;\n }\n /**\n * config: {namespace, room, host}\n */\n\n\n create(config) {\n const {\n namespace,\n room\n } = config;\n const key = this.getKey(namespace, room);\n\n let _this = this;\n\n let socket;\n\n if (this.sockets.get(key)) {\n socket = this.sockets.get(key);\n console.log('SOcket already has been register');\n return;\n }\n\n let w_protocol = window.location.protocol;\n\n if (window.location.protocol === \"about:\") {\n w_protocol = window.parent.location.protocol;\n }\n\n let protocol = w_protocol === 'http:' ? 'ws' : 'wss';\n const port = config.port ? config.port : 8088;\n let socket_url = `${protocol}://${window.location.host}:${port}/${key}`;\n\n if (config.host) {\n if (config.host.includes(\"://\")) {\n socket_url = `${config.host}/${key}`;\n } else {\n socket_url = `${protocol}://${config.host}:${port}/${key}`;\n }\n }\n\n socket = new WebSocket(socket_url);\n\n socket.onopen = function (event) {\n console.log('created socket: ' + key);\n const messages = _this.messageQueue.get(key) || [];\n console.log(messages);\n messages.forEach(msg => socket.send(JSON.stringify(msg)));\n\n _this.sockets.set(key, socket);\n\n _this.messageQueue.set(key, []);\n };\n\n socket.onclose = function (event) {\n switch (event.code) {\n case 1000:\n // close normal\n console.log(\"websocket: closed\");\n break;\n\n default:\n _this.destroy(socket, key);\n\n _this.reconnect(socket, config);\n\n break;\n }\n };\n\n socket.onerror = function (err) {\n console.log('Socket error');\n\n _this.destroy(socket, key);\n\n _this.reconnect(socket, config);\n };\n\n socket.onmessage = function (data) {\n try {\n if (data.data instanceof Blob) {\n _this.saveFile(data.data);\n\n return;\n }\n\n let rev_data = JSON.parse(data.data);\n\n if (rev_data.data.event) {\n var event = new CustomEvent(rev_data.data.event, {\n detail: rev_data.data\n });\n document.dispatchEvent(event);\n return;\n }\n\n let action = rev_data.action;\n\n const listeners = _this.listeners.get(rev_data.action);\n\n if (!listeners) {\n return;\n }\n\n listeners.forEach(listener => {\n listener(rev_data.data, key);\n });\n } catch (e) {\n console.log(e);\n }\n };\n }\n /**\n * \n */\n\n\n send(action, data, room) {\n const obj = {\n action: action,\n data: data\n };\n const key = this.getKeyByRoom(room);\n const socket = this.getByRoom(room);\n\n if (socket) {\n socket.send(JSON.stringify(obj));\n } else {\n if (this.messageQueue.get(key)) {\n this.messageQueue.get(key).push(obj);\n } else {\n this.messageQueue.set(key, [obj]);\n }\n }\n }\n\n sendFile(file, room) {\n const socket = this.getByRoom(room);\n\n if (socket) {\n socket.send(file);\n }\n }\n /**\n * scope: ns/room\n */\n\n\n listen(type, callback) {\n if (!this.listeners.get(type)) {\n this.listeners.set(type, [callback]);\n } else {\n this.listeners.get(type).push(callback);\n }\n }\n\n reconnect(socket, config) {\n let _this = this;\n\n setTimeout(function () {\n _this.create(config);\n }, 1000);\n }\n\n destroy(socket, key) {\n if (socket) {\n socket.onerror = socket.onopen = socket.onclose = null;\n socket.close();\n socket = null;\n }\n\n if (this.sockets.get(key)) {\n this.sockets.delete(key);\n }\n }\n\n getKey(namespace, room) {\n let key = `${this.prefix}`;\n\n if (namespace && namespace != '') {\n if (room && room != '') {\n key += `/${namespace}/${room}`;\n } else {\n key += `/${namespace}`;\n }\n }\n\n return key;\n }\n\n getByRoom(room) {\n let key = this.getKeyByRoom(room);\n return this.sockets.get(key);\n }\n\n getKeyByRoom(room) {\n let key = this.globalScope;\n\n if (room) {\n key = `${this.prefix}/${room}`;\n }\n\n return key;\n }\n\n saveFile(blob) {\n // const {filename} = window.saveFileInfo;\n const file_name = this.saveFileName || 'downloadFile';\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n let url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = file_name;\n a.click();\n window.URL.revokeObjectURL(url);\n this.saveFileName = '';\n }\n\n listenAsync(eventname) {\n return new Promise(resolve => {\n document.addEventListener(eventname, function (event) {\n resolve(event.detail);\n }, {\n once: true\n });\n });\n }\n\n}\n\nvar _default = CoCreateSocket;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db0NyZWF0ZS5hcGkvLi4vQ29DcmVhdGUtc29ja2V0L3NyYy9pbmRleC5qcz8wZTQ5Il0sIm5hbWVzIjpbIkNvQ3JlYXRlU29ja2V0IiwiY29uc3RydWN0b3IiLCJwcmVmaXgiLCJzb2NrZXRzIiwiTWFwIiwibGlzdGVuZXJzIiwibWVzc2FnZVF1ZXVlIiwic2F2ZUZpbGVOYW1lIiwiZ2xvYmFsU2NvcGUiLCJzZXRHbG9iYWxTY29wZSIsInNjb3BlIiwiZ2V0R2xvYmFsU2NvcGUiLCJjcmVhdGUiLCJjb25maWciLCJuYW1lc3BhY2UiLCJyb29tIiwia2V5IiwiZ2V0S2V5IiwiX3RoaXMiLCJzb2NrZXQiLCJnZXQiLCJjb25zb2xlIiwibG9nIiwid19wcm90b2NvbCIsIndpbmRvdyIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJwYXJlbnQiLCJwb3J0Iiwic29ja2V0X3VybCIsImhvc3QiLCJpbmNsdWRlcyIsIldlYlNvY2tldCIsIm9ub3BlbiIsImV2ZW50IiwibWVzc2FnZXMiLCJmb3JFYWNoIiwibXNnIiwic2VuZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzZXQiLCJvbmNsb3NlIiwiY29kZSIsImRlc3Ryb3kiLCJyZWNvbm5lY3QiLCJvbmVycm9yIiwiZXJyIiwib25tZXNzYWdlIiwiZGF0YSIsIkJsb2IiLCJzYXZlRmlsZSIsInJldl9kYXRhIiwicGFyc2UiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsImFjdGlvbiIsImxpc3RlbmVyIiwiZSIsIm9iaiIsImdldEtleUJ5Um9vbSIsImdldEJ5Um9vbSIsInB1c2giLCJzZW5kRmlsZSIsImZpbGUiLCJsaXN0ZW4iLCJ0eXBlIiwiY2FsbGJhY2siLCJzZXRUaW1lb3V0IiwiY2xvc2UiLCJkZWxldGUiLCJibG9iIiwiZmlsZV9uYW1lIiwiYSIsImNyZWF0ZUVsZW1lbnQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJzdHlsZSIsInVybCIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImhyZWYiLCJkb3dubG9hZCIsImNsaWNrIiwicmV2b2tlT2JqZWN0VVJMIiwibGlzdGVuQXN5bmMiLCJldmVudG5hbWUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJvbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsTUFBTUEsY0FBTixDQUNBO0FBQ0NDLGFBQVcsQ0FBQ0MsTUFBTSxHQUFHLE1BQVYsRUFBa0I7QUFDNUIsU0FBS0EsTUFBTCxHQUFjQSxNQUFNLElBQUksTUFBeEI7QUFDQSxTQUFLQyxPQUFMLEdBQWUsSUFBSUMsR0FBSixFQUFmO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQixJQUFJRCxHQUFKLEVBQWpCO0FBQ0EsU0FBS0UsWUFBTCxHQUFxQixJQUFJRixHQUFKLEVBQXJCO0FBQ0EsU0FBS0csWUFBTCxHQUFxQixFQUFyQjtBQUNBLFNBQUtDLFdBQUwsR0FBb0IsRUFBcEI7QUFDQTs7QUFFREMsZ0JBQWMsQ0FBQ0MsS0FBRCxFQUFRO0FBQ3JCLFNBQUtGLFdBQUwsR0FBb0IsR0FBRSxLQUFLTixNQUFPLElBQUdRLEtBQU0sRUFBM0M7QUFDQTs7QUFFREMsZ0JBQWMsR0FBRztBQUNoQixXQUFPLEtBQUtILFdBQVo7QUFDQTtBQUVEO0FBQ0Q7QUFDQTs7O0FBQ0NJLFFBQU0sQ0FBRUMsTUFBRixFQUFVO0FBQ2YsVUFBTTtBQUFDQyxlQUFEO0FBQVlDO0FBQVosUUFBb0JGLE1BQTFCO0FBQ0EsVUFBTUcsR0FBRyxHQUFHLEtBQUtDLE1BQUwsQ0FBWUgsU0FBWixFQUF1QkMsSUFBdkIsQ0FBWjs7QUFDQSxRQUFJRyxLQUFLLEdBQUcsSUFBWjs7QUFDQSxRQUFJQyxNQUFKOztBQUNBLFFBQUksS0FBS2hCLE9BQUwsQ0FBYWlCLEdBQWIsQ0FBaUJKLEdBQWpCLENBQUosRUFBMkI7QUFDMUJHLFlBQU0sR0FBRyxLQUFLaEIsT0FBTCxDQUFhaUIsR0FBYixDQUFpQkosR0FBakIsQ0FBVDtBQUNBSyxhQUFPLENBQUNDLEdBQVIsQ0FB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QUFHRG1DLFVBQVEsQ0FBQ3NCLElBQUQsRUFBTztBQUNkO0FBRUEsVUFBTUMsU0FBUyxHQUFHLEtBQUtuRSxZQUFMLElBQXFCLGNBQXZDO0FBQ0EsUUFBSW9FLENBQUMsR0FBR25CLFFBQVEsQ0FBQ29CLGFBQVQsQ0FBdUIsR0FBdkIsQ0FBUjtBQUNNcEIsWUFBUSxDQUFDcUIsSUFBVCxDQUFjQyxXQUFkLENBQTBCSCxDQUExQjtBQUNBQSxLQUFDLENBQUNJLEtBQUYsR0FBVSxlQUFWO0FBRUEsUUFBSUMsR0FBRyxHQUFHeEQsTUFBTSxDQUFDeUQsR0FBUCxDQUFXQyxlQUFYLENBQTJCVCxJQUEzQixDQUFWO0FBQ0FFLEtBQUMsQ0FBQ1EsSUFBRixHQUFTSCxHQUFUO0FBQ0FMLEtBQUMsQ0FBQ1MsUUFBRixHQUFhVixTQUFiO0FBQ0FDLEtBQUMsQ0FBQ1UsS0FBRjtBQUNBN0QsVUFBTSxDQUFDeUQsR0FBUCxDQUFXSyxlQUFYLENBQTJCTixHQUEzQjtBQUVBLFNBQUt6RSxZQUFMLEdBQW9CLEVBQXBCO0FBQ047O0FBRURnRixhQUFXLENBQUNDLFNBQUQsRUFBWTtBQUN0QixXQUFPLElBQUlDLE9BQUosQ0FBYUMsT0FBRCxJQUFhO0FBQy9CbEMsY0FBUSxDQUFDbUMsZ0JBQVQsQ0FBMEJILFNBQTFCLEVBQXFDLFVBQVN0RCxLQUFULEVBQWdCO0FBQ2pEd0QsZUFBTyxDQUFDeEQsS0FBSyxDQUFDcUIsTUFBUCxDQUFQO0FBQ0gsT0FGRCxFQUVHO0FBQUVxQyxZQUFJLEVBQUU7QUFBUixPQUZIO0FBSUEsS0FMTSxDQUFQO0FBTUE7O0FBM05GOztlQThOZTVGLGMiLCJmaWxlIjoiLi4vQ29DcmVhdGUtc29ja2V0L3NyYy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNsYXNzIENvQ3JlYXRlU29ja2V0XG57XG5cdGNvbnN0cnVjdG9yKHByZWZpeCA9IFwiY3J1ZFwiKSB7XG5cdFx0dGhpcy5wcmVmaXggPSBwcmVmaXggfHwgXCJjcnVkXCI7XG5cdFx0dGhpcy5zb2NrZXRzID0gbmV3IE1hcCgpO1xuXHRcdHRoaXMubGlzdGVuZXJzID0gbmV3IE1hcCgpO1xuXHRcdHRoaXMubWVzc2FnZVF1ZXVlID0gIG5ldyBNYXAoKTtcblx0XHR0aGlzLnNhdmVGaWxlTmFtZSA9ICAnJztcblx0XHR0aGlzLmdsb2JhbFNjb3BlID0gIFwiXCI7XG5cdH1cblxuXHRzZXRHbG9iYWxTY29wZShzY29wZSkge1xuXHRcdHRoaXMuZ2xvYmFsU2NvcGUgPSBgJHt0aGlzLnByZWZpeH0vJHtzY29wZX1gO1xuXHR9XG5cdFxuXHRnZXRHbG9iYWxTY29wZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5nbG9iYWxTY29wZTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIGNvbmZpZzoge25hbWVzcGFjZSwgcm9vbSwgaG9zdH1cblx0ICovXG5cdGNyZWF0ZSAoY29uZmlnKSB7XG5cdFx0Y29uc3Qge25hbWVzcGFjZSwgcm9vbX0gPSBjb25maWc7XG5cdFx0Y29uc3Qga2V5ID0gdGhpcy5nZXRLZXkobmFtZXNwYWNlLCByb29tKTtcblx0XHRsZXQgX3RoaXMgPSB0aGlzO1xuXHRcdGxldCBzb2NrZXQ7XG5cdFx0aWYgKHRoaXMuc29ja2V0cy5nZXQoa2V5KSkge1xuXHRcdFx0c29ja2V0ID0gdGhpcy5zb2NrZXRzLmdldChrZXkpO1xuXHRcdFx0Y29uc29sZS5sb2coJ1NPY2tldCBhbHJlYWR5IGhhcyBiZWVuIHJlZ2lzdGVyJyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdFxuXHRcdGxldCB3X3Byb3RvY29sID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sO1x0XHRcblx0XHRpZiAod2luZG93LmxvY2F0aW9uLnByb3RvY29sID09PSBcImFib3V0OlwiKSB7XG5cdFx0XHR3X3Byb3RvY29sID0gd2luZG93LnBhcmVudC5sb2NhdGlvbi5wcm90b2NvbDtcblx0XHR9XG5cdFx0bGV0IHByb3RvY29sID0gd19wcm90b2NvbCA9PT0gJ2h0dHA6JyA/ICd3cycgOiAnd3NzJztcblx0XHRcblx0XHRjb25zdCBwb3J0ID0gY29uZmlnLnBvcnQgPyBjb25maWcucG9ydCA6IDgwODg7XG5cdFx0XG5cdFx0bGV0IHNvY2tldF91cmwgPSBgJHtwcm90b2NvbH06Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0fToke3BvcnR9LyR7a2V5fWA7XG5cdFx0XG5cdFx0aWYgKGNvbmZpZy5ob3N0KSB7XG5cdFx0XHRpZiAoY29uZmlnLmhvc3QuaW5jbHVkZXMoXCI6Ly9cIikpIHtcblx0XHRcdFx0c29ja2V0X3VybCA9IGAke2NvbmZpZy5ob3N0fS8ke2tleX1gO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c29ja2V0X3VybCA9IGAke3Byb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9OiR7cG9ydH0vJHtrZXl9YDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0c29ja2V0ID0gbmV3IFdlYlNvY2tldChzb2NrZXRfdXJsKTtcblx0XHRcblx0XHRzb2NrZXQub25vcGVuID0gZnVuY3Rpb24oZXZlbnQpIHtcblx0XHRcdGNvbnNvbGUubG9nKCdjcmVhdGVkIHNvY2tldDogJyArIGtleSk7XG5cdFx0XHRjb25zdCBtZXNzYWdlcyA9IF90aGlzLm1lc3NhZ2VRdWV1ZS5nZXQoa2V5KSB8fCBbXTtcblx0XHRcdGNvbnNvbGUubG9nKG1lc3NhZ2VzKVxuXHRcdFx0bWVzc2FnZXMuZm9yRWFjaChtc2cgPT4gc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkobXNnKSkpO1xuXHRcdFx0XG5cdFx0XHRfdGhpcy5zb2NrZXRzLnNldChrZXksIHNvY2tldCk7XG5cdFx0XHRfdGhpcy5tZXNzYWdlUXVldWUuc2V0KGtleSwgW10pO1xuXHRcdH1cblx0XHRcblx0XHRzb2NrZXQub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KSB7XG5cdFx0XHRzd2l0Y2goZXZlbnQuY29kZSkge1xuXHRcdFx0XHRjYXNlIDEwMDA6IC8vIGNsb3NlIG5vcm1hbFxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKFwid2Vic29ja2V0OiBjbG9zZWRcIik7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6IFxuXHRcdFx0XHRcdF90aGlzLmRlc3Ryb3koc29ja2V0LCBrZXkpO1xuXHRcdFx0XHRcdF90aGlzLnJlY29ubmVjdChzb2NrZXQsIGNvbmZpZyk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdHNvY2tldC5vbmVycm9yID0gZnVuY3Rpb24oZXJyKSB7XG5cdFx0XHRjb25zb2xlLmxvZygnU29ja2V0IGVycm9yJyk7XG5cdFx0XHRfdGhpcy5kZXN0cm95KHNvY2tldCwga2V5KTtcblx0XHRcdF90aGlzLnJlY29ubmVjdChzb2NrZXQsIGNvbmZpZyk7XG5cdFx0fVxuXG5cdFx0c29ja2V0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGRhdGEpIHtcblx0XHRcdFxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0aWYgKGRhdGEuZGF0YSBpbnN0YW5jZW9mIEJsb2IpIHtcblx0XHRcdFx0XHRfdGhpcy5zYXZlRmlsZShkYXRhLmRhdGEpO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgcmV2X2RhdGEgPSBKU09OLnBhcnNlKGRhdGEuZGF0YSk7XG5cdFx0XHRcdGlmIChyZXZfZGF0YS5kYXRhLmV2ZW50KSB7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0dmFyIGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KHJldl9kYXRhLmRhdGEuZXZlbnQsIHtcblx0XHRcdFx0XHRcdGRldGFpbDogcmV2X2RhdGEuZGF0YVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCBhY3Rpb24gPSByZXZfZGF0YS5hY3Rpb247XG5cdFx0XHRcdGNvbnN0IGxpc3RlbmVycyA9IF90aGlzLmxpc3RlbmVycy5nZXQocmV2X2RhdGEuYWN0aW9uKTtcblx0XHRcdFx0aWYgKCFsaXN0ZW5lcnMpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0bGlzdGVuZXJzLmZvckVhY2gobGlzdGVuZXIgPT4ge1xuXHRcdFx0XHRcdGxpc3RlbmVyKHJldl9kYXRhLmRhdGEsIGtleSk7XG5cdFx0XHRcdH0pXG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LyoqXG5cdCAqIFxuXHQgKi9cblx0c2VuZCAoYWN0aW9uLCBkYXRhLCByb29tKSB7XG5cdFx0Y29uc3Qgb2JqID0ge1xuXHRcdFx0YWN0aW9uOiBhY3Rpb24sXG5cdFx0XHRkYXRhOiBkYXRhXG5cdFx0fVxuXHRcdGNvbnN0IGtleSA9IHRoaXMuZ2V0S2V5QnlSb29tKHJvb20pO1xuXHRcdGNvbnN0IHNvY2tldCA9IHRoaXMuZ2V0QnlSb29tKHJvb20pO1xuXHRcdFxuXHRcdGlmIChzb2NrZXQpIHtcblx0XHRcdHNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KG9iaikpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAodGhpcy5tZXNzYWdlUXVldWUuZ2V0KGtleSkpIHtcblx0XHRcdFx0dGhpcy5tZXNzYWdlUXVldWUuZ2V0KGtleSkucHVzaChvYmopO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5tZXNzYWdlUXVldWUuc2V0KGtleSwgW29ial0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0c2VuZEZpbGUgKGZpbGUsIHJvb20pIHtcblx0XHRjb25zdCBzb2NrZXQgPSB0aGlzLmdldEJ5Um9vbShyb29tKTtcblx0XHRpZiAoc29ja2V0KSB7XG5cdFx0XHRzb2NrZXQuc2VuZChmaWxlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogc2NvcGU6IG5zL3Jvb21cblx0ICovXG5cdGxpc3Rlbih0eXBlLCBjYWxsYmFjaykge1xuXHRcdGlmICghdGhpcy5saXN0ZW5lcnMuZ2V0KHR5cGUpKSB7XG5cdFx0XHR0aGlzLmxpc3RlbmVycy5zZXQodHlwZSwgW2NhbGxiYWNrXSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMubGlzdGVuZXJzLmdldCh0eXBlKS5wdXNoKGNhbGxiYWNrKTtcblx0XHR9XG5cdH1cblx0XG5cdHJlY29ubmVjdChzb2NrZXQsIGNvbmZpZykge1xuXHRcdGxldCBfdGhpcyA9IHRoaXM7XG5cdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdF90aGlzLmNyZWF0ZShjb25maWcpO1xuXHRcdH0sIDEwMDApXG5cdH1cblx0XG5cdGRlc3Ryb3koc29ja2V0LCBrZXkpIHtcblx0XHRpZiAoc29ja2V0KSB7XG5cdFx0XHRzb2NrZXQub25lcnJvciA9IHNvY2tldC5vbm9wZW4gPSBzb2NrZXQub25jbG9zZSA9IG51bGw7XG5cdFx0XHRzb2NrZXQuY2xvc2UoKTtcblx0XHRcdHNvY2tldCA9IG51bGw7XG5cdFx0fVxuXHRcdFxuXHRcdGlmICh0aGlzLnNvY2tldHMuZ2V0KGtleSkpIHtcblx0XHRcdHRoaXMuc29ja2V0cy5kZWxldGUoa2V5KTtcblx0XHR9XG5cdH1cblx0XG5cdGdldEtleShuYW1lc3BhY2UsIHJvb20pIHtcblx0XHRsZXQga2V5ID0gYCR7dGhpcy5wcmVmaXh9YDtcblx0XHRpZiAobmFtZXNwYWNlICYmIG5hbWVzcGFjZSAhPSAnJykge1xuXHRcdFx0aWYgKHJvb20gJiYgIHJvb20gIT0gJycpIHtcblx0XHRcdFx0a2V5ICs9IGAvJHtuYW1lc3BhY2V9LyR7cm9vbX1gO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0a2V5ICs9YC8ke25hbWVzcGFjZX1gO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4ga2V5O1xuXHR9XG5cdFxuXHRnZXRCeVJvb20ocm9vbSkge1xuXHRcdGxldCBrZXkgPSB0aGlzLmdldEtleUJ5Um9vbShyb29tKVxuXHRcdHJldHVybiB0aGlzLnNvY2tldHMuZ2V0KGtleSk7XHRcblx0fVxuXHRcblx0Z2V0S2V5QnlSb29tKHJvb20pIHtcblx0XHRsZXQga2V5ID0gdGhpcy5nbG9iYWxTY29wZTtcblx0XHRpZiAocm9vbSkge1xuXHRcdFx0a2V5ID0gYCR7dGhpcy5wcmVmaXh9LyR7cm9vbX1gO1xuXHRcdH1cblx0XHRyZXR1cm4ga2V5O1x0XHRcblx0fVxuXHRcblx0XG5cdHNhdmVGaWxlKGJsb2IpIHtcblx0XHQvLyBjb25zdCB7ZmlsZW5hbWV9ID0gd2luZG93LnNhdmVGaWxlSW5mbztcblx0XHRcblx0XHRjb25zdCBmaWxlX25hbWUgPSB0aGlzLnNhdmVGaWxlTmFtZSB8fCAnZG93bmxvYWRGaWxlJztcblx0XHR2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgICAgICBhLnN0eWxlID0gXCJkaXNwbGF5OiBub25lXCI7XG5cbiAgICAgICAgbGV0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICBhLmhyZWYgPSB1cmw7XG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlX25hbWU7XG4gICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcblxuICAgICAgICB0aGlzLnNhdmVGaWxlTmFtZSA9ICcnXG5cdH1cblx0XG5cdGxpc3RlbkFzeW5jKGV2ZW50bmFtZSkge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXHRcdFx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudG5hbWUsIGZ1bmN0aW9uKGV2ZW50KSB7XG5cdFx0XHQgICAgcmVzb2x2ZShldmVudC5kZXRhaWwpO1xuXHRcdFx0fSwgeyBvbmNlOiB0cnVlIH0pXG5cdFx0XHRcblx0XHR9KVxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvQ3JlYXRlU29ja2V0O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../CoCreate-socket/src/index.js\n")}},__webpack_module_cache__={};function __webpack_require__(Q){var F=__webpack_module_cache__[Q];if(void 0!==F)return F.exports;var U=__webpack_module_cache__[Q]={exports:{}};return __webpack_modules__[Q](U,U.exports,__webpack_require__),U.exports}var __webpack_exports__=__webpack_require__("./src/index.js");return __webpack_exports__=__webpack_exports__.default,__webpack_exports__})()})); \ No newline at end of file diff --git a/dist/CoCreate-api.js.LICENSE.txt b/dist/CoCreate-api.js.LICENSE.txt deleted file mode 100644 index 884c923..0000000 --- a/dist/CoCreate-api.js.LICENSE.txt +++ /dev/null @@ -1,15 +0,0 @@ -/*!**********************!*\ - !*** ./src/index.js ***! - \**********************/ - -/*!***************************************!*\ - !*** ../CoCreate-action/src/index.js ***! - \***************************************/ - -/*!***************************************!*\ - !*** ../CoCreate-render/src/index.js ***! - \***************************************/ - -/*!***************************************!*\ - !*** ../CoCreate-socket/src/index.js ***! - \***************************************/ diff --git a/dist/CoCreate-api.min.js b/dist/CoCreate-api.min.js new file mode 100644 index 0000000..e1acd27 --- /dev/null +++ b/dist/CoCreate-api.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.CoCreate=t():(e.CoCreate=e.CoCreate||{},e.CoCreate.api=t())}(this,(function(){return(()=>{"use strict";var e={499:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;const n={attribute:"data-actions",actions:{},selectedStage:[],stageIndex:0,selectedElement:null,completedEventName:"completedEvent",__init:function(){this.actionButtonEvent()},actionButtonEvent:function(){const e=this;document.addEventListener("click",(function(t){let n=t.target;if(n.getAttribute("data-actions")||(n=t.target.closest("[data-actions]")),!n)return;t.preventDefault();let o=(n.getAttribute(e.attribute)||"").replace(/\s/g,"").split(",");0!=o.length&&(e.stageIndex=0,e.selectedStage=o,e.selectedElement=n,e.__runActionFunc())}))},init:function({action:e,callback:t,endEvent:n}){this.registerEvent(e,t,null,n)},registerEvent:function(e,t,n,o){if(this.actions[e])return;this.actions[e]={key:e,runFunc:t,instance:n||window,endEvent:o};for(let t in this.actions)if(t!=e&&this.actions[t].endEvent===o)return;const i=this;document.addEventListener(o,(function(e){i.__nextAction(o,e.detail)}))},__runActionFunc:function(e){if(this.stageIndex>=this.selectedStage.length)return void(this.stageIndex==this.selectedStage.length&&this.__runAtag(this.selectedElement));const t=this.selectedStage[this.stageIndex],n=this.actions[t];if(n)n.runFunc?n.runFunc.call(null,this.selectedElement,e):this.__nextAction(n.endEvent,{});else{"next"===this.__runSpecialAction(t,e)&&this.__moveNextAction()}},__nextAction:function(e,t){const n=this.selectedStage[this.stageIndex];n&&e===this.actions[n].endEvent&&this.__moveNextAction(t)},__runAtag:function(e){e.querySelector("a")},__runSpecialAction:function(e,t){let n=/(\w+)\{([a-zA-Z0-9_ \-#$.]+)\}/gm.exec(e);if(!n||n.length<3)return"next";let o=n[1],i=n[2].trim();if(!i)return"next";const s=this;switch(o){case"event":document.addEventListener(i,(e=>{s.__moveNextAction(e)}),{once:!0});break;case"timeout":parseInt(i)>0&&setTimeout((function(){s.__moveNextAction(t)}),parseInt(i));break;case"action":let e=document.querySelector(i);e&&e.click();break;default:return"next"}},__moveNextAction:function(e){this.stageIndex++,this.__runActionFunc(e)}};n.__init();var o=n;t.default=o},556:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={__getValueFromObject:function(e,t){try{if(void 0===e||!t)return!1;let n=e,o=t.split(".");for(let e=0;e=0;n--)i={[o[n]]:i};return i}catch(e){return!1}},__replaceValue:function(e,t){let n=!1,o=this,i=null,s=t.match(/{{([A-Za-z0-9_.,\- ]*)}}/g);return s&&(s.forEach((i=>{let s=o.__getValue(e,i);s&&"object"!=typeof s&&(n=!0,t=t.replace(i,s))})),n&&(i=t)),i},setArray:function(e,t){const n=e.getAttribute("data-render_array")||"data",o=e.getAttribute("data-render_key")||n,i=this,s=this.__getValueFromObject(t,n);n&&Array.isArray(s)&&s.forEach(((t,s)=>{let r=e.cloneNode(!0);r.classList.remove("template"),r.classList.add("clone_"+n),"object"!=typeof t?t={"--":t}:t.index=s;let a=i.__createObject(t,o);i.setValue([r],a),e.insertAdjacentHTML("beforebegin",r.outerHTML)}))},setValue:function(e,t,n,o){if(!t)return;const i=this;Array.from(e).forEach((e=>{let o=e.getAttribute("data-pass_id");if(!n||o==n){if(Array.from(e.attributes).forEach((n=>{let o=n.name.toLowerCase(),s=n.value;if(s=i.__replaceValue(t,s),s){if("value"==o){switch(e.tagName.toLowerCase()){case"input":e.setAttribute(o,s);break;case"textarea":e.setAttribute(o,s),e.textContent=s;break;default:0===e.children.length&&(e.innerHTML=s)}}e.setAttribute(o,s)}})),0==e.children.length&&e.textContent){let n=e.textContent;n=i.__replaceValue(t,n),n&&(e.textContent=n)}e.children.length>0&&(i.setValue(e.children,t),e.classList.contains("template")&&i.setArray(e,t))}}))},data:function({selector:e,data:t,elements:n,passTo:o}){e?this.render(e,t):n&&this.setValue(n,t,o)},render:function(e,t){let n=document.querySelector(e);n&&(Array.isArray(t)?(n.setAttribute("data-render_array","test"),this.setValue([n],{test:t})):this.setValue(n.children,t))}};t.default=n},974:(e,t)=>{var n;"undefined"!=typeof self&&self,void 0===(n=function(){return function(e,t,n){class o{constructor(e="crud"){this.prefix=e||"crud",this.sockets=new Map,this.listeners=new Map,this.messageQueue=new Map,this.saveFileName="",this.globalScope=""}setGlobalScope(e){this.globalScope=`${this.prefix}/${e}`}getGlobalScope(){return this.globalScope}create(o){const{namespace:i,room:s}=o,r=this.getKey(i,s);let a,c=this;if(this.sockets.get(r))return void(a=this.sockets.get(r));let l=e.location.protocol;"about:"===e.location.protocol&&(l=e.parent.location.protocol);let u="http:"===l?"ws":"wss";const d=o.port?o.port:8088;let f=`${u}://${e.location.host}:${d}/${r}`;o.host&&(f=o.host.includes("://")?`${o.host}/${r}`:o.host.includes(":")?`${u}://${o.host}/${r}`:`${u}://${o.host}:${d}/${r}`);try{a=new t(f)}catch(e){}a.onopen=function(e){(c.messageQueue.get(r)||[]).forEach((e=>a.send(JSON.stringify(e)))),c.sockets.set(r,a),c.messageQueue.set(r,[])},a.onclose=function(e){switch(e.code){case 1e3:break;default:c.destroy(a,r),c.reconnect(a,o)}},a.onerror=function(e){c.destroy(a,r),c.reconnect(a,o)},a.onmessage=function(t){try{if(e.Blob&&t.data instanceof n)return void c.saveFile(t.data);let i=JSON.parse(t.data);if(i.data.event){if(e.CustomEvent){var o=new e.CustomEvent(i.data.event,{detail:i.data});return void e.document.dispatchEvent(o)}return void process.emit(i.data.event,i.data)}i.action;const s=c.listeners.get(i.action);if(!s)return;s.forEach((e=>{e(i.data,r)}))}catch(e){}}}send(e,t,n){const o={action:e,data:t},i=this.getKeyByRoom(n),s=this.getByRoom(n);s?s.send(JSON.stringify(o)):this.messageQueue.get(i)?this.messageQueue.get(i).push(o):this.messageQueue.set(i,[o])}sendFile(e,t){const n=this.getByRoom(t);n&&n.send(e)}listen(e,t){this.listeners.get(e)?this.listeners.get(e).push(t):this.listeners.set(e,[t])}reconnect(e,t){let n=this;setTimeout((function(){n.create(t)}),1e3)}destroy(e,t){e&&(e.onerror=e.onopen=e.onclose=null,e.close(),e=null),this.sockets.get(t)&&this.sockets.delete(t)}destroyByKey(e){let t=this.sockets.get(e);t&&this.destroy(t,e)}getKey(e,t){let n=`${this.prefix}`;return e&&""!=e&&(n+=t&&""!=t?`/${e}/${t}`:`/${e}`),n}getByRoom(e){let t=this.getKeyByRoom(e);return this.sockets.get(t)}getKeyByRoom(e){let t=this.globalScope;return e&&(t=`${this.prefix}/${e}`),t}saveFile(t){if(e.document){const o=this.saveFileName||"downloadFile";var n=e.document.createElement("a");e.document.body.appendChild(n),n.style="display: none";let i=window.URL.createObjectURL(t);n.href=i,n.download=o,n.click(),e.URL.revokeObjectURL(i),this.saveFileName=""}}listenAsync(t){return new Promise(((n,o)=>{e.document?e.document.addEventListener(t,(function(e){n(e.detail)}),{once:!0}):process.once(t,(e=>{n(e)}))}))}}return o}(window,WebSocket,Blob)}.apply(t,[]))||(e.exports=n)}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}var o={};return(()=>{var e=o;e.default=void 0;var t=r(n(974)),i=r(n(499)),s=r(n(556));function r(e){return e&&e.__esModule?e:{default:e}}let a=new t.default("api");const c={modules:{},init:function({name:e,module:t}){this.register(e,t)},register:function(e,t){const n=this;void 0===this.modules[e]&&(this.modules[e]=t,a.listen(e,(t=>{n.__responseProcess(e,t)})),Array.isArray(t.actions)&&t.actions.forEach((e=>{"function"!=typeof t[`action_${e}`]&&(t[`action_${e}`]=function(o){n.__commonAction(t.id,e,o)}),i.default.init({action:e,endEvent:e,callback:n=>{t[`action_${e}`](n)}})})))},__responseProcess:function(e,t){const{type:n,response:o}=t,i=this.modules[e];n&&o&&i&&("function"==typeof i[`render_${n}`]&&i[`render_${n}`](o),this.render(n,o),document.dispatchEvent(new CustomEvent(n,{detail:{data:o}})))},__commonAction:function(e,t,n){const o=n.closest("form")||document;let i=c.getFormData(e,t,o);c.send(e,t,i)},getFormData:function(e,t,n){const o=`data-${e}`,i=this,s=n.querySelectorAll(`[${o}^="${t}."]`);let r={};s.forEach((n=>{let s=n.getAttribute(o),a=n.getAttribute(o+"_array"),c=i.__getElValue(n);if(s){if(t){let e=new RegExp(`^${t}.`,"i");if(!e.test(s))return;s=s.replace(e,"")}a?(r[s]||(r[s]=[]),r[s].push(i.getFormData(e,a,n))):null!=c&&(r[s]=c)}}));let a=Object.keys(r),c={};return a.forEach((e=>{if(e.split(".").length>1){let t=i.__createObject(r[e],e);delete r[e],c=i.__mergeObject(c,t)}else c[e]=r[e]})),c},__getElValue:function(e){let t=null;if(void 0!==e.value)switch(e.type.toLocaleLowerCase()){case"checkbox":e.checked&&(t=e.value);break;default:t=e.value}else t=e.getAttribute("value"),t||(t=e.innerHTML);return t},__mergeObject:function(e,t){e=e||{};for(let n of Object.keys(t))t[n]instanceof Object&&Object.assign(t[n],this.__mergeObject(e[n],t[n]));return Object.assign(e||{},t),e},__createObject:function(e,t){if(!t)return e;let n=t.split("."),o=e;for(var i=n.length-1;i>=0;i--)o={[n[i]]:o};return o},send:function(e,t,n){let o=this.getCommonParamsExtend(n||{});o={...o,data:n},a.send(e,{type:t,data:o})},render:function(e,t){s.default.data({selector:`[data-template_id="${e}"]`,data:t})},createApiSocket:function(e,t){t?(a.create({namespace:t,room:null,host:e}),a.setGlobalScope(t)):a.create({namespace:null,room:null,host:e})},getCommonParamsExtend:function(e){return{apiKey:e.apiKey||config.apiKey,securityKey:e.securityKey||config.securityKey,organization_id:e.organization_id||config.organization_Id}}};c.createApiSocket(window.config.host?window.config.host:"server.cocreate.app",window.config.organization_Id);var l=c;e.default=l})(),o=o.default})()})); \ No newline at end of file diff --git a/src/index.js b/src/index.js index 346defb..ed7c709 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,4 @@ -import CoCreateSocket from "@cocreate/socket" +import CoCreateSocket from "@cocreate/socket-client" import CoCreateAction from '@cocreate/action' import CoCreateRender from '@cocreate/render'