kadou-game-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/dist/kadou-game-sdk.cjs +1761 -0
- package/dist/kadou-game-sdk.cjs.map +1 -0
- package/dist/kadou-game-sdk.esm.js +1752 -0
- package/dist/kadou-game-sdk.esm.js.map +1 -0
- package/dist/kadou-game-sdk.umd.js +1767 -0
- package/dist/kadou-game-sdk.umd.js.map +1 -0
- package/dist/kadou-game-sdk.umd.min.js +2 -0
- package/dist/kadou-game-sdk.umd.min.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kadou-game-sdk.cjs","sources":["../src/version.js","../src/constants/message-types.js","../src/core/utils.js","../src/core/event-emitter.js","../src/core/post-message-channel.js","../src/core/message-bus.js","../src/ui/base-page.js","../src/ui/utils/style.js","../src/ui/utils/dom.js","../src/ui/start-page.js","../src/ui/end-page.js","../src/ui/overlay-manager.js","../src/theme/theme-registry.js","../src/theme/theme-loader.js","../src/manager/game-manager.js","../src/index.js"],"sourcesContent":["var SDK_VERSION = '1.0.0';\r\n\r\nexport { SDK_VERSION };\r\nexport default SDK_VERSION;","/**\r\n * 卡兜游戏 SDK 通讯消息类型定义\r\n * 用于 父页面(Vue壳) <-> 子iframe(游戏) 之间的 postMessage 通讯\r\n */\r\nvar MESSAGE_TYPES = {\r\n\r\n // 基础系统\r\n SDK_READY: 'SDK_READY',\r\n HEARTBEAT_PING: 'HEARTBEAT_PING',\r\n HEARTBEAT_PONG: 'HEARTBEAT_PONG',\r\n ERROR_THROWN: 'ERROR_THROWN',\r\n\r\n // 父 -> 子:游戏控制\r\n GAME_LOAD: 'GAME_LOAD',//加载游戏\r\n GAME_START: 'GAME_START',//游戏开始\r\n GAME_PAUSE: 'GAME_PAUSE',//游戏暂停\r\n GAME_RESUME: 'GAME_RESUME',//游戏恢复\r\n GAME_RESTART: 'GAME_RESTART',//重玩游戏\r\n GAME_DESTROY: 'GAME_DESTROY',//销毁游戏\r\n\r\n // 子 -> 父:游戏状态\r\n GAME_READY: 'GAME_READY',//游戏准备完成\r\n GAME_LOADED: 'GAME_LOADED',//游戏加载完成\r\n GAME_LOADING:'GAME_LOADING',//游戏加载进度\r\n GAME_FINISH: 'GAME_FINISH',//游戏结束\r\n GAME_RANK: 'GAME_RANK',//游戏排行榜\r\n\r\n // 配置 / 主题\r\n THEME_UPDATE: 'THEME_UPDATE',//更新主题\r\n CONFIG_UPDATE: 'CONFIG_UPDATE',//配置更新\r\n\r\n // 题目 / 答题\r\n QUESTION_SUBMIT: 'QUESTION_SUBMIT', //单题提交\r\n QUESTION_PREV: 'QUESTION_PREV',//上一题\r\n QUESTION_NEXT: 'QUESTION_NEXT',//下一题\r\n ANSWER_START: 'ANSWER_START',//开始答题\r\n ANSWER_COMPLETED: 'ANSWER_COMPLETED',//答题完成\r\n\r\n // 音频\r\n AUDIO_VOLUME_CHANGE: 'AUDIO_VOLUME_CHANGE',//调节音量包括 音效背景音\r\n\r\n //UI页面\r\n PAGE_START_SHOW: 'PAGE_START_SHOW',//显示开始画面\r\n PAGE_END_SHOW: 'PAGE_END_SHOW',//显示结束画面\r\n\r\n EXTENSION_EVENT: 'EXTENSION_EVENT',//扩展消息类型\r\n\r\n /**\r\n * 异常消息\r\n */\r\n ERROR: 'ERROR'\r\n};\r\n\r\nexport { MESSAGE_TYPES };\r\nexport default MESSAGE_TYPES;","export function isFunction(fn) {\r\n return typeof fn === 'function';\r\n}\r\n\r\nexport function isObject(val) {\r\n return Object.prototype.toString.call(val) === '[object Object]';\r\n}\r\n\r\nexport function noop() {}\r\n\r\nexport function createRequestId(prefix) {\r\n prefix = prefix || 'msg';\r\n return prefix + '_' + new Date().getTime() + '_' + Math.random().toString(16).slice(2, 10);\r\n}","import { isFunction } from './utils.js';\r\n\r\nfunction EventEmitter() {\r\n this.events = {};\r\n}\r\n\r\nEventEmitter.prototype.on = function (eventName, handler) {\r\n if (!eventName || !isFunction(handler)) return this;\r\n\r\n if (!this.events[eventName]) {\r\n this.events[eventName] = [];\r\n }\r\n\r\n this.events[eventName].push(handler);\r\n return this;\r\n};\r\n\r\nEventEmitter.prototype.once = function (eventName, handler) {\r\n var self = this;\r\n\r\n if (!eventName || !isFunction(handler)) return this;\r\n\r\n function wrapper() {\r\n self.off(eventName, wrapper);\r\n handler.apply(null, arguments);\r\n }\r\n\r\n wrapper.__original__ = handler;\r\n this.on(eventName, wrapper);\r\n\r\n return this;\r\n};\r\n\r\nEventEmitter.prototype.off = function (eventName, handler) {\r\n var handlers;\r\n var result;\r\n var i;\r\n var fn;\r\n\r\n if (!eventName) {\r\n this.events = {};\r\n return this;\r\n }\r\n\r\n handlers = this.events[eventName];\r\n if (!handlers || !handlers.length) return this;\r\n\r\n if (!handler) {\r\n delete this.events[eventName];\r\n return this;\r\n }\r\n\r\n result = [];\r\n for (i = 0; i < handlers.length; i++) {\r\n fn = handlers[i];\r\n if (fn !== handler && fn.__original__ !== handler) {\r\n result.push(fn);\r\n }\r\n }\r\n\r\n if (result.length) {\r\n this.events[eventName] = result;\r\n } else {\r\n delete this.events[eventName];\r\n }\r\n\r\n return this;\r\n};\r\n\r\nEventEmitter.prototype.emit = function (eventName) {\r\n var handlers = this.events[eventName];\r\n var args;\r\n var i;\r\n\r\n if (!handlers || !handlers.length) return this;\r\n\r\n args = Array.prototype.slice.call(arguments, 1);\r\n handlers = handlers.slice();\r\n\r\n for (i = 0; i < handlers.length; i++) {\r\n try {\r\n handlers[i].apply(null, args);\r\n } catch (error) {\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error('[EventEmitter] \"' + eventName + '\" handler error:', error);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\nexport default EventEmitter;","import { createRequestId, isObject } from './utils.js';\r\nimport SDK_VERSION from '../version.js';\r\n\r\nvar DEFAULT_SOURCE = 'KADOU_GAME_SDK';\r\n\r\nfunction PostMessageChannel(options) {\r\n options = options || {};\r\n\r\n this.selfWindow = options.selfWindow || window;\r\n this.targetWindow = options.targetWindow || null;\r\n this.targetOrigin = options.targetOrigin || '*';\r\n this.source = options.source || DEFAULT_SOURCE;\r\n this.debug = !!options.debug;\r\n}\r\n\r\nPostMessageChannel.prototype.setTargetWindow = function (targetWindow) {\r\n this.targetWindow = targetWindow;\r\n return this;\r\n};\r\n\r\nPostMessageChannel.prototype.setTargetOrigin = function (targetOrigin) {\r\n this.targetOrigin = targetOrigin || '*';\r\n return this;\r\n};\r\n\r\nPostMessageChannel.prototype.createMessage = function (type, payload, meta) {\r\n payload = payload || {};\r\n meta = meta || {};\r\n\r\n return {\r\n source: this.source,\r\n version: SDK_VERSION,\r\n type: type,\r\n requestId: createRequestId(),\r\n timestamp: new Date().getTime(),\r\n payload: isObject(payload) ? payload : { value: payload },\r\n meta: isObject(meta) ? meta : {}\r\n };\r\n};\r\n\r\nPostMessageChannel.prototype.send = function (type, payload, meta) {\r\n var message;\r\n\r\n if (!this.targetWindow || !this.targetWindow.postMessage) {\r\n if (this.debug && typeof console !== 'undefined' && console.warn) {\r\n console.warn('[PostMessageChannel] targetWindow 不存在,消息发送失败:', type);\r\n }\r\n return null;\r\n }\r\n\r\n message = this.createMessage(type, payload, meta);\r\n this.targetWindow.postMessage(message, this.targetOrigin);\r\n\r\n if (this.debug && typeof console !== 'undefined' && console.log) {\r\n console.log('[PostMessageChannel] send =>', message);\r\n }\r\n\r\n return message;\r\n};\r\n\r\nPostMessageChannel.prototype.isValidMessage = function (data) {\r\n return !!(\r\n data &&\r\n typeof data === 'object' &&\r\n data.source === this.source &&\r\n typeof data.type === 'string'\r\n );\r\n};\r\n\r\nexport default PostMessageChannel;","import EventEmitter from './event-emitter.js';\r\nimport PostMessageChannel from './post-message-channel.js';\r\n\r\nfunction MessageBus(options) {\r\n options = options || {};\r\n\r\n EventEmitter.call(this);\r\n\r\n this.channel = new PostMessageChannel(options);\r\n this.selfWindow = options.selfWindow || window;\r\n this.allowedOrigins = options.allowedOrigins || ['*'];\r\n this.debug = !!options.debug;\r\n\r\n this._boundOnMessage = this._onMessage.bind(this);\r\n this._listening = false;\r\n}\r\n\r\nMessageBus.prototype = Object.create(EventEmitter.prototype);\r\nMessageBus.prototype.constructor = MessageBus;\r\n\r\nMessageBus.prototype.start = function () {\r\n if (this._listening) return this;\r\n\r\n this.selfWindow.addEventListener('message', this._boundOnMessage, false);\r\n this._listening = true;\r\n\r\n if (this.debug && typeof console !== 'undefined' && console.log) {\r\n console.log('[MessageBus] started');\r\n }\r\n\r\n return this;\r\n};\r\n\r\nMessageBus.prototype.stop = function () {\r\n if (!this._listening) return this;\r\n\r\n this.selfWindow.removeEventListener('message', this._boundOnMessage, false);\r\n this._listening = false;\r\n\r\n if (this.debug && typeof console !== 'undefined' && console.log) {\r\n console.log('[MessageBus] stopped');\r\n }\r\n\r\n return this;\r\n};\r\n\r\nMessageBus.prototype.destroy = function () {\r\n this.stop();\r\n this.off();\r\n return this;\r\n};\r\n\r\nMessageBus.prototype.setTargetWindow = function (targetWindow) {\r\n this.channel.setTargetWindow(targetWindow);\r\n return this;\r\n};\r\n\r\nMessageBus.prototype.setTargetOrigin = function (targetOrigin) {\r\n this.channel.setTargetOrigin(targetOrigin);\r\n return this;\r\n};\r\n\r\nMessageBus.prototype.send = function (type, payload, meta) {\r\n return this.channel.send(type, payload, meta);\r\n};\r\n\r\nMessageBus.prototype._matchOrigin = function (origin) {\r\n var i;\r\n\r\n if (!this.allowedOrigins || !this.allowedOrigins.length) return true;\r\n if (this.allowedOrigins[0] === '*' || this.allowedOrigins.indexOf('*') > -1) return true;\r\n\r\n for (i = 0; i < this.allowedOrigins.length; i++) {\r\n if (this.allowedOrigins[i] === origin) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nMessageBus.prototype._onMessage = function (event) {\r\n var data = event.data;\r\n var origin = event.origin;\r\n var source = event.source;\r\n var context;\r\n\r\n if (!this._matchOrigin(origin)) {\r\n if (this.debug && typeof console !== 'undefined' && console.warn) {\r\n console.warn('[MessageBus] origin 不匹配,已忽略:', origin);\r\n }\r\n return;\r\n }\r\n\r\n if (!this.channel.isValidMessage(data)) return;\r\n\r\n if (this.debug && typeof console !== 'undefined' && console.log) {\r\n console.log('[MessageBus] receive <=', data);\r\n }\r\n\r\n context = {\r\n rawEvent: event,\r\n origin: origin,\r\n sourceWindow: source\r\n };\r\n\r\n this.emit('*', data, context);\r\n this.emit(data.type, data.payload, data, context);\r\n};\r\n\r\nexport default MessageBus;","function BasePage() {\r\n this.el = null;\r\n this.events = [];\r\n}\r\n\r\n/**\r\n * 绑定事件,并记录下来,destroy 时统一卸载\r\n */\r\nBasePage.prototype.bindEvent = function (el, type, handler, options) {\r\n if (!el || !type || !handler) return;\r\n\r\n el.addEventListener(type, handler, options || false);\r\n\r\n this.events.push({\r\n el: el,\r\n type: type,\r\n handler: handler,\r\n options: options || false\r\n });\r\n};\r\n\r\n/**\r\n * 解绑全部事件\r\n */\r\nBasePage.prototype.unbindEvents = function () {\r\n var i;\r\n var item;\r\n\r\n for (i = 0; i < this.events.length; i++) {\r\n item = this.events[i];\r\n\r\n if (item && item.el) {\r\n item.el.removeEventListener(item.type, item.handler, item.options);\r\n }\r\n }\r\n\r\n this.events = [];\r\n};\r\n\r\n/**\r\n * 销毁页面\r\n */\r\nBasePage.prototype.destroy = function () {\r\n this.unbindEvents();\r\n\r\n if (this.el && this.el.parentNode) {\r\n this.el.parentNode.removeChild(this.el);\r\n }\r\n\r\n this.el = null;\r\n};\r\n\r\n/**\r\n * 是否已渲染\r\n */\r\nBasePage.prototype.isRendered = function () {\r\n return !!this.el;\r\n};\r\n\r\nexport default BasePage;","export function isPlainObject(obj) {\r\n return Object.prototype.toString.call(obj) === '[object Object]';\r\n}\r\n\r\nexport function mergeStyles(base, extra) {\r\n var result = {};\r\n var key;\r\n\r\n base = isPlainObject(base) ? base : {};\r\n extra = isPlainObject(extra) ? extra : {};\r\n\r\n for (key in base) {\r\n if (Object.prototype.hasOwnProperty.call(base, key)) {\r\n result[key] = base[key];\r\n }\r\n }\r\n\r\n for (key in extra) {\r\n if (Object.prototype.hasOwnProperty.call(extra, key)) {\r\n result[key] = extra[key];\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function normalizeStyleValue(key, value) {\r\n if (value == null) return '';\r\n\r\n if (key === 'backgroundImage' && value) {\r\n if (\r\n typeof value === 'string' &&\r\n value.indexOf('url(') !== 0 &&\r\n value !== 'none'\r\n ) {\r\n return 'url(\"' + value + '\")';\r\n }\r\n }\r\n\r\n return String(value);\r\n}\r\n\r\nexport function applyStyles(el, styles) {\r\n var key;\r\n if (!el || !styles) return;\r\n\r\n for (key in styles) {\r\n if (Object.prototype.hasOwnProperty.call(styles, key)) {\r\n el.style[key] = normalizeStyleValue(key, styles[key]);\r\n }\r\n }\r\n}","import { applyStyles } from './style.js';\r\n\r\nexport function createElement(tag, className, styles, text) {\r\n var el = document.createElement(tag);\r\n\r\n if (className) {\r\n el.className = className;\r\n }\r\n\r\n if (styles) {\r\n applyStyles(el, styles);\r\n }\r\n\r\n if (text != null) {\r\n el.textContent = String(text);\r\n }\r\n\r\n return el;\r\n}","import BasePage from './base-page.js';\r\nimport { mergeStyles } from './utils/style.js';\r\nimport { createElement } from './utils/dom.js';\r\n\r\nfunction StartPage() {\r\n BasePage.call(this);\r\n}\r\n\r\nStartPage.prototype = Object.create(BasePage.prototype);\r\nStartPage.prototype.constructor = StartPage;\r\n\r\n/**\r\n * 获取最终样式\r\n * 不再自己根据 themeKey 查主题\r\n * 直接使用 game-manager 传进来的最终页面配置\r\n */\r\nStartPage.prototype.getStyles = function (data) {\r\n data = data || {};\r\n\r\n var wrapperCss = mergeStyles(\r\n {\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n right: '0',\r\n bottom: '0',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n padding: '40px',\r\n color: '#ffffff',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'center center',\r\n backgroundSize: 'cover',\r\n textAlign: 'center',\r\n zIndex: '99999'\r\n },\r\n data.wrapper\r\n );\r\n\r\n var overlayCss = mergeStyles(\r\n {\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n right: '0',\r\n bottom: '0',\r\n background: 'rgba(0, 0, 0, 0.28)'\r\n },\r\n data.overlay\r\n );\r\n\r\n var contentCss = mergeStyles(\r\n {\r\n position: 'relative',\r\n zIndex: '1',\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center'\r\n },\r\n data.content\r\n );\r\n\r\n var titleCss = mergeStyles(\r\n {\r\n fontSize: '85px',\r\n fontWeight: 'bold',\r\n textShadow: '2px 2px 4px #0b1c32',\r\n letterSpacing: '5px',\r\n lineHeight: '1.3',\r\n maxWidth: '90%',\r\n wordBreak: 'break-word'\r\n },\r\n data.title\r\n );\r\n\r\n var descCss = mergeStyles(\r\n {\r\n marginTop: '30px',\r\n width: '100%',\r\n whiteSpace: 'pre-wrap',\r\n lineHeight: '1.6',\r\n wordBreak: 'break-word',\r\n fontSize: '40px'\r\n },\r\n data.desc\r\n );\r\n\r\n var btnGroupCss = mergeStyles(\r\n {\r\n width: '100%',\r\n maxWidth: '800px',\r\n marginTop: '80px',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n data.buttonGroup\r\n );\r\n\r\n var btnCss = mergeStyles(\r\n {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minWidth: '240px',\r\n minHeight: '88px',\r\n padding: '20px 50px',\r\n boxSizing: 'border-box',\r\n cursor: 'pointer',\r\n fontSize: '40px',\r\n fontWeight: 'bold',\r\n backgroundColor: '#04b6bb',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'center center',\r\n backgroundSize: 'cover',\r\n borderRadius: '50px',\r\n border: 'none',\r\n color: '#fff',\r\n transition: 'all 0.2s linear'\r\n },\r\n data.button\r\n );\r\n\r\n return {\r\n wrapperCss: wrapperCss,\r\n overlayCss: overlayCss,\r\n contentCss: contentCss,\r\n titleCss: titleCss,\r\n descCss: descCss,\r\n btnGroupCss: btnGroupCss,\r\n btnCss: btnCss\r\n };\r\n};\r\n\r\nStartPage.prototype.render = function (container, data, onStart) {\r\n data = data || {};\r\n\r\n if (!container) {\r\n throw new Error('[StartPage] render 失败:container 不存在');\r\n }\r\n\r\n this.destroy();\r\n\r\n var styles = this.getStyles(data);\r\n\r\n var titleText = data.titleText || '欢迎进入游戏';\r\n var descText = typeof data.descText === 'string' ? data.descText : '';\r\n var buttonText = data.buttonText || '开始游戏';\r\n\r\n var rootDom = createElement('div', 'kadou-start-page', styles.wrapperCss);\r\n var overlayDom = createElement('div', 'kadou-start-overlay', styles.overlayCss);\r\n var contentDom = createElement('div', 'kadou-start-content', styles.contentCss);\r\n var titleDom = createElement('div', 'kadou-start-title', styles.titleCss, titleText);\r\n\r\n rootDom.appendChild(overlayDom);\r\n contentDom.appendChild(titleDom);\r\n\r\n if (descText) {\r\n var descDom = createElement('div', 'kadou-start-desc', styles.descCss, descText);\r\n contentDom.appendChild(descDom);\r\n }\r\n\r\n var btnGroupDom = createElement('div', 'kadou-start-btn-group', styles.btnGroupCss);\r\n var btnDom = createElement('div', 'kadou-start-btn', styles.btnCss, buttonText);\r\n this.bindEvent(btnDom, 'click', function () {\r\n if (typeof onStart === 'function') {\r\n onStart();\r\n }\r\n });\r\n\r\n btnGroupDom.appendChild(btnDom);\r\n contentDom.appendChild(btnGroupDom);\r\n rootDom.appendChild(contentDom);\r\n\r\n container.appendChild(rootDom);\r\n this.el = rootDom;\r\n\r\n return rootDom;\r\n};\r\n\r\nexport default StartPage;","import BasePage from './base-page.js';\r\nimport { mergeStyles } from './utils/style.js';\r\nimport { createElement } from './utils/dom.js';\r\n\r\nfunction EndPage() {\r\n BasePage.call(this);\r\n}\r\n\r\nEndPage.prototype = Object.create(BasePage.prototype);\r\nEndPage.prototype.constructor = EndPage;\r\n\r\n/**\r\n * 获取最终样式\r\n * 直接使用 game-manager 传进来的最终页面配置\r\n */\r\nEndPage.prototype.getStyles = function (data) {\r\n data = data || {};\r\n\r\n var wrapperCss = mergeStyles(\r\n {\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n right: '0',\r\n bottom: '0',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n padding: '40px',\r\n color: '#ffffff',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'center center',\r\n backgroundSize: 'cover',\r\n textAlign: 'center',\r\n zIndex: '99999'\r\n },\r\n data.wrapper\r\n );\r\n\r\n var overlayCss = mergeStyles(\r\n {\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n right: '0',\r\n bottom: '0',\r\n background: 'rgba(0, 0, 0, 0.35)'\r\n },\r\n data.overlay\r\n );\r\n\r\n var contentCss = mergeStyles(\r\n {\r\n position: 'relative',\r\n zIndex: '1',\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center'\r\n },\r\n data.content\r\n );\r\n\r\n var titleCss = mergeStyles(\r\n {\r\n fontSize: '72px',\r\n fontWeight: 'bold',\r\n lineHeight: '1.3',\r\n maxWidth: '90%',\r\n wordBreak: 'break-word',\r\n textShadow: '2px 2px 4px #0b1c32'\r\n },\r\n data.title\r\n );\r\n var timeCss = mergeStyles(\r\n {\r\n marginTop: '28px',\r\n fontSize:'40px',\r\n wordBreak: 'break-word'\r\n },\r\n data.time\r\n );\r\n var scoreCss = mergeStyles(\r\n {\r\n marginTop: '28px',\r\n fontSize:'40px',\r\n wordBreak: 'break-word'\r\n },\r\n data.score\r\n );\r\n\r\n var btnGroupCss = mergeStyles(\r\n {\r\n width: '100%',\r\n maxWidth: '900px',\r\n marginTop: '70px',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n gap: '24px',\r\n flexWrap: 'wrap'\r\n },\r\n data.buttonGroup\r\n );\r\n\r\n var primaryBtnCss = mergeStyles(\r\n {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n padding: '20px 50px',\r\n boxSizing: 'border-box',\r\n cursor: 'pointer',\r\n fontSize: '40px',\r\n fontWeight: 'bold',\r\n background: '#04b6bb',\r\n borderRadius: '50px',\r\n border: 'none',\r\n color: '#fff',\r\n transition: 'all 0.2s linear'\r\n },\r\n data.primaryButton || data.button\r\n );\r\n\r\n var secondaryBtnCss = mergeStyles(\r\n {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n padding: '20px 50px',\r\n boxSizing: 'border-box',\r\n cursor: 'pointer',\r\n fontSize: '40px',\r\n fontWeight: 'bold',\r\n background: '#ff6600',\r\n borderRadius: '50px',\r\n color: '#fff',\r\n transition: 'all 0.2s linear'\r\n },\r\n data.secondaryButton\r\n );\r\n\r\n return {\r\n wrapperCss: wrapperCss,\r\n overlayCss: overlayCss,\r\n contentCss: contentCss,\r\n titleCss: titleCss,\r\n timeCss:timeCss,\r\n scoreCss: scoreCss,\r\n btnGroupCss: btnGroupCss,\r\n primaryBtnCss: primaryBtnCss,\r\n secondaryBtnCss: secondaryBtnCss\r\n };\r\n};\r\n\r\n/**\r\n * 渲染结束页\r\n * callbacks:\r\n * - onRestart\r\n * - onClose\r\n */\r\nEndPage.prototype.render = function (container, data, callbacks) {\r\n data = data || {};\r\n callbacks = callbacks || {};\r\n\r\n if (!container) {\r\n throw new Error('[EndPage] render 失败:container 不存在');\r\n }\r\n\r\n this.destroy();\r\n\r\n var styles = this.getStyles(data);\r\n\r\n var titleText = data.titleText || '游戏结束';\r\n var timeText = typeof data.timeText === 'string' ? data.timeText : '';\r\n var scoreText = typeof data.scoreText === 'string' ? data.scoreText : '';\r\n var primaryButtonText = data.primaryButtonText || data.buttonText || '再来一次';\r\n var secondaryButtonText = data.secondaryButtonText || '';\r\n\r\n var rootDom = createElement('div', 'kadou-end-page', styles.wrapperCss);\r\n var overlayDom = createElement('div', 'kadou-end-overlay', styles.overlayCss);\r\n var contentDom = createElement('div', 'kadou-end-content', styles.contentCss);\r\n var titleDom = createElement('div', 'kadou-end-title', styles.titleCss, titleText);\r\n\r\n rootDom.appendChild(overlayDom);\r\n contentDom.appendChild(titleDom);\r\n\r\n if (scoreText) {\r\n var scoreDom = createElement('div', 'kadou-end-score', styles.scoreCss, scoreText);\r\n contentDom.appendChild(scoreDom);\r\n }\r\n\r\n if (timeText) {\r\n var timeDom = createElement('div', 'kadou-end-time', styles.timeCss, timeText);\r\n contentDom.appendChild(timeDom);\r\n }\r\n\r\n var btnGroupDom = createElement('div', 'kadou-end-btn-group', styles.btnGroupCss);\r\n\r\n\r\n if (secondaryButtonText) {\r\n var secondaryBtnDom = createElement(\r\n 'div',\r\n 'kadou-end-secondary-btn',\r\n styles.secondaryBtnCss,\r\n secondaryButtonText\r\n );\r\n\r\n this.bindEvent(secondaryBtnDom, 'click', function () {\r\n if (typeof callbacks.onShowRank === 'function') {\r\n callbacks.onShowRank();\r\n }\r\n });\r\n\r\n btnGroupDom.appendChild(secondaryBtnDom);\r\n }\r\n if (primaryButtonText) {\r\n var primaryBtnDom = createElement(\r\n 'div',\r\n 'kadou-end-primary-btn',\r\n styles.primaryBtnCss,\r\n primaryButtonText\r\n );\r\n\r\n this.bindEvent(primaryBtnDom, 'click', function () {\r\n if (typeof callbacks.onRestart === 'function') {\r\n callbacks.onRestart();\r\n }\r\n });\r\n\r\n btnGroupDom.appendChild(primaryBtnDom);\r\n }\r\n\r\n if (btnGroupDom.childNodes.length > 0) {\r\n contentDom.appendChild(btnGroupDom);\r\n }\r\n\r\n rootDom.appendChild(contentDom);\r\n container.appendChild(rootDom);\r\n\r\n this.el = rootDom;\r\n\r\n return rootDom;\r\n};\r\n\r\nexport default EndPage;","import StartPage from './start-page.js';\r\nimport EndPage from './end-page.js';\r\n\r\nfunction OverlayManager(options) {\r\n options = options || {};\r\n\r\n this.container = options.container || document.body;\r\n this.startPage = null;\r\n this.endPage = null;\r\n}\r\n\r\n/**\r\n * 设置容器\r\n */\r\nOverlayManager.prototype.setContainer = function (container) {\r\n if (container) {\r\n this.container = container;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * 显示开始页\r\n * data 直接使用统一 pageData 结构\r\n */\r\nOverlayManager.prototype.showStartPage = function (data, callbacks) {\r\n var self = this;\r\n var finalCallbacks = callbacks || {};\r\n\r\n if (!this.container) {\r\n throw new Error('[OverlayManager] showStartPage 失败:container 不存在');\r\n }\r\n\r\n this.hideStartPage();\r\n\r\n this.startPage = new StartPage();\r\n this.startPage.render(\r\n this.container,\r\n data || {},\r\n function () {\r\n if (typeof finalCallbacks.onStart === 'function') {\r\n finalCallbacks.onStart();\r\n }\r\n\r\n // 如果没传回调,也不自动销毁,由外部决定何时关闭\r\n // 想点按钮立刻隐藏,可以把下面这行打开\r\n self.hideStartPage();\r\n }\r\n );\r\n\r\n return self;\r\n};\r\n\r\n/**\r\n * 隐藏开始页\r\n */\r\nOverlayManager.prototype.hideStartPage = function () {\r\n if (this.startPage) {\r\n this.startPage.destroy();\r\n this.startPage = null;\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * 显示结束页\r\n */\r\nOverlayManager.prototype.showEndPage = function (data, callbacks) {\r\n var self = this;\r\n var finalCallbacks = callbacks || {};\r\n\r\n if (!this.container) {\r\n throw new Error('[OverlayManager] showEndPage 失败:container 不存在');\r\n }\r\n\r\n this.hideEndPage();\r\n\r\n this.endPage = new EndPage();\r\n this.endPage.render(\r\n this.container,\r\n data || {},\r\n {\r\n onRestart: function () {\r\n if (typeof finalCallbacks.onRestart === 'function') {\r\n finalCallbacks.onRestart();\r\n self.hideEndPage();\r\n }\r\n },\r\n onShowRank: function () {\r\n if (typeof finalCallbacks.onShowRank === 'function') {\r\n finalCallbacks.onShowRank();\r\n }\r\n }\r\n }\r\n );\r\n\r\n return self;\r\n};\r\n\r\n/**\r\n * 隐藏结束页\r\n */\r\nOverlayManager.prototype.hideEndPage = function () {\r\n if (this.endPage) {\r\n this.endPage.destroy();\r\n this.endPage = null;\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * 全部隐藏\r\n */\r\nOverlayManager.prototype.hideAll = function () {\r\n this.hideStartPage();\r\n this.hideEndPage();\r\n return this;\r\n};\r\n\r\n/**\r\n * 销毁管理器\r\n */\r\nOverlayManager.prototype.destroy = function () {\r\n this.hideAll();\r\n this.container = null;\r\n};\r\n\r\nexport default OverlayManager;","var themes = {};\r\n\r\n/**\r\n * 注册主题\r\n * @param {string} key 主题 key\r\n * @param {object} config 主题配置\r\n */\r\nfunction registerTheme(key, config) {\r\n if (!key) {\r\n throw new Error('Theme key is required');\r\n }\r\n\r\n themes[key] = config || {};\r\n}\r\n\r\n/**\r\n * 是否已存在主题\r\n * @param {string} key\r\n * @returns {boolean}\r\n */\r\nfunction hasTheme(key) {\r\n return !!themes[key];\r\n}\r\n\r\n/**\r\n * 获取主题\r\n * @param {string} key\r\n * @returns {object|null}\r\n */\r\nfunction getTheme(key) {\r\n return themes[key] || themes.default || null;\r\n}\r\n\r\n/**\r\n * 清除某个主题\r\n * @param {string} key\r\n */\r\nfunction clearTheme(key) {\r\n if (key && themes[key]) {\r\n delete themes[key];\r\n }\r\n}\r\n\r\n/**\r\n * 清空全部主题\r\n */\r\nfunction clearAllThemes() {\r\n themes = {};\r\n}\r\n\r\n/**\r\n * 获取全部主题\r\n * 调试时可用\r\n */\r\nfunction getAllThemes() {\r\n return themes;\r\n}\r\n\r\nexport {\r\n registerTheme,\r\n hasTheme,\r\n getTheme,\r\n clearTheme,\r\n clearAllThemes,\r\n getAllThemes\r\n};","import { registerTheme, hasTheme, getTheme } from './theme-registry.js';\r\n\r\nfunction dirname(url) {\r\n if (!url) return '';\r\n return url.replace(/\\/[^\\/]*$/, '/');\r\n}\r\n\r\nfunction isAbsoluteUrl(url) {\r\n return /^(https?:)?\\/\\//.test(url) ||\r\n /^file:/.test(url) ||\r\n /^data:/.test(url) ||\r\n /^blob:/.test(url);\r\n}\r\n\r\nfunction joinUrl(base, path) {\r\n if (!path) return '';\r\n if (isAbsoluteUrl(path)) return path;\r\n return base + path.replace(/^\\.\\//, '');\r\n}\r\n\r\nfunction patchStyleAssetPaths(styleObj, baseUrl) {\r\n var key;\r\n var value;\r\n\r\n if (!styleObj) return styleObj;\r\n\r\n for (key in styleObj) {\r\n if (!Object.prototype.hasOwnProperty.call(styleObj, key)) continue;\r\n\r\n value = styleObj[key];\r\n\r\n if (typeof value !== 'string') continue;\r\n\r\n if (key === 'backgroundImage') {\r\n styleObj[key] = joinUrl(baseUrl, value);\r\n continue;\r\n }\r\n\r\n if (key === 'src') {\r\n styleObj[key] = joinUrl(baseUrl, value);\r\n continue;\r\n }\r\n\r\n if (key === 'background') {\r\n styleObj[key] = value.replace(/url\\((['\"]?)(.+?)\\1\\)/g, function (_, quote, assetPath) {\r\n return 'url(\"' + joinUrl(baseUrl, assetPath) + '\")';\r\n });\r\n }\r\n }\r\n\r\n return styleObj;\r\n}\r\n\r\nfunction patchHostAssetPaths(hostConfig, baseUrl) {\r\n var keys;\r\n var i;\r\n var key;\r\n var value;\r\n\r\n if (!hostConfig) return hostConfig;\r\n\r\n keys = ['bg', 'frame', 'actionBtn', 'logo', 'icon'];\r\n\r\n for (i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n value = hostConfig[key];\r\n\r\n if (typeof value === 'string' && value) {\r\n hostConfig[key] = joinUrl(baseUrl, value);\r\n }\r\n }\r\n\r\n return hostConfig;\r\n}\r\n\r\nfunction patchThemeAssetPaths(theme, baseUrl) {\r\n var startPage;\r\n var endPage;\r\n var pageKeys;\r\n var i;\r\n\r\n if (!theme) return theme;\r\n\r\n startPage = theme.startPage || {};\r\n endPage = theme.endPage || {};\r\n\r\n pageKeys = [\r\n 'wrapper',\r\n 'overlay',\r\n 'content',\r\n 'title',\r\n 'desc',\r\n 'buttonGroup',\r\n 'button',\r\n 'primaryButton',\r\n 'secondaryButton',\r\n 'score'\r\n ];\r\n\r\n for (i = 0; i < pageKeys.length; i++) {\r\n patchStyleAssetPaths(startPage[pageKeys[i]], baseUrl);\r\n patchStyleAssetPaths(endPage[pageKeys[i]], baseUrl);\r\n }\r\n\r\n patchHostAssetPaths(theme.host, baseUrl);\r\n\r\n return theme;\r\n}\r\n\r\nfunction loadScript(url, callback) {\r\n var script = document.createElement('script');\r\n var done = false;\r\n\r\n script.type = 'text/javascript';\r\n script.async = true;\r\n script.src = url;\r\n\r\n script.onload = function () {\r\n if (done) return;\r\n done = true;\r\n callback && callback(null, script);\r\n };\r\n\r\n script.onerror = function () {\r\n if (done) return;\r\n done = true;\r\n callback && callback(new Error('Failed to load script: ' + url));\r\n };\r\n\r\n document.head.appendChild(script);\r\n}\r\n\r\nfunction loadThemeByUrl(url, callback) {\r\n window.__KADOU_THEME_PACK__ = null;\r\n\r\n loadScript(url, function (err) {\r\n var pack;\r\n var baseUrl;\r\n var theme;\r\n\r\n if (err) {\r\n callback && callback(err);\r\n return;\r\n }\r\n\r\n pack = window.__KADOU_THEME_PACK__;\r\n\r\n if (!pack || !pack.key || !pack.theme) {\r\n callback && callback(new Error('Invalid theme pack: ' + url));\r\n return;\r\n }\r\n\r\n baseUrl = dirname(url);\r\n theme = patchThemeAssetPaths(pack.theme, baseUrl);\r\n\r\n registerTheme(pack.key, theme);\r\n\r\n callback && callback(null, {\r\n key: pack.key,\r\n url: url,\r\n from: 'remote',\r\n theme: theme\r\n });\r\n });\r\n}\r\n\r\nfunction buildThemeUrl(themeRoot, themeKey) {\r\n if (!themeRoot) {\r\n throw new Error('themeRoot is required');\r\n }\r\n\r\n if (!themeKey) {\r\n throw new Error('themeKey is required');\r\n }\r\n\r\n return themeRoot.replace(/\\/?$/, '/') + themeKey + '/theme.js';\r\n}\r\n\r\nfunction ensureTheme(themeKey, themeRoot, callback) {\r\n if (hasTheme(themeKey)) {\r\n callback && callback(null, {\r\n key: themeKey,\r\n from: 'cache',\r\n theme: getTheme(themeKey)\r\n });\r\n return;\r\n }\r\n\r\n var url;\r\n\r\n try {\r\n url = buildThemeUrl(themeRoot, themeKey);\r\n } catch (err) {\r\n callback && callback(err);\r\n return;\r\n }\r\n\r\n loadThemeByUrl(url, callback);\r\n}\r\n\r\nexport {\r\n buildThemeUrl,\r\n loadThemeByUrl,\r\n ensureTheme\r\n};","/**\r\n * GameManager\r\n * -----------------------------------------\r\n * 游戏管理器\r\n *\r\n * 作用:\r\n * 1 管理游戏生命周期\r\n * 2 统一发送 / 接收 postMessage\r\n * 3 提供事件机制给外部使用\r\n * 4 管理 SDK 与 Game 的状态\r\n * 5 host 负责主题加载,game 负责主题渲染\r\n *\r\n * 架构关系:\r\n *\r\n * Host 页面 (Vue 壳)\r\n * │\r\n * │ postMessage\r\n * ▼\r\n * GameManager <----> MessageBus\r\n * │\r\n * ▼\r\n * Game iframe\r\n *\r\n */\r\n\r\nimport EventEmitter from '../core/event-emitter.js';\r\nimport MessageBus from '../core/message-bus.js';\r\nimport MESSAGE_TYPES from '../constants/message-types.js';\r\nimport OverlayManager from '../ui/overlay-manager.js';\r\nimport { ensureTheme, buildThemeUrl, loadThemeByUrl } from '../theme/theme-loader.js';\r\n\r\n/**\r\n * 构造函数\r\n */\r\nfunction GameManager(options) {\r\n options = options || {};\r\n\r\n // 继承事件系统\r\n EventEmitter.call(this);\r\n\r\n this.options = options;\r\n\r\n /**\r\n * UI 挂载根节点\r\n */\r\n this.root = options.root || document.body;\r\n\r\n /**\r\n * 是否开启调试\r\n */\r\n this.debug = !!options.debug;\r\n\r\n /**\r\n * 角色\r\n * host = 宿主页面\r\n * game = 游戏页面\r\n */\r\n this.role = options.role || 'host';\r\n\r\n /**\r\n * SDK 状态\r\n */\r\n this.state = {\r\n sdkReady: false,\r\n gameReady: false,\r\n started: false,\r\n paused: false,\r\n destroyed: false\r\n };\r\n\r\n /**\r\n * 当前主题\r\n * 仅用于 game 内部渲染\r\n */\r\n this.currentThemeKey = '';\r\n this.currentTheme = null;\r\n\r\n /**\r\n * MessageBus\r\n * 负责 postMessage 封装\r\n */\r\n this.bus = new MessageBus({\r\n selfWindow: options.selfWindow || window,\r\n targetWindow: options.targetWindow || null,\r\n targetOrigin: options.targetOrigin || '*',\r\n allowedOrigins: options.allowedOrigins || ['*'],\r\n source: options.source || 'KADOU_GAME_SDK',\r\n debug: this.debug\r\n });\r\n\r\n /**\r\n * UI Overlay 管理器\r\n * 只有 game 角色才负责真正渲染开始页 / 结束页\r\n */\r\n this.overlay = this.role === 'game'\r\n ? new OverlayManager({\r\n container: this.root\r\n })\r\n : null;\r\n\r\n /**\r\n * 绑定 MessageBus 事件\r\n */\r\n this._bindBusEvents();\r\n}\r\n\r\nGameManager.prototype = Object.create(EventEmitter.prototype);\r\nGameManager.prototype.constructor = GameManager;\r\n\r\n/**\r\n * 绑定 MessageBus 所有事件\r\n */\r\nGameManager.prototype._bindBusEvents = function () {\r\n var self = this;\r\n\r\n /**\r\n * 所有消息\r\n */\r\n this.bus.on('*', function (message, context) {\r\n self.emit('message', message, context);\r\n });\r\n\r\n /**\r\n * SDK READY\r\n */\r\n this.bus.on(MESSAGE_TYPES.SDK_READY, function (payload, message, context) {\r\n self.state.sdkReady = true;\r\n self.emit('sdk:ready', payload, message, context);\r\n });\r\n\r\n /**\r\n * GAME READY\r\n */\r\n this.bus.on(MESSAGE_TYPES.GAME_READY, function (payload, message, context) {\r\n self.state.gameReady = true;\r\n self.emit('game:ready', payload, message, context);\r\n });\r\n\r\n /**\r\n * GAME LOAD\r\n */\r\n this.bus.on(MESSAGE_TYPES.GAME_LOAD, function (payload, message, context) {\r\n self.emit('game:load', payload, message, context);\r\n });\r\n\r\n /**\r\n * GAME LOADED\r\n */\r\n this.bus.on(MESSAGE_TYPES.GAME_LOADED, function (payload, message, context) {\r\n self.emit('game:loaded', payload, message, context);\r\n });\r\n\r\n /**\r\n * GAME LOADING\r\n */\r\n this.bus.on(MESSAGE_TYPES.GAME_LOADING, function (payload, message, context) {\r\n self.emit('game:loading', payload, message, context);\r\n });\r\n\r\n /**\r\n * GAME START\r\n */\r\n this.bus.on(MESSAGE_TYPES.GAME_START, function (payload, message, context) {\r\n self.state.started = true;\r\n self.state.paused = false;\r\n\r\n if (self.role === 'game' && self.overlay) {\r\n self.hideStartPage();\r\n }\r\n\r\n self.emit('game:start', payload, message, context);\r\n });\r\n\r\n /**\r\n * GAME START\r\n */\r\n this.bus.on(MESSAGE_TYPES.GAME_RESTART, function (payload, message, context) {\r\n self.state.started = true;\r\n self.state.paused = false;\r\n\r\n if (self.role === 'game' && self.overlay) {\r\n self.hideEndPage();\r\n }\r\n\r\n self.emit('game:restart', payload, message, context);\r\n });\r\n\r\n /**\r\n * GAME PAUSE\r\n */\r\n this.bus.on(MESSAGE_TYPES.GAME_PAUSE, function (payload, message, context) {\r\n self.state.paused = true;\r\n self.emit('game:pause', payload, message, context);\r\n });\r\n\r\n /**\r\n * GAME RESUME\r\n */\r\n this.bus.on(MESSAGE_TYPES.GAME_RESUME, function (payload, message, context) {\r\n self.state.paused = false;\r\n self.emit('game:resume', payload, message, context);\r\n });\r\n\r\n /**\r\n * GAME FINISH\r\n */\r\n this.bus.on(MESSAGE_TYPES.GAME_FINISH, function (payload, message, context) {\r\n self.state.started = false;\r\n self.emit('game:finish', payload, message, context);\r\n });\r\n\r\n /**\r\n * GAME DESTROY\r\n */\r\n this.bus.on(MESSAGE_TYPES.GAME_DESTROY, function (payload, message, context) {\r\n self.state.destroyed = true;\r\n self.emit('game:destroy', payload, message, context);\r\n });\r\n\r\n /**\r\n * 主题更新\r\n * 只缓存,不直接渲染\r\n */\r\n this.bus.on(MESSAGE_TYPES.THEME_UPDATE, function (payload, message, context) {\r\n self.currentThemeKey = payload && payload.themeKey ? payload.themeKey : '';\r\n self.currentTheme = payload && payload.theme ? payload.theme : payload || null;\r\n self.emit('theme:update', payload, message, context);\r\n });\r\n\r\n /**\r\n * 配置更新\r\n */\r\n this.bus.on(MESSAGE_TYPES.CONFIG_UPDATE, function (payload, message, context) {\r\n self.emit('config:update', payload, message, context);\r\n });\r\n\r\n /**\r\n * 学生提交答案\r\n */\r\n this.bus.on(MESSAGE_TYPES.QUESTION_SUBMIT, function (payload, message, context) {\r\n self.emit('question:submit', payload, message, context);\r\n });\r\n\r\n /**\r\n * 游戏结果上报\r\n */\r\n this.bus.on(MESSAGE_TYPES.REPORT_GENERATED, function (payload, message, context) {\r\n self.emit('result:report', payload, message, context);\r\n });\r\n\r\n /**\r\n * 显示开始页\r\n * host 发消息,game 内部真正 render\r\n */\r\n this.bus.on(MESSAGE_TYPES.PAGE_START_SHOW, function (payload, message, context) {\r\n self.emit('page:start:show', payload, message, context);\r\n\r\n if (self.role === 'game') {\r\n self.renderStartPage(payload);\r\n }\r\n });\r\n\r\n /**\r\n * 显示结束页\r\n */\r\n this.bus.on(MESSAGE_TYPES.PAGE_END_SHOW, function (payload, message, context) {\r\n self.emit('page:end:show', payload, message, context);\r\n\r\n if (self.role === 'game') {\r\n self.renderEndPage(payload);\r\n }\r\n });\r\n\r\n /**\r\n * 错误\r\n */\r\n this.bus.on(MESSAGE_TYPES.ERROR, function (payload, message, context) {\r\n self.emit('error', payload, message, context);\r\n });\r\n\r\n /**\r\n * HEARTBEAT_PING 心跳检测\r\n */\r\n this.bus.on(MESSAGE_TYPES.HEARTBEAT_PING, function (payload, message, context) {\r\n self.emit('heartbeat:ping', payload, message, context);\r\n\r\n self.send(MESSAGE_TYPES.HEARTBEAT_PONG, {\r\n replyTo: message.requestId,\r\n time: new Date().getTime()\r\n });\r\n });\r\n\r\n /**\r\n * HEARTBEAT_PONG\r\n */\r\n this.bus.on(MESSAGE_TYPES.HEARTBEAT_PONG, function (payload, message, context) {\r\n self.emit('heartbeat:pong', payload, message, context);\r\n });\r\n\r\n this.bus.on(MESSAGE_TYPES.GAME_RANK, function (payload, message, context) {\r\n self.emit('game:rank', payload, message, context);\r\n });\r\n\r\n /**\r\n * 开始答题\r\n */\r\n this.bus.on(MESSAGE_TYPES.ANSWER_START, function (payload, message, context) {\r\n self.emit('answer:start', payload, message, context);\r\n });\r\n\r\n /**\r\n * 上一题\r\n */\r\n this.bus.on(MESSAGE_TYPES.QUESTION_PREV, function (payload, message, context) {\r\n self.emit('question:prev', payload, message, context);\r\n });\r\n\r\n /**\r\n * 下一题\r\n */\r\n this.bus.on(MESSAGE_TYPES.QUESTION_NEXT, function (payload, message, context) {\r\n self.emit('question:next', payload, message, context);\r\n });\r\n\r\n /**\r\n * 调节声音\r\n */\r\n this.bus.on(MESSAGE_TYPES.AUDIO_VOLUME_CHANGE, function (payload, message, context) {\r\n self.emit('volume:change', payload, message, context);\r\n });\r\n\r\n /**\r\n * 答题完成\r\n */\r\n this.bus.on(MESSAGE_TYPES.ANSWER_COMPLETED, function (payload, message, context) {\r\n self.emit('answer:completed', payload, message, context);\r\n });\r\n\r\n \r\n\r\n /**\r\n * 扩展消息类型\r\n */\r\n this.bus.on(MESSAGE_TYPES.EXTENSION_EVENT, function (payload, message, context) {\r\n self.emit('extension:event', payload, message, context);\r\n });\r\n\r\n};\r\n\r\n/**\r\n * 初始化 SDK\r\n */\r\nGameManager.prototype.init = function () {\r\n this.bus.start();\r\n\r\n if (this.debug && typeof console !== 'undefined' && console.log) {\r\n console.log('[GameManager] init, role =', this.role);\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * 销毁 SDK\r\n */\r\nGameManager.prototype.destroy = function () {\r\n this.state.destroyed = true;\r\n\r\n this.bus.destroy();\r\n\r\n if (this.overlay) {\r\n if (this.overlay.hideStartPage) {\r\n this.overlay.hideStartPage();\r\n }\r\n if (this.overlay.hideEndPage) {\r\n this.overlay.hideEndPage();\r\n }\r\n }\r\n\r\n this.off();\r\n\r\n if (this.debug && typeof console !== 'undefined' && console.log) {\r\n console.log('[GameManager] destroyed');\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * 设置目标窗口\r\n * 一般为 iframe.contentWindow\r\n */\r\nGameManager.prototype.setTargetWindow = function (win) {\r\n this.bus.setTargetWindow(win);\r\n return this;\r\n};\r\n\r\n/**\r\n * 设置目标 origin\r\n */\r\nGameManager.prototype.setTargetOrigin = function (origin) {\r\n this.bus.setTargetOrigin(origin);\r\n return this;\r\n};\r\n\r\n/**\r\n * 设置 root\r\n */\r\nGameManager.prototype.setRoot = function (el) {\r\n if (!el) return this;\r\n\r\n this.root = el;\r\n\r\n if (this.overlay) {\r\n this.overlay.container = el;\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * 发送消息\r\n */\r\nGameManager.prototype.send = function (type, payload, meta) {\r\n return this.bus.send(type, payload, meta);\r\n};\r\n\r\n/**\r\n * SDK ready\r\n */\r\nGameManager.prototype.notifySdkReady = function (extra) {\r\n this.state.sdkReady = true;\r\n return this.send(MESSAGE_TYPES.SDK_READY, extra || {});\r\n};\r\n\r\n/**\r\n * 心跳 ping\r\n */\r\nGameManager.prototype.heartbeatPing = function (extra) {\r\n var payload = extra || {};\r\n payload.time = new Date().getTime();\r\n return this.send(MESSAGE_TYPES.HEARTBEAT_PING, payload);\r\n};\r\n\r\n/**\r\n * 游戏 ready\r\n */\r\nGameManager.prototype.gameReady = function (extra) {\r\n this.state.gameReady = true;\r\n return this.send(MESSAGE_TYPES.GAME_READY, extra || {});\r\n};\r\n\r\n/**\r\n * 加载游戏\r\n */\r\nGameManager.prototype.loadGame = function (config) {\r\n return this.send(MESSAGE_TYPES.GAME_LOAD, config || {});\r\n};\r\n\r\n/**\r\n * 游戏加载进度\r\n */\r\nGameManager.prototype.gameLoading = function (config) {\r\n return this.send(MESSAGE_TYPES.GAME_LOADING, config || {});\r\n};\r\n\r\n/**\r\n * 开始游戏\r\n * 保留一个最终版本,避免重复定义覆盖\r\n */\r\nGameManager.prototype.startGame = function (data) {\r\n var payload = data || {};\r\n\r\n this.state.started = true;\r\n this.state.paused = false;\r\n\r\n this.emit('game:start', payload, null, {\r\n local: true\r\n });\r\n\r\n return this.bus.send(MESSAGE_TYPES.GAME_START, payload);\r\n};\r\n\r\n\r\n/**\r\n * 游戏重新开始\r\n */\r\nGameManager.prototype.restartGame = function (data) {\r\n var payload = data || {};\r\n\r\n this.state.started = true;\r\n this.state.paused = false;\r\n\r\n this.emit('game:restart', payload, null, {\r\n local: true\r\n });\r\n\r\n return this.bus.send(MESSAGE_TYPES.GAME_RESTART, payload);\r\n};\r\n\r\n/**\r\n * 查看游戏排行榜\r\n */\r\nGameManager.prototype.showGameRank = function (data) {\r\n var payload = data || {};\r\n\r\n return this.bus.send(MESSAGE_TYPES.GAME_RANK, payload);\r\n};\r\n/**\r\n * 暂停游戏\r\n */\r\nGameManager.prototype.pauseGame = function (data) {\r\n this.state.paused = true;\r\n return this.send(MESSAGE_TYPES.GAME_PAUSE, data || {});\r\n};\r\n\r\n/**\r\n * 恢复游戏\r\n */\r\nGameManager.prototype.resumeGame = function (data) {\r\n this.state.paused = false;\r\n return this.send(MESSAGE_TYPES.GAME_RESUME, data || {});\r\n};\r\n\r\n/**\r\n * 游戏结束\r\n */\r\nGameManager.prototype.finishGame = function (result) {\r\n this.state.started = false;\r\n return this.send(MESSAGE_TYPES.GAME_FINISH, result || {});\r\n};\r\n\r\n/**\r\n * 销毁游戏\r\n */\r\nGameManager.prototype.destroyGame = function (data) {\r\n this.state.destroyed = true;\r\n return this.send(MESSAGE_TYPES.GAME_DESTROY, data || {});\r\n};\r\n\r\n/**\r\n * 更新主题\r\n * 保持兼容旧接口\r\n */\r\nGameManager.prototype.updateTheme = function (theme) {\r\n if (this.role === 'game') {\r\n this.currentTheme = theme || null;\r\n }\r\n return this.send(MESSAGE_TYPES.THEME_UPDATE, theme || {});\r\n};\r\n\r\n/**\r\n * 应用主题\r\n * 推荐 host 使用这个方法发给 game\r\n */\r\nGameManager.prototype.applyTheme = function (themeKey, themeConfig, extra) {\r\n var payload = extra || {};\r\n\r\n payload.themeKey = themeKey || '';\r\n payload.theme = themeConfig || {};\r\n\r\n if (this.role === 'game') {\r\n this.currentThemeKey = payload.themeKey;\r\n this.currentTheme = payload.theme;\r\n }\r\n\r\n return this.send(MESSAGE_TYPES.THEME_UPDATE, payload);\r\n};\r\n\r\n/**\r\n * 更新配置\r\n */\r\nGameManager.prototype.updateConfig = function (config) {\r\n return this.send(MESSAGE_TYPES.CONFIG_UPDATE, config || {});\r\n};\r\n\r\n/**\r\n * 显示开始页\r\n * host 调这个;真正渲染在 game 内部执行\r\n */\r\nGameManager.prototype.showStartPage = function (data) {\r\n return this.send(MESSAGE_TYPES.PAGE_START_SHOW, data || {});\r\n};\r\n\r\n/**\r\n * 显示结束页\r\n */\r\nGameManager.prototype.showEndPage = function (data) {\r\n return this.send(MESSAGE_TYPES.PAGE_END_SHOW, data || {});\r\n};\r\n\r\n/**\r\n * 提交题目\r\n */\r\nGameManager.prototype.submitQuestion = function (data) {\r\n return this.send(MESSAGE_TYPES.QUESTION_SUBMIT, data || {});\r\n};\r\n\r\n/**\r\n * 上报错误\r\n */\r\nGameManager.prototype.reportError = function (error) {\r\n var payload;\r\n\r\n if (error instanceof Error) {\r\n payload = {\r\n message: error.message,\r\n stack: error.stack\r\n };\r\n } else {\r\n payload = error || {};\r\n }\r\n\r\n return this.send(MESSAGE_TYPES.ERROR, payload);\r\n};\r\n\r\n/**\r\n * 获取当前状态\r\n */\r\nGameManager.prototype.getState = function () {\r\n return {\r\n sdkReady: this.state.sdkReady,\r\n gameReady: this.state.gameReady,\r\n started: this.state.started,\r\n paused: this.state.paused,\r\n destroyed: this.state.destroyed\r\n };\r\n};\r\n\r\n/**\r\n * 是否 ready\r\n */\r\nGameManager.prototype.isReady = function () {\r\n return !!(this.state.sdkReady && this.state.gameReady);\r\n};\r\n\r\n/**\r\n * 合并页面主题配置\r\n * pageKey: startPage / endPage\r\n */\r\nGameManager.prototype._mergePageTheme = function (pageKey, pageData) {\r\n var theme = this.currentTheme || {};\r\n var pageTheme = theme[pageKey] || {};\r\n var result = {};\r\n var key;\r\n\r\n for (key in pageTheme) {\r\n if (Object.prototype.hasOwnProperty.call(pageTheme, key)) {\r\n result[key] = pageTheme[key];\r\n }\r\n }\r\n\r\n for (key in pageData) {\r\n if (Object.prototype.hasOwnProperty.call(pageData, key)) {\r\n result[key] = pageData[key];\r\n }\r\n }\r\n\r\n return result;\r\n};\r\n\r\n/**\r\n * game 内部渲染开始页\r\n */\r\nGameManager.prototype.renderStartPage = function (data, callbacks) {\r\n var self = this;\r\n var payload = data || {};\r\n var finalData = this._mergePageTheme('startPage', payload);\r\n\r\n if (!this.overlay || !this.overlay.showStartPage) {\r\n return this;\r\n }\r\n\r\n this.overlay.showStartPage(finalData, callbacks || {\r\n onStart: function () {\r\n self.startGame({\r\n from: 'sdk-start-game'\r\n });\r\n }\r\n });\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * 隐藏开始页\r\n */\r\nGameManager.prototype.hideStartPage = function () {\r\n if (this.overlay && this.overlay.hideStartPage) {\r\n this.overlay.hideStartPage();\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * game 内部渲染结束页\r\n */\r\nGameManager.prototype.renderEndPage = function (data, callbacks) {\r\n let self = this;\r\n var payload = data || {};\r\n var finalData = this._mergePageTheme('endPage', payload);\r\n\r\n if (!this.overlay || !this.overlay.showEndPage) {\r\n return this;\r\n }\r\n\r\n\r\n this.overlay.showEndPage(finalData, callbacks || {\r\n onRestart: function () {\r\n self.restartGame({\r\n from: 'sdk-restart-game'\r\n });\r\n },\r\n onShowRank: function () {\r\n self.showGameRank({\r\n from: 'sdk-game-rank'\r\n });\r\n },\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * 隐藏结束页\r\n */\r\nGameManager.prototype.hideEndPage = function () {\r\n if (this.overlay && this.overlay.hideEndPage) {\r\n this.overlay.hideEndPage();\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * 直接按 url 加载主题\r\n * 更适合 host 使用\r\n */\r\nGameManager.prototype.loadThemeByUrl = function (url, callback) {\r\n loadThemeByUrl(url, callback);\r\n return this;\r\n};\r\n\r\n/**\r\n * 确保主题已加载\r\n * 更适合 host 使用\r\n */\r\nGameManager.prototype.ensureTheme = function (themeKey, themeRoot, callback) {\r\n ensureTheme(themeKey, themeRoot, callback);\r\n return this;\r\n};\r\n\r\n/**\r\n * 生成主题地址\r\n */\r\nGameManager.prototype.buildThemeUrl = function (themeRoot, themeKey) {\r\n return buildThemeUrl(themeRoot, themeKey);\r\n};\r\n\r\n/**\r\n * 游戏完成\r\n */\r\nGameManager.prototype.gameLoaded = function (config) {\r\n return this.send(MESSAGE_TYPES.GAME_LOADED, config || {});\r\n};\r\n/**\r\n * 开始答题\r\n */\r\nGameManager.prototype.startAnswer = function (data) {\r\n return this.send(MESSAGE_TYPES.ANSWER_START, data || {});\r\n};\r\n\r\n/**\r\n * 上一题\r\n */\r\nGameManager.prototype.prevQuestion = function (data) {\r\n return this.send(MESSAGE_TYPES.QUESTION_PREV, data || {});\r\n};\r\n\r\n/**\r\n * 下一题\r\n */\r\nGameManager.prototype.nextQuestion = function (data) {\r\n return this.send(MESSAGE_TYPES.QUESTION_NEXT, data || {});\r\n};\r\n\r\n/**\r\n * 调节声音\r\n * 例如 { volume: 0.8, muted: false }\r\n */\r\nGameManager.prototype.changeVolume = function (data) {\r\n return this.send(MESSAGE_TYPES.AUDIO_VOLUME_CHANGE, data || {});\r\n};\r\n\r\n/**\r\n * 答题完成\r\n */\r\nGameManager.prototype.completedAnswer = function (data) {\r\n return this.send(MESSAGE_TYPES.ANSWER_COMPLETED, data || {});\r\n};\r\n\r\n/**\r\n * 扩展消息类型\r\n */\r\nGameManager.prototype.extensionEvent = function (extra) {\r\n return this.send(MESSAGE_TYPES.EXTENSION_EVENT, extra || {});\r\n};\r\nexport default GameManager;","import SDK_VERSION from './version.js';\r\nimport MESSAGE_TYPES from './constants/message-types.js';\r\nimport EventEmitter from './core/event-emitter.js';\r\nimport MessageBus from './core/message-bus.js';\r\nimport GameRuntime from './manager/game-manager.js';\r\n\r\nexport {\r\n SDK_VERSION,\r\n MESSAGE_TYPES,\r\n EventEmitter,\r\n MessageBus,\r\n GameRuntime\r\n};\r\n\r\nexport default {\r\n SDK_VERSION: SDK_VERSION,\r\n MESSAGE_TYPES: MESSAGE_TYPES,\r\n EventEmitter: EventEmitter,\r\n MessageBus: MessageBus,\r\n GameRuntime: GameRuntime\r\n};"],"names":["SDK_VERSION","MESSAGE_TYPES","SDK_READY","HEARTBEAT_PING","HEARTBEAT_PONG","ERROR_THROWN","GAME_LOAD","GAME_START","GAME_PAUSE","GAME_RESUME","GAME_RESTART","GAME_DESTROY","GAME_READY","GAME_LOADED","GAME_LOADING","GAME_FINISH","GAME_RANK","THEME_UPDATE","CONFIG_UPDATE","QUESTION_SUBMIT","QUESTION_PREV","QUESTION_NEXT","ANSWER_START","ANSWER_COMPLETED","AUDIO_VOLUME_CHANGE","PAGE_START_SHOW","PAGE_END_SHOW","EXTENSION_EVENT","ERROR","isFunction","fn","isObject","val","Object","prototype","toString","call","createRequestId","prefix","Date","getTime","Math","random","slice","EventEmitter","events","on","eventName","handler","push","once","self","wrapper","off","apply","arguments","__original__","handlers","result","i","length","emit","args","Array","error","console","DEFAULT_SOURCE","PostMessageChannel","options","selfWindow","window","targetWindow","targetOrigin","source","debug","setTargetWindow","setTargetOrigin","createMessage","type","payload","meta","version","requestId","timestamp","value","send","message","postMessage","warn","log","isValidMessage","data","MessageBus","channel","allowedOrigins","_boundOnMessage","_onMessage","bind","_listening","create","constructor","start","addEventListener","stop","removeEventListener","destroy","_matchOrigin","origin","indexOf","event","context","rawEvent","sourceWindow","BasePage","el","bindEvent","unbindEvents","item","parentNode","removeChild","isRendered","isPlainObject","obj","mergeStyles","base","extra","key","hasOwnProperty","normalizeStyleValue","String","applyStyles","styles","style","createElement","tag","className","text","document","textContent","StartPage","getStyles","wrapperCss","position","top","left","right","bottom","display","flexDirection","alignItems","justifyContent","boxSizing","padding","color","backgroundRepeat","backgroundPosition","backgroundSize","textAlign","zIndex","overlayCss","background","overlay","contentCss","width","content","titleCss","fontSize","fontWeight","textShadow","letterSpacing","lineHeight","maxWidth","wordBreak","title","descCss","marginTop","whiteSpace","desc","btnGroupCss","buttonGroup","btnCss","minWidth","minHeight","cursor","backgroundColor","borderRadius","border","transition","button","render","container","onStart","Error","titleText","descText","buttonText","rootDom","overlayDom","contentDom","titleDom","appendChild","descDom","btnGroupDom","btnDom","EndPage","timeCss","time","scoreCss","score","gap","flexWrap","primaryBtnCss","primaryButton","secondaryBtnCss","secondaryButton","callbacks","timeText","scoreText","primaryButtonText","secondaryButtonText","scoreDom","timeDom","secondaryBtnDom","onShowRank","primaryBtnDom","onRestart","childNodes","OverlayManager","body","startPage","endPage","setContainer","showStartPage","finalCallbacks","hideStartPage","showEndPage","hideEndPage","hideAll","themes","registerTheme","config","hasTheme","getTheme","default","dirname","url","replace","isAbsoluteUrl","test","joinUrl","path","patchStyleAssetPaths","styleObj","baseUrl","_","quote","assetPath","patchHostAssetPaths","hostConfig","keys","patchThemeAssetPaths","theme","pageKeys","host","loadScript","callback","script","done","async","src","onload","onerror","head","loadThemeByUrl","__KADOU_THEME_PACK__","err","pack","from","buildThemeUrl","themeRoot","themeKey","ensureTheme","GameManager","root","role","state","sdkReady","gameReady","started","paused","destroyed","currentThemeKey","currentTheme","bus","_bindBusEvents","REPORT_GENERATED","renderStartPage","renderEndPage","replyTo","init","win","setRoot","notifySdkReady","heartbeatPing","loadGame","gameLoading","startGame","local","restartGame","showGameRank","pauseGame","resumeGame","finishGame","destroyGame","updateTheme","applyTheme","themeConfig","updateConfig","submitQuestion","reportError","stack","getState","isReady","_mergePageTheme","pageKey","pageData","pageTheme","finalData","gameLoaded","startAnswer","prevQuestion","nextQuestion","changeVolume","completedAnswer","extensionEvent","GameRuntime"],"mappings":"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"}
|