@explorable-viz/fluid 0.7.61 → 0.7.62
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/fluid/fluid/example/linked-inputs/energyscatter.fld +1 -2
- package/dist/fluid/fluid/example/linked-inputs/mini-energyscatter.fld +1 -2
- package/dist/fluid/fluid/example/plot/non-renewables.fld +3 -4
- package/dist/fluid/fluid/example/slicing/linked-outputs/stacked-bar-scatter-plot.fld +1 -2
- package/dist/fluid/fluid/lib/convolution.fld +4 -3
- package/dist/fluid/shared/fluid.mjs +5 -5
- package/dist/fluid/shared/load-figure.js +98 -150
- package/package.json +1 -1
@@ -19,6 +19,5 @@ let plot year countries =
|
|
19
19
|
in ScatterPlot {
|
20
20
|
caption: "Clean energy efficiency vs. proportion of renewable energy capacity",
|
21
21
|
points: plot 2018 [ "BRA", "CHN", "DEU", "FRA", "EGY", "IND", "JPN", "MEX", "NGA", "USA" ],
|
22
|
-
|
23
|
-
ylabel: "Clean Capacity Factor"
|
22
|
+
labels: { x: "Renewables/TotalEnergyCap", y: "Clean Capacity Factor" }
|
24
23
|
}
|
@@ -25,6 +25,5 @@ in ScatterPlot {
|
|
25
25
|
x: country.nonRenewables / country.totalCap,
|
26
26
|
y: country.renCapFactor
|
27
27
|
}| country <- energy 2018 ["USA"]],
|
28
|
-
|
29
|
-
ylabel: "Clean Capacity Factor"
|
28
|
+
labels: { x: "Renewables/TotalEnergyCap", y: "Clean Capacity Factor" }
|
30
29
|
}
|
@@ -2,8 +2,8 @@ let countries = ["BRA", "EGY", "IND", "JPN"];
|
|
2
2
|
let totalFor year country =
|
3
3
|
let [ row ] = [ row | row <- nonRenewables, row.year == year, row.country == country ]
|
4
4
|
in row.nuclearOut + row.gasOut + row.coalOut + row.petrolOut;
|
5
|
-
|
6
|
-
|
5
|
+
let stack year = [ { y: country, z: totalFor year country } | country <- countries ];
|
6
|
+
let yearData year = [ row | row <- nonRenewables, row.year == year, row.country `elem` countries ]
|
7
7
|
in MultiView {
|
8
8
|
barChart: BarChart {
|
9
9
|
caption: "Non-renewables output",
|
@@ -16,7 +16,6 @@ in MultiView {
|
|
16
16
|
x: sum [ row.nuclearOut | row <- yearData year ],
|
17
17
|
y: sum [ row.nuclearCap | row <- yearData year ]
|
18
18
|
} | year <- [2014..2018] ],
|
19
|
-
|
20
|
-
ylabel: "Nuclear output"
|
19
|
+
labels: { x: "Nuclear capacity", y: "Nuclear output" }
|
21
20
|
}
|
22
21
|
}
|
@@ -33,7 +33,6 @@ MultiView {
|
|
33
33
|
in ScatterPlot {
|
34
34
|
caption: "Clean energy efficiency vs proportion of renewable energy capacity",
|
35
35
|
points: plot 2018 [ "BRA", "CHN", "DEU", "FRA", "EGY", "IND", "JPN", "MEX", "NGA", "USA" ],
|
36
|
-
|
37
|
-
ylabel: "Clean Capacity Factor"
|
36
|
+
labels: { x: "Renewables/TotalEnergyCap", y: "Clean Capacity Factor" }
|
38
37
|
}
|
39
38
|
}
|
@@ -2,15 +2,16 @@ let zero n = const n;
|
|
2
2
|
wrap n n_max = ((n - 1) `mod` n_max) + 1;
|
3
3
|
extend n = min (max n 1);
|
4
4
|
|
5
|
-
let convolve image kernel
|
5
|
+
let convolve image kernel boundary =
|
6
6
|
let ((m, n), (i, j)) = (dims image, dims kernel);
|
7
7
|
(half_i, half_j) = (i `quot` 2, j `quot` 2);
|
8
8
|
area = i * j
|
9
9
|
in [| let weightedSum = sum [
|
10
10
|
image!(x, y) * kernel!(i' + 1, j' + 1)
|
11
11
|
| (i', j') <- range (0, 0) (i - 1, j - 1),
|
12
|
-
let x =
|
13
|
-
let y =
|
12
|
+
let x = boundary (m' + i' - half_i) m,
|
13
|
+
let y = boundary (n' + j' - half_j) n,
|
14
14
|
x >= 1, x <= m, y >= 1, y <= n
|
15
15
|
] in weightedSum `quot` area
|
16
16
|
| (m', n') in (m, n) |];
|
17
|
+
|
@@ -10170,8 +10170,7 @@ var dataTypes = /* @__PURE__ */ foldrArray(Cons)(Nil)([
|
|
10170
10170
|
/* @__PURE__ */ $Tuple("Viewport", 9)
|
10171
10171
|
]),
|
10172
10172
|
/* @__PURE__ */ dataType("Transform")([/* @__PURE__ */ $Tuple("Scale", 2), /* @__PURE__ */ $Tuple("Translate", 2)]),
|
10173
|
-
/* @__PURE__ */ dataType("Marker")([/* @__PURE__ */ $Tuple("Arrowhead", 0)])
|
10174
|
-
/* @__PURE__ */ dataType("Explanation")([/* @__PURE__ */ $Tuple("Explained", 2)])
|
10173
|
+
/* @__PURE__ */ dataType("Marker")([/* @__PURE__ */ $Tuple("Arrowhead", 0)])
|
10175
10174
|
]);
|
10176
10175
|
var ctrToDataType = /* @__PURE__ */ (() => fromFoldable2(foldableList)(bindList.bind(listMap((d) => listMap((v) => $Tuple(
|
10177
10176
|
v,
|
@@ -28437,8 +28436,8 @@ var dispatchCommand = (v) => {
|
|
28437
28436
|
return _bind(evaluate(v._1))((v1) => _liftEffect(log(intercalate4("\n")(removeDocWS(prettyVal(highlightableUnit).pretty(v1)).lines))));
|
28438
28437
|
}
|
28439
28438
|
if (v.tag === "Publish") {
|
28440
|
-
return
|
28441
|
-
})(_liftEffect(publish(v._1)(v._2)))
|
28439
|
+
return _map((v$1) => {
|
28440
|
+
})(_liftEffect(publish(v._1)(v._2)));
|
28442
28441
|
}
|
28443
28442
|
fail();
|
28444
28443
|
};
|
@@ -28447,7 +28446,8 @@ var callback = (v) => {
|
|
28447
28446
|
return log(showErrorImpl(v._1));
|
28448
28447
|
}
|
28449
28448
|
if (v.tag === "Right") {
|
28450
|
-
return
|
28449
|
+
return () => {
|
28450
|
+
};
|
28451
28451
|
}
|
28452
28452
|
fail();
|
28453
28453
|
};
|
@@ -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 = {
|
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}$
|
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/
|
36901
|
-
|
36902
|
-
|
36903
|
-
|
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
|
-
|
36908
|
-
|
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
|
36940
|
-
|
36941
|
-
|
36942
|
-
|
36943
|
-
|
36944
|
-
|
36945
|
-
|
36946
|
-
|
36947
|
-
|
36948
|
-
|
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
|
+
})();
|
36949
36931
|
};
|
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
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;
|
36952
|
+
};
|
36953
|
+
};
|
36954
|
+
var drawable2LinkedText = { createRootElement: createRootElement2, setSelState: setSelState3 };
|
36986
36955
|
var drawableLinkedText = {
|
36987
36956
|
draw: (rSpec) => (figVal) => (v) => (redraw) => {
|
36988
|
-
const $0 =
|
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 $
|
36992
|
-
return $
|
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
|
-
|
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(
|
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(
|
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}$
|
37240
|
-
|
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
|
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
|
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
|
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
|
-
|
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
|
-
|
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
|
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
|
-
|
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
|
-
|
37496
|
+
for_5(v1.no)((() => {
|
37549
37497
|
const $42 = classed("hidden")(true);
|
37550
37498
|
return (x2) => $42(x2._1);
|
37551
37499
|
})())();
|
37552
|
-
|
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:
|
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)));
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@explorable-viz/fluid",
|
3
|
-
"version": "0.7.
|
3
|
+
"version": "0.7.62",
|
4
4
|
"description": "Fluid is an experimental programming language which integrates a bidirectional dynamic analysis to connect outputs to data sources in a fine-grained way. Fluid is implemented in PureScript and runs in the browser.",
|
5
5
|
"main": "index.js",
|
6
6
|
"repository": {
|