@operato/input 1.0.0-alpha.3 → 1.0.0-alpha.30

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 (111) hide show
  1. package/CHANGELOG.md +235 -0
  2. package/README.md +9 -6
  3. package/assets/images/icon-editor-gradient-direction.png +0 -0
  4. package/assets/images/icon-properties-label.png +0 -0
  5. package/assets/images/icon-properties-line-type.png +0 -0
  6. package/assets/images/icon-properties-table.png +0 -0
  7. package/demo/index-color-gradient.html +35 -0
  8. package/demo/index-color-stops.html +62 -0
  9. package/demo/index-color.html +35 -0
  10. package/demo/index-crontab.html +36 -0
  11. package/demo/index-file.html +41 -0
  12. package/demo/index-image.html +1 -1
  13. package/demo/index-multiple-colors.html +37 -0
  14. package/demo/index-options.html +43 -0
  15. package/demo/index-partition-keys.html +71 -0
  16. package/demo/index-range.html +40 -0
  17. package/demo/index-table.html +39 -0
  18. package/demo/index-value-map.html +80 -0
  19. package/demo/index-value-ranges.html +80 -0
  20. package/demo/index.html +23 -54
  21. package/dist/src/index.d.ts +21 -11
  22. package/dist/src/index.js +21 -11
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/ox-checkbox.js +1 -1
  25. package/dist/src/ox-checkbox.js.map +1 -1
  26. package/dist/src/ox-input-code.d.ts +4 -4
  27. package/dist/src/ox-input-code.js +8 -8
  28. package/dist/src/ox-input-code.js.map +1 -1
  29. package/dist/src/ox-input-color-gradient.d.ts +26 -0
  30. package/dist/src/ox-input-color-gradient.js +318 -0
  31. package/dist/src/ox-input-color-gradient.js.map +1 -0
  32. package/dist/src/ox-input-color-stops.d.ts +71 -0
  33. package/dist/src/ox-input-color-stops.js +445 -0
  34. package/dist/src/ox-input-color-stops.js.map +1 -0
  35. package/dist/src/ox-input-color.d.ts +176 -0
  36. package/dist/src/ox-input-color.js +298 -0
  37. package/dist/src/ox-input-color.js.map +1 -0
  38. package/dist/src/ox-input-crontab.d.ts +23 -0
  39. package/dist/src/ox-input-crontab.js +560 -0
  40. package/dist/src/ox-input-crontab.js.map +1 -0
  41. package/dist/src/ox-input-data.d.ts +2 -2
  42. package/dist/src/ox-input-data.js +2 -2
  43. package/dist/src/ox-input-data.js.map +1 -1
  44. package/dist/src/ox-input-file.d.ts +2 -0
  45. package/dist/src/ox-input-file.js +6 -1
  46. package/dist/src/ox-input-file.js.map +1 -1
  47. package/dist/src/ox-input-layout/ox-input-card-layout.d.ts +4 -0
  48. package/dist/src/ox-input-layout/ox-input-card-layout.js +57 -0
  49. package/dist/src/ox-input-layout/ox-input-card-layout.js.map +1 -0
  50. package/dist/src/ox-input-layout/ox-input-grid-layout.d.ts +4 -0
  51. package/dist/src/ox-input-layout/ox-input-grid-layout.js +63 -0
  52. package/dist/src/ox-input-layout/ox-input-grid-layout.js.map +1 -0
  53. package/dist/src/ox-input-layout/ox-input-layout.d.ts +5 -0
  54. package/dist/src/ox-input-layout/ox-input-layout.js +73 -0
  55. package/dist/src/ox-input-layout/ox-input-layout.js.map +1 -0
  56. package/dist/src/ox-input-multiple-colors.d.ts +28 -0
  57. package/dist/src/ox-input-multiple-colors.js +113 -0
  58. package/dist/src/ox-input-multiple-colors.js.map +1 -0
  59. package/dist/src/ox-input-options.d.ts +22 -0
  60. package/dist/src/ox-input-options.js +137 -0
  61. package/dist/src/ox-input-options.js.map +1 -0
  62. package/dist/src/ox-input-partition-keys.d.ts +36 -0
  63. package/dist/src/ox-input-partition-keys.js +202 -0
  64. package/dist/src/ox-input-partition-keys.js.map +1 -0
  65. package/dist/src/ox-input-range.d.ts +4 -0
  66. package/dist/src/ox-input-range.js +161 -0
  67. package/dist/src/ox-input-range.js.map +1 -0
  68. package/dist/src/{ox-input-id.d.ts → ox-input-scene-component-id.d.ts} +0 -0
  69. package/dist/src/{ox-input-id.js → ox-input-scene-component-id.js} +2 -2
  70. package/dist/src/ox-input-scene-component-id.js.map +1 -0
  71. package/dist/src/ox-input-stack.d.ts +1 -1
  72. package/dist/src/ox-input-stack.js +1 -1
  73. package/dist/src/ox-input-stack.js.map +1 -1
  74. package/dist/src/ox-input-table.d.ts +8 -0
  75. package/dist/src/ox-input-table.js +379 -0
  76. package/dist/src/ox-input-table.js.map +1 -0
  77. package/dist/src/ox-input-value-map.d.ts +41 -0
  78. package/dist/src/ox-input-value-map.js +279 -0
  79. package/dist/src/ox-input-value-map.js.map +1 -0
  80. package/dist/src/ox-input-value-ranges.d.ts +41 -0
  81. package/dist/src/ox-input-value-ranges.js +298 -0
  82. package/dist/src/ox-input-value-ranges.js.map +1 -0
  83. package/dist/tsconfig.tsbuildinfo +1 -1
  84. package/package.json +25 -7
  85. package/src/index.ts +21 -11
  86. package/src/ox-checkbox.ts +1 -1
  87. package/src/ox-input-code.ts +9 -10
  88. package/src/ox-input-color-gradient.ts +343 -0
  89. package/src/ox-input-color-stops.ts +499 -0
  90. package/src/ox-input-color.ts +323 -0
  91. package/src/ox-input-crontab.ts +560 -0
  92. package/src/ox-input-data.ts +5 -5
  93. package/src/ox-input-file.ts +8 -3
  94. package/src/ox-input-layout/ox-input-card-layout.ts +58 -0
  95. package/src/ox-input-layout/ox-input-grid-layout.ts +64 -0
  96. package/src/ox-input-layout/ox-input-layout.ts +77 -0
  97. package/src/ox-input-multiple-colors.ts +113 -0
  98. package/src/ox-input-options.ts +165 -0
  99. package/src/ox-input-partition-keys.ts +240 -0
  100. package/src/ox-input-range.ts +147 -0
  101. package/src/{ox-input-id.ts → ox-input-scene-component-id.ts} +1 -1
  102. package/src/ox-input-stack.ts +1 -1
  103. package/src/ox-input-table.ts +404 -0
  104. package/src/{ox-input-keyvalues.ts.ing → ox-input-value-map.ts} +125 -94
  105. package/src/ox-input-value-ranges.ts +325 -0
  106. package/translations/en.json +1 -0
  107. package/translations/ko.json +1 -0
  108. package/translations/ms.json +1 -0
  109. package/translations/zh.json +1 -0
  110. package/dist/src/ox-input-id.js.map +0 -1
  111. package/src/ox-input-ranges.ts.ing +0 -292
@@ -1 +0,0 @@
1
- {"version":3,"file":"ox-input-id.js","sourceRoot":"","sources":["../../src/ox-input-id.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG7C,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,WAAW;IAA1C;;QAmBW,SAAI,GAAkB,EAAE,CAAA;IA0CnC,CAAC;aA5DQ,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;GAclB,CAAA;IAMD,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;QAE3B,OAAO,IAAI,CAAA;;;;iBAIE,IAAI,CAAC,KAAK,IAAI,EAAE;mBACd,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;kBAC3C,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;uBACrC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE;;;;2BAIlC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAA,kBAAkB,EAAE,aAAa,CAAC;KAC1E,CAAA;IACH,CAAC;IAED,eAAe,CAAC,CAAa;QAC3B,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;QAEvC,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,6BAA6B,EAAE;YAC7C,MAAM,EAAE;gBACN,SAAS;gBACT,QAAQ,EAAE,CAAC,GAAa,EAAE,EAAE;oBAC1B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;gBACjB,CAAC;aACF;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAED,eAAe,CAAC,CAAa;QAC3B,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAA;QAEjD,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;CACF,CAAA;AA5C6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CAAoD;AAEtE;IAAR,KAAK,EAAE;uCAAyB;AAnBtB,SAAS;IADrB,aAAa,CAAC,aAAa,CAAC;GAChB,SAAS,CA6DrB;SA7DY,SAAS","sourcesContent":["import { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { OxFormField } from './ox-form-field'\n\n@customElement('ox-input-id')\nexport class OxInputId extends OxFormField {\n static styles = css`\n :host {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n }\n\n input {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n }\n `\n\n @property({ type: Object }) property: { component?: string } | null | undefined\n\n @state() _ids: Array<string> = []\n\n render() {\n const ids = this._ids || []\n\n return html`\n <input\n id=\"text\"\n type=\"text\"\n .value=${this.value || ''}\n @focusin=${(e: FocusEvent) => this._onInputFocused(e)}\n @change=${(e: InputEvent) => this._onInputChanged(e)}\n .placeholder=${this.getAttribute('placeholder') || ''}\n list=\"ids\"\n />\n\n <datalist id=\"ids\">${ids.map(id => html` <option value=${id}></option> `)}</datalist>\n `\n }\n\n _onInputFocused(e: FocusEvent) {\n var { component } = this.property || {}\n\n document.dispatchEvent(\n new CustomEvent('get-all-scene-component-ids', {\n detail: {\n component,\n callback: (ids: string[]) => {\n this._ids = ids\n }\n }\n })\n )\n }\n\n _onInputChanged(e: InputEvent) {\n e.stopPropagation()\n\n this.value = (e.target as HTMLInputElement).value\n\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))\n }\n}\n"]}
@@ -1,292 +0,0 @@
1
- /**
2
- * @license Copyright © HatioLab Inc. All rights reserved.
3
- */
4
-
5
- import { LitElement, html, css } from 'lit'
6
-
7
- import './things-editor-color'
8
-
9
- /**
10
- range value editor element
11
-
12
- Example:
13
-
14
- <things-editor-value-range range=${range}
15
- rangetype=${type}
16
- valuetype=${valuetype}>
17
- </things-editor-value-range>
18
- */
19
- export default class ThingsEditorValueRange extends LitElement {
20
- static get is() {
21
- return 'things-editor-value-range'
22
- }
23
-
24
- static get properties() {
25
- return {
26
- value: Object,
27
- valuetype: String
28
- }
29
- }
30
-
31
- static get styles() {
32
- return [
33
- css`
34
- :host {
35
- display: flex;
36
- flex-direction: column;
37
- align-content: center;
38
-
39
- width: 100%;
40
- overflow: hidden;
41
- border: 1px solid #ccc;
42
- }
43
-
44
- div {
45
- display: flex;
46
- flex-flow: row nowrap;
47
- align-items: center;
48
-
49
- border-bottom: 1px solid #c0c0c0;
50
- }
51
-
52
- div:last-child {
53
- border-bottom: none;
54
- }
55
-
56
- div > * {
57
- min-width: 0px;
58
- margin: 2px;
59
- padding: 0;
60
- }
61
-
62
- button {
63
- width: 20px;
64
- text-align: center;
65
- }
66
-
67
- input,
68
- things-editor-color {
69
- flex: 1;
70
- }
71
-
72
- things-editor-color {
73
- --things-editor-color-input-color: {
74
- margin: 2px;
75
- }
76
- --things-editor-color-input-span: {
77
- width: 12px;
78
- height: 12px;
79
- }
80
- }
81
-
82
- [placeholder='value'] {
83
- flex: 2;
84
- }
85
-
86
- div {
87
- border-bottom: 1px solid #c0c0c0;
88
- }
89
-
90
- div:last-child {
91
- border-bottom: none;
92
- }
93
-
94
- input[type='checkbox'] {
95
- width: initial;
96
- }
97
- `
98
- ]
99
- }
100
-
101
- constructor() {
102
- super()
103
-
104
- this.value = {}
105
- this.valuetype = 'string'
106
- this.rangetype = 'number'
107
- }
108
-
109
- firstUpdated() {
110
- this.renderRoot.addEventListener('change', this._onChange.bind(this))
111
- }
112
-
113
- render() {
114
- return html`
115
- ${this._toArray(this.value).map(
116
- item => html`
117
- <div data-record>
118
- <input type="text" data-from placeholder="<=" .value=${item.from} />
119
- <input type="text" data-to placeholder="&gt;" .value=${item.to} />
120
-
121
- ${this.valuetype == 'boolean'
122
- ? html` <input type="checkbox" data-value .checked=${item.value} data-value-type=${this.valuetype} /> `
123
- : this.valuetype == 'color'
124
- ? html` <things-editor-color data-value .value=${item.value}> </things-editor-color> `
125
- : html`
126
- <input
127
- type="text"
128
- data-value
129
- placeholder="value"
130
- .value=${item.value}
131
- data-value-type=${this.valuetype}
132
- />
133
- `} <button class="record-action" @click=${e => this._delete(e)} tabindex="-1">-</button>
134
- </div>
135
- `
136
- )}
137
-
138
- <div data-record-new>
139
- <input type="text" data-from placeholder="<=" value="" />
140
- <input type="text" data-to placeholder="&gt;" value="" />
141
-
142
- ${this.valuetype == 'boolean'
143
- ? html` <input type="checkbox" data-value data-value-type=${this.valuetype} /> `
144
- : this.valuetype == 'color'
145
- ? html` <things-editor-color data-value value="" placeholder="value"> </things-editor-color> `
146
- : html` <input type="text" data-value placeholder="value" value="" data-value-type=${this.valuetype} /> `}
147
- <button class="record-action" @click=${e => this._add(e)} tabindex="-1">+</button>
148
- </div>
149
-
150
- <div data-record>
151
- <input type="text" data-from data-default="" disabled value="default" />
152
- <input type="text" data-to placeholder="&gt;" value="" hidden />
153
-
154
- ${this.valuetype == 'boolean'
155
- ? html`
156
- <input
157
- type="checkbox"
158
- data-value
159
- .checked=${this.value && this.value.default}
160
- data-value-type=${this.valuetype}
161
- />
162
- `
163
- : this.valuetype == 'color'
164
- ? html`
165
- <things-editor-color data-value .value=${(this.value && this.value.default) || ''} placeholder="value">
166
- </things-editor-color>
167
- `
168
- : html`
169
- <input
170
- type="text"
171
- data-value
172
- .value=${(this.value && this.value.default) || ''}
173
- placeholder="value"
174
- class="default-value"
175
- data-value-type=${this.valuetype}
176
- />
177
- `} <button class="record-action" @click="${e => this._sort(e)}">&gt;</button>
178
- </div>
179
- `
180
- }
181
-
182
- _defaultValue(type) {
183
- switch (type || this.valuetype) {
184
- case 'color':
185
- return '#000000'
186
- case 'boolean':
187
- case 'checkbox':
188
- return false
189
- default:
190
- return ''
191
- }
192
- }
193
-
194
- _onChange(e) {
195
- if (this._changingNow) return
196
-
197
- this._changingNow = true
198
-
199
- var input = e.target
200
- var value
201
- if (input.type == 'checkbox') value = Boolean(input.checked)
202
- else value = input.value
203
- var div = input.parentElement
204
- if (input.hasAttribute('data-value')) {
205
- var dataList = div.querySelectorAll('[data-value]:not([hidden])')
206
- for (var i = 0; i < dataList.length; i++) if (dataList[i] !== input) dataList[i].value = value
207
- }
208
- if (div.hasAttribute('data-record')) this._build()
209
- else if (div.hasAttribute('data-record-new') && input.hasAttribute('data-value')) this._add()
210
-
211
- this._changingNow = false
212
- }
213
-
214
- _build(includeNewRecord) {
215
- if (includeNewRecord) var records = this.renderRoot.querySelectorAll('[data-record],[data-record-new]')
216
- else var records = this.renderRoot.querySelectorAll('[data-record]')
217
- var newrange = {}
218
- for (var i = 0; i < records.length; i++) {
219
- var record = records[i]
220
- var from = record.querySelector('[data-from]').value
221
- var to = record.querySelector('[data-to]').value
222
- var inputs = record.querySelectorAll('[data-value]:not([style*="display: none"])')
223
- if (!inputs || inputs.length == 0) continue
224
- var input = inputs[inputs.length - 1]
225
- var value
226
- if (input.type == 'checkbox') value = Boolean(input.checked)
227
- else value = input.value
228
- if (from) {
229
- if (from === 'default') newrange['default'] = value || (this.valuetype == 'color' ? '#000000' : '')
230
- else newrange[`${from}~${to}`] = value
231
- }
232
- }
233
-
234
- this.value = newrange
235
- this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))
236
- }
237
-
238
- /* default를 제외한 range아이템들을 template(dom-repeat)용 배열로 변환하는 함수 */
239
- _toArray(range) {
240
- var array = []
241
- for (var key in range) {
242
- if (key == 'default') continue
243
- var fromto = key.split('~')
244
- array.push({
245
- from: fromto[0],
246
- to: fromto[1],
247
- value: range[key]
248
- })
249
- }
250
- return array
251
- }
252
-
253
- _sort(e) {
254
- var sorter =
255
- this.rangetype === 'number'
256
- ? function (a, b) {
257
- return parseFloat(b.from) < parseFloat(a.from)
258
- }
259
- : function (a, b) {
260
- return b.from < a.from
261
- }
262
- var range = this._toArray(this.value)
263
- .sort(sorter)
264
- .reduce(function (sum, i) {
265
- sum[`${i.from}~${i.to}`] = i.value
266
- return sum
267
- }, {})
268
- range.default = this.value.default
269
-
270
- this.value = range
271
- this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))
272
- }
273
-
274
- _add(e) {
275
- this._build(true)
276
- var inputs = this.renderRoot.querySelectorAll('[data-record-new] input:not([style*="display: none"])')
277
- for (var i = 0; i < inputs.length; i++) {
278
- let input = inputs[i]
279
- if (input.type == 'checkbox') input.checked = false
280
- else input.value = this._defaultValue(input.type)
281
- }
282
- inputs[0].focus()
283
- }
284
-
285
- _delete(e) {
286
- var record = e.target.parentElement
287
- record.querySelector('[data-from]').value = ''
288
- this._build()
289
- }
290
- }
291
-
292
- customElements.define(ThingsEditorValueRange.is, ThingsEditorValueRange)