@operato/input 1.11.13 → 1.12.3

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.
Files changed (206) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/src/ox-checkbox.d.ts +0 -1
  3. package/dist/src/ox-checkbox.js +0 -4
  4. package/dist/src/ox-checkbox.js.map +1 -1
  5. package/dist/src/ox-form-field.d.ts +1 -0
  6. package/dist/src/ox-form-field.js +3 -0
  7. package/dist/src/ox-form-field.js.map +1 -1
  8. package/dist/src/ox-input-3axis.js +3 -3
  9. package/dist/src/ox-input-3axis.js.map +1 -1
  10. package/dist/src/ox-input-3dish.js +12 -12
  11. package/dist/src/ox-input-3dish.js.map +1 -1
  12. package/dist/src/ox-input-angle.js +1 -0
  13. package/dist/src/ox-input-angle.js.map +1 -1
  14. package/dist/src/ox-input-barcode.js +2 -0
  15. package/dist/src/ox-input-barcode.js.map +1 -1
  16. package/dist/src/ox-input-color-gradient.js +9 -3
  17. package/dist/src/ox-input-color-gradient.js.map +1 -1
  18. package/dist/src/ox-input-color-stops.js +20 -0
  19. package/dist/src/ox-input-color-stops.js.map +1 -1
  20. package/dist/src/ox-input-color.js +4 -0
  21. package/dist/src/ox-input-color.js.map +1 -1
  22. package/dist/src/ox-input-container.d.ts +0 -1
  23. package/dist/src/ox-input-container.js +1 -7
  24. package/dist/src/ox-input-container.js.map +1 -1
  25. package/dist/src/ox-input-data.js +5 -1
  26. package/dist/src/ox-input-data.js.map +1 -1
  27. package/dist/src/ox-input-duration.js +23 -4
  28. package/dist/src/ox-input-duration.js.map +1 -1
  29. package/dist/src/ox-input-file.js +7 -0
  30. package/dist/src/ox-input-file.js.map +1 -1
  31. package/dist/src/ox-input-hashtags.js +21 -18
  32. package/dist/src/ox-input-hashtags.js.map +1 -1
  33. package/dist/src/ox-input-image.js +1 -0
  34. package/dist/src/ox-input-image.js.map +1 -1
  35. package/dist/src/ox-input-key-values.js +41 -16
  36. package/dist/src/ox-input-key-values.js.map +1 -1
  37. package/dist/src/ox-input-mass-fraction.js +56 -46
  38. package/dist/src/ox-input-mass-fraction.js.map +1 -1
  39. package/dist/src/ox-input-multiple-colors.js +7 -3
  40. package/dist/src/ox-input-multiple-colors.js.map +1 -1
  41. package/dist/src/ox-input-options.js +20 -11
  42. package/dist/src/ox-input-options.js.map +1 -1
  43. package/dist/src/ox-input-partition-keys.js +41 -16
  44. package/dist/src/ox-input-partition-keys.js.map +1 -1
  45. package/dist/src/ox-input-privilege.js +6 -3
  46. package/dist/src/ox-input-privilege.js.map +1 -1
  47. package/dist/src/ox-input-quantifier.js +2 -2
  48. package/dist/src/ox-input-quantifier.js.map +1 -1
  49. package/dist/src/ox-input-range.js +2 -0
  50. package/dist/src/ox-input-range.js.map +1 -1
  51. package/dist/src/ox-input-scene-component-id.js +1 -0
  52. package/dist/src/ox-input-scene-component-id.js.map +1 -1
  53. package/dist/src/ox-input-search.js +2 -1
  54. package/dist/src/ox-input-search.js.map +1 -1
  55. package/dist/src/ox-input-select-buttons.js +4 -1
  56. package/dist/src/ox-input-select-buttons.js.map +1 -1
  57. package/dist/src/ox-input-stack.js +9 -3
  58. package/dist/src/ox-input-stack.js.map +1 -1
  59. package/dist/src/ox-input-textarea.js +1 -0
  60. package/dist/src/ox-input-textarea.js.map +1 -1
  61. package/dist/src/ox-input-unit-number.js +4 -0
  62. package/dist/src/ox-input-unit-number.js.map +1 -1
  63. package/dist/src/ox-input-value-map.js +30 -14
  64. package/dist/src/ox-input-value-map.js.map +1 -1
  65. package/dist/src/ox-input-value-ranges.js +37 -19
  66. package/dist/src/ox-input-value-ranges.js.map +1 -1
  67. package/dist/src/ox-input-work-shift.js +35 -27
  68. package/dist/src/ox-input-work-shift.js.map +1 -1
  69. package/dist/src/ox-select.js +3 -0
  70. package/dist/src/ox-select.js.map +1 -1
  71. package/dist/stories/ox-checkbox.stories.d.ts +4 -0
  72. package/dist/stories/ox-checkbox.stories.js +4 -2
  73. package/dist/stories/ox-checkbox.stories.js.map +1 -1
  74. package/dist/stories/ox-input-3axis.stories.d.ts +4 -0
  75. package/dist/stories/ox-input-3axis.stories.js +4 -2
  76. package/dist/stories/ox-input-3axis.stories.js.map +1 -1
  77. package/dist/stories/ox-input-3dish.stories.d.ts +4 -0
  78. package/dist/stories/ox-input-3dish.stories.js +4 -2
  79. package/dist/stories/ox-input-3dish.stories.js.map +1 -1
  80. package/dist/stories/ox-input-angle.stories.d.ts +4 -0
  81. package/dist/stories/ox-input-angle.stories.js +4 -2
  82. package/dist/stories/ox-input-angle.stories.js.map +1 -1
  83. package/dist/stories/ox-input-barcode.stories.d.ts +4 -0
  84. package/dist/stories/ox-input-barcode.stories.js +4 -2
  85. package/dist/stories/ox-input-barcode.stories.js.map +1 -1
  86. package/dist/stories/ox-input-code.stories.d.ts +4 -0
  87. package/dist/stories/ox-input-code.stories.js +4 -2
  88. package/dist/stories/ox-input-code.stories.js.map +1 -1
  89. package/dist/stories/ox-input-crontab.stories.d.ts +4 -0
  90. package/dist/stories/ox-input-crontab.stories.js +4 -2
  91. package/dist/stories/ox-input-crontab.stories.js.map +1 -1
  92. package/dist/stories/ox-input-duration.stories.d.ts +4 -0
  93. package/dist/stories/ox-input-duration.stories.js +4 -2
  94. package/dist/stories/ox-input-duration.stories.js.map +1 -1
  95. package/dist/stories/ox-input-file.stories.d.ts +4 -0
  96. package/dist/stories/ox-input-file.stories.js +4 -2
  97. package/dist/stories/ox-input-file.stories.js.map +1 -1
  98. package/dist/stories/ox-input-hashtags.stories.d.ts +4 -0
  99. package/dist/stories/ox-input-hashtags.stories.js +4 -2
  100. package/dist/stories/ox-input-hashtags.stories.js.map +1 -1
  101. package/dist/stories/ox-input-key-values.stories.d.ts +4 -0
  102. package/dist/stories/ox-input-key-values.stories.js +4 -2
  103. package/dist/stories/ox-input-key-values.stories.js.map +1 -1
  104. package/dist/stories/ox-input-mass-fraction.stories.d.ts +4 -0
  105. package/dist/stories/ox-input-mass-fraction.stories.js +5 -2
  106. package/dist/stories/ox-input-mass-fraction.stories.js.map +1 -1
  107. package/dist/stories/ox-input-multiple-colors.stories.d.ts +4 -0
  108. package/dist/stories/ox-input-multiple-colors.stories.js +4 -2
  109. package/dist/stories/ox-input-multiple-colors.stories.js.map +1 -1
  110. package/dist/stories/ox-input-options.stories.d.ts +4 -0
  111. package/dist/stories/ox-input-options.stories.js +4 -2
  112. package/dist/stories/ox-input-options.stories.js.map +1 -1
  113. package/dist/stories/ox-input-partition-keys.stories.d.ts +4 -0
  114. package/dist/stories/ox-input-partition-keys.stories.js +4 -2
  115. package/dist/stories/ox-input-partition-keys.stories.js.map +1 -1
  116. package/dist/stories/ox-input-privilege.stories.d.ts +4 -0
  117. package/dist/stories/ox-input-privilege.stories.js +4 -2
  118. package/dist/stories/ox-input-privilege.stories.js.map +1 -1
  119. package/dist/stories/ox-input-quantifier.stories.d.ts +4 -0
  120. package/dist/stories/ox-input-quantifier.stories.js +4 -2
  121. package/dist/stories/ox-input-quantifier.stories.js.map +1 -1
  122. package/dist/stories/ox-input-range.stories.d.ts +4 -0
  123. package/dist/stories/ox-input-range.stories.js +5 -3
  124. package/dist/stories/ox-input-range.stories.js.map +1 -1
  125. package/dist/stories/ox-input-search.stories.d.ts +4 -0
  126. package/dist/stories/ox-input-search.stories.js +4 -2
  127. package/dist/stories/ox-input-search.stories.js.map +1 -1
  128. package/dist/stories/ox-input-select-buttons.stories.d.ts +4 -0
  129. package/dist/stories/ox-input-select-buttons.stories.js +4 -2
  130. package/dist/stories/ox-input-select-buttons.stories.js.map +1 -1
  131. package/dist/stories/ox-input-unit.stories.d.ts +4 -0
  132. package/dist/stories/ox-input-unit.stories.js +4 -2
  133. package/dist/stories/ox-input-unit.stories.js.map +1 -1
  134. package/dist/stories/ox-input-value-map.stories.d.ts +4 -0
  135. package/dist/stories/ox-input-value-map.stories.js +4 -2
  136. package/dist/stories/ox-input-value-map.stories.js.map +1 -1
  137. package/dist/stories/ox-input-value-ranges.stories.d.ts +4 -0
  138. package/dist/stories/ox-input-value-ranges.stories.js +4 -2
  139. package/dist/stories/ox-input-value-ranges.stories.js.map +1 -1
  140. package/dist/stories/ox-input-work-shift.stories.d.ts +4 -0
  141. package/dist/stories/ox-input-work-shift.stories.js +4 -2
  142. package/dist/stories/ox-input-work-shift.stories.js.map +1 -1
  143. package/dist/stories/ox-select.stories.d.ts +4 -0
  144. package/dist/stories/ox-select.stories.js +4 -2
  145. package/dist/stories/ox-select.stories.js.map +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +4 -4
  148. package/src/ox-checkbox.ts +0 -1
  149. package/src/ox-form-field.ts +1 -0
  150. package/src/ox-input-3axis.ts +3 -3
  151. package/src/ox-input-3dish.ts +12 -12
  152. package/src/ox-input-angle.ts +1 -0
  153. package/src/ox-input-barcode.ts +2 -0
  154. package/src/ox-input-color-gradient.ts +9 -3
  155. package/src/ox-input-color-stops.ts +26 -0
  156. package/src/ox-input-color.ts +5 -0
  157. package/src/ox-input-container.ts +0 -7
  158. package/src/ox-input-data.ts +5 -1
  159. package/src/ox-input-duration.ts +23 -4
  160. package/src/ox-input-file.ts +8 -0
  161. package/src/ox-input-hashtags.ts +21 -18
  162. package/src/ox-input-image.ts +1 -0
  163. package/src/ox-input-key-values.ts +41 -16
  164. package/src/ox-input-mass-fraction.ts +57 -47
  165. package/src/ox-input-multiple-colors.ts +7 -3
  166. package/src/ox-input-options.ts +20 -11
  167. package/src/ox-input-partition-keys.ts +41 -16
  168. package/src/ox-input-privilege.ts +6 -3
  169. package/src/ox-input-quantifier.ts +2 -2
  170. package/src/ox-input-range.ts +2 -0
  171. package/src/ox-input-scene-component-id.ts +1 -0
  172. package/src/ox-input-search.ts +2 -1
  173. package/src/ox-input-select-buttons.ts +4 -1
  174. package/src/ox-input-stack.ts +9 -3
  175. package/src/ox-input-textarea.ts +1 -0
  176. package/src/ox-input-unit-number.ts +5 -0
  177. package/src/ox-input-value-map.ts +34 -18
  178. package/src/ox-input-value-ranges.ts +41 -23
  179. package/src/ox-input-work-shift.ts +39 -31
  180. package/src/ox-select.ts +4 -0
  181. package/stories/ox-checkbox.stories.ts +6 -2
  182. package/stories/ox-input-3axis.stories.ts +5 -2
  183. package/stories/ox-input-3dish.stories.ts +5 -2
  184. package/stories/ox-input-angle.stories.ts +5 -2
  185. package/stories/ox-input-barcode.stories.ts +6 -2
  186. package/stories/ox-input-code.stories.ts +5 -2
  187. package/stories/ox-input-crontab.stories.ts +5 -2
  188. package/stories/ox-input-duration.stories.ts +5 -2
  189. package/stories/ox-input-file.stories.ts +6 -2
  190. package/stories/ox-input-hashtags.stories.ts +5 -2
  191. package/stories/ox-input-key-values.stories.ts +5 -2
  192. package/stories/ox-input-mass-fraction.stories.ts +11 -2
  193. package/stories/ox-input-multiple-colors.stories.ts +7 -3
  194. package/stories/ox-input-options.stories.ts +5 -2
  195. package/stories/ox-input-partition-keys.stories.ts +5 -2
  196. package/stories/ox-input-privilege.stories.ts +5 -2
  197. package/stories/ox-input-quantifier.stories.ts +5 -2
  198. package/stories/ox-input-range.stories.ts +13 -3
  199. package/stories/ox-input-search.stories.ts +6 -2
  200. package/stories/ox-input-select-buttons.stories.ts +11 -2
  201. package/stories/ox-input-unit.stories.ts +6 -2
  202. package/stories/ox-input-value-map.stories.ts +6 -2
  203. package/stories/ox-input-value-ranges.stories.ts +6 -2
  204. package/stories/ox-input-work-shift.stories.ts +5 -2
  205. package/stories/ox-select.stories.ts +11 -2
  206. package/yarn-error.log +0 -17084
@@ -58,9 +58,9 @@ export class OxInput3Axis extends OxFormField {
58
58
  render() {
59
59
  const { x, y, z } = this.value
60
60
  return html`
61
- <input type="number" id="x" placeholder="X" .value=${String(x)} />
62
- <input type="number" id="y" placeholder="Y" .value=${String(y)} />
63
- <input type="number" id="z" placeholder="Z" .value=${String(z)} />
61
+ <input type="number" id="x" placeholder="X" .value=${String(x)} ?disabled=${this.disabled} />
62
+ <input type="number" id="y" placeholder="Y" .value=${String(y)} ?disabled=${this.disabled} />
63
+ <input type="number" id="z" placeholder="Z" .value=${String(z)} ?disabled=${this.disabled} />
64
64
  `
65
65
  }
66
66
  }
@@ -183,24 +183,24 @@ export class OxInput3Dish extends OxFormField {
183
183
  <span>${msg('z-axes')}</span>
184
184
 
185
185
  <label>${msg('dimension')}</label>
186
- <input type="number" id="dwidth" .value=${String(this.dimension?.width)} />
187
- <input type="number" id="dheight" .value=${String(this.dimension?.height)} />
188
- <input type="number" id="ddepth" .value=${String(this.dimension?.depth)} />
186
+ <input type="number" id="dwidth" .value=${String(this.dimension?.width)} ?disabled=${this.disabled} />
187
+ <input type="number" id="dheight" .value=${String(this.dimension?.height)} ?disabled=${this.disabled} />
188
+ <input type="number" id="ddepth" .value=${String(this.dimension?.depth)} ?disabled=${this.disabled} />
189
189
 
190
190
  <label>${msg('position')}</label>
191
- <input type="number" id="tx" .value=${String(this.position?.x)} />
192
- <input type="number" id="ty" .value=${String(this.position?.y)} />
193
- <input type="number" id="tz" .value=${String(this.position?.z)} />
191
+ <input type="number" id="tx" .value=${String(this.position?.x)} ?disabled=${this.disabled} />
192
+ <input type="number" id="ty" .value=${String(this.position?.y)} ?disabled=${this.disabled} />
193
+ <input type="number" id="tz" .value=${String(this.position?.z)} ?disabled=${this.disabled} />
194
194
 
195
195
  <label>${msg('scale')}</label>
196
- <input type="number" id="sx" .value=${String(this.scale?.x)} />
197
- <input type="number" id="sy" .value=${String(this.scale?.y)} />
198
- <input type="number" id="sz" .value=${String(this.scale?.z)} />
196
+ <input type="number" id="sx" .value=${String(this.scale?.x)} ?disabled=${this.disabled} />
197
+ <input type="number" id="sy" .value=${String(this.scale?.y)} ?disabled=${this.disabled} />
198
+ <input type="number" id="sz" .value=${String(this.scale?.z)} ?disabled=${this.disabled} />
199
199
 
200
200
  <label>${msg('rotate')}</label>
201
- <ox-input-angle id="rx" .value=${String(this.rotate?.x)}></ox-input-angle>
202
- <ox-input-angle id="ry" .value=${String(this.rotate?.y)}></ox-input-angle>
203
- <ox-input-angle id="rz" .value=${String(this.rotate?.z)}></ox-input-angle>
201
+ <ox-input-angle id="rx" .value=${String(this.rotate?.x)} ?disabled=${this.disabled}></ox-input-angle>
202
+ <ox-input-angle id="ry" .value=${String(this.rotate?.y)} ?disabled=${this.disabled}></ox-input-angle>
203
+ <ox-input-angle id="rz" .value=${String(this.rotate?.z)} ?disabled=${this.disabled}></ox-input-angle>
204
204
  `
205
205
  }
206
206
  }
@@ -39,6 +39,7 @@ export class OxInputAngle extends OxFormField {
39
39
  .value=${String(this._toDegree(this.value))}
40
40
  .placeholder=${this.placeholder || '0°'}
41
41
  @change=${(e: Event) => this._onChangeValue(e)}
42
+ ?disabled=${this.disabled}
42
43
  />
43
44
  `
44
45
  }
@@ -133,6 +133,7 @@ export class OxInputBarcode extends OxFormField {
133
133
  .value=${this.value || ''}
134
134
  @change=${(e: Event) => this.onInputChange(e)}
135
135
  @keydown=${(e: KeyboardEvent) => this.onInputKeyDown(e)}
136
+ ?disabled=${this.disabled}
136
137
  />
137
138
  <button
138
139
  ?hidden=${!this.scannable}
@@ -140,6 +141,7 @@ export class OxInputBarcode extends OxFormField {
140
141
  @click=${(e: MouseEvent) => {
141
142
  this.scan(e)
142
143
  }}
144
+ ?disabled=${this.disabled}
143
145
  ></button>
144
146
 
145
147
  <ox-popup
@@ -255,13 +255,13 @@ export class OxInputColorGradient extends OxFormField {
255
255
 
256
256
  return html`
257
257
  <label> <ox-i18n msgid="label.type">type</ox-i18n> </label>
258
- <select value-key="type" .value=${value.type || 'linear'}>
258
+ <select value-key="type" .value=${value.type || 'linear'} ?disabled=${this.disabled}>
259
259
  <option>linear</option>
260
260
  <option>radial</option>
261
261
  </select>
262
262
 
263
263
  <label class="icon-only-label color"></label>
264
- <ox-input-angle value-key="rotation" .value=${value.rotation || 0}> </ox-input-angle>
264
+ <ox-input-angle value-key="rotation" .value=${value.rotation || 0} ?disabled=${this.disabled}> </ox-input-angle>
265
265
 
266
266
  <label> <ox-i18n msgid="label.direction">direction</ox-i18n> </label>
267
267
  <div editors>
@@ -304,7 +304,13 @@ export class OxInputColorGradient extends OxFormField {
304
304
  </paper-dropdown-menu>
305
305
  </div>
306
306
 
307
- <ox-input-color-stops value-key="colorStops" type="gradient" .value=${value.colorStops}> </ox-input-color-stops>
307
+ <ox-input-color-stops
308
+ value-key="colorStops"
309
+ type="gradient"
310
+ .value=${value.colorStops}
311
+ ?disabled=${this.disabled}
312
+ >
313
+ </ox-input-color-stops>
308
314
  `
309
315
  }
310
316
 
@@ -237,6 +237,7 @@ export class OxInputColorStops extends OxFormField {
237
237
  id="color-editor"
238
238
  .value=${this.focused && this.focused.color}
239
239
  @change=${(e: Event) => this._onChangeSubComponent(e)}
240
+ ?disabled=${this.disabled}
240
241
  >
241
242
  </ox-input-color>
242
243
 
@@ -247,6 +248,7 @@ export class OxInputColorStops extends OxFormField {
247
248
  .value=${this.focused && this.focused.position}
248
249
  @change=${(e: Event) => this._onChangeSubComponent(e)}
249
250
  step="0.01"
251
+ ?disabled=${this.disabled}
250
252
  />
251
253
  `
252
254
  }
@@ -384,6 +386,10 @@ export class OxInputColorStops extends OxFormField {
384
386
  }
385
387
 
386
388
  _onDblClickColorbar(e: MouseEvent) {
389
+ if (this.disabled) {
390
+ return
391
+ }
392
+
387
393
  /* 마커를 클릭한 경우를 걸러낸다. */
388
394
  if (e.target !== this.colorbar) return
389
395
 
@@ -409,10 +415,18 @@ export class OxInputColorStops extends OxFormField {
409
415
  }
410
416
 
411
417
  _onDblClickMarkers(e: MouseEvent) {
418
+ if (this.disabled) {
419
+ return
420
+ }
421
+
412
422
  this.colorEditor.showPicker()
413
423
  }
414
424
 
415
425
  _onMouseDown(e: MouseEvent) {
426
+ if (this.disabled) {
427
+ return
428
+ }
429
+
416
430
  var marker = e.target as HTMLElement
417
431
  var index = marker.getAttribute('marker-index')
418
432
 
@@ -422,6 +436,10 @@ export class OxInputColorStops extends OxFormField {
422
436
  private dragstart: { position: number; x: number; y: number } = { position: 0, x: 0, y: 0 }
423
437
 
424
438
  _onDragStart(e: DragEvent) {
439
+ if (this.disabled) {
440
+ return
441
+ }
442
+
425
443
  /* drag 시에 ghost image를 보이지 않게 하려고 함 */
426
444
  e.dataTransfer?.setDragImage(this._dragImage!, 0, 0)
427
445
 
@@ -446,6 +464,10 @@ export class OxInputColorStops extends OxFormField {
446
464
  }
447
465
 
448
466
  _onDrag(e: DragEvent) {
467
+ if (this.disabled) {
468
+ return
469
+ }
470
+
449
471
  if (e.clientX <= 0) {
450
472
  return
451
473
  }
@@ -464,6 +486,10 @@ export class OxInputColorStops extends OxFormField {
464
486
  }
465
487
 
466
488
  _onDragEnd(e: DragEvent) {
489
+ if (this.disabled) {
490
+ return
491
+ }
492
+
467
493
  if (e.clientY - this.dragstart.y > 40) {
468
494
  this.value!.splice(this.focused.index, 1)
469
495
  this.value = this.value!.slice()
@@ -232,6 +232,7 @@ export class OxInputColor extends OxFormField {
232
232
  .value=${this.value || ''}
233
233
  @change=${(e: Event) => this._onInputChanged(e)}
234
234
  .placeholder=${this.getAttribute('placeholder') || ''}
235
+ ?disabled=${this.disabled}
235
236
  />
236
237
 
237
238
  <a @click=${(e: MouseEvent) => this.showPicker()}>
@@ -268,6 +269,10 @@ export class OxInputColor extends OxFormField {
268
269
  * 외부에서 호출 가능한 메쏘드임.
269
270
  */
270
271
  showPicker() {
272
+ if (this.disabled) {
273
+ return
274
+ }
275
+
271
276
  var { withoutAlpha } = this.properties || {}
272
277
 
273
278
  var color = tinycolor(this.value, {})
@@ -12,13 +12,6 @@ import { OxPopupList } from '@operato/popup'
12
12
 
13
13
  @customElement('ox-input-container')
14
14
  export class OxInputContainer extends LitElement {
15
- static styles = [
16
- css`
17
- :host {
18
- }
19
- `
20
- ]
21
-
22
15
  @query('ox-popup-list') popupList!: OxPopupList
23
16
 
24
17
  render() {
@@ -57,6 +57,7 @@ export class OxInputData extends OxFormField {
57
57
  data-value="string"
58
58
  .checked=${typeof this.value == 'string'}
59
59
  @click=${() => this._setDataType('string')}
60
+ ?disabled=${this.disabled}
60
61
  />string
61
62
 
62
63
  <input
@@ -65,6 +66,7 @@ export class OxInputData extends OxFormField {
65
66
  data-value="number"
66
67
  .checked=${typeof this.value == 'number'}
67
68
  @click=${() => this._setDataType('number')}
69
+ ?disabled=${this.disabled}
68
70
  />number
69
71
 
70
72
  <input
@@ -73,11 +75,13 @@ export class OxInputData extends OxFormField {
73
75
  data-value="object"
74
76
  .checked=${typeof this.value == 'object'}
75
77
  @click=${() => this._setDataType('object')}
78
+ ?disabled=${this.disabled}
76
79
  />object
77
80
  <mwc-icon @click=${() => this._clearData()} title="delete">delete_forever</mwc-icon>
78
81
  </div>
79
82
 
80
- <ox-input-code .value=${this._getData(this.value)} language="javascript" editor> </ox-input-code>
83
+ <ox-input-code .value=${this._getData(this.value)} language="javascript" editor ?disabled=${this.disabled}>
84
+ </ox-input-code>
81
85
  `
82
86
  }
83
87
 
@@ -100,16 +100,34 @@ export class OxInputDuration extends OxFormField {
100
100
 
101
101
  return html`
102
102
  <form @change=${this.onChange.bind(this)}>
103
- <input id="days" type="number" .value=${String(days || 0)} pattern="\\d*" />
103
+ <input id="days" type="number" .value=${String(days || 0)} pattern="\\d*" ?disabled=${this.disabled} />
104
104
  <label for="days">${i18next.t('label.days')}</label>
105
105
 
106
- <input id="hours" type="number" .value=${String(hours || 0)} pattern="[01]?\\d|2[0-3]" />
106
+ <input
107
+ id="hours"
108
+ type="number"
109
+ .value=${String(hours || 0)}
110
+ pattern="[01]?\\d|2[0-3]"
111
+ ?disabled=${this.disabled}
112
+ />
107
113
  <label for="hour">${i18next.t('label.hours')}</label>
108
114
 
109
- <input id="minutes" type="number" .value=${String(minutes || 0)} pattern="[0-5]?\\d" />
115
+ <input
116
+ id="minutes"
117
+ type="number"
118
+ .value=${String(minutes || 0)}
119
+ pattern="[0-5]?\\d"
120
+ ?disabled=${this.disabled}
121
+ />
110
122
  <label for="minute">${i18next.t('label.minutes')}</label>
111
123
 
112
- <input id="seconds" type="number" .value=${String(seconds || 0)} pattern="[0-5]?\\d" />
124
+ <input
125
+ id="seconds"
126
+ type="number"
127
+ .value=${String(seconds || 0)}
128
+ pattern="[0-5]?\\d"
129
+ ?disabled=${this.disabled}
130
+ />
113
131
  <label for="second">${i18next.t('label.seconds')}</label>
114
132
 
115
133
  <button
@@ -128,6 +146,7 @@ export class OxInputDuration extends OxFormField {
128
146
  })
129
147
  )
130
148
  }}
149
+ ?disabled=${this.disabled}
131
150
  >
132
151
  <mwc-icon>backspace</mwc-icon>
133
152
  </button>
@@ -116,6 +116,7 @@ export class OxInputFile extends OxFormField {
116
116
  hidden
117
117
  capture="environment"
118
118
  @change=${(e: Event) => this._onChangeValue(e)}
119
+ ?disabled=${this.disabled}
119
120
  />
120
121
 
121
122
  <label for="input-file">${this.label || 'select files'}</label>
@@ -128,6 +129,9 @@ export class OxInputFile extends OxFormField {
128
129
  - ${file.name}
129
130
  <mwc-icon
130
131
  @click=${(e: Event) => {
132
+ if (this.disabled) {
133
+ return
134
+ }
131
135
  files.splice(files.indexOf(file), 1)
132
136
  this.value = [...files]
133
137
  this._notifyChange()
@@ -152,6 +156,10 @@ export class OxInputFile extends OxFormField {
152
156
  FileDropHelper.set(this)
153
157
 
154
158
  this.addEventListener('file-drop', (e: Event) => {
159
+ if (this.disabled) {
160
+ return
161
+ }
162
+
155
163
  const detail = (e as CustomEvent).detail
156
164
  this.value = this.multiple ? detail : detail[0] ? [detail[0]] : []
157
165
 
@@ -17,11 +17,11 @@ export class OxInputHashtags extends OxFormField {
17
17
  #editor {
18
18
  display: block;
19
19
  box-sizing: border-box;
20
- --hashtag-padding : 2px 4px;
21
- --hashtag-background : rgba(var(--primary-color-rgb),.15);
22
- --hashtag-background-hover : rgba(var(--primary-color-rgb),1);
23
- --hashtag-closer-padding:0 2px 0 4px;
24
- --hashtag-input-padding : 2px;
20
+ --hashtag-padding: 2px 4px;
21
+ --hashtag-background: rgba(var(--primary-color-rgb), 0.15);
22
+ --hashtag-background-hover: rgba(var(--primary-color-rgb), 1);
23
+ --hashtag-closer-padding: 0 2px 0 4px;
24
+ --hashtag-input-padding: 2px;
25
25
  }
26
26
 
27
27
  .tags {
@@ -31,25 +31,25 @@ export class OxInputHashtags extends OxFormField {
31
31
  .tag {
32
32
  border-radius: var(--border-radius);
33
33
  background-color: var(--hashtag-background);
34
- padding:var(--hashtag-padding);
34
+ padding: var(--hashtag-padding);
35
35
  font: var(--input-font);
36
36
  color: var(--primary-text-color);
37
- cursor:pointer;
37
+ cursor: pointer;
38
38
  }
39
39
 
40
40
  .tag:hover {
41
41
  background-color: var(--hashtag-background-hover);
42
42
  color: var(--theme-white-color) !important;
43
43
  }
44
-
44
+
45
45
  .closer {
46
- opacity:.3;
47
- padding:var(--hashtag-closer-padding);
48
- text-transform:uppercase;
46
+ opacity: 0.3;
47
+ padding: var(--hashtag-closer-padding);
48
+ text-transform: uppercase;
49
49
  color: var(--primary-text-color);
50
50
  }
51
- .tag:hover .closer{
52
- opacity:.9;
51
+ .tag:hover .closer {
52
+ opacity: 0.9;
53
53
  color: var(--theme-white-color);
54
54
  }
55
55
 
@@ -61,7 +61,7 @@ export class OxInputHashtags extends OxFormField {
61
61
  .input::before {
62
62
  display: inline;
63
63
  position: relative;
64
- opacity:.5;
64
+ opacity: 0.5;
65
65
  top: -1px;
66
66
  content: '#';
67
67
  vertical-align: middle;
@@ -75,7 +75,7 @@ export class OxInputHashtags extends OxFormField {
75
75
  border: 0;
76
76
  border-bottom: var(--border-dark-color);
77
77
  outline: none;
78
- font-weight:bold;
78
+ font-weight: bold;
79
79
  }
80
80
 
81
81
  input:focus {
@@ -84,7 +84,7 @@ export class OxInputHashtags extends OxFormField {
84
84
  }
85
85
 
86
86
  .error {
87
- margin:var(--margin-narrow);
87
+ margin: var(--margin-narrow);
88
88
  color: var(--status-danger-color);
89
89
  font: var(--input-font);
90
90
  text-align: left;
@@ -106,13 +106,16 @@ export class OxInputHashtags extends OxFormField {
106
106
  tag => tag,
107
107
  (tag, index) =>
108
108
  html`
109
- <span class="tag">#${tag} <span @click=${() => this.removeHashtag(index)} class="closer">x</span></span>
109
+ <span class="tag"
110
+ >#${tag}
111
+ <span @click=${() => !this.disabled && this.removeHashtag(index)} class="closer">x</span></span
112
+ >
110
113
  `
111
114
  )}
112
115
  </div>
113
116
 
114
117
  <div class="input">
115
- <input type="text" @keyup=${this.onInputKeyup} placeholder="태그입력" />
118
+ <input type="text" @keyup=${this.onInputKeyup} placeholder="태그입력" ?disabled=${this.disabled} />
116
119
  </div>
117
120
  </div>
118
121
 
@@ -116,6 +116,7 @@ export class OxInputImage extends OxFormField {
116
116
  hidden
117
117
  capture="environment"
118
118
  @change=${(e: Event) => this._onChangeValue(e)}
119
+ ?disabled=${this.disabled}
119
120
  />
120
121
  <mwc-icon>upload</mwc-icon>
121
122
  </label>
@@ -4,7 +4,7 @@
4
4
 
5
5
  import '@material/mwc-icon'
6
6
 
7
- import { css, html } from 'lit'
7
+ import { css, html, nothing } from 'lit'
8
8
  import { customElement, property, queryAll } from 'lit/decorators.js'
9
9
 
10
10
  import { OxFormField } from './ox-form-field'
@@ -97,30 +97,55 @@ export class OxInputKeyValues extends OxFormField {
97
97
  ${this._toArray(value).map(
98
98
  item => html`
99
99
  <div data-record>
100
- <input type="text" data-key placeholder="key" .value=${item.key} />
101
- <input type="text" data-value placeholder="value" .value=${item.value} list="value-template" />
102
- <button class="record-action" @click=${(e: MouseEvent) => this._delete(e)} tabindex="-1">
100
+ <input type="text" data-key placeholder="key" .value=${item.key} ?disabled=${this.disabled} />
101
+ <input
102
+ type="text"
103
+ data-value
104
+ placeholder="value"
105
+ .value=${item.value}
106
+ list="value-template"
107
+ ?disabled=${this.disabled}
108
+ />
109
+ <button
110
+ class="record-action"
111
+ @click=${(e: MouseEvent) => this._delete(e)}
112
+ tabindex="-1"
113
+ ?disabled=${this.disabled}
114
+ >
103
115
  <mwc-icon>remove</mwc-icon>
104
116
  </button>
105
- <button class="record-action" @click=${(e: MouseEvent) => this._up(e)} tabindex="-1">
117
+ <button
118
+ class="record-action"
119
+ @click=${(e: MouseEvent) => this._up(e)}
120
+ tabindex="-1"
121
+ ?disabled=${this.disabled}
122
+ >
106
123
  <mwc-icon>arrow_upward</mwc-icon>
107
124
  </button>
108
- <button class="record-action" @click=${(e: MouseEvent) => this._down(e)} tabindex="-1">
125
+ <button
126
+ class="record-action"
127
+ @click=${(e: MouseEvent) => this._down(e)}
128
+ tabindex="-1"
129
+ ?disabled=${this.disabled}
130
+ >
109
131
  <mwc-icon>arrow_downward</mwc-icon>
110
132
  </button>
111
133
  </div>
112
134
  `
113
135
  )}
114
-
115
- <div data-record-new>
116
- <input type="text" data-key placeholder="key" value="" />
117
- <input type="text" data-value placeholder="value" value="" list="value-template" />
118
- <button class="record-action" @click=${(e: MouseEvent) => this._add()} tabindex="-1">
119
- <mwc-icon>add</mwc-icon>
120
- </button>
121
- <button class="hidden"><mwc-icon>add</mwc-icon></button>
122
- <button class="hidden"><mwc-icon>add</mwc-icon></button>
123
- </div>
136
+ ${this.disabled
137
+ ? nothing
138
+ : html`
139
+ <div data-record-new>
140
+ <input type="text" data-key placeholder="key" value="" />
141
+ <input type="text" data-value placeholder="value" value="" list="value-template" />
142
+ <button class="record-action" @click=${(e: MouseEvent) => this._add()} tabindex="-1">
143
+ <mwc-icon>add</mwc-icon>
144
+ </button>
145
+ <button class="hidden"><mwc-icon>add</mwc-icon></button>
146
+ <button class="hidden"><mwc-icon>add</mwc-icon></button>
147
+ </div>
148
+ `}
124
149
 
125
150
  <datalist id="value-template">
126
151
  ${options.map(({ display, value }) => html` <option value="${value}">${display}</option> `)}
@@ -6,7 +6,7 @@ import '@material/mwc-icon'
6
6
  import '@operato/popup/ox-popup-list.js'
7
7
  import './ox-select.js'
8
8
 
9
- import { css, html } from 'lit'
9
+ import { css, html, nothing } from 'lit'
10
10
  import { customElement, property, queryAll } from 'lit/decorators.js'
11
11
  import { live } from 'lit/directives/live.js'
12
12
 
@@ -166,15 +166,21 @@ export class OxInputMassFraction extends OxFormField {
166
166
  step="0.01"
167
167
  .value=${String(item.value)}
168
168
  list="value-template"
169
+ ?disabled=${this.disabled}
169
170
  />
170
- <button class="record-action" @click=${(e: MouseEvent) => this._delete(e)} tabindex="-1">
171
+ <button
172
+ class="record-action"
173
+ @click=${(e: MouseEvent) => this._delete(e)}
174
+ tabindex="-1"
175
+ ?disabled=${this.disabled}
176
+ >
171
177
  <mwc-icon>remove</mwc-icon>
172
178
  </button>
173
179
  <button
174
180
  class="record-action"
175
181
  @click=${(e: MouseEvent) => this._up(e)}
176
182
  tabindex="-1"
177
- ?disabled=${idx === 0}
183
+ ?disabled=${this.disabled || idx === 0}
178
184
  >
179
185
  <mwc-icon>arrow_upward</mwc-icon>
180
186
  </button>
@@ -182,7 +188,7 @@ export class OxInputMassFraction extends OxFormField {
182
188
  class="record-action"
183
189
  @click=${(e: MouseEvent) => this._down(e)}
184
190
  tabindex="-1"
185
- ?disabled=${idx === arrayed.length - 1}
191
+ ?disabled=${this.disabled || idx === arrayed.length - 1}
186
192
  >
187
193
  <mwc-icon>arrow_downward</mwc-icon>
188
194
  </button>
@@ -192,49 +198,53 @@ export class OxInputMassFraction extends OxFormField {
192
198
  : html`<div nofraction>No Fractions</div>`}
193
199
  </div>
194
200
 
195
- <div data-record-new>
196
- <ox-select
197
- data-key
198
- placeholder="Fluid"
199
- .value=${live('')}
200
- @change=${(e: Event) => {
201
- e.stopPropagation()
202
- }}
203
- >
204
- <ox-popup-list with-search> ${this.options} </ox-popup-list>
205
- </ox-select>
206
-
207
- <input
208
- type="number"
209
- data-value
210
- placeholder="proportion"
211
- min="0"
212
- max="1"
213
- step="0.01"
214
- value=""
215
- list="value-template"
216
- />
217
- <button class="record-action" @click=${(e: MouseEvent) => this._add()} tabindex="-1">
218
- <mwc-icon>add</mwc-icon>
219
- </button>
220
- <button
221
- title="fill with the values suggested"
222
- @click=${() => {
223
- this.value = { ...this.defaultValue }
224
- this.dispatchChangeEvent()
225
- }}
226
- >
227
- <mwc-icon>settings_suggest</mwc-icon>
228
- </button>
229
- <button
230
- title="normalize fraction"
231
- @click=${() => {
232
- this._normalize()
233
- }}
234
- >
235
- <mwc-icon>repartition</mwc-icon>
236
- </button>
237
- </div>
201
+ ${this.disabled
202
+ ? nothing
203
+ : html`
204
+ <div data-record-new>
205
+ <ox-select
206
+ data-key
207
+ placeholder="Fluid"
208
+ .value=${live('')}
209
+ @change=${(e: Event) => {
210
+ e.stopPropagation()
211
+ }}
212
+ >
213
+ <ox-popup-list with-search> ${this.options} </ox-popup-list>
214
+ </ox-select>
215
+
216
+ <input
217
+ type="number"
218
+ data-value
219
+ placeholder="proportion"
220
+ min="0"
221
+ max="1"
222
+ step="0.01"
223
+ value=""
224
+ list="value-template"
225
+ />
226
+ <button class="record-action" @click=${(e: MouseEvent) => this._add()} tabindex="-1">
227
+ <mwc-icon>add</mwc-icon>
228
+ </button>
229
+ <button
230
+ title="fill with the values suggested"
231
+ @click=${() => {
232
+ this.value = { ...this.defaultValue }
233
+ this.dispatchChangeEvent()
234
+ }}
235
+ >
236
+ <mwc-icon>settings_suggest</mwc-icon>
237
+ </button>
238
+ <button
239
+ title="normalize fraction"
240
+ @click=${() => {
241
+ this._normalize()
242
+ }}
243
+ >
244
+ <mwc-icon>repartition</mwc-icon>
245
+ </button>
246
+ </div>
247
+ `}
238
248
  `
239
249
  }
240
250