@capillaryjs/capillary-viz 1.0.0-alpha.1
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 +147 -0
- package/LICENSE +55 -0
- package/NOTICE +2 -0
- package/README.md +324 -0
- package/dist/block.d.ts +77 -0
- package/dist/block.d.ts.map +1 -0
- package/dist/components/BlockGraph.d.ts +24 -0
- package/dist/components/BlockGraph.d.ts.map +1 -0
- package/dist/components/CategoryHidePanel.d.ts +20 -0
- package/dist/components/CategoryHidePanel.d.ts.map +1 -0
- package/dist/components/CollapsibleOptionGroup.d.ts +18 -0
- package/dist/components/CollapsibleOptionGroup.d.ts.map +1 -0
- package/dist/components/LineGraph.d.ts +46 -0
- package/dist/components/LineGraph.d.ts.map +1 -0
- package/dist/components/SplitSelectionPanel.d.ts +30 -0
- package/dist/components/SplitSelectionPanel.d.ts.map +1 -0
- package/dist/dates.d.ts +7 -0
- package/dist/dates.d.ts.map +1 -0
- package/dist/grouping.d.ts +93 -0
- package/dist/grouping.d.ts.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3426 -0
- package/dist/index.js.map +1 -0
- package/dist/lineChart.d.ts +67 -0
- package/dist/lineChart.d.ts.map +1 -0
- package/dist/series.d.ts +31 -0
- package/dist/series.d.ts.map +1 -0
- package/dist/splits.d.ts +43 -0
- package/dist/splits.d.ts.map +1 -0
- package/package.json +76 -0
- package/styles/structural.css +1095 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ReadableEmitter } from '@capillaryjs/capillary';
|
|
2
|
+
import { Checkbox, OptionsBox } from '@capillaryjs/capillary-ui';
|
|
3
|
+
import type { CapillaryUiChild, GroupBoxBaseProps } from '@capillaryjs/capillary-ui';
|
|
4
|
+
import { CollapsibleOptionGroup } from './CollapsibleOptionGroup.js';
|
|
5
|
+
import { GroupingCriterion } from '../grouping.js';
|
|
6
|
+
export interface CategoryHidePanelProps<TItem> extends GroupBoxBaseProps {
|
|
7
|
+
readonly items$: ReadableEmitter<readonly TItem[]>;
|
|
8
|
+
readonly criteria: readonly GroupingCriterion<TItem>[];
|
|
9
|
+
readonly label?: string;
|
|
10
|
+
readonly description?: string;
|
|
11
|
+
}
|
|
12
|
+
/** Show/hide controls with live counts against the unfiltered item source. */
|
|
13
|
+
export declare class CategoryHidePanel<TItem = unknown> extends OptionsBox<CategoryHidePanelProps<TItem>> {
|
|
14
|
+
static liveProps: readonly string[];
|
|
15
|
+
render(): CapillaryUiChild;
|
|
16
|
+
static hostName: string;
|
|
17
|
+
static dependencies: (typeof Checkbox | typeof CollapsibleOptionGroup)[];
|
|
18
|
+
static css: string;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=CategoryHidePanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryHidePanel.d.ts","sourceRoot":"","sources":["../../src/components/CategoryHidePanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EACH,QAAQ,EACR,UAAU,EAEb,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAC,gBAAgB,EAAE,iBAAiB,EAAC,MAAM,2BAA2B,CAAA;AAElF,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAA;AAGlE,OAAO,EAAyB,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;AAOxE,MAAM,WAAW,sBAAsB,CAAC,KAAK,CAAE,SAAQ,iBAAiB;IACpE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,KAAK,EAAE,CAAC,CAAA;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAA;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,8EAA8E;AAC9E,qBAAa,iBAAiB,CAAC,KAAK,GAAG,OAAO,CAC9C,SAAQ,UAAU,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,MAAM,IAAI,gBAAgB;IAiD1B,OAAgB,QAAQ,SAAwB;IAChD,MAAM,CAAC,YAAY,sDAAqC;IAExD,MAAM,CAAC,GAAG,SA0ET;CACJ"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { OptionGroup } from '@capillaryjs/capillary-ui';
|
|
2
|
+
import type { CapillaryUiChild, OptionGroupBaseProps } from '@capillaryjs/capillary-ui';
|
|
3
|
+
export interface CollapsibleOptionGroupProps extends OptionGroupBaseProps {
|
|
4
|
+
/** Start collapsed instead of expanded. */
|
|
5
|
+
collapsed?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** OptionGroup with an expand/collapse toggle button in the legend. */
|
|
8
|
+
export declare class CollapsibleOptionGroup<TProps extends CollapsibleOptionGroupProps = CollapsibleOptionGroupProps> extends OptionGroup<TProps> {
|
|
9
|
+
readonly contentId: string;
|
|
10
|
+
private collapsed;
|
|
11
|
+
constructor(props: TProps);
|
|
12
|
+
render(): CapillaryUiChild;
|
|
13
|
+
private toggle;
|
|
14
|
+
protected renderOptionGroup(content: CapillaryUiChild, headerEnd: CapillaryUiChild): CapillaryUiChild;
|
|
15
|
+
static hostName: string;
|
|
16
|
+
static css: string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=CollapsibleOptionGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollapsibleOptionGroup.d.ts","sourceRoot":"","sources":["../../src/components/CollapsibleOptionGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAoD,MAAM,2BAA2B,CAAA;AACxG,OAAO,KAAK,EAAC,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,2BAA2B,CAAA;AAErF,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACrE,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,uEAAuE;AACvE,qBAAa,sBAAsB,CAC/B,MAAM,SAAS,2BAA2B,GAAG,2BAA2B,CAC1E,SAAQ,WAAW,CAAC,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,SAAS,CAAS;gBAEd,KAAK,EAAE,MAAM;IAMhB,MAAM,IAAI,gBAAgB;IAcnC,OAAO,CAAC,MAAM;cAKK,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,GAAG,gBAAgB;IAyC9G,OAAgB,QAAQ,SAA6B;IAErD,OAAgB,GAAG,SAkClB;CACJ"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ReadableEmitter } from '@capillaryjs/capillary';
|
|
2
|
+
import { Component } from '@capillaryjs/capillary-ui';
|
|
3
|
+
import type { ComponentProps, CapillaryUiChild } from '@capillaryjs/capillary-ui';
|
|
4
|
+
import type { CivilDate } from '../dates.js';
|
|
5
|
+
import type { LineGraphRange } from '../lineChart.js';
|
|
6
|
+
import type { HistoryShape } from '../series.js';
|
|
7
|
+
type Source<TValue> = TValue | ReadableEmitter<TValue>;
|
|
8
|
+
export interface LineGraphProps extends ComponentProps {
|
|
9
|
+
/** Snapshot data or a readable source that drives the graph. */
|
|
10
|
+
readonly shapes$: Source<readonly HistoryShape[]>;
|
|
11
|
+
readonly stacked$: Source<boolean>;
|
|
12
|
+
readonly smooth$: Source<boolean>;
|
|
13
|
+
readonly range$: Source<LineGraphRange>;
|
|
14
|
+
readonly label?: string;
|
|
15
|
+
readonly emptyMessage?: string;
|
|
16
|
+
readonly formatDate?: (date: CivilDate) => string;
|
|
17
|
+
readonly formatValue?: (value: number) => string;
|
|
18
|
+
}
|
|
19
|
+
/** Responsive SVG history line/area chart with pointer and keyboard readout. */
|
|
20
|
+
export declare class LineGraph extends Component<LineGraphProps> {
|
|
21
|
+
static liveProps: readonly string[];
|
|
22
|
+
private readonly cursorDate$;
|
|
23
|
+
private readonly shapes$;
|
|
24
|
+
private readonly stacked$;
|
|
25
|
+
private readonly smooth$;
|
|
26
|
+
private readonly range$;
|
|
27
|
+
private readonly ownedSources;
|
|
28
|
+
private chartHost;
|
|
29
|
+
private observedWidth;
|
|
30
|
+
private currentModel;
|
|
31
|
+
private resizeObserver;
|
|
32
|
+
constructor(props: LineGraphProps);
|
|
33
|
+
render(): CapillaryUiChild;
|
|
34
|
+
afterMount(): void;
|
|
35
|
+
afterUpdate(): void;
|
|
36
|
+
onDestroy(): void;
|
|
37
|
+
static hostName: string;
|
|
38
|
+
static css: string;
|
|
39
|
+
private observeSize;
|
|
40
|
+
private source;
|
|
41
|
+
private pointerMove;
|
|
42
|
+
private cursorKeyDown;
|
|
43
|
+
private drawChart;
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=LineGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineGraph.d.ts","sourceRoot":"","sources":["../../src/components/LineGraph.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAC,SAAS,EAAM,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,2BAA2B,CAAA;AAG/E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAO1C,OAAO,KAAK,EAAiB,cAAc,EAAC,MAAM,iBAAiB,CAAA;AACnE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,cAAc,CAAA;AAE9C,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;AAEtD,MAAM,WAAW,cAAe,SAAQ,cAAc;IAClD,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,CAAA;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CACnD;AAED,gFAAgF;AAChF,qBAAa,SAAU,SAAQ,SAAS,CAAC,cAAc,CAAC;IACpD,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAG1B;IACF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,cAAc,CAA8B;gBAExC,KAAK,EAAE,cAAc;IAQjC,MAAM,IAAI,gBAAgB;IAyE1B,UAAU,IAAI,IAAI;IAKlB,WAAW,IAAI,IAAI;IAInB,SAAS,IAAI,IAAI;IASjB,OAAgB,QAAQ,SAAe;IAEvC,MAAM,CAAC,GAAG,SAoGT;IAED,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,SAAS;CA8EpB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Button, Checkbox, Component, GroupBox } from '@capillaryjs/capillary-ui';
|
|
2
|
+
import type { ComponentProps, CapillaryUiChild } from '@capillaryjs/capillary-ui';
|
|
3
|
+
import { SplitSelectionModel } from '../splits.js';
|
|
4
|
+
export interface SplitSelectionPanelProps<TItem> extends ComponentProps {
|
|
5
|
+
readonly model: SplitSelectionModel<TItem>;
|
|
6
|
+
readonly label?: string;
|
|
7
|
+
readonly description?: string;
|
|
8
|
+
readonly presetsLabel?: string;
|
|
9
|
+
}
|
|
10
|
+
/** Ordered enablement, presets, pointer reordering, and keyboard reordering. */
|
|
11
|
+
export declare class SplitSelectionPanel<TItem = unknown> extends Component<SplitSelectionPanelProps<TItem>> {
|
|
12
|
+
static liveProps: readonly string[];
|
|
13
|
+
private draggingKey;
|
|
14
|
+
private pendingDrag;
|
|
15
|
+
private suppressClick;
|
|
16
|
+
private suppressClickTimer;
|
|
17
|
+
private announcement;
|
|
18
|
+
initialize(): void;
|
|
19
|
+
render(): CapillaryUiChild;
|
|
20
|
+
static hostName: string;
|
|
21
|
+
static dependencies: (typeof GroupBox | typeof Checkbox | typeof Button)[];
|
|
22
|
+
static css: string;
|
|
23
|
+
private pointerMove;
|
|
24
|
+
private stopDragging;
|
|
25
|
+
private startDragging;
|
|
26
|
+
private suppressDraggedClick;
|
|
27
|
+
private announce;
|
|
28
|
+
private focusHandle;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=SplitSelectionPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplitSelectionPanel.d.ts","sourceRoot":"","sources":["../../src/components/SplitSelectionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAM,MAAM,2BAA2B,CAAA;AACpF,OAAO,KAAK,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,2BAA2B,CAAA;AAG/E,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAA;AAOhD,MAAM,WAAW,wBAAwB,CAAC,KAAK,CAAE,SAAQ,cAAc;IACnE,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,gFAAgF;AAChF,qBAAa,mBAAmB,CAAC,KAAK,GAAG,OAAO,CAChD,SAAQ,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAgB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAK;IACjD,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAA+D;IAClF,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,YAAY,CAAK;IAEzB,UAAU,IAAI,IAAI;IAMlB,MAAM,IAAI,gBAAgB;IAkE1B,OAAgB,QAAQ,SAA0B;IAClD,MAAM,CAAC,YAAY,wDAA+B;IAElD,MAAM,CAAC,GAAG,SA8GT;IAED,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,WAAW;CAWtB"}
|
package/dist/dates.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type CivilDate = string;
|
|
2
|
+
export declare function civilDateToDay(value: CivilDate): number;
|
|
3
|
+
export declare function dayToCivilDate(day: number): CivilDate;
|
|
4
|
+
export declare function addCivilDays(value: CivilDate, days: number): CivilDate;
|
|
5
|
+
export declare function todayCivilDate(now?: Date): CivilDate;
|
|
6
|
+
export declare function compareCivilDates(left: CivilDate, right: CivilDate): number;
|
|
7
|
+
//# sourceMappingURL=dates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../src/dates.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAcvD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAGrD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAGtE;AAED,wBAAgB,cAAc,CAAC,GAAG,GAAE,IAAiB,GAAG,SAAS,CAOhE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAE3E"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { DerivedEmitter, Emitter } from '@capillaryjs/capillary';
|
|
2
|
+
import type { ReadableEmitter } from '@capillaryjs/capillary';
|
|
3
|
+
export type CategoryColors = readonly [dark: string, base: string, light: string];
|
|
4
|
+
/**
|
|
5
|
+
* CSS inputs for category-aware visualization surfaces.
|
|
6
|
+
*
|
|
7
|
+
* The short `c1`/`c2`/`c3` names intentionally preserve the established graph
|
|
8
|
+
* recipe: dark → base → light. The longer aliases keep ordinary Capillary UI traits
|
|
9
|
+
* available to component structure and interaction treatment.
|
|
10
|
+
*/
|
|
11
|
+
export interface CategoryColorVariables {
|
|
12
|
+
readonly '--c1': string;
|
|
13
|
+
readonly '--c2': string;
|
|
14
|
+
readonly '--c3': string;
|
|
15
|
+
readonly '--colored-dark': string;
|
|
16
|
+
readonly '--colored-base': string;
|
|
17
|
+
readonly '--colored-light': string;
|
|
18
|
+
}
|
|
19
|
+
export declare function categoryColorVariables([dark, base, light]: CategoryColors): CategoryColorVariables;
|
|
20
|
+
export type CategoryVisibility = 'hidden' | 'visible';
|
|
21
|
+
export interface VisualizationValueEmitter<TValue> extends ReadableEmitter<TValue> {
|
|
22
|
+
set(value: TValue, eventOrCause?: unknown): boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface Category<TItem> {
|
|
25
|
+
readonly key: string;
|
|
26
|
+
readonly label: string;
|
|
27
|
+
readonly predicate: (item: TItem) => boolean;
|
|
28
|
+
readonly colors: CategoryColors;
|
|
29
|
+
readonly colorKey?: string;
|
|
30
|
+
readonly hiddenByDefault?: boolean;
|
|
31
|
+
readonly generated?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface CategoryDescriptor {
|
|
34
|
+
readonly label: string;
|
|
35
|
+
readonly colors: CategoryColors;
|
|
36
|
+
readonly colorKey?: string;
|
|
37
|
+
readonly hiddenByDefault?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface CriterionOptions<TItem> {
|
|
40
|
+
readonly key: string;
|
|
41
|
+
readonly label: string;
|
|
42
|
+
readonly categories$: ReadableEmitter<readonly Category<TItem>[]>;
|
|
43
|
+
readonly allowResorting?: boolean;
|
|
44
|
+
readonly initialHiddenKeys?: ReadonlySet<string> | readonly string[];
|
|
45
|
+
}
|
|
46
|
+
export interface StaticCriterionOptions<TItem> extends Omit<CriterionOptions<TItem>, 'categories$' | 'ownedCategories'> {
|
|
47
|
+
readonly categories: readonly Category<TItem>[];
|
|
48
|
+
}
|
|
49
|
+
export interface DerivedCategorySummary {
|
|
50
|
+
readonly key: string;
|
|
51
|
+
readonly count: number;
|
|
52
|
+
readonly label: string;
|
|
53
|
+
}
|
|
54
|
+
export interface DerivedCriterionOptions<TItem> extends Omit<CriterionOptions<TItem>, 'categories$' | 'ownedCategories'> {
|
|
55
|
+
readonly source$: ReadableEmitter<readonly TItem[]>;
|
|
56
|
+
readonly extractKeys: (item: TItem) => string | readonly string[] | null | undefined;
|
|
57
|
+
readonly describe: (key: string, count: number) => CategoryDescriptor;
|
|
58
|
+
readonly unmatched?: CategoryDescriptor & {
|
|
59
|
+
readonly key: string;
|
|
60
|
+
};
|
|
61
|
+
readonly compare?: (left: DerivedCategorySummary, right: DerivedCategorySummary) => number;
|
|
62
|
+
}
|
|
63
|
+
/** One grouping dimension with reactive categories and stable-key visibility state. */
|
|
64
|
+
export declare class GroupingCriterion<TItem> {
|
|
65
|
+
readonly key: string;
|
|
66
|
+
readonly label: string;
|
|
67
|
+
readonly categories$: ReadableEmitter<readonly Category<TItem>[]>;
|
|
68
|
+
readonly hidden$: Emitter<ReadonlySet<string>>;
|
|
69
|
+
readonly visibleCategories$: ReadableEmitter<readonly Category<TItem>[]>;
|
|
70
|
+
readonly allowResorting: boolean;
|
|
71
|
+
private readonly ownedCategories;
|
|
72
|
+
private readonly visibleCategoriesEmitter;
|
|
73
|
+
private readonly seenKeys;
|
|
74
|
+
private readonly visibilityEmitters;
|
|
75
|
+
private readonly releaseCategoryDefaults;
|
|
76
|
+
private disposed;
|
|
77
|
+
constructor(options: CriterionOptions<TItem>);
|
|
78
|
+
visibility(categoryKey: string): VisualizationValueEmitter<CategoryVisibility>;
|
|
79
|
+
setAllVisible(visible: boolean, eventOrCause?: unknown): boolean;
|
|
80
|
+
pruneHidden(eventOrCause?: unknown): boolean;
|
|
81
|
+
dispose(): void;
|
|
82
|
+
private applyFirstSeenDefaults;
|
|
83
|
+
private assertActive;
|
|
84
|
+
}
|
|
85
|
+
export declare function staticCriterion<TItem>(options: StaticCriterionOptions<TItem>): GroupingCriterion<TItem>;
|
|
86
|
+
export declare function derivedCriterion<TItem>(options: DerivedCriterionOptions<TItem>): GroupingCriterion<TItem>;
|
|
87
|
+
export declare function deriveCategories<TItem>(items: readonly TItem[], options: Pick<DerivedCriterionOptions<TItem>, 'extractKeys' | 'describe' | 'unmatched' | 'compare'>): readonly Category<TItem>[];
|
|
88
|
+
/** Derive items rejected by none of the currently hidden category predicates. */
|
|
89
|
+
export declare function filterByHidden<TItem>(items$: ReadableEmitter<readonly TItem[]>, criteria: readonly GroupingCriterion<TItem>[]): DerivedEmitter<readonly TItem[]>;
|
|
90
|
+
/** Count matches against the unfiltered item source for one criterion. */
|
|
91
|
+
export declare function categoryCounts<TItem>(items$: ReadableEmitter<readonly TItem[]>, criterion: GroupingCriterion<TItem>): DerivedEmitter<ReadonlyMap<string, number>>;
|
|
92
|
+
export declare function setsEqual<TValue>(left: ReadonlySet<TValue>, right: ReadonlySet<TValue>): boolean;
|
|
93
|
+
//# sourceMappingURL=grouping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../src/grouping.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './block.js';
|
|
2
|
+
export * from './components/BlockGraph.js';
|
|
3
|
+
export * from './components/CategoryHidePanel.js';
|
|
4
|
+
export * from './components/CollapsibleOptionGroup.js';
|
|
5
|
+
export * from './components/LineGraph.js';
|
|
6
|
+
export * from './components/SplitSelectionPanel.js';
|
|
7
|
+
export * from './dates.js';
|
|
8
|
+
export * from './grouping.js';
|
|
9
|
+
export * from './lineChart.js';
|
|
10
|
+
export * from './series.js';
|
|
11
|
+
export * from './splits.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AACjD,cAAc,wCAAwC,CAAA;AACtD,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA;AACnD,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
|