Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Vis] Move Timelion Vis to vis_type_timelion #52069

Merged
merged 83 commits into from
Jan 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
f78af5f
Deangularize timelion vis
maryia-lapata Nov 29, 2019
7a153b1
Merge remote-tracking branch 'kibana/master' into timelion-shim
maryia-lapata Dec 3, 2019
e889324
Refactoring
maryia-lapata Dec 3, 2019
8c43435
Fix path
maryia-lapata Dec 3, 2019
fd07c8c
Update timelion_controller.ts
maryia-lapata Dec 3, 2019
4ca27df
Remove unused deps
maryia-lapata Dec 3, 2019
bb0c70d
Merge remote-tracking branch 'kibana/master' into timelion-shim
maryia-lapata Dec 9, 2019
d460715
Merge remote-tracking branch 'kibana/master' into timelion-shim
maryia-lapata Dec 10, 2019
9d14089
Create vis_type_timelion
maryia-lapata Dec 10, 2019
7f3cebb
Create ChartComponent
maryia-lapata Dec 11, 2019
f428d43
Render chart in react
maryia-lapata Dec 12, 2019
8287a0e
Reactify timelion editor
sulemanof Dec 12, 2019
b390d1d
Change translation ids
sulemanof Dec 13, 2019
df7dc2d
Merge remote-tracking branch 'upstream/master' into EUIfication/optio…
sulemanof Dec 13, 2019
d7d491a
Use hooks
maryia-lapata Dec 13, 2019
78bd381
Merge branch 'master' into EUIfication/options/timelion
elasticmachine Dec 13, 2019
6f10b86
Merge remote-tracking branch 'upstream/master' into EUIfication/optio…
sulemanof Dec 16, 2019
c35088b
Merge branch 'EUIfication/options/timelion' of github.com:sulemanof/k…
sulemanof Dec 16, 2019
6a600b0
Add @types/pegjs into renovate.json5
sulemanof Dec 16, 2019
73fbc38
Add validation, add hover suggestions
sulemanof Dec 16, 2019
40400bc
Style fixes
sulemanof Dec 17, 2019
bcf36c6
Merge remote-tracking branch 'upstream/master' into EUIfication/optio…
sulemanof Dec 17, 2019
f640b05
Change plugin setup, use kibana context
sulemanof Dec 19, 2019
d99a6d3
Merge branch 'master' into timelion-shim
maryia-lapata Dec 19, 2019
cd66a64
Update
maryia-lapata Dec 19, 2019
eb19db4
Fix ticks
maryia-lapata Dec 19, 2019
8618f00
Fix plotselected listener
maryia-lapata Dec 19, 2019
a94441c
Fix plothover handler
maryia-lapata Dec 19, 2019
c942bbb
Add TS for options
maryia-lapata Dec 19, 2019
a691c12
Merge branch 'master' into EUIfication/options/timelion
elasticmachine Dec 19, 2019
3cf416f
Merge remote-tracking branch 'upstream/master' into EUIfication/optio…
sulemanof Dec 20, 2019
e826581
Merge remote-tracking branch 'kibana/master' into timelion-shim
maryia-lapata Dec 21, 2019
8f2101e
Merge remote-tracking branch 'upstream/master' into EUIfication/optio…
sulemanof Dec 21, 2019
6c9ebfd
Update TS
maryia-lapata Dec 21, 2019
1b96f11
Restructuring
maryia-lapata Dec 21, 2019
2091a0c
Change plugin start
sulemanof Dec 21, 2019
d673890
Remove vis from timelion plugin
maryia-lapata Dec 21, 2019
cb4716a
Rename class
maryia-lapata Dec 21, 2019
daf056e
Mock services
sulemanof Dec 21, 2019
21bd6d6
Fix other comments
sulemanof Dec 23, 2019
1a2d283
Merge remote-tracking branch 'upstream/master' into EUIfication/optio…
sulemanof Dec 23, 2019
969b393
Remove duplicate files
maryia-lapata Dec 23, 2019
f04c8f3
Convert test to jest
maryia-lapata Dec 23, 2019
306ce10
Remove kibana_services from timelion
maryia-lapata Dec 24, 2019
97acfda
Delete visualize_app.ts.~LOCAL
maryia-lapata Dec 24, 2019
d0b2018
Refactoring
maryia-lapata Dec 24, 2019
47efd9a
Merge branch 'timelion-shim' of https://github.com/maryia-lapata/kiba…
maryia-lapata Dec 24, 2019
e61210a
Merge branch 'master' into timelion-shim
maryia-lapata Jan 3, 2020
78f448e
Fix TS
maryia-lapata Jan 3, 2020
e8fbfa7
Refactoring, TS
maryia-lapata Jan 3, 2020
5c5c49e
Import eui variables
maryia-lapata Jan 3, 2020
59b4149
Import styling constants
maryia-lapata Jan 3, 2020
0868ffe
Merge remote-tracking branch 'kibana/master' into timelion-shim
maryia-lapata Jan 4, 2020
f19ba8b
Merge branch 'EUIfication/options/timelion' into timelion-shim
maryia-lapata Jan 4, 2020
8c83862
Move react components to vis_type_timelion
maryia-lapata Jan 4, 2020
c055ebc
Fix TS
maryia-lapata Jan 4, 2020
3b06748
Move ui imports to legacy_imports.ts
maryia-lapata Jan 4, 2020
55aeab2
Move chain.peg to vis_type_timelion
maryia-lapata Jan 4, 2020
52ed879
Merge branch 'master' into timelion-shim
maryia-lapata Jan 8, 2020
c06cf84
Fix path
maryia-lapata Jan 8, 2020
e8741af
Merge remote-tracking branch 'kibana/master' into timelion-shim
maryia-lapata Jan 9, 2020
ae1f360
Use KibanaContext instead kibana_services.ts
maryia-lapata Jan 9, 2020
7ef8120
Refactoring
maryia-lapata Jan 9, 2020
1c7e6c9
Refactoring
maryia-lapata Jan 9, 2020
41601ff
Merge branch 'master' into timelion-shim
elasticmachine Jan 13, 2020
9724c09
Add @types/flot
maryia-lapata Jan 13, 2020
6633945
Fix issue with hovered series color
maryia-lapata Jan 14, 2020
0fbafeb
Update renovate.json5
maryia-lapata Jan 14, 2020
6a9c010
Pass timelionPanels as dependencies
maryia-lapata Jan 14, 2020
a37506c
Move common folder to vis_type_timelion
maryia-lapata Jan 14, 2020
687bd7e
Move back tick_formatters.ts
maryia-lapata Jan 14, 2020
fbf9508
Rename styles file
maryia-lapata Jan 14, 2020
b34185a
Refactoring
maryia-lapata Jan 14, 2020
31f5be9
Update _index.scss
maryia-lapata Jan 14, 2020
4842db3
Merge branch 'master' into timelion-shim
elasticmachine Jan 14, 2020
a30016f
Move to_milliseconds to common
maryia-lapata Jan 15, 2020
426f376
Revert yaxes formatting
maryia-lapata Jan 15, 2020
66f706c
Refactoring
maryia-lapata Jan 15, 2020
c34477c
Refactoring
maryia-lapata Jan 15, 2020
630da84
Use Panel directly
maryia-lapata Jan 16, 2020
07c5582
Merge branch 'master' into timelion-shim
elasticmachine Jan 16, 2020
99ecd4a
Refactoring of to_milliseconds.ts
maryia-lapata Jan 17, 2020
f7a95e1
Merge remote-tracking branch 'kibana/master' into timelion-shim
maryia-lapata Jan 17, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ src/legacy/core_plugins/vis_type_vislib/public/vislib/__tests__/lib/fixtures/moc
/src/legacy/core_plugins/console/public/webpackShims
/src/legacy/core_plugins/console/public/tests/webpackShims
/src/legacy/ui/public/utils/decode_geo_hash.js
/src/legacy/core_plugins/timelion/public/webpackShims/jquery.flot.*
/src/legacy/core_plugins/vis_type_timelion/public/webpackShims/jquery.flot.*
/src/core/lib/kbn_internal_native_observable
/packages/*/target
/packages/eslint-config-kibana
Expand Down
2 changes: 1 addition & 1 deletion .i18nrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"statusPage": "src/legacy/core_plugins/status_page",
"telemetry": "src/legacy/core_plugins/telemetry",
"tileMap": "src/legacy/core_plugins/tile_map",
"timelion": "src/legacy/core_plugins/timelion",
"timelion": ["src/legacy/core_plugins/timelion", "src/legacy/core_plugins/vis_type_timelion"],
"uiActions": "src/plugins/ui_actions",
"visTypeMarkdown": "src/legacy/core_plugins/vis_type_markdown",
"visTypeMetric": "src/legacy/core_plugins/vis_type_metric",
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@
"@kbn/test-subj-selector": "0.2.1",
"@kbn/ui-framework": "1.0.0",
"@kbn/ui-shared-deps": "1.0.0",
"@types/flot": "^0.0.31",
"@types/json-stable-stringify": "^1.0.32",
"@types/lodash.clonedeep": "^4.5.4",
"@types/node-forge": "^0.9.0",
Expand Down
8 changes: 8 additions & 0 deletions renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,14 @@
'@types/file-saver',
],
},
{
groupSlug: 'flot',
groupName: 'flot related packages',
packageNames: [
'flot',
'@types/flot',
],
},
{
groupSlug: 'getopts',
groupName: 'getopts related packages',
Expand Down
2 changes: 0 additions & 2 deletions src/legacy/core_plugins/timelion/public/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,6 @@ document.title = 'Timelion - Kibana';

const app = require('ui/modules').get('apps/timelion', []);

require('./vis');

require('ui/routes').enable();

require('ui/routes').when('/:id?', {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,13 @@

import expect from '@kbn/expect';
import PEG from 'pegjs';
import grammar from 'raw-loader!../../chain.peg';
import grammar from 'raw-loader!../../../../vis_type_timelion/public/chain.peg';
import { SUGGESTION_TYPE, suggest } from '../timelion_expression_input_helpers';
import { getArgValueSuggestions } from '../../services/arg_value_suggestions';
import { setIndexPatterns, setSavedObjectsClient } from '../../services/plugin_services';
import { getArgValueSuggestions } from '../../../../vis_type_timelion/public/helpers/arg_value_suggestions';
import {
setIndexPatterns,
setSavedObjectsClient,
} from '../../../../vis_type_timelion/public/helpers/plugin_services';

describe('Timelion expression suggestions', () => {
setIndexPatterns({});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
@import './timelion_expression_input';
@import './cells/index';
@import './chart/index';
@import './timelion_expression_suggestions/index';
@import './timelion_help/index';
@import './timelion_interval/index';

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
import _ from 'lodash';
import $ from 'jquery';
import PEG from 'pegjs';
import grammar from 'raw-loader!../chain.peg';
import grammar from 'raw-loader!../../../vis_type_timelion/public/chain.peg';
import timelionExpressionInputTemplate from './timelion_expression_input.html';
import {
SUGGESTION_TYPE,
Expand All @@ -52,7 +52,7 @@ import {
insertAtLocation,
} from './timelion_expression_input_helpers';
import { comboBoxKeyCodes } from '@elastic/eui';
import { getArgValueSuggestions } from '../services/arg_value_suggestions';
import { getArgValueSuggestions } from '../../../vis_type_timelion/public/helpers/arg_value_suggestions';

const Parser = PEG.generate(grammar);

Expand Down
2 changes: 0 additions & 2 deletions src/legacy/core_plugins/timelion/public/index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,4 @@
// timChart__legend-isLoading

@import './app';
@import './components/index';
@import './directives/index';
@import './vis/index';
7 changes: 1 addition & 6 deletions src/legacy/core_plugins/timelion/public/legacy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,10 @@
import { PluginInitializerContext } from 'kibana/public';
import { npSetup, npStart } from 'ui/new_platform';
import { plugin } from '.';
import { setup as visualizations } from '../../visualizations/public/np_ready/public/legacy';
import { TimelionPluginSetupDependencies } from './plugin';
import { LegacyDependenciesPlugin } from './shim';

const setupPlugins: Readonly<TimelionPluginSetupDependencies> = {
visualizations,
data: npSetup.plugins.data,
expressions: npSetup.plugins.expressions,

// Temporary solution
// It will be removed when all dependent services are migrated to the new platform.
__LEGACY: new LegacyDependenciesPlugin(),
Expand All @@ -37,4 +32,4 @@ const setupPlugins: Readonly<TimelionPluginSetupDependencies> = {
const pluginInstance = plugin({} as PluginInitializerContext);

export const setup = pluginInstance.setup(npSetup.core, setupPlugins);
export const start = pluginInstance.start(npStart.core, npStart.plugins);
export const start = pluginInstance.start(npStart.core);
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,18 @@
* under the License.
*/

import './flot';
import '../../../../vis_type_timelion/public/flot';
import _ from 'lodash';
import $ from 'jquery';
import moment from 'moment-timezone';
import { timefilter } from 'ui/timefilter';
// @ts-ignore
import observeResize from '../../lib/observe_resize';
// @ts-ignore
import { calculateInterval, DEFAULT_TIME_FORMAT } from '../../../common/lib';
import { calculateInterval, DEFAULT_TIME_FORMAT } from '../../../../vis_type_timelion/common/lib';
import { tickFormatters } from '../../../../vis_type_timelion/public/helpers/tick_formatters';
import { TimelionVisualizationDependencies } from '../../plugin';
import { tickFormatters } from '../../services/tick_formatters';
import { xaxisFormatterProvider } from './xaxis_formatter';
import { generateTicksProvider } from './tick_generator';
import { xaxisFormatterProvider } from '../../../../vis_type_timelion/public/helpers/xaxis_formatter';
import { generateTicksProvider } from '../../../../vis_type_timelion/public/helpers/tick_generator';

const DEBOUNCE_DELAY = 50;

Expand Down
29 changes: 2 additions & 27 deletions src/legacy/core_plugins/timelion/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,33 +22,19 @@ import {
Plugin,
PluginInitializerContext,
IUiSettingsClient,
HttpSetup,
} from 'kibana/public';
import { Plugin as ExpressionsPlugin } from 'src/plugins/expressions/public';
import { DataPublicPluginSetup, TimefilterContract } from 'src/plugins/data/public';
import { PluginsStart } from 'ui/new_platform/new_platform';
import { VisualizationsSetup } from '../../visualizations/public/np_ready/public';
import { getTimelionVisualizationConfig } from './timelion_vis_fn';
import { getTimelionVisualization } from './vis';
import { getTimeChart } from './panels/timechart/timechart';
import { Panel } from './panels/panel';
import { LegacyDependenciesPlugin, LegacyDependenciesPluginSetup } from './shim';
import { setIndexPatterns, setSavedObjectsClient } from './services/plugin_services';

/** @internal */
export interface TimelionVisualizationDependencies extends LegacyDependenciesPluginSetup {
uiSettings: IUiSettingsClient;
http: HttpSetup;
timelionPanels: Map<string, Panel>;
timefilter: TimefilterContract;
}

/** @internal */
export interface TimelionPluginSetupDependencies {
expressions: ReturnType<ExpressionsPlugin['setup']>;
visualizations: VisualizationsSetup;
data: DataPublicPluginSetup;

// Temporary solution
__LEGACY: LegacyDependenciesPlugin;
}
Expand All @@ -61,24 +47,16 @@ export class TimelionPlugin implements Plugin<Promise<void>, void> {
this.initializerContext = initializerContext;
}

public async setup(
core: CoreSetup,
{ __LEGACY, expressions, visualizations, data }: TimelionPluginSetupDependencies
) {
public async setup(core: CoreSetup, { __LEGACY }: TimelionPluginSetupDependencies) {
const timelionPanels: Map<string, Panel> = new Map();

const dependencies: TimelionVisualizationDependencies = {
uiSettings: core.uiSettings,
http: core.http,
timelionPanels,
timefilter: data.query.timefilter.timefilter,
...(await __LEGACY.setup(core, timelionPanels)),
};

this.registerPanels(dependencies);

expressions.registerFunction(() => getTimelionVisualizationConfig(dependencies));
visualizations.types.createBaseVisualization(getTimelionVisualization(dependencies));
}

private registerPanels(dependencies: TimelionVisualizationDependencies) {
Expand All @@ -87,15 +65,12 @@ export class TimelionPlugin implements Plugin<Promise<void>, void> {
dependencies.timelionPanels.set(timeChartPanel.name, timeChartPanel);
}

public start(core: CoreStart, plugins: PluginsStart) {
public start(core: CoreStart) {
const timelionUiEnabled = core.injectedMetadata.getInjectedVar('timelionUiEnabled');

if (timelionUiEnabled === false) {
core.chrome.navLinks.update('timelion', { hidden: true });
}

setIndexPatterns(plugins.data.indexPatterns);
setSavedObjectsClient(core.savedObjects.client);
}

public stop(): void {}
Expand Down
2 changes: 0 additions & 2 deletions src/legacy/core_plugins/timelion/public/vis/_index.scss

This file was deleted.

3 changes: 0 additions & 3 deletions src/legacy/core_plugins/timelion/public/vis/timelion_vis.html

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import parseSheet from './lib/parse_sheet.js';
import repositionArguments from './lib/reposition_arguments.js';
import indexArguments from './lib/index_arguments.js';
import validateTime from './lib/validate_time.js';
import { calculateInterval } from '../../common/lib';
import { calculateInterval } from '../../../vis_type_timelion/common/lib';

export default function chainRunner(tlConfig) {
const preprocessChain = require('./lib/preprocess_chain')(tlConfig);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ import { i18n } from '@kbn/i18n';
import fs from 'fs';
import path from 'path';
import _ from 'lodash';
const grammar = fs.readFileSync(path.resolve(__dirname, '../../../public/chain.peg'), 'utf8');
const grammar = fs.readFileSync(
path.resolve(__dirname, '../../../../vis_type_timelion/public/chain.peg'),
'utf8'
);
import PEG from 'pegjs';
const Parser = PEG.generate(grammar);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import { i18n } from '@kbn/i18n';
import moment from 'moment';

import toMS from '../../lib/to_milliseconds.js';
import { toMS } from '../../../../vis_type_timelion/common/lib';

export default function validateTime(time, tlConfig) {
const span = moment.duration(moment(time.to).diff(moment(time.from))).asMilliseconds();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* under the License.
*/

import { TimelionFunctionArgs } from '../../../common/types';
import { TimelionFunctionArgs } from '../../../../vis_type_timelion/common/types';

export interface TimelionFunctionInterface extends TimelionFunctionConfig {
chainable: boolean;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import Chainable from '../../lib/classes/chainable';
import ses from './lib/ses';
import des from './lib/des';
import tes from './lib/tes';
import toMilliseconds from '../../lib/to_milliseconds';
import { toMS } from '../../../../vis_type_timelion/common/lib';

export default new Chainable('holt', {
args: [
Expand Down Expand Up @@ -125,9 +125,7 @@ export default new Chainable('holt', {
})
);
}
const season = Math.round(
toMilliseconds(args.byName.season) / toMilliseconds(tlConfig.time.interval)
);
const season = Math.round(toMS(args.byName.season) / toMS(tlConfig.time.interval));
points = tes(points, alpha, beta, gamma, season, sample);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import { i18n } from '@kbn/i18n';
import alter from '../lib/alter.js';
import Chainable from '../lib/classes/chainable';
import { DEFAULT_TIME_FORMAT } from '../../common/lib';
import { DEFAULT_TIME_FORMAT } from '../../../vis_type_timelion/common/lib';

export default new Chainable('legend', {
args: [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import { i18n } from '@kbn/i18n';
import alter from '../lib/alter.js';
import _ from 'lodash';
import Chainable from '../lib/classes/chainable';
import toMS from '../lib/to_milliseconds.js';
import { toMS } from '../../../vis_type_timelion/common/lib';

const validPositions = ['left', 'right', 'center'];
const defaultPosition = 'center';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import { i18n } from '@kbn/i18n';
import alter from '../lib/alter.js';
import toMS from '../lib/to_milliseconds.js';
import { toMS } from '../../../vis_type_timelion/common/lib';
import _ from 'lodash';
import Chainable from '../lib/classes/chainable';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
* under the License.
*/

import toMS from '../../server/lib/to_milliseconds.js';
import { toMS } from './to_milliseconds';

// Totally cribbed this from Kibana 3.
// I bet there's something similar in the Kibana 4 code. Somewhere. Somehow.
function roundInterval(interval) {
function roundInterval(interval: number) {
switch (true) {
case interval <= 500: // <= 0.5s
return '100ms';
Expand Down Expand Up @@ -58,9 +58,24 @@ function roundInterval(interval) {
}
}

export function calculateInterval(from, to, size, interval, min) {
if (interval !== 'auto') return interval;
const dateMathInterval = roundInterval((to - from) / size);
if (toMS(dateMathInterval) < toMS(min)) return min;
export function calculateInterval(
from: number,
to: number,
size: number,
interval: string,
min: string
) {
if (interval !== 'auto') {
return interval;
}

const dateMathInterval: string = roundInterval((to - from) / size);
const dateMathIntervalMs = toMS(dateMathInterval);
const minMs = toMS(min);

if (dateMathIntervalMs !== undefined && minMs !== undefined && dateMathIntervalMs < minMs) {
return min;
}

return dateMathInterval;
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,6 @@
*/

export { calculateInterval } from './calculate_interval';
export { toMS } from './to_milliseconds';

export const DEFAULT_TIME_FORMAT = 'MMMM Do YYYY, HH:mm:ss.SSS';
Loading