data-navigator 2.0.0 → 2.0.2
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/chunk-K476QBP2.mjs +1 -0
- package/dist/index.js +6 -6
- package/dist/index.mjs +6 -6
- package/dist/src/structure.d.ts +1 -2
- package/dist/src/utilities.d.ts +1 -0
- package/dist/structure.js +1 -1
- package/dist/structure.mjs +1 -1
- package/dist/utilities.js +1 -1
- package/dist/utilities.mjs +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o=(e,t)=>{let c=Object.keys(e),r="";return c.forEach(a=>{r+=`${t&&t.omitKeyNames?"":a+": "}${e[a]}. `}),r+=t&&t.semanticLabel||"Data point.",r},s=e=>"_"+e.replace(/[^a-zA-Z0-9_-]+/g,"_");export{o as a,s as b};
|
package/dist/index.js
CHANGED
|
@@ -317,6 +317,9 @@ var describeNode = function(d, descriptionOptions) {
|
|
|
317
317
|
description += descriptionOptions && descriptionOptions.semanticLabel || "Data point.";
|
|
318
318
|
return description;
|
|
319
319
|
};
|
|
320
|
+
var createValidId = function(s) {
|
|
321
|
+
return "_" + s.replace(/[^a-zA-Z0-9_-]+/g, "_");
|
|
322
|
+
};
|
|
320
323
|
// src/structure.ts
|
|
321
324
|
var structure_default = function(options) {
|
|
322
325
|
if (options.dataType === "vega-lite" || options.dataType === "vl" || options.dataType === "Vega-Lite") {
|
|
@@ -511,9 +514,6 @@ var buildNodeStructureFromVegaLite = function(options) {
|
|
|
511
514
|
navigationRules: navigationRules
|
|
512
515
|
};
|
|
513
516
|
};
|
|
514
|
-
var createValidId = function(s) {
|
|
515
|
-
return "_" + s.replace(/[^a-zA-Z0-9_-]+/g, "_");
|
|
516
|
-
};
|
|
517
517
|
var addSimpleDataIDs = function(options) {
|
|
518
518
|
var i = 0;
|
|
519
519
|
var keyCounter = {};
|
|
@@ -546,7 +546,7 @@ var addSimpleDataIDs = function(options) {
|
|
|
546
546
|
i++;
|
|
547
547
|
});
|
|
548
548
|
};
|
|
549
|
-
var
|
|
549
|
+
var buildNodes = function(options) {
|
|
550
550
|
var nodes = {};
|
|
551
551
|
options.data.forEach(function(d) {
|
|
552
552
|
if (!options.idKey) {
|
|
@@ -647,7 +647,7 @@ var scaffoldDimensions = function(options, nodes) {
|
|
|
647
647
|
var targetDivision = null;
|
|
648
648
|
if (dim.type === "categorical") {
|
|
649
649
|
var _dim_divisionOptions;
|
|
650
|
-
var divisionId = typeof ((_dim_divisionOptions = dim.divisionOptions) === null || _dim_divisionOptions === void 0 ? void 0 : _dim_divisionOptions.divisionNodeIds) === "function" ? dim.divisionOptions.divisionNodeIds(dim.dimensionKey, value, i) : dimension.nodeId + "_" + value;
|
|
650
|
+
var divisionId = typeof ((_dim_divisionOptions = dim.divisionOptions) === null || _dim_divisionOptions === void 0 ? void 0 : _dim_divisionOptions.divisionNodeIds) === "function" ? dim.divisionOptions.divisionNodeIds(dim.dimensionKey, value, i) : createValidId(dimension.nodeId + "_" + value);
|
|
651
651
|
targetDivision = dimension.divisions[divisionId];
|
|
652
652
|
if (!targetDivision) {
|
|
653
653
|
var _dim_divisionOptions1, _dim_divisionOptions2, _dim_divisionOptions3;
|
|
@@ -1080,7 +1080,7 @@ var buildStructure = function(options) {
|
|
|
1080
1080
|
if (options.addIds) {
|
|
1081
1081
|
addSimpleDataIDs(options);
|
|
1082
1082
|
}
|
|
1083
|
-
var nodes =
|
|
1083
|
+
var nodes = buildNodes(options);
|
|
1084
1084
|
var dimensions = scaffoldDimensions(options, nodes);
|
|
1085
1085
|
var edges = buildEdges(options, nodes, dimensions);
|
|
1086
1086
|
var navigationRules = buildRules(options, edges, dimensions);
|
package/dist/index.mjs
CHANGED
|
@@ -158,6 +158,9 @@ var describeNode = (d, descriptionOptions) => {
|
|
|
158
158
|
description += descriptionOptions && descriptionOptions.semanticLabel || "Data point.";
|
|
159
159
|
return description;
|
|
160
160
|
};
|
|
161
|
+
var createValidId = (s) => {
|
|
162
|
+
return "_" + s.replace(/[^a-zA-Z0-9_-]+/g, "_");
|
|
163
|
+
};
|
|
161
164
|
|
|
162
165
|
// src/structure.ts
|
|
163
166
|
var structure_default = (options) => {
|
|
@@ -328,9 +331,6 @@ var buildNodeStructureFromVegaLite = (options) => {
|
|
|
328
331
|
navigationRules
|
|
329
332
|
};
|
|
330
333
|
};
|
|
331
|
-
var createValidId = (s) => {
|
|
332
|
-
return "_" + s.replace(/[^a-zA-Z0-9_-]+/g, "_");
|
|
333
|
-
};
|
|
334
334
|
var addSimpleDataIDs = (options) => {
|
|
335
335
|
let i = 0;
|
|
336
336
|
let keyCounter = {};
|
|
@@ -363,7 +363,7 @@ var addSimpleDataIDs = (options) => {
|
|
|
363
363
|
i++;
|
|
364
364
|
});
|
|
365
365
|
};
|
|
366
|
-
var
|
|
366
|
+
var buildNodes = (options) => {
|
|
367
367
|
let nodes = {};
|
|
368
368
|
options.data.forEach((d) => {
|
|
369
369
|
if (!options.idKey) {
|
|
@@ -462,7 +462,7 @@ var scaffoldDimensions = (options, nodes) => {
|
|
|
462
462
|
let dimension = dimensions[dim.dimensionKey];
|
|
463
463
|
let targetDivision = null;
|
|
464
464
|
if (dim.type === "categorical") {
|
|
465
|
-
let divisionId = typeof dim.divisionOptions?.divisionNodeIds === "function" ? dim.divisionOptions.divisionNodeIds(dim.dimensionKey, value, i) : dimension.nodeId + "_" + value;
|
|
465
|
+
let divisionId = typeof dim.divisionOptions?.divisionNodeIds === "function" ? dim.divisionOptions.divisionNodeIds(dim.dimensionKey, value, i) : createValidId(dimension.nodeId + "_" + value);
|
|
466
466
|
targetDivision = dimension.divisions[divisionId];
|
|
467
467
|
if (!targetDivision) {
|
|
468
468
|
targetDivision = dimension.divisions[divisionId] = {
|
|
@@ -958,7 +958,7 @@ var buildStructure = (options) => {
|
|
|
958
958
|
if (options.addIds) {
|
|
959
959
|
addSimpleDataIDs(options);
|
|
960
960
|
}
|
|
961
|
-
let nodes =
|
|
961
|
+
let nodes = buildNodes(options);
|
|
962
962
|
let dimensions = scaffoldDimensions(options, nodes);
|
|
963
963
|
let edges = buildEdges(options, nodes, dimensions);
|
|
964
964
|
let navigationRules = buildRules(options, edges, dimensions);
|
package/dist/src/structure.d.ts
CHANGED
|
@@ -2,9 +2,8 @@ import { StructureOptions, Structure, Nodes, Dimensions, Edges } from './data-na
|
|
|
2
2
|
declare const _default: (options: StructureOptions) => Structure;
|
|
3
3
|
export default _default;
|
|
4
4
|
export declare const buildNodeStructureFromVegaLite: (options: any) => Structure;
|
|
5
|
-
export declare const createValidId: (s: any) => string;
|
|
6
5
|
export declare const addSimpleDataIDs: (options: StructureOptions) => void;
|
|
7
|
-
export declare const
|
|
6
|
+
export declare const buildNodes: (options: StructureOptions) => Nodes;
|
|
8
7
|
export declare const scaffoldDimensions: (options: StructureOptions, nodes: Nodes) => Dimensions;
|
|
9
8
|
export declare const buildEdges: (options: StructureOptions, nodes: Nodes, dimensions?: Dimensions) => Edges;
|
|
10
9
|
export declare const buildRules: (options: StructureOptions, edges: Edges, dimensions: Dimensions) => import("./data-navigator").NavigationRules;
|
package/dist/src/utilities.d.ts
CHANGED
package/dist/structure.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e,i){if(i==null||i>e.length)i=e.length;for(var n=0,t=new Array(i);n<i;n++)t[n]=e[n];return t}function i(i){if(Array.isArray(i))return e(i)}function n(e,i,n){if(i in e){Object.defineProperty(e,i,{value:n,enumerable:true,configurable:true,writable:true})}else{e[i]=n}return e}function t(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function o(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(e){for(var i=1;i<arguments.length;i++){var t=arguments[i]!=null?arguments[i]:{};var o=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){o=o.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))}o.forEach(function(i){n(e,i,t[i])})}return e}function s(e,i){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);if(i){t=t.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})}n.push.apply(n,t)}return n}function a(e,i){i=i!=null?i:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(i))}else{s(Object(i)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(i,n))})}return e}function d(e){return i(e)||t(e)||c(e)||o()}function u(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function c(i,n){if(!i)return;if(typeof i==="string")return e(i,n);var t=Object.prototype.toString.call(i).slice(8,-1);if(t==="Object"&&i.constructor)t=i.constructor.name;if(t==="Map"||t==="Set")return Array.from(t);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return e(i,n)}var l=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var y=function(e,i){for(var n in i)l(e,n,{get:i[n],enumerable:!0})},p=function(e,i,n,t){var o=true,r=false,s=undefined;if(i&&typeof i=="object"||typeof i=="function")try{var a=function(){var o=u.value;!g.call(e,o)&&o!==n&&l(e,o,{get:function(){return i[o]},enumerable:!(t=v(i,o))||t.enumerable})};for(var d=f(i)[Symbol.iterator](),u;!(o=(u=d.next()).done);o=true)a()}catch(e){r=true;s=e}finally{try{if(!o&&d.return!=null){d.return()}}finally{if(r){throw s}}}return e};var m=function(e){return p(l({},"__esModule",{value:!0}),e)};var h={};y(h,{addSimpleDataIDs:function(){return S},buildEdges:function(){return P},buildNodeStructureFromVegaLite:function(){return w},buildRules:function(){return L},buildStructure:function(){return F},bulidNodes:function(){return x},createValidId:function(){return _},default:function(){return j},scaffoldDimensions:function(){return D}});module.exports=m(h);var b={Escape:!0,Enter:!0,Backspace:!0,ArrowLeft:!0,ArrowRight:!0,ArrowUp:!0,ArrowDown:!0};var O=["KeyW","KeyJ","LeftBracket","RightBracket","Slash","Backslash"];var k=[["LeftBracket","RightBracket"],["Slash","Backslash"]],E={left:{key:"ArrowLeft",direction:"source"},right:{key:"ArrowRight",direction:"target"},up:{key:"ArrowUp",direction:"source"},down:{key:"ArrowDown",direction:"target"},child:{key:"Enter",direction:"target"},parent:{key:"Backspace",direction:"source"},backward:{key:"Comma",direction:"source"},forward:{key:"Period",direction:"target"},previous:{key:"Semicolon",direction:"source"},next:{key:"Quote",direction:"target"},exit:{key:"Escape",direction:"target"},help:{key:"KeyY",direction:"target"},undo:{key:"KeyZ",direction:"target"}},K=[["left","right"],["up","down"],["backward","forward"],["previous","next"]];var I={right:{key:"ArrowRight",direction:"target"},left:{key:"ArrowLeft",direction:"source"},down:{key:"ArrowDown",direction:"target"},up:{key:"ArrowUp",direction:"source"},child:{key:"Enter",direction:"target"},parent:{key:"Backspace",direction:"source"},exit:{key:"Escape",direction:"target"},undo:{key:"Period",direction:"target"},legend:{key:"KeyL",direction:"target"}};var R=function(e,i){var n=Object.keys(e),t="";return n.forEach(function(n){t+="".concat(i&&i.omitKeyNames?"":n+": ").concat(e[n],". ")}),t+=i&&i.semanticLabel||"Data point.",t};var j=function(e){return e.dataType==="vega-lite"||e.dataType==="vl"||e.dataType==="Vega-Lite"?w(e):F(e)},w=function(e){var i=I,n={},t={},o={},r=0,s=e.groupInclusionCriteria?e.groupInclusionCriteria:function(){return!0},a=e.itemInclusionCriteria?e.itemInclusionCriteria:function(){return!0},d=e.datumInclusionCriteria?e.datumInclusionCriteria:function(){return!0},u=e.vegaLiteView._renderer._origin,c=e.vegaLiteView._scenegraph.root.items[0].mark.items[0],l=function(e,i){if(e["data-navigator-id"])return e["data-navigator-id"];var n="dn-node-".concat(i,"-").concat(r);return r++,e["data-navigator-id"]=n,n},v=function(i){var o=n[i],r=o.index,s=o.level,a=o.parent,d=[],u=a.items[r-1];if(u){var c=l(u,s);if(n[c]){var v="".concat(c,"-").concat(o.id);d.push(v),t[v]||(t[v]={source:c,target:o.id,navigationRules:["left","right"]})}}var f=a.items[r+1];if(f){var g=l(f,s);if(n[g]){var y="".concat(o.id,"-").concat(g);d.push(y),t[y]||(t[y]={source:o.id,target:g,navigationRules:["left","right"]})}}if(s==="group"&&a.items[r].items){var p=(a.items[r].items[0].mark.items[0].items||a.items[r].items)[0],m=l(p,"item");if(n[m]){var h="".concat(o.id,"-").concat(m);d.push(h),t[h]||(t[h]={source:o.id,target:m,navigationRules:["parent","child"]})}}else if(s==="item"){var b=l(a,"group");if(n[b]){var O="".concat(b,"-").concat(o.id);d.push(O),t[O]||(t[O]={source:b,target:o.id,navigationRules:["parent","child"]})}}return e.exitFunction&&(d.push("any-exit"),t["any-exit"]||(t["any-exit"]={source:e.getCurrent,target:e.exitFunction,navigationRules:["exit"]})),d.push("any-undo"),t["any-undo"]||(t["any-undo"]={source:e.getCurrent,target:e.getPrevious,navigationRules:["undo"]}),d},f=function(i,t,r,s,a){var u=l(i,t),c="render-"+u,v=r||[0,0];n[u]={},n[u].d={},n[u].id=u,n[u].renderId=c,n[u].index=s,n[u].level=t,n[u].parent=a,o[c]={},o[c].renderId=c,o[c].spatialProperties={},o[c].spatialProperties.x=i.bounds.x1+v[0],o[c].spatialProperties.y=i.bounds.y1+v[1],o[c].spatialProperties.width=i.bounds.x2-i.bounds.x1,o[c].spatialProperties.height=i.bounds.y2-i.bounds.y1,o[c].cssClass="dn-vega-lite-node",i.datum&&Object.keys(i.datum).forEach(function(o){var r=i.datum[o];d(o,r,i.datum,t,e.vegaLiteSpec)&&(n[u].d[e.keyRenamingHash&&e.keyRenamingHash[o]?e.keyRenamingHash[o]:o]=r)}),o[c].semantics={},o[c].semantics.label=e.nodeDescriber?e.nodeDescriber(n[u].d,i,t):R(n[u].d)},g=0;return c.items.forEach(function(i){if(s(i,g,e.vegaLiteSpec)){f(i,"group",u,g,c);var n=0,t=i.items[0].mark.items[0].items?i.items[0].mark.items[0]:i;t.items.forEach(function(o){a(o,n,i,e.vegaLiteSpec)&&f(o,"item",u,n,t),n++})}g++}),Object.keys(n).forEach(function(e){n[e].edges=v(e)}),{nodes:n,edges:t,elementData:o,navigationRules:i}},_=function(e){return"_"+e.replace(/[^a-zA-Z0-9_-]+/g,"_")},S=function(e){var i=0,n={};e.data.forEach(function(t){var o=typeof e.idKey=="function"?e.idKey(t):e.idKey;t[o]="_"+i,e.keysForIdGeneration&&e.keysForIdGeneration.forEach(function(e){e in t&&(typeof t[e]=="string"?(n[e]||(n[e]=0),n[t[e]]||(n[t[e]]=0),t[o]+="_"+e+n[e]+"_"+t[e]+n[t[e]],n[e]++,n[t[e]]++):(n[e]||(n[e]=0),t[o]+="_"+e+n[e],n[e]++))}),i++})},x=function(e){var i={};return e.data.forEach(function(n){e.idKey||console.error("Building nodes. A key string must be supplied in options.idKey to specify the id keys of every node.");var t=typeof e.idKey=="function"?e.idKey(n):e.idKey,o=n[t];if(!o){console.error("Building nodes. Each datum in options.data must contain an id. When matching the id key string ".concat(t,", this datum has no id: ").concat(JSON.stringify(n),"."));return}if(i[o]){console.error("Building nodes. Each id for data in options.data must be unique. This id is not unique: ".concat(o,"."));return}else{var r=typeof e.renderIdKey=="function"?e.renderIdKey(n):e.renderIdKey;i[o]={id:o,edges:[],renderId:r?n[r]||"":n.renderIdKey||"",data:n}}}),i},D=function(e,i){var n,t;var o={};if((t=e.dimensions)===null||t===void 0?void 0:(n=t.parentOptions)===null||n===void 0?void 0:n.addLevel0){var s=e.dimensions.parentOptions.addLevel0;i[s.id]=a(r({},s),{dimensionLevel:0})}var c=d(K),l=function(e,i){var n=i.numericalExtents[0],t=i.numericalExtents[1];i.numericalExtents[0]=n<e?n:e,i.numericalExtents[1]=t>e?t:e};return e.data.forEach(function(n){var t=e.dimensions.values||[],s=0;t.forEach(function(t){if(!t.dimensionKey){console.error("Building nodes, parsing dimensions. Each dimension in options.dimensions must contain a dimensionKey. This dimension has no key: ".concat(JSON.stringify(t),"."));return}if(t.dimensionKey in n){var a;var v=n[t.dimensionKey],f=typeof((a=t.operations)===null||a===void 0?void 0:a.filterFunction)=="function"?t.operations.filterFunction(n,t):!0;if(v!==void 0&&f){if(t.type||(t.type=(typeof v==="undefined"?"undefined":u(v))=="bigint"||typeof v=="number"?"numerical":"categorical"),!o[t.dimensionKey]){var g;var y=typeof t.nodeId=="function"?t.nodeId(t,e.data):t.nodeId||_(t.dimensionKey),p=typeof t.renderId=="function"?t.renderId(t,e.data):t.renderId||y;o[t.dimensionKey]={dimensionKey:t.dimensionKey,nodeId:y,divisions:{},numericalExtents:[1/0,-1/0],type:t.type,sortFunction:((g=t.operations)===null||g===void 0?void 0:g.sortFunction)||void 0,behavior:t.behavior||{extents:"circular"},navigationRules:t.navigationRules||{sibling_sibling:c.length?d(c.shift()):["previous_"+t.dimensionKey,"next_"+t.dimensionKey],parent_child:["parent_"+t.dimensionKey,"child"]}},i[y]={id:y,renderId:p,derivedNode:t.dimensionKey,edges:[],dimensionLevel:1,data:o[t.dimensionKey],renderingStrategy:t.renderingStrategy||"singleSquare"}}var m=o[t.dimensionKey],h=null;if(t.type==="categorical"){var b;var O=typeof((b=t.divisionOptions)===null||b===void 0?void 0:b.divisionNodeIds)=="function"?t.divisionOptions.divisionNodeIds(t.dimensionKey,v,s):m.nodeId+"_"+v;if(h=m.divisions[O],!h){var k,E,K;h=m.divisions[O]={id:O,sortFunction:((k=t.divisionOptions)===null||k===void 0?void 0:k.sortFunction)||void 0,values:{}};var I=typeof((E=t.divisionOptions)===null||E===void 0?void 0:E.divisionRenderIds)=="function"?t.divisionOptions.divisionRenderIds(t.dimensionKey,v,s):O;i[O]={id:O,renderId:I,derivedNode:t.dimensionKey,edges:[],dimensionLevel:2,data:r({},h),renderingStrategy:((K=t.divisionOptions)===null||K===void 0?void 0:K.renderingStrategy)||"singleSquare"},i[O].data[t.dimensionKey]=v}}else{var R;h=m.divisions[m.nodeId],h||(h=m.divisions[m.nodeId]={id:m.nodeId,sortFunction:((R=t.divisionOptions)===null||R===void 0?void 0:R.sortFunction)||void 0,values:{}}),t.operations||(t.operations={});var j=t.operations.createNumericalSubdivisions;m.subdivisions=typeof j=="number"&&j<1?1:j||1,j!==1&&(m.divisionOptions||(m.divisionOptions=t.divisionOptions),l(v,m))}var w=typeof e.idKey=="function"?e.idKey(n):e.idKey;h.values[n[w]]=n}}s++})}),Object.keys(o).forEach(function(e){var n=o[e],t=n.divisions;if(n.type==="numerical"){t[n.nodeId].values=Object.fromEntries(Object.entries(t[n.nodeId].values).sort(function(i,t){return typeof n.sortFunction=="function"?n.sortFunction(i[1],t[1],n):i[1][e]-t[1][e]}));var r=t[n.nodeId].values;if(n.numericalExtents[0]!==1/0&&n.subdivisions!==1){var s=Object.keys(r),a=typeof n.subdivisions=="function"?n.subdivisions(e,r):n.subdivisions,d=(n.numericalExtents[1]-n.numericalExtents[0])/a,u=n.numericalExtents[0]+d,c=0,l=0;for(u=n.numericalExtents[0]+d;u<=n.numericalExtents[1];u+=d){var v,f,g,y;var p=typeof((v=n.divisionOptions)===null||v===void 0?void 0:v.divisionNodeIds)=="function"?n.divisionOptions.divisionNodeIds(e,u,u):n.nodeId+"_"+u;n.divisions[p]={id:p,sortFunction:((f=n.divisionOptions)===null||f===void 0?void 0:f.sortFunction)||void 0,values:{}};var m=typeof((g=n.divisionOptions)===null||g===void 0?void 0:g.divisionRenderIds)=="function"?n.divisionOptions.divisionRenderIds(e,u,u):p;i[p]={id:p,renderId:m,derivedNode:e,edges:[],data:n.divisions[p],dimensionLevel:2,renderingStrategy:((y=n.divisionOptions)===null||y===void 0?void 0:y.renderingStrategy)||"singleSquare"};var h=!1;for(;!h&&l<s.length;){var b=r[s[l]];b[e]<=u?n.divisions[p].values[b.id]=b:(u+=d,h=!0),l++}c++}delete t[e]}}else typeof n.sortFunction=="function"&&(n.divisions=Object.fromEntries(Object.entries(t).sort(function(e,i){return n.sortFunction(e[1],i[1],n)})));Object.keys(n.divisions).forEach(function(e){var i=n.divisions[e];typeof i.sortFunction=="function"&&(i.values=Object.fromEntries(Object.entries(i.values).sort(function(e,t){return n.sortFunction(e[1],t[1],i)})))})}),e.dimensions.adjustDimensions&&(o=e.dimensions.adjustDimensions(o)),o},P=function(e,i,n){var t={},o=function(e,n){i[e].edges.indexOf(n)===-1&&i[e].edges.push(n)},r=function(i,n,r,s){var a="".concat(i,"-").concat(n),u=e.useDirectedEdges?"".concat(n,"-").concat(a):a,c=!s||s==="source",l=!s||s==="target",v=function(e){var o;t[e]?(o=t[e].navigationRules).push.apply(o,d(r||[])):t[e]={source:i,target:n,navigationRules:r?d(r):[]}};v(a),e.useDirectedEdges&&l&&v(u),c&&o(i,a),l&&o(n,u)};if(n&&Object.keys(n).length){var s,a,u,c,l,v,f,g,y,p;var m=Object.keys(n),h=(u=e.dimensions)===null||u===void 0?void 0:(a=u.parentOptions)===null||a===void 0?void 0:(s=a.level1Options)===null||s===void 0?void 0:s.order,b=h||m,O=0,k=((c=e.dimensions)===null||c===void 0?void 0:c.parentOptions)||{},E=((v=k.level1Options)===null||v===void 0?void 0:(l=v.behavior)===null||l===void 0?void 0:l.extents)||"terminal",K=k.addLevel0,I=K?((g=k.level1Options)===null||g===void 0?void 0:(f=g.navigationRules)===null||f===void 0?void 0:f.parent_child)||["parent","child"]:[],R=((p=k.level1Options)===null||p===void 0?void 0:(y=p.navigationRules)===null||y===void 0?void 0:y.sibling_sibling)||["left","right"],j=typeof b[0]=="string"?h?i[b[0]]:i[n[b[0]].nodeId]:b[0];K&&r(K.id,j.id,I,"source"),b.forEach(function(t){var o=typeof t=="string"?h?i[t]:i[n[t].nodeId]:t;if(o===t&&!i[o.id]&&(i[o.id]=o),K&&(e.useDirectedEdges?r(o.id,K.id,I,"source"):r(K.id,o.id,I,"target")),O===b.length-1&&E==="circular")r(o.id,j.id,R);else if(O===b.length-1&&E==="bridgedCustom")r(o.id,k.level1Options.behavior.customBridgePost,R);else if(O<b.length-1){var s=typeof b[O+1]=="string"?h?i[b[O+1]]:i[n[b[O+1]].nodeId]:b[O+1];r(o.id,s.id,R)}!O&&E==="bridgedCustom"&&r(k.level1Options.behavior.customBridgePost,o.id,R),O++}),m.forEach(function(i){var t;var o=n[i],s=((t=o.behavior)===null||t===void 0?void 0:t.extents)||"circular";o.divisions||console.error("Parsing dimensions. The dimension using the key ".concat(i," is missing the divisions property. dimension.divisions should be supplied. ").concat(JSON.stringify(o),"."));var a=Object.keys(o.divisions),d=o.divisions[a[0]];if(a.length!==1)r(o.nodeId,d.id,o.navigationRules.parent_child,"source");else{var u=Object.keys(d.values),c=typeof e.idKey=="function"?e.idKey(d.values[u[0]]):e.idKey;r(o.nodeId,d.values[u[0]][c],o.navigationRules.parent_child,"source")}var l=0;a.forEach(function(i){var n=o.divisions[i];l===a.length-1&&(s==="circular"||s==="bridgedCousins"||s==="bridgedCustom")?r(n.id,o.divisions[a[0]].id,o.navigationRules.sibling_sibling):l<a.length-1&&r(n.id,o.divisions[a[l+1]].id,o.navigationRules.sibling_sibling);var t=Object.keys(n.values);e.useDirectedEdges?r(n.id,o.nodeId,o.navigationRules.parent_child,"source"):r(o.nodeId,n.id,o.navigationRules.parent_child,"target");var d=typeof e.idKey=="function"?e.idKey(n.values[t[0]]):e.idKey;r(n.id,n.values[t[0]][d],o.navigationRules.parent_child,"source");var u=0;t.length>1&&t.forEach(function(i){var d=n.values[i],c=typeof e.idKey=="function"?e.idKey(d):e.idKey,v=a.length!==1?n.id:o.nodeId;if(e.useDirectedEdges?r(d[c],v,o.navigationRules.parent_child,"source"):r(v,d[c],o.navigationRules.parent_child,"target"),u===t.length-1&&s==="circular"){var f=typeof e.idKey=="function"?e.idKey(n.values[t[0]]):e.idKey;r(d[c],n.values[t[0]][f],o.navigationRules.sibling_sibling)}else if(u===t.length-1&&s==="bridgedCousins")if(l!==a.length-1){var g=typeof e.idKey=="function"?e.idKey(o.divisions[a[l+1]].values[t[0]]):e.idKey;r(d[c],o.divisions[a[l+1]].values[t[0]][g],o.navigationRules.sibling_sibling)}else{var y=typeof e.idKey=="function"?e.idKey(o.divisions[a[0]].values[t[0]]):e.idKey;r(d[c],o.divisions[a[0]].values[t[0]][y],o.navigationRules.sibling_sibling)}else if(u===t.length-1&&s==="bridgedCustom")r(d[c],o.behavior.customBridgePost,o.navigationRules.sibling_sibling);else if(u<t.length-1){var p=typeof e.idKey=="function"?e.idKey(n.values[t[u+1]]):e.idKey;r(d[c],n.values[t[u+1]][p],o.navigationRules.sibling_sibling)}if(!u&&s==="bridgedCousins")if(l!==0){var m=typeof e.idKey=="function"?e.idKey(o.divisions[a[l-1]].values[t[t.length-1]]):e.idKey;r(o.divisions[a[l-1]].values[t[t.length-1]][m],d[c],o.navigationRules.sibling_sibling)}else{var h=typeof e.idKey=="function"?e.idKey(o.divisions[a[a.length-1]].values[t[t.length-1]]):e.idKey;r(o.divisions[a[a.length-1]].values[t[t.length-1]][h],d[c],o.navigationRules.sibling_sibling)}else!u&&s==="bridgedCustom"&&r(o.behavior.customBridgePrevious,d[c],o.navigationRules.sibling_sibling);u++}),l++})})}return Object.keys(i).forEach(function(n){var o;var r=i[n];((o=e.genericEdges)===null||o===void 0?void 0:o.length)&&e.genericEdges.forEach(function(e){t[e.edgeId]||(t[e.edgeId]=e.edge),(!e.conditional||e.conditional&&e.conditional(r,e))&&r.edges.push(e.edgeId)})}),t},L=function(e,i,n){var t=e.navigationRules;if(!t){var o=Object.keys(n||{});o.length>6&&console.error("Building navigationRules. Dimension count is too high to automatically generate key commands. It is recommend you reduce your dimensions to 6 or fewer for end-user experience. If not, you must provide your own navigation rules in options.navigationRules. Details: Count is ".concat(o.length,". Dimensions counted: ").concat(o.join(", "),"."));var s={},a={},u={},c=d(k),l=d(O),v=function(i,n){var t=i&&n,o=!1,v=!1;if((s[i]||a[i])&&(a[i]=r({},s[i]),o=!0),n&&(s[n]||a[n])&&(a[n]=r({},s[n]),v=!0),t&&!o&&!v){c.length||console.error("Building navigationRules. Dimension count is too high to automatically generate key commands, we have run out of keyboard key pairs to assign. You must either provide your own navigation rules in options.navigationRules, provide rules when generating dimensions, or reduce dimension count.");var f=d(c.shift());l.splice(l.indexOf(f[0]),1),l.splice(l.indexOf(f[1]),1),a[i]={direction:e.useDirectedEdges?"target":"source",key:f[0]},a[n]={direction:"target",key:f[1]}}else{if(!a[i]&&l.length){var g=l.shift(),y=[];c.forEach(function(e){g!==e[0]&&g!==e[1]&&y.push(e)}),c=y,a[i]={direction:e.useDirectedEdges?"target":"source",key:g}}if(n&&!a[n]&&l.length){var p=l.shift(),m=[];c.forEach(function(e){p!==e[0]&&p!==e[1]&&m.push(e)}),c=m,a[n]={direction:"target",key:p}}l.length||(a[i]||(u[i]=i),n&&!a[n]&&(u[n]=n))}};if(Object.keys(E).forEach(function(i){var n=r({},E[i]);e.useDirectedEdges&&(n.direction="target"),s[i]=n}),o.length){var f,g;if((g=e.dimensions)===null||g===void 0?void 0:(f=g.parentOptions)===null||f===void 0?void 0:f.addLevel0){var y,p;var m=((p=e.dimensions.parentOptions.level1Options)===null||p===void 0?void 0:(y=p.navigationRules)===null||y===void 0?void 0:y.parent_child)||["parent","child"];v(m[0],m[1])}o.forEach(function(e){var i=n[e].navigationRules.parent_child,t=n[e].navigationRules.sibling_sibling;v(i[0],i[1]),v(t[0],t[1])})}if(Object.keys(i).forEach(function(e){i[e].navigationRules.forEach(function(e){a[e]||v(e)})}),Object.keys(u).length){var h={};Object.keys(a).forEach(function(e){h[a[e].key]=a[e].key}),Object.keys(s).forEach(function(e){!h[s[e].key]&&!b[s[e].key]&&l.push(s[e].key)});var K=r({},u);u={},Object.keys(K).forEach(function(e){v(e)}),Object.keys(u).length&&console.error("Building navigationRules. There are no more keys left to assign automatically. Recommended fixes: use fewer dimensions, use fewer GenericEdges, or build your own navigationRules. Rules remaining without keyboard keys: ".concat(Object.keys(u).join(", "),"."))}t=a}return t},F=function(e){e.addIds&&S(e);var i=x(e),n=D(e,i),t=P(e,i,n),o=L(e,t,n);return{nodes:i,edges:t,dimensions:n,navigationRules:o}};0&&(module.exports={addSimpleDataIDs:addSimpleDataIDs,buildEdges:buildEdges,buildNodeStructureFromVegaLite:buildNodeStructureFromVegaLite,buildRules:buildRules,buildStructure:buildStructure,bulidNodes:bulidNodes,createValidId:createValidId,scaffoldDimensions:scaffoldDimensions});
|
|
1
|
+
function e(e,i){if(i==null||i>e.length)i=e.length;for(var n=0,t=new Array(i);n<i;n++)t[n]=e[n];return t}function i(i){if(Array.isArray(i))return e(i)}function n(e,i,n){if(i in e){Object.defineProperty(e,i,{value:n,enumerable:true,configurable:true,writable:true})}else{e[i]=n}return e}function t(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function o(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(e){for(var i=1;i<arguments.length;i++){var t=arguments[i]!=null?arguments[i]:{};var o=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){o=o.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))}o.forEach(function(i){n(e,i,t[i])})}return e}function s(e,i){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);if(i){t=t.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})}n.push.apply(n,t)}return n}function a(e,i){i=i!=null?i:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(i))}else{s(Object(i)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(i,n))})}return e}function d(e){return i(e)||t(e)||c(e)||o()}function u(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function c(i,n){if(!i)return;if(typeof i==="string")return e(i,n);var t=Object.prototype.toString.call(i).slice(8,-1);if(t==="Object"&&i.constructor)t=i.constructor.name;if(t==="Map"||t==="Set")return Array.from(t);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return e(i,n)}var l=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var y=function(e,i){for(var n in i)l(e,n,{get:i[n],enumerable:!0})},p=function(e,i,n,t){var o=true,r=false,s=undefined;if(i&&typeof i=="object"||typeof i=="function")try{var a=function(){var o=u.value;!g.call(e,o)&&o!==n&&l(e,o,{get:function(){return i[o]},enumerable:!(t=v(i,o))||t.enumerable})};for(var d=f(i)[Symbol.iterator](),u;!(o=(u=d.next()).done);o=true)a()}catch(e){r=true;s=e}finally{try{if(!o&&d.return!=null){d.return()}}finally{if(r){throw s}}}return e};var m=function(e){return p(l({},"__esModule",{value:!0}),e)};var h={};y(h,{addSimpleDataIDs:function(){return S},buildEdges:function(){return P},buildNodeStructureFromVegaLite:function(){return _},buildNodes:function(){return x},buildRules:function(){return L},buildStructure:function(){return F},default:function(){return w},scaffoldDimensions:function(){return D}});module.exports=m(h);var b={Escape:!0,Enter:!0,Backspace:!0,ArrowLeft:!0,ArrowRight:!0,ArrowUp:!0,ArrowDown:!0};var O=["KeyW","KeyJ","LeftBracket","RightBracket","Slash","Backslash"];var k=[["LeftBracket","RightBracket"],["Slash","Backslash"]],E={left:{key:"ArrowLeft",direction:"source"},right:{key:"ArrowRight",direction:"target"},up:{key:"ArrowUp",direction:"source"},down:{key:"ArrowDown",direction:"target"},child:{key:"Enter",direction:"target"},parent:{key:"Backspace",direction:"source"},backward:{key:"Comma",direction:"source"},forward:{key:"Period",direction:"target"},previous:{key:"Semicolon",direction:"source"},next:{key:"Quote",direction:"target"},exit:{key:"Escape",direction:"target"},help:{key:"KeyY",direction:"target"},undo:{key:"KeyZ",direction:"target"}},K=[["left","right"],["up","down"],["backward","forward"],["previous","next"]];var I={right:{key:"ArrowRight",direction:"target"},left:{key:"ArrowLeft",direction:"source"},down:{key:"ArrowDown",direction:"target"},up:{key:"ArrowUp",direction:"source"},child:{key:"Enter",direction:"target"},parent:{key:"Backspace",direction:"source"},exit:{key:"Escape",direction:"target"},undo:{key:"Period",direction:"target"},legend:{key:"KeyL",direction:"target"}};var R=function(e,i){var n=Object.keys(e),t="";return n.forEach(function(n){t+="".concat(i&&i.omitKeyNames?"":n+": ").concat(e[n],". ")}),t+=i&&i.semanticLabel||"Data point.",t},j=function(e){return"_"+e.replace(/[^a-zA-Z0-9_-]+/g,"_")};var w=function(e){return e.dataType==="vega-lite"||e.dataType==="vl"||e.dataType==="Vega-Lite"?_(e):F(e)},_=function(e){var i=I,n={},t={},o={},r=0,s=e.groupInclusionCriteria?e.groupInclusionCriteria:function(){return!0},a=e.itemInclusionCriteria?e.itemInclusionCriteria:function(){return!0},d=e.datumInclusionCriteria?e.datumInclusionCriteria:function(){return!0},u=e.vegaLiteView._renderer._origin,c=e.vegaLiteView._scenegraph.root.items[0].mark.items[0],l=function(e,i){if(e["data-navigator-id"])return e["data-navigator-id"];var n="dn-node-".concat(i,"-").concat(r);return r++,e["data-navigator-id"]=n,n},v=function(i){var o=n[i],r=o.index,s=o.level,a=o.parent,d=[],u=a.items[r-1];if(u){var c=l(u,s);if(n[c]){var v="".concat(c,"-").concat(o.id);d.push(v),t[v]||(t[v]={source:c,target:o.id,navigationRules:["left","right"]})}}var f=a.items[r+1];if(f){var g=l(f,s);if(n[g]){var y="".concat(o.id,"-").concat(g);d.push(y),t[y]||(t[y]={source:o.id,target:g,navigationRules:["left","right"]})}}if(s==="group"&&a.items[r].items){var p=(a.items[r].items[0].mark.items[0].items||a.items[r].items)[0],m=l(p,"item");if(n[m]){var h="".concat(o.id,"-").concat(m);d.push(h),t[h]||(t[h]={source:o.id,target:m,navigationRules:["parent","child"]})}}else if(s==="item"){var b=l(a,"group");if(n[b]){var O="".concat(b,"-").concat(o.id);d.push(O),t[O]||(t[O]={source:b,target:o.id,navigationRules:["parent","child"]})}}return e.exitFunction&&(d.push("any-exit"),t["any-exit"]||(t["any-exit"]={source:e.getCurrent,target:e.exitFunction,navigationRules:["exit"]})),d.push("any-undo"),t["any-undo"]||(t["any-undo"]={source:e.getCurrent,target:e.getPrevious,navigationRules:["undo"]}),d},f=function(i,t,r,s,a){var u=l(i,t),c="render-"+u,v=r||[0,0];n[u]={},n[u].d={},n[u].id=u,n[u].renderId=c,n[u].index=s,n[u].level=t,n[u].parent=a,o[c]={},o[c].renderId=c,o[c].spatialProperties={},o[c].spatialProperties.x=i.bounds.x1+v[0],o[c].spatialProperties.y=i.bounds.y1+v[1],o[c].spatialProperties.width=i.bounds.x2-i.bounds.x1,o[c].spatialProperties.height=i.bounds.y2-i.bounds.y1,o[c].cssClass="dn-vega-lite-node",i.datum&&Object.keys(i.datum).forEach(function(o){var r=i.datum[o];d(o,r,i.datum,t,e.vegaLiteSpec)&&(n[u].d[e.keyRenamingHash&&e.keyRenamingHash[o]?e.keyRenamingHash[o]:o]=r)}),o[c].semantics={},o[c].semantics.label=e.nodeDescriber?e.nodeDescriber(n[u].d,i,t):R(n[u].d)},g=0;return c.items.forEach(function(i){if(s(i,g,e.vegaLiteSpec)){f(i,"group",u,g,c);var n=0,t=i.items[0].mark.items[0].items?i.items[0].mark.items[0]:i;t.items.forEach(function(o){a(o,n,i,e.vegaLiteSpec)&&f(o,"item",u,n,t),n++})}g++}),Object.keys(n).forEach(function(e){n[e].edges=v(e)}),{nodes:n,edges:t,elementData:o,navigationRules:i}},S=function(e){var i=0,n={};e.data.forEach(function(t){var o=typeof e.idKey=="function"?e.idKey(t):e.idKey;t[o]="_"+i,e.keysForIdGeneration&&e.keysForIdGeneration.forEach(function(e){e in t&&(typeof t[e]=="string"?(n[e]||(n[e]=0),n[t[e]]||(n[t[e]]=0),t[o]+="_"+e+n[e]+"_"+t[e]+n[t[e]],n[e]++,n[t[e]]++):(n[e]||(n[e]=0),t[o]+="_"+e+n[e],n[e]++))}),i++})},x=function(e){var i={};return e.data.forEach(function(n){e.idKey||console.error("Building nodes. A key string must be supplied in options.idKey to specify the id keys of every node.");var t=typeof e.idKey=="function"?e.idKey(n):e.idKey,o=n[t];if(!o){console.error("Building nodes. Each datum in options.data must contain an id. When matching the id key string ".concat(t,", this datum has no id: ").concat(JSON.stringify(n),"."));return}if(i[o]){console.error("Building nodes. Each id for data in options.data must be unique. This id is not unique: ".concat(o,"."));return}else{var r=typeof e.renderIdKey=="function"?e.renderIdKey(n):e.renderIdKey;i[o]={id:o,edges:[],renderId:r?n[r]||"":n.renderIdKey||"",data:n}}}),i},D=function(e,i){var n,t;var o={};if((t=e.dimensions)===null||t===void 0?void 0:(n=t.parentOptions)===null||n===void 0?void 0:n.addLevel0){var s=e.dimensions.parentOptions.addLevel0;i[s.id]=a(r({},s),{dimensionLevel:0})}var c=d(K),l=function(e,i){var n=i.numericalExtents[0],t=i.numericalExtents[1];i.numericalExtents[0]=n<e?n:e,i.numericalExtents[1]=t>e?t:e};return e.data.forEach(function(n){var t=e.dimensions.values||[],s=0;t.forEach(function(t){if(!t.dimensionKey){console.error("Building nodes, parsing dimensions. Each dimension in options.dimensions must contain a dimensionKey. This dimension has no key: ".concat(JSON.stringify(t),"."));return}if(t.dimensionKey in n){var a;var v=n[t.dimensionKey],f=typeof((a=t.operations)===null||a===void 0?void 0:a.filterFunction)=="function"?t.operations.filterFunction(n,t):!0;if(v!==void 0&&f){if(t.type||(t.type=(typeof v==="undefined"?"undefined":u(v))=="bigint"||typeof v=="number"?"numerical":"categorical"),!o[t.dimensionKey]){var g;var y=typeof t.nodeId=="function"?t.nodeId(t,e.data):t.nodeId||j(t.dimensionKey),p=typeof t.renderId=="function"?t.renderId(t,e.data):t.renderId||y;o[t.dimensionKey]={dimensionKey:t.dimensionKey,nodeId:y,divisions:{},numericalExtents:[1/0,-1/0],type:t.type,sortFunction:((g=t.operations)===null||g===void 0?void 0:g.sortFunction)||void 0,behavior:t.behavior||{extents:"circular"},navigationRules:t.navigationRules||{sibling_sibling:c.length?d(c.shift()):["previous_"+t.dimensionKey,"next_"+t.dimensionKey],parent_child:["parent_"+t.dimensionKey,"child"]}},i[y]={id:y,renderId:p,derivedNode:t.dimensionKey,edges:[],dimensionLevel:1,data:o[t.dimensionKey],renderingStrategy:t.renderingStrategy||"singleSquare"}}var m=o[t.dimensionKey],h=null;if(t.type==="categorical"){var b;var O=typeof((b=t.divisionOptions)===null||b===void 0?void 0:b.divisionNodeIds)=="function"?t.divisionOptions.divisionNodeIds(t.dimensionKey,v,s):j(m.nodeId+"_"+v);if(h=m.divisions[O],!h){var k,E,K;h=m.divisions[O]={id:O,sortFunction:((k=t.divisionOptions)===null||k===void 0?void 0:k.sortFunction)||void 0,values:{}};var I=typeof((E=t.divisionOptions)===null||E===void 0?void 0:E.divisionRenderIds)=="function"?t.divisionOptions.divisionRenderIds(t.dimensionKey,v,s):O;i[O]={id:O,renderId:I,derivedNode:t.dimensionKey,edges:[],dimensionLevel:2,data:r({},h),renderingStrategy:((K=t.divisionOptions)===null||K===void 0?void 0:K.renderingStrategy)||"singleSquare"},i[O].data[t.dimensionKey]=v}}else{var R;h=m.divisions[m.nodeId],h||(h=m.divisions[m.nodeId]={id:m.nodeId,sortFunction:((R=t.divisionOptions)===null||R===void 0?void 0:R.sortFunction)||void 0,values:{}}),t.operations||(t.operations={});var w=t.operations.createNumericalSubdivisions;m.subdivisions=typeof w=="number"&&w<1?1:w||1,w!==1&&(m.divisionOptions||(m.divisionOptions=t.divisionOptions),l(v,m))}var _=typeof e.idKey=="function"?e.idKey(n):e.idKey;h.values[n[_]]=n}}s++})}),Object.keys(o).forEach(function(e){var n=o[e],t=n.divisions;if(n.type==="numerical"){t[n.nodeId].values=Object.fromEntries(Object.entries(t[n.nodeId].values).sort(function(i,t){return typeof n.sortFunction=="function"?n.sortFunction(i[1],t[1],n):i[1][e]-t[1][e]}));var r=t[n.nodeId].values;if(n.numericalExtents[0]!==1/0&&n.subdivisions!==1){var s=Object.keys(r),a=typeof n.subdivisions=="function"?n.subdivisions(e,r):n.subdivisions,d=(n.numericalExtents[1]-n.numericalExtents[0])/a,u=n.numericalExtents[0]+d,c=0,l=0;for(u=n.numericalExtents[0]+d;u<=n.numericalExtents[1];u+=d){var v,f,g,y;var p=typeof((v=n.divisionOptions)===null||v===void 0?void 0:v.divisionNodeIds)=="function"?n.divisionOptions.divisionNodeIds(e,u,u):n.nodeId+"_"+u;n.divisions[p]={id:p,sortFunction:((f=n.divisionOptions)===null||f===void 0?void 0:f.sortFunction)||void 0,values:{}};var m=typeof((g=n.divisionOptions)===null||g===void 0?void 0:g.divisionRenderIds)=="function"?n.divisionOptions.divisionRenderIds(e,u,u):p;i[p]={id:p,renderId:m,derivedNode:e,edges:[],data:n.divisions[p],dimensionLevel:2,renderingStrategy:((y=n.divisionOptions)===null||y===void 0?void 0:y.renderingStrategy)||"singleSquare"};var h=!1;for(;!h&&l<s.length;){var b=r[s[l]];b[e]<=u?n.divisions[p].values[b.id]=b:(u+=d,h=!0),l++}c++}delete t[e]}}else typeof n.sortFunction=="function"&&(n.divisions=Object.fromEntries(Object.entries(t).sort(function(e,i){return n.sortFunction(e[1],i[1],n)})));Object.keys(n.divisions).forEach(function(e){var i=n.divisions[e];typeof i.sortFunction=="function"&&(i.values=Object.fromEntries(Object.entries(i.values).sort(function(e,t){return n.sortFunction(e[1],t[1],i)})))})}),e.dimensions.adjustDimensions&&(o=e.dimensions.adjustDimensions(o)),o},P=function(e,i,n){var t={},o=function(e,n){i[e].edges.indexOf(n)===-1&&i[e].edges.push(n)},r=function(i,n,r,s){var a="".concat(i,"-").concat(n),u=e.useDirectedEdges?"".concat(n,"-").concat(a):a,c=!s||s==="source",l=!s||s==="target",v=function(e){var o;t[e]?(o=t[e].navigationRules).push.apply(o,d(r||[])):t[e]={source:i,target:n,navigationRules:r?d(r):[]}};v(a),e.useDirectedEdges&&l&&v(u),c&&o(i,a),l&&o(n,u)};if(n&&Object.keys(n).length){var s,a,u,c,l,v,f,g,y,p;var m=Object.keys(n),h=(u=e.dimensions)===null||u===void 0?void 0:(a=u.parentOptions)===null||a===void 0?void 0:(s=a.level1Options)===null||s===void 0?void 0:s.order,b=h||m,O=0,k=((c=e.dimensions)===null||c===void 0?void 0:c.parentOptions)||{},E=((v=k.level1Options)===null||v===void 0?void 0:(l=v.behavior)===null||l===void 0?void 0:l.extents)||"terminal",K=k.addLevel0,I=K?((g=k.level1Options)===null||g===void 0?void 0:(f=g.navigationRules)===null||f===void 0?void 0:f.parent_child)||["parent","child"]:[],R=((p=k.level1Options)===null||p===void 0?void 0:(y=p.navigationRules)===null||y===void 0?void 0:y.sibling_sibling)||["left","right"],j=typeof b[0]=="string"?h?i[b[0]]:i[n[b[0]].nodeId]:b[0];K&&r(K.id,j.id,I,"source"),b.forEach(function(t){var o=typeof t=="string"?h?i[t]:i[n[t].nodeId]:t;if(o===t&&!i[o.id]&&(i[o.id]=o),K&&(e.useDirectedEdges?r(o.id,K.id,I,"source"):r(K.id,o.id,I,"target")),O===b.length-1&&E==="circular")r(o.id,j.id,R);else if(O===b.length-1&&E==="bridgedCustom")r(o.id,k.level1Options.behavior.customBridgePost,R);else if(O<b.length-1){var s=typeof b[O+1]=="string"?h?i[b[O+1]]:i[n[b[O+1]].nodeId]:b[O+1];r(o.id,s.id,R)}!O&&E==="bridgedCustom"&&r(k.level1Options.behavior.customBridgePost,o.id,R),O++}),m.forEach(function(i){var t;var o=n[i],s=((t=o.behavior)===null||t===void 0?void 0:t.extents)||"circular";o.divisions||console.error("Parsing dimensions. The dimension using the key ".concat(i," is missing the divisions property. dimension.divisions should be supplied. ").concat(JSON.stringify(o),"."));var a=Object.keys(o.divisions),d=o.divisions[a[0]];if(a.length!==1)r(o.nodeId,d.id,o.navigationRules.parent_child,"source");else{var u=Object.keys(d.values),c=typeof e.idKey=="function"?e.idKey(d.values[u[0]]):e.idKey;r(o.nodeId,d.values[u[0]][c],o.navigationRules.parent_child,"source")}var l=0;a.forEach(function(i){var n=o.divisions[i];l===a.length-1&&(s==="circular"||s==="bridgedCousins"||s==="bridgedCustom")?r(n.id,o.divisions[a[0]].id,o.navigationRules.sibling_sibling):l<a.length-1&&r(n.id,o.divisions[a[l+1]].id,o.navigationRules.sibling_sibling);var t=Object.keys(n.values);e.useDirectedEdges?r(n.id,o.nodeId,o.navigationRules.parent_child,"source"):r(o.nodeId,n.id,o.navigationRules.parent_child,"target");var d=typeof e.idKey=="function"?e.idKey(n.values[t[0]]):e.idKey;r(n.id,n.values[t[0]][d],o.navigationRules.parent_child,"source");var u=0;t.length>1&&t.forEach(function(i){var d=n.values[i],c=typeof e.idKey=="function"?e.idKey(d):e.idKey,v=a.length!==1?n.id:o.nodeId;if(e.useDirectedEdges?r(d[c],v,o.navigationRules.parent_child,"source"):r(v,d[c],o.navigationRules.parent_child,"target"),u===t.length-1&&s==="circular"){var f=typeof e.idKey=="function"?e.idKey(n.values[t[0]]):e.idKey;r(d[c],n.values[t[0]][f],o.navigationRules.sibling_sibling)}else if(u===t.length-1&&s==="bridgedCousins")if(l!==a.length-1){var g=typeof e.idKey=="function"?e.idKey(o.divisions[a[l+1]].values[t[0]]):e.idKey;r(d[c],o.divisions[a[l+1]].values[t[0]][g],o.navigationRules.sibling_sibling)}else{var y=typeof e.idKey=="function"?e.idKey(o.divisions[a[0]].values[t[0]]):e.idKey;r(d[c],o.divisions[a[0]].values[t[0]][y],o.navigationRules.sibling_sibling)}else if(u===t.length-1&&s==="bridgedCustom")r(d[c],o.behavior.customBridgePost,o.navigationRules.sibling_sibling);else if(u<t.length-1){var p=typeof e.idKey=="function"?e.idKey(n.values[t[u+1]]):e.idKey;r(d[c],n.values[t[u+1]][p],o.navigationRules.sibling_sibling)}if(!u&&s==="bridgedCousins")if(l!==0){var m=typeof e.idKey=="function"?e.idKey(o.divisions[a[l-1]].values[t[t.length-1]]):e.idKey;r(o.divisions[a[l-1]].values[t[t.length-1]][m],d[c],o.navigationRules.sibling_sibling)}else{var h=typeof e.idKey=="function"?e.idKey(o.divisions[a[a.length-1]].values[t[t.length-1]]):e.idKey;r(o.divisions[a[a.length-1]].values[t[t.length-1]][h],d[c],o.navigationRules.sibling_sibling)}else!u&&s==="bridgedCustom"&&r(o.behavior.customBridgePrevious,d[c],o.navigationRules.sibling_sibling);u++}),l++})})}return Object.keys(i).forEach(function(n){var o;var r=i[n];((o=e.genericEdges)===null||o===void 0?void 0:o.length)&&e.genericEdges.forEach(function(e){t[e.edgeId]||(t[e.edgeId]=e.edge),(!e.conditional||e.conditional&&e.conditional(r,e))&&r.edges.push(e.edgeId)})}),t},L=function(e,i,n){var t=e.navigationRules;if(!t){var o=Object.keys(n||{});o.length>6&&console.error("Building navigationRules. Dimension count is too high to automatically generate key commands. It is recommend you reduce your dimensions to 6 or fewer for end-user experience. If not, you must provide your own navigation rules in options.navigationRules. Details: Count is ".concat(o.length,". Dimensions counted: ").concat(o.join(", "),"."));var s={},a={},u={},c=d(k),l=d(O),v=function(i,n){var t=i&&n,o=!1,v=!1;if((s[i]||a[i])&&(a[i]=r({},s[i]),o=!0),n&&(s[n]||a[n])&&(a[n]=r({},s[n]),v=!0),t&&!o&&!v){c.length||console.error("Building navigationRules. Dimension count is too high to automatically generate key commands, we have run out of keyboard key pairs to assign. You must either provide your own navigation rules in options.navigationRules, provide rules when generating dimensions, or reduce dimension count.");var f=d(c.shift());l.splice(l.indexOf(f[0]),1),l.splice(l.indexOf(f[1]),1),a[i]={direction:e.useDirectedEdges?"target":"source",key:f[0]},a[n]={direction:"target",key:f[1]}}else{if(!a[i]&&l.length){var g=l.shift(),y=[];c.forEach(function(e){g!==e[0]&&g!==e[1]&&y.push(e)}),c=y,a[i]={direction:e.useDirectedEdges?"target":"source",key:g}}if(n&&!a[n]&&l.length){var p=l.shift(),m=[];c.forEach(function(e){p!==e[0]&&p!==e[1]&&m.push(e)}),c=m,a[n]={direction:"target",key:p}}l.length||(a[i]||(u[i]=i),n&&!a[n]&&(u[n]=n))}};if(Object.keys(E).forEach(function(i){var n=r({},E[i]);e.useDirectedEdges&&(n.direction="target"),s[i]=n}),o.length){var f,g;if((g=e.dimensions)===null||g===void 0?void 0:(f=g.parentOptions)===null||f===void 0?void 0:f.addLevel0){var y,p;var m=((p=e.dimensions.parentOptions.level1Options)===null||p===void 0?void 0:(y=p.navigationRules)===null||y===void 0?void 0:y.parent_child)||["parent","child"];v(m[0],m[1])}o.forEach(function(e){var i=n[e].navigationRules.parent_child,t=n[e].navigationRules.sibling_sibling;v(i[0],i[1]),v(t[0],t[1])})}if(Object.keys(i).forEach(function(e){i[e].navigationRules.forEach(function(e){a[e]||v(e)})}),Object.keys(u).length){var h={};Object.keys(a).forEach(function(e){h[a[e].key]=a[e].key}),Object.keys(s).forEach(function(e){!h[s[e].key]&&!b[s[e].key]&&l.push(s[e].key)});var K=r({},u);u={},Object.keys(K).forEach(function(e){v(e)}),Object.keys(u).length&&console.error("Building navigationRules. There are no more keys left to assign automatically. Recommended fixes: use fewer dimensions, use fewer GenericEdges, or build your own navigationRules. Rules remaining without keyboard keys: ".concat(Object.keys(u).join(", "),"."))}t=a}return t},F=function(e){e.addIds&&S(e);var i=x(e),n=D(e,i),t=P(e,i,n),o=L(e,t,n);return{nodes:i,edges:t,dimensions:n,navigationRules:o}};0&&(module.exports={addSimpleDataIDs:addSimpleDataIDs,buildEdges:buildEdges,buildNodeStructureFromVegaLite:buildNodeStructureFromVegaLite,buildNodes:buildNodes,buildRules:buildRules,buildStructure:buildStructure,scaffoldDimensions:scaffoldDimensions});
|
package/dist/structure.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as B}from"./chunk-CCACYVYB.mjs";import{a as L,c as $,e as P,f as C,g as k,i as w}from"./chunk-PEL3ZYDS.mjs";var Y=e=>e.dataType==="vega-lite"||e.dataType==="vl"||e.dataType==="Vega-Lite"?T(e):U(e),T=e=>{let y=w,d={},l={},h={},t=0,s=e.groupInclusionCriteria?e.groupInclusionCriteria:()=>!0,f=e.itemInclusionCriteria?e.itemInclusionCriteria:()=>!0,n=e.datumInclusionCriteria?e.datumInclusionCriteria:()=>!0,u=e.vegaLiteView._renderer._origin,v=e.vegaLiteView._scenegraph.root.items[0].mark.items[0],r=(o,i)=>{if(o["data-navigator-id"])return o["data-navigator-id"];let b=`dn-node-${i}-${t}`;return t++,o["data-navigator-id"]=b,b},a=o=>{let i=d[o],b=i.index,m=i.level,R=i.parent,p=[],K=R.items[b-1];if(K){let g=r(K,m);if(d[g]){let E=`${g}-${i.id}`;p.push(E),l[E]||(l[E]={source:g,target:i.id,navigationRules:["left","right"]})}}let I=R.items[b+1];if(I){let g=r(I,m);if(d[g]){let E=`${i.id}-${g}`;p.push(E),l[E]||(l[E]={source:i.id,target:g,navigationRules:["left","right"]})}}if(m==="group"&&R.items[b].items){let E=(R.items[b].items[0].mark.items[0].items||R.items[b].items)[0],x=r(E,"item");if(d[x]){let S=`${i.id}-${x}`;p.push(S),l[S]||(l[S]={source:i.id,target:x,navigationRules:["parent","child"]})}}else if(m==="item"){let g=r(R,"group");if(d[g]){let E=`${g}-${i.id}`;p.push(E),l[E]||(l[E]={source:g,target:i.id,navigationRules:["parent","child"]})}}return e.exitFunction&&(p.push("any-exit"),l["any-exit"]||(l["any-exit"]={source:e.getCurrent,target:e.exitFunction,navigationRules:["exit"]})),p.push("any-undo"),l["any-undo"]||(l["any-undo"]={source:e.getCurrent,target:e.getPrevious,navigationRules:["undo"]}),p},O=(o,i,b,m,R)=>{let p=r(o,i),K="render-"+p,I=b||[0,0];d[p]={},d[p].d={},d[p].id=p,d[p].renderId=K,d[p].index=m,d[p].level=i,d[p].parent=R,h[K]={},h[K].renderId=K,h[K].spatialProperties={},h[K].spatialProperties.x=o.bounds.x1+I[0],h[K].spatialProperties.y=o.bounds.y1+I[1],h[K].spatialProperties.width=o.bounds.x2-o.bounds.x1,h[K].spatialProperties.height=o.bounds.y2-o.bounds.y1,h[K].cssClass="dn-vega-lite-node",o.datum&&Object.keys(o.datum).forEach(g=>{let E=o.datum[g];n(g,E,o.datum,i,e.vegaLiteSpec)&&(d[p].d[e.keyRenamingHash&&e.keyRenamingHash[g]?e.keyRenamingHash[g]:g]=E)}),h[K].semantics={},h[K].semantics.label=e.nodeDescriber?e.nodeDescriber(d[p].d,o,i):B(d[p].d)},c=0;return v.items.forEach(o=>{if(s(o,c,e.vegaLiteSpec)){O(o,"group",u,c,v);let i=0,b=o.items[0].mark.items[0].items?o.items[0].mark.items[0]:o;b.items.forEach(m=>{f(m,i,o,e.vegaLiteSpec)&&O(m,"item",u,i,b),i++})}c++}),Object.keys(d).forEach(o=>{d[o].edges=a(o)}),{nodes:d,edges:l,elementData:h,navigationRules:y}},G=e=>"_"+e.replace(/[^a-zA-Z0-9_-]+/g,"_"),V=e=>{let y=0,d={};e.data.forEach(l=>{let h=typeof e.idKey=="function"?e.idKey(l):e.idKey;l[h]="_"+y,e.keysForIdGeneration&&e.keysForIdGeneration.forEach(t=>{t in l&&(typeof l[t]=="string"?(d[t]||(d[t]=0),d[l[t]]||(d[l[t]]=0),l[h]+="_"+t+d[t]+"_"+l[t]+d[l[t]],d[t]++,d[l[t]]++):(d[t]||(d[t]=0),l[h]+="_"+t+d[t],d[t]++))}),y++})},q=e=>{let y={};return e.data.forEach(d=>{e.idKey||console.error("Building nodes. A key string must be supplied in options.idKey to specify the id keys of every node.");let l=typeof e.idKey=="function"?e.idKey(d):e.idKey,h=d[l];if(!h){console.error(`Building nodes. Each datum in options.data must contain an id. When matching the id key string ${l}, this datum has no id: ${JSON.stringify(d)}.`);return}if(y[h]){console.error(`Building nodes. Each id for data in options.data must be unique. This id is not unique: ${h}.`);return}else{let t=typeof e.renderIdKey=="function"?e.renderIdKey(d):e.renderIdKey;y[h]={id:h,edges:[],renderId:t?d[t]||"":d.renderIdKey||"",data:d}}}),y},A=(e,y)=>{let d={};if(e.dimensions?.parentOptions?.addLevel0){let t=e.dimensions.parentOptions.addLevel0;y[t.id]={...t,dimensionLevel:0}}let l=[...k],h=(t,s)=>{let f=s.numericalExtents[0],n=s.numericalExtents[1];s.numericalExtents[0]=f<t?f:t,s.numericalExtents[1]=n>t?n:t};return e.data.forEach(t=>{let s=e.dimensions.values||[],f=0;s.forEach(n=>{if(!n.dimensionKey){console.error(`Building nodes, parsing dimensions. Each dimension in options.dimensions must contain a dimensionKey. This dimension has no key: ${JSON.stringify(n)}.`);return}if(n.dimensionKey in t){let u=t[n.dimensionKey],v=typeof n.operations?.filterFunction=="function"?n.operations.filterFunction(t,n):!0;if(u!==void 0&&v){if(n.type||(n.type=typeof u=="bigint"||typeof u=="number"?"numerical":"categorical"),!d[n.dimensionKey]){let c=typeof n.nodeId=="function"?n.nodeId(n,e.data):n.nodeId||G(n.dimensionKey),j=typeof n.renderId=="function"?n.renderId(n,e.data):n.renderId||c;d[n.dimensionKey]={dimensionKey:n.dimensionKey,nodeId:c,divisions:{},numericalExtents:[1/0,-1/0],type:n.type,sortFunction:n.operations?.sortFunction||void 0,behavior:n.behavior||{extents:"circular"},navigationRules:n.navigationRules||{sibling_sibling:l.length?[...l.shift()]:["previous_"+n.dimensionKey,"next_"+n.dimensionKey],parent_child:["parent_"+n.dimensionKey,"child"]}},y[c]={id:c,renderId:j,derivedNode:n.dimensionKey,edges:[],dimensionLevel:1,data:d[n.dimensionKey],renderingStrategy:n.renderingStrategy||"singleSquare"}}let r=d[n.dimensionKey],a=null;if(n.type==="categorical"){let c=typeof n.divisionOptions?.divisionNodeIds=="function"?n.divisionOptions.divisionNodeIds(n.dimensionKey,u,f):r.nodeId+"_"+u;if(a=r.divisions[c],!a){a=r.divisions[c]={id:c,sortFunction:n.divisionOptions?.sortFunction||void 0,values:{}};let j=typeof n.divisionOptions?.divisionRenderIds=="function"?n.divisionOptions.divisionRenderIds(n.dimensionKey,u,f):c;y[c]={id:c,renderId:j,derivedNode:n.dimensionKey,edges:[],dimensionLevel:2,data:{...a},renderingStrategy:n.divisionOptions?.renderingStrategy||"singleSquare"},y[c].data[n.dimensionKey]=u}}else{a=r.divisions[r.nodeId],a||(a=r.divisions[r.nodeId]={id:r.nodeId,sortFunction:n.divisionOptions?.sortFunction||void 0,values:{}}),n.operations||(n.operations={});let c=n.operations.createNumericalSubdivisions;r.subdivisions=typeof c=="number"&&c<1?1:c||1,c!==1&&(r.divisionOptions||(r.divisionOptions=n.divisionOptions),h(u,r))}let O=typeof e.idKey=="function"?e.idKey(t):e.idKey;a.values[t[O]]=t}}f++})}),Object.keys(d).forEach(t=>{let s=d[t],f=s.divisions;if(s.type==="numerical"){f[s.nodeId].values=Object.fromEntries(Object.entries(f[s.nodeId].values).sort((v,r)=>typeof s.sortFunction=="function"?s.sortFunction(v[1],r[1],s):v[1][t]-r[1][t]));let u=f[s.nodeId].values;if(s.numericalExtents[0]!==1/0&&s.subdivisions!==1){let v=Object.keys(u),r=typeof s.subdivisions=="function"?s.subdivisions(t,u):s.subdivisions,O=(s.numericalExtents[1]-s.numericalExtents[0])/r,c=s.numericalExtents[0]+O,j=0,o=0;for(c=s.numericalExtents[0]+O;c<=s.numericalExtents[1];c+=O){let i=typeof s.divisionOptions?.divisionNodeIds=="function"?s.divisionOptions.divisionNodeIds(t,c,c):s.nodeId+"_"+c;s.divisions[i]={id:i,sortFunction:s.divisionOptions?.sortFunction||void 0,values:{}};let b=typeof s.divisionOptions?.divisionRenderIds=="function"?s.divisionOptions.divisionRenderIds(t,c,c):i;y[i]={id:i,renderId:b,derivedNode:t,edges:[],data:s.divisions[i],dimensionLevel:2,renderingStrategy:s.divisionOptions?.renderingStrategy||"singleSquare"};let m=!1;for(;!m&&o<v.length;){let R=u[v[o]];R[t]<=c?s.divisions[i].values[R.id]=R:(c+=O,m=!0),o++}j++}delete f[t]}}else typeof s.sortFunction=="function"&&(s.divisions=Object.fromEntries(Object.entries(f).sort((u,v)=>s.sortFunction(u[1],v[1],s))));Object.keys(s.divisions).forEach(u=>{let v=s.divisions[u];typeof v.sortFunction=="function"&&(v.values=Object.fromEntries(Object.entries(v.values).sort((r,a)=>s.sortFunction(r[1],a[1],v))))})}),e.dimensions.adjustDimensions&&(d=e.dimensions.adjustDimensions(d)),d},H=(e,y,d)=>{let l={},h=(s,f)=>{y[s].edges.indexOf(f)===-1&&y[s].edges.push(f)},t=(s,f,n,u)=>{let v=`${s}-${f}`,r=e.useDirectedEdges?`${f}-${v}`:v,a=!u||u==="source",O=!u||u==="target",c=j=>{l[j]?l[j].navigationRules.push(...n||[]):l[j]={source:s,target:f,navigationRules:n?[...n]:[]}};c(v),e.useDirectedEdges&&O&&c(r),a&&h(s,v),O&&h(f,r)};if(d&&Object.keys(d).length){let s=Object.keys(d),f=e.dimensions?.parentOptions?.level1Options?.order,n=f||s,u=0,v=e.dimensions?.parentOptions||{},r=v.level1Options?.behavior?.extents||"terminal",a=v.addLevel0,O=a?v.level1Options?.navigationRules?.parent_child||["parent","child"]:[],c=v.level1Options?.navigationRules?.sibling_sibling||["left","right"],j=typeof n[0]=="string"?f?y[n[0]]:y[d[n[0]].nodeId]:n[0];a&&t(a.id,j.id,O,"source"),n.forEach(o=>{let i=typeof o=="string"?f?y[o]:y[d[o].nodeId]:o;if(i===o&&!y[i.id]&&(y[i.id]=i),a&&(e.useDirectedEdges?t(i.id,a.id,O,"source"):t(a.id,i.id,O,"target")),u===n.length-1&&r==="circular")t(i.id,j.id,c);else if(u===n.length-1&&r==="bridgedCustom")t(i.id,v.level1Options.behavior.customBridgePost,c);else if(u<n.length-1){let b=typeof n[u+1]=="string"?f?y[n[u+1]]:y[d[n[u+1]].nodeId]:n[u+1];t(i.id,b.id,c)}!u&&r==="bridgedCustom"&&t(v.level1Options.behavior.customBridgePost,i.id,c),u++}),s.forEach(o=>{let i=d[o],b=i.behavior?.extents||"circular";i.divisions||console.error(`Parsing dimensions. The dimension using the key ${o} is missing the divisions property. dimension.divisions should be supplied. ${JSON.stringify(i)}.`);let m=Object.keys(i.divisions),R=i.divisions[m[0]];if(m.length!==1)t(i.nodeId,R.id,i.navigationRules.parent_child,"source");else{let K=Object.keys(R.values),I=typeof e.idKey=="function"?e.idKey(R.values[K[0]]):e.idKey;t(i.nodeId,R.values[K[0]][I],i.navigationRules.parent_child,"source")}let p=0;m.forEach(K=>{let I=i.divisions[K];p===m.length-1&&(b==="circular"||b==="bridgedCousins"||b==="bridgedCustom")?t(I.id,i.divisions[m[0]].id,i.navigationRules.sibling_sibling):p<m.length-1&&t(I.id,i.divisions[m[p+1]].id,i.navigationRules.sibling_sibling);let g=Object.keys(I.values);e.useDirectedEdges?t(I.id,i.nodeId,i.navigationRules.parent_child,"source"):t(i.nodeId,I.id,i.navigationRules.parent_child,"target");let E=typeof e.idKey=="function"?e.idKey(I.values[g[0]]):e.idKey;t(I.id,I.values[g[0]][E],i.navigationRules.parent_child,"source");let x=0;g.length>1&&g.forEach(S=>{let D=I.values[S],_=typeof e.idKey=="function"?e.idKey(D):e.idKey,F=m.length!==1?I.id:i.nodeId;if(e.useDirectedEdges?t(D[_],F,i.navigationRules.parent_child,"source"):t(F,D[_],i.navigationRules.parent_child,"target"),x===g.length-1&&b==="circular"){let N=typeof e.idKey=="function"?e.idKey(I.values[g[0]]):e.idKey;t(D[_],I.values[g[0]][N],i.navigationRules.sibling_sibling)}else if(x===g.length-1&&b==="bridgedCousins")if(p!==m.length-1){let N=typeof e.idKey=="function"?e.idKey(i.divisions[m[p+1]].values[g[0]]):e.idKey;t(D[_],i.divisions[m[p+1]].values[g[0]][N],i.navigationRules.sibling_sibling)}else{let N=typeof e.idKey=="function"?e.idKey(i.divisions[m[0]].values[g[0]]):e.idKey;t(D[_],i.divisions[m[0]].values[g[0]][N],i.navigationRules.sibling_sibling)}else if(x===g.length-1&&b==="bridgedCustom")t(D[_],i.behavior.customBridgePost,i.navigationRules.sibling_sibling);else if(x<g.length-1){let N=typeof e.idKey=="function"?e.idKey(I.values[g[x+1]]):e.idKey;t(D[_],I.values[g[x+1]][N],i.navigationRules.sibling_sibling)}if(!x&&b==="bridgedCousins")if(p!==0){let N=typeof e.idKey=="function"?e.idKey(i.divisions[m[p-1]].values[g[g.length-1]]):e.idKey;t(i.divisions[m[p-1]].values[g[g.length-1]][N],D[_],i.navigationRules.sibling_sibling)}else{let N=typeof e.idKey=="function"?e.idKey(i.divisions[m[m.length-1]].values[g[g.length-1]]):e.idKey;t(i.divisions[m[m.length-1]].values[g[g.length-1]][N],D[_],i.navigationRules.sibling_sibling)}else!x&&b==="bridgedCustom"&&t(i.behavior.customBridgePrevious,D[_],i.navigationRules.sibling_sibling);x++}),p++})})}return Object.keys(y).forEach(s=>{let f=y[s];e.genericEdges?.length&&e.genericEdges.forEach(n=>{l[n.edgeId]||(l[n.edgeId]=n.edge),(!n.conditional||n.conditional&&n.conditional(f,n))&&f.edges.push(n.edgeId)})}),l},J=(e,y,d)=>{let l=e.navigationRules;if(!l){let h=Object.keys(d||{});h.length>6&&console.error(`Building navigationRules. Dimension count is too high to automatically generate key commands. It is recommend you reduce your dimensions to 6 or fewer for end-user experience. If not, you must provide your own navigation rules in options.navigationRules. Details: Count is ${h.length}. Dimensions counted: ${h.join(", ")}.`);let t={},s={},f={},n=[...P],u=[...$],v=(r,a)=>{let O=r&&a,c=!1,j=!1;if((t[r]||s[r])&&(s[r]={...t[r]},c=!0),a&&(t[a]||s[a])&&(s[a]={...t[a]},j=!0),O&&!c&&!j){n.length||console.error("Building navigationRules. Dimension count is too high to automatically generate key commands, we have run out of keyboard key pairs to assign. You must either provide your own navigation rules in options.navigationRules, provide rules when generating dimensions, or reduce dimension count.");let o=[...n.shift()];u.splice(u.indexOf(o[0]),1),u.splice(u.indexOf(o[1]),1),s[r]={direction:e.useDirectedEdges?"target":"source",key:o[0]},s[a]={direction:"target",key:o[1]}}else{if(!s[r]&&u.length){let o=u.shift(),i=[];n.forEach(b=>{o!==b[0]&&o!==b[1]&&i.push(b)}),n=i,s[r]={direction:e.useDirectedEdges?"target":"source",key:o}}if(a&&!s[a]&&u.length){let o=u.shift(),i=[];n.forEach(b=>{o!==b[0]&&o!==b[1]&&i.push(b)}),n=i,s[a]={direction:"target",key:o}}u.length||(s[r]||(f[r]=r),a&&!s[a]&&(f[a]=a))}};if(Object.keys(C).forEach(r=>{let a={...C[r]};e.useDirectedEdges&&(a.direction="target"),t[r]=a}),h.length){if(e.dimensions?.parentOptions?.addLevel0){let r=e.dimensions.parentOptions.level1Options?.navigationRules?.parent_child||["parent","child"];v(r[0],r[1])}h.forEach(r=>{let a=d[r].navigationRules.parent_child,O=d[r].navigationRules.sibling_sibling;v(a[0],a[1]),v(O[0],O[1])})}if(Object.keys(y).forEach(r=>{y[r].navigationRules.forEach(a=>{s[a]||v(a)})}),Object.keys(f).length){let r={};Object.keys(s).forEach(O=>{r[s[O].key]=s[O].key}),Object.keys(t).forEach(O=>{!r[t[O].key]&&!L[t[O].key]&&u.push(t[O].key)});let a={...f};f={},Object.keys(a).forEach(O=>{v(O)}),Object.keys(f).length&&console.error(`Building navigationRules. There are no more keys left to assign automatically. Recommended fixes: use fewer dimensions, use fewer GenericEdges, or build your own navigationRules. Rules remaining without keyboard keys: ${Object.keys(f).join(", ")}.`)}l=s}return l},U=e=>{e.addIds&&V(e);let y=q(e),d=A(e,y),l=H(e,y,d),h=J(e,l,d);return{nodes:y,edges:l,dimensions:d,navigationRules:h}};export{V as addSimpleDataIDs,H as buildEdges,T as buildNodeStructureFromVegaLite,J as buildRules,U as buildStructure,q as bulidNodes,G as createValidId,Y as default,A as scaffoldDimensions};
|
|
1
|
+
import{a as T,b as F}from"./chunk-K476QBP2.mjs";import{a as $,c as P,e as k,f as C,g as w,i as B}from"./chunk-PEL3ZYDS.mjs";var z=e=>e.dataType==="vega-lite"||e.dataType==="vl"||e.dataType==="Vega-Lite"?G(e):U(e),G=e=>{let y=B,d={},l={},h={},t=0,s=e.groupInclusionCriteria?e.groupInclusionCriteria:()=>!0,f=e.itemInclusionCriteria?e.itemInclusionCriteria:()=>!0,n=e.datumInclusionCriteria?e.datumInclusionCriteria:()=>!0,u=e.vegaLiteView._renderer._origin,v=e.vegaLiteView._scenegraph.root.items[0].mark.items[0],r=(o,i)=>{if(o["data-navigator-id"])return o["data-navigator-id"];let b=`dn-node-${i}-${t}`;return t++,o["data-navigator-id"]=b,b},a=o=>{let i=d[o],b=i.index,m=i.level,R=i.parent,O=[],K=R.items[b-1];if(K){let g=r(K,m);if(d[g]){let E=`${g}-${i.id}`;O.push(E),l[E]||(l[E]={source:g,target:i.id,navigationRules:["left","right"]})}}let I=R.items[b+1];if(I){let g=r(I,m);if(d[g]){let E=`${i.id}-${g}`;O.push(E),l[E]||(l[E]={source:i.id,target:g,navigationRules:["left","right"]})}}if(m==="group"&&R.items[b].items){let E=(R.items[b].items[0].mark.items[0].items||R.items[b].items)[0],x=r(E,"item");if(d[x]){let S=`${i.id}-${x}`;O.push(S),l[S]||(l[S]={source:i.id,target:x,navigationRules:["parent","child"]})}}else if(m==="item"){let g=r(R,"group");if(d[g]){let E=`${g}-${i.id}`;O.push(E),l[E]||(l[E]={source:g,target:i.id,navigationRules:["parent","child"]})}}return e.exitFunction&&(O.push("any-exit"),l["any-exit"]||(l["any-exit"]={source:e.getCurrent,target:e.exitFunction,navigationRules:["exit"]})),O.push("any-undo"),l["any-undo"]||(l["any-undo"]={source:e.getCurrent,target:e.getPrevious,navigationRules:["undo"]}),O},p=(o,i,b,m,R)=>{let O=r(o,i),K="render-"+O,I=b||[0,0];d[O]={},d[O].d={},d[O].id=O,d[O].renderId=K,d[O].index=m,d[O].level=i,d[O].parent=R,h[K]={},h[K].renderId=K,h[K].spatialProperties={},h[K].spatialProperties.x=o.bounds.x1+I[0],h[K].spatialProperties.y=o.bounds.y1+I[1],h[K].spatialProperties.width=o.bounds.x2-o.bounds.x1,h[K].spatialProperties.height=o.bounds.y2-o.bounds.y1,h[K].cssClass="dn-vega-lite-node",o.datum&&Object.keys(o.datum).forEach(g=>{let E=o.datum[g];n(g,E,o.datum,i,e.vegaLiteSpec)&&(d[O].d[e.keyRenamingHash&&e.keyRenamingHash[g]?e.keyRenamingHash[g]:g]=E)}),h[K].semantics={},h[K].semantics.label=e.nodeDescriber?e.nodeDescriber(d[O].d,o,i):T(d[O].d)},c=0;return v.items.forEach(o=>{if(s(o,c,e.vegaLiteSpec)){p(o,"group",u,c,v);let i=0,b=o.items[0].mark.items[0].items?o.items[0].mark.items[0]:o;b.items.forEach(m=>{f(m,i,o,e.vegaLiteSpec)&&p(m,"item",u,i,b),i++})}c++}),Object.keys(d).forEach(o=>{d[o].edges=a(o)}),{nodes:d,edges:l,elementData:h,navigationRules:y}},V=e=>{let y=0,d={};e.data.forEach(l=>{let h=typeof e.idKey=="function"?e.idKey(l):e.idKey;l[h]="_"+y,e.keysForIdGeneration&&e.keysForIdGeneration.forEach(t=>{t in l&&(typeof l[t]=="string"?(d[t]||(d[t]=0),d[l[t]]||(d[l[t]]=0),l[h]+="_"+t+d[t]+"_"+l[t]+d[l[t]],d[t]++,d[l[t]]++):(d[t]||(d[t]=0),l[h]+="_"+t+d[t],d[t]++))}),y++})},q=e=>{let y={};return e.data.forEach(d=>{e.idKey||console.error("Building nodes. A key string must be supplied in options.idKey to specify the id keys of every node.");let l=typeof e.idKey=="function"?e.idKey(d):e.idKey,h=d[l];if(!h){console.error(`Building nodes. Each datum in options.data must contain an id. When matching the id key string ${l}, this datum has no id: ${JSON.stringify(d)}.`);return}if(y[h]){console.error(`Building nodes. Each id for data in options.data must be unique. This id is not unique: ${h}.`);return}else{let t=typeof e.renderIdKey=="function"?e.renderIdKey(d):e.renderIdKey;y[h]={id:h,edges:[],renderId:t?d[t]||"":d.renderIdKey||"",data:d}}}),y},A=(e,y)=>{let d={};if(e.dimensions?.parentOptions?.addLevel0){let t=e.dimensions.parentOptions.addLevel0;y[t.id]={...t,dimensionLevel:0}}let l=[...w],h=(t,s)=>{let f=s.numericalExtents[0],n=s.numericalExtents[1];s.numericalExtents[0]=f<t?f:t,s.numericalExtents[1]=n>t?n:t};return e.data.forEach(t=>{let s=e.dimensions.values||[],f=0;s.forEach(n=>{if(!n.dimensionKey){console.error(`Building nodes, parsing dimensions. Each dimension in options.dimensions must contain a dimensionKey. This dimension has no key: ${JSON.stringify(n)}.`);return}if(n.dimensionKey in t){let u=t[n.dimensionKey],v=typeof n.operations?.filterFunction=="function"?n.operations.filterFunction(t,n):!0;if(u!==void 0&&v){if(n.type||(n.type=typeof u=="bigint"||typeof u=="number"?"numerical":"categorical"),!d[n.dimensionKey]){let c=typeof n.nodeId=="function"?n.nodeId(n,e.data):n.nodeId||F(n.dimensionKey),j=typeof n.renderId=="function"?n.renderId(n,e.data):n.renderId||c;d[n.dimensionKey]={dimensionKey:n.dimensionKey,nodeId:c,divisions:{},numericalExtents:[1/0,-1/0],type:n.type,sortFunction:n.operations?.sortFunction||void 0,behavior:n.behavior||{extents:"circular"},navigationRules:n.navigationRules||{sibling_sibling:l.length?[...l.shift()]:["previous_"+n.dimensionKey,"next_"+n.dimensionKey],parent_child:["parent_"+n.dimensionKey,"child"]}},y[c]={id:c,renderId:j,derivedNode:n.dimensionKey,edges:[],dimensionLevel:1,data:d[n.dimensionKey],renderingStrategy:n.renderingStrategy||"singleSquare"}}let r=d[n.dimensionKey],a=null;if(n.type==="categorical"){let c=typeof n.divisionOptions?.divisionNodeIds=="function"?n.divisionOptions.divisionNodeIds(n.dimensionKey,u,f):F(r.nodeId+"_"+u);if(a=r.divisions[c],!a){a=r.divisions[c]={id:c,sortFunction:n.divisionOptions?.sortFunction||void 0,values:{}};let j=typeof n.divisionOptions?.divisionRenderIds=="function"?n.divisionOptions.divisionRenderIds(n.dimensionKey,u,f):c;y[c]={id:c,renderId:j,derivedNode:n.dimensionKey,edges:[],dimensionLevel:2,data:{...a},renderingStrategy:n.divisionOptions?.renderingStrategy||"singleSquare"},y[c].data[n.dimensionKey]=u}}else{a=r.divisions[r.nodeId],a||(a=r.divisions[r.nodeId]={id:r.nodeId,sortFunction:n.divisionOptions?.sortFunction||void 0,values:{}}),n.operations||(n.operations={});let c=n.operations.createNumericalSubdivisions;r.subdivisions=typeof c=="number"&&c<1?1:c||1,c!==1&&(r.divisionOptions||(r.divisionOptions=n.divisionOptions),h(u,r))}let p=typeof e.idKey=="function"?e.idKey(t):e.idKey;a.values[t[p]]=t}}f++})}),Object.keys(d).forEach(t=>{let s=d[t],f=s.divisions;if(s.type==="numerical"){f[s.nodeId].values=Object.fromEntries(Object.entries(f[s.nodeId].values).sort((v,r)=>typeof s.sortFunction=="function"?s.sortFunction(v[1],r[1],s):v[1][t]-r[1][t]));let u=f[s.nodeId].values;if(s.numericalExtents[0]!==1/0&&s.subdivisions!==1){let v=Object.keys(u),r=typeof s.subdivisions=="function"?s.subdivisions(t,u):s.subdivisions,p=(s.numericalExtents[1]-s.numericalExtents[0])/r,c=s.numericalExtents[0]+p,j=0,o=0;for(c=s.numericalExtents[0]+p;c<=s.numericalExtents[1];c+=p){let i=typeof s.divisionOptions?.divisionNodeIds=="function"?s.divisionOptions.divisionNodeIds(t,c,c):s.nodeId+"_"+c;s.divisions[i]={id:i,sortFunction:s.divisionOptions?.sortFunction||void 0,values:{}};let b=typeof s.divisionOptions?.divisionRenderIds=="function"?s.divisionOptions.divisionRenderIds(t,c,c):i;y[i]={id:i,renderId:b,derivedNode:t,edges:[],data:s.divisions[i],dimensionLevel:2,renderingStrategy:s.divisionOptions?.renderingStrategy||"singleSquare"};let m=!1;for(;!m&&o<v.length;){let R=u[v[o]];R[t]<=c?s.divisions[i].values[R.id]=R:(c+=p,m=!0),o++}j++}delete f[t]}}else typeof s.sortFunction=="function"&&(s.divisions=Object.fromEntries(Object.entries(f).sort((u,v)=>s.sortFunction(u[1],v[1],s))));Object.keys(s.divisions).forEach(u=>{let v=s.divisions[u];typeof v.sortFunction=="function"&&(v.values=Object.fromEntries(Object.entries(v.values).sort((r,a)=>s.sortFunction(r[1],a[1],v))))})}),e.dimensions.adjustDimensions&&(d=e.dimensions.adjustDimensions(d)),d},H=(e,y,d)=>{let l={},h=(s,f)=>{y[s].edges.indexOf(f)===-1&&y[s].edges.push(f)},t=(s,f,n,u)=>{let v=`${s}-${f}`,r=e.useDirectedEdges?`${f}-${v}`:v,a=!u||u==="source",p=!u||u==="target",c=j=>{l[j]?l[j].navigationRules.push(...n||[]):l[j]={source:s,target:f,navigationRules:n?[...n]:[]}};c(v),e.useDirectedEdges&&p&&c(r),a&&h(s,v),p&&h(f,r)};if(d&&Object.keys(d).length){let s=Object.keys(d),f=e.dimensions?.parentOptions?.level1Options?.order,n=f||s,u=0,v=e.dimensions?.parentOptions||{},r=v.level1Options?.behavior?.extents||"terminal",a=v.addLevel0,p=a?v.level1Options?.navigationRules?.parent_child||["parent","child"]:[],c=v.level1Options?.navigationRules?.sibling_sibling||["left","right"],j=typeof n[0]=="string"?f?y[n[0]]:y[d[n[0]].nodeId]:n[0];a&&t(a.id,j.id,p,"source"),n.forEach(o=>{let i=typeof o=="string"?f?y[o]:y[d[o].nodeId]:o;if(i===o&&!y[i.id]&&(y[i.id]=i),a&&(e.useDirectedEdges?t(i.id,a.id,p,"source"):t(a.id,i.id,p,"target")),u===n.length-1&&r==="circular")t(i.id,j.id,c);else if(u===n.length-1&&r==="bridgedCustom")t(i.id,v.level1Options.behavior.customBridgePost,c);else if(u<n.length-1){let b=typeof n[u+1]=="string"?f?y[n[u+1]]:y[d[n[u+1]].nodeId]:n[u+1];t(i.id,b.id,c)}!u&&r==="bridgedCustom"&&t(v.level1Options.behavior.customBridgePost,i.id,c),u++}),s.forEach(o=>{let i=d[o],b=i.behavior?.extents||"circular";i.divisions||console.error(`Parsing dimensions. The dimension using the key ${o} is missing the divisions property. dimension.divisions should be supplied. ${JSON.stringify(i)}.`);let m=Object.keys(i.divisions),R=i.divisions[m[0]];if(m.length!==1)t(i.nodeId,R.id,i.navigationRules.parent_child,"source");else{let K=Object.keys(R.values),I=typeof e.idKey=="function"?e.idKey(R.values[K[0]]):e.idKey;t(i.nodeId,R.values[K[0]][I],i.navigationRules.parent_child,"source")}let O=0;m.forEach(K=>{let I=i.divisions[K];O===m.length-1&&(b==="circular"||b==="bridgedCousins"||b==="bridgedCustom")?t(I.id,i.divisions[m[0]].id,i.navigationRules.sibling_sibling):O<m.length-1&&t(I.id,i.divisions[m[O+1]].id,i.navigationRules.sibling_sibling);let g=Object.keys(I.values);e.useDirectedEdges?t(I.id,i.nodeId,i.navigationRules.parent_child,"source"):t(i.nodeId,I.id,i.navigationRules.parent_child,"target");let E=typeof e.idKey=="function"?e.idKey(I.values[g[0]]):e.idKey;t(I.id,I.values[g[0]][E],i.navigationRules.parent_child,"source");let x=0;g.length>1&&g.forEach(S=>{let D=I.values[S],_=typeof e.idKey=="function"?e.idKey(D):e.idKey,L=m.length!==1?I.id:i.nodeId;if(e.useDirectedEdges?t(D[_],L,i.navigationRules.parent_child,"source"):t(L,D[_],i.navigationRules.parent_child,"target"),x===g.length-1&&b==="circular"){let N=typeof e.idKey=="function"?e.idKey(I.values[g[0]]):e.idKey;t(D[_],I.values[g[0]][N],i.navigationRules.sibling_sibling)}else if(x===g.length-1&&b==="bridgedCousins")if(O!==m.length-1){let N=typeof e.idKey=="function"?e.idKey(i.divisions[m[O+1]].values[g[0]]):e.idKey;t(D[_],i.divisions[m[O+1]].values[g[0]][N],i.navigationRules.sibling_sibling)}else{let N=typeof e.idKey=="function"?e.idKey(i.divisions[m[0]].values[g[0]]):e.idKey;t(D[_],i.divisions[m[0]].values[g[0]][N],i.navigationRules.sibling_sibling)}else if(x===g.length-1&&b==="bridgedCustom")t(D[_],i.behavior.customBridgePost,i.navigationRules.sibling_sibling);else if(x<g.length-1){let N=typeof e.idKey=="function"?e.idKey(I.values[g[x+1]]):e.idKey;t(D[_],I.values[g[x+1]][N],i.navigationRules.sibling_sibling)}if(!x&&b==="bridgedCousins")if(O!==0){let N=typeof e.idKey=="function"?e.idKey(i.divisions[m[O-1]].values[g[g.length-1]]):e.idKey;t(i.divisions[m[O-1]].values[g[g.length-1]][N],D[_],i.navigationRules.sibling_sibling)}else{let N=typeof e.idKey=="function"?e.idKey(i.divisions[m[m.length-1]].values[g[g.length-1]]):e.idKey;t(i.divisions[m[m.length-1]].values[g[g.length-1]][N],D[_],i.navigationRules.sibling_sibling)}else!x&&b==="bridgedCustom"&&t(i.behavior.customBridgePrevious,D[_],i.navigationRules.sibling_sibling);x++}),O++})})}return Object.keys(y).forEach(s=>{let f=y[s];e.genericEdges?.length&&e.genericEdges.forEach(n=>{l[n.edgeId]||(l[n.edgeId]=n.edge),(!n.conditional||n.conditional&&n.conditional(f,n))&&f.edges.push(n.edgeId)})}),l},J=(e,y,d)=>{let l=e.navigationRules;if(!l){let h=Object.keys(d||{});h.length>6&&console.error(`Building navigationRules. Dimension count is too high to automatically generate key commands. It is recommend you reduce your dimensions to 6 or fewer for end-user experience. If not, you must provide your own navigation rules in options.navigationRules. Details: Count is ${h.length}. Dimensions counted: ${h.join(", ")}.`);let t={},s={},f={},n=[...k],u=[...P],v=(r,a)=>{let p=r&&a,c=!1,j=!1;if((t[r]||s[r])&&(s[r]={...t[r]},c=!0),a&&(t[a]||s[a])&&(s[a]={...t[a]},j=!0),p&&!c&&!j){n.length||console.error("Building navigationRules. Dimension count is too high to automatically generate key commands, we have run out of keyboard key pairs to assign. You must either provide your own navigation rules in options.navigationRules, provide rules when generating dimensions, or reduce dimension count.");let o=[...n.shift()];u.splice(u.indexOf(o[0]),1),u.splice(u.indexOf(o[1]),1),s[r]={direction:e.useDirectedEdges?"target":"source",key:o[0]},s[a]={direction:"target",key:o[1]}}else{if(!s[r]&&u.length){let o=u.shift(),i=[];n.forEach(b=>{o!==b[0]&&o!==b[1]&&i.push(b)}),n=i,s[r]={direction:e.useDirectedEdges?"target":"source",key:o}}if(a&&!s[a]&&u.length){let o=u.shift(),i=[];n.forEach(b=>{o!==b[0]&&o!==b[1]&&i.push(b)}),n=i,s[a]={direction:"target",key:o}}u.length||(s[r]||(f[r]=r),a&&!s[a]&&(f[a]=a))}};if(Object.keys(C).forEach(r=>{let a={...C[r]};e.useDirectedEdges&&(a.direction="target"),t[r]=a}),h.length){if(e.dimensions?.parentOptions?.addLevel0){let r=e.dimensions.parentOptions.level1Options?.navigationRules?.parent_child||["parent","child"];v(r[0],r[1])}h.forEach(r=>{let a=d[r].navigationRules.parent_child,p=d[r].navigationRules.sibling_sibling;v(a[0],a[1]),v(p[0],p[1])})}if(Object.keys(y).forEach(r=>{y[r].navigationRules.forEach(a=>{s[a]||v(a)})}),Object.keys(f).length){let r={};Object.keys(s).forEach(p=>{r[s[p].key]=s[p].key}),Object.keys(t).forEach(p=>{!r[t[p].key]&&!$[t[p].key]&&u.push(t[p].key)});let a={...f};f={},Object.keys(a).forEach(p=>{v(p)}),Object.keys(f).length&&console.error(`Building navigationRules. There are no more keys left to assign automatically. Recommended fixes: use fewer dimensions, use fewer GenericEdges, or build your own navigationRules. Rules remaining without keyboard keys: ${Object.keys(f).join(", ")}.`)}l=s}return l},U=e=>{e.addIds&&V(e);let y=q(e),d=A(e,y),l=H(e,y,d),h=J(e,l,d);return{nodes:y,edges:l,dimensions:d,navigationRules:h}};export{V as addSimpleDataIDs,H as buildEdges,G as buildNodeStructureFromVegaLite,q as buildNodes,J as buildRules,U as buildStructure,z as default,A as scaffoldDimensions};
|
package/dist/utilities.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var
|
|
1
|
+
var e=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var a=function(r,t){for(var n in t)e(r,n,{get:t[n],enumerable:!0})},o=function(a,o,c,u){var i=true,f=false,l=undefined;if(o&&typeof o=="object"||typeof o=="function")try{var d=function(){var t=b.value;!n.call(a,t)&&t!==c&&e(a,t,{get:function(){return o[t]},enumerable:!(u=r(o,t))||u.enumerable})};for(var v=t(o)[Symbol.iterator](),b;!(i=(b=v.next()).done);i=true)d()}catch(e){f=true;l=e}finally{try{if(!i&&v.return!=null){v.return()}}finally{if(f){throw l}}}return a};var c=function(r){return o(e({},"__esModule",{value:!0}),r)};var u={};a(u,{createValidId:function(){return f},describeNode:function(){return i}});module.exports=c(u);var i=function(e,r){var t=Object.keys(e),n="";return t.forEach(function(t){n+="".concat(r&&r.omitKeyNames?"":t+": ").concat(e[t],". ")}),n+=r&&r.semanticLabel||"Data point.",n},f=function(e){return"_"+e.replace(/[^a-zA-Z0-9_-]+/g,"_")};0&&(module.exports={createValidId:createValidId,describeNode:describeNode});
|
package/dist/utilities.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
1
|
+
import{a,b}from"./chunk-K476QBP2.mjs";export{b as createValidId,a as describeNode};
|