smoothly 1.0.1-alpha.8 → 1.1.0
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/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/smoothly-app_81.cjs.entry.js +94 -23
- package/dist/cjs/smoothly-app_81.cjs.entry.js.map +1 -1
- package/dist/cjs/smoothly.cjs.js +1 -1
- package/dist/collection/components/form/index.js +27 -2
- package/dist/collection/components/form/index.js.map +1 -1
- package/dist/collection/components/input/Editable.js +4 -0
- package/dist/collection/components/input/Editable.js.map +1 -1
- package/dist/collection/components/input/Input.js +2 -0
- package/dist/collection/components/input/Input.js.map +1 -1
- package/dist/collection/components/input/date/index.js +21 -1
- package/dist/collection/components/input/date/index.js.map +1 -1
- package/dist/collection/components/input/date/range/index.js +21 -1
- package/dist/collection/components/input/date/range/index.js.map +1 -1
- package/dist/collection/components/input/demo/index.js +1 -1
- package/dist/collection/components/input/demo/index.js.map +1 -1
- package/dist/collection/components/input/file/index.js +223 -33
- package/dist/collection/components/input/file/index.js.map +1 -1
- package/dist/collection/components/input/file/style.css +10 -15
- package/dist/collection/model/index.js.map +1 -1
- package/dist/collection/smoothly.js.map +1 -1
- package/dist/custom-elements/index.js +95 -24
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/smoothly-app_81.entry.js +94 -23
- package/dist/esm/smoothly-app_81.entry.js.map +1 -1
- package/dist/esm/smoothly.js +1 -1
- package/dist/smoothly/p-7f49e208.entry.js +2 -0
- package/dist/smoothly/p-7f49e208.entry.js.map +1 -0
- package/dist/smoothly/smoothly.esm.js +1 -1
- package/dist/smoothly/smoothly.esm.js.map +1 -1
- package/dist/types/components/form/index.d.ts +5 -2
- package/dist/types/components/input/Editable.d.ts +4 -0
- package/dist/types/components/input/Input.d.ts +3 -0
- package/dist/types/components/input/date/index.d.ts +3 -2
- package/dist/types/components/input/date/range/index.d.ts +3 -2
- package/dist/types/components/input/file/index.d.ts +27 -8
- package/dist/types/components.d.ts +15 -2
- package/dist/types/model/index.d.ts +1 -1
- package/dist/types/smoothly.d.ts +1 -1
- package/package.json +1 -1
- package/dist/smoothly/p-22644183.entry.js +0 -2
- package/dist/smoothly/p-22644183.entry.js.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { h, Host } from "@stencil/core";
|
|
1
|
+
import { h, Host, } from "@stencil/core";
|
|
2
2
|
export class SmoothlyInputFile {
|
|
3
3
|
constructor() {
|
|
4
4
|
this.transfer = new DataTransfer();
|
|
5
|
-
this.
|
|
5
|
+
this.changed = false;
|
|
6
|
+
this.readonly = false;
|
|
6
7
|
this.accept = undefined;
|
|
7
8
|
this.color = undefined;
|
|
8
9
|
this.looks = "plain";
|
|
@@ -11,33 +12,78 @@ export class SmoothlyInputFile {
|
|
|
11
12
|
this.showLabel = true;
|
|
12
13
|
this.value = undefined;
|
|
13
14
|
this.placeholder = undefined;
|
|
15
|
+
this.dragging = false;
|
|
16
|
+
}
|
|
17
|
+
get files() {
|
|
18
|
+
this.transfer.items.clear();
|
|
19
|
+
this.value && this.transfer.items.add(this.value);
|
|
20
|
+
return this.transfer.files;
|
|
14
21
|
}
|
|
15
22
|
componentWillLoad() {
|
|
16
23
|
this.smoothlyInputLooks.emit((looks, color) => ((this.looks = looks), !this.color && (this.color = color)));
|
|
24
|
+
this.smoothlyInput.emit({ [this.name]: this.value });
|
|
25
|
+
this.smoothlyInputLoad.emit(() => { });
|
|
26
|
+
!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly));
|
|
17
27
|
}
|
|
18
28
|
async clear() {
|
|
19
29
|
this.value = undefined;
|
|
20
30
|
}
|
|
31
|
+
async listen(property, listener) {
|
|
32
|
+
this.listener[property] = listener;
|
|
33
|
+
listener(this);
|
|
34
|
+
}
|
|
35
|
+
async edit(editable) {
|
|
36
|
+
this.readonly = !editable;
|
|
37
|
+
}
|
|
38
|
+
async reset() {
|
|
39
|
+
this.value = this.initialValue;
|
|
40
|
+
}
|
|
41
|
+
async setInitialValue() {
|
|
42
|
+
this.initialValue = this.value;
|
|
43
|
+
this.valueChanged();
|
|
44
|
+
}
|
|
45
|
+
async binary() {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
valueChanged() {
|
|
49
|
+
this.changed = this.initialValue !== this.value;
|
|
50
|
+
this.smoothlyInput.emit({ [this.name]: this.value });
|
|
51
|
+
}
|
|
52
|
+
inputHandler(event) {
|
|
53
|
+
var _a, _b, _c;
|
|
54
|
+
event.stopPropagation();
|
|
55
|
+
if ((_b = (_a = this.input) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b.length)
|
|
56
|
+
this.value = (_c = this.input) === null || _c === void 0 ? void 0 : _c.files[0];
|
|
57
|
+
}
|
|
58
|
+
dropHandler(event) {
|
|
59
|
+
var _a;
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
event.stopPropagation();
|
|
62
|
+
this.dragging = false;
|
|
63
|
+
if ((_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.files.length)
|
|
64
|
+
this.value = event.dataTransfer.files[0];
|
|
65
|
+
}
|
|
66
|
+
clickHandler(event) {
|
|
67
|
+
var _a;
|
|
68
|
+
if (!this.readonly && !event.composedPath().find(target => target == this.input)) {
|
|
69
|
+
(_a = this.input) === null || _a === void 0 ? void 0 : _a.click();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
dragOverHandler(event) {
|
|
73
|
+
event.preventDefault();
|
|
74
|
+
event.stopPropagation();
|
|
75
|
+
}
|
|
76
|
+
dragEnterHandler(event) {
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
!this.readonly && (this.dragging = true);
|
|
79
|
+
}
|
|
80
|
+
dragLeaveHandler(event) {
|
|
81
|
+
event.stopPropagation();
|
|
82
|
+
this.dragging = false;
|
|
83
|
+
}
|
|
21
84
|
render() {
|
|
22
85
|
var _a, _b, _c;
|
|
23
|
-
return (h(Host, { class: { dragging: this.dragging }, tabindex: 0, onClick: () =>
|
|
24
|
-
var _a;
|
|
25
|
-
return (event.preventDefault(),
|
|
26
|
-
event.stopPropagation(),
|
|
27
|
-
(this.dragging = false),
|
|
28
|
-
((_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.files.length) &&
|
|
29
|
-
(this.smoothlyInput.emit({ [this.name]: (this.value = event.dataTransfer.files[0]) }),
|
|
30
|
-
this.smoothlyChange.emit({ [this.name]: (this.value = event.dataTransfer.files[0]) })));
|
|
31
|
-
}, onDragLeave: event => (event.stopPropagation(), (this.dragging = false)) }), h("input", { ref: element => (this.input = element), type: "file", capture: this.camera == "back" ? "environment" : "user", accept: (_c = this.accept) !== null && _c !== void 0 ? _c : (!this.camera ? undefined : "image/jpeg"), files: (this.transfer.items.clear(), this.value && this.transfer.items.add(this.value), this.transfer.files), onInput: event => {
|
|
32
|
-
var _a, _b, _c;
|
|
33
|
-
return (event.stopPropagation(),
|
|
34
|
-
((_b = (_a = this.input) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b.length) && this.smoothlyInput.emit({ [this.name]: (this.value = (_c = this.input) === null || _c === void 0 ? void 0 : _c.files[0]) }));
|
|
35
|
-
}, onChange: event => {
|
|
36
|
-
var _a, _b, _c;
|
|
37
|
-
return (event.stopPropagation(),
|
|
38
|
-
((_b = (_a = this.input) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b.length) &&
|
|
39
|
-
this.smoothlyChange.emit({ [this.name]: (this.value = (_c = this.input) === null || _c === void 0 ? void 0 : _c.files[0]) }));
|
|
40
|
-
} })), h("slot", null)));
|
|
86
|
+
return (h(Host, { class: { dragging: this.dragging }, tabindex: 0, onClick: (e) => this.clickHandler(e), onDragOver: (e) => this.dragOverHandler(e), onDragEnter: (e) => this.dragEnterHandler(e) }, h("label", null, h("slot", { name: "label" })), h("div", { class: "input" }, h("smoothly-button", { color: this.color, fill: "clear", size: "flexible" }, h("slot", { name: "button" })), h("span", null, (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : this.placeholder), h("div", { class: "mask", onDrop: e => this.dropHandler(e), onDragLeave: e => this.dragLeaveHandler(e) }), h("input", { ref: element => (this.input = element), type: "file", capture: this.camera == "back" ? "environment" : "user", accept: (_c = this.accept) !== null && _c !== void 0 ? _c : (!this.camera ? undefined : "image/jpeg"), files: this.files, onInput: e => this.inputHandler(e) })), h("slot", null)));
|
|
41
87
|
}
|
|
42
88
|
static get is() { return "smoothly-input-file"; }
|
|
43
89
|
static get encapsulation() { return "scoped"; }
|
|
@@ -53,6 +99,42 @@ export class SmoothlyInputFile {
|
|
|
53
99
|
}
|
|
54
100
|
static get properties() {
|
|
55
101
|
return {
|
|
102
|
+
"changed": {
|
|
103
|
+
"type": "boolean",
|
|
104
|
+
"mutable": true,
|
|
105
|
+
"complexType": {
|
|
106
|
+
"original": "boolean",
|
|
107
|
+
"resolved": "boolean",
|
|
108
|
+
"references": {}
|
|
109
|
+
},
|
|
110
|
+
"required": false,
|
|
111
|
+
"optional": false,
|
|
112
|
+
"docs": {
|
|
113
|
+
"tags": [],
|
|
114
|
+
"text": ""
|
|
115
|
+
},
|
|
116
|
+
"attribute": "changed",
|
|
117
|
+
"reflect": false,
|
|
118
|
+
"defaultValue": "false"
|
|
119
|
+
},
|
|
120
|
+
"readonly": {
|
|
121
|
+
"type": "boolean",
|
|
122
|
+
"mutable": true,
|
|
123
|
+
"complexType": {
|
|
124
|
+
"original": "boolean",
|
|
125
|
+
"resolved": "boolean",
|
|
126
|
+
"references": {}
|
|
127
|
+
},
|
|
128
|
+
"required": false,
|
|
129
|
+
"optional": false,
|
|
130
|
+
"docs": {
|
|
131
|
+
"tags": [],
|
|
132
|
+
"text": ""
|
|
133
|
+
},
|
|
134
|
+
"attribute": "readonly",
|
|
135
|
+
"reflect": true,
|
|
136
|
+
"defaultValue": "false"
|
|
137
|
+
},
|
|
56
138
|
"accept": {
|
|
57
139
|
"type": "string",
|
|
58
140
|
"mutable": false,
|
|
@@ -246,20 +328,17 @@ export class SmoothlyInputFile {
|
|
|
246
328
|
"text": ""
|
|
247
329
|
},
|
|
248
330
|
"complexType": {
|
|
249
|
-
"original": "Record<string,
|
|
250
|
-
"resolved": "{ [x: string]:
|
|
331
|
+
"original": "Record<string, any>",
|
|
332
|
+
"resolved": "{ [x: string]: any; }",
|
|
251
333
|
"references": {
|
|
252
334
|
"Record": {
|
|
253
335
|
"location": "global"
|
|
254
|
-
},
|
|
255
|
-
"File": {
|
|
256
|
-
"location": "global"
|
|
257
336
|
}
|
|
258
337
|
}
|
|
259
338
|
}
|
|
260
339
|
}, {
|
|
261
|
-
"method": "
|
|
262
|
-
"name": "
|
|
340
|
+
"method": "smoothlyInputLoad",
|
|
341
|
+
"name": "smoothlyInputLoad",
|
|
263
342
|
"bubbles": true,
|
|
264
343
|
"cancelable": true,
|
|
265
344
|
"composed": true,
|
|
@@ -268,17 +347,29 @@ export class SmoothlyInputFile {
|
|
|
268
347
|
"text": ""
|
|
269
348
|
},
|
|
270
349
|
"complexType": {
|
|
271
|
-
"original": "
|
|
272
|
-
"resolved": "
|
|
350
|
+
"original": "(parent: HTMLElement) => void",
|
|
351
|
+
"resolved": "(parent: HTMLElement) => void",
|
|
273
352
|
"references": {
|
|
274
|
-
"
|
|
275
|
-
"location": "global"
|
|
276
|
-
},
|
|
277
|
-
"File": {
|
|
353
|
+
"HTMLElement": {
|
|
278
354
|
"location": "global"
|
|
279
355
|
}
|
|
280
356
|
}
|
|
281
357
|
}
|
|
358
|
+
}, {
|
|
359
|
+
"method": "smoothlyFormDisable",
|
|
360
|
+
"name": "smoothlyFormDisable",
|
|
361
|
+
"bubbles": true,
|
|
362
|
+
"cancelable": true,
|
|
363
|
+
"composed": true,
|
|
364
|
+
"docs": {
|
|
365
|
+
"tags": [],
|
|
366
|
+
"text": ""
|
|
367
|
+
},
|
|
368
|
+
"complexType": {
|
|
369
|
+
"original": "(disabled: boolean) => void",
|
|
370
|
+
"resolved": "(disabled: boolean) => void",
|
|
371
|
+
"references": {}
|
|
372
|
+
}
|
|
282
373
|
}];
|
|
283
374
|
}
|
|
284
375
|
static get methods() {
|
|
@@ -298,8 +389,107 @@ export class SmoothlyInputFile {
|
|
|
298
389
|
"text": "",
|
|
299
390
|
"tags": []
|
|
300
391
|
}
|
|
392
|
+
},
|
|
393
|
+
"listen": {
|
|
394
|
+
"complexType": {
|
|
395
|
+
"signature": "(property: \"changed\", listener: (parent: Editable) => Promise<void>) => Promise<void>",
|
|
396
|
+
"parameters": [{
|
|
397
|
+
"tags": [],
|
|
398
|
+
"text": ""
|
|
399
|
+
}, {
|
|
400
|
+
"tags": [],
|
|
401
|
+
"text": ""
|
|
402
|
+
}],
|
|
403
|
+
"references": {
|
|
404
|
+
"Promise": {
|
|
405
|
+
"location": "global"
|
|
406
|
+
},
|
|
407
|
+
"Editable": {
|
|
408
|
+
"location": "import",
|
|
409
|
+
"path": "../Editable"
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
"return": "Promise<void>"
|
|
413
|
+
},
|
|
414
|
+
"docs": {
|
|
415
|
+
"text": "",
|
|
416
|
+
"tags": []
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
"edit": {
|
|
420
|
+
"complexType": {
|
|
421
|
+
"signature": "(editable: boolean) => Promise<void>",
|
|
422
|
+
"parameters": [{
|
|
423
|
+
"tags": [],
|
|
424
|
+
"text": ""
|
|
425
|
+
}],
|
|
426
|
+
"references": {
|
|
427
|
+
"Promise": {
|
|
428
|
+
"location": "global"
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
"return": "Promise<void>"
|
|
432
|
+
},
|
|
433
|
+
"docs": {
|
|
434
|
+
"text": "",
|
|
435
|
+
"tags": []
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
"reset": {
|
|
439
|
+
"complexType": {
|
|
440
|
+
"signature": "() => Promise<void>",
|
|
441
|
+
"parameters": [],
|
|
442
|
+
"references": {
|
|
443
|
+
"Promise": {
|
|
444
|
+
"location": "global"
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
"return": "Promise<void>"
|
|
448
|
+
},
|
|
449
|
+
"docs": {
|
|
450
|
+
"text": "",
|
|
451
|
+
"tags": []
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
"setInitialValue": {
|
|
455
|
+
"complexType": {
|
|
456
|
+
"signature": "() => Promise<void>",
|
|
457
|
+
"parameters": [],
|
|
458
|
+
"references": {
|
|
459
|
+
"Promise": {
|
|
460
|
+
"location": "global"
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
"return": "Promise<void>"
|
|
464
|
+
},
|
|
465
|
+
"docs": {
|
|
466
|
+
"text": "",
|
|
467
|
+
"tags": []
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
"binary": {
|
|
471
|
+
"complexType": {
|
|
472
|
+
"signature": "() => Promise<boolean>",
|
|
473
|
+
"parameters": [],
|
|
474
|
+
"references": {
|
|
475
|
+
"Promise": {
|
|
476
|
+
"location": "global"
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
"return": "Promise<boolean>"
|
|
480
|
+
},
|
|
481
|
+
"docs": {
|
|
482
|
+
"text": "",
|
|
483
|
+
"tags": []
|
|
484
|
+
}
|
|
301
485
|
}
|
|
302
486
|
};
|
|
303
487
|
}
|
|
488
|
+
static get watchers() {
|
|
489
|
+
return [{
|
|
490
|
+
"propName": "value",
|
|
491
|
+
"methodName": "valueChanged"
|
|
492
|
+
}];
|
|
493
|
+
}
|
|
304
494
|
}
|
|
305
495
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/input/file/index.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/input/file/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,SAAS,EAET,KAAK,EAEL,CAAC,EACD,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EAEL,KAAK,GACL,MAAM,eAAe,CAAA;AAYtB,MAAM,OAAO,iBAAiB;;IAiBrB,aAAQ,GAAiB,IAAI,YAAY,EAAE,CAAA;mBAhBhB,KAAK;oBACW,KAAK;;;iBAGD,OAAO;;;qBAGzB,IAAI;;;oBAGrB,KAAK;;EAUzB,IAAY,KAAK;IAChB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA;EAC3B,CAAC;EAED,iBAAiB;IAChB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3G,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IACpD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACrC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAA;EACxF,CAAC;EAGD,KAAK,CAAC,KAAK;IACV,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;EACvB,CAAC;EAED,KAAK,CAAC,MAAM,CAAC,QAAmB,EAAE,QAA6C;IAC9E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;IAClC,QAAQ,CAAC,IAAI,CAAC,CAAA;EACf,CAAC;EAED,KAAK,CAAC,IAAI,CAAC,QAAiB;IAC3B,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAA;EAC1B,CAAC;EAED,KAAK,CAAC,KAAK;IACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAA;EAC/B,CAAC;EAED,KAAK,CAAC,eAAe;IACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;IAC9B,IAAI,CAAC,YAAY,EAAE,CAAA;EACpB,CAAC;EAED,KAAK,CAAC,MAAM;IACX,OAAO,IAAI,CAAA;EACZ,CAAC;EAGD,YAAY;IACX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAA;IAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;EACrD,CAAC;EAED,YAAY,CAAC,KAAY;;IACxB,KAAK,CAAC,eAAe,EAAE,CAAA;IACvB,IAAI,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,0CAAE,MAAM;MAC5B,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAA;EACnC,CAAC;EACD,WAAW,CAAC,KAAgB;;IAC3B,KAAK,CAAC,cAAc,EAAE,CAAA;IACtB,KAAK,CAAC,eAAe,EAAE,CAAA;IACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;IACrB,IAAI,MAAA,KAAK,CAAC,YAAY,0CAAE,KAAK,CAAC,MAAM;MACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;EAC1C,CAAC;EACD,YAAY,CAAC,KAAiB;;IAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;MACjF,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,EAAE,CAAA;KACnB;EACF,CAAC;EACD,eAAe,CAAC,KAAgB;IAC/B,KAAK,CAAC,cAAc,EAAE,CAAA;IACtB,KAAK,CAAC,eAAe,EAAE,CAAA;EACxB,CAAC;EACD,gBAAgB,CAAC,KAAgB;IAChC,KAAK,CAAC,cAAc,EAAE,CAAA;IACtB,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;EACzC,CAAC;EACD,gBAAgB,CAAC,KAAgB;IAChC,KAAK,CAAC,eAAe,EAAE,CAAA;IACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;EACtB,CAAC;EAED,MAAM;;IACL,OAAO,CACN,EAAC,IAAI,IACJ,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAClC,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAChD,UAAU,EAAE,CAAC,CAAY,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EACrD,WAAW,EAAE,CAAC,CAAY,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;MACvD;QACC,YAAM,IAAI,EAAE,OAAO,GAAI,CAChB;MACR,WAAK,KAAK,EAAC,OAAO;QACjB,uBAAiB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,UAAU;UACjE,YAAM,IAAI,EAAE,QAAQ,GAAI,CACP;QAClB,gBAAO,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,mCAAI,IAAI,CAAC,WAAW,CAAQ;QACnD,WAAK,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAI;QACpG,aACC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,EACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EACvD,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAChE,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GACjC,CACG;MACN,eAAQ,CACF,CACP,CAAA;EACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import {\n\tComponent,\n\tComponentWillLoad,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tMethod,\n\tProp,\n\tState,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { Color } from \"../../../model\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-file\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputFile implements ComponentWillLoad, Input, Clearable, Editable {\n\t@Prop({ mutable: true }) changed = false\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop() accept?: string\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks: Looks = \"plain\"\n\t@Prop({ reflect: true }) camera: \"front\" | \"back\"\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ mutable: true }) value?: File\n\t@Prop({ mutable: true, reflect: true }) placeholder: string | undefined\n\t@State() dragging = false\n\t@Event() smoothlyInputLooks: EventEmitter<(looks: Looks, color: Color) => void>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any>>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: HTMLElement) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\tprivate listener: { changed?: (parent: Editable) => Promise<void> }\n\tprivate transfer: DataTransfer = new DataTransfer()\n\tprivate input?: HTMLInputElement\n\tprivate initialValue: SmoothlyInputFile[\"value\"]\n\n\tprivate get files(): FileList {\n\t\tthis.transfer.items.clear()\n\t\tthis.value && this.transfer.items.add(this.value)\n\t\treturn this.transfer.files\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.smoothlyInputLooks.emit((looks, color) => ((this.looks = looks), !this.color && (this.color = color)))\n\t\tthis.smoothlyInput.emit({ [this.name]: this.value })\n\t\tthis.smoothlyInputLoad.emit(() => {})\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t}\n\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.value = undefined\n\t}\n\t@Method()\n\tasync listen(property: \"changed\", listener: (parent: Editable) => Promise<void>): Promise<void> {\n\t\tthis.listener[property] = listener\n\t\tlistener(this)\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.value = this.initialValue\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.initialValue = this.value\n\t\tthis.valueChanged()\n\t}\n\t@Method()\n\tasync binary(): Promise<boolean> {\n\t\treturn true\n\t}\n\n\t@Watch(\"value\")\n\tvalueChanged(): void {\n\t\tthis.changed = this.initialValue !== this.value\n\t\tthis.smoothlyInput.emit({ [this.name]: this.value })\n\t}\n\n\tinputHandler(event: Event): void {\n\t\tevent.stopPropagation()\n\t\tif (this.input?.files?.length)\n\t\t\tthis.value = this.input?.files[0]\n\t}\n\tdropHandler(event: DragEvent): void {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tthis.dragging = false\n\t\tif (event.dataTransfer?.files.length)\n\t\t\tthis.value = event.dataTransfer.files[0]\n\t}\n\tclickHandler(event: MouseEvent): void {\n\t\tif (!this.readonly && !event.composedPath().find(target => target == this.input)) {\n\t\t\tthis.input?.click()\n\t\t}\n\t}\n\tdragOverHandler(event: DragEvent): void {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\tdragEnterHandler(event: DragEvent): void {\n\t\tevent.preventDefault()\n\t\t!this.readonly && (this.dragging = true)\n\t}\n\tdragLeaveHandler(event: DragEvent): void {\n\t\tevent.stopPropagation()\n\t\tthis.dragging = false\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{ dragging: this.dragging }}\n\t\t\t\ttabindex={0}\n\t\t\t\tonClick={(e: MouseEvent) => this.clickHandler(e)}\n\t\t\t\tonDragOver={(e: DragEvent) => this.dragOverHandler(e)}\n\t\t\t\tonDragEnter={(e: DragEvent) => this.dragEnterHandler(e)}>\n\t\t\t\t<label>\n\t\t\t\t\t<slot name={\"label\"} />\n\t\t\t\t</label>\n\t\t\t\t<div class=\"input\">\n\t\t\t\t\t<smoothly-button color={this.color} fill={\"clear\"} size=\"flexible\">\n\t\t\t\t\t\t<slot name={\"button\"} />\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<span>{this.value?.name ?? this.placeholder}</span>\n\t\t\t\t\t<div class={\"mask\"} onDrop={e => this.dropHandler(e)} onDragLeave={e => this.dragLeaveHandler(e)} />\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={element => (this.input = element)}\n\t\t\t\t\t\ttype={\"file\"}\n\t\t\t\t\t\tcapture={this.camera == \"back\" ? \"environment\" : \"user\"}\n\t\t\t\t\t\taccept={this.accept ?? (!this.camera ? undefined : \"image/jpeg\")}\n\t\t\t\t\t\tfiles={this.files}\n\t\t\t\t\t\tonInput={e => this.inputHandler(e)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
|
|
@@ -45,38 +45,34 @@
|
|
|
45
45
|
position: relative;
|
|
46
46
|
width: 100%;
|
|
47
47
|
padding-left: 0.4rem;
|
|
48
|
-
|
|
48
|
+
background-color: rgb(var(--background-color,var(--smoothly-color-shade)));
|
|
49
49
|
}
|
|
50
50
|
.mask {
|
|
51
51
|
position: absolute;
|
|
52
|
-
|
|
53
|
-
bottom: 0;
|
|
54
|
-
left: 0;
|
|
55
|
-
right: 0;
|
|
52
|
+
inset: 0;
|
|
56
53
|
background-color: rgb(var(--text-color ,var(--smoothly-color-contrast)), 0.3);
|
|
57
54
|
}
|
|
58
55
|
|
|
59
56
|
:host:not(.dragging) .mask {
|
|
60
57
|
display: none;
|
|
61
58
|
}
|
|
62
|
-
input {
|
|
59
|
+
input {
|
|
63
60
|
overflow: hidden;
|
|
64
61
|
height: 0;
|
|
65
62
|
width: 0;
|
|
66
|
-
padding:0
|
|
63
|
+
padding: 0;
|
|
67
64
|
}
|
|
68
|
-
.input {
|
|
65
|
+
div.input {
|
|
69
66
|
display: flex;
|
|
70
|
-
align-items:center;
|
|
71
|
-
padding-left: 0.4rem;
|
|
67
|
+
align-items: center;
|
|
72
68
|
padding-bottom: 0.2rem;
|
|
69
|
+
column-gap: 1ch;
|
|
73
70
|
}
|
|
74
|
-
smoothly-button {
|
|
71
|
+
smoothly-button {
|
|
75
72
|
margin: 0;
|
|
76
73
|
border: none;
|
|
77
74
|
}
|
|
78
|
-
label {
|
|
79
|
-
padding-left: 0.4rem;
|
|
75
|
+
label {
|
|
80
76
|
padding-top: 0.4rem;
|
|
81
77
|
display: flex;
|
|
82
78
|
width: 100%;
|
|
@@ -86,7 +82,7 @@ label {
|
|
|
86
82
|
cursor: inherit;
|
|
87
83
|
|
|
88
84
|
}
|
|
89
|
-
label::slotted(*) {
|
|
85
|
+
label::slotted(*) {
|
|
90
86
|
display: block;
|
|
91
87
|
width: 100%;
|
|
92
88
|
font-size: 0.65em;
|
|
@@ -103,5 +99,4 @@ smoothly-icon {
|
|
|
103
99
|
}
|
|
104
100
|
span {
|
|
105
101
|
cursor: pointer;
|
|
106
|
-
padding-left: 0.5rem;
|
|
107
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAiE,MAAM,cAAc,CAAA;AACxG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA","sourcesContent":["export { Autocomplete } from \"./Autocomplete\"\nexport { Color } from \"./Color\"\nexport { Fill } from \"./Fill\"\nexport { GoogleFont } from \"./GoogleFont\"\nexport { Icon } from \"./Icon\"\nexport { Message } from \"./Message\"\nexport { Notice } from \"./Notice\"\nexport { Option } from \"./Option\"\nexport { Trigger } from \"./Trigger\"\nexport { Listenable, HasListenable, WithListenable, CanBeListenable, ListenerBatch } from \"./Listenable\"\nexport { StateBase } from \"./StateBase\"\nexport { redirect } from \"./redirect\"\nexport { Data } from \"./Data\"\nexport { Submit } from \"./Submit\"\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smoothly.js","sourceRoot":"","sources":["../src/smoothly.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,EAEL,UAAU,EACV,OAAO,EACP,MAAM,EACN,OAAO,EAEP,UAAU,
|
|
1
|
+
{"version":3,"file":"smoothly.js","sourceRoot":"","sources":["../src/smoothly.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,EAEL,UAAU,EACV,OAAO,EACP,MAAM,EACN,OAAO,EAEP,UAAU,EAKV,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,MAAM,GACN,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA","sourcesContent":["export { Components, JSX } from \"./components\"\nexport {\n\tAutocomplete,\n\tColor,\n\tFill,\n\tGoogleFont,\n\tMessage,\n\tNotice,\n\tTrigger,\n\tOption,\n\tListenable,\n\tHasListenable,\n\tWithListenable,\n\tCanBeListenable,\n\tListenerBatch,\n\tIcon,\n\tStateBase,\n\tData,\n\tredirect,\n\tSubmit,\n} from \"./model\"\nexport { Cosmetic } from \"./utilities\"\n"]}
|