@things-factory/barcode-ui 4.0.4 → 4.0.5
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.
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { LitElement, html, css } from 'lit-element'
|
|
2
1
|
import './barcode-tag'
|
|
3
2
|
|
|
3
|
+
import { css, html, LitElement } from 'lit-element'
|
|
4
|
+
|
|
4
5
|
export class BarcodeInput extends LitElement {
|
|
5
6
|
static get properties() {
|
|
6
7
|
return {
|
|
@@ -41,7 +42,7 @@ export class BarcodeInput extends LitElement {
|
|
|
41
42
|
|
|
42
43
|
render() {
|
|
43
44
|
return html`
|
|
44
|
-
<input type="text" @change=${this.onchange.bind(this)} />
|
|
45
|
+
<input type="text" @change=${this.onchange.bind(this)} .value=${this.value} />
|
|
45
46
|
<barcode-tag
|
|
46
47
|
.bcid=${this.bcid}
|
|
47
48
|
.value=${this.value}
|
|
@@ -54,6 +55,7 @@ export class BarcodeInput extends LitElement {
|
|
|
54
55
|
|
|
55
56
|
onchange(e) {
|
|
56
57
|
this.value = e.target.value
|
|
58
|
+
this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { LitElement, html, css } from 'lit-element'
|
|
2
1
|
import bwipjs from '!bwip-js'
|
|
2
|
+
import { css, html, LitElement } from 'lit-element'
|
|
3
3
|
|
|
4
4
|
export class BarcodeTag extends LitElement {
|
|
5
5
|
static get properties() {
|
|
6
6
|
return {
|
|
7
7
|
bcid: String,
|
|
8
8
|
bcWidth: Number,
|
|
9
|
-
|
|
9
|
+
bcHeight: Number,
|
|
10
10
|
bcScale: Number,
|
|
11
11
|
value: String,
|
|
12
12
|
validity: Boolean,
|
package/client/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/barcode-ui",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.5",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@things-factory/layout-base": "^4.0.
|
|
27
|
+
"@things-factory/layout-base": "^4.0.5",
|
|
28
28
|
"bwip-js": "^2.0.11"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "b7b2976818dceab74a34903499d408eed5d45b04"
|
|
31
31
|
}
|
package/things-factory.config.js
CHANGED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { LitElement, html, css } from 'lit-element'
|
|
2
|
-
import barcodeIcon from '../../assets/images/barcode.png'
|
|
3
|
-
|
|
4
|
-
export class BarcodescanInput extends LitElement {
|
|
5
|
-
static get properties() {
|
|
6
|
-
return {
|
|
7
|
-
name: {
|
|
8
|
-
attribute: true
|
|
9
|
-
},
|
|
10
|
-
value: String
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
static get styles() {
|
|
15
|
-
return [
|
|
16
|
-
css`
|
|
17
|
-
:host {
|
|
18
|
-
display: flex;
|
|
19
|
-
align-items: center;
|
|
20
|
-
border: none;
|
|
21
|
-
overflow: hidden;
|
|
22
|
-
background-color: #fff;
|
|
23
|
-
|
|
24
|
-
padding: var(--custom-input-barcode-field-padding) !important;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
* {
|
|
28
|
-
align-self: stretch;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
*:focus {
|
|
32
|
-
outline: none;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
input {
|
|
36
|
-
flex: 1 !important;
|
|
37
|
-
border: none;
|
|
38
|
-
font: var(--custom-input-barcode-field-font);
|
|
39
|
-
width: 10px;
|
|
40
|
-
flex-grow: 1;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
#scan-button {
|
|
44
|
-
width: 30px;
|
|
45
|
-
height: 24px;
|
|
46
|
-
border: none;
|
|
47
|
-
background-repeat: no-repeat;
|
|
48
|
-
background-position: center;
|
|
49
|
-
background-image: var(--barcodescan-input-button-icon);
|
|
50
|
-
}
|
|
51
|
-
`
|
|
52
|
-
]
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
connectedCallback() {
|
|
56
|
-
super.connectedCallback()
|
|
57
|
-
|
|
58
|
-
this._onBarcodeRespond = e => {
|
|
59
|
-
var { value, responder } = e.detail
|
|
60
|
-
|
|
61
|
-
if (responder != this.name) return
|
|
62
|
-
this.value = value
|
|
63
|
-
this.requestUpdate()
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
this._onFocusIn = e => {
|
|
67
|
-
window.addEventListener('barcode-respond', this._onBarcodeRespond)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
this._onFocusOut = e => {
|
|
71
|
-
window.removeEventListener('barcode-respond', this._onBarcodeRespond)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
this.renderRoot.addEventListener('focusin', this._onFocusIn)
|
|
75
|
-
this.renderRoot.addEventListener('focusout', this._onFocusOut)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
disconnectedCallback() {
|
|
79
|
-
super.disconnectedCallback()
|
|
80
|
-
|
|
81
|
-
if (this._onBarcodeRespond) {
|
|
82
|
-
window.removeEventListener('barcode-respond', this._onBarcodeRespond)
|
|
83
|
-
this._onBarcodeRespond = null
|
|
84
|
-
}
|
|
85
|
-
if (this._onFocusIn) {
|
|
86
|
-
this.renderRoot.removeEventListener('focusin', this._onFocusIn)
|
|
87
|
-
this._onFocusIn = null
|
|
88
|
-
}
|
|
89
|
-
if (this._onFocusOut) {
|
|
90
|
-
this.renderRoot.removeEventListener('focusout', this._onFocusOut)
|
|
91
|
-
this._onFocusOut = null
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
render() {
|
|
96
|
-
this.style.setProperty('--barcodescan-input-button-icon', `url(${barcodeIcon})`)
|
|
97
|
-
|
|
98
|
-
return html`
|
|
99
|
-
<input type="text" .value=${this.value || ''} />
|
|
100
|
-
<button
|
|
101
|
-
id="scan-button"
|
|
102
|
-
@click=${e => {
|
|
103
|
-
this.requestBarcodeScan(e)
|
|
104
|
-
}}
|
|
105
|
-
></button>
|
|
106
|
-
`
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
requestBarcodeScan(e) {
|
|
110
|
-
if (!cordova_iab) throw 'no-app'
|
|
111
|
-
|
|
112
|
-
cordova_iab.postMessage(
|
|
113
|
-
JSON.stringify({
|
|
114
|
-
type: 'scan-barcode',
|
|
115
|
-
detail: {
|
|
116
|
-
requester: this.name,
|
|
117
|
-
barcodeTypes: []
|
|
118
|
-
}
|
|
119
|
-
})
|
|
120
|
-
)
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
customElements.define('barcodescan-input', BarcodescanInput)
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { html, css } from 'lit-element'
|
|
2
|
-
import gql from 'graphql-tag'
|
|
3
|
-
|
|
4
|
-
import { connect } from 'pwa-helpers/connect-mixin.js'
|
|
5
|
-
import { store, PageView, client } from '@things-factory/shell'
|
|
6
|
-
import '../components/barcodescan-input'
|
|
7
|
-
|
|
8
|
-
class BarcodeUiTestPage extends connect(store)(PageView) {
|
|
9
|
-
static get properties() {
|
|
10
|
-
return {}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
static get styles() {
|
|
14
|
-
return [
|
|
15
|
-
css`
|
|
16
|
-
:host {
|
|
17
|
-
display: flex;
|
|
18
|
-
flex-direction: column;
|
|
19
|
-
|
|
20
|
-
width: 100%; /* 전체화면보기를 위해서 필요함. */
|
|
21
|
-
height: 100%;
|
|
22
|
-
|
|
23
|
-
overflow: hidden;
|
|
24
|
-
}
|
|
25
|
-
`
|
|
26
|
-
]
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
render() {
|
|
30
|
-
return html`
|
|
31
|
-
<barcodescan-input name="barcodescan-1"></barcodescan-input>
|
|
32
|
-
<barcodescan-input name="barcodescan-2"></barcodescan-input>
|
|
33
|
-
<barcodescan-input name="barcodescan-3"></barcodescan-input>
|
|
34
|
-
`
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
async refresh() {
|
|
38
|
-
if (!this._boardId) {
|
|
39
|
-
return
|
|
40
|
-
}
|
|
41
|
-
var response = await client.query({
|
|
42
|
-
query: gql`
|
|
43
|
-
query FetchBoardById($id: String!) {
|
|
44
|
-
board(id: $id) {
|
|
45
|
-
id
|
|
46
|
-
name
|
|
47
|
-
model
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
`,
|
|
51
|
-
variables: { id: this._boardId }
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
var board = response.data.board
|
|
55
|
-
|
|
56
|
-
this._board = {
|
|
57
|
-
...board,
|
|
58
|
-
model: JSON.parse(board.model)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
this.updateContext()
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
customElements.define('barcode-ui-test-page', BarcodeUiTestPage)
|