visjs-rails 4.16.1.0 → 4.21.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +19 -19
- data/example/.gitignore +26 -0
- data/example/.ruby-version +1 -0
- data/example/Gemfile +64 -0
- data/example/Gemfile.lock +224 -0
- data/example/README.md +24 -0
- data/example/Rakefile +6 -0
- data/example/app/assets/config/manifest.js +3 -0
- data/example/app/assets/images/.keep +0 -0
- data/example/app/assets/javascripts/application.js +20 -0
- data/example/app/assets/javascripts/cable.js +13 -0
- data/example/app/assets/javascripts/channels/.keep +0 -0
- data/example/app/assets/javascripts/welcome.coffee +6 -0
- data/example/app/assets/stylesheets/application.scss +3 -0
- data/example/app/assets/stylesheets/welcome.scss +3 -0
- data/example/app/channels/application_cable/channel.rb +4 -0
- data/example/app/channels/application_cable/connection.rb +4 -0
- data/example/app/controllers/application_controller.rb +2 -0
- data/example/app/controllers/concerns/.keep +0 -0
- data/example/app/controllers/welcome_controller.rb +4 -0
- data/example/app/helpers/application_helper.rb +2 -0
- data/example/app/helpers/welcome_helper.rb +2 -0
- data/example/app/jobs/application_job.rb +2 -0
- data/example/app/mailers/application_mailer.rb +4 -0
- data/example/app/models/application_record.rb +3 -0
- data/example/app/models/concerns/.keep +0 -0
- data/example/app/views/layouts/application.html.erb +15 -0
- data/example/app/views/layouts/mailer.html.erb +13 -0
- data/example/app/views/layouts/mailer.text.erb +1 -0
- data/example/app/views/welcome/index.html.erb +48 -0
- data/example/bin/bundle +3 -0
- data/example/bin/rails +9 -0
- data/example/bin/rake +9 -0
- data/example/bin/setup +36 -0
- data/example/bin/spring +17 -0
- data/example/bin/update +31 -0
- data/example/bin/yarn +11 -0
- data/example/config.ru +5 -0
- data/example/config/application.rb +19 -0
- data/example/config/boot.rb +4 -0
- data/example/config/cable.yml +10 -0
- data/example/config/credentials.yml.enc +1 -0
- data/example/config/database.yml +85 -0
- data/example/config/environment.rb +5 -0
- data/example/config/environments/development.rb +61 -0
- data/example/config/environments/production.rb +94 -0
- data/example/config/environments/test.rb +46 -0
- data/example/config/initializers/application_controller_renderer.rb +8 -0
- data/example/config/initializers/assets.rb +14 -0
- data/example/config/initializers/backtrace_silencers.rb +7 -0
- data/example/config/initializers/content_security_policy.rb +25 -0
- data/example/config/initializers/cookies_serializer.rb +5 -0
- data/example/config/initializers/filter_parameter_logging.rb +4 -0
- data/example/config/initializers/inflections.rb +16 -0
- data/example/config/initializers/mime_types.rb +4 -0
- data/example/config/initializers/wrap_parameters.rb +14 -0
- data/example/config/locales/en.yml +33 -0
- data/example/config/puma.rb +34 -0
- data/example/config/routes.rb +5 -0
- data/example/config/spring.rb +6 -0
- data/example/config/storage.yml +34 -0
- data/example/db/seeds.rb +7 -0
- data/example/lib/assets/.keep +0 -0
- data/example/lib/tasks/.keep +0 -0
- data/example/log/.keep +0 -0
- data/example/package.json +5 -0
- data/example/public/404.html +67 -0
- data/example/public/422.html +67 -0
- data/example/public/500.html +66 -0
- data/example/public/apple-touch-icon-precomposed.png +0 -0
- data/example/public/apple-touch-icon.png +0 -0
- data/example/public/favicon.ico +0 -0
- data/example/public/robots.txt +1 -0
- data/example/test/application_system_test_case.rb +5 -0
- data/example/test/controllers/.keep +0 -0
- data/example/test/controllers/welcome_controller_test.rb +9 -0
- data/example/test/fixtures/.keep +0 -0
- data/example/test/fixtures/files/.keep +0 -0
- data/example/test/helpers/.keep +0 -0
- data/example/test/integration/.keep +0 -0
- data/example/test/mailers/.keep +0 -0
- data/example/test/models/.keep +0 -0
- data/example/test/system/.keep +0 -0
- data/example/test/test_helper.rb +10 -0
- data/example/tmp/.keep +0 -0
- data/example/vendor/.keep +0 -0
- data/examples_for_vis/graph2d/01_basic.html +71 -0
- data/examples_for_vis/graph2d/02_bars.html +80 -0
- data/examples_for_vis/graph2d/03_groups.html +112 -0
- data/examples_for_vis/graph2d/04_rightAxis.html +126 -0
- data/examples_for_vis/graph2d/05_bothAxis.html +228 -0
- data/examples_for_vis/graph2d/06_interpolation.html +160 -0
- data/examples_for_vis/graph2d/07_scrollingAndSorting.html +74 -0
- data/examples_for_vis/graph2d/08_performance.html +194 -0
- data/examples_for_vis/graph2d/09_external_legend.html +452 -0
- data/examples_for_vis/graph2d/10_barsSideBySide.html +75 -0
- data/examples_for_vis/graph2d/11_barsSideBySideGroups.html +181 -0
- data/examples_for_vis/graph2d/12_customRange.html +92 -0
- data/examples_for_vis/graph2d/13_localization.html +65 -0
- data/examples_for_vis/graph2d/14_toggleGroups.html +145 -0
- data/examples_for_vis/graph2d/15_streaming_data.html +122 -0
- data/examples_for_vis/graph2d/16_bothAxisTitles.html +201 -0
- data/examples_for_vis/graph2d/17_dynamicStyling.html +281 -0
- data/examples_for_vis/graph2d/18_scatterplot.html +63 -0
- data/examples_for_vis/graph2d/19_labels.html +213 -0
- data/examples_for_vis/graph2d/20_shading.html +218 -0
- data/examples_for_vis/graph2d/21_barsWithEnd.html +76 -0
- data/examples_for_vis/graph2d/default.css +87 -0
- data/examples_for_vis/graph3d/01_basics.html +71 -0
- data/examples_for_vis/graph3d/02_camera.html +110 -0
- data/examples_for_vis/graph3d/03_filter_data.html +64 -0
- data/examples_for_vis/graph3d/04_animation.html +70 -0
- data/examples_for_vis/graph3d/05_line.html +60 -0
- data/examples_for_vis/graph3d/06_moving_dots.html +78 -0
- data/examples_for_vis/graph3d/07_dot_cloud_colors.html +72 -0
- data/examples_for_vis/graph3d/08_dot_cloud_size.html +69 -0
- data/examples_for_vis/graph3d/09_mobile.html +79 -0
- data/examples_for_vis/graph3d/10_styling.html +121 -0
- data/examples_for_vis/graph3d/11_tooltips.html +132 -0
- data/examples_for_vis/graph3d/12_custom_labels.html +116 -0
- data/examples_for_vis/graph3d/default.css +87 -0
- data/examples_for_vis/graph3d/playground/csv2array.js +120 -0
- data/examples_for_vis/graph3d/playground/csv2datatable.html +80 -0
- data/examples_for_vis/graph3d/playground/datasource.html +173 -0
- data/examples_for_vis/graph3d/playground/datasource.php +155 -0
- data/examples_for_vis/graph3d/playground/index.html +196 -0
- data/examples_for_vis/graph3d/playground/playground.css +91 -0
- data/examples_for_vis/graph3d/playground/playground.js +550 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-apollo.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-css.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-hs.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-lisp.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-lua.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-ml.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-proto.js +1 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-scala.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-sql.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-vb.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-vhdl.js +3 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-wiki.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/lang-yaml.js +2 -0
- data/examples_for_vis/graph3d/playground/prettify/prettify.css +1 -0
- data/examples_for_vis/graph3d/playground/prettify/prettify.js +33 -0
- data/examples_for_vis/network/basicUsage.html +87 -0
- data/examples_for_vis/network/data/datasets.html +196 -0
- data/examples_for_vis/network/data/dotLanguage/data/cellular_automata.gv.txt +23 -0
- data/examples_for_vis/network/data/dotLanguage/data/computer_network.gv.txt +19 -0
- data/examples_for_vis/network/data/dotLanguage/data/simple.gv.txt +15 -0
- data/examples_for_vis/network/data/dotLanguage/dotEdgeStyles.html +197 -0
- data/examples_for_vis/network/data/dotLanguage/dotLanguage.html +22 -0
- data/examples_for_vis/network/data/dotLanguage/dotPlayground.html +216 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/fsm.gv.txt +20 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/hello.gv.txt +1 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/process.gv.txt +15 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/screenshots/fsm.png +0 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/screenshots/hello.png +0 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/screenshots/softmaint.png +0 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/screenshots/traffic_lights.png +0 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/siblings.gv.txt +512 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/softmaint.gv.txt +377 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/traffic_lights.gv.txt +29 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/transparency.gv.txt +105 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/twopi2.gv.txt +2212 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/unix.gv.txt +55 -0
- data/examples_for_vis/network/data/dotLanguage/graphvizGallery/world.gv.txt +67 -0
- data/examples_for_vis/network/data/dynamicData.html +266 -0
- data/examples_for_vis/network/data/importingFromGephi.html +174 -0
- data/examples_for_vis/network/data/scalingCustom.html +86 -0
- data/examples_for_vis/network/data/scalingNodesEdges.html +79 -0
- data/examples_for_vis/network/data/scalingNodesEdgesLabels.html +85 -0
- data/examples_for_vis/network/datasources/WorldCup2014.js +9970 -0
- data/examples_for_vis/network/datasources/WorldCup2014.json +1 -0
- data/examples_for_vis/network/datasources/largeHierarchicalDataset.js +2 -0
- data/examples_for_vis/network/edgeStyles/arrowTypes.html +103 -0
- data/examples_for_vis/network/edgeStyles/arrows.html +61 -0
- data/examples_for_vis/network/edgeStyles/colors.html +71 -0
- data/examples_for_vis/network/edgeStyles/dashes.html +57 -0
- data/examples_for_vis/network/edgeStyles/smooth.html +78 -0
- data/examples_for_vis/network/edgeStyles/smoothWorldCup.html +97 -0
- data/examples_for_vis/network/events/interactionEvents.html +132 -0
- data/examples_for_vis/network/events/physicsEvents.html +73 -0
- data/examples_for_vis/network/events/renderEvents.html +83 -0
- data/examples_for_vis/network/exampleApplications/disassemblerExample.html +24 -0
- data/examples_for_vis/network/exampleApplications/disassemblerExample.js +53 -0
- data/examples_for_vis/network/exampleApplications/lesMiserables.html +396 -0
- data/examples_for_vis/network/exampleApplications/loadingBar.html +504 -0
- data/examples_for_vis/network/exampleApplications/neighbourhoodHighlight.html +162 -0
- data/examples_for_vis/network/exampleApplications/nodeLegend.html +163 -0
- data/examples_for_vis/network/exampleApplications/worldCupPerformance.html +98 -0
- data/examples_for_vis/network/exampleUtil.js +133 -0
- data/examples_for_vis/network/imageSelected/broken-image.png +0 -0
- data/examples_for_vis/network/imageSelected/imageSelected.html +82 -0
- data/examples_for_vis/network/imageSelected/selected.svg +53 -0
- data/examples_for_vis/network/imageSelected/unselected.svg +6 -0
- data/examples_for_vis/network/img/indonesia/1.png +0 -0
- data/examples_for_vis/network/img/indonesia/10.png +0 -0
- data/examples_for_vis/network/img/indonesia/11.png +0 -0
- data/examples_for_vis/network/img/indonesia/12.png +0 -0
- data/examples_for_vis/network/img/indonesia/13.png +0 -0
- data/examples_for_vis/network/img/indonesia/14.png +0 -0
- data/examples_for_vis/network/img/indonesia/2.png +0 -0
- data/examples_for_vis/network/img/indonesia/3.png +0 -0
- data/examples_for_vis/network/img/indonesia/4.png +0 -0
- data/examples_for_vis/network/img/indonesia/5.png +0 -0
- data/examples_for_vis/network/img/indonesia/6.png +0 -0
- data/examples_for_vis/network/img/indonesia/7.png +0 -0
- data/examples_for_vis/network/img/indonesia/8.png +0 -0
- data/examples_for_vis/network/img/indonesia/9.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Hardware-Fax-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Hardware-Laptop-1-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Hardware-Mobile-Phone-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Hardware-My-Computer-3-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Hardware-My-PDA-02-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Hardware-My-PDA-04-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Hardware-My-PDA-05-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Hardware-My-Phone-Picture-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Hardware-Printer-Blue-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Misc-Scanner-default-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Network-Drive-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Network-Internet-Connection-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/Network-Pipe-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/System-Firewall-2-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/System-Globe-icon.png +0 -0
- data/examples_for_vis/network/img/refresh-cl/license.txt +14 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Document-icon24.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Document-icon32.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Document-icon48.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Email-icon24.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Email-icon32.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Email-icon48.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Folder-icon24.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Folder-icon32.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Folder-icon48.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Folder-icon64.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Smiley-Angry-icon.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/Smiley-Grin-icon.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/User-Administrator-Blue-icon.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/User-Administrator-Green-icon.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/User-Coat-Blue-icon.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/User-Coat-Green-icon.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/User-Coat-Red-icon.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/User-Executive-Green-icon.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/User-Preppy-Blue-icon.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/User-Preppy-Red-icon.png +0 -0
- data/examples_for_vis/network/img/soft-scraps-icons/license.txt +12 -0
- data/examples_for_vis/network/labels/labelAlignment.html +70 -0
- data/examples_for_vis/network/labels/labelBackground.html +57 -0
- data/examples_for_vis/network/labels/labelColorAndSize.html +61 -0
- data/examples_for_vis/network/labels/labelMargins.html +63 -0
- data/examples_for_vis/network/labels/labelMultifont.html +115 -0
- data/examples_for_vis/network/labels/labelStroke.html +61 -0
- data/examples_for_vis/network/labels/multilineText.html +52 -0
- data/examples_for_vis/network/layout/demo.jsonp +1894 -0
- data/examples_for_vis/network/layout/demo_big.jsonp +3762 -0
- data/examples_for_vis/network/layout/hierarchicalLayout.html +114 -0
- data/examples_for_vis/network/layout/hierarchicalLayoutBigUserDefined.html +46 -0
- data/examples_for_vis/network/layout/hierarchicalLayoutMethods.html +108 -0
- data/examples_for_vis/network/layout/hierarchicalLayoutUserdefined.html +152 -0
- data/examples_for_vis/network/layout/hierarchicalLayoutWithoutPhysics.html +111 -0
- data/examples_for_vis/network/layout/randomSeed.html +60 -0
- data/examples_for_vis/network/nodeStyles/HTMLInNodes.html +83 -0
- data/examples_for_vis/network/nodeStyles/circularImages.html +219 -0
- data/examples_for_vis/network/nodeStyles/colors.html +140 -0
- data/examples_for_vis/network/nodeStyles/customGroups.html +132 -0
- data/examples_for_vis/network/nodeStyles/groups.html +119 -0
- data/examples_for_vis/network/nodeStyles/icons.html +196 -0
- data/examples_for_vis/network/nodeStyles/images.html +82 -0
- data/examples_for_vis/network/nodeStyles/imagesWithBorders.html +105 -0
- data/examples_for_vis/network/nodeStyles/shadows.html +119 -0
- data/examples_for_vis/network/nodeStyles/shapes.html +73 -0
- data/examples_for_vis/network/nodeStyles/shapesWithDashedBorders.html +61 -0
- data/examples_for_vis/network/nodeStyles/widthHeight.html +121 -0
- data/examples_for_vis/network/other/animationShowcase.html +279 -0
- data/examples_for_vis/network/other/changingClusteredEdgesNodes.html +107 -0
- data/examples_for_vis/network/other/chosen.html +466 -0
- data/examples_for_vis/network/other/clustering.html +141 -0
- data/examples_for_vis/network/other/clusteringByZoom.html +160 -0
- data/examples_for_vis/network/other/clustersOfclusters.html +88 -0
- data/examples_for_vis/network/other/configuration.html +83 -0
- data/examples_for_vis/network/other/cursorChange.html +140 -0
- data/examples_for_vis/network/other/manipulation.html +193 -0
- data/examples_for_vis/network/other/manipulationEditEdgeNoDrag.html +255 -0
- data/examples_for_vis/network/other/navigation.html +135 -0
- data/examples_for_vis/network/other/onLoadAnimation.html +85 -0
- data/examples_for_vis/network/other/performance.html +91 -0
- data/examples_for_vis/network/other/saveAndLoad.html +202 -0
- data/examples_for_vis/network/physics/physicsConfiguration.html +85 -0
- data/examples_for_vis/timeline/basicUsage.html +45 -0
- data/examples_for_vis/timeline/dataHandling/dataSerialization.html +123 -0
- data/examples_for_vis/timeline/dataHandling/loadExternalData.html +61 -0
- data/examples_for_vis/timeline/editing/customSnappingOfItems.html +76 -0
- data/examples_for_vis/timeline/editing/editingItems.html +109 -0
- data/examples_for_vis/timeline/editing/editingItemsCallbacks.html +172 -0
- data/examples_for_vis/timeline/editing/individualEditableItems.html +131 -0
- data/examples_for_vis/timeline/editing/itemsAlwaysDraggable.html +44 -0
- data/examples_for_vis/timeline/editing/overrideEditingItems.html +166 -0
- data/examples_for_vis/timeline/editing/tooltipOnItemChange.html +133 -0
- data/examples_for_vis/timeline/editing/updateDataOnEvent.html +87 -0
- data/examples_for_vis/timeline/groups/groups.html +79 -0
- data/examples_for_vis/timeline/groups/groupsEditable.html +2001 -0
- data/examples_for_vis/timeline/groups/groupsOrdering.html +117 -0
- data/examples_for_vis/timeline/groups/nestedGroups.html +113 -0
- data/examples_for_vis/timeline/groups/subgroups.html +326 -0
- data/examples_for_vis/timeline/groups/verticalItemsHide.html +196 -0
- data/examples_for_vis/timeline/interaction/animateWindow.html +143 -0
- data/examples_for_vis/timeline/interaction/clickToUse.html +107 -0
- data/examples_for_vis/timeline/interaction/eventListeners.html +166 -0
- data/examples_for_vis/timeline/interaction/limitMoveAndZoom.html +70 -0
- data/examples_for_vis/timeline/interaction/navigationMenu.html +121 -0
- data/examples_for_vis/timeline/interaction/rollingMode.html +50 -0
- data/examples_for_vis/timeline/interaction/setSelection.html +223 -0
- data/examples_for_vis/timeline/items/backgroundAreas.html +92 -0
- data/examples_for_vis/timeline/items/backgroundAreasWithGroups.html +123 -0
- data/examples_for_vis/timeline/items/expectedVsActualTimesItems.html +136 -0
- data/examples_for_vis/timeline/items/htmlContents.html +109 -0
- data/examples_for_vis/timeline/items/itemOrdering.html +88 -0
- data/examples_for_vis/timeline/items/pointItems.html +124 -0
- data/examples_for_vis/timeline/items/rangeOverflowItem.html +88 -0
- data/examples_for_vis/timeline/items/tooltip.html +120 -0
- data/examples_for_vis/timeline/items/visibleFrameTemplateContent.html +67 -0
- data/examples_for_vis/timeline/other/customTimeBars.html +99 -0
- data/examples_for_vis/timeline/other/customTimeBarsTooltip.html +105 -0
- data/examples_for_vis/timeline/other/dataAttributes.html +79 -0
- data/examples_for_vis/timeline/other/dataAttributesAll.html +78 -0
- data/examples_for_vis/timeline/other/drag&drop.html +201 -0
- data/examples_for_vis/timeline/other/functionLabelFormats.html +147 -0
- data/examples_for_vis/timeline/other/groupsPerformance.html +124 -0
- data/examples_for_vis/timeline/other/hidingPeriods.html +92 -0
- data/examples_for_vis/timeline/other/horizontalScroll.html +77 -0
- data/examples_for_vis/timeline/other/localization.html +81 -0
- data/examples_for_vis/timeline/other/performance.html +79 -0
- data/examples_for_vis/timeline/other/requirejs/requirejs_example.html +17 -0
- data/examples_for_vis/timeline/other/requirejs/scripts/main.js +19 -0
- data/examples_for_vis/timeline/other/requirejs/scripts/require.js +35 -0
- data/examples_for_vis/timeline/other/rtl.html +82 -0
- data/examples_for_vis/timeline/other/stressPerformance.html +66 -0
- data/examples_for_vis/timeline/other/timezone.html +98 -0
- data/examples_for_vis/timeline/other/usingReact.html +68 -0
- data/examples_for_vis/timeline/other/verticalScroll.html +91 -0
- data/examples_for_vis/timeline/resources/data/basic.json +34 -0
- data/examples_for_vis/timeline/resources/data/wk2014.json +152 -0
- data/examples_for_vis/timeline/resources/img/Hardware-Mobile-Phone-icon.png +0 -0
- data/examples_for_vis/timeline/resources/img/attachment-icon.png +0 -0
- data/examples_for_vis/timeline/resources/img/blog-post-edit-icon.png +0 -0
- data/examples_for_vis/timeline/resources/img/comments-icon.png +0 -0
- data/examples_for_vis/timeline/resources/img/community-users-icon.png +0 -0
- data/examples_for_vis/timeline/resources/img/license.txt +17 -0
- data/examples_for_vis/timeline/resources/img/license_aesthetica-2.txt +36 -0
- data/examples_for_vis/timeline/resources/img/license_refresh-cl.txt +26 -0
- data/examples_for_vis/timeline/resources/img/mail-icon.png +0 -0
- data/examples_for_vis/timeline/resources/img/notes-edit-icon.png +0 -0
- data/examples_for_vis/timeline/resources/img/product-icon.png +0 -0
- data/examples_for_vis/timeline/resources/img/truck-icon.png +0 -0
- data/examples_for_vis/timeline/styling/axisOrientation.html +113 -0
- data/examples_for_vis/timeline/styling/customCss.html +128 -0
- data/examples_for_vis/timeline/styling/gridStyling.html +80 -0
- data/examples_for_vis/timeline/styling/itemClassNames.html +125 -0
- data/examples_for_vis/timeline/styling/itemTemplates.html +264 -0
- data/examples_for_vis/timeline/styling/weekStyling.html +129 -0
- data/lib/visjs/rails/version.rb +1 -1
- data/vendor/assets/images/network/acceptDeleteIcon.png +0 -0
- data/vendor/assets/images/network/addNodeIcon.png +0 -0
- data/vendor/assets/images/network/backIcon.png +0 -0
- data/vendor/assets/images/network/connectIcon.png +0 -0
- data/vendor/assets/images/network/cross.png +0 -0
- data/vendor/assets/images/network/cross2.png +0 -0
- data/vendor/assets/images/network/deleteIcon.png +0 -0
- data/vendor/assets/images/network/downArrow.png +0 -0
- data/vendor/assets/images/network/editIcon.png +0 -0
- data/vendor/assets/images/network/leftArrow.png +0 -0
- data/vendor/assets/images/network/minus.png +0 -0
- data/vendor/assets/images/network/plus.png +0 -0
- data/vendor/assets/images/network/rightArrow.png +0 -0
- data/vendor/assets/images/network/upArrow.png +0 -0
- data/vendor/assets/images/network/zoomExtends.png +0 -0
- data/vendor/assets/javascripts/vis-graph3d.min.js +9 -12
- data/vendor/assets/javascripts/vis-network.min.js +9 -20
- data/vendor/assets/javascripts/vis-timeline-graph2d.min.js +9 -18
- data/vendor/assets/javascripts/vis.js +53293 -39579
- data/vendor/assets/javascripts/vis.min.js +26 -23
- data/vendor/assets/stylesheets/vis-network.min.css +1 -0
- data/vendor/assets/stylesheets/vis-timeline-graph2d.min.css +1 -0
- data/vendor/assets/stylesheets/{vis.scss → vis.css} +764 -640
- data/vendor/assets/stylesheets/vis.min.css +1 -0
- metadata +365 -6
- data/vendor/assets/images/timeline/delete.png +0 -0
- data/vendor/assets/stylesheets/vis.min.scss +0 -1
@@ -0,0 +1,85 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html>
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<title>Network | Playing with Physics</title>
|
6
|
+
|
7
|
+
<style type="text/css">
|
8
|
+
body {
|
9
|
+
font: 10pt sans;
|
10
|
+
}
|
11
|
+
|
12
|
+
#mynetwork {
|
13
|
+
float: left;
|
14
|
+
width: 600px;
|
15
|
+
height: 600px;
|
16
|
+
margin: 5px;
|
17
|
+
border: 1px solid lightgray;
|
18
|
+
}
|
19
|
+
|
20
|
+
#config {
|
21
|
+
float: left;
|
22
|
+
width: 400px;
|
23
|
+
height: 600px;
|
24
|
+
}
|
25
|
+
</style>
|
26
|
+
|
27
|
+
|
28
|
+
<script type="text/javascript" src="../exampleUtil.js"></script>
|
29
|
+
<script type="text/javascript" src="../../../vendor/assets/javascripts/vis.js"></script>
|
30
|
+
<link href="../../../vendor/assets/stylesheets/" rel="stylesheet" type="text/css" />
|
31
|
+
|
32
|
+
<script type="text/javascript">
|
33
|
+
var nodes = null;
|
34
|
+
var edges = null;
|
35
|
+
var network = null;
|
36
|
+
|
37
|
+
function draw() {
|
38
|
+
nodes = [];
|
39
|
+
edges = [];
|
40
|
+
// randomly create some nodes and edges
|
41
|
+
var data = getScaleFreeNetwork(60);
|
42
|
+
|
43
|
+
// create a network
|
44
|
+
var container = document.getElementById('mynetwork');
|
45
|
+
|
46
|
+
var options = {
|
47
|
+
physics: {
|
48
|
+
stabilization: false
|
49
|
+
},
|
50
|
+
configure: {
|
51
|
+
filter: function (option, path) {
|
52
|
+
if (path.indexOf('physics') !== -1) {
|
53
|
+
return true;
|
54
|
+
}
|
55
|
+
if (path.indexOf('smooth') !== -1 || option === 'smooth') {
|
56
|
+
return true;
|
57
|
+
}
|
58
|
+
return false;
|
59
|
+
},
|
60
|
+
container: document.getElementById('config')
|
61
|
+
}
|
62
|
+
};
|
63
|
+
network = new vis.Network(container, data, options);
|
64
|
+
}
|
65
|
+
</script>
|
66
|
+
|
67
|
+
</head>
|
68
|
+
|
69
|
+
<body onload="draw();">
|
70
|
+
|
71
|
+
<h2>Playing with Physics</h2>
|
72
|
+
<div style="width: 700px; font-size:14px; text-align: justify;">
|
73
|
+
Every dataset is different. Nodes can have different sizes based on content, interconnectivity can be high or low etc. Because
|
74
|
+
of this, the network configurator can be used to explore which settings may be good for him or her. This is ment to be
|
75
|
+
used during the development phase when you are implementing vis.js. Once you have found settings you are happy with,
|
76
|
+
you can supply them to network using the documented physics options.
|
77
|
+
</div>
|
78
|
+
<br />
|
79
|
+
<div id="mynetwork"></div>
|
80
|
+
<div id="config"></div>
|
81
|
+
|
82
|
+
<p id="selection"></p>
|
83
|
+
</body>
|
84
|
+
|
85
|
+
</html>
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Timeline | Basic demo</title>
|
5
|
+
|
6
|
+
<style type="text/css">
|
7
|
+
body, html {
|
8
|
+
font-family: sans-serif;
|
9
|
+
}
|
10
|
+
</style>
|
11
|
+
|
12
|
+
<script src="../../vendor/assets/javascripts/vis.js"></script>
|
13
|
+
<link href="../../vendor/assets/stylesheets/vis-timeline-graph2d.min.css" rel="stylesheet" type="text/css" />
|
14
|
+
|
15
|
+
</head>
|
16
|
+
<body>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
A basic timeline. You can move and zoom the timeline, and select items.
|
20
|
+
</p>
|
21
|
+
|
22
|
+
<div id="visualization"></div>
|
23
|
+
|
24
|
+
<script type="text/javascript">
|
25
|
+
// DOM element where the Timeline will be attached
|
26
|
+
var container = document.getElementById('visualization');
|
27
|
+
|
28
|
+
// Create a DataSet (allows two way data-binding)
|
29
|
+
var items = new vis.DataSet([
|
30
|
+
{id: 1, content: 'item 1', start: '2014-04-20'},
|
31
|
+
{id: 2, content: 'item 2', start: '2014-04-14'},
|
32
|
+
{id: 3, content: 'item 3', start: '2014-04-18'},
|
33
|
+
{id: 4, content: 'item 4', start: '2014-04-16', end: '2014-04-19'},
|
34
|
+
{id: 5, content: 'item 5', start: '2014-04-25'},
|
35
|
+
{id: 6, content: 'item 6', start: '2014-04-27', type: 'point'}
|
36
|
+
]);
|
37
|
+
|
38
|
+
// Configuration for the Timeline
|
39
|
+
var options = {};
|
40
|
+
|
41
|
+
// Create a Timeline
|
42
|
+
var timeline = new vis.Timeline(container, items, options);
|
43
|
+
</script>
|
44
|
+
</body>
|
45
|
+
</html>
|
@@ -0,0 +1,123 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html>
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<title>Timeline | Data serialization</title>
|
6
|
+
|
7
|
+
<style>
|
8
|
+
body,
|
9
|
+
html {
|
10
|
+
font-family: arial, sans-serif;
|
11
|
+
font-size: 11pt;
|
12
|
+
}
|
13
|
+
|
14
|
+
textarea {
|
15
|
+
width: 800px;
|
16
|
+
height: 200px;
|
17
|
+
}
|
18
|
+
|
19
|
+
.buttons {
|
20
|
+
margin: 20px 0;
|
21
|
+
}
|
22
|
+
|
23
|
+
.buttons input {
|
24
|
+
padding: 10px;
|
25
|
+
}
|
26
|
+
</style>
|
27
|
+
|
28
|
+
<script src="../../../vendor/assets/javascripts/vis.js"></script>
|
29
|
+
<link href="../../../vendor/assets/stylesheets/vis-timeline-graph2d.min.css" rel="stylesheet" type="text/css" />
|
30
|
+
|
31
|
+
</head>
|
32
|
+
|
33
|
+
<body>
|
34
|
+
|
35
|
+
<h1>Serialization and deserialization</h1>
|
36
|
+
|
37
|
+
<p>This example shows how to serialize and deserialize JSON data, and load this in the Timeline via a DataSet. Serialization
|
38
|
+
and deserialization is needed when loading or saving data from a server.</p>
|
39
|
+
|
40
|
+
<textarea id="data">
|
41
|
+
[ { "id": 1, "content": "item 1", "start": "2014-01-01T01:00:00" }, { "id": 2, "content": "item 2", "start": "2014-01-01T02:00:00"
|
42
|
+
}, { "id": 3, "content": "item 3", "start": "2014-01-01T03:00:00" }, { "id": 4, "content": "item 4", "start": "2014-01-01T04:00:00",
|
43
|
+
"end": "2014-01-01T04:30:00" }, { "id": 5, "content": "item 5", "start": "2014-01-01T05:00:00", "type": "point" }, {
|
44
|
+
"id": 6, "content": "item 6", "start": "2014-01-01T06:00:00" } ]
|
45
|
+
</textarea>
|
46
|
+
|
47
|
+
<div class="buttons">
|
48
|
+
<input type="button" id="load" value="↓ Load" title="Load data from textarea into the Timeline">
|
49
|
+
<input type="button" id="save" value="↑ Save" title="Save data from the Timeline into the textarea">
|
50
|
+
</div>
|
51
|
+
|
52
|
+
<div id="visualization"></div>
|
53
|
+
|
54
|
+
<script>
|
55
|
+
var txtData = document.getElementById('data');
|
56
|
+
var btnLoad = document.getElementById('load');
|
57
|
+
var btnSave = document.getElementById('save');
|
58
|
+
|
59
|
+
// Create an empty DataSet.
|
60
|
+
// This DataSet is used for two way data binding with the Timeline.
|
61
|
+
var items = new vis.DataSet();
|
62
|
+
|
63
|
+
// create a timeline
|
64
|
+
var container = document.getElementById('visualization');
|
65
|
+
var options = {
|
66
|
+
editable: true
|
67
|
+
};
|
68
|
+
var timeline = new vis.Timeline(container, items, options);
|
69
|
+
|
70
|
+
function loadData() {
|
71
|
+
// get and deserialize the data
|
72
|
+
var data = JSON.parse(txtData.value);
|
73
|
+
|
74
|
+
// update the data in the DataSet
|
75
|
+
//
|
76
|
+
// Note: when retrieving updated data from a server instead of a complete
|
77
|
+
// new set of data, one can simply update the existing data like:
|
78
|
+
//
|
79
|
+
// items.update(data);
|
80
|
+
//
|
81
|
+
// Existing items will then be updated, and new items will be added.
|
82
|
+
items.clear();
|
83
|
+
items.add(data);
|
84
|
+
|
85
|
+
// adjust the timeline window such that we see the loaded data
|
86
|
+
timeline.fit();
|
87
|
+
}
|
88
|
+
btnLoad.onclick = loadData;
|
89
|
+
|
90
|
+
function saveData() {
|
91
|
+
// get the data from the DataSet
|
92
|
+
//
|
93
|
+
// Note that we specify the output type of the fields start and end
|
94
|
+
// as "ISODate", which is safely serializable. Other serializable types
|
95
|
+
// are "Number" (unix timestamp), "ASPDate" or "String" (without timezone!).
|
96
|
+
//
|
97
|
+
// Alternatively, it is possible to configure the DataSet to convert
|
98
|
+
// the output automatically to ISODates like:
|
99
|
+
//
|
100
|
+
// var options = {
|
101
|
+
// type: {start: 'ISODate', end: 'ISODate'}
|
102
|
+
// };
|
103
|
+
// var items = new vis.DataSet(options);
|
104
|
+
// // now items.get() will automatically convert start and end to ISO dates.
|
105
|
+
//
|
106
|
+
var data = items.get({
|
107
|
+
type: {
|
108
|
+
start: 'ISODate',
|
109
|
+
end: 'ISODate'
|
110
|
+
}
|
111
|
+
});
|
112
|
+
|
113
|
+
// serialize the data and put it in the textarea
|
114
|
+
txtData.value = JSON.stringify(data, null, 2);
|
115
|
+
}
|
116
|
+
btnSave.onclick = saveData;
|
117
|
+
|
118
|
+
// load the initial data
|
119
|
+
loadData();
|
120
|
+
</script>
|
121
|
+
</body>
|
122
|
+
|
123
|
+
</html>
|
@@ -0,0 +1,61 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html>
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<title>Timeline | External data</title>
|
6
|
+
|
7
|
+
<style type="text/css">
|
8
|
+
body,
|
9
|
+
html {
|
10
|
+
font-family: sans-serif;
|
11
|
+
}
|
12
|
+
</style>
|
13
|
+
|
14
|
+
<!-- Load jquery for ajax support -->
|
15
|
+
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
|
16
|
+
|
17
|
+
<script src="../../../vendor/assets/javascripts/vis.js"></script>
|
18
|
+
<link href="../../../vendor/assets/stylesheets/vis-timeline-graph2d.min.css" rel="stylesheet" type="text/css" />
|
19
|
+
|
20
|
+
</head>
|
21
|
+
|
22
|
+
<body>
|
23
|
+
<p>
|
24
|
+
This demo shows how to load external data via an ajax call.
|
25
|
+
</p>
|
26
|
+
<div id="visualization"></div>
|
27
|
+
<div id="loading">loading...</div>
|
28
|
+
|
29
|
+
<script type="text/javascript">
|
30
|
+
// load data via an ajax request. When the data is in, load the timeline
|
31
|
+
$.ajax({
|
32
|
+
url: '../resources/data/basic.json',
|
33
|
+
success: function (data) {
|
34
|
+
// hide the "loading..." message
|
35
|
+
document.getElementById('loading').style.display = 'none';
|
36
|
+
|
37
|
+
// DOM element where the Timeline will be attached
|
38
|
+
var container = document.getElementById('visualization');
|
39
|
+
|
40
|
+
// Create a DataSet (allows two way data-binding)
|
41
|
+
var items = new vis.DataSet(data);
|
42
|
+
|
43
|
+
// Configuration for the Timeline
|
44
|
+
var options = {};
|
45
|
+
|
46
|
+
// Create a Timeline
|
47
|
+
var timeline = new vis.Timeline(container, items, options);
|
48
|
+
},
|
49
|
+
error: function (err) {
|
50
|
+
console.log('Error', err);
|
51
|
+
if (err.status === 0) {
|
52
|
+
alert('Failed to load data/basic.json.\nPlease run this example on a server.');
|
53
|
+
} else {
|
54
|
+
alert('Failed to load data/basic.json.');
|
55
|
+
}
|
56
|
+
}
|
57
|
+
});
|
58
|
+
</script>
|
59
|
+
</body>
|
60
|
+
|
61
|
+
</html>
|
@@ -0,0 +1,76 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html>
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<title>Timeline | Custom snapping</title>
|
6
|
+
|
7
|
+
<script src="../../../vendor/assets/javascripts/vis.js"></script>
|
8
|
+
<link href="../../../vendor/assets/stylesheets/vis-timeline-graph2d.min.css" rel="stylesheet" type="text/css" />
|
9
|
+
|
10
|
+
</head>
|
11
|
+
|
12
|
+
<body>
|
13
|
+
<p>
|
14
|
+
When moving the items in on the Timeline below, they will snap to full hours, independent of being zoomed in or out.
|
15
|
+
</p>
|
16
|
+
<div id="visualization"></div>
|
17
|
+
|
18
|
+
<script type="text/javascript">
|
19
|
+
// DOM element where the Timeline will be attached
|
20
|
+
var container = document.getElementById('visualization');
|
21
|
+
|
22
|
+
// Create a DataSet (allows two way data-binding)
|
23
|
+
var items = new vis.DataSet([{
|
24
|
+
id: 1,
|
25
|
+
content: 'A',
|
26
|
+
start: '2015-02-09T04:00:00'
|
27
|
+
},
|
28
|
+
{
|
29
|
+
id: 2,
|
30
|
+
content: 'B',
|
31
|
+
start: '2015-02-09T14:00:00'
|
32
|
+
},
|
33
|
+
{
|
34
|
+
id: 3,
|
35
|
+
content: 'C',
|
36
|
+
start: '2015-02-09T16:00:00'
|
37
|
+
},
|
38
|
+
{
|
39
|
+
id: 4,
|
40
|
+
content: 'D',
|
41
|
+
start: '2015-02-09T17:00:00'
|
42
|
+
},
|
43
|
+
{
|
44
|
+
id: 5,
|
45
|
+
content: 'E',
|
46
|
+
start: '2015-02-10T03:00:00'
|
47
|
+
}
|
48
|
+
]);
|
49
|
+
|
50
|
+
// Configuration for the Timeline
|
51
|
+
var options = {
|
52
|
+
editable: true,
|
53
|
+
|
54
|
+
// always snap to full hours, independent of the scale
|
55
|
+
snap: function (date, scale, step) {
|
56
|
+
var hour = 60 * 60 * 1000;
|
57
|
+
return Math.round(date / hour) * hour;
|
58
|
+
}
|
59
|
+
|
60
|
+
// to configure no snapping at all:
|
61
|
+
//
|
62
|
+
// snap: null
|
63
|
+
//
|
64
|
+
// or let the snap function return the date unchanged:
|
65
|
+
//
|
66
|
+
// snap: function (date, scale, step) {
|
67
|
+
// return date;
|
68
|
+
// }
|
69
|
+
};
|
70
|
+
|
71
|
+
// Create a Timeline
|
72
|
+
var timeline = new vis.Timeline(container, items, options);
|
73
|
+
</script>
|
74
|
+
</body>
|
75
|
+
|
76
|
+
</html>
|
@@ -0,0 +1,109 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html>
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<title>Timeline | Manipulation example</title>
|
6
|
+
|
7
|
+
<style>
|
8
|
+
body,
|
9
|
+
html {
|
10
|
+
font-family: arial, sans-serif;
|
11
|
+
font-size: 11pt;
|
12
|
+
}
|
13
|
+
</style>
|
14
|
+
|
15
|
+
<script src="../../../vendor/assets/javascripts/vis.js"></script>
|
16
|
+
<link href="../../../vendor/assets/stylesheets/vis-timeline-graph2d.min.css" rel="stylesheet" type="text/css" />
|
17
|
+
|
18
|
+
</head>
|
19
|
+
|
20
|
+
<body>
|
21
|
+
|
22
|
+
<p>An editable timeline allows to drag items around, create new items, and remove items. Changes are logged in the browser
|
23
|
+
console.</p>
|
24
|
+
|
25
|
+
<div id="visualization"></div>
|
26
|
+
|
27
|
+
<script>
|
28
|
+
// create a dataset with items
|
29
|
+
// we specify the type of the fields `start` and `end` here to be strings
|
30
|
+
// containing an ISO date. The fields will be outputted as ISO dates
|
31
|
+
// automatically getting data from the DataSet via items.get().
|
32
|
+
var items = new vis.DataSet({
|
33
|
+
type: {
|
34
|
+
start: 'ISODate',
|
35
|
+
end: 'ISODate'
|
36
|
+
}
|
37
|
+
});
|
38
|
+
|
39
|
+
// add items to the DataSet
|
40
|
+
items.add([{
|
41
|
+
id: 1,
|
42
|
+
content: 'item 1<br>start',
|
43
|
+
start: '2014-01-23'
|
44
|
+
},
|
45
|
+
{
|
46
|
+
id: 2,
|
47
|
+
content: 'item 2',
|
48
|
+
start: '2014-01-18'
|
49
|
+
},
|
50
|
+
{
|
51
|
+
id: 3,
|
52
|
+
content: 'item 3',
|
53
|
+
start: '2014-01-21'
|
54
|
+
},
|
55
|
+
{
|
56
|
+
id: 4,
|
57
|
+
content: 'item 4',
|
58
|
+
start: '2014-01-19',
|
59
|
+
end: '2014-01-24'
|
60
|
+
},
|
61
|
+
{
|
62
|
+
id: 5,
|
63
|
+
content: 'item 5',
|
64
|
+
start: '2014-01-28',
|
65
|
+
type: 'point'
|
66
|
+
},
|
67
|
+
{
|
68
|
+
id: 6,
|
69
|
+
content: 'item 6',
|
70
|
+
start: '2014-01-26'
|
71
|
+
}
|
72
|
+
]);
|
73
|
+
|
74
|
+
// log changes to the console
|
75
|
+
items.on('*', function (event, properties) {
|
76
|
+
console.log(event, properties.items);
|
77
|
+
});
|
78
|
+
|
79
|
+
var container = document.getElementById('visualization');
|
80
|
+
var options = {
|
81
|
+
start: '2014-01-10',
|
82
|
+
end: '2014-02-10',
|
83
|
+
height: '300px',
|
84
|
+
|
85
|
+
// allow selecting multiple items using ctrl+click, shift+click, or hold.
|
86
|
+
multiselect: true,
|
87
|
+
|
88
|
+
// allow manipulation of items
|
89
|
+
editable: true,
|
90
|
+
|
91
|
+
/* alternatively, enable/disable individual actions:
|
92
|
+
|
93
|
+
editable: {
|
94
|
+
add: true,
|
95
|
+
updateTime: true,
|
96
|
+
updateGroup: true,
|
97
|
+
remove: true
|
98
|
+
},
|
99
|
+
|
100
|
+
*/
|
101
|
+
|
102
|
+
showCurrentTime: true
|
103
|
+
};
|
104
|
+
|
105
|
+
var timeline = new vis.Timeline(container, items, options);
|
106
|
+
</script>
|
107
|
+
</body>
|
108
|
+
|
109
|
+
</html>
|