blob: e4707ac18cd26d1da4b567794ff759d99f3202c1 [file] [log] [blame]
import './index';
import { ParamSet, fromParamSet } from 'common-sk/modules/query';
import { SearchControlsSk, SearchCriteria } from './search-controls-sk';
import { $$ } from 'common-sk/modules/dom';
const corpora = ['canvaskit', 'colorImage', 'gm', 'image', 'pathkit', 'skp', 'svg'];
const paramSet: ParamSet = {
'car make': ['chevrolet', 'dodge', 'ford', 'lincoln motor company'],
'color': ['blue', 'green', 'red'],
'used': ['yes', 'no'],
'year': ['2020', '2019', '2018', '2017', '2016', '2015']
};
let currentValue: SearchCriteria = {
corpus: 'gm',
leftHandTraceFilter: {
'car make': ['chevrolet', 'dodge', 'ford'],
'color': ['blue'],
'year': ['2020', '2019']
},
rightHandTraceFilter: {'color': ['blue'], 'used': ['yes']},
includePositiveDigests: true,
includeNegativeDigests: true,
includeUntriagedDigests: true,
includeDigestsNotAtHead: false,
includeIgnoredDigests: false,
minRGBADelta: 100,
maxRGBADelta: 200,
mustHaveReferenceImage: true,
sortOrder: 'descending'
};
updateSearchCriteriaPreview();
const searchControlsSk = new SearchControlsSk();
searchControlsSk.paramSet = paramSet;
searchControlsSk.corpora = corpora;
searchControlsSk.searchCriteria = currentValue;
searchControlsSk.addEventListener('search-controls-sk-change', (e: Event) => {
currentValue = (e as CustomEvent<SearchCriteria>).detail;
updateSearchCriteriaPreview();
});
$$('.container')!.appendChild(searchControlsSk);
$$<HTMLButtonElement>('#clear')!.addEventListener('click', () => {
searchControlsSk.searchCriteria = {
corpus: 'canvaskit',
leftHandTraceFilter: {},
rightHandTraceFilter: {},
includePositiveDigests: false,
includeNegativeDigests: false,
includeUntriagedDigests: false,
includeDigestsNotAtHead: false,
includeIgnoredDigests: false,
minRGBADelta: 0,
maxRGBADelta: 0,
mustHaveReferenceImage: false,
sortOrder: 'ascending'
};
currentValue = searchControlsSk.searchCriteria;
updateSearchCriteriaPreview();
});
// Updates the "Search criteria" section of the demo page.
function updateSearchCriteriaPreview() {
const set =
(selector: string, text: string | number | boolean) =>
$$<HTMLSpanElement>('.preview ' + selector)!.innerText = text.toString();
set('.corpus', currentValue.corpus);
set('.left-hand-trace-filter', fromParamSet(currentValue.leftHandTraceFilter));
set('.right-hand-trace-filter', fromParamSet(currentValue.rightHandTraceFilter));
set('.include-positive-digests', currentValue.includePositiveDigests);
set('.include-negative-digests', currentValue.includeNegativeDigests);
set('.include-untriaged-digests', currentValue.includeUntriagedDigests);
set('.include-digests-not-at-head', currentValue.includeDigestsNotAtHead);
set('.include-ignored-digests', currentValue.includeIgnoredDigests);
set('.min-rgba-delta', currentValue.minRGBADelta);
set('.max-rgba-delta', currentValue.maxRGBADelta);
set('.sort-order', currentValue.sortOrder);
set('.must-have-reference-image', currentValue.mustHaveReferenceImage);
}