@soleil-se/config-svelte 1.1.0 → 1.1.2
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
CHANGED
|
@@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file.
|
|
|
3
3
|
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
## [1.1.2] - 2021-03-11
|
|
7
|
+
### Fixed
|
|
8
|
+
- Unable to remove last item in TextList.
|
|
9
|
+
- TextList is not validated when `required` prop is used
|
|
10
|
+
## [1.1.1] - 2021-02-02
|
|
11
|
+
### Fixed
|
|
12
|
+
- Missing docs NumberSpinner.
|
|
13
|
+
|
|
6
14
|
## [1.1.0] - 2021-01-29
|
|
7
15
|
### Added
|
|
8
16
|
- `suffix` prop to NumberSpinner.
|
|
@@ -10,6 +10,7 @@ export let label;
|
|
|
10
10
|
export let min;
|
|
11
11
|
export let max;
|
|
12
12
|
export let step = 1;
|
|
13
|
+
export let suffix;
|
|
13
14
|
export let disabled = false;
|
|
14
15
|
export let readonly = false;
|
|
15
16
|
export let value = min || 1;
|
|
@@ -23,7 +24,7 @@ export let value = min || 1;
|
|
|
23
24
|
import { Panel, NumberSpinner } from '@soleil-se/svelte-config';
|
|
24
25
|
</script>
|
|
25
26
|
<Panel heading="Inställningar">
|
|
26
|
-
<NumberSpinner name="spinner" label="Number spinner" min="5" max="10" />
|
|
27
|
+
<NumberSpinner name="spinner" label="Number spinner" min="5" max="10" suffix="px" />
|
|
27
28
|
</Panel>
|
|
28
29
|
```
|
|
29
30
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { generateId } from '../../utils';
|
|
4
4
|
import { resizer } from '../../actions';
|
|
5
5
|
import Sortable from './internal/Sortable.svelte';
|
|
6
|
+
import DataHolder from './internal/DataHolder.svelte';
|
|
6
7
|
|
|
7
8
|
const values = window.CONFIG_VALUES || {};
|
|
8
9
|
const dispatch = createEventDispatcher();
|
|
@@ -73,10 +74,12 @@
|
|
|
73
74
|
};
|
|
74
75
|
|
|
75
76
|
const updateItem = (index, props) => {
|
|
76
|
-
items[index]
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
if (items[index]) {
|
|
78
|
+
items[index] = {
|
|
79
|
+
...items[index],
|
|
80
|
+
...props,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
80
83
|
};
|
|
81
84
|
|
|
82
85
|
const abortEdit = (index) => {
|
|
@@ -190,11 +193,7 @@
|
|
|
190
193
|
{#if disabled}
|
|
191
194
|
<div class="disabled-overlay" />
|
|
192
195
|
{/if}
|
|
193
|
-
<
|
|
194
|
-
{#each value as option}
|
|
195
|
-
<option>{option}</option>
|
|
196
|
-
{/each}
|
|
197
|
-
</select>
|
|
196
|
+
<DataHolder {id} {name} {value} {required} />
|
|
198
197
|
</div>
|
|
199
198
|
|
|
200
199
|
<style lang="scss" global>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!-- prettier-ignore -->
|
|
2
|
+
<script>
|
|
3
|
+
import triggerInput from './triggerInput';
|
|
4
|
+
|
|
5
|
+
export let id;
|
|
6
|
+
export let value;
|
|
7
|
+
export let name;
|
|
8
|
+
export let required;
|
|
9
|
+
|
|
10
|
+
let selectElement;
|
|
11
|
+
$: noValue = value.length === 0;
|
|
12
|
+
|
|
13
|
+
$: {
|
|
14
|
+
if (selectElement) {
|
|
15
|
+
selectElement.setCustomValidity('');
|
|
16
|
+
setTimeout(() => triggerInput(selectElement, value));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const validationMessage = document.documentElement.lang === 'sv'
|
|
21
|
+
? 'Ange minst ett fält i listan'
|
|
22
|
+
: 'Enter at least one field in the list';
|
|
23
|
+
|
|
24
|
+
const setValidationMessage = () => {
|
|
25
|
+
if (required && noValue) {
|
|
26
|
+
selectElement.setCustomValidity(validationMessage);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<select
|
|
32
|
+
{id}
|
|
33
|
+
{value}
|
|
34
|
+
multiple
|
|
35
|
+
{name}
|
|
36
|
+
class="sr-only"
|
|
37
|
+
aria-hidden="true"
|
|
38
|
+
bind:this={selectElement}
|
|
39
|
+
required={noValue && required}
|
|
40
|
+
on:invalid={setValidationMessage}
|
|
41
|
+
>
|
|
42
|
+
{#each value as option}
|
|
43
|
+
<option>{option}</option>
|
|
44
|
+
{/each}
|
|
45
|
+
</select>
|