diff --git a/src/plugins/presentation_util/public/components/fixtures/flights.ts b/src/plugins/presentation_util/public/components/fixtures/flights.ts new file mode 100644 index 0000000000000..19ac29226693b --- /dev/null +++ b/src/plugins/presentation_util/public/components/fixtures/flights.ts @@ -0,0 +1,1953 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const flights = [ + { + FlightNum: '9HY9SWR', + DestCountry: 'AU', + OriginWeather: 'Sunny', + OriginCityName: 'Frankfurt am Main', + AvgTicketPrice: 841.2656419677076, + DistanceMiles: 10247.856675613455, + FlightDelay: false, + DestWeather: 'Rain', + Dest: 'Sydney Kingsford Smith International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'DE', + dayOfWeek: 0, + DistanceKilometers: 16492.32665375846, + timestamp: '2018-01-01T00:00:00', + DestLocation: { lat: '-33.94609833', lon: '151.177002' }, + DestAirportID: 'SYD', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 1030.7704158599038, + Origin: 'Frankfurt am Main Airport', + OriginLocation: { lat: '50.033333', lon: '8.570556' }, + DestRegion: 'SE-BD', + OriginAirportID: 'FRA', + OriginRegion: 'DE-HE', + DestCityName: 'Sydney', + FlightTimeHour: 17.179506930998397, + FlightDelayMin: 0, + }, + { + FlightNum: 'X98CCZO', + DestCountry: 'IT', + OriginWeather: 'Clear', + OriginCityName: 'Cape Town', + AvgTicketPrice: 882.9826615595518, + DistanceMiles: 5482.606664853586, + FlightDelay: false, + DestWeather: 'Sunny', + Dest: 'Venice Marco Polo Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'ZA', + dayOfWeek: 0, + DistanceKilometers: 8823.40014044213, + timestamp: '2018-01-01T18:27:00', + DestLocation: { lat: '45.505299', lon: '12.3519' }, + DestAirportID: 'VE05', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 464.3894810759016, + Origin: 'Cape Town International Airport', + OriginLocation: { lat: '-33.96480179', lon: '18.60169983' }, + DestRegion: 'IT-34', + OriginAirportID: 'CPT', + OriginRegion: 'SE-BD', + DestCityName: 'Venice', + FlightTimeHour: 7.73982468459836, + FlightDelayMin: 0, + }, + { + FlightNum: 'UFK2WIZ', + DestCountry: 'IT', + OriginWeather: 'Rain', + OriginCityName: 'Venice', + AvgTicketPrice: 190.6369038508356, + DistanceMiles: 0.0, + FlightDelay: false, + DestWeather: 'Cloudy', + Dest: 'Venice Marco Polo Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 0.0, + timestamp: '2018-01-01T17:11:14', + DestLocation: { lat: '45.505299', lon: '12.3519' }, + DestAirportID: 'VE05', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 0.0, + Origin: 'Venice Marco Polo Airport', + OriginLocation: { lat: '45.505299', lon: '12.3519' }, + DestRegion: 'IT-34', + OriginAirportID: 'VE05', + OriginRegion: 'IT-34', + DestCityName: 'Venice', + FlightTimeHour: 0.0, + FlightDelayMin: 0, + }, + { + FlightNum: 'EAYQW69', + DestCountry: 'IT', + OriginWeather: 'Thunder & Lightning', + OriginCityName: 'Naples', + AvgTicketPrice: 181.69421554118, + DistanceMiles: 345.31943877289535, + FlightDelay: true, + DestWeather: 'Clear', + Dest: "Treviso-Sant'Angelo Airport", + FlightDelayType: 'Weather Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 555.7377668725265, + timestamp: '2018-01-01T10:33:28', + DestLocation: { lat: '45.648399', lon: '12.1944' }, + DestAirportID: 'TV01', + Carrier: 'Kibana Airlines', + Cancelled: true, + FlightTimeMin: 222.74905899019436, + Origin: 'Naples International Airport', + OriginLocation: { lat: '40.886002', lon: '14.2908' }, + DestRegion: 'IT-34', + OriginAirportID: 'NA01', + OriginRegion: 'IT-72', + DestCityName: 'Treviso', + FlightTimeHour: 3.712484316503239, + FlightDelayMin: 180, + }, + { + FlightNum: '58U013N', + DestCountry: 'CN', + OriginWeather: 'Damaging Wind', + OriginCityName: 'Mexico City', + AvgTicketPrice: 730.041778346198, + DistanceMiles: 8300.428124665925, + FlightDelay: false, + DestWeather: 'Clear', + Dest: "Xi'an Xianyang International Airport", + FlightDelayType: 'No Delay', + OriginCountry: 'MX', + dayOfWeek: 0, + DistanceKilometers: 13358.24419986236, + timestamp: '2018-01-01T05:13:00', + DestLocation: { lat: '34.447102', lon: '108.751999' }, + DestAirportID: 'XIY', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 785.7790705801389, + Origin: 'Licenciado Benito Juarez International Airport', + OriginLocation: { lat: '19.4363', lon: '-99.072098' }, + DestRegion: 'SE-BD', + OriginAirportID: 'AICM', + OriginRegion: 'MX-DIF', + DestCityName: "Xi'an", + FlightTimeHour: 13.096317843002314, + FlightDelayMin: 0, + }, + { + FlightNum: 'XEJ78I2', + DestCountry: 'IT', + OriginWeather: 'Rain', + OriginCityName: 'Edmonton', + AvgTicketPrice: 418.1520890531832, + DistanceMiles: 4891.315227492962, + FlightDelay: false, + DestWeather: 'Thunder & Lightning', + Dest: 'Genoa Cristoforo Colombo Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'CA', + dayOfWeek: 0, + DistanceKilometers: 7871.808813474433, + timestamp: '2018-01-01T01:43:03', + DestLocation: { lat: '44.4133', lon: '8.8375' }, + DestAirportID: 'GE01', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 393.5904406737217, + Origin: 'Edmonton International Airport', + OriginLocation: { lat: '53.30970001', lon: '-113.5800018' }, + DestRegion: 'IT-42', + OriginAirportID: 'CYEG', + OriginRegion: 'CA-AB', + DestCityName: 'Genova', + FlightTimeHour: 6.5598406778953615, + FlightDelayMin: 0, + }, + { + FlightNum: 'EVARI8I', + DestCountry: 'CH', + OriginWeather: 'Clear', + OriginCityName: 'Zurich', + AvgTicketPrice: 180.24681638061213, + DistanceMiles: 0.0, + FlightDelay: true, + DestWeather: 'Hail', + Dest: 'Zurich Airport', + FlightDelayType: 'Security Delay', + OriginCountry: 'CH', + dayOfWeek: 0, + DistanceKilometers: 0.0, + timestamp: '2018-01-01T13:49:53', + DestLocation: { lat: '47.464699', lon: '8.54917' }, + DestAirportID: 'ZRH', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 300.0, + Origin: 'Zurich Airport', + OriginLocation: { lat: '47.464699', lon: '8.54917' }, + DestRegion: 'CH-ZH', + OriginAirportID: 'ZRH', + OriginRegion: 'CH-ZH', + DestCityName: 'Zurich', + FlightTimeHour: 5.0, + FlightDelayMin: 300, + }, + { + FlightNum: '1IRBW25', + DestCountry: 'CA', + OriginWeather: 'Thunder & Lightning', + OriginCityName: 'Rome', + AvgTicketPrice: 585.1843103083941, + DistanceMiles: 4203.1829639346715, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Ottawa Macdonald-Cartier International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 6764.367283910481, + timestamp: '2018-01-01T04:54:59', + DestLocation: { lat: '45.32249832', lon: '-75.66919708' }, + DestAirportID: 'YOW', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 614.9424803554983, + Origin: 'Ciampino___G. B. Pastine International Airport', + OriginLocation: { lat: '41.7994', lon: '12.5949' }, + DestRegion: 'CA-ON', + OriginAirportID: 'RM12', + OriginRegion: 'IT-62', + DestCityName: 'Ottawa', + FlightTimeHour: 10.249041339258305, + FlightDelayMin: 0, + }, + { + FlightNum: 'M05KE88', + DestCountry: 'IN', + OriginWeather: 'Heavy Fog', + OriginCityName: 'Milan', + AvgTicketPrice: 960.8697358054351, + DistanceMiles: 4377.166776556647, + FlightDelay: true, + DestWeather: 'Cloudy', + Dest: 'Rajiv Gandhi International Airport', + FlightDelayType: 'NAS Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 7044.367088850781, + timestamp: '2018-01-01T12:09:35', + DestLocation: { lat: '17.23131752', lon: '78.42985535' }, + DestAirportID: 'HYD', + Carrier: 'Kibana Airlines', + Cancelled: true, + FlightTimeMin: 602.0305907375651, + Origin: 'Milano Linate Airport', + OriginLocation: { lat: '45.445099', lon: '9.27674' }, + DestRegion: 'SE-BD', + OriginAirportID: 'MI11', + OriginRegion: 'IT-25', + DestCityName: 'Hyderabad', + FlightTimeHour: 10.033843178959419, + FlightDelayMin: 15, + }, + { + FlightNum: 'SNI3M1Z', + DestCountry: 'IT', + OriginWeather: 'Cloudy', + OriginCityName: 'Moscow', + AvgTicketPrice: 296.8777725965789, + DistanceMiles: 1303.5538675692512, + FlightDelay: false, + DestWeather: 'Rain', + Dest: "Treviso-Sant'Angelo Airport", + FlightDelayType: 'No Delay', + OriginCountry: 'RU', + dayOfWeek: 0, + DistanceKilometers: 2097.866595449369, + timestamp: '2018-01-01T12:09:35', + DestLocation: { lat: '45.648399', lon: '12.1944' }, + DestAirportID: 'TV01', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 174.82221628744742, + Origin: 'Sheremetyevo International Airport', + OriginLocation: { lat: '55.972599', lon: '37.4146' }, + DestRegion: 'IT-34', + OriginAirportID: 'SVO', + OriginRegion: 'RU-MOS', + DestCityName: 'Treviso', + FlightTimeHour: 2.9137036047907903, + FlightDelayMin: 0, + }, + { + FlightNum: 'JQ2XXQ5', + DestCountry: 'FI', + OriginWeather: 'Rain', + OriginCityName: 'Albuquerque', + AvgTicketPrice: 906.4379477399872, + DistanceMiles: 5313.8222112173335, + FlightDelay: false, + DestWeather: 'Rain', + Dest: 'Helsinki Vantaa Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 8551.76789268935, + timestamp: '2018-01-01T22:06:14', + DestLocation: { lat: '60.31719971', lon: '24.9633007' }, + DestAirportID: 'HEL', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 503.04517015819704, + Origin: 'Albuquerque International Sunport Airport', + OriginLocation: { lat: '35.040199', lon: '-106.609001' }, + DestRegion: 'FI-ES', + OriginAirportID: 'ABQ', + OriginRegion: 'US-NM', + DestCityName: 'Helsinki', + FlightTimeHour: 8.384086169303284, + FlightDelayMin: 0, + }, + { + FlightNum: 'V30ITD0', + DestCountry: 'AT', + OriginWeather: 'Rain', + OriginCityName: 'Venice', + AvgTicketPrice: 704.4637710312036, + DistanceMiles: 268.99172653633303, + FlightDelay: false, + DestWeather: 'Cloudy', + Dest: 'Vienna International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 432.90022115088834, + timestamp: '2018-01-01T11:52:34', + DestLocation: { lat: '48.11029816', lon: '16.56970024' }, + DestAirportID: 'VIE', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 36.07501842924069, + Origin: 'Venice Marco Polo Airport', + OriginLocation: { lat: '45.505299', lon: '12.3519' }, + DestRegion: 'AT-9', + OriginAirportID: 'VE05', + OriginRegion: 'IT-34', + DestCityName: 'Vienna', + FlightTimeHour: 0.6012503071540115, + FlightDelayMin: 0, + }, + { + FlightNum: 'P0WMFH7', + DestCountry: 'CN', + OriginWeather: 'Heavy Fog', + OriginCityName: 'Mexico City', + AvgTicketPrice: 922.499077027416, + DistanceMiles: 8025.381414737853, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Shanghai Pudong International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'MX', + dayOfWeek: 0, + DistanceKilometers: 12915.599427519877, + timestamp: '2018-01-01T02:13:46', + DestLocation: { lat: '31.14340019', lon: '121.8050003' }, + DestAirportID: 'PVG', + Carrier: 'Logstash Airways', + Cancelled: true, + FlightTimeMin: 679.7683909220988, + Origin: 'Licenciado Benito Juarez International Airport', + OriginLocation: { lat: '19.4363', lon: '-99.072098' }, + DestRegion: 'SE-BD', + OriginAirportID: 'AICM', + OriginRegion: 'MX-DIF', + DestCityName: 'Shanghai', + FlightTimeHour: 11.32947318203498, + FlightDelayMin: 0, + }, + { + FlightNum: 'VT9O2KD', + DestCountry: 'CA', + OriginWeather: 'Rain', + OriginCityName: 'Naples', + AvgTicketPrice: 374.9592762864519, + DistanceMiles: 4311.560440686985, + FlightDelay: false, + DestWeather: 'Rain', + Dest: 'Ottawa Macdonald-Cartier International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 6938.783925856956, + timestamp: '2018-01-01T14:21:13', + DestLocation: { lat: '45.32249832', lon: '-75.66919708' }, + DestAirportID: 'YOW', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 330.41828218366453, + Origin: 'Naples International Airport', + OriginLocation: { lat: '40.886002', lon: '14.2908' }, + DestRegion: 'CA-ON', + OriginAirportID: 'NA01', + OriginRegion: 'IT-72', + DestCityName: 'Ottawa', + FlightTimeHour: 5.506971369727742, + FlightDelayMin: 0, + }, + { + FlightNum: 'NRHSVG8', + DestCountry: 'PR', + OriginWeather: 'Cloudy', + OriginCityName: 'Rome', + AvgTicketPrice: 552.9173708459598, + DistanceMiles: 4806.775668847457, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Luis Munoz Marin International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 7735.755582005642, + timestamp: '2018-01-01T17:42:53', + DestLocation: { lat: '18.43939972', lon: '-66.00180054' }, + DestAirportID: 'SJU', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 407.1450306318759, + Origin: 'Ciampino___G. B. Pastine International Airport', + OriginLocation: { lat: '41.7994', lon: '12.5949' }, + DestRegion: 'PR-U-A', + OriginAirportID: 'RM12', + OriginRegion: 'IT-62', + DestCityName: 'San Juan', + FlightTimeHour: 6.7857505105312645, + FlightDelayMin: 0, + }, + { + FlightNum: 'YIPS2BZ', + DestCountry: 'DE', + OriginWeather: 'Thunder & Lightning', + OriginCityName: 'Chengdu', + AvgTicketPrice: 566.4875569256166, + DistanceMiles: 4896.74792596565, + FlightDelay: false, + DestWeather: 'Sunny', + Dest: 'Cologne Bonn Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'CN', + dayOfWeek: 0, + DistanceKilometers: 7880.551894165264, + timestamp: '2018-01-01T19:55:32', + DestLocation: { lat: '50.86589813', lon: '7.142739773' }, + DestAirportID: 'CGN', + Carrier: 'Kibana Airlines', + Cancelled: true, + FlightTimeMin: 656.7126578471053, + Origin: 'Chengdu Shuangliu International Airport', + OriginLocation: { lat: '30.57850075', lon: '103.9469986' }, + DestRegion: 'DE-NW', + OriginAirportID: 'CTU', + OriginRegion: 'SE-BD', + DestCityName: 'Cologne', + FlightTimeHour: 10.945210964118422, + FlightDelayMin: 0, + }, + { + FlightNum: 'C7IBZ42', + DestCountry: 'IT', + OriginWeather: 'Thunder & Lightning', + OriginCityName: 'Mexico City', + AvgTicketPrice: 989.9527866266118, + DistanceMiles: 6244.404143498341, + FlightDelay: false, + DestWeather: 'Damaging Wind', + Dest: 'Venice Marco Polo Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'MX', + dayOfWeek: 0, + DistanceKilometers: 10049.394341914194, + timestamp: '2018-01-01T07:49:27', + DestLocation: { lat: '45.505299', lon: '12.3519' }, + DestAirportID: 'VE05', + Carrier: 'Logstash Airways', + Cancelled: true, + FlightTimeMin: 773.0303339933996, + Origin: 'Licenciado Benito Juarez International Airport', + OriginLocation: { lat: '19.4363', lon: '-99.072098' }, + DestRegion: 'IT-34', + OriginAirportID: 'AICM', + OriginRegion: 'MX-DIF', + DestCityName: 'Venice', + FlightTimeHour: 12.883838899889993, + FlightDelayMin: 0, + }, + { + FlightNum: '7TTZM4I', + DestCountry: 'AR', + OriginWeather: 'Rain', + OriginCityName: 'Cleveland', + AvgTicketPrice: 569.6132552035547, + DistanceMiles: 5450.245542110189, + FlightDelay: true, + DestWeather: 'Cloudy', + Dest: 'Ministro Pistarini International Airport', + FlightDelayType: 'NAS Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 8771.31996172178, + timestamp: '2018-01-01T01:30:47', + DestLocation: { lat: '-34.8222', lon: '-58.5358' }, + DestAirportID: 'EZE', + Carrier: 'ES-Air', + Cancelled: false, + FlightTimeMin: 704.7169201324446, + Origin: 'Cleveland Hopkins International Airport', + OriginLocation: { lat: '41.4117012', lon: '-81.84980011' }, + DestRegion: 'SE-BD', + OriginAirportID: 'CLE', + OriginRegion: 'US-OH', + DestCityName: 'Buenos Aires', + FlightTimeHour: 11.745282002207409, + FlightDelayMin: 30, + }, + { + FlightNum: 'CSW89S3', + DestCountry: 'CN', + OriginWeather: 'Hail', + OriginCityName: 'Olenegorsk', + AvgTicketPrice: 277.4297073844173, + DistanceMiles: 4202.458848620224, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Shanghai Pudong International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'RU', + dayOfWeek: 0, + DistanceKilometers: 6763.2019332738655, + timestamp: '2018-01-01T07:58:17', + DestLocation: { lat: '31.14340019', lon: '121.8050003' }, + DestAirportID: 'PVG', + Carrier: 'ES-Air', + Cancelled: false, + FlightTimeMin: 355.95799648809816, + Origin: 'Olenya Air Base', + OriginLocation: { lat: '68.15180206', lon: '33.46390152' }, + DestRegion: 'SE-BD', + OriginAirportID: 'XLMO', + OriginRegion: 'RU-MUR', + DestCityName: 'Shanghai', + FlightTimeHour: 5.932633274801636, + FlightDelayMin: 0, + }, + { + FlightNum: 'RBFKZBX', + DestCountry: 'IN', + OriginWeather: 'Cloudy', + OriginCityName: 'Casper', + AvgTicketPrice: 772.1008456460212, + DistanceMiles: 7507.304095087099, + FlightDelay: true, + DestWeather: 'Clear', + Dest: 'Indira Gandhi International Airport', + FlightDelayType: 'Late Aircraft Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 12081.834801603853, + timestamp: '2018-01-01T00:02:06', + DestLocation: { lat: '28.5665', lon: '77.103104' }, + DestAirportID: 'DEL', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 875.1146751002408, + Origin: 'Casper-Natrona County International Airport', + OriginLocation: { lat: '42.90800095', lon: '-106.4639969' }, + DestRegion: 'SE-BD', + OriginAirportID: 'CPR', + OriginRegion: 'US-WY', + DestCityName: 'New Delhi', + FlightTimeHour: 14.585244585004013, + FlightDelayMin: 120, + }, + { + FlightNum: 'R43CELD', + DestCountry: 'US', + OriginWeather: 'Cloudy', + OriginCityName: 'Erie', + AvgTicketPrice: 167.59992219374266, + DistanceMiles: 965.1786928006221, + FlightDelay: true, + DestWeather: 'Clear', + Dest: 'Wichita Mid Continent Airport', + FlightDelayType: 'Carrier Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 1553.3045381865245, + timestamp: '2018-01-01T01:08:20', + DestLocation: { lat: '37.64989853', lon: '-97.43309784' }, + DestAirportID: 'ICT', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 373.96688277078687, + Origin: 'Erie International Tom Ridge Field', + OriginLocation: { lat: '42.08312701', lon: '-80.17386675' }, + DestRegion: 'US-KS', + OriginAirportID: 'ERI', + OriginRegion: 'US-PA', + DestCityName: 'Wichita', + FlightTimeHour: 6.232781379513114, + FlightDelayMin: 300, + }, + { + FlightNum: '1TJWK8F', + DestCountry: 'CA', + OriginWeather: 'Clear', + OriginCityName: 'Newark', + AvgTicketPrice: 253.21006490337038, + DistanceMiles: 328.5065863946441, + FlightDelay: true, + DestWeather: 'Hail', + Dest: 'Ottawa Macdonald-Cartier International Airport', + FlightDelayType: 'NAS Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 528.6801037747022, + timestamp: '2018-01-01T01:08:20', + DestLocation: { lat: '45.32249832', lon: '-75.66919708' }, + DestAirportID: 'YOW', + Carrier: 'ES-Air', + Cancelled: false, + FlightTimeMin: 130.66770029036172, + Origin: 'Newark Liberty International Airport', + OriginLocation: { lat: '40.69250107', lon: '-74.16870117' }, + DestRegion: 'CA-ON', + OriginAirportID: 'EWR', + OriginRegion: 'US-NJ', + DestCityName: 'Ottawa', + FlightTimeHour: 2.177795004839362, + FlightDelayMin: 90, + }, + { + FlightNum: 'UDTSN13', + DestCountry: 'JP', + OriginWeather: 'Sunny', + OriginCityName: 'Copenhagen', + AvgTicketPrice: 917.2476203642742, + DistanceMiles: 5354.622537746889, + FlightDelay: false, + DestWeather: 'Damaging Wind', + Dest: 'Itami Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'DK', + dayOfWeek: 0, + DistanceKilometers: 8617.42965338773, + timestamp: '2018-01-01T07:48:35', + DestLocation: { lat: '34.78549957', lon: '135.4380035' }, + DestAirportID: 'ITM', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 574.4953102258486, + Origin: 'Copenhagen Kastrup Airport', + OriginLocation: { lat: '55.61790085', lon: '12.65600014' }, + DestRegion: 'SE-BD', + OriginAirportID: 'CPH', + OriginRegion: 'DK-84', + DestCityName: 'Osaka', + FlightTimeHour: 9.574921837097476, + FlightDelayMin: 0, + }, + { + FlightNum: '7Y08OAU', + DestCountry: 'AT', + OriginWeather: 'Heavy Fog', + OriginCityName: 'Seattle', + AvgTicketPrice: 451.5911757026697, + DistanceMiles: 5403.40296642641, + FlightDelay: false, + DestWeather: 'Heavy Fog', + Dest: 'Vienna International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 8695.934143600545, + timestamp: '2018-01-01T18:57:21', + DestLocation: { lat: '48.11029816', lon: '16.56970024' }, + DestAirportID: 'VIE', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 579.728942906703, + Origin: 'Seattle Tacoma International Airport', + OriginLocation: { lat: '47.44900131', lon: '-122.3089981' }, + DestRegion: 'AT-9', + OriginAirportID: 'SEA', + OriginRegion: 'US-WA', + DestCityName: 'Vienna', + FlightTimeHour: 9.66214904844505, + FlightDelayMin: 0, + }, + { + FlightNum: 'MH65PPZ', + DestCountry: 'FR', + OriginWeather: 'Rain', + OriginCityName: 'Berlin', + AvgTicketPrice: 307.0672008820741, + DistanceMiles: 529.8263707088325, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Charles de Gaulle International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'DE', + dayOfWeek: 0, + DistanceKilometers: 852.6728907420354, + timestamp: '2018-01-01T13:18:25', + DestLocation: { lat: '49.01279831', lon: '2.549999952' }, + DestAirportID: 'CDG', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 50.15722886717855, + Origin: 'Berlin-Tegel Airport', + OriginLocation: { lat: '52.5597', lon: '13.2877' }, + DestRegion: 'FR-J', + OriginAirportID: 'TXL', + OriginRegion: 'DE-BE', + DestCityName: 'Paris', + FlightTimeHour: 0.8359538144529759, + FlightDelayMin: 0, + }, + { + FlightNum: '7SFSTEH', + DestCountry: 'JP', + OriginWeather: 'Thunder & Lightning', + OriginCityName: 'Manchester', + AvgTicketPrice: 268.24159591388866, + DistanceMiles: 5900.673562063734, + FlightDelay: false, + DestWeather: 'Rain', + Dest: 'Narita International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'GB', + dayOfWeek: 0, + DistanceKilometers: 9496.213593065899, + timestamp: '2018-01-01T08:20:35', + DestLocation: { lat: '35.76470184', lon: '140.3860016' }, + DestAirportID: 'NRT', + Carrier: 'ES-Air', + Cancelled: false, + FlightTimeMin: 527.5674218369944, + Origin: 'Manchester Airport', + OriginLocation: { lat: '53.35369873', lon: '-2.274950027' }, + DestRegion: 'SE-BD', + OriginAirportID: 'MAN', + OriginRegion: 'GB-ENG', + DestCityName: 'Tokyo', + FlightTimeHour: 8.792790363949907, + FlightDelayMin: 0, + }, + { + FlightNum: '430NKQO', + DestCountry: 'JP', + OriginWeather: 'Rain', + OriginCityName: 'Helsinki', + AvgTicketPrice: 975.8126321392289, + DistanceMiles: 4800.213800795046, + FlightDelay: false, + DestWeather: 'Hail', + Dest: 'Itami Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'FI', + dayOfWeek: 0, + DistanceKilometers: 7725.195279026703, + timestamp: '2018-01-01T15:38:32', + DestLocation: { lat: '34.78549957', lon: '135.4380035' }, + DestAirportID: 'ITM', + Carrier: 'Kibana Airlines', + Cancelled: true, + FlightTimeMin: 386.2597639513352, + Origin: 'Helsinki Vantaa Airport', + OriginLocation: { lat: '60.31719971', lon: '24.9633007' }, + DestRegion: 'SE-BD', + OriginAirportID: 'HEL', + OriginRegion: 'FI-ES', + DestCityName: 'Osaka', + FlightTimeHour: 6.437662732522253, + FlightDelayMin: 0, + }, + { + FlightNum: '3YAQM9U', + DestCountry: 'US', + OriginWeather: 'Clear', + OriginCityName: 'Phoenix', + AvgTicketPrice: 134.21454568995148, + DistanceMiles: 304.2189898030449, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'San Diego International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 489.59300592559157, + timestamp: '2018-01-01T03:08:45', + DestLocation: { lat: '32.73360062', lon: '-117.1900024' }, + DestAirportID: 'SAN', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 24.47965029627958, + Origin: 'Phoenix Sky Harbor International Airport', + OriginLocation: { lat: '33.43429947', lon: '-112.012001' }, + DestRegion: 'US-CA', + OriginAirportID: 'PHX', + OriginRegion: 'US-AZ', + DestCityName: 'San Diego', + FlightTimeHour: 0.4079941716046597, + FlightDelayMin: 0, + }, + { + FlightNum: 'HX0WBLI', + DestCountry: 'IT', + OriginWeather: 'Damaging Wind', + OriginCityName: 'Chitose / Tomakomai', + AvgTicketPrice: 988.8975638746068, + DistanceMiles: 5650.511340218511, + FlightDelay: false, + DestWeather: 'Sunny', + Dest: 'Verona Villafranca Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'JP', + dayOfWeek: 0, + DistanceKilometers: 9093.616522312619, + timestamp: '2018-01-01T01:16:59', + DestLocation: { lat: '45.395699', lon: '10.8885' }, + DestAirportID: 'VR10', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 568.3510326445387, + Origin: 'New Chitose Airport', + OriginLocation: { lat: '42.77519989', lon: '141.6920013' }, + DestRegion: 'IT-34', + OriginAirportID: 'CTS', + OriginRegion: 'SE-BD', + DestCityName: 'Verona', + FlightTimeHour: 9.472517210742312, + FlightDelayMin: 0, + }, + { + FlightNum: 'BSVTVSA', + DestCountry: 'CH', + OriginWeather: 'Rain', + OriginCityName: 'Tulsa', + AvgTicketPrice: 511.0672203518154, + DistanceMiles: 5028.070244660456, + FlightDelay: false, + DestWeather: 'Rain', + Dest: 'Zurich Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 8091.894679822838, + timestamp: '2018-01-01T18:00:59', + DestLocation: { lat: '47.464699', lon: '8.54917' }, + DestAirportID: 'ZRH', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 425.8891936748862, + Origin: 'Tulsa International Airport', + OriginLocation: { lat: '36.19839859', lon: '-95.88809967' }, + DestRegion: 'CH-ZH', + OriginAirportID: 'TUL', + OriginRegion: 'US-OK', + DestCityName: 'Zurich', + FlightTimeHour: 7.09815322791477, + FlightDelayMin: 0, + }, + { + FlightNum: 'OODIP58', + DestCountry: 'CN', + OriginWeather: 'Thunder & Lightning', + OriginCityName: 'Abu Dhabi', + AvgTicketPrice: 252.9119662217096, + DistanceMiles: 3032.4467769272865, + FlightDelay: true, + DestWeather: 'Sunny', + Dest: 'Chengdu Shuangliu International Airport', + FlightDelayType: 'Late Aircraft Delay', + OriginCountry: 'AE', + dayOfWeek: 0, + DistanceKilometers: 4880.250025767267, + timestamp: '2018-01-01T12:05:14', + DestLocation: { lat: '30.57850075', lon: '103.9469986' }, + DestAirportID: 'CTU', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 490.3500017178178, + Origin: 'Abu Dhabi International Airport', + OriginLocation: { lat: '24.43300056', lon: '54.65110016' }, + DestRegion: 'SE-BD', + OriginAirportID: 'AUH', + OriginRegion: 'SE-BD', + DestCityName: 'Chengdu', + FlightTimeHour: 8.172500028630298, + FlightDelayMin: 165, + }, + { + FlightNum: 'J6XATW0', + DestCountry: 'JP', + OriginWeather: 'Damaging Wind', + OriginCityName: 'Catania', + AvgTicketPrice: 572.072088442, + DistanceMiles: 6298.772997224989, + FlightDelay: true, + DestWeather: 'Damaging Wind', + Dest: 'Narita International Airport', + FlightDelayType: 'NAS Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 10136.892530446054, + timestamp: '2018-01-01T04:18:52', + DestLocation: { lat: '35.76470184', lon: '140.3860016' }, + DestAirportID: 'NRT', + Carrier: 'ES-Air', + Cancelled: false, + FlightTimeMin: 979.7410442038378, + Origin: 'Catania-Fontanarossa Airport', + OriginLocation: { lat: '37.466801', lon: '15.0664' }, + DestRegion: 'SE-BD', + OriginAirportID: 'CT03', + OriginRegion: 'IT-82', + DestCityName: 'Tokyo', + FlightTimeHour: 16.329017403397295, + FlightDelayMin: 135, + }, + { + FlightNum: 'JB2BVNL', + DestCountry: 'JP', + OriginWeather: 'Cloudy', + OriginCityName: 'Louisville', + AvgTicketPrice: 676.8834852133116, + DistanceMiles: 6553.342465155623, + FlightDelay: true, + DestWeather: 'Clear', + Dest: 'Narita International Airport', + FlightDelayType: 'Late Aircraft Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 10546.582376243412, + timestamp: '2018-01-01T08:31:08', + DestLocation: { lat: '35.76470184', lon: '140.3860016' }, + DestAirportID: 'NRT', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 963.3273125888152, + Origin: 'Louisville International Standiford Field', + OriginLocation: { lat: '38.1744', lon: '-85.736' }, + DestRegion: 'SE-BD', + OriginAirportID: 'SDF', + OriginRegion: 'US-KY', + DestCityName: 'Tokyo', + FlightTimeHour: 16.055455209813587, + FlightDelayMin: 210, + }, + { + FlightNum: '8SHQI41', + DestCountry: 'US', + OriginWeather: 'Cloudy', + OriginCityName: 'Spokane', + AvgTicketPrice: 131.81910243159925, + DistanceMiles: 1228.3139778743412, + FlightDelay: false, + DestWeather: 'Sunny', + Dest: 'Wichita Mid Continent Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 1976.7797304082037, + timestamp: '2018-01-01T10:36:25', + DestLocation: { lat: '37.64989853', lon: '-97.43309784' }, + DestAirportID: 'ICT', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 141.19855217201456, + Origin: 'Spokane International Airport', + OriginLocation: { lat: '47.61989975', lon: '-117.5339966' }, + DestRegion: 'US-KS', + OriginAirportID: 'GEG', + OriginRegion: 'US-WA', + DestCityName: 'Wichita', + FlightTimeHour: 2.3533092028669094, + FlightDelayMin: 0, + }, + { + FlightNum: 'IK1PCVN', + DestCountry: 'RU', + OriginWeather: 'Clear', + OriginCityName: 'Portland', + AvgTicketPrice: 470.6837477903439, + DistanceMiles: 5339.976001314777, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Sheremetyevo International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 8593.858337859929, + timestamp: '2018-01-01T14:04:21', + DestLocation: { lat: '55.972599', lon: '37.4146' }, + DestAirportID: 'SVO', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 716.1548614883274, + Origin: 'Portland International Airport', + OriginLocation: { lat: '45.58869934', lon: '-122.5979996' }, + DestRegion: 'RU-MOS', + OriginAirportID: 'PDX', + OriginRegion: 'US-OR', + DestCityName: 'Moscow', + FlightTimeHour: 11.93591435813879, + FlightDelayMin: 0, + }, + { + FlightNum: 'U8SLHLH', + DestCountry: 'CO', + OriginWeather: 'Hail', + OriginCityName: 'Jebel Ali', + AvgTicketPrice: 547.6349165149929, + DistanceMiles: 8477.112527527572, + FlightDelay: true, + DestWeather: 'Cloudy', + Dest: 'El Dorado International Airport', + FlightDelayType: 'NAS Delay', + OriginCountry: 'AE', + dayOfWeek: 0, + DistanceKilometers: 13642.590183501334, + timestamp: '2018-01-01T04:49:05', + DestLocation: { lat: '4.70159', lon: '-74.1469' }, + DestAirportID: 'BOG', + Carrier: 'ES-Air', + Cancelled: false, + FlightTimeMin: 1064.4707273929525, + Origin: 'Al Maktoum International Airport', + OriginLocation: { lat: '24.896356', lon: '55.161389' }, + DestRegion: 'SE-BD', + OriginAirportID: 'DWC', + OriginRegion: 'SE-BD', + DestCityName: 'Bogota', + FlightTimeHour: 17.741178789882543, + FlightDelayMin: 90, + }, + { + FlightNum: 'LAEYSCF', + DestCountry: 'IT', + OriginWeather: 'Damaging Wind', + OriginCityName: 'Greensboro', + AvgTicketPrice: 741.0225650260804, + DistanceMiles: 4416.574730450814, + FlightDelay: false, + DestWeather: 'Sunny', + Dest: 'Turin Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 7107.788043002635, + timestamp: '2018-01-01T12:56:09', + DestLocation: { lat: '45.200802', lon: '7.64963' }, + DestAirportID: 'TO11', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 394.8771135001464, + Origin: 'Piedmont Triad International Airport', + OriginLocation: { lat: '36.09780121', lon: '-79.93730164' }, + DestRegion: 'IT-21', + OriginAirportID: 'GSO', + OriginRegion: 'US-NC', + DestCityName: 'Torino', + FlightTimeHour: 6.58128522500244, + FlightDelayMin: 0, + }, + { + FlightNum: '17NH0H3', + DestCountry: 'CA', + OriginWeather: 'Cloudy', + OriginCityName: 'Treviso', + AvgTicketPrice: 404.731389894892, + DistanceMiles: 4614.531201475585, + FlightDelay: false, + DestWeather: 'Hail', + Dest: 'Winnipeg / James Armstrong Richardson International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 7426.368101907524, + timestamp: '2018-01-01T18:14:14', + DestLocation: { lat: '49.90999985', lon: '-97.23989868' }, + DestAirportID: 'YWG', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 353.6365762813107, + Origin: "Treviso-Sant'Angelo Airport", + OriginLocation: { lat: '45.648399', lon: '12.1944' }, + DestRegion: 'CA-MB', + OriginAirportID: 'TV01', + OriginRegion: 'IT-34', + DestCityName: 'Winnipeg', + FlightTimeHour: 5.893942938021845, + FlightDelayMin: 0, + }, + { + FlightNum: 'EA3F2E4', + DestCountry: 'CN', + OriginWeather: 'Clear', + OriginCityName: 'Catania', + AvgTicketPrice: 954.2386926506058, + DistanceMiles: 4927.508301892961, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Chengdu Shuangliu International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 7930.055920601625, + timestamp: '2018-01-01T21:30:40', + DestLocation: { lat: '30.57850075', lon: '103.9469986' }, + DestAirportID: 'CTU', + Carrier: 'ES-Air', + Cancelled: false, + FlightTimeMin: 566.4325657572589, + Origin: 'Catania-Fontanarossa Airport', + OriginLocation: { lat: '37.466801', lon: '15.0664' }, + DestRegion: 'SE-BD', + OriginAirportID: 'CT03', + OriginRegion: 'IT-82', + DestCityName: 'Chengdu', + FlightTimeHour: 9.440542762620982, + FlightDelayMin: 0, + }, + { + FlightNum: 'HF9AP10', + DestCountry: 'US', + OriginWeather: 'Sunny', + OriginCityName: 'New York', + AvgTicketPrice: 231.96273728774017, + DistanceMiles: 2445.8920569992383, + FlightDelay: false, + DestWeather: 'Heavy Fog', + Dest: 'San Diego International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 3936.2817065793824, + timestamp: '2018-01-01T01:50:27', + DestLocation: { lat: '32.73360062', lon: '-117.1900024' }, + DestAirportID: 'SAN', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 262.4187804386255, + Origin: 'John F Kennedy International Airport', + OriginLocation: { lat: '40.63980103', lon: '-73.77890015' }, + DestRegion: 'US-CA', + OriginAirportID: 'JFK', + OriginRegion: 'US-NY', + DestCityName: 'San Diego', + FlightTimeHour: 4.3736463406437585, + FlightDelayMin: 0, + }, + { + FlightNum: '1Y5O0VK', + DestCountry: 'AR', + OriginWeather: 'Rain', + OriginCityName: 'Quito', + AvgTicketPrice: 453.7551255012854, + DistanceMiles: 2708.548842821117, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Ministro Pistarini International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'EC', + dayOfWeek: 0, + DistanceKilometers: 4358.986828901108, + timestamp: '2018-01-01T23:43:02', + DestLocation: { lat: '-34.8222', lon: '-58.5358' }, + DestAirportID: 'EZE', + Carrier: 'ES-Air', + Cancelled: false, + FlightTimeMin: 242.16593493895047, + Origin: 'Mariscal Sucre International Airport', + OriginLocation: { lat: '-0.129166667', lon: '-78.3575' }, + DestRegion: 'AR-B', + OriginAirportID: 'UIO', + OriginRegion: 'SE-BD', + DestCityName: 'Buenos Aires', + FlightTimeHour: 4.036098915649174, + FlightDelayMin: 0, + }, + { + FlightNum: 'SLJ4EVS', + DestCountry: 'AT', + OriginWeather: 'Damaging Wind', + OriginCityName: 'Toronto', + AvgTicketPrice: 334.7392896190951, + DistanceMiles: 4329.582240070009, + FlightDelay: true, + DestWeather: 'Thunder & Lightning', + Dest: 'Vienna International Airport', + FlightDelayType: 'Security Delay', + OriginCountry: 'CA', + dayOfWeek: 0, + DistanceKilometers: 6967.787200563229, + timestamp: '2018-01-01T05:24:19', + DestLocation: { lat: '48.11029816', lon: '16.56970024' }, + DestAirportID: 'VIE', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 604.8698353272488, + Origin: 'Lester B. Pearson International Airport', + OriginLocation: { lat: '43.67720032', lon: '-79.63059998' }, + DestRegion: 'AT-9', + OriginAirportID: 'YYZ', + OriginRegion: 'CA-ON', + DestCityName: 'Vienna', + FlightTimeHour: 10.081163922120814, + FlightDelayMin: 195, + }, + { + FlightNum: 'ZTL6FPB', + DestCountry: 'US', + OriginWeather: 'Heavy Fog', + OriginCityName: 'Bergamo', + AvgTicketPrice: 926.6665998573354, + DistanceMiles: 4643.872252383584, + FlightDelay: false, + DestWeather: 'Cloudy', + Dest: 'Louisville International Standiford Field', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 7473.587946140007, + timestamp: '2018-01-01T00:47:09', + DestLocation: { lat: '38.1744', lon: '-85.736' }, + DestAirportID: 'SDF', + Carrier: 'ES-Air', + Cancelled: false, + FlightTimeMin: 679.417086012728, + Origin: 'Il Caravaggio International Airport', + OriginLocation: { lat: '45.673901', lon: '9.70417' }, + DestRegion: 'US-KY', + OriginAirportID: 'BG01', + OriginRegion: 'IT-25', + DestCityName: 'Louisville', + FlightTimeHour: 11.323618100212133, + FlightDelayMin: 0, + }, + { + FlightNum: '46J5N4Y', + DestCountry: 'CA', + OriginWeather: 'Hail', + OriginCityName: 'London', + AvgTicketPrice: 664.6811922084918, + DistanceMiles: 3351.640388335116, + FlightDelay: false, + DestWeather: 'Damaging Wind', + Dest: 'Ottawa Macdonald-Cartier International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'GB', + dayOfWeek: 0, + DistanceKilometers: 5393.942349124789, + timestamp: '2018-01-01T17:22:39', + DestLocation: { lat: '45.32249832', lon: '-75.66919708' }, + DestAirportID: 'YOW', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 283.8917025855152, + Origin: 'London Gatwick Airport', + OriginLocation: { lat: '51.14810181', lon: '-0.190277994' }, + DestRegion: 'CA-ON', + OriginAirportID: 'LGW', + OriginRegion: 'GB-ENG', + DestCityName: 'Ottawa', + FlightTimeHour: 4.731528376425254, + FlightDelayMin: 0, + }, + { + FlightNum: 'PVATFF1', + DestCountry: 'CN', + OriginWeather: 'Damaging Wind', + OriginCityName: 'Guangzhou', + AvgTicketPrice: 184.57886708644122, + DistanceMiles: 746.8977963958768, + FlightDelay: false, + DestWeather: 'Rain', + Dest: 'Shanghai Pudong International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'CN', + dayOfWeek: 0, + DistanceKilometers: 1202.015487242926, + timestamp: '2018-01-01T23:53:52', + DestLocation: { lat: '31.14340019', lon: '121.8050003' }, + DestAirportID: 'PVG', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 109.27413520390236, + Origin: 'Guangzhou Baiyun International Airport', + OriginLocation: { lat: '23.39240074', lon: '113.2990036' }, + DestRegion: 'SE-BD', + OriginAirportID: 'CAN', + OriginRegion: 'SE-BD', + DestCityName: 'Shanghai', + FlightTimeHour: 1.821235586731706, + FlightDelayMin: 0, + }, + { + FlightNum: 'NOFPUHM', + DestCountry: 'CH', + OriginWeather: 'Hail', + OriginCityName: 'Miami', + AvgTicketPrice: 650.3807641564442, + DistanceMiles: 4883.762668168842, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Zurich Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'US', + dayOfWeek: 0, + DistanceKilometers: 7859.654147441516, + timestamp: '2018-01-01T16:25:52', + DestLocation: { lat: '47.464699', lon: '8.54917' }, + DestAirportID: 'ZRH', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 714.5140134037742, + Origin: 'Miami International Airport', + OriginLocation: { lat: '25.79319954', lon: '-80.29060364' }, + DestRegion: 'CH-ZH', + OriginAirportID: 'MIA', + OriginRegion: 'US-FL', + DestCityName: 'Zurich', + FlightTimeHour: 11.908566890062904, + FlightDelayMin: 0, + }, + { + FlightNum: 'S0SNYUV', + DestCountry: 'GB', + OriginWeather: 'Damaging Wind', + OriginCityName: 'Dubai', + AvgTicketPrice: 505.3645318454166, + DistanceMiles: 3420.471874540241, + FlightDelay: true, + DestWeather: 'Rain', + Dest: 'London Heathrow Airport', + FlightDelayType: 'Security Delay', + OriginCountry: 'AE', + dayOfWeek: 0, + DistanceKilometers: 5504.71588846009, + timestamp: '2018-01-01T00:43:34', + DestLocation: { lat: '51.4706', lon: '-0.461941' }, + DestAirportID: 'LHR', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 485.8175493588939, + Origin: 'Dubai International Airport', + OriginLocation: { lat: '25.25279999', lon: '55.36439896' }, + DestRegion: 'GB-ENG', + OriginAirportID: 'DXB', + OriginRegion: 'SE-BD', + DestCityName: 'London', + FlightTimeHour: 8.096959155981565, + FlightDelayMin: 180, + }, + { + FlightNum: 'FZ1FWP0', + DestCountry: 'CA', + OriginWeather: 'Rain', + OriginCityName: 'Mexico City', + AvgTicketPrice: 937.7339299906702, + DistanceMiles: 2230.671063160962, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Ottawa Macdonald-Cartier International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'MX', + dayOfWeek: 0, + DistanceKilometers: 3589.917091471716, + timestamp: '2018-01-01T20:42:03', + DestLocation: { lat: '45.32249832', lon: '-75.66919708' }, + DestAirportID: 'YOW', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 211.17159361598328, + Origin: 'Licenciado Benito Juarez International Airport', + OriginLocation: { lat: '19.4363', lon: '-99.072098' }, + DestRegion: 'CA-ON', + OriginAirportID: 'AICM', + OriginRegion: 'MX-DIF', + DestCityName: 'Ottawa', + FlightTimeHour: 3.519526560266388, + FlightDelayMin: 0, + }, + { + FlightNum: 'SUXIZJA', + DestCountry: 'GB', + OriginWeather: 'Hail', + OriginCityName: 'Osaka', + AvgTicketPrice: 531.5562550465518, + DistanceMiles: 5873.817368388099, + FlightDelay: false, + DestWeather: 'Sunny', + Dest: 'Manchester Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'JP', + dayOfWeek: 0, + DistanceKilometers: 9452.992738911176, + timestamp: '2018-01-01T14:00:01', + DestLocation: { lat: '53.35369873', lon: '-2.274950027' }, + DestAirportID: 'MAN', + Carrier: 'ES-Air', + Cancelled: true, + FlightTimeMin: 556.0583964065398, + Origin: 'Kansai International Airport', + OriginLocation: { lat: '34.4272995', lon: '135.2440033' }, + DestRegion: 'GB-ENG', + OriginAirportID: 'KIX', + OriginRegion: 'SE-BD', + DestCityName: 'Manchester', + FlightTimeHour: 9.267639940108998, + FlightDelayMin: 0, + }, + { + FlightNum: '92JKFYR', + DestCountry: 'CL', + OriginWeather: 'Sunny', + OriginCityName: 'Tokoname', + AvgTicketPrice: 885.4770333086404, + DistanceMiles: 10864.104232263331, + FlightDelay: true, + DestWeather: 'Sunny', + Dest: 'Comodoro Arturo Merino Benitez International Airport', + FlightDelayType: 'Weather Delay', + OriginCountry: 'JP', + dayOfWeek: 0, + DistanceKilometers: 17484.0809615676, + timestamp: '2018-01-01T14:00:01', + DestLocation: { lat: '-33.39300156', lon: '-70.78579712' }, + DestAirportID: 'SCL', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 1404.9293047359693, + Origin: 'Chubu Centrair International Airport', + OriginLocation: { lat: '34.85839844', lon: '136.8049927' }, + DestRegion: 'SE-BD', + OriginAirportID: 'NGO', + OriginRegion: 'SE-BD', + DestCityName: 'Santiago', + FlightTimeHour: 23.415488412266154, + FlightDelayMin: 60, + }, + { + FlightNum: 'WG1N4RX', + DestCountry: 'RU', + OriginWeather: 'Clear', + OriginCityName: 'Brisbane', + AvgTicketPrice: 305.3721105628916, + DistanceMiles: 8710.169059970298, + FlightDelay: false, + DestWeather: 'Hail', + Dest: 'Olenya Air Base', + FlightDelayType: 'No Delay', + OriginCountry: 'AU', + dayOfWeek: 0, + DistanceKilometers: 14017.658315648841, + timestamp: '2018-01-01T06:32:21', + DestLocation: { lat: '68.15180206', lon: '33.46390152' }, + DestAirportID: 'XLMO', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 667.507538840421, + Origin: 'Brisbane International Airport', + OriginLocation: { lat: '-27.38419914', lon: '153.1170044' }, + DestRegion: 'RU-MUR', + OriginAirportID: 'BNE', + OriginRegion: 'SE-BD', + DestCityName: 'Olenegorsk', + FlightTimeHour: 11.12512564734035, + FlightDelayMin: 0, + }, + { + FlightNum: 'XKFZHUO', + DestCountry: 'RU', + OriginWeather: 'Sunny', + OriginCityName: 'Pisa', + AvgTicketPrice: 694.4927471612291, + DistanceMiles: 1461.43146405065, + FlightDelay: true, + DestWeather: 'Rain', + Dest: 'Sheremetyevo International Airport', + FlightDelayType: 'Carrier Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 2351.9459580811294, + timestamp: '2018-01-01T01:01:51', + DestLocation: { lat: '55.972599', lon: '37.4146' }, + DestAirportID: 'SVO', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 171.79639720540862, + Origin: 'Pisa International Airport', + OriginLocation: { lat: '43.683899', lon: '10.3927' }, + DestRegion: 'RU-MOS', + OriginAirportID: 'PI05', + OriginRegion: 'IT-52', + DestCityName: 'Moscow', + FlightTimeHour: 2.8632732867568103, + FlightDelayMin: 15, + }, + { + FlightNum: 'U4XV7HN', + DestCountry: 'IN', + OriginWeather: 'Clear', + OriginCityName: 'Cagliari', + AvgTicketPrice: 415.89453312482266, + DistanceMiles: 3888.394115635433, + FlightDelay: false, + DestWeather: 'Rain', + Dest: 'Indira Gandhi International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 6257.763739633191, + timestamp: '2018-01-01T10:44:44', + DestLocation: { lat: '28.5665', lon: '77.103104' }, + DestAirportID: 'DEL', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 568.8876126939265, + Origin: 'Cagliari Elmas Airport', + OriginLocation: { lat: '39.251499', lon: '9.05428' }, + DestRegion: 'SE-BD', + OriginAirportID: 'CA07', + OriginRegion: 'IT-88', + DestCityName: 'New Delhi', + FlightTimeHour: 9.481460211565441, + FlightDelayMin: 0, + }, + { + FlightNum: 'R0JFGVC', + DestCountry: 'SE', + OriginWeather: 'Heavy Fog', + OriginCityName: 'London', + AvgTicketPrice: 551.0601339103603, + DistanceMiles: 888.5278930418095, + FlightDelay: false, + DestWeather: 'Rain', + Dest: 'Stockholm-Arlanda Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'GB', + dayOfWeek: 0, + DistanceKilometers: 1429.947033499478, + timestamp: '2018-01-01T10:31:48', + DestLocation: { lat: '59.65190125', lon: '17.91860008' }, + DestAirportID: 'ARN', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 79.44150186108212, + Origin: 'London Luton Airport', + OriginLocation: { lat: '51.87469864', lon: '-0.368333012' }, + DestRegion: 'SE-AB', + OriginAirportID: 'LTN', + OriginRegion: 'GB-ENG', + DestCityName: 'Stockholm', + FlightTimeHour: 1.3240250310180353, + FlightDelayMin: 0, + }, + { + FlightNum: 'TF9BTQL', + DestCountry: 'US', + OriginWeather: 'Clear', + OriginCityName: 'Chitose / Tomakomai', + AvgTicketPrice: 798.7800550805481, + DistanceMiles: 5590.557988612903, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Rochester International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'JP', + dayOfWeek: 0, + DistanceKilometers: 8997.130955626244, + timestamp: '2018-01-01T06:45:49', + DestLocation: { lat: '43.90829849', lon: '-92.5' }, + DestAirportID: 'RST', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 499.8406086459024, + Origin: 'New Chitose Airport', + OriginLocation: { lat: '42.77519989', lon: '141.6920013' }, + DestRegion: 'US-MN', + OriginAirportID: 'CTS', + OriginRegion: 'SE-BD', + DestCityName: 'Rochester', + FlightTimeHour: 8.33067681076504, + FlightDelayMin: 0, + }, + { + FlightNum: 'CKZBJJ8', + DestCountry: 'JP', + OriginWeather: 'Cloudy', + OriginCityName: 'Tokoname', + AvgTicketPrice: 117.01632685415828, + DistanceMiles: 606.1652997826461, + FlightDelay: true, + DestWeather: 'Clear', + Dest: 'New Chitose Airport', + FlightDelayType: 'Weather Delay', + OriginCountry: 'JP', + dayOfWeek: 0, + DistanceKilometers: 975.5284882134029, + timestamp: '2018-01-01T12:13:01', + DestLocation: { lat: '42.77519989', lon: '141.6920013' }, + DestAirportID: 'CTS', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 387.38402871843545, + Origin: 'Chubu Centrair International Airport', + OriginLocation: { lat: '34.85839844', lon: '136.8049927' }, + DestRegion: 'SE-BD', + OriginAirportID: 'NGO', + OriginRegion: 'SE-BD', + DestCityName: 'Chitose / Tomakomai', + FlightTimeHour: 6.456400478640591, + FlightDelayMin: 330, + }, + { + FlightNum: 'T9QK7GX', + DestCountry: 'US', + OriginWeather: 'Clear', + OriginCityName: 'Mumbai', + AvgTicketPrice: 841.2103842623986, + DistanceMiles: 9037.917857359074, + FlightDelay: false, + DestWeather: 'Hail', + Dest: 'San Antonio International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IN', + dayOfWeek: 0, + DistanceKilometers: 14545.118876233682, + timestamp: '2018-01-01T12:13:01', + DestLocation: { lat: '29.53370094', lon: '-98.46980286' }, + DestAirportID: 'SAT', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 909.0699297646051, + Origin: 'Chhatrapati Shivaji International Airport', + OriginLocation: { lat: '19.08869934', lon: '72.86789703' }, + DestRegion: 'US-TX', + OriginAirportID: 'BOM', + OriginRegion: 'SE-BD', + DestCityName: 'San Antonio', + FlightTimeHour: 15.151165496076752, + FlightDelayMin: 0, + }, + { + FlightNum: 'B5PRMI8', + DestCountry: 'CH', + OriginWeather: 'Rain', + OriginCityName: 'Zurich', + AvgTicketPrice: 125.4083518148904, + DistanceMiles: 0.0, + FlightDelay: false, + DestWeather: 'Heavy Fog', + Dest: 'Zurich Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'CH', + dayOfWeek: 0, + DistanceKilometers: 0.0, + timestamp: '2018-01-01T10:21:08', + DestLocation: { lat: '47.464699', lon: '8.54917' }, + DestAirportID: 'ZRH', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 0.0, + Origin: 'Zurich Airport', + OriginLocation: { lat: '47.464699', lon: '8.54917' }, + DestRegion: 'CH-ZH', + OriginAirportID: 'ZRH', + OriginRegion: 'CH-ZH', + DestCityName: 'Zurich', + FlightTimeHour: 0.0, + FlightDelayMin: 0, + }, + { + FlightNum: 'OE6XDRI', + DestCountry: 'AT', + OriginWeather: 'Heavy Fog', + OriginCityName: 'Belogorsk', + AvgTicketPrice: 590.1173423147161, + DistanceMiles: 4498.903224225127, + FlightDelay: true, + DestWeather: 'Rain', + Dest: 'Vienna International Airport', + FlightDelayType: 'Carrier Delay', + OriginCountry: 'RU', + dayOfWeek: 0, + DistanceKilometers: 7240.282910487363, + timestamp: '2018-01-01T23:10:15', + DestLocation: { lat: '48.11029816', lon: '16.56970024' }, + DestAirportID: 'VIE', + Carrier: 'ES-Air', + Cancelled: true, + FlightTimeMin: 614.7753766898744, + Origin: 'Ukrainka Air Base', + OriginLocation: { lat: '51.169997', lon: '128.445007' }, + DestRegion: 'AT-9', + OriginAirportID: 'XHBU', + OriginRegion: 'RU-AMU', + DestCityName: 'Vienna', + FlightTimeHour: 10.246256278164573, + FlightDelayMin: 270, + }, + { + FlightNum: '0VH5EM7', + DestCountry: 'IN', + OriginWeather: 'Heavy Fog', + OriginCityName: 'Mumbai', + AvgTicketPrice: 223.59354684926342, + DistanceMiles: 387.3167656891642, + FlightDelay: false, + DestWeather: 'Cloudy', + Dest: 'Rajiv Gandhi International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IN', + dayOfWeek: 0, + DistanceKilometers: 623.3259129612622, + timestamp: '2018-01-01T20:53:18', + DestLocation: { lat: '17.23131752', lon: '78.42985535' }, + DestAirportID: 'HYD', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 34.62921738673679, + Origin: 'Chhatrapati Shivaji International Airport', + OriginLocation: { lat: '19.08869934', lon: '72.86789703' }, + DestRegion: 'SE-BD', + OriginAirportID: 'BOM', + OriginRegion: 'SE-BD', + DestCityName: 'Hyderabad', + FlightTimeHour: 0.5771536231122798, + FlightDelayMin: 0, + }, + { + FlightNum: 'NHLMKLG', + DestCountry: 'CH', + OriginWeather: 'Rain', + OriginCityName: 'Zurich', + AvgTicketPrice: 178.41351273264587, + DistanceMiles: 0.0, + FlightDelay: false, + DestWeather: 'Heavy Fog', + Dest: 'Zurich Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'CH', + dayOfWeek: 0, + DistanceKilometers: 0.0, + timestamp: '2018-01-01T02:59:15', + DestLocation: { lat: '47.464699', lon: '8.54917' }, + DestAirportID: 'ZRH', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 0.0, + Origin: 'Zurich Airport', + OriginLocation: { lat: '47.464699', lon: '8.54917' }, + DestRegion: 'CH-ZH', + OriginAirportID: 'ZRH', + OriginRegion: 'CH-ZH', + DestCityName: 'Zurich', + FlightTimeHour: 0.0, + FlightDelayMin: 0, + }, + { + FlightNum: '0LT8Q4U', + DestCountry: 'PL', + OriginWeather: 'Thunder & Lightning', + OriginCityName: 'Beijing', + AvgTicketPrice: 416.9128422781053, + DistanceMiles: 4326.352348507669, + FlightDelay: false, + DestWeather: 'Clear', + Dest: 'Warsaw Chopin Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'CN', + dayOfWeek: 0, + DistanceKilometers: 6962.589193956727, + timestamp: '2018-01-01T03:09:37', + DestLocation: { lat: '52.16569901', lon: '20.96710014' }, + DestAirportID: 'WAW', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 580.2157661630606, + Origin: 'Beijing Capital International Airport', + OriginLocation: { lat: '40.08010101', lon: '116.5849991' }, + DestRegion: 'PL-MZ', + OriginAirportID: 'PEK', + OriginRegion: 'SE-BD', + DestCityName: 'Warsaw', + FlightTimeHour: 9.670262769384344, + FlightDelayMin: 0, + }, + { + FlightNum: 'E37OG3P', + DestCountry: 'GB', + OriginWeather: 'Hail', + OriginCityName: 'Cagliari', + AvgTicketPrice: 500.4828351053994, + DistanceMiles: 982.4372639008275, + FlightDelay: false, + DestWeather: 'Sunny', + Dest: 'London Luton Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 1581.0795160352134, + timestamp: '2018-01-01T04:14:28', + DestLocation: { lat: '51.87469864', lon: '-0.368333012' }, + DestAirportID: 'LTN', + Carrier: 'Logstash Airways', + Cancelled: true, + FlightTimeMin: 112.93425114537239, + Origin: 'Cagliari Elmas Airport', + OriginLocation: { lat: '39.251499', lon: '9.05428' }, + DestRegion: 'GB-ENG', + OriginAirportID: 'CA07', + OriginRegion: 'IT-88', + DestCityName: 'London', + FlightTimeHour: 1.8822375190895397, + FlightDelayMin: 0, + }, + { + FlightNum: 'VH5MDUD', + DestCountry: 'CA', + OriginWeather: 'Rain', + OriginCityName: 'Frankfurt am Main', + AvgTicketPrice: 346.7483794066166, + DistanceMiles: 3953.1867605000593, + FlightDelay: false, + DestWeather: 'Heavy Fog', + Dest: 'Lester B. Pearson International Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'DE', + dayOfWeek: 0, + DistanceKilometers: 6362.037393890208, + timestamp: '2018-01-01T23:45:30', + DestLocation: { lat: '43.67720032', lon: '-79.63059998' }, + DestAirportID: 'YYZ', + Carrier: 'Logstash Airways', + Cancelled: false, + FlightTimeMin: 353.4465218827893, + Origin: 'Frankfurt am Main Airport', + OriginLocation: { lat: '50.033333', lon: '8.570556' }, + DestRegion: 'CA-ON', + OriginAirportID: 'FRA', + OriginRegion: 'DE-HE', + DestCityName: 'Toronto', + FlightTimeHour: 5.890775364713154, + FlightDelayMin: 0, + }, + { + FlightNum: 'M21BD4I', + DestCountry: 'CN', + OriginWeather: 'Cloudy', + OriginCityName: 'Tokyo', + AvgTicketPrice: 969.1899314970427, + DistanceMiles: 1754.4121462676542, + FlightDelay: true, + DestWeather: 'Clear', + Dest: "Xi'an Xianyang International Airport", + FlightDelayType: 'NAS Delay', + OriginCountry: 'JP', + dayOfWeek: 0, + DistanceKilometers: 2823.4526611229717, + timestamp: '2018-01-01T20:17:26', + DestLocation: { lat: '34.447102', lon: '108.751999' }, + DestAirportID: 'XIY', + Carrier: 'JetBeats', + Cancelled: false, + FlightTimeMin: 261.1726330561486, + Origin: 'Tokyo Haneda International Airport', + OriginLocation: { lat: '35.552299', lon: '139.779999' }, + DestRegion: 'SE-BD', + OriginAirportID: 'HND', + OriginRegion: 'SE-BD', + DestCityName: "Xi'an", + FlightTimeHour: 4.352877217602477, + FlightDelayMin: 120, + }, + { + FlightNum: 'VDDH65N', + DestCountry: 'IT', + OriginWeather: 'Damaging Wind', + OriginCityName: 'Chengdu', + AvgTicketPrice: 438.00156663741143, + DistanceMiles: 4923.026978969943, + FlightDelay: true, + DestWeather: 'Sunny', + Dest: 'Ciampino___G. B. Pastine International Airport', + FlightDelayType: 'Carrier Delay', + OriginCountry: 'CN', + dayOfWeek: 0, + DistanceKilometers: 7922.843930443404, + timestamp: '2018-01-01T22:01:37', + DestLocation: { lat: '41.7994', lon: '12.5949' }, + DestAirportID: 'RM12', + Carrier: 'ES-Air', + Cancelled: false, + FlightTimeMin: 587.2782824020669, + Origin: 'Chengdu Shuangliu International Airport', + OriginLocation: { lat: '30.57850075', lon: '103.9469986' }, + DestRegion: 'IT-62', + OriginAirportID: 'CTU', + OriginRegion: 'SE-BD', + DestCityName: 'Rome', + FlightTimeHour: 9.787971373367782, + FlightDelayMin: 210, + }, + { + FlightNum: 'QY97TB0', + DestCountry: 'IT', + OriginWeather: 'Clear', + OriginCityName: 'Milan', + AvgTicketPrice: 173.5006794979574, + DistanceMiles: 149.4599064359537, + FlightDelay: false, + DestWeather: 'Cloudy', + Dest: 'Venice Marco Polo Airport', + FlightDelayType: 'No Delay', + OriginCountry: 'IT', + dayOfWeek: 0, + DistanceKilometers: 240.53240366326352, + timestamp: '2018-01-01T14:31:43', + DestLocation: { lat: '45.505299', lon: '12.3519' }, + DestAirportID: 'VE05', + Carrier: 'Kibana Airlines', + Cancelled: false, + FlightTimeMin: 15.03327522895397, + Origin: 'Milano Linate Airport', + OriginLocation: { lat: '45.445099', lon: '9.27674' }, + DestRegion: 'IT-34', + OriginAirportID: 'MI11', + OriginRegion: 'IT-25', + DestCityName: 'Venice', + FlightTimeHour: 0.25055458714923284, + FlightDelayMin: 0, + }, +]; diff --git a/src/plugins/presentation_util/public/components/input_controls/__stories__/decorators.tsx b/src/plugins/presentation_util/public/components/input_controls/__stories__/decorators.tsx new file mode 100644 index 0000000000000..0aaa0e7a8a533 --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/__stories__/decorators.tsx @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { Story } from '@storybook/react'; + +const bar = '#c5ced8'; +const panel = '#f7f9fa'; +const background = '#e0e6ec'; +const minHeight = 60; + +const panelStyle = { + height: 165, + width: 400, + background: panel, +}; + +const kqlBarStyle = { background: bar, padding: 16, minHeight, fontStyle: 'italic' }; + +const inputBarStyle = { background: '#fff', padding: 4, minHeight }; + +const layout = (OptionStory: Story) => ( + + KQL Bar + + + + + + + + + + + + + + + + + + +); + +export const decorators = [layout]; diff --git a/src/plugins/presentation_util/public/components/input_controls/__stories__/flights.ts b/src/plugins/presentation_util/public/components/input_controls/__stories__/flights.ts new file mode 100644 index 0000000000000..e405b704796ec --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/__stories__/flights.ts @@ -0,0 +1,60 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { map, uniq } from 'lodash'; +import { EuiSelectableOption } from '@elastic/eui'; + +import { flights } from '../../fixtures/flights'; + +export type Flight = typeof flights[number]; +export type FlightField = keyof Flight; + +export const getOptions = (field: string) => uniq(map(flights, field)).sort(); + +export const getEuiSelectableOptions = (field: string, search?: string): EuiSelectableOption[] => { + const options = getOptions(field) + .map((option) => ({ + label: option + '', + searchableLabel: option + '', + })) + .filter((option) => !search || option.label.toLowerCase().includes(search.toLowerCase())); + if (options.length > 10) options.length = 10; + return options; +}; + +export const flightFieldLabels: Record = { + AvgTicketPrice: 'Average Ticket Price', + Cancelled: 'Cancelled', + Carrier: 'Carrier', + dayOfWeek: 'Day of Week', + Dest: 'Destination', + DestAirportID: 'Destination Airport ID', + DestCityName: 'Destination City', + DestCountry: 'Destination Country', + DestLocation: 'Destination Location', + DestRegion: 'Destination Region', + DestWeather: 'Destination Weather', + DistanceKilometers: 'Distance (km)', + DistanceMiles: 'Distance (mi)', + FlightDelay: 'Flight Delay', + FlightDelayMin: 'Flight Delay (min)', + FlightDelayType: 'Flight Delay Type', + FlightNum: 'Flight Number', + FlightTimeHour: 'Flight Time (hr)', + FlightTimeMin: 'Flight Time (min)', + Origin: 'Origin', + OriginAirportID: 'Origin Airport ID', + OriginCityName: 'Origin City', + OriginCountry: 'Origin Country', + OriginLocation: 'Origin Location', + OriginRegion: 'Origin Region', + OriginWeather: 'Origin Weather', + timestamp: 'Timestamp', +}; + +export const flightFields = Object.keys(flightFieldLabels) as FlightField[]; diff --git a/src/plugins/presentation_util/public/components/input_controls/__stories__/input_controls.stories.tsx b/src/plugins/presentation_util/public/components/input_controls/__stories__/input_controls.stories.tsx new file mode 100644 index 0000000000000..d1ad3af0daf44 --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/__stories__/input_controls.stories.tsx @@ -0,0 +1,88 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { useEffect, useMemo, useState } from 'react'; + +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; + +import { decorators } from './decorators'; +import { getEuiSelectableOptions, flightFields, flightFieldLabels, FlightField } from './flights'; +import { OptionsListEmbeddableFactory, OptionsListEmbeddable } from '../control_types/options_list'; +import { ControlFrame } from '../control_frame/control_frame'; + +export default { + title: 'Input Controls', + description: '', + decorators, +}; + +interface OptionsListStorybookArgs { + fields: string[]; + twoLine: boolean; +} + +const storybookArgs = { + twoLine: false, + fields: ['OriginCityName', 'OriginWeather', 'DestCityName', 'DestWeather'], +}; + +const storybookArgTypes = { + fields: { + twoLine: { + control: { type: 'bool' }, + }, + control: { + type: 'check', + options: flightFields, + }, + }, +}; + +const OptionsListStoryComponent = ({ fields, twoLine }: OptionsListStorybookArgs) => { + const [embeddables, setEmbeddables] = useState([]); + + const optionsListEmbeddableFactory = useMemo( + () => + new OptionsListEmbeddableFactory( + ({ field, search }) => + new Promise((r) => setTimeout(() => r(getEuiSelectableOptions(field, search)), 500)) + ), + [] + ); + + useEffect(() => { + const embeddableCreatePromises = fields.map((field) => { + return optionsListEmbeddableFactory.create({ + field, + id: '', + indexPattern: '', + multiSelect: true, + twoLineLayout: twoLine, + title: flightFieldLabels[field as FlightField], + }); + }); + Promise.all(embeddableCreatePromises).then((newEmbeddables) => setEmbeddables(newEmbeddables)); + }, [fields, optionsListEmbeddableFactory, twoLine]); + + return ( + + {embeddables.map((embeddable) => ( + + + + ))} + + ); +}; + +export const OptionsListStory = ({ fields, twoLine }: OptionsListStorybookArgs) => ( + +); + +OptionsListStory.args = storybookArgs; +OptionsListStory.argTypes = storybookArgTypes; diff --git a/src/plugins/presentation_util/public/components/input_controls/control_frame/control_frame.scss b/src/plugins/presentation_util/public/components/input_controls/control_frame/control_frame.scss new file mode 100644 index 0000000000000..ad054be022c32 --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/control_frame/control_frame.scss @@ -0,0 +1,14 @@ +.controlFrame--formControlLayout { + width: 100%; + min-width: $euiSize * 12.5; +} + +.controlFrame--control { + &.optionsList--filterBtnSingle { + height: 100%; + } +} + +.optionsList--filterBtnTwoLine { + width: 100%; +} \ No newline at end of file diff --git a/src/plugins/presentation_util/public/components/input_controls/control_frame/control_frame.tsx b/src/plugins/presentation_util/public/components/input_controls/control_frame/control_frame.tsx new file mode 100644 index 0000000000000..7fa8688ffb368 --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/control_frame/control_frame.tsx @@ -0,0 +1,58 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { useMemo } from 'react'; +import useMount from 'react-use/lib/useMount'; +import classNames from 'classnames'; +import { EuiFormControlLayout, EuiFormLabel, EuiFormRow } from '@elastic/eui'; + +import { InputControlEmbeddable } from '../embeddable/types'; + +import './control_frame.scss'; + +interface ControlFrameProps { + embeddable: InputControlEmbeddable; + twoLine?: boolean; +} + +export const ControlFrame = ({ twoLine, embeddable }: ControlFrameProps) => { + const embeddableRoot: React.RefObject = useMemo(() => React.createRef(), []); + + useMount(() => { + if (embeddableRoot.current && embeddable) embeddable.render(embeddableRoot.current); + }); + + const form = ( + {embeddable.getInput().title} + ) + } + > +
+ + ); + + return twoLine ? ( + + {form} + + ) : ( + form + ); +}; diff --git a/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/index.ts b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/index.ts new file mode 100644 index 0000000000000..63275f12076ff --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { OptionsListEmbeddableFactory } from './options_list_embeddable_factory'; +export { OptionsListEmbeddable } from './options_list_embeddable'; diff --git a/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list.scss b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list.scss new file mode 100644 index 0000000000000..e9a4ef215733e --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list.scss @@ -0,0 +1,46 @@ +.optionsList--anchorOverride { + display:block; +} + +.optionsList--popoverOverride { + width: 100%; + height: 100%; +} + +.optionsList--items { + @include euiScrollBar; + + overflow-y: auto; + max-height: $euiSize * 30; + width: $euiSize * 25; + max-width: 100%; +} + +.optionsList--filterBtn { + .euiFilterButton__text-hasNotification { + flex-grow: 1; + justify-content: space-between; + width: 0; + } + &.optionsList--filterBtnSingle { + width: 100%; + } + &.optionsList--filterBtnPlaceholder { + .euiFilterButton__textShift { + color: $euiTextSubduedColor; + } + } +} + +.optionsList--filterGroupSingle { + box-shadow: none; + height: 100%; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: $euiBorderRadius - 1px; + border-bottom-right-radius: $euiBorderRadius - 1px; +} + +.optionsList--filterGroup { + width: 100%; +} diff --git a/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_component.tsx b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_component.tsx new file mode 100644 index 0000000000000..2feb527ff9160 --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_component.tsx @@ -0,0 +1,173 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { useMemo, useEffect, useState, useCallback, useRef } from 'react'; +import { debounceTime, tap } from 'rxjs/operators'; +import useMount from 'react-use/lib/useMount'; +import classNames from 'classnames'; +import { Subject } from 'rxjs'; +import { EuiFilterButton, EuiFilterGroup, EuiPopover, EuiSelectableOption } from '@elastic/eui'; + +import { + OptionsListDataFetcher, + OptionsListEmbeddable, + OptionsListEmbeddableInput, +} from './options_list_embeddable'; +import { OptionsListStrings } from './options_list_strings'; +import { InputControlOutput } from '../../embeddable/types'; +import { OptionsListPopover } from './options_list_popover_component'; +import { withEmbeddableSubscription } from '../../../../../../embeddable/public'; + +import './options_list.scss'; + +const toggleAvailableOptions = ( + indices: number[], + availableOptions: EuiSelectableOption[], + enabled: boolean +) => { + const newAvailableOptions = [...availableOptions]; + indices.forEach((index) => (newAvailableOptions[index].checked = enabled ? 'on' : undefined)); + return newAvailableOptions; +}; + +interface OptionsListProps { + input: OptionsListEmbeddableInput; + fetchData: OptionsListDataFetcher; +} + +export const OptionsListInner = ({ input, fetchData }: OptionsListProps) => { + const [availableOptions, setAvailableOptions] = useState([]); + const selectedOptions = useRef>(new Set()); + + // raw search string is stored here so it is remembered when popover is closed. + const [searchString, setSearchString] = useState(''); + const [debouncedSearchString, setDebouncedSearchString] = useState(); + + const [isPopoverOpen, setIsPopoverOpen] = useState(false); + const [loading, setIsLoading] = useState(false); + + const typeaheadSubject = useMemo(() => new Subject(), []); + + useMount(() => { + typeaheadSubject + .pipe( + tap((rawSearchText) => setSearchString(rawSearchText)), + debounceTime(100) + ) + .subscribe((search) => setDebouncedSearchString(search)); + // default selections can be applied here... + }); + + const { indexPattern, timeRange, filters, field, query } = input; + useEffect(() => { + let canceled = false; + setIsLoading(true); + fetchData({ + search: debouncedSearchString, + indexPattern, + timeRange, + filters, + field, + query, + }).then((newOptions) => { + if (canceled) return; + setIsLoading(false); + // We now have new 'availableOptions', we need to ensure the previously selected options are still selected. + const enabledIndices: number[] = []; + selectedOptions.current?.forEach((selectedOption) => { + const optionIndex = newOptions.findIndex( + (availableOption) => availableOption.label === selectedOption + ); + if (optionIndex >= 0) enabledIndices.push(optionIndex); + }); + newOptions = toggleAvailableOptions(enabledIndices, newOptions, true); + setAvailableOptions(newOptions); + }); + return () => { + canceled = true; + }; + }, [indexPattern, timeRange, filters, field, query, debouncedSearchString, fetchData]); + + const updateItem = useCallback( + (index: number) => { + const item = availableOptions?.[index]; + if (!item) return; + + const toggleOff = availableOptions[index].checked === 'on'; + + const newAvailableOptions = toggleAvailableOptions([index], availableOptions, !toggleOff); + setAvailableOptions(newAvailableOptions); + + if (toggleOff) { + selectedOptions.current.delete(item.label); + } else { + selectedOptions.current.add(item.label); + } + }, + [availableOptions] + ); + + const selectedOptionsString = Array.from(selectedOptions.current).join( + OptionsListStrings.summary.getSeparator() + ); + const selectedOptionsLength = Array.from(selectedOptions.current).length; + + const { twoLineLayout } = input; + + const button = ( + setIsPopoverOpen((openState) => !openState)} + isSelected={isPopoverOpen} + numFilters={availableOptions.length} + hasActiveFilters={selectedOptionsLength > 0} + numActiveFilters={selectedOptionsLength} + > + {!selectedOptionsLength ? OptionsListStrings.summary.getPlaceholder() : selectedOptionsString} + + ); + + return ( + + setIsPopoverOpen(false)} + panelPaddingSize="none" + anchorPosition="upLeft" + ownFocus + repositionOnScroll + > + + + + ); +}; + +export const OptionsListComponent = withEmbeddableSubscription< + OptionsListEmbeddableInput, + InputControlOutput, + OptionsListEmbeddable, + { fetchData: OptionsListDataFetcher } +>(OptionsListInner); diff --git a/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_embeddable.tsx b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_embeddable.tsx new file mode 100644 index 0000000000000..4dcc4a75dc1f0 --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_embeddable.tsx @@ -0,0 +1,63 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import ReactDOM from 'react-dom'; +import { EuiSelectableOption } from '@elastic/eui'; + +import { OptionsListComponent } from './options_list_component'; +import { Embeddable } from '../../../../../../embeddable/public'; +import { InputControlInput, InputControlOutput } from '../../embeddable/types'; + +interface OptionsListDataFetchProps { + field: string; + search?: string; + indexPattern: string; + query?: InputControlInput['query']; + filters?: InputControlInput['filters']; + timeRange?: InputControlInput['timeRange']; +} + +export type OptionsListDataFetcher = ( + props: OptionsListDataFetchProps +) => Promise; + +export const OPTIONS_LIST_CONTROL = 'optionsListControl'; +export interface OptionsListEmbeddableInput extends InputControlInput { + field: string; + indexPattern: string; + multiSelect: boolean; +} +export class OptionsListEmbeddable extends Embeddable< + OptionsListEmbeddableInput, + InputControlOutput +> { + public readonly type = OPTIONS_LIST_CONTROL; + + private node?: HTMLElement; + private fetchData: OptionsListDataFetcher; + + constructor( + input: OptionsListEmbeddableInput, + output: InputControlOutput, + fetchData: OptionsListDataFetcher + ) { + super(input, output); + this.fetchData = fetchData; + } + + reload = () => {}; + + public render = (node: HTMLElement) => { + if (this.node) { + ReactDOM.unmountComponentAtNode(this.node); + } + this.node = node; + ReactDOM.render(, node); + }; +} diff --git a/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_embeddable_factory.ts b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_embeddable_factory.ts new file mode 100644 index 0000000000000..e1850e6715e34 --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_embeddable_factory.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { EmbeddableFactoryDefinition } from '../../../../../../embeddable/public'; +import { + OptionsListDataFetcher, + OptionsListEmbeddable, + OptionsListEmbeddableInput, + OPTIONS_LIST_CONTROL, +} from './options_list_embeddable'; + +export class OptionsListEmbeddableFactory implements EmbeddableFactoryDefinition { + public type = OPTIONS_LIST_CONTROL; + private fetchData: OptionsListDataFetcher; + + constructor(fetchData: OptionsListDataFetcher) { + this.fetchData = fetchData; + } + + public create(initialInput: OptionsListEmbeddableInput) { + return Promise.resolve(new OptionsListEmbeddable(initialInput, {}, this.fetchData)); + } + + public isEditable = () => Promise.resolve(false); + + public getDisplayName = () => 'Options List Control'; +} diff --git a/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_popover_component.tsx b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_popover_component.tsx new file mode 100644 index 0000000000000..cd558b99f9aa1 --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_popover_component.tsx @@ -0,0 +1,83 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { + EuiFieldSearch, + EuiFilterSelectItem, + EuiIcon, + EuiLoadingChart, + EuiPopoverTitle, + EuiSelectableOption, + EuiSpacer, +} from '@elastic/eui'; + +import { Subject } from 'rxjs'; +import { OptionsListStrings } from './options_list_strings'; + +interface OptionsListPopoverProps { + loading: boolean; + typeaheadSubject: Subject; + searchString: string; + updateItem: (index: number) => void; + availableOptions: EuiSelectableOption[]; +} + +export const OptionsListPopover = ({ + loading, + updateItem, + searchString, + typeaheadSubject, + availableOptions, +}: OptionsListPopoverProps) => { + return ( + <> + + { + typeaheadSubject.next(event.target.value); + }} + value={searchString} + /> + +
+ {!loading && + availableOptions && + availableOptions.map((item, index) => ( + updateItem(index)} + > + {item.label} + + ))} + {loading && ( +
+
+ + +

{OptionsListStrings.popover.getLoadingMessage()}

+
+
+ )} + + {!loading && (!availableOptions || availableOptions.length === 0) && ( +
+
+ + +

{OptionsListStrings.popover.getEmptyMessage()}

+
+
+ )} +
+ + ); +}; diff --git a/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_strings.ts b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_strings.ts new file mode 100644 index 0000000000000..2211ae14cb9bd --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/control_types/options_list/options_list_strings.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { i18n } from '@kbn/i18n'; + +export const OptionsListStrings = { + summary: { + getSeparator: () => + i18n.translate('presentationUtil.inputControls.optionsList.summary.separator', { + defaultMessage: ', ', + }), + getPlaceholder: () => + i18n.translate('presentationUtil.inputControls.optionsList.summary.placeholder', { + defaultMessage: 'Select...', + }), + }, + popover: { + getLoadingMessage: () => + i18n.translate('presentationUtil.inputControls.optionsList.popover.loading', { + defaultMessage: 'Loading filters', + }), + getEmptyMessage: () => + i18n.translate('presentationUtil.inputControls.optionsList.popover.empty', { + defaultMessage: 'No filters found', + }), + }, +}; diff --git a/src/plugins/presentation_util/public/components/input_controls/embeddable/types.ts b/src/plugins/presentation_util/public/components/input_controls/embeddable/types.ts new file mode 100644 index 0000000000000..00be17932ba1f --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/embeddable/types.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { Filter, Query, TimeRange } from '../../../../../data/public'; +import { EmbeddableInput, EmbeddableOutput, IEmbeddable } from '../../../../../embeddable/public'; + +export type InputControlInput = EmbeddableInput & { + filters?: Filter[]; + query?: Query; + timeRange?: TimeRange; + twoLineLayout?: boolean; +}; + +export type InputControlOutput = EmbeddableOutput & { + filters?: Filter[]; +}; + +export type InputControlEmbeddable = IEmbeddable; diff --git a/src/plugins/presentation_util/public/components/input_controls/index.ts b/src/plugins/presentation_util/public/components/input_controls/index.ts new file mode 100644 index 0000000000000..5c2d5b68ae2e0 --- /dev/null +++ b/src/plugins/presentation_util/public/components/input_controls/index.ts @@ -0,0 +1,7 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ diff --git a/src/plugins/presentation_util/tsconfig.json b/src/plugins/presentation_util/tsconfig.json index b389d94b19413..e0b9bbeb4917d 100644 --- a/src/plugins/presentation_util/tsconfig.json +++ b/src/plugins/presentation_util/tsconfig.json @@ -13,6 +13,7 @@ "include": [ "common/**/*", "public/**/*", + "public/**/*.json", "server/**/*", "storybook/**/*", "../../../typings/**/*" @@ -21,5 +22,7 @@ { "path": "../../core/tsconfig.json" }, { "path": "../saved_objects/tsconfig.json" }, { "path": "../kibana_react/tsconfig.json" }, + { "path": "../embeddable/tsconfig.json" }, + { "path": "../data/tsconfig.json" } ] }