Giter VIP home page Giter VIP logo

calcite-app-components's Introduction

calcite-app-components

A collection of calcite components for building single page applications.

Appโ€‹

โ€‹View it live

Components

Installation

npm install --save @esri/calcite-app-components

Script tag

calcite-app-components can be loaded via two <script> tags in the head of your HTML document:

<script type="module" src="<path-to-calcite-app-components-package>/dist/calcite-app/calcite-app.esm.js"></script>
<script nomodule="" src="<path-to-calcite-app-components-package>/dist/calcite-app/calcite-app.js"></script>

Browsers that support modules will load the first, while older browsers will load the second, bundled version. It's worth noting that only components that are actually used will be loaded.

You will also need to add a <link> tag for the shared component styles:

<link rel="stylesheet" href="<path-to-calcite-app-components-package>/dist/calcite-app/calcite-app.css" />

Once these tags are added, components can be used just like any other HTML element.

Webpack

If you already have a webpack build for your project, you can simply use @stencil/webpack to add calcite-app-components to your bundle.

After installing calcite-app-components, install the plugin as a dev dependency:

npm install --save-dev @stencil/webpack

Then import and add the plugin in webpack.config.js:

const stencil = require('@stencil/webpack');

module.exports = {
  ...
  plugins: [
    new stencil.StencilPlugin()
  ]
}

Lastly, add the import in your main bundle js (or ts) file:

import '@esri/calcite-app-components/dist/calcite-app.js';

This will add the initial Stencil loader to your bundle, and copy over the actual component code to the output directory you've configured for Webpack. Components will still be lazy-loaded as they are needed. Note: you must use the .js file path for the Webpack plugin to work correctly, even if your bundle file is a TypeScript file.

TypeScript

Stencil provides a full set of typings for all the components in this repo. To make TypeScript aware of these components, just import the library:

import '@esri/calcite-app-components';

This will provide autocomplete of component names/properties, as well as additional HTML element types.

Local Dev

Instructions

  1. npm install
  2. npm start
  3. npm test

Requirements

  • Notepad or your favorite HTML editor
  • Web browser with access to the Internet

Deployment

  1. Checkout the master branch. Your git working directory must be clean (no pending un-staged changes).
  2. Run npm run release:<patch | minor | major>. Follow semantic versioning. Patch for bug fixes only. Major for breaking changes. Minor for the rest.

This will create and push a new version commit and tag, then publish that commit to the npm public registry.

*Aside: It will also update the docs for GitHub Pages and the READMEs for each component.

Updating Github Pages Docs

NOTE: This will happen automatically whenever there's a release. Follow steps below for manual docs update.

  1. You'll need to generate a new stencil build for the docs by running $ npm run docs.
  2. The docs will need to be committed or merged in the master branch before they take effect.

Resources

Issues

Find a bug or want to request a new feature? Please let us know by submitting an issue.

Contributing

Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.

Licensing

Copyright 2019 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's license.txt file.

calcite-app-components's People

Contributors

asangma avatar driskull avatar jcfranco avatar kat10140 avatar pr3tori4n avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.