@operato/input 1.0.0-beta.4 → 1.0.0-beta.43

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 (172) hide show
  1. package/.storybook/main.js +2 -2
  2. package/.storybook/server.mjs +4 -4
  3. package/CHANGELOG.md +593 -0
  4. package/demo/index-multiple-colors.html +4 -1
  5. package/demo/index-partition-keys.html +2 -5
  6. package/demo/index-select.html +1 -1
  7. package/demo/index.html +4 -0
  8. package/dist/src/index.d.ts +3 -2
  9. package/dist/src/index.js +3 -2
  10. package/dist/src/index.js.map +1 -1
  11. package/dist/src/locales/en.d.ts +8 -0
  12. package/dist/src/locales/en.js +8 -0
  13. package/dist/src/locales/en.js.map +1 -1
  14. package/dist/src/locales/ko.d.ts +8 -0
  15. package/dist/src/locales/ko.js +8 -0
  16. package/dist/src/locales/ko.js.map +1 -1
  17. package/dist/src/locales/ms.d.ts +8 -0
  18. package/dist/src/locales/ms.js +8 -0
  19. package/dist/src/locales/ms.js.map +1 -1
  20. package/dist/src/locales/zh.d.ts +8 -0
  21. package/dist/src/locales/zh.js +8 -0
  22. package/dist/src/locales/zh.js.map +1 -1
  23. package/dist/src/ox-input-3dish.js +24 -8
  24. package/dist/src/ox-input-3dish.js.map +1 -1
  25. package/dist/src/ox-input-barcode.d.ts +5 -2
  26. package/dist/src/ox-input-barcode.js +61 -31
  27. package/dist/src/ox-input-barcode.js.map +1 -1
  28. package/dist/src/ox-input-color.js +16 -11
  29. package/dist/src/ox-input-color.js.map +1 -1
  30. package/dist/src/ox-input-crontab.js +28 -10
  31. package/dist/src/ox-input-crontab.js.map +1 -1
  32. package/dist/src/ox-input-duration.d.ts +13 -0
  33. package/dist/src/ox-input-duration.js +163 -0
  34. package/dist/src/ox-input-duration.js.map +1 -0
  35. package/dist/src/ox-input-file.js +5 -3
  36. package/dist/src/ox-input-file.js.map +1 -1
  37. package/dist/src/ox-input-key-values.d.ts +41 -0
  38. package/dist/src/ox-input-key-values.js +233 -0
  39. package/dist/src/ox-input-key-values.js.map +1 -0
  40. package/dist/src/ox-input-multiple-colors.d.ts +1 -0
  41. package/dist/src/ox-input-multiple-colors.js +29 -21
  42. package/dist/src/ox-input-multiple-colors.js.map +1 -1
  43. package/dist/src/ox-input-options.d.ts +1 -0
  44. package/dist/src/ox-input-options.js +54 -14
  45. package/dist/src/ox-input-options.js.map +1 -1
  46. package/dist/src/ox-input-partition-keys.d.ts +1 -0
  47. package/dist/src/ox-input-partition-keys.js +51 -23
  48. package/dist/src/ox-input-partition-keys.js.map +1 -1
  49. package/dist/src/ox-input-range.js +35 -38
  50. package/dist/src/ox-input-range.js.map +1 -1
  51. package/dist/src/ox-input-search.d.ts +1 -1
  52. package/dist/src/ox-input-search.js +24 -7
  53. package/dist/src/ox-input-search.js.map +1 -1
  54. package/dist/src/ox-input-unit.d.ts +17 -0
  55. package/dist/src/ox-input-unit.js +122 -0
  56. package/dist/src/ox-input-unit.js.map +1 -0
  57. package/dist/src/ox-input-value-map.d.ts +2 -2
  58. package/dist/src/ox-input-value-map.js +51 -15
  59. package/dist/src/ox-input-value-map.js.map +1 -1
  60. package/dist/src/ox-input-value-ranges.d.ts +2 -2
  61. package/dist/src/ox-input-value-ranges.js +50 -23
  62. package/dist/src/ox-input-value-ranges.js.map +1 -1
  63. package/dist/src/ox-input-work-shift.js +77 -43
  64. package/dist/src/ox-input-work-shift.js.map +1 -1
  65. package/dist/src/ox-select.js +9 -1
  66. package/dist/src/ox-select.js.map +1 -1
  67. package/dist/stories/ox-checkbox.stories.d.ts +39 -0
  68. package/dist/stories/ox-checkbox.stories.js +44 -0
  69. package/dist/stories/ox-checkbox.stories.js.map +1 -0
  70. package/dist/stories/ox-input-3dish.stories.d.ts +26 -0
  71. package/dist/stories/ox-input-3dish.stories.js +59 -0
  72. package/dist/stories/ox-input-3dish.stories.js.map +1 -0
  73. package/dist/stories/ox-input-barcode.stories.d.ts +43 -0
  74. package/dist/stories/ox-input-barcode.stories.js +52 -0
  75. package/dist/stories/ox-input-barcode.stories.js.map +1 -0
  76. package/dist/stories/ox-input-crontab.stories.d.ts +25 -0
  77. package/dist/stories/ox-input-crontab.stories.js +35 -0
  78. package/dist/stories/ox-input-crontab.stories.js.map +1 -0
  79. package/dist/stories/ox-input-duration.stories.d.ts +26 -0
  80. package/dist/stories/ox-input-duration.stories.js +37 -0
  81. package/dist/stories/ox-input-duration.stories.js.map +1 -0
  82. package/dist/stories/ox-input-file.stories.d.ts +49 -0
  83. package/dist/stories/ox-input-file.stories.js +48 -0
  84. package/dist/stories/ox-input-file.stories.js.map +1 -0
  85. package/dist/stories/{index.stories.d.ts → ox-input-key-values.stories.d.ts} +7 -11
  86. package/dist/stories/ox-input-key-values.stories.js +49 -0
  87. package/dist/stories/ox-input-key-values.stories.js.map +1 -0
  88. package/dist/stories/ox-input-multiple-colors.stories.d.ts +20 -0
  89. package/dist/stories/ox-input-multiple-colors.stories.js +167 -0
  90. package/dist/stories/ox-input-multiple-colors.stories.js.map +1 -0
  91. package/dist/stories/ox-input-options.stories.d.ts +25 -0
  92. package/dist/stories/ox-input-options.stories.js +33 -0
  93. package/dist/stories/ox-input-options.stories.js.map +1 -0
  94. package/dist/stories/ox-input-partition-keys.stories.d.ts +25 -0
  95. package/dist/stories/ox-input-partition-keys.stories.js +37 -0
  96. package/dist/stories/ox-input-partition-keys.stories.js.map +1 -0
  97. package/dist/stories/ox-input-range.stories.d.ts +37 -0
  98. package/dist/stories/ox-input-range.stories.js +28 -0
  99. package/dist/stories/ox-input-range.stories.js.map +1 -0
  100. package/dist/stories/ox-input-search.stories.d.ts +33 -0
  101. package/dist/stories/ox-input-search.stories.js +35 -0
  102. package/dist/stories/ox-input-search.stories.js.map +1 -0
  103. package/dist/stories/ox-input-unit.stories.d.ts +40 -0
  104. package/dist/stories/ox-input-unit.stories.js +42 -0
  105. package/dist/stories/ox-input-unit.stories.js.map +1 -0
  106. package/dist/stories/ox-input-value-map.stories.d.ts +35 -0
  107. package/dist/stories/ox-input-value-map.stories.js +37 -0
  108. package/dist/stories/ox-input-value-map.stories.js.map +1 -0
  109. package/dist/stories/ox-input-value-ranges.stories.d.ts +35 -0
  110. package/dist/stories/ox-input-value-ranges.stories.js +37 -0
  111. package/dist/stories/ox-input-value-ranges.stories.js.map +1 -0
  112. package/dist/stories/ox-input-work-shift.stories.d.ts +26 -0
  113. package/dist/stories/ox-input-work-shift.stories.js +59 -0
  114. package/dist/stories/ox-input-work-shift.stories.js.map +1 -0
  115. package/dist/stories/ox-select.stories.d.ts +30 -0
  116. package/dist/stories/ox-select.stories.js +83 -0
  117. package/dist/stories/ox-select.stories.js.map +1 -0
  118. package/dist/tsconfig.tsbuildinfo +1 -1
  119. package/package.json +13 -11
  120. package/src/index.ts +3 -2
  121. package/src/locales/en.ts +8 -0
  122. package/src/locales/ko.ts +8 -0
  123. package/src/locales/ms.ts +8 -0
  124. package/src/locales/zh.ts +8 -0
  125. package/src/ox-input-3dish.ts +24 -8
  126. package/src/ox-input-barcode.ts +67 -34
  127. package/src/ox-input-color.ts +17 -11
  128. package/src/ox-input-crontab.ts +30 -10
  129. package/src/ox-input-duration.ts +168 -0
  130. package/src/ox-input-file.ts +7 -6
  131. package/src/ox-input-key-values.ts +270 -0
  132. package/src/ox-input-multiple-colors.ts +29 -21
  133. package/src/ox-input-options.ts +53 -13
  134. package/src/ox-input-partition-keys.ts +51 -22
  135. package/src/ox-input-range.ts +35 -38
  136. package/src/ox-input-search.ts +26 -8
  137. package/src/ox-input-unit.ts +123 -0
  138. package/src/ox-input-value-map.ts +52 -16
  139. package/src/ox-input-value-ranges.ts +52 -25
  140. package/src/ox-input-work-shift.ts +78 -43
  141. package/src/ox-select.ts +12 -3
  142. package/stories/ox-checkbox.stories.ts +69 -0
  143. package/stories/ox-input-3dish.stories.ts +73 -0
  144. package/stories/ox-input-barcode.stories.ts +78 -0
  145. package/stories/ox-input-code.stories.ts_ +51 -0
  146. package/stories/ox-input-crontab.stories.ts +49 -0
  147. package/stories/ox-input-duration.stories.ts +51 -0
  148. package/stories/ox-input-file.stories.ts +77 -0
  149. package/stories/ox-input-key-values.stories.ts +64 -0
  150. package/stories/ox-input-multiple-colors.stories.ts +178 -0
  151. package/stories/ox-input-options.stories.ts +47 -0
  152. package/stories/ox-input-partition-keys.stories.ts +51 -0
  153. package/stories/ox-input-range.stories.ts +45 -0
  154. package/stories/ox-input-search.stories.ts +56 -0
  155. package/stories/ox-input-unit.stories.ts +66 -0
  156. package/stories/ox-input-value-map.stories.ts +58 -0
  157. package/stories/ox-input-value-ranges.stories.ts +58 -0
  158. package/stories/ox-input-work-shift.stories.ts +73 -0
  159. package/stories/ox-select.stories.ts +101 -0
  160. package/themes/app-theme.css +142 -0
  161. package/themes/input-theme.css +19 -0
  162. package/translations/en.json +45 -1
  163. package/translations/ko.json +43 -1
  164. package/translations/ms.json +43 -1
  165. package/translations/zh.json +43 -1
  166. package/xliff/en.xlf +24 -0
  167. package/xliff/ko.xlf +32 -0
  168. package/xliff/ms.xlf +24 -0
  169. package/xliff/zh.xlf +24 -0
  170. package/dist/stories/index.stories.js +0 -33
  171. package/dist/stories/index.stories.js.map +0 -1
  172. package/stories/index.stories.ts +0 -52
package/src/ox-select.ts CHANGED
@@ -5,14 +5,15 @@
5
5
  import '@material/mwc-icon'
6
6
  import '@operato/popup/ox-popup-list.js'
7
7
 
8
- import { PropertyValues, css, html } from 'lit'
9
- import { customElement, property, query, state } from 'lit/decorators.js'
8
+ import { css, html, PropertyValues } from 'lit'
9
+ import { customElement, property, state } from 'lit/decorators.js'
10
10
 
11
- import { OxFormField } from './ox-form-field.js'
12
11
  import { OxPopupList } from '@operato/popup'
13
12
  import { TooltipStyles } from '@operato/styles'
14
13
  import { detectOverflow } from '@operato/utils'
15
14
 
15
+ import { OxFormField } from './ox-form-field.js'
16
+
16
17
  function onmouseover(e: Event) {
17
18
  const element = e.target as HTMLSpanElement
18
19
  if (detectOverflow(element)) {
@@ -33,6 +34,7 @@ export class Select extends OxFormField {
33
34
  :host {
34
35
  display: block;
35
36
  position: relative;
37
+ border-bottom: var(--border-dark-color);
36
38
  }
37
39
 
38
40
  div {
@@ -41,6 +43,10 @@ export class Select extends OxFormField {
41
43
  align-items: center;
42
44
  justify-content: center;
43
45
  cursor: pointer;
46
+ padding: var(--input-padding);
47
+ font: var(--input-font);
48
+ color: var(--primary-text-color);
49
+ max-height: 17px;
44
50
  }
45
51
 
46
52
  span {
@@ -58,6 +64,9 @@ export class Select extends OxFormField {
58
64
  color: var(--theme-primary-text-color, #3c3938);
59
65
  opacity: 0.7;
60
66
  }
67
+ div:hover mwc-icon {
68
+ color: var(--primary-color);
69
+ }
61
70
 
62
71
  ::slotted(ox-popup-list) {
63
72
  width: 100%;
@@ -0,0 +1,69 @@
1
+ import '../src/ox-checkbox.js'
2
+
3
+ import { TemplateResult, html } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-checkbox',
7
+ component: 'ox-checkbox',
8
+ argTypes: {
9
+ label: { control: 'text' },
10
+ name: { control: 'text' },
11
+ value: { control: 'boolean' },
12
+ indeterminatable: { control: 'boolean' },
13
+ indeterminate: { control: 'boolean' }
14
+ }
15
+ }
16
+
17
+ interface Story<T> {
18
+ (args: T): TemplateResult
19
+ args?: Partial<T>
20
+ argTypes?: Record<string, unknown>
21
+ }
22
+
23
+ interface ArgTypes {
24
+ label?: string
25
+ name?: string
26
+ value?: boolean
27
+ indeterminatable?: boolean
28
+ indeterminate?: boolean
29
+ }
30
+
31
+ const Template: Story<ArgTypes> = ({
32
+ label = 'Checkbox',
33
+ name = 'hello',
34
+ value = true,
35
+ indeterminatable = false,
36
+ indeterminate = false
37
+ }: ArgTypes) => html`
38
+ <ox-checkbox
39
+ @click=${(e: MouseEvent) => console.log('clicked')}
40
+ name=${name}
41
+ .checked=${value}
42
+ ?indeterminatable=${indeterminatable}
43
+ ?indeterminate=${indeterminate}
44
+ >
45
+ ${label}
46
+ </ox-checkbox>
47
+ `
48
+
49
+ export const Regular = Template.bind({})
50
+ Regular.args = {
51
+ label: 'label',
52
+ name: 'label',
53
+ value: false
54
+ }
55
+
56
+ export const CustomActivated = Template.bind({})
57
+ CustomActivated.args = {
58
+ label: 'Activated',
59
+ name: 'activated',
60
+ indeterminate: false,
61
+ value: true
62
+ }
63
+
64
+ export const CustomIndeterminated = Template.bind({})
65
+ CustomIndeterminated.args = {
66
+ label: 'Indeterminated',
67
+ indeterminate: true,
68
+ value: true
69
+ }
@@ -0,0 +1,73 @@
1
+ import '../src/ox-input-3dish.js'
2
+ import '../src/locale/locale-picker.js'
3
+
4
+ import { html, TemplateResult } from 'lit'
5
+
6
+ export default {
7
+ title: 'ox-input-3dish',
8
+ component: 'ox-input-3dish',
9
+ argTypes: {
10
+ value: { control: 'object' },
11
+ name: { 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
+ name?: string
23
+ value?: object
24
+ }
25
+
26
+ const Template: Story<ArgTypes> = ({ name = '3dish', value = [] }: ArgTypes) => html`
27
+ <link href="/themes/app-theme.css" rel="stylesheet" />
28
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
29
+ <style>
30
+ body {
31
+ }
32
+ </style>
33
+
34
+ <locale-picker></locale-picker>
35
+ <br /><br />
36
+
37
+ <ox-input-3dish
38
+ @change=${(e: Event) => {
39
+ console.log((e.target as HTMLInputElement).value)
40
+ }}
41
+ name=${name}
42
+ .value=${value}
43
+ >
44
+ </ox-input-3dish>
45
+ `
46
+
47
+ export const Regular = Template.bind({})
48
+ Regular.args = {
49
+ name: '3dish',
50
+ value: [
51
+ {
52
+ name: 'DAY',
53
+ fromDate: -1,
54
+ fromTime: '22:00',
55
+ toDate: 0,
56
+ toTime: '06:00'
57
+ },
58
+ {
59
+ name: 'SWING',
60
+ fromDate: 0,
61
+ fromTime: '06:00',
62
+ toDate: 0,
63
+ toTime: '14:00'
64
+ },
65
+ {
66
+ name: 'NIGHT',
67
+ fromDate: 0,
68
+ fromTime: '14:00',
69
+ toDate: 0,
70
+ toTime: '22:00'
71
+ }
72
+ ]
73
+ }
@@ -0,0 +1,78 @@
1
+ import '../src/ox-input-barcode.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-barcode',
7
+ component: 'ox-input-barcode',
8
+ argTypes: {
9
+ name: { control: 'text' },
10
+ value: { control: 'text' },
11
+ scannable: { control: 'boolean' },
12
+ withoutEnter: { control: 'boolean' },
13
+ englishOnly: { control: 'boolean' },
14
+ selectAfterChange: { control: 'boolean' }
15
+ }
16
+ }
17
+
18
+ interface Story<T> {
19
+ (args: T): TemplateResult
20
+ args?: Partial<T>
21
+ argTypes?: Record<string, unknown>
22
+ }
23
+
24
+ interface ArgTypes {
25
+ name?: string
26
+ value?: string
27
+ scannable?: boolean
28
+ withoutEnter?: boolean
29
+ englishOnly?: boolean
30
+ selectAfterChange?: boolean
31
+ }
32
+
33
+ const Template: Story<ArgTypes> = ({
34
+ name = 'barcode',
35
+ scannable = true,
36
+ withoutEnter = true,
37
+ englishOnly = false,
38
+ selectAfterChange = false
39
+ }: ArgTypes) => html`
40
+ <link href="/themes/app-theme.css" rel="stylesheet" />
41
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
42
+ <ox-input-barcode
43
+ name=${name}
44
+ ?without-enter=${withoutEnter}
45
+ ?scannable=${scannable}
46
+ ?english-only=${englishOnly}
47
+ ?select-after-change=${selectAfterChange}
48
+ @change=${(e: CustomEvent) => console.log((e.target as HTMLInputElement).value)}
49
+ >
50
+ </ox-input-barcode>
51
+ `
52
+
53
+ export const Regular = Template.bind({})
54
+ Regular.args = {
55
+ name: 'barcode',
56
+ scannable: true,
57
+ withoutEnter: true,
58
+ englishOnly: false,
59
+ selectAfterChange: false
60
+ }
61
+
62
+ export const EnglishOnly = Template.bind({})
63
+ EnglishOnly.args = {
64
+ name: 'barcode',
65
+ scannable: true,
66
+ withoutEnter: true,
67
+ englishOnly: true,
68
+ selectAfterChange: false
69
+ }
70
+
71
+ export const selectAfterChange = Template.bind({})
72
+ selectAfterChange.args = {
73
+ name: 'barcode',
74
+ scannable: true,
75
+ withoutEnter: true,
76
+ englishOnly: true,
77
+ selectAfterChange: true
78
+ }
@@ -0,0 +1,51 @@
1
+ import '../src/ox-input-code.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-code',
7
+ component: 'ox-input-code',
8
+ argTypes: {
9
+ value: { control: 'object' },
10
+ name: { control: 'text' }
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
+ name?: string
22
+ value?: object
23
+ }
24
+
25
+ const Template: Story<ArgTypes> = ({ name = 'code', value = {} }: ArgTypes) => html`
26
+ <link href="/themes/app-theme.css" rel="stylesheet" />
27
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
28
+ <style>
29
+ body {
30
+ }
31
+ </style>
32
+
33
+ <ox-input-code
34
+ @change=${(e: Event) => {
35
+ console.log((e.target as HTMLInputElement).value)
36
+ }}
37
+ name=${name}
38
+ .value=${value}
39
+ >
40
+ </ox-input-code>
41
+ `
42
+
43
+ export const Regular = Template.bind({})
44
+ Regular.args = {
45
+ name: 'code',
46
+ value: {
47
+ A: 'A',
48
+ B: 'B',
49
+ C: 'C'
50
+ }
51
+ }
@@ -0,0 +1,49 @@
1
+ import '../src/ox-input-crontab.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-crontab',
7
+ component: 'ox-input-crontab',
8
+ argTypes: {
9
+ value: { control: 'text' },
10
+ name: { control: 'text' }
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
+ name?: string
22
+ value?: string
23
+ }
24
+
25
+ const Template: Story<ArgTypes> = ({ name = 'crontab', value = '* * * * * *' }: ArgTypes) => html`
26
+ <link href="/themes/app-theme.css" rel="stylesheet" />
27
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
28
+ <style>
29
+ body {
30
+ }
31
+ </style>
32
+
33
+ <br /><br />
34
+
35
+ <ox-input-crontab
36
+ @change=${(e: Event) => {
37
+ console.log((e.target as HTMLInputElement).value)
38
+ }}
39
+ name=${name}
40
+ .value=${value}
41
+ >
42
+ </ox-input-crontab>
43
+ `
44
+
45
+ export const Regular = Template.bind({})
46
+ Regular.args = {
47
+ name: 'crontab',
48
+ value: '* * * * * *'
49
+ }
@@ -0,0 +1,51 @@
1
+ import '../src/ox-input-duration.js'
2
+ import '../src/locale/locale-picker.js'
3
+
4
+ import { html, TemplateResult } from 'lit'
5
+
6
+ export default {
7
+ title: 'ox-input-duration',
8
+ component: 'ox-input-duration',
9
+ argTypes: {
10
+ value: { control: 'number' },
11
+ name: { 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
+ name?: string
23
+ value?: number
24
+ }
25
+
26
+ const Template: Story<ArgTypes> = ({ name = 'duration', value = 3601 }: ArgTypes) => html`
27
+ <link href="/themes/app-theme.css" rel="stylesheet" />
28
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
29
+ <style>
30
+ body {
31
+ }
32
+ </style>
33
+
34
+ <locale-picker></locale-picker>
35
+ <br /><br />
36
+
37
+ <ox-input-duration
38
+ @change=${(e: Event) => {
39
+ console.log((e.target as HTMLInputElement).value)
40
+ }}
41
+ name=${name}
42
+ .value=${value}
43
+ >
44
+ </ox-input-duration>
45
+ `
46
+
47
+ export const Regular = Template.bind({})
48
+ Regular.args = {
49
+ name: 'duration',
50
+ value: 3601
51
+ }
@@ -0,0 +1,77 @@
1
+ import '../src/ox-input-file.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-file',
7
+ component: 'ox-input-file',
8
+ argTypes: {
9
+ name: { control: 'text' },
10
+ multiple: { control: 'boolean' },
11
+ accept: { control: 'text' },
12
+ icon: { control: 'text' },
13
+ label: { control: 'text' },
14
+ description: { control: 'text' },
15
+ hideFileList: { control: 'boolean' },
16
+ attachFileList: { control: 'boolean' }
17
+ }
18
+ }
19
+
20
+ interface Story<T> {
21
+ (args: T): TemplateResult
22
+ args?: Partial<T>
23
+ argTypes?: Record<string, unknown>
24
+ }
25
+
26
+ interface ArgTypes {
27
+ label?: string
28
+ name?: string
29
+ multiple?: boolean
30
+ accept?: string
31
+ icon?: string
32
+ description?: string
33
+ hideFileList?: boolean
34
+ attachFileList?: boolean
35
+ }
36
+
37
+ const Template: Story<ArgTypes> = ({
38
+ label = 'select files',
39
+ name = 'file',
40
+ multiple = true,
41
+ accept,
42
+ icon,
43
+ description,
44
+ hideFileList = false,
45
+ attachFileList = false
46
+ }: ArgTypes) => html`
47
+ <link href="/themes/app-theme.css" rel="stylesheet" />
48
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
49
+ <style>
50
+ body {
51
+ }
52
+ </style>
53
+
54
+ <ox-input-file
55
+ label=${label}
56
+ name=${name}
57
+ ?multiple=${multiple}
58
+ ?hide-filelist=${hideFileList}
59
+ ?attach-filelist=${attachFileList}
60
+ accept=${accept}
61
+ icon=${icon}
62
+ description=${description}
63
+ >
64
+ </ox-input-file>
65
+ `
66
+
67
+ export const Regular = Template.bind({})
68
+ Regular.args = {
69
+ label: 'select files',
70
+ name: 'files',
71
+ multiple: true,
72
+ hideFileList: false,
73
+ attachFileList: false,
74
+ accept: '*.*',
75
+ icon: 'upload',
76
+ description: 'drop files here!'
77
+ }
@@ -0,0 +1,64 @@
1
+ import '../src/ox-input-key-values.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-key-values',
7
+ component: 'ox-input-key-values',
8
+ argTypes: {
9
+ name: { control: 'text' },
10
+ value: { control: 'object' },
11
+ options: { control: 'object' }
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
+ name?: string
23
+ value?: object
24
+ options?: object
25
+ }
26
+
27
+ const Template: Story<ArgTypes> = ({ name = 'key-values', value = {}, options = [] }: ArgTypes) => html`
28
+ <link href="/themes/app-theme.css" rel="stylesheet" />
29
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
30
+ <style>
31
+ body {
32
+ }
33
+ </style>
34
+
35
+ <ox-input-key-values
36
+ @change=${(e: Event) => {
37
+ console.log((e.target as HTMLInputElement).value)
38
+ }}
39
+ name=${name}
40
+ .value=${value}
41
+ .options=${options}
42
+ >
43
+ </ox-input-key-values>
44
+ `
45
+
46
+ export const Regular = Template.bind({})
47
+ Regular.args = {
48
+ name: 'key-values',
49
+ value: {
50
+ A: 'A',
51
+ B: 'B',
52
+ C: 'C'
53
+ },
54
+ options: [
55
+ {
56
+ display: '초기값',
57
+ value: 'ABC'
58
+ },
59
+ {
60
+ display: '후기값',
61
+ value: 'XYZ'
62
+ }
63
+ ]
64
+ }