Skip to content

Instantly share code, notes, and snippets.

View luizcanet's full-sized avatar

Luiz Henrique Canet Filho luizcanet

  • Rio de Janeiro, Brazil
View GitHub Profile
@luizcanet
luizcanet / sub-router-example.js
Last active May 6, 2020 22:13
Sub Router Example
/* global HTMLElement, fetch */
import Router from '../modnes/router/router.js'
export default class ModnesRepositories extends HTMLElement {
async connectedCallback () {
let response
let data = []
const ROUTES = [
{
path: '/router/repositories',
/* global HTMLElement */
import Router from '../modnes/router/router.js'
export default class RouterExampĺe extends HTMLElement {
connectedCallback () {
const ROUTES = [
{
path: '/router/',
tagName: 'about-modnes',
modules: ['../../about-modnes/index.js']
<html>
<head>
<title>Router Anchor</title>
<script href="path/to/@modnes/router/anchor/index.js" type="module"></script>
</head>
<body>
<a href="/categories" is="router-anchor">Go To Categories</a>
</body>
</html>
@luizcanet
luizcanet / router-method.js
Created May 5, 2020 23:17
Router Methods
router.addRoute({
path: '/section/:param1/:param2/*',
tagName: 'section-list'
})
// When location is /section/book/50/any-string
// and route path is /section/:param1/:param2/*
let params = router.getParams()
// params will be equal { param1: 'book', param2: '50' }
import Router from "path/to/@modnes/router/router.js"
let router = new Router(document.querySelector('main'), [
{
path: '/posts', // will use this settings when accessing /posts
tagName: 'post-list' // will put <post-list></post-list> inside <main></main>
},
{
path: '/posts/:id', // will provide the parameter 'id' with value 3 at /posts/3
tagName: 'post-article',
@luizcanet
luizcanet / custom-element.js
Last active April 29, 2020 21:15
Custom elemen using Data Controller Module
/* global HTMLElement */
import DataController from '../modnes/data-controller/data-controller.js'
export default class CustomElement extends HTMLElement {
constructor () {
super()
this.dataController = new DataController(this)
this.data = {
text: 'Sample Text',
seconds: {
@luizcanet
luizcanet / data-controller-bindform.js
Created April 18, 2020 18:43
Data Controller bindForm() example
<form class="person-form">
<input type="text" name="person.name" />
<input type="range" name="person.age" />
<input type="text" name="person.bio" />
<input type="checkbox" name="person.active" />
// Values as Array
<input type="checkbox" name="person.roles" value="admin" />
<input type="checkbox" name="person.roles" value="manager" checked />
<input type="checkbox" name="person.roles" value="user" checked />
@luizcanet
luizcanet / data-controller-binddom.js
Last active May 4, 2020 19:50
Data Controller bindDOM() example
const MAPPING_SET = [
{
property: 'id',
elements: document.querySelector('#test'),
attributes: 'id'
},
{
property: 'date',
elements: document.querySelector('.dates'),
},
@luizcanet
luizcanet / data-controller-usage.js
Created April 18, 2020 18:34
Data Controller Usage
import DataController from "path/to/modnes-data-controller/data-controller.js"
class Host extends EventTarget {}
let host = new Host()
let dataController = new DataController(host)
host.addEventListener('dataUpdated', event => {
console.log(event.detail)
})
@luizcanet
luizcanet / es-carousel-basic-example.js
Last active August 16, 2018 21:59
ECMAScript Carousel