{"version":3,"file":"preact.mjs","sources":["../src/mediator.js","../node_modules/stb-tools/dist/preact.mjs","../node_modules/stb-conllection/dist/preact.js","../src/app_event.js","../src/event_emitter.js","../src/page_event.js","../src/page.js","../src/preact.js"],"sourcesContent":["/**\n * @name 调度器\n */\n// eslint-disable-next-line no-var\nvar Mediator = /** @class */ (function () {\n\tfunction Mediator(isDebug) {\n\t\tif (isDebug === void 0) { isDebug = false; }\n\t\tthis._$ = new $();\n\t\tthis._isDebug = isDebug;\n\t}\n\tMediator.prototype.publish = function (e) {\n\t\tif (this._isDebug === true) {\n\t\t\tconsole.log(new Date().getTime(), \"PUBLISH\", e.topic, e.data);\n\t\t}\n\t\tthis._$.trigger(e.topic, e.data);\n\t};\n\tMediator.prototype.subscribe = function (e) {\n\t\tif (this._isDebug === true) {\n\t\t\tconsole.log(new Date().getTime(), \"SUBSCRIBE\", e.topic, e.data);\n\t\t}\n\t\tthis._$.on(e.topic, e.handler);\n\t};\n\tMediator.prototype.unsubscribe = function (e) {\n\t\tif (this._isDebug === true) {\n\t\t\tconsole.log(new Date().getTime(), \"UNSUBSCRIBE\", e.topic, e.data);\n\t\t}\n\t\tthis._$.off(e.topic);\n\t};\n\treturn Mediator;\n}());\n\n//-------------------------------------- 事件处理器 -----------------------------\n// eslint-disable-next-line no-var\nvar $ = /** @class */ (function () {\n\tfunction $() {\n\t\tthis.record = {}; // 记录\n\t}\n\t$.prototype.on = function (topic, handler) {\n\t\tthis.record[topic] = handler;\n\t};\n\t$.prototype.off = function (topic) {\n\t\tdelete this.record[topic];\n\t};\n\t$.prototype.trigger = function (topic, data) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar method = this.record[topic] || null;\n\t\treturn method ? method(data) : null;\n\t};\n\treturn $;\n}());\n\nexport {\n\tMediator\n// eslint-disable-next-line semi\n}\n","function formatDate(date, fmt) {\n\n\tdate = date == undefined ? new Date() : date;\n\tdate = typeof date == 'number' ? new Date(date) : date;\n\tfmt = fmt || 'yyyy-MM-dd HH:mm:ss';\n\n\tvar obj = {\n\t\t'y': date.getFullYear(),\n\t\t'M': date.getMonth() + 1,\n\t\t'd': date.getDate(),\n\t\t'q': Math.floor((date.getMonth() + 3) / 3),\n\t\t'w': date.getDay(),\n\t\t'H': date.getHours(),\n\t\t'h': date.getHours() % 12 == 0 ? 12 : date.getHours() % 12,\n\t\t'm': date.getMinutes(),\n\t\t's': date.getSeconds(),\n\t\t'S': date.getMilliseconds() };\n\n\tvar week = ['天', '一', '二', '三', '四', '五', '六'];\n\n\tfor (var i in obj) {\n\t\tif (obj.hasOwnProperty(i)) {\n\t\t\tfmt = fmt.replace(new RegExp(i + '+', 'g'), function (m) {\n\t\t\t\tvar val = obj[i] + '';\n\t\t\t\tif (i == 'w') return (m.length > 2 ? '星期' : '周') + week[val];\n\n\t\t\t\tfor (var j = 0, len = val.length; j < m.length - len; j++) {\n\t\t\t\t\tval = '0' + val;\n\t\t\t\t}return m.length == 1 ? val : val.substring(val.length - m.length);\n\t\t\t});\n\t\t}\n\t}\n\treturn fmt;\n}\n\nfunction FormatTime(seconds, format) {\n\tvar hours, mins, secs;\n\tformat = format || 'hh:mm:ss';\n\n\thours = Math.floor(seconds / 3600);\n\tmins = Math.floor(seconds % 3600 / 60);\n\tsecs = Math.floor(seconds % 3600 % 60);\n\n\thours = hours < 10 ? \"0\" + hours : hours;\n\tmins = mins < 10 ? \"0\" + mins : mins;\n\tsecs = secs < 10 ? \"0\" + secs : secs;\n\treturn format.replace('hh', hours).replace('mm', mins).replace('ss', secs);\n}\n\nvar FormatUrl = function () {\n\tfunction FormatUrl(url, params) {\n\t\tthis.url = url;\n\t\tthis.params = params;\n\t}\n\tFormatUrl.prototype.getURL = function () {\n\t\treturn this.encodeURL();\n\t};\n\tFormatUrl.prototype.getEncodeURI = function () {\n\t\treturn this.encodeURL(encodeURI);\n\t};\n\tFormatUrl.prototype.getEncodeURIComponent = function () {\n\t\treturn this.encodeURL(encodeURIComponent);\n\t};\n\tFormatUrl.prototype.encodeURL = function (encode) {\n\t\tvar url = this.url;\n\n\t\tvar params = this.params;\n\t\tif (!encode) {\n\t\t\tencode = function encode(str) {\n\t\t\t\treturn str;\n\t\t\t};\n\t\t}\n\n\t\tvar charIdx = url.indexOf(\"?\");\n\t\tif (charIdx != -1) {\n\t\t\turl = url.substr(0, charIdx);\n\t\t}\n\n\t\tvar newUrl = \"?\";\n\t\tif (params) {\n\t\t\tfor (var item in params) {\n\t\t\t\tif (params.hasOwnProperty(item)) {\n\t\t\t\t\tvar element = encode(params[item]);\n\n\t\t\t\t\tnewUrl += item + '=' + element + '&';\n\t\t\t\t}\n\t\t\t}\n\t\t\turl += newUrl.substr(0, newUrl.length - 1);\n\t\t}\n\t\treturn url || null;\n\t};\n\treturn FormatUrl;\n}();\n\nvar FuncLock = function () {\n\tfunction FuncLock() {\n\t\tvar _this = this;\n\t\tthis._lock = false;\n\t\tthis.enable = function (method, failure) {\n\t\t\tif (!_this._lock) {\n\t\t\t\t_this._lock = true;\n\t\t\t\tmethod();\n\t\t\t} else {\n\t\t\t\tfailure && failure();\n\t\t\t}\n\t\t};\n\t\tthis.lock = function () {\n\t\t\t_this._lock = true;\n\t\t};\n\t\tthis.clear = function () {\n\t\t\t_this._lock = false;\n\t\t};\n\t}\n\treturn FuncLock;\n}();\n\nfunction guid() {\n\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n\t\tvar r = Math.random() * 16 | 0,\n\t\t    v = c == 'x' ? r : r & 0x3 | 0x8;\n\t\treturn v.toString(16);\n\t}).toUpperCase();\n}\n\nvar Json = {\n\tserializ: function serializ(content) {\n\t\treturn JSON.stringify(content);\n\t},\n\n\tdeSerializ: function deSerializ(content) {\n\t\tvar result = null;\n\t\tif (content) {\n\t\t\tresult = JSON.parse(content);\n\t\t}\n\t\treturn result;\n\t}\n};\n\nvar ParseUrl = function () {\n\tfunction ParseUrl(search) {\n\t\tthis.search = search;\n\t}\n\tParseUrl.prototype.getParam = function () {\n\t\treturn this.decodeURL();\n\t};\n\tParseUrl.prototype.getDecodeURI = function () {\n\t\treturn this.decodeURL(decodeURI);\n\t};\n\tParseUrl.prototype.getDecodeURIComponent = function () {\n\t\treturn this.decodeURL(decodeURIComponent);\n\t};\n\tParseUrl.prototype.decodeURL = function (decode) {\n\t\tvar search = this.search;\n\t\tif (!decode) {\n\t\t\tdecode = function decode(str) {\n\t\t\t\treturn str;\n\t\t\t};\n\t\t}\n\n\t\tvar urlParameters = location.search;\n\t\tif (search) urlParameters = search;\n\n\t\tvar requestParameters = {};\n\n\t\tvar idx = urlParameters.indexOf('?');\n\t\tif (idx != -1) {\n\t\t\tvar parameters = urlParameters.substr(idx + 1);\n\n\t\t\tvar parameterArray = parameters.split('&');\n\n\t\t\tfor (var i = 0; i < parameterArray.length; i++) {\n\t\t\t\trequestParameters[parameterArray[i].split('=')[0]] = decode(parameterArray[i].split('=')[1]);\n\t\t\t}\n\t\t}\n\t\treturn requestParameters;\n\t};\n\treturn ParseUrl;\n}();\n\nfunction Position(el) {\n\tvar box = el.getBoundingClientRect();\n\n\tvar x = window.pageXOffset;\n\n\tvar y = window.pageYOffset;\n\n\treturn {\n\t\ttop: box.top + y,\n\t\tright: box.right + x,\n\t\tbottom: box.bottom + y,\n\t\tleft: box.left + x,\n\t\twidth: box.width,\n\t\theight: box.height\n\t};\n}\n\nvar Random = {\n\tscope: function scope(startAt, maxItem) {\n\t\tvar differ = maxItem - startAt;\n\t\tvar num = Math.random() * differ + startAt;\n\t\treturn parseInt(num, 10);\n\t},\n\traffle: function raffle(percent) {\n\t\tvar retu = false;\n\t\tpercent = Math.round(percent);\n\n\t\tvar num = Random.scope(1, 10);\n\n\t\tif (num <= percent) {\n\t\t\tretu = true;\n\t\t}\n\n\t\treturn retu;\n\t}\n};\n\nvar SetInterval = function () {\n\tfunction SetInterval(time) {\n\t\tvar _this = this;\n\t\tif (time === void 0) {\n\t\t\ttime = 0;\n\t\t}\n\t\tthis.enable = function (method) {\n\t\t\tif (_this.timer) {\n\t\t\t\tclearInterval(_this.timer);\n\t\t\t}\n\n\t\t\t_this.timer = setInterval(function () {\n\t\t\t\tmethod();\n\t\t\t}, _this.timeOut);\n\t\t};\n\t\tthis.clear = function () {\n\t\t\tif (_this.timer) {\n\t\t\t\tclearInterval(_this.timer);\n\t\t\t}\n\t\t};\n\t\tif (time >= 1) {\n\t\t\tthis.timeOut = time;\n\t\t}\n\t}\n\treturn SetInterval;\n}();\n\nvar SetTimeout = function () {\n\tfunction SetTimeout(time) {\n\t\tvar _this = this;\n\t\tif (time === void 0) {\n\t\t\ttime = 0;\n\t\t}\n\t\tthis.enable = function (action) {\n\t\t\tif (_this.timer) {\n\t\t\t\tclearTimeout(_this.timer);\n\t\t\t}\n\n\t\t\t_this.timer = setTimeout(function () {\n\t\t\t\tclearTimeout(_this.timer);\n\t\t\t\taction();\n\t\t\t}, _this.timeOut);\n\t\t};\n\t\tthis.clear = function () {\n\t\t\tif (_this.timer) {\n\t\t\t\tclearTimeout(_this.timer);\n\t\t\t}\n\t\t};\n\t\tif (time >= 1) {\n\t\t\tthis.timeOut = time;\n\t\t}\n\t}\n\treturn SetTimeout;\n}();\n\nvar preact = {\n\tformatDate: formatDate,\n\tFormatTime: FormatTime,\n\tFormatUrl: FormatUrl,\n\tFuncLock: FuncLock,\n\tguid: guid,\n\tJson: Json,\n\tParseUrl: ParseUrl,\n\tPosition: Position,\n\tRandom: Random,\n\tSetInterval: SetInterval,\n\tSetTimeout: SetTimeout\n};\n\nexport default preact;\nexport { formatDate, FormatTime, FormatUrl, FuncLock, guid, Json, ParseUrl, Position, Random, SetInterval, SetTimeout };\n//# sourceMappingURL=preact.mjs.map\n","// eslint-disable-next-line no-var\nvar Dictionary = /** @class */ (function () {\n\tfunction Dictionary() {\n\t\tthis.items = {};\n\t}\n\tDictionary.prototype.set = function (key, value) {\n\t\tthis.items[\"\" + key] = value;\n\t};\n\tDictionary.prototype.remove = function (key) {\n\t\tif (this.has(key)) {\n\t\t\tdelete this.items[\"\" + key];\n\t\t\treturn true;\n\t\t}\n\t\t// eslint-disable-next-line no-else-return\n\t\telse {\n\t\t\treturn false;\n\t\t}\n\t};\n\tDictionary.prototype.has = function (key) {\n\t\treturn \"\" + key in this.items;\n\t};\n\tDictionary.prototype.get = function (key) {\n\t\treturn this.has(key) ? this.items[\"\" + key] : undefined;\n\t};\n\tDictionary.prototype.clear = function () {\n\t\tthis.items = {};\n\t};\n\tDictionary.prototype.size = function () {\n\t\t// eslint-disable-next-line no-var\n\t\tvar count = 0;\n\t\t// eslint-disable-next-line no-var\n\t\tfor (var prop in this.items) { //{5}\n\t\t\tif (this.items.hasOwnProperty(prop)) //{6}\n\t\t\t\t++count; //{7}\n\t\t}\n\t\treturn count;\n\t};\n\tDictionary.prototype.keys = function () {\n\t\t// eslint-disable-next-line no-var\n\t\tvar values = [];\n\t\t// eslint-disable-next-line no-var\n\t\tfor (var k in this.items) {\n\t\t\tif (this.has(k)) {\n\t\t\t\tvalues.push(k);\n\t\t\t}\n\t\t}\n\t\treturn values;\n\t};\n\tDictionary.prototype.values = function () {\n\t\t// eslint-disable-next-line no-var\n\t\tvar values = [];\n\t\t// eslint-disable-next-line no-var\n\t\tfor (var k in this.items) {\n\t\t\tif (this.has(k)) {\n\t\t\t\tvalues.push(this.items[k]);\n\t\t\t}\n\t\t}\n\t\treturn values;\n\t};\n\tDictionary.prototype.getItems = function () {\n\t\treturn this.items;\n\t};\n\treturn Dictionary;\n}());\n\nexport {\n\tDictionary\n// eslint-disable-next-line semi\n}\n// eslint-disable-next-line no-var\nvar DoublyLinkedNode = /** @class */ (function () {\n\tfunction DoublyLinkedNode(element) {\n\t\tthis.element = element;\n\t\tthis.next = null;\n\t\tthis.prev = null;\n\t}\n\treturn DoublyLinkedNode;\n}());\nexports.DoublyLinkedNode = DoublyLinkedNode;\n/**\n * @name 双向链表\n */\n// eslint-disable-next-line no-var\nvar DoublyLinkedList = /** @class */ (function () {\n\tfunction DoublyLinkedList() {\n\t\tthis.length = 0;\n\t\tthis.head = null;\n\t\tthis.tail = null; // 新增的\n\t}\n\t/**\n\t * 向列表尾部添加一个新的项\n\t * @param element\n\t */\n\tDoublyLinkedList.prototype.append = function (element) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar node = new DoublyLinkedNode(element), current;\n\t\tif (this.head === null) {\n\t\t\tthis.head = node;\n\t\t}\n\t\telse {\n\t\t\tcurrent = this.head;\n\t\t\t// 循环列表，知道找到最后一项\n\t\t\twhile (current.next) {\n\t\t\t\tcurrent = current.next;\n\t\t\t}\n\t\t\t// 找到最后一项，将其next赋为node，建立链接\n\t\t\tcurrent.next = node;\n\t\t\tthis.tail = node;\n\t\t\tthis.tail.prev = current;\n\t\t}\n\t\t// 更新列表长度\n\t\tthis.length++;\n\t};\n\t/**\n\t * 向列表的特定位置插入一个新的项\n\t * @param position\n\t * @param element\n\t */\n\tDoublyLinkedList.prototype.insert = function (position, element) {\n\t\t// 检查越界值\n\t\tif (position >= 0 && position <= this.length) {\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tvar node = new DoublyLinkedNode(element), current = this.head, previous = void 0, index = 0;\n\t\t\tif (position === 0) { // 在第一个位置添加\n\t\t\t\tif (!this.head) { // 新增的\n\t\t\t\t\tthis.head = node;\n\t\t\t\t\tthis.tail = node;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnode.next = current;\n\t\t\t\t\tcurrent.prev = node; // 新增的\n\t\t\t\t\tthis.head = node;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (position === this.length) { // 最后一项 新增的\n\t\t\t\tcurrent = this.tail;\n\t\t\t\tcurrent.next = node;\n\t\t\t\tnode.prev = current;\n\t\t\t\tthis.tail = node;\n\t\t\t}\n\t\t\telse {\n\t\t\t\twhile (index++ < position) {\n\t\t\t\t\tprevious = current;\n\t\t\t\t\tcurrent = current.next;\n\t\t\t\t}\n\t\t\t\tnode.next = current;\n\t\t\t\tprevious.next = node;\n\t\t\t\tcurrent.prev = node; // 新增的\n\t\t\t\tnode.prev = previous; // 新增的\n\t\t\t}\n\t\t\tthis.length++; // 更新列表长度\n\t\t\treturn true;\n\t\t}\n\t\t// eslint-disable-next-line no-else-return\n\t\telse {\n\t\t\treturn false;\n\t\t}\n\t};\n\t/**\n\t * 从列表的特定位置移除一项\n\t * @param position\n\t */\n\tDoublyLinkedList.prototype.removeAt = function (position) {\n\t\t// 检查越界值\n\t\tif (position > -1 && position < this.length) {\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tvar current = this.head, previous = void 0, index = 0;\n\t\t\t// 移除第一项\n\t\t\tif (position === 0) {\n\t\t\t\tthis.head = current.next;\n\t\t\t\t// 如果只有一项，更新tail // 新增的\n\t\t\t\tif (this.length === 1) {\n\t\t\t\t\tthis.tail = null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.head.prev = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (position === this.length - 1) { // 新增的\n\t\t\t\tcurrent = this.tail;\n\t\t\t\tthis.tail = current.prev;\n\t\t\t\tthis.tail.next = null;\n\t\t\t}\n\t\t\telse {\n\t\t\t\twhile (index++ < position) {\n\t\t\t\t\tprevious = current;\n\t\t\t\t\tcurrent = current.next;\n\t\t\t\t}\n\t\t\t\t// 将previous与current的下一项链接起来：跳过current，从而移除它\n\t\t\t\tprevious.next = current.next;\n\t\t\t\tcurrent.next.prev = previous; // 新增的\n\t\t\t}\n\t\t\tthis.length--;\n\t\t\treturn current.element;\n\t\t}\n\t\t// eslint-disable-next-line no-else-return\n\t\telse {\n\t\t\treturn null;\n\t\t}\n\t};\n\t/**\n\t * 从列表中移除一项\n\t * @param element\n\t */\n\tDoublyLinkedList.prototype.remove = function (element) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar index = this.indexOf(element);\n\t\treturn this.removeAt(index);\n\t};\n\t/**\n\t * ：返回元素在列表中的索引。如果列表中没有该元素则返回-1\n\t * @param element\n\t */\n\tDoublyLinkedList.prototype.indexOf = function (element) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar current = this.head, index = -1;\n\t\twhile (current) {\n\t\t\tif (element === current.element) {\n\t\t\t\treturn index;\n\t\t\t}\n\t\t\tindex++;\n\t\t\tcurrent = current.next;\n\t\t}\n\t\treturn -1;\n\t};\n\t/**\n\t * 如果链表中不包含任何元素， 返回true， 如果链表长度大于0则返回false\n\t */\n\tDoublyLinkedList.prototype.isEmpty = function () {\n\t\treturn this.length === 0;\n\t};\n\t/**\n\t * 返回链表包含的元素个数。与数组的length属性类似\n\t */\n\tDoublyLinkedList.prototype.size = function () {\n\t\treturn this.length;\n\t};\n\t/**\n\t * 由于列表项使用了Node类，就需要重写继承自JavaScript对象默认的toString方法，让其只输出元素的值\n\t */\n\tDoublyLinkedList.prototype.toString = function () {\n\t\t// eslint-disable-next-line no-var\n\t\tvar current = this.head, string = '';\n\t\twhile (current) {\n\t\t\tstring += current.element;\n\t\t\tcurrent = current.next;\n\t\t}\n\t\treturn string;\n\t};\n\tDoublyLinkedList.prototype.getHead = function () {\n\t\treturn this.head;\n\t};\n\tDoublyLinkedList.prototype.getTail = function () {\n\t\treturn this.tail;\n\t};\n\tDoublyLinkedList.prototype.print = function () {\n\t\tconsole.log(this.toString());\n\t};\n\treturn DoublyLinkedList;\n}());\n\nexport {\n\tDoublyLinkedNode,\n\tDoublyLinkedList\n// eslint-disable-next-line semi\n}\n// eslint-disable-next-line no-var\nvar Queue = /** @class */ (function () {\n\tfunction Queue() {\n\t\tthis.items = [];\n\t}\n\tQueue.prototype.enqueue = function (element) {\n\t\tthis.items.push(element);\n\t};\n\tQueue.prototype.dequeue = function () {\n\t\treturn this.items.shift();\n\t};\n\tQueue.prototype.front = function () {\n\t\treturn this.items[0];\n\t};\n\tQueue.prototype.isEmpty = function () {\n\t\treturn this.items.length == 0;\n\t};\n\tQueue.prototype.clear = function () {\n\t\tthis.items = [];\n\t};\n\tQueue.prototype.size = function () {\n\t\treturn this.items.length;\n\t};\n\tQueue.prototype.print = function () {\n\t\tconsole.log(this.items.toString());\n\t};\n\treturn Queue;\n}());\n\n\nexport {\n\tQueue\n// eslint-disable-next-line semi\n}\n/* eslint-disable no-redeclare */\n/* eslint-disable no-var */\n// eslint-disable-next-line no-var\nvar Set = /** @class */ (function () {\n\tfunction Set() {\n\t\tthis.items = {};\n\t}\n\t/**\n\t * 向集合添加一个新的项\n\t * @param value\n\t */\n\tSet.prototype.add = function (value) {\n\t\tif (!this.has(value)) {\n\t\t\tthis.items[value] = value;\n\t\t\treturn true;\n\t\t}\n\t};\n\t/**\n\t * 从集合移除一个值\n\t * @param value\n\t */\n\tSet.prototype.remove = function (value) {\n\t\tif (this.has(value)) {\n\t\t\tdelete this.items[value];\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n\t/**\n\t * 如果值在集合中，返回true，否则返回false\n\t * @param value\n\t */\n\tSet.prototype.has = function (value) {\n\t\treturn this.items.hasOwnProperty(value);\n\t};\n\t/**\n\t * 移除集合中的所有项\n\t */\n\tSet.prototype.clear = function () {\n\t\tthis.items = {};\n\t};\n\t/**\n\t * 返回集合所包含元素的数量。与数组的length属性类似\n\t */\n\tSet.prototype.size = function () {\n\t\t// eslint-disable-next-line no-var\n\t\tvar count = 0;\n\t\t// eslint-disable-next-line no-var\n\t\tfor (var prop in this.items) { //{5}\n\t\t\tif (this.items.hasOwnProperty(prop)) //{6}\n\t\t\t\t++count; //{7}\n\t\t}\n\t\treturn count;\n\t};\n\t/**\n\t * 返回一个包含集合中所有值的数组\n\t */\n\tSet.prototype.values = function () {\n\t\t// eslint-disable-next-line no-var\n\t\tvar keys = [];\n\t\t// eslint-disable-next-line no-var\n\t\tfor (var key in this.items) { //{7}\n\t\t\tkeys.push(key); //{8}\n\t\t}\n\t\treturn keys;\n\t};\n\tSet.prototype.union = function (otherSet) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar unionSet = new Set();\n\t\t// eslint-disable-next-line no-var\n\t\tvar values = this.values();\n\t\t// eslint-disable-next-line no-var\n\t\tfor (var i = 0; i < values.length; i++) {\n\t\t\tunionSet.add(values[i]);\n\t\t}\n\t\tvalues = otherSet.values();\n\n\t\tfor (var i = 0; i < values.length; i++) {\n\t\t\tunionSet.add(values[i]);\n\t\t}\n\t\treturn unionSet;\n\t};\n\tSet.prototype.intersection = function (otherSet) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar intersectionSet = new Set();\n\t\t// eslint-disable-next-line no-var\n\t\tvar values = this.values();\n\t\t// eslint-disable-next-line no-var\n\t\tfor (var i = 0; i < values.length; i++) {\n\t\t\tif (otherSet.has(values[i])) {\n\t\t\t\tintersectionSet.add(values[i]);\n\t\t\t}\n\t\t}\n\t\treturn intersectionSet;\n\t};\n\tSet.prototype.difference = function (otherSet) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar differenceSet = new Set();\n\t\t// eslint-disable-next-line no-var\n\t\tvar values = this.values();\n\t\t// eslint-disable-next-line no-var\n\t\tfor (var i = 0; i < values.length; i++) {\n\t\t\tif (!otherSet.has(values[i])) {\n\t\t\t\tdifferenceSet.add(values[i]);\n\t\t\t}\n\t\t}\n\t\treturn differenceSet;\n\t};\n\tSet.prototype.subset = function (otherSet) {\n\t\tif (this.size() > otherSet.size()) {\n\t\t\treturn false;\n\t\t}\n\t\t// eslint-disable-next-line no-else-return\n\t\telse {\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tvar values = this.values();\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tfor (var i = 0; i < values.length; i++) {\n\t\t\t\tif (!otherSet.has(values[i])) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t};\n\treturn Set;\n}());\nexport {\n\tSet\n// eslint-disable-next-line semi\n}\n\nexport default {\n\tDictionary,\n\tDoublyLinkedNode,\n\tDoublyLinkedList,\n\tQueue,\n\tSet\n};","/**\n * @name 程序事件\n */\n// eslint-disable-next-line no-var\nvar AppEvent = /** @class */ (function () {\n\tfunction AppEvent(topic, data, handler) {\n\t\tthis.topic = topic;\n\t\tthis.data = data;\n\t\tthis.handler = handler;\n\t}\n\treturn AppEvent;\n}());\n\nexport {\n\tAppEvent\n// eslint-disable-next-line semi\n}\n","/* eslint-disable no-global-assign */\nimport { Dictionary, Queue } from \"stb-conllection\";\nimport { AppEvent } from \"./app_event\";\n/**\n * @name 事件队列\n */\n// eslint-disable-next-line no-var\nvar EventEmitter = /** @class */ (function () {\n\tfunction EventEmitter(metiator) {\n\t\tthis._metiator = metiator;\n\t\tthis._dictionary = new Dictionary();\n\t}\n\tEventEmitter.prototype.triggerEvent = function (event) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar key = event.topic, queue = null, callQueue = new Queue();\n\t\t// 是否是否已订阅\n\t\tif (this._dictionary.has(key)) {\n\t\t\t// 取得队列\n\t\t\tqueue = this._dictionary.get(key);\n\t\t\t// 触发所有事件\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tvar data_1 = queue.items, length = data_1.length;\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tvar _this_1 = this;\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tvar _loop_1 = function (i) {\n\t\t\t\tdata_1[i].data = event.data;\n\t\t\t\t// eslint-disable-next-line no-var\n\t\t\t\tvar callback = function () {\n\t\t\t\t\t_this_1._metiator.publish(data_1[i]);\n\t\t\t\t};\n\t\t\t\tcallQueue.enqueue(callback);\n\t\t\t};\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t_loop_1(i);\n\t\t\t}\n\t\t\t// 执行队列\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tvar call = null;\n\t\t\twhile (call = callQueue.dequeue()) {\n\t\t\t\tcall();\n\t\t\t}\n\t\t}\n\t};\n\tEventEmitter.prototype.subscribeToEvents = function (event) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar key = event.topic, topic = '', queue = null;\n\t\t// 事件已订阅\n\t\tif (this._dictionary.has(key)) {\n\t\t\t// 取得队列事件集合\n\t\t\tqueue = this._dictionary.get(key);\n\t\t}\n\t\t// 事件未订阅\n\t\telse {\n\t\t\t// 创建队列事件集合\n\t\t\tqueue = new Queue();\n\t\t\tthis._dictionary.set(key, queue);\n\t\t}\n\t\t// 为该事件添加新的订阅并添加到队列集合\n\t\ttopic = event.topic + \"-\" + queue.size();\n\t\tevent.topic = topic;\n\t\tqueue.enqueue(event);\n\t\tthis._metiator.subscribe(event);\n\t};\n\tEventEmitter.prototype.unsubscribeToEvents = function (event) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar key = event.topic, data = [], queue = null;\n\t\t// 该事件是否有订阅\n\t\tif (this._dictionary.has(key)) {\n\t\t\t// 取得事件队列集合\n\t\t\tqueue = this._dictionary.get(key);\n\t\t\t// 注销队列中所有事件\n\t\t\tdata = queue.items, length = data.length;\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tthis._metiator.unsubscribe(new AppEvent(data[i].topic, null, null));\n\t\t\t}\n\t\t\t// 删除该事件\n\t\t\tthis._dictionary.remove(key);\n\t\t}\n\t};\n\tEventEmitter.prototype.hasSubscribe = function (event) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar key = event.topic;\n\t\treturn this._dictionary.has(key);\n\t};\n\treturn EventEmitter;\n}());\n\nexport {\n\tEventEmitter\n// eslint-disable-next-line semi\n}\n","/* eslint-disable semi */\n/* eslint-disable no-redeclare */\n/* eslint-disable prefer-arrow-callback */\n/* eslint-disable object-shorthand */\n/* eslint-disable no-lonely-if */\n/* eslint-disable radix */\n/* eslint-disable no-var */\nimport { Mediator } from \"./mediator\";\nimport { SetTimeout } from \"stb-tools\";\nimport { EventEmitter } from \"./event_emitter\";\nimport { AppEvent } from \"./app_event\";\n/**\n * @name 页面事件驱动\n */\n// eslint-disable-next-line no-var\nvar PageType = {\n\t/**\n\t * 模块获取焦点\n\t */\n\tFocus: 'focus',\n\t/**\n\t * 模块失去焦点\n\t */\n\tBlur: 'blur',\n\t/**\n\t * 用户点击触发\n\t */\n\tKeydown: 'keydown',\n\t/**\n\t * 基于PageEvent 相关异常信息\n\t */\n\tError: 'PageEventType.Error',\n\tBlank: \"blank\",\n\tPrevious: \"previous\",\n\tChanged: \"changed\"\n};\n\n// eslint-disable-next-line no-var\nvar PageEvent = /** @class */ (function () {\n\tfunction PageEvent(targetName, events, otherDebug, emitterDebug) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar _this = this;\n\t\tif (otherDebug === void 0) { otherDebug = false; }\n\t\tif (emitterDebug === void 0) { emitterDebug = false; }\n\t\tthis.targetName = null;\n\t\tthis.previousName = null;\n\t\tthis.disableTops = [];\n\t\tthis.lockTops = [];\n\t\tthis.lockKeycodes = {};\n\t\tthis.events = events;\n\t\t// eslint-disable-next-line no-var\n\t\tvar mediator = new Mediator(emitterDebug);\n\t\tthis._eventEmitter = new EventEmitter(mediator);\n\t\t// 订阅异常事件\n\t\tif (otherDebug) {\n\t\t\tthis.subscribeEvent();\n\t\t}\n\t\tthis.initialize(events);\n\t\t// 解释器初始化后触发\n\t\t// eslint-disable-next-line prefer-arrow-callback\n\t\tnew SetTimeout().enable(function () {\n\t\t\tif (null === _this.targetName) {\n\t\t\t\tif (null !== targetName)\n\t\t\t\t\t_this.target(targetName);\n\t\t\t\telse\n\t\t\t\t\t_this.trigger(\"*\", PageType.Error, \"当前 PageEvent 未设置默认焦点模块\");\n\t\t\t}\n\t\t});\n\t}\n\tPageEvent.prototype.initialize = function (events) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar _this = this;\n\t\t// eslint-disable-next-line no-var\n\t\tvar _loop_1 = function () {\n\t\t\t// eslint-disable-next-line no-var\n\t\t\tvar ele = events[i];\n\t\t\tele.target = ele.target || document; // 默认目标文档\n\t\t\tele.target[\"on\" + ele.topic] = function (event) {\n\t\t\t\tvar e = event || window.event;\n\t\t\t\t// 订阅所有 处理\n\t\t\t\tfor (var j = 0; j < ele.handler.length; j++) {\n\t\t\t\t\tvar targetName = ele.handler[j];\n\t\t\t\t\t// 焦点事件\n\t\t\t\t\tif (_this.targetName == targetName) {\n\t\t\t\t\t\tvar res = {\n\t\t\t\t\t\t\tidentCode: parseInt(targetName),\n\t\t\t\t\t\t\tsource: _this.previousName,\n\t\t\t\t\t\t\tdata: undefined,\n\t\t\t\t\t\t\tkeyCode: e.keyCode,\n\t\t\t\t\t\t\tfromSystem: true\n\t\t\t\t\t\t};\n\t\t\t\t\t\tvar trigger = false;\n\t\t\t\t\t\tif (!_this.hasDisable(targetName)) {\n\t\t\t\t\t\t\tif (!_this.hasLock(targetName)) {\n\t\t\t\t\t\t\t\ttrigger = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// 锁定的键码\n\t\t\t\t\t\t\t\tif (!_this.hasLockKeycode(targetName, e.keyCode)) {\n\t\t\t\t\t\t\t\t\ttrigger = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (trigger) {\n\t\t\t\t\t\t\t// 发布当前触发事件简码事件\n\t\t\t\t\t\t\t// 取消 2018年08月01日13:00:00\n\t\t\t\t\t\t\t// if (res && res.keyCode) {\n\t\t\t\t\t\t\t//     this.trigger(targetName, res.keyCode, res);\n\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\t// topic 为 number 类型默认当中 keyCode 处理\n\t\t\t\t\t\t\t_this.trigger(targetName, ele.topic, res);\n\t\t\t\t\t\t\t// 所有模块的事件\n\t\t\t\t\t\t\t// this.trigger(\"*\", ele.topic, params);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tfor (var i = 0; i < events.length; i++) {\n\t\t\t_loop_1();\n\t\t}\n\t};\n\tPageEvent.prototype.trigger = function (identCode, topic, data) {\n\t\tif (data === void 0) { data = null; }\n\t\tthis._eventEmitter.triggerEvent(new AppEvent(identCode + \"-\" + topic, data, null));\n\t};\n\tPageEvent.prototype.on = function (identCode, topic, callback) {\n\t\t// 单条数据\n\t\tif (typeof identCode !== \"object\") {\n\t\t\tthis._eventEmitter.subscribeToEvents(new AppEvent(identCode + \"-\" + topic, null, callback));\n\t\t}\n\t\t// 多条数据\n\t\telse {\n\t\t\tvar data = identCode, len = data.length, i = 0, item = void 0;\n\t\t\tfor (; i < len; i++) {\n\t\t\t\titem = \"\" + data[i];\n\t\t\t\tthis.on(item, topic, callback);\n\t\t\t}\n\t\t}\n\t};\n\tPageEvent.prototype.off = function (identCode, topic) {\n\t\t// 单条数据\n\t\tif (typeof identCode !== \"object\") {\n\t\t\tthis._eventEmitter.unsubscribeToEvents(new AppEvent(identCode + \"-\" + topic, null, null));\n\t\t}\n\t\t// 多条数据\n\t\telse {\n\t\t\tvar data = identCode, len = data.length, i = 0, item = void 0;\n\t\t\tfor (; i < len; i++) {\n\t\t\t\titem = \"\" + data[i];\n\t\t\t\tthis.off(item, topic);\n\t\t\t}\n\t\t}\n\t};\n\tPageEvent.prototype.hasSubscribe = function (identCode, topic) {\n\t\treturn this._eventEmitter.hasSubscribe(new AppEvent(identCode + \"-\" + topic, null, null));\n\t};\n\tPageEvent.prototype.target = function (identCode, data) {\n\t\t// 是否有模块订阅该事件（通常为 Focus 也可以是其他自定义组件）\n\t\tif (!this.hasSubscribe(identCode, PageType.Focus)) {\n\t\t\tthis.trigger(\"*\", PageType.Error, \"当前 PageEvent 的 target 执行焦点移交时模块：\" + identCode + \" 未订阅Focus相关事件当前操作无效\");\n\t\t}\n\t\telse {\n\t\t\t// 加入有效模块列表，否则不予执行\n\t\t\t// events 目前仅处理第一组数据的 keydown 事件。\n\t\t\tvar handlers = this.events[0].handler;\n\t\t\tvar has = false, len = handlers.length;\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\tvar e = handlers[i];\n\t\t\t\tif (e === identCode) {\n\t\t\t\t\thas = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (has) {\n\t\t\t\t// 如果被标记为禁用则不处理\n\t\t\t\tif (!this.hasDisable(Math.round(identCode))) {\n\t\t\t\t\tvar pre = this.targetName;\n\t\t\t\t\t// 失去焦点\n\t\t\t\t\tif (this.targetName !== null) {\n\t\t\t\t\t\tvar res_1 = {\n\t\t\t\t\t\t\t// eslint-disable-next-line object-shorthand\n\t\t\t\t\t\t\tidentCode: identCode,\n\t\t\t\t\t\t\tsource: pre,\n\t\t\t\t\t\t\tdata: data,\n\t\t\t\t\t\t\tfromSystem: true\n\t\t\t\t\t\t};\n\t\t\t\t\t\tthis.trigger(pre, PageType.Blur, res_1);\n\t\t\t\t\t}\n\t\t\t\t\t// 获取焦点\n\t\t\t\t\tvar res = {\n\t\t\t\t\t\tidentCode: identCode,\n\t\t\t\t\t\tsource: pre,\n\t\t\t\t\t\tdata: data,\n\t\t\t\t\t\tfromSystem: true\n\t\t\t\t\t};\n\t\t\t\t\tif (null !== pre) {\n\t\t\t\t\t\tthis.previousName = pre;\n\t\t\t\t\t}\n\t\t\t\t\tthis.targetName = identCode;\n\t\t\t\t\tthis.trigger(identCode, PageType.Focus, res);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.trigger(\"*\", PageType.Error, \"当前 PageEvent 的 target 执行焦点移交时模块：\" + identCode + \" 未加入 PageEvent 的 handler 列表当前操作无效\");\n\t\t\t}\n\t\t}\n\t};\n\tPageEvent.prototype.getTargetIdentCode = function () {\n\t\treturn this.targetName;\n\t};\n\tPageEvent.prototype.getPreviousIdentCode = function () {\n\t\treturn this.previousName;\n\t};\n\tPageEvent.prototype.subscribeEvent = function () {\n\t\t// 程序异常调试参考信息\n\t\tthis.on(\"*\", PageType.Error, function (msg) {\n\t\t\tconsole.log(msg);\n\t\t});\n\t};\n\tPageEvent.prototype.enableTopic = function (identCode) {\n\t\tvar list = this.disableTops, length = list.length;\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tvar ele = list[i];\n\t\t\tif (identCode == ele) {\n\t\t\t\tdelete list[i];\n\t\t\t\tthis.trigger(\"*\", PageType.Error, \"PageEvent 已将 \" + identCode + \" 模块启用\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\tPageEvent.prototype.disableTopic = function (identCode) {\n\t\tvar list = this.disableTops, length = list.length, isAdd = true;\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tvar ele = list[i];\n\t\t\tif (identCode == ele) {\n\t\t\t\tisAdd = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (isAdd) {\n\t\t\tlist.push(identCode);\n\t\t}\n\t};\n\tPageEvent.prototype.hasDisable = function (identCode) {\n\t\tvar list = this.disableTops, length = list.length, isDisable = false;\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tvar ele = list[i];\n\t\t\tif (identCode == ele) {\n\t\t\t\tisDisable = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn isDisable;\n\t};\n\tPageEvent.prototype.lockTopic = function (identCode, keyCodes) {\n\t\tvar _this = this;\n\t\tvar list = this.lockTops, length = list.length, isAdd = false;\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tvar ele = list[i];\n\t\t\tif (identCode == ele) {\n\t\t\t\tisAdd = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!isAdd) {\n\t\t\tlist.push(identCode);\n\t\t\tthis.trigger(\"*\", PageType.Error, \"PageEvent 已将 \" + identCode + \" 模块锁定\");\n\t\t}\n\t\t// 锁定 keyCode\n\t\tif (keyCodes && keyCodes.length) {\n\t\t\tkeyCodes.forEach(function (v, i) {\n\t\t\t\t_this.lockKeycode(identCode, v);\n\t\t\t});\n\t\t}\n\t};\n\tPageEvent.prototype.unlockTopic = function (identCode, keyCodes) {\n\t\tvar _this = this;\n\t\tvar isRemove = false;\n\t\t// 解锁 keyCode\n\t\tif (undefined != keyCodes) {\n\t\t\tif (keyCodes && keyCodes.length) {\n\t\t\t\tkeyCodes.forEach(function (v, i) {\n\t\t\t\t\t_this.unlockKeycode(identCode, v);\n\t\t\t\t});\n\t\t\t\tvar arr = this.lockKeycodes[identCode], j = 0;\n\t\t\t\tfor (var i = 0; i < arr.length; i++) {\n\t\t\t\t\tvar ele = arr[i];\n\t\t\t\t\tif (ele) {\n\t\t\t\t\t\tj++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!j) {\n\t\t\t\t\tisRemove = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// 删除所有\n\t\t\tthis.unlockKeycode(identCode);\n\t\t\tisRemove = true;\n\t\t}\n\t\t// 所有键码都被删除则删除焦点锁定\n\t\tif (isRemove) {\n\t\t\tvar list = this.lockTops, length = list.length;\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tvar ele = list[i];\n\t\t\t\tif (identCode == ele) {\n\t\t\t\t\tdelete list[i];\n\t\t\t\t\tthis.trigger(\"*\", PageType.Error, \"PageEvent 已将 \" + identCode + \" 模块解锁\");\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tPageEvent.prototype.hasLock = function (identCode) {\n\t\tvar list = this.lockTops, length = list.length, isLock = false;\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tvar ele = list[i];\n\t\t\tif (identCode == ele) {\n\t\t\t\tisLock = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn isLock;\n\t};\n\tPageEvent.prototype.lockKeycode = function (identCode, keyCode) {\n\t\tvar keycodes = this.lockKeycodes[identCode];\n\t\tif (keycodes && keycodes.length) {\n\t\t\tvar isAdd = true;\n\t\t\tfor (var i = 0; i < keycodes.length; i++) {\n\t\t\t\tvar ele = keycodes[i];\n\t\t\t\tif (keyCode == ele) {\n\t\t\t\t\tisAdd = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isAdd) {\n\t\t\t\tkeycodes.push(keyCode);\n\t\t\t\tthis.trigger(\"*\", PageType.Error, \"PageEvent 已将 keyCode:\" + keyCode + \" 禁用\");\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.lockKeycodes[identCode] = [keyCode];\n\t\t\tthis.trigger(\"*\", PageType.Error, \"PageEvent 已将 keyCode:\" + keyCode + \" 禁用\");\n\t\t}\n\t};\n\tPageEvent.prototype.unlockKeycode = function (identCode, keyCode) {\n\t\tif (undefined != keyCode) {\n\t\t\tvar keycodes = this.lockKeycodes[identCode];\n\t\t\tif (keycodes && keycodes.length) {\n\t\t\t\tfor (var i = 0; i < keycodes.length; i++) {\n\t\t\t\t\tvar ele = keycodes[i];\n\t\t\t\t\tif (keyCode == ele) {\n\t\t\t\t\t\tdelete keycodes[i];\n\t\t\t\t\t\tthis.trigger(\"*\", PageType.Error, \"PageEvent 已将 keyCode:\" + keyCode + \" 启用\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// 删除所有相关 keyCode 集合\n\t\t\tthis.lockKeycodes[identCode] = [];\n\t\t\tthis.trigger(\"*\", PageType.Error, \"PageEvent 已将 identCode:\" + identCode + \" 解锁\");\n\t\t}\n\t};\n\t/**\n\t * 该 identCode 对应 锁定码列表如果为空则返回 true\n\t * 该 identCode 对应 解锁码列表至少有一个元素且存在 keyCode 则返回 true\n\t * @param identCode\n\t * @param keyCode\n\t */\n\tPageEvent.prototype.hasLockKeycode = function (identCode, keyCode) {\n\t\tvar keycodes = this.lockKeycodes[identCode], isLock = false;\n\t\tif (keycodes && keycodes.length) {\n\t\t\tfor (var i = 0; i < keycodes.length; i++) {\n\t\t\t\tvar ele = keycodes[i];\n\t\t\t\tif (keyCode == ele) {\n\t\t\t\t\tisLock = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tisLock = true;\n\t\t}\n\t\treturn isLock;\n\t};\n\treturn PageEvent;\n}());\n\nexport {\n\tPageType,\n\tPageEvent\n}\n","import { PageEvent, PageType } from \"./page_event\";\n// eslint-disable-next-line no-var\nvar BasePage = /** @class */ (function () {\n\tfunction BasePage(params) {\n\t\t// eslint-disable-next-line no-var\n\t\tvar request = params.request, cokStatus = params.cokStatus, source = params.source, event = params.event;\n\t\tthis.source = source;\n\t\tthis.cokStatus = cokStatus;\n\t\tthis.request = request;\n\t\tthis.event = event;\n\t}\n\tBasePage.prototype.init = function () { };\n\n\tBasePage.prototype.subscribeToEvents = function () { };\n\n\tBasePage.prototype.load = function () { };\n\n\tBasePage.prototype.openBlank = function (data) {\n\t\tconsole.log(\"not found blank logic\");\n\t};\n\n\tBasePage.prototype.openPrevious = function (data) {\n\t\tconsole.log(\"not found previous logic\");\n\t};\n\n\treturn BasePage;\n}());\n\nfunction PageRegister(page, params) {\n\t// eslint-disable-next-line no-var\n\tvar event = new PageEvent(null, [\n\t\t{\n\t\t\ttopic: PageType.Keydown, data: null, handler: params.handler\n\t\t}\n\t], (params.debugOther && params.debugOther) || false, (params.debugSystem && params.debugSystem) || false);\n\t// eslint-disable-next-line no-var\n\tvar p = new page({\n\t\trequest: params.request,\n\t\tcokStatus: params.cokStatus,\n\t\tsource: params.source,\n\t\t// eslint-disable-next-line object-shorthand\n\t\tevent: event\n\t});\n\tp.init();\n\tp.subscribeToEvents();\n\tp.load();\n\t// eslint-disable-next-line prefer-arrow-callback\n\tevent.on(params.handler, PageType.Blank, function (data) {\n\t\tp.openBlank(data);\n\t});\n\t// eslint-disable-next-line prefer-arrow-callback\n\tevent.on(params.handler, PageType.Previous, function (data) {\n\t\tp.openPrevious(data);\n\t});\n}\nexport {\n\tBasePage,\n\tPageRegister\n\t// eslint-disable-next-line semi\n}\n","import { BasePage, PageRegister } from \"./page\";\n\n\nexport default {\n\tBasePage, PageRegister\n};\n\nexport {\n\tBasePage, PageRegister\n// eslint-disable-next-line semi\n}\n"],"names":["Mediator","isDebug","_$","$","_isDebug","prototype","publish","e","log","Date","getTime","topic","data","trigger","subscribe","on","handler","unsubscribe","off","record","method","AppEvent","EventEmitter","metiator","_metiator","_dictionary","Dictionary","triggerEvent","event","key","queue","callQueue","Queue","has","get","data_1","items","length","_this_1","_loop_1","i","callback","enqueue","call","dequeue","subscribeToEvents","set","size","unsubscribeToEvents","remove","hasSubscribe","PageType","PageEvent","targetName","events","otherDebug","emitterDebug","_this","previousName","disableTops","lockTops","lockKeycodes","mediator","_eventEmitter","subscribeEvent","initialize","SetTimeout","enable","target","Error","ele","document","window","j","res","parseInt","undefined","keyCode","hasDisable","hasLock","hasLockKeycode","identCode","len","item","Focus","handlers","Math","round","pre","res_1","Blur","getTargetIdentCode","getPreviousIdentCode","msg","enableTopic","list","disableTopic","isAdd","push","isDisable","lockTopic","keyCodes","forEach","v","lockKeycode","unlockTopic","isRemove","unlockKeycode","arr","isLock","keycodes","BasePage","params","request","cokStatus","source","init","load","openBlank","openPrevious","PageRegister","page","Keydown","debugOther","debugSystem","p","Blank","Previous"],"mappings":"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"}