@3t-transform/threeteeui 0.0.10 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{index-8a4cb9bc.js → index-61cd741f.js} +43 -88
- package/dist/cjs/loader.cjs.js +3 -4
- package/dist/cjs/tttx-button.cjs.entry.js +2 -2
- package/dist/cjs/tttx-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/tttx-form.cjs.entry.js +169 -41
- package/dist/cjs/tttx-icon.cjs.entry.js +2 -2
- package/dist/cjs/tttx-list.cjs.entry.js +198 -0
- package/dist/cjs/tttx-loading-spinner.cjs.entry.js +4 -4
- package/dist/cjs/tttx-popover-content.cjs.entry.js +2 -2
- package/dist/cjs/tttx-standalone-input.cjs.entry.js +134 -0
- package/dist/cjs/tttx.cjs.js +3 -7
- package/dist/collection/collection-manifest.json +4 -3
- package/dist/collection/components/atoms/tttx-button/tttx-button.css +1 -0
- package/dist/collection/components/atoms/tttx-button/tttx-button.stories.js +3 -3
- package/dist/collection/components/atoms/tttx-icon/tttx-icon.css +3 -3
- package/dist/collection/components/atoms/tttx-icon/tttx-icon.stories.js +15 -15
- package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.css +1 -1
- package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.js +2 -2
- package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.js +1 -1
- package/dist/collection/components/atoms/tttx-popover-content/tttx-popover-content.js +1 -1
- package/dist/collection/components/atoms/tttx-popover-content/tttx-popover-content.stories.js +3 -3
- package/dist/collection/components/atoms/ttx-checkbox/tttx-checkbox.css +85 -39
- package/dist/collection/components/atoms/ttx-checkbox/tttx-checkbox.js +1 -1
- package/dist/collection/components/atoms/ttx-checkbox/tttx-checkbox.stories.js +5 -5
- package/dist/collection/components/molecules/tttx-form/tttx-form.css +230 -0
- package/dist/collection/components/molecules/tttx-form/tttx-form.js +195 -55
- package/dist/collection/components/molecules/tttx-form/tttx-form.stories.js +97 -28
- package/dist/collection/components/molecules/tttx-list/tttx-list.css +56 -0
- package/dist/collection/components/molecules/tttx-list/tttx-list.js +311 -0
- package/dist/collection/components/molecules/tttx-list/tttx-list.stories.js +37 -0
- package/dist/collection/components/molecules/{tttx-input/tttx-input.css → tttx-standalone-input/tttx-standalone-input.css} +77 -49
- package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.js +561 -0
- package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.js +156 -0
- package/dist/collection/components/palette.stories.js +81 -81
- package/dist/collection/docs/gettingstarted-developer.stories.js +4 -4
- package/dist/components/index.d.ts +2 -10
- package/dist/components/index.js +3 -2
- package/dist/components/tttx-button.js +1 -1
- package/dist/components/tttx-checkbox.js +2 -2
- package/dist/components/tttx-form.js +167 -39
- package/dist/components/tttx-icon2.js +1 -1
- package/dist/components/{tttx-input.d.ts → tttx-list.d.ts} +4 -4
- package/dist/components/tttx-list.js +225 -0
- package/dist/components/tttx-loading-spinner.js +1 -38
- package/dist/components/tttx-loading-spinner2.js +40 -0
- package/dist/components/tttx-popover-content.js +1 -1
- package/dist/components/tttx-standalone-input.d.ts +11 -0
- package/dist/components/tttx-standalone-input.js +178 -0
- package/dist/esm/{index-9654537d.js → index-d8718abe.js} +44 -88
- package/dist/esm/loader.js +3 -4
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/tttx-button.entry.js +2 -2
- package/dist/esm/tttx-checkbox.entry.js +3 -3
- package/dist/esm/tttx-form.entry.js +169 -41
- package/dist/esm/tttx-icon.entry.js +2 -2
- package/dist/esm/tttx-list.entry.js +194 -0
- package/dist/esm/tttx-loading-spinner.entry.js +4 -4
- package/dist/esm/tttx-popover-content.entry.js +2 -2
- package/dist/esm/tttx-standalone-input.entry.js +130 -0
- package/dist/esm/tttx.js +3 -4
- package/dist/tttx/p-1b6b4223.entry.js +1 -0
- package/dist/tttx/p-1ea7e424.entry.js +1 -0
- package/dist/tttx/{p-3cb692d6.entry.js → p-629411bc.entry.js} +1 -1
- package/dist/tttx/p-7d84c410.entry.js +1 -0
- package/dist/tttx/p-80bbe164.js +2 -0
- package/dist/tttx/{p-1884203f.entry.js → p-daa82b1b.entry.js} +1 -1
- package/dist/tttx/p-db1f56ba.entry.js +1 -0
- package/dist/tttx/p-dee50f14.entry.js +1 -0
- package/dist/tttx/{p-674e2f18.entry.js → p-e5c02c27.entry.js} +1 -1
- package/dist/tttx/tttx.esm.js +1 -1
- package/dist/types/components/molecules/tttx-form/tttx-form.d.ts +14 -7
- package/dist/types/components/molecules/tttx-form/tttx-form.stories.d.ts +1 -8
- package/dist/types/components/molecules/tttx-list/tttx-list.d.ts +51 -0
- package/dist/types/components/molecules/tttx-list/tttx-list.stories.d.ts +13 -0
- package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.d.ts +38 -0
- package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.d.ts +106 -0
- package/dist/types/components.d.ts +88 -39
- package/dist/types/stencil-public-runtime.d.ts +3 -59
- package/loader/index.d.ts +0 -9
- package/package.json +67 -65
- package/readme.md +89 -86
- package/dist/cjs/tttx-input.cjs.entry.js +0 -44
- package/dist/collection/components/molecules/tttx-input/tttx-input.js +0 -259
- package/dist/collection/components/molecules/tttx-input/tttx-input.stories.js +0 -106
- package/dist/components/tttx-input.js +0 -77
- package/dist/esm/tttx-input.entry.js +0 -40
- package/dist/tttx/p-317b13d3.entry.js +0 -1
- package/dist/tttx/p-3cd7ad04.entry.js +0 -1
- package/dist/tttx/p-b6cc2780.js +0 -2
- package/dist/tttx/p-f30a0e84.entry.js +0 -1
- package/dist/tttx/p-f4855113.entry.js +0 -1
- package/dist/types/components/molecules/tttx-input/tttx-input.d.ts +0 -20
- package/dist/types/components/molecules/tttx-input/tttx-input.stories.d.ts +0 -60
package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.js
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import icons from '../../../icons';
|
|
2
|
+
export default {
|
|
3
|
+
title: 'Molecules/Standalone Input',
|
|
4
|
+
component: 'tttx-standalone-input',
|
|
5
|
+
argTypes: {
|
|
6
|
+
iconleft: {
|
|
7
|
+
options: icons,
|
|
8
|
+
control: { type: 'select' },
|
|
9
|
+
},
|
|
10
|
+
iconright: {
|
|
11
|
+
options: icons,
|
|
12
|
+
control: { type: 'select' },
|
|
13
|
+
},
|
|
14
|
+
label: {
|
|
15
|
+
control: { type: 'text' },
|
|
16
|
+
},
|
|
17
|
+
errormsg: {
|
|
18
|
+
control: { type: 'text' },
|
|
19
|
+
},
|
|
20
|
+
showerrormsg: {
|
|
21
|
+
control: { type: 'boolean' },
|
|
22
|
+
},
|
|
23
|
+
checked: {
|
|
24
|
+
control: { type: 'boolean' },
|
|
25
|
+
},
|
|
26
|
+
disabled: {
|
|
27
|
+
control: { type: 'boolean' },
|
|
28
|
+
},
|
|
29
|
+
max: {
|
|
30
|
+
control: { type: 'text' },
|
|
31
|
+
},
|
|
32
|
+
maxlength: {
|
|
33
|
+
control: { type: 'text' },
|
|
34
|
+
},
|
|
35
|
+
min: {
|
|
36
|
+
control: { type: 'text' },
|
|
37
|
+
},
|
|
38
|
+
minlength: {
|
|
39
|
+
control: { type: 'text' },
|
|
40
|
+
},
|
|
41
|
+
name: {
|
|
42
|
+
control: { type: 'text' },
|
|
43
|
+
},
|
|
44
|
+
pattern: {
|
|
45
|
+
control: { type: 'text' },
|
|
46
|
+
},
|
|
47
|
+
placeholder: {
|
|
48
|
+
control: { type: 'text' },
|
|
49
|
+
},
|
|
50
|
+
readonly: {
|
|
51
|
+
control: { type: 'boolean' },
|
|
52
|
+
},
|
|
53
|
+
required: {
|
|
54
|
+
control: { type: 'boolean' },
|
|
55
|
+
},
|
|
56
|
+
step: {
|
|
57
|
+
control: { type: 'text' },
|
|
58
|
+
},
|
|
59
|
+
type: {
|
|
60
|
+
options: ['text', 'password', 'email', 'number'],
|
|
61
|
+
control: { type: 'radio' },
|
|
62
|
+
},
|
|
63
|
+
value: {
|
|
64
|
+
control: { type: 'text' },
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
const TemplateTextInput = ({ iconleft, iconright, label, errormsg, showerrormsg, checked, disabled, max, maxlength, min, minlength, name, pattern, placeholder, readonly, required, step, type, value, }) => `
|
|
69
|
+
<tttx-standalone-input
|
|
70
|
+
iconleft="${iconleft || ''}"
|
|
71
|
+
iconright="${iconright || ''}"
|
|
72
|
+
label="${label}"
|
|
73
|
+
errormsg="${errormsg}"
|
|
74
|
+
${showerrormsg ? 'showerrormsg' : ''}
|
|
75
|
+
${checked ? 'checked' : ''}
|
|
76
|
+
${disabled ? 'disabled' : ''}
|
|
77
|
+
${max ? `max=${max}` : ''}
|
|
78
|
+
${maxlength ? `maxlength=${maxlength}` : ''}
|
|
79
|
+
${min ? `min=${min}` : ''}
|
|
80
|
+
${minlength ? `minlength=${minlength}` : ''}
|
|
81
|
+
${name ? `name=${name}` : ''}
|
|
82
|
+
${pattern ? `pattern=${pattern}` : ''}
|
|
83
|
+
${placeholder ? `placeholder=${placeholder}` : ''}
|
|
84
|
+
${readonly ? 'readonly' : ''}
|
|
85
|
+
${required ? 'required' : ''}
|
|
86
|
+
${step ? 'step' : ''}
|
|
87
|
+
type="${type}"
|
|
88
|
+
value="${value}"
|
|
89
|
+
/>
|
|
90
|
+
`;
|
|
91
|
+
export const InputField = TemplateTextInput.bind({});
|
|
92
|
+
InputField.args = {
|
|
93
|
+
value: '',
|
|
94
|
+
label: 'First name',
|
|
95
|
+
type: 'text',
|
|
96
|
+
errormsg: 'Please enter your first name',
|
|
97
|
+
required: false,
|
|
98
|
+
showerrormsg: false,
|
|
99
|
+
placeholder: 'Enter first name',
|
|
100
|
+
};
|
|
101
|
+
// export const TextInputIconLeft = TemplateTextInput.bind({});
|
|
102
|
+
// TextInputIconLeft.args = {
|
|
103
|
+
// value: 'Uh egg',
|
|
104
|
+
// label: 'Please tell me about your egg',
|
|
105
|
+
// iconleft: 'egg',
|
|
106
|
+
// type: 'text',
|
|
107
|
+
// errormsg: 'Incorrect egg, please egg again.',
|
|
108
|
+
// required: true,
|
|
109
|
+
// showerrormsg: true,
|
|
110
|
+
// placeholder: 'Please for the love of god tell me about your egg',
|
|
111
|
+
// };
|
|
112
|
+
// export const TextInputIconRight = TemplateTextInput.bind({});
|
|
113
|
+
// TextInputIconRight.args = {
|
|
114
|
+
// value: 'Uh egg',
|
|
115
|
+
// label: 'Please tell me about your egg',
|
|
116
|
+
// iconright: 'egg',
|
|
117
|
+
// type: 'text',
|
|
118
|
+
// errormsg: 'Incorrect egg, please egg again.',
|
|
119
|
+
// required: true,
|
|
120
|
+
// showerrormsg: true,
|
|
121
|
+
// placeholder: 'Please for the love of god tell me about your egg',
|
|
122
|
+
// };
|
|
123
|
+
// export const PasswordInputBasic = TemplateTextInput.bind({});
|
|
124
|
+
// PasswordInputBasic.args = {
|
|
125
|
+
// value: 'qwefdweferg',
|
|
126
|
+
// label: 'Input your Password',
|
|
127
|
+
// iconleft: 'lock',
|
|
128
|
+
// type: 'password',
|
|
129
|
+
// errormsg: 'Password is not strong enough',
|
|
130
|
+
// required: true,
|
|
131
|
+
// showerrormsg: true,
|
|
132
|
+
// placeholder: 'Your password',
|
|
133
|
+
// };
|
|
134
|
+
// export const EmailInputBasic = TemplateTextInput.bind({});
|
|
135
|
+
// EmailInputBasic.args = {
|
|
136
|
+
// value: 'email.address@website.com',
|
|
137
|
+
// label: 'Choose an email address',
|
|
138
|
+
// iconleft: 'mail',
|
|
139
|
+
// type: 'email',
|
|
140
|
+
// errormsg: 'This email smells funny',
|
|
141
|
+
// required: true,
|
|
142
|
+
// valid: false,
|
|
143
|
+
// showerrormsg: true,
|
|
144
|
+
// placeholder: 'Your email address',
|
|
145
|
+
// };
|
|
146
|
+
// export const NumberInputBasic = TemplateTextInput.bind({});
|
|
147
|
+
// NumberInputBasic.args = {
|
|
148
|
+
// value: '42069',
|
|
149
|
+
// label: 'What is your favourite number?',
|
|
150
|
+
// iconleft: '123',
|
|
151
|
+
// type: 'number',
|
|
152
|
+
// errormsg: 'This number feels wrong',
|
|
153
|
+
// required: true,
|
|
154
|
+
// showerrormsg: true,
|
|
155
|
+
// placeholder: 'Your favourite number',
|
|
156
|
+
// };
|
|
@@ -2,87 +2,87 @@ export default {
|
|
|
2
2
|
title: 'Foundations/Palette',
|
|
3
3
|
component: 'tttx-palette',
|
|
4
4
|
};
|
|
5
|
-
const Swatch = (colour, name =
|
|
6
|
-
<div class="swatch">
|
|
7
|
-
<div class="swatchcontent" style="background-color:${colour};">
|
|
8
|
-
<div class="pill">${colour}</div>
|
|
9
|
-
</div>
|
|
10
|
-
<p>${name}</p>
|
|
11
|
-
</div>
|
|
5
|
+
const Swatch = (colour, name = '') => `
|
|
6
|
+
<div class="swatch">
|
|
7
|
+
<div class="swatchcontent" style="background-color:${colour};">
|
|
8
|
+
<div class="pill">${colour}</div>
|
|
9
|
+
</div>
|
|
10
|
+
<p>${name}</p>
|
|
11
|
+
</div>
|
|
12
12
|
`;
|
|
13
|
-
const Template = () => `
|
|
14
|
-
|
|
15
|
-
<style>
|
|
16
|
-
h2 { clear:both; margin-top: 2em; display: block; }
|
|
17
|
-
.swatch { width:130px; height:130px; float:left; font-size: 12px; }
|
|
18
|
-
.swatchcontent { width:120px; height:80px; }
|
|
19
|
-
.pill {
|
|
20
|
-
margin: 0.5em;
|
|
21
|
-
display: inline-block;
|
|
22
|
-
padding: 0.25em 0.5em;
|
|
23
|
-
border-radius: 1em;
|
|
24
|
-
background-color: #FFFFFF;
|
|
25
|
-
color: #000000;
|
|
26
|
-
font-size: 1em;
|
|
27
|
-
font-weight: bold;
|
|
28
|
-
}
|
|
29
|
-
p { margin: 8px 0 0 0; }
|
|
30
|
-
</style>
|
|
31
|
-
|
|
32
|
-
<h2>Primary</h2>
|
|
33
|
-
${Swatch(
|
|
34
|
-
${Swatch(
|
|
35
|
-
${Swatch(
|
|
36
|
-
${Swatch(
|
|
37
|
-
${Swatch(
|
|
38
|
-
|
|
39
|
-
<h2>Text and icons</h2>
|
|
40
|
-
${Swatch(
|
|
41
|
-
${Swatch(
|
|
42
|
-
${Swatch(
|
|
43
|
-
${Swatch(
|
|
44
|
-
|
|
45
|
-
<h2>Layout</h2>
|
|
46
|
-
${Swatch(
|
|
47
|
-
${Swatch(
|
|
48
|
-
${Swatch(
|
|
49
|
-
|
|
50
|
-
<h2>Buttons</h2>
|
|
51
|
-
${Swatch(
|
|
52
|
-
${Swatch(
|
|
53
|
-
${Swatch(
|
|
54
|
-
<div style="clear:both;"></div>
|
|
55
|
-
${Swatch(
|
|
56
|
-
${Swatch(
|
|
57
|
-
${Swatch(
|
|
58
|
-
<div style="clear:both;"></div>
|
|
59
|
-
${Swatch(
|
|
60
|
-
${Swatch(
|
|
61
|
-
${Swatch(
|
|
62
|
-
<div style="clear:both;"></div>
|
|
63
|
-
${Swatch(
|
|
64
|
-
|
|
65
|
-
<h2>Severity</h2>
|
|
66
|
-
${Swatch(
|
|
67
|
-
${Swatch(
|
|
68
|
-
${Swatch(
|
|
69
|
-
${Swatch(
|
|
70
|
-
<div style="clear:both;"></div>
|
|
71
|
-
${Swatch(
|
|
72
|
-
${Swatch(
|
|
73
|
-
${Swatch(
|
|
74
|
-
${Swatch(
|
|
75
|
-
|
|
76
|
-
<h2>Diverging</h2>
|
|
77
|
-
${Swatch(
|
|
78
|
-
${Swatch(
|
|
79
|
-
${Swatch(
|
|
80
|
-
${Swatch(
|
|
81
|
-
${Swatch(
|
|
82
|
-
${Swatch(
|
|
83
|
-
${Swatch(
|
|
84
|
-
${Swatch(
|
|
85
|
-
${Swatch(
|
|
86
|
-
|
|
13
|
+
const Template = () => `
|
|
14
|
+
|
|
15
|
+
<style>
|
|
16
|
+
h2 { clear:both; margin-top: 2em; display: block; }
|
|
17
|
+
.swatch { width:130px; height:130px; float:left; font-size: 12px; }
|
|
18
|
+
.swatchcontent { width:120px; height:80px; }
|
|
19
|
+
.pill {
|
|
20
|
+
margin: 0.5em;
|
|
21
|
+
display: inline-block;
|
|
22
|
+
padding: 0.25em 0.5em;
|
|
23
|
+
border-radius: 1em;
|
|
24
|
+
background-color: #FFFFFF;
|
|
25
|
+
color: #000000;
|
|
26
|
+
font-size: 1em;
|
|
27
|
+
font-weight: bold;
|
|
28
|
+
}
|
|
29
|
+
p { margin: 8px 0 0 0; }
|
|
30
|
+
</style>
|
|
31
|
+
|
|
32
|
+
<h2>Primary</h2>
|
|
33
|
+
${Swatch('#111111', '$black')}
|
|
34
|
+
${Swatch('#FFFFFF', '$white')}
|
|
35
|
+
${Swatch('#00187C', '$brand')}
|
|
36
|
+
${Swatch('#1579C6', '$accent')}
|
|
37
|
+
${Swatch('#E7F1F9', '$selected')}
|
|
38
|
+
|
|
39
|
+
<h2>Text and icons</h2>
|
|
40
|
+
${Swatch('#212121', '$ui-primary')}
|
|
41
|
+
${Swatch('#757575', '$ui-secondary')}
|
|
42
|
+
${Swatch('#9E9E9E', '$ui-placeholder')}
|
|
43
|
+
${Swatch('#4C4C4C', '$ui-disabled')}
|
|
44
|
+
|
|
45
|
+
<h2>Layout</h2>
|
|
46
|
+
${Swatch('#F0F0F0', '$background')}
|
|
47
|
+
${Swatch('#FAFAFA', '$backround-secondary')}
|
|
48
|
+
${Swatch('#D5D5D5', '$ui-border')}
|
|
49
|
+
|
|
50
|
+
<h2>Buttons</h2>
|
|
51
|
+
${Swatch('#1579C6', '$btn-accent')}
|
|
52
|
+
${Swatch('#146EB3', '$btn-accent-hover')}
|
|
53
|
+
${Swatch('#10609D', '$btn-accent-active')}
|
|
54
|
+
<div style="clear:both;"></div>
|
|
55
|
+
${Swatch('#FFFFFF', '$btn-default')}
|
|
56
|
+
${Swatch('#e6e6e6', '$btn-hover')}
|
|
57
|
+
${Swatch('#cccccc', '$btn-active')}
|
|
58
|
+
<div style="clear:both;"></div>
|
|
59
|
+
${Swatch('#DC0000', '$btn-danger')}
|
|
60
|
+
${Swatch('#C70101', '$btn-danger-hover')}
|
|
61
|
+
${Swatch('#B30303', '$btn-danger-active')}
|
|
62
|
+
<div style="clear:both;"></div>
|
|
63
|
+
${Swatch('#BDBDBD', '$btn-disabled')}
|
|
64
|
+
|
|
65
|
+
<h2>Severity</h2>
|
|
66
|
+
${Swatch('#DC0000', '$severity-critical')}
|
|
67
|
+
${Swatch('#F59500', '$severity-warning')}
|
|
68
|
+
${Swatch('#A2BB31', '$severity-success')}
|
|
69
|
+
${Swatch('#00187C', '$severity-info')}
|
|
70
|
+
<div style="clear:both;"></div>
|
|
71
|
+
${Swatch('#F2BEBE', '$message-critical')}
|
|
72
|
+
${Swatch('#F9E1BE', '$message-warning')}
|
|
73
|
+
${Swatch('#E4EBC9', '$message-success')}
|
|
74
|
+
${Swatch('#C2DAEE', '$message-info')}
|
|
75
|
+
|
|
76
|
+
<h2>Diverging</h2>
|
|
77
|
+
${Swatch('#0373A5', '$dv-lowest')}
|
|
78
|
+
${Swatch('#00C2D1', '$dv-very-low')}
|
|
79
|
+
${Swatch('#50A472', '$dv-low')}
|
|
80
|
+
${Swatch('#A2BB31', '$dv-med-low')}
|
|
81
|
+
${Swatch('#FDC500', '$dv-medium')}
|
|
82
|
+
${Swatch('#F59500', '$dv-med-high')}
|
|
83
|
+
${Swatch('#EA6100', '$dv-high')}
|
|
84
|
+
${Swatch('#DC0000', '$dv-very-high')}
|
|
85
|
+
${Swatch('#A20000', '$dv-highest')}
|
|
86
|
+
|
|
87
87
|
`;
|
|
88
88
|
export const Default = Template.bind({});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
title: 'Getting Started/Developer',
|
|
3
3
|
};
|
|
4
|
-
const Template = () => `
|
|
5
|
-
<tttx-typography>
|
|
6
|
-
<p>Quick start guide for developers</p>
|
|
7
|
-
</tttx-typography>
|
|
4
|
+
const Template = () => `
|
|
5
|
+
<tttx-typography>
|
|
6
|
+
<p>Quick start guide for developers</p>
|
|
7
|
+
</tttx-typography>
|
|
8
8
|
`;
|
|
9
9
|
export const Default = Template.bind({});
|
|
@@ -3,9 +3,10 @@ export { TttxButton as TttxButton } from '../types/components/atoms/tttx-button/
|
|
|
3
3
|
export { TttxCheckbox as TttxCheckbox } from '../types/components/atoms/ttx-checkbox/tttx-checkbox';
|
|
4
4
|
export { TttxForm as TttxForm } from '../types/components/molecules/tttx-form/tttx-form';
|
|
5
5
|
export { TttxIcon as TttxIcon } from '../types/components/atoms/tttx-icon/tttx-icon';
|
|
6
|
-
export {
|
|
6
|
+
export { TttxList as TttxList } from '../types/components/molecules/tttx-list/tttx-list';
|
|
7
7
|
export { TttxLoadingSpinner as TttxLoadingSpinner } from '../types/components/atoms/tttx-loading-spinner/tttx-loading-spinner';
|
|
8
8
|
export { TttxPopoverContent as TttxPopoverContent } from '../types/components/atoms/tttx-popover-content/tttx-popover-content';
|
|
9
|
+
export { TttxInput as TttxStandaloneInput } from '../types/components/molecules/tttx-standalone-input/tttx-standalone-input';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Used to manually set the base path where assets can be found.
|
|
@@ -19,15 +20,6 @@ export { TttxPopoverContent as TttxPopoverContent } from '../types/components/at
|
|
|
19
20
|
*/
|
|
20
21
|
export declare const setAssetPath: (path: string) => void;
|
|
21
22
|
|
|
22
|
-
/**
|
|
23
|
-
* Used to specify a nonce value that corresponds with an application's CSP.
|
|
24
|
-
* When set, the nonce will be added to all dynamically created script and style tags at runtime.
|
|
25
|
-
* Alternatively, the nonce value can be set on a meta tag in the DOM head
|
|
26
|
-
* (<meta name="csp-nonce" content="{ nonce value here }" />) which
|
|
27
|
-
* will result in the same behavior.
|
|
28
|
-
*/
|
|
29
|
-
export declare const setNonce: (nonce: string) => void
|
|
30
|
-
|
|
31
23
|
export interface SetPlatformOptions {
|
|
32
24
|
raf?: (c: FrameRequestCallback) => number;
|
|
33
25
|
ael?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
|
package/dist/components/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export { setAssetPath,
|
|
1
|
+
export { setAssetPath, setPlatformOptions } from '@stencil/core/internal/client';
|
|
2
2
|
export { TttxButton, defineCustomElement as defineCustomElementTttxButton } from './tttx-button.js';
|
|
3
3
|
export { TttxCheckbox, defineCustomElement as defineCustomElementTttxCheckbox } from './tttx-checkbox.js';
|
|
4
4
|
export { TttxForm, defineCustomElement as defineCustomElementTttxForm } from './tttx-form.js';
|
|
5
5
|
export { TttxIcon, defineCustomElement as defineCustomElementTttxIcon } from './tttx-icon.js';
|
|
6
|
-
export {
|
|
6
|
+
export { TttxList, defineCustomElement as defineCustomElementTttxList } from './tttx-list.js';
|
|
7
7
|
export { TttxLoadingSpinner, defineCustomElement as defineCustomElementTttxLoadingSpinner } from './tttx-loading-spinner.js';
|
|
8
8
|
export { TttxPopoverContent, defineCustomElement as defineCustomElementTttxPopoverContent } from './tttx-popover-content.js';
|
|
9
|
+
export { TttxStandaloneInput, defineCustomElement as defineCustomElementTttxStandaloneInput } from './tttx-standalone-input.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
|
|
3
|
-
const tttxButtonCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.button{height:36px;padding:8px 16px;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:400}.button:hover{background:#f0f0f0}.button:active{background:#e3e3e3}.primary-blue{background:#1479c6;border:1px solid #1479c6}.primary-blue:hover{background:#1169ba}.primary-blue:active{background:#0951a8}.secondary-white{background:white;border:1px solid #212121}:host{display:inline-block}.spacingleft{margin-left:8px}.font-white{color:white}.font-black{color:#212121}";
|
|
3
|
+
const tttxButtonCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.button{height:36px;padding:8px 16px;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:400}.button:hover{background:#f0f0f0}.button:active{background:#e3e3e3}.primary-blue{background:#1479c6;border:1px solid #1479c6;color:white}.primary-blue:hover{background:#1169ba}.primary-blue:active{background:#0951a8}.secondary-white{background:white;border:1px solid #212121}:host{display:inline-block}.spacingleft{margin-left:8px}.font-white{color:white}.font-black{color:#212121}";
|
|
4
4
|
|
|
5
5
|
const TttxButton$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
6
6
|
constructor() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
|
|
3
|
-
const tttxCheckboxCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.
|
|
3
|
+
const tttxCheckboxCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.icon-left,.icon-right{flex-basis:24px}.icon-left span,.icon-right span{font-size:24px;line-height:24px;text-align:center;display:block;width:24px;height:24px;margin-top:4px}.icon-left span{margin-left:4px}.icon-right span{margin-right:4px}.icon-right{margin-top:5px;margin-right:4px}.icon-left{margin-top:5px;margin-left:4px}.iconleft .input{padding-left:4px}.iconright .input{padding-right:4px}.focused{border-color:#1479c6}.errormsg{display:flex;justify-content:center;align-items:center;float:left;margin-bottom:16px;box-sizing:border-box;background-color:transparent;height:26px;font-size:14px;border-radius:none;z-index:2;color:#dc0000}.errormsg .validationicon{width:16px;height:16px;font-size:16px;margin-right:4px;vertical-align:middle;color:#dc0000}.danger{color:#dc0000}.optional{color:#757575;font-weight:normal}label.inputBlock{display:block;position:relative;line-height:21px}label{font-weight:500;font-size:16px}input:not([type=submit]){font-family:\"Roboto\", serif;box-sizing:border-box;width:100%;height:36px;padding:0 16px;font-size:16px;border:1px solid #d5d5d5;border-radius:4px;margin-top:4px}input[type=date]{background:white;display:block;min-width:calc(100% - 18px);line-height:37px}input.invalid:invalid,input.standalone.invalid{border:1px solid #dc0000}input~.errorBubble{min-height:27px;position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center}input~.errorBubble:not(.visible){visibility:hidden}input~.errorBubble span{color:#dc0000;font-size:16px;margin-right:4px;height:16px}input.invalid:invalid~.errorBubble{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;visibility:visible}input:focus{border-color:#1479c6}:host{display:block}.spacing{margin-bottom:16px}";
|
|
4
4
|
|
|
5
5
|
const TttxCheckbox$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
6
6
|
constructor() {
|
|
@@ -18,7 +18,7 @@ const TttxCheckbox$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
18
18
|
this.valueChanged.emit(target.checked);
|
|
19
19
|
}
|
|
20
20
|
render() {
|
|
21
|
-
return (h(Host, null, h("div", { class: "field spacing" }, this.label && h("label", { class: "label" }, this.label, !this.required ? h("span", { class: "optional" }, " (optional)") : ''), h("input", { type: "checkbox", class: "input", onChange: event => this.handleClick(event), checked: this.value }))));
|
|
21
|
+
return (h(Host, null, h("div", { class: "field spacing" }, this.label && (h("label", { class: "label" }, this.label, !this.required ? h("span", { class: "optional" }, " (optional)") : '')), h("input", { type: "checkbox", class: "input", onChange: event => this.handleClick(event), checked: this.value }))));
|
|
22
22
|
}
|
|
23
23
|
static get style() { return tttxCheckboxCss; }
|
|
24
24
|
}, [1, "tttx-checkbox", {
|
|
@@ -1,59 +1,187 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
|
|
3
|
+
const tttxFormCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.icon-left,.icon-right{flex-basis:24px}.icon-left span,.icon-right span{font-size:24px;line-height:24px;text-align:center;display:block;width:24px;height:24px;margin-top:4px}.icon-left span{margin-left:4px}.icon-right span{margin-right:4px}.icon-right{margin-top:5px;margin-right:4px}.icon-left{margin-top:5px;margin-left:4px}.iconleft .input{padding-left:4px}.iconright .input{padding-right:4px}.focused{border-color:#1479c6}.errormsg{display:flex;justify-content:center;align-items:center;float:left;margin-bottom:16px;box-sizing:border-box;background-color:transparent;height:26px;font-size:14px;border-radius:none;z-index:2;color:#dc0000}.errormsg .validationicon{width:16px;height:16px;font-size:16px;margin-right:4px;vertical-align:middle;color:#dc0000}.danger{color:#dc0000}.optional{color:#757575;font-weight:normal}label.inputBlock{display:block;position:relative;line-height:21px}label{font-weight:500;font-size:16px}input:not([type=submit]){font-family:\"Roboto\", serif;box-sizing:border-box;width:100%;height:36px;padding:0 16px;font-size:16px;border:1px solid #d5d5d5;border-radius:4px;margin-top:4px}input[type=date]{background:white;display:block;min-width:calc(100% - 18px);line-height:37px}input.invalid:invalid,input.standalone.invalid{border:1px solid #dc0000}input~.errorBubble{min-height:27px;position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center}input~.errorBubble:not(.visible){visibility:hidden}input~.errorBubble span{color:#dc0000;font-size:16px;margin-right:4px;height:16px}input.invalid:invalid~.errorBubble{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;visibility:visible}input:focus{border-color:#1479c6}.button{height:36px;padding:8px 16px;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:400}.button:hover{background:#f0f0f0}.button:active{background:#e3e3e3}.primary-blue{background:#1479c6;border:1px solid #1479c6;color:white}.primary-blue:hover{background:#1169ba}.primary-blue:active{background:#0951a8}.secondary-white{background:white;border:1px solid #212121}:host{display:block}fieldset{margin:0;padding:0;border:none}input[type=submit]{margin-left:auto}";
|
|
2
4
|
|
|
3
5
|
const TttxForm$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
4
6
|
constructor() {
|
|
5
7
|
super();
|
|
6
8
|
this.__registerHost();
|
|
7
9
|
this.__attachShadow();
|
|
8
|
-
this.
|
|
9
|
-
this.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
this.dataAttribute = 'form-data';
|
|
21
|
-
this.functionAttribute = 'function-data';
|
|
10
|
+
this.submitEvent = createEvent(this, "submitEvent", 7);
|
|
11
|
+
this.template = document.createElement('template');
|
|
12
|
+
this.formschema = undefined;
|
|
13
|
+
this.submitValue = undefined;
|
|
14
|
+
}
|
|
15
|
+
onFormSchemaChange(newValue) {
|
|
16
|
+
if (typeof newValue === 'string') {
|
|
17
|
+
this._formSchema = JSON.parse(newValue);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
this._formSchema = newValue;
|
|
21
|
+
}
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
validityCheck(event) {
|
|
24
|
+
var _a, _b, _c, _d;
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
const target = event.target;
|
|
27
|
+
let hasError = true;
|
|
28
|
+
let errorMessage = '';
|
|
29
|
+
// validity object on HTML5 inputs has the following options
|
|
30
|
+
// badInput
|
|
31
|
+
// customError
|
|
32
|
+
// patternMismatch
|
|
33
|
+
// rangeOverflow
|
|
34
|
+
// rangeUnderflow
|
|
35
|
+
// stepMismatch
|
|
36
|
+
// tooLong
|
|
37
|
+
// tooShort
|
|
38
|
+
// typeMismatch
|
|
39
|
+
// valid
|
|
40
|
+
// valueMissing
|
|
41
|
+
// customErrors can be set with
|
|
42
|
+
// target.setCustomValidity('custom error!');
|
|
43
|
+
// and cleared with
|
|
44
|
+
// target.setCustomValidity('');
|
|
45
|
+
if (target.validity.valueMissing) {
|
|
46
|
+
errorMessage = (_a = target.dataset.required) !== null && _a !== void 0 ? _a : 'This field is required';
|
|
47
|
+
}
|
|
48
|
+
else if (target.validity.patternMismatch) {
|
|
49
|
+
errorMessage = (_b = target.dataset.pattern) !== null && _b !== void 0 ? _b : 'Incorrect format';
|
|
50
|
+
}
|
|
51
|
+
else if (target.validity.badInput) {
|
|
52
|
+
// IE string in a number field
|
|
53
|
+
errorMessage = (_c = target.dataset.badinput) !== null && _c !== void 0 ? _c : 'Wrong input type';
|
|
54
|
+
}
|
|
55
|
+
else if (target.validity.rangeOverflow || target.validity.rangeUnderflow) {
|
|
56
|
+
// IE date or number is above or below value set in min or max tags
|
|
57
|
+
errorMessage = (_d = target.dataset.range) !== null && _d !== void 0 ? _d : 'Invalid value';
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// no error
|
|
61
|
+
hasError = false;
|
|
62
|
+
}
|
|
63
|
+
if (hasError) {
|
|
64
|
+
target.className = 'invalid';
|
|
65
|
+
const errorIcon = document.createElement('span');
|
|
66
|
+
errorIcon.className = 'material-symbols-rounded';
|
|
67
|
+
errorIcon.textContent = 'warning';
|
|
68
|
+
target.parentElement.querySelector('.errorBubble').replaceChildren();
|
|
69
|
+
target.parentElement.querySelector('.errorBubble').append(errorIcon);
|
|
70
|
+
target.parentElement.querySelector('.errorBubble').append(errorMessage);
|
|
30
71
|
}
|
|
31
72
|
else {
|
|
32
|
-
|
|
33
|
-
|
|
73
|
+
target.className = '';
|
|
74
|
+
target.parentElement.querySelector('.errorBubble').replaceChildren();
|
|
34
75
|
}
|
|
35
|
-
return isValid;
|
|
36
76
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
77
|
+
doSubmit(event) {
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
const formData = new FormData(event.target);
|
|
80
|
+
// Key value pair matching the key names given by the JSON schema will be output line by line
|
|
81
|
+
// TODO: Emit an event so external components can handle the resulting form data
|
|
82
|
+
// let output = "";
|
|
83
|
+
// for (var [key, value] of formData.entries()) {
|
|
84
|
+
// output += `${key} -> ${value}\n`;
|
|
85
|
+
// }
|
|
86
|
+
// console.log(output);
|
|
87
|
+
this.submitEvent.emit(formData);
|
|
88
|
+
}
|
|
89
|
+
fieldsetChange(event) {
|
|
90
|
+
console.log(event.target.name + ' has changed');
|
|
91
|
+
// The correct input box will always be the target of the incoming event
|
|
92
|
+
// TODO: Emit an event so external components can change based on form values input
|
|
93
|
+
}
|
|
94
|
+
componentWillLoad() {
|
|
95
|
+
// set proper on initial render
|
|
96
|
+
this.onFormSchemaChange(this.formschema);
|
|
97
|
+
}
|
|
98
|
+
componentWillRender() {
|
|
99
|
+
this.template.content.replaceChildren(); // clear the template to account for a potential re-render scenario
|
|
100
|
+
this.populateFormFromSchema();
|
|
101
|
+
}
|
|
102
|
+
populateFormFromSchema() {
|
|
103
|
+
if (!this._formSchema)
|
|
104
|
+
return;
|
|
105
|
+
const properties = this._formSchema.properties;
|
|
106
|
+
const propertyKeys = Object.keys(properties);
|
|
107
|
+
propertyKeys.forEach(formKey => {
|
|
108
|
+
var _a, _b, _c;
|
|
109
|
+
const formItem = properties[formKey];
|
|
110
|
+
const formProperties = formItem.form;
|
|
111
|
+
const input = document.createElement('input');
|
|
112
|
+
input.name = formKey;
|
|
113
|
+
input.type = formProperties.type;
|
|
114
|
+
input.placeholder = (_a = formProperties.placeholder) !== null && _a !== void 0 ? _a : '';
|
|
115
|
+
input.autocomplete = 'off';
|
|
116
|
+
input.autocapitalize = 'off';
|
|
117
|
+
if (formProperties.validation) {
|
|
118
|
+
const validation = formProperties.validation;
|
|
119
|
+
if (validation.required) {
|
|
120
|
+
input.setAttribute('required', '');
|
|
121
|
+
input.setAttribute('data-required', (_b = validation.required.message) !== null && _b !== void 0 ? _b : '');
|
|
122
|
+
}
|
|
123
|
+
if (validation.pattern) {
|
|
124
|
+
input.setAttribute('pattern', validation.pattern.pattern);
|
|
125
|
+
input.setAttribute('data-pattern', (_c = validation.pattern.message) !== null && _c !== void 0 ? _c : '');
|
|
126
|
+
}
|
|
127
|
+
if (validation.badInput) {
|
|
128
|
+
input.setAttribute('data-badinput', validation.badInput.message);
|
|
129
|
+
}
|
|
130
|
+
if (validation.minmax) {
|
|
131
|
+
input.setAttribute('min', validation.minmax.min);
|
|
132
|
+
input.setAttribute('max', validation.minmax.max);
|
|
133
|
+
input.setAttribute('data-range', validation.minmax.message);
|
|
46
134
|
}
|
|
47
|
-
|
|
135
|
+
if (validation.maxlength) {
|
|
136
|
+
input.setAttribute('maxlength', validation.maxlength);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const errorBubble = document.createElement('div');
|
|
140
|
+
errorBubble.className = 'errorBubble';
|
|
141
|
+
const label = document.createElement('label');
|
|
142
|
+
label.className = 'inputBlock';
|
|
143
|
+
label.innerText = formProperties.label;
|
|
144
|
+
if (!formProperties.validation) {
|
|
145
|
+
const optionalSpan = document.createElement('span');
|
|
146
|
+
optionalSpan.className = 'optional';
|
|
147
|
+
optionalSpan.innerHTML = ' (optional)';
|
|
148
|
+
label.appendChild(optionalSpan);
|
|
149
|
+
}
|
|
150
|
+
label.appendChild(input);
|
|
151
|
+
label.appendChild(errorBubble);
|
|
152
|
+
this.template.content.append(label);
|
|
153
|
+
});
|
|
154
|
+
const submitButton = document.createElement('input');
|
|
155
|
+
submitButton.type = 'submit';
|
|
156
|
+
submitButton.className = 'button primary-blue';
|
|
157
|
+
console.log(this.submitValue);
|
|
158
|
+
submitButton.value = 'Save';
|
|
159
|
+
this.template.content.append(submitButton);
|
|
160
|
+
}
|
|
161
|
+
componentDidRender() {
|
|
162
|
+
if (!this._formSchema)
|
|
163
|
+
return;
|
|
164
|
+
const formItems = this.template.content.cloneNode(true);
|
|
165
|
+
// bind to events here as you can't do it in a template in stencil
|
|
166
|
+
const properties = this._formSchema.properties;
|
|
167
|
+
const propertyKeys = Object.keys(properties);
|
|
168
|
+
propertyKeys.forEach(formKey => {
|
|
169
|
+
formItems.querySelector(`[name=${formKey}]`).oninvalid = this.validityCheck.bind(this);
|
|
170
|
+
formItems.querySelector(`[name=${formKey}]`).onblur = this.validityCheck.bind(this);
|
|
48
171
|
});
|
|
172
|
+
// append to the fieldset
|
|
173
|
+
this.fieldset.appendChild(formItems);
|
|
49
174
|
}
|
|
50
175
|
render() {
|
|
51
|
-
return (h("
|
|
176
|
+
return (h(Host, null, h("form", { onSubmit: this.doSubmit.bind(this) }, h("fieldset", { onChange: this.fieldsetChange, ref: el => (this.fieldset = el) }))));
|
|
52
177
|
}
|
|
53
|
-
get
|
|
178
|
+
static get watchers() { return {
|
|
179
|
+
"formschema": ["onFormSchemaChange"]
|
|
180
|
+
}; }
|
|
181
|
+
static get style() { return tttxFormCss; }
|
|
54
182
|
}, [1, "tttx-form", {
|
|
55
|
-
"
|
|
56
|
-
"
|
|
183
|
+
"formschema": [8],
|
|
184
|
+
"submitValue": [8, "submit-value"]
|
|
57
185
|
}]);
|
|
58
186
|
function defineCustomElement$1() {
|
|
59
187
|
if (typeof customElements === "undefined") {
|