@thi.ng/fuzzy-viz 1.0.8 → 2.0.3

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/CHANGELOG.md CHANGED
@@ -3,7 +3,7 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [1.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy-viz@1.0.7...@thi.ng/fuzzy-viz@1.0.8) (2021-08-22)
6
+ ## [2.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy-viz@2.0.2...@thi.ng/fuzzy-viz@2.0.3) (2021-10-15)
7
7
 
8
8
  **Note:** Version bump only for package @thi.ng/fuzzy-viz
9
9
 
@@ -11,27 +11,69 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
11
11
 
12
12
 
13
13
 
14
- ## [0.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy-viz@0.1.16...@thi.ng/fuzzy-viz@0.1.17) (2021-03-24)
14
+ ## [2.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy-viz@2.0.1...@thi.ng/fuzzy-viz@2.0.2) (2021-10-15)
15
+
16
+ **Note:** Version bump only for package @thi.ng/fuzzy-viz
17
+
18
+
19
+
20
+
21
+
22
+ ## [2.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy-viz@2.0.0...@thi.ng/fuzzy-viz@2.0.1) (2021-10-13)
23
+
24
+ **Note:** Version bump only for package @thi.ng/fuzzy-viz
25
+
26
+
27
+
28
+
29
+
30
+ # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy-viz@1.0.9...@thi.ng/fuzzy-viz@2.0.0) (2021-10-12)
31
+
32
+
33
+ ### Build System
34
+
35
+ * major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea9fab2a645d6c5f2bf2591459b939c09b6))
36
+
37
+
38
+ ### BREAKING CHANGES
39
+
40
+ * discontinue CommonJS & UMD versions
41
+
42
+ - only ESM modules will be published from now on
43
+ - CJS obsolete due to ESM support in recent versions of node:
44
+ - i.e. launch NodeJS via:
45
+ - `node --experimental-specifier-resolution=node --experimental-repl-await`
46
+ - in the node REPL use `await import(...)` instead of `require()`
47
+ - UMD obsolete due to widespread browser support for ESM
48
+
49
+ Also:
50
+ - normalize/restructure/reorg all package.json files
51
+ - cleanup all build scripts, remove obsolete
52
+ - switch from mocha to @thi.ng/testament for all tests
53
+
15
54
 
16
55
 
17
- ### Performance Improvements
18
56
 
19
- * **fuzzy-viz:** update fuzzySetToAscii() ([84c6a3f](https://github.com/thi-ng/umbrella/commit/84c6a3f077c16027c9dde79618992bbe3be9d5a6))
20
57
 
21
58
 
59
+ ## [1.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy-viz@1.0.7...@thi.ng/fuzzy-viz@1.0.8) (2021-08-22)
22
60
 
61
+ **Note:** Version bump only for package @thi.ng/fuzzy-viz
23
62
 
63
+ ## [0.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy-viz@0.1.16...@thi.ng/fuzzy-viz@0.1.17) (2021-03-24)
24
64
 
25
- # 0.1.0 (2020-12-22)
65
+ ### Performance Improvements
26
66
 
67
+ - **fuzzy-viz:** update fuzzySetToAscii() ([84c6a3f](https://github.com/thi-ng/umbrella/commit/84c6a3f077c16027c9dde79618992bbe3be9d5a6))
27
68
 
28
- ### Bug Fixes
69
+ # 0.1.0 (2020-12-22)
29
70
 
30
- * **fuzzy-viz:** update imports ([22f37a5](https://github.com/thi-ng/umbrella/commit/22f37a526acd6911720100e77ad41029d8799004))
71
+ ### Bug Fixes
31
72
 
73
+ - **fuzzy-viz:** update imports ([22f37a5](https://github.com/thi-ng/umbrella/commit/22f37a526acd6911720100e77ad41029d8799004))
32
74
 
33
- ### Features
75
+ ### Features
34
76
 
35
- * **fuzzy-viz:** add/update instrumentStrategy() & co ([131d137](https://github.com/thi-ng/umbrella/commit/131d13776735e3dd222090a6b514bfbe4878d9f2))
36
- * **fuzzy-viz:** add/update viz options, fix zero marker ([bee9cd0](https://github.com/thi-ng/umbrella/commit/bee9cd08b32ce43cc6661146dd87f35db9516559))
37
- * **fuzzy-viz:** import as new pkg ([8b23934](https://github.com/thi-ng/umbrella/commit/8b239347894bf8c7192890151868ecdb1ac3bf2b))
77
+ - **fuzzy-viz:** add/update instrumentStrategy() & co ([131d137](https://github.com/thi-ng/umbrella/commit/131d13776735e3dd222090a6b514bfbe4878d9f2))
78
+ - **fuzzy-viz:** add/update viz options, fix zero marker ([bee9cd0](https://github.com/thi-ng/umbrella/commit/bee9cd08b32ce43cc6661146dd87f35db9516559))
79
+ - **fuzzy-viz:** import as new pkg ([8b23934](https://github.com/thi-ng/umbrella/commit/8b239347894bf8c7192890151868ecdb1ac3bf2b))
package/README.md CHANGED
@@ -35,15 +35,24 @@ Visualization, instrumentation & introspection utils for [@thi.ng/fuzzy](https:/
35
35
  yarn add @thi.ng/fuzzy-viz
36
36
  ```
37
37
 
38
+ ES module import:
39
+
38
40
  ```html
39
- // ES module
40
- <script type="module" src="https://unpkg.com/@thi.ng/fuzzy-viz?module" crossorigin></script>
41
+ <script type="module" src="https://cdn.skypack.dev/@thi.ng/fuzzy-viz"></script>
42
+ ```
43
+
44
+ [Skypack documentation](https://docs.skypack.dev/)
45
+
46
+ For Node.js REPL:
47
+
48
+ ```text
49
+ # with flag only for < v16
50
+ node --experimental-repl-await
41
51
 
42
- // UMD
43
- <script src="https://unpkg.com/@thi.ng/fuzzy-viz/lib/index.umd.js" crossorigin></script>
52
+ > const fuzzyViz = await import("@thi.ng/fuzzy-viz");
44
53
  ```
45
54
 
46
- Package sizes (gzipped, pre-treeshake): ESM: 1.04 KB / CJS: 1.12 KB / UMD: 1.22 KB
55
+ Package sizes (gzipped, pre-treeshake): ESM: 1.06 KB
47
56
 
48
57
  ## Dependencies
49
58
 
@@ -85,7 +94,7 @@ writeFileSync("temperature.svg", varToSvg(temp, { samples: 200 }));
85
94
  ```
86
95
 
87
96
  See
88
- [`VizualizeVarOpts`](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy-viz/src/api.ts)
97
+ [`VisualizeVarOpts`](https://docs.thi.ng/umbrella/fuzzy-viz/interfaces/VisualizeVarOpts.html)
89
98
  for further options to configure the visualization.
90
99
 
91
100
  ### Instrument a DefuzzStrategy
package/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./strategy";
2
- export * from "./var";
1
+ export * from "./strategy.js";
2
+ export * from "./var.js";
3
3
  //# sourceMappingURL=index.d.ts.map
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./strategy";
2
- export * from "./var";
1
+ export * from "./strategy.js";
2
+ export * from "./var.js";
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@thi.ng/fuzzy-viz",
3
- "version": "1.0.8",
3
+ "version": "2.0.3",
4
4
  "description": "Visualization, instrumentation & introspection utils for @thi.ng/fuzzy",
5
+ "type": "module",
5
6
  "module": "./index.js",
6
- "main": "./lib/index.js",
7
- "umd:main": "./lib/index.umd.js",
8
7
  "typings": "./index.d.ts",
8
+ "sideEffects": false,
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "https://github.com/thi-ng/umbrella.git"
@@ -24,33 +24,27 @@
24
24
  "author": "Karsten Schmidt <k+npm@thi.ng>",
25
25
  "license": "Apache-2.0",
26
26
  "scripts": {
27
- "build": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module",
28
- "build:release": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module all",
29
- "build:es6": "tsc --declaration",
30
- "build:test": "rimraf build && tsc -p test/tsconfig.json",
31
- "build:check": "tsc --isolatedModules --noEmit",
32
- "test": "mocha test",
33
- "cover": "nyc mocha test && nyc report --reporter=lcov",
34
- "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib",
35
- "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts",
27
+ "build": "yarn clean && tsc --declaration",
28
+ "clean": "rimraf *.js *.d.ts *.map doc",
29
+ "doc": "typedoc --excludePrivate --excludeInternal --out doc src/index.ts",
36
30
  "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose",
37
- "doc": "typedoc --excludePrivate --out doc --theme ../../tools/doc/typedoc-theme src/index.ts",
38
- "pub": "yarn build:release && yarn publish --access public"
31
+ "doc:readme": "yarn doc:stats && ../../scripts/node-esm ../../tools/src/readme.ts",
32
+ "doc:stats": "../../scripts/node-esm ../../tools/src/module-stats.ts",
33
+ "pub": "yarn build && yarn publish --access public",
34
+ "test": "testament test"
39
35
  },
40
36
  "dependencies": {
41
- "@thi.ng/api": "^7.1.9",
42
- "@thi.ng/fuzzy": "^1.0.3",
43
- "@thi.ng/hiccup": "^3.6.21",
44
- "@thi.ng/hiccup-svg": "^3.8.0",
45
- "@thi.ng/math": "^4.0.5",
46
- "@thi.ng/strings": "^2.1.6",
47
- "@thi.ng/text-canvas": "^1.1.3"
37
+ "@thi.ng/api": "^8.0.3",
38
+ "@thi.ng/fuzzy": "^2.0.3",
39
+ "@thi.ng/hiccup": "^4.0.3",
40
+ "@thi.ng/hiccup-svg": "^4.0.3",
41
+ "@thi.ng/math": "^5.0.3",
42
+ "@thi.ng/strings": "^3.0.3",
43
+ "@thi.ng/text-canvas": "^2.0.3"
44
+ },
45
+ "devDependencies": {
46
+ "@thi.ng/testament": "^0.1.3"
48
47
  },
49
- "files": [
50
- "*.js",
51
- "*.d.ts",
52
- "lib"
53
- ],
54
48
  "keywords": [
55
49
  "area plot",
56
50
  "ascii",
@@ -67,10 +61,30 @@
67
61
  "publishConfig": {
68
62
  "access": "public"
69
63
  },
70
- "sideEffects": false,
64
+ "engines": {
65
+ "node": ">=12.7"
66
+ },
67
+ "files": [
68
+ "*.js",
69
+ "*.d.ts"
70
+ ],
71
+ "exports": {
72
+ ".": {
73
+ "import": "./index.js"
74
+ },
75
+ "./api": {
76
+ "import": "./api.js"
77
+ },
78
+ "./strategy": {
79
+ "import": "./strategy.js"
80
+ },
81
+ "./var": {
82
+ "import": "./var.js"
83
+ }
84
+ },
71
85
  "thi.ng": {
72
86
  "parent": "@thi.ng/fuzzy",
73
87
  "year": 2020
74
88
  },
75
- "gitHead": "8ead409ded4bf8dceb0f24a538ba5ca00d07108d"
89
+ "gitHead": "1fb38cac74d6c009d96855c28784a267a81badf1"
76
90
  }
package/strategy.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Fn3, IClear, IDeref } from "@thi.ng/api";
2
- import { DefuzzStrategy, FuzzyFn, LVarDomain } from "@thi.ng/fuzzy";
3
- import type { AsciiVizOpts, InstrumentFn, VizualizeVarOpts } from "./api";
2
+ import type { DefuzzStrategy, FuzzyFn, LVarDomain } from "@thi.ng/fuzzy";
3
+ import type { AsciiVizOpts, InstrumentFn, VizualizeVarOpts } from "./api.js";
4
4
  /**
5
5
  * Higher order function. Takes an existing {@link @thi.ng/fuzzy#DefuzzStrategy}
6
6
  * and an instrumentation function. Returns new `DefuzzStrategy` which first
package/strategy.js CHANGED
@@ -1,10 +1,10 @@
1
- import { variable } from "@thi.ng/fuzzy";
2
- import { serialize } from "@thi.ng/hiccup";
3
- import { convertTree } from "@thi.ng/hiccup-svg";
4
- import { fit } from "@thi.ng/math";
5
- import { repeat } from "@thi.ng/strings";
6
- import { barChartHLines } from "@thi.ng/text-canvas";
7
- import { varToHiccup } from "./var";
1
+ import { variable } from "@thi.ng/fuzzy/var";
2
+ import { convertTree } from "@thi.ng/hiccup-svg/convert";
3
+ import { serialize } from "@thi.ng/hiccup/serialize";
4
+ import { fit } from "@thi.ng/math/fit";
5
+ import { repeat } from "@thi.ng/strings/repeat";
6
+ import { barChartHLines } from "@thi.ng/text-canvas/bars";
7
+ import { varToHiccup } from "./var.js";
8
8
  /**
9
9
  * Higher order function. Takes an existing {@link @thi.ng/fuzzy#DefuzzStrategy}
10
10
  * and an instrumentation function. Returns new `DefuzzStrategy` which first
@@ -65,7 +65,12 @@ export const instrumentStrategy = (strategy, instrument) => {
65
65
  return impl;
66
66
  };
67
67
  export const fuzzySetToHiccup = (opts) => (fn, domain, res) => {
68
- const tree = varToHiccup(variable(domain, { main: fn }), Object.assign({ labels: false, stroke: () => "#333", fill: () => "#999" }, opts));
68
+ const tree = varToHiccup(variable(domain, { main: fn }), {
69
+ labels: false,
70
+ stroke: () => "#333",
71
+ fill: () => "#999",
72
+ ...opts,
73
+ });
69
74
  const { width, height } = tree[1];
70
75
  const x = fit(res, domain[0], domain[1], 0, width);
71
76
  tree.push([
@@ -83,7 +88,12 @@ export const fuzzySetToHiccup = (opts) => (fn, domain, res) => {
83
88
  };
84
89
  export const fuzzySetToSvg = (opts) => (fn, domain, res) => serialize(convertTree(fuzzySetToHiccup(opts)(fn, domain, res)));
85
90
  export const fuzzySetToAscii = (opts) => (fn, domain, res) => {
86
- const { width, height, empty } = Object.assign({ width: 100, height: 16, empty: "." }, opts);
91
+ const { width, height, empty } = {
92
+ width: 100,
93
+ height: 16,
94
+ empty: ".",
95
+ ...opts,
96
+ };
87
97
  const [min, max] = domain;
88
98
  const delta = (max - min) / width;
89
99
  const vals = [];
package/var.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { LVar } from "@thi.ng/fuzzy";
2
- import type { VizualizeVarOpts } from "./api";
2
+ import type { VizualizeVarOpts } from "./api.js";
3
3
  /**
4
4
  * Takes an {@link @thi.ng/fuzzy#LVar} and visualization options. Evaluates all
5
5
  * of the var's fuzzy sets in the var's value domain and visualizes them as
package/var.js CHANGED
@@ -1,6 +1,8 @@
1
- import { serialize } from "@thi.ng/hiccup";
2
- import { convertTree, svg } from "@thi.ng/hiccup-svg";
3
- import { fit, inRange } from "@thi.ng/math";
1
+ import { convertTree } from "@thi.ng/hiccup-svg/convert";
2
+ import { svg } from "@thi.ng/hiccup-svg/svg";
3
+ import { serialize } from "@thi.ng/hiccup/serialize";
4
+ import { fit } from "@thi.ng/math/fit";
5
+ import { inRange } from "@thi.ng/math/interval";
4
6
  /**
5
7
  * Takes an {@link @thi.ng/fuzzy#LVar} and visualization options. Evaluates all
6
8
  * of the var's fuzzy sets in the var's value domain and visualizes them as
@@ -11,7 +13,15 @@ import { fit, inRange } from "@thi.ng/math";
11
13
  * @param opts
12
14
  */
13
15
  export const varToHiccup = ({ domain: [min, max], terms }, opts = {}) => {
14
- const { samples, width, height, labels, stroke: strokeFn, fill: fillFn } = Object.assign({ samples: 200, width: 600, height: 100, labels: true, stroke: (x) => `hsl(${(x * 360) | 0},100%,40%)`, fill: (x) => `hsla(${(x * 360) | 0},100%,50%,20%)` }, opts);
16
+ const { samples, width, height, labels, stroke: strokeFn, fill: fillFn, } = {
17
+ samples: 200,
18
+ width: 600,
19
+ height: 100,
20
+ labels: true,
21
+ stroke: (x) => `hsl(${(x * 360) | 0},100%,40%)`,
22
+ fill: (x) => `hsla(${(x * 360) | 0},100%,50%,20%)`,
23
+ ...opts,
24
+ };
15
25
  const keys = Object.keys(terms);
16
26
  const dt = (max - min) / samples;
17
27
  const ds = width / samples;
package/lib/index.js DELETED
@@ -1,137 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var fuzzy = require('@thi.ng/fuzzy');
6
- var hiccup = require('@thi.ng/hiccup');
7
- var hiccupSvg = require('@thi.ng/hiccup-svg');
8
- var math = require('@thi.ng/math');
9
- var strings = require('@thi.ng/strings');
10
- var textCanvas = require('@thi.ng/text-canvas');
11
-
12
- const varToHiccup = ({ domain: [min, max], terms }, opts = {}) => {
13
- const { samples, width, height, labels, stroke: strokeFn, fill: fillFn } = Object.assign({ samples: 200, width: 600, height: 100, labels: true, stroke: (x) => `hsl(${(x * 360) | 0},100%,40%)`, fill: (x) => `hsla(${(x * 360) | 0},100%,50%,20%)` }, opts);
14
- const keys = Object.keys(terms);
15
- const dt = (max - min) / samples;
16
- const ds = width / samples;
17
- const dn = 1 / keys.length;
18
- const curves = [];
19
- const legend = [];
20
- for (let i = 0; i < keys.length; i++) {
21
- const id = keys[i];
22
- const f = terms[id];
23
- const y = (i + 1) * 12;
24
- const stroke = strokeFn(i * dn);
25
- const curr = [];
26
- for (let i = 0; i <= samples; i++) {
27
- curr.push([i * ds, (1 - f(min + i * dt)) * height]);
28
- }
29
- curr.push([width, height], [0, height]);
30
- curves.push([
31
- "polygon",
32
- {
33
- stroke,
34
- fill: fillFn(i * dn),
35
- },
36
- curr,
37
- ]);
38
- if (labels) {
39
- legend.push(["line", { stroke }, [0, y], [20, y]], [
40
- "text",
41
- {
42
- baseline: "middle",
43
- fill: "black",
44
- },
45
- [30, y],
46
- id,
47
- ]);
48
- }
49
- }
50
- const zero = math.fit(0, min, max, 0, width);
51
- return hiccupSvg.svg({
52
- width,
53
- height: height + 12,
54
- fill: "none",
55
- "font-family": "sans-serif",
56
- "font-size": 10,
57
- }, ...curves, ...legend, math.inRange(zero, width * 0.05, width * 0.95)
58
- ? [
59
- "g",
60
- {},
61
- [
62
- "line",
63
- {
64
- stroke: "black",
65
- dash: [1, 1],
66
- },
67
- [zero, 0],
68
- [zero, height],
69
- ],
70
- [
71
- "text",
72
- { align: "center", fill: "black" },
73
- [zero, height + 10],
74
- "0.00",
75
- ],
76
- ]
77
- : null, [
78
- "g",
79
- { fill: "black" },
80
- ["text", {}, [0, height + 10], min.toFixed(2)],
81
- ["text", { align: "end" }, [width, height + 10], max.toFixed(2)],
82
- ]);
83
- };
84
- const varToSvg = ($var, opts) => hiccup.serialize(hiccupSvg.convertTree(varToHiccup($var, opts)));
85
-
86
- const instrumentStrategy = (strategy, instrument) => {
87
- const acc = [];
88
- const impl = (fn, domain) => {
89
- const res = strategy(fn, domain);
90
- acc.push(instrument(fn, domain, res));
91
- return res;
92
- };
93
- impl.clear = () => (acc.length = 0);
94
- impl.deref = () => acc;
95
- return impl;
96
- };
97
- const fuzzySetToHiccup = (opts) => (fn, domain, res) => {
98
- const tree = varToHiccup(fuzzy.variable(domain, { main: fn }), Object.assign({ labels: false, stroke: () => "#333", fill: () => "#999" }, opts));
99
- const { width, height } = tree[1];
100
- const x = math.fit(res, domain[0], domain[1], 0, width);
101
- tree.push([
102
- "g",
103
- { translate: [x, 0] },
104
- ["line", { stroke: "red" }, [0, 0], [0, height - 12]],
105
- [
106
- "text",
107
- { align: "center", fill: "red" },
108
- [0, height - 2],
109
- res.toFixed(2),
110
- ],
111
- ]);
112
- return tree;
113
- };
114
- const fuzzySetToSvg = (opts) => (fn, domain, res) => hiccup.serialize(hiccupSvg.convertTree(fuzzySetToHiccup(opts)(fn, domain, res)));
115
- const fuzzySetToAscii = (opts) => (fn, domain, res) => {
116
- const { width, height, empty } = Object.assign({ width: 100, height: 16, empty: "." }, opts);
117
- const [min, max] = domain;
118
- const delta = (max - min) / width;
119
- const vals = [];
120
- for (let i = min; i <= max; i += delta) {
121
- vals.push(fn(i));
122
- }
123
- const index = Math.round(math.fit(res, min, max, 0, vals.length));
124
- let chart = textCanvas.barChartHLines(height, vals, 0, 1)
125
- .map((line) => line.substr(0, index) + "|" + line.substr(index + 1))
126
- .join("\n")
127
- .replace(/ /g, empty);
128
- const legend = strings.repeat(" ", index) + "^ " + res.toFixed(2);
129
- return chart + "\n" + legend;
130
- };
131
-
132
- exports.fuzzySetToAscii = fuzzySetToAscii;
133
- exports.fuzzySetToHiccup = fuzzySetToHiccup;
134
- exports.fuzzySetToSvg = fuzzySetToSvg;
135
- exports.instrumentStrategy = instrumentStrategy;
136
- exports.varToHiccup = varToHiccup;
137
- exports.varToSvg = varToSvg;
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../var.js","../strategy.js"],"sourcesContent":null,"names":["fit","svg","inRange","serialize","convertTree","variable","barChartHLines","repeat"],"mappings":"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"}
package/lib/index.umd.js DELETED
@@ -1 +0,0 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@thi.ng/fuzzy"),require("@thi.ng/hiccup"),require("@thi.ng/hiccup-svg"),require("@thi.ng/math"),require("@thi.ng/strings"),require("@thi.ng/text-canvas")):"function"==typeof define&&define.amd?define(["exports","@thi.ng/fuzzy","@thi.ng/hiccup","@thi.ng/hiccup-svg","@thi.ng/math","@thi.ng/strings","@thi.ng/text-canvas"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).thi=t.thi||{},t.thi.ng=t.thi.ng||{},t.thi.ng.fuzzyViz={}),t.thi.ng.fuzzy,t.thi.ng.hiccup,t.thi.ng.hiccupSvg,t.thi.ng.math,t.thi.ng.strings,t.thi.ng.textCanvas)}(this,(function(t,e,i,n,s,h,r){"use strict";const l=({domain:[t,e],terms:i},h={})=>{const{samples:r,width:l,height:g,labels:o,stroke:a,fill:c}=Object.assign({samples:200,width:600,height:100,labels:!0,stroke:t=>`hsl(${360*t|0},100%,40%)`,fill:t=>`hsla(${360*t|0},100%,50%,20%)`},h),u=Object.keys(i),f=(e-t)/r,p=l/r,d=1/u.length,b=[],y=[];for(let e=0;e<u.length;e++){const n=u[e],s=i[n],h=12*(e+1),z=a(e*d),m=[];for(let e=0;e<=r;e++)m.push([e*p,(1-s(t+e*f))*g]);m.push([l,g],[0,g]),b.push(["polygon",{stroke:z,fill:c(e*d)},m]),o&&y.push(["line",{stroke:z},[0,h],[20,h]],["text",{baseline:"middle",fill:"black"},[30,h],n])}const z=s.fit(0,t,e,0,l);return n.svg({width:l,height:g+12,fill:"none","font-family":"sans-serif","font-size":10},...b,...y,s.inRange(z,.05*l,.95*l)?["g",{},["line",{stroke:"black",dash:[1,1]},[z,0],[z,g]],["text",{align:"center",fill:"black"},[z,g+10],"0.00"]]:null,["g",{fill:"black"},["text",{},[0,g+10],t.toFixed(2)],["text",{align:"end"},[l,g+10],e.toFixed(2)]])},g=t=>(i,n,h)=>{const r=l(e.variable(n,{main:i}),Object.assign({labels:!1,stroke:()=>"#333",fill:()=>"#999"},t)),{width:g,height:o}=r[1],a=s.fit(h,n[0],n[1],0,g);return r.push(["g",{translate:[a,0]},["line",{stroke:"red"},[0,0],[0,o-12]],["text",{align:"center",fill:"red"},[0,o-2],h.toFixed(2)]]),r};t.fuzzySetToAscii=t=>(e,i,n)=>{const{width:l,height:g,empty:o}=Object.assign({width:100,height:16,empty:"."},t),[a,c]=i,u=(c-a)/l,f=[];for(let t=a;t<=c;t+=u)f.push(e(t));const p=Math.round(s.fit(n,a,c,0,f.length));return r.barChartHLines(g,f,0,1).map((t=>t.substr(0,p)+"|"+t.substr(p+1))).join("\n").replace(/ /g,o)+"\n"+(h.repeat(" ",p)+"^ "+n.toFixed(2))},t.fuzzySetToHiccup=g,t.fuzzySetToSvg=t=>(e,s,h)=>i.serialize(n.convertTree(g(t)(e,s,h))),t.instrumentStrategy=(t,e)=>{const i=[],n=(n,s)=>{const h=t(n,s);return i.push(e(n,s,h)),h};return n.clear=()=>i.length=0,n.deref=()=>i,n},t.varToHiccup=l,t.varToSvg=(t,e)=>i.serialize(n.convertTree(l(t,e))),Object.defineProperty(t,"__esModule",{value:!0})}));
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.umd.js","sources":["../var.js","../strategy.js"],"sourcesContent":null,"names":["fit","svg","inRange","serialize","convertTree","variable","barChartHLines","repeat"],"mappings":"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"}