@next-core/runtime 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/internal/bindListeners.js +36 -9
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/data/DataStore.js +64 -3
- package/dist/cjs/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +36 -9
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js +64 -3
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/types/internal/data/DataStore.d.ts +7 -1
- package/package.json +6 -6
|
@@ -27,6 +27,7 @@ var _handleHttpError = require("../handleHttpError.js");
|
|
|
27
27
|
var _FlowApi = require("./data/FlowApi.js");
|
|
28
28
|
var _Notification = require("../Notification.js");
|
|
29
29
|
var _utils2 = require("./FormRenderer/utils.js");
|
|
30
|
+
var _general = require("@next-core/utils/general");
|
|
30
31
|
function bindListeners(brick, eventsMap, runtimeContext) {
|
|
31
32
|
if (!eventsMap) {
|
|
32
33
|
return;
|
|
@@ -80,6 +81,7 @@ function isConditionalEventHandler(handler) {
|
|
|
80
81
|
}
|
|
81
82
|
function listenerFactory(handlers, runtimeContext, runtimeBrick) {
|
|
82
83
|
return function (event) {
|
|
84
|
+
var _handler$batch, _handler$batch2;
|
|
83
85
|
for (const handler of [].concat(handlers)) {
|
|
84
86
|
if (!(0, _checkIf.checkIf)(handler, {
|
|
85
87
|
...runtimeContext,
|
|
@@ -148,12 +150,12 @@ function listenerFactory(handlers, runtimeContext, runtimeBrick) {
|
|
|
148
150
|
case "context.replace":
|
|
149
151
|
case "context.refresh":
|
|
150
152
|
case "context.load":
|
|
151
|
-
handleContextAction(event, method, handler.args, handler.callback, runtimeContext);
|
|
153
|
+
handleContextAction(event, method, handler.args, (_handler$batch = handler.batch) !== null && _handler$batch !== void 0 ? _handler$batch : true, handler.callback, runtimeContext);
|
|
152
154
|
break;
|
|
153
155
|
case "state.update":
|
|
154
156
|
case "state.refresh":
|
|
155
157
|
case "state.load":
|
|
156
|
-
handleTplStateAction(event, method, handler.args, handler.callback, runtimeContext);
|
|
158
|
+
handleTplStateAction(event, method, handler.args, (_handler$batch2 = handler.batch) !== null && _handler$batch2 !== void 0 ? _handler$batch2 : true, handler.callback, runtimeContext);
|
|
157
159
|
break;
|
|
158
160
|
case "tpl.dispatchEvent":
|
|
159
161
|
{
|
|
@@ -374,14 +376,39 @@ function handleWindowAction(event, args, runtimeContext) {
|
|
|
374
376
|
const [url, target, features] = argsFactory(args, runtimeContext, event);
|
|
375
377
|
window.open(url, target || "_self", features);
|
|
376
378
|
}
|
|
377
|
-
function
|
|
378
|
-
|
|
379
|
-
|
|
379
|
+
function batchUpdate(args, batch, method, store, runtimeContext, event) {
|
|
380
|
+
if (batch) {
|
|
381
|
+
store.updateValues(args, method, arg => {
|
|
382
|
+
return argsFactory(arg, runtimeContext, event)[0];
|
|
383
|
+
});
|
|
384
|
+
} else {
|
|
385
|
+
args.forEach(arg => {
|
|
386
|
+
const {
|
|
387
|
+
name,
|
|
388
|
+
value
|
|
389
|
+
} = argsFactory([arg], runtimeContext, event)[0];
|
|
390
|
+
store.updateValue(name, value, method);
|
|
391
|
+
});
|
|
392
|
+
}
|
|
380
393
|
}
|
|
381
|
-
function
|
|
382
|
-
const
|
|
383
|
-
|
|
384
|
-
|
|
394
|
+
function handleContextAction(event, method, args, batch, callback, runtimeContext) {
|
|
395
|
+
const isBatch = Array.isArray(args) && args.every(_general.isObject);
|
|
396
|
+
if (isBatch && (method === "assign" || method === "replace")) {
|
|
397
|
+
batchUpdate(args, batch, method, runtimeContext.ctxStore, runtimeContext, event);
|
|
398
|
+
} else {
|
|
399
|
+
const [name, value] = argsFactory(args, runtimeContext, event);
|
|
400
|
+
runtimeContext.ctxStore.updateValue(name, value, method, callback, runtimeContext);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
function handleTplStateAction(event, method, args, batch, callback, runtimeContext) {
|
|
404
|
+
const isBatch = Array.isArray(args) && args.every(_general.isObject);
|
|
405
|
+
if (isBatch && method === "update") {
|
|
406
|
+
batchUpdate(args, batch, "replace", runtimeContext.ctxStore, runtimeContext, event);
|
|
407
|
+
} else {
|
|
408
|
+
const [name, value] = argsFactory(args, runtimeContext, event);
|
|
409
|
+
const tplStateStore = (0, _utils.getTplStateStore)(runtimeContext, `state.${method}`, `: ${name}`);
|
|
410
|
+
tplStateStore.updateValue(name, value, method === "update" ? "replace" : method, callback, runtimeContext);
|
|
411
|
+
}
|
|
385
412
|
}
|
|
386
413
|
function handleFormStateAction(event, args, callback, runtimeContext) {
|
|
387
414
|
const [name, value] = argsFactory(args, runtimeContext, event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindListeners.js","names":["_cook","require","_checkIf","_computeRealValue","_history","_getProviderBrick","_poll2","_evaluate","_setProperties","_themeAndMode","_utils","_handleHttpError","_FlowApi","_Notification","_utils2","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","handleWindowAction","handleLocationAction","handleStorageAction","preventDefault","handleConsoleAction","handleMessageAction","handleHttpError","detail","handleContextAction","handleTplStateAction","type","init","argsFactory","tplHostElement","getTplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","applyTheme","theme","applyMode","console","error","handleUseProviderAction","handleCustomAction","providerBrick","getProviderBrick","brickCallback","httpErrorToString","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","options","_poll","task","computedArgs","getArgsOfFlowApi","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","poll","enabled","startPoll","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","getHistory","url","features","window","open","name","value","ctxStore","updateValue","tplStateStore","getTplStateStore","formStateStore","getFormStateStore","location","assign","storage","localStorage","sessionStorage","setItem","JSON","stringify","removeItem","Notification","show","message","isArray"],"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} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\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, httpErrorToString } from \"../handleHttpError.js\";\nimport { getArgsOfFlowApi } from \"./data/FlowApi.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.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 handleWindowAction(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\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.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.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\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\nasync function handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n try {\n const providerBrick = await getProviderBrick(handler.useProvider);\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n providerBrick,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(httpErrorToString(error));\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 target: HTMLElement,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n if (typeof (target as any)[method] !== \"function\") {\n // eslint-disable-next-line no-console\n console.error(\"target has no method:\", {\n target,\n method: method,\n });\n return;\n }\n\n const task = async (): Promise<unknown> => {\n let computedArgs = argsFactory(\n handler.args,\n runtimeContext,\n event,\n options\n );\n if (isUseProviderHandler(handler)) {\n computedArgs = await getArgsOfFlowApi(\n handler.useProvider,\n computedArgs,\n method\n );\n }\n return (target 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 let poll: ProviderPollOptions | undefined;\n if (isUseProviderHandler(handler)) {\n poll = computeRealValue(handler.poll, { ...runtimeContext, event }) as\n | ProviderPollOptions\n | undefined;\n }\n\n if (poll?.enabled) {\n startPoll(task, pollableCallback, poll);\n } else {\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}\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 handleWindowAction(\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 handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\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\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\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\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\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bindListeners.js","names":["_cook","require","_checkIf","_computeRealValue","_history","_getProviderBrick","_poll2","_evaluate","_setProperties","_themeAndMode","_utils","_handleHttpError","_FlowApi","_Notification","_utils2","_general","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","_handler$batch","_handler$batch2","checkIf","else","object","split","handleHistoryAction","args","callback","handleWindowAction","handleLocationAction","handleStorageAction","preventDefault","handleConsoleAction","handleMessageAction","handleHttpError","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","getTplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","applyTheme","theme","applyMode","console","error","handleUseProviderAction","handleCustomAction","providerBrick","getProviderBrick","brickCallback","httpErrorToString","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","options","_poll","task","computedArgs","getArgsOfFlowApi","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","poll","enabled","startPoll","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","getHistory","url","features","window","open","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","isArray","every","isObject","ctxStore","tplStateStore","getTplStateStore","formStateStore","getFormStateStore","location","assign","storage","localStorage","sessionStorage","setItem","JSON","stringify","removeItem","Notification","show","message"],"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} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\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, httpErrorToString } from \"../handleHttpError.js\";\nimport { getArgsOfFlowApi } from \"./data/FlowApi.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { isObject } from \"@next-core/utils/general\";\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 handleWindowAction(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\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\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\nasync function handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n try {\n const providerBrick = await getProviderBrick(handler.useProvider);\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n providerBrick,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(httpErrorToString(error));\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 target: HTMLElement,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n if (typeof (target as any)[method] !== \"function\") {\n // eslint-disable-next-line no-console\n console.error(\"target has no method:\", {\n target,\n method: method,\n });\n return;\n }\n\n const task = async (): Promise<unknown> => {\n let computedArgs = argsFactory(\n handler.args,\n runtimeContext,\n event,\n options\n );\n if (isUseProviderHandler(handler)) {\n computedArgs = await getArgsOfFlowApi(\n handler.useProvider,\n computedArgs,\n method\n );\n }\n return (target 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 let poll: ProviderPollOptions | undefined;\n if (isUseProviderHandler(handler)) {\n poll = computeRealValue(handler.poll, { ...runtimeContext, event }) as\n | ProviderPollOptions\n | undefined;\n }\n\n if (poll?.enabled) {\n startPoll(task, pollableCallback, poll);\n } else {\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}\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 handleWindowAction(\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 batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore,\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 batchUpdate(\n args,\n batch,\n \"replace\",\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\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\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"],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ class DataStore {
|
|
|
18
18
|
changeEventType;
|
|
19
19
|
pendingStack = [];
|
|
20
20
|
hostBrick;
|
|
21
|
+
batchUpdate = false;
|
|
22
|
+
batchUpdateContextsNames = [];
|
|
21
23
|
constructor(type, hostBrick) {
|
|
22
24
|
this.type = type;
|
|
23
25
|
this.changeEventType = this.type === "FORM_STATE" ? "formstate.change" : this.type === "STATE" ? "state.change" : "context.change";
|
|
@@ -27,6 +29,54 @@ class DataStore {
|
|
|
27
29
|
var _this$data$get;
|
|
28
30
|
return (_this$data$get = this.data.get(name)) === null || _this$data$get === void 0 ? void 0 : _this$data$get.value;
|
|
29
31
|
}
|
|
32
|
+
getAffectListByContext(name) {
|
|
33
|
+
const affectNames = [name];
|
|
34
|
+
this.data.forEach((value, key) => {
|
|
35
|
+
if (value.deps) {
|
|
36
|
+
const isInDeps = value.deps.some(item => affectNames.includes(item));
|
|
37
|
+
isInDeps && affectNames.push(key) && affectNames.push(...this.getAffectListByContext(key));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
affectNames.shift();
|
|
41
|
+
return [...new Set(affectNames)];
|
|
42
|
+
}
|
|
43
|
+
updateValues(values, method, argsFactory) {
|
|
44
|
+
this.batchUpdate = true;
|
|
45
|
+
this.batchUpdateContextsNames = values.map(item => item.name);
|
|
46
|
+
if ([...new Set(this.batchUpdateContextsNames)].length !== this.batchUpdateContextsNames.length) {
|
|
47
|
+
throw new Error(`Batch update not allow to update same item`);
|
|
48
|
+
}
|
|
49
|
+
const updateContexts = {};
|
|
50
|
+
const affectContexts = {};
|
|
51
|
+
const affectDepsContextNames = [];
|
|
52
|
+
values.forEach(arg => {
|
|
53
|
+
const {
|
|
54
|
+
name,
|
|
55
|
+
value
|
|
56
|
+
} = argsFactory([arg]);
|
|
57
|
+
const updateContextItem = this.data.get(name);
|
|
58
|
+
affectDepsContextNames.push(...this.getAffectListByContext(name));
|
|
59
|
+
updateContextItem && (updateContexts[name] = updateContextItem);
|
|
60
|
+
this.updateValue(name, value, method);
|
|
61
|
+
});
|
|
62
|
+
affectDepsContextNames.filter(item => !updateContexts[item]).forEach(name => {
|
|
63
|
+
const affectContextItem = this.data.get(name);
|
|
64
|
+
affectContextItem && (affectContexts[name] = affectContextItem);
|
|
65
|
+
});
|
|
66
|
+
const triggerEvent = contexts => {
|
|
67
|
+
for (const key in contexts) {
|
|
68
|
+
var _context$eventTarget;
|
|
69
|
+
const context = contexts[key];
|
|
70
|
+
(_context$eventTarget = context.eventTarget) === null || _context$eventTarget === void 0 ? void 0 : _context$eventTarget.dispatchEvent(new CustomEvent(this.changeEventType, {
|
|
71
|
+
detail: context.value
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
triggerEvent(updateContexts);
|
|
76
|
+
triggerEvent(affectContexts);
|
|
77
|
+
this.batchUpdate = false;
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
30
80
|
updateValue(name, value, method, callback, callbackRuntimeContext) {
|
|
31
81
|
const item = this.data.get(name);
|
|
32
82
|
if (!item) {
|
|
@@ -89,6 +139,7 @@ class DataStore {
|
|
|
89
139
|
item.value = value;
|
|
90
140
|
}
|
|
91
141
|
}
|
|
142
|
+
if (this.batchUpdate) return;
|
|
92
143
|
item.eventTarget.dispatchEvent(new CustomEvent(this.changeEventType, {
|
|
93
144
|
detail: item.value
|
|
94
145
|
}));
|
|
@@ -160,15 +211,17 @@ class DataStore {
|
|
|
160
211
|
// This is required for tracking context, even if no `onChange` is specified.
|
|
161
212
|
eventTarget: new EventTarget(),
|
|
162
213
|
load,
|
|
163
|
-
loaded: !isLazyResolve
|
|
214
|
+
loaded: !isLazyResolve,
|
|
215
|
+
deps: []
|
|
164
216
|
};
|
|
165
217
|
if (dataConf.onChange) {
|
|
166
218
|
newData.eventTarget.addEventListener(this.changeEventType, (0, _bindListeners.listenerFactory)(dataConf.onChange, runtimeContext));
|
|
167
219
|
}
|
|
168
220
|
if (dataConf.track) {
|
|
169
221
|
const deps = (0, _storyboard.strictCollectMemberUsage)(load ? dataConf.resolve : dataConf.value, this.type);
|
|
222
|
+
!load && (newData.deps = [...deps]);
|
|
170
223
|
for (const dep of deps) {
|
|
171
|
-
this.onChange(dep, () => {
|
|
224
|
+
this.onChange(dep, this.batchAddListener(() => {
|
|
172
225
|
if (load) {
|
|
173
226
|
this.updateValue(dataConf.name, {
|
|
174
227
|
cache: "default"
|
|
@@ -176,7 +229,7 @@ class DataStore {
|
|
|
176
229
|
} else {
|
|
177
230
|
this.updateValue(dataConf.name, (0, _computeRealValue.computeRealValue)(dataConf.value, runtimeContext), "replace");
|
|
178
231
|
}
|
|
179
|
-
});
|
|
232
|
+
}, dataConf));
|
|
180
233
|
}
|
|
181
234
|
}
|
|
182
235
|
if (this.data.has(dataConf.name)) {
|
|
@@ -185,6 +238,14 @@ class DataStore {
|
|
|
185
238
|
this.data.set(dataConf.name, newData);
|
|
186
239
|
return true;
|
|
187
240
|
}
|
|
241
|
+
batchAddListener(listener, contextConf) {
|
|
242
|
+
return event => {
|
|
243
|
+
if (this.batchUpdate && this.batchUpdateContextsNames.includes(contextConf.name)) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
listener(event);
|
|
247
|
+
};
|
|
248
|
+
}
|
|
188
249
|
}
|
|
189
250
|
exports.DataStore = DataStore;
|
|
190
251
|
//# sourceMappingURL=DataStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataStore.js","names":["_general","require","_storyboard","_bindListeners","_checkIf","_computeRealValue","_resolveData","_resolveDataStore","_handleHttpError","DataStore","type","data","Map","changeEventType","pendingStack","hostBrick","constructor","getValue","name","_this$data$get","get","value","updateValue","method","callback","callbackRuntimeContext","item","Error","load","promise","loaded","Promise","resolve","loading","cache","then","val","eventTarget","dispatchEvent","CustomEvent","detail","err","error","handleHttpError","callbackFactory","eventCallbackFactory","isObject","Object","assign","console","warn","define","dataConfs","runtimeContext","asyncHostProperties","Array","isArray","length","pending","resolveDataStore","dataConf","push","onChange","dataName","listener","_this$data$get2","addEventListener","waitFor","dataNames","pendingContexts","all","map","ctx","p","waitForAll","pendingResult","asyncCheckIf","expose","hostProps","hasOwnProperty","isLazyResolve","undefined","resolveConf","transform","options","resolveData","lazy","asyncComputeRealValue","newData","EventTarget","listenerFactory","track","deps","strictCollectMemberUsage","dep","computeRealValue","has","set","exports"],"sources":["../../../../src/internal/data/DataStore.ts"],"sourcesContent":["import type { BrickEventHandlerCallback, ContextConf } from \"@next-core/types\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport { eventCallbackFactory, listenerFactory } from \"../bindListeners.js\";\nimport { asyncCheckIf } from \"../compute/checkIf.js\";\nimport {\n asyncComputeRealValue,\n computeRealValue,\n} from \"../compute/computeRealValue.js\";\nimport { ResolveOptions, resolveData } from \"./resolveData.js\";\nimport { resolveDataStore } from \"./resolveDataStore.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n RuntimeContext,\n} from \"../interfaces.js\";\nimport { handleHttpError } from \"../../handleHttpError.js\";\n\nexport type DataStoreType = \"CTX\" | \"STATE\" | \"FORM_STATE\";\n\nexport interface DataStoreItem {\n value: unknown;\n eventTarget: EventTarget;\n loaded?: boolean;\n loading?: Promise<unknown>;\n load?: (options?: ResolveOptions) => Promise<unknown>;\n}\n\nexport class DataStore<T extends DataStoreType = \"CTX\"> {\n private readonly type: T;\n private readonly data = new Map<string, DataStoreItem>();\n private readonly changeEventType: string;\n private readonly pendingStack: Array<ReturnType<typeof resolveDataStore>> =\n [];\n public readonly hostBrick?: RuntimeBrick;\n\n constructor(type: T, hostBrick?: RuntimeBrick) {\n this.type = type;\n this.changeEventType =\n this.type === \"FORM_STATE\"\n ? \"formstate.change\"\n : this.type === \"STATE\"\n ? \"state.change\"\n : \"context.change\";\n this.hostBrick = hostBrick;\n }\n\n getValue(name: string): unknown {\n return this.data.get(name)?.value;\n }\n\n updateValue(\n name: string,\n value: unknown,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\",\n callback?: BrickEventHandlerCallback,\n callbackRuntimeContext?: RuntimeContext\n ): void {\n const item = this.data.get(name);\n if (!item) {\n throw new Error(`${this.type} '${name}' is not defined`);\n }\n\n if (method === \"refresh\" || method === \"load\") {\n if (!item.load) {\n throw new Error(\n `You can not ${method} \"${this.type}.${name}\" which has no resolve`\n );\n }\n\n let promise: Promise<unknown> | undefined;\n if (method === \"load\") {\n // Try to reuse previous request when calling `load`.\n if (item.loaded) {\n promise = Promise.resolve(item.value);\n } else if (item.loading) {\n promise = item.loading;\n }\n }\n\n if (!promise) {\n promise = item.loading = item.load({\n cache: method === \"load\" ? \"default\" : \"reload\",\n ...(value as ResolveOptions),\n });\n // Do not use the chained promise, since the callbacks need the original promise.\n promise.then(\n (val) => {\n item.loaded = true;\n item.value = val;\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n },\n (err) => {\n // Let users override error handling.\n if (!callback?.error) {\n handleHttpError(err);\n }\n }\n );\n }\n\n if (callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n callbackRuntimeContext!\n );\n\n promise.then(\n (val) => {\n callbackFactory(\"success\")({ value: val });\n callbackFactory(\"finally\")();\n },\n (err) => {\n callbackFactory(\"error\")(err);\n callbackFactory(\"finally\")();\n }\n );\n }\n\n return;\n }\n\n if (method === \"replace\") {\n item.value = value;\n } else {\n if (isObject(item.value)) {\n Object.assign(item.value, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `Non-object current value of \"${this.type}.${name}\" for \"context.assign\", try \"context.replace\" instead.`\n );\n item.value = value;\n }\n }\n\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n }\n\n define(\n dataConfs: ContextConf[] | undefined,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): void {\n if (Array.isArray(dataConfs) && dataConfs.length > 0) {\n const pending = resolveDataStore(\n dataConfs,\n (dataConf: ContextConf) =>\n this.resolve(dataConf, runtimeContext, asyncHostProperties),\n this.type\n );\n this.pendingStack.push(pending);\n }\n }\n\n onChange(dataName: string, listener: EventListener): void {\n this.data\n .get(dataName)\n ?.eventTarget.addEventListener(this.changeEventType, listener);\n }\n\n async waitFor(dataNames: string[] | Set<string>): Promise<void> {\n for (const { pendingContexts } of this.pendingStack) {\n await Promise.all(\n [...dataNames].map((ctx) => {\n const p = pendingContexts.get(ctx);\n return p;\n })\n );\n }\n }\n\n async waitForAll(): Promise<void> {\n for (const { pendingResult } of this.pendingStack) {\n await pendingResult;\n }\n }\n\n private async resolve(\n dataConf: ContextConf,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): Promise<boolean> {\n if (!(await asyncCheckIf(dataConf, runtimeContext))) {\n return false;\n }\n let value: unknown;\n if (\n asyncHostProperties &&\n (this.type === \"STATE\" ? dataConf.expose : this.type === \"FORM_STATE\")\n ) {\n const hostProps = await asyncHostProperties;\n if (hasOwnProperty(hostProps, dataConf.name)) {\n value = hostProps[dataConf.name];\n }\n }\n let load: DataStoreItem[\"load\"];\n let isLazyResolve: boolean | undefined = false;\n if (value === undefined) {\n if (dataConf.resolve) {\n const resolveConf = {\n transform: \"value\",\n ...dataConf.resolve,\n };\n if (await asyncCheckIf(dataConf.resolve, runtimeContext)) {\n load = async (options) =>\n (\n (await resolveData(resolveConf, runtimeContext, options)) as {\n value: unknown;\n }\n ).value;\n isLazyResolve = dataConf.resolve.lazy;\n if (!isLazyResolve) {\n value = await load();\n }\n } else if (!hasOwnProperty(dataConf, \"value\")) {\n return false;\n }\n }\n if ((!load || isLazyResolve) && dataConf.value !== undefined) {\n // If the context has no resolve, just use its `value`.\n // Or if the resolve is ignored or lazy, use its `value` as a fallback.\n value = await asyncComputeRealValue(dataConf.value, runtimeContext);\n }\n }\n\n const newData: DataStoreItem = {\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n load,\n loaded: !isLazyResolve,\n };\n\n if (dataConf.onChange) {\n newData.eventTarget.addEventListener(\n this.changeEventType,\n listenerFactory(dataConf.onChange, runtimeContext)\n );\n }\n\n if (dataConf.track) {\n const deps = strictCollectMemberUsage(\n load ? dataConf.resolve : dataConf.value,\n this.type\n );\n for (const dep of deps) {\n this.onChange(dep, () => {\n if (load) {\n this.updateValue(dataConf.name, { cache: \"default\" }, \"refresh\");\n } else {\n this.updateValue(\n dataConf.name,\n computeRealValue(dataConf.value, runtimeContext),\n \"replace\"\n );\n }\n });\n }\n }\n\n if (this.data.has(dataConf.name)) {\n throw new Error(\n `${this.type} '${dataConf.name}' has already been declared`\n );\n }\n this.data.set(dataConf.name, newData);\n\n return true;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataStore.js","names":["_general","require","_storyboard","_bindListeners","_checkIf","_computeRealValue","_resolveData","_resolveDataStore","_handleHttpError","DataStore","type","data","Map","changeEventType","pendingStack","hostBrick","batchUpdate","batchUpdateContextsNames","constructor","getValue","name","_this$data$get","get","value","getAffectListByContext","affectNames","forEach","key","deps","isInDeps","some","item","includes","push","shift","Set","updateValues","values","method","argsFactory","map","length","Error","updateContexts","affectContexts","affectDepsContextNames","arg","updateContextItem","updateValue","filter","affectContextItem","triggerEvent","contexts","_context$eventTarget","context","eventTarget","dispatchEvent","CustomEvent","detail","callback","callbackRuntimeContext","load","promise","loaded","Promise","resolve","loading","cache","then","val","err","error","handleHttpError","callbackFactory","eventCallbackFactory","isObject","Object","assign","console","warn","define","dataConfs","runtimeContext","asyncHostProperties","Array","isArray","pending","resolveDataStore","dataConf","onChange","dataName","listener","_this$data$get2","addEventListener","waitFor","dataNames","pendingContexts","all","ctx","p","waitForAll","pendingResult","asyncCheckIf","expose","hostProps","hasOwnProperty","isLazyResolve","undefined","resolveConf","transform","options","resolveData","lazy","asyncComputeRealValue","newData","EventTarget","listenerFactory","track","strictCollectMemberUsage","dep","batchAddListener","computeRealValue","has","set","contextConf","event","exports"],"sources":["../../../../src/internal/data/DataStore.ts"],"sourcesContent":["import type {\n BatchUpdateContextItem,\n BrickEventHandlerCallback,\n ContextConf,\n} from \"@next-core/types\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport { eventCallbackFactory, listenerFactory } from \"../bindListeners.js\";\nimport { asyncCheckIf } from \"../compute/checkIf.js\";\nimport {\n asyncComputeRealValue,\n computeRealValue,\n} from \"../compute/computeRealValue.js\";\nimport { ResolveOptions, resolveData } from \"./resolveData.js\";\nimport { resolveDataStore } from \"./resolveDataStore.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n RuntimeContext,\n} from \"../interfaces.js\";\nimport { handleHttpError } from \"../../handleHttpError.js\";\n\nexport type DataStoreType = \"CTX\" | \"STATE\" | \"FORM_STATE\";\n\nexport interface DataStoreItem {\n value: unknown;\n eventTarget: EventTarget;\n loaded?: boolean;\n loading?: Promise<unknown>;\n load?: (options?: ResolveOptions) => Promise<unknown>;\n deps: string[];\n}\n\nexport class DataStore<T extends DataStoreType = \"CTX\"> {\n private readonly type: T;\n private readonly data = new Map<string, DataStoreItem>();\n private readonly changeEventType: string;\n private readonly pendingStack: Array<ReturnType<typeof resolveDataStore>> =\n [];\n public readonly hostBrick?: RuntimeBrick;\n public batchUpdate = false;\n public batchUpdateContextsNames: string[] = [];\n\n constructor(type: T, hostBrick?: RuntimeBrick) {\n this.type = type;\n this.changeEventType =\n this.type === \"FORM_STATE\"\n ? \"formstate.change\"\n : this.type === \"STATE\"\n ? \"state.change\"\n : \"context.change\";\n this.hostBrick = hostBrick;\n }\n\n getValue(name: string): unknown {\n return this.data.get(name)?.value;\n }\n\n getAffectListByContext(name: string): string[] {\n const affectNames = [name];\n this.data.forEach((value, key) => {\n if (value.deps) {\n const isInDeps = value.deps.some((item) => affectNames.includes(item));\n isInDeps &&\n affectNames.push(key) &&\n affectNames.push(...this.getAffectListByContext(key));\n }\n });\n affectNames.shift();\n return [...new Set(affectNames)];\n }\n\n updateValues(\n values: BatchUpdateContextItem[],\n method: \"assign\" | \"replace\",\n argsFactory: (arg: unknown[]) => BatchUpdateContextItem\n ): void {\n this.batchUpdate = true;\n this.batchUpdateContextsNames = values.map((item) => item.name);\n if (\n [...new Set(this.batchUpdateContextsNames)].length !==\n this.batchUpdateContextsNames.length\n ) {\n throw new Error(`Batch update not allow to update same item`);\n }\n\n const updateContexts: Record<string, DataStoreItem> = {};\n const affectContexts: Record<string, DataStoreItem> = {};\n const affectDepsContextNames: string[] = [];\n\n values.forEach((arg) => {\n const { name, value } = argsFactory([arg]);\n const updateContextItem = this.data.get(name);\n affectDepsContextNames.push(...this.getAffectListByContext(name));\n updateContextItem && (updateContexts[name] = updateContextItem);\n this.updateValue(name as string, value, method);\n });\n\n affectDepsContextNames\n .filter((item) => !updateContexts[item])\n .forEach((name) => {\n const affectContextItem = this.data.get(name);\n affectContextItem && (affectContexts[name] = affectContextItem);\n });\n\n const triggerEvent = (contexts: Record<string, DataStoreItem>): void => {\n for (const key in contexts) {\n const context = contexts[key];\n context.eventTarget?.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: context.value,\n })\n );\n }\n };\n\n triggerEvent(updateContexts);\n triggerEvent(affectContexts);\n\n this.batchUpdate = false;\n\n return;\n }\n\n updateValue(\n name: string,\n value: unknown,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\",\n callback?: BrickEventHandlerCallback,\n callbackRuntimeContext?: RuntimeContext\n ): void {\n const item = this.data.get(name);\n if (!item) {\n throw new Error(`${this.type} '${name}' is not defined`);\n }\n\n if (method === \"refresh\" || method === \"load\") {\n if (!item.load) {\n throw new Error(\n `You can not ${method} \"${this.type}.${name}\" which has no resolve`\n );\n }\n\n let promise: Promise<unknown> | undefined;\n if (method === \"load\") {\n // Try to reuse previous request when calling `load`.\n if (item.loaded) {\n promise = Promise.resolve(item.value);\n } else if (item.loading) {\n promise = item.loading;\n }\n }\n\n if (!promise) {\n promise = item.loading = item.load({\n cache: method === \"load\" ? \"default\" : \"reload\",\n ...(value as ResolveOptions),\n });\n // Do not use the chained promise, since the callbacks need the original promise.\n promise.then(\n (val) => {\n item.loaded = true;\n item.value = val;\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n },\n (err) => {\n // Let users override error handling.\n if (!callback?.error) {\n handleHttpError(err);\n }\n }\n );\n }\n\n if (callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n callbackRuntimeContext!\n );\n\n promise.then(\n (val) => {\n callbackFactory(\"success\")({ value: val });\n callbackFactory(\"finally\")();\n },\n (err) => {\n callbackFactory(\"error\")(err);\n callbackFactory(\"finally\")();\n }\n );\n }\n\n return;\n }\n\n if (method === \"replace\") {\n item.value = value;\n } else {\n if (isObject(item.value)) {\n Object.assign(item.value, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `Non-object current value of \"${this.type}.${name}\" for \"context.assign\", try \"context.replace\" instead.`\n );\n item.value = value;\n }\n }\n\n if (this.batchUpdate) return;\n\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n }\n\n define(\n dataConfs: ContextConf[] | undefined,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): void {\n if (Array.isArray(dataConfs) && dataConfs.length > 0) {\n const pending = resolveDataStore(\n dataConfs,\n (dataConf: ContextConf) =>\n this.resolve(dataConf, runtimeContext, asyncHostProperties),\n this.type\n );\n this.pendingStack.push(pending);\n }\n }\n\n onChange(dataName: string, listener: EventListener): void {\n this.data\n .get(dataName)\n ?.eventTarget.addEventListener(this.changeEventType, listener);\n }\n\n async waitFor(dataNames: string[] | Set<string>): Promise<void> {\n for (const { pendingContexts } of this.pendingStack) {\n await Promise.all(\n [...dataNames].map((ctx) => {\n const p = pendingContexts.get(ctx);\n return p;\n })\n );\n }\n }\n\n async waitForAll(): Promise<void> {\n for (const { pendingResult } of this.pendingStack) {\n await pendingResult;\n }\n }\n\n private async resolve(\n dataConf: ContextConf,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): Promise<boolean> {\n if (!(await asyncCheckIf(dataConf, runtimeContext))) {\n return false;\n }\n let value: unknown;\n if (\n asyncHostProperties &&\n (this.type === \"STATE\" ? dataConf.expose : this.type === \"FORM_STATE\")\n ) {\n const hostProps = await asyncHostProperties;\n if (hasOwnProperty(hostProps, dataConf.name)) {\n value = hostProps[dataConf.name];\n }\n }\n let load: DataStoreItem[\"load\"];\n let isLazyResolve: boolean | undefined = false;\n if (value === undefined) {\n if (dataConf.resolve) {\n const resolveConf = {\n transform: \"value\",\n ...dataConf.resolve,\n };\n if (await asyncCheckIf(dataConf.resolve, runtimeContext)) {\n load = async (options) =>\n (\n (await resolveData(resolveConf, runtimeContext, options)) as {\n value: unknown;\n }\n ).value;\n isLazyResolve = dataConf.resolve.lazy;\n if (!isLazyResolve) {\n value = await load();\n }\n } else if (!hasOwnProperty(dataConf, \"value\")) {\n return false;\n }\n }\n if ((!load || isLazyResolve) && dataConf.value !== undefined) {\n // If the context has no resolve, just use its `value`.\n // Or if the resolve is ignored or lazy, use its `value` as a fallback.\n value = await asyncComputeRealValue(dataConf.value, runtimeContext);\n }\n }\n\n const newData: DataStoreItem = {\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n load,\n loaded: !isLazyResolve,\n deps: [],\n };\n\n if (dataConf.onChange) {\n newData.eventTarget.addEventListener(\n this.changeEventType,\n listenerFactory(dataConf.onChange, runtimeContext)\n );\n }\n\n if (dataConf.track) {\n const deps = strictCollectMemberUsage(\n load ? dataConf.resolve : dataConf.value,\n this.type\n );\n !load && (newData.deps = [...deps]);\n for (const dep of deps) {\n this.onChange(\n dep,\n this.batchAddListener(() => {\n if (load) {\n this.updateValue(dataConf.name, { cache: \"default\" }, \"refresh\");\n } else {\n this.updateValue(\n dataConf.name,\n computeRealValue(dataConf.value, runtimeContext),\n \"replace\"\n );\n }\n }, dataConf)\n );\n }\n }\n\n if (this.data.has(dataConf.name)) {\n throw new Error(\n `${this.type} '${dataConf.name}' has already been declared`\n );\n }\n this.data.set(dataConf.name, newData);\n\n return true;\n }\n\n batchAddListener(\n listener: EventListener,\n contextConf: ContextConf\n ): EventListener {\n return (event: Event | CustomEvent): void => {\n if (\n this.batchUpdate &&\n this.batchUpdateContextsNames.includes(contextConf.name)\n ) {\n return;\n }\n listener(event);\n };\n }\n}\n"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import { handleHttpError, httpErrorToString } from "../handleHttpError.js";
|
|
|
14
14
|
import { getArgsOfFlowApi } from "./data/FlowApi.js";
|
|
15
15
|
import { Notification } from "../Notification.js";
|
|
16
16
|
import { getFormStateStore } from "./FormRenderer/utils.js";
|
|
17
|
+
import { isObject } from "@next-core/utils/general";
|
|
17
18
|
export function bindListeners(brick, eventsMap, runtimeContext) {
|
|
18
19
|
if (!eventsMap) {
|
|
19
20
|
return;
|
|
@@ -68,6 +69,7 @@ export function isConditionalEventHandler(handler) {
|
|
|
68
69
|
}
|
|
69
70
|
export function listenerFactory(handlers, runtimeContext, runtimeBrick) {
|
|
70
71
|
return function (event) {
|
|
72
|
+
var _handler$batch, _handler$batch2;
|
|
71
73
|
for (var handler of [].concat(handlers)) {
|
|
72
74
|
if (!checkIf(handler, _objectSpread(_objectSpread({}, runtimeContext), {}, {
|
|
73
75
|
event
|
|
@@ -135,12 +137,12 @@ export function listenerFactory(handlers, runtimeContext, runtimeBrick) {
|
|
|
135
137
|
case "context.replace":
|
|
136
138
|
case "context.refresh":
|
|
137
139
|
case "context.load":
|
|
138
|
-
handleContextAction(event, method, handler.args, handler.callback, runtimeContext);
|
|
140
|
+
handleContextAction(event, method, handler.args, (_handler$batch = handler.batch) !== null && _handler$batch !== void 0 ? _handler$batch : true, handler.callback, runtimeContext);
|
|
139
141
|
break;
|
|
140
142
|
case "state.update":
|
|
141
143
|
case "state.refresh":
|
|
142
144
|
case "state.load":
|
|
143
|
-
handleTplStateAction(event, method, handler.args, handler.callback, runtimeContext);
|
|
145
|
+
handleTplStateAction(event, method, handler.args, (_handler$batch2 = handler.batch) !== null && _handler$batch2 !== void 0 ? _handler$batch2 : true, handler.callback, runtimeContext);
|
|
144
146
|
break;
|
|
145
147
|
case "tpl.dispatchEvent":
|
|
146
148
|
{
|
|
@@ -374,14 +376,39 @@ function handleWindowAction(event, args, runtimeContext) {
|
|
|
374
376
|
var [url, target, features] = argsFactory(args, runtimeContext, event);
|
|
375
377
|
window.open(url, target || "_self", features);
|
|
376
378
|
}
|
|
377
|
-
function
|
|
378
|
-
|
|
379
|
-
|
|
379
|
+
function batchUpdate(args, batch, method, store, runtimeContext, event) {
|
|
380
|
+
if (batch) {
|
|
381
|
+
store.updateValues(args, method, arg => {
|
|
382
|
+
return argsFactory(arg, runtimeContext, event)[0];
|
|
383
|
+
});
|
|
384
|
+
} else {
|
|
385
|
+
args.forEach(arg => {
|
|
386
|
+
var {
|
|
387
|
+
name,
|
|
388
|
+
value
|
|
389
|
+
} = argsFactory([arg], runtimeContext, event)[0];
|
|
390
|
+
store.updateValue(name, value, method);
|
|
391
|
+
});
|
|
392
|
+
}
|
|
380
393
|
}
|
|
381
|
-
function
|
|
382
|
-
var
|
|
383
|
-
|
|
384
|
-
|
|
394
|
+
function handleContextAction(event, method, args, batch, callback, runtimeContext) {
|
|
395
|
+
var isBatch = Array.isArray(args) && args.every(isObject);
|
|
396
|
+
if (isBatch && (method === "assign" || method === "replace")) {
|
|
397
|
+
batchUpdate(args, batch, method, runtimeContext.ctxStore, runtimeContext, event);
|
|
398
|
+
} else {
|
|
399
|
+
var [name, value] = argsFactory(args, runtimeContext, event);
|
|
400
|
+
runtimeContext.ctxStore.updateValue(name, value, method, callback, runtimeContext);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
function handleTplStateAction(event, method, args, batch, callback, runtimeContext) {
|
|
404
|
+
var isBatch = Array.isArray(args) && args.every(isObject);
|
|
405
|
+
if (isBatch && method === "update") {
|
|
406
|
+
batchUpdate(args, batch, "replace", runtimeContext.ctxStore, runtimeContext, event);
|
|
407
|
+
} else {
|
|
408
|
+
var [name, value] = argsFactory(args, runtimeContext, event);
|
|
409
|
+
var tplStateStore = getTplStateStore(runtimeContext, "state.".concat(method), ": ".concat(name));
|
|
410
|
+
tplStateStore.updateValue(name, value, method === "update" ? "replace" : method, callback, runtimeContext);
|
|
411
|
+
}
|
|
385
412
|
}
|
|
386
413
|
function handleFormStateAction(event, args, callback, runtimeContext) {
|
|
387
414
|
var [name, value] = argsFactory(args, runtimeContext, event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindListeners.js","names":["isEvaluable","checkIf","computeRealValue","getHistory","getProviderBrick","startPoll","isPreEvaluated","setProperties","applyMode","applyTheme","getTplHostElement","getTplStateStore","handleHttpError","httpErrorToString","getArgsOfFlowApi","Notification","getFormStateStore","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","_objectSpread","else","object","split","handleHistoryAction","args","callback","handleWindowAction","handleLocationAction","handleStorageAction","preventDefault","handleConsoleAction","handleMessageAction","detail","handleContextAction","handleTplStateAction","type","init","argsFactory","tplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","theme","console","error","handleUseProviderAction","handleCustomAction","_x","_x2","_x3","_x4","_handleUseProviderAction","apply","arguments","_asyncToGenerator","providerBrick","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","_x5","_x6","_x7","_x8","_x9","_x10","_x11","_brickCallback","options","_poll","task","_ref2","computedArgs","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","poll","enabled","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","url","features","window","open","name","value","ctxStore","updateValue","tplStateStore","formStateStore","location","assign","storage","localStorage","sessionStorage","setItem","JSON","stringify","removeItem","show","message","isArray"],"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} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\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, httpErrorToString } from \"../handleHttpError.js\";\nimport { getArgsOfFlowApi } from \"./data/FlowApi.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.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 handleWindowAction(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\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.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.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\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\nasync function handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n try {\n const providerBrick = await getProviderBrick(handler.useProvider);\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n providerBrick,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(httpErrorToString(error));\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 target: HTMLElement,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n if (typeof (target as any)[method] !== \"function\") {\n // eslint-disable-next-line no-console\n console.error(\"target has no method:\", {\n target,\n method: method,\n });\n return;\n }\n\n const task = async (): Promise<unknown> => {\n let computedArgs = argsFactory(\n handler.args,\n runtimeContext,\n event,\n options\n );\n if (isUseProviderHandler(handler)) {\n computedArgs = await getArgsOfFlowApi(\n handler.useProvider,\n computedArgs,\n method\n );\n }\n return (target 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 let poll: ProviderPollOptions | undefined;\n if (isUseProviderHandler(handler)) {\n poll = computeRealValue(handler.poll, { ...runtimeContext, event }) as\n | ProviderPollOptions\n | undefined;\n }\n\n if (poll?.enabled) {\n startPoll(task, pollableCallback, poll);\n } else {\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}\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 handleWindowAction(\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 handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\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\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\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\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\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bindListeners.js","names":["isEvaluable","checkIf","computeRealValue","getHistory","getProviderBrick","startPoll","isPreEvaluated","setProperties","applyMode","applyTheme","getTplHostElement","getTplStateStore","handleHttpError","httpErrorToString","getArgsOfFlowApi","Notification","getFormStateStore","isObject","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","_objectSpread","else","object","split","handleHistoryAction","args","callback","handleWindowAction","handleLocationAction","handleStorageAction","preventDefault","handleConsoleAction","handleMessageAction","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","theme","console","error","handleUseProviderAction","handleCustomAction","_x","_x2","_x3","_x4","_handleUseProviderAction","apply","arguments","_asyncToGenerator","providerBrick","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","_x5","_x6","_x7","_x8","_x9","_x10","_x11","_brickCallback","options","_poll","task","_ref2","computedArgs","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","poll","enabled","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","url","features","window","open","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","isArray","every","ctxStore","tplStateStore","formStateStore","location","assign","storage","localStorage","sessionStorage","setItem","JSON","stringify","removeItem","show","message"],"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} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\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, httpErrorToString } from \"../handleHttpError.js\";\nimport { getArgsOfFlowApi } from \"./data/FlowApi.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { isObject } from \"@next-core/utils/general\";\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 handleWindowAction(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\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\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\nasync function handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n try {\n const providerBrick = await getProviderBrick(handler.useProvider);\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n providerBrick,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(httpErrorToString(error));\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 target: HTMLElement,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n if (typeof (target as any)[method] !== \"function\") {\n // eslint-disable-next-line no-console\n console.error(\"target has no method:\", {\n target,\n method: method,\n });\n return;\n }\n\n const task = async (): Promise<unknown> => {\n let computedArgs = argsFactory(\n handler.args,\n runtimeContext,\n event,\n options\n );\n if (isUseProviderHandler(handler)) {\n computedArgs = await getArgsOfFlowApi(\n handler.useProvider,\n computedArgs,\n method\n );\n }\n return (target 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 let poll: ProviderPollOptions | undefined;\n if (isUseProviderHandler(handler)) {\n poll = computeRealValue(handler.poll, { ...runtimeContext, event }) as\n | ProviderPollOptions\n | undefined;\n }\n\n if (poll?.enabled) {\n startPoll(task, pollableCallback, poll);\n } else {\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}\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 handleWindowAction(\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 batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore,\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 batchUpdate(\n args,\n batch,\n \"replace\",\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\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\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"],"mappings":"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"}
|
|
@@ -16,6 +16,8 @@ export class DataStore {
|
|
|
16
16
|
_defineProperty(this, "changeEventType", void 0);
|
|
17
17
|
_defineProperty(this, "pendingStack", []);
|
|
18
18
|
_defineProperty(this, "hostBrick", void 0);
|
|
19
|
+
_defineProperty(this, "batchUpdate", false);
|
|
20
|
+
_defineProperty(this, "batchUpdateContextsNames", []);
|
|
19
21
|
this.type = type;
|
|
20
22
|
this.changeEventType = this.type === "FORM_STATE" ? "formstate.change" : this.type === "STATE" ? "state.change" : "context.change";
|
|
21
23
|
this.hostBrick = hostBrick;
|
|
@@ -24,6 +26,54 @@ export class DataStore {
|
|
|
24
26
|
var _this$data$get;
|
|
25
27
|
return (_this$data$get = this.data.get(name)) === null || _this$data$get === void 0 ? void 0 : _this$data$get.value;
|
|
26
28
|
}
|
|
29
|
+
getAffectListByContext(name) {
|
|
30
|
+
var affectNames = [name];
|
|
31
|
+
this.data.forEach((value, key) => {
|
|
32
|
+
if (value.deps) {
|
|
33
|
+
var isInDeps = value.deps.some(item => affectNames.includes(item));
|
|
34
|
+
isInDeps && affectNames.push(key) && affectNames.push(...this.getAffectListByContext(key));
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
affectNames.shift();
|
|
38
|
+
return [...new Set(affectNames)];
|
|
39
|
+
}
|
|
40
|
+
updateValues(values, method, argsFactory) {
|
|
41
|
+
this.batchUpdate = true;
|
|
42
|
+
this.batchUpdateContextsNames = values.map(item => item.name);
|
|
43
|
+
if ([...new Set(this.batchUpdateContextsNames)].length !== this.batchUpdateContextsNames.length) {
|
|
44
|
+
throw new Error("Batch update not allow to update same item");
|
|
45
|
+
}
|
|
46
|
+
var updateContexts = {};
|
|
47
|
+
var affectContexts = {};
|
|
48
|
+
var affectDepsContextNames = [];
|
|
49
|
+
values.forEach(arg => {
|
|
50
|
+
var {
|
|
51
|
+
name,
|
|
52
|
+
value
|
|
53
|
+
} = argsFactory([arg]);
|
|
54
|
+
var updateContextItem = this.data.get(name);
|
|
55
|
+
affectDepsContextNames.push(...this.getAffectListByContext(name));
|
|
56
|
+
updateContextItem && (updateContexts[name] = updateContextItem);
|
|
57
|
+
this.updateValue(name, value, method);
|
|
58
|
+
});
|
|
59
|
+
affectDepsContextNames.filter(item => !updateContexts[item]).forEach(name => {
|
|
60
|
+
var affectContextItem = this.data.get(name);
|
|
61
|
+
affectContextItem && (affectContexts[name] = affectContextItem);
|
|
62
|
+
});
|
|
63
|
+
var triggerEvent = contexts => {
|
|
64
|
+
for (var key in contexts) {
|
|
65
|
+
var _context$eventTarget;
|
|
66
|
+
var context = contexts[key];
|
|
67
|
+
(_context$eventTarget = context.eventTarget) === null || _context$eventTarget === void 0 ? void 0 : _context$eventTarget.dispatchEvent(new CustomEvent(this.changeEventType, {
|
|
68
|
+
detail: context.value
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
triggerEvent(updateContexts);
|
|
73
|
+
triggerEvent(affectContexts);
|
|
74
|
+
this.batchUpdate = false;
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
27
77
|
updateValue(name, value, method, callback, callbackRuntimeContext) {
|
|
28
78
|
var item = this.data.get(name);
|
|
29
79
|
if (!item) {
|
|
@@ -85,6 +135,7 @@ export class DataStore {
|
|
|
85
135
|
item.value = value;
|
|
86
136
|
}
|
|
87
137
|
}
|
|
138
|
+
if (this.batchUpdate) return;
|
|
88
139
|
item.eventTarget.dispatchEvent(new CustomEvent(this.changeEventType, {
|
|
89
140
|
detail: item.value
|
|
90
141
|
}));
|
|
@@ -173,15 +224,17 @@ export class DataStore {
|
|
|
173
224
|
// This is required for tracking context, even if no `onChange` is specified.
|
|
174
225
|
eventTarget: new EventTarget(),
|
|
175
226
|
load,
|
|
176
|
-
loaded: !isLazyResolve
|
|
227
|
+
loaded: !isLazyResolve,
|
|
228
|
+
deps: []
|
|
177
229
|
};
|
|
178
230
|
if (dataConf.onChange) {
|
|
179
231
|
newData.eventTarget.addEventListener(_this3.changeEventType, listenerFactory(dataConf.onChange, runtimeContext));
|
|
180
232
|
}
|
|
181
233
|
if (dataConf.track) {
|
|
182
234
|
var deps = strictCollectMemberUsage(load ? dataConf.resolve : dataConf.value, _this3.type);
|
|
235
|
+
!load && (newData.deps = [...deps]);
|
|
183
236
|
for (var dep of deps) {
|
|
184
|
-
_this3.onChange(dep, () => {
|
|
237
|
+
_this3.onChange(dep, _this3.batchAddListener(() => {
|
|
185
238
|
if (load) {
|
|
186
239
|
_this3.updateValue(dataConf.name, {
|
|
187
240
|
cache: "default"
|
|
@@ -189,7 +242,7 @@ export class DataStore {
|
|
|
189
242
|
} else {
|
|
190
243
|
_this3.updateValue(dataConf.name, computeRealValue(dataConf.value, runtimeContext), "replace");
|
|
191
244
|
}
|
|
192
|
-
});
|
|
245
|
+
}, dataConf));
|
|
193
246
|
}
|
|
194
247
|
}
|
|
195
248
|
if (_this3.data.has(dataConf.name)) {
|
|
@@ -199,5 +252,13 @@ export class DataStore {
|
|
|
199
252
|
return true;
|
|
200
253
|
})();
|
|
201
254
|
}
|
|
255
|
+
batchAddListener(listener, contextConf) {
|
|
256
|
+
return event => {
|
|
257
|
+
if (this.batchUpdate && this.batchUpdateContextsNames.includes(contextConf.name)) {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
listener(event);
|
|
261
|
+
};
|
|
262
|
+
}
|
|
202
263
|
}
|
|
203
264
|
//# sourceMappingURL=DataStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataStore.js","names":["hasOwnProperty","isObject","strictCollectMemberUsage","eventCallbackFactory","listenerFactory","asyncCheckIf","asyncComputeRealValue","computeRealValue","resolveData","resolveDataStore","handleHttpError","DataStore","constructor","type","hostBrick","_defineProperty","Map","changeEventType","getValue","name","_this$data$get","data","get","value","updateValue","method","callback","callbackRuntimeContext","item","Error","concat","load","promise","loaded","Promise","resolve","loading","_objectSpread","cache","then","val","eventTarget","dispatchEvent","CustomEvent","detail","err","error","callbackFactory","Object","assign","console","warn","define","dataConfs","runtimeContext","asyncHostProperties","Array","isArray","length","pending","dataConf","pendingStack","push","onChange","dataName","listener","_this$data$get2","addEventListener","waitFor","dataNames","_this","_asyncToGenerator","_loop","pendingContexts","all","map","ctx","p","waitForAll","_this2","pendingResult","_this3","expose","hostProps","isLazyResolve","undefined","resolveConf","transform","_ref","options","_x","apply","arguments","lazy","newData","EventTarget","track","deps","dep","has","set"],"sources":["../../../../src/internal/data/DataStore.ts"],"sourcesContent":["import type { BrickEventHandlerCallback, ContextConf } from \"@next-core/types\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport { eventCallbackFactory, listenerFactory } from \"../bindListeners.js\";\nimport { asyncCheckIf } from \"../compute/checkIf.js\";\nimport {\n asyncComputeRealValue,\n computeRealValue,\n} from \"../compute/computeRealValue.js\";\nimport { ResolveOptions, resolveData } from \"./resolveData.js\";\nimport { resolveDataStore } from \"./resolveDataStore.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n RuntimeContext,\n} from \"../interfaces.js\";\nimport { handleHttpError } from \"../../handleHttpError.js\";\n\nexport type DataStoreType = \"CTX\" | \"STATE\" | \"FORM_STATE\";\n\nexport interface DataStoreItem {\n value: unknown;\n eventTarget: EventTarget;\n loaded?: boolean;\n loading?: Promise<unknown>;\n load?: (options?: ResolveOptions) => Promise<unknown>;\n}\n\nexport class DataStore<T extends DataStoreType = \"CTX\"> {\n private readonly type: T;\n private readonly data = new Map<string, DataStoreItem>();\n private readonly changeEventType: string;\n private readonly pendingStack: Array<ReturnType<typeof resolveDataStore>> =\n [];\n public readonly hostBrick?: RuntimeBrick;\n\n constructor(type: T, hostBrick?: RuntimeBrick) {\n this.type = type;\n this.changeEventType =\n this.type === \"FORM_STATE\"\n ? \"formstate.change\"\n : this.type === \"STATE\"\n ? \"state.change\"\n : \"context.change\";\n this.hostBrick = hostBrick;\n }\n\n getValue(name: string): unknown {\n return this.data.get(name)?.value;\n }\n\n updateValue(\n name: string,\n value: unknown,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\",\n callback?: BrickEventHandlerCallback,\n callbackRuntimeContext?: RuntimeContext\n ): void {\n const item = this.data.get(name);\n if (!item) {\n throw new Error(`${this.type} '${name}' is not defined`);\n }\n\n if (method === \"refresh\" || method === \"load\") {\n if (!item.load) {\n throw new Error(\n `You can not ${method} \"${this.type}.${name}\" which has no resolve`\n );\n }\n\n let promise: Promise<unknown> | undefined;\n if (method === \"load\") {\n // Try to reuse previous request when calling `load`.\n if (item.loaded) {\n promise = Promise.resolve(item.value);\n } else if (item.loading) {\n promise = item.loading;\n }\n }\n\n if (!promise) {\n promise = item.loading = item.load({\n cache: method === \"load\" ? \"default\" : \"reload\",\n ...(value as ResolveOptions),\n });\n // Do not use the chained promise, since the callbacks need the original promise.\n promise.then(\n (val) => {\n item.loaded = true;\n item.value = val;\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n },\n (err) => {\n // Let users override error handling.\n if (!callback?.error) {\n handleHttpError(err);\n }\n }\n );\n }\n\n if (callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n callbackRuntimeContext!\n );\n\n promise.then(\n (val) => {\n callbackFactory(\"success\")({ value: val });\n callbackFactory(\"finally\")();\n },\n (err) => {\n callbackFactory(\"error\")(err);\n callbackFactory(\"finally\")();\n }\n );\n }\n\n return;\n }\n\n if (method === \"replace\") {\n item.value = value;\n } else {\n if (isObject(item.value)) {\n Object.assign(item.value, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `Non-object current value of \"${this.type}.${name}\" for \"context.assign\", try \"context.replace\" instead.`\n );\n item.value = value;\n }\n }\n\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n }\n\n define(\n dataConfs: ContextConf[] | undefined,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): void {\n if (Array.isArray(dataConfs) && dataConfs.length > 0) {\n const pending = resolveDataStore(\n dataConfs,\n (dataConf: ContextConf) =>\n this.resolve(dataConf, runtimeContext, asyncHostProperties),\n this.type\n );\n this.pendingStack.push(pending);\n }\n }\n\n onChange(dataName: string, listener: EventListener): void {\n this.data\n .get(dataName)\n ?.eventTarget.addEventListener(this.changeEventType, listener);\n }\n\n async waitFor(dataNames: string[] | Set<string>): Promise<void> {\n for (const { pendingContexts } of this.pendingStack) {\n await Promise.all(\n [...dataNames].map((ctx) => {\n const p = pendingContexts.get(ctx);\n return p;\n })\n );\n }\n }\n\n async waitForAll(): Promise<void> {\n for (const { pendingResult } of this.pendingStack) {\n await pendingResult;\n }\n }\n\n private async resolve(\n dataConf: ContextConf,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): Promise<boolean> {\n if (!(await asyncCheckIf(dataConf, runtimeContext))) {\n return false;\n }\n let value: unknown;\n if (\n asyncHostProperties &&\n (this.type === \"STATE\" ? dataConf.expose : this.type === \"FORM_STATE\")\n ) {\n const hostProps = await asyncHostProperties;\n if (hasOwnProperty(hostProps, dataConf.name)) {\n value = hostProps[dataConf.name];\n }\n }\n let load: DataStoreItem[\"load\"];\n let isLazyResolve: boolean | undefined = false;\n if (value === undefined) {\n if (dataConf.resolve) {\n const resolveConf = {\n transform: \"value\",\n ...dataConf.resolve,\n };\n if (await asyncCheckIf(dataConf.resolve, runtimeContext)) {\n load = async (options) =>\n (\n (await resolveData(resolveConf, runtimeContext, options)) as {\n value: unknown;\n }\n ).value;\n isLazyResolve = dataConf.resolve.lazy;\n if (!isLazyResolve) {\n value = await load();\n }\n } else if (!hasOwnProperty(dataConf, \"value\")) {\n return false;\n }\n }\n if ((!load || isLazyResolve) && dataConf.value !== undefined) {\n // If the context has no resolve, just use its `value`.\n // Or if the resolve is ignored or lazy, use its `value` as a fallback.\n value = await asyncComputeRealValue(dataConf.value, runtimeContext);\n }\n }\n\n const newData: DataStoreItem = {\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n load,\n loaded: !isLazyResolve,\n };\n\n if (dataConf.onChange) {\n newData.eventTarget.addEventListener(\n this.changeEventType,\n listenerFactory(dataConf.onChange, runtimeContext)\n );\n }\n\n if (dataConf.track) {\n const deps = strictCollectMemberUsage(\n load ? dataConf.resolve : dataConf.value,\n this.type\n );\n for (const dep of deps) {\n this.onChange(dep, () => {\n if (load) {\n this.updateValue(dataConf.name, { cache: \"default\" }, \"refresh\");\n } else {\n this.updateValue(\n dataConf.name,\n computeRealValue(dataConf.value, runtimeContext),\n \"replace\"\n );\n }\n });\n }\n }\n\n if (this.data.has(dataConf.name)) {\n throw new Error(\n `${this.type} '${dataConf.name}' has already been declared`\n );\n }\n this.data.set(dataConf.name, newData);\n\n return true;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataStore.js","names":["hasOwnProperty","isObject","strictCollectMemberUsage","eventCallbackFactory","listenerFactory","asyncCheckIf","asyncComputeRealValue","computeRealValue","resolveData","resolveDataStore","handleHttpError","DataStore","constructor","type","hostBrick","_defineProperty","Map","changeEventType","getValue","name","_this$data$get","data","get","value","getAffectListByContext","affectNames","forEach","key","deps","isInDeps","some","item","includes","push","shift","Set","updateValues","values","method","argsFactory","batchUpdate","batchUpdateContextsNames","map","length","Error","updateContexts","affectContexts","affectDepsContextNames","arg","updateContextItem","updateValue","filter","affectContextItem","triggerEvent","contexts","_context$eventTarget","context","eventTarget","dispatchEvent","CustomEvent","detail","callback","callbackRuntimeContext","concat","load","promise","loaded","Promise","resolve","loading","_objectSpread","cache","then","val","err","error","callbackFactory","Object","assign","console","warn","define","dataConfs","runtimeContext","asyncHostProperties","Array","isArray","pending","dataConf","pendingStack","onChange","dataName","listener","_this$data$get2","addEventListener","waitFor","dataNames","_this","_asyncToGenerator","_loop","pendingContexts","all","ctx","p","waitForAll","_this2","pendingResult","_this3","expose","hostProps","isLazyResolve","undefined","resolveConf","transform","_ref","options","_x","apply","arguments","lazy","newData","EventTarget","track","dep","batchAddListener","has","set","contextConf","event"],"sources":["../../../../src/internal/data/DataStore.ts"],"sourcesContent":["import type {\n BatchUpdateContextItem,\n BrickEventHandlerCallback,\n ContextConf,\n} from \"@next-core/types\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport { eventCallbackFactory, listenerFactory } from \"../bindListeners.js\";\nimport { asyncCheckIf } from \"../compute/checkIf.js\";\nimport {\n asyncComputeRealValue,\n computeRealValue,\n} from \"../compute/computeRealValue.js\";\nimport { ResolveOptions, resolveData } from \"./resolveData.js\";\nimport { resolveDataStore } from \"./resolveDataStore.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n RuntimeContext,\n} from \"../interfaces.js\";\nimport { handleHttpError } from \"../../handleHttpError.js\";\n\nexport type DataStoreType = \"CTX\" | \"STATE\" | \"FORM_STATE\";\n\nexport interface DataStoreItem {\n value: unknown;\n eventTarget: EventTarget;\n loaded?: boolean;\n loading?: Promise<unknown>;\n load?: (options?: ResolveOptions) => Promise<unknown>;\n deps: string[];\n}\n\nexport class DataStore<T extends DataStoreType = \"CTX\"> {\n private readonly type: T;\n private readonly data = new Map<string, DataStoreItem>();\n private readonly changeEventType: string;\n private readonly pendingStack: Array<ReturnType<typeof resolveDataStore>> =\n [];\n public readonly hostBrick?: RuntimeBrick;\n public batchUpdate = false;\n public batchUpdateContextsNames: string[] = [];\n\n constructor(type: T, hostBrick?: RuntimeBrick) {\n this.type = type;\n this.changeEventType =\n this.type === \"FORM_STATE\"\n ? \"formstate.change\"\n : this.type === \"STATE\"\n ? \"state.change\"\n : \"context.change\";\n this.hostBrick = hostBrick;\n }\n\n getValue(name: string): unknown {\n return this.data.get(name)?.value;\n }\n\n getAffectListByContext(name: string): string[] {\n const affectNames = [name];\n this.data.forEach((value, key) => {\n if (value.deps) {\n const isInDeps = value.deps.some((item) => affectNames.includes(item));\n isInDeps &&\n affectNames.push(key) &&\n affectNames.push(...this.getAffectListByContext(key));\n }\n });\n affectNames.shift();\n return [...new Set(affectNames)];\n }\n\n updateValues(\n values: BatchUpdateContextItem[],\n method: \"assign\" | \"replace\",\n argsFactory: (arg: unknown[]) => BatchUpdateContextItem\n ): void {\n this.batchUpdate = true;\n this.batchUpdateContextsNames = values.map((item) => item.name);\n if (\n [...new Set(this.batchUpdateContextsNames)].length !==\n this.batchUpdateContextsNames.length\n ) {\n throw new Error(`Batch update not allow to update same item`);\n }\n\n const updateContexts: Record<string, DataStoreItem> = {};\n const affectContexts: Record<string, DataStoreItem> = {};\n const affectDepsContextNames: string[] = [];\n\n values.forEach((arg) => {\n const { name, value } = argsFactory([arg]);\n const updateContextItem = this.data.get(name);\n affectDepsContextNames.push(...this.getAffectListByContext(name));\n updateContextItem && (updateContexts[name] = updateContextItem);\n this.updateValue(name as string, value, method);\n });\n\n affectDepsContextNames\n .filter((item) => !updateContexts[item])\n .forEach((name) => {\n const affectContextItem = this.data.get(name);\n affectContextItem && (affectContexts[name] = affectContextItem);\n });\n\n const triggerEvent = (contexts: Record<string, DataStoreItem>): void => {\n for (const key in contexts) {\n const context = contexts[key];\n context.eventTarget?.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: context.value,\n })\n );\n }\n };\n\n triggerEvent(updateContexts);\n triggerEvent(affectContexts);\n\n this.batchUpdate = false;\n\n return;\n }\n\n updateValue(\n name: string,\n value: unknown,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\",\n callback?: BrickEventHandlerCallback,\n callbackRuntimeContext?: RuntimeContext\n ): void {\n const item = this.data.get(name);\n if (!item) {\n throw new Error(`${this.type} '${name}' is not defined`);\n }\n\n if (method === \"refresh\" || method === \"load\") {\n if (!item.load) {\n throw new Error(\n `You can not ${method} \"${this.type}.${name}\" which has no resolve`\n );\n }\n\n let promise: Promise<unknown> | undefined;\n if (method === \"load\") {\n // Try to reuse previous request when calling `load`.\n if (item.loaded) {\n promise = Promise.resolve(item.value);\n } else if (item.loading) {\n promise = item.loading;\n }\n }\n\n if (!promise) {\n promise = item.loading = item.load({\n cache: method === \"load\" ? \"default\" : \"reload\",\n ...(value as ResolveOptions),\n });\n // Do not use the chained promise, since the callbacks need the original promise.\n promise.then(\n (val) => {\n item.loaded = true;\n item.value = val;\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n },\n (err) => {\n // Let users override error handling.\n if (!callback?.error) {\n handleHttpError(err);\n }\n }\n );\n }\n\n if (callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n callbackRuntimeContext!\n );\n\n promise.then(\n (val) => {\n callbackFactory(\"success\")({ value: val });\n callbackFactory(\"finally\")();\n },\n (err) => {\n callbackFactory(\"error\")(err);\n callbackFactory(\"finally\")();\n }\n );\n }\n\n return;\n }\n\n if (method === \"replace\") {\n item.value = value;\n } else {\n if (isObject(item.value)) {\n Object.assign(item.value, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `Non-object current value of \"${this.type}.${name}\" for \"context.assign\", try \"context.replace\" instead.`\n );\n item.value = value;\n }\n }\n\n if (this.batchUpdate) return;\n\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n }\n\n define(\n dataConfs: ContextConf[] | undefined,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): void {\n if (Array.isArray(dataConfs) && dataConfs.length > 0) {\n const pending = resolveDataStore(\n dataConfs,\n (dataConf: ContextConf) =>\n this.resolve(dataConf, runtimeContext, asyncHostProperties),\n this.type\n );\n this.pendingStack.push(pending);\n }\n }\n\n onChange(dataName: string, listener: EventListener): void {\n this.data\n .get(dataName)\n ?.eventTarget.addEventListener(this.changeEventType, listener);\n }\n\n async waitFor(dataNames: string[] | Set<string>): Promise<void> {\n for (const { pendingContexts } of this.pendingStack) {\n await Promise.all(\n [...dataNames].map((ctx) => {\n const p = pendingContexts.get(ctx);\n return p;\n })\n );\n }\n }\n\n async waitForAll(): Promise<void> {\n for (const { pendingResult } of this.pendingStack) {\n await pendingResult;\n }\n }\n\n private async resolve(\n dataConf: ContextConf,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): Promise<boolean> {\n if (!(await asyncCheckIf(dataConf, runtimeContext))) {\n return false;\n }\n let value: unknown;\n if (\n asyncHostProperties &&\n (this.type === \"STATE\" ? dataConf.expose : this.type === \"FORM_STATE\")\n ) {\n const hostProps = await asyncHostProperties;\n if (hasOwnProperty(hostProps, dataConf.name)) {\n value = hostProps[dataConf.name];\n }\n }\n let load: DataStoreItem[\"load\"];\n let isLazyResolve: boolean | undefined = false;\n if (value === undefined) {\n if (dataConf.resolve) {\n const resolveConf = {\n transform: \"value\",\n ...dataConf.resolve,\n };\n if (await asyncCheckIf(dataConf.resolve, runtimeContext)) {\n load = async (options) =>\n (\n (await resolveData(resolveConf, runtimeContext, options)) as {\n value: unknown;\n }\n ).value;\n isLazyResolve = dataConf.resolve.lazy;\n if (!isLazyResolve) {\n value = await load();\n }\n } else if (!hasOwnProperty(dataConf, \"value\")) {\n return false;\n }\n }\n if ((!load || isLazyResolve) && dataConf.value !== undefined) {\n // If the context has no resolve, just use its `value`.\n // Or if the resolve is ignored or lazy, use its `value` as a fallback.\n value = await asyncComputeRealValue(dataConf.value, runtimeContext);\n }\n }\n\n const newData: DataStoreItem = {\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n load,\n loaded: !isLazyResolve,\n deps: [],\n };\n\n if (dataConf.onChange) {\n newData.eventTarget.addEventListener(\n this.changeEventType,\n listenerFactory(dataConf.onChange, runtimeContext)\n );\n }\n\n if (dataConf.track) {\n const deps = strictCollectMemberUsage(\n load ? dataConf.resolve : dataConf.value,\n this.type\n );\n !load && (newData.deps = [...deps]);\n for (const dep of deps) {\n this.onChange(\n dep,\n this.batchAddListener(() => {\n if (load) {\n this.updateValue(dataConf.name, { cache: \"default\" }, \"refresh\");\n } else {\n this.updateValue(\n dataConf.name,\n computeRealValue(dataConf.value, runtimeContext),\n \"replace\"\n );\n }\n }, dataConf)\n );\n }\n }\n\n if (this.data.has(dataConf.name)) {\n throw new Error(\n `${this.type} '${dataConf.name}' has already been declared`\n );\n }\n this.data.set(dataConf.name, newData);\n\n return true;\n }\n\n batchAddListener(\n listener: EventListener,\n contextConf: ContextConf\n ): EventListener {\n return (event: Event | CustomEvent): void => {\n if (\n this.batchUpdate &&\n this.batchUpdateContextsNames.includes(contextConf.name)\n ) {\n return;\n }\n listener(event);\n };\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BrickEventHandlerCallback, ContextConf } from "@next-core/types";
|
|
1
|
+
import type { BatchUpdateContextItem, BrickEventHandlerCallback, ContextConf } from "@next-core/types";
|
|
2
2
|
import { ResolveOptions } from "./resolveData.js";
|
|
3
3
|
import type { AsyncProperties, RuntimeBrick, RuntimeContext } from "../interfaces.js";
|
|
4
4
|
export type DataStoreType = "CTX" | "STATE" | "FORM_STATE";
|
|
@@ -8,6 +8,7 @@ export interface DataStoreItem {
|
|
|
8
8
|
loaded?: boolean;
|
|
9
9
|
loading?: Promise<unknown>;
|
|
10
10
|
load?: (options?: ResolveOptions) => Promise<unknown>;
|
|
11
|
+
deps: string[];
|
|
11
12
|
}
|
|
12
13
|
export declare class DataStore<T extends DataStoreType = "CTX"> {
|
|
13
14
|
private readonly type;
|
|
@@ -15,12 +16,17 @@ export declare class DataStore<T extends DataStoreType = "CTX"> {
|
|
|
15
16
|
private readonly changeEventType;
|
|
16
17
|
private readonly pendingStack;
|
|
17
18
|
readonly hostBrick?: RuntimeBrick;
|
|
19
|
+
batchUpdate: boolean;
|
|
20
|
+
batchUpdateContextsNames: string[];
|
|
18
21
|
constructor(type: T, hostBrick?: RuntimeBrick);
|
|
19
22
|
getValue(name: string): unknown;
|
|
23
|
+
getAffectListByContext(name: string): string[];
|
|
24
|
+
updateValues(values: BatchUpdateContextItem[], method: "assign" | "replace", argsFactory: (arg: unknown[]) => BatchUpdateContextItem): void;
|
|
20
25
|
updateValue(name: string, value: unknown, method: "assign" | "replace" | "refresh" | "load", callback?: BrickEventHandlerCallback, callbackRuntimeContext?: RuntimeContext): void;
|
|
21
26
|
define(dataConfs: ContextConf[] | undefined, runtimeContext: RuntimeContext, asyncHostProperties?: AsyncProperties): void;
|
|
22
27
|
onChange(dataName: string, listener: EventListener): void;
|
|
23
28
|
waitFor(dataNames: string[] | Set<string>): Promise<void>;
|
|
24
29
|
waitForAll(): Promise<void>;
|
|
25
30
|
private resolve;
|
|
31
|
+
batchAddListener(listener: EventListener, contextConf: ContextConf): EventListener;
|
|
26
32
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-core/runtime",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/runtime",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"repository": {
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
"@next-api-sdk/micro-app-standalone-sdk": "^1.1.0",
|
|
50
50
|
"@next-core/cook": "^2.1.1",
|
|
51
51
|
"@next-core/http": "^1.0.5",
|
|
52
|
-
"@next-core/i18n": "^1.0.
|
|
53
|
-
"@next-core/inject": "^1.0.
|
|
52
|
+
"@next-core/i18n": "^1.0.15",
|
|
53
|
+
"@next-core/inject": "^1.0.11",
|
|
54
54
|
"@next-core/loader": "^1.3.1",
|
|
55
55
|
"@next-core/supply": "^2.0.5",
|
|
56
|
-
"@next-core/types": "^1.
|
|
57
|
-
"@next-core/utils": "^1.4.
|
|
56
|
+
"@next-core/types": "^1.3.0",
|
|
57
|
+
"@next-core/utils": "^1.4.3",
|
|
58
58
|
"@ungap/event-target": "^0.2.3",
|
|
59
59
|
"compare-versions": "^5.0.3",
|
|
60
60
|
"history": "^4.10.1",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"@next-core/build-next-libs": "^1.0.4",
|
|
68
68
|
"@next-core/test-next": "^1.0.5"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "e00033a6393498f2c9b18549d69561a38dedaa15"
|
|
71
71
|
}
|