@soleil-se/config-svelte 1.5.2 → 1.7.0
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/CHANGELOG.md +15 -0
- package/components/Checkbox/Component.svelte +7 -0
- package/components/Checkbox/README.md +5 -0
- package/components/CheckboxGroup/Component.svelte +7 -1
- package/components/CheckboxGroup/README.md +7 -0
- package/components/DropdownSelector/Component.svelte +7 -0
- package/components/DropdownSelector/README.md +21 -2
- package/components/ImageSelector/Component.svelte +13 -14
- package/components/ImageSelector/README.md +3 -1
- package/components/ImageSelector/i18n.js +25 -0
- package/components/InputField/Component.svelte +23 -7
- package/components/InputField/README.md +18 -11
- package/components/LinkSelector/Component.svelte +20 -12
- package/components/LinkSelector/README.md +42 -13
- package/components/LinkSelector/i18n.js +31 -0
- package/components/ListSelector/Component.svelte +11 -3
- package/components/ListSelector/README.md +14 -11
- package/components/NodeSelector/Component.svelte +7 -0
- package/components/NodeSelector/README.md +12 -11
- package/components/NumberSpinner/Component.svelte +7 -0
- package/components/NumberSpinner/README.md +16 -9
- package/components/Panel/Component.svelte +10 -1
- package/components/Panel/README.md +6 -3
- package/components/Panel/i18n.js +13 -0
- package/components/RadioGroup/Component.svelte +26 -21
- package/components/RadioGroup/README.md +6 -0
- package/components/SelectField/Component.svelte +7 -0
- package/components/SelectField/README.md +17 -9
- package/components/TagSelector/Component.svelte +7 -0
- package/components/TagSelector/README.md +11 -10
- package/components/TextList/Component.svelte +10 -2
- package/components/TextList/README.md +9 -0
- package/components/TextList/i18n.js +13 -0
- package/package.json +1 -1
- package/utils/createI18n.js +29 -0
- package/utils/index.js +1 -0
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
export let type = 'page-list';
|
|
12
12
|
export let required = false;
|
|
13
13
|
export let disabled = false;
|
|
14
|
+
export let sortable = false;
|
|
14
15
|
export let selectable = [];
|
|
15
16
|
export let value = [];
|
|
16
17
|
|
|
@@ -40,7 +41,14 @@
|
|
|
40
41
|
});
|
|
41
42
|
</script>
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
<!--
|
|
45
|
+
@component
|
|
46
|
+
Wrapper for Sitevision [list components](https://developer.sitevision.se/docs/webapps/configuration#h-Listcomponents).
|
|
47
|
+
|
|
48
|
+
[README](https://docs.soleilit.se/03.packages/@soleil&svelte-config/components/ListSelector/)
|
|
49
|
+
-->
|
|
50
|
+
|
|
51
|
+
<div class="form-group" class:disabled>
|
|
44
52
|
<label for={id} class="control-label {required ? 'control-label--required' : ''}">{label}</label>
|
|
45
53
|
<input
|
|
46
54
|
{id}
|
|
@@ -48,6 +56,7 @@
|
|
|
48
56
|
type="hidden"
|
|
49
57
|
data-component={component}
|
|
50
58
|
{required}
|
|
59
|
+
data-sortable={sortable || undefined}
|
|
51
60
|
data-types={selectable}
|
|
52
61
|
value={value.join(',')}
|
|
53
62
|
/>
|
|
@@ -58,7 +67,7 @@
|
|
|
58
67
|
</div>
|
|
59
68
|
|
|
60
69
|
<style>
|
|
61
|
-
.form-group {
|
|
70
|
+
.form-group.disabled {
|
|
62
71
|
position: relative;
|
|
63
72
|
}
|
|
64
73
|
|
|
@@ -71,5 +80,4 @@
|
|
|
71
80
|
background-color: rgba(255, 255, 255, 0.3);
|
|
72
81
|
cursor: not-allowed;
|
|
73
82
|
}
|
|
74
|
-
|
|
75
83
|
</style>
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# ListSelector
|
|
2
2
|
|
|
3
|
-
Wrapper for list components
|
|
4
|
-
|
|
3
|
+
Wrapper for Sitevision [list components](https://developer.sitevision.se/docs/webapps/configuration#h-Listcomponents)
|
|
4
|
+
|
|
5
|
+

|
|
5
6
|
|
|
6
7
|
<!-- TOC -->
|
|
7
8
|
|
|
@@ -30,8 +31,10 @@ export let type = 'page';
|
|
|
30
31
|
export let value = [];
|
|
31
32
|
// If list is required.
|
|
32
33
|
export let required = false;
|
|
33
|
-
// If list is
|
|
34
|
+
// If list is disabled.
|
|
34
35
|
export let disabled = false;
|
|
36
|
+
// If list is sortable, since Sitevision 9.1.
|
|
37
|
+
export let sortable = false;
|
|
35
38
|
// Selectable types
|
|
36
39
|
export let selectable = [];
|
|
37
40
|
|
|
@@ -55,15 +58,15 @@ import { Panel, ListSelector } from '@soleil-se/svelte-config';
|
|
|
55
58
|
|
|
56
59
|
```svelte
|
|
57
60
|
<script>
|
|
58
|
-
import { Panel, ListSelector } from '@soleil-se/svelte-config';
|
|
59
|
-
import { onSave } from '@soleil-se/svelte-config/utils';
|
|
61
|
+
import { Panel, ListSelector } from '@soleil-se/svelte-config';
|
|
62
|
+
import { onSave } from '@soleil-se/svelte-config/utils';
|
|
60
63
|
|
|
61
|
-
const values = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
};
|
|
64
|
+
const values = {
|
|
65
|
+
pages: '',
|
|
66
|
+
...window.CONFIG_VALUES
|
|
67
|
+
};
|
|
65
68
|
|
|
66
|
-
onSave(() => values);
|
|
69
|
+
onSave(() => values);
|
|
67
70
|
|
|
68
71
|
</script>
|
|
69
72
|
|
|
@@ -92,7 +95,7 @@ You can omnit the `-list` suffix for the type prop.
|
|
|
92
95
|
|
|
93
96
|
## Selectable types
|
|
94
97
|
|
|
95
|
-
> :exclamation: Since
|
|
98
|
+
> :exclamation: Since Sitevision 7.0 :exclamation:
|
|
96
99
|
|
|
97
100
|
Filter what types should be selectable. See available types here:
|
|
98
101
|
<https://developer.sitevision.se/docs/webapps/configuration#h-Types-0>
|
|
@@ -54,6 +54,13 @@
|
|
|
54
54
|
});
|
|
55
55
|
</script>
|
|
56
56
|
|
|
57
|
+
<!--
|
|
58
|
+
@component
|
|
59
|
+
Wrapper for Sitevision [node selectors](https://developer.sitevision.se/docs/webapps/configuration#h-SiteVisioncomponents).
|
|
60
|
+
|
|
61
|
+
[README](https://docs.soleilit.se/03.packages/@soleil&svelte-config/components/NodeSelector/)
|
|
62
|
+
-->
|
|
63
|
+
|
|
57
64
|
<div class="form-group {className}">
|
|
58
65
|
<label for={id} class="control-label {required ? 'control-label--required' : ''}">{label}</label>
|
|
59
66
|
<input
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# NodeSelector
|
|
2
2
|
|
|
3
|
-
Wrapper for node selectors.
|
|
4
|
-
|
|
3
|
+
Wrapper for Sitevision [node selectors](https://developer.sitevision.se/docs/webapps/configuration#h-SiteVisioncomponents).
|
|
4
|
+
|
|
5
|
+

|
|
5
6
|
|
|
6
7
|
<!-- TOC -->
|
|
7
8
|
|
|
@@ -35,9 +36,8 @@ export let value = '';
|
|
|
35
36
|
|
|
36
37
|
```svelte
|
|
37
38
|
<script>
|
|
38
|
-
import { Panel, NodeSelector } from '@soleil-se/svelte-config';
|
|
39
|
+
import { Panel, NodeSelector } from '@soleil-se/svelte-config';
|
|
39
40
|
</script>
|
|
40
|
-
```
|
|
41
41
|
|
|
42
42
|
<Panel heading="Inställningar">
|
|
43
43
|
<NodeSelector
|
|
@@ -46,20 +46,21 @@ import { Panel, NodeSelector } from '@soleil-se/svelte-config';
|
|
|
46
46
|
label="Sida"
|
|
47
47
|
/>
|
|
48
48
|
</Panel>
|
|
49
|
+
```
|
|
49
50
|
|
|
50
51
|
### Advanced
|
|
51
52
|
|
|
52
53
|
```svelte
|
|
53
54
|
<script>
|
|
54
|
-
import { Panel, NodeSelector } from '@soleil-se/svelte-config';
|
|
55
|
-
import { onSave } from '@soleil-se/svelte-config/utils';
|
|
55
|
+
import { Panel, NodeSelector } from '@soleil-se/svelte-config';
|
|
56
|
+
import { onSave } from '@soleil-se/svelte-config/utils';
|
|
56
57
|
|
|
57
|
-
const values = {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
};
|
|
58
|
+
const values = {
|
|
59
|
+
page: '',
|
|
60
|
+
...window.CONFIG_VALUES
|
|
61
|
+
};
|
|
61
62
|
|
|
62
|
-
onSave(() => values);
|
|
63
|
+
onSave(() => values);
|
|
63
64
|
|
|
64
65
|
</script>
|
|
65
66
|
|
|
@@ -32,6 +32,13 @@
|
|
|
32
32
|
});
|
|
33
33
|
</script>
|
|
34
34
|
|
|
35
|
+
<!--
|
|
36
|
+
@component
|
|
37
|
+
Wrapper for Sitevision [number spinner](https://developer.sitevision.se/docs/webapps/configuration#h-SiteVisioncomponents).
|
|
38
|
+
|
|
39
|
+
[README](https://docs.soleilit.se/03.packages/@soleil&svelte-config/components/NumberSpinner/)
|
|
40
|
+
-->
|
|
41
|
+
|
|
35
42
|
<div class="form-group">
|
|
36
43
|
<label for={id} class="control-label">{label}</label>
|
|
37
44
|
<input
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
# NumberSpinner
|
|
2
|
-
|
|
3
|
-
https://developer.sitevision.se/docs/webapps/configuration#h-SiteVisioncomponents
|
|
2
|
+
|
|
3
|
+
Wrapper for Sitevision [number spinner](https://developer.sitevision.se/docs/webapps/configuration#h-SiteVisioncomponents).
|
|
4
|
+
|
|
5
|
+

|
|
4
6
|
|
|
5
7
|
## Props
|
|
8
|
+
|
|
6
9
|
```javascript
|
|
7
10
|
export let id = generateId();
|
|
8
11
|
export let name;
|
|
@@ -19,10 +22,12 @@ export let value = min || 1;
|
|
|
19
22
|
## Example
|
|
20
23
|
|
|
21
24
|
### Standard
|
|
25
|
+
|
|
22
26
|
```svelte
|
|
23
27
|
<script>
|
|
24
28
|
import { Panel, NumberSpinner } from '@soleil-se/svelte-config';
|
|
25
29
|
</script>
|
|
30
|
+
|
|
26
31
|
<Panel heading="Inställningar">
|
|
27
32
|
<NumberSpinner name="spinner" label="Number spinner" min="5" max="10" suffix="px" />
|
|
28
33
|
</Panel>
|
|
@@ -32,15 +37,15 @@ export let value = min || 1;
|
|
|
32
37
|
|
|
33
38
|
```svelte
|
|
34
39
|
<script>
|
|
35
|
-
import { Panel, NumberSpinner } from '@soleil-se/svelte-config';
|
|
36
|
-
import { onSave } from '@soleil-se/svelte-config/utils';
|
|
40
|
+
import { Panel, NumberSpinner } from '@soleil-se/svelte-config';
|
|
41
|
+
import { onSave } from '@soleil-se/svelte-config/utils';
|
|
37
42
|
|
|
38
|
-
const values = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
};
|
|
43
|
+
const values = {
|
|
44
|
+
spinner: '',
|
|
45
|
+
...window.CONFIG_VALUES
|
|
46
|
+
};
|
|
42
47
|
|
|
43
|
-
onSave(() => values);
|
|
48
|
+
onSave(() => values);
|
|
44
49
|
|
|
45
50
|
</script>
|
|
46
51
|
|
|
@@ -50,7 +55,9 @@ onSave(() => values);
|
|
|
50
55
|
```
|
|
51
56
|
|
|
52
57
|
## Slots
|
|
58
|
+
|
|
53
59
|
Default slot after selector.
|
|
60
|
+
|
|
54
61
|
```svelte
|
|
55
62
|
<NumberSpinner name="spinner" label="Number spinner" min="5" max="10" />
|
|
56
63
|
<p class="help-block">Some helpful text.</p>
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
|
|
2
|
+
import i18n from './i18n';
|
|
3
|
+
|
|
4
|
+
export let heading = i18n('settings');
|
|
3
5
|
export let required = false;
|
|
4
6
|
</script>
|
|
5
7
|
|
|
8
|
+
<!--
|
|
9
|
+
@component
|
|
10
|
+
A panel component.
|
|
11
|
+
|
|
12
|
+
[README](https://docs.soleilit.se/03.packages/@soleil&svelte-config/components/Panel/)
|
|
13
|
+
-->
|
|
14
|
+
|
|
6
15
|
<div class="panel panel-default">
|
|
7
16
|
<input class="sr-only" type="text" tabindex="-1" />
|
|
8
17
|
<div class="panel-heading">
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
# Panel
|
|
2
2
|
|
|
3
|
+

|
|
4
|
+
|
|
3
5
|
## Props
|
|
6
|
+
|
|
4
7
|
```javascript
|
|
5
8
|
// Panel heading
|
|
6
9
|
export let heading = 'Inställningar';
|
|
@@ -9,17 +12,17 @@ export let required = false;
|
|
|
9
12
|
```
|
|
10
13
|
|
|
11
14
|
## Slots
|
|
15
|
+
|
|
12
16
|
Default slot for panel body.
|
|
13
17
|
|
|
14
18
|
## Example
|
|
19
|
+
|
|
15
20
|
```svelte
|
|
16
21
|
<script>
|
|
17
|
-
import { Panel } from '@soleil-se/svelte-config';
|
|
22
|
+
import { Panel } from '@soleil-se/svelte-config';
|
|
18
23
|
</script>
|
|
19
24
|
|
|
20
25
|
<Panel heading="Inställningar">
|
|
21
26
|
<!-- Panel content -->
|
|
22
27
|
</Panel>
|
|
23
28
|
```
|
|
24
|
-
|
|
25
|
-
|
|
@@ -24,27 +24,32 @@
|
|
|
24
24
|
};
|
|
25
25
|
</script>
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
27
|
+
<!--
|
|
28
|
+
@component
|
|
29
|
+
A radio group component.
|
|
30
|
+
|
|
31
|
+
[README](https://docs.soleilit.se/03.packages/@soleil&svelte-config/components/RadioGroup/)
|
|
32
|
+
-->
|
|
33
|
+
|
|
34
|
+
<fieldset class="form-group">
|
|
35
|
+
<legend>{legend}</legend>
|
|
36
|
+
{#each options as option, index}
|
|
37
|
+
<input
|
|
38
|
+
id={`${id}_${index}`}
|
|
39
|
+
bind:group={value}
|
|
40
|
+
value={option.value || option}
|
|
41
|
+
checked={option.value || option}
|
|
42
|
+
disabled={isDisabled(option)}
|
|
43
|
+
type="radio"
|
|
44
|
+
class="sr-only"
|
|
45
|
+
on:change={onChange}
|
|
46
|
+
/>
|
|
47
|
+
<label for={`${id}_${index}`} class="radio-inline" class:disabled={isDisabled(option)}>
|
|
48
|
+
{option.label || option}
|
|
49
|
+
</label>
|
|
50
|
+
{/each}
|
|
51
|
+
</fieldset>
|
|
52
|
+
<input type="hidden" {value} {name} />
|
|
48
53
|
|
|
49
54
|
<style lang="scss">
|
|
50
55
|
legend {
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
# RadioGroup
|
|
2
2
|
|
|
3
|
+

|
|
4
|
+
|
|
3
5
|
## Props
|
|
6
|
+
|
|
4
7
|
```javascript
|
|
5
8
|
export let id = generateId();
|
|
6
9
|
// If SiteVision default functions for getting and setting config is used name must be set
|
|
@@ -18,6 +21,7 @@ export let value = '';
|
|
|
18
21
|
## Example
|
|
19
22
|
|
|
20
23
|
### Standard
|
|
24
|
+
|
|
21
25
|
```svelte
|
|
22
26
|
<script>
|
|
23
27
|
import { Panel, RadioGroup } from '@soleil-se/svelte-config';
|
|
@@ -63,7 +67,9 @@ onSave(() => values);
|
|
|
63
67
|
```
|
|
64
68
|
|
|
65
69
|
## Default value
|
|
70
|
+
|
|
66
71
|
Use the value attribute to set a default value:
|
|
72
|
+
|
|
67
73
|
```svelte
|
|
68
74
|
<RadioGroup
|
|
69
75
|
name="radioGroup"
|
|
@@ -19,6 +19,13 @@
|
|
|
19
19
|
};
|
|
20
20
|
</script>
|
|
21
21
|
|
|
22
|
+
<!--
|
|
23
|
+
@component
|
|
24
|
+
A select field component.
|
|
25
|
+
|
|
26
|
+
[README](https://docs.soleilit.se/03.packages/@soleil&svelte-config/components/SelectField/)
|
|
27
|
+
-->
|
|
28
|
+
|
|
22
29
|
<div class="form-group">
|
|
23
30
|
<label class="control-label {required ? 'control-label--required' : ''}" for={id}>{label}</label>
|
|
24
31
|
<!-- svelte-ignore a11y-no-onchange -->
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
# SelectField
|
|
2
2
|
|
|
3
|
+

|
|
4
|
+
|
|
3
5
|
## Props
|
|
6
|
+
|
|
4
7
|
```javascript
|
|
5
8
|
export let id = generateId();
|
|
6
9
|
export let label;
|
|
@@ -14,9 +17,10 @@ export let value = '';
|
|
|
14
17
|
## Example
|
|
15
18
|
|
|
16
19
|
### Standard
|
|
20
|
+
|
|
17
21
|
```svelte
|
|
18
22
|
<script>
|
|
19
|
-
import { Panel, SelectField } from '@soleil-se/svelte-config';
|
|
23
|
+
import { Panel, SelectField } from '@soleil-se/svelte-config';
|
|
20
24
|
</script>
|
|
21
25
|
|
|
22
26
|
<Panel heading="Inställningar">
|
|
@@ -33,17 +37,17 @@ import { Panel, SelectField } from '@soleil-se/svelte-config';
|
|
|
33
37
|
|
|
34
38
|
```svelte
|
|
35
39
|
<script>
|
|
36
|
-
import { Panel, SelectField } from '@soleil-se/svelte-config';
|
|
37
|
-
import { onSave } from '@soleil-se/svelte-config/utils';
|
|
40
|
+
import { Panel, SelectField } from '@soleil-se/svelte-config';
|
|
41
|
+
import { onSave } from '@soleil-se/svelte-config/utils';
|
|
38
42
|
|
|
39
|
-
const values = {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
};
|
|
43
|
+
const values = {
|
|
44
|
+
select: '',
|
|
45
|
+
...window.CONFIG_VALUES
|
|
46
|
+
};
|
|
43
47
|
|
|
44
|
-
const options = ['Värde 1', 'Värde 2', 'Värde 3'];
|
|
48
|
+
const options = ['Värde 1', 'Värde 2', 'Värde 3'];
|
|
45
49
|
|
|
46
|
-
onSave(() => values);
|
|
50
|
+
onSave(() => values);
|
|
47
51
|
|
|
48
52
|
</script>
|
|
49
53
|
|
|
@@ -53,7 +57,9 @@ onSave(() => values);
|
|
|
53
57
|
```
|
|
54
58
|
|
|
55
59
|
## Slots
|
|
60
|
+
|
|
56
61
|
Default slot after select field.
|
|
62
|
+
|
|
57
63
|
```svelte
|
|
58
64
|
<SelectField name="select1" label="Select 1" options={['Värde 1', 'Värde 2', 'Värde 3']} >
|
|
59
65
|
<p class="help-block">Some helpful text</p>
|
|
@@ -61,7 +67,9 @@ Default slot after select field.
|
|
|
61
67
|
```
|
|
62
68
|
|
|
63
69
|
## Default value
|
|
70
|
+
|
|
64
71
|
Use the value attribute to set a default value:
|
|
72
|
+
|
|
65
73
|
```svelte
|
|
66
74
|
<SelectField name="select1" label="Select 1" options={['Värde 1', 'Värde 2', 'Värde 3']} value="Värde 1" />
|
|
67
75
|
```
|
|
@@ -44,6 +44,13 @@
|
|
|
44
44
|
});
|
|
45
45
|
</script>
|
|
46
46
|
|
|
47
|
+
<!--
|
|
48
|
+
@component
|
|
49
|
+
Wrapper for Sitevision [tag selector](https://developer.sitevision.se/docs/webapps/configuration#h-SiteVisioncomponents).
|
|
50
|
+
|
|
51
|
+
[README](https://docs.soleilit.se/03.packages/@soleil&svelte-config/components/TagSelector/)
|
|
52
|
+
-->
|
|
53
|
+
|
|
47
54
|
<div class="form-group {className}">
|
|
48
55
|
<label for={id} class="control-label {required ? 'control-label--required' : ''}">{label}</label>
|
|
49
56
|
<input
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# TagSelector
|
|
2
2
|
|
|
3
|
-
Wrapper for tag selector.
|
|
4
|
-
|
|
3
|
+
Wrapper for Sitevision [tag selector](https://developer.sitevision.se/docs/webapps/configuration#h-SiteVisioncomponents).
|
|
4
|
+
|
|
5
|
+

|
|
5
6
|
|
|
6
7
|
<!-- TOC -->
|
|
7
8
|
|
|
@@ -29,7 +30,7 @@ export let value = [];
|
|
|
29
30
|
|
|
30
31
|
```svelte
|
|
31
32
|
<script>
|
|
32
|
-
import { Panel, TagSelector } from '@soleil-se/svelte-config';
|
|
33
|
+
import { Panel, TagSelector } from '@soleil-se/svelte-config';
|
|
33
34
|
</script>
|
|
34
35
|
|
|
35
36
|
<Panel heading="Inställningar">
|
|
@@ -43,15 +44,15 @@ Name prop is required here as well since Sitevision uses this to initialize the
|
|
|
43
44
|
|
|
44
45
|
```svelte
|
|
45
46
|
<script>
|
|
46
|
-
import { Panel, TagSelector } from '@soleil-se/svelte-config';
|
|
47
|
-
import { onSave } from '@soleil-se/svelte-config/utils';
|
|
47
|
+
import { Panel, TagSelector } from '@soleil-se/svelte-config';
|
|
48
|
+
import { onSave } from '@soleil-se/svelte-config/utils';
|
|
48
49
|
|
|
49
|
-
const values = {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
};
|
|
50
|
+
const values = {
|
|
51
|
+
tags: [],
|
|
52
|
+
...window.CONFIG_VALUES
|
|
53
|
+
};
|
|
53
54
|
|
|
54
|
-
onSave(() => values);
|
|
55
|
+
onSave(() => values);
|
|
55
56
|
|
|
56
57
|
</script>
|
|
57
58
|
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import { createEventDispatcher } from 'svelte';
|
|
3
3
|
import { generateId } from '../../utils';
|
|
4
4
|
import { resizer } from '../../actions';
|
|
5
|
+
import i18n from './i18n';
|
|
6
|
+
|
|
5
7
|
import Sortable from './internal/Sortable.svelte';
|
|
6
8
|
import Item from './internal/Item.svelte';
|
|
7
9
|
import DataHolder from './internal/DataHolder.svelte';
|
|
@@ -66,6 +68,13 @@
|
|
|
66
68
|
};
|
|
67
69
|
</script>
|
|
68
70
|
|
|
71
|
+
<!--
|
|
72
|
+
@component
|
|
73
|
+
Custom list component for adding multiple text values and sorting them.
|
|
74
|
+
|
|
75
|
+
[README](https://docs.soleilit.se/03.packages/@soleil&svelte-config/components/TextList/)
|
|
76
|
+
-->
|
|
77
|
+
|
|
69
78
|
<div class="form-group">
|
|
70
79
|
<label for={id} class="control-label {required ? 'control-label--required' : ''}">{label}</label>
|
|
71
80
|
<div class="list-component">
|
|
@@ -87,7 +96,7 @@
|
|
|
87
96
|
on:click={addItem}
|
|
88
97
|
>
|
|
89
98
|
<i class="glyphicons plus" aria-hidden="true" />
|
|
90
|
-
|
|
99
|
+
{i18n('add')}
|
|
91
100
|
</button>
|
|
92
101
|
</div>
|
|
93
102
|
{#if disabled}
|
|
@@ -110,5 +119,4 @@
|
|
|
110
119
|
background-color: rgba(255, 255, 255, 0.3);
|
|
111
120
|
cursor: not-allowed;
|
|
112
121
|
}
|
|
113
|
-
|
|
114
122
|
</style>
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# TextList
|
|
2
2
|
|
|
3
|
+
Custom list component for adding multiple text values and sorting them.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
3
7
|
## Props
|
|
8
|
+
|
|
4
9
|
```javascript
|
|
5
10
|
export let id = generateId();
|
|
6
11
|
export let label;
|
|
@@ -11,7 +16,9 @@ export let value = [];
|
|
|
11
16
|
```
|
|
12
17
|
|
|
13
18
|
## Default value
|
|
19
|
+
|
|
14
20
|
Use the value attribute to set a default value:
|
|
21
|
+
|
|
15
22
|
```svelte
|
|
16
23
|
<TextList
|
|
17
24
|
name="textList"
|
|
@@ -23,6 +30,7 @@ Use the value attribute to set a default value:
|
|
|
23
30
|
## Example
|
|
24
31
|
|
|
25
32
|
### Standard
|
|
33
|
+
|
|
26
34
|
```svelte
|
|
27
35
|
<script>
|
|
28
36
|
import { Panel, TextList } from '@soleil-se/svelte-config';
|
|
@@ -35,6 +43,7 @@ import { Panel, TextList } from '@soleil-se/svelte-config';
|
|
|
35
43
|
/>
|
|
36
44
|
</Panel>
|
|
37
45
|
```
|
|
46
|
+
|
|
38
47
|
### Advanced
|
|
39
48
|
|
|
40
49
|
```svelte
|
package/package.json
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const locale = document.documentElement.lang || 'en';
|
|
2
|
+
|
|
3
|
+
/* https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_get */
|
|
4
|
+
const get = (obj, path, defaultValue = undefined) => {
|
|
5
|
+
const travel = (regexp) => String.prototype.split
|
|
6
|
+
.call(path, regexp)
|
|
7
|
+
.filter(Boolean)
|
|
8
|
+
.reduce((res, key) => (res !== null && res !== undefined ? res[key] : res), obj);
|
|
9
|
+
const result = travel(/[,[\]]+?/) || travel(/[,[\].]+?/);
|
|
10
|
+
return result === undefined || result === obj ? defaultValue : result;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default function createI18n(messages) {
|
|
14
|
+
return (path, values = {}) => {
|
|
15
|
+
let message = get(messages[locale], path);
|
|
16
|
+
if (message == null) {
|
|
17
|
+
console.warn(`[@soleil-se/svelte-config/utils/i18n] No translation avaliable for ${path}`);
|
|
18
|
+
return path;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
Object.keys(values).forEach((key) => {
|
|
22
|
+
const value = values[key];
|
|
23
|
+
const regex = new RegExp(`{${key}}`, 'g');
|
|
24
|
+
message = message.replace(regex, value);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
return message;
|
|
28
|
+
};
|
|
29
|
+
}
|
package/utils/index.js
CHANGED
|
@@ -4,3 +4,4 @@ export { default as setupComponent } from './setupComponent';
|
|
|
4
4
|
export { default as addPrefix } from './addPrefix';
|
|
5
5
|
export { default as pluckPrefix } from './pluckPrefix';
|
|
6
6
|
export { default as triggerInput } from './triggerInput';
|
|
7
|
+
export { default as createI18n } from './createI18n';
|