@internetarchive/histogram-date-range 1.3.1 → 1.3.2
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/demo/index.css +6 -0
- package/demo/index.html +15 -0
- package/dist/demo/js/app-root.d.ts +19 -19
- package/dist/demo/js/app-root.js +46 -46
- package/dist/demo/js/app-root.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/src/histogram-date-range copy.d.ts +214 -0
- package/dist/src/histogram-date-range copy.js +1018 -0
- package/dist/src/histogram-date-range copy.js.map +1 -0
- package/dist/src/histogram-date-range.d.ts +214 -213
- package/dist/src/histogram-date-range.js +790 -774
- package/dist/src/histogram-date-range.js.map +1 -1
- package/dist/src/plugins/fix-first-century-years.d.ts +23 -23
- package/dist/src/plugins/fix-first-century-years.js +42 -42
- package/dist/src/plugins/fix-first-century-years.js.map +1 -1
- package/dist/test/histogram-date-range.test.d.ts +1 -1
- package/dist/test/histogram-date-range.test.js +543 -542
- package/dist/test/histogram-date-range.test.js.map +1 -1
- package/docs/_snowpack/pkg/import-map.json +2 -1
- package/docs/_snowpack/pkg/lit/decorators.js +14 -1
- package/docs/_snowpack/pkg/lit/directives/style-map.js +10 -0
- package/docs/demo/index.css +6 -0
- package/docs/demo/index.html +15 -0
- package/docs/dist/src/histogram-date-range.js +31 -22
- package/package.json +11 -11
- package/src/histogram-date-range.ts +36 -20
- package/src/plugins/fix-first-century-years.ts +52 -52
- package/test/histogram-date-range.test.ts +1 -0
- package/types/dayjs.d.ts +10 -10
package/demo/index.css
CHANGED
package/demo/index.html
CHANGED
|
@@ -106,6 +106,21 @@
|
|
|
106
106
|
></histogram-date-range>
|
|
107
107
|
</div>
|
|
108
108
|
|
|
109
|
+
<div class="container">
|
|
110
|
+
<div class="clipped text-centered">
|
|
111
|
+
<div class="description">inside clipping container</div>
|
|
112
|
+
<histogram-date-range
|
|
113
|
+
width="175"
|
|
114
|
+
dateFormat="MM/YYYY"
|
|
115
|
+
binSnapping="month"
|
|
116
|
+
minDate="01/2000"
|
|
117
|
+
maxDate="12/2005"
|
|
118
|
+
bins="[1,12,2,11,3,10,4,9,5,8,6,7]"
|
|
119
|
+
style="--histogramDateRangeInputWidth: 50px;"
|
|
120
|
+
></histogram-date-range>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
|
|
109
124
|
<div class="container">
|
|
110
125
|
<div class="description">
|
|
111
126
|
default range with custom styling and date format
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { LitElement, TemplateResult } from 'lit';
|
|
2
|
-
import '../../src/histogram-date-range';
|
|
3
|
-
interface DataSource {
|
|
4
|
-
minDate: unknown;
|
|
5
|
-
maxDate: unknown;
|
|
6
|
-
minSelectedDate: unknown;
|
|
7
|
-
maxSelectedDate: unknown;
|
|
8
|
-
bins: number[];
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* This is mainly to test the histogram-date-range within
|
|
12
|
-
* a lit-element.
|
|
13
|
-
*/
|
|
14
|
-
export declare class AppRoot extends LitElement {
|
|
15
|
-
dataSource: DataSource;
|
|
16
|
-
render(): TemplateResult;
|
|
17
|
-
private randomize;
|
|
18
|
-
}
|
|
19
|
-
export {};
|
|
1
|
+
import { LitElement, TemplateResult } from 'lit';
|
|
2
|
+
import '../../src/histogram-date-range';
|
|
3
|
+
interface DataSource {
|
|
4
|
+
minDate: unknown;
|
|
5
|
+
maxDate: unknown;
|
|
6
|
+
minSelectedDate: unknown;
|
|
7
|
+
maxSelectedDate: unknown;
|
|
8
|
+
bins: number[];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* This is mainly to test the histogram-date-range within
|
|
12
|
+
* a lit-element.
|
|
13
|
+
*/
|
|
14
|
+
export declare class AppRoot extends LitElement {
|
|
15
|
+
dataSource: DataSource;
|
|
16
|
+
render(): TemplateResult;
|
|
17
|
+
private randomize;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
package/dist/demo/js/app-root.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { LitElement, html } from 'lit';
|
|
3
|
-
import { customElement, state } from 'lit/decorators.js';
|
|
4
|
-
import '../../src/histogram-date-range';
|
|
5
|
-
/**
|
|
6
|
-
* This is mainly to test the histogram-date-range within
|
|
7
|
-
* a lit-element.
|
|
8
|
-
*/
|
|
9
|
-
let AppRoot = class AppRoot extends LitElement {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
this.dataSource = {
|
|
13
|
-
minDate: 1955,
|
|
14
|
-
maxDate: 2000,
|
|
15
|
-
minSelectedDate: 1955,
|
|
16
|
-
maxSelectedDate: 2000,
|
|
17
|
-
bins: [
|
|
18
|
-
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
|
19
|
-
],
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
render() {
|
|
23
|
-
var _a, _b, _c, _d, _e;
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { LitElement, html } from 'lit';
|
|
3
|
+
import { customElement, state } from 'lit/decorators.js';
|
|
4
|
+
import '../../src/histogram-date-range';
|
|
5
|
+
/**
|
|
6
|
+
* This is mainly to test the histogram-date-range within
|
|
7
|
+
* a lit-element.
|
|
8
|
+
*/
|
|
9
|
+
let AppRoot = class AppRoot extends LitElement {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.dataSource = {
|
|
13
|
+
minDate: 1955,
|
|
14
|
+
maxDate: 2000,
|
|
15
|
+
minSelectedDate: 1955,
|
|
16
|
+
maxSelectedDate: 2000,
|
|
17
|
+
bins: [
|
|
18
|
+
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
render() {
|
|
23
|
+
var _a, _b, _c, _d, _e;
|
|
24
24
|
return html `
|
|
25
25
|
<histogram-date-range
|
|
26
26
|
.minDate=${(_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.minDate}
|
|
@@ -32,27 +32,27 @@ let AppRoot = class AppRoot extends LitElement {
|
|
|
32
32
|
></histogram-date-range>
|
|
33
33
|
|
|
34
34
|
<button @click=${this.randomize}>Randomize</button>
|
|
35
|
-
`;
|
|
36
|
-
}
|
|
37
|
-
randomize() {
|
|
38
|
-
const minDate = Math.round(Math.random() * 1000);
|
|
39
|
-
const maxDate = minDate + Math.round(Math.random() * 1000);
|
|
40
|
-
// generate random bins
|
|
41
|
-
const bins = Array.from({ length: 20 }, () => Math.floor(Math.random() * minDate));
|
|
42
|
-
this.dataSource = {
|
|
43
|
-
minDate,
|
|
44
|
-
maxDate,
|
|
45
|
-
minSelectedDate: minDate,
|
|
46
|
-
maxSelectedDate: maxDate,
|
|
47
|
-
bins: bins,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
__decorate([
|
|
52
|
-
state()
|
|
53
|
-
], AppRoot.prototype, "dataSource", void 0);
|
|
54
|
-
AppRoot = __decorate([
|
|
55
|
-
customElement('app-root')
|
|
56
|
-
], AppRoot);
|
|
57
|
-
export { AppRoot };
|
|
35
|
+
`;
|
|
36
|
+
}
|
|
37
|
+
randomize() {
|
|
38
|
+
const minDate = Math.round(Math.random() * 1000);
|
|
39
|
+
const maxDate = minDate + Math.round(Math.random() * 1000);
|
|
40
|
+
// generate random bins
|
|
41
|
+
const bins = Array.from({ length: 20 }, () => Math.floor(Math.random() * minDate));
|
|
42
|
+
this.dataSource = {
|
|
43
|
+
minDate,
|
|
44
|
+
maxDate,
|
|
45
|
+
minSelectedDate: minDate,
|
|
46
|
+
maxSelectedDate: maxDate,
|
|
47
|
+
bins: bins,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
__decorate([
|
|
52
|
+
state()
|
|
53
|
+
], AppRoot.prototype, "dataSource", void 0);
|
|
54
|
+
AppRoot = __decorate([
|
|
55
|
+
customElement('app-root')
|
|
56
|
+
], AppRoot);
|
|
57
|
+
export { AppRoot };
|
|
58
58
|
//# sourceMappingURL=app-root.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-root.js","sourceRoot":"","sources":["../../../demo/js/app-root.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,gCAAgC,CAAC;AAUxC;;;GAGG;
|
|
1
|
+
{"version":3,"file":"app-root.js","sourceRoot":"","sources":["../../../demo/js/app-root.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,gCAAgC,CAAC;AAUxC;;;GAGG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAAhC;;QACI,eAAU,GAAe;YAChC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,IAAI;YACrB,IAAI,EAAE;gBACJ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;aACtE;SACF,CAAC;IAgCJ,CAAC;IA9BC,MAAM;;QACJ,OAAO,IAAI,CAAA;;mBAEI,MAAA,IAAI,CAAC,UAAU,0CAAE,OAAO;mBACxB,MAAA,IAAI,CAAC,UAAU,0CAAE,OAAO;2BAChB,MAAA,IAAI,CAAC,UAAU,0CAAE,eAAe;2BAChC,MAAA,IAAI,CAAC,UAAU,0CAAE,eAAe;uBACpC,IAAI;gBACX,MAAA,IAAI,CAAC,UAAU,0CAAE,IAAI;;;uBAGd,IAAI,CAAC,SAAS;KAChC,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3D,uBAAuB;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CACpC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG;YAChB,OAAO;YACP,OAAO;YACP,eAAe,EAAE,OAAO;YACxB,eAAe,EAAE,OAAO;YACxB,IAAI,EAAE,IAAI;SACX,CAAC;IACJ,CAAC;CACF,CAAA;AAxCU;IAAR,KAAK,EAAE;2CAQN;AATS,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CAyCnB","sourcesContent":["import { LitElement, html, TemplateResult } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport '../../src/histogram-date-range';\n\ninterface DataSource {\n minDate: unknown;\n maxDate: unknown;\n minSelectedDate: unknown;\n maxSelectedDate: unknown;\n bins: number[];\n}\n\n/**\n * This is mainly to test the histogram-date-range within\n * a lit-element.\n */\n@customElement('app-root')\nexport class AppRoot extends LitElement {\n @state() dataSource: DataSource = {\n minDate: 1955,\n maxDate: 2000,\n minSelectedDate: 1955,\n maxSelectedDate: 2000,\n bins: [\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n ],\n };\n\n render(): TemplateResult {\n return html`\n <histogram-date-range\n .minDate=${this.dataSource?.minDate}\n .maxDate=${this.dataSource?.maxDate}\n .minSelectedDate=${this.dataSource?.minSelectedDate}\n .maxSelectedDate=${this.dataSource?.maxSelectedDate}\n .updateDelay=${1000}\n .bins=${this.dataSource?.bins}\n ></histogram-date-range>\n\n <button @click=${this.randomize}>Randomize</button>\n `;\n }\n\n private randomize() {\n const minDate = Math.round(Math.random() * 1000);\n const maxDate = minDate + Math.round(Math.random() * 1000);\n // generate random bins\n const bins = Array.from({ length: 20 }, () =>\n Math.floor(Math.random() * minDate)\n );\n this.dataSource = {\n minDate,\n maxDate,\n minSelectedDate: minDate,\n maxSelectedDate: maxDate,\n bins: bins,\n };\n }\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { HistogramDateRange, BinSnappingInterval, } from './src/histogram-date-range';
|
|
1
|
+
export { HistogramDateRange, BinSnappingInterval, } from './src/histogram-date-range';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { HistogramDateRange, } from './src/histogram-date-range';
|
|
1
|
+
export { HistogramDateRange, } from './src/histogram-date-range';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import '@internetarchive/ia-activity-indicator';
|
|
2
|
+
import { LitElement, PropertyValues, SVGTemplateResult, TemplateResult } from 'lit';
|
|
3
|
+
export type BinSnappingInterval = 'none' | 'month' | 'year';
|
|
4
|
+
export declare class HistogramDateRange1 extends LitElement {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
sliderWidth: number;
|
|
8
|
+
tooltipWidth: number;
|
|
9
|
+
tooltipHeight: number;
|
|
10
|
+
updateDelay: number;
|
|
11
|
+
dateFormat: string;
|
|
12
|
+
missingDataMessage: string;
|
|
13
|
+
minDate: string;
|
|
14
|
+
maxDate: string;
|
|
15
|
+
disabled: boolean;
|
|
16
|
+
bins: number[];
|
|
17
|
+
/** If true, update events will not be canceled by the date inputs receiving focus */
|
|
18
|
+
updateWhileFocused: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* What interval bins should be snapped to for determining their time ranges.
|
|
21
|
+
* - `none` (default): Bins should each represent an identical duration of time,
|
|
22
|
+
* without regard for the actual dates represented.
|
|
23
|
+
* - `month`: Bins should each represent one or more full, non-overlapping months.
|
|
24
|
+
* The bin ranges will be "snapped" to the nearest month boundaries, which can
|
|
25
|
+
* result in bins that represent different amounts of time, particularly if the
|
|
26
|
+
* provided bins do not evenly divide the provided date range, or if the months
|
|
27
|
+
* represented are of different lengths.
|
|
28
|
+
* - `year`: Same as `month`, but snapping to year boundaries instead of months.
|
|
29
|
+
*/
|
|
30
|
+
binSnapping: BinSnappingInterval;
|
|
31
|
+
private _tooltipOffset;
|
|
32
|
+
private _tooltipContent?;
|
|
33
|
+
private _tooltipVisible;
|
|
34
|
+
private _tooltipDateFormat?;
|
|
35
|
+
private _isDragging;
|
|
36
|
+
private _isLoading;
|
|
37
|
+
private _tooltip;
|
|
38
|
+
private _minSelectedDate;
|
|
39
|
+
private _maxSelectedDate;
|
|
40
|
+
private _minDateMS;
|
|
41
|
+
private _maxDateMS;
|
|
42
|
+
private _dragOffset;
|
|
43
|
+
private _histWidth;
|
|
44
|
+
private _binWidth;
|
|
45
|
+
private _currentSlider?;
|
|
46
|
+
private _histData;
|
|
47
|
+
private _emitUpdatedEventTimer?;
|
|
48
|
+
private _previousDateRange;
|
|
49
|
+
disconnectedCallback(): void;
|
|
50
|
+
willUpdate(changedProps: PropertyValues): void;
|
|
51
|
+
/**
|
|
52
|
+
* Set private properties that depend on the attribute bin data
|
|
53
|
+
*
|
|
54
|
+
* We're caching these values and not using getters to avoid recalculating all
|
|
55
|
+
* of the hist data every time the user drags a slider or hovers over a bar
|
|
56
|
+
* creating a tooltip.
|
|
57
|
+
*/
|
|
58
|
+
private handleDataUpdate;
|
|
59
|
+
/**
|
|
60
|
+
* Rounds the given timestamp to the next full second.
|
|
61
|
+
*/
|
|
62
|
+
private snapToNextSecond;
|
|
63
|
+
/**
|
|
64
|
+
* Rounds the given timestamp to the (approximate) nearest start of a month,
|
|
65
|
+
* such that dates up to and including the 15th of the month are rounded down,
|
|
66
|
+
* while dates past the 15th are rounded up.
|
|
67
|
+
*/
|
|
68
|
+
private snapToMonth;
|
|
69
|
+
/**
|
|
70
|
+
* Rounds the given timestamp to the (approximate) nearest start of a year,
|
|
71
|
+
* such that dates up to the end of June are rounded down, while dates in
|
|
72
|
+
* July or later are rounded up.
|
|
73
|
+
*/
|
|
74
|
+
private snapToYear;
|
|
75
|
+
/**
|
|
76
|
+
* Rounds the given timestamp according to the `binSnapping` property.
|
|
77
|
+
* Default is simply to snap to the nearest full second.
|
|
78
|
+
*/
|
|
79
|
+
private snapTimestamp;
|
|
80
|
+
private calculateHistData;
|
|
81
|
+
private get hasBinData();
|
|
82
|
+
private get _numBins();
|
|
83
|
+
private get histogramLeftEdgeX();
|
|
84
|
+
private get histogramRightEdgeX();
|
|
85
|
+
/**
|
|
86
|
+
* Approximate size in ms of the interval to which bins are snapped.
|
|
87
|
+
*/
|
|
88
|
+
private get snapInterval();
|
|
89
|
+
/**
|
|
90
|
+
* Offset added to the end of each bin to ensure disjoint intervals,
|
|
91
|
+
* depending on whether snapping is enabled and there are multiple bins.
|
|
92
|
+
*/
|
|
93
|
+
private get snapEndOffset();
|
|
94
|
+
/**
|
|
95
|
+
* Optional date format to use for tooltips only.
|
|
96
|
+
* Falls back to `dateFormat` if not provided.
|
|
97
|
+
*/
|
|
98
|
+
get tooltipDateFormat(): string;
|
|
99
|
+
set tooltipDateFormat(value: string);
|
|
100
|
+
/** component's loading (and disabled) state */
|
|
101
|
+
get loading(): boolean;
|
|
102
|
+
set loading(value: boolean);
|
|
103
|
+
/** formatted minimum date of selected date range */
|
|
104
|
+
get minSelectedDate(): string;
|
|
105
|
+
/** updates minSelectedDate if new date is valid */
|
|
106
|
+
set minSelectedDate(rawDate: string);
|
|
107
|
+
/** formatted maximum date of selected date range */
|
|
108
|
+
get maxSelectedDate(): string;
|
|
109
|
+
/** updates maxSelectedDate if new date is valid */
|
|
110
|
+
set maxSelectedDate(rawDate: string);
|
|
111
|
+
/** horizontal position of min date slider */
|
|
112
|
+
get minSliderX(): number;
|
|
113
|
+
/** horizontal position of max date slider */
|
|
114
|
+
get maxSliderX(): number;
|
|
115
|
+
private get dateRangeMS();
|
|
116
|
+
private showTooltip;
|
|
117
|
+
private hideTooltip;
|
|
118
|
+
private drag;
|
|
119
|
+
private drop;
|
|
120
|
+
/**
|
|
121
|
+
* Adjust the date range based on slider movement
|
|
122
|
+
*
|
|
123
|
+
* @param e PointerEvent from the slider being moved
|
|
124
|
+
*/
|
|
125
|
+
private move;
|
|
126
|
+
/**
|
|
127
|
+
* Constrain a proposed value for the minimum (left) slider
|
|
128
|
+
*
|
|
129
|
+
* If the value is less than the leftmost valid position, then set it to the
|
|
130
|
+
* left edge of the histogram (ie the slider width). If the value is greater
|
|
131
|
+
* than the rightmost valid position (the position of the max slider), then
|
|
132
|
+
* set it to the position of the max slider
|
|
133
|
+
*/
|
|
134
|
+
private validMinSliderX;
|
|
135
|
+
/**
|
|
136
|
+
* Constrain a proposed value for the maximum (right) slider
|
|
137
|
+
*
|
|
138
|
+
* If the value is greater than the rightmost valid position, then set it to
|
|
139
|
+
* the right edge of the histogram (ie histogram width - slider width). If the
|
|
140
|
+
* value is less than the leftmost valid position (the position of the min
|
|
141
|
+
* slider), then set it to the position of the min slider
|
|
142
|
+
*/
|
|
143
|
+
private validMaxSliderX;
|
|
144
|
+
private addListeners;
|
|
145
|
+
private removeListeners;
|
|
146
|
+
/**
|
|
147
|
+
* start a timer to emit an update event. this timer can be canceled (and the
|
|
148
|
+
* event not emitted) if user drags a slider or focuses a date input within
|
|
149
|
+
* the update delay
|
|
150
|
+
*/
|
|
151
|
+
private beginEmitUpdateProcess;
|
|
152
|
+
private cancelPendingUpdateEvent;
|
|
153
|
+
/**
|
|
154
|
+
* find position of pointer in relation to the current slider
|
|
155
|
+
*/
|
|
156
|
+
private setDragOffset;
|
|
157
|
+
/**
|
|
158
|
+
* @param x horizontal position of slider
|
|
159
|
+
* @returns string representation of date
|
|
160
|
+
*/
|
|
161
|
+
private translatePositionToDate;
|
|
162
|
+
/**
|
|
163
|
+
* Returns slider x-position corresponding to given date
|
|
164
|
+
*
|
|
165
|
+
* @param date
|
|
166
|
+
* @returns x-position of slider
|
|
167
|
+
*/
|
|
168
|
+
private translateDateToPosition;
|
|
169
|
+
/** ensure that the returned value is between minValue and maxValue */
|
|
170
|
+
private clamp;
|
|
171
|
+
private handleInputFocus;
|
|
172
|
+
private handleMinDateInput;
|
|
173
|
+
private handleMaxDateInput;
|
|
174
|
+
private handleKeyUp;
|
|
175
|
+
private get currentDateRangeString();
|
|
176
|
+
private getMSFromString;
|
|
177
|
+
/**
|
|
178
|
+
* expand or narrow the selected range by moving the slider nearest the
|
|
179
|
+
* clicked bar to the outer edge of the clicked bar
|
|
180
|
+
*
|
|
181
|
+
* @param e Event click event from a histogram bar
|
|
182
|
+
*/
|
|
183
|
+
private handleBarClick;
|
|
184
|
+
private get minSliderTemplate();
|
|
185
|
+
private get maxSliderTemplate();
|
|
186
|
+
private generateSliderSVG;
|
|
187
|
+
get selectedRangeTemplate(): SVGTemplateResult;
|
|
188
|
+
get histogramTemplate(): SVGTemplateResult[];
|
|
189
|
+
/** Whether the first arg represents a date strictly before the second arg */
|
|
190
|
+
private isBefore;
|
|
191
|
+
/** Whether the first arg represents a date strictly after the second arg */
|
|
192
|
+
private isAfter;
|
|
193
|
+
private formatDate;
|
|
194
|
+
/**
|
|
195
|
+
* NOTE: we are relying on the lit `live` directive in the template to
|
|
196
|
+
* ensure that the change to minSelectedDate is noticed and the input value
|
|
197
|
+
* gets properly re-rendered. see
|
|
198
|
+
* https://lit.dev/docs/templates/directives/#live
|
|
199
|
+
*/
|
|
200
|
+
get minInputTemplate(): TemplateResult;
|
|
201
|
+
get maxInputTemplate(): TemplateResult;
|
|
202
|
+
get minLabelTemplate(): TemplateResult;
|
|
203
|
+
get maxLabelTemplate(): TemplateResult;
|
|
204
|
+
get tooltipTemplate(): TemplateResult;
|
|
205
|
+
private get noDataTemplate();
|
|
206
|
+
private get activityIndicatorTemplate();
|
|
207
|
+
static styles: import("lit").CSSResult;
|
|
208
|
+
render(): TemplateResult;
|
|
209
|
+
}
|
|
210
|
+
declare global {
|
|
211
|
+
interface HTMLElementTagNameMap {
|
|
212
|
+
'histogram-date-range1': HistogramDateRange1;
|
|
213
|
+
}
|
|
214
|
+
}
|