Skip to content
This repository has been archived by the owner on Aug 27, 2021. It is now read-only.

Commit

Permalink
Starting component sets (#25)
Browse files Browse the repository at this point in the history
* 0.6.0-a2

* somewhat working start of textbox element

* paper textbox

* added dropdown to paper set

* extract setter logger

* improve dropdown readability

* version in header

* fix knobs

* validation

* vaadin

* initial dropdown value

* v0.6.0-a3.0

* vaadin

* better api to replace entire component set

* move lit-any sources

* component set doc

* fix tests

* first tests for paper components

* ignore "bad" imports in test code

* test which import element

* browserstack in place of sauce

* remove sauce connect

* dropdown tests

* stylistic change
  • Loading branch information
tpluscode authored Aug 9, 2018
1 parent f4eea59 commit b194474
Show file tree
Hide file tree
Showing 61 changed files with 3,157 additions and 995 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,6 @@ end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4

[*.json]
indent_size = 2
6 changes: 4 additions & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@
],
"env": {
"jasmine": true,
"browser": true
"browser": true,
"mocha": true
},
"globals": {
"testHandler": true,
"sinon": true,
"fixture": true
"fixture": true,
"Polymer": true
}
}
1 change: 1 addition & 0 deletions .storybook/addons.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ import '@storybook/addon-storysource/register';
import '@storybook/addon-knobs/register';
import '@storybook/addon-options/register';
import '@storybook/addon-notes/register';
import '@storybook/addon-actions/register';
5 changes: 3 additions & 2 deletions .storybook/config.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { configure, addDecorator } from '@storybook/polymer';
import { setOptions } from '@storybook/addon-options';
import { withKnobs } from '@storybook/addon-knobs';
import '@storybook/addon-console';
import { withNotes } from '@storybook/addon-notes';
import litAny from '../package';
import litAny from '../lit-any/package';

addDecorator(withKnobs);
addDecorator(withNotes);
Expand All @@ -15,7 +16,7 @@ function loadStories() {
setOptions({
name: `lit-any ${litAny.version}`,
addonPanelInRight: true,
selectedAddonPanel: 'storybook/notes/panel',
selectedAddonPanel: 'storybooks/storybook-addon-knobs',
url: 'https://github.com/wikibus/lit-any',
sortStoriesByKind: true,
});
Expand Down
1 change: 1 addition & 0 deletions .storybook/preview-head.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=WebAnimations"></script>
5 changes: 4 additions & 1 deletion .storybook/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ module.exports = {
{
test: /\.js$/,
use: 'babel-loader',
exclude: /node_modules\/@webcomponents/
exclude: [
/@webcomponents/,
/react-split-pane/
]
},
{
test: /\.stories\.jsx?$/,
Expand Down
2 changes: 0 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,3 @@ node_js:
before_script:
- yarn bower i
- yarn lint
addons:
sauce_connect: true
9 changes: 8 additions & 1 deletion bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@
"devDependencies": {
"paper-input": "polymerelements/paper-input#^2.2.2",
"web-component-tester": "^6.5.0",
"paper-button": "polymerelements/paper-button#^2.1.1"
"paper-button": "polymerelements/paper-button#^2.1.1",
"zero-md": "^1.1.0",
"paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#^2.1.0",
"paper-listbox": "PolymerElements/paper-listbox#^2.1.1",
"paper-item": "PolymerElements/paper-item#^2.1.1",
"vaadin-text-field": "vaadin/vaadin-text-field#^2.0.1",
"vaadin-dropdown-menu": "vaadin/vaadin-dropdown-menu#^1.0.0",
"vaadin-list-box": "vaadin/vaadin-list-box#^1.0.2"
}
}
51 changes: 51 additions & 0 deletions components/paper-elements/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { html } from 'lit-html/lib/lit-extended';
import { repeat } from 'lit-html/lib/repeat';

export function textbox({
type = 'single line',
} = { }) {
return (f, id, v, set) => {
if (type === 'multi line') {
return html`<paper-textarea
label="${f.title}"
value="${v}"
required?="${f.required}"
auto-validate
on-value-changed="${e => set(e.target.value)}" ></paper-textarea>`;
}

return html`<paper-input
label="${f.title}"
type="text"
value="${v}"
required?="${f.required}"
auto-validate
on-value-changed="${e => set(e.target.value)}" ></paper-input>`;
};
}

export function dropdown({
items = [],
} = {}) {
return async (f, id, v, set) => {
function setValue(e) {
e.target.validate();
return set(e.target.querySelector('paper-listbox').selected);
}

let options = items;
if (typeof items === 'function') {
options = await items(f);
}

return html`<paper-dropdown-menu label="${f.title}"
no-animations?="${!window.KeyframeEffect}"
on-value-changed="${setValue}"
required?="${f.required}">
<paper-listbox slot="dropdown-content" attr-for-selected="value" selected="${v}">
${repeat(options, option =>
html`<paper-item value="${option.value}">${option.label}</paper-item>`)}
</paper-listbox>
</paper-dropdown-menu>`;
};
}
10 changes: 10 additions & 0 deletions components/paper-elements/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "@lit-any/components-paper-elements",
"version": "0.6.0-a3.0",
"main": "index.js",
"license": "MIT",
"peerDependencies": {
"lit-any": "^0.6.0-a3.0",
"lit-html": "^0.10.2"
}
}
48 changes: 48 additions & 0 deletions components/vaadin/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { html } from 'lit-html/lib/lit-extended';
import { repeat } from 'lit-html/lib/repeat';

export function textbox({
type = 'single line',
} = { }) {
return (f, id, v, set) => {
if (type === 'multi line') {
return html`<vaadin-text-area
label="${f.title}"
type="${type}"
value="${v}"
required?="${f.required}"
auto-validate
on-value-changed="${e => set(e.target.value)}" ></vaadin-text-area>`;
}

return html`<vaadin-text-field
label="${f.title}"
type="${type}"
value="${v}"
required?="${f.required}"
auto-validate
on-value-changed="${e => set(e.target.value)}"></vaadin-text-field>`;
};
}

export function dropdown({
items = [],
} = {}) {
return async (f, id, v, set) => {
let options = items;
if (typeof items === 'function') {
options = await items(f);
}

return html`<vaadin-dropdown-menu label="${f.title}"
on-value-changed="${e => set(e.target.value)}"
required?="${f.required}"
value="${v}">
<template>
<vaadin-list-box>
${repeat(options, option => `<vaadin-item value$="${option.value}" label$="${option.label}"></vaadin-item>`)}
</vaadin-list-box>
</template>
</vaadin-dropdown-menu>`;
};
}
10 changes: 10 additions & 0 deletions components/vaadin/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "@lit-any/components-vaadin",
"version": "0.6.0-a3.0",
"main": "index.js",
"license": "MIT",
"peerDependencies": {
"lit-any": "^0.6.0-a3.0",
"lit-html": "^0.11.0"
}
}
6 changes: 6 additions & 0 deletions lerna.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"lerna": "2.11.0",
"useWorkspaces": true,
"version": "0.6.0-a3.0",
"npmClient": "yarn"
}
13 changes: 13 additions & 0 deletions lit-any/components.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
export function textbox(options) {
return {
name: 'textbox',
options,
};
}

export function dropdown(options) {
return {
name: 'dropdown',
options,
};
}
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion src/elements/lit-form.js → lit-any/elements/lit-form.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* eslint-disable class-methods-use-this */
import { html } from 'lit-html/lib/lit-extended';
import contract from './contract-helpers';
import { FieldTemplates } from '../template-registry';
import { FieldTemplates } from '../template-registry/index';
import LitAnyBase from './lit-any-base';

function onSubmit(e) {
Expand Down
4 changes: 2 additions & 2 deletions src/elements/lit-view.js → lit-any/elements/lit-view.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { html } from 'lit-html';
import render from '../render';
import render from '../render/index';
import LitAnyBase from './lit-any-base';
import { ViewTemplates } from '../template-registry';
import { ViewTemplates } from '../template-registry/index';

export default class LitView extends LitAnyBase {
constructor() {
Expand Down
File renamed without changes.
File renamed without changes.
12 changes: 12 additions & 0 deletions lit-any/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "lit-any",
"main": "src/index.js",
"module": "src/index.js",
"version": "0.6.0-a3.0",
"dependencies": {
"@polymer/lit-element": "^0.5.2",
"@polymer/polymer": "^3.0.0-pre.11",
"core-js": "^2.5.1",
"lit-html": "^0.10.2"
}
}
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,17 @@ export class FieldTemplateSelectorBuilder extends TemplateSelectorBuilder {
_createSelector() {
return new FieldTemplateSelector();
}

rendersComponent(component) {
if (!this._registry.components) {
throw new Error('No component set configured');
}

return this.renders((...args) => {
const componentFunc = this._registry.components[component.name]
|| this._registry.components.textbox;

return componentFunc(component.options).call(null, ...args);
});
}
}
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,9 @@ export default class TemplateRegistry {
name,
});
}

useComponents(components) {
this.components = components;
return this;
}
}
25 changes: 13 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
{
"name": "lit-any",
"main": "src/index.js",
"module": "src/index.js",
"version": "0.6.0-a2",
"private": true,
"workspaces": [
"lit-any",
"components/*"
],
"directories": {
"test": "tests"
},
"scripts": {
"test": "webpack && wct --plugin sauce",
"test": "webpack && wct --plugin browserstack",
"build-tests": "webpack",
"lint": "eslint src/**/*.js test/**/*.js",
"wct": "webpack -w & wct -l chrome -p",
"storybook": "bower i; start-storybook -p 9001 -c .storybook",
"build-storybook": "bower i; build-storybook -c .storybook -o docs"
},
"devDependencies": {
"@storybook/addon-actions": "^3.4.8",
"@storybook/addon-console": "^1.0.4",
"@storybook/addon-knobs": "^4.0.0-alpha.9",
"@storybook/addon-links": "^4.0.0-alpha.9",
"@storybook/addon-notes": "^4.0.0-alpha.9",
Expand All @@ -37,21 +40,19 @@
"eslint-plugin-chai": "0.0.1",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-jasmine": "^2.8.4",
"eslint-plugin-mocha": "^5.1.0",
"eslint-plugin-sinon": "^0.2.0",
"iso-639-1": "^2.0.3",
"lerna": "^2.11.0",
"markdown-loader": "^3.0.0",
"moment": "^2.22.2",
"p-event": "^1.3.0",
"polymer-webpack-loader": "^2.0.2",
"raw-loader": "^0.5.1",
"wct-sauce": "^2.0.0",
"wct-browserstack": "^0.3.0",
"web-component-tester": "^6.5.0",
"web-component-tester-custom-runner": "^6.5.0",
"webpack": "^3.5.6",
"webpack-glob-entries": "^1.0.1"
},
"dependencies": {
"@polymer/polymer": "^3.0.0-pre.11",
"@polymer/lit-element": "^0.5.2",
"core-js": "^2.5.1",
"lit-html": "^0.10.2"
}
}
42 changes: 0 additions & 42 deletions src/behaviors/AgsFormTemplate.html

This file was deleted.

3 changes: 2 additions & 1 deletion storybook/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"root": false,
"rules": {
"import/no-extraneous-dependencies": false
"import/no-extraneous-dependencies": false,
"import/first": false
}
}
Loading

0 comments on commit b194474

Please sign in to comment.