@explorable-viz/fluid 0.7.60 → 0.7.62

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.
@@ -27787,8 +27787,7 @@ var dataTypes = /* @__PURE__ */ foldrArray(Cons)(Nil)([
27787
27787
  /* @__PURE__ */ $Tuple("Viewport", 9)
27788
27788
  ]),
27789
27789
  /* @__PURE__ */ dataType("Transform")([/* @__PURE__ */ $Tuple("Scale", 2), /* @__PURE__ */ $Tuple("Translate", 2)]),
27790
- /* @__PURE__ */ dataType("Marker")([/* @__PURE__ */ $Tuple("Arrowhead", 0)]),
27791
- /* @__PURE__ */ dataType("Explanation")([/* @__PURE__ */ $Tuple("Explained", 2)])
27790
+ /* @__PURE__ */ dataType("Marker")([/* @__PURE__ */ $Tuple("Arrowhead", 0)])
27792
27791
  ]);
27793
27792
  var ctrToDataType = /* @__PURE__ */ (() => fromFoldable(foldableList)(bindList.bind(listMap((d) => listMap((v) => $Tuple(
27794
27793
  v,
@@ -34840,7 +34839,6 @@ var forDefs = (\u03C1) => (\u03C3) => {
34840
34839
  };
34841
34840
 
34842
34841
  // output-es/Primitive/index.js
34843
- var $Explanation = (_1, _2, _3) => ({ tag: "Explanation", _1, _2, _3 });
34844
34842
  var fanin2 = /* @__PURE__ */ fanin(categoryFn)(choiceFn);
34845
34843
  var isZeroNumber = { isZero: ($0) => 0 === $0 };
34846
34844
  var isZeroInt = { isZero: ($0) => 0 === $0 };
@@ -34916,30 +34914,6 @@ var number5 = {
34916
34914
  return typeError(v)("Float");
34917
34915
  }
34918
34916
  };
34919
- var linkedTextEntry = {
34920
- pack: (v) => {
34921
- if (v.tag === "Left") {
34922
- return $BaseVal("Str", v._1);
34923
- }
34924
- if (v.tag === "Right") {
34925
- return $BaseVal(
34926
- "Constr",
34927
- "Explained",
34928
- $List("Cons", $Val(v._1._1, $BaseVal("Str", v._1._2)), $List("Cons", $Val(v._1._3._1, v._1._3._2), Nil))
34929
- );
34930
- }
34931
- fail();
34932
- },
34933
- unpack: (v) => {
34934
- if (v.tag === "Str") {
34935
- return $Either("Left", v._1);
34936
- }
34937
- if (v.tag === "Constr" && v._2.tag === "Cons" && v._2._1._2.tag === "Str" && v._2._2.tag === "Cons" && v._2._2._2.tag === "Nil" && v._1 === "Explained") {
34938
- return $Either("Right", $Explanation(v._2._2._1._1, v._2._1._2._1, v._2._2._1));
34939
- }
34940
- return typeError(v)("String or Explanation");
34941
- }
34942
- };
34943
34917
  var intOrNumberOrString = {
34944
34918
  pack: (v) => {
34945
34919
  if (v.tag === "Left") {
@@ -36593,7 +36567,19 @@ var reflectDictSelState\u{1D54A}$x215ValS3 = {
36593
36567
  })()
36594
36568
  })
36595
36569
  };
36596
- var reflectDictSelState\u{1D54A}$x215ValS12 = { from: () => (r) => ({ x: get_intOrNumber("x")(r), y: get_intOrNumber("y")(r) }) };
36570
+ var reflectDictSelState\u{1D54A}$x215ValS12 = {
36571
+ from: () => (r) => ({
36572
+ x: (() => {
36573
+ const $0 = $$get2(showString)(mapDictString)("x")(r);
36574
+ return $Tuple($0._2._2.tag === "Str" ? $0._2._2._1 : typeError($0._2._2)("Str"), $0._2._1);
36575
+ })(),
36576
+ y: (() => {
36577
+ const $0 = $$get2(showString)(mapDictString)("y")(r);
36578
+ return $Tuple($0._2._2.tag === "Str" ? $0._2._2._1 : typeError($0._2._2)("Str"), $0._2._1);
36579
+ })()
36580
+ })
36581
+ };
36582
+ var reflectDictSelState\u{1D54A}$x215ValS23 = { from: () => (r) => ({ x: get_intOrNumber("x")(r), y: get_intOrNumber("y")(r) }) };
36597
36583
 
36598
36584
  // output-es/App.View.LineChart/index.js
36599
36585
  var identity27 = (x2) => x2;
@@ -36622,7 +36608,7 @@ var reflectDictSelState\u{1D54A}$x215ValS4 = {
36622
36608
  const $0 = $$get2(showString)(mapDictString)("name")(r);
36623
36609
  return $Tuple($0._2._2.tag === "Str" ? $0._2._2._1 : typeError($0._2._2)("Str"), $0._2._1);
36624
36610
  })(),
36625
- points: arrayMap(dict(reflectDictSelState\u{1D54A}$x215ValS12.from()))(reflectValSelState\u{1D54A}ArrayV.from()($$get2(showString)(mapDictString)("points")(r)._2))
36611
+ points: arrayMap(dict(reflectDictSelState\u{1D54A}$x215ValS23.from()))(reflectValSelState\u{1D54A}ArrayV.from()($$get2(showString)(mapDictString)("points")(r)._2))
36626
36612
  })
36627
36613
  };
36628
36614
  var reflectValSelState\u{1D54A}LinePl = {
@@ -36897,114 +36883,84 @@ var drawableLineChart = {
36897
36883
  }
36898
36884
  };
36899
36885
 
36900
- // output-es/App.View.LinkedText/foreign.js
36901
- selection_default.prototype.attrs = function(m) {
36902
- for (const k in m) {
36903
- this.attr(k, m[k]);
36904
- }
36905
- return this;
36886
+ // output-es/App.View.LinkedText/index.js
36887
+ var for_4 = /* @__PURE__ */ for_(applicativeEffect)(foldableArray);
36888
+ var forWithIndex_2 = /* @__PURE__ */ forWithIndex_(applicativeEffect)(foldableWithIndexArray);
36889
+ var reflectValSelState\u{1D54A}Linked = {
36890
+ from: () => (r) => arrayMap((v) => $Tuple(v._2.tag === "Str" ? v._2._1 : typeError(v._2)("Str"), v._1))(reflectValSelState\u{1D54A}ArrayV.from()(r))
36906
36891
  };
36907
- function setSelState3({ accessAnn }, {
36908
- selState: selState2,
36909
- selClasses: selClasses2,
36910
- selClassesFor: selClassesFor2,
36911
- join: join3
36912
- }, div, view2, selListener2) {
36913
- div.selectAll("span").each(function(textElem) {
36914
- var sel;
36915
- if (textElem.conts.tag == "Left") {
36916
- sel = accessAnn(view2[textElem.i]);
36917
- } else {
36918
- sel = accessAnn(view2[textElem.i]);
36919
- }
36920
- select_default2(this).classed(selClasses2, false).classed(selClassesFor2(sel), true).on("mousedown", (e) => {
36921
- selListener2(e);
36922
- }).on("mouseenter", (e) => {
36923
- selListener2(e);
36924
- }).on("mouseleave", (e) => {
36925
- selListener2(e);
36926
- });
36927
- });
36928
- }
36929
- function drawLinkedText_({
36930
- explanation,
36931
- contents,
36932
- accessAnn
36933
- }, uiHelpers2, {
36934
- divId,
36935
- suffix,
36936
- view: view2
36937
- }, selListener2) {
36892
+ var setSelState3 = (v) => (redraw) => (rootElement) => {
36893
+ const $0 = selectAll2(".linked-text")(rootElement);
36938
36894
  return () => {
36939
- const div = select_default2("#" + divId);
36940
- const childId = divId + "-" + suffix;
36941
- let rootElement = div.selectAll("#" + childId);
36942
- if (rootElement.empty()) {
36943
- rootElement = div.append("div").attr("id", childId).text(view2._1).attr("class", "linked-text-parent");
36944
- rootElement.selectAll("span").data([...view2.entries()].map(([i, conts]) => {
36945
- return { i, conts };
36946
- })).enter().append("span").attr("id", childId).text((d) => contents(d.conts)).attr("class", "linked-text");
36947
- }
36948
- setSelState3({ accessAnn }, uiHelpers2, rootElement, view2, selListener2);
36895
+ const elems$p = $0();
36896
+ return for_4(elems$p)((elem2) => {
36897
+ const $1 = datum2(elem2);
36898
+ return () => {
36899
+ const v1 = $1();
36900
+ const $2 = definitely("index within bounds")(index(v)(v1.i));
36901
+ const $3 = styles(elem2)(fromFoldable10([
36902
+ $Tuple("border-bottom", isTransient($2._2) ? "1px solid blue" : "none"),
36903
+ $Tuple(
36904
+ "background",
36905
+ (() => {
36906
+ if (isPrimary($2._2) && isPersistent($2._2)) {
36907
+ return "#93E9BE";
36908
+ }
36909
+ if (isSecondary($2._2) && isPersistent($2._2)) {
36910
+ return "rgb(226, 226, 226)";
36911
+ }
36912
+ return "white";
36913
+ })()
36914
+ ),
36915
+ $Tuple(
36916
+ "color",
36917
+ (() => {
36918
+ if (isPrimary($2._2) && isTransient($2._2)) {
36919
+ return "blue";
36920
+ }
36921
+ if (isSecondary($2._2) && isTransient($2._2)) {
36922
+ return "royalblue";
36923
+ }
36924
+ return "black";
36925
+ })()
36926
+ )
36927
+ ]))();
36928
+ return for_2(["mousedown", "mouseenter", "mouseleave"])((ev) => on(ev)(redraw)($3))();
36929
+ };
36930
+ })();
36931
+ };
36932
+ };
36933
+ var createRootElement2 = (v) => (div) => (childId) => {
36934
+ const $0 = createChild(div)(showElementType.show(Text2))(fromFoldable10([
36935
+ classes(["linked-text-parent"]),
36936
+ $Tuple("id", childId)
36937
+ ]));
36938
+ return () => {
36939
+ const rootElement = $0();
36940
+ forWithIndex_2(v)((i) => (elem2) => {
36941
+ const $1 = createChild(rootElement)(showElementType.show(Text2))(fromFoldable10([
36942
+ classes(["linked-text"]),
36943
+ $Tuple("id", childId)
36944
+ ]));
36945
+ return () => {
36946
+ const elem$p = $1();
36947
+ const $2 = setText(elem2._1)(elem$p)();
36948
+ return setDatum({ i })($2)();
36949
+ };
36950
+ })();
36951
+ return rootElement;
36949
36952
  };
36950
- }
36951
- var drawLinkedText = (x1) => (x2) => (x3) => (x4) => drawLinkedText_(x1, x2, x3, x4);
36952
-
36953
- // output-es/App.View.LinkedText/index.js
36954
- var linkedTextHelpers = {
36955
- explanation: (v) => {
36956
- if (v.tag === "Left") {
36957
- return v._1._1;
36958
- }
36959
- if (v.tag === "Right") {
36960
- return v._1._1._2;
36961
- }
36962
- fail();
36963
- },
36964
- contents: (v) => {
36965
- if (v.tag === "Left") {
36966
- return v._1._1;
36967
- }
36968
- if (v.tag === "Right") {
36969
- if (v._1._1._3._2.tag === "Str") {
36970
- return v._1._1._3._2._1;
36971
- }
36972
- return typeError(v._1._1._3._2)("Str");
36973
- }
36974
- fail();
36975
- },
36976
- accessAnn: (v) => {
36977
- if (v.tag === "Left") {
36978
- return v._1._2;
36979
- }
36980
- if (v.tag === "Right") {
36981
- return v._1._1._1;
36982
- }
36983
- fail();
36984
- }
36985
36953
  };
36954
+ var drawable2LinkedText = { createRootElement: createRootElement2, setSelState: setSelState3 };
36986
36955
  var drawableLinkedText = {
36987
36956
  draw: (rSpec) => (figVal) => (v) => (redraw) => {
36988
- const $0 = drawLinkedText(linkedTextHelpers)(uiHelpers)(rSpec);
36989
- const $1 = selListener(figVal)(redraw)((v1) => (x2) => constrArg("LinkedText")(0)(listElement(v1.i)(x2)));
36957
+ const $0 = selListener(figVal)(redraw)((v1) => (x2) => constrArg("LinkedText")(0)(listElement(v1.i)(x2)));
36990
36958
  return () => {
36991
- const $2 = $1();
36992
- return $0($2)();
36959
+ const $1 = $0();
36960
+ return draw$p(drawable2LinkedText)(uiHelpers)(rSpec)($1)();
36993
36961
  };
36994
36962
  }
36995
36963
  };
36996
- var reflectValSelState\u{1D54A}Linked = {
36997
- from: () => (r) => arrayMap((x2) => {
36998
- const $0 = linkedTextEntry.unpack(x2._2);
36999
- if ($0.tag === "Left") {
37000
- return $Either("Left", $Tuple($0._1, x2._1));
37001
- }
37002
- if ($0.tag === "Right") {
37003
- return $Either("Right", $Tuple($0._1, x2._1));
37004
- }
37005
- fail();
37006
- })(reflectValSelState\u{1D54A}ArrayV.from()(r))
37007
- };
37008
36964
 
37009
36965
  // output-es/App.View.MatrixView/foreign.js
37010
36966
  function setSelState4({
@@ -37188,8 +37144,7 @@ function drawScatterPlot_(scatterPlotHelpers2, uiHelpers2, {
37188
37144
  view: {
37189
37145
  caption,
37190
37146
  points,
37191
- xlabel,
37192
- ylabel
37147
+ labels
37193
37148
  }
37194
37149
  }, listener) {
37195
37150
  return () => {
@@ -37215,8 +37170,8 @@ function drawScatterPlot_(scatterPlotHelpers2, uiHelpers2, {
37215
37170
  rootElement.append("g").attr("transform", "translate(0," + height + ")").call(axisBottom(x2).tickSizeOuter(0)).selectAll("text").style("text-anchor", "middle");
37216
37171
  const y2 = linear2().domain([Math.min(0, y_min), y_max]).range([height, 0]);
37217
37172
  rootElement.append("g").call(axisLeft(y2).tickSizeOuter(0));
37218
- rootElement.append("text").attr("x", width).attr("y", height + 25).style("text-anchor", "end").style("font-size", "10px").text(val(xlabel));
37219
- rootElement.append("text").attr("transform", "rotate(-90)").attr("x", -margin.top).attr("y", -margin.left + 20).style("text-anchor", "end").style("font-size", "10px").text(val(ylabel));
37173
+ rootElement.append("text").attr("x", width).attr("y", height + 25).style("text-anchor", "end").style("font-size", "10px").text(val(labels.x));
37174
+ rootElement.append("text").attr("transform", "rotate(-90)").attr("x", -margin.top).attr("y", -margin.left + 20).style("text-anchor", "end").style("font-size", "10px").text(val(labels.y));
37220
37175
  rootElement.append("g").selectAll("circle").data([...points.entries()].map(([i, point2]) => {
37221
37176
  return { i, point: point2 };
37222
37177
  })).enter().append("circle").classed("scatterplot-point", true).attr("cx", ({ point: point2 }) => x2(val(point2.x))).attr("cy", ({ point: point2 }) => y2(val(point2.y))).attr("stroke-width", 0.5);
@@ -37236,15 +37191,8 @@ var reflectDictSelState\u{1D54A}$x215ValS5 = {
37236
37191
  const $0 = $$get2(showString)(mapDictString)("caption")(r);
37237
37192
  return $Tuple($0._2._2.tag === "Str" ? $0._2._2._1 : typeError($0._2._2)("Str"), $0._2._1);
37238
37193
  })(),
37239
- points: arrayMap(dict(reflectDictSelState\u{1D54A}$x215ValS12.from()))(reflectValSelState\u{1D54A}ArrayV.from()($$get2(showString)(mapDictString)("points")(r)._2)),
37240
- xlabel: (() => {
37241
- const $0 = $$get2(showString)(mapDictString)("xlabel")(r);
37242
- return $Tuple($0._2._2.tag === "Str" ? $0._2._2._1 : typeError($0._2._2)("Str"), $0._2._1);
37243
- })(),
37244
- ylabel: (() => {
37245
- const $0 = $$get2(showString)(mapDictString)("ylabel")(r);
37246
- return $Tuple($0._2._2.tag === "Str" ? $0._2._2._1 : typeError($0._2._2)("Str"), $0._2._1);
37247
- })()
37194
+ points: arrayMap(dict(reflectDictSelState\u{1D54A}$x215ValS23.from()))(reflectValSelState\u{1D54A}ArrayV.from()($$get2(showString)(mapDictString)("points")(r)._2)),
37195
+ labels: dict(reflectDictSelState\u{1D54A}$x215ValS12.from())($$get2(showString)(mapDictString)("labels")(r)._2)
37248
37196
  })
37249
37197
  };
37250
37198
  var scatterPlotHelpers = {
@@ -37334,12 +37282,12 @@ var toStringWith = (v) => {
37334
37282
  // output-es/App.View.TableView/index.js
37335
37283
  var $Filter = (tag) => tag;
37336
37284
  var toUnfoldable9 = /* @__PURE__ */ toUnfoldable4(unfoldableArray);
37337
- var forWithIndex_2 = /* @__PURE__ */ forWithIndex_(applicativeEffect)(foldableWithIndexArray);
37285
+ var forWithIndex_3 = /* @__PURE__ */ forWithIndex_(applicativeEffect)(foldableWithIndexArray);
37338
37286
  var $$for = /* @__PURE__ */ (() => {
37339
37287
  const traverse2 = traversableArray.traverse(applicativeEffect);
37340
37288
  return (x2) => (f) => traverse2(f)(x2);
37341
37289
  })();
37342
- var for_4 = /* @__PURE__ */ for_(applicativeEffect)(foldableArray);
37290
+ var for_5 = /* @__PURE__ */ for_(applicativeEffect)(foldableArray);
37343
37291
  var Interactive = /* @__PURE__ */ $Filter("Interactive");
37344
37292
  var prim = (v) => {
37345
37293
  if (v._2.tag === "Int") {
@@ -37363,7 +37311,7 @@ var record_isVisible = (r) => filter((v) => {
37363
37311
  }
37364
37312
  fail();
37365
37313
  })(r).length !== 0;
37366
- var createRootElement2 = (v) => (div) => (childId) => {
37314
+ var createRootElement3 = (v) => (div) => (childId) => {
37367
37315
  const $0 = v.colNames;
37368
37316
  const $1 = v.filter;
37369
37317
  const $2 = v.rows;
@@ -37381,7 +37329,7 @@ var createRootElement2 = (v) => (div) => (childId) => {
37381
37329
  const colNames$p = ["__n", ...$0];
37382
37330
  const $4 = createChild(rootElement)(showElementType.show(THead))(fromFoldable10([]))();
37383
37331
  const row = createChild($4)(showElementType.show(TR))(fromFoldable10([]))();
37384
- forWithIndex_2(colNames$p)((j) => (colName) => {
37332
+ forWithIndex_3(colNames$p)((j) => (colName) => {
37385
37333
  const value = (() => {
37386
37334
  if (colName === "__n") {
37387
37335
  if ($1 === "Relevant") {
@@ -37403,7 +37351,7 @@ var createRootElement2 = (v) => (div) => (childId) => {
37403
37351
  };
37404
37352
  })();
37405
37353
  const body = createChild(rootElement)(showElementType.show(TBody))(fromFoldable10([]))();
37406
- forWithIndex_2($2)((i) => (row$1) => {
37354
+ forWithIndex_3($2)((i) => (row$1) => {
37407
37355
  const $5 = createChild(body)(showElementType.show(TR))(fromFoldable10([
37408
37356
  classes(["table-row"])
37409
37357
  ]));
@@ -37411,7 +37359,7 @@ var createRootElement2 = (v) => (div) => (childId) => {
37411
37359
  return () => {
37412
37360
  const $7 = $5();
37413
37361
  const row$p = $6($7)();
37414
- return forWithIndex_2([showIntImpl(i + 1 | 0), ...arrayMap(prim)(row$1)])((j) => (value) => {
37362
+ return forWithIndex_3([showIntImpl(i + 1 | 0), ...arrayMap(prim)(row$1)])((j) => (value) => {
37415
37363
  const $8 = createChild(row$p)(showElementType.show(TD))(fromFoldable10([
37416
37364
  classes(j >= 0 ? ["table-cell"] : [])
37417
37365
  ]));
@@ -37487,7 +37435,7 @@ var setSelState6 = (v) => (redraw) => (rootElement) => {
37487
37435
  const $3 = selectAll2(".table-cell")(rootElement);
37488
37436
  return () => {
37489
37437
  const cells = $3();
37490
- for_4(cells)((cell) => {
37438
+ for_5(cells)((cell) => {
37491
37439
  const $42 = datum2(cell);
37492
37440
  return () => {
37493
37441
  const v12 = $42();
@@ -37545,11 +37493,11 @@ var setSelState6 = (v) => (redraw) => (rootElement) => {
37545
37493
  };
37546
37494
  })();
37547
37495
  const v1 = partition(snd)(a$p);
37548
- for_4(v1.no)((() => {
37496
+ for_5(v1.no)((() => {
37549
37497
  const $42 = classed("hidden")(true);
37550
37498
  return (x2) => $42(x2._1);
37551
37499
  })())();
37552
- for_4(v1.yes)((() => {
37500
+ for_5(v1.yes)((() => {
37553
37501
  const $42 = classed("hidden")(false);
37554
37502
  return (x2) => $42(x2._1);
37555
37503
  })())();
@@ -37557,7 +37505,7 @@ var setSelState6 = (v) => (redraw) => (rootElement) => {
37557
37505
  setText($1 + " (" + showIntImpl($0.length - v1.no.length | 0) + " of " + showIntImpl($0.length) + ")")($4)();
37558
37506
  };
37559
37507
  };
37560
- var drawable2TableView = { createRootElement: createRootElement2, setSelState: setSelState6 };
37508
+ var drawable2TableView = { createRootElement: createRootElement3, setSelState: setSelState6 };
37561
37509
  var drawableTableView = {
37562
37510
  draw: (rSpec) => (figVal) => (v) => (redraw) => {
37563
37511
  const $0 = selListener(figVal)(redraw)((v1) => (x2) => listElement(v1.i)(dictVal(v1.colName)(x2)));
@@ -43673,17 +43621,18 @@ var parseProgram = (loadFile2) => (folder) => (file) => (dictMonadAff) => (dictM
43673
43621
  })());
43674
43622
  var module_2 = (dictMonadAff) => {
43675
43623
  const Monad0 = dictMonadAff.MonadEffect0().Monad0();
43676
- const $0 = Monad0.Bind1();
43624
+ const Bind1 = Monad0.Bind1();
43625
+ const Applicative0 = Monad0.Applicative0();
43677
43626
  return (dictMonadError) => {
43678
43627
  const parse1 = parse(dictMonadError);
43679
43628
  const desugarModuleFwd = moduleFwd(dictMonadError)(boundedLattice2);
43680
- return (loadFile2) => (file) => (v) => {
43681
- const $1 = v.mods;
43682
- return $0.bind(loadFile2("fluid")(file)(dictMonadAff)(dictMonadError))((src) => $0.bind($0.bind(parse1(src)(module_))(desugarModuleFwd))((mod) => Monad0.Applicative0().pure({
43629
+ return (loadFile2) => (folder) => (file) => (v) => {
43630
+ const $0 = v.mods;
43631
+ return Bind1.bind(Applicative0.pure())(() => Bind1.bind(loadFile2(folder)(file)(dictMonadAff)(dictMonadError))((src) => Bind1.bind(Bind1.bind(parse1(src)(module_))(desugarModuleFwd))((mod) => Applicative0.pure({
43683
43632
  primitives: v.primitives,
43684
- mods: $List("Cons", mod, $1),
43633
+ mods: $List("Cons", mod, $0),
43685
43634
  datasets: v.datasets
43686
- })));
43635
+ }))));
43687
43636
  };
43688
43637
  };
43689
43638
  };
@@ -43717,7 +43666,7 @@ var prepConfig = (dictMonadAff) => {
43717
43666
  return (dictMonadError) => {
43718
43667
  const desug1 = exprFwd(boundedLattice2)(dictMonadError)(joinSemilatticeUnit);
43719
43668
  const initialConfig1 = initialConfig(dictMonadError)(fVExpr);
43720
- return (loadFile2) => (file) => (progCxt) => $0.bind(parseProgram(loadFile2)("fluid/example")(file)(dictMonadAff)(dictMonadError))((s) => $0.bind(desug1(s))((e) => $0.bind(initialConfig1(e)(progCxt))((gconfig) => Monad0.Applicative0().pure({
43669
+ return (v) => (file) => (progCxt) => $0.bind(parseProgram(v.loadFile)(v.fluidSrcPath)(file)(dictMonadAff)(dictMonadError))((s) => $0.bind(desug1(s))((e) => $0.bind(initialConfig1(e)(progCxt))((gconfig) => Monad0.Applicative0().pure({
43721
43670
  s,
43722
43671
  e,
43723
43672
  gconfig
@@ -43729,10 +43678,10 @@ var datasetAs = (dictMonadAff) => {
43729
43678
  const $0 = Monad0.Bind1();
43730
43679
  return (dictMonadError) => {
43731
43680
  const desug1 = exprFwd(boundedLattice2)(dictMonadError)(joinSemilatticeUnit);
43732
- return (loadFile2) => (v) => (v1) => {
43681
+ return (loadFile2) => (folder) => (v) => (v1) => {
43733
43682
  const $1 = v1.datasets;
43734
43683
  const $2 = v._1;
43735
- return $0.bind($0.bind(parseProgram(loadFile2)("fluid")(v._2)(dictMonadAff)(dictMonadError))(desug1))((e\u03B1) => Monad0.Applicative0().pure({
43684
+ return $0.bind($0.bind(parseProgram(loadFile2)(folder)(v._2)(dictMonadAff)(dictMonadError))(desug1))((e\u03B1) => Monad0.Applicative0().pure({
43736
43685
  primitives: v1.primitives,
43737
43686
  mods: v1.mods,
43738
43687
  datasets: $List("Cons", $Tuple($2, e\u03B1), $1)
@@ -43749,12 +43698,12 @@ var loadProgCxt = (dictMonadAff) => {
43749
43698
  return (dictMonadError) => {
43750
43699
  const module_22 = module_1(dictMonadError);
43751
43700
  const datasetAs2 = datasetAs1(dictMonadError);
43752
- return (loadFile2) => (mods) => (datasets) => $0.bind($0.bind(Monad0.Applicative0().pure({
43701
+ return (v) => (mods) => (datasets) => $0.bind($0.bind(Monad0.Applicative0().pure({
43753
43702
  primitives,
43754
43703
  mods: Nil,
43755
43704
  datasets: Nil
43756
- }))(concatM1(arrayMap(module_22(loadFile2))(["lib/prelude", ...mods]))))(concatM1(arrayMap((() => {
43757
- const $1 = datasetAs2(loadFile2);
43705
+ }))(concatM1(arrayMap(module_22(v.loadFile)(v.fluidSrcPath))(["lib/prelude", ...mods]))))(concatM1(arrayMap((() => {
43706
+ const $1 = datasetAs2(v.loadFile)(v.fluidSrcPath);
43758
43707
  return (x2) => $1($Tuple(x2._1, x2._2));
43759
43708
  })())(datasets)));
43760
43709
  };
@@ -43765,9 +43714,10 @@ var loadFile = (v) => (v1) => (dictMonadAff) => {
43765
43714
  const MonadEffect0 = dictMonadAff.MonadEffect0();
43766
43715
  const Monad0 = MonadEffect0.Monad0();
43767
43716
  const Bind1 = Monad0.Bind1();
43717
+ const Applicative0 = Monad0.Applicative0();
43768
43718
  return (dictMonadError) => Bind1.bind(dictMonadAff.liftAff(request(driver)({
43769
43719
  method: $Either("Left", GET),
43770
- url: "/" + v + "/" + v1 + ".fld",
43720
+ url: v + "/" + v1 + ".fld",
43771
43721
  headers: [],
43772
43722
  content: Nothing,
43773
43723
  username: Nothing,
@@ -43781,12 +43731,27 @@ var loadFile = (v) => (v1) => (dictMonadAff) => {
43781
43731
  return Bind1.bind(MonadEffect0.liftEffect(log2("Failed with " + printError($0))))(() => dictMonadError.MonadThrow0().throwError(error(printError($0))));
43782
43732
  }
43783
43733
  if (result.tag === "Right") {
43784
- return Monad0.Applicative0().pure(result._1.body);
43734
+ const $0 = result._1;
43735
+ return Bind1.bind(Applicative0.pure())(() => Applicative0.pure($0.body));
43785
43736
  }
43786
43737
  fail();
43787
43738
  });
43788
43739
  };
43789
43740
  var loadFile$p = (folder) => (file) => (dictMonadAff) => (dictMonadError) => dictMonadAff.MonadEffect0().Monad0().Bind1().Apply0().Functor0().map((v) => $Tuple(file, v))(loadFile(folder)(file)(dictMonadAff)(dictMonadError));
43741
+ var loadProgCxt2 = (dictMonadAff) => {
43742
+ const loadProgCxt1 = loadProgCxt(dictMonadAff);
43743
+ return (dictMonadError) => {
43744
+ const loadProgCxt22 = loadProgCxt1(dictMonadError);
43745
+ return (fluidSrcPath) => loadProgCxt22({ loadFile, fluidSrcPath });
43746
+ };
43747
+ };
43748
+ var prepConfig2 = (dictMonadAff) => {
43749
+ const prepConfig1 = prepConfig(dictMonadAff);
43750
+ return (dictMonadError) => {
43751
+ const prepConfig22 = prepConfig1(dictMonadError);
43752
+ return (fluidSrcPath) => prepConfig22({ loadFile, fluidSrcPath });
43753
+ };
43754
+ };
43790
43755
 
43791
43756
  // output-es/App.Fig/index.js
43792
43757
  var highlightableSelState2 = /* @__PURE__ */ highlightableSelState(highlightableBoolean)(joinSemilatticeBoolean);
@@ -43972,67 +43937,68 @@ var lift3 = /* @__PURE__ */ lift(applyVal)(applyEnv);
43972
43937
  var loadFig = (v) => (dictMonadAff) => {
43973
43938
  const Monad0 = dictMonadAff.MonadEffect0().Monad0();
43974
43939
  const $0 = Monad0.Bind1();
43975
- const loadProgCxt1 = loadProgCxt(dictMonadAff);
43976
- const prepConfig1 = prepConfig(dictMonadAff);
43940
+ const loadProgCxt3 = loadProgCxt2(dictMonadAff);
43941
+ const prepConfig3 = prepConfig2(dictMonadAff);
43977
43942
  return (dictMonadError) => {
43978
- const prepConfig1$1 = prepConfig1(dictMonadError)(loadFile);
43943
+ const prepConfig1 = prepConfig3(dictMonadError);
43979
43944
  const graphEval2 = graphEval(dictMonadError);
43980
43945
  const $1 = v.file;
43981
- const $2 = v.inputs;
43982
- return $0.bind(loadProgCxt1(dictMonadError)(loadFile)(v.imports)(v.datasets))((progCxt) => $0.bind(prepConfig1$1($1)(progCxt))((v1) => {
43983
- const $3 = v1.s;
43946
+ const $2 = v.fluidSrcPath;
43947
+ const $3 = v.inputs;
43948
+ return $0.bind(loadProgCxt3(dictMonadError)($2)(v.imports)(v.datasets))((progCxt) => $0.bind(prepConfig1($2)($1)(progCxt))((v1) => {
43949
+ const $4 = v1.s;
43984
43950
  return $0.bind(graphEval2(v1.gconfig)(v1.e))((v2) => {
43985
43951
  const v3 = functorEnvExpr.map((v$1) => {
43986
43952
  })(v2["in\u03B1"]);
43987
43953
  const \u03B30 = _fmapObject(v2["in\u03B1"]._1, functorVal.map((v$1) => false));
43988
43954
  const v0 = $Val(false, functorBaseVal.map((v$1) => false)(v2["out\u03B1"]._2));
43989
- const $4 = unrestrictGC(boundedMeetSemilatticeBoo)(v3._1)(fromFoldable28($2));
43990
- const $5 = unprojExpr(boundedMeetSemilatticeBoo)($EnvExpr(v3._1, v3._2));
43991
- const focus = { fwd: (x2) => $5.fwd($4.fwd(x2)), bwd: (x2) => $4.bwd($5.bwd(x2)) };
43992
- const $6 = graphGC1(v2);
43993
- const gc = { fwd: (x2) => $6.fwd(focus.fwd(x2)), bwd: (x2) => focus.bwd($6.bwd(x2)) };
43994
- const $7 = gc.fwd(\u03B30);
43995
- const vInert = $Val(selState($7._1), functorBaseVal.map(selState)($7._2));
43955
+ const $5 = unrestrictGC(boundedMeetSemilatticeBoo)(v3._1)(fromFoldable28($3));
43956
+ const $6 = unprojExpr(boundedMeetSemilatticeBoo)($EnvExpr(v3._1, v3._2));
43957
+ const focus = { fwd: (x2) => $6.fwd($5.fwd(x2)), bwd: (x2) => $5.bwd($6.bwd(x2)) };
43958
+ const $7 = graphGC1(v2);
43959
+ const gc = { fwd: (x2) => $7.fwd(focus.fwd(x2)), bwd: (x2) => focus.bwd($7.bwd(x2)) };
43960
+ const $8 = gc.fwd(\u03B30);
43961
+ const vInert = $Val(selState($8._1), functorBaseVal.map(selState)($8._2));
43996
43962
  const \u03B3Inert = _fmapObject(
43997
43963
  _fmapObject(gc.bwd($Val(true, functorBaseVal.map((v$1) => true)(v2["out\u03B1"]._2))), functorVal.map(boolNot)),
43998
43964
  functorVal.map(selState)
43999
43965
  );
44000
- const $8 = graphGC22({
43966
+ const $9 = graphGC22({
44001
43967
  g: $GraphImpl({ out: v2.g._1.in_, in_: v2.g._1.out, sinks: v2.g._1.sources, sources: v2.g._1.sinks, vertices: v2.g._1.vertices }),
44002
43968
  graph_fwd: v2.graph_fwd,
44003
43969
  graph_bwd: v2.graph_bwd,
44004
43970
  "in\u03B1": v2["out\u03B1"],
44005
43971
  "out\u03B1": v2["in\u03B1"]
44006
43972
  });
44007
- const $9 = dual(focus);
44008
- const gc_dual = { fwd: (x2) => $9.fwd($8.fwd(x2)), bwd: (x2) => $8.bwd($9.bwd(x2)) };
43973
+ const $10 = dual(focus);
43974
+ const gc_dual = { fwd: (x2) => $10.fwd($9.fwd(x2)), bwd: (x2) => $9.bwd($10.bwd(x2)) };
44009
43975
  return Monad0.Applicative0().pure({
44010
43976
  spec: v,
44011
- s: $3,
43977
+ s: $4,
44012
43978
  "\u03B3": intersectionWith_Object(apply)(_fmapObject(
44013
43979
  intersectionWith_Object(apply)(_fmapObject(\u03B3Inert, applyVal.apply))(\u03B30),
44014
43980
  applyVal.apply
44015
43981
  ))(\u03B30),
44016
43982
  v: applyVal.apply(applyVal.apply(vInert)(v0))(v0),
44017
43983
  linkedOutputs: (() => {
44018
- const $10 = lift3(vInert)(\u03B3Inert)(gc_dual);
44019
- const $11 = lift1(\u03B3Inert)(vInert)(gc);
43984
+ const $11 = lift3(vInert)(\u03B3Inert)(gc_dual);
43985
+ const $12 = lift1(\u03B3Inert)(vInert)(gc);
44020
43986
  return {
44021
- fwd: (x2) => $11.fwd(meet1.fwd($Tuple($10.fwd(x2._1), categoryGaloisConnection.identity.fwd(x2._2)))),
43987
+ fwd: (x2) => $12.fwd(meet1.fwd($Tuple($11.fwd(x2._1), categoryGaloisConnection.identity.fwd(x2._2)))),
44022
43988
  bwd: (x2) => {
44023
- const $12 = meet1.bwd($11.bwd(x2));
44024
- return $Tuple($10.bwd($12._1), categoryGaloisConnection.identity.bwd($12._2));
43989
+ const $13 = meet1.bwd($12.bwd(x2));
43990
+ return $Tuple($11.bwd($13._1), categoryGaloisConnection.identity.bwd($13._2));
44025
43991
  }
44026
43992
  };
44027
43993
  })(),
44028
43994
  linkedInputs: (() => {
44029
- const $10 = lift1(\u03B3Inert)(vInert)(gc);
44030
- const $11 = lift3(vInert)(\u03B3Inert)(gc_dual);
43995
+ const $11 = lift1(\u03B3Inert)(vInert)(gc);
43996
+ const $12 = lift3(vInert)(\u03B3Inert)(gc_dual);
44031
43997
  return {
44032
- fwd: (x2) => $11.fwd(meet.fwd($Tuple($10.fwd(x2._1), categoryGaloisConnection.identity.fwd(x2._2)))),
43998
+ fwd: (x2) => $12.fwd(meet.fwd($Tuple($11.fwd(x2._1), categoryGaloisConnection.identity.fwd(x2._2)))),
44033
43999
  bwd: (x2) => {
44034
- const $12 = meet.bwd($11.bwd(x2));
44035
- return $Tuple($10.bwd($12._1), categoryGaloisConnection.identity.bwd($12._2));
44000
+ const $13 = meet.bwd($12.bwd(x2));
44001
+ return $Tuple($11.bwd($13._1), categoryGaloisConnection.identity.bwd($13._2));
44036
44002
  }
44037
44003
  };
44038
44004
  })(),
@@ -44250,7 +44216,26 @@ var gDecodeJsonCons = (dictDecodeJsonField) => (dictGDecodeJson) => (dictIsSymbo
44250
44216
  var monadAffAff = { liftAff: (x2) => x2, MonadEffect0: () => monadEffectAff };
44251
44217
 
44252
44218
  // output-es/App.LoadFigure/index.js
44253
- var gDecodeJsonCons2 = /* @__PURE__ */ gDecodeJsonCons(/* @__PURE__ */ (() => {
44219
+ var gDecodeJsonCons2 = /* @__PURE__ */ gDecodeJsonCons({
44220
+ decodeJsonField: (j) => {
44221
+ if (j.tag === "Just") {
44222
+ return $Maybe(
44223
+ "Just",
44224
+ _caseJson(
44225
+ (v) => $Either("Left", $JsonDecodeError("TypeMismatch", "String")),
44226
+ (v) => $Either("Left", $JsonDecodeError("TypeMismatch", "String")),
44227
+ (v) => $Either("Left", $JsonDecodeError("TypeMismatch", "String")),
44228
+ Right,
44229
+ (v) => $Either("Left", $JsonDecodeError("TypeMismatch", "String")),
44230
+ (v) => $Either("Left", $JsonDecodeError("TypeMismatch", "String")),
44231
+ j._1
44232
+ )
44233
+ );
44234
+ }
44235
+ return Nothing;
44236
+ }
44237
+ });
44238
+ var gDecodeJsonCons1 = /* @__PURE__ */ gDecodeJsonCons(/* @__PURE__ */ (() => {
44254
44239
  const $0 = decodeArray(caseJsonString($Either(
44255
44240
  "Left",
44256
44241
  $JsonDecodeError("TypeMismatch", "String")
@@ -44264,7 +44249,7 @@ var gDecodeJsonCons2 = /* @__PURE__ */ gDecodeJsonCons(/* @__PURE__ */ (() => {
44264
44249
  }
44265
44250
  };
44266
44251
  })());
44267
- var jsonToSpec = /* @__PURE__ */ (() => decodeRecord(gDecodeJsonCons((() => {
44252
+ var decodeJson = /* @__PURE__ */ (() => decodeRecord(gDecodeJsonCons((() => {
44268
44253
  const $0 = decodeArray(decodeTuple(caseJsonString($Either(
44269
44254
  "Left",
44270
44255
  $JsonDecodeError("TypeMismatch", "String")
@@ -44277,40 +44262,28 @@ var jsonToSpec = /* @__PURE__ */ (() => decodeRecord(gDecodeJsonCons((() => {
44277
44262
  return Nothing;
44278
44263
  }
44279
44264
  };
44280
- })())(gDecodeJsonCons({
44281
- decodeJsonField: (j) => {
44282
- if (j.tag === "Just") {
44283
- return $Maybe(
44284
- "Just",
44285
- _caseJson(
44286
- (v) => $Either("Left", $JsonDecodeError("TypeMismatch", "String")),
44287
- (v) => $Either("Left", $JsonDecodeError("TypeMismatch", "String")),
44288
- (v) => $Either("Left", $JsonDecodeError("TypeMismatch", "String")),
44289
- Right,
44290
- (v) => $Either("Left", $JsonDecodeError("TypeMismatch", "String")),
44291
- (v) => $Either("Left", $JsonDecodeError("TypeMismatch", "String")),
44292
- j._1
44293
- )
44294
- );
44295
- }
44296
- return Nothing;
44297
- }
44298
- })(gDecodeJsonCons2(gDecodeJsonCons2(gDecodeJsonNil)({ reflectSymbol: () => "inputs" })()())({ reflectSymbol: () => "imports" })()())({
44299
- reflectSymbol: () => "file"
44300
- })()())({ reflectSymbol: () => "datasets" })()())().decodeJson)();
44301
- var figSpecFromJson = (spec) => ({ datasets: spec.datasets, imports: spec.imports, file: spec.file, inputs: spec.inputs });
44265
+ })())(gDecodeJsonCons2(gDecodeJsonCons2(gDecodeJsonCons1(gDecodeJsonCons1(gDecodeJsonNil)({ reflectSymbol: () => "inputs" })()())({
44266
+ reflectSymbol: () => "imports"
44267
+ })()())({ reflectSymbol: () => "fluidSrcPath" })()())({ reflectSymbol: () => "file" })()())({ reflectSymbol: () => "datasets" })()())().decodeJson)();
44268
+ var figSpecFromJson = (spec) => ({ fluidSrcPath: spec.fluidSrcPath, datasets: spec.datasets, imports: spec.imports, file: spec.file, inputs: spec.inputs });
44302
44269
  var loadFigure = (fileName) => runAffs_((v) => drawFig(v._1)(v._2))([
44303
44270
  _bind($$get(driver)($ResponseFormat("Json", identity))(fileName))((result) => {
44304
44271
  if (result.tag === "Left") {
44305
44272
  return throwException(error("Json fetching failed with " + printError(result._1)))();
44306
44273
  }
44307
44274
  if (result.tag === "Right") {
44308
- const v = jsonToSpec(result._1.body);
44275
+ const v = decodeJson(result._1.body);
44309
44276
  if (v.tag === "Left") {
44310
44277
  return throwException(error("JSON decoding failed with " + showJsonDecodeError.show(v._1)))();
44311
44278
  }
44312
44279
  if (v.tag === "Right") {
44313
- return _map((v1) => $Tuple("fig", v1))(loadFig({ datasets: v._1.datasets, imports: v._1.imports, file: v._1.file, inputs: v._1.inputs })(monadAffAff)(monadErrorAff));
44280
+ return _map((v1) => $Tuple("fig", v1))(loadFig({
44281
+ fluidSrcPath: v._1.fluidSrcPath,
44282
+ datasets: v._1.datasets,
44283
+ imports: v._1.imports,
44284
+ file: v._1.file,
44285
+ inputs: v._1.inputs
44286
+ })(monadAffAff)(monadErrorAff));
44314
44287
  }
44315
44288
  }
44316
44289
  fail();
@@ -44318,9 +44291,10 @@ var loadFigure = (fileName) => runAffs_((v) => drawFig(v._1)(v._2))([
44318
44291
  ]);
44319
44292
  var drawCode2 = (folder) => (file) => runAffs_(drawFile)([loadFile$p(folder)(file)(monadAffAff)(monadErrorAff)]);
44320
44293
  export {
44294
+ decodeJson,
44321
44295
  drawCode2 as drawCode,
44322
44296
  figSpecFromJson,
44323
44297
  gDecodeJsonCons2 as gDecodeJsonCons,
44324
- jsonToSpec,
44298
+ gDecodeJsonCons1,
44325
44299
  loadFigure
44326
44300
  };