Skip to content

Commit 605681e

Browse files
committed
Merge branch 'develop'
2 parents dd306cf + 8a458cc commit 605681e

File tree

4 files changed

+66
-27
lines changed

4 files changed

+66
-27
lines changed

gulpfile.js

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,10 @@
11
const gulp = require('gulp'),
2-
releaseHelper = require('release-helper'),
3-
runSequence = require('run-sequence'),
4-
path = require('path'),
5-
webpack = require('webpack'),
6-
fs = require('fs-extra'),
7-
exec = require('child_process').exec;
2+
releaseHelper = require('release-helper');
83

94
//Init custom release tasks
105
releaseHelper.init(gulp);
116

12-
let glue = suffix => gulp.src(`src/**/*.${suffix}`).pipe(gulp.dest('lib'));
13-
14-
let watch = (suffix, tasks) => {
15-
tasks = tasks ? tasks : [suffix];
16-
return gulp.watch(`src/**/*.${suffix}`, tasks);
17-
}
18-
197
gulp.task('test', ['build'], () => {
208
throw new Error('todo...');
219
});
2210

23-
gulp.task('clean', (done) => {
24-
fs.remove('dist', done);
25-
});
26-
27-
gulp.task('build', (done) => {
28-
let cfg = require('./webpack.config');
29-
cfg.output.path = './dist';
30-
webpack(cfg, done);
31-
});
32-
33-
///gulp.task('dev', ['build', 'watch-pug', 'watch-ts']);
34-

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "pie-catalog-client",
3-
"version": "0.1.0",
3+
"version": "0.2.0-prerelease",
44
"description": "The client code for the catalog",
55
"scripts": {
66
"test": "npm test"

src/catalog-demo/element-models.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import _ from 'lodash';
2+
3+
export default class Elements {
4+
5+
constructor(root, models) {
6+
this.root = root;
7+
this.models = models;
8+
9+
let upgradePromises = _.map(models, (m) => customElements.whenDefined(m.element));
10+
11+
let returnElement = (m) => {
12+
let el = root.querySelector(`${m.element}[data-id="${m.id}"]`);
13+
if (el) {
14+
return { id: m.id, element: el };
15+
}
16+
}
17+
18+
let setData = (d) => {
19+
let { element, id } = d;
20+
21+
if (!element) {
22+
throw new Error('el not defined');
23+
}
24+
25+
if (this._env) {
26+
element.env = this._env;
27+
}
28+
29+
let data = _.find(this.models, { id: id });
30+
31+
_.forEach(data, (value, key) => {
32+
if (key !== 'id' && key !== 'element') {
33+
element[key] = value;
34+
}
35+
});
36+
}
37+
38+
Promise.all(upgradePromises)
39+
.then(() => {
40+
this._elements = _(models).map(returnElement).compact().value();
41+
_.forEach(this._elements, setData);
42+
});
43+
}
44+
45+
set env(e) {
46+
this._env = e;
47+
48+
if (this._elements && this._env) {
49+
_.forEach(this._elements, (d) => {
50+
d.element.env = this._env;
51+
});
52+
}
53+
}
54+
}

src/catalog-demo/index.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
import { prepareTemplate, applyStyle, boxShadow } from '../styles';
1+
import { applyStyle, boxShadow, prepareTemplate } from '../styles';
2+
3+
import ElementModels from './element-models';
4+
25
const templateHTML = `
36
<style>
47
:host{
@@ -29,6 +32,7 @@ export default class CatalogDemo extends HTMLElement {
2932
constructor() {
3033
super();
3134

35+
3236
/** Note: can't use shadow root if the inner element is dependentent
3337
* on style definitions that uses markup from inside the element.
3438
*/
@@ -74,6 +78,10 @@ export default class CatalogDemo extends HTMLElement {
7478
});
7579

7680
this._updatePies();
81+
82+
if (this._config.elementModels) {
83+
this._elementModels = new ElementModels(this, this._config.elementModels);
84+
}
7785
}
7886

7987
set controllers(c) {
@@ -91,6 +99,7 @@ export default class CatalogDemo extends HTMLElement {
9199
return session;
92100
}
93101

102+
94103
_updatePies() {
95104
if (!this._config || !this._controllers) {
96105
return;

0 commit comments

Comments
 (0)