@ulu/frontend-vue 0.1.2-beta.8 → 0.1.3-beta.1
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/frontend-vue.js +1604 -1596
- package/dist/types/components/collapsible/UluModal.vue.d.ts.map +1 -1
- package/dist/types/components/forms/UluForm.vue.d.ts +24 -0
- package/dist/types/components/forms/UluForm.vue.d.ts.map +1 -0
- package/dist/types/components/forms/UluFormActions.vue.d.ts +10 -0
- package/dist/types/components/forms/UluFormActions.vue.d.ts.map +1 -0
- package/dist/types/components/forms/UluFormCheckbox.vue.d.ts +22 -0
- package/dist/types/components/forms/UluFormCheckbox.vue.d.ts.map +1 -0
- package/dist/types/components/forms/UluFormFieldset.vue.d.ts +16 -0
- package/dist/types/components/forms/UluFormFieldset.vue.d.ts.map +1 -0
- package/dist/types/components/forms/UluFormFile.vue.d.ts +2 -0
- package/dist/types/components/forms/UluFormFile.vue.d.ts.map +1 -1
- package/dist/types/components/forms/UluFormItem.vue.d.ts +28 -0
- package/dist/types/components/forms/UluFormItem.vue.d.ts.map +1 -0
- package/dist/types/components/forms/UluFormItemsInline.vue.d.ts +10 -0
- package/dist/types/components/forms/UluFormItemsInline.vue.d.ts.map +1 -0
- package/dist/types/components/forms/UluFormRadio.vue.d.ts +26 -0
- package/dist/types/components/forms/UluFormRadio.vue.d.ts.map +1 -0
- package/dist/types/components/forms/UluFormRequiredChar.vue.d.ts +3 -0
- package/dist/types/components/forms/UluFormRequiredChar.vue.d.ts.map +1 -0
- package/dist/types/components/forms/UluFormSelect.vue.d.ts +3 -1
- package/dist/types/components/forms/UluFormSelect.vue.d.ts.map +1 -1
- package/dist/types/components/forms/UluFormText.vue.d.ts +3 -1
- package/dist/types/components/forms/UluFormText.vue.d.ts.map +1 -1
- package/dist/types/components/forms/UluFormTextarea.vue.d.ts +24 -0
- package/dist/types/components/forms/UluFormTextarea.vue.d.ts.map +1 -0
- package/dist/types/components/navigation/UluPager.vue.d.ts.map +1 -1
- package/dist/types/components/systems/facets/UluFacetsSearch.vue.d.ts.map +1 -1
- package/dist/types/components/systems/facets/UluFacetsSort.vue.d.ts.map +1 -1
- package/lib/components/collapsible/UluModal.vue +2 -4
- package/lib/components/forms/UluForm.vue +42 -0
- package/lib/components/forms/UluFormActions.vue +9 -0
- package/lib/components/forms/UluFormCheckbox.vue +38 -0
- package/lib/components/forms/UluFormFieldset.vue +15 -0
- package/lib/components/forms/UluFormFile.vue +24 -23
- package/lib/components/forms/UluFormItem.vue +49 -0
- package/lib/components/forms/UluFormItemsInline.vue +9 -0
- package/lib/components/forms/UluFormMessage.vue +3 -3
- package/lib/components/forms/UluFormRadio.vue +48 -0
- package/lib/components/forms/UluFormRequiredChar.vue +7 -0
- package/lib/components/forms/UluFormSelect.vue +24 -23
- package/lib/components/forms/UluFormText.vue +20 -19
- package/lib/components/forms/UluFormTextarea.vue +41 -0
- package/lib/components/navigation/UluPager.vue +2 -3
- package/lib/components/systems/facets/UluFacetsSearch.vue +2 -2
- package/lib/components/systems/facets/UluFacetsSort.vue +2 -4
- package/lib/components/systems/facets/useFacets.js +4 -4
- package/package.json +1 -1
|
@@ -1,28 +1,25 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
</div>
|
|
2
|
+
<label :class="{ 'hidden-visually' : labelHidden }" :for="id">
|
|
3
|
+
<slot name="label">
|
|
4
|
+
{{ label }}<UluFormRequiredChar v-if="required" />
|
|
5
|
+
</slot>
|
|
6
|
+
</label>
|
|
7
|
+
<select
|
|
8
|
+
:id="id"
|
|
9
|
+
:value="modelValue"
|
|
10
|
+
@input="$emit('update:modelValue', $event.target.value)"
|
|
11
|
+
:required="required"
|
|
12
|
+
>
|
|
13
|
+
<option disabled value="">Please select one</option>
|
|
14
|
+
<option v-for="(option, index) in options" :key="index" :value="option.value">
|
|
15
|
+
{{ option.text }}
|
|
16
|
+
</option>
|
|
17
|
+
</select>
|
|
19
18
|
</template>
|
|
20
19
|
|
|
21
20
|
<script setup>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return () => `select-id-${++count}`;
|
|
25
|
-
})();
|
|
21
|
+
import { newId } from "../../utils/dom.js";
|
|
22
|
+
import UluFormRequiredChar from "./UluFormRequiredChar.vue";
|
|
26
23
|
|
|
27
24
|
defineProps({
|
|
28
25
|
/**
|
|
@@ -40,10 +37,14 @@
|
|
|
40
37
|
/**
|
|
41
38
|
* If true, the label will be visually hidden.
|
|
42
39
|
*/
|
|
43
|
-
labelHidden: Boolean
|
|
40
|
+
labelHidden: Boolean,
|
|
41
|
+
/**
|
|
42
|
+
* If true, the field will be required.
|
|
43
|
+
*/
|
|
44
|
+
required: Boolean
|
|
44
45
|
});
|
|
45
46
|
|
|
46
47
|
defineEmits(['update:modelValue']);
|
|
47
48
|
|
|
48
|
-
const id =
|
|
49
|
+
const id = newId();
|
|
49
50
|
</script>
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
</div>
|
|
2
|
+
<label :class="{ 'hidden-visually' : labelHidden }" :for="id">
|
|
3
|
+
<slot name="label">
|
|
4
|
+
{{ label }}<UluFormRequiredChar v-if="required" />
|
|
5
|
+
</slot>
|
|
6
|
+
</label>
|
|
7
|
+
<input
|
|
8
|
+
type="text"
|
|
9
|
+
:value="modelValue"
|
|
10
|
+
@input="$emit('update:modelValue', $event.target.value)"
|
|
11
|
+
:id="id"
|
|
12
|
+
:required="required"
|
|
13
|
+
>
|
|
15
14
|
</template>
|
|
16
15
|
|
|
17
16
|
<script setup>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return () => `text-input-id-${++count}`;
|
|
21
|
-
})();
|
|
17
|
+
import { newId } from "../../utils/dom.js";
|
|
18
|
+
import UluFormRequiredChar from "./UluFormRequiredChar.vue";
|
|
22
19
|
|
|
23
20
|
defineProps({
|
|
24
21
|
/**
|
|
@@ -32,10 +29,14 @@
|
|
|
32
29
|
/**
|
|
33
30
|
* If true, the label will be visually hidden.
|
|
34
31
|
*/
|
|
35
|
-
labelHidden: Boolean
|
|
32
|
+
labelHidden: Boolean,
|
|
33
|
+
/**
|
|
34
|
+
* If true, the field will be required.
|
|
35
|
+
*/
|
|
36
|
+
required: Boolean
|
|
36
37
|
});
|
|
37
38
|
|
|
38
39
|
defineEmits(['update:modelValue']);
|
|
39
40
|
|
|
40
|
-
const id =
|
|
41
|
+
const id = newId();
|
|
41
42
|
</script>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<label :class="{ 'hidden-visually' : labelHidden }" :for="id">
|
|
3
|
+
<slot name="label">
|
|
4
|
+
{{ label }}<UluFormRequiredChar v-if="required" />
|
|
5
|
+
</slot>
|
|
6
|
+
</label>
|
|
7
|
+
<textarea
|
|
8
|
+
:value="modelValue"
|
|
9
|
+
@input="$emit('update:modelValue', $event.target.value)"
|
|
10
|
+
:id="id"
|
|
11
|
+
:required="required"
|
|
12
|
+
></textarea>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<script setup>
|
|
16
|
+
import { newId } from "../../utils/dom.js";
|
|
17
|
+
import UluFormRequiredChar from "./UluFormRequiredChar.vue";
|
|
18
|
+
|
|
19
|
+
defineProps({
|
|
20
|
+
/**
|
|
21
|
+
* The label for the textarea.
|
|
22
|
+
*/
|
|
23
|
+
label: String,
|
|
24
|
+
/**
|
|
25
|
+
* The value of the textarea (for v-model).
|
|
26
|
+
*/
|
|
27
|
+
modelValue: String,
|
|
28
|
+
/**
|
|
29
|
+
* If true, the label will be visually hidden.
|
|
30
|
+
*/
|
|
31
|
+
labelHidden: Boolean,
|
|
32
|
+
/**
|
|
33
|
+
* If true, the field will be required.
|
|
34
|
+
*/
|
|
35
|
+
required: Boolean
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
defineEmits(['update:modelValue']);
|
|
39
|
+
|
|
40
|
+
const id = newId();
|
|
41
|
+
</script>
|
|
@@ -55,8 +55,7 @@
|
|
|
55
55
|
|
|
56
56
|
<script setup>
|
|
57
57
|
import UluIcon from '../elements/UluIcon.vue';
|
|
58
|
-
|
|
59
|
-
let pagerCounter = 0;
|
|
58
|
+
import { newId } from '../../utils/dom.js';
|
|
60
59
|
|
|
61
60
|
const props = defineProps({
|
|
62
61
|
/**
|
|
@@ -89,7 +88,7 @@ const props = defineProps({
|
|
|
89
88
|
}
|
|
90
89
|
});
|
|
91
90
|
|
|
92
|
-
const headingId =
|
|
91
|
+
const headingId = newId('ulu-pager');
|
|
93
92
|
|
|
94
93
|
/**
|
|
95
94
|
* Generates the title for a page link.
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
<script setup>
|
|
17
17
|
import { computed } from 'vue';
|
|
18
|
+
import { newId } from '../../../utils/dom.js';
|
|
18
19
|
|
|
19
20
|
const props = defineProps({
|
|
20
21
|
classes: {
|
|
@@ -30,8 +31,7 @@
|
|
|
30
31
|
|
|
31
32
|
const emit = defineEmits(['update:modelValue']);
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
const id = `facet-view-keyword-${++uid}`;
|
|
34
|
+
const id = newId('facet-view-keyword');
|
|
35
35
|
|
|
36
36
|
const localValue = computed({
|
|
37
37
|
get() {
|
|
@@ -20,9 +20,7 @@
|
|
|
20
20
|
</template>
|
|
21
21
|
|
|
22
22
|
<script setup>
|
|
23
|
-
import {
|
|
24
|
-
|
|
25
|
-
let idCounter = 0;
|
|
23
|
+
import { newId } from '../../../utils/dom.js';
|
|
26
24
|
|
|
27
25
|
defineProps({
|
|
28
26
|
classes: {
|
|
@@ -41,5 +39,5 @@
|
|
|
41
39
|
|
|
42
40
|
const emit = defineEmits(['update:modelValue']);
|
|
43
41
|
|
|
44
|
-
const sortId =
|
|
42
|
+
const sortId = newId('ulu-facet-sort');
|
|
45
43
|
</script>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ref, computed, watch, nextTick } from 'vue';
|
|
1
|
+
import { ref, computed, watch, nextTick, watchPostEffect } from 'vue';
|
|
2
2
|
import Fuse from 'fuse.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -455,12 +455,12 @@ export function useFacets(allItems, options = {}) {
|
|
|
455
455
|
};
|
|
456
456
|
|
|
457
457
|
// Initial sync from URL
|
|
458
|
-
const stopInitWatcher =
|
|
459
|
-
if (
|
|
458
|
+
const stopInitWatcher = watchPostEffect(() => {
|
|
459
|
+
if (facets.value && facets.value.length > 0) {
|
|
460
460
|
updateStateFromUrl();
|
|
461
461
|
stopInitWatcher();
|
|
462
462
|
}
|
|
463
|
-
}
|
|
463
|
+
});
|
|
464
464
|
|
|
465
465
|
// Sync state changes TO the URL
|
|
466
466
|
watch([selectedSort, searchValue, selectedFacets], updateUrlFromState, { deep: true });
|