@emuanalytics/flow-rdf-ui 0.0.18 → 0.0.19

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.
@@ -1847,12 +1847,12 @@
1847
1847
  },
1848
1848
  {
1849
1849
  "kind": "javascript-module",
1850
- "path": "components/breadcrumb/breadcrumb.js",
1850
+ "path": "components/badge/badge.js",
1851
1851
  "declarations": [
1852
1852
  {
1853
1853
  "kind": "class",
1854
1854
  "description": "",
1855
- "name": "FlowBreadcrumb",
1855
+ "name": "FlowBadge",
1856
1856
  "cssParts": [
1857
1857
  {
1858
1858
  "description": "The component's base wrapper.",
@@ -1861,85 +1861,83 @@
1861
1861
  ],
1862
1862
  "slots": [
1863
1863
  {
1864
- "description": "One or more breadcrumb items to display.",
1864
+ "description": "The badge's content.",
1865
1865
  "name": ""
1866
- },
1867
- {
1868
- "description": "The separator to use between breadcrumb items. Works best with `<flow-ui-icon>`.",
1869
- "name": "separator"
1870
1866
  }
1871
1867
  ],
1872
1868
  "members": [
1873
1869
  {
1874
1870
  "kind": "field",
1875
- "name": "localize",
1876
- "privacy": "private",
1877
- "readonly": true,
1878
- "default": "new LocalizeController(this)"
1879
- },
1880
- {
1881
- "kind": "field",
1882
- "name": "separatorDir",
1883
- "privacy": "private"
1871
+ "name": "variant",
1872
+ "type": {
1873
+ "text": "'primary' | 'success' | 'neutral' | 'warning' | 'danger'"
1874
+ },
1875
+ "default": "'primary'",
1876
+ "description": "The badge's theme variant.",
1877
+ "attribute": "variant",
1878
+ "reflects": true
1884
1879
  },
1885
1880
  {
1886
1881
  "kind": "field",
1887
- "name": "defaultSlot",
1882
+ "name": "pill",
1888
1883
  "type": {
1889
- "text": "HTMLSlotElement"
1890
- }
1884
+ "text": "boolean"
1885
+ },
1886
+ "default": "false",
1887
+ "description": "Draws a pill-style badge with rounded edges.",
1888
+ "attribute": "pill",
1889
+ "reflects": true
1891
1890
  },
1892
1891
  {
1893
1892
  "kind": "field",
1894
- "name": "separatorSlot",
1893
+ "name": "pulse",
1895
1894
  "type": {
1896
- "text": "HTMLSlotElement"
1897
- }
1898
- },
1895
+ "text": "boolean"
1896
+ },
1897
+ "default": "false",
1898
+ "description": "Makes the badge pulsate to draw attention.",
1899
+ "attribute": "pulse",
1900
+ "reflects": true
1901
+ }
1902
+ ],
1903
+ "attributes": [
1899
1904
  {
1900
- "kind": "field",
1901
- "name": "label",
1905
+ "name": "variant",
1902
1906
  "type": {
1903
- "text": "string"
1907
+ "text": "'primary' | 'success' | 'neutral' | 'warning' | 'danger'"
1904
1908
  },
1905
- "default": "''",
1906
- "description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
1907
- "attribute": "label"
1909
+ "default": "'primary'",
1910
+ "description": "The badge's theme variant.",
1911
+ "fieldName": "variant"
1908
1912
  },
1909
1913
  {
1910
- "kind": "method",
1911
- "name": "getSeparator",
1912
- "privacy": "private"
1914
+ "name": "pill",
1915
+ "type": {
1916
+ "text": "boolean"
1917
+ },
1918
+ "default": "false",
1919
+ "description": "Draws a pill-style badge with rounded edges.",
1920
+ "fieldName": "pill"
1913
1921
  },
1914
1922
  {
1915
- "kind": "method",
1916
- "name": "handleSlotChange",
1917
- "privacy": "private"
1918
- }
1919
- ],
1920
- "attributes": [
1921
- {
1922
- "name": "label",
1923
+ "name": "pulse",
1923
1924
  "type": {
1924
- "text": "string"
1925
+ "text": "boolean"
1925
1926
  },
1926
- "default": "''",
1927
- "description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
1928
- "fieldName": "label"
1927
+ "default": "false",
1928
+ "description": "Makes the badge pulsate to draw attention.",
1929
+ "fieldName": "pulse"
1929
1930
  }
1930
1931
  ],
1931
1932
  "superclass": {
1932
1933
  "name": "FlowRdfElement",
1933
1934
  "module": "/src/internal/flow-ui-rdf-element"
1934
1935
  },
1935
- "summary": "Breadcrumbs provide a group of links so users can easily navigate a website's hierarchy.",
1936
- "documentation": "https://developer.emu-analytics.net/docs/flow-ui-rdf/components/breadcrumb",
1936
+ "summary": "Badges are used to draw attention and display statuses or counts.",
1937
+ "documentation": "https://developer.emu-analytics.net/docs/flow-ui-rdf/components/badge",
1937
1938
  "status": "stable",
1938
1939
  "since": "2.0",
1939
- "dependencies": [
1940
- "flow-ui-icon"
1941
- ],
1942
- "tagName": "flow-ui-breadcrumb",
1940
+ "tagName": "flow-ui-badge",
1943
1941
  "customElement": true
1944
1942
  }
1945
1943
  ],
@@ -1948,28 +1946,28 @@
1948
1946
  "kind": "js",
1949
1947
  "name": "default",
1950
1948
  "declaration": {
1951
- "name": "FlowBreadcrumb",
1952
- "module": "components/breadcrumb/breadcrumb.js"
1949
+ "name": "FlowBadge",
1950
+ "module": "components/badge/badge.js"
1953
1951
  }
1954
1952
  },
1955
1953
  {
1956
1954
  "kind": "custom-element-definition",
1957
- "name": "flow-ui-breadcrumb",
1955
+ "name": "flow-ui-badge",
1958
1956
  "declaration": {
1959
- "name": "FlowBreadcrumb",
1960
- "module": "components/breadcrumb/breadcrumb.js"
1957
+ "name": "FlowBadge",
1958
+ "module": "components/badge/badge.js"
1961
1959
  }
1962
1960
  }
1963
1961
  ]
1964
1962
  },
1965
1963
  {
1966
1964
  "kind": "javascript-module",
1967
- "path": "components/badge/badge.js",
1965
+ "path": "components/breadcrumb/breadcrumb.js",
1968
1966
  "declarations": [
1969
1967
  {
1970
1968
  "kind": "class",
1971
1969
  "description": "",
1972
- "name": "FlowBadge",
1970
+ "name": "FlowBreadcrumb",
1973
1971
  "cssParts": [
1974
1972
  {
1975
1973
  "description": "The component's base wrapper.",
@@ -1978,83 +1976,85 @@
1978
1976
  ],
1979
1977
  "slots": [
1980
1978
  {
1981
- "description": "The badge's content.",
1979
+ "description": "One or more breadcrumb items to display.",
1982
1980
  "name": ""
1981
+ },
1982
+ {
1983
+ "description": "The separator to use between breadcrumb items. Works best with `<flow-ui-icon>`.",
1984
+ "name": "separator"
1983
1985
  }
1984
1986
  ],
1985
1987
  "members": [
1986
1988
  {
1987
1989
  "kind": "field",
1988
- "name": "variant",
1989
- "type": {
1990
- "text": "'primary' | 'success' | 'neutral' | 'warning' | 'danger'"
1991
- },
1992
- "default": "'primary'",
1993
- "description": "The badge's theme variant.",
1994
- "attribute": "variant",
1995
- "reflects": true
1990
+ "name": "localize",
1991
+ "privacy": "private",
1992
+ "readonly": true,
1993
+ "default": "new LocalizeController(this)"
1996
1994
  },
1997
1995
  {
1998
1996
  "kind": "field",
1999
- "name": "pill",
2000
- "type": {
2001
- "text": "boolean"
2002
- },
2003
- "default": "false",
2004
- "description": "Draws a pill-style badge with rounded edges.",
2005
- "attribute": "pill",
2006
- "reflects": true
1997
+ "name": "separatorDir",
1998
+ "privacy": "private"
2007
1999
  },
2008
2000
  {
2009
2001
  "kind": "field",
2010
- "name": "pulse",
2002
+ "name": "defaultSlot",
2011
2003
  "type": {
2012
- "text": "boolean"
2013
- },
2014
- "default": "false",
2015
- "description": "Makes the badge pulsate to draw attention.",
2016
- "attribute": "pulse",
2017
- "reflects": true
2018
- }
2019
- ],
2020
- "attributes": [
2004
+ "text": "HTMLSlotElement"
2005
+ }
2006
+ },
2021
2007
  {
2022
- "name": "variant",
2008
+ "kind": "field",
2009
+ "name": "separatorSlot",
2023
2010
  "type": {
2024
- "text": "'primary' | 'success' | 'neutral' | 'warning' | 'danger'"
2025
- },
2026
- "default": "'primary'",
2027
- "description": "The badge's theme variant.",
2028
- "fieldName": "variant"
2011
+ "text": "HTMLSlotElement"
2012
+ }
2029
2013
  },
2030
2014
  {
2031
- "name": "pill",
2015
+ "kind": "field",
2016
+ "name": "label",
2032
2017
  "type": {
2033
- "text": "boolean"
2018
+ "text": "string"
2034
2019
  },
2035
- "default": "false",
2036
- "description": "Draws a pill-style badge with rounded edges.",
2037
- "fieldName": "pill"
2020
+ "default": "''",
2021
+ "description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
2022
+ "attribute": "label"
2038
2023
  },
2039
2024
  {
2040
- "name": "pulse",
2025
+ "kind": "method",
2026
+ "name": "getSeparator",
2027
+ "privacy": "private"
2028
+ },
2029
+ {
2030
+ "kind": "method",
2031
+ "name": "handleSlotChange",
2032
+ "privacy": "private"
2033
+ }
2034
+ ],
2035
+ "attributes": [
2036
+ {
2037
+ "name": "label",
2041
2038
  "type": {
2042
- "text": "boolean"
2039
+ "text": "string"
2043
2040
  },
2044
- "default": "false",
2045
- "description": "Makes the badge pulsate to draw attention.",
2046
- "fieldName": "pulse"
2041
+ "default": "''",
2042
+ "description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
2043
+ "fieldName": "label"
2047
2044
  }
2048
2045
  ],
2049
2046
  "superclass": {
2050
2047
  "name": "FlowRdfElement",
2051
2048
  "module": "/src/internal/flow-ui-rdf-element"
2052
2049
  },
2053
- "summary": "Badges are used to draw attention and display statuses or counts.",
2054
- "documentation": "https://developer.emu-analytics.net/docs/flow-ui-rdf/components/badge",
2050
+ "summary": "Breadcrumbs provide a group of links so users can easily navigate a website's hierarchy.",
2051
+ "documentation": "https://developer.emu-analytics.net/docs/flow-ui-rdf/components/breadcrumb",
2055
2052
  "status": "stable",
2056
2053
  "since": "2.0",
2057
- "tagName": "flow-ui-badge",
2054
+ "dependencies": [
2055
+ "flow-ui-icon"
2056
+ ],
2057
+ "tagName": "flow-ui-breadcrumb",
2058
2058
  "customElement": true
2059
2059
  }
2060
2060
  ],
@@ -2063,16 +2063,16 @@
2063
2063
  "kind": "js",
2064
2064
  "name": "default",
2065
2065
  "declaration": {
2066
- "name": "FlowBadge",
2067
- "module": "components/badge/badge.js"
2066
+ "name": "FlowBreadcrumb",
2067
+ "module": "components/breadcrumb/breadcrumb.js"
2068
2068
  }
2069
2069
  },
2070
2070
  {
2071
2071
  "kind": "custom-element-definition",
2072
- "name": "flow-ui-badge",
2072
+ "name": "flow-ui-breadcrumb",
2073
2073
  "declaration": {
2074
- "name": "FlowBadge",
2075
- "module": "components/badge/badge.js"
2074
+ "name": "FlowBreadcrumb",
2075
+ "module": "components/breadcrumb/breadcrumb.js"
2076
2076
  }
2077
2077
  }
2078
2078
  ]
@@ -19589,6 +19589,52 @@
19589
19589
  }
19590
19590
  ]
19591
19591
  },
19592
+ {
19593
+ "kind": "javascript-module",
19594
+ "path": "components/visually-hidden/visually-hidden.js",
19595
+ "declarations": [
19596
+ {
19597
+ "kind": "class",
19598
+ "description": "",
19599
+ "name": "FlowVisuallyHidden",
19600
+ "slots": [
19601
+ {
19602
+ "description": "The content to be visually hidden.",
19603
+ "name": ""
19604
+ }
19605
+ ],
19606
+ "members": [],
19607
+ "superclass": {
19608
+ "name": "FlowRdfElement",
19609
+ "module": "/src/internal/flow-ui-rdf-element"
19610
+ },
19611
+ "summary": "The visually hidden utility makes content accessible to assistive devices without displaying it on the screen.",
19612
+ "documentation": "https://developer.emu-analytics.net/docs/flow-ui-rdf/components/visually-hidden",
19613
+ "status": "stable",
19614
+ "since": "2.0",
19615
+ "tagName": "flow-ui-visually-hidden",
19616
+ "customElement": true
19617
+ }
19618
+ ],
19619
+ "exports": [
19620
+ {
19621
+ "kind": "js",
19622
+ "name": "default",
19623
+ "declaration": {
19624
+ "name": "FlowVisuallyHidden",
19625
+ "module": "components/visually-hidden/visually-hidden.js"
19626
+ }
19627
+ },
19628
+ {
19629
+ "kind": "custom-element-definition",
19630
+ "name": "flow-ui-visually-hidden",
19631
+ "declaration": {
19632
+ "name": "FlowVisuallyHidden",
19633
+ "module": "components/visually-hidden/visually-hidden.js"
19634
+ }
19635
+ }
19636
+ ]
19637
+ },
19592
19638
  {
19593
19639
  "kind": "javascript-module",
19594
19640
  "path": "components/tree-item/tree-item.js",
@@ -19992,52 +20038,6 @@
19992
20038
  }
19993
20039
  ]
19994
20040
  },
19995
- {
19996
- "kind": "javascript-module",
19997
- "path": "components/visually-hidden/visually-hidden.js",
19998
- "declarations": [
19999
- {
20000
- "kind": "class",
20001
- "description": "",
20002
- "name": "FlowVisuallyHidden",
20003
- "slots": [
20004
- {
20005
- "description": "The content to be visually hidden.",
20006
- "name": ""
20007
- }
20008
- ],
20009
- "members": [],
20010
- "superclass": {
20011
- "name": "FlowRdfElement",
20012
- "module": "/src/internal/flow-ui-rdf-element"
20013
- },
20014
- "summary": "The visually hidden utility makes content accessible to assistive devices without displaying it on the screen.",
20015
- "documentation": "https://developer.emu-analytics.net/docs/flow-ui-rdf/components/visually-hidden",
20016
- "status": "stable",
20017
- "since": "2.0",
20018
- "tagName": "flow-ui-visually-hidden",
20019
- "customElement": true
20020
- }
20021
- ],
20022
- "exports": [
20023
- {
20024
- "kind": "js",
20025
- "name": "default",
20026
- "declaration": {
20027
- "name": "FlowVisuallyHidden",
20028
- "module": "components/visually-hidden/visually-hidden.js"
20029
- }
20030
- },
20031
- {
20032
- "kind": "custom-element-definition",
20033
- "name": "flow-ui-visually-hidden",
20034
- "declaration": {
20035
- "name": "FlowVisuallyHidden",
20036
- "module": "components/visually-hidden/visually-hidden.js"
20037
- }
20038
- }
20039
- ]
20040
- },
20041
20041
  {
20042
20042
  "kind": "javascript-module",
20043
20043
  "path": "components/chart/chartjs-plugins/dayjs.adapter.js",
@@ -20267,6 +20267,6 @@
20267
20267
  ],
20268
20268
  "package": {
20269
20269
  "name": "@emuanalytics/flow-rdf-ui",
20270
- "version": "0.0.18"
20270
+ "version": "0.0.19"
20271
20271
  }
20272
20272
  }
@@ -6,6 +6,7 @@ import { ChartOptions } from 'chart.js';
6
6
  import { ChartTypeRegistry } from 'chart.js';
7
7
  import { CSSResultGroup } from 'lit';
8
8
  import { LitElement } from 'lit';
9
+ import { MatrixDataPoint } from 'chartjs-chart-matrix';
9
10
  import { Plugin as Plugin_2 } from 'chart.js';
10
11
  import { Point } from 'chart.js';
11
12
  import { PropertyValueMap } from 'lit';
@@ -691,7 +692,7 @@ export declare class FlowChart extends FlowRdfElement {
691
692
  private _chartRef;
692
693
  private _chart;
693
694
  /** The Chart.js chart instance. */
694
- get chart(): ChartJs<keyof ChartTypeRegistry, (number | [number, number] | Point | BubbleDataPoint | null)[], unknown>;
695
+ get chart(): ChartJs<keyof ChartTypeRegistry, (number | [number, number] | Point | BubbleDataPoint | MatrixDataPoint | null)[], unknown>;
695
696
  /** The Chart.js chart type (e.g `line`, `bar` or a custom type). */
696
697
  type: string;
697
698
  /** The Chart.js `options` object. */
@@ -1,4 +1,10 @@
1
- import { defaults as defaults$1, Chart, Element as Element$1, Animations, _adapters, DoughnutController, PolarAreaController, Scale, LinearScale, BarController, LineController, ScatterController, LineElement, PointElement, BarElement, CategoryScale, LogarithmicScale, TimeScale, TimeSeriesScale, Legend, Tooltip, Title, Interaction } from "chart.js";
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import { DatasetController, Element as Element$1, defaults as defaults$1, Chart, Animations, _adapters, DoughnutController, PolarAreaController, Scale, LinearScale, BarController, LineController, ScatterController, LineElement, PointElement, BarElement, CategoryScale, LogarithmicScale, TimeScale, TimeSeriesScale, Legend, Tooltip, Title, Interaction } from "chart.js";
2
8
  import { Chart as Chart2 } from "chart.js";
3
9
  /**
4
10
  * @license
@@ -8081,7 +8087,7 @@ const styles$I = i$8`
8081
8087
  position: relative;
8082
8088
  width: 100%;
8083
8089
  height: 100%;
8084
- padding: var(--flow-ui-spacing-x-small);
8090
+ /* padding: var(--flow-ui-spacing-x-small); */
8085
8091
  }
8086
8092
  `;
8087
8093
  /*!
@@ -9236,6 +9242,216 @@ function _isDomSupported() {
9236
9242
  }
9237
9243
  return passiveSupported;
9238
9244
  })();
9245
+ /*!
9246
+ * chartjs-chart-matrix v2.0.1
9247
+ * https://chartjs-chart-matrix.pages.dev/
9248
+ * (c) 2023 Jukka Kurkela
9249
+ * Released under the MIT license
9250
+ */
9251
+ var version$2 = "2.0.1";
9252
+ class MatrixController extends DatasetController {
9253
+ initialize() {
9254
+ this.enableOptionSharing = true;
9255
+ super.initialize();
9256
+ }
9257
+ update(mode) {
9258
+ const me = this;
9259
+ const meta = me._cachedMeta;
9260
+ me.updateElements(meta.data, 0, meta.data.length, mode);
9261
+ }
9262
+ updateElements(rects, start, count, mode) {
9263
+ const me = this;
9264
+ const reset = mode === "reset";
9265
+ const { xScale, yScale } = me._cachedMeta;
9266
+ const firstOpts = me.resolveDataElementOptions(start, mode);
9267
+ const sharedOptions = me.getSharedOptions(mode, rects[start], firstOpts);
9268
+ for (let i3 = start; i3 < start + count; i3++) {
9269
+ const parsed = !reset && me.getParsed(i3);
9270
+ const x2 = reset ? xScale.getBasePixel() : xScale.getPixelForValue(parsed.x);
9271
+ const y2 = reset ? yScale.getBasePixel() : yScale.getPixelForValue(parsed.y);
9272
+ const options = me.resolveDataElementOptions(i3, mode);
9273
+ const { width, height, anchorX, anchorY } = options;
9274
+ const properties = {
9275
+ x: resolveX(anchorX, x2, width),
9276
+ y: resolveY(anchorY, y2, height),
9277
+ width,
9278
+ height,
9279
+ options
9280
+ };
9281
+ me.updateElement(rects[i3], i3, properties, mode);
9282
+ }
9283
+ me.updateSharedOptions(sharedOptions, mode);
9284
+ }
9285
+ draw() {
9286
+ const me = this;
9287
+ const data = me.getMeta().data || [];
9288
+ let i3, ilen;
9289
+ for (i3 = 0, ilen = data.length; i3 < ilen; ++i3) {
9290
+ data[i3].draw(me._ctx);
9291
+ }
9292
+ }
9293
+ }
9294
+ __publicField(MatrixController, "id", "matrix");
9295
+ __publicField(MatrixController, "version", version$2);
9296
+ __publicField(MatrixController, "defaults", {
9297
+ dataElementType: "matrix",
9298
+ animations: {
9299
+ numbers: {
9300
+ type: "number",
9301
+ properties: ["x", "y", "width", "height"]
9302
+ }
9303
+ }
9304
+ });
9305
+ __publicField(MatrixController, "overrides", {
9306
+ interaction: {
9307
+ mode: "nearest",
9308
+ intersect: true
9309
+ },
9310
+ scales: {
9311
+ x: {
9312
+ type: "linear",
9313
+ offset: true
9314
+ },
9315
+ y: {
9316
+ type: "linear",
9317
+ reverse: true
9318
+ }
9319
+ }
9320
+ });
9321
+ function resolveX(anchorX, x2, width) {
9322
+ if (anchorX === "left" || anchorX === "start") {
9323
+ return x2;
9324
+ }
9325
+ if (anchorX === "right" || anchorX === "end") {
9326
+ return x2 - width;
9327
+ }
9328
+ return x2 - width / 2;
9329
+ }
9330
+ function resolveY(anchorY, y2, height) {
9331
+ if (anchorY === "top" || anchorY === "start") {
9332
+ return y2;
9333
+ }
9334
+ if (anchorY === "bottom" || anchorY === "end") {
9335
+ return y2 - height;
9336
+ }
9337
+ return y2 - height / 2;
9338
+ }
9339
+ function getBounds(rect, useFinalPosition) {
9340
+ const { x: x2, y: y2, width, height } = rect.getProps(["x", "y", "width", "height"], useFinalPosition);
9341
+ return { left: x2, top: y2, right: x2 + width, bottom: y2 + height };
9342
+ }
9343
+ function limit(value, min2, max2) {
9344
+ return Math.max(Math.min(value, max2), min2);
9345
+ }
9346
+ function parseBorderWidth(rect, maxW, maxH) {
9347
+ const value = rect.options.borderWidth;
9348
+ let t2, r2, b2, l2;
9349
+ if (isObject$1(value)) {
9350
+ t2 = +value.top || 0;
9351
+ r2 = +value.right || 0;
9352
+ b2 = +value.bottom || 0;
9353
+ l2 = +value.left || 0;
9354
+ } else {
9355
+ t2 = r2 = b2 = l2 = +value || 0;
9356
+ }
9357
+ return {
9358
+ t: limit(t2, 0, maxH),
9359
+ r: limit(r2, 0, maxW),
9360
+ b: limit(b2, 0, maxH),
9361
+ l: limit(l2, 0, maxW)
9362
+ };
9363
+ }
9364
+ function boundingRects(rect) {
9365
+ const bounds = getBounds(rect);
9366
+ const width = bounds.right - bounds.left;
9367
+ const height = bounds.bottom - bounds.top;
9368
+ const border = parseBorderWidth(rect, width / 2, height / 2);
9369
+ return {
9370
+ outer: {
9371
+ x: bounds.left,
9372
+ y: bounds.top,
9373
+ w: width,
9374
+ h: height
9375
+ },
9376
+ inner: {
9377
+ x: bounds.left + border.l,
9378
+ y: bounds.top + border.t,
9379
+ w: width - border.l - border.r,
9380
+ h: height - border.t - border.b
9381
+ }
9382
+ };
9383
+ }
9384
+ function inRange(rect, x2, y2, useFinalPosition) {
9385
+ const skipX = x2 === null;
9386
+ const skipY = y2 === null;
9387
+ const bounds = !rect || skipX && skipY ? false : getBounds(rect, useFinalPosition);
9388
+ return bounds && (skipX || x2 >= bounds.left && x2 <= bounds.right) && (skipY || y2 >= bounds.top && y2 <= bounds.bottom);
9389
+ }
9390
+ class MatrixElement extends Element$1 {
9391
+ constructor(cfg) {
9392
+ super();
9393
+ this.options = void 0;
9394
+ this.width = void 0;
9395
+ this.height = void 0;
9396
+ if (cfg) {
9397
+ Object.assign(this, cfg);
9398
+ }
9399
+ }
9400
+ draw(ctx) {
9401
+ const options = this.options;
9402
+ const { inner, outer } = boundingRects(this);
9403
+ const radius = toTRBLCorners(options.borderRadius);
9404
+ ctx.save();
9405
+ if (outer.w !== inner.w || outer.h !== inner.h) {
9406
+ ctx.beginPath();
9407
+ addRoundedRectPath(ctx, { x: outer.x, y: outer.y, w: outer.w, h: outer.h, radius });
9408
+ addRoundedRectPath(ctx, { x: inner.x, y: inner.y, w: inner.w, h: inner.h, radius });
9409
+ ctx.fillStyle = options.backgroundColor;
9410
+ ctx.fill();
9411
+ ctx.fillStyle = options.borderColor;
9412
+ ctx.fill("evenodd");
9413
+ } else {
9414
+ ctx.beginPath();
9415
+ addRoundedRectPath(ctx, { x: inner.x, y: inner.y, w: inner.w, h: inner.h, radius });
9416
+ ctx.fillStyle = options.backgroundColor;
9417
+ ctx.fill();
9418
+ }
9419
+ ctx.restore();
9420
+ }
9421
+ inRange(mouseX, mouseY, useFinalPosition) {
9422
+ return inRange(this, mouseX, mouseY, useFinalPosition);
9423
+ }
9424
+ inXRange(mouseX, useFinalPosition) {
9425
+ return inRange(this, mouseX, null, useFinalPosition);
9426
+ }
9427
+ inYRange(mouseY, useFinalPosition) {
9428
+ return inRange(this, null, mouseY, useFinalPosition);
9429
+ }
9430
+ getCenterPoint(useFinalPosition) {
9431
+ const { x: x2, y: y2, width, height } = this.getProps(["x", "y", "width", "height"], useFinalPosition);
9432
+ return {
9433
+ x: x2 + width / 2,
9434
+ y: y2 + height / 2
9435
+ };
9436
+ }
9437
+ tooltipPosition() {
9438
+ return this.getCenterPoint();
9439
+ }
9440
+ getRange(axis) {
9441
+ return axis === "x" ? this.width / 2 : this.height / 2;
9442
+ }
9443
+ }
9444
+ __publicField(MatrixElement, "id", "matrix");
9445
+ __publicField(MatrixElement, "defaults", {
9446
+ backgroundColor: void 0,
9447
+ borderColor: void 0,
9448
+ borderWidth: void 0,
9449
+ borderRadius: 0,
9450
+ anchorX: "center",
9451
+ anchorY: "center",
9452
+ width: 20,
9453
+ height: 20
9454
+ });
9239
9455
  /*!
9240
9456
  * chartjs-plugin-annotation v3.0.1
9241
9457
  * https://www.chartjs.org/chartjs-plugin-annotation/index
@@ -10044,15 +10260,15 @@ function verifyScaleOptions(annotations, scales) {
10044
10260
  verifyScaleIDs(annotation2, scales);
10045
10261
  }
10046
10262
  }
10047
- function changeScaleLimit(scale, range, limit, suggestedLimit) {
10048
- if (isNumberFinite(range[limit]) && !scaleLimitDefined(scale.options, limit, suggestedLimit)) {
10049
- const changed = scale[limit] !== range[limit];
10050
- scale[limit] = range[limit];
10263
+ function changeScaleLimit(scale, range, limit2, suggestedLimit) {
10264
+ if (isNumberFinite(range[limit2]) && !scaleLimitDefined(scale.options, limit2, suggestedLimit)) {
10265
+ const changed = scale[limit2] !== range[limit2];
10266
+ scale[limit2] = range[limit2];
10051
10267
  return changed;
10052
10268
  }
10053
10269
  }
10054
- function scaleLimitDefined(scaleOptions, limit, suggestedLimit) {
10055
- return defined(scaleOptions[limit]) || defined(scaleOptions[suggestedLimit]);
10270
+ function scaleLimitDefined(scaleOptions, limit2, suggestedLimit) {
10271
+ return defined(scaleOptions[limit2]) || defined(scaleOptions[suggestedLimit]);
10056
10272
  }
10057
10273
  function verifyScaleIDs(annotation2, scales) {
10058
10274
  for (const key of ["scaleID", "xScaleID", "yScaleID"]) {
@@ -10621,8 +10837,8 @@ LineAnnotation.defaultRoutes = {
10621
10837
  borderColor: "color"
10622
10838
  };
10623
10839
  function inAxisRange(element, { mouseX, mouseY }, axis, { hBorderWidth, useFinalPosition }) {
10624
- const limit = rangeLimit(mouseX, mouseY, element.getProps(["x", "y", "x2", "y2"], useFinalPosition), axis);
10625
- return limit.value >= limit.start - hBorderWidth && limit.value <= limit.end + hBorderWidth || isOnLabel(element, { mouseX, mouseY }, useFinalPosition, axis);
10840
+ const limit2 = rangeLimit(mouseX, mouseY, element.getProps(["x", "y", "x2", "y2"], useFinalPosition), axis);
10841
+ return limit2.value >= limit2.start - hBorderWidth && limit2.value <= limit2.end + hBorderWidth || isOnLabel(element, { mouseX, mouseY }, useFinalPosition, axis);
10626
10842
  }
10627
10843
  function isLineInArea({ x: x2, y: y2, x2: x22, y2: y22 }, { top, right, bottom, left }) {
10628
10844
  return !(x2 < left && x22 < left || x2 > right && x22 > right || y2 < top && y22 < top || y2 > bottom && y22 > bottom);
@@ -10861,9 +11077,9 @@ class EllipseAnnotation extends Element$1 {
10861
11077
  }
10862
11078
  const { x: x2, y: y2, x2: x22, y2: y22 } = this.getProps(["x", "y", "x2", "y2"], useFinalPosition);
10863
11079
  const hBorderWidth = borderWidth / 2;
10864
- const limit = axis === "y" ? { start: y2, end: y22 } : { start: x2, end: x22 };
11080
+ const limit2 = axis === "y" ? { start: y2, end: y22 } : { start: x2, end: x22 };
10865
11081
  const rotatedPoint = rotated({ x: mouseX, y: mouseY }, this.getCenterPoint(useFinalPosition), toRadians(-rotation));
10866
- return rotatedPoint[axis] >= limit.start - hBorderWidth - EPSILON && rotatedPoint[axis] <= limit.end + hBorderWidth + EPSILON;
11082
+ return rotatedPoint[axis] >= limit2.start - hBorderWidth - EPSILON && rotatedPoint[axis] <= limit2.end + hBorderWidth + EPSILON;
10867
11083
  }
10868
11084
  getCenterPoint(useFinalPosition) {
10869
11085
  return getElementCenterPoint(this, useFinalPosition);
@@ -10946,8 +11162,8 @@ class PointAnnotation extends Element$1 {
10946
11162
  return inPointRange({ x: mouseX, y: mouseY }, this.getCenterPoint(useFinalPosition), width / 2, borderWidth);
10947
11163
  }
10948
11164
  const hBorderWidth = borderWidth / 2;
10949
- const limit = axis === "y" ? { start: y2, end: y22, value: mouseY } : { start: x2, end: x22, value: mouseX };
10950
- return limit.value >= limit.start - hBorderWidth && limit.value <= limit.end + hBorderWidth;
11165
+ const limit2 = axis === "y" ? { start: y2, end: y22, value: mouseY } : { start: x2, end: x22, value: mouseX };
11166
+ return limit2.value >= limit2.start - hBorderWidth && limit2.value <= limit2.end + hBorderWidth;
10951
11167
  }
10952
11168
  getCenterPoint(useFinalPosition) {
10953
11169
  return getElementCenterPoint(this, useFinalPosition);
@@ -13166,16 +13382,27 @@ function initializeChartJs() {
13166
13382
  Legend,
13167
13383
  Tooltip,
13168
13384
  Title,
13169
- annotation
13385
+ annotation,
13386
+ MatrixController,
13387
+ MatrixElement
13170
13388
  );
13171
13389
  Tooltip.positioners.cursor = CursorPositioner;
13172
13390
  Interaction.modes.interpolate = Interpolate;
13173
13391
  Chart.defaults.animation = false;
13174
13392
  Chart.defaults.responsive = true;
13175
13393
  Chart.defaults.maintainAspectRatio = false;
13394
+ Chart.defaults.layout.padding = {
13395
+ top: 5,
13396
+ right: 10,
13397
+ bottom: 5,
13398
+ left: 5
13399
+ };
13176
13400
  Chart.defaults.plugins.legend.position = "bottom";
13177
13401
  Chart.defaults.plugins.legend.align = "start";
13178
13402
  Chart.defaults.plugins.tooltip.position = "cursor";
13403
+ Chart.defaults.plugins.title.font = { size: 12 };
13404
+ Chart.defaults.plugins.title.align = "start";
13405
+ Chart.defaults.plugins.title.padding = { top: 0, bottom: 10 };
13179
13406
  }
13180
13407
  function registerChartComponent(...components) {
13181
13408
  Chart.register(...components);
@@ -31526,7 +31753,7 @@ const styles = i$8`
31526
31753
  }
31527
31754
 
31528
31755
  `;
31529
- var __defProp = Object.defineProperty;
31756
+ var __defProp2 = Object.defineProperty;
31530
31757
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
31531
31758
  var __decorateClass = (decorators, target, key, kind) => {
31532
31759
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
@@ -31534,7 +31761,7 @@ var __decorateClass = (decorators, target, key, kind) => {
31534
31761
  if (decorator = decorators[i3])
31535
31762
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
31536
31763
  if (kind && result)
31537
- __defProp(target, key, result);
31764
+ __defProp2(target, key, result);
31538
31765
  return result;
31539
31766
  };
31540
31767
  class FlowToolButton extends FlowRdfElement {
@@ -31743,7 +31970,7 @@ const translation = {
31743
31970
  toggleColorFormat: "Toggle color format"
31744
31971
  };
31745
31972
  registerTranslation(translation);
31746
- const version = "0.0.18";
31973
+ const version = "0.0.19";
31747
31974
  const CONSOLE_HIGHLIGHT_STYLE = `
31748
31975
  padding: 2px 4px;
31749
31976
  border-radius: 2px;
@@ -1,7 +1,13 @@
1
1
  (function(global2, factory) {
2
2
  typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("chart.js")) : typeof define === "function" && define.amd ? define(["exports", "chart.js"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.FlowRDFUI = {}, global2.ChartJS));
3
3
  })(this, function(exports2, chart_js) {
4
- "use strict";
4
+ "use strict";var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+
5
11
  /**
6
12
  * @license
7
13
  * Copyright 2019 Google LLC
@@ -8083,7 +8089,7 @@
8083
8089
  position: relative;
8084
8090
  width: 100%;
8085
8091
  height: 100%;
8086
- padding: var(--flow-ui-spacing-x-small);
8092
+ /* padding: var(--flow-ui-spacing-x-small); */
8087
8093
  }
8088
8094
  `;
8089
8095
  /*!
@@ -9238,6 +9244,216 @@
9238
9244
  }
9239
9245
  return passiveSupported;
9240
9246
  })();
9247
+ /*!
9248
+ * chartjs-chart-matrix v2.0.1
9249
+ * https://chartjs-chart-matrix.pages.dev/
9250
+ * (c) 2023 Jukka Kurkela
9251
+ * Released under the MIT license
9252
+ */
9253
+ var version$2 = "2.0.1";
9254
+ class MatrixController extends chart_js.DatasetController {
9255
+ initialize() {
9256
+ this.enableOptionSharing = true;
9257
+ super.initialize();
9258
+ }
9259
+ update(mode) {
9260
+ const me = this;
9261
+ const meta = me._cachedMeta;
9262
+ me.updateElements(meta.data, 0, meta.data.length, mode);
9263
+ }
9264
+ updateElements(rects, start, count, mode) {
9265
+ const me = this;
9266
+ const reset = mode === "reset";
9267
+ const { xScale, yScale } = me._cachedMeta;
9268
+ const firstOpts = me.resolveDataElementOptions(start, mode);
9269
+ const sharedOptions = me.getSharedOptions(mode, rects[start], firstOpts);
9270
+ for (let i2 = start; i2 < start + count; i2++) {
9271
+ const parsed = !reset && me.getParsed(i2);
9272
+ const x2 = reset ? xScale.getBasePixel() : xScale.getPixelForValue(parsed.x);
9273
+ const y2 = reset ? yScale.getBasePixel() : yScale.getPixelForValue(parsed.y);
9274
+ const options = me.resolveDataElementOptions(i2, mode);
9275
+ const { width, height, anchorX, anchorY } = options;
9276
+ const properties = {
9277
+ x: resolveX(anchorX, x2, width),
9278
+ y: resolveY(anchorY, y2, height),
9279
+ width,
9280
+ height,
9281
+ options
9282
+ };
9283
+ me.updateElement(rects[i2], i2, properties, mode);
9284
+ }
9285
+ me.updateSharedOptions(sharedOptions, mode);
9286
+ }
9287
+ draw() {
9288
+ const me = this;
9289
+ const data = me.getMeta().data || [];
9290
+ let i2, ilen;
9291
+ for (i2 = 0, ilen = data.length; i2 < ilen; ++i2) {
9292
+ data[i2].draw(me._ctx);
9293
+ }
9294
+ }
9295
+ }
9296
+ __publicField(MatrixController, "id", "matrix");
9297
+ __publicField(MatrixController, "version", version$2);
9298
+ __publicField(MatrixController, "defaults", {
9299
+ dataElementType: "matrix",
9300
+ animations: {
9301
+ numbers: {
9302
+ type: "number",
9303
+ properties: ["x", "y", "width", "height"]
9304
+ }
9305
+ }
9306
+ });
9307
+ __publicField(MatrixController, "overrides", {
9308
+ interaction: {
9309
+ mode: "nearest",
9310
+ intersect: true
9311
+ },
9312
+ scales: {
9313
+ x: {
9314
+ type: "linear",
9315
+ offset: true
9316
+ },
9317
+ y: {
9318
+ type: "linear",
9319
+ reverse: true
9320
+ }
9321
+ }
9322
+ });
9323
+ function resolveX(anchorX, x2, width) {
9324
+ if (anchorX === "left" || anchorX === "start") {
9325
+ return x2;
9326
+ }
9327
+ if (anchorX === "right" || anchorX === "end") {
9328
+ return x2 - width;
9329
+ }
9330
+ return x2 - width / 2;
9331
+ }
9332
+ function resolveY(anchorY, y2, height) {
9333
+ if (anchorY === "top" || anchorY === "start") {
9334
+ return y2;
9335
+ }
9336
+ if (anchorY === "bottom" || anchorY === "end") {
9337
+ return y2 - height;
9338
+ }
9339
+ return y2 - height / 2;
9340
+ }
9341
+ function getBounds(rect, useFinalPosition) {
9342
+ const { x: x2, y: y2, width, height } = rect.getProps(["x", "y", "width", "height"], useFinalPosition);
9343
+ return { left: x2, top: y2, right: x2 + width, bottom: y2 + height };
9344
+ }
9345
+ function limit(value, min2, max2) {
9346
+ return Math.max(Math.min(value, max2), min2);
9347
+ }
9348
+ function parseBorderWidth(rect, maxW, maxH) {
9349
+ const value = rect.options.borderWidth;
9350
+ let t2, r2, b2, l2;
9351
+ if (isObject$1(value)) {
9352
+ t2 = +value.top || 0;
9353
+ r2 = +value.right || 0;
9354
+ b2 = +value.bottom || 0;
9355
+ l2 = +value.left || 0;
9356
+ } else {
9357
+ t2 = r2 = b2 = l2 = +value || 0;
9358
+ }
9359
+ return {
9360
+ t: limit(t2, 0, maxH),
9361
+ r: limit(r2, 0, maxW),
9362
+ b: limit(b2, 0, maxH),
9363
+ l: limit(l2, 0, maxW)
9364
+ };
9365
+ }
9366
+ function boundingRects(rect) {
9367
+ const bounds = getBounds(rect);
9368
+ const width = bounds.right - bounds.left;
9369
+ const height = bounds.bottom - bounds.top;
9370
+ const border = parseBorderWidth(rect, width / 2, height / 2);
9371
+ return {
9372
+ outer: {
9373
+ x: bounds.left,
9374
+ y: bounds.top,
9375
+ w: width,
9376
+ h: height
9377
+ },
9378
+ inner: {
9379
+ x: bounds.left + border.l,
9380
+ y: bounds.top + border.t,
9381
+ w: width - border.l - border.r,
9382
+ h: height - border.t - border.b
9383
+ }
9384
+ };
9385
+ }
9386
+ function inRange(rect, x2, y2, useFinalPosition) {
9387
+ const skipX = x2 === null;
9388
+ const skipY = y2 === null;
9389
+ const bounds = !rect || skipX && skipY ? false : getBounds(rect, useFinalPosition);
9390
+ return bounds && (skipX || x2 >= bounds.left && x2 <= bounds.right) && (skipY || y2 >= bounds.top && y2 <= bounds.bottom);
9391
+ }
9392
+ class MatrixElement extends chart_js.Element {
9393
+ constructor(cfg) {
9394
+ super();
9395
+ this.options = void 0;
9396
+ this.width = void 0;
9397
+ this.height = void 0;
9398
+ if (cfg) {
9399
+ Object.assign(this, cfg);
9400
+ }
9401
+ }
9402
+ draw(ctx) {
9403
+ const options = this.options;
9404
+ const { inner, outer } = boundingRects(this);
9405
+ const radius = toTRBLCorners(options.borderRadius);
9406
+ ctx.save();
9407
+ if (outer.w !== inner.w || outer.h !== inner.h) {
9408
+ ctx.beginPath();
9409
+ addRoundedRectPath(ctx, { x: outer.x, y: outer.y, w: outer.w, h: outer.h, radius });
9410
+ addRoundedRectPath(ctx, { x: inner.x, y: inner.y, w: inner.w, h: inner.h, radius });
9411
+ ctx.fillStyle = options.backgroundColor;
9412
+ ctx.fill();
9413
+ ctx.fillStyle = options.borderColor;
9414
+ ctx.fill("evenodd");
9415
+ } else {
9416
+ ctx.beginPath();
9417
+ addRoundedRectPath(ctx, { x: inner.x, y: inner.y, w: inner.w, h: inner.h, radius });
9418
+ ctx.fillStyle = options.backgroundColor;
9419
+ ctx.fill();
9420
+ }
9421
+ ctx.restore();
9422
+ }
9423
+ inRange(mouseX, mouseY, useFinalPosition) {
9424
+ return inRange(this, mouseX, mouseY, useFinalPosition);
9425
+ }
9426
+ inXRange(mouseX, useFinalPosition) {
9427
+ return inRange(this, mouseX, null, useFinalPosition);
9428
+ }
9429
+ inYRange(mouseY, useFinalPosition) {
9430
+ return inRange(this, null, mouseY, useFinalPosition);
9431
+ }
9432
+ getCenterPoint(useFinalPosition) {
9433
+ const { x: x2, y: y2, width, height } = this.getProps(["x", "y", "width", "height"], useFinalPosition);
9434
+ return {
9435
+ x: x2 + width / 2,
9436
+ y: y2 + height / 2
9437
+ };
9438
+ }
9439
+ tooltipPosition() {
9440
+ return this.getCenterPoint();
9441
+ }
9442
+ getRange(axis) {
9443
+ return axis === "x" ? this.width / 2 : this.height / 2;
9444
+ }
9445
+ }
9446
+ __publicField(MatrixElement, "id", "matrix");
9447
+ __publicField(MatrixElement, "defaults", {
9448
+ backgroundColor: void 0,
9449
+ borderColor: void 0,
9450
+ borderWidth: void 0,
9451
+ borderRadius: 0,
9452
+ anchorX: "center",
9453
+ anchorY: "center",
9454
+ width: 20,
9455
+ height: 20
9456
+ });
9241
9457
  /*!
9242
9458
  * chartjs-plugin-annotation v3.0.1
9243
9459
  * https://www.chartjs.org/chartjs-plugin-annotation/index
@@ -10046,15 +10262,15 @@
10046
10262
  verifyScaleIDs(annotation2, scales);
10047
10263
  }
10048
10264
  }
10049
- function changeScaleLimit(scale, range, limit, suggestedLimit) {
10050
- if (isNumberFinite(range[limit]) && !scaleLimitDefined(scale.options, limit, suggestedLimit)) {
10051
- const changed = scale[limit] !== range[limit];
10052
- scale[limit] = range[limit];
10265
+ function changeScaleLimit(scale, range, limit2, suggestedLimit) {
10266
+ if (isNumberFinite(range[limit2]) && !scaleLimitDefined(scale.options, limit2, suggestedLimit)) {
10267
+ const changed = scale[limit2] !== range[limit2];
10268
+ scale[limit2] = range[limit2];
10053
10269
  return changed;
10054
10270
  }
10055
10271
  }
10056
- function scaleLimitDefined(scaleOptions, limit, suggestedLimit) {
10057
- return defined(scaleOptions[limit]) || defined(scaleOptions[suggestedLimit]);
10272
+ function scaleLimitDefined(scaleOptions, limit2, suggestedLimit) {
10273
+ return defined(scaleOptions[limit2]) || defined(scaleOptions[suggestedLimit]);
10058
10274
  }
10059
10275
  function verifyScaleIDs(annotation2, scales) {
10060
10276
  for (const key of ["scaleID", "xScaleID", "yScaleID"]) {
@@ -10623,8 +10839,8 @@
10623
10839
  borderColor: "color"
10624
10840
  };
10625
10841
  function inAxisRange(element, { mouseX, mouseY }, axis, { hBorderWidth, useFinalPosition }) {
10626
- const limit = rangeLimit(mouseX, mouseY, element.getProps(["x", "y", "x2", "y2"], useFinalPosition), axis);
10627
- return limit.value >= limit.start - hBorderWidth && limit.value <= limit.end + hBorderWidth || isOnLabel(element, { mouseX, mouseY }, useFinalPosition, axis);
10842
+ const limit2 = rangeLimit(mouseX, mouseY, element.getProps(["x", "y", "x2", "y2"], useFinalPosition), axis);
10843
+ return limit2.value >= limit2.start - hBorderWidth && limit2.value <= limit2.end + hBorderWidth || isOnLabel(element, { mouseX, mouseY }, useFinalPosition, axis);
10628
10844
  }
10629
10845
  function isLineInArea({ x: x2, y: y2, x2: x22, y2: y22 }, { top, right, bottom, left }) {
10630
10846
  return !(x2 < left && x22 < left || x2 > right && x22 > right || y2 < top && y22 < top || y2 > bottom && y22 > bottom);
@@ -10863,9 +11079,9 @@
10863
11079
  }
10864
11080
  const { x: x2, y: y2, x2: x22, y2: y22 } = this.getProps(["x", "y", "x2", "y2"], useFinalPosition);
10865
11081
  const hBorderWidth = borderWidth / 2;
10866
- const limit = axis === "y" ? { start: y2, end: y22 } : { start: x2, end: x22 };
11082
+ const limit2 = axis === "y" ? { start: y2, end: y22 } : { start: x2, end: x22 };
10867
11083
  const rotatedPoint = rotated({ x: mouseX, y: mouseY }, this.getCenterPoint(useFinalPosition), toRadians(-rotation));
10868
- return rotatedPoint[axis] >= limit.start - hBorderWidth - EPSILON && rotatedPoint[axis] <= limit.end + hBorderWidth + EPSILON;
11084
+ return rotatedPoint[axis] >= limit2.start - hBorderWidth - EPSILON && rotatedPoint[axis] <= limit2.end + hBorderWidth + EPSILON;
10869
11085
  }
10870
11086
  getCenterPoint(useFinalPosition) {
10871
11087
  return getElementCenterPoint(this, useFinalPosition);
@@ -10948,8 +11164,8 @@
10948
11164
  return inPointRange({ x: mouseX, y: mouseY }, this.getCenterPoint(useFinalPosition), width / 2, borderWidth);
10949
11165
  }
10950
11166
  const hBorderWidth = borderWidth / 2;
10951
- const limit = axis === "y" ? { start: y2, end: y22, value: mouseY } : { start: x2, end: x22, value: mouseX };
10952
- return limit.value >= limit.start - hBorderWidth && limit.value <= limit.end + hBorderWidth;
11167
+ const limit2 = axis === "y" ? { start: y2, end: y22, value: mouseY } : { start: x2, end: x22, value: mouseX };
11168
+ return limit2.value >= limit2.start - hBorderWidth && limit2.value <= limit2.end + hBorderWidth;
10953
11169
  }
10954
11170
  getCenterPoint(useFinalPosition) {
10955
11171
  return getElementCenterPoint(this, useFinalPosition);
@@ -13168,16 +13384,27 @@
13168
13384
  chart_js.Legend,
13169
13385
  chart_js.Tooltip,
13170
13386
  chart_js.Title,
13171
- annotation
13387
+ annotation,
13388
+ MatrixController,
13389
+ MatrixElement
13172
13390
  );
13173
13391
  chart_js.Tooltip.positioners.cursor = CursorPositioner;
13174
13392
  chart_js.Interaction.modes.interpolate = Interpolate;
13175
13393
  chart_js.Chart.defaults.animation = false;
13176
13394
  chart_js.Chart.defaults.responsive = true;
13177
13395
  chart_js.Chart.defaults.maintainAspectRatio = false;
13396
+ chart_js.Chart.defaults.layout.padding = {
13397
+ top: 5,
13398
+ right: 10,
13399
+ bottom: 5,
13400
+ left: 5
13401
+ };
13178
13402
  chart_js.Chart.defaults.plugins.legend.position = "bottom";
13179
13403
  chart_js.Chart.defaults.plugins.legend.align = "start";
13180
13404
  chart_js.Chart.defaults.plugins.tooltip.position = "cursor";
13405
+ chart_js.Chart.defaults.plugins.title.font = { size: 12 };
13406
+ chart_js.Chart.defaults.plugins.title.align = "start";
13407
+ chart_js.Chart.defaults.plugins.title.padding = { top: 0, bottom: 10 };
13181
13408
  }
13182
13409
  function registerChartComponent(...components) {
13183
13410
  chart_js.Chart.register(...components);
@@ -31528,7 +31755,7 @@ body > .os-scrollbar {
31528
31755
  }
31529
31756
 
31530
31757
  `;
31531
- var __defProp = Object.defineProperty;
31758
+ var __defProp2 = Object.defineProperty;
31532
31759
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
31533
31760
  var __decorateClass = (decorators, target, key, kind) => {
31534
31761
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
@@ -31536,7 +31763,7 @@ body > .os-scrollbar {
31536
31763
  if (decorator = decorators[i2])
31537
31764
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
31538
31765
  if (kind && result)
31539
- __defProp(target, key, result);
31766
+ __defProp2(target, key, result);
31540
31767
  return result;
31541
31768
  };
31542
31769
  class FlowToolButton extends FlowRdfElement {
@@ -31745,7 +31972,7 @@ body > .os-scrollbar {
31745
31972
  toggleColorFormat: "Toggle color format"
31746
31973
  };
31747
31974
  registerTranslation(translation);
31748
- const version = "0.0.18";
31975
+ const version = "0.0.19";
31749
31976
  const CONSOLE_HIGHLIGHT_STYLE = `
31750
31977
  padding: 2px 4px;
31751
31978
  border-radius: 2px;
@@ -316,18 +316,6 @@
316
316
  ],
317
317
  "references": []
318
318
  },
319
- {
320
- "name": "flow-ui-breadcrumb",
321
- "description": "Breadcrumbs provide a group of links so users can easily navigate a website's hierarchy.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - One or more breadcrumb items to display.\n- **separator** - The separator to use between breadcrumb items. Works best with `<flow-ui-icon>`.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
322
- "attributes": [
323
- {
324
- "name": "label",
325
- "description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
326
- "values": []
327
- }
328
- ],
329
- "references": []
330
- },
331
319
  {
332
320
  "name": "flow-ui-badge",
333
321
  "description": "Badges are used to draw attention and display statuses or counts.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The badge's content.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -356,6 +344,18 @@
356
344
  ],
357
345
  "references": []
358
346
  },
347
+ {
348
+ "name": "flow-ui-breadcrumb",
349
+ "description": "Breadcrumbs provide a group of links so users can easily navigate a website's hierarchy.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - One or more breadcrumb items to display.\n- **separator** - The separator to use between breadcrumb items. Works best with `<flow-ui-icon>`.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
350
+ "attributes": [
351
+ {
352
+ "name": "label",
353
+ "description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
354
+ "values": []
355
+ }
356
+ ],
357
+ "references": []
358
+ },
359
359
  {
360
360
  "name": "flow-ui-card",
361
361
  "description": "Cards can be used to group related subjects in a container.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The card's main content.\n- **header** - An optional header for the card.\n- **footer** - An optional footer for the card.\n- **image** - An optional image to render at the start of the card.\n\n### **CSS Properties:**\n - **--border-color** - The card's border color, including borders that occur inside the card. _(default: undefined)_\n- **--border-radius** - The border radius for the card's edges. _(default: undefined)_\n- **--border-width** - The width of the card's borders. _(default: undefined)_\n- **--padding** - The padding to use for the card's sections. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **image** - The container that wraps the card's image.\n- **header** - The container that wraps the card's header.\n- **body** - The container that wraps the card's main content.\n- **footer** - The container that wraps the card's footer.",
@@ -1941,6 +1941,12 @@
1941
1941
  ],
1942
1942
  "references": []
1943
1943
  },
1944
+ {
1945
+ "name": "flow-ui-visually-hidden",
1946
+ "description": "The visually hidden utility makes content accessible to assistive devices without displaying it on the screen.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The content to be visually hidden.",
1947
+ "attributes": [],
1948
+ "references": []
1949
+ },
1944
1950
  {
1945
1951
  "name": "flow-ui-tree-item",
1946
1952
  "description": "A tree item serves as a hierarchical node that lives inside a [tree](/components/tree).\n\n\n---\n\n\n\n\n### **Events:**\n - **flow-ui-expand** - Emitted when the tree item expands.\n- **flow-ui-after-expand** - Emitted after the tree item expands and all animations are complete.\n- **flow-ui-collapse** - Emitted when the tree item collapses.\n- **flow-ui-after-collapse** - Emitted after the tree item collapses and all animations are complete.\n- **flow-ui-lazy-change** - Emitted when the tree item's lazy state changes.\n- **flow-ui-lazy-load** - Emitted when a lazy item is selected. Use this event to asynchronously load data and append items to the tree before expanding. After appending new items, remove the `lazy` attribute to remove the loading state and update the tree.\n\n### **Methods:**\n - **getChildrenItems({ includeDisabled = true }: _{ includeDisabled?: boolean }_): _FlowTreeItem[]_** - Gets all the nested tree items in this node.\n\n### **Slots:**\n - _default_ - The default slot.\n- **expand-icon** - The icon to show when the tree item is expanded.\n- **collapse-icon** - The icon to show when the tree item is collapsed.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **item** - The tree item's container. This element wraps everything except slotted tree item children.\n- **item--disabled** - Applied when the tree item is disabled.\n- **item--expanded** - Applied when the tree item is expanded.\n- **item--indeterminate** - Applied when the selection is indeterminate.\n- **item--selected** - Applied when the tree item is selected.\n- **indentation** - The tree item's indentation container.\n- **expand-button** - The container that wraps the tree item's expand button and spinner.\n- **label** - The tree item's label.\n- **children** - The container that wraps the tree item's nested children.\n- **checkbox** - The checkbox that shows when using multiselect.\n- **checkbox__base** - The checkbox's exported `base` part.\n- **checkbox__control** - The checkbox's exported `control` part.\n- **checkbox__control--checked** - The checkbox's exported `control--checked` part.\n- **checkbox__control--indeterminate** - The checkbox's exported `control--indeterminate` part.\n- **checkbox__checked-icon** - The checkbox's exported `checked-icon` part.\n- **checkbox__indeterminate-icon** - The checkbox's exported `indeterminate-icon` part.\n- **checkbox__label** - The checkbox's exported `label` part.",
@@ -1967,12 +1973,6 @@
1967
1973
  }
1968
1974
  ],
1969
1975
  "references": []
1970
- },
1971
- {
1972
- "name": "flow-ui-visually-hidden",
1973
- "description": "The visually hidden utility makes content accessible to assistive devices without displaying it on the screen.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The content to be visually hidden.",
1974
- "attributes": [],
1975
- "references": []
1976
1976
  }
1977
1977
  ]
1978
1978
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emuanalytics/flow-rdf-ui",
3
- "version": "0.0.18",
3
+ "version": "0.0.19",
4
4
  "type": "module",
5
5
  "main": "dist/flow-rdf-ui.umd.cjs",
6
6
  "module": "dist/flow-rdf-ui.js",
@@ -21,6 +21,7 @@
21
21
  "@shoelace-style/animations": "^1.1.0",
22
22
  "@shoelace-style/localize": "^3.1.1",
23
23
  "chartjs-adapter-dayjs-4": "^1.0.4",
24
+ "chartjs-chart-matrix": "^2.0.1",
24
25
  "chartjs-plugin-annotation": "^3.0.1",
25
26
  "clone-deep": "^4.0.1",
26
27
  "composed-offset-position": "^0.0.4",