@3t-transform/threeteeui 0.1.42 → 0.1.44

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 (163) hide show
  1. package/dist/cjs/{domsanitiser.options-277161b9.js → domsanitiser.options-975e3317.js} +12 -12
  2. package/dist/cjs/{index-76f14107.js → index-2ea393bb.js} +146 -3
  3. package/dist/cjs/loader.cjs.js +4 -19
  4. package/dist/cjs/tttx-button.cjs.entry.js +24 -24
  5. package/dist/cjs/tttx-dialog-box.cjs.entry.js +80 -0
  6. package/dist/cjs/tttx-filter.cjs.entry.js +177 -159
  7. package/dist/cjs/tttx-form.cjs.entry.js +458 -458
  8. package/dist/cjs/tttx-icon.cjs.entry.js +11 -11
  9. package/dist/cjs/tttx-keyvalue-block.cjs.entry.js +59 -59
  10. package/dist/cjs/tttx-list.cjs.entry.js +32 -32
  11. package/dist/cjs/tttx-loading-spinner.cjs.entry.js +16 -16
  12. package/dist/cjs/tttx-sorter.cjs.entry.js +102 -102
  13. package/dist/cjs/tttx-standalone-input.cjs.entry.js +79 -79
  14. package/dist/cjs/tttx-toolbar.cjs.entry.js +10 -10
  15. package/dist/cjs/tttx.cjs.js +9 -117
  16. package/dist/collection/collection-manifest.json +3 -2
  17. package/dist/collection/components/atoms/tttx-button/tttx-button.js +110 -110
  18. package/dist/collection/components/atoms/tttx-button/tttx-button.stories.js +14 -14
  19. package/dist/collection/components/atoms/tttx-icon/tttx-icon.js +62 -62
  20. package/dist/collection/components/atoms/tttx-icon/tttx-icon.stories.js +22 -22
  21. package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.js +109 -109
  22. package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.js +38 -38
  23. package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.js +67 -67
  24. package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.js +17 -17
  25. package/dist/collection/components/molecules/tttx-dialog-box/tttx-dialog-box.css +146 -0
  26. package/dist/collection/components/molecules/tttx-dialog-box/tttx-dialog-box.js +172 -0
  27. package/dist/collection/components/molecules/tttx-dialog-box/tttx-dialog-box.stories.js +380 -0
  28. package/dist/collection/components/molecules/tttx-filter/tttx-filter.js +369 -334
  29. package/dist/collection/components/molecules/tttx-filter/tttx-filter.stories.js +73 -62
  30. package/dist/collection/components/molecules/tttx-form/lib/setErrorState.js +37 -37
  31. package/dist/collection/components/molecules/tttx-form/lib/validityCheck.js +61 -61
  32. package/dist/collection/components/molecules/tttx-form/tttx-form.js +479 -479
  33. package/dist/collection/components/molecules/tttx-form/tttx-form.stories.js +272 -272
  34. package/dist/collection/components/molecules/tttx-list/tttx-list.js +105 -105
  35. package/dist/collection/components/molecules/tttx-list/tttx-list.stories.js +43 -43
  36. package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.js +224 -224
  37. package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.stories.js +42 -42
  38. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.js +759 -759
  39. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.js +172 -172
  40. package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.js +44 -44
  41. package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.stories.js +14 -14
  42. package/dist/collection/components/palette.stories.js +7 -7
  43. package/dist/collection/docs/gettingstarted-developer.stories.js +5 -5
  44. package/dist/collection/icons.js +2838 -2838
  45. package/dist/collection/index.js +1 -1
  46. package/dist/collection/shared/domsanitiser.options.js +14 -14
  47. package/dist/components/domsanitiser.options.js +15 -45
  48. package/dist/components/index.d.ts +10 -0
  49. package/dist/components/index.js +2 -5
  50. package/dist/components/tttx-button.js +1 -54
  51. package/dist/{tttx/tttx-button.entry.js → components/tttx-button2.js} +52 -26
  52. package/dist/components/tttx-dialog-box.d.ts +11 -0
  53. package/dist/components/tttx-dialog-box.js +110 -0
  54. package/dist/components/tttx-filter.js +210 -191
  55. package/dist/components/tttx-form.js +475 -475
  56. package/dist/components/tttx-icon2.js +28 -28
  57. package/dist/components/tttx-keyvalue-block.js +76 -76
  58. package/dist/components/tttx-list.js +53 -53
  59. package/dist/components/tttx-loading-spinner.js +33 -33
  60. package/dist/components/tttx-sorter.js +130 -130
  61. package/dist/components/tttx-standalone-input.js +130 -130
  62. package/dist/components/tttx-toolbar.js +26 -26
  63. package/dist/esm/{domsanitiser.options-cc420431.js → domsanitiser.options-3c7ded83.js} +12 -12
  64. package/dist/esm/{index-9cde46a5.js → index-018a3e54.js} +146 -4
  65. package/dist/esm/loader.js +4 -19
  66. package/dist/esm/polyfills/core-js.js +0 -0
  67. package/dist/esm/polyfills/css-shim.js +1 -1
  68. package/dist/esm/polyfills/dom.js +0 -0
  69. package/dist/esm/polyfills/es5-html-element.js +0 -0
  70. package/dist/esm/polyfills/index.js +0 -0
  71. package/dist/esm/polyfills/system.js +0 -0
  72. package/dist/esm/tttx-button.entry.js +24 -24
  73. package/dist/esm/tttx-dialog-box.entry.js +76 -0
  74. package/dist/esm/tttx-filter.entry.js +177 -159
  75. package/dist/esm/tttx-form.entry.js +458 -458
  76. package/dist/esm/tttx-icon.entry.js +11 -11
  77. package/dist/esm/tttx-keyvalue-block.entry.js +59 -59
  78. package/dist/esm/tttx-list.entry.js +32 -32
  79. package/dist/esm/tttx-loading-spinner.entry.js +16 -16
  80. package/dist/esm/tttx-sorter.entry.js +102 -102
  81. package/dist/esm/tttx-standalone-input.entry.js +79 -79
  82. package/dist/esm/tttx-toolbar.entry.js +10 -10
  83. package/dist/esm/tttx.js +6 -117
  84. package/dist/tttx/index.esm.js +0 -1
  85. package/dist/tttx/{p-e53c7f9d.entry.js → p-01863bf1.entry.js} +1 -1
  86. package/dist/tttx/{p-4e637d50.entry.js → p-0ed6f369.entry.js} +1 -1
  87. package/dist/tttx/p-2dd43e97.entry.js +1 -0
  88. package/dist/tttx/{p-aef96333.entry.js → p-2e135be9.entry.js} +1 -1
  89. package/dist/tttx/p-350ddb03.js +3 -0
  90. package/dist/tttx/{p-d2f1aa8e.entry.js → p-48b15a3d.entry.js} +1 -1
  91. package/dist/tttx/{p-561224f5.entry.js → p-5e91cf1c.entry.js} +1 -1
  92. package/dist/tttx/p-71c244bd.js +2 -0
  93. package/dist/tttx/{p-dc2a37b0.entry.js → p-7bba2014.entry.js} +1 -1
  94. package/dist/tttx/p-d075a2c0.entry.js +1 -0
  95. package/dist/tttx/{p-bd1edaed.entry.js → p-deec335c.entry.js} +1 -1
  96. package/dist/tttx/{p-9f1e9cc1.entry.js → p-e061910d.entry.js} +1 -1
  97. package/dist/tttx/{p-f885f17a.entry.js → p-f247a7bc.entry.js} +1 -1
  98. package/dist/tttx/tttx.esm.js +1 -129
  99. package/dist/types/components/atoms/tttx-button/tttx-button.d.ts +10 -10
  100. package/dist/types/components/atoms/tttx-button/tttx-button.stories.d.ts +10 -10
  101. package/dist/types/components/atoms/tttx-icon/tttx-icon.d.ts +5 -5
  102. package/dist/types/components/atoms/tttx-icon/tttx-icon.stories.d.ts +20 -20
  103. package/dist/types/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.d.ts +7 -7
  104. package/dist/types/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.d.ts +9 -9
  105. package/dist/types/components/atoms/tttx-loading-spinner/tttx-loading-spinner.d.ts +6 -6
  106. package/dist/types/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.d.ts +17 -17
  107. package/dist/types/components/molecules/tttx-dialog-box/interfaces.d.ts +25 -0
  108. package/dist/types/components/molecules/tttx-dialog-box/tttx-dialog-box.d.ts +18 -0
  109. package/dist/types/components/molecules/tttx-dialog-box/tttx-dialog-box.stories.d.ts +23 -0
  110. package/dist/types/components/molecules/tttx-filter/tttx-filter.d.ts +41 -39
  111. package/dist/types/components/molecules/tttx-filter/tttx-filter.stories.d.ts +70 -68
  112. package/dist/types/components/molecules/tttx-form/lib/setErrorState.d.ts +13 -13
  113. package/dist/types/components/molecules/tttx-form/lib/validityCheck.d.ts +17 -17
  114. package/dist/types/components/molecules/tttx-form/tttx-form.d.ts +133 -133
  115. package/dist/types/components/molecules/tttx-form/tttx-form.stories.d.ts +278 -278
  116. package/dist/types/components/molecules/tttx-list/tttx-list.d.ts +11 -11
  117. package/dist/types/components/molecules/tttx-list/tttx-list.stories.d.ts +14 -14
  118. package/dist/types/components/molecules/tttx-sorter/tttx-sorter.d.ts +19 -19
  119. package/dist/types/components/molecules/tttx-sorter/tttx-sorter.stories.d.ts +30 -30
  120. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.d.ts +69 -69
  121. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.d.ts +143 -143
  122. package/dist/types/components/molecules/tttx-toolbar/tttx-toolbar.d.ts +4 -4
  123. package/dist/types/components/molecules/tttx-toolbar/tttx-toolbar.stories.d.ts +13 -13
  124. package/dist/types/components/palette.stories.d.ts +6 -6
  125. package/dist/types/components.d.ts +26 -0
  126. package/dist/types/docs/gettingstarted-developer.stories.d.ts +5 -5
  127. package/dist/types/icons.d.ts +2 -2
  128. package/dist/types/index.d.ts +1 -1
  129. package/dist/types/shared/domsanitiser.options.d.ts +10 -10
  130. package/dist/types/stencil-public-runtime.d.ts +59 -3
  131. package/loader/index.d.ts +9 -0
  132. package/package.json +2 -2
  133. package/dist/cjs/app-globals-3a1e7e63.js +0 -5
  134. package/dist/cjs/css-shim-211819bc.js +0 -6
  135. package/dist/cjs/dom-9deb26c8.js +0 -75
  136. package/dist/cjs/domsanitiser.options-3f1501b5.js +0 -1697
  137. package/dist/cjs/index-39a867c5.js +0 -3298
  138. package/dist/cjs/shadow-css-bf3843d2.js +0 -389
  139. package/dist/esm/app-globals-0f993ce5.js +0 -3
  140. package/dist/esm/css-shim-9d54a2f2.js +0 -4
  141. package/dist/esm/dom-6be6f662.js +0 -73
  142. package/dist/esm/domsanitiser.options-6f2878c8.js +0 -1694
  143. package/dist/esm/index-e3e64631.js +0 -3262
  144. package/dist/esm/shadow-css-ed4599f8.js +0 -387
  145. package/dist/tttx/app-globals-0f993ce5.js +0 -3
  146. package/dist/tttx/css-shim-9d54a2f2.js +0 -4
  147. package/dist/tttx/dom-6be6f662.js +0 -73
  148. package/dist/tttx/domsanitiser.options-6f2878c8.js +0 -1694
  149. package/dist/tttx/index-e3e64631.js +0 -3262
  150. package/dist/tttx/p-3b1be372.entry.js +0 -1
  151. package/dist/tttx/p-b4290a5b.js +0 -3
  152. package/dist/tttx/p-d0ff9ad0.entry.js +0 -1
  153. package/dist/tttx/p-db059a69.js +0 -2
  154. package/dist/tttx/shadow-css-ed4599f8.js +0 -387
  155. package/dist/tttx/tttx-filter.entry.js +0 -165
  156. package/dist/tttx/tttx-form.entry.js +0 -468
  157. package/dist/tttx/tttx-icon.entry.js +0 -17
  158. package/dist/tttx/tttx-keyvalue-block.entry.js +0 -65
  159. package/dist/tttx/tttx-list.entry.js +0 -38
  160. package/dist/tttx/tttx-loading-spinner.entry.js +0 -22
  161. package/dist/tttx/tttx-sorter.entry.js +0 -108
  162. package/dist/tttx/tttx-standalone-input.entry.js +0 -85
  163. package/dist/tttx/tttx-toolbar.entry.js +0 -16
@@ -1,160 +1,160 @@
1
- import { withActions } from '@storybook/addon-actions/decorator';
2
- export default {
3
- title: 'molecules/Form',
4
- component: 'tttx-form',
5
- parameters: {
6
- actions: {
7
- handles: ['dataSubmitted', 'dataChanged'],
8
- },
9
- },
10
- decorators: [withActions],
11
- };
12
- const formSchema = {
13
- properties: {
14
- title: {
15
- type: 'string',
16
- format: 'string',
17
- form: {
18
- type: 'text',
19
- placeholder: 'Mr, Mrs, Dr, Hon Rev',
20
- label: 'Title',
21
- },
22
- },
23
- forename: {
24
- type: 'string',
25
- format: 'string',
26
- form: {
27
- type: 'text',
28
- placeholder: 'John',
29
- label: 'Forename',
30
- validation: {
31
- required: {
32
- message: 'Please enter your forename',
33
- },
34
- },
35
- },
36
- },
37
- surname: {
38
- type: 'string',
39
- format: 'string',
40
- form: {
41
- type: 'text',
42
- placeholder: 'Doe',
43
- label: 'Surname',
44
- validation: {
45
- required: {
46
- message: 'Please enter your surname',
47
- },
48
- },
49
- },
50
- },
51
- postcode: {
52
- type: 'string',
53
- format: 'string',
54
- form: {
55
- type: 'text',
56
- placeholder: 'AB10',
57
- label: 'Start of postcode',
58
- validation: {
59
- required: {
60
- message: 'Please enter the beginning of your postcode',
61
- },
62
- pattern: {
63
- pattern: '^([A-Za-z][0-9])$|^([A-Za-z][0-9]{2})$|^([A-Za-z]{2}[0-9])$|^([A-Za-z]{2}[0-9]{2})$|^([A-Za-z][0-9][A-Za-z])$|^([A-Za-z]{2}[0-9][A-Za-z])$|^(GIR|BF|BX|XX)$',
64
- message: 'Please enter the first half of your postcode. EG: ZZ99',
65
- },
66
- maxlength: 4,
67
- },
68
- },
69
- },
70
- age: {
71
- type: 'number',
72
- format: 'number',
73
- form: {
74
- type: 'number',
75
- placeholder: '',
76
- label: 'Age',
77
- validation: {
78
- required: {
79
- message: 'Please enter your age',
80
- },
81
- badInput: {
82
- message: 'Please enter a number',
83
- },
84
- },
85
- },
86
- },
87
- dob: {
88
- type: 'string',
89
- format: 'date-time',
90
- form: {
91
- type: 'date',
92
- placeholder: '',
93
- label: 'Date of birth',
94
- validation: {
95
- required: {
96
- message: 'Please enter your date of birth',
97
- },
98
- minmax: {
99
- min: '1900-01-01',
100
- max: '2100-12-31',
101
- message: 'Please enter a date between 1900 and 2100',
102
- },
103
- },
104
- },
105
- },
106
- dropdown: {
107
- form: {
108
- type: 'select',
109
- blankDefault: true,
110
- label: 'Food category',
111
- options: [
112
- { label: 'Choose an option', value: '', placeholder: true },
113
- { label: 'Poultry', value: 'Chicken' },
114
- { label: 'Fish', value: 'Salmon' },
115
- { label: 'Veg', value: 'Lettuce' },
116
- ],
117
- validation: {
118
- required: {
119
- message: 'Must select a value',
120
- },
121
- },
122
- },
123
- },
124
- permissions: {
125
- form: {
126
- type: 'checkbox',
127
- label: 'Permissions',
128
- inlineLabel: 'Please grant permissions to use data',
129
- validation: {
130
- required: {
131
- message: 'Please grant permissions to use data',
132
- },
133
- },
134
- },
135
- },
136
- },
137
- };
138
- export const SingleFormItem = args => `<tttx-form formSchema='${JSON.stringify(args.formSchema)}'></tttx-form>`;
139
- SingleFormItem.args = {
140
- formSchema: {
141
- properties: {
142
- input: {
143
- type: 'string',
144
- format: 'string',
145
- form: {
146
- type: 'text',
147
- label: 'Input Field',
148
- validation: {
149
- required: {
150
- message: 'Please enter something',
151
- },
152
- },
153
- },
154
- },
155
- },
156
- },
157
- };
1
+ import { withActions } from '@storybook/addon-actions/decorator';
2
+ export default {
3
+ title: 'molecules/Form',
4
+ component: 'tttx-form',
5
+ parameters: {
6
+ actions: {
7
+ handles: ['dataSubmitted', 'dataChanged'],
8
+ },
9
+ },
10
+ decorators: [withActions],
11
+ };
12
+ const formSchema = {
13
+ properties: {
14
+ title: {
15
+ type: 'string',
16
+ format: 'string',
17
+ form: {
18
+ type: 'text',
19
+ placeholder: 'Mr, Mrs, Dr, Hon Rev',
20
+ label: 'Title',
21
+ },
22
+ },
23
+ forename: {
24
+ type: 'string',
25
+ format: 'string',
26
+ form: {
27
+ type: 'text',
28
+ placeholder: 'John',
29
+ label: 'Forename',
30
+ validation: {
31
+ required: {
32
+ message: 'Please enter your forename',
33
+ },
34
+ },
35
+ },
36
+ },
37
+ surname: {
38
+ type: 'string',
39
+ format: 'string',
40
+ form: {
41
+ type: 'text',
42
+ placeholder: 'Doe',
43
+ label: 'Surname',
44
+ validation: {
45
+ required: {
46
+ message: 'Please enter your surname',
47
+ },
48
+ },
49
+ },
50
+ },
51
+ postcode: {
52
+ type: 'string',
53
+ format: 'string',
54
+ form: {
55
+ type: 'text',
56
+ placeholder: 'AB10',
57
+ label: 'Start of postcode',
58
+ validation: {
59
+ required: {
60
+ message: 'Please enter the beginning of your postcode',
61
+ },
62
+ pattern: {
63
+ pattern: '^([A-Za-z][0-9])$|^([A-Za-z][0-9]{2})$|^([A-Za-z]{2}[0-9])$|^([A-Za-z]{2}[0-9]{2})$|^([A-Za-z][0-9][A-Za-z])$|^([A-Za-z]{2}[0-9][A-Za-z])$|^(GIR|BF|BX|XX)$',
64
+ message: 'Please enter the first half of your postcode. EG: ZZ99',
65
+ },
66
+ maxlength: 4,
67
+ },
68
+ },
69
+ },
70
+ age: {
71
+ type: 'number',
72
+ format: 'number',
73
+ form: {
74
+ type: 'number',
75
+ placeholder: '',
76
+ label: 'Age',
77
+ validation: {
78
+ required: {
79
+ message: 'Please enter your age',
80
+ },
81
+ badInput: {
82
+ message: 'Please enter a number',
83
+ },
84
+ },
85
+ },
86
+ },
87
+ dob: {
88
+ type: 'string',
89
+ format: 'date-time',
90
+ form: {
91
+ type: 'date',
92
+ placeholder: '',
93
+ label: 'Date of birth',
94
+ validation: {
95
+ required: {
96
+ message: 'Please enter your date of birth',
97
+ },
98
+ minmax: {
99
+ min: '1900-01-01',
100
+ max: '2100-12-31',
101
+ message: 'Please enter a date between 1900 and 2100',
102
+ },
103
+ },
104
+ },
105
+ },
106
+ dropdown: {
107
+ form: {
108
+ type: 'select',
109
+ blankDefault: true,
110
+ label: 'Food category',
111
+ options: [
112
+ { label: 'Choose an option', value: '', placeholder: true },
113
+ { label: 'Poultry', value: 'Chicken' },
114
+ { label: 'Fish', value: 'Salmon' },
115
+ { label: 'Veg', value: 'Lettuce' },
116
+ ],
117
+ validation: {
118
+ required: {
119
+ message: 'Must select a value',
120
+ },
121
+ },
122
+ },
123
+ },
124
+ permissions: {
125
+ form: {
126
+ type: 'checkbox',
127
+ label: 'Permissions',
128
+ inlineLabel: 'Please grant permissions to use data',
129
+ validation: {
130
+ required: {
131
+ message: 'Please grant permissions to use data',
132
+ },
133
+ },
134
+ },
135
+ },
136
+ },
137
+ };
138
+ export const SingleFormItem = args => `<tttx-form formSchema='${JSON.stringify(args.formSchema)}'></tttx-form>`;
139
+ SingleFormItem.args = {
140
+ formSchema: {
141
+ properties: {
142
+ input: {
143
+ type: 'string',
144
+ format: 'string',
145
+ form: {
146
+ type: 'text',
147
+ label: 'Input Field',
148
+ validation: {
149
+ required: {
150
+ message: 'Please enter something',
151
+ },
152
+ },
153
+ },
154
+ },
155
+ },
156
+ },
157
+ };
158
158
  export const ExampleFormFromJSON = args => `<tttx-form id='form' formSchema='${JSON.stringify(args.formSchema)}'></tttx-form>
159
159
  <hr/>
160
160
  <button type='button' id='button'>Submit Form</button>
@@ -171,116 +171,116 @@ export const ExampleFormFromJSON = args => `<tttx-form id='form' formSchema='${J
171
171
  tttxform.submit();
172
172
  }
173
173
  }
174
- </script>`;
175
- ExampleFormFromJSON.args = {
176
- formSchema,
177
- };
178
- const formSchemaWithReadonly = {
179
- properties: {
180
- title: {
181
- type: 'string',
182
- format: 'string',
183
- form: {
184
- type: 'text',
185
- placeholder: 'Mr, Mrs, Dr, Hon Rev',
186
- label: 'Title',
187
- },
188
- },
189
- forename: {
190
- type: 'string',
191
- format: 'string',
192
- form: {
193
- type: 'text',
194
- placeholder: 'John',
195
- label: 'Forename',
196
- validation: {
197
- required: {
198
- message: 'Please enter your forename',
199
- },
200
- },
201
- },
202
- },
203
- surname: {
204
- type: 'string',
205
- format: 'string',
206
- form: {
207
- type: 'text',
208
- placeholder: 'Doe',
209
- label: 'Surname',
210
- validation: {
211
- required: {
212
- message: 'Please enter your surname',
213
- },
214
- },
215
- },
216
- },
217
- postcode: {
218
- type: 'string',
219
- format: 'string',
220
- form: {
221
- type: 'text',
222
- placeholder: 'AB10',
223
- label: 'Start of postcode',
224
- validation: {
225
- required: {
226
- message: 'Please enter the beginning of your postcode',
227
- },
228
- pattern: {
229
- pattern: '^([A-Za-z][0-9])$|^([A-Za-z][0-9]{2})$|^([A-Za-z]{2}[0-9])$|^([A-Za-z]{2}[0-9]{2})$|^([A-Za-z][0-9][A-Za-z])$|^([A-Za-z]{2}[0-9][A-Za-z])$|^(GIR|BF|BX|XX)$',
230
- message: 'Please enter the first half of your postcode. EG: ZZ99',
231
- },
232
- maxlength: 4,
233
- },
234
- },
235
- },
236
- age: {
237
- type: 'number',
238
- format: 'number',
239
- form: {
240
- type: 'number',
241
- placeholder: '',
242
- label: 'Age',
243
- readonly: true,
244
- validation: {
245
- required: {
246
- message: 'Please enter your age',
247
- },
248
- badInput: {
249
- message: 'Please enter a number',
250
- },
251
- },
252
- },
253
- },
254
- dob: {
255
- type: 'string',
256
- format: 'date-time',
257
- form: {
258
- type: 'date',
259
- placeholder: '',
260
- label: 'Date of birth',
261
- readonly: true,
262
- validation: {
263
- required: {
264
- message: 'Please enter your date of birth',
265
- },
266
- minmax: {
267
- min: '1900-01-01',
268
- max: '2100-12-31',
269
- message: 'Please enter a date between 1900 and 2100',
270
- },
271
- },
272
- },
273
- },
274
- },
275
- };
276
- const data = {
277
- title: 'Ms',
278
- forename: 'Jane',
279
- surname: 'Doe',
280
- postcode: 'AB10',
281
- age: '50',
282
- dob: '1973-06-02',
283
- };
174
+ </script>`;
175
+ ExampleFormFromJSON.args = {
176
+ formSchema,
177
+ };
178
+ const formSchemaWithReadonly = {
179
+ properties: {
180
+ title: {
181
+ type: 'string',
182
+ format: 'string',
183
+ form: {
184
+ type: 'text',
185
+ placeholder: 'Mr, Mrs, Dr, Hon Rev',
186
+ label: 'Title',
187
+ },
188
+ },
189
+ forename: {
190
+ type: 'string',
191
+ format: 'string',
192
+ form: {
193
+ type: 'text',
194
+ placeholder: 'John',
195
+ label: 'Forename',
196
+ validation: {
197
+ required: {
198
+ message: 'Please enter your forename',
199
+ },
200
+ },
201
+ },
202
+ },
203
+ surname: {
204
+ type: 'string',
205
+ format: 'string',
206
+ form: {
207
+ type: 'text',
208
+ placeholder: 'Doe',
209
+ label: 'Surname',
210
+ validation: {
211
+ required: {
212
+ message: 'Please enter your surname',
213
+ },
214
+ },
215
+ },
216
+ },
217
+ postcode: {
218
+ type: 'string',
219
+ format: 'string',
220
+ form: {
221
+ type: 'text',
222
+ placeholder: 'AB10',
223
+ label: 'Start of postcode',
224
+ validation: {
225
+ required: {
226
+ message: 'Please enter the beginning of your postcode',
227
+ },
228
+ pattern: {
229
+ pattern: '^([A-Za-z][0-9])$|^([A-Za-z][0-9]{2})$|^([A-Za-z]{2}[0-9])$|^([A-Za-z]{2}[0-9]{2})$|^([A-Za-z][0-9][A-Za-z])$|^([A-Za-z]{2}[0-9][A-Za-z])$|^(GIR|BF|BX|XX)$',
230
+ message: 'Please enter the first half of your postcode. EG: ZZ99',
231
+ },
232
+ maxlength: 4,
233
+ },
234
+ },
235
+ },
236
+ age: {
237
+ type: 'number',
238
+ format: 'number',
239
+ form: {
240
+ type: 'number',
241
+ placeholder: '',
242
+ label: 'Age',
243
+ readonly: true,
244
+ validation: {
245
+ required: {
246
+ message: 'Please enter your age',
247
+ },
248
+ badInput: {
249
+ message: 'Please enter a number',
250
+ },
251
+ },
252
+ },
253
+ },
254
+ dob: {
255
+ type: 'string',
256
+ format: 'date-time',
257
+ form: {
258
+ type: 'date',
259
+ placeholder: '',
260
+ label: 'Date of birth',
261
+ readonly: true,
262
+ validation: {
263
+ required: {
264
+ message: 'Please enter your date of birth',
265
+ },
266
+ minmax: {
267
+ min: '1900-01-01',
268
+ max: '2100-12-31',
269
+ message: 'Please enter a date between 1900 and 2100',
270
+ },
271
+ },
272
+ },
273
+ },
274
+ },
275
+ };
276
+ const data = {
277
+ title: 'Ms',
278
+ forename: 'Jane',
279
+ surname: 'Doe',
280
+ postcode: 'AB10',
281
+ age: '50',
282
+ dob: '1973-06-02',
283
+ };
284
284
  export const PrePopulateForm = args => `<tttx-form id='form' formSchema='${JSON.stringify(args.formSchema)}' data='${JSON.stringify(args.data)}'></tttx-form>
285
285
  <hr/>
286
286
  <button type='button' id='button'>Submit Form</button>
@@ -297,8 +297,8 @@ export const PrePopulateForm = args => `<tttx-form id='form' formSchema='${JSON.
297
297
  tttxform.submit();
298
298
  }
299
299
  }
300
- </script>`;
301
- PrePopulateForm.args = {
302
- data,
303
- formSchema: formSchemaWithReadonly,
304
- };
300
+ </script>`;
301
+ PrePopulateForm.args = {
302
+ data,
303
+ formSchema: formSchemaWithReadonly,
304
+ };