Skip to content

odopod/code-library

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Odopod Code Library (Odo) Build Status

A collection of vanilla JavaScript components used in Odopod projects.

Want to contribute to Odo?

Take a look at CONTRIBUTING.md.

Packages

The Odo repo is managed as a monorepo; it's composed of many npm packages.

Package Version
@odopod/odo-affix npm
@odopod/odo-background-video npm
@odopod/odo-base-component npm
@odopod/odo-carousel npm
@odopod/odo-device npm
@odopod/odo-dialog npm
@odopod/odo-draggable npm
@odopod/odo-dropdown npm
@odopod/odo-dual-viewer npm
@odopod/odo-expandable npm
@odopod/odo-helpers npm
@odopod/odo-hotspots npm
@odopod/odo-module npm
@odopod/odo-object-fit npm
@odopod/odo-on-swipe npm
@odopod/odo-pointer npm
@odopod/odo-responsive-attributes npm
@odopod/odo-responsive-classes npm
@odopod/odo-responsive-images npm
@odopod/odo-reveal npm
@odopod/odo-sassplate npm
@odopod/odo-scroll-animation npm
@odopod/odo-scroll-feedback npm
@odopod/odo-share npm
@odopod/odo-sticky-headers npm
@odopod/odo-tabs npm
@odopod/odo-tap npm
@odopod/odo-video npm
@odopod/odo-viewport npm
@odopod/odo-window-events npm

Tips for advanced webpack configuration

If you use webpack (or another bundler) for your project and are already using a compiler for your JavaScript (like babel), you have the option of using odo component source files and compiling them with your project.

This has a couple benefits:

  • No dependencies for odo are bundled with their dist files. For example, the debounce package is bundled in a couple odo components.
  • Use the same babel preset for your app's code and odo components. Maybe you're using babel-preset-env so that you can compile less.

Use the alias object to map requests for odo components to their source files instead of dist files. This configuration is intended for webpack 2, 3, or 4.

// Webpack config
{
  resolve: {
    alias: {
      '@odopod/odo-carousel$': '@odopod/odo-carousel/src/carousel.js',
      '@odopod/odo-device$': '@odopod/odo-device/src/device.js',
      '@odopod/odo-draggable$': '@odopod/odo-draggable/src/draggable.js',
      '@odopod/odo-helpers$': '@odopod/odo-helpers/src/helpers.js',
      '@odopod/odo-pointer$': '@odopod/odo-pointer/src/pointer.js',
    },
  },
}

Don't exclude odo components from being compiled with babel.

module: {
  rules: [
    {
      test: /\.js$/,
      exclude: /node_modules\/(?!@odopod\/odo-)/,
      loader: 'babel-loader',
    },
  }
]