@next-core/storyboard 0.2.4 → 0.3.1

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/index.js CHANGED
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _interfaces = require("./interfaces");
8
-
9
7
  Object.keys(_interfaces).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _interfaces[key]) return;
@@ -16,9 +14,7 @@ Object.keys(_interfaces).forEach(function (key) {
16
14
  }
17
15
  });
18
16
  });
19
-
20
17
  var _parseStoryboard = require("./parseStoryboard");
21
-
22
18
  Object.keys(_parseStoryboard).forEach(function (key) {
23
19
  if (key === "default" || key === "__esModule") return;
24
20
  if (key in exports && exports[key] === _parseStoryboard[key]) return;
@@ -29,9 +25,7 @@ Object.keys(_parseStoryboard).forEach(function (key) {
29
25
  }
30
26
  });
31
27
  });
32
-
33
28
  var _traverseStoryboard = require("./traverseStoryboard");
34
-
35
29
  Object.keys(_traverseStoryboard).forEach(function (key) {
36
30
  if (key === "default" || key === "__esModule") return;
37
31
  if (key in exports && exports[key] === _traverseStoryboard[key]) return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./interfaces\";\nexport * from \"./parseStoryboard\";\nexport * from \"./traverseStoryboard\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./interfaces\";\nexport * from \"./parseStoryboard\";\nexport * from \"./traverseStoryboard\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","names":[],"sources":["../../src/interfaces.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n BrickMenuConf,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MessageConf,\n ResolveConf,\n RouteConf,\n ScrollIntoViewConf,\n SlotConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\n\nexport type StoryboardNode =\n | StoryboardNodeRoot\n | StoryboardNodeRoute\n | StoryboardNodeTemplate\n | StoryboardNodeBrick\n | StoryboardNodeSlot\n | StoryboardNodeContext\n | StoryboardNodeResolvable\n | StoryboardNodeMenu\n | StoryboardNodeLifeCycle\n | StoryboardNodeEvent\n | StoryboardNodeEventHandler\n | StoryboardNodeConditionalEvent\n | StoryboardNodeEventCallback\n | StoryboardNodeCondition\n | StoryboardNodeUseBrickEntry\n | StoryboardNodeUseBackendEntry;\n\nexport interface StoryboardNodeRoot {\n type: \"Root\";\n raw: Storyboard;\n routes: StoryboardNodeRoute[];\n templates: StoryboardNodeTemplate[];\n}\n\nexport interface StoryboardNodeTemplate {\n type: \"Template\";\n raw: CustomTemplate | CustomTemplateConstructor;\n bricks?: StoryboardNodeBrick[];\n context?: StoryboardNodeContext[];\n}\n\nexport interface StoryboardNodeRoute {\n type: \"Route\";\n raw: RouteConf;\n context?: StoryboardNodeContext[];\n redirect?: StoryboardNodeResolvable;\n menu?: StoryboardNodeMenu;\n providers?: StoryboardNodeBrick[];\n defineResolves?: StoryboardNodeResolvable[];\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeBrick =\n | StoryboardNodeNormalBrick\n | StoryboardNodeUseBrick;\n\nexport interface StoryboardNodeBrickBase {\n type: \"Brick\";\n raw: BrickConf | UseSingleBrickConf;\n isUseBrick?: boolean;\n if?: StoryboardNodeCondition;\n events?: StoryboardNodeEvent[];\n lifeCycle?: StoryboardNodeLifeCycle[];\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n context?: StoryboardNodeContext[];\n children: StoryboardNodeSlot[];\n}\n\nexport interface StoryboardNodeNormalBrick extends StoryboardNodeBrickBase {\n raw: BrickConf;\n isUseBrick?: false;\n}\n\nexport interface StoryboardNodeUseBrick extends StoryboardNodeBrickBase {\n raw: UseSingleBrickConf;\n isUseBrick: true;\n}\n\nexport interface StoryboardNodeUseBrickEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBrickEntry\";\n rawKey: \"useBrick\";\n}\n\nexport interface StoryboardNodeUseBackendEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBackendEntry\";\n rawKey: \"useBackend\";\n}\n\nexport interface StoryboardNodeUseEntryBase {\n rawContainer: Record<string, unknown>;\n children: StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeCondition =\n | StoryboardNodeLiteralCondition\n | StoryboardNodeResolvableCondition;\n\nexport interface StoryboardNodeLiteralCondition {\n type: \"LiteralCondition\";\n}\n\nexport interface StoryboardNodeResolvableCondition {\n type: \"ResolvableCondition\";\n resolve: StoryboardNodeResolvable | undefined;\n}\n\nexport interface StoryboardNodeSlot {\n type: \"Slot\";\n raw: SlotConf;\n slot: string;\n childrenType: \"Route\" | \"Brick\";\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport interface StoryboardNodeContext {\n type: \"Context\";\n raw: ContextConf | CustomTemplateState;\n resolve?: StoryboardNodeResolvable;\n onChange?: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeResolvable {\n type: \"Resolvable\";\n raw: ResolveConf;\n isConditional?: boolean;\n}\n\nexport type StoryboardNodeMenu =\n | StoryboardNodeFalseMenu\n | StoryboardNodeStaticMenu\n | StoryboardNodeBrickMenu\n | StoryboardNodeResolvableMenu;\n\nexport interface StoryboardNodeFalseMenu {\n type: \"FalseMenu\";\n}\n\nexport interface StoryboardNodeStaticMenu {\n type: \"StaticMenu\";\n}\n\nexport interface StoryboardNodeBrickMenu {\n type: \"BrickMenu\";\n raw: BrickMenuConf;\n brick: StoryboardNodeBrick;\n}\n\nexport interface StoryboardNodeResolvableMenu {\n type: \"ResolvableMenu\";\n resolve: StoryboardNodeResolvable;\n}\n\nexport type StoryboardNodeLifeCycle =\n | StoryboardNodeResolveLifeCycle\n | StoryboardNodeSimpleLifeCycle\n | StoryboardNodeConditionalLifeCycle\n | StoryboardNodeUnknownLifeCycle;\n\nexport interface StoryboardNodeResolveLifeCycle {\n type: \"ResolveLifeCycle\";\n rawContainer: BrickLifeCycle;\n rawKey: \"useResolves\";\n resolves: StoryboardNodeResolvable[] | undefined;\n}\n\nexport interface StoryboardNodeSimpleLifeCycle {\n type: \"SimpleLifeCycle\";\n name:\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMessageClose\"\n | \"onBeforePageLoad\"\n | \"onBeforePageLeave\"\n | \"onMediaChange\";\n rawContainer: BrickLifeCycle;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeConditionalLifeCycle {\n type: \"ConditionalLifeCycle\";\n name: \"onMessage\" | \"onScrollIntoView\";\n events: StoryboardNodeConditionalEvent[] | undefined;\n}\n\nexport interface StoryboardNodeUnknownLifeCycle {\n type: \"UnknownLifeCycle\";\n}\n\nexport interface StoryboardNodeEvent {\n type: \"Event\";\n rawContainer: BrickEventsMap;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventHandler {\n type: \"EventHandler\";\n raw: BrickEventHandler;\n callback: StoryboardNodeEventCallback[] | undefined;\n}\n\nexport interface StoryboardNodeConditionalEvent {\n type: \"ConditionalEvent\";\n rawContainer: MessageConf | ScrollIntoViewConf;\n rawKey: \"handlers\";\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventCallback {\n type: \"EventCallback\";\n rawContainer: BrickEventHandlerCallback;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"interfaces.js","names":[],"sources":["../../src/interfaces.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n BrickMenuConf,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MessageConf,\n ResolveConf,\n RouteConf,\n ScrollIntoViewConf,\n SlotConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\n\nexport type StoryboardNode =\n | StoryboardNodeRoot\n | StoryboardNodeRoute\n | StoryboardNodeTemplate\n | StoryboardNodeBrick\n | StoryboardNodeSlot\n | StoryboardNodeContext\n | StoryboardNodeResolvable\n | StoryboardNodeMenu\n | StoryboardNodeLifeCycle\n | StoryboardNodeEvent\n | StoryboardNodeEventHandler\n | StoryboardNodeConditionalEvent\n | StoryboardNodeEventCallback\n | StoryboardNodeCondition\n | StoryboardNodeUseBrickEntry\n | StoryboardNodeUseBackendEntry;\n\nexport interface StoryboardNodeRoot {\n type: \"Root\";\n raw: Storyboard;\n routes: StoryboardNodeRoute[];\n templates: StoryboardNodeTemplate[];\n}\n\nexport interface StoryboardNodeTemplate {\n type: \"Template\";\n raw: CustomTemplate | CustomTemplateConstructor;\n bricks?: StoryboardNodeBrick[];\n context?: StoryboardNodeContext[];\n}\n\nexport interface StoryboardNodeRoute {\n type: \"Route\";\n raw: RouteConf;\n context?: StoryboardNodeContext[];\n redirect?: StoryboardNodeResolvable;\n menu?: StoryboardNodeMenu;\n providers?: StoryboardNodeBrick[];\n defineResolves?: StoryboardNodeResolvable[];\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeBrick =\n | StoryboardNodeNormalBrick\n | StoryboardNodeUseBrick;\n\nexport interface StoryboardNodeBrickBase {\n type: \"Brick\";\n raw: BrickConf | UseSingleBrickConf;\n isUseBrick?: boolean;\n if?: StoryboardNodeCondition;\n events?: StoryboardNodeEvent[];\n lifeCycle?: StoryboardNodeLifeCycle[];\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n context?: StoryboardNodeContext[];\n children: StoryboardNodeSlot[];\n}\n\nexport interface StoryboardNodeNormalBrick extends StoryboardNodeBrickBase {\n raw: BrickConf;\n isUseBrick?: false;\n}\n\nexport interface StoryboardNodeUseBrick extends StoryboardNodeBrickBase {\n raw: UseSingleBrickConf;\n isUseBrick: true;\n}\n\nexport interface StoryboardNodeUseBrickEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBrickEntry\";\n rawKey: \"useBrick\";\n}\n\nexport interface StoryboardNodeUseBackendEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBackendEntry\";\n rawKey: \"useBackend\";\n}\n\nexport interface StoryboardNodeUseEntryBase {\n rawContainer: Record<string, unknown>;\n children: StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeCondition =\n | StoryboardNodeLiteralCondition\n | StoryboardNodeResolvableCondition;\n\nexport interface StoryboardNodeLiteralCondition {\n type: \"LiteralCondition\";\n}\n\nexport interface StoryboardNodeResolvableCondition {\n type: \"ResolvableCondition\";\n resolve: StoryboardNodeResolvable | undefined;\n}\n\nexport interface StoryboardNodeSlot {\n type: \"Slot\";\n raw: SlotConf;\n slot: string;\n childrenType: \"Route\" | \"Brick\";\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport interface StoryboardNodeContext {\n type: \"Context\";\n raw: ContextConf | CustomTemplateState;\n resolve?: StoryboardNodeResolvable;\n onChange?: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeResolvable {\n type: \"Resolvable\";\n raw: ResolveConf;\n isConditional?: boolean;\n}\n\nexport type StoryboardNodeMenu =\n | StoryboardNodeFalseMenu\n | StoryboardNodeStaticMenu\n | StoryboardNodeBrickMenu\n | StoryboardNodeResolvableMenu;\n\nexport interface StoryboardNodeFalseMenu {\n type: \"FalseMenu\";\n}\n\nexport interface StoryboardNodeStaticMenu {\n type: \"StaticMenu\";\n}\n\nexport interface StoryboardNodeBrickMenu {\n type: \"BrickMenu\";\n raw: BrickMenuConf;\n brick: StoryboardNodeBrick;\n}\n\nexport interface StoryboardNodeResolvableMenu {\n type: \"ResolvableMenu\";\n resolve: StoryboardNodeResolvable;\n}\n\nexport type StoryboardNodeLifeCycle =\n | StoryboardNodeResolveLifeCycle\n | StoryboardNodeSimpleLifeCycle\n | StoryboardNodeConditionalLifeCycle\n | StoryboardNodeUnknownLifeCycle;\n\nexport interface StoryboardNodeResolveLifeCycle {\n type: \"ResolveLifeCycle\";\n rawContainer: BrickLifeCycle;\n rawKey: \"useResolves\";\n resolves: StoryboardNodeResolvable[] | undefined;\n}\n\nexport interface StoryboardNodeSimpleLifeCycle {\n type: \"SimpleLifeCycle\";\n name:\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMessageClose\"\n | \"onBeforePageLoad\"\n | \"onBeforePageLeave\"\n | \"onMount\"\n | \"onUnmount\"\n | \"onMediaChange\";\n rawContainer: BrickLifeCycle;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeConditionalLifeCycle {\n type: \"ConditionalLifeCycle\";\n name: \"onMessage\" | \"onScrollIntoView\";\n events: StoryboardNodeConditionalEvent[] | undefined;\n}\n\nexport interface StoryboardNodeUnknownLifeCycle {\n type: \"UnknownLifeCycle\";\n}\n\nexport interface StoryboardNodeEvent {\n type: \"Event\";\n rawContainer: BrickEventsMap;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventHandler {\n type: \"EventHandler\";\n raw: BrickEventHandler;\n callback: StoryboardNodeEventCallback[] | undefined;\n}\n\nexport interface StoryboardNodeConditionalEvent {\n type: \"ConditionalEvent\";\n rawContainer: MessageConf | ScrollIntoViewConf;\n rawKey: \"handlers\";\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventCallback {\n type: \"EventCallback\";\n rawContainer: BrickEventHandlerCallback;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n"],"mappings":""}
@@ -8,11 +8,9 @@ exports.parseRoutes = parseRoutes;
8
8
  exports.parseStoryboard = parseStoryboard;
9
9
  exports.parseTemplate = parseTemplate;
10
10
  exports.parseTemplates = parseTemplates;
11
-
12
11
  /** Parse storyboard as AST. */
13
12
  function parseStoryboard(storyboard) {
14
13
  var _storyboard$meta;
15
-
16
14
  return {
17
15
  type: "Root",
18
16
  raw: storyboard,
@@ -20,7 +18,6 @@ function parseStoryboard(storyboard) {
20
18
  templates: parseTemplates((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.customTemplates)
21
19
  };
22
20
  }
23
-
24
21
  /** Parse storyboard routes as AST. */
25
22
  function parseRoutes(routes, options) {
26
23
  if (Array.isArray(routes)) {
@@ -37,22 +34,18 @@ function parseRoutes(routes, options) {
37
34
  children: route.type === "routes" ? parseRoutes(route.routes, options) : parseBricks(route.bricks, options)
38
35
  }));
39
36
  }
40
-
41
37
  return [];
42
38
  }
43
- /** Parse storyboard templates as AST. */
44
-
45
39
 
40
+ /** Parse storyboard templates as AST. */
46
41
  function parseTemplates(templates) {
47
42
  if (Array.isArray(templates)) {
48
43
  return templates.map(parseTemplate);
49
44
  }
50
-
51
45
  return [];
52
46
  }
53
- /** Parse a storyboard template as AST. */
54
-
55
47
 
48
+ /** Parse a storyboard template as AST. */
56
49
  function parseTemplate(tpl) {
57
50
  return {
58
51
  type: "Template",
@@ -61,17 +54,14 @@ function parseTemplate(tpl) {
61
54
  context: parseContext(tpl.state)
62
55
  };
63
56
  }
64
-
65
57
  function parseBricks(bricks, options) {
66
58
  if (Array.isArray(bricks)) {
67
59
  return bricks.map(brick => parseBrick(brick, options));
68
60
  }
69
-
70
61
  return [];
71
62
  }
72
- /** Parse a storyboard brick as AST. */
73
-
74
63
 
64
+ /** Parse a storyboard brick as AST. */
75
65
  function parseBrick(brick, options) {
76
66
  return {
77
67
  type: "Brick",
@@ -87,7 +77,6 @@ function parseBrick(brick, options) {
87
77
  children: parseSlots(brick.slots, options)
88
78
  };
89
79
  }
90
-
91
80
  function parseCondition(condition) {
92
81
  if (isObject(condition)) {
93
82
  return {
@@ -95,16 +84,13 @@ function parseCondition(condition) {
95
84
  resolve: parseResolvable(condition)
96
85
  };
97
86
  }
98
-
99
87
  return {
100
88
  type: "LiteralCondition"
101
89
  };
102
90
  }
103
-
104
91
  function parseBrickProperties(props) {
105
92
  const useBrick = [];
106
93
  const useBackend = [];
107
-
108
94
  function walkBrickProperties(value) {
109
95
  if (Array.isArray(value)) {
110
96
  for (const item of value) {
@@ -113,7 +99,6 @@ function parseBrickProperties(props) {
113
99
  } else if (isObject(value)) {
114
100
  if (value.useBrick || value.useBackend) {
115
101
  var _value$useBackend;
116
-
117
102
  if (value.useBrick) {
118
103
  useBrick.push({
119
104
  type: "UseBrickEntry",
@@ -124,9 +109,7 @@ function parseBrickProperties(props) {
124
109
  })
125
110
  });
126
111
  }
127
-
128
112
  const provider = (_value$useBackend = value.useBackend) === null || _value$useBackend === void 0 ? void 0 : _value$useBackend.provider;
129
-
130
113
  if (typeof provider === "string") {
131
114
  useBackend.push({
132
115
  type: "UseBackendEntry",
@@ -144,14 +127,12 @@ function parseBrickProperties(props) {
144
127
  }
145
128
  }
146
129
  }
147
-
148
130
  walkBrickProperties(props);
149
131
  return {
150
132
  useBrick,
151
133
  useBackend
152
134
  };
153
135
  }
154
-
155
136
  function parseLifeCycles(lifeCycle) {
156
137
  if (isObject(lifeCycle)) {
157
138
  return Object.entries(lifeCycle).map(([name, conf]) => {
@@ -163,7 +144,6 @@ function parseLifeCycles(lifeCycle) {
163
144
  rawKey: name,
164
145
  resolves: Array.isArray(conf) ? conf.map(item => parseResolvable(item, true)).filter(Boolean) : undefined
165
146
  };
166
-
167
147
  case "onPageLoad":
168
148
  case "onPageLeave":
169
149
  case "onAnchorLoad":
@@ -171,6 +151,8 @@ function parseLifeCycles(lifeCycle) {
171
151
  case "onMessageClose":
172
152
  case "onBeforePageLoad":
173
153
  case "onBeforePageLeave":
154
+ case "onMount":
155
+ case "onUnmount":
174
156
  case "onMediaChange":
175
157
  return {
176
158
  type: "SimpleLifeCycle",
@@ -179,7 +161,6 @@ function parseLifeCycles(lifeCycle) {
179
161
  rawKey: name,
180
162
  handlers: parseEventHandlers(conf)
181
163
  };
182
-
183
164
  case "onMessage":
184
165
  case "onScrollIntoView":
185
166
  return {
@@ -192,7 +173,6 @@ function parseLifeCycles(lifeCycle) {
192
173
  handlers: parseEventHandlers(item.handlers)
193
174
  }))
194
175
  };
195
-
196
176
  default:
197
177
  return {
198
178
  type: "UnknownLifeCycle"
@@ -201,7 +181,6 @@ function parseLifeCycles(lifeCycle) {
201
181
  });
202
182
  }
203
183
  }
204
-
205
184
  function parseSlots(slots, options) {
206
185
  if (isObject(slots)) {
207
186
  return Object.entries(slots).map(([slot, conf]) => ({
@@ -212,10 +191,8 @@ function parseSlots(slots, options) {
212
191
  children: conf.type === "routes" ? parseRoutes(conf.routes, options) : parseBricks(conf.bricks, options)
213
192
  }));
214
193
  }
215
-
216
194
  return [];
217
195
  }
218
-
219
196
  function parseEvents(events) {
220
197
  if (isObject(events)) {
221
198
  return Object.entries(events).map(([eventType, handlers]) => ({
@@ -226,7 +203,6 @@ function parseEvents(events) {
226
203
  }));
227
204
  }
228
205
  }
229
-
230
206
  function parseContext(contexts) {
231
207
  if (Array.isArray(contexts)) {
232
208
  return contexts.map(context => ({
@@ -237,18 +213,15 @@ function parseContext(contexts) {
237
213
  }));
238
214
  }
239
215
  }
240
-
241
216
  function parseMenu(menu) {
242
217
  if (menu === false) {
243
218
  return {
244
219
  type: "FalseMenu"
245
220
  };
246
221
  }
247
-
248
222
  if (!menu) {
249
223
  return;
250
224
  }
251
-
252
225
  switch (menu.type) {
253
226
  case "brick":
254
227
  return {
@@ -256,20 +229,17 @@ function parseMenu(menu) {
256
229
  raw: menu,
257
230
  brick: parseBrick(menu)
258
231
  };
259
-
260
232
  case "resolve":
261
233
  return {
262
234
  type: "ResolvableMenu",
263
235
  resolve: parseResolvable(menu.resolve)
264
236
  };
265
-
266
237
  default:
267
238
  return {
268
239
  type: "StaticMenu"
269
240
  };
270
241
  }
271
242
  }
272
-
273
243
  function parseResolvable(resolve, isConditional) {
274
244
  if (isObject(resolve)) {
275
245
  return {
@@ -279,7 +249,6 @@ function parseResolvable(resolve, isConditional) {
279
249
  };
280
250
  }
281
251
  }
282
-
283
252
  function parseEventHandlers(handlers) {
284
253
  return [].concat(handlers).filter(Boolean).map(handler => ({
285
254
  type: "EventHandler",
@@ -287,7 +256,6 @@ function parseEventHandlers(handlers) {
287
256
  raw: handler
288
257
  }));
289
258
  }
290
-
291
259
  function parseEventCallback(callback) {
292
260
  if (isObject(callback)) {
293
261
  return Object.entries(callback).map(([callbackType, handlers]) => ({
@@ -298,16 +266,15 @@ function parseEventCallback(callback) {
298
266
  }));
299
267
  }
300
268
  }
301
-
302
269
  function parseRouteProviders(providers) {
303
270
  if (Array.isArray(providers)) {
304
271
  return providers.map(provider => parseBrick(typeof provider === "string" ? {
305
272
  brick: provider
306
273
  } : provider));
307
274
  }
308
- } // Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744
309
-
275
+ }
310
276
 
277
+ // Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744
311
278
  function isObject(value) {
312
279
  const type = typeof value;
313
280
  return value != null && (type == "object" || type == "function");
@@ -1 +1 @@
1
- {"version":3,"file":"parseStoryboard.js","names":["parseStoryboard","storyboard","type","raw","routes","parseRoutes","templates","parseTemplates","meta","customTemplates","options","Array","isArray","map","route","routesOnly","context","parseContext","redirect","parseResolvable","menu","parseMenu","providers","parseRouteProviders","defineResolves","item","filter","Boolean","undefined","children","parseBricks","bricks","parseTemplate","tpl","state","brick","parseBrick","isUseBrick","if","parseCondition","events","parseEvents","lifeCycle","parseLifeCycles","parseBrickProperties","properties","parseSlots","slots","condition","isObject","resolve","props","useBrick","useBackend","walkBrickProperties","value","push","rawContainer","rawKey","concat","provider","Object","values","entries","name","conf","resolves","handlers","parseEventHandlers","slot","childrenType","eventType","contexts","onChange","isConditional","handler","callback","parseEventCallback","callbackType"],"sources":["../../src/parseStoryboard.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MenuConf,\n MessageConf,\n ProviderConf,\n ResolveConf,\n RouteConf,\n RouteConfOfBricks,\n ScrollIntoViewConf,\n SlotsConf,\n Storyboard,\n UseProviderEventHandler,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\nimport type {\n StoryboardNodeBrick,\n StoryboardNodeCondition,\n StoryboardNodeConditionalEvent,\n StoryboardNodeContext,\n StoryboardNodeEvent,\n StoryboardNodeEventCallback,\n StoryboardNodeEventHandler,\n StoryboardNodeLifeCycle,\n StoryboardNodeMenu,\n StoryboardNodeResolvable,\n StoryboardNodeRoot,\n StoryboardNodeRoute,\n StoryboardNodeSlot,\n StoryboardNodeTemplate,\n StoryboardNodeUseBackendEntry,\n StoryboardNodeUseBrickEntry,\n} from \"./interfaces\";\n\n/** Parse storyboard as AST. */\nexport function parseStoryboard(storyboard: Storyboard): StoryboardNodeRoot {\n return {\n type: \"Root\",\n raw: storyboard,\n routes: parseRoutes(storyboard.routes),\n templates: parseTemplates(storyboard.meta?.customTemplates),\n };\n}\n\nexport interface ParseOptions {\n routesOnly?: boolean;\n isUseBrick?: boolean;\n}\n\n/** Parse storyboard routes as AST. */\nexport function parseRoutes(\n routes: RouteConf[],\n options?: ParseOptions\n): StoryboardNodeRoute[] {\n if (Array.isArray(routes)) {\n return routes.map<StoryboardNodeRoute>((route) => ({\n type: \"Route\",\n raw: route,\n ...(options?.routesOnly\n ? null\n : {\n context: parseContext(route.context),\n redirect: parseResolvable(route.redirect as ResolveConf),\n menu: parseMenu(route.menu),\n providers: parseRouteProviders(route.providers),\n defineResolves: Array.isArray(route.defineResolves)\n ? route.defineResolves\n .map((item) => parseResolvable(item))\n .filter(Boolean)\n : undefined,\n }),\n children:\n route.type === \"routes\"\n ? parseRoutes(route.routes, options)\n : parseBricks((route as RouteConfOfBricks).bricks, options),\n }));\n }\n return [];\n}\n\n/** Parse storyboard templates as AST. */\nexport function parseTemplates(\n templates: (CustomTemplate | CustomTemplateConstructor)[]\n): StoryboardNodeTemplate[] {\n if (Array.isArray(templates)) {\n return templates.map<StoryboardNodeTemplate>(parseTemplate);\n }\n return [];\n}\n\n/** Parse a storyboard template as AST. */\nexport function parseTemplate(\n tpl: CustomTemplate | CustomTemplateConstructor\n): StoryboardNodeTemplate {\n return {\n type: \"Template\",\n raw: tpl,\n bricks: parseBricks(tpl.bricks),\n context: parseContext(tpl.state),\n };\n}\n\nfunction parseBricks(\n bricks: BrickConf[] | UseSingleBrickConf[],\n options?: ParseOptions\n): StoryboardNodeBrick[] {\n if (Array.isArray(bricks)) {\n return bricks.map((brick) => parseBrick(brick, options));\n }\n return [];\n}\n\n/** Parse a storyboard brick as AST. */\nexport function parseBrick(\n brick: BrickConf | UseSingleBrickConf,\n options?: ParseOptions\n): StoryboardNodeBrick {\n return {\n type: \"Brick\",\n raw: brick,\n isUseBrick: options?.isUseBrick,\n ...(options?.routesOnly\n ? null\n : {\n if: parseCondition(brick.if),\n events: parseEvents(brick.events),\n lifeCycle: parseLifeCycles(brick.lifeCycle),\n ...parseBrickProperties(brick.properties),\n context: parseContext((brick as BrickConf).context),\n }),\n children: parseSlots(brick.slots as SlotsConf, options),\n } as StoryboardNodeBrick;\n}\n\nfunction parseCondition(condition: BrickConf[\"if\"]): StoryboardNodeCondition {\n if (isObject(condition)) {\n return {\n type: \"ResolvableCondition\",\n resolve: parseResolvable(condition),\n };\n }\n return {\n type: \"LiteralCondition\",\n };\n}\n\nfunction parseBrickProperties(props: unknown): {\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n} {\n const useBrick: StoryboardNodeUseBrickEntry[] = [];\n const useBackend: StoryboardNodeUseBackendEntry[] = [];\n\n function walkBrickProperties(value: unknown): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n walkBrickProperties(item);\n }\n } else if (isObject(value)) {\n if (value.useBrick || value.useBackend) {\n if (value.useBrick) {\n useBrick.push({\n type: \"UseBrickEntry\",\n rawContainer: value,\n rawKey: \"useBrick\",\n children: parseBricks(\n ([] as UseSingleBrickConf[]).concat(value.useBrick),\n {\n isUseBrick: true,\n }\n ),\n });\n }\n const provider = value.useBackend?.provider;\n if (typeof provider === \"string\") {\n useBackend.push({\n type: \"UseBackendEntry\",\n rawContainer: value,\n rawKey: \"useBackend\",\n children: [parseBrick({ brick: provider })],\n });\n }\n } else {\n for (const item of Object.values(value)) {\n walkBrickProperties(item);\n }\n }\n }\n }\n\n walkBrickProperties(props);\n\n return { useBrick, useBackend };\n}\n\nfunction parseLifeCycles(lifeCycle: BrickLifeCycle): StoryboardNodeLifeCycle[] {\n if (isObject(lifeCycle)) {\n return Object.entries(lifeCycle).map<StoryboardNodeLifeCycle>(\n ([name, conf]) => {\n switch (name) {\n case \"useResolves\":\n return {\n type: \"ResolveLifeCycle\",\n rawContainer: lifeCycle,\n rawKey: name,\n resolves: Array.isArray(conf)\n ? conf\n .map((item) => parseResolvable(item, true))\n .filter(Boolean)\n : undefined,\n };\n case \"onPageLoad\":\n case \"onPageLeave\":\n case \"onAnchorLoad\":\n case \"onAnchorUnload\":\n case \"onMessageClose\":\n case \"onBeforePageLoad\":\n case \"onBeforePageLeave\":\n case \"onMediaChange\":\n return {\n type: \"SimpleLifeCycle\",\n name,\n rawContainer: lifeCycle,\n rawKey: name,\n handlers: parseEventHandlers(conf),\n };\n case \"onMessage\":\n case \"onScrollIntoView\":\n return {\n type: \"ConditionalLifeCycle\",\n name,\n events: ([] as (MessageConf | ScrollIntoViewConf)[])\n .concat(conf)\n .filter(Boolean)\n .map<StoryboardNodeConditionalEvent>((item) => ({\n type: \"ConditionalEvent\",\n rawContainer: item,\n rawKey: \"handlers\",\n handlers: parseEventHandlers(item.handlers),\n })),\n };\n default:\n return { type: \"UnknownLifeCycle\" };\n }\n }\n );\n }\n}\n\nfunction parseSlots(\n slots: SlotsConf,\n options?: ParseOptions\n): StoryboardNodeSlot[] {\n if (isObject(slots)) {\n return Object.entries(slots).map<StoryboardNodeSlot>(([slot, conf]) => ({\n type: \"Slot\",\n raw: conf,\n slot,\n childrenType: conf.type === \"routes\" ? \"Route\" : \"Brick\",\n children:\n conf.type === \"routes\"\n ? parseRoutes(conf.routes, options)\n : parseBricks(conf.bricks, options),\n }));\n }\n return [];\n}\n\nfunction parseEvents(events: BrickEventsMap): StoryboardNodeEvent[] {\n if (isObject(events)) {\n return Object.entries(events).map<StoryboardNodeEvent>(\n ([eventType, handlers]) => ({\n type: \"Event\",\n rawContainer: events,\n rawKey: eventType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseContext(\n contexts: (ContextConf | CustomTemplateState)[]\n): StoryboardNodeContext[] {\n if (Array.isArray(contexts)) {\n return contexts.map<StoryboardNodeContext>((context) => ({\n type: \"Context\",\n raw: context,\n resolve: parseResolvable(context.resolve),\n onChange: parseEventHandlers(context.onChange),\n }));\n }\n}\n\nfunction parseMenu(menu: MenuConf): StoryboardNodeMenu {\n if (menu === false) {\n return { type: \"FalseMenu\" };\n }\n if (!menu) {\n return;\n }\n switch (menu.type) {\n case \"brick\":\n return {\n type: \"BrickMenu\",\n raw: menu,\n brick: parseBrick(menu),\n };\n case \"resolve\":\n return {\n type: \"ResolvableMenu\",\n resolve: parseResolvable(menu.resolve),\n };\n default:\n return {\n type: \"StaticMenu\",\n };\n }\n}\n\nfunction parseResolvable(\n resolve: ResolveConf,\n isConditional?: boolean\n): StoryboardNodeResolvable {\n if (isObject(resolve)) {\n return {\n type: \"Resolvable\",\n raw: resolve,\n isConditional,\n };\n }\n}\n\nfunction parseEventHandlers(\n handlers: BrickEventHandler | BrickEventHandler[]\n): StoryboardNodeEventHandler[] {\n return ([] as BrickEventHandler[])\n .concat(handlers)\n .filter(Boolean)\n .map<StoryboardNodeEventHandler>((handler) => ({\n type: \"EventHandler\",\n callback: parseEventCallback(\n (handler as UseProviderEventHandler).callback\n ),\n raw: handler,\n }));\n}\n\nfunction parseEventCallback(\n callback: BrickEventHandlerCallback\n): StoryboardNodeEventCallback[] {\n if (isObject(callback)) {\n return Object.entries(callback).map<StoryboardNodeEventCallback>(\n ([callbackType, handlers]) => ({\n type: \"EventCallback\",\n rawContainer: callback as BrickEventsMap,\n rawKey: callbackType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseRouteProviders(\n providers?: ProviderConf[]\n): StoryboardNodeBrick[] {\n if (Array.isArray(providers)) {\n return providers.map<StoryboardNodeBrick>((provider) =>\n parseBrick(typeof provider === \"string\" ? { brick: provider } : provider)\n );\n }\n}\n\n// Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744\nfunction isObject(value: unknown): value is Record<string, any> {\n const type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parseStoryboard.js","names":["parseStoryboard","storyboard","type","raw","routes","parseRoutes","templates","parseTemplates","meta","customTemplates","options","Array","isArray","map","route","routesOnly","context","parseContext","redirect","parseResolvable","menu","parseMenu","providers","parseRouteProviders","defineResolves","item","filter","Boolean","undefined","children","parseBricks","bricks","parseTemplate","tpl","state","brick","parseBrick","isUseBrick","if","parseCondition","events","parseEvents","lifeCycle","parseLifeCycles","parseBrickProperties","properties","parseSlots","slots","condition","isObject","resolve","props","useBrick","useBackend","walkBrickProperties","value","push","rawContainer","rawKey","concat","provider","Object","values","entries","name","conf","resolves","handlers","parseEventHandlers","slot","childrenType","eventType","contexts","onChange","isConditional","handler","callback","parseEventCallback","callbackType"],"sources":["../../src/parseStoryboard.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MenuConf,\n MessageConf,\n ProviderConf,\n ResolveConf,\n RouteConf,\n RouteConfOfBricks,\n ScrollIntoViewConf,\n SlotsConf,\n Storyboard,\n UseProviderEventHandler,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\nimport type {\n StoryboardNodeBrick,\n StoryboardNodeCondition,\n StoryboardNodeConditionalEvent,\n StoryboardNodeContext,\n StoryboardNodeEvent,\n StoryboardNodeEventCallback,\n StoryboardNodeEventHandler,\n StoryboardNodeLifeCycle,\n StoryboardNodeMenu,\n StoryboardNodeResolvable,\n StoryboardNodeRoot,\n StoryboardNodeRoute,\n StoryboardNodeSlot,\n StoryboardNodeTemplate,\n StoryboardNodeUseBackendEntry,\n StoryboardNodeUseBrickEntry,\n} from \"./interfaces\";\n\n/** Parse storyboard as AST. */\nexport function parseStoryboard(storyboard: Storyboard): StoryboardNodeRoot {\n return {\n type: \"Root\",\n raw: storyboard,\n routes: parseRoutes(storyboard.routes),\n templates: parseTemplates(storyboard.meta?.customTemplates),\n };\n}\n\nexport interface ParseOptions {\n routesOnly?: boolean;\n isUseBrick?: boolean;\n}\n\n/** Parse storyboard routes as AST. */\nexport function parseRoutes(\n routes: RouteConf[],\n options?: ParseOptions\n): StoryboardNodeRoute[] {\n if (Array.isArray(routes)) {\n return routes.map<StoryboardNodeRoute>((route) => ({\n type: \"Route\",\n raw: route,\n ...(options?.routesOnly\n ? null\n : {\n context: parseContext(route.context),\n redirect: parseResolvable(route.redirect as ResolveConf),\n menu: parseMenu(route.menu),\n providers: parseRouteProviders(route.providers),\n defineResolves: Array.isArray(route.defineResolves)\n ? route.defineResolves\n .map((item) => parseResolvable(item))\n .filter(Boolean)\n : undefined,\n }),\n children:\n route.type === \"routes\"\n ? parseRoutes(route.routes, options)\n : parseBricks((route as RouteConfOfBricks).bricks, options),\n }));\n }\n return [];\n}\n\n/** Parse storyboard templates as AST. */\nexport function parseTemplates(\n templates: (CustomTemplate | CustomTemplateConstructor)[]\n): StoryboardNodeTemplate[] {\n if (Array.isArray(templates)) {\n return templates.map<StoryboardNodeTemplate>(parseTemplate);\n }\n return [];\n}\n\n/** Parse a storyboard template as AST. */\nexport function parseTemplate(\n tpl: CustomTemplate | CustomTemplateConstructor\n): StoryboardNodeTemplate {\n return {\n type: \"Template\",\n raw: tpl,\n bricks: parseBricks(tpl.bricks),\n context: parseContext(tpl.state),\n };\n}\n\nfunction parseBricks(\n bricks: BrickConf[] | UseSingleBrickConf[],\n options?: ParseOptions\n): StoryboardNodeBrick[] {\n if (Array.isArray(bricks)) {\n return bricks.map((brick) => parseBrick(brick, options));\n }\n return [];\n}\n\n/** Parse a storyboard brick as AST. */\nexport function parseBrick(\n brick: BrickConf | UseSingleBrickConf,\n options?: ParseOptions\n): StoryboardNodeBrick {\n return {\n type: \"Brick\",\n raw: brick,\n isUseBrick: options?.isUseBrick,\n ...(options?.routesOnly\n ? null\n : {\n if: parseCondition(brick.if),\n events: parseEvents(brick.events),\n lifeCycle: parseLifeCycles(brick.lifeCycle),\n ...parseBrickProperties(brick.properties),\n context: parseContext((brick as BrickConf).context),\n }),\n children: parseSlots(brick.slots as SlotsConf, options),\n } as StoryboardNodeBrick;\n}\n\nfunction parseCondition(condition: BrickConf[\"if\"]): StoryboardNodeCondition {\n if (isObject(condition)) {\n return {\n type: \"ResolvableCondition\",\n resolve: parseResolvable(condition),\n };\n }\n return {\n type: \"LiteralCondition\",\n };\n}\n\nfunction parseBrickProperties(props: unknown): {\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n} {\n const useBrick: StoryboardNodeUseBrickEntry[] = [];\n const useBackend: StoryboardNodeUseBackendEntry[] = [];\n\n function walkBrickProperties(value: unknown): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n walkBrickProperties(item);\n }\n } else if (isObject(value)) {\n if (value.useBrick || value.useBackend) {\n if (value.useBrick) {\n useBrick.push({\n type: \"UseBrickEntry\",\n rawContainer: value,\n rawKey: \"useBrick\",\n children: parseBricks(\n ([] as UseSingleBrickConf[]).concat(value.useBrick),\n {\n isUseBrick: true,\n }\n ),\n });\n }\n const provider = value.useBackend?.provider;\n if (typeof provider === \"string\") {\n useBackend.push({\n type: \"UseBackendEntry\",\n rawContainer: value,\n rawKey: \"useBackend\",\n children: [parseBrick({ brick: provider })],\n });\n }\n } else {\n for (const item of Object.values(value)) {\n walkBrickProperties(item);\n }\n }\n }\n }\n\n walkBrickProperties(props);\n\n return { useBrick, useBackend };\n}\n\nfunction parseLifeCycles(lifeCycle: BrickLifeCycle): StoryboardNodeLifeCycle[] {\n if (isObject(lifeCycle)) {\n return Object.entries(lifeCycle).map<StoryboardNodeLifeCycle>(\n ([name, conf]) => {\n switch (name) {\n case \"useResolves\":\n return {\n type: \"ResolveLifeCycle\",\n rawContainer: lifeCycle,\n rawKey: name,\n resolves: Array.isArray(conf)\n ? conf\n .map((item) => parseResolvable(item, true))\n .filter(Boolean)\n : undefined,\n };\n case \"onPageLoad\":\n case \"onPageLeave\":\n case \"onAnchorLoad\":\n case \"onAnchorUnload\":\n case \"onMessageClose\":\n case \"onBeforePageLoad\":\n case \"onBeforePageLeave\":\n case \"onMount\":\n case \"onUnmount\":\n case \"onMediaChange\":\n return {\n type: \"SimpleLifeCycle\",\n name,\n rawContainer: lifeCycle,\n rawKey: name,\n handlers: parseEventHandlers(conf),\n };\n case \"onMessage\":\n case \"onScrollIntoView\":\n return {\n type: \"ConditionalLifeCycle\",\n name,\n events: ([] as (MessageConf | ScrollIntoViewConf)[])\n .concat(conf)\n .filter(Boolean)\n .map<StoryboardNodeConditionalEvent>((item) => ({\n type: \"ConditionalEvent\",\n rawContainer: item,\n rawKey: \"handlers\",\n handlers: parseEventHandlers(item.handlers),\n })),\n };\n default:\n return { type: \"UnknownLifeCycle\" };\n }\n }\n );\n }\n}\n\nfunction parseSlots(\n slots: SlotsConf,\n options?: ParseOptions\n): StoryboardNodeSlot[] {\n if (isObject(slots)) {\n return Object.entries(slots).map<StoryboardNodeSlot>(([slot, conf]) => ({\n type: \"Slot\",\n raw: conf,\n slot,\n childrenType: conf.type === \"routes\" ? \"Route\" : \"Brick\",\n children:\n conf.type === \"routes\"\n ? parseRoutes(conf.routes, options)\n : parseBricks(conf.bricks, options),\n }));\n }\n return [];\n}\n\nfunction parseEvents(events: BrickEventsMap): StoryboardNodeEvent[] {\n if (isObject(events)) {\n return Object.entries(events).map<StoryboardNodeEvent>(\n ([eventType, handlers]) => ({\n type: \"Event\",\n rawContainer: events,\n rawKey: eventType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseContext(\n contexts: (ContextConf | CustomTemplateState)[]\n): StoryboardNodeContext[] {\n if (Array.isArray(contexts)) {\n return contexts.map<StoryboardNodeContext>((context) => ({\n type: \"Context\",\n raw: context,\n resolve: parseResolvable(context.resolve),\n onChange: parseEventHandlers(context.onChange),\n }));\n }\n}\n\nfunction parseMenu(menu: MenuConf): StoryboardNodeMenu {\n if (menu === false) {\n return { type: \"FalseMenu\" };\n }\n if (!menu) {\n return;\n }\n switch (menu.type) {\n case \"brick\":\n return {\n type: \"BrickMenu\",\n raw: menu,\n brick: parseBrick(menu),\n };\n case \"resolve\":\n return {\n type: \"ResolvableMenu\",\n resolve: parseResolvable(menu.resolve),\n };\n default:\n return {\n type: \"StaticMenu\",\n };\n }\n}\n\nfunction parseResolvable(\n resolve: ResolveConf,\n isConditional?: boolean\n): StoryboardNodeResolvable {\n if (isObject(resolve)) {\n return {\n type: \"Resolvable\",\n raw: resolve,\n isConditional,\n };\n }\n}\n\nfunction parseEventHandlers(\n handlers: BrickEventHandler | BrickEventHandler[]\n): StoryboardNodeEventHandler[] {\n return ([] as BrickEventHandler[])\n .concat(handlers)\n .filter(Boolean)\n .map<StoryboardNodeEventHandler>((handler) => ({\n type: \"EventHandler\",\n callback: parseEventCallback(\n (handler as UseProviderEventHandler).callback\n ),\n raw: handler,\n }));\n}\n\nfunction parseEventCallback(\n callback: BrickEventHandlerCallback\n): StoryboardNodeEventCallback[] {\n if (isObject(callback)) {\n return Object.entries(callback).map<StoryboardNodeEventCallback>(\n ([callbackType, handlers]) => ({\n type: \"EventCallback\",\n rawContainer: callback as BrickEventsMap,\n rawKey: callbackType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseRouteProviders(\n providers?: ProviderConf[]\n): StoryboardNodeBrick[] {\n if (Array.isArray(providers)) {\n return providers.map<StoryboardNodeBrick>((provider) =>\n parseBrick(typeof provider === \"string\" ? { brick: provider } : provider)\n );\n }\n}\n\n// Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744\nfunction isObject(value: unknown): value is Record<string, any> {\n const type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\n"],"mappings":"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"}
@@ -5,14 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.traverse = traverse;
7
7
  exports.traverseStoryboard = traverseStoryboard;
8
-
9
8
  /** Traverse a storyboard AST. */
10
9
  function traverseStoryboard(ast, callback) {
11
10
  traverseNode(ast, callback, []);
12
11
  }
13
- /** Traverse any node(s) in storyboard AST. */
14
-
15
12
 
13
+ /** Traverse any node(s) in storyboard AST. */
16
14
  function traverse(nodeOrNodes, callback) {
17
15
  if (Array.isArray(nodeOrNodes)) {
18
16
  traverseNodes(nodeOrNodes, callback, []);
@@ -20,31 +18,25 @@ function traverse(nodeOrNodes, callback) {
20
18
  traverseNode(nodeOrNodes, callback, []);
21
19
  }
22
20
  }
23
-
24
21
  function traverseNodes(nodes, callback, path) {
25
22
  if (!nodes) {
26
23
  return;
27
24
  }
28
-
29
25
  for (const node of nodes) {
30
26
  traverseNode(node, callback, path);
31
27
  }
32
28
  }
33
-
34
29
  function traverseNode(node, callback, path) {
35
30
  if (!node) {
36
31
  return;
37
32
  }
38
-
39
33
  callback(node, path);
40
34
  const childPath = path.concat(node);
41
-
42
35
  switch (node.type) {
43
36
  case "Root":
44
37
  traverseNodes(node.routes, callback, childPath);
45
38
  traverseNodes(node.templates, callback, childPath);
46
39
  break;
47
-
48
40
  case "Route":
49
41
  traverseNodes(node.context, callback, childPath);
50
42
  traverseNode(node.redirect, callback, childPath);
@@ -53,12 +45,10 @@ function traverseNode(node, callback, path) {
53
45
  traverseNodes(node.defineResolves, callback, childPath);
54
46
  traverseNodes(node.children, callback, childPath);
55
47
  break;
56
-
57
48
  case "Template":
58
49
  traverseNodes(node.bricks, callback, childPath);
59
50
  traverseNodes(node.context, callback, childPath);
60
51
  break;
61
-
62
52
  case "Brick":
63
53
  traverseNode(node.if, callback, childPath);
64
54
  traverseNodes(node.events, callback, childPath);
@@ -68,53 +58,43 @@ function traverseNode(node, callback, path) {
68
58
  traverseNodes(node.context, callback, childPath);
69
59
  traverseNodes(node.children, callback, childPath);
70
60
  break;
71
-
72
61
  case "Slot":
73
62
  case "UseBrickEntry":
74
63
  case "UseBackendEntry":
75
64
  traverseNodes(node.children, callback, childPath);
76
65
  break;
77
-
78
66
  case "Context":
79
67
  traverseNode(node.resolve, callback, childPath);
80
68
  traverseNodes(node.onChange, callback, childPath);
81
69
  break;
82
-
83
70
  case "ResolvableCondition":
84
71
  case "ResolvableMenu":
85
72
  traverseNode(node.resolve, callback, childPath);
86
73
  break;
87
-
88
74
  case "ResolveLifeCycle":
89
75
  traverseNodes(node.resolves, callback, childPath);
90
76
  break;
91
-
92
77
  case "Event":
93
78
  case "EventCallback":
94
79
  case "SimpleLifeCycle":
95
80
  case "ConditionalEvent":
96
81
  traverseNodes(node.handlers, callback, childPath);
97
82
  break;
98
-
99
83
  case "EventHandler":
100
84
  traverseNodes(node.callback, callback, childPath);
101
85
  break;
102
-
103
86
  case "ConditionalLifeCycle":
104
87
  traverseNodes(node.events, callback, childPath);
105
88
  break;
106
-
107
89
  case "BrickMenu":
108
90
  traverseNode(node.brick, callback, childPath);
109
91
  break;
110
-
111
92
  case "Resolvable":
112
93
  case "FalseMenu":
113
94
  case "StaticMenu":
114
95
  case "UnknownLifeCycle":
115
96
  case "LiteralCondition":
116
97
  break;
117
-
118
98
  default:
119
99
  // istanbul ignore if
120
100
  if (process.env.NODE_ENV === "development") {
@@ -122,7 +102,6 @@ function traverseNode(node, callback, path) {
122
102
  // @ts-expect-error
123
103
  throw new Error(`Unhandled storyboard node type: ${node.type}`);
124
104
  }
125
-
126
105
  }
127
106
  }
128
107
  //# sourceMappingURL=traverseStoryboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverseStoryboard.js","names":["traverseStoryboard","ast","callback","traverseNode","traverse","nodeOrNodes","Array","isArray","traverseNodes","nodes","path","node","childPath","concat","type","routes","templates","context","redirect","menu","providers","defineResolves","children","bricks","if","events","lifeCycle","useBrick","useBackend","resolve","onChange","resolves","handlers","brick","process","env","NODE_ENV","Error"],"sources":["../../src/traverseStoryboard.ts"],"sourcesContent":["import type { StoryboardNode, StoryboardNodeRoot } from \"./interfaces\";\n\nexport type TraverseCallback = (\n node: StoryboardNode,\n path: StoryboardNode[]\n) => void;\n\n/** Traverse a storyboard AST. */\nexport function traverseStoryboard(\n ast: StoryboardNodeRoot,\n callback: TraverseCallback\n): void {\n traverseNode(ast, callback, []);\n}\n\n/** Traverse any node(s) in storyboard AST. */\nexport function traverse(\n nodeOrNodes: StoryboardNode | StoryboardNode[],\n callback: TraverseCallback\n): void {\n if (Array.isArray(nodeOrNodes)) {\n traverseNodes(nodeOrNodes, callback, []);\n } else {\n traverseNode(nodeOrNodes, callback, []);\n }\n}\n\nfunction traverseNodes(\n nodes: StoryboardNode[],\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n traverseNode(node, callback, path);\n }\n}\n\nfunction traverseNode(\n node: StoryboardNode,\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!node) {\n return;\n }\n callback(node, path);\n const childPath = path.concat(node);\n switch (node.type) {\n case \"Root\":\n traverseNodes(node.routes, callback, childPath);\n traverseNodes(node.templates, callback, childPath);\n break;\n case \"Route\":\n traverseNodes(node.context, callback, childPath);\n traverseNode(node.redirect, callback, childPath);\n traverseNode(node.menu, callback, childPath);\n traverseNodes(node.providers, callback, childPath);\n traverseNodes(node.defineResolves, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Template\":\n traverseNodes(node.bricks, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n break;\n case \"Brick\":\n traverseNode(node.if, callback, childPath);\n traverseNodes(node.events, callback, childPath);\n traverseNodes(node.lifeCycle, callback, childPath);\n traverseNodes(node.useBrick, callback, childPath);\n traverseNodes(node.useBackend, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Slot\":\n case \"UseBrickEntry\":\n case \"UseBackendEntry\":\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Context\":\n traverseNode(node.resolve, callback, childPath);\n traverseNodes(node.onChange, callback, childPath);\n break;\n case \"ResolvableCondition\":\n case \"ResolvableMenu\":\n traverseNode(node.resolve, callback, childPath);\n break;\n case \"ResolveLifeCycle\":\n traverseNodes(node.resolves, callback, childPath);\n break;\n case \"Event\":\n case \"EventCallback\":\n case \"SimpleLifeCycle\":\n case \"ConditionalEvent\":\n traverseNodes(node.handlers, callback, childPath);\n break;\n case \"EventHandler\":\n traverseNodes(node.callback, callback, childPath);\n break;\n case \"ConditionalLifeCycle\":\n traverseNodes(node.events, callback, childPath);\n break;\n case \"BrickMenu\":\n traverseNode(node.brick, callback, childPath);\n break;\n case \"Resolvable\":\n case \"FalseMenu\":\n case \"StaticMenu\":\n case \"UnknownLifeCycle\":\n case \"LiteralCondition\":\n break;\n default:\n // istanbul ignore if\n if (process.env.NODE_ENV === \"development\") {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n throw new Error(`Unhandled storyboard node type: ${node.type}`);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"traverseStoryboard.js","names":["traverseStoryboard","ast","callback","traverseNode","traverse","nodeOrNodes","Array","isArray","traverseNodes","nodes","path","node","childPath","concat","type","routes","templates","context","redirect","menu","providers","defineResolves","children","bricks","if","events","lifeCycle","useBrick","useBackend","resolve","onChange","resolves","handlers","brick","process","env","NODE_ENV","Error"],"sources":["../../src/traverseStoryboard.ts"],"sourcesContent":["import type { StoryboardNode, StoryboardNodeRoot } from \"./interfaces\";\n\nexport type TraverseCallback = (\n node: StoryboardNode,\n path: StoryboardNode[]\n) => void;\n\n/** Traverse a storyboard AST. */\nexport function traverseStoryboard(\n ast: StoryboardNodeRoot,\n callback: TraverseCallback\n): void {\n traverseNode(ast, callback, []);\n}\n\n/** Traverse any node(s) in storyboard AST. */\nexport function traverse(\n nodeOrNodes: StoryboardNode | StoryboardNode[],\n callback: TraverseCallback\n): void {\n if (Array.isArray(nodeOrNodes)) {\n traverseNodes(nodeOrNodes, callback, []);\n } else {\n traverseNode(nodeOrNodes, callback, []);\n }\n}\n\nfunction traverseNodes(\n nodes: StoryboardNode[],\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n traverseNode(node, callback, path);\n }\n}\n\nfunction traverseNode(\n node: StoryboardNode,\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!node) {\n return;\n }\n callback(node, path);\n const childPath = path.concat(node);\n switch (node.type) {\n case \"Root\":\n traverseNodes(node.routes, callback, childPath);\n traverseNodes(node.templates, callback, childPath);\n break;\n case \"Route\":\n traverseNodes(node.context, callback, childPath);\n traverseNode(node.redirect, callback, childPath);\n traverseNode(node.menu, callback, childPath);\n traverseNodes(node.providers, callback, childPath);\n traverseNodes(node.defineResolves, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Template\":\n traverseNodes(node.bricks, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n break;\n case \"Brick\":\n traverseNode(node.if, callback, childPath);\n traverseNodes(node.events, callback, childPath);\n traverseNodes(node.lifeCycle, callback, childPath);\n traverseNodes(node.useBrick, callback, childPath);\n traverseNodes(node.useBackend, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Slot\":\n case \"UseBrickEntry\":\n case \"UseBackendEntry\":\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Context\":\n traverseNode(node.resolve, callback, childPath);\n traverseNodes(node.onChange, callback, childPath);\n break;\n case \"ResolvableCondition\":\n case \"ResolvableMenu\":\n traverseNode(node.resolve, callback, childPath);\n break;\n case \"ResolveLifeCycle\":\n traverseNodes(node.resolves, callback, childPath);\n break;\n case \"Event\":\n case \"EventCallback\":\n case \"SimpleLifeCycle\":\n case \"ConditionalEvent\":\n traverseNodes(node.handlers, callback, childPath);\n break;\n case \"EventHandler\":\n traverseNodes(node.callback, callback, childPath);\n break;\n case \"ConditionalLifeCycle\":\n traverseNodes(node.events, callback, childPath);\n break;\n case \"BrickMenu\":\n traverseNode(node.brick, callback, childPath);\n break;\n case \"Resolvable\":\n case \"FalseMenu\":\n case \"StaticMenu\":\n case \"UnknownLifeCycle\":\n case \"LiteralCondition\":\n break;\n default:\n // istanbul ignore if\n if (process.env.NODE_ENV === \"development\") {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n throw new Error(`Unhandled storyboard node type: ${node.type}`);\n }\n }\n}\n"],"mappings":";;;;;;;AAOA;AACO,SAASA,kBAAkB,CAChCC,GAAuB,EACvBC,QAA0B,EACpB;EACNC,YAAY,CAACF,GAAG,EAAEC,QAAQ,EAAE,EAAE,CAAC;AACjC;;AAEA;AACO,SAASE,QAAQ,CACtBC,WAA8C,EAC9CH,QAA0B,EACpB;EACN,IAAII,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,EAAE;IAC9BG,aAAa,CAACH,WAAW,EAAEH,QAAQ,EAAE,EAAE,CAAC;EAC1C,CAAC,MAAM;IACLC,YAAY,CAACE,WAAW,EAAEH,QAAQ,EAAE,EAAE,CAAC;EACzC;AACF;AAEA,SAASM,aAAa,CACpBC,KAAuB,EACvBP,QAA0B,EAC1BQ,IAAsB,EAChB;EACN,IAAI,CAACD,KAAK,EAAE;IACV;EACF;EACA,KAAK,MAAME,IAAI,IAAIF,KAAK,EAAE;IACxBN,YAAY,CAACQ,IAAI,EAAET,QAAQ,EAAEQ,IAAI,CAAC;EACpC;AACF;AAEA,SAASP,YAAY,CACnBQ,IAAoB,EACpBT,QAA0B,EAC1BQ,IAAsB,EAChB;EACN,IAAI,CAACC,IAAI,EAAE;IACT;EACF;EACAT,QAAQ,CAACS,IAAI,EAAED,IAAI,CAAC;EACpB,MAAME,SAAS,GAAGF,IAAI,CAACG,MAAM,CAACF,IAAI,CAAC;EACnC,QAAQA,IAAI,CAACG,IAAI;IACf,KAAK,MAAM;MACTN,aAAa,CAACG,IAAI,CAACI,MAAM,EAAEb,QAAQ,EAAEU,SAAS,CAAC;MAC/CJ,aAAa,CAACG,IAAI,CAACK,SAAS,EAAEd,QAAQ,EAAEU,SAAS,CAAC;MAClD;IACF,KAAK,OAAO;MACVJ,aAAa,CAACG,IAAI,CAACM,OAAO,EAAEf,QAAQ,EAAEU,SAAS,CAAC;MAChDT,YAAY,CAACQ,IAAI,CAACO,QAAQ,EAAEhB,QAAQ,EAAEU,SAAS,CAAC;MAChDT,YAAY,CAACQ,IAAI,CAACQ,IAAI,EAAEjB,QAAQ,EAAEU,SAAS,CAAC;MAC5CJ,aAAa,CAACG,IAAI,CAACS,SAAS,EAAElB,QAAQ,EAAEU,SAAS,CAAC;MAClDJ,aAAa,CAACG,IAAI,CAACU,cAAc,EAAEnB,QAAQ,EAAEU,SAAS,CAAC;MACvDJ,aAAa,CAACG,IAAI,CAACW,QAAQ,EAAEpB,QAAQ,EAAEU,SAAS,CAAC;MACjD;IACF,KAAK,UAAU;MACbJ,aAAa,CAACG,IAAI,CAACY,MAAM,EAAErB,QAAQ,EAAEU,SAAS,CAAC;MAC/CJ,aAAa,CAACG,IAAI,CAACM,OAAO,EAAEf,QAAQ,EAAEU,SAAS,CAAC;MAChD;IACF,KAAK,OAAO;MACVT,YAAY,CAACQ,IAAI,CAACa,EAAE,EAAEtB,QAAQ,EAAEU,SAAS,CAAC;MAC1CJ,aAAa,CAACG,IAAI,CAACc,MAAM,EAAEvB,QAAQ,EAAEU,SAAS,CAAC;MAC/CJ,aAAa,CAACG,IAAI,CAACe,SAAS,EAAExB,QAAQ,EAAEU,SAAS,CAAC;MAClDJ,aAAa,CAACG,IAAI,CAACgB,QAAQ,EAAEzB,QAAQ,EAAEU,SAAS,CAAC;MACjDJ,aAAa,CAACG,IAAI,CAACiB,UAAU,EAAE1B,QAAQ,EAAEU,SAAS,CAAC;MACnDJ,aAAa,CAACG,IAAI,CAACM,OAAO,EAAEf,QAAQ,EAAEU,SAAS,CAAC;MAChDJ,aAAa,CAACG,IAAI,CAACW,QAAQ,EAAEpB,QAAQ,EAAEU,SAAS,CAAC;MACjD;IACF,KAAK,MAAM;IACX,KAAK,eAAe;IACpB,KAAK,iBAAiB;MACpBJ,aAAa,CAACG,IAAI,CAACW,QAAQ,EAAEpB,QAAQ,EAAEU,SAAS,CAAC;MACjD;IACF,KAAK,SAAS;MACZT,YAAY,CAACQ,IAAI,CAACkB,OAAO,EAAE3B,QAAQ,EAAEU,SAAS,CAAC;MAC/CJ,aAAa,CAACG,IAAI,CAACmB,QAAQ,EAAE5B,QAAQ,EAAEU,SAAS,CAAC;MACjD;IACF,KAAK,qBAAqB;IAC1B,KAAK,gBAAgB;MACnBT,YAAY,CAACQ,IAAI,CAACkB,OAAO,EAAE3B,QAAQ,EAAEU,SAAS,CAAC;MAC/C;IACF,KAAK,kBAAkB;MACrBJ,aAAa,CAACG,IAAI,CAACoB,QAAQ,EAAE7B,QAAQ,EAAEU,SAAS,CAAC;MACjD;IACF,KAAK,OAAO;IACZ,KAAK,eAAe;IACpB,KAAK,iBAAiB;IACtB,KAAK,kBAAkB;MACrBJ,aAAa,CAACG,IAAI,CAACqB,QAAQ,EAAE9B,QAAQ,EAAEU,SAAS,CAAC;MACjD;IACF,KAAK,cAAc;MACjBJ,aAAa,CAACG,IAAI,CAACT,QAAQ,EAAEA,QAAQ,EAAEU,SAAS,CAAC;MACjD;IACF,KAAK,sBAAsB;MACzBJ,aAAa,CAACG,IAAI,CAACc,MAAM,EAAEvB,QAAQ,EAAEU,SAAS,CAAC;MAC/C;IACF,KAAK,WAAW;MACdT,YAAY,CAACQ,IAAI,CAACsB,KAAK,EAAE/B,QAAQ,EAAEU,SAAS,CAAC;MAC7C;IACF,KAAK,YAAY;IACjB,KAAK,WAAW;IAChB,KAAK,YAAY;IACjB,KAAK,kBAAkB;IACvB,KAAK,kBAAkB;MACrB;IACF;MACE;MACA,IAAIsB,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACA;QACA,MAAM,IAAIC,KAAK,CAAE,mCAAkC1B,IAAI,CAACG,IAAK,EAAC,CAAC;MACjE;EAAC;AAEP"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./interfaces\";\nexport * from \"./parseStoryboard\";\nexport * from \"./traverseStoryboard\";\n"],"mappings":"AAAA,cAAc,cAAd;AACA,cAAc,mBAAd;AACA,cAAc,sBAAd"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./interfaces\";\nexport * from \"./parseStoryboard\";\nexport * from \"./traverseStoryboard\";\n"],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,mBAAmB;AACjC,cAAc,sBAAsB"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","names":[],"sources":["../../src/interfaces.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n BrickMenuConf,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MessageConf,\n ResolveConf,\n RouteConf,\n ScrollIntoViewConf,\n SlotConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\n\nexport type StoryboardNode =\n | StoryboardNodeRoot\n | StoryboardNodeRoute\n | StoryboardNodeTemplate\n | StoryboardNodeBrick\n | StoryboardNodeSlot\n | StoryboardNodeContext\n | StoryboardNodeResolvable\n | StoryboardNodeMenu\n | StoryboardNodeLifeCycle\n | StoryboardNodeEvent\n | StoryboardNodeEventHandler\n | StoryboardNodeConditionalEvent\n | StoryboardNodeEventCallback\n | StoryboardNodeCondition\n | StoryboardNodeUseBrickEntry\n | StoryboardNodeUseBackendEntry;\n\nexport interface StoryboardNodeRoot {\n type: \"Root\";\n raw: Storyboard;\n routes: StoryboardNodeRoute[];\n templates: StoryboardNodeTemplate[];\n}\n\nexport interface StoryboardNodeTemplate {\n type: \"Template\";\n raw: CustomTemplate | CustomTemplateConstructor;\n bricks?: StoryboardNodeBrick[];\n context?: StoryboardNodeContext[];\n}\n\nexport interface StoryboardNodeRoute {\n type: \"Route\";\n raw: RouteConf;\n context?: StoryboardNodeContext[];\n redirect?: StoryboardNodeResolvable;\n menu?: StoryboardNodeMenu;\n providers?: StoryboardNodeBrick[];\n defineResolves?: StoryboardNodeResolvable[];\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeBrick =\n | StoryboardNodeNormalBrick\n | StoryboardNodeUseBrick;\n\nexport interface StoryboardNodeBrickBase {\n type: \"Brick\";\n raw: BrickConf | UseSingleBrickConf;\n isUseBrick?: boolean;\n if?: StoryboardNodeCondition;\n events?: StoryboardNodeEvent[];\n lifeCycle?: StoryboardNodeLifeCycle[];\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n context?: StoryboardNodeContext[];\n children: StoryboardNodeSlot[];\n}\n\nexport interface StoryboardNodeNormalBrick extends StoryboardNodeBrickBase {\n raw: BrickConf;\n isUseBrick?: false;\n}\n\nexport interface StoryboardNodeUseBrick extends StoryboardNodeBrickBase {\n raw: UseSingleBrickConf;\n isUseBrick: true;\n}\n\nexport interface StoryboardNodeUseBrickEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBrickEntry\";\n rawKey: \"useBrick\";\n}\n\nexport interface StoryboardNodeUseBackendEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBackendEntry\";\n rawKey: \"useBackend\";\n}\n\nexport interface StoryboardNodeUseEntryBase {\n rawContainer: Record<string, unknown>;\n children: StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeCondition =\n | StoryboardNodeLiteralCondition\n | StoryboardNodeResolvableCondition;\n\nexport interface StoryboardNodeLiteralCondition {\n type: \"LiteralCondition\";\n}\n\nexport interface StoryboardNodeResolvableCondition {\n type: \"ResolvableCondition\";\n resolve: StoryboardNodeResolvable | undefined;\n}\n\nexport interface StoryboardNodeSlot {\n type: \"Slot\";\n raw: SlotConf;\n slot: string;\n childrenType: \"Route\" | \"Brick\";\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport interface StoryboardNodeContext {\n type: \"Context\";\n raw: ContextConf | CustomTemplateState;\n resolve?: StoryboardNodeResolvable;\n onChange?: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeResolvable {\n type: \"Resolvable\";\n raw: ResolveConf;\n isConditional?: boolean;\n}\n\nexport type StoryboardNodeMenu =\n | StoryboardNodeFalseMenu\n | StoryboardNodeStaticMenu\n | StoryboardNodeBrickMenu\n | StoryboardNodeResolvableMenu;\n\nexport interface StoryboardNodeFalseMenu {\n type: \"FalseMenu\";\n}\n\nexport interface StoryboardNodeStaticMenu {\n type: \"StaticMenu\";\n}\n\nexport interface StoryboardNodeBrickMenu {\n type: \"BrickMenu\";\n raw: BrickMenuConf;\n brick: StoryboardNodeBrick;\n}\n\nexport interface StoryboardNodeResolvableMenu {\n type: \"ResolvableMenu\";\n resolve: StoryboardNodeResolvable;\n}\n\nexport type StoryboardNodeLifeCycle =\n | StoryboardNodeResolveLifeCycle\n | StoryboardNodeSimpleLifeCycle\n | StoryboardNodeConditionalLifeCycle\n | StoryboardNodeUnknownLifeCycle;\n\nexport interface StoryboardNodeResolveLifeCycle {\n type: \"ResolveLifeCycle\";\n rawContainer: BrickLifeCycle;\n rawKey: \"useResolves\";\n resolves: StoryboardNodeResolvable[] | undefined;\n}\n\nexport interface StoryboardNodeSimpleLifeCycle {\n type: \"SimpleLifeCycle\";\n name:\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMessageClose\"\n | \"onBeforePageLoad\"\n | \"onBeforePageLeave\"\n | \"onMediaChange\";\n rawContainer: BrickLifeCycle;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeConditionalLifeCycle {\n type: \"ConditionalLifeCycle\";\n name: \"onMessage\" | \"onScrollIntoView\";\n events: StoryboardNodeConditionalEvent[] | undefined;\n}\n\nexport interface StoryboardNodeUnknownLifeCycle {\n type: \"UnknownLifeCycle\";\n}\n\nexport interface StoryboardNodeEvent {\n type: \"Event\";\n rawContainer: BrickEventsMap;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventHandler {\n type: \"EventHandler\";\n raw: BrickEventHandler;\n callback: StoryboardNodeEventCallback[] | undefined;\n}\n\nexport interface StoryboardNodeConditionalEvent {\n type: \"ConditionalEvent\";\n rawContainer: MessageConf | ScrollIntoViewConf;\n rawKey: \"handlers\";\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventCallback {\n type: \"EventCallback\";\n rawContainer: BrickEventHandlerCallback;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"interfaces.js","names":[],"sources":["../../src/interfaces.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n BrickMenuConf,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MessageConf,\n ResolveConf,\n RouteConf,\n ScrollIntoViewConf,\n SlotConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\n\nexport type StoryboardNode =\n | StoryboardNodeRoot\n | StoryboardNodeRoute\n | StoryboardNodeTemplate\n | StoryboardNodeBrick\n | StoryboardNodeSlot\n | StoryboardNodeContext\n | StoryboardNodeResolvable\n | StoryboardNodeMenu\n | StoryboardNodeLifeCycle\n | StoryboardNodeEvent\n | StoryboardNodeEventHandler\n | StoryboardNodeConditionalEvent\n | StoryboardNodeEventCallback\n | StoryboardNodeCondition\n | StoryboardNodeUseBrickEntry\n | StoryboardNodeUseBackendEntry;\n\nexport interface StoryboardNodeRoot {\n type: \"Root\";\n raw: Storyboard;\n routes: StoryboardNodeRoute[];\n templates: StoryboardNodeTemplate[];\n}\n\nexport interface StoryboardNodeTemplate {\n type: \"Template\";\n raw: CustomTemplate | CustomTemplateConstructor;\n bricks?: StoryboardNodeBrick[];\n context?: StoryboardNodeContext[];\n}\n\nexport interface StoryboardNodeRoute {\n type: \"Route\";\n raw: RouteConf;\n context?: StoryboardNodeContext[];\n redirect?: StoryboardNodeResolvable;\n menu?: StoryboardNodeMenu;\n providers?: StoryboardNodeBrick[];\n defineResolves?: StoryboardNodeResolvable[];\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeBrick =\n | StoryboardNodeNormalBrick\n | StoryboardNodeUseBrick;\n\nexport interface StoryboardNodeBrickBase {\n type: \"Brick\";\n raw: BrickConf | UseSingleBrickConf;\n isUseBrick?: boolean;\n if?: StoryboardNodeCondition;\n events?: StoryboardNodeEvent[];\n lifeCycle?: StoryboardNodeLifeCycle[];\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n context?: StoryboardNodeContext[];\n children: StoryboardNodeSlot[];\n}\n\nexport interface StoryboardNodeNormalBrick extends StoryboardNodeBrickBase {\n raw: BrickConf;\n isUseBrick?: false;\n}\n\nexport interface StoryboardNodeUseBrick extends StoryboardNodeBrickBase {\n raw: UseSingleBrickConf;\n isUseBrick: true;\n}\n\nexport interface StoryboardNodeUseBrickEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBrickEntry\";\n rawKey: \"useBrick\";\n}\n\nexport interface StoryboardNodeUseBackendEntry\n extends StoryboardNodeUseEntryBase {\n type: \"UseBackendEntry\";\n rawKey: \"useBackend\";\n}\n\nexport interface StoryboardNodeUseEntryBase {\n rawContainer: Record<string, unknown>;\n children: StoryboardNodeBrick[];\n}\n\nexport type StoryboardNodeCondition =\n | StoryboardNodeLiteralCondition\n | StoryboardNodeResolvableCondition;\n\nexport interface StoryboardNodeLiteralCondition {\n type: \"LiteralCondition\";\n}\n\nexport interface StoryboardNodeResolvableCondition {\n type: \"ResolvableCondition\";\n resolve: StoryboardNodeResolvable | undefined;\n}\n\nexport interface StoryboardNodeSlot {\n type: \"Slot\";\n raw: SlotConf;\n slot: string;\n childrenType: \"Route\" | \"Brick\";\n children: StoryboardNodeRoute[] | StoryboardNodeBrick[];\n}\n\nexport interface StoryboardNodeContext {\n type: \"Context\";\n raw: ContextConf | CustomTemplateState;\n resolve?: StoryboardNodeResolvable;\n onChange?: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeResolvable {\n type: \"Resolvable\";\n raw: ResolveConf;\n isConditional?: boolean;\n}\n\nexport type StoryboardNodeMenu =\n | StoryboardNodeFalseMenu\n | StoryboardNodeStaticMenu\n | StoryboardNodeBrickMenu\n | StoryboardNodeResolvableMenu;\n\nexport interface StoryboardNodeFalseMenu {\n type: \"FalseMenu\";\n}\n\nexport interface StoryboardNodeStaticMenu {\n type: \"StaticMenu\";\n}\n\nexport interface StoryboardNodeBrickMenu {\n type: \"BrickMenu\";\n raw: BrickMenuConf;\n brick: StoryboardNodeBrick;\n}\n\nexport interface StoryboardNodeResolvableMenu {\n type: \"ResolvableMenu\";\n resolve: StoryboardNodeResolvable;\n}\n\nexport type StoryboardNodeLifeCycle =\n | StoryboardNodeResolveLifeCycle\n | StoryboardNodeSimpleLifeCycle\n | StoryboardNodeConditionalLifeCycle\n | StoryboardNodeUnknownLifeCycle;\n\nexport interface StoryboardNodeResolveLifeCycle {\n type: \"ResolveLifeCycle\";\n rawContainer: BrickLifeCycle;\n rawKey: \"useResolves\";\n resolves: StoryboardNodeResolvable[] | undefined;\n}\n\nexport interface StoryboardNodeSimpleLifeCycle {\n type: \"SimpleLifeCycle\";\n name:\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMessageClose\"\n | \"onBeforePageLoad\"\n | \"onBeforePageLeave\"\n | \"onMount\"\n | \"onUnmount\"\n | \"onMediaChange\";\n rawContainer: BrickLifeCycle;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[];\n}\n\nexport interface StoryboardNodeConditionalLifeCycle {\n type: \"ConditionalLifeCycle\";\n name: \"onMessage\" | \"onScrollIntoView\";\n events: StoryboardNodeConditionalEvent[] | undefined;\n}\n\nexport interface StoryboardNodeUnknownLifeCycle {\n type: \"UnknownLifeCycle\";\n}\n\nexport interface StoryboardNodeEvent {\n type: \"Event\";\n rawContainer: BrickEventsMap;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventHandler {\n type: \"EventHandler\";\n raw: BrickEventHandler;\n callback: StoryboardNodeEventCallback[] | undefined;\n}\n\nexport interface StoryboardNodeConditionalEvent {\n type: \"ConditionalEvent\";\n rawContainer: MessageConf | ScrollIntoViewConf;\n rawKey: \"handlers\";\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n\nexport interface StoryboardNodeEventCallback {\n type: \"EventCallback\";\n rawContainer: BrickEventHandlerCallback;\n rawKey: string;\n handlers: StoryboardNodeEventHandler[] | undefined;\n}\n"],"mappings":""}
@@ -1,9 +1,7 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
-
3
2
  /** Parse storyboard as AST. */
4
3
  export function parseStoryboard(storyboard) {
5
4
  var _storyboard$meta;
6
-
7
5
  return {
8
6
  type: "Root",
9
7
  raw: storyboard,
@@ -11,7 +9,6 @@ export function parseStoryboard(storyboard) {
11
9
  templates: parseTemplates((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.customTemplates)
12
10
  };
13
11
  }
14
-
15
12
  /** Parse storyboard routes as AST. */
16
13
  export function parseRoutes(routes, options) {
17
14
  if (Array.isArray(routes)) {
@@ -28,20 +25,18 @@ export function parseRoutes(routes, options) {
28
25
  children: route.type === "routes" ? parseRoutes(route.routes, options) : parseBricks(route.bricks, options)
29
26
  }));
30
27
  }
31
-
32
28
  return [];
33
29
  }
34
- /** Parse storyboard templates as AST. */
35
30
 
31
+ /** Parse storyboard templates as AST. */
36
32
  export function parseTemplates(templates) {
37
33
  if (Array.isArray(templates)) {
38
34
  return templates.map(parseTemplate);
39
35
  }
40
-
41
36
  return [];
42
37
  }
43
- /** Parse a storyboard template as AST. */
44
38
 
39
+ /** Parse a storyboard template as AST. */
45
40
  export function parseTemplate(tpl) {
46
41
  return {
47
42
  type: "Template",
@@ -50,17 +45,14 @@ export function parseTemplate(tpl) {
50
45
  context: parseContext(tpl.state)
51
46
  };
52
47
  }
53
-
54
48
  function parseBricks(bricks, options) {
55
49
  if (Array.isArray(bricks)) {
56
50
  return bricks.map(brick => parseBrick(brick, options));
57
51
  }
58
-
59
52
  return [];
60
53
  }
61
- /** Parse a storyboard brick as AST. */
62
-
63
54
 
55
+ /** Parse a storyboard brick as AST. */
64
56
  export function parseBrick(brick, options) {
65
57
  return _objectSpread(_objectSpread({
66
58
  type: "Brick",
@@ -76,7 +68,6 @@ export function parseBrick(brick, options) {
76
68
  children: parseSlots(brick.slots, options)
77
69
  });
78
70
  }
79
-
80
71
  function parseCondition(condition) {
81
72
  if (isObject(condition)) {
82
73
  return {
@@ -84,16 +75,13 @@ function parseCondition(condition) {
84
75
  resolve: parseResolvable(condition)
85
76
  };
86
77
  }
87
-
88
78
  return {
89
79
  type: "LiteralCondition"
90
80
  };
91
81
  }
92
-
93
82
  function parseBrickProperties(props) {
94
83
  var useBrick = [];
95
84
  var useBackend = [];
96
-
97
85
  function walkBrickProperties(value) {
98
86
  if (Array.isArray(value)) {
99
87
  for (var item of value) {
@@ -102,7 +90,6 @@ function parseBrickProperties(props) {
102
90
  } else if (isObject(value)) {
103
91
  if (value.useBrick || value.useBackend) {
104
92
  var _value$useBackend;
105
-
106
93
  if (value.useBrick) {
107
94
  useBrick.push({
108
95
  type: "UseBrickEntry",
@@ -113,9 +100,7 @@ function parseBrickProperties(props) {
113
100
  })
114
101
  });
115
102
  }
116
-
117
103
  var provider = (_value$useBackend = value.useBackend) === null || _value$useBackend === void 0 ? void 0 : _value$useBackend.provider;
118
-
119
104
  if (typeof provider === "string") {
120
105
  useBackend.push({
121
106
  type: "UseBackendEntry",
@@ -133,19 +118,16 @@ function parseBrickProperties(props) {
133
118
  }
134
119
  }
135
120
  }
136
-
137
121
  walkBrickProperties(props);
138
122
  return {
139
123
  useBrick,
140
124
  useBackend
141
125
  };
142
126
  }
143
-
144
127
  function parseLifeCycles(lifeCycle) {
145
128
  if (isObject(lifeCycle)) {
146
129
  return Object.entries(lifeCycle).map(_ref => {
147
130
  var [name, conf] = _ref;
148
-
149
131
  switch (name) {
150
132
  case "useResolves":
151
133
  return {
@@ -154,7 +136,6 @@ function parseLifeCycles(lifeCycle) {
154
136
  rawKey: name,
155
137
  resolves: Array.isArray(conf) ? conf.map(item => parseResolvable(item, true)).filter(Boolean) : undefined
156
138
  };
157
-
158
139
  case "onPageLoad":
159
140
  case "onPageLeave":
160
141
  case "onAnchorLoad":
@@ -162,6 +143,8 @@ function parseLifeCycles(lifeCycle) {
162
143
  case "onMessageClose":
163
144
  case "onBeforePageLoad":
164
145
  case "onBeforePageLeave":
146
+ case "onMount":
147
+ case "onUnmount":
165
148
  case "onMediaChange":
166
149
  return {
167
150
  type: "SimpleLifeCycle",
@@ -170,7 +153,6 @@ function parseLifeCycles(lifeCycle) {
170
153
  rawKey: name,
171
154
  handlers: parseEventHandlers(conf)
172
155
  };
173
-
174
156
  case "onMessage":
175
157
  case "onScrollIntoView":
176
158
  return {
@@ -183,7 +165,6 @@ function parseLifeCycles(lifeCycle) {
183
165
  handlers: parseEventHandlers(item.handlers)
184
166
  }))
185
167
  };
186
-
187
168
  default:
188
169
  return {
189
170
  type: "UnknownLifeCycle"
@@ -192,7 +173,6 @@ function parseLifeCycles(lifeCycle) {
192
173
  });
193
174
  }
194
175
  }
195
-
196
176
  function parseSlots(slots, options) {
197
177
  if (isObject(slots)) {
198
178
  return Object.entries(slots).map(_ref2 => {
@@ -206,10 +186,8 @@ function parseSlots(slots, options) {
206
186
  };
207
187
  });
208
188
  }
209
-
210
189
  return [];
211
190
  }
212
-
213
191
  function parseEvents(events) {
214
192
  if (isObject(events)) {
215
193
  return Object.entries(events).map(_ref3 => {
@@ -223,7 +201,6 @@ function parseEvents(events) {
223
201
  });
224
202
  }
225
203
  }
226
-
227
204
  function parseContext(contexts) {
228
205
  if (Array.isArray(contexts)) {
229
206
  return contexts.map(context => ({
@@ -234,18 +211,15 @@ function parseContext(contexts) {
234
211
  }));
235
212
  }
236
213
  }
237
-
238
214
  function parseMenu(menu) {
239
215
  if (menu === false) {
240
216
  return {
241
217
  type: "FalseMenu"
242
218
  };
243
219
  }
244
-
245
220
  if (!menu) {
246
221
  return;
247
222
  }
248
-
249
223
  switch (menu.type) {
250
224
  case "brick":
251
225
  return {
@@ -253,20 +227,17 @@ function parseMenu(menu) {
253
227
  raw: menu,
254
228
  brick: parseBrick(menu)
255
229
  };
256
-
257
230
  case "resolve":
258
231
  return {
259
232
  type: "ResolvableMenu",
260
233
  resolve: parseResolvable(menu.resolve)
261
234
  };
262
-
263
235
  default:
264
236
  return {
265
237
  type: "StaticMenu"
266
238
  };
267
239
  }
268
240
  }
269
-
270
241
  function parseResolvable(resolve, isConditional) {
271
242
  if (isObject(resolve)) {
272
243
  return {
@@ -276,7 +247,6 @@ function parseResolvable(resolve, isConditional) {
276
247
  };
277
248
  }
278
249
  }
279
-
280
250
  function parseEventHandlers(handlers) {
281
251
  return [].concat(handlers).filter(Boolean).map(handler => ({
282
252
  type: "EventHandler",
@@ -284,7 +254,6 @@ function parseEventHandlers(handlers) {
284
254
  raw: handler
285
255
  }));
286
256
  }
287
-
288
257
  function parseEventCallback(callback) {
289
258
  if (isObject(callback)) {
290
259
  return Object.entries(callback).map(_ref4 => {
@@ -298,16 +267,15 @@ function parseEventCallback(callback) {
298
267
  });
299
268
  }
300
269
  }
301
-
302
270
  function parseRouteProviders(providers) {
303
271
  if (Array.isArray(providers)) {
304
272
  return providers.map(provider => parseBrick(typeof provider === "string" ? {
305
273
  brick: provider
306
274
  } : provider));
307
275
  }
308
- } // Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744
309
-
276
+ }
310
277
 
278
+ // Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744
311
279
  function isObject(value) {
312
280
  var type = typeof value;
313
281
  return value != null && (type == "object" || type == "function");
@@ -1 +1 @@
1
- {"version":3,"file":"parseStoryboard.js","names":["parseStoryboard","storyboard","type","raw","routes","parseRoutes","templates","parseTemplates","meta","customTemplates","options","Array","isArray","map","route","routesOnly","context","parseContext","redirect","parseResolvable","menu","parseMenu","providers","parseRouteProviders","defineResolves","item","filter","Boolean","undefined","children","parseBricks","bricks","parseTemplate","tpl","state","brick","parseBrick","isUseBrick","if","parseCondition","events","parseEvents","lifeCycle","parseLifeCycles","parseBrickProperties","properties","parseSlots","slots","condition","isObject","resolve","props","useBrick","useBackend","walkBrickProperties","value","push","rawContainer","rawKey","concat","provider","Object","values","entries","name","conf","resolves","handlers","parseEventHandlers","slot","childrenType","eventType","contexts","onChange","isConditional","handler","callback","parseEventCallback","callbackType"],"sources":["../../src/parseStoryboard.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MenuConf,\n MessageConf,\n ProviderConf,\n ResolveConf,\n RouteConf,\n RouteConfOfBricks,\n ScrollIntoViewConf,\n SlotsConf,\n Storyboard,\n UseProviderEventHandler,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\nimport type {\n StoryboardNodeBrick,\n StoryboardNodeCondition,\n StoryboardNodeConditionalEvent,\n StoryboardNodeContext,\n StoryboardNodeEvent,\n StoryboardNodeEventCallback,\n StoryboardNodeEventHandler,\n StoryboardNodeLifeCycle,\n StoryboardNodeMenu,\n StoryboardNodeResolvable,\n StoryboardNodeRoot,\n StoryboardNodeRoute,\n StoryboardNodeSlot,\n StoryboardNodeTemplate,\n StoryboardNodeUseBackendEntry,\n StoryboardNodeUseBrickEntry,\n} from \"./interfaces\";\n\n/** Parse storyboard as AST. */\nexport function parseStoryboard(storyboard: Storyboard): StoryboardNodeRoot {\n return {\n type: \"Root\",\n raw: storyboard,\n routes: parseRoutes(storyboard.routes),\n templates: parseTemplates(storyboard.meta?.customTemplates),\n };\n}\n\nexport interface ParseOptions {\n routesOnly?: boolean;\n isUseBrick?: boolean;\n}\n\n/** Parse storyboard routes as AST. */\nexport function parseRoutes(\n routes: RouteConf[],\n options?: ParseOptions\n): StoryboardNodeRoute[] {\n if (Array.isArray(routes)) {\n return routes.map<StoryboardNodeRoute>((route) => ({\n type: \"Route\",\n raw: route,\n ...(options?.routesOnly\n ? null\n : {\n context: parseContext(route.context),\n redirect: parseResolvable(route.redirect as ResolveConf),\n menu: parseMenu(route.menu),\n providers: parseRouteProviders(route.providers),\n defineResolves: Array.isArray(route.defineResolves)\n ? route.defineResolves\n .map((item) => parseResolvable(item))\n .filter(Boolean)\n : undefined,\n }),\n children:\n route.type === \"routes\"\n ? parseRoutes(route.routes, options)\n : parseBricks((route as RouteConfOfBricks).bricks, options),\n }));\n }\n return [];\n}\n\n/** Parse storyboard templates as AST. */\nexport function parseTemplates(\n templates: (CustomTemplate | CustomTemplateConstructor)[]\n): StoryboardNodeTemplate[] {\n if (Array.isArray(templates)) {\n return templates.map<StoryboardNodeTemplate>(parseTemplate);\n }\n return [];\n}\n\n/** Parse a storyboard template as AST. */\nexport function parseTemplate(\n tpl: CustomTemplate | CustomTemplateConstructor\n): StoryboardNodeTemplate {\n return {\n type: \"Template\",\n raw: tpl,\n bricks: parseBricks(tpl.bricks),\n context: parseContext(tpl.state),\n };\n}\n\nfunction parseBricks(\n bricks: BrickConf[] | UseSingleBrickConf[],\n options?: ParseOptions\n): StoryboardNodeBrick[] {\n if (Array.isArray(bricks)) {\n return bricks.map((brick) => parseBrick(brick, options));\n }\n return [];\n}\n\n/** Parse a storyboard brick as AST. */\nexport function parseBrick(\n brick: BrickConf | UseSingleBrickConf,\n options?: ParseOptions\n): StoryboardNodeBrick {\n return {\n type: \"Brick\",\n raw: brick,\n isUseBrick: options?.isUseBrick,\n ...(options?.routesOnly\n ? null\n : {\n if: parseCondition(brick.if),\n events: parseEvents(brick.events),\n lifeCycle: parseLifeCycles(brick.lifeCycle),\n ...parseBrickProperties(brick.properties),\n context: parseContext((brick as BrickConf).context),\n }),\n children: parseSlots(brick.slots as SlotsConf, options),\n } as StoryboardNodeBrick;\n}\n\nfunction parseCondition(condition: BrickConf[\"if\"]): StoryboardNodeCondition {\n if (isObject(condition)) {\n return {\n type: \"ResolvableCondition\",\n resolve: parseResolvable(condition),\n };\n }\n return {\n type: \"LiteralCondition\",\n };\n}\n\nfunction parseBrickProperties(props: unknown): {\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n} {\n const useBrick: StoryboardNodeUseBrickEntry[] = [];\n const useBackend: StoryboardNodeUseBackendEntry[] = [];\n\n function walkBrickProperties(value: unknown): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n walkBrickProperties(item);\n }\n } else if (isObject(value)) {\n if (value.useBrick || value.useBackend) {\n if (value.useBrick) {\n useBrick.push({\n type: \"UseBrickEntry\",\n rawContainer: value,\n rawKey: \"useBrick\",\n children: parseBricks(\n ([] as UseSingleBrickConf[]).concat(value.useBrick),\n {\n isUseBrick: true,\n }\n ),\n });\n }\n const provider = value.useBackend?.provider;\n if (typeof provider === \"string\") {\n useBackend.push({\n type: \"UseBackendEntry\",\n rawContainer: value,\n rawKey: \"useBackend\",\n children: [parseBrick({ brick: provider })],\n });\n }\n } else {\n for (const item of Object.values(value)) {\n walkBrickProperties(item);\n }\n }\n }\n }\n\n walkBrickProperties(props);\n\n return { useBrick, useBackend };\n}\n\nfunction parseLifeCycles(lifeCycle: BrickLifeCycle): StoryboardNodeLifeCycle[] {\n if (isObject(lifeCycle)) {\n return Object.entries(lifeCycle).map<StoryboardNodeLifeCycle>(\n ([name, conf]) => {\n switch (name) {\n case \"useResolves\":\n return {\n type: \"ResolveLifeCycle\",\n rawContainer: lifeCycle,\n rawKey: name,\n resolves: Array.isArray(conf)\n ? conf\n .map((item) => parseResolvable(item, true))\n .filter(Boolean)\n : undefined,\n };\n case \"onPageLoad\":\n case \"onPageLeave\":\n case \"onAnchorLoad\":\n case \"onAnchorUnload\":\n case \"onMessageClose\":\n case \"onBeforePageLoad\":\n case \"onBeforePageLeave\":\n case \"onMediaChange\":\n return {\n type: \"SimpleLifeCycle\",\n name,\n rawContainer: lifeCycle,\n rawKey: name,\n handlers: parseEventHandlers(conf),\n };\n case \"onMessage\":\n case \"onScrollIntoView\":\n return {\n type: \"ConditionalLifeCycle\",\n name,\n events: ([] as (MessageConf | ScrollIntoViewConf)[])\n .concat(conf)\n .filter(Boolean)\n .map<StoryboardNodeConditionalEvent>((item) => ({\n type: \"ConditionalEvent\",\n rawContainer: item,\n rawKey: \"handlers\",\n handlers: parseEventHandlers(item.handlers),\n })),\n };\n default:\n return { type: \"UnknownLifeCycle\" };\n }\n }\n );\n }\n}\n\nfunction parseSlots(\n slots: SlotsConf,\n options?: ParseOptions\n): StoryboardNodeSlot[] {\n if (isObject(slots)) {\n return Object.entries(slots).map<StoryboardNodeSlot>(([slot, conf]) => ({\n type: \"Slot\",\n raw: conf,\n slot,\n childrenType: conf.type === \"routes\" ? \"Route\" : \"Brick\",\n children:\n conf.type === \"routes\"\n ? parseRoutes(conf.routes, options)\n : parseBricks(conf.bricks, options),\n }));\n }\n return [];\n}\n\nfunction parseEvents(events: BrickEventsMap): StoryboardNodeEvent[] {\n if (isObject(events)) {\n return Object.entries(events).map<StoryboardNodeEvent>(\n ([eventType, handlers]) => ({\n type: \"Event\",\n rawContainer: events,\n rawKey: eventType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseContext(\n contexts: (ContextConf | CustomTemplateState)[]\n): StoryboardNodeContext[] {\n if (Array.isArray(contexts)) {\n return contexts.map<StoryboardNodeContext>((context) => ({\n type: \"Context\",\n raw: context,\n resolve: parseResolvable(context.resolve),\n onChange: parseEventHandlers(context.onChange),\n }));\n }\n}\n\nfunction parseMenu(menu: MenuConf): StoryboardNodeMenu {\n if (menu === false) {\n return { type: \"FalseMenu\" };\n }\n if (!menu) {\n return;\n }\n switch (menu.type) {\n case \"brick\":\n return {\n type: \"BrickMenu\",\n raw: menu,\n brick: parseBrick(menu),\n };\n case \"resolve\":\n return {\n type: \"ResolvableMenu\",\n resolve: parseResolvable(menu.resolve),\n };\n default:\n return {\n type: \"StaticMenu\",\n };\n }\n}\n\nfunction parseResolvable(\n resolve: ResolveConf,\n isConditional?: boolean\n): StoryboardNodeResolvable {\n if (isObject(resolve)) {\n return {\n type: \"Resolvable\",\n raw: resolve,\n isConditional,\n };\n }\n}\n\nfunction parseEventHandlers(\n handlers: BrickEventHandler | BrickEventHandler[]\n): StoryboardNodeEventHandler[] {\n return ([] as BrickEventHandler[])\n .concat(handlers)\n .filter(Boolean)\n .map<StoryboardNodeEventHandler>((handler) => ({\n type: \"EventHandler\",\n callback: parseEventCallback(\n (handler as UseProviderEventHandler).callback\n ),\n raw: handler,\n }));\n}\n\nfunction parseEventCallback(\n callback: BrickEventHandlerCallback\n): StoryboardNodeEventCallback[] {\n if (isObject(callback)) {\n return Object.entries(callback).map<StoryboardNodeEventCallback>(\n ([callbackType, handlers]) => ({\n type: \"EventCallback\",\n rawContainer: callback as BrickEventsMap,\n rawKey: callbackType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseRouteProviders(\n providers?: ProviderConf[]\n): StoryboardNodeBrick[] {\n if (Array.isArray(providers)) {\n return providers.map<StoryboardNodeBrick>((provider) =>\n parseBrick(typeof provider === \"string\" ? { brick: provider } : provider)\n );\n }\n}\n\n// Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744\nfunction isObject(value: unknown): value is Record<string, any> {\n const type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parseStoryboard.js","names":["parseStoryboard","storyboard","type","raw","routes","parseRoutes","templates","parseTemplates","meta","customTemplates","options","Array","isArray","map","route","routesOnly","context","parseContext","redirect","parseResolvable","menu","parseMenu","providers","parseRouteProviders","defineResolves","item","filter","Boolean","undefined","children","parseBricks","bricks","parseTemplate","tpl","state","brick","parseBrick","isUseBrick","if","parseCondition","events","parseEvents","lifeCycle","parseLifeCycles","parseBrickProperties","properties","parseSlots","slots","condition","isObject","resolve","props","useBrick","useBackend","walkBrickProperties","value","push","rawContainer","rawKey","concat","provider","Object","values","entries","name","conf","resolves","handlers","parseEventHandlers","slot","childrenType","eventType","contexts","onChange","isConditional","handler","callback","parseEventCallback","callbackType"],"sources":["../../src/parseStoryboard.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BrickLifeCycle,\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateState,\n MenuConf,\n MessageConf,\n ProviderConf,\n ResolveConf,\n RouteConf,\n RouteConfOfBricks,\n ScrollIntoViewConf,\n SlotsConf,\n Storyboard,\n UseProviderEventHandler,\n UseSingleBrickConf,\n} from \"@next-core/brick-types\";\nimport type {\n StoryboardNodeBrick,\n StoryboardNodeCondition,\n StoryboardNodeConditionalEvent,\n StoryboardNodeContext,\n StoryboardNodeEvent,\n StoryboardNodeEventCallback,\n StoryboardNodeEventHandler,\n StoryboardNodeLifeCycle,\n StoryboardNodeMenu,\n StoryboardNodeResolvable,\n StoryboardNodeRoot,\n StoryboardNodeRoute,\n StoryboardNodeSlot,\n StoryboardNodeTemplate,\n StoryboardNodeUseBackendEntry,\n StoryboardNodeUseBrickEntry,\n} from \"./interfaces\";\n\n/** Parse storyboard as AST. */\nexport function parseStoryboard(storyboard: Storyboard): StoryboardNodeRoot {\n return {\n type: \"Root\",\n raw: storyboard,\n routes: parseRoutes(storyboard.routes),\n templates: parseTemplates(storyboard.meta?.customTemplates),\n };\n}\n\nexport interface ParseOptions {\n routesOnly?: boolean;\n isUseBrick?: boolean;\n}\n\n/** Parse storyboard routes as AST. */\nexport function parseRoutes(\n routes: RouteConf[],\n options?: ParseOptions\n): StoryboardNodeRoute[] {\n if (Array.isArray(routes)) {\n return routes.map<StoryboardNodeRoute>((route) => ({\n type: \"Route\",\n raw: route,\n ...(options?.routesOnly\n ? null\n : {\n context: parseContext(route.context),\n redirect: parseResolvable(route.redirect as ResolveConf),\n menu: parseMenu(route.menu),\n providers: parseRouteProviders(route.providers),\n defineResolves: Array.isArray(route.defineResolves)\n ? route.defineResolves\n .map((item) => parseResolvable(item))\n .filter(Boolean)\n : undefined,\n }),\n children:\n route.type === \"routes\"\n ? parseRoutes(route.routes, options)\n : parseBricks((route as RouteConfOfBricks).bricks, options),\n }));\n }\n return [];\n}\n\n/** Parse storyboard templates as AST. */\nexport function parseTemplates(\n templates: (CustomTemplate | CustomTemplateConstructor)[]\n): StoryboardNodeTemplate[] {\n if (Array.isArray(templates)) {\n return templates.map<StoryboardNodeTemplate>(parseTemplate);\n }\n return [];\n}\n\n/** Parse a storyboard template as AST. */\nexport function parseTemplate(\n tpl: CustomTemplate | CustomTemplateConstructor\n): StoryboardNodeTemplate {\n return {\n type: \"Template\",\n raw: tpl,\n bricks: parseBricks(tpl.bricks),\n context: parseContext(tpl.state),\n };\n}\n\nfunction parseBricks(\n bricks: BrickConf[] | UseSingleBrickConf[],\n options?: ParseOptions\n): StoryboardNodeBrick[] {\n if (Array.isArray(bricks)) {\n return bricks.map((brick) => parseBrick(brick, options));\n }\n return [];\n}\n\n/** Parse a storyboard brick as AST. */\nexport function parseBrick(\n brick: BrickConf | UseSingleBrickConf,\n options?: ParseOptions\n): StoryboardNodeBrick {\n return {\n type: \"Brick\",\n raw: brick,\n isUseBrick: options?.isUseBrick,\n ...(options?.routesOnly\n ? null\n : {\n if: parseCondition(brick.if),\n events: parseEvents(brick.events),\n lifeCycle: parseLifeCycles(brick.lifeCycle),\n ...parseBrickProperties(brick.properties),\n context: parseContext((brick as BrickConf).context),\n }),\n children: parseSlots(brick.slots as SlotsConf, options),\n } as StoryboardNodeBrick;\n}\n\nfunction parseCondition(condition: BrickConf[\"if\"]): StoryboardNodeCondition {\n if (isObject(condition)) {\n return {\n type: \"ResolvableCondition\",\n resolve: parseResolvable(condition),\n };\n }\n return {\n type: \"LiteralCondition\",\n };\n}\n\nfunction parseBrickProperties(props: unknown): {\n useBrick?: StoryboardNodeUseBrickEntry[];\n useBackend?: StoryboardNodeUseBackendEntry[];\n} {\n const useBrick: StoryboardNodeUseBrickEntry[] = [];\n const useBackend: StoryboardNodeUseBackendEntry[] = [];\n\n function walkBrickProperties(value: unknown): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n walkBrickProperties(item);\n }\n } else if (isObject(value)) {\n if (value.useBrick || value.useBackend) {\n if (value.useBrick) {\n useBrick.push({\n type: \"UseBrickEntry\",\n rawContainer: value,\n rawKey: \"useBrick\",\n children: parseBricks(\n ([] as UseSingleBrickConf[]).concat(value.useBrick),\n {\n isUseBrick: true,\n }\n ),\n });\n }\n const provider = value.useBackend?.provider;\n if (typeof provider === \"string\") {\n useBackend.push({\n type: \"UseBackendEntry\",\n rawContainer: value,\n rawKey: \"useBackend\",\n children: [parseBrick({ brick: provider })],\n });\n }\n } else {\n for (const item of Object.values(value)) {\n walkBrickProperties(item);\n }\n }\n }\n }\n\n walkBrickProperties(props);\n\n return { useBrick, useBackend };\n}\n\nfunction parseLifeCycles(lifeCycle: BrickLifeCycle): StoryboardNodeLifeCycle[] {\n if (isObject(lifeCycle)) {\n return Object.entries(lifeCycle).map<StoryboardNodeLifeCycle>(\n ([name, conf]) => {\n switch (name) {\n case \"useResolves\":\n return {\n type: \"ResolveLifeCycle\",\n rawContainer: lifeCycle,\n rawKey: name,\n resolves: Array.isArray(conf)\n ? conf\n .map((item) => parseResolvable(item, true))\n .filter(Boolean)\n : undefined,\n };\n case \"onPageLoad\":\n case \"onPageLeave\":\n case \"onAnchorLoad\":\n case \"onAnchorUnload\":\n case \"onMessageClose\":\n case \"onBeforePageLoad\":\n case \"onBeforePageLeave\":\n case \"onMount\":\n case \"onUnmount\":\n case \"onMediaChange\":\n return {\n type: \"SimpleLifeCycle\",\n name,\n rawContainer: lifeCycle,\n rawKey: name,\n handlers: parseEventHandlers(conf),\n };\n case \"onMessage\":\n case \"onScrollIntoView\":\n return {\n type: \"ConditionalLifeCycle\",\n name,\n events: ([] as (MessageConf | ScrollIntoViewConf)[])\n .concat(conf)\n .filter(Boolean)\n .map<StoryboardNodeConditionalEvent>((item) => ({\n type: \"ConditionalEvent\",\n rawContainer: item,\n rawKey: \"handlers\",\n handlers: parseEventHandlers(item.handlers),\n })),\n };\n default:\n return { type: \"UnknownLifeCycle\" };\n }\n }\n );\n }\n}\n\nfunction parseSlots(\n slots: SlotsConf,\n options?: ParseOptions\n): StoryboardNodeSlot[] {\n if (isObject(slots)) {\n return Object.entries(slots).map<StoryboardNodeSlot>(([slot, conf]) => ({\n type: \"Slot\",\n raw: conf,\n slot,\n childrenType: conf.type === \"routes\" ? \"Route\" : \"Brick\",\n children:\n conf.type === \"routes\"\n ? parseRoutes(conf.routes, options)\n : parseBricks(conf.bricks, options),\n }));\n }\n return [];\n}\n\nfunction parseEvents(events: BrickEventsMap): StoryboardNodeEvent[] {\n if (isObject(events)) {\n return Object.entries(events).map<StoryboardNodeEvent>(\n ([eventType, handlers]) => ({\n type: \"Event\",\n rawContainer: events,\n rawKey: eventType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseContext(\n contexts: (ContextConf | CustomTemplateState)[]\n): StoryboardNodeContext[] {\n if (Array.isArray(contexts)) {\n return contexts.map<StoryboardNodeContext>((context) => ({\n type: \"Context\",\n raw: context,\n resolve: parseResolvable(context.resolve),\n onChange: parseEventHandlers(context.onChange),\n }));\n }\n}\n\nfunction parseMenu(menu: MenuConf): StoryboardNodeMenu {\n if (menu === false) {\n return { type: \"FalseMenu\" };\n }\n if (!menu) {\n return;\n }\n switch (menu.type) {\n case \"brick\":\n return {\n type: \"BrickMenu\",\n raw: menu,\n brick: parseBrick(menu),\n };\n case \"resolve\":\n return {\n type: \"ResolvableMenu\",\n resolve: parseResolvable(menu.resolve),\n };\n default:\n return {\n type: \"StaticMenu\",\n };\n }\n}\n\nfunction parseResolvable(\n resolve: ResolveConf,\n isConditional?: boolean\n): StoryboardNodeResolvable {\n if (isObject(resolve)) {\n return {\n type: \"Resolvable\",\n raw: resolve,\n isConditional,\n };\n }\n}\n\nfunction parseEventHandlers(\n handlers: BrickEventHandler | BrickEventHandler[]\n): StoryboardNodeEventHandler[] {\n return ([] as BrickEventHandler[])\n .concat(handlers)\n .filter(Boolean)\n .map<StoryboardNodeEventHandler>((handler) => ({\n type: \"EventHandler\",\n callback: parseEventCallback(\n (handler as UseProviderEventHandler).callback\n ),\n raw: handler,\n }));\n}\n\nfunction parseEventCallback(\n callback: BrickEventHandlerCallback\n): StoryboardNodeEventCallback[] {\n if (isObject(callback)) {\n return Object.entries(callback).map<StoryboardNodeEventCallback>(\n ([callbackType, handlers]) => ({\n type: \"EventCallback\",\n rawContainer: callback as BrickEventsMap,\n rawKey: callbackType,\n handlers: parseEventHandlers(handlers),\n })\n );\n }\n}\n\nfunction parseRouteProviders(\n providers?: ProviderConf[]\n): StoryboardNodeBrick[] {\n if (Array.isArray(providers)) {\n return providers.map<StoryboardNodeBrick>((provider) =>\n parseBrick(typeof provider === \"string\" ? { brick: provider } : provider)\n );\n }\n}\n\n// Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744\nfunction isObject(value: unknown): value is Record<string, any> {\n const type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\n"],"mappings":"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"}
@@ -2,8 +2,8 @@
2
2
  export function traverseStoryboard(ast, callback) {
3
3
  traverseNode(ast, callback, []);
4
4
  }
5
- /** Traverse any node(s) in storyboard AST. */
6
5
 
6
+ /** Traverse any node(s) in storyboard AST. */
7
7
  export function traverse(nodeOrNodes, callback) {
8
8
  if (Array.isArray(nodeOrNodes)) {
9
9
  traverseNodes(nodeOrNodes, callback, []);
@@ -11,31 +11,25 @@ export function traverse(nodeOrNodes, callback) {
11
11
  traverseNode(nodeOrNodes, callback, []);
12
12
  }
13
13
  }
14
-
15
14
  function traverseNodes(nodes, callback, path) {
16
15
  if (!nodes) {
17
16
  return;
18
17
  }
19
-
20
18
  for (var _node of nodes) {
21
19
  traverseNode(_node, callback, path);
22
20
  }
23
21
  }
24
-
25
22
  function traverseNode(node, callback, path) {
26
23
  if (!node) {
27
24
  return;
28
25
  }
29
-
30
26
  callback(node, path);
31
27
  var childPath = path.concat(node);
32
-
33
28
  switch (node.type) {
34
29
  case "Root":
35
30
  traverseNodes(node.routes, callback, childPath);
36
31
  traverseNodes(node.templates, callback, childPath);
37
32
  break;
38
-
39
33
  case "Route":
40
34
  traverseNodes(node.context, callback, childPath);
41
35
  traverseNode(node.redirect, callback, childPath);
@@ -44,12 +38,10 @@ function traverseNode(node, callback, path) {
44
38
  traverseNodes(node.defineResolves, callback, childPath);
45
39
  traverseNodes(node.children, callback, childPath);
46
40
  break;
47
-
48
41
  case "Template":
49
42
  traverseNodes(node.bricks, callback, childPath);
50
43
  traverseNodes(node.context, callback, childPath);
51
44
  break;
52
-
53
45
  case "Brick":
54
46
  traverseNode(node.if, callback, childPath);
55
47
  traverseNodes(node.events, callback, childPath);
@@ -59,53 +51,43 @@ function traverseNode(node, callback, path) {
59
51
  traverseNodes(node.context, callback, childPath);
60
52
  traverseNodes(node.children, callback, childPath);
61
53
  break;
62
-
63
54
  case "Slot":
64
55
  case "UseBrickEntry":
65
56
  case "UseBackendEntry":
66
57
  traverseNodes(node.children, callback, childPath);
67
58
  break;
68
-
69
59
  case "Context":
70
60
  traverseNode(node.resolve, callback, childPath);
71
61
  traverseNodes(node.onChange, callback, childPath);
72
62
  break;
73
-
74
63
  case "ResolvableCondition":
75
64
  case "ResolvableMenu":
76
65
  traverseNode(node.resolve, callback, childPath);
77
66
  break;
78
-
79
67
  case "ResolveLifeCycle":
80
68
  traverseNodes(node.resolves, callback, childPath);
81
69
  break;
82
-
83
70
  case "Event":
84
71
  case "EventCallback":
85
72
  case "SimpleLifeCycle":
86
73
  case "ConditionalEvent":
87
74
  traverseNodes(node.handlers, callback, childPath);
88
75
  break;
89
-
90
76
  case "EventHandler":
91
77
  traverseNodes(node.callback, callback, childPath);
92
78
  break;
93
-
94
79
  case "ConditionalLifeCycle":
95
80
  traverseNodes(node.events, callback, childPath);
96
81
  break;
97
-
98
82
  case "BrickMenu":
99
83
  traverseNode(node.brick, callback, childPath);
100
84
  break;
101
-
102
85
  case "Resolvable":
103
86
  case "FalseMenu":
104
87
  case "StaticMenu":
105
88
  case "UnknownLifeCycle":
106
89
  case "LiteralCondition":
107
90
  break;
108
-
109
91
  default:
110
92
  // istanbul ignore if
111
93
  if (process.env.NODE_ENV === "development") {
@@ -113,7 +95,6 @@ function traverseNode(node, callback, path) {
113
95
  // @ts-expect-error
114
96
  throw new Error("Unhandled storyboard node type: ".concat(node.type));
115
97
  }
116
-
117
98
  }
118
99
  }
119
100
  //# sourceMappingURL=traverseStoryboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverseStoryboard.js","names":["traverseStoryboard","ast","callback","traverseNode","traverse","nodeOrNodes","Array","isArray","traverseNodes","nodes","path","node","childPath","concat","type","routes","templates","context","redirect","menu","providers","defineResolves","children","bricks","if","events","lifeCycle","useBrick","useBackend","resolve","onChange","resolves","handlers","brick","process","env","NODE_ENV","Error"],"sources":["../../src/traverseStoryboard.ts"],"sourcesContent":["import type { StoryboardNode, StoryboardNodeRoot } from \"./interfaces\";\n\nexport type TraverseCallback = (\n node: StoryboardNode,\n path: StoryboardNode[]\n) => void;\n\n/** Traverse a storyboard AST. */\nexport function traverseStoryboard(\n ast: StoryboardNodeRoot,\n callback: TraverseCallback\n): void {\n traverseNode(ast, callback, []);\n}\n\n/** Traverse any node(s) in storyboard AST. */\nexport function traverse(\n nodeOrNodes: StoryboardNode | StoryboardNode[],\n callback: TraverseCallback\n): void {\n if (Array.isArray(nodeOrNodes)) {\n traverseNodes(nodeOrNodes, callback, []);\n } else {\n traverseNode(nodeOrNodes, callback, []);\n }\n}\n\nfunction traverseNodes(\n nodes: StoryboardNode[],\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n traverseNode(node, callback, path);\n }\n}\n\nfunction traverseNode(\n node: StoryboardNode,\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!node) {\n return;\n }\n callback(node, path);\n const childPath = path.concat(node);\n switch (node.type) {\n case \"Root\":\n traverseNodes(node.routes, callback, childPath);\n traverseNodes(node.templates, callback, childPath);\n break;\n case \"Route\":\n traverseNodes(node.context, callback, childPath);\n traverseNode(node.redirect, callback, childPath);\n traverseNode(node.menu, callback, childPath);\n traverseNodes(node.providers, callback, childPath);\n traverseNodes(node.defineResolves, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Template\":\n traverseNodes(node.bricks, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n break;\n case \"Brick\":\n traverseNode(node.if, callback, childPath);\n traverseNodes(node.events, callback, childPath);\n traverseNodes(node.lifeCycle, callback, childPath);\n traverseNodes(node.useBrick, callback, childPath);\n traverseNodes(node.useBackend, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Slot\":\n case \"UseBrickEntry\":\n case \"UseBackendEntry\":\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Context\":\n traverseNode(node.resolve, callback, childPath);\n traverseNodes(node.onChange, callback, childPath);\n break;\n case \"ResolvableCondition\":\n case \"ResolvableMenu\":\n traverseNode(node.resolve, callback, childPath);\n break;\n case \"ResolveLifeCycle\":\n traverseNodes(node.resolves, callback, childPath);\n break;\n case \"Event\":\n case \"EventCallback\":\n case \"SimpleLifeCycle\":\n case \"ConditionalEvent\":\n traverseNodes(node.handlers, callback, childPath);\n break;\n case \"EventHandler\":\n traverseNodes(node.callback, callback, childPath);\n break;\n case \"ConditionalLifeCycle\":\n traverseNodes(node.events, callback, childPath);\n break;\n case \"BrickMenu\":\n traverseNode(node.brick, callback, childPath);\n break;\n case \"Resolvable\":\n case \"FalseMenu\":\n case \"StaticMenu\":\n case \"UnknownLifeCycle\":\n case \"LiteralCondition\":\n break;\n default:\n // istanbul ignore if\n if (process.env.NODE_ENV === \"development\") {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n throw new Error(`Unhandled storyboard node type: ${node.type}`);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"traverseStoryboard.js","names":["traverseStoryboard","ast","callback","traverseNode","traverse","nodeOrNodes","Array","isArray","traverseNodes","nodes","path","node","childPath","concat","type","routes","templates","context","redirect","menu","providers","defineResolves","children","bricks","if","events","lifeCycle","useBrick","useBackend","resolve","onChange","resolves","handlers","brick","process","env","NODE_ENV","Error"],"sources":["../../src/traverseStoryboard.ts"],"sourcesContent":["import type { StoryboardNode, StoryboardNodeRoot } from \"./interfaces\";\n\nexport type TraverseCallback = (\n node: StoryboardNode,\n path: StoryboardNode[]\n) => void;\n\n/** Traverse a storyboard AST. */\nexport function traverseStoryboard(\n ast: StoryboardNodeRoot,\n callback: TraverseCallback\n): void {\n traverseNode(ast, callback, []);\n}\n\n/** Traverse any node(s) in storyboard AST. */\nexport function traverse(\n nodeOrNodes: StoryboardNode | StoryboardNode[],\n callback: TraverseCallback\n): void {\n if (Array.isArray(nodeOrNodes)) {\n traverseNodes(nodeOrNodes, callback, []);\n } else {\n traverseNode(nodeOrNodes, callback, []);\n }\n}\n\nfunction traverseNodes(\n nodes: StoryboardNode[],\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n traverseNode(node, callback, path);\n }\n}\n\nfunction traverseNode(\n node: StoryboardNode,\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!node) {\n return;\n }\n callback(node, path);\n const childPath = path.concat(node);\n switch (node.type) {\n case \"Root\":\n traverseNodes(node.routes, callback, childPath);\n traverseNodes(node.templates, callback, childPath);\n break;\n case \"Route\":\n traverseNodes(node.context, callback, childPath);\n traverseNode(node.redirect, callback, childPath);\n traverseNode(node.menu, callback, childPath);\n traverseNodes(node.providers, callback, childPath);\n traverseNodes(node.defineResolves, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Template\":\n traverseNodes(node.bricks, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n break;\n case \"Brick\":\n traverseNode(node.if, callback, childPath);\n traverseNodes(node.events, callback, childPath);\n traverseNodes(node.lifeCycle, callback, childPath);\n traverseNodes(node.useBrick, callback, childPath);\n traverseNodes(node.useBackend, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Slot\":\n case \"UseBrickEntry\":\n case \"UseBackendEntry\":\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Context\":\n traverseNode(node.resolve, callback, childPath);\n traverseNodes(node.onChange, callback, childPath);\n break;\n case \"ResolvableCondition\":\n case \"ResolvableMenu\":\n traverseNode(node.resolve, callback, childPath);\n break;\n case \"ResolveLifeCycle\":\n traverseNodes(node.resolves, callback, childPath);\n break;\n case \"Event\":\n case \"EventCallback\":\n case \"SimpleLifeCycle\":\n case \"ConditionalEvent\":\n traverseNodes(node.handlers, callback, childPath);\n break;\n case \"EventHandler\":\n traverseNodes(node.callback, callback, childPath);\n break;\n case \"ConditionalLifeCycle\":\n traverseNodes(node.events, callback, childPath);\n break;\n case \"BrickMenu\":\n traverseNode(node.brick, callback, childPath);\n break;\n case \"Resolvable\":\n case \"FalseMenu\":\n case \"StaticMenu\":\n case \"UnknownLifeCycle\":\n case \"LiteralCondition\":\n break;\n default:\n // istanbul ignore if\n if (process.env.NODE_ENV === \"development\") {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n throw new Error(`Unhandled storyboard node type: ${node.type}`);\n }\n }\n}\n"],"mappings":"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"}
@@ -106,7 +106,7 @@ export interface StoryboardNodeResolveLifeCycle {
106
106
  }
107
107
  export interface StoryboardNodeSimpleLifeCycle {
108
108
  type: "SimpleLifeCycle";
109
- name: "onPageLoad" | "onPageLeave" | "onAnchorLoad" | "onAnchorUnload" | "onMessageClose" | "onBeforePageLoad" | "onBeforePageLeave" | "onMediaChange";
109
+ name: "onPageLoad" | "onPageLeave" | "onAnchorLoad" | "onAnchorUnload" | "onMessageClose" | "onBeforePageLoad" | "onBeforePageLeave" | "onMount" | "onUnmount" | "onMediaChange";
110
110
  rawContainer: BrickLifeCycle;
111
111
  rawKey: string;
112
112
  handlers: StoryboardNodeEventHandler[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/storyboard",
3
- "version": "0.2.4",
3
+ "version": "0.3.1",
4
4
  "description": "Parse storyboard as AST",
5
5
  "homepage": "https://github.com/easyops-cn/next-core/tree/master/packages/storyboard",
6
6
  "license": "GPL-3.0",
@@ -29,10 +29,10 @@
29
29
  },
30
30
  "sideEffects": false,
31
31
  "dependencies": {
32
- "@next-core/brick-types": "^2.81.11"
32
+ "@next-core/brick-types": "^2.82.1"
33
33
  },
34
34
  "devDependencies": {
35
- "@next-core/build-next-libs": "^0.2.15"
35
+ "@next-core/build-next-libs": "^0.2.16"
36
36
  },
37
- "gitHead": "c8e0a0291c6dc1094812d07eeaae5d0f5edb315c"
37
+ "gitHead": "c1040bc38d16aa9fd662bd27ccbcd464b073aa63"
38
38
  }