@genome-spy/core 0.70.0 → 0.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/dist/bundle/index.es.js +3865 -3631
  2. package/dist/bundle/index.js +80 -80
  3. package/dist/schema.json +0 -48
  4. package/dist/src/genomeSpy/containerUi.d.ts.map +1 -1
  5. package/dist/src/genomeSpy/containerUi.js +0 -1
  6. package/dist/src/genomeSpy/viewHighlight.js +2 -2
  7. package/dist/src/genomeSpy.d.ts +3 -3
  8. package/dist/src/genomeSpy.d.ts.map +1 -1
  9. package/dist/src/genomeSpy.js +27 -3
  10. package/dist/src/marks/mark.d.ts +1 -1
  11. package/dist/src/marks/mark.d.ts.map +1 -1
  12. package/dist/src/spec/view.d.ts +0 -10
  13. package/dist/src/utils/keyboardZoomMotion.d.ts +93 -0
  14. package/dist/src/utils/keyboardZoomMotion.d.ts.map +1 -0
  15. package/dist/src/utils/keyboardZoomMotion.js +285 -0
  16. package/dist/src/view/axisGridView.d.ts +1 -1
  17. package/dist/src/view/axisGridView.js +0 -1
  18. package/dist/src/view/axisView.d.ts +1 -1
  19. package/dist/src/view/concatView.d.ts +6 -3
  20. package/dist/src/view/concatView.d.ts.map +1 -1
  21. package/dist/src/view/concatView.js +9 -2
  22. package/dist/src/view/containerMutationHelper.d.ts +6 -6
  23. package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
  24. package/dist/src/view/containerView.d.ts +7 -5
  25. package/dist/src/view/containerView.d.ts.map +1 -1
  26. package/dist/src/view/containerView.js +4 -1
  27. package/dist/src/view/facetView.d.ts +1 -1
  28. package/dist/src/view/flowBuilder.d.ts +1 -1
  29. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  30. package/dist/src/view/gridView/gridChild.d.ts +3 -3
  31. package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
  32. package/dist/src/view/gridView/gridChild.js +0 -2
  33. package/dist/src/view/gridView/gridView.d.ts +13 -11
  34. package/dist/src/view/gridView/gridView.d.ts.map +1 -1
  35. package/dist/src/view/gridView/gridView.js +17 -26
  36. package/dist/src/view/gridView/keyboardZoomController.d.ts +21 -0
  37. package/dist/src/view/gridView/keyboardZoomController.d.ts.map +1 -0
  38. package/dist/src/view/gridView/keyboardZoomController.js +202 -0
  39. package/dist/src/view/gridView/scrollbar.d.ts +1 -1
  40. package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
  41. package/dist/src/view/gridView/scrollbar.js +0 -1
  42. package/dist/src/view/gridView/selectionRect.d.ts +1 -1
  43. package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
  44. package/dist/src/view/gridView/selectionRect.js +0 -1
  45. package/dist/src/view/gridView/separatorView.js +0 -1
  46. package/dist/src/view/gridView/zoomNavigationUtils.d.ts +19 -0
  47. package/dist/src/view/gridView/zoomNavigationUtils.d.ts.map +1 -0
  48. package/dist/src/view/gridView/zoomNavigationUtils.js +51 -0
  49. package/dist/src/view/layerView.d.ts +8 -5
  50. package/dist/src/view/layerView.d.ts.map +1 -1
  51. package/dist/src/view/layerView.js +6 -2
  52. package/dist/src/view/title.d.ts.map +1 -1
  53. package/dist/src/view/title.js +0 -1
  54. package/dist/src/view/unitView.d.ts +7 -4
  55. package/dist/src/view/unitView.d.ts.map +1 -1
  56. package/dist/src/view/unitView.js +5 -1
  57. package/dist/src/view/view.d.ts +13 -9
  58. package/dist/src/view/view.d.ts.map +1 -1
  59. package/dist/src/view/view.js +7 -1
  60. package/dist/src/view/viewError.d.ts +1 -1
  61. package/dist/src/view/viewError.d.ts.map +1 -1
  62. package/dist/src/view/viewFactory.d.ts +3 -44
  63. package/dist/src/view/viewFactory.d.ts.map +1 -1
  64. package/dist/src/view/viewFactory.js +28 -69
  65. package/dist/src/view/viewSelectors.d.ts.map +1 -1
  66. package/dist/src/view/viewSelectors.js +123 -160
  67. package/dist/src/view/viewSpecGuards.d.ts +43 -0
  68. package/dist/src/view/viewSpecGuards.d.ts.map +1 -0
  69. package/dist/src/view/viewSpecGuards.js +69 -0
  70. package/dist/src/view/viewUtils.d.ts +1 -1
  71. package/dist/src/view/viewUtils.d.ts.map +1 -1
  72. package/dist/src/view/zoom.d.ts +1 -0
  73. package/dist/src/view/zoom.d.ts.map +1 -1
  74. package/dist/src/view/zoom.js +5 -1
  75. package/package.json +3 -3
  76. package/dist/src/data/collector.test.d.ts +0 -2
  77. package/dist/src/data/collector.test.d.ts.map +0 -1
  78. package/dist/src/data/dataFlow.test.d.ts +0 -2
  79. package/dist/src/data/dataFlow.test.d.ts.map +0 -1
  80. package/dist/src/data/flow.test.d.ts +0 -2
  81. package/dist/src/data/flow.test.d.ts.map +0 -1
  82. package/dist/src/data/flowInit.test.d.ts +0 -2
  83. package/dist/src/data/flowInit.test.d.ts.map +0 -1
  84. package/dist/src/data/flowNode.test.d.ts +0 -2
  85. package/dist/src/data/flowNode.test.d.ts.map +0 -1
  86. package/dist/src/data/flowOptimizer.test.d.ts +0 -2
  87. package/dist/src/data/flowOptimizer.test.d.ts.map +0 -1
  88. package/dist/src/data/formats/fasta.test.d.ts +0 -2
  89. package/dist/src/data/formats/fasta.test.d.ts.map +0 -1
  90. package/dist/src/data/keyIndex.test.d.ts +0 -2
  91. package/dist/src/data/keyIndex.test.d.ts.map +0 -1
  92. package/dist/src/data/sources/inlineSource.test.d.ts +0 -2
  93. package/dist/src/data/sources/inlineSource.test.d.ts.map +0 -1
  94. package/dist/src/data/sources/sequenceSource.test.d.ts +0 -2
  95. package/dist/src/data/sources/sequenceSource.test.d.ts.map +0 -1
  96. package/dist/src/data/transforms/aggregate.test.d.ts +0 -2
  97. package/dist/src/data/transforms/aggregate.test.d.ts.map +0 -1
  98. package/dist/src/data/transforms/clone.test.d.ts +0 -2
  99. package/dist/src/data/transforms/clone.test.d.ts.map +0 -1
  100. package/dist/src/data/transforms/coverage.test.d.ts +0 -2
  101. package/dist/src/data/transforms/coverage.test.d.ts.map +0 -1
  102. package/dist/src/data/transforms/filter.test.d.ts +0 -2
  103. package/dist/src/data/transforms/filter.test.d.ts.map +0 -1
  104. package/dist/src/data/transforms/filterScoredLabels.test.d.ts +0 -2
  105. package/dist/src/data/transforms/filterScoredLabels.test.d.ts.map +0 -1
  106. package/dist/src/data/transforms/flatten.test.d.ts +0 -2
  107. package/dist/src/data/transforms/flatten.test.d.ts.map +0 -1
  108. package/dist/src/data/transforms/flattenDelimited.test.d.ts +0 -2
  109. package/dist/src/data/transforms/flattenDelimited.test.d.ts.map +0 -1
  110. package/dist/src/data/transforms/flattenSequence.test.d.ts +0 -2
  111. package/dist/src/data/transforms/flattenSequence.test.d.ts.map +0 -1
  112. package/dist/src/data/transforms/formula.test.d.ts +0 -2
  113. package/dist/src/data/transforms/formula.test.d.ts.map +0 -1
  114. package/dist/src/data/transforms/identifier.test.d.ts +0 -2
  115. package/dist/src/data/transforms/identifier.test.d.ts.map +0 -1
  116. package/dist/src/data/transforms/pileup.test.d.ts +0 -2
  117. package/dist/src/data/transforms/pileup.test.d.ts.map +0 -1
  118. package/dist/src/data/transforms/project.test.d.ts +0 -2
  119. package/dist/src/data/transforms/project.test.d.ts.map +0 -1
  120. package/dist/src/data/transforms/regexExtract.test.d.ts +0 -2
  121. package/dist/src/data/transforms/regexExtract.test.d.ts.map +0 -1
  122. package/dist/src/data/transforms/regexFold.test.d.ts +0 -2
  123. package/dist/src/data/transforms/regexFold.test.d.ts.map +0 -1
  124. package/dist/src/data/transforms/sample.test.d.ts +0 -2
  125. package/dist/src/data/transforms/sample.test.d.ts.map +0 -1
  126. package/dist/src/data/transforms/stack.test.d.ts +0 -2
  127. package/dist/src/data/transforms/stack.test.d.ts.map +0 -1
  128. package/dist/src/encoder/accessor.test.d.ts +0 -2
  129. package/dist/src/encoder/accessor.test.d.ts.map +0 -1
  130. package/dist/src/encoder/encoder.test.d.ts +0 -2
  131. package/dist/src/encoder/encoder.test.d.ts.map +0 -1
  132. package/dist/src/encoder/metadataChannels.test.d.ts +0 -2
  133. package/dist/src/encoder/metadataChannels.test.d.ts.map +0 -1
  134. package/dist/src/genome/genome.test.d.ts +0 -2
  135. package/dist/src/genome/genome.test.d.ts.map +0 -1
  136. package/dist/src/genome/genomes.test.d.ts +0 -2
  137. package/dist/src/genome/genomes.test.d.ts.map +0 -1
  138. package/dist/src/genome/scaleIndex.test.d.ts +0 -2
  139. package/dist/src/genome/scaleIndex.test.d.ts.map +0 -1
  140. package/dist/src/genome/scaleLocus.test.d.ts +0 -2
  141. package/dist/src/genome/scaleLocus.test.d.ts.map +0 -1
  142. package/dist/src/genomeSpy/viewDataInit.test.d.ts +0 -2
  143. package/dist/src/genomeSpy/viewDataInit.test.d.ts.map +0 -1
  144. package/dist/src/gl/colorUtils.test.d.ts +0 -2
  145. package/dist/src/gl/colorUtils.test.d.ts.map +0 -1
  146. package/dist/src/paramRuntime/expressionRef.test.d.ts +0 -2
  147. package/dist/src/paramRuntime/expressionRef.test.d.ts.map +0 -1
  148. package/dist/src/paramRuntime/graphRuntime.test.d.ts +0 -2
  149. package/dist/src/paramRuntime/graphRuntime.test.d.ts.map +0 -1
  150. package/dist/src/paramRuntime/paramRuntime.test.d.ts +0 -2
  151. package/dist/src/paramRuntime/paramRuntime.test.d.ts.map +0 -1
  152. package/dist/src/paramRuntime/paramStore.test.d.ts +0 -2
  153. package/dist/src/paramRuntime/paramStore.test.d.ts.map +0 -1
  154. package/dist/src/scale/scale.test.d.ts +0 -2
  155. package/dist/src/scale/scale.test.d.ts.map +0 -1
  156. package/dist/src/scale/ticks.test.d.ts +0 -2
  157. package/dist/src/scale/ticks.test.d.ts.map +0 -1
  158. package/dist/src/scales/axisResolution.test.d.ts +0 -2
  159. package/dist/src/scales/axisResolution.test.d.ts.map +0 -1
  160. package/dist/src/scales/domainPlanner.test.d.ts +0 -2
  161. package/dist/src/scales/domainPlanner.test.d.ts.map +0 -1
  162. package/dist/src/scales/scaleInstanceManager.test.d.ts +0 -2
  163. package/dist/src/scales/scaleInstanceManager.test.d.ts.map +0 -1
  164. package/dist/src/scales/scaleInteractionController.test.d.ts +0 -2
  165. package/dist/src/scales/scaleInteractionController.test.d.ts.map +0 -1
  166. package/dist/src/scales/scaleResolution.test.d.ts +0 -2
  167. package/dist/src/scales/scaleResolution.test.d.ts.map +0 -1
  168. package/dist/src/scales/scaleRules.test.d.ts +0 -2
  169. package/dist/src/scales/scaleRules.test.d.ts.map +0 -1
  170. package/dist/src/selection/selection.test.d.ts +0 -2
  171. package/dist/src/selection/selection.test.d.ts.map +0 -1
  172. package/dist/src/tooltip/dataTooltipHandler.test.d.ts +0 -2
  173. package/dist/src/tooltip/dataTooltipHandler.test.d.ts.map +0 -1
  174. package/dist/src/tooltip/flattenDatumRows.test.d.ts +0 -2
  175. package/dist/src/tooltip/flattenDatumRows.test.d.ts.map +0 -1
  176. package/dist/src/tooltip/tooltipContext.test.d.ts +0 -2
  177. package/dist/src/tooltip/tooltipContext.test.d.ts.map +0 -1
  178. package/dist/src/utils/addBaseUrl.test.d.ts +0 -2
  179. package/dist/src/utils/addBaseUrl.test.d.ts.map +0 -1
  180. package/dist/src/utils/binnedIndex.test.d.ts +0 -2
  181. package/dist/src/utils/binnedIndex.test.d.ts.map +0 -1
  182. package/dist/src/utils/cloner.test.d.ts +0 -2
  183. package/dist/src/utils/cloner.test.d.ts.map +0 -1
  184. package/dist/src/utils/coalesce.test.d.ts +0 -2
  185. package/dist/src/utils/coalesce.test.d.ts.map +0 -1
  186. package/dist/src/utils/concatIterables.test.d.ts +0 -2
  187. package/dist/src/utils/concatIterables.test.d.ts.map +0 -1
  188. package/dist/src/utils/deepEqual.test.d.ts +0 -2
  189. package/dist/src/utils/deepEqual.test.d.ts.map +0 -1
  190. package/dist/src/utils/domainArray.test.d.ts +0 -2
  191. package/dist/src/utils/domainArray.test.d.ts.map +0 -1
  192. package/dist/src/utils/fetchUtils.test.d.ts +0 -2
  193. package/dist/src/utils/fetchUtils.test.d.ts.map +0 -1
  194. package/dist/src/utils/indexer.test.d.ts +0 -2
  195. package/dist/src/utils/indexer.test.d.ts.map +0 -1
  196. package/dist/src/utils/interactionEvent.test.d.ts +0 -2
  197. package/dist/src/utils/interactionEvent.test.d.ts.map +0 -1
  198. package/dist/src/utils/iterateNestedMaps.test.d.ts +0 -2
  199. package/dist/src/utils/iterateNestedMaps.test.d.ts.map +0 -1
  200. package/dist/src/utils/kWayMerge.test.d.ts +0 -2
  201. package/dist/src/utils/kWayMerge.test.d.ts.map +0 -1
  202. package/dist/src/utils/mergeObjects.test.d.ts +0 -2
  203. package/dist/src/utils/mergeObjects.test.d.ts.map +0 -1
  204. package/dist/src/utils/numberExtractor.test.d.ts +0 -2
  205. package/dist/src/utils/numberExtractor.test.d.ts.map +0 -1
  206. package/dist/src/utils/propertyCacher.test.d.ts +0 -2
  207. package/dist/src/utils/propertyCacher.test.d.ts.map +0 -1
  208. package/dist/src/utils/propertyCoalescer.test.d.ts +0 -2
  209. package/dist/src/utils/propertyCoalescer.test.d.ts.map +0 -1
  210. package/dist/src/utils/radixSort.test.d.ts +0 -2
  211. package/dist/src/utils/radixSort.test.d.ts.map +0 -1
  212. package/dist/src/utils/reservationMap.test.d.ts +0 -2
  213. package/dist/src/utils/reservationMap.test.d.ts.map +0 -1
  214. package/dist/src/utils/ringBuffer.test.d.ts +0 -2
  215. package/dist/src/utils/ringBuffer.test.d.ts.map +0 -1
  216. package/dist/src/utils/throttle.test.d.ts +0 -2
  217. package/dist/src/utils/throttle.test.d.ts.map +0 -1
  218. package/dist/src/utils/topK.test.d.ts +0 -2
  219. package/dist/src/utils/topK.test.d.ts.map +0 -1
  220. package/dist/src/utils/trees.test.d.ts +0 -2
  221. package/dist/src/utils/trees.test.d.ts.map +0 -1
  222. package/dist/src/utils/ui/tooltip.test.d.ts +0 -2
  223. package/dist/src/utils/ui/tooltip.test.d.ts.map +0 -1
  224. package/dist/src/utils/url.test.d.ts +0 -2
  225. package/dist/src/utils/url.test.d.ts.map +0 -1
  226. package/dist/src/utils/variableTools.test.d.ts +0 -2
  227. package/dist/src/utils/variableTools.test.d.ts.map +0 -1
  228. package/dist/src/view/concatView.test.d.ts +0 -2
  229. package/dist/src/view/concatView.test.d.ts.map +0 -1
  230. package/dist/src/view/dataReadiness.test.d.ts +0 -2
  231. package/dist/src/view/dataReadiness.test.d.ts.map +0 -1
  232. package/dist/src/view/flowBuilder.test.d.ts +0 -2
  233. package/dist/src/view/flowBuilder.test.d.ts.map +0 -1
  234. package/dist/src/view/gridView/gridView.test.d.ts +0 -2
  235. package/dist/src/view/gridView/gridView.test.d.ts.map +0 -1
  236. package/dist/src/view/gridView/selectionRect.test.d.ts +0 -2
  237. package/dist/src/view/gridView/selectionRect.test.d.ts.map +0 -1
  238. package/dist/src/view/layerView.test.d.ts +0 -2
  239. package/dist/src/view/layerView.test.d.ts.map +0 -1
  240. package/dist/src/view/layout/flexLayout.test.d.ts +0 -2
  241. package/dist/src/view/layout/flexLayout.test.d.ts.map +0 -1
  242. package/dist/src/view/layout/grid.test.d.ts +0 -2
  243. package/dist/src/view/layout/grid.test.d.ts.map +0 -1
  244. package/dist/src/view/layout/rectangle.test.d.ts +0 -2
  245. package/dist/src/view/layout/rectangle.test.d.ts.map +0 -1
  246. package/dist/src/view/multiscale.test.d.ts +0 -2
  247. package/dist/src/view/multiscale.test.d.ts.map +0 -1
  248. package/dist/src/view/view.test.d.ts +0 -2
  249. package/dist/src/view/view.test.d.ts.map +0 -1
  250. package/dist/src/view/viewDispose.test.d.ts +0 -2
  251. package/dist/src/view/viewDispose.test.d.ts.map +0 -1
  252. package/dist/src/view/viewFactory.test.d.ts +0 -2
  253. package/dist/src/view/viewFactory.test.d.ts.map +0 -1
  254. package/dist/src/view/viewParamRuntime.test.d.ts +0 -2
  255. package/dist/src/view/viewParamRuntime.test.d.ts.map +0 -1
  256. package/dist/src/view/viewSelectors.test.d.ts +0 -2
  257. package/dist/src/view/viewSelectors.test.d.ts.map +0 -1
  258. package/dist/src/view/viewUtils.test.d.ts +0 -2
  259. package/dist/src/view/viewUtils.test.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/view/view.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/view/view.js"],"names":[],"mappings":"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"}
@@ -63,7 +63,13 @@ const defaultOpacityFunction = (parentOpacity) => parentOpacity;
63
63
  * View's children are layered on top of each other and they have the same
64
64
  * coordinates as their parent.
65
65
  */
66
+ /**
67
+ * @template {import("../spec/view.js").ViewSpec} [TSpec=import("../spec/view.js").ViewSpec]
68
+ */
66
69
  export default class View {
70
+ /** @type {TSpec} */
71
+ spec;
72
+
67
73
  /** @type {string | undefined} */
68
74
  #defaultName;
69
75
 
@@ -110,7 +116,7 @@ export default class View {
110
116
 
111
117
  /**
112
118
  *
113
- * @param {import("../spec/view.js").ViewSpec} spec
119
+ * @param {TSpec} spec
114
120
  * @param {import("../types/viewContext.js").default} context
115
121
  * @param {import("./containerView.js").default} layoutParent Parent that handles rendering of this view
116
122
  * @param {import("./view.js").default} dataParent Parent that provides data, encodings, and is used in scale resolution
@@ -4,6 +4,6 @@ export default class ViewError extends Error {
4
4
  * @param {import("./view.js").default} view
5
5
  */
6
6
  constructor(message: string, view: import("./view.js").default);
7
- view: import("./view.js").default;
7
+ view: import("./view.js").default<import("../spec/view.js").ViewSpec>;
8
8
  }
9
9
  //# sourceMappingURL=viewError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewError.d.ts","sourceRoot":"","sources":["../../../src/view/viewError.js"],"names":[],"mappings":"AAAA;IACI;;;OAGG;IACH,qBAHW,MAAM,QACN,OAAO,WAAW,EAAE,OAAO,EAMrC;IADG,kCAAgB;CAEvB"}
1
+ {"version":3,"file":"viewError.d.ts","sourceRoot":"","sources":["../../../src/view/viewError.js"],"names":[],"mappings":"AAAA;IACI;;;OAGG;IACH,qBAHW,MAAM,QACN,OAAO,WAAW,EAAE,OAAO,EAMrC;IADG,sEAAgB;CAEvB"}
@@ -1,45 +1,3 @@
1
- /**
2
- *
3
- * @param {ViewSpec} spec
4
- * @returns {spec is UnitSpec}
5
- */
6
- export function isUnitSpec(spec: import("../spec/view.js").ViewSpec): spec is import("../spec/view.js").UnitSpec;
7
- /**
8
- *
9
- * @param {ViewSpec} spec
10
- * @returns {spec is LayerSpec}
11
- */
12
- export function isLayerSpec(spec: import("../spec/view.js").ViewSpec): spec is import("../spec/view.js").LayerSpec;
13
- /**
14
- *
15
- * @param {ViewSpec} spec
16
- * @returns {spec is LayerSpec}
17
- */
18
- export function isFacetSpec(spec: import("../spec/view.js").ViewSpec): spec is import("../spec/view.js").LayerSpec;
19
- /**
20
- *
21
- * @param {object} spec
22
- * @returns {spec is import("../spec/view.js").ImportSpec}
23
- */
24
- export function isImportSpec(spec: object): spec is import("../spec/view.js").ImportSpec;
25
- /**
26
- *
27
- * @param {ViewSpec} spec
28
- * @returns {spec is VConcatSpec}
29
- */
30
- export function isVConcatSpec(spec: import("../spec/view.js").ViewSpec): spec is import("../spec/view.js").VConcatSpec;
31
- /**
32
- *
33
- * @param {ViewSpec} spec
34
- * @returns {spec is HConcatSpec}
35
- */
36
- export function isHConcatSpec(spec: import("../spec/view.js").ViewSpec): spec is HConcatSpec;
37
- /**
38
- *
39
- * @param {ViewSpec} spec
40
- * @returns {spec is ConcatSpec}
41
- */
42
- export function isConcatSpec(spec: import("../spec/view.js").ViewSpec): spec is import("../spec/view.js").ConcatSpec;
43
1
  export const VIEW_ROOT_NAME: "viewRoot";
44
2
  /**
45
3
  * @typedef {object} ViewFactoryOptions
@@ -68,7 +26,7 @@ export class ViewFactory {
68
26
  * @param {import("./view.js").default} [dataParent]
69
27
  * @param {string} [defaultName]
70
28
  */
71
- createView(spec: import("../spec/view.js").ViewSpec, context: import("../types/viewContext.js").default, layoutParent?: import("./containerView.js").default, dataParent?: import("./view.js").default, defaultName?: string): View;
29
+ createView(spec: import("../spec/view.js").ViewSpec, context: import("../types/viewContext.js").default, layoutParent?: import("./containerView.js").default, dataParent?: import("./view.js").default, defaultName?: string): View<import("../spec/view.js").ViewSpec>;
72
30
  /**
73
31
  *
74
32
  * @param {ViewSpec} spec
@@ -86,7 +44,7 @@ export class ViewFactory {
86
44
  * @param {string} [defaultName]
87
45
  * @param {(spec: ViewSpec) => void} [validator]
88
46
  */
89
- createOrImportView(spec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec, context: import("../types/viewContext.js").default, layoutParent?: import("./containerView.js").default, dataParent?: import("./view.js").default, defaultName?: string, validator?: (spec: import("../spec/view.js").ViewSpec) => void): Promise<View>;
47
+ createOrImportView(spec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec, context: import("../types/viewContext.js").default, layoutParent?: import("./containerView.js").default, dataParent?: import("./view.js").default, defaultName?: string, validator?: (spec: import("../spec/view.js").ViewSpec) => void): Promise<View<import("../spec/view.js").ViewSpec>>;
90
48
  #private;
91
49
  }
92
50
  export type ViewFactoryOptions = {
@@ -97,4 +55,5 @@ export type ViewFactoryOptions = {
97
55
  wrapRoot?: boolean;
98
56
  };
99
57
  import View from "./view.js";
58
+ export { isConcatSpec, isFacetSpec, isHConcatSpec, isImportSpec, isLayerSpec, isUnitSpec, isVConcatSpec } from "./viewSpecGuards.js";
100
59
  //# sourceMappingURL=viewFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewFactory.d.ts","sourceRoot":"","sources":["../../../src/view/viewFactory.js"],"names":[],"mappings":"AAwUA;;;;GAIG;AACH,sEAFa,IAAI,sCAAY,CAI5B;AAED;;;;GAIG;AACH,uEAFa,IAAI,uCAAa,CAI7B;AAED;;;;GAIG;AACH,uEAFa,IAAI,uCAAa,CAS7B;AAED;;;;GAIG;AACH,mCAHW,MAAM,GACJ,IAAI,IAAI,OAAO,iBAAiB,EAAE,UAAU,CAIxD;AAED;;;;GAIG;AACH,yEAFa,IAAI,yCAAe,CAI/B;AAED;;;;GAIG;AACH,yEAFa,IAAI,IAAI,WAAW,CAI/B;AAED;;;;GAIG;AACH,wEAFa,IAAI,wCAAc,CAI9B;AAxXD,6BAA8B,UAAU,CAAC;AAEzC;;;;GAIG;AAEH;;GAEG;AACH;IAiBI;;OAEG;IACH,sBAFW,kBAAkB,EAiD5B;IA9CG,2CAA2C;IAC3C,SADW,QAAQ,CAAC,kBAAkB,CAAC,CAKtC;IA2CL;;;OAGG;IACH,qEA/DiC,OAAO,yHAC2B,OAAO,oBAAoB,EAAE,OAAO,eAAe,OAAO,WAAW,EAAE,OAAO,gBAAgB,MAAM,KAAK,IAAI,QAgE/K;IAED;;;;;;OAMG;IACH,wHAJW,OAAO,oBAAoB,EAAE,OAAO,eACpC,OAAO,WAAW,EAAE,OAAO,gBAC3B,MAAM,QAyBhB;IAED;;;;OAIG;IACH,sDAFa,IAAI,sCAAY,CAU5B;IAED;;;;;;;;;;OAUG;IACH,yBAPW,qCAAW,OAAO,iBAAiB,EAAE,UAAU,qEAE/C,OAAO,oBAAoB,EAAE,OAAO,eACpC,OAAO,WAAW,EAAE,OAAO,gBAC3B,MAAM,cACN,CAAC,IAAI,oCAAU,KAAK,IAAI,iBAiGlC;;CACJ;;;;;kBA9Oa,OAAO;eACP,OAAO;;iBAtBJ,WAAW"}
1
+ {"version":3,"file":"viewFactory.d.ts","sourceRoot":"","sources":["../../../src/view/viewFactory.js"],"names":[],"mappings":"AA0BA,6BAA8B,UAAU,CAAC;AAEzC;;;;GAIG;AAEH;;GAEG;AACH;IAiBI;;OAEG;IACH,sBAFW,kBAAkB,EA0D5B;IAvDG,2CAA2C;IAC3C,SADW,QAAQ,CAAC,kBAAkB,CAAC,CAKtC;IAoDL;;;OAGG;IACH,qEAxEiC,OAAO,yHAC2B,OAAO,oBAAoB,EAAE,OAAO,eAAe,OAAO,WAAW,EAAE,OAAO,gBAAgB,MAAM,KAAK,IAAI,QAyE/K;IAED;;;;;;OAMG;IACH,wHAJW,OAAO,oBAAoB,EAAE,OAAO,eACpC,OAAO,WAAW,EAAE,OAAO,gBAC3B,MAAM,4CAyBhB;IAED;;;;OAIG;IACH,sDAFa,IAAI,sCAAY,CAU5B;IAED;;;;;;;;;;OAUG;IACH,yBAPW,qCAAW,OAAO,iBAAiB,EAAE,UAAU,qEAE/C,OAAO,oBAAoB,EAAE,OAAO,eACpC,OAAO,WAAW,EAAE,OAAO,gBAC3B,MAAM,cACN,CAAC,IAAI,oCAAU,KAAK,IAAI,qDAiGlC;;CACJ;;;;;kBAvPa,OAAO;eACP,OAAO;;iBA9BJ,WAAW"}
@@ -4,7 +4,7 @@ import View from "./view.js";
4
4
  import UnitView from "./unitView.js";
5
5
  import LayerView from "./layerView.js";
6
6
  import ConcatView from "./concatView.js";
7
- import { isArray, isObject, isString } from "vega-util";
7
+ import { isArray, isObject } from "vega-util";
8
8
  import { loadExternalViewSpec } from "./viewUtils.js";
9
9
  import ContainerView from "./containerView.js";
10
10
  import ViewError from "./viewError.js";
@@ -15,6 +15,14 @@ import {
15
15
  registerImportInstance,
16
16
  } from "./viewSelectors.js";
17
17
  import { isMultiscaleSpec, normalizeMultiscaleSpec } from "./multiscale.js";
18
+ import {
19
+ isConcatSpec,
20
+ isHConcatSpec,
21
+ isImportSpec,
22
+ isLayerSpec,
23
+ isUnitSpec,
24
+ isVConcatSpec,
25
+ } from "./viewSpecGuards.js";
18
26
 
19
27
  export const VIEW_ROOT_NAME = "viewRoot";
20
28
 
@@ -56,7 +64,16 @@ export class ViewFactory {
56
64
  };
57
65
 
58
66
  const makeDefaultFactory =
59
- (/** @type {typeof View} */ ViewClass) =>
67
+ (
68
+ /** @type {new (
69
+ * spec: ViewSpec,
70
+ * context: ViewContext,
71
+ * layoutParent?: import("./containerView.js").default,
72
+ * dataParent?: import("./view.js").default,
73
+ * defaultName?: string
74
+ * ) => View} */
75
+ ViewClass
76
+ ) =>
60
77
  /** @type {Factory} */
61
78
  (spec, context, layoutParent, dataParent, defaultName) =>
62
79
  /** @type {View} */ (
@@ -326,73 +343,15 @@ function applyParamsToImportedSpec(importedSpec, importSpec) {
326
343
  }
327
344
  }
328
345
 
329
- /**
330
- *
331
- * @param {ViewSpec} spec
332
- * @returns {spec is UnitSpec}
333
- */
334
- export function isUnitSpec(spec) {
335
- return "mark" in spec && (isString(spec.mark) || isObject(spec.mark));
336
- }
337
-
338
- /**
339
- *
340
- * @param {ViewSpec} spec
341
- * @returns {spec is LayerSpec}
342
- */
343
- export function isLayerSpec(spec) {
344
- return "layer" in spec && isObject(spec.layer);
345
- }
346
-
347
- /**
348
- *
349
- * @param {ViewSpec} spec
350
- * @returns {spec is LayerSpec}
351
- */
352
- export function isFacetSpec(spec) {
353
- return (
354
- "facet" in spec &&
355
- isObject(spec.facet) &&
356
- "spec" in spec &&
357
- isObject(spec.spec)
358
- );
359
- }
360
-
361
- /**
362
- *
363
- * @param {object} spec
364
- * @returns {spec is import("../spec/view.js").ImportSpec}
365
- */
366
- export function isImportSpec(spec) {
367
- return "import" in spec;
368
- }
369
-
370
- /**
371
- *
372
- * @param {ViewSpec} spec
373
- * @returns {spec is VConcatSpec}
374
- */
375
- export function isVConcatSpec(spec) {
376
- return "vconcat" in spec && isArray(spec.vconcat);
377
- }
378
-
379
- /**
380
- *
381
- * @param {ViewSpec} spec
382
- * @returns {spec is HConcatSpec}
383
- */
384
- export function isHConcatSpec(spec) {
385
- return "hconcat" in spec && isArray(spec.hconcat);
386
- }
387
-
388
- /**
389
- *
390
- * @param {ViewSpec} spec
391
- * @returns {spec is ConcatSpec}
392
- */
393
- export function isConcatSpec(spec) {
394
- return "concat" in spec && isArray(spec.concat);
395
- }
346
+ export {
347
+ isConcatSpec,
348
+ isFacetSpec,
349
+ isHConcatSpec,
350
+ isImportSpec,
351
+ isLayerSpec,
352
+ isUnitSpec,
353
+ isVConcatSpec,
354
+ } from "./viewSpecGuards.js";
396
355
 
397
356
  /**
398
357
  *
@@ -1 +1 @@
1
- {"version":3,"file":"viewSelectors.d.ts","sourceRoot":"","sources":["../../../src/view/viewSelectors.js"],"names":[],"mappings":"AAiCA;;;;;GAKG;AACH,6CAHW,OAAO,WAAW,EAAE,OAAO,aAC3B,MAAM,GAAG,IAAI,QAQvB;AAED;;;;;GAKG;AACH,yCAHW,OAAO,WAAW,EAAE,OAAO,GACzB,eAAe,GAAG,SAAS,CAIvC;AAED;;;;;GAKG;AACH,+CAHW,OAAO,WAAW,EAAE,OAAO,YAC3B,kBAAkB,QAM5B;AAED;;;;;GAKG;AACH,wCAHW,OAAO,WAAW,EAAE,OAAO,GACzB,MAAM,EAAE,CAgBpB;AAED;;;;;GAKG;AACH,sCAHW,OAAO,WAAW,EAAE,OAAO,GACzB,YAAY,CAYxB;AAED;;;;;;GAMG;AACH,uCAJW,OAAO,WAAW,EAAE,OAAO,aAC3B,MAAM,GACJ,aAAa,CAazB;AAED;;;;;GAKG;AACH,+CAHW,aAAa,GACX,MAAM,CAQlB;AAED;;;;;GAKG;AACH,0CAHW,OAAO,WAAW,EAAE,OAAO,GACzB,OAAO,WAAW,EAAE,OAAO,EAAE,CAWzC;AAED;;;;;GAKG;AACH,4CAHW,OAAO,WAAW,EAAE,OAAO,WAC3B,OAAO,WAAW,EAAE,OAAO,QAerC;AAED;;;;;;GAMG;AACH,0CAJW,OAAO,WAAW,EAAE,OAAO,YAC3B,YAAY,GACV,OAAO,WAAW,EAAE,OAAO,GAAG,SAAS,CAmCnD;AAED;;;;;;GAMG;AACH,2CAJW,OAAO,WAAW,EAAE,OAAO,YAC3B,aAAa,GACX,aAAa,GAAG,SAAS,CAuCrC;AAED;;;;;GAKG;AACH,8CAHW,OAAO,WAAW,EAAE,OAAO,WAC3B,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,QAyBjD;AAED;;;;;GAKG;AACH,4CAHW,OAAO,WAAW,EAAE,OAAO,GACzB,sBAAsB,EAAE,CAOpC;AAED;;;;;GAKG;AACH,kDAHW,OAAO,WAAW,EAAE,OAAO,GACzB,uBAAuB,EAAE,CAcrC;AArUD;;;;;;GAMG;AAEH;;;;;;;;;GASG;AAEH,wCAAyC,IAAI,CAAC;2BAVjC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;4BACjC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;qCAClC;IAAE,IAAI,EAAE,OAAO,WAAW,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,sBAAsB,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE;sCAC/G;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE;8BACpC;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;kCACvB,SAAS,GAAG,gBAAgB;iCAC5B;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;4BACzB;IAAE,IAAI,EAAE,OAAO,WAAW,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,sBAAsB,EAAE,SAAS,CAAA;CAAE"}
1
+ {"version":3,"file":"viewSelectors.d.ts","sourceRoot":"","sources":["../../../src/view/viewSelectors.js"],"names":[],"mappings":"AAiCA;;;;;GAKG;AACH,6CAHW,OAAO,WAAW,EAAE,OAAO,aAC3B,MAAM,GAAG,IAAI,QAQvB;AAED;;;;;GAKG;AACH,yCAHW,OAAO,WAAW,EAAE,OAAO,GACzB,eAAe,GAAG,SAAS,CAIvC;AAED;;;;;GAKG;AACH,+CAHW,OAAO,WAAW,EAAE,OAAO,YAC3B,kBAAkB,QAM5B;AAED;;;;;GAKG;AACH,wCAHW,OAAO,WAAW,EAAE,OAAO,GACzB,MAAM,EAAE,CAgBpB;AAED;;;;;GAKG;AACH,sCAHW,OAAO,WAAW,EAAE,OAAO,GACzB,YAAY,CAYxB;AAED;;;;;;GAMG;AACH,uCAJW,OAAO,WAAW,EAAE,OAAO,aAC3B,MAAM,GACJ,aAAa,CAazB;AAED;;;;;GAKG;AACH,+CAHW,aAAa,GACX,MAAM,CAQlB;AAED;;;;;GAKG;AACH,0CAHW,OAAO,WAAW,EAAE,OAAO,GACzB,OAAO,WAAW,EAAE,OAAO,EAAE,CAWzC;AAED;;;;;GAKG;AACH,4CAHW,OAAO,WAAW,EAAE,OAAO,WAC3B,OAAO,WAAW,EAAE,OAAO,QAerC;AAED;;;;;;GAMG;AACH,0CAJW,OAAO,WAAW,EAAE,OAAO,YAC3B,YAAY,GACV,OAAO,WAAW,EAAE,OAAO,GAAG,SAAS,CAoCnD;AAED;;;;;;GAMG;AACH,2CAJW,OAAO,WAAW,EAAE,OAAO,YAC3B,aAAa,GACX,aAAa,GAAG,SAAS,CAuCrC;AAED;;;;;GAKG;AACH,8CAHW,OAAO,WAAW,EAAE,OAAO,WAC3B,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,QAyBjD;AAED;;;;;GAKG;AACH,4CAHW,OAAO,WAAW,EAAE,OAAO,GACzB,sBAAsB,EAAE,CAOpC;AAED;;;;;GAKG;AACH,kDAHW,OAAO,WAAW,EAAE,OAAO,GACzB,uBAAuB,EAAE,CAarC;AArUD;;;;;;GAMG;AAEH;;;;;;;;;GASG;AAEH,wCAAyC,IAAI,CAAC;2BAVjC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;4BACjC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;qCAClC;IAAE,IAAI,EAAE,OAAO,WAAW,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,sBAAsB,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE;sCAC/G;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE;8BACpC;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;kCACvB,SAAS,GAAG,gBAAgB;iCAC5B;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;4BACzB;IAAE,IAAI,EAAE,OAAO,WAAW,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,sBAAsB,EAAE,SAAS,CAAA;CAAE"}
@@ -198,7 +198,8 @@ export function resolveViewSelector(root, selector) {
198
198
  const matches = [];
199
199
 
200
200
  visitViewsInScope(
201
- scopeRoot,
201
+ root,
202
+ selector.scope,
202
203
  (view) => {
203
204
  if (view.explicitName === selector.view) {
204
205
  matches.push(view);
@@ -239,7 +240,7 @@ export function resolveParamSelector(root, selector) {
239
240
  /** @type {ResolvedParam[]} */
240
241
  const matches = [];
241
242
 
242
- visitViewsInScope(scopeRoot, (view) => {
243
+ visitViewsInScope(root, selector.scope, (view) => {
243
244
  for (const [name, param] of view.paramRuntime.paramConfigs) {
244
245
  if (name !== selector.param) {
245
246
  continue;
@@ -323,9 +324,8 @@ export function validateSelectorConstraints(root) {
323
324
 
324
325
  for (const scopeRoot of collectScopeRoots(root)) {
325
326
  const scope = getScopeChainForRoot(scopeRoot);
326
- validateViewNamesInScope(scopeRoot, scope, issues);
327
- validateParamNamesInScope(scopeRoot, scope, issues);
328
- validateImportInstanceNames(scopeRoot, scope, issues);
327
+ validateParamNamesInScope(root, scope, issues);
328
+ validateImportInstanceNames(root, scope, issues);
329
329
  }
330
330
 
331
331
  return issues;
@@ -361,25 +361,6 @@ function validateViewSelector(selector) {
361
361
  }
362
362
  }
363
363
 
364
- /**
365
- * Returns the effective configurableVisibility value for a view.
366
- *
367
- * @param {import("./view.js").default} view
368
- * @returns {boolean}
369
- */
370
- function isConfigurableVisibility(view) {
371
- const explicit = view.spec.configurableVisibility;
372
- if (explicit !== undefined) {
373
- return explicit;
374
- }
375
-
376
- return !(
377
- view.layoutParent &&
378
- view.layoutParent.spec &&
379
- "layer" in view.layoutParent.spec
380
- );
381
- }
382
-
383
364
  /**
384
365
  * Returns true for parameters that are persisted in bookmarks.
385
366
  *
@@ -429,13 +410,7 @@ function collectScopeRoots(root) {
429
410
  * @returns {string[]}
430
411
  */
431
412
  function getScopeChainForRoot(scopeRoot) {
432
- const chain = getViewScopeChain(scopeRoot);
433
- const info = importScopes.get(scopeRoot);
434
- if (info && typeof info.name === "string") {
435
- return [...chain, info.name];
436
- }
437
-
438
- return chain;
413
+ return getViewScopeChain(scopeRoot);
439
414
  }
440
415
 
441
416
  /**
@@ -452,87 +427,18 @@ function formatScope(scope) {
452
427
  return "import scope [" + scope.join(" / ") + "]";
453
428
  }
454
429
 
455
- /**
456
- * Checks configurable view names for required explicit and unique naming.
457
- *
458
- * @param {import("./view.js").default} scopeRoot
459
- * @param {string[]} scope
460
- * @param {SelectorValidationIssue[]} issues
461
- */
462
- function validateViewNamesInScope(scopeRoot, scope, issues) {
463
- /** @type {Map<string, import("./view.js").default[]>} */
464
- const names = new Map();
465
-
466
- visitViewsInScope(
467
- scopeRoot,
468
- (view) => {
469
- const explicitName = view.explicitName;
470
- const isConfigurable = isConfigurableVisibility(view);
471
- const isExplicitlyConfigurable =
472
- view.spec.configurableVisibility === true;
473
-
474
- if (!isConfigurable) {
475
- return;
476
- }
477
-
478
- if (!explicitName) {
479
- if (!isExplicitlyConfigurable) {
480
- return;
481
- }
482
-
483
- issues.push({
484
- message:
485
- "Configurable view must have an explicit name in " +
486
- formatScope(scope) +
487
- ".",
488
- scope,
489
- });
490
- return;
491
- }
492
-
493
- const matches = names.get(explicitName);
494
- if (matches) {
495
- matches.push(view);
496
- } else {
497
- names.set(explicitName, [view]);
498
- }
499
- },
500
- { includeNamedImportRoots: true }
501
- );
502
-
503
- for (const [name, matches] of names) {
504
- if (matches.length <= 1) {
505
- continue;
506
- }
507
-
508
- const paths = matches.map((view) => view.getPathString()).join(", ");
509
-
510
- issues.push({
511
- message:
512
- 'Configurable view name "' +
513
- name +
514
- '" is not unique within ' +
515
- formatScope(scope) +
516
- ". Found in: " +
517
- paths +
518
- ".",
519
- scope,
520
- });
521
- }
522
- }
523
-
524
430
  /**
525
431
  * Checks bookmarkable parameter names for uniqueness within a scope.
526
432
  *
527
- * @param {import("./view.js").default} scopeRoot
433
+ * @param {import("./view.js").default} root
528
434
  * @param {string[]} scope
529
435
  * @param {SelectorValidationIssue[]} issues
530
436
  */
531
- function validateParamNamesInScope(scopeRoot, scope, issues) {
437
+ function validateParamNamesInScope(root, scope, issues) {
532
438
  /** @type {Map<string, import("./view.js").default[]>} */
533
439
  const names = new Map();
534
440
 
535
- visitViewsInScope(scopeRoot, (view) => {
441
+ visitViewsInScope(root, scope, (view) => {
536
442
  for (const [name, param] of view.paramRuntime.paramConfigs) {
537
443
  if (!isBookmarkableParam(param)) {
538
444
  continue;
@@ -571,12 +477,12 @@ function validateParamNamesInScope(scopeRoot, scope, issues) {
571
477
  /**
572
478
  * Ensures addressable import instances are uniquely named in a scope.
573
479
  *
574
- * @param {import("./view.js").default} scopeRoot
480
+ * @param {import("./view.js").default} root
575
481
  * @param {string[]} scope
576
482
  * @param {SelectorValidationIssue[]} issues
577
483
  */
578
- function validateImportInstanceNames(scopeRoot, scope, issues) {
579
- const importRoots = collectImmediateImportRoots(scopeRoot);
484
+ function validateImportInstanceNames(root, scope, issues) {
485
+ const importRoots = collectImmediateImportRoots(root, scope);
580
486
  if (!importRoots.length) {
581
487
  return;
582
488
  }
@@ -620,35 +526,38 @@ function validateImportInstanceNames(scopeRoot, scope, issues) {
620
526
  /**
621
527
  * Collects direct import roots under a scope root.
622
528
  *
623
- * @param {import("./view.js").default} scopeRoot
529
+ * @param {import("./view.js").default} root
530
+ * @param {string[]} scope
624
531
  * @returns {import("./view.js").default[]}
625
532
  */
626
- function collectImmediateImportRoots(scopeRoot) {
533
+ function collectImmediateImportRoots(root, scope) {
627
534
  /** @type {import("./view.js").default[]} */
628
535
  const roots = [];
629
536
 
630
- scopeRoot.visit((view) => {
631
- if (view === scopeRoot) {
632
- return;
633
- }
537
+ visitViewsInScope(
538
+ root,
539
+ scope,
540
+ (view) => {
541
+ const chain = getViewScopeChain(view);
542
+ if (chain.length !== scope.length + 1) {
543
+ return;
544
+ }
634
545
 
635
- const behavior = addressableOverrides.get(view);
636
- if (behavior === "excludeSubtree") {
637
- return VISIT_SKIP;
638
- }
546
+ const info = importScopes.get(view);
547
+ if (!info || typeof info.name !== "string") {
548
+ return;
549
+ }
639
550
 
640
- const info = importScopes.get(view);
641
- if (info) {
642
551
  roots.push(view);
643
- return VISIT_SKIP;
644
- }
645
- });
552
+ },
553
+ { includeNamedImportRoots: true }
554
+ );
646
555
 
647
556
  return roots;
648
557
  }
649
558
 
650
559
  /**
651
- * Detects whether a subtree exposes configurable views or bookmarkable params.
560
+ * Detects whether a subtree exposes bookmarkable parameters.
652
561
  *
653
562
  * @param {import("./view.js").default} root
654
563
  * @returns {boolean}
@@ -663,18 +572,6 @@ function hasAddressableFeatures(root) {
663
572
  }
664
573
 
665
574
  if (behavior !== "exclude") {
666
- const isConfigurable = isConfigurableVisibility(view);
667
- const isExplicitlyConfigurable =
668
- view.spec.configurableVisibility === true;
669
-
670
- if (
671
- isConfigurable &&
672
- (view.explicitName || isExplicitlyConfigurable)
673
- ) {
674
- found = true;
675
- return VISIT_STOP;
676
- }
677
-
678
575
  for (const param of view.paramRuntime.paramConfigs.values()) {
679
576
  if (isBookmarkableParam(param)) {
680
577
  found = true;
@@ -698,6 +595,9 @@ function resolveScopeRoot(root, scope) {
698
595
  /** @type {import("./view.js").default} */
699
596
  let current = root;
700
597
 
598
+ /** @type {string[]} */
599
+ const parentScope = [];
600
+
701
601
  for (const name of scope) {
702
602
  if (typeof name !== "string" || !name.length) {
703
603
  throw new Error("Scope names must be non-empty strings.");
@@ -708,16 +608,24 @@ function resolveScopeRoot(root, scope) {
708
608
  let hasDuplicate = false;
709
609
 
710
610
  visitViewsInScope(
711
- current,
611
+ root,
612
+ parentScope,
712
613
  (view) => {
713
614
  const info = importScopes.get(view);
714
- if (info && info.name === name) {
715
- if (match) {
716
- hasDuplicate = true;
717
- return VISIT_STOP;
718
- }
719
- match = view;
615
+ if (!info || info.name !== name) {
616
+ return;
617
+ }
618
+
619
+ const chain = getViewScopeChain(view);
620
+ if (chain.length !== parentScope.length + 1) {
621
+ return;
720
622
  }
623
+
624
+ if (match) {
625
+ hasDuplicate = true;
626
+ return VISIT_STOP;
627
+ }
628
+ match = view;
721
629
  },
722
630
  { includeNamedImportRoots: true }
723
631
  );
@@ -730,6 +638,7 @@ function resolveScopeRoot(root, scope) {
730
638
 
731
639
  if (match) {
732
640
  current = match;
641
+ parentScope.push(name);
733
642
  } else {
734
643
  return;
735
644
  }
@@ -739,38 +648,92 @@ function resolveScopeRoot(root, scope) {
739
648
  }
740
649
 
741
650
  /**
742
- * Visits addressable views within a scope, skipping nested named import roots.
651
+ * Visits addressable views within a scope derived from data ancestry.
743
652
  *
744
- * @param {import("./view.js").default} scopeRoot
653
+ * @param {import("./view.js").default} root
654
+ * @param {string[]} scope
745
655
  * @param {import("./view.js").Visitor} visitor
746
656
  * @param {{ includeNamedImportRoots?: boolean }} [options]
747
657
  */
748
- function visitViewsInScope(scopeRoot, visitor, options = {}) {
658
+ function visitViewsInScope(root, scope, visitor, options = {}) {
749
659
  const includeNamedImportRoots = options.includeNamedImportRoots ?? false;
750
660
 
751
- scopeRoot.visit((view) => {
661
+ root.visit((view) => {
662
+ const info = importScopes.get(view);
752
663
  const behavior = addressableOverrides.get(view);
753
664
  if (behavior === "excludeSubtree") {
754
665
  return VISIT_SKIP;
755
666
  }
756
667
 
757
- const info = importScopes.get(view);
758
- const isNamedImportRoot =
759
- view !== scopeRoot && info && typeof info.name === "string";
760
-
761
- if (isNamedImportRoot) {
762
- if (behavior !== "exclude" && includeNamedImportRoots) {
763
- const result = visitor(view);
764
- if (result === VISIT_STOP) {
765
- return result;
766
- }
767
- }
768
-
769
- return VISIT_SKIP;
668
+ if (behavior === "exclude") {
669
+ return;
770
670
  }
771
671
 
772
- if (behavior !== "exclude") {
773
- return visitor(view);
672
+ if (!isViewInScope(view, scope, info, includeNamedImportRoots)) {
673
+ return;
774
674
  }
675
+
676
+ return visitor(view);
775
677
  });
776
678
  }
679
+
680
+ /**
681
+ * @param {import("./view.js").default} view
682
+ * @param {string[]} scope
683
+ * @param {ImportScopeInfo | undefined} scopeInfo
684
+ * @param {boolean} includeNamedImportRoots
685
+ * @returns {boolean}
686
+ */
687
+ function isViewInScope(view, scope, scopeInfo, includeNamedImportRoots) {
688
+ const chain = getViewScopeChain(view);
689
+
690
+ if (scopesEqual(chain, scope)) {
691
+ return true;
692
+ }
693
+
694
+ if (
695
+ !includeNamedImportRoots ||
696
+ !scopeInfo ||
697
+ typeof scopeInfo.name !== "string"
698
+ ) {
699
+ return false;
700
+ }
701
+
702
+ if (chain.length !== scope.length + 1) {
703
+ return false;
704
+ }
705
+
706
+ return isScopePrefix(scope, chain);
707
+ }
708
+
709
+ /**
710
+ * @param {string[]} a
711
+ * @param {string[]} b
712
+ * @returns {boolean}
713
+ */
714
+ function scopesEqual(a, b) {
715
+ if (a.length !== b.length) {
716
+ return false;
717
+ }
718
+
719
+ return isScopePrefix(a, b);
720
+ }
721
+
722
+ /**
723
+ * @param {string[]} prefix
724
+ * @param {string[]} scope
725
+ * @returns {boolean}
726
+ */
727
+ function isScopePrefix(prefix, scope) {
728
+ if (prefix.length > scope.length) {
729
+ return false;
730
+ }
731
+
732
+ for (let i = 0; i < prefix.length; i++) {
733
+ if (prefix[i] !== scope[i]) {
734
+ return false;
735
+ }
736
+ }
737
+
738
+ return true;
739
+ }