@operato/input 7.1.2 → 7.1.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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@operato/input",
3
3
  "description": "Webcomponents for input following open-wc recommendations",
4
4
  "author": "heartyoh@hatiolab.com",
5
- "version": "7.1.2",
5
+ "version": "7.1.4",
6
6
  "main": "dist/src/index.js",
7
7
  "module": "dist/src/index.js",
8
8
  "license": "MIT",
@@ -258,5 +258,5 @@
258
258
  "prettier --write"
259
259
  ]
260
260
  },
261
- "gitHead": "9e40d6c5fce98a720ef628b576eec76a2283c59e"
261
+ "gitHead": "1abfd7c0d36d4083e38f88bd83cffa92198bb520"
262
262
  }
@@ -1,7 +1,7 @@
1
1
  import '@material/web/icon/icon.js'
2
2
 
3
3
  import { css, html, nothing } from 'lit'
4
- import { customElement, property } from 'lit/decorators.js'
4
+ import { customElement, property, query, state } from 'lit/decorators.js'
5
5
 
6
6
  import { OxFormField } from './ox-form-field.js'
7
7
 
@@ -10,83 +10,112 @@ export class OxInputSignature extends OxFormField {
10
10
  static styles = [
11
11
  css`
12
12
  :host {
13
- position: relative;
14
- box-sizing: border-box;
15
-
16
13
  display: flex;
17
14
  flex-direction: column;
18
- place-content: center;
19
- border-radius: var(--border-radius);
20
- padding: var(--padding-default, 9px);
21
- min-height: 100px;
22
- text-transform: capitalize;
15
+ min-height: var(--signature-min-height, 80px);
16
+ min-width: var(--signature-min-width, 120px);
23
17
 
24
- border: var(--file-uploader-border);
25
- background-color: var(--md-sys-color-background);
26
- font: var(--file-uploader-font) !important;
27
- color: var(--file-uploader-color);
18
+ background-color: var(--signature-background-color, white);
28
19
 
29
20
  overflow: hidden;
30
21
  }
31
22
 
32
- canvas {
23
+ .signature-preview {
24
+ flex: 1;
25
+ align-self: stretch;
26
+
27
+ border: 1px solid var(--md-sys-color-outline);
28
+ background-size: contain;
29
+ background-repeat: no-repeat;
30
+ background-position: center;
31
+ }
32
+
33
+ dialog canvas {
33
34
  width: 100%;
34
- border: 1px solid #000;
35
+ height: 100%;
36
+ border: 1px solid var(--md-sys-color-outline);
35
37
  }
36
38
 
37
39
  .controls {
38
40
  margin-top: 10px;
41
+ display: flex;
42
+ flex-direction: row;
43
+ gap: var(--spacing-medium);
44
+ }
45
+
46
+ .filler {
47
+ flex: 1;
39
48
  }
40
49
  `
41
50
  ]
42
51
 
43
- @property({ type: Boolean }) isDrawing = false
44
52
  @property({ type: String }) value: string | null = null
45
53
 
46
- private ctx!: CanvasRenderingContext2D
54
+ @query('.signature-preview')
55
+ private previewDiv!: HTMLDivElement
56
+ @query('dialog')
57
+ private dialog!: HTMLDialogElement
58
+ @query('canvas')
47
59
  private canvas!: HTMLCanvasElement
48
60
 
61
+ private ctx!: CanvasRenderingContext2D
62
+ private isDrawing = false
63
+
49
64
  render() {
50
65
  return html`
51
- <canvas
52
- width="400"
53
- height="200"
54
- @mousedown=${this.startDrawing}
55
- @mouseup=${this.stopDrawing}
56
- @mousemove=${this.draw}
57
- @mouseleave=${this.stopDrawing}
58
- @touchstart=${this.startDrawing}
59
- @touchend=${this.stopDrawing}
60
- @touchmove=${this.draw}
61
- ></canvas>
62
-
63
- ${!this.disabled
64
- ? html` <div class="controls">
65
- <button @click="${this.clearCanvas}">Clear</button>
66
- <button @click="${this.saveSignature}">Save</button>
67
- </div>`
68
- : nothing}
66
+ <div class="signature-preview" @click=${this.openDialog}></div>
67
+
68
+ <dialog>
69
+ <canvas
70
+ width="800"
71
+ height="400"
72
+ @mousedown=${this.startDrawing}
73
+ @mouseup=${this.stopDrawing}
74
+ @mousemove=${this.draw}
75
+ @mouseleave=${this.stopDrawing}
76
+ @touchstart=${this.startDrawing}
77
+ @touchend=${this.stopDrawing}
78
+ @touchmove=${this.draw}
79
+ ></canvas>
80
+ <div class="controls">
81
+ <button @click="${this.clearCanvas}">Clear</button>
82
+ <div class="filler"></div>
83
+ <button @click="${this.saveSignature}">Save</button>
84
+ <button @click="${this.closeDialog}">Close</button>
85
+ </div>
86
+ </dialog>
69
87
  `
70
88
  }
71
89
 
72
90
  firstUpdated() {
73
- this.canvas = this.shadowRoot!.querySelector('canvas')!
74
91
  this.ctx = this.canvas.getContext('2d')!
75
92
  this.ctx.strokeStyle = '#000'
76
93
  this.ctx.lineWidth = 2
77
94
 
78
- // 처음 로딩 시 서명 데이터를 캔버스에 표시
95
+ // 처음 로딩 시 서명 데이터를 미리보기 div에 표시
79
96
  if (this.value) {
80
97
  this.loadSignature(this.value)
81
98
  }
82
99
  }
83
100
 
84
- updated(changedProperties: Map<string | number | symbol, unknown>) {
85
- if (changedProperties.has('value') && this.value) {
86
- this.loadSignature(this.value)
101
+ openDialog() {
102
+ if (this.disabled) return
103
+ this.dialog.showModal()
104
+
105
+ // 다이아로그가 열릴 때 현재 value를 캔버스에 그리기
106
+ if (this.value) {
107
+ const img = new Image()
108
+ img.onload = () => {
109
+ this.ctx.drawImage(img, 0, 0, this.canvas.width, this.canvas.height)
110
+ }
111
+ img.src = this.value
87
112
  }
88
113
  }
89
114
 
115
+ closeDialog() {
116
+ this.dialog.close()
117
+ }
118
+
90
119
  startDrawing(event: MouseEvent | TouchEvent) {
91
120
  if (this.disabled) {
92
121
  return
@@ -116,15 +145,12 @@ export class OxInputSignature extends OxFormField {
116
145
  saveSignature() {
117
146
  this.value = this.canvas.toDataURL()
118
147
  this._notifyChange()
148
+ this.previewDiv.style.backgroundImage = `url(${this.value})`
149
+ this.closeDialog()
119
150
  }
120
151
 
121
152
  loadSignature(dataUrl: string) {
122
- const image = new Image()
123
- image.onload = () => {
124
- this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height) // 이전 내용을 지움
125
- this.ctx.drawImage(image, 0, 0) // 이미지를 캔버스에 그림
126
- }
127
- image.src = dataUrl
153
+ this.previewDiv.style.backgroundImage = `url(${dataUrl})`
128
154
  }
129
155
 
130
156
  getEventPosition(event: MouseEvent | TouchEvent) {
@@ -0,0 +1,75 @@
1
+ import '../src/ox-input-signature.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+ import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'
5
+
6
+ export default {
7
+ title: 'ox-input-signature',
8
+ component: 'ox-input-signature',
9
+ argTypes: {
10
+ disabled: { control: 'boolean' },
11
+ value: { control: 'text' }
12
+ }
13
+ }
14
+
15
+ interface Story<T> {
16
+ (args: T): TemplateResult
17
+ args?: Partial<T>
18
+ argTypes?: Record<string, unknown>
19
+ }
20
+
21
+ interface ArgTypes {
22
+ value?: string
23
+ disabled?: boolean
24
+ }
25
+
26
+ const Template: Story<ArgTypes> = ({ value, disabled }: ArgTypes) => html`
27
+ <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
28
+
29
+ <link href="/themes/light.css" rel="stylesheet" />
30
+ <link href="/themes/dark.css" rel="stylesheet" />
31
+ <link href="/themes/spacing.css" rel="stylesheet" />
32
+
33
+ <link
34
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
35
+ rel="stylesheet"
36
+ />
37
+ <link
38
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
39
+ rel="stylesheet"
40
+ />
41
+ <link
42
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
43
+ rel="stylesheet"
44
+ />
45
+
46
+ <style>
47
+ ${MDTypeScaleStyles.cssText}
48
+ </style>
49
+
50
+ <style>
51
+ .container {
52
+ height: 600px;
53
+ text-align: center;
54
+ padding: 20px;
55
+
56
+ background-color: var(--md-sys-color-primary-container);
57
+ color: var(--md-sys-color-on-primary-container);
58
+ }
59
+ </style>
60
+
61
+ <div class="container md-typescale-body-large-prominent">
62
+ <ox-input-signature
63
+ .value=${value || ''}
64
+ ?disabled=${disabled}
65
+ @change=${(e: Event) => console.log(((e as CustomEvent).target as any)!.value)}
66
+ >
67
+ </ox-input-signature>
68
+ </div>
69
+ `
70
+
71
+ export const Regular = Template.bind({})
72
+ Regular.args = {
73
+ value:
74
+ 'data:image/png;base64,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'
75
+ }
@@ -1,56 +0,0 @@
1
- import '../src/ox-input-signature.js';
2
- import { html } from 'lit';
3
- import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles';
4
- export default {
5
- title: 'ox-input-signature',
6
- component: 'ox-input-signature',
7
- argTypes: {
8
- disabled: { control: 'boolean' }
9
- }
10
- };
11
- const Template = ({ label = 'signature', name = 'signature', disabled }) => html `
12
- <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
13
-
14
- <link href="/themes/light.css" rel="stylesheet" />
15
- <link href="/themes/dark.css" rel="stylesheet" />
16
- <link href="/themes/spacing.css" rel="stylesheet" />
17
-
18
- <link
19
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
20
- rel="stylesheet"
21
- />
22
- <link
23
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
24
- rel="stylesheet"
25
- />
26
- <link
27
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
28
- rel="stylesheet"
29
- />
30
-
31
- <style>
32
- ${MDTypeScaleStyles.cssText}
33
- </style>
34
-
35
- <style>
36
- .container {
37
- height: 500px;
38
- text-align: center;
39
- padding: 20px;
40
-
41
- background-color: var(--md-sys-color-primary-container);
42
- color: var(--md-sys-color-on-primary-container);
43
- }
44
- </style>
45
-
46
- <div class="container md-typescale-body-large-prominent">
47
- <ox-input-signature
48
- ?disabled=${disabled}
49
- @change=${(e) => console.log(e.target.value)}
50
- >
51
- </ox-input-signature>
52
- </div>
53
- `;
54
- export const Regular = Template.bind({});
55
- Regular.args = {};
56
- //# sourceMappingURL=ox-input-%08signature.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ox-input-\bsignature.stories.js","sourceRoot":"","sources":["../../stories/ox-input-\bsignature.stories.ts"],"names":[],"mappings":"AAAA,OAAO,8BAA8B,CAAA;AAErC,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAA;AAC1C,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,8CAA8C,CAAA;AAE1F,eAAe;IACb,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE;QACR,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;KACjC;CACF,CAAA;AAcD,MAAM,QAAQ,GAAoB,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,IAAI,GAAG,WAAW,EAAE,QAAQ,EAAY,EAAE,EAAE,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;MAqBrG,iBAAiB,CAAC,OAAO;;;;;;;;;;;;;;;;kBAgBb,QAAQ;gBACV,CAAC,CAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAG,CAAiB,CAAC,MAAe,CAAC,KAAK,CAAC;;;;CAInF,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACxC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAA","sourcesContent":["import '../src/ox-input-signature.js'\n\nimport { html, TemplateResult } from 'lit'\nimport { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'\n\nexport default {\n title: 'ox-input-signature',\n component: 'ox-input-signature',\n argTypes: {\n disabled: { control: 'boolean' }\n }\n}\n\ninterface Story<T> {\n (args: T): TemplateResult\n args?: Partial<T>\n argTypes?: Record<string, unknown>\n}\n\ninterface ArgTypes {\n label?: string\n name?: string\n disabled?: boolean\n}\n\nconst Template: Story<ArgTypes> = ({ label = 'signature', name = 'signature', disabled }: ArgTypes) => html`\n <link href=\"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap\" rel=\"stylesheet\" />\n\n <link href=\"/themes/light.css\" rel=\"stylesheet\" />\n <link href=\"/themes/dark.css\" rel=\"stylesheet\" />\n <link href=\"/themes/spacing.css\" rel=\"stylesheet\" />\n\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n\n <style>\n ${MDTypeScaleStyles.cssText}\n </style>\n\n <style>\n .container {\n height: 500px;\n text-align: center;\n padding: 20px;\n\n background-color: var(--md-sys-color-primary-container);\n color: var(--md-sys-color-on-primary-container);\n }\n </style>\n\n <div class=\"container md-typescale-body-large-prominent\">\n <ox-input-signature\n ?disabled=${disabled}\n @change=${(e: Event) => console.log(((e as CustomEvent).target as any)!.value)}\n >\n </ox-input-signature>\n </div>\n`\n\nexport const Regular = Template.bind({})\nRegular.args = {}\n"]}
@@ -1,71 +0,0 @@
1
- import '../src/ox-input-signature.js'
2
-
3
- import { html, TemplateResult } from 'lit'
4
- import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'
5
-
6
- export default {
7
- title: 'ox-input-signature',
8
- component: 'ox-input-signature',
9
- argTypes: {
10
- disabled: { control: 'boolean' }
11
- }
12
- }
13
-
14
- interface Story<T> {
15
- (args: T): TemplateResult
16
- args?: Partial<T>
17
- argTypes?: Record<string, unknown>
18
- }
19
-
20
- interface ArgTypes {
21
- label?: string
22
- name?: string
23
- disabled?: boolean
24
- }
25
-
26
- const Template: Story<ArgTypes> = ({ label = 'signature', name = 'signature', disabled }: ArgTypes) => html`
27
- <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
28
-
29
- <link href="/themes/light.css" rel="stylesheet" />
30
- <link href="/themes/dark.css" rel="stylesheet" />
31
- <link href="/themes/spacing.css" rel="stylesheet" />
32
-
33
- <link
34
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
35
- rel="stylesheet"
36
- />
37
- <link
38
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
39
- rel="stylesheet"
40
- />
41
- <link
42
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
43
- rel="stylesheet"
44
- />
45
-
46
- <style>
47
- ${MDTypeScaleStyles.cssText}
48
- </style>
49
-
50
- <style>
51
- .container {
52
- height: 500px;
53
- text-align: center;
54
- padding: 20px;
55
-
56
- background-color: var(--md-sys-color-primary-container);
57
- color: var(--md-sys-color-on-primary-container);
58
- }
59
- </style>
60
-
61
- <div class="container md-typescale-body-large-prominent">
62
- <ox-input-signature
63
- ?disabled=${disabled}
64
- @change=${(e: Event) => console.log(((e as CustomEvent).target as any)!.value)}
65
- >
66
- </ox-input-signature>
67
- </div>
68
- `
69
-
70
- export const Regular = Template.bind({})
71
- Regular.args = {}