Skip to content

Commit

Permalink
format and cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
sgratzl committed Dec 21, 2018
1 parent aa53413 commit 62a600a
Show file tree
Hide file tree
Showing 10 changed files with 74 additions and 76 deletions.
8 changes: 4 additions & 4 deletions src/browser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@ export function getUnsupportedBrowserError() {
return 'browser cannot be detected';
}
const prefix = `unsupported browser detected:`;
switch(info.name) {
switch (info.name) {
case 'firefox':
const fVersion = parseInt(info.version.slice(0, info.version.indexOf('.')), 10);
if(fVersion <= SUPPORTED_FIREFOX_VERSION && fVersion !== 52) { // ESR
if (fVersion <= SUPPORTED_FIREFOX_VERSION && fVersion !== 52) { // ESR
return `${prefix} Firefox ${info.version} (&lt; ${SUPPORTED_FIREFOX_VERSION})`;
}
return null;
case 'edge':
const eVersion = parseInt(info.version.slice(0, info.version.indexOf('.')), 10);
if(eVersion <= SUPPORTED_EDGE_VERSION) {
if (eVersion <= SUPPORTED_EDGE_VERSION) {
return `${prefix} Edge ${info.version} (&lt; ${SUPPORTED_EDGE_VERSION})`;
}
return null;
case 'chrome':
const cVersion = parseInt(info.version.slice(0, info.version.indexOf('.')), 10);
if(cVersion <= SUPPORTED_CHROME_VERSION) {
if (cVersion <= SUPPORTED_CHROME_VERSION) {
return `${prefix} Chrome ${info.version} (&lt; ${SUPPORTED_CHROME_VERSION})`;
}
return null;
Expand Down
3 changes: 2 additions & 1 deletion src/bundle.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
export * from './index';
export {default} from './index';
import './style.scss';
import '!file-loader?name=schema.4.0.0.json!./provider/schema.json';
import './style.scss';

declare const __VERSION__: string;
declare const __BUILD_ID__: string;
declare const __LICENSE__: string;

/**
* LineUp version
* @type {string}
Expand Down
2 changes: 2 additions & 0 deletions src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,14 @@ export function defaultOptions(): ITaggleOptions {
levelOfDetail: () => 'high',
customRowUpdate: () => undefined,
dynamicHeight: () => null,

flags: {
disableFrozenColumns: true, //disable by default for speed navigator.userAgent.includes('Firefox/52') // disable by default in Firefox ESR 52
advancedRankingFeatures: true,
advancedModelFeatures: true,
advancedUIFeatures: true
},

ignoreUnsupportedBrowser: false
};
}
10 changes: 5 additions & 5 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ import LocalDataProvider from './provider/LocalDataProvider';
import LineUp, {ILineUpOptions} from './ui/LineUp';
import Taggle, {ITaggleOptions} from './ui/taggle';

export * from './builder';
export * from './config';
export * from './interfaces';
export {IAdvancedBoxPlotData, IBoxPlotData, ICategoricalBin, ICategoricalStatistics, INumberBin, IStatistics} from './internal/math';
export * from './model';
export * from './provider';
export * from './renderer';
export * from './model';
export * from './builder';
export * from './ui';
export * from './interfaces';
export * from './config';
export {default} from './ui/LineUp';
export {IBoxPlotData, IAdvancedBoxPlotData, IStatistics, ICategoricalBin, ICategoricalStatistics, INumberBin} from './internal/math';


export function createLocalDataProvider(data: any[], columns: IColumnDesc[], options: Partial<ILocalDataProviderOptions> = {}) {
Expand Down
2 changes: 1 addition & 1 deletion src/interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import Column, {IGroupData, IGroupItem} from './model';
import Ranking from './model/Ranking';
import {IDataProvider} from './provider';
import {ICellRendererFactory} from './renderer';
import {IToolbarAction, IToolbarDialogAddon} from './ui';
import {ERenderMode} from './renderer/interfaces';
import {IToolbarAction, IToolbarDialogAddon} from './ui';


/**
Expand Down
12 changes: 3 additions & 9 deletions src/ui/SelectionManager.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import AEventDispatcher from '../internal/AEventDispatcher';
import AEventDispatcher, {IEventListener} from '../internal/AEventDispatcher';
import OrderedSet from '../internal/OrderedSet';
import {IGroupData, IGroupItem, isGroup, forEachIndices} from '../model';
import {forEachIndices, IGroupData, IGroupItem, isGroup} from '../model';
import {IDataProvider} from '../provider';
import {rangeSelection} from '../renderer/SelectionRenderer';
import {IEventListener} from '../internal/AEventDispatcher';
import {engineCssClass, cssClass} from '../styles/index';
import {cssClass, engineCssClass} from '../styles';

interface IPoint {
x: number;
Expand Down Expand Up @@ -143,11 +142,6 @@ export default class SelectionManager extends AEventDispatcher {
};
}

/**
*
*/


selectRange(rows: {forEach: (c: (item: (IGroupItem | IGroupData)) => void) => void}, additional: boolean = false) {
const current = new OrderedSet<number>(additional ? this.ctx.provider.getSelection() : []);
const toggle = (dataIndex: number) => {
Expand Down
13 changes: 7 additions & 6 deletions src/ui/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
export * from './taggle';
export {default as EngineRenderer} from './EngineRenderer';
export {default as EngineRanking, IEngineRankingContext, IEngineRankingOptions} from './EngineRanking';
export {default as SlopeGraph, EMode} from './SlopeGraph';
export * from './dialogs';
export * from './panel';
export * from './toolbar';
export {default as EngineRanking, IEngineRankingContext, IEngineRankingOptions} from './EngineRanking';
export {default as EngineRenderer} from './EngineRenderer';
export * from './interfaces';
export {default as LineUp, ILineUpOptions} from './LineUp';
export * from './panel';
export {default as SlopeGraph, EMode} from './SlopeGraph';
export * from './taggle';
export * from './toolbar';

4 changes: 2 additions & 2 deletions src/ui/interfaces.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import {ILineUpFlags} from '../interfaces';
import {Column, IGroupData, IGroupItem} from '../model';
import {IDataProvider} from '../provider';
import {IImposer, IRenderContext} from '../renderer';
import {ISummaryRenderer} from '../renderer/interfaces';
import {IToolbarAction, IToolbarDialogAddon} from './toolbar';
import DialogManager from './dialogs/DialogManager';
import {ILineUpFlags} from '../interfaces';
import {IToolbarAction, IToolbarDialogAddon} from './toolbar';

export interface IRenderInfo {
type: string;
Expand Down
4 changes: 2 additions & 2 deletions src/ui/missing.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {uniqueId} from './dialogs/utils';
import {cssClass} from '../styles';
import {uniqueId} from './dialogs/utils';

/** @internal */
export const filterMissingText = 'Filter rows containing missing values';
Expand All @@ -18,7 +18,7 @@ export function filterMissingNumberMarkup(bakMissing: boolean, count: number, id
const id = uniqueId(idPrefix);
return `<div class="${cssClass('checkbox')}">
<input type="checkbox" ${bakMissing ? 'checked="checked"' : ''} ${count === 0 ? 'disabled' : ''} id="${id}">
<label for="${id}" class="${cssClass('filter-missing')} ${count === 0 ? cssClass('disabled'): ''}">Filter ${count} missing value rows</label>
<label for="${id}" class="${cssClass('filter-missing')} ${count === 0 ? cssClass('disabled') : ''}">Filter ${count} missing value rows</label>
</div>`;
}

Expand Down
92 changes: 46 additions & 46 deletions src/ui/toolbar.ts
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
import {getAllToolbarActions, isSupportType, getAllToolbarDialogAddons, isSortingAscByDefault} from '../model/annotations';
import {getAllToolbarActions, getAllToolbarDialogAddons, isSortingAscByDefault, isSupportType} from '../model/annotations';
import Column from '../model/Column';
import CompositeColumn, {IMultiLevelColumn} from '../model/CompositeColumn';
import {EDateSort} from '../model/DatesColumn';
import {EAdvancedSortMethod, ESortMethod} from '../model/INumberColumn';
import {cssClass} from '../styles';
import ADialog, {IDialogContext} from './dialogs/ADialog';
import ChangeRendererDialog from './dialogs/ChangeRendererDialog';
import RenameDialog from './dialogs/RenameDialog';
import BooleanFilterDialog from './dialogs/BooleanFilterDialog';
import CategoricalColorMappingDialog from './dialogs/CategoricalColorMappingDialog';
import CategoricalFilterDialog from './dialogs/CategoricalFilterDialog';
import CategoricalMappingFilterDialog from './dialogs/CategoricalMappingFilterDialog';
import ChangeRendererDialog from './dialogs/ChangeRendererDialog';
import ColorMappingDialog from './dialogs/ColorMappingDialog';
import CompositeChildrenDialog from './dialogs/CompositeChildrenDialog';
import CutOffHierarchyDialog from './dialogs/CutOffHierarchyDialog';
import DateFilterDialog from './dialogs/DateFilterDialog';
import EditPatternDialog from './dialogs/EditPatternDialog';
import appendDate from './dialogs/groupDate';
import GroupDialog from './dialogs/GroupDialog';
import appendNumber from './dialogs/groupNumber';
import appendString from './dialogs/groupString';
import MappingDialog from './dialogs/MappingDialog';
import NumberFilterDialog from './dialogs/NumberFilterDialog';
import ReduceDialog from './dialogs/ReduceDialog';
import RenameDialog from './dialogs/RenameDialog';
import ScriptEditDialog from './dialogs/ScriptEditDialog';
import SearchDialog from './dialogs/SearchDialog';
import ShowTopNDialog from './dialogs/ShowTopNDialog';
import SortDialog from './dialogs/SortDialog';
import StringFilterDialog from './dialogs/StringFilterDialog';
import WeightsEditDialog from './dialogs/WeightsEditDialog';
import GroupDialog from './dialogs/GroupDialog';
import {sortMethods} from './dialogs/utils';
import WeightsEditDialog from './dialogs/WeightsEditDialog';
import {IRankingHeaderContext} from './interfaces';
import SortDialog from './dialogs/SortDialog';
import {EAdvancedSortMethod, ESortMethod} from '../model/INumberColumn';
import {EDateSort} from '../model/DatesColumn';
import appendNumber from './dialogs/groupNumber';
import appendString from './dialogs/groupString';
import appendDate from './dialogs/groupDate';
import ColorMappingDialog from './dialogs/ColorMappingDialog';
import MappingDialog from './dialogs/MappingDialog';
import DateFilterDialog from './dialogs/DateFilterDialog';
import {cssClass} from '../styles';
import CategoricalColorMappingDialog from './dialogs/CategoricalColorMappingDialog';
import ShowTopNDialog from './dialogs/ShowTopNDialog';

export interface IUIOptions {
shortcut: boolean|'only';
shortcut: boolean | 'only';
order: number;
featureLevel: 'basic' | 'advanced';
featureCategory: 'ranking' | 'model' | 'ui';
Expand Down Expand Up @@ -67,7 +67,7 @@ export interface IDialogClass {
}

function ui(title: string, onClick: IOnClickHandler, options: Partial<IUIOptions> = {}): IToolbarAction {
return { title, onClick, options };
return {title, onClick, options};
}

export function dialogContext(ctx: IRankingHeaderContext, level: number, attachment: HTMLElement | MouseEvent): IDialogContext {
Expand Down Expand Up @@ -118,7 +118,7 @@ const sort: IToolbarAction = {
ranking.sortBy(col, isAscByDefault, current.length);
return;
}
let next: string|undefined = undefined;
let next: string | undefined = undefined;
if (isAscByDefault) {
next = order.asc ? 'desc' : undefined;
} else {
Expand Down Expand Up @@ -233,13 +233,13 @@ const group = ui('Group', (col, evt, ctx, level) => {
const order = current.indexOf(col);

ranking.groupBy(col, order >= 0 ? -1 : current.length);
}, { shortcut: 'only', order: 2, featureCategory: 'ranking', featureLevel: 'basic' });
}, {shortcut: 'only', order: 2, featureCategory: 'ranking', featureLevel: 'basic'});

// advanced ranking
const groupBy = ui('Group By &hellip;', (col, evt, ctx, level) => {
const dialog = new GroupDialog(col, dialogContext(ctx, level, evt), ctx);
dialog.open();
}, { shortcut: false, order: 2, featureCategory: 'ranking', featureLevel: 'advanced' });
}, {shortcut: false, order: 2, featureCategory: 'ranking', featureLevel: 'advanced'});

function toggleCompressExpand(col: Column, evt: MouseEvent, ctx: IRankingHeaderContext, level: number) {
ctx.dialogManager.removeAboveLevel(level);
Expand All @@ -261,14 +261,14 @@ const compress = {
title: 'Compress',
enabled: (col: IMultiLevelColumn) => !col.getCollapsed(),
onClick: toggleCompressExpand,
options: { featureCategory: 'model', featureLevel: 'advanced' }
options: {featureCategory: 'model', featureLevel: 'advanced'}
};

const expand = {
title: 'Expand',
enabled: (col: IMultiLevelColumn) => col.getCollapsed(),
onClick: toggleCompressExpand,
options: { featureCategory: 'model', featureLevel: 'advanced' }
options: {featureCategory: 'model', featureLevel: 'advanced'}
};

const setShowTopN: IToolbarAction = {
Expand All @@ -283,7 +283,7 @@ const setShowTopN: IToolbarAction = {
}
};

const toolbarAddons: { [key: string]: IToolbarDialogAddon } = {
const toolbarAddons: {[key: string]: IToolbarDialogAddon} = {
sortNumber: uiSortMethod(Object.keys(EAdvancedSortMethod)),
sortNumbers: uiSortMethod(Object.keys(EAdvancedSortMethod)),
sortBoxPlot: uiSortMethod(Object.keys(ESortMethod)),
Expand All @@ -306,7 +306,7 @@ const toolbarAddons: { [key: string]: IToolbarDialogAddon } = {
},
};

export const toolbarActions: { [key: string]: IToolbarAction | IToolbarDialogAddon } = Object.assign({
export const toolbarActions: {[key: string]: IToolbarAction | IToolbarDialogAddon} = Object.assign({
group,
groupBy,
compress,
Expand All @@ -318,28 +318,28 @@ export const toolbarActions: { [key: string]: IToolbarAction | IToolbarDialogAdd
remove,
rename,
setShowTopN,
search: uiDialog('Search &hellip;', SearchDialog, (ctx) => [ctx.provider], { shortcut: true, order: 3, featureCategory: 'ranking', featureLevel: 'basic' }),
filterNumber: uiDialog('Filter &hellip;', NumberFilterDialog, (ctx) => [ctx], { shortcut: true, featureCategory: 'ranking', featureLevel: 'basic' }),
filterDate: uiDialog('Filter &hellip;', DateFilterDialog, (ctx) => [ctx], { shortcut: true, featureCategory: 'ranking', featureLevel: 'basic' }),
filterString: uiDialog('Filter &hellip;', StringFilterDialog, () => [], { shortcut: true, featureCategory: 'ranking', featureLevel: 'basic' }),
filterCategorical: uiDialog('Filter &hellip;', CategoricalFilterDialog, () => [], { shortcut: true, featureCategory: 'ranking', featureLevel: 'basic' }),
filterOrdinal: uiDialog('Filter &hellip;', CategoricalMappingFilterDialog, () => [], { shortcut: true, featureCategory: 'ranking', featureLevel: 'basic' }),
filterBoolean: uiDialog('Filter &hellip;', BooleanFilterDialog, () => [], { shortcut: true, featureCategory: 'ranking', featureLevel: 'basic' }),
colorMapped: uiDialog('Color Mapping &hellip;', ColorMappingDialog, () => [], { shortcut: false, featureCategory: 'ui', featureLevel: 'advanced' }),
colorMappedCategorical: uiDialog('Color Mapping &hellip;', CategoricalColorMappingDialog, () => [], { shortcut: false, featureCategory: 'ui', featureLevel: 'advanced' }),
script: uiDialog('Edit Combine Script &hellip;', ScriptEditDialog, () => [], { shortcut: true, featureCategory: 'model', featureLevel: 'advanced' }),
reduce: uiDialog('Reduce by &hellip;', ReduceDialog, () => [], { featureCategory: 'model', featureLevel: 'advanced' }),
cutoff: uiDialog('Set Cut Off &hellip;', CutOffHierarchyDialog, (ctx) => [ctx.idPrefix], { featureCategory: 'model', featureLevel: 'advanced' }),
editMapping: uiDialog('Data Mapping &hellip;', MappingDialog, (ctx) => [ctx], { featureCategory: 'model', featureLevel: 'advanced' }),
editPattern: uiDialog('Edit Pattern &hellip;', EditPatternDialog, (ctx) => [ctx.idPrefix], { featureCategory: 'model', featureLevel: 'advanced' }),
editWeights: uiDialog('Edit Weights &hellip;', WeightsEditDialog, () => [], { shortcut: true, featureCategory: 'model', featureLevel: 'advanced' }),
compositeContained: uiDialog('Contained Columns &hellip;', CompositeChildrenDialog, (ctx) => [ctx], { featureCategory: 'model', featureLevel: 'advanced' }),
search: uiDialog('Search &hellip;', SearchDialog, (ctx) => [ctx.provider], {shortcut: true, order: 3, featureCategory: 'ranking', featureLevel: 'basic'}),
filterNumber: uiDialog('Filter &hellip;', NumberFilterDialog, (ctx) => [ctx], {shortcut: true, featureCategory: 'ranking', featureLevel: 'basic'}),
filterDate: uiDialog('Filter &hellip;', DateFilterDialog, (ctx) => [ctx], {shortcut: true, featureCategory: 'ranking', featureLevel: 'basic'}),
filterString: uiDialog('Filter &hellip;', StringFilterDialog, () => [], {shortcut: true, featureCategory: 'ranking', featureLevel: 'basic'}),
filterCategorical: uiDialog('Filter &hellip;', CategoricalFilterDialog, () => [], {shortcut: true, featureCategory: 'ranking', featureLevel: 'basic'}),
filterOrdinal: uiDialog('Filter &hellip;', CategoricalMappingFilterDialog, () => [], {shortcut: true, featureCategory: 'ranking', featureLevel: 'basic'}),
filterBoolean: uiDialog('Filter &hellip;', BooleanFilterDialog, () => [], {shortcut: true, featureCategory: 'ranking', featureLevel: 'basic'}),
colorMapped: uiDialog('Color Mapping &hellip;', ColorMappingDialog, () => [], {shortcut: false, featureCategory: 'ui', featureLevel: 'advanced'}),
colorMappedCategorical: uiDialog('Color Mapping &hellip;', CategoricalColorMappingDialog, () => [], {shortcut: false, featureCategory: 'ui', featureLevel: 'advanced'}),
script: uiDialog('Edit Combine Script &hellip;', ScriptEditDialog, () => [], {shortcut: true, featureCategory: 'model', featureLevel: 'advanced'}),
reduce: uiDialog('Reduce by &hellip;', ReduceDialog, () => [], {featureCategory: 'model', featureLevel: 'advanced'}),
cutoff: uiDialog('Set Cut Off &hellip;', CutOffHierarchyDialog, (ctx) => [ctx.idPrefix], {featureCategory: 'model', featureLevel: 'advanced'}),
editMapping: uiDialog('Data Mapping &hellip;', MappingDialog, (ctx) => [ctx], {featureCategory: 'model', featureLevel: 'advanced'}),
editPattern: uiDialog('Edit Pattern &hellip;', EditPatternDialog, (ctx) => [ctx.idPrefix], {featureCategory: 'model', featureLevel: 'advanced'}),
editWeights: uiDialog('Edit Weights &hellip;', WeightsEditDialog, () => [], {shortcut: true, featureCategory: 'model', featureLevel: 'advanced'}),
compositeContained: uiDialog('Contained Columns &hellip;', CompositeChildrenDialog, (ctx) => [ctx], {featureCategory: 'model', featureLevel: 'advanced'}),
splitCombined: ui('Split Combined Column', (col, _evt, ctx, level) => {
ctx.dialogManager.removeAboveLevel(level - 1); // close itself
// split the combined column into its children
(<CompositeColumn>col).children.reverse().forEach((c) => col.insertAfterMe(c));
col.removeMe();
}, { featureCategory: 'model', featureLevel: 'advanced' }),
}, {featureCategory: 'model', featureLevel: 'advanced'}),
invertSelection: ui('Invert Selection', (col, _evt, ctx, level) => {
ctx.dialogManager.removeAboveLevel(level - 1); // close itself
const s = ctx.provider.getSelection();
Expand All @@ -351,7 +351,7 @@ export const toolbarActions: { [key: string]: IToolbarAction | IToolbarDialogAdd
const ss = new Set(s);
const others = order.filter((d) => !ss.has(d));
ctx.provider.setSelection(others);
}, { featureCategory: 'model', featureLevel: 'advanced' })
}, {featureCategory: 'model', featureLevel: 'advanced'})
}, toolbarAddons);

function sortActions(a: IToolbarAction, b: IToolbarAction) {
Expand All @@ -368,7 +368,7 @@ function getFullToolbar(col: Column, ctx: IRankingHeaderContext) {
if (cache.has(col.desc.type)) {
return cache.get(col.desc.type)!;
}
const icons = <{ [key: string]: IToolbarAction }>ctx.toolbar;
const icons = <{[key: string]: IToolbarAction}>ctx.toolbar;
const actions = new Set<IToolbarAction>();
if (!col.fixed) {
actions.add(remove);
Expand Down Expand Up @@ -422,7 +422,7 @@ export function getToolbarDialogAddons(col: Column, key: string, ctx: IRankingHe
if (cacheAddon.has(cacheKey)) {
return cacheAddon.get(cacheKey)!;
}
const icons = <{ [key: string]: IToolbarDialogAddon }>ctx.toolbar;
const icons = <{[key: string]: IToolbarDialogAddon}>ctx.toolbar;
const actions = new Set<IToolbarDialogAddon>();

const keys = getAllToolbarDialogAddons(col, key);
Expand Down

0 comments on commit 62a600a

Please sign in to comment.