blob: bbd3cd9999efad81245ccb7c7da4c92b4999e08e [file] [log] [blame]
import './index';
import { ParamSet } from '../query';
import {
ParamSetSk,
ParamSetSkClickEventDetail,
ParamSetSkRemoveClickEventDetail,
ParamSetSkCheckboxClickEventDetail,
} from './paramset-sk';
import { CheckOrRadio } from '../../../elements-sk/modules/checkbox-sk/checkbox-sk';
import { $$ } from '../dom';
const paramSet1: ParamSet = {
arch: ['Arm7', 'Arm64', 'x86_64', 'x86'],
bench_type: ['micro', 'playback', 'recording'],
compiler: ['GCC', 'MSVC', 'Clang'],
cpu_or_gpu: ['GPU', 'CPU'],
};
const paramSet2: ParamSet = {
arch: ['Arm7'],
bench_type: ['playback', 'recording'],
compiler: [],
extra_config: ['Android', 'Android_NoGPUThreads'],
cpu_or_gpu: ['GPU'],
};
const title1 = 'ParamSet 1';
const title2 = 'ParamSet 2';
const allParamSetSks: ParamSetSk[] = [];
const findParamSetSk = (selector: string): ParamSetSk => {
const paramSetSk = document.querySelector<ParamSetSk>(selector)!;
allParamSetSks.push(paramSetSk);
return paramSetSk;
};
let paramSetSk = findParamSetSk('#one-paramset-no-titles');
paramSetSk.paramsets = [paramSet1];
paramSetSk = findParamSetSk('#one-paramset-with-titles');
paramSetSk.paramsets = [paramSet1];
paramSetSk.titles = [title1];
paramSetSk = findParamSetSk('#many-paramsets-no-titles');
paramSetSk.paramsets = [paramSet1, paramSet2];
paramSetSk = findParamSetSk('#many-paramsets-with-titles');
paramSetSk.paramsets = [paramSet1, paramSet2];
paramSetSk.titles = [title1, title2];
paramSetSk = findParamSetSk('#many-paramsets-with-titles-values-clickable');
paramSetSk.paramsets = [paramSet1, paramSet2];
paramSetSk.titles = [title1, title2];
paramSetSk.clickable_values = true;
paramSetSk = findParamSetSk(
'#many-paramsets-with-titles-keys-and-values-clickable'
);
paramSetSk.paramsets = [paramSet1, paramSet2];
paramSetSk.titles = [title1, title2];
paramSetSk.clickable = true;
paramSetSk = findParamSetSk('#clickable-plus');
paramSetSk.paramsets = [paramSet1];
paramSetSk.titles = [title1];
paramSetSk = findParamSetSk('#clickable-plus-with-clickable-values');
paramSetSk.paramsets = [paramSet1];
paramSetSk.titles = [title1];
paramSetSk = findParamSetSk('#copy-content');
paramSetSk.paramsets = [paramSet1];
paramSetSk.titles = [title1];
paramSetSk = findParamSetSk('#removable-values');
paramSetSk.paramsets = [paramSet1];
paramSetSk = findParamSetSk('#checkbox-values');
paramSetSk.paramsets = [paramSet1];
$$<CheckOrRadio>('#checkbox-cpu_or_gpu-GPU', paramSetSk)!.click();
allParamSetSks.forEach((paramSetSk) => {
paramSetSk.addEventListener('paramset-key-click', (e) => {
const detail = (e as CustomEvent<ParamSetSkClickEventDetail>).detail;
document.querySelector<HTMLPreElement>('#key-click-event')!.textContent =
JSON.stringify(detail, null, ' ');
});
paramSetSk.addEventListener('paramset-key-value-click', (e) => {
const detail = (e as CustomEvent<ParamSetSkClickEventDetail>).detail;
document.querySelector<HTMLPreElement>(
'#key-value-click-event'
)!.textContent = JSON.stringify(detail, null, ' ');
});
paramSetSk.addEventListener('plus-click', (e) => {
const detail = (e as CustomEvent<ParamSetSkClickEventDetail>).detail;
document.querySelector<HTMLPreElement>('#plus-click-event')!.textContent =
JSON.stringify(detail, null, ' ');
});
paramSetSk.addEventListener('paramset-value-remove-click', (e) => {
const detail = (e as CustomEvent<ParamSetSkRemoveClickEventDetail>).detail;
document.querySelector<HTMLPreElement>('#remove-click-event')!.textContent =
JSON.stringify(detail, null, ' ');
});
paramSetSk.addEventListener('paramset-checkbox-click', (e) => {
const detail = (e as CustomEvent<ParamSetSkCheckboxClickEventDetail>)
.detail;
document.querySelector<HTMLPreElement>(
'#paramset-checkbox-click'
)!.textContent = JSON.stringify(detail, null, ' ');
});
});
document.querySelector('#highlight')!.addEventListener('click', () => {
allParamSetSks.forEach(
(paramSetSk) => (paramSetSk.highlight = { arch: 'Arm7', cpu_or_gpu: 'GPU' })
);
});
document.querySelector('#clear')!.addEventListener('click', () => {
allParamSetSks.forEach((paramSetSk) => (paramSetSk.highlight = {}));
});