@internetarchive/histogram-date-range 1.4.0-alpha-webdev7756.1 → 1.4.1-alpha1
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/.editorconfig +29 -29
- package/.eslintrc.js +14 -14
- package/.github/workflows/ci.yml +30 -30
- package/LICENSE +661 -661
- package/README.md +113 -113
- package/demo/index.css +28 -28
- package/demo/index.html +221 -221
- package/dist/src/histogram-date-range.d.ts +1 -0
- package/dist/src/histogram-date-range.js +21 -1
- package/dist/src/histogram-date-range.js.map +1 -1
- package/dist/test/histogram-date-range.test.js +47 -0
- package/dist/test/histogram-date-range.test.js.map +1 -1
- package/docs/demo/index.css +28 -28
- package/docs/demo/index.html +221 -221
- package/docs/dist/src/histogram-date-range.js +18 -1
- package/package.json +85 -85
- package/snowpack.config.js +10 -10
- package/src/histogram-date-range.ts +23 -1
- package/test/histogram-date-range.test.ts +67 -0
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +28 -28
- package/web-test-runner.config.mjs +29 -29
- package/dist/demo/js/list-histogram-wrapper.d.ts +0 -20
- package/dist/demo/js/list-histogram-wrapper.js +0 -59
- package/dist/demo/js/list-histogram-wrapper.js.map +0 -1
- package/dist/demo/js/lit-histogram-wrapper.d.ts +0 -21
- package/dist/demo/js/lit-histogram-wrapper.js +0 -73
- package/dist/demo/js/lit-histogram-wrapper.js.map +0 -1
package/snowpack.config.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
buildOptions: {
|
|
3
|
-
out: 'docs',
|
|
4
|
-
},
|
|
5
|
-
mount: {
|
|
6
|
-
'demo/js': { url: '/dist/demo/js' },
|
|
7
|
-
demo: { url: '/demo' },
|
|
8
|
-
src: { url: '/dist/src' },
|
|
9
|
-
},
|
|
10
|
-
};
|
|
1
|
+
module.exports = {
|
|
2
|
+
buildOptions: {
|
|
3
|
+
out: 'docs',
|
|
4
|
+
},
|
|
5
|
+
mount: {
|
|
6
|
+
'demo/js': { url: '/dist/demo/js' },
|
|
7
|
+
demo: { url: '/demo' },
|
|
8
|
+
src: { url: '/dist/src' },
|
|
9
|
+
},
|
|
10
|
+
};
|
|
@@ -984,6 +984,27 @@ export class HistogramDateRange extends LitElement {
|
|
|
984
984
|
`;
|
|
985
985
|
}
|
|
986
986
|
|
|
987
|
+
private get histogramAccessibility(): TemplateResult {
|
|
988
|
+
let rangeText: string;
|
|
989
|
+
if (this.minSelectedDate && this.maxSelectedDate) {
|
|
990
|
+
rangeText = `from ${this.minSelectedDate} to ${this.maxSelectedDate}`;
|
|
991
|
+
} else if (this.minSelectedDate) {
|
|
992
|
+
rangeText = `from ${this.minSelectedDate}`;
|
|
993
|
+
} else if (this.maxSelectedDate) {
|
|
994
|
+
rangeText = `up to ${this.maxSelectedDate}`;
|
|
995
|
+
} else {
|
|
996
|
+
rangeText = 'for all available dates';
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
const titleText = `Filter results distribution ${rangeText}`;
|
|
1000
|
+
|
|
1001
|
+
const descText =
|
|
1002
|
+
`This chart shows the distribution of search results ${rangeText}. The bars represent result counts for each time period within the selected date range.`.trim();
|
|
1003
|
+
|
|
1004
|
+
return html`<title id="histogram-title">${titleText}</title
|
|
1005
|
+
><desc id="histogram-desc">${descText}</desc>`;
|
|
1006
|
+
}
|
|
1007
|
+
|
|
987
1008
|
private get noDataTemplate(): TemplateResult {
|
|
988
1009
|
return html`
|
|
989
1010
|
<div class="missing-data-message">${this.missingDataMessage}</div>
|
|
@@ -1145,9 +1166,10 @@ export class HistogramDateRange extends LitElement {
|
|
|
1145
1166
|
<svg
|
|
1146
1167
|
width="${this.width}"
|
|
1147
1168
|
height="${this.height}"
|
|
1169
|
+
aria-labelledby="histogram-title histogram-desc"
|
|
1148
1170
|
@pointerleave="${this.drop}"
|
|
1149
1171
|
>
|
|
1150
|
-
${this.selectedRangeTemplate}
|
|
1172
|
+
${this.histogramAccessibility} ${this.selectedRangeTemplate}
|
|
1151
1173
|
<svg id="histogram">${this.histogramTemplate}</svg>
|
|
1152
1174
|
${this.minSliderTemplate} ${this.maxSliderTemplate}
|
|
1153
1175
|
</svg>
|
|
@@ -989,4 +989,71 @@ describe('HistogramDateRange', () => {
|
|
|
989
989
|
) as HTMLInputElement;
|
|
990
990
|
expect(maxDateInput.value).to.eq('2019');
|
|
991
991
|
});
|
|
992
|
+
|
|
993
|
+
it('SVG accessbility - dynamic title for MIN and MAX date', async () => {
|
|
994
|
+
const el = await fixture<HistogramDateRange>(
|
|
995
|
+
html`
|
|
996
|
+
<histogram-date-range
|
|
997
|
+
minDate="1900"
|
|
998
|
+
maxDate="2020"
|
|
999
|
+
.bins=${[33, 1, 100]}
|
|
1000
|
+
>
|
|
1001
|
+
</histogram-date-range>
|
|
1002
|
+
`
|
|
1003
|
+
);
|
|
1004
|
+
const svg = el.shadowRoot?.querySelector('svg') as SVGElement;
|
|
1005
|
+
expect(svg.querySelector('title')?.textContent).to.equal(
|
|
1006
|
+
'Filter results distribution from 1900 to 2020'
|
|
1007
|
+
);
|
|
1008
|
+
});
|
|
1009
|
+
|
|
1010
|
+
it('SVG accessbility - dynamic title for MIN date', async () => {
|
|
1011
|
+
const el = await fixture<HistogramDateRange>(
|
|
1012
|
+
html`
|
|
1013
|
+
<histogram-date-range minDate="1900" .bins=${[33, 1, 100]}>
|
|
1014
|
+
</histogram-date-range>
|
|
1015
|
+
`
|
|
1016
|
+
);
|
|
1017
|
+
const svg = el.shadowRoot?.querySelector('svg') as SVGElement;
|
|
1018
|
+
expect(svg.querySelector('title')?.textContent).to.equal(
|
|
1019
|
+
'Filter results distribution from 1900'
|
|
1020
|
+
);
|
|
1021
|
+
});
|
|
1022
|
+
|
|
1023
|
+
it('SVG accessbility - dynamic title for MAX date', async () => {
|
|
1024
|
+
const el = await fixture<HistogramDateRange>(
|
|
1025
|
+
html`
|
|
1026
|
+
<histogram-date-range maxDate="2020" .bins=${[33, 1, 100]}>
|
|
1027
|
+
</histogram-date-range>
|
|
1028
|
+
`
|
|
1029
|
+
);
|
|
1030
|
+
const svg = el.shadowRoot?.querySelector('svg') as SVGElement;
|
|
1031
|
+
expect(svg.querySelector('title')?.textContent).to.equal(
|
|
1032
|
+
'Filter results distribution up to 2020'
|
|
1033
|
+
);
|
|
1034
|
+
});
|
|
1035
|
+
|
|
1036
|
+
it('SVG accessbility - dynamic title for all dates', async () => {
|
|
1037
|
+
const el = await fixture<HistogramDateRange>(
|
|
1038
|
+
html`
|
|
1039
|
+
<histogram-date-range .bins=${[33, 1, 100]}> </histogram-date-range>
|
|
1040
|
+
`
|
|
1041
|
+
);
|
|
1042
|
+
const svg = el.shadowRoot?.querySelector('svg') as SVGElement;
|
|
1043
|
+
expect(svg.querySelector('title')?.textContent).to.equal(
|
|
1044
|
+
'Filter results distribution for all available dates'
|
|
1045
|
+
);
|
|
1046
|
+
});
|
|
1047
|
+
|
|
1048
|
+
it('SVG accessibility - dynamic desc', async () => {
|
|
1049
|
+
const el = await fixture<HistogramDateRange>(
|
|
1050
|
+
html`
|
|
1051
|
+
<histogram-date-range .bins=${[33, 1, 100]}> </histogram-date-range>
|
|
1052
|
+
`
|
|
1053
|
+
);
|
|
1054
|
+
const svg = el.shadowRoot?.querySelector('svg') as SVGElement;
|
|
1055
|
+
expect(svg.querySelector('desc')?.textContent).to.equal(
|
|
1056
|
+
'This chart shows the distribution of search results for all available dates. The bars represent result counts for each time period within the selected date range.'
|
|
1057
|
+
);
|
|
1058
|
+
});
|
|
992
1059
|
});
|
package/tsconfig.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "es2018",
|
|
4
|
-
"module": "esnext",
|
|
5
|
-
"moduleResolution": "node",
|
|
6
|
-
"noEmitOnError": true,
|
|
7
|
-
"lib": ["es2017", "dom"],
|
|
8
|
-
"strict": true,
|
|
9
|
-
"esModuleInterop": false,
|
|
10
|
-
"allowSyntheticDefaultImports": true,
|
|
11
|
-
"experimentalDecorators": true,
|
|
12
|
-
"importHelpers": true,
|
|
13
|
-
"outDir": "dist",
|
|
14
|
-
"sourceMap": true,
|
|
15
|
-
"inlineSources": true,
|
|
16
|
-
"rootDir": "./",
|
|
17
|
-
"declaration": true
|
|
18
|
-
},
|
|
19
|
-
"include": ["**/*.ts"],
|
|
20
|
-
"exclude": ["node_modules", "dist"]
|
|
21
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es2018",
|
|
4
|
+
"module": "esnext",
|
|
5
|
+
"moduleResolution": "node",
|
|
6
|
+
"noEmitOnError": true,
|
|
7
|
+
"lib": ["es2017", "dom"],
|
|
8
|
+
"strict": true,
|
|
9
|
+
"esModuleInterop": false,
|
|
10
|
+
"allowSyntheticDefaultImports": true,
|
|
11
|
+
"experimentalDecorators": true,
|
|
12
|
+
"importHelpers": true,
|
|
13
|
+
"outDir": "dist",
|
|
14
|
+
"sourceMap": true,
|
|
15
|
+
"inlineSources": true,
|
|
16
|
+
"rootDir": "./",
|
|
17
|
+
"declaration": true
|
|
18
|
+
},
|
|
19
|
+
"include": ["**/*.ts"],
|
|
20
|
+
"exclude": ["node_modules", "dist"]
|
|
21
|
+
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
// import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
|
|
2
|
-
|
|
3
|
-
/** Use Hot Module replacement by adding --hmr to the start command */
|
|
4
|
-
const hmr = process.argv.includes('--hmr');
|
|
5
|
-
|
|
6
|
-
export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
|
|
7
|
-
nodeResolve: true,
|
|
8
|
-
open: '/demo/',
|
|
9
|
-
watch: !hmr,
|
|
10
|
-
|
|
11
|
-
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
12
|
-
// esbuildTarget: 'auto'
|
|
13
|
-
|
|
14
|
-
/** Set appIndex to enable SPA routing */
|
|
15
|
-
// appIndex: 'demo/index.html',
|
|
16
|
-
|
|
17
|
-
/** Confgure bare import resolve plugin */
|
|
18
|
-
// nodeResolve: {
|
|
19
|
-
// exportConditions: ['browser', 'development']
|
|
20
|
-
// },
|
|
21
|
-
|
|
22
|
-
plugins: [
|
|
23
|
-
/** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
|
|
24
|
-
// hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
|
|
25
|
-
],
|
|
26
|
-
|
|
27
|
-
// See documentation for all available options
|
|
28
|
-
});
|
|
1
|
+
// import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
|
|
2
|
+
|
|
3
|
+
/** Use Hot Module replacement by adding --hmr to the start command */
|
|
4
|
+
const hmr = process.argv.includes('--hmr');
|
|
5
|
+
|
|
6
|
+
export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
|
|
7
|
+
nodeResolve: true,
|
|
8
|
+
open: '/demo/',
|
|
9
|
+
watch: !hmr,
|
|
10
|
+
|
|
11
|
+
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
12
|
+
// esbuildTarget: 'auto'
|
|
13
|
+
|
|
14
|
+
/** Set appIndex to enable SPA routing */
|
|
15
|
+
// appIndex: 'demo/index.html',
|
|
16
|
+
|
|
17
|
+
/** Confgure bare import resolve plugin */
|
|
18
|
+
// nodeResolve: {
|
|
19
|
+
// exportConditions: ['browser', 'development']
|
|
20
|
+
// },
|
|
21
|
+
|
|
22
|
+
plugins: [
|
|
23
|
+
/** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
|
|
24
|
+
// hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
|
|
25
|
+
],
|
|
26
|
+
|
|
27
|
+
// See documentation for all available options
|
|
28
|
+
});
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
// import { playwrightLauncher } from '@web/test-runner-playwright';
|
|
2
|
-
|
|
3
|
-
export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
|
|
4
|
-
files: 'dist/test/**/*.test.js',
|
|
5
|
-
nodeResolve: true,
|
|
6
|
-
|
|
7
|
-
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
8
|
-
// esbuildTarget: 'auto',
|
|
9
|
-
|
|
10
|
-
/** Confgure bare import resolve plugin */
|
|
11
|
-
// nodeResolve: {
|
|
12
|
-
// exportConditions: ['browser', 'development']
|
|
13
|
-
// },
|
|
14
|
-
|
|
15
|
-
/** Amount of browsers to run concurrently */
|
|
16
|
-
// concurrentBrowsers: 2,
|
|
17
|
-
|
|
18
|
-
/** Amount of test files per browser to test concurrently */
|
|
19
|
-
// concurrency: 1,
|
|
20
|
-
|
|
21
|
-
/** Browsers to run tests on */
|
|
22
|
-
// browsers: [
|
|
23
|
-
// playwrightLauncher({ product: 'chromium' }),
|
|
24
|
-
// playwrightLauncher({ product: 'firefox' }),
|
|
25
|
-
// playwrightLauncher({ product: 'webkit' }),
|
|
26
|
-
// ],
|
|
27
|
-
|
|
28
|
-
// See documentation for all available options
|
|
29
|
-
});
|
|
1
|
+
// import { playwrightLauncher } from '@web/test-runner-playwright';
|
|
2
|
+
|
|
3
|
+
export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
|
|
4
|
+
files: 'dist/test/**/*.test.js',
|
|
5
|
+
nodeResolve: true,
|
|
6
|
+
|
|
7
|
+
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
8
|
+
// esbuildTarget: 'auto',
|
|
9
|
+
|
|
10
|
+
/** Confgure bare import resolve plugin */
|
|
11
|
+
// nodeResolve: {
|
|
12
|
+
// exportConditions: ['browser', 'development']
|
|
13
|
+
// },
|
|
14
|
+
|
|
15
|
+
/** Amount of browsers to run concurrently */
|
|
16
|
+
// concurrentBrowsers: 2,
|
|
17
|
+
|
|
18
|
+
/** Amount of test files per browser to test concurrently */
|
|
19
|
+
// concurrency: 1,
|
|
20
|
+
|
|
21
|
+
/** Browsers to run tests on */
|
|
22
|
+
// browsers: [
|
|
23
|
+
// playwrightLauncher({ product: 'chromium' }),
|
|
24
|
+
// playwrightLauncher({ product: 'firefox' }),
|
|
25
|
+
// playwrightLauncher({ product: 'webkit' }),
|
|
26
|
+
// ],
|
|
27
|
+
|
|
28
|
+
// See documentation for all available options
|
|
29
|
+
});
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
-
barScalingFunction?: (input: number) => number;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* This is mainly to test the histogram-date-range within
|
|
13
|
-
* a lit-element.
|
|
14
|
-
*/
|
|
15
|
-
export declare class LitHistogramWrapper extends LitElement {
|
|
16
|
-
dataSource: DataSource;
|
|
17
|
-
render(): TemplateResult;
|
|
18
|
-
private randomize;
|
|
19
|
-
}
|
|
20
|
-
export {};
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { LitElement, html, nothing } 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 LitHistogramWrapper = class LitHistogramWrapper 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, _f, _g;
|
|
24
|
-
return html `
|
|
25
|
-
<histogram-date-range
|
|
26
|
-
.minDate=${(_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.minDate}
|
|
27
|
-
.maxDate=${(_b = this.dataSource) === null || _b === void 0 ? void 0 : _b.maxDate}
|
|
28
|
-
.minSelectedDate=${(_c = this.dataSource) === null || _c === void 0 ? void 0 : _c.minSelectedDate}
|
|
29
|
-
.maxSelectedDate=${(_d = this.dataSource) === null || _d === void 0 ? void 0 : _d.maxSelectedDate}
|
|
30
|
-
.updateDelay=${1000}
|
|
31
|
-
.bins=${(_e = this.dataSource) === null || _e === void 0 ? void 0 : _e.bins}
|
|
32
|
-
.barScalingFunction=${(_g = (_f = this.dataSource) === null || _f === void 0 ? void 0 : _f.barScalingFunction) !== null && _g !== void 0 ? _g : nothing}
|
|
33
|
-
></histogram-date-range>
|
|
34
|
-
|
|
35
|
-
<button @click=${this.randomize}>Randomize</button>
|
|
36
|
-
`;
|
|
37
|
-
}
|
|
38
|
-
randomize() {
|
|
39
|
-
const minDate = Math.round(Math.random() * 1000);
|
|
40
|
-
const maxDate = minDate + Math.round(Math.random() * 1000);
|
|
41
|
-
// generate random bins
|
|
42
|
-
const bins = Array.from({ length: 20 }, () => Math.floor(Math.random() * minDate));
|
|
43
|
-
this.dataSource = {
|
|
44
|
-
minDate,
|
|
45
|
-
maxDate,
|
|
46
|
-
minSelectedDate: minDate,
|
|
47
|
-
maxSelectedDate: maxDate,
|
|
48
|
-
bins: bins,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
__decorate([
|
|
53
|
-
state()
|
|
54
|
-
], LitHistogramWrapper.prototype, "dataSource", void 0);
|
|
55
|
-
LitHistogramWrapper = __decorate([
|
|
56
|
-
customElement('lit-histogram-wrapper')
|
|
57
|
-
], LitHistogramWrapper);
|
|
58
|
-
export { LitHistogramWrapper };
|
|
59
|
-
//# sourceMappingURL=list-histogram-wrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-histogram-wrapper.js","sourceRoot":"","sources":["../../../demo/js/list-histogram-wrapper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAkB,OAAO,EAAE,MAAM,KAAK,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,gCAAgC,CAAC;AAWxC;;;GAGG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU;IAA5C;;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;IAiCJ,CAAC;IA/BC,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;8BACP,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,kBAAkB,mCAAI,OAAO;;;uBAGrD,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;AAzCU;IAAR,KAAK,EAAE;uDAQN;AATS,mBAAmB;IAD/B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,mBAAmB,CA0C/B","sourcesContent":["import { LitElement, html, TemplateResult, nothing } from 'lit';\r\nimport { customElement, state } from 'lit/decorators.js';\r\nimport '../../src/histogram-date-range';\r\n\r\ninterface DataSource {\r\n minDate: unknown;\r\n maxDate: unknown;\r\n minSelectedDate: unknown;\r\n maxSelectedDate: unknown;\r\n bins: number[];\r\n barScalingFunction?: (input: number) => number;\r\n}\r\n\r\n/**\r\n * This is mainly to test the histogram-date-range within\r\n * a lit-element.\r\n */\r\n@customElement('lit-histogram-wrapper')\r\nexport class LitHistogramWrapper extends LitElement {\r\n @state() dataSource: DataSource = {\r\n minDate: 1955,\r\n maxDate: 2000,\r\n minSelectedDate: 1955,\r\n maxSelectedDate: 2000,\r\n bins: [\r\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\r\n ],\r\n };\r\n\r\n render(): TemplateResult {\r\n return html`\r\n <histogram-date-range\r\n .minDate=${this.dataSource?.minDate}\r\n .maxDate=${this.dataSource?.maxDate}\r\n .minSelectedDate=${this.dataSource?.minSelectedDate}\r\n .maxSelectedDate=${this.dataSource?.maxSelectedDate}\r\n .updateDelay=${1000}\r\n .bins=${this.dataSource?.bins}\r\n .barScalingFunction=${this.dataSource?.barScalingFunction ?? nothing}\r\n ></histogram-date-range>\r\n\r\n <button @click=${this.randomize}>Randomize</button>\r\n `;\r\n }\r\n\r\n private randomize() {\r\n const minDate = Math.round(Math.random() * 1000);\r\n const maxDate = minDate + Math.round(Math.random() * 1000);\r\n // generate random bins\r\n const bins = Array.from({ length: 20 }, () =>\r\n Math.floor(Math.random() * minDate)\r\n );\r\n this.dataSource = {\r\n minDate,\r\n maxDate,\r\n minSelectedDate: minDate,\r\n maxSelectedDate: maxDate,\r\n bins: bins,\r\n };\r\n }\r\n}\r\n"]}
|
|
@@ -1,21 +0,0 @@
|
|
|
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 LitHistogramWrapper extends LitElement {
|
|
15
|
-
barScaling?: 'linear' | 'logarithmic';
|
|
16
|
-
dataSource: DataSource;
|
|
17
|
-
render(): TemplateResult;
|
|
18
|
-
private randomize;
|
|
19
|
-
static get styles(): import("lit").CSSResult;
|
|
20
|
-
}
|
|
21
|
-
export {};
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { LitElement, html, css, nothing } from 'lit';
|
|
3
|
-
import { customElement, property, state } from 'lit/decorators.js';
|
|
4
|
-
import '../../src/histogram-date-range';
|
|
5
|
-
const IDENTITY_FN = (x) => x;
|
|
6
|
-
/**
|
|
7
|
-
* This is mainly to test the histogram-date-range within
|
|
8
|
-
* a lit-element.
|
|
9
|
-
*/
|
|
10
|
-
let LitHistogramWrapper = class LitHistogramWrapper extends LitElement {
|
|
11
|
-
constructor() {
|
|
12
|
-
super(...arguments);
|
|
13
|
-
this.dataSource = {
|
|
14
|
-
minDate: 1955,
|
|
15
|
-
maxDate: 2000,
|
|
16
|
-
minSelectedDate: 1955,
|
|
17
|
-
maxSelectedDate: 2000,
|
|
18
|
-
bins: [
|
|
19
|
-
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
|
20
|
-
],
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
render() {
|
|
24
|
-
var _a, _b, _c, _d, _e;
|
|
25
|
-
const scalingFn = this.barScaling === 'linear' ? IDENTITY_FN : nothing;
|
|
26
|
-
return html `
|
|
27
|
-
<histogram-date-range
|
|
28
|
-
.minDate=${(_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.minDate}
|
|
29
|
-
.maxDate=${(_b = this.dataSource) === null || _b === void 0 ? void 0 : _b.maxDate}
|
|
30
|
-
.minSelectedDate=${(_c = this.dataSource) === null || _c === void 0 ? void 0 : _c.minSelectedDate}
|
|
31
|
-
.maxSelectedDate=${(_d = this.dataSource) === null || _d === void 0 ? void 0 : _d.maxSelectedDate}
|
|
32
|
-
.updateDelay=${1000}
|
|
33
|
-
.bins=${(_e = this.dataSource) === null || _e === void 0 ? void 0 : _e.bins}
|
|
34
|
-
.barScalingFunction=${scalingFn}
|
|
35
|
-
></histogram-date-range>
|
|
36
|
-
|
|
37
|
-
<button @click=${this.randomize}>Randomize</button>
|
|
38
|
-
`;
|
|
39
|
-
}
|
|
40
|
-
randomize() {
|
|
41
|
-
const minDate = Math.round(Math.random() * 1000);
|
|
42
|
-
const maxDate = minDate + Math.round(Math.random() * 1000);
|
|
43
|
-
// generate random bins
|
|
44
|
-
const bins = Array.from({ length: 20 }, () => Math.floor(Math.random() * minDate));
|
|
45
|
-
this.dataSource = {
|
|
46
|
-
minDate,
|
|
47
|
-
maxDate,
|
|
48
|
-
minSelectedDate: minDate,
|
|
49
|
-
maxSelectedDate: maxDate,
|
|
50
|
-
bins: bins,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
static get styles() {
|
|
54
|
-
return css `
|
|
55
|
-
:host {
|
|
56
|
-
display: flex;
|
|
57
|
-
flex-direction: column;
|
|
58
|
-
align-items: center;
|
|
59
|
-
}
|
|
60
|
-
`;
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
__decorate([
|
|
64
|
-
property({ type: String })
|
|
65
|
-
], LitHistogramWrapper.prototype, "barScaling", void 0);
|
|
66
|
-
__decorate([
|
|
67
|
-
state()
|
|
68
|
-
], LitHistogramWrapper.prototype, "dataSource", void 0);
|
|
69
|
-
LitHistogramWrapper = __decorate([
|
|
70
|
-
customElement('lit-histogram-wrapper')
|
|
71
|
-
], LitHistogramWrapper);
|
|
72
|
-
export { LitHistogramWrapper };
|
|
73
|
-
//# sourceMappingURL=lit-histogram-wrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lit-histogram-wrapper.js","sourceRoot":"","sources":["../../../demo/js/lit-histogram-wrapper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAkB,OAAO,EAAE,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,gCAAgC,CAAC;AAUxC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAErC;;;GAGG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU;IAA5C;;QAGI,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;IA4CJ,CAAC;IA1CC,MAAM;;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QACvE,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;8BACP,SAAS;;;uBAGhB,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;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;KAMT,CAAC;IACJ,CAAC;CACF,CAAA;AAtD6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDAAuC;AAEzD;IAAR,KAAK,EAAE;uDAQN;AAXS,mBAAmB;IAD/B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,mBAAmB,CAuD/B","sourcesContent":["import { LitElement, html, css, TemplateResult, nothing } from 'lit';\nimport { customElement, property, 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\nconst IDENTITY_FN = (x: number) => x;\n\n/**\n * This is mainly to test the histogram-date-range within\n * a lit-element.\n */\n@customElement('lit-histogram-wrapper')\nexport class LitHistogramWrapper extends LitElement {\n @property({ type: String }) barScaling?: 'linear' | 'logarithmic';\n\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 const scalingFn = this.barScaling === 'linear' ? IDENTITY_FN : nothing;\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 .barScalingFunction=${scalingFn}\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 static get styles() {\n return css`\n :host {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n `;\n }\n}\n"]}
|