1.0.0 • Published 7 years ago

generator-polymer-init-element-seed v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

generator-polymer-init-element-seed

Polymer2.0 simple element generator

Installation

First, install Yeoman and generator-polymer-init-element-seed using npm (we assume you have pre-installed node.js).

npm install -g yo
npm install -g generator-polymer-init-element-seed

Then generate your new project:

yo polymer-init-element-seed

Element

You can create a simple Polymer2.0 element, with no iron-page and the stuff you can create in production mode development, as is a speed dev option for create a base bone Polymer 2.0 element, here the skeleton for the element! (updated 26/02/2017) :

<!-- Load the Polymer.Element base class -->
<!-- Attention  > Polymer 2.0#preview in USE !  -->

<!-- Load the Polymer.Element base class -->
<link rel="import" href="bower_components/polymer/polymer-element.html">

<dom-module id="my-element">
  <template>

    <!-- Style -->
    <style>

      :host {
        display: block;
      }

    </style>
    <h2>Name : [[name]]</h2>

    <slot></slot>

  </template>
  
  <script>

    // Extend Polymer.Element base class
    class MyElement extends Polymer.Element {
      
      static get is(){ return 'my-element' }

      // properties 
      static get properties() {
        return {
          name: {
            type: String,
            value: 'my-element'
          }
        };
      }

      // observers 
      static get observers() {
        return ['_nameChanged(name)'];
      }
      
      // constructor 
      constructor() {
        super();
        console.log('my-element > created');
      }

      connectedCallback(){
        super.connectedCallback();
        console.log('my-element > attached');
 
      }

      disconnectedCallback(){

      }

      attributeChangeCallback(){

      }

      // ready > add listeners and attributes at appropriate callback
      ready() {
        this.addEventListener('click', (e) => {
          this._handleClick(e);
        });
        
        super.ready();
        console.log('my-element > ready');
      }

      _handleClick(e) {
        console.log(e.type);
      }

      _nameChanged(name){
        console.log(`Name: ${name}`);

        // Select the elements 
        // this.$.
        // this.$.
      }


    }
    
    // Register custom element definition using standard platform API
    customElements.define(MyElement.is, MyElement);
  </script>
</dom-module>

Up and Running

To up and running the environment and the Polymer 2.0 custom element just created follow these simple steps :

mkdir your_project && cd $_
bower init 
bower install --save polymer/polymer#2.0-preview

create a index.html file where to insert the Polymer2.0 custom element just created with the generator, this is an example of file :

<!DOCTYPE html>
<html lang="en">
<head>

  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Polymer element - Test </title>

  <script src="bower_components/webcomponentsjs/webcomponents-loader.js"></script>

  
  <link rel="import" href="my-element.html">
  

</head>

<body>

  <my-element></my-element>

  <script>

    // Javascript power goes here 
    
  </script>

</body>
</html>

Launch a simple web server to see the Polymer2.0 custom element in action, (here we use the simple python simple server) :

cd your_project 

// simple python web server 
python -m SimpleHTTPServer 8080 

// default polymer server
polymer serve

Open the browser and navigate the address localhost:8000 or localhost:8080 !

Important

That's it, this is a semplified version of the developer/building process, it's use in production it's not recommended !

License

MIT © @cicciosgamino