material 0.7.1 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +9 -18
- package/README.md +1 -5
- package/index.js +25 -48
- package/package.json +3 -24
- package/src/badge.js +1 -1
- package/src/button.js +50 -100
- package/src/calendar.js +53 -53
- package/src/card.js +1 -1
- package/src/checkbox.js +52 -104
- package/src/datehour.js +7 -7
- package/src/dialog.js +5 -5
- package/src/divider.js +1 -1
- package/src/drawer.js +1 -17
- package/src/element/attribute.js +7 -10
- package/src/element/build.js +6 -7
- package/src/element/create.js +3 -6
- package/src/element/event.js +2 -2
- package/src/element/insert.js +9 -20
- package/src/element/observer.js +22 -0
- package/src/element/offset.js +2 -2
- package/src/element/style.js +12 -12
- package/src/element.js +2 -2
- package/src/file.js +1 -1
- package/src/form/build.js +7 -7
- package/src/form/controller.js +8 -8
- package/src/form/create.js +1 -1
- package/src/form/data.js +9 -9
- package/src/form/delete.js +1 -1
- package/src/form/render.js +9 -9
- package/src/form/set.js +1 -1
- package/src/form/submit.js +6 -6
- package/src/form/update.js +3 -3
- package/src/form/verify.js +4 -4
- package/src/form.js +9 -9
- package/src/icon.js +4 -4
- package/src/image.js +7 -7
- package/src/item.js +1 -1
- package/src/layout.js +14 -14
- package/src/link.js +1 -1
- package/src/list/build.js +8 -8
- package/src/list/click.js +3 -3
- package/src/list/filter.js +11 -11
- package/src/list/image.js +3 -3
- package/src/list/render.js +15 -15
- package/src/list/request.js +7 -7
- package/src/list/search.js +9 -9
- package/src/list/select.js +18 -18
- package/src/list/status.js +1 -1
- package/src/list/update.js +6 -6
- package/src/list/virtual.js +20 -20
- package/src/list/virtual.new.js +5 -5
- package/src/list.js +8 -10
- package/src/map/build.js +2 -2
- package/src/map/countries.js +8 -8
- package/src/map/display.js +13 -13
- package/src/map/focus.js +7 -7
- package/src/map/select.js +2 -2
- package/src/map/set.js +3 -3
- package/src/map/viewport.js +11 -11
- package/src/menu.js +12 -12
- package/src/mixin/control.js +3 -3
- package/src/mixin/controller.js +5 -5
- package/src/mixin/create.js +1 -1
- package/src/mixin/display.js +1 -1
- package/src/mixin/events.js +4 -16
- package/src/mixin/focus.js +1 -1
- package/src/mixin/icon.js +2 -2
- package/src/mixin/init.js +2 -2
- package/src/mixin/insert.js +5 -5
- package/src/mixin/label.js +2 -2
- package/src/mixin/settings.js +5 -5
- package/src/module/attach.js +35 -49
- package/src/module/attributes.js +2 -2
- package/src/module/build.js +6 -11
- package/src/module/classify.js +4 -4
- package/src/module/controller.js +5 -32
- package/src/module/css.js +12 -84
- package/src/module/dataset.js +1 -1
- package/src/module/dom.js +9 -3
- package/src/module/dot.js +4 -4
- package/src/module/emitter.js +1 -1
- package/src/module/event.js +2 -2
- package/src/module/events.js +29 -35
- package/src/module/extract.js +10 -10
- package/src/module/last.js +18 -0
- package/src/module/mediator.js +1 -13
- package/src/module/object.js +4 -4
- package/src/module/observer.js +43 -16
- package/src/module/remove.js +10 -10
- package/src/module/request.js +33 -0
- package/src/module/ripple.js +19 -24
- package/src/module/scrollbar.js +10 -14
- package/src/module/smoothscroll.js +5 -9
- package/src/module/utils.js +14 -23
- package/src/module/viewport.js +5 -5
- package/src/navigation.js +7 -1
- package/src/progress.js +1 -9
- package/src/search.js +24 -29
- package/src/select.js +6 -6
- package/src/selecter.js +39 -39
- package/src/selector.js +3 -3
- package/src/skin/material/button/action.sass +6 -6
- package/src/skin/material/button/button.sass +6 -6
- package/src/skin/material/button/file.sass +1 -1
- package/src/skin/material/button/floating.sass +5 -5
- package/src/skin/material/button/raised.sass +5 -5
- package/src/skin/material/button/stroked.sass +5 -5
- package/src/skin/material/component/navigation.sass +13 -1
- package/src/skin/material/control/checkbox.sass +21 -21
- package/src/skin/material/module/ripple.sass +1 -1
- package/src/slider.js +1 -1
- package/src/snackbar.js +12 -9
- package/src/styles/M3/abstracts/variables.sass +44 -0
- package/src/styles/M3/components/button.sass +26 -0
- package/src/styles/M3/modules/ripple.sass +9 -0
- package/src/styles/M3/themes/classic.sass +2 -0
- package/src/switch.js +1 -1
- package/src/switcher.js +15 -15
- package/src/tabs.js +6 -8
- package/src/tabview.js +26 -46
- package/src/text.js +1 -1
- package/src/textfield.js +1 -1
- package/src/toolbar.js +12 -12
- package/src/tooltip.js +7 -7
- package/src/tree.js +10 -66
- package/src/view/build.js +2 -2
- package/src/view/dataset.js +1 -1
- package/src/view.js +9 -74
- package/dist/demo-bundle.js +0 -2
- package/dist/demo-bundle.js.map +0 -1
- package/dist/demo.css +0 -93
- package/dist/demo.css.map +0 -7
- package/dist/demo.html +0 -24
- package/dist/demo.js +0 -159
- package/dist/icon/accessibility.svg +0 -5
- package/dist/icon/apps.svg +0 -5
- package/dist/icon/happy.svg +0 -6
- package/dist/icon/link.svg +0 -5
- package/dist/icon/more.svg +0 -5
- package/dist/icon/navi.svg +0 -5
- package/dist/icon/phone.svg +0 -6
- package/dist/icon/share.svg +0 -6
- package/dist/icon/side.svg +0 -5
- package/dist/icon/star.svg +0 -7
- package/dist/icon/star_border.svg +0 -6
- package/dist/material.css +0 -2429
- package/dist/material.css.map +0 -7
- package/dist/styles/demo.sass +0 -110
- package/dist/styles.css +0 -23
- package/rollup.config.js +0 -34
- package/src/container.js +0 -66
- package/src/element/ripple.js +0 -90
- package/src/field/email.js +0 -59
- package/src/field/image.js +0 -93
- package/src/module/addclass.js +0 -16
package/src/calendar.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import create from './element/create'
|
|
2
2
|
import insert from './element/insert'
|
|
3
|
-
import css from './module/css'
|
|
3
|
+
import * as css from './module/css'
|
|
4
4
|
import attach from './module/attach'
|
|
5
5
|
import emitter from './module/emitter'
|
|
6
6
|
|
|
@@ -79,8 +79,8 @@ class Calendar {
|
|
|
79
79
|
*/
|
|
80
80
|
getFirstDayOfWeek (d) {
|
|
81
81
|
d = new Date(d)
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
const day = d.getDay()
|
|
83
|
+
const diff = d.getDate() - day + (day === 0 ? -6 : 1) // adjust when day is sunday
|
|
84
84
|
|
|
85
85
|
return new Date(d.setDate(diff))
|
|
86
86
|
}
|
|
@@ -93,8 +93,8 @@ class Calendar {
|
|
|
93
93
|
_initFunction (functions) {
|
|
94
94
|
functions = functions || []
|
|
95
95
|
|
|
96
|
-
for (
|
|
97
|
-
|
|
96
|
+
for (let i = 0; i < functions.length; i++) {
|
|
97
|
+
const name = functions[i]
|
|
98
98
|
if (this.options[name]) {
|
|
99
99
|
this[name] = this.options[name]
|
|
100
100
|
}
|
|
@@ -108,7 +108,7 @@ class Calendar {
|
|
|
108
108
|
*/
|
|
109
109
|
build () {
|
|
110
110
|
// define main tag
|
|
111
|
-
|
|
111
|
+
const tag = this.options.tag || 'div'
|
|
112
112
|
|
|
113
113
|
this.element = create(tag, this.options.prefix + '-' + this.options.class)
|
|
114
114
|
|
|
@@ -145,22 +145,22 @@ class Calendar {
|
|
|
145
145
|
|
|
146
146
|
this.buildHeadline()
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
const element = create('div')
|
|
149
149
|
insert(element, this.header)
|
|
150
150
|
css.add(element, 'header-days')
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
const date = new Date(this.firstDay)
|
|
153
|
+
const days = this.options.rangedays
|
|
154
154
|
|
|
155
|
-
|
|
155
|
+
const margin = create('div')
|
|
156
156
|
css.add(margin, 'margin')
|
|
157
157
|
insert(margin, element)
|
|
158
158
|
|
|
159
|
-
for (
|
|
160
|
-
|
|
161
|
-
|
|
159
|
+
for (let i = 0; i < days; i++) {
|
|
160
|
+
const dow = this.options.days[date.getDay()]
|
|
161
|
+
const dom = (date.getMonth() + 1) + '/' + date.getDate()
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
const cell = create('div')
|
|
164
164
|
cell.innerHTML = '<div class="first">' + dow + '</div><div class="second">' + dom + '</div>'
|
|
165
165
|
css.add(cell, 'date')
|
|
166
166
|
insert(cell, element)
|
|
@@ -178,11 +178,11 @@ class Calendar {
|
|
|
178
178
|
|
|
179
179
|
insert(this.headline, this.header)
|
|
180
180
|
|
|
181
|
-
|
|
181
|
+
const year = this.firstDay.getFullYear()
|
|
182
182
|
|
|
183
|
-
|
|
183
|
+
const month = this.options.months[this.firstDay.getMonth()]
|
|
184
184
|
|
|
185
|
-
|
|
185
|
+
const monthIndex = create('div', 'month-year')
|
|
186
186
|
monthIndex.innerHTML = '<b>' + month + '</b> ' + year
|
|
187
187
|
insert(monthIndex, this.headline)
|
|
188
188
|
|
|
@@ -194,10 +194,10 @@ class Calendar {
|
|
|
194
194
|
* @return {?} [description]
|
|
195
195
|
*/
|
|
196
196
|
buildNavigation () {
|
|
197
|
-
|
|
197
|
+
const navigation = create('div', this.options.prefix + '-toolbar')
|
|
198
198
|
insert(navigation, this.headline)
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
const back = new Button({
|
|
201
201
|
icon: iconBack,
|
|
202
202
|
style: 'dense'
|
|
203
203
|
}).on('click', () => {
|
|
@@ -206,7 +206,7 @@ class Calendar {
|
|
|
206
206
|
|
|
207
207
|
css.add(back.root, 'compact')
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
const today = new Button({
|
|
210
210
|
style: 'dense',
|
|
211
211
|
label: 'today'
|
|
212
212
|
}).on('click', () => {
|
|
@@ -215,7 +215,7 @@ class Calendar {
|
|
|
215
215
|
|
|
216
216
|
css.add(today.root, 'compact')
|
|
217
217
|
|
|
218
|
-
|
|
218
|
+
const next = new Button({
|
|
219
219
|
icon: iconForward,
|
|
220
220
|
style: 'dense'
|
|
221
221
|
}).on('click', () => {
|
|
@@ -231,18 +231,18 @@ class Calendar {
|
|
|
231
231
|
* @return {?} [description]
|
|
232
232
|
*/
|
|
233
233
|
buildAllDay () {
|
|
234
|
-
|
|
234
|
+
const allday = create('div', 'allday')
|
|
235
235
|
insert(allday, this.header)
|
|
236
236
|
|
|
237
|
-
|
|
238
|
-
|
|
237
|
+
const dow = new Date(this.firstDay)
|
|
238
|
+
const days = this.options.rangedays
|
|
239
239
|
|
|
240
|
-
|
|
240
|
+
const label = create('label', 'label')
|
|
241
241
|
label.innerHTML = 'all-day'
|
|
242
242
|
insert(label, allday)
|
|
243
243
|
|
|
244
|
-
for (
|
|
245
|
-
|
|
244
|
+
for (let i = 0; i < days; i++) {
|
|
245
|
+
const day = create('div', 'date')
|
|
246
246
|
day.setAttribute('data-date', this.dateToString(dow))
|
|
247
247
|
insert(day, allday)
|
|
248
248
|
|
|
@@ -256,33 +256,33 @@ class Calendar {
|
|
|
256
256
|
* @return {?} [description]
|
|
257
257
|
*/
|
|
258
258
|
buildBody () {
|
|
259
|
-
|
|
259
|
+
const cells = []
|
|
260
260
|
|
|
261
|
-
|
|
261
|
+
const firstDay = this.firstDay
|
|
262
262
|
|
|
263
|
-
|
|
263
|
+
const days = this.options.rangedays
|
|
264
264
|
|
|
265
265
|
this.body = create('div')
|
|
266
266
|
css.add(this.body, this.options.class + '-body')
|
|
267
267
|
insert(this.body, this.element)
|
|
268
268
|
|
|
269
|
-
|
|
269
|
+
const hours = create('div')
|
|
270
270
|
css.add(hours, 'hours')
|
|
271
271
|
insert(hours, this.body)
|
|
272
272
|
|
|
273
273
|
this.initCanvas()
|
|
274
274
|
|
|
275
|
-
for (
|
|
276
|
-
|
|
275
|
+
for (let i = 0; i < 24; i++) {
|
|
276
|
+
const hour = create('div')
|
|
277
277
|
css.add(hour, 'hour')
|
|
278
278
|
insert(hour, hours)
|
|
279
279
|
|
|
280
280
|
hour.innerHTML = i + ':00'
|
|
281
281
|
}
|
|
282
282
|
|
|
283
|
-
|
|
284
|
-
for (
|
|
285
|
-
|
|
283
|
+
const sday = new Date(firstDay)
|
|
284
|
+
for (let k = 0; k < days; k++) {
|
|
285
|
+
const day = create('div')
|
|
286
286
|
css.add(day, 'week-day')
|
|
287
287
|
day.setAttribute('data-date', this.dateToString(sday))
|
|
288
288
|
insert(day, this.body)
|
|
@@ -301,9 +301,9 @@ class Calendar {
|
|
|
301
301
|
* @return {Date}
|
|
302
302
|
*/
|
|
303
303
|
dateToString (d) {
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
304
|
+
let day = d.getDate()
|
|
305
|
+
let month = d.getMonth() + 1
|
|
306
|
+
const year = d.getFullYear()
|
|
307
307
|
|
|
308
308
|
if (day < 10) {
|
|
309
309
|
day = '0' + day
|
|
@@ -312,7 +312,7 @@ class Calendar {
|
|
|
312
312
|
month = '0' + month
|
|
313
313
|
}
|
|
314
314
|
|
|
315
|
-
|
|
315
|
+
const date = year + '-' + month + '-' + day
|
|
316
316
|
|
|
317
317
|
return date
|
|
318
318
|
}
|
|
@@ -323,19 +323,19 @@ class Calendar {
|
|
|
323
323
|
* @return {?} [description]
|
|
324
324
|
*/
|
|
325
325
|
initCanvas () {
|
|
326
|
-
|
|
326
|
+
const canvas = create('canvas')
|
|
327
327
|
css.add(canvas, 'canvas')
|
|
328
328
|
canvas.width = '2000'
|
|
329
329
|
canvas.height = '1440'
|
|
330
330
|
insert(canvas, this.body)
|
|
331
331
|
|
|
332
|
-
|
|
332
|
+
const ctx = canvas.getContext('2d')
|
|
333
333
|
ctx.lineWidth = 0.5
|
|
334
334
|
ctx.strokeStyle = '#dedbdb'
|
|
335
335
|
|
|
336
|
-
|
|
336
|
+
const offset = 6
|
|
337
337
|
|
|
338
|
-
for (
|
|
338
|
+
for (let j = 0; j <= 24; j++) {
|
|
339
339
|
ctx.beginPath()
|
|
340
340
|
|
|
341
341
|
if (j < this.options.range[0] - 1 || j > this.options.range[1] - 1) {
|
|
@@ -344,7 +344,7 @@ class Calendar {
|
|
|
344
344
|
ctx.strokeStyle = '#D9D9D9'
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
-
|
|
347
|
+
const y = j * 60 + 0.5
|
|
348
348
|
|
|
349
349
|
ctx.moveTo(0, y + 60 + offset)
|
|
350
350
|
ctx.lineTo(2000, y + 60 + offset)
|
|
@@ -359,16 +359,16 @@ class Calendar {
|
|
|
359
359
|
*/
|
|
360
360
|
add (e) {
|
|
361
361
|
if (e.target && e.target.matches(this.options.target)) {
|
|
362
|
-
|
|
362
|
+
const data = e.target.getAttribute('data-date')
|
|
363
363
|
|
|
364
|
-
|
|
364
|
+
const d = data.split(/-/)
|
|
365
365
|
|
|
366
|
-
|
|
366
|
+
const time = this.roundTime(e.offsetY / 60)
|
|
367
367
|
|
|
368
|
-
|
|
369
|
-
|
|
368
|
+
const h = parseInt(time)
|
|
369
|
+
const m = (time - h) * 60
|
|
370
370
|
|
|
371
|
-
|
|
371
|
+
const date = new Date(d[0], d[1], d[2], h, m)
|
|
372
372
|
|
|
373
373
|
this.emit('add', date)
|
|
374
374
|
}
|
|
@@ -380,8 +380,8 @@ class Calendar {
|
|
|
380
380
|
* @return {?} [description]
|
|
381
381
|
*/
|
|
382
382
|
roundTime (value) {
|
|
383
|
-
|
|
384
|
-
|
|
383
|
+
const step = 0.5
|
|
384
|
+
const inv = 1.0 / step
|
|
385
385
|
return Math.round(value * inv) / inv
|
|
386
386
|
}
|
|
387
387
|
|
package/src/card.js
CHANGED
package/src/checkbox.js
CHANGED
|
@@ -1,101 +1,67 @@
|
|
|
1
|
-
import
|
|
2
|
-
import control from './mixin/control'
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
import insert from './element/insert'
|
|
6
|
-
import build from './element/build'
|
|
7
|
-
|
|
8
|
-
import emitter from './module/emitter'
|
|
1
|
+
import EventEmitter from './mixin/events'
|
|
2
|
+
// import control from './mixin/control'
|
|
3
|
+
import build from './module/build'
|
|
9
4
|
import attach from './module/attach'
|
|
10
|
-
import css from './module/css'
|
|
5
|
+
import * as css from './module/css'
|
|
11
6
|
|
|
12
7
|
import icon from './skin/material/icon/checkbox.svg'
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
prefix: 'material',
|
|
17
|
-
class: 'checkbox',
|
|
18
|
-
type: 'control',
|
|
19
|
-
// modules: [events, control, emitter, attach],
|
|
20
|
-
build: ['$root.material-checkbox', {},
|
|
21
|
-
['input$input', {}],
|
|
22
|
-
['span$control.checkbox-control']
|
|
23
|
-
],
|
|
24
|
-
events: [
|
|
25
|
-
['element.control.click', 'click', {}],
|
|
26
|
-
['element.label.click', 'toggle', {}],
|
|
27
|
-
// for accessibility purpose
|
|
28
|
-
// ['element.input.click', 'toggle', {}],
|
|
29
|
-
['element.input.focus', 'focus'],
|
|
30
|
-
['element.input.blur', 'blur'],
|
|
31
|
-
['element.input.keydown', 'keydown', {}]
|
|
32
|
-
]
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Checkbox control class
|
|
36
|
-
* @class
|
|
37
|
-
* @extends Control
|
|
38
|
-
* @since 0.0.1
|
|
39
|
-
* @example
|
|
40
|
-
* var chkbox = checkbox({
|
|
41
|
-
* label: 'Primary raised button',
|
|
42
|
-
* type: 'raised',
|
|
43
|
-
* primary: true
|
|
44
|
-
* }).on('click', function(e) {
|
|
45
|
-
* console.log('button click', e);
|
|
46
|
-
* }).insert(document.body);
|
|
47
|
-
*/
|
|
8
|
+
|
|
9
|
+
import Element from './element'
|
|
10
|
+
|
|
48
11
|
class Checkbox {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
12
|
+
static defaults = {
|
|
13
|
+
class: 'checkbox',
|
|
14
|
+
layout: [
|
|
15
|
+
[Element, 'input', { type: 'checkbox' } ],
|
|
16
|
+
[Element, 'control', { type: 'checkbox' } ],
|
|
17
|
+
[Element, 'label', { tag: 'label' }]
|
|
18
|
+
],
|
|
19
|
+
events: [
|
|
20
|
+
['ui.control.click', 'click'],
|
|
21
|
+
['ui.label.click', 'toggle'],
|
|
22
|
+
// for accessibility purpose
|
|
23
|
+
// ['element.input.click', 'toggle'],
|
|
24
|
+
['ui.input.focus', 'focus'],
|
|
25
|
+
['ui.input.blur', 'blur'],
|
|
26
|
+
['ui.input.keydown', 'keydown']
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
|
|
54
30
|
constructor (options) {
|
|
55
31
|
this.init(options)
|
|
56
32
|
this.build()
|
|
33
|
+
this.setup()
|
|
57
34
|
this.attach()
|
|
58
|
-
|
|
59
|
-
return this
|
|
60
35
|
}
|
|
61
36
|
|
|
62
|
-
/**
|
|
63
|
-
* Constructor
|
|
64
|
-
* @param {Object} options The class options
|
|
65
|
-
* @return {Object} This class instance
|
|
66
|
-
*/
|
|
67
37
|
init (options) {
|
|
68
38
|
this.options = Object.assign({}, defaults, options || {})
|
|
69
|
-
Object.assign(this,
|
|
39
|
+
Object.assign(this, build, attach)
|
|
70
40
|
|
|
71
41
|
return this
|
|
72
42
|
}
|
|
73
43
|
|
|
74
|
-
|
|
75
|
-
* build the component using the super method
|
|
76
|
-
* @return {Object} The class instance
|
|
77
|
-
*/
|
|
78
|
-
build () {
|
|
44
|
+
setup () {
|
|
79
45
|
this.element = build(this.options.build)
|
|
80
46
|
this.element = this.element.root
|
|
81
47
|
|
|
82
|
-
this.
|
|
48
|
+
this.ui.control.innerHTML = icon
|
|
83
49
|
|
|
84
|
-
|
|
50
|
+
const text = this.options.text || this.options.label
|
|
85
51
|
|
|
86
|
-
this.
|
|
52
|
+
this.ui.label.innerHTML = text
|
|
87
53
|
|
|
88
|
-
this.
|
|
89
|
-
this.
|
|
90
|
-
this.
|
|
54
|
+
this.ui.input.setAttribute('type', 'checkbox')
|
|
55
|
+
this.ui.input.setAttribute('name', this.options.name)
|
|
56
|
+
this.ui.input.setAttribute('aria-label', this.options.name)
|
|
91
57
|
|
|
92
58
|
if (this.options.value) {
|
|
93
|
-
this.
|
|
59
|
+
this.ui.input.setAttribute('value', this.options.value)
|
|
94
60
|
}
|
|
95
61
|
|
|
96
62
|
if (this.options.disabled) {
|
|
97
63
|
this.disabled = this.options.disabled
|
|
98
|
-
this.
|
|
64
|
+
this.ui.input.setAttribute('disabled', 'disabled')
|
|
99
65
|
css.add(this.element, 'is-disabled')
|
|
100
66
|
}
|
|
101
67
|
|
|
@@ -106,21 +72,8 @@ class Checkbox {
|
|
|
106
72
|
if (this.options.value) {
|
|
107
73
|
this.set('value', this.value)
|
|
108
74
|
}
|
|
109
|
-
|
|
110
|
-
// insert if container options is given
|
|
111
|
-
if (this.options.container) {
|
|
112
|
-
insert(this.element, this.options.container)
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return this
|
|
116
75
|
}
|
|
117
76
|
|
|
118
|
-
/**
|
|
119
|
-
* Setter
|
|
120
|
-
* @param {string} prop
|
|
121
|
-
* @param {string} value
|
|
122
|
-
* @return {Object} The class instance
|
|
123
|
-
*/
|
|
124
77
|
set (prop, value) {
|
|
125
78
|
switch (prop) {
|
|
126
79
|
case 'checked':
|
|
@@ -139,38 +92,33 @@ class Checkbox {
|
|
|
139
92
|
return this
|
|
140
93
|
}
|
|
141
94
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
95
|
+
check (checked) {
|
|
96
|
+
if (checked === true) {
|
|
97
|
+
css.add(this.element, 'is-checked')
|
|
98
|
+
this.ui.input.checked = true
|
|
99
|
+
this.checked = true
|
|
100
|
+
this.emit('change', this.checked)
|
|
101
|
+
} else {
|
|
102
|
+
css.remove(this.element, 'is-checked')
|
|
103
|
+
this.ui.input.checked = false
|
|
104
|
+
this.checked = false
|
|
105
|
+
this.emit('change', this.checked)
|
|
106
|
+
}
|
|
151
107
|
return this
|
|
152
108
|
}
|
|
153
109
|
|
|
154
|
-
|
|
155
|
-
* [click description]
|
|
156
|
-
* @param {event} e [description]
|
|
157
|
-
* @return {?} [description]
|
|
158
|
-
*/
|
|
110
|
+
|
|
159
111
|
click (e) {
|
|
160
112
|
this.toggle(e)
|
|
161
|
-
this.
|
|
113
|
+
this.ui.input.focus()
|
|
162
114
|
|
|
163
115
|
return this
|
|
164
116
|
}
|
|
165
117
|
|
|
166
|
-
/**
|
|
167
|
-
* Set checkbox value
|
|
168
|
-
* @param {boolean} value [description]
|
|
169
|
-
*/
|
|
170
118
|
setValue (value) {
|
|
171
|
-
console.log('setValue', value)
|
|
119
|
+
// console.log('setValue', value)
|
|
172
120
|
this.value = value
|
|
173
|
-
this.
|
|
121
|
+
this.ui.input.setAttribute('value', value)
|
|
174
122
|
|
|
175
123
|
return this
|
|
176
124
|
}
|
package/src/datehour.js
CHANGED
|
@@ -11,26 +11,26 @@ class DateHour {
|
|
|
11
11
|
this.build()
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
init(options) {
|
|
14
|
+
init (options) {
|
|
15
15
|
this.options = Object.assign({}, DateHour.defaults, options || {})
|
|
16
16
|
Object.assign(this, build)
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
set (date) {
|
|
20
20
|
// console.log('set', src)
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const d = new Date(date)
|
|
22
|
+
const formatted = this.format(d)
|
|
23
23
|
this.element.innerHTML = formatted
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
format (date) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
let hours = date.getHours()
|
|
28
|
+
let minutes = date.getMinutes()
|
|
29
|
+
const ampm = hours >= 12 ? 'pm' : 'am'
|
|
30
30
|
hours = hours % 12
|
|
31
31
|
hours = hours || 12 // the hour '0' should be '12'
|
|
32
32
|
minutes = minutes < 10 ? '0' + minutes : minutes
|
|
33
|
-
|
|
33
|
+
const strTime = hours + ':' + minutes + ' ' + ampm
|
|
34
34
|
return date.getMonth() + 1 + '/' + date.getDate() + '/' + date.getFullYear() + ' ' + strTime
|
|
35
35
|
}
|
|
36
36
|
}
|
package/src/dialog.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// dialog related modules
|
|
2
2
|
import emitter from './module/emitter'
|
|
3
3
|
import attach from './module/attach'
|
|
4
|
-
import display from './
|
|
4
|
+
import display from './mixin/display'
|
|
5
5
|
|
|
6
6
|
import Element from './element'
|
|
7
7
|
import Text from './text'
|
|
@@ -43,7 +43,7 @@ class Dialog {
|
|
|
43
43
|
return this
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
init(options) {
|
|
46
|
+
init (options) {
|
|
47
47
|
this.options = Object.assign({}, Dialog.defaults, options || {})
|
|
48
48
|
Object.assign(this, emitter, attach, display)
|
|
49
49
|
}
|
|
@@ -101,8 +101,8 @@ class Dialog {
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
setPosition () {
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
const coord = this.options.target.getBoundingClientRect()
|
|
105
|
+
const surface_coord = this.surface.getBoundingClientRect()
|
|
106
106
|
|
|
107
107
|
if (this.options.position === 'right') {
|
|
108
108
|
this.surface.style.top = coord.top + 'px'
|
|
@@ -150,7 +150,7 @@ class Dialog {
|
|
|
150
150
|
|
|
151
151
|
emphase () {
|
|
152
152
|
this.element.classList.add('emphase')
|
|
153
|
-
|
|
153
|
+
let it
|
|
154
154
|
it = setTimeout(() => {
|
|
155
155
|
clearTimeout(it)
|
|
156
156
|
this.element.classList.remove('emphase')
|
package/src/divider.js
CHANGED
package/src/drawer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import init from './mixin/init'
|
|
2
2
|
import insert from './element/insert'
|
|
3
3
|
import classify from './module/classify'
|
|
4
|
-
import css from './module/css'
|
|
4
|
+
import * as css from './module/css'
|
|
5
5
|
import events from './mixin/events'
|
|
6
6
|
import create from './element/create'
|
|
7
7
|
import emitter from './module/emitter'
|
|
@@ -17,21 +17,7 @@ const defaults = {
|
|
|
17
17
|
modules: [emitter, events]
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
/**
|
|
21
|
-
* Class representing a UI Container. Can add components.
|
|
22
|
-
*
|
|
23
|
-
* @extends Component
|
|
24
|
-
* @return {parent} The class instance
|
|
25
|
-
* @example new Container({
|
|
26
|
-
* container: document.body
|
|
27
|
-
* });
|
|
28
|
-
*/
|
|
29
20
|
class Drawer {
|
|
30
|
-
/**
|
|
31
|
-
* Constructor
|
|
32
|
-
* @param {Object} options - Component options
|
|
33
|
-
* @return {Object} Class instance
|
|
34
|
-
*/
|
|
35
21
|
constructor (options) {
|
|
36
22
|
this.options = Object.assign({}, defaults, options || {})
|
|
37
23
|
|
|
@@ -41,8 +27,6 @@ class Drawer {
|
|
|
41
27
|
this.attach()
|
|
42
28
|
|
|
43
29
|
this.emit('ready')
|
|
44
|
-
|
|
45
|
-
return this
|
|
46
30
|
}
|
|
47
31
|
|
|
48
32
|
/**
|
package/src/element/attribute.js
CHANGED
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
for (var key in attribute) {
|
|
5
|
-
if (attribute.hasOwnProperty(key)) {
|
|
1
|
+
const init = (element, attribute) => {
|
|
2
|
+
for (const key in attribute) {
|
|
3
|
+
if (Object.prototype.hasOwnProperty.call(attribute, key)) {
|
|
6
4
|
element.setAttribute(key, attribute[key])
|
|
7
5
|
}
|
|
8
6
|
}
|
|
9
|
-
|
|
10
7
|
return element
|
|
11
8
|
}
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
return element.setAttribute(name,
|
|
10
|
+
const set = (element, name, value) => {
|
|
11
|
+
return element.setAttribute(name, `${value}`)
|
|
15
12
|
}
|
|
16
13
|
|
|
17
|
-
|
|
14
|
+
const get = (element, name) => {
|
|
18
15
|
return element.getAttribute(name) || null
|
|
19
16
|
}
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
const remove = (element, name) => {
|
|
22
19
|
return element.removeAttribute(name)
|
|
23
20
|
}
|
|
24
21
|
|
package/src/element/build.js
CHANGED
|
@@ -2,13 +2,13 @@ import attribute from './attribute'
|
|
|
2
2
|
import create from './create'
|
|
3
3
|
import insert from './insert'
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
const isObject = (object) => {
|
|
6
6
|
return object &&
|
|
7
7
|
typeof object === 'object' &&
|
|
8
8
|
Object.getPrototypeOf(object) === Object.getPrototypeOf({})
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
const process = (string) => {
|
|
12
12
|
const tags = string.match(/^[\w-]+/)
|
|
13
13
|
const ids = string.match(/#([\w-]+)/)
|
|
14
14
|
const classes = string.match(/\.[\w-]+/g)
|
|
@@ -30,17 +30,16 @@ function process (string) {
|
|
|
30
30
|
return properties
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
const build = (schema, container, object = {}, level) => {
|
|
34
34
|
let element
|
|
35
|
-
object = object || {}
|
|
36
35
|
|
|
37
|
-
for (
|
|
36
|
+
for (let i = 0; i < schema.length; i++) {
|
|
38
37
|
if (typeof schema[i] === 'string') {
|
|
39
|
-
|
|
38
|
+
const property = process(schema[i])
|
|
40
39
|
element = create(property.tag, property.class)
|
|
41
40
|
insert(element, container)
|
|
42
41
|
|
|
43
|
-
if (property.name)
|
|
42
|
+
if (property.name) object[property.name] = element
|
|
44
43
|
} else if (isObject(schema[i])) {
|
|
45
44
|
attribute.init(element, schema[i])
|
|
46
45
|
} else if (Array.isArray(schema[i])) {
|