@next-core/runtime 1.68.0 → 1.69.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.
@@ -30,6 +30,7 @@ var _Notification = require("../Notification.js");
30
30
  var _utils2 = require("./FormRenderer/utils.js");
31
31
  var _Runtime = require("./Runtime.js");
32
32
  var _sse = require("./sse.js");
33
+ var _debugManager = require("./debugManager.js");
33
34
  function bindListeners(brick, eventsMap, runtimeContext) {
34
35
  if (!eventsMap) {
35
36
  return;
@@ -469,6 +470,13 @@ function handleStorageAction(event, object, method, args, runtimeContext) {
469
470
  }
470
471
  }
471
472
  function handleConsoleAction(event, method, args, runtimeContext) {
473
+ const isProduction = process.env.NODE_ENV === "production";
474
+
475
+ // 生产环境下,只有调试模式开启且符合日志级别才输出
476
+ if (isProduction && !_debugManager.debugManager.shouldLog(method)) {
477
+ return;
478
+ }
479
+
472
480
  // eslint-disable-next-line no-console
473
481
  console[method](...argsFactory(args, runtimeContext, event, {
474
482
  useEventAsDefault: true
@@ -1 +1 @@
1
- {"version":3,"file":"bindListeners.js","names":["_cook","require","_general","_lodash","_checkIf","_computeRealValue","_history","_getProviderBrick","_poll","_evaluate","_setProperties","_themeAndMode","_utils","_handleHttpError","_Notification","_utils2","_Runtime","_sse","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","checkIf","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","handleHttpError","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","getTplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","applyTheme","theme","applyMode","console","error","handleUseProviderAction","handleCustomAction","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","isEvaluable","isPreEvaluated","computeRealValue","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","setProperties","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","getProviderBrick","Error","tagName","toLowerCase","isUseProvider","computedArgs","argsOrContractConf","computeArgs","hooks","flowApi","isFlowApiProvider","_handler$sse","isArray","params","pick","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","startSSEStream","pollEnabled","poll","enabled","startPoll","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","getHistory","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","isObject","ctxStore","tplStateStore","getTplStateStore","JSON","stringify","formStateStore","getFormStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","Notification","show","message","_hooks$messageDispatc","messageDispatcher"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"bindListeners.js","names":["_cook","require","_general","_lodash","_checkIf","_computeRealValue","_history","_getProviderBrick","_poll","_evaluate","_setProperties","_themeAndMode","_utils","_handleHttpError","_Notification","_utils2","_Runtime","_sse","_debugManager","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","checkIf","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","handleHttpError","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","getTplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","applyTheme","theme","applyMode","console","error","handleUseProviderAction","handleCustomAction","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","isEvaluable","isPreEvaluated","computeRealValue","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","setProperties","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","getProviderBrick","Error","tagName","toLowerCase","isUseProvider","computedArgs","argsOrContractConf","computeArgs","hooks","flowApi","isFlowApiProvider","_handler$sse","isArray","params","pick","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","startSSEStream","pollEnabled","poll","enabled","startPoll","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","getHistory","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","isObject","ctxStore","tplStateStore","getTplStateStore","JSON","stringify","formStateStore","getFormStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","isProduction","process","env","NODE_ENV","debugManager","shouldLog","Notification","show","message","_hooks$messageDispatc","messageDispatcher"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const isProduction = process.env.NODE_ENV === \"production\";\n\n // 生产环境下,只有调试模式开启且符合日志级别才输出\n if (isProduction && !debugManager.shouldLog(method)) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.debugManager = void 0;
7
+ class DebugManager {
8
+ static instance;
9
+ debugMode = false;
10
+ debugType = "none";
11
+ static getInstance() {
12
+ if (!DebugManager.instance) {
13
+ DebugManager.instance = new DebugManager();
14
+ }
15
+ return DebugManager.instance;
16
+ }
17
+ constructor() {
18
+ this.initDebugMode();
19
+ this.setupWindowAPI();
20
+ }
21
+ initDebugMode() {
22
+ // 1. 首先检查URL参数
23
+ const urlParams = new URLSearchParams(window.location.search);
24
+ const debugFromUrl = urlParams.get("__debugConsole__");
25
+ if (debugFromUrl === "true") {
26
+ this.activateSessionDebug();
27
+ return;
28
+ }
29
+
30
+ // 2. 检查localStorage(内部人员长期调试)
31
+ const persistentDebug = localStorage.getItem("debugConsole");
32
+ if (persistentDebug === "true") {
33
+ this.debugMode = true;
34
+ this.debugType = "persistent";
35
+ // eslint-disable-next-line no-console
36
+ console.log("🔧 调试模式已开启(持久模式 - 内部调试)");
37
+ return;
38
+ }
39
+
40
+ // 3. 检查sessionStorage(客户临时调试)
41
+ const sessionDebug = sessionStorage.getItem("debugConsole");
42
+ if (sessionDebug === "true") {
43
+ this.debugMode = true;
44
+ this.debugType = "session";
45
+ // eslint-disable-next-line no-console
46
+ console.log("🔧 调试模式已开启(会话模式 - 关闭标签页后失效)");
47
+ return;
48
+ }
49
+
50
+ // 4. 检查日志级别设置
51
+ }
52
+ activateSessionDebug() {
53
+ this.debugMode = true;
54
+ this.debugType = "session";
55
+ sessionStorage.setItem("debugConsole", "true");
56
+ // eslint-disable-next-line no-console
57
+ console.log("🔧 调试模式已通过URL参数激活(会话模式)");
58
+ }
59
+ setupWindowAPI() {
60
+ window.debugConsole = {
61
+ // 开启会话调试模式(客户现场使用)
62
+ enable: () => {
63
+ this.debugMode = true;
64
+ this.debugType = "session";
65
+ sessionStorage.setItem("debugConsole", "true");
66
+ // eslint-disable-next-line no-console
67
+ console.log("🔧 调试模式已开启(会话模式 - 关闭标签页后失效)");
68
+ return this.debugMode;
69
+ },
70
+ // 开启持久调试模式(内部人员使用)
71
+ enablePersistent: () => {
72
+ this.debugMode = true;
73
+ this.debugType = "persistent";
74
+ localStorage.setItem("debugConsole", "true");
75
+ // eslint-disable-next-line no-console
76
+ console.log("🔧 调试模式已开启(持久模式 - 内部调试)");
77
+ return this.debugMode;
78
+ },
79
+ // 关闭调试模式
80
+ disable: () => {
81
+ this.debugMode = false;
82
+ this.debugType = "none";
83
+ sessionStorage.removeItem("debugConsole");
84
+ localStorage.removeItem("debugConsole");
85
+ // eslint-disable-next-line no-console
86
+ console.log("🔧 调试模式已关闭");
87
+ return this.debugMode;
88
+ },
89
+ // 切换调试模式
90
+ toggle: () => {
91
+ if (this.debugMode) {
92
+ this.debugMode = false;
93
+ this.debugType = "none";
94
+ sessionStorage.removeItem("debugConsole");
95
+ localStorage.removeItem("debugConsole");
96
+ // eslint-disable-next-line no-console
97
+ console.log("🔧 调试模式已关闭");
98
+ } else {
99
+ this.debugMode = true;
100
+ this.debugType = "session";
101
+ sessionStorage.setItem("debugConsole", "true");
102
+ // eslint-disable-next-line no-console
103
+ console.log("🔧 调试模式已开启(会话模式 - 关闭标签页后失效)");
104
+ }
105
+ return this.debugMode;
106
+ },
107
+ // 切换持久调试模式
108
+ togglePersistent: () => {
109
+ if (this.debugMode && this.debugType === "persistent") {
110
+ this.debugMode = false;
111
+ this.debugType = "none";
112
+ sessionStorage.removeItem("debugConsole");
113
+ localStorage.removeItem("debugConsole");
114
+ // eslint-disable-next-line no-console
115
+ console.log("🔧 调试模式已关闭");
116
+ } else {
117
+ this.debugMode = true;
118
+ this.debugType = "persistent";
119
+ localStorage.setItem("debugConsole", "true");
120
+ // eslint-disable-next-line no-console
121
+ console.log("🔧 调试模式已开启(持久模式 - 内部调试)");
122
+ }
123
+ return this.debugMode;
124
+ },
125
+ // 获取当前状态
126
+ status: () => {
127
+ const status = {
128
+ debugMode: this.debugMode,
129
+ debugType: this.debugType,
130
+ description: this.getStatusDescription()
131
+ };
132
+ // eslint-disable-next-line no-console
133
+ console.log("🔧 调试状态:", status);
134
+ return status;
135
+ },
136
+ // 帮助信息
137
+ help: () => {
138
+ // eslint-disable-next-line no-console
139
+ console.log(`
140
+ 🔧 混合调试控制台使用说明:
141
+
142
+ 👥 生产环境使用(临时调试):
143
+ window.debugConsole.enable() - 开启会话调试(关闭标签页后失效)
144
+ window.debugConsole.disable() - 关闭调试模式
145
+ window.debugConsole.toggle() - 切换会话调试模式
146
+
147
+ 👨‍💻 开发人员使用(长期调试):
148
+ window.debugConsole.enablePersistent() - 开启持久调试(长期有效)
149
+ window.debugConsole.togglePersistent() - 切换持久调试模式
150
+ window.debugConsole.disable() - 关闭调试模式
151
+
152
+ 🔍 其他功能:
153
+ window.debugConsole.status() - 查看当前状态
154
+ window.debugConsole.help() - 显示此帮助信息
155
+
156
+ 🌐 URL参数:
157
+ ?__debugConsole__=true - 通过URL激活会话调试模式
158
+
159
+ 📝 说明:
160
+ - 会话模式:刷新页面后仍然有效,关闭标签页后失效
161
+ - 持久模式:长期有效,除非手动关闭
162
+ `);
163
+ }
164
+ };
165
+
166
+ // 显示初始状态
167
+ if (this.debugMode) {
168
+ // eslint-disable-next-line no-console
169
+ console.log(`🔧 调试模式已开启(${this.debugType === "persistent" ? "持久模式" : "会话模式"})`);
170
+ } else {
171
+ // eslint-disable-next-line no-console
172
+ console.log("💡 提示:使用 window.debugConsole.help() 查看使用说明");
173
+ }
174
+ }
175
+ getStatusDescription() {
176
+ if (!this.debugMode) {
177
+ return "调试模式已关闭";
178
+ }
179
+ switch (this.debugType) {
180
+ case "persistent":
181
+ return "持久模式 - 内部调试(长期有效)";
182
+ case "session":
183
+ return "会话模式 - 临时调试(关闭标签页后失效)";
184
+ default:
185
+ return "未知模式";
186
+ }
187
+ }
188
+ isDebugMode() {
189
+ return this.debugMode;
190
+ }
191
+ getDebugType() {
192
+ return this.debugType;
193
+ }
194
+ shouldLog(method) {
195
+ return method === "error" ? true : this.debugMode;
196
+ }
197
+ }
198
+ const debugManager = exports.debugManager = DebugManager.getInstance();
199
+ //# sourceMappingURL=debugManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugManager.js","names":["DebugManager","instance","debugMode","debugType","getInstance","constructor","initDebugMode","setupWindowAPI","urlParams","URLSearchParams","window","location","search","debugFromUrl","get","activateSessionDebug","persistentDebug","localStorage","getItem","console","log","sessionDebug","sessionStorage","setItem","debugConsole","enable","enablePersistent","disable","removeItem","toggle","togglePersistent","status","description","getStatusDescription","help","isDebugMode","getDebugType","shouldLog","method","debugManager","exports"],"sources":["../../../src/internal/debugManager.ts"],"sourcesContent":["class DebugManager {\n private static instance: DebugManager;\n private debugMode = false;\n private debugType: \"session\" | \"persistent\" | \"none\" = \"none\";\n\n static getInstance(): DebugManager {\n if (!DebugManager.instance) {\n DebugManager.instance = new DebugManager();\n }\n return DebugManager.instance;\n }\n\n constructor() {\n this.initDebugMode();\n this.setupWindowAPI();\n }\n\n private initDebugMode(): void {\n // 1. 首先检查URL参数\n const urlParams = new URLSearchParams(window.location.search);\n const debugFromUrl = urlParams.get(\"__debugConsole__\");\n\n if (debugFromUrl === \"true\") {\n this.activateSessionDebug();\n return;\n }\n\n // 2. 检查localStorage(内部人员长期调试)\n const persistentDebug = localStorage.getItem(\"debugConsole\");\n if (persistentDebug === \"true\") {\n this.debugMode = true;\n this.debugType = \"persistent\";\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(持久模式 - 内部调试)\");\n return;\n }\n\n // 3. 检查sessionStorage(客户临时调试)\n const sessionDebug = sessionStorage.getItem(\"debugConsole\");\n if (sessionDebug === \"true\") {\n this.debugMode = true;\n this.debugType = \"session\";\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(会话模式 - 关闭标签页后失效)\");\n return;\n }\n\n // 4. 检查日志级别设置\n }\n\n private activateSessionDebug(): void {\n this.debugMode = true;\n this.debugType = \"session\";\n sessionStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已通过URL参数激活(会话模式)\");\n }\n\n private setupWindowAPI(): void {\n (window as any).debugConsole = {\n // 开启会话调试模式(客户现场使用)\n enable: () => {\n this.debugMode = true;\n this.debugType = \"session\";\n sessionStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(会话模式 - 关闭标签页后失效)\");\n return this.debugMode;\n },\n\n // 开启持久调试模式(内部人员使用)\n enablePersistent: () => {\n this.debugMode = true;\n this.debugType = \"persistent\";\n localStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(持久模式 - 内部调试)\");\n return this.debugMode;\n },\n\n // 关闭调试模式\n disable: () => {\n this.debugMode = false;\n this.debugType = \"none\";\n sessionStorage.removeItem(\"debugConsole\");\n localStorage.removeItem(\"debugConsole\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已关闭\");\n return this.debugMode;\n },\n\n // 切换调试模式\n toggle: () => {\n if (this.debugMode) {\n this.debugMode = false;\n this.debugType = \"none\";\n sessionStorage.removeItem(\"debugConsole\");\n localStorage.removeItem(\"debugConsole\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已关闭\");\n } else {\n this.debugMode = true;\n this.debugType = \"session\";\n sessionStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(会话模式 - 关闭标签页后失效)\");\n }\n return this.debugMode;\n },\n\n // 切换持久调试模式\n togglePersistent: () => {\n if (this.debugMode && this.debugType === \"persistent\") {\n this.debugMode = false;\n this.debugType = \"none\";\n sessionStorage.removeItem(\"debugConsole\");\n localStorage.removeItem(\"debugConsole\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已关闭\");\n } else {\n this.debugMode = true;\n this.debugType = \"persistent\";\n localStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(持久模式 - 内部调试)\");\n }\n return this.debugMode;\n },\n\n // 获取当前状态\n status: () => {\n const status = {\n debugMode: this.debugMode,\n debugType: this.debugType,\n description: this.getStatusDescription(),\n };\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试状态:\", status);\n return status;\n },\n // 帮助信息\n help: () => {\n // eslint-disable-next-line no-console\n console.log(`\n🔧 混合调试控制台使用说明:\n\n👥 生产环境使用(临时调试):\n window.debugConsole.enable() - 开启会话调试(关闭标签页后失效)\n window.debugConsole.disable() - 关闭调试模式\n window.debugConsole.toggle() - 切换会话调试模式\n\n👨‍💻 开发人员使用(长期调试):\n window.debugConsole.enablePersistent() - 开启持久调试(长期有效)\n window.debugConsole.togglePersistent() - 切换持久调试模式\n window.debugConsole.disable() - 关闭调试模式\n\n🔍 其他功能:\n window.debugConsole.status() - 查看当前状态\n window.debugConsole.help() - 显示此帮助信息\n\n🌐 URL参数:\n ?__debugConsole__=true - 通过URL激活会话调试模式\n\n📝 说明:\n - 会话模式:刷新页面后仍然有效,关闭标签页后失效\n - 持久模式:长期有效,除非手动关闭\n `);\n },\n };\n\n // 显示初始状态\n if (this.debugMode) {\n // eslint-disable-next-line no-console\n console.log(\n `🔧 调试模式已开启(${\n this.debugType === \"persistent\" ? \"持久模式\" : \"会话模式\"\n })`\n );\n } else {\n // eslint-disable-next-line no-console\n console.log(\"💡 提示:使用 window.debugConsole.help() 查看使用说明\");\n }\n }\n\n private getStatusDescription(): string {\n if (!this.debugMode) {\n return \"调试模式已关闭\";\n }\n\n switch (this.debugType) {\n case \"persistent\":\n return \"持久模式 - 内部调试(长期有效)\";\n case \"session\":\n return \"会话模式 - 临时调试(关闭标签页后失效)\";\n default:\n return \"未知模式\";\n }\n }\n\n isDebugMode(): boolean {\n return this.debugMode;\n }\n\n getDebugType(): \"session\" | \"persistent\" | \"none\" {\n return this.debugType;\n }\n\n shouldLog(method: \"log\" | \"error\" | \"warn\" | \"info\"): boolean {\n return method === \"error\" ? true : this.debugMode;\n }\n}\n\nexport const debugManager = DebugManager.getInstance();\n"],"mappings":";;;;;;AAAA,MAAMA,YAAY,CAAC;EACjB,OAAeC,QAAQ;EACfC,SAAS,GAAG,KAAK;EACjBC,SAAS,GAAsC,MAAM;EAE7D,OAAOC,WAAWA,CAAA,EAAiB;IACjC,IAAI,CAACJ,YAAY,CAACC,QAAQ,EAAE;MAC1BD,YAAY,CAACC,QAAQ,GAAG,IAAID,YAAY,CAAC,CAAC;IAC5C;IACA,OAAOA,YAAY,CAACC,QAAQ;EAC9B;EAEAI,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,aAAa,CAAC,CAAC;IACpB,IAAI,CAACC,cAAc,CAAC,CAAC;EACvB;EAEQD,aAAaA,CAAA,EAAS;IAC5B;IACA,MAAME,SAAS,GAAG,IAAIC,eAAe,CAACC,MAAM,CAACC,QAAQ,CAACC,MAAM,CAAC;IAC7D,MAAMC,YAAY,GAAGL,SAAS,CAACM,GAAG,CAAC,kBAAkB,CAAC;IAEtD,IAAID,YAAY,KAAK,MAAM,EAAE;MAC3B,IAAI,CAACE,oBAAoB,CAAC,CAAC;MAC3B;IACF;;IAEA;IACA,MAAMC,eAAe,GAAGC,YAAY,CAACC,OAAO,CAAC,cAAc,CAAC;IAC5D,IAAIF,eAAe,KAAK,MAAM,EAAE;MAC9B,IAAI,CAACd,SAAS,GAAG,IAAI;MACrB,IAAI,CAACC,SAAS,GAAG,YAAY;MAC7B;MACAgB,OAAO,CAACC,GAAG,CAAC,yBAAyB,CAAC;MACtC;IACF;;IAEA;IACA,MAAMC,YAAY,GAAGC,cAAc,CAACJ,OAAO,CAAC,cAAc,CAAC;IAC3D,IAAIG,YAAY,KAAK,MAAM,EAAE;MAC3B,IAAI,CAACnB,SAAS,GAAG,IAAI;MACrB,IAAI,CAACC,SAAS,GAAG,SAAS;MAC1B;MACAgB,OAAO,CAACC,GAAG,CAAC,6BAA6B,CAAC;MAC1C;IACF;;IAEA;EACF;EAEQL,oBAAoBA,CAAA,EAAS;IACnC,IAAI,CAACb,SAAS,GAAG,IAAI;IACrB,IAAI,CAACC,SAAS,GAAG,SAAS;IAC1BmB,cAAc,CAACC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;IAC9C;IACAJ,OAAO,CAACC,GAAG,CAAC,yBAAyB,CAAC;EACxC;EAEQb,cAAcA,CAAA,EAAS;IAC5BG,MAAM,CAASc,YAAY,GAAG;MAC7B;MACAC,MAAM,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACvB,SAAS,GAAG,IAAI;QACrB,IAAI,CAACC,SAAS,GAAG,SAAS;QAC1BmB,cAAc,CAACC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;QAC9C;QACAJ,OAAO,CAACC,GAAG,CAAC,6BAA6B,CAAC;QAC1C,OAAO,IAAI,CAAClB,SAAS;MACvB,CAAC;MAED;MACAwB,gBAAgB,EAAEA,CAAA,KAAM;QACtB,IAAI,CAACxB,SAAS,GAAG,IAAI;QACrB,IAAI,CAACC,SAAS,GAAG,YAAY;QAC7Bc,YAAY,CAACM,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;QAC5C;QACAJ,OAAO,CAACC,GAAG,CAAC,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAClB,SAAS;MACvB,CAAC;MAED;MACAyB,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACzB,SAAS,GAAG,KAAK;QACtB,IAAI,CAACC,SAAS,GAAG,MAAM;QACvBmB,cAAc,CAACM,UAAU,CAAC,cAAc,CAAC;QACzCX,YAAY,CAACW,UAAU,CAAC,cAAc,CAAC;QACvC;QACAT,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;QACzB,OAAO,IAAI,CAAClB,SAAS;MACvB,CAAC;MAED;MACA2B,MAAM,EAAEA,CAAA,KAAM;QACZ,IAAI,IAAI,CAAC3B,SAAS,EAAE;UAClB,IAAI,CAACA,SAAS,GAAG,KAAK;UACtB,IAAI,CAACC,SAAS,GAAG,MAAM;UACvBmB,cAAc,CAACM,UAAU,CAAC,cAAc,CAAC;UACzCX,YAAY,CAACW,UAAU,CAAC,cAAc,CAAC;UACvC;UACAT,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;QAC3B,CAAC,MAAM;UACL,IAAI,CAAClB,SAAS,GAAG,IAAI;UACrB,IAAI,CAACC,SAAS,GAAG,SAAS;UAC1BmB,cAAc,CAACC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;UAC9C;UACAJ,OAAO,CAACC,GAAG,CAAC,6BAA6B,CAAC;QAC5C;QACA,OAAO,IAAI,CAAClB,SAAS;MACvB,CAAC;MAED;MACA4B,gBAAgB,EAAEA,CAAA,KAAM;QACtB,IAAI,IAAI,CAAC5B,SAAS,IAAI,IAAI,CAACC,SAAS,KAAK,YAAY,EAAE;UACrD,IAAI,CAACD,SAAS,GAAG,KAAK;UACtB,IAAI,CAACC,SAAS,GAAG,MAAM;UACvBmB,cAAc,CAACM,UAAU,CAAC,cAAc,CAAC;UACzCX,YAAY,CAACW,UAAU,CAAC,cAAc,CAAC;UACvC;UACAT,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;QAC3B,CAAC,MAAM;UACL,IAAI,CAAClB,SAAS,GAAG,IAAI;UACrB,IAAI,CAACC,SAAS,GAAG,YAAY;UAC7Bc,YAAY,CAACM,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;UAC5C;UACAJ,OAAO,CAACC,GAAG,CAAC,yBAAyB,CAAC;QACxC;QACA,OAAO,IAAI,CAAClB,SAAS;MACvB,CAAC;MAED;MACA6B,MAAM,EAAEA,CAAA,KAAM;QACZ,MAAMA,MAAM,GAAG;UACb7B,SAAS,EAAE,IAAI,CAACA,SAAS;UACzBC,SAAS,EAAE,IAAI,CAACA,SAAS;UACzB6B,WAAW,EAAE,IAAI,CAACC,oBAAoB,CAAC;QACzC,CAAC;QACD;QACAd,OAAO,CAACC,GAAG,CAAC,UAAU,EAAEW,MAAM,CAAC;QAC/B,OAAOA,MAAM;MACf,CAAC;MACD;MACAG,IAAI,EAAEA,CAAA,KAAM;QACV;QACAf,OAAO,CAACC,GAAG,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;MACJ;IACF,CAAC;;IAED;IACA,IAAI,IAAI,CAAClB,SAAS,EAAE;MAClB;MACAiB,OAAO,CAACC,GAAG,CACT,cACE,IAAI,CAACjB,SAAS,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,GAErD,CAAC;IACH,CAAC,MAAM;MACL;MACAgB,OAAO,CAACC,GAAG,CAAC,4CAA4C,CAAC;IAC3D;EACF;EAEQa,oBAAoBA,CAAA,EAAW;IACrC,IAAI,CAAC,IAAI,CAAC/B,SAAS,EAAE;MACnB,OAAO,SAAS;IAClB;IAEA,QAAQ,IAAI,CAACC,SAAS;MACpB,KAAK,YAAY;QACf,OAAO,mBAAmB;MAC5B,KAAK,SAAS;QACZ,OAAO,uBAAuB;MAChC;QACE,OAAO,MAAM;IACjB;EACF;EAEAgC,WAAWA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACjC,SAAS;EACvB;EAEAkC,YAAYA,CAAA,EAAsC;IAChD,OAAO,IAAI,CAACjC,SAAS;EACvB;EAEAkC,SAASA,CAACC,MAAyC,EAAW;IAC5D,OAAOA,MAAM,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,CAACpC,SAAS;EACnD;AACF;AAEO,MAAMqC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAGvC,YAAY,CAACI,WAAW,CAAC,CAAC","ignoreList":[]}
@@ -15,6 +15,7 @@ import { Notification } from "../Notification.js";
15
15
  import { getFormStateStore } from "./FormRenderer/utils.js";
16
16
  import { hooks } from "./Runtime.js";
17
17
  import { startSSEStream } from "./sse.js";
18
+ import { debugManager } from "./debugManager.js";
18
19
  export function bindListeners(brick, eventsMap, runtimeContext) {
19
20
  if (!eventsMap) {
20
21
  return;
@@ -456,6 +457,13 @@ function handleStorageAction(event, object, method, args, runtimeContext) {
456
457
  }
457
458
  }
458
459
  function handleConsoleAction(event, method, args, runtimeContext) {
460
+ const isProduction = process.env.NODE_ENV === "production";
461
+
462
+ // 生产环境下,只有调试模式开启且符合日志级别才输出
463
+ if (isProduction && !debugManager.shouldLog(method)) {
464
+ return;
465
+ }
466
+
459
467
  // eslint-disable-next-line no-console
460
468
  console[method](...argsFactory(args, runtimeContext, event, {
461
469
  useEventAsDefault: true
@@ -1 +1 @@
1
- {"version":3,"file":"bindListeners.js","names":["isEvaluable","isObject","pick","checkIf","computeRealValue","getHistory","getProviderBrick","startPoll","isPreEvaluated","setProperties","applyMode","applyTheme","getTplHostElement","getTplStateStore","handleHttpError","Notification","getFormStateStore","hooks","startSSEStream","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","_ref","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","_handler$batch","_handler$batch2","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","theme","console","error","handleUseProviderAction","handleCustomAction","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","Error","tagName","toLowerCase","isUseProvider","computedArgs","argsOrContractConf","computeArgs","flowApi","isFlowApiProvider","_handler$sse","isArray","params","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","pollEnabled","poll","enabled","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","ctxStore","tplStateStore","JSON","stringify","formStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","show","message","_hooks$messageDispatc","messageDispatcher","arguments"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"bindListeners.js","names":["isEvaluable","isObject","pick","checkIf","computeRealValue","getHistory","getProviderBrick","startPoll","isPreEvaluated","setProperties","applyMode","applyTheme","getTplHostElement","getTplStateStore","handleHttpError","Notification","getFormStateStore","hooks","startSSEStream","debugManager","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","_ref","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","_handler$batch","_handler$batch2","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","theme","console","error","handleUseProviderAction","handleCustomAction","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","Error","tagName","toLowerCase","isUseProvider","computedArgs","argsOrContractConf","computeArgs","flowApi","isFlowApiProvider","_handler$sse","isArray","params","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","pollEnabled","poll","enabled","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","ctxStore","tplStateStore","JSON","stringify","formStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","isProduction","process","env","NODE_ENV","shouldLog","show","message","_hooks$messageDispatc","messageDispatcher","arguments"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const isProduction = process.env.NODE_ENV === \"production\";\n\n // 生产环境下,只有调试模式开启且符合日志级别才输出\n if (isProduction && !debugManager.shouldLog(method)) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,194 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ class DebugManager {
3
+ static getInstance() {
4
+ if (!DebugManager.instance) {
5
+ DebugManager.instance = new DebugManager();
6
+ }
7
+ return DebugManager.instance;
8
+ }
9
+ constructor() {
10
+ _defineProperty(this, "debugMode", false);
11
+ _defineProperty(this, "debugType", "none");
12
+ this.initDebugMode();
13
+ this.setupWindowAPI();
14
+ }
15
+ initDebugMode() {
16
+ // 1. 首先检查URL参数
17
+ const urlParams = new URLSearchParams(window.location.search);
18
+ const debugFromUrl = urlParams.get("__debugConsole__");
19
+ if (debugFromUrl === "true") {
20
+ this.activateSessionDebug();
21
+ return;
22
+ }
23
+
24
+ // 2. 检查localStorage(内部人员长期调试)
25
+ const persistentDebug = localStorage.getItem("debugConsole");
26
+ if (persistentDebug === "true") {
27
+ this.debugMode = true;
28
+ this.debugType = "persistent";
29
+ // eslint-disable-next-line no-console
30
+ console.log("🔧 调试模式已开启(持久模式 - 内部调试)");
31
+ return;
32
+ }
33
+
34
+ // 3. 检查sessionStorage(客户临时调试)
35
+ const sessionDebug = sessionStorage.getItem("debugConsole");
36
+ if (sessionDebug === "true") {
37
+ this.debugMode = true;
38
+ this.debugType = "session";
39
+ // eslint-disable-next-line no-console
40
+ console.log("🔧 调试模式已开启(会话模式 - 关闭标签页后失效)");
41
+ return;
42
+ }
43
+
44
+ // 4. 检查日志级别设置
45
+ }
46
+ activateSessionDebug() {
47
+ this.debugMode = true;
48
+ this.debugType = "session";
49
+ sessionStorage.setItem("debugConsole", "true");
50
+ // eslint-disable-next-line no-console
51
+ console.log("🔧 调试模式已通过URL参数激活(会话模式)");
52
+ }
53
+ setupWindowAPI() {
54
+ window.debugConsole = {
55
+ // 开启会话调试模式(客户现场使用)
56
+ enable: () => {
57
+ this.debugMode = true;
58
+ this.debugType = "session";
59
+ sessionStorage.setItem("debugConsole", "true");
60
+ // eslint-disable-next-line no-console
61
+ console.log("🔧 调试模式已开启(会话模式 - 关闭标签页后失效)");
62
+ return this.debugMode;
63
+ },
64
+ // 开启持久调试模式(内部人员使用)
65
+ enablePersistent: () => {
66
+ this.debugMode = true;
67
+ this.debugType = "persistent";
68
+ localStorage.setItem("debugConsole", "true");
69
+ // eslint-disable-next-line no-console
70
+ console.log("🔧 调试模式已开启(持久模式 - 内部调试)");
71
+ return this.debugMode;
72
+ },
73
+ // 关闭调试模式
74
+ disable: () => {
75
+ this.debugMode = false;
76
+ this.debugType = "none";
77
+ sessionStorage.removeItem("debugConsole");
78
+ localStorage.removeItem("debugConsole");
79
+ // eslint-disable-next-line no-console
80
+ console.log("🔧 调试模式已关闭");
81
+ return this.debugMode;
82
+ },
83
+ // 切换调试模式
84
+ toggle: () => {
85
+ if (this.debugMode) {
86
+ this.debugMode = false;
87
+ this.debugType = "none";
88
+ sessionStorage.removeItem("debugConsole");
89
+ localStorage.removeItem("debugConsole");
90
+ // eslint-disable-next-line no-console
91
+ console.log("🔧 调试模式已关闭");
92
+ } else {
93
+ this.debugMode = true;
94
+ this.debugType = "session";
95
+ sessionStorage.setItem("debugConsole", "true");
96
+ // eslint-disable-next-line no-console
97
+ console.log("🔧 调试模式已开启(会话模式 - 关闭标签页后失效)");
98
+ }
99
+ return this.debugMode;
100
+ },
101
+ // 切换持久调试模式
102
+ togglePersistent: () => {
103
+ if (this.debugMode && this.debugType === "persistent") {
104
+ this.debugMode = false;
105
+ this.debugType = "none";
106
+ sessionStorage.removeItem("debugConsole");
107
+ localStorage.removeItem("debugConsole");
108
+ // eslint-disable-next-line no-console
109
+ console.log("🔧 调试模式已关闭");
110
+ } else {
111
+ this.debugMode = true;
112
+ this.debugType = "persistent";
113
+ localStorage.setItem("debugConsole", "true");
114
+ // eslint-disable-next-line no-console
115
+ console.log("🔧 调试模式已开启(持久模式 - 内部调试)");
116
+ }
117
+ return this.debugMode;
118
+ },
119
+ // 获取当前状态
120
+ status: () => {
121
+ const status = {
122
+ debugMode: this.debugMode,
123
+ debugType: this.debugType,
124
+ description: this.getStatusDescription()
125
+ };
126
+ // eslint-disable-next-line no-console
127
+ console.log("🔧 调试状态:", status);
128
+ return status;
129
+ },
130
+ // 帮助信息
131
+ help: () => {
132
+ // eslint-disable-next-line no-console
133
+ console.log(`
134
+ 🔧 混合调试控制台使用说明:
135
+
136
+ 👥 生产环境使用(临时调试):
137
+ window.debugConsole.enable() - 开启会话调试(关闭标签页后失效)
138
+ window.debugConsole.disable() - 关闭调试模式
139
+ window.debugConsole.toggle() - 切换会话调试模式
140
+
141
+ 👨‍💻 开发人员使用(长期调试):
142
+ window.debugConsole.enablePersistent() - 开启持久调试(长期有效)
143
+ window.debugConsole.togglePersistent() - 切换持久调试模式
144
+ window.debugConsole.disable() - 关闭调试模式
145
+
146
+ 🔍 其他功能:
147
+ window.debugConsole.status() - 查看当前状态
148
+ window.debugConsole.help() - 显示此帮助信息
149
+
150
+ 🌐 URL参数:
151
+ ?__debugConsole__=true - 通过URL激活会话调试模式
152
+
153
+ 📝 说明:
154
+ - 会话模式:刷新页面后仍然有效,关闭标签页后失效
155
+ - 持久模式:长期有效,除非手动关闭
156
+ `);
157
+ }
158
+ };
159
+
160
+ // 显示初始状态
161
+ if (this.debugMode) {
162
+ // eslint-disable-next-line no-console
163
+ console.log(`🔧 调试模式已开启(${this.debugType === "persistent" ? "持久模式" : "会话模式"})`);
164
+ } else {
165
+ // eslint-disable-next-line no-console
166
+ console.log("💡 提示:使用 window.debugConsole.help() 查看使用说明");
167
+ }
168
+ }
169
+ getStatusDescription() {
170
+ if (!this.debugMode) {
171
+ return "调试模式已关闭";
172
+ }
173
+ switch (this.debugType) {
174
+ case "persistent":
175
+ return "持久模式 - 内部调试(长期有效)";
176
+ case "session":
177
+ return "会话模式 - 临时调试(关闭标签页后失效)";
178
+ default:
179
+ return "未知模式";
180
+ }
181
+ }
182
+ isDebugMode() {
183
+ return this.debugMode;
184
+ }
185
+ getDebugType() {
186
+ return this.debugType;
187
+ }
188
+ shouldLog(method) {
189
+ return method === "error" ? true : this.debugMode;
190
+ }
191
+ }
192
+ _defineProperty(DebugManager, "instance", void 0);
193
+ export const debugManager = DebugManager.getInstance();
194
+ //# sourceMappingURL=debugManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugManager.js","names":["DebugManager","getInstance","instance","constructor","_defineProperty","initDebugMode","setupWindowAPI","urlParams","URLSearchParams","window","location","search","debugFromUrl","get","activateSessionDebug","persistentDebug","localStorage","getItem","debugMode","debugType","console","log","sessionDebug","sessionStorage","setItem","debugConsole","enable","enablePersistent","disable","removeItem","toggle","togglePersistent","status","description","getStatusDescription","help","isDebugMode","getDebugType","shouldLog","method","debugManager"],"sources":["../../../src/internal/debugManager.ts"],"sourcesContent":["class DebugManager {\n private static instance: DebugManager;\n private debugMode = false;\n private debugType: \"session\" | \"persistent\" | \"none\" = \"none\";\n\n static getInstance(): DebugManager {\n if (!DebugManager.instance) {\n DebugManager.instance = new DebugManager();\n }\n return DebugManager.instance;\n }\n\n constructor() {\n this.initDebugMode();\n this.setupWindowAPI();\n }\n\n private initDebugMode(): void {\n // 1. 首先检查URL参数\n const urlParams = new URLSearchParams(window.location.search);\n const debugFromUrl = urlParams.get(\"__debugConsole__\");\n\n if (debugFromUrl === \"true\") {\n this.activateSessionDebug();\n return;\n }\n\n // 2. 检查localStorage(内部人员长期调试)\n const persistentDebug = localStorage.getItem(\"debugConsole\");\n if (persistentDebug === \"true\") {\n this.debugMode = true;\n this.debugType = \"persistent\";\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(持久模式 - 内部调试)\");\n return;\n }\n\n // 3. 检查sessionStorage(客户临时调试)\n const sessionDebug = sessionStorage.getItem(\"debugConsole\");\n if (sessionDebug === \"true\") {\n this.debugMode = true;\n this.debugType = \"session\";\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(会话模式 - 关闭标签页后失效)\");\n return;\n }\n\n // 4. 检查日志级别设置\n }\n\n private activateSessionDebug(): void {\n this.debugMode = true;\n this.debugType = \"session\";\n sessionStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已通过URL参数激活(会话模式)\");\n }\n\n private setupWindowAPI(): void {\n (window as any).debugConsole = {\n // 开启会话调试模式(客户现场使用)\n enable: () => {\n this.debugMode = true;\n this.debugType = \"session\";\n sessionStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(会话模式 - 关闭标签页后失效)\");\n return this.debugMode;\n },\n\n // 开启持久调试模式(内部人员使用)\n enablePersistent: () => {\n this.debugMode = true;\n this.debugType = \"persistent\";\n localStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(持久模式 - 内部调试)\");\n return this.debugMode;\n },\n\n // 关闭调试模式\n disable: () => {\n this.debugMode = false;\n this.debugType = \"none\";\n sessionStorage.removeItem(\"debugConsole\");\n localStorage.removeItem(\"debugConsole\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已关闭\");\n return this.debugMode;\n },\n\n // 切换调试模式\n toggle: () => {\n if (this.debugMode) {\n this.debugMode = false;\n this.debugType = \"none\";\n sessionStorage.removeItem(\"debugConsole\");\n localStorage.removeItem(\"debugConsole\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已关闭\");\n } else {\n this.debugMode = true;\n this.debugType = \"session\";\n sessionStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(会话模式 - 关闭标签页后失效)\");\n }\n return this.debugMode;\n },\n\n // 切换持久调试模式\n togglePersistent: () => {\n if (this.debugMode && this.debugType === \"persistent\") {\n this.debugMode = false;\n this.debugType = \"none\";\n sessionStorage.removeItem(\"debugConsole\");\n localStorage.removeItem(\"debugConsole\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已关闭\");\n } else {\n this.debugMode = true;\n this.debugType = \"persistent\";\n localStorage.setItem(\"debugConsole\", \"true\");\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试模式已开启(持久模式 - 内部调试)\");\n }\n return this.debugMode;\n },\n\n // 获取当前状态\n status: () => {\n const status = {\n debugMode: this.debugMode,\n debugType: this.debugType,\n description: this.getStatusDescription(),\n };\n // eslint-disable-next-line no-console\n console.log(\"🔧 调试状态:\", status);\n return status;\n },\n // 帮助信息\n help: () => {\n // eslint-disable-next-line no-console\n console.log(`\n🔧 混合调试控制台使用说明:\n\n👥 生产环境使用(临时调试):\n window.debugConsole.enable() - 开启会话调试(关闭标签页后失效)\n window.debugConsole.disable() - 关闭调试模式\n window.debugConsole.toggle() - 切换会话调试模式\n\n👨‍💻 开发人员使用(长期调试):\n window.debugConsole.enablePersistent() - 开启持久调试(长期有效)\n window.debugConsole.togglePersistent() - 切换持久调试模式\n window.debugConsole.disable() - 关闭调试模式\n\n🔍 其他功能:\n window.debugConsole.status() - 查看当前状态\n window.debugConsole.help() - 显示此帮助信息\n\n🌐 URL参数:\n ?__debugConsole__=true - 通过URL激活会话调试模式\n\n📝 说明:\n - 会话模式:刷新页面后仍然有效,关闭标签页后失效\n - 持久模式:长期有效,除非手动关闭\n `);\n },\n };\n\n // 显示初始状态\n if (this.debugMode) {\n // eslint-disable-next-line no-console\n console.log(\n `🔧 调试模式已开启(${\n this.debugType === \"persistent\" ? \"持久模式\" : \"会话模式\"\n })`\n );\n } else {\n // eslint-disable-next-line no-console\n console.log(\"💡 提示:使用 window.debugConsole.help() 查看使用说明\");\n }\n }\n\n private getStatusDescription(): string {\n if (!this.debugMode) {\n return \"调试模式已关闭\";\n }\n\n switch (this.debugType) {\n case \"persistent\":\n return \"持久模式 - 内部调试(长期有效)\";\n case \"session\":\n return \"会话模式 - 临时调试(关闭标签页后失效)\";\n default:\n return \"未知模式\";\n }\n }\n\n isDebugMode(): boolean {\n return this.debugMode;\n }\n\n getDebugType(): \"session\" | \"persistent\" | \"none\" {\n return this.debugType;\n }\n\n shouldLog(method: \"log\" | \"error\" | \"warn\" | \"info\"): boolean {\n return method === \"error\" ? true : this.debugMode;\n }\n}\n\nexport const debugManager = DebugManager.getInstance();\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ declare class DebugManager {
2
+ private static instance;
3
+ private debugMode;
4
+ private debugType;
5
+ static getInstance(): DebugManager;
6
+ constructor();
7
+ private initDebugMode;
8
+ private activateSessionDebug;
9
+ private setupWindowAPI;
10
+ private getStatusDescription;
11
+ isDebugMode(): boolean;
12
+ getDebugType(): "session" | "persistent" | "none";
13
+ shouldLog(method: "log" | "error" | "warn" | "info"): boolean;
14
+ }
15
+ export declare const debugManager: DebugManager;
16
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/runtime",
3
- "version": "1.68.0",
3
+ "version": "1.69.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -67,5 +67,5 @@
67
67
  "@next-core/build-next-libs": "^1.0.25",
68
68
  "@next-core/test-next": "^2.0.0"
69
69
  },
70
- "gitHead": "72bf5162af16d77e057ad523d5e766b3758aa5d6"
70
+ "gitHead": "06b46fdd77538cc7c8b999ce27ee568a73d4dd8a"
71
71
  }