vueless 0.0.592 → 0.0.594
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/composables/useUI.ts +17 -15
- package/package.json +1 -1
- package/types.ts +2 -0
- package/ui.button/storybook/stories.ts +3 -1
- package/ui.button-link/storybook/stories.ts +3 -1
- package/ui.button-toggle/storybook/stories.ts +3 -1
- package/ui.button-toggle-item/storybook/stories.ts +3 -1
- package/ui.container-accordion/storybook/stories.ts +3 -1
- package/ui.container-card/storybook/stories.ts +3 -1
- package/ui.container-col/storybook/stories.ts +1 -1
- package/ui.container-divider/storybook/stories.ts +3 -1
- package/ui.container-group/storybook/stories.ts +1 -1
- package/ui.container-groups/storybook/stories.ts +1 -1
- package/ui.container-modal/storybook/stories.ts +1 -1
- package/ui.container-modal-confirm/storybook/stories.ts +1 -1
- package/ui.container-page/storybook/stories.ts +3 -1
- package/ui.container-row/storybook/stories.ts +3 -1
- package/ui.data-list/storybook/stories.ts +3 -1
- package/ui.data-table/storybook/stories.ts +3 -1
- package/ui.dropdown-badge/storybook/stories.ts +1 -1
- package/ui.dropdown-button/storybook/stories.ts +1 -1
- package/ui.dropdown-link/storybook/stories.ts +1 -1
- package/ui.dropdown-list/storybook/stories.ts +1 -1
- package/ui.dropdown-list/types.ts +1 -1
- package/ui.form-calendar/storybook/stories.ts +1 -1
- package/ui.form-checkbox/storybook/stories.ts +3 -1
- package/ui.form-checkbox-group/storybook/stories.ts +3 -1
- package/ui.form-checkbox-multi-state/storybook/stories.ts +3 -1
- package/ui.form-color-picker/storybook/stories.ts +3 -1
- package/ui.form-date-picker/UDatePicker.vue +1 -1
- package/ui.form-date-picker/storybook/stories.ts +1 -1
- package/ui.form-date-picker-range/storybook/stories.ts +3 -1
- package/ui.form-input/storybook/stories.ts +3 -1
- package/ui.form-input-file/storybook/stories.ts +3 -1
- package/ui.form-input-money/storybook/stories.ts +3 -1
- package/ui.form-input-number/storybook/stories.ts +3 -1
- package/ui.form-input-rating/storybook/stories.ts +3 -1
- package/ui.form-input-search/storybook/stories.ts +3 -1
- package/ui.form-label/ULabel.vue +1 -1
- package/ui.form-label/storybook/stories.ts +3 -1
- package/ui.form-radio/storybook/stories.ts +3 -1
- package/ui.form-radio-group/storybook/stories.ts +3 -1
- package/ui.form-select/USelect.vue +535 -682
- package/ui.form-select/{config.js → config.ts} +2 -1
- package/ui.form-select/{constants.js → constants.ts} +0 -5
- package/ui.form-select/storybook/Docs.mdx +2 -2
- package/ui.form-select/storybook/{stories.js → stories.ts} +23 -13
- package/ui.form-select/types.ts +134 -0
- package/ui.form-select/utilSelect.ts +122 -0
- package/ui.form-switch/storybook/stories.ts +3 -1
- package/ui.form-textarea/storybook/stories.ts +3 -1
- package/ui.image-avatar/storybook/stories.ts +3 -1
- package/ui.image-icon/storybook/stories.ts +3 -1
- package/ui.loader/storybook/stories.ts +3 -1
- package/ui.loader-overlay/storybook/stories.ts +1 -1
- package/ui.loader-progress/storybook/stories.ts +3 -1
- package/ui.navigation-progress/storybook/stories.ts +3 -1
- package/ui.navigation-tab/storybook/stories.ts +3 -1
- package/ui.navigation-tabs/storybook/stories.ts +3 -1
- package/ui.other-dot/storybook/stories.ts +3 -1
- package/ui.text-alert/storybook/stories.ts +3 -1
- package/ui.text-badge/storybook/stories.ts +3 -1
- package/ui.text-block/storybook/stories.ts +3 -1
- package/ui.text-empty/storybook/stories.ts +3 -1
- package/ui.text-file/storybook/stories.ts +3 -1
- package/ui.text-files/storybook/stories.ts +3 -1
- package/ui.text-header/storybook/stories.ts +3 -1
- package/ui.text-money/storybook/stories.ts +3 -1
- package/ui.text-notify/storybook/stories.ts +1 -1
- package/utils/storybook.ts +3 -5
- package/web-types.json +77 -35
- package/ui.form-select/utilSelect.js +0 -100
package/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"framework": "vue",
|
|
3
3
|
"name": "vueless",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.594",
|
|
5
5
|
"contributions": {
|
|
6
6
|
"html": {
|
|
7
7
|
"description-markup": "markdown",
|
|
@@ -9784,24 +9784,35 @@
|
|
|
9784
9784
|
"attributes": [
|
|
9785
9785
|
{
|
|
9786
9786
|
"name": "modelValue",
|
|
9787
|
+
"required": false,
|
|
9787
9788
|
"description": "Select value.",
|
|
9789
|
+
"enum": [
|
|
9790
|
+
"string",
|
|
9791
|
+
"number",
|
|
9792
|
+
"Array"
|
|
9793
|
+
],
|
|
9788
9794
|
"value": {
|
|
9789
9795
|
"kind": "expression",
|
|
9790
|
-
"type": "
|
|
9796
|
+
"type": "union"
|
|
9791
9797
|
},
|
|
9792
9798
|
"default": "\"\""
|
|
9793
9799
|
},
|
|
9794
9800
|
{
|
|
9795
9801
|
"name": "options",
|
|
9802
|
+
"required": false,
|
|
9796
9803
|
"description": "Select options.",
|
|
9804
|
+
"enum": [
|
|
9805
|
+
"Option"
|
|
9806
|
+
],
|
|
9797
9807
|
"value": {
|
|
9798
9808
|
"kind": "expression",
|
|
9799
|
-
"type": "
|
|
9809
|
+
"type": "Array"
|
|
9800
9810
|
},
|
|
9801
|
-
"default": "[]"
|
|
9811
|
+
"default": "() => []"
|
|
9802
9812
|
},
|
|
9803
9813
|
{
|
|
9804
9814
|
"name": "label",
|
|
9815
|
+
"required": false,
|
|
9805
9816
|
"description": "Select label.",
|
|
9806
9817
|
"value": {
|
|
9807
9818
|
"kind": "expression",
|
|
@@ -9811,6 +9822,7 @@
|
|
|
9811
9822
|
},
|
|
9812
9823
|
{
|
|
9813
9824
|
"name": "labelAlign",
|
|
9825
|
+
"required": false,
|
|
9814
9826
|
"description": "Label placement.",
|
|
9815
9827
|
"enum": [
|
|
9816
9828
|
"top",
|
|
@@ -9821,12 +9833,13 @@
|
|
|
9821
9833
|
],
|
|
9822
9834
|
"value": {
|
|
9823
9835
|
"kind": "expression",
|
|
9824
|
-
"type": "
|
|
9836
|
+
"type": "union"
|
|
9825
9837
|
},
|
|
9826
9838
|
"default": "topInside"
|
|
9827
9839
|
},
|
|
9828
9840
|
{
|
|
9829
9841
|
"name": "placeholder",
|
|
9842
|
+
"required": false,
|
|
9830
9843
|
"description": "Select placeholder.",
|
|
9831
9844
|
"value": {
|
|
9832
9845
|
"kind": "expression",
|
|
@@ -9836,24 +9849,25 @@
|
|
|
9836
9849
|
},
|
|
9837
9850
|
{
|
|
9838
9851
|
"name": "description",
|
|
9852
|
+
"required": false,
|
|
9839
9853
|
"description": "Select description.",
|
|
9840
9854
|
"value": {
|
|
9841
9855
|
"kind": "expression",
|
|
9842
9856
|
"type": "string"
|
|
9843
|
-
}
|
|
9844
|
-
"default": "\"\""
|
|
9857
|
+
}
|
|
9845
9858
|
},
|
|
9846
9859
|
{
|
|
9847
9860
|
"name": "error",
|
|
9861
|
+
"required": false,
|
|
9848
9862
|
"description": "Select error message.",
|
|
9849
9863
|
"value": {
|
|
9850
9864
|
"kind": "expression",
|
|
9851
9865
|
"type": "string"
|
|
9852
|
-
}
|
|
9853
|
-
"default": "\"\""
|
|
9866
|
+
}
|
|
9854
9867
|
},
|
|
9855
9868
|
{
|
|
9856
9869
|
"name": "size",
|
|
9870
|
+
"required": false,
|
|
9857
9871
|
"description": "Select size.",
|
|
9858
9872
|
"enum": [
|
|
9859
9873
|
"sm",
|
|
@@ -9862,30 +9876,31 @@
|
|
|
9862
9876
|
],
|
|
9863
9877
|
"value": {
|
|
9864
9878
|
"kind": "expression",
|
|
9865
|
-
"type": "
|
|
9879
|
+
"type": "union"
|
|
9866
9880
|
},
|
|
9867
9881
|
"default": "md"
|
|
9868
9882
|
},
|
|
9869
9883
|
{
|
|
9870
9884
|
"name": "leftIcon",
|
|
9885
|
+
"required": false,
|
|
9871
9886
|
"description": "Left icon name.",
|
|
9872
9887
|
"value": {
|
|
9873
9888
|
"kind": "expression",
|
|
9874
9889
|
"type": "string"
|
|
9875
|
-
}
|
|
9876
|
-
"default": "\"\""
|
|
9890
|
+
}
|
|
9877
9891
|
},
|
|
9878
9892
|
{
|
|
9879
9893
|
"name": "rightIcon",
|
|
9894
|
+
"required": false,
|
|
9880
9895
|
"description": "Right icon name.",
|
|
9881
9896
|
"value": {
|
|
9882
9897
|
"kind": "expression",
|
|
9883
9898
|
"type": "string"
|
|
9884
|
-
}
|
|
9885
|
-
"default": "\"\""
|
|
9899
|
+
}
|
|
9886
9900
|
},
|
|
9887
9901
|
{
|
|
9888
9902
|
"name": "openDirection",
|
|
9903
|
+
"required": false,
|
|
9889
9904
|
"description": "Select open direction.",
|
|
9890
9905
|
"enum": [
|
|
9891
9906
|
"auto",
|
|
@@ -9894,12 +9909,13 @@
|
|
|
9894
9909
|
],
|
|
9895
9910
|
"value": {
|
|
9896
9911
|
"kind": "expression",
|
|
9897
|
-
"type": "
|
|
9912
|
+
"type": "union"
|
|
9898
9913
|
},
|
|
9899
9914
|
"default": "auto"
|
|
9900
9915
|
},
|
|
9901
9916
|
{
|
|
9902
9917
|
"name": "labelKey",
|
|
9918
|
+
"required": false,
|
|
9903
9919
|
"description": "Label key in the item object of options.",
|
|
9904
9920
|
"value": {
|
|
9905
9921
|
"kind": "expression",
|
|
@@ -9909,6 +9925,7 @@
|
|
|
9909
9925
|
},
|
|
9910
9926
|
{
|
|
9911
9927
|
"name": "valueKey",
|
|
9928
|
+
"required": false,
|
|
9912
9929
|
"description": "Value key in the item object of options.",
|
|
9913
9930
|
"value": {
|
|
9914
9931
|
"kind": "expression",
|
|
@@ -9918,24 +9935,26 @@
|
|
|
9918
9935
|
},
|
|
9919
9936
|
{
|
|
9920
9937
|
"name": "groupLabelKey",
|
|
9938
|
+
"required": false,
|
|
9921
9939
|
"description": "Set a name of the property containing the group label.",
|
|
9922
9940
|
"value": {
|
|
9923
9941
|
"kind": "expression",
|
|
9924
9942
|
"type": "string"
|
|
9925
9943
|
},
|
|
9926
|
-
"default": "
|
|
9944
|
+
"default": "label"
|
|
9927
9945
|
},
|
|
9928
9946
|
{
|
|
9929
9947
|
"name": "groupValueKey",
|
|
9948
|
+
"required": false,
|
|
9930
9949
|
"description": "Set a name of the property containing the group values.",
|
|
9931
9950
|
"value": {
|
|
9932
9951
|
"kind": "expression",
|
|
9933
9952
|
"type": "string"
|
|
9934
|
-
}
|
|
9935
|
-
"default": "\"\""
|
|
9953
|
+
}
|
|
9936
9954
|
},
|
|
9937
9955
|
{
|
|
9938
9956
|
"name": "optionsLimit",
|
|
9957
|
+
"required": false,
|
|
9939
9958
|
"description": "Number of options displayed in the dropdown.",
|
|
9940
9959
|
"value": {
|
|
9941
9960
|
"kind": "expression",
|
|
@@ -9945,7 +9964,8 @@
|
|
|
9945
9964
|
},
|
|
9946
9965
|
{
|
|
9947
9966
|
"name": "visibleOptions",
|
|
9948
|
-
"
|
|
9967
|
+
"required": false,
|
|
9968
|
+
"description": "Number of options you can see without a scroll.",
|
|
9949
9969
|
"value": {
|
|
9950
9970
|
"kind": "expression",
|
|
9951
9971
|
"type": "number"
|
|
@@ -9954,6 +9974,7 @@
|
|
|
9954
9974
|
},
|
|
9955
9975
|
{
|
|
9956
9976
|
"name": "clearable",
|
|
9977
|
+
"required": false,
|
|
9957
9978
|
"description": "Allow clearing selected value.",
|
|
9958
9979
|
"value": {
|
|
9959
9980
|
"kind": "expression",
|
|
@@ -9963,6 +9984,7 @@
|
|
|
9963
9984
|
},
|
|
9964
9985
|
{
|
|
9965
9986
|
"name": "multiple",
|
|
9987
|
+
"required": false,
|
|
9966
9988
|
"description": "Allows multiple selection.",
|
|
9967
9989
|
"value": {
|
|
9968
9990
|
"kind": "expression",
|
|
@@ -9972,6 +9994,7 @@
|
|
|
9972
9994
|
},
|
|
9973
9995
|
{
|
|
9974
9996
|
"name": "searchable",
|
|
9997
|
+
"required": false,
|
|
9975
9998
|
"description": "Allows to search value in a list.",
|
|
9976
9999
|
"value": {
|
|
9977
10000
|
"kind": "expression",
|
|
@@ -9981,6 +10004,7 @@
|
|
|
9981
10004
|
},
|
|
9982
10005
|
{
|
|
9983
10006
|
"name": "disabled",
|
|
10007
|
+
"required": false,
|
|
9984
10008
|
"description": "Disable the select.",
|
|
9985
10009
|
"value": {
|
|
9986
10010
|
"kind": "expression",
|
|
@@ -9990,6 +10014,7 @@
|
|
|
9990
10014
|
},
|
|
9991
10015
|
{
|
|
9992
10016
|
"name": "addOption",
|
|
10017
|
+
"required": false,
|
|
9993
10018
|
"description": "Show \"Add new option\" button in the list.",
|
|
9994
10019
|
"value": {
|
|
9995
10020
|
"kind": "expression",
|
|
@@ -9999,30 +10024,33 @@
|
|
|
9999
10024
|
},
|
|
10000
10025
|
{
|
|
10001
10026
|
"name": "id",
|
|
10027
|
+
"required": false,
|
|
10002
10028
|
"description": "Unique element id.",
|
|
10003
10029
|
"value": {
|
|
10004
10030
|
"kind": "expression",
|
|
10005
10031
|
"type": "string"
|
|
10006
|
-
}
|
|
10007
|
-
"default": "\"\""
|
|
10032
|
+
}
|
|
10008
10033
|
},
|
|
10009
10034
|
{
|
|
10010
10035
|
"name": "config",
|
|
10036
|
+
"required": false,
|
|
10011
10037
|
"description": "Component config object.",
|
|
10038
|
+
"enum": [
|
|
10039
|
+
"Config"
|
|
10040
|
+
],
|
|
10012
10041
|
"value": {
|
|
10013
10042
|
"kind": "expression",
|
|
10014
|
-
"type": "
|
|
10015
|
-
}
|
|
10016
|
-
"default": "{}"
|
|
10043
|
+
"type": "ComponentConfig"
|
|
10044
|
+
}
|
|
10017
10045
|
},
|
|
10018
10046
|
{
|
|
10019
10047
|
"name": "dataTest",
|
|
10048
|
+
"required": false,
|
|
10020
10049
|
"description": "Data-test attribute for automated testing.",
|
|
10021
10050
|
"value": {
|
|
10022
10051
|
"kind": "expression",
|
|
10023
10052
|
"type": "string"
|
|
10024
|
-
}
|
|
10025
|
-
"default": "\"\""
|
|
10053
|
+
}
|
|
10026
10054
|
}
|
|
10027
10055
|
],
|
|
10028
10056
|
"events": [
|
|
@@ -10034,7 +10062,7 @@
|
|
|
10034
10062
|
"type": [
|
|
10035
10063
|
"string"
|
|
10036
10064
|
],
|
|
10037
|
-
"name": "
|
|
10065
|
+
"name": "elementId"
|
|
10038
10066
|
}
|
|
10039
10067
|
]
|
|
10040
10068
|
},
|
|
@@ -10046,13 +10074,21 @@
|
|
|
10046
10074
|
"type": [
|
|
10047
10075
|
"string"
|
|
10048
10076
|
],
|
|
10049
|
-
"name": "
|
|
10077
|
+
"name": "elementId"
|
|
10050
10078
|
}
|
|
10051
10079
|
]
|
|
10052
10080
|
},
|
|
10053
10081
|
{
|
|
10054
10082
|
"name": "searchChange",
|
|
10055
|
-
"description": "Triggers when the search value is changed."
|
|
10083
|
+
"description": "Triggers when the search value is changed.",
|
|
10084
|
+
"properties": [
|
|
10085
|
+
{
|
|
10086
|
+
"type": [
|
|
10087
|
+
"string"
|
|
10088
|
+
],
|
|
10089
|
+
"name": "query"
|
|
10090
|
+
}
|
|
10091
|
+
]
|
|
10056
10092
|
},
|
|
10057
10093
|
{
|
|
10058
10094
|
"name": "remove",
|
|
@@ -10063,12 +10099,6 @@
|
|
|
10063
10099
|
"string"
|
|
10064
10100
|
],
|
|
10065
10101
|
"name": "option"
|
|
10066
|
-
},
|
|
10067
|
-
{
|
|
10068
|
-
"type": [
|
|
10069
|
-
"string"
|
|
10070
|
-
],
|
|
10071
|
-
"name": "propsId"
|
|
10072
10102
|
}
|
|
10073
10103
|
]
|
|
10074
10104
|
},
|
|
@@ -10076,11 +10106,23 @@
|
|
|
10076
10106
|
"name": "update:modelValue",
|
|
10077
10107
|
"description": "Triggers when option is selected.",
|
|
10078
10108
|
"properties": [
|
|
10109
|
+
{
|
|
10110
|
+
"type": [
|
|
10111
|
+
"string"
|
|
10112
|
+
],
|
|
10113
|
+
"name": "value"
|
|
10114
|
+
},
|
|
10079
10115
|
{
|
|
10080
10116
|
"type": [
|
|
10081
10117
|
"number"
|
|
10082
10118
|
],
|
|
10083
10119
|
"name": "value"
|
|
10120
|
+
},
|
|
10121
|
+
{
|
|
10122
|
+
"type": [
|
|
10123
|
+
"Option"
|
|
10124
|
+
],
|
|
10125
|
+
"name": "value"
|
|
10084
10126
|
}
|
|
10085
10127
|
]
|
|
10086
10128
|
},
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
export default class SelectService {
|
|
2
|
-
static filterOptions(options, search, label) {
|
|
3
|
-
return search
|
|
4
|
-
? options
|
|
5
|
-
.filter((option) => this.interpolateLabel(option, label).toLowerCase().includes(search))
|
|
6
|
-
.sort((a, b) => {
|
|
7
|
-
return (
|
|
8
|
-
this.interpolateLabel(a, label).indexOf(search) -
|
|
9
|
-
this.interpolateLabel(b, label).indexOf(search)
|
|
10
|
-
);
|
|
11
|
-
})
|
|
12
|
-
: options;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
static filterGroups(options, search, label, values, groupLabelKey) {
|
|
16
|
-
return options.map((group) => {
|
|
17
|
-
if (!group[values]) {
|
|
18
|
-
// eslint-disable-next-line no-console
|
|
19
|
-
console.warn("Options passed to select do not contain groups, despite the config.");
|
|
20
|
-
|
|
21
|
-
return [];
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const groupOptions = this.filterOptions(group[values], search, label);
|
|
25
|
-
|
|
26
|
-
return groupOptions.length
|
|
27
|
-
? {
|
|
28
|
-
[groupLabelKey]: group[groupLabelKey],
|
|
29
|
-
[values]: groupOptions,
|
|
30
|
-
}
|
|
31
|
-
: [];
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
static flattenOptions(options, values, groupLabelKey) {
|
|
36
|
-
return options.reduce((prev, curr) => {
|
|
37
|
-
if (curr[values] && curr[values].length) {
|
|
38
|
-
prev.push({ groupLabel: curr[groupLabelKey] });
|
|
39
|
-
|
|
40
|
-
return prev.concat(curr[values]);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return prev;
|
|
44
|
-
}, []);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
static isEmpty(opt) {
|
|
48
|
-
if (opt === 0) return false;
|
|
49
|
-
if (Array.isArray(opt) && opt.length === 0) return true;
|
|
50
|
-
|
|
51
|
-
return !opt;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
static removeEmptyGroups(options, groupValueKey) {
|
|
55
|
-
return options.filter((group) => {
|
|
56
|
-
return Boolean(group[groupValueKey].filter((item) => !item.isSubGroup).length);
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
static removeSelectedValues(options, groupValueKey, valueKey, modelValue) {
|
|
61
|
-
if (!groupValueKey) {
|
|
62
|
-
return options.filter((option) => !modelValue.includes(option[valueKey]));
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const availableValues = options.map((group) => {
|
|
66
|
-
return {
|
|
67
|
-
...group,
|
|
68
|
-
[groupValueKey]: group[groupValueKey].filter(
|
|
69
|
-
(item) => !modelValue.includes(item[valueKey]),
|
|
70
|
-
),
|
|
71
|
-
};
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
return this.removeEmptyGroups(availableValues, groupValueKey);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
static interpolateLabel(option, label) {
|
|
78
|
-
if (this.isEmpty(option)) return "";
|
|
79
|
-
|
|
80
|
-
return label ? option[label] : option;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
static getGroupOption(item, options, groupValueKey, valueKey) {
|
|
84
|
-
const groupOptions = options.find((option) =>
|
|
85
|
-
option[groupValueKey]?.find((value) => value[valueKey] === item),
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
return groupOptions?.[groupValueKey].find((value) => value[valueKey] === item);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
static getCurrentOption(item, options, groupValueKey, valueKey) {
|
|
92
|
-
if (groupValueKey) {
|
|
93
|
-
return this.getGroupOption(item, options, groupValueKey, valueKey);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const value = (item && item[valueKey]) || item;
|
|
97
|
-
|
|
98
|
-
return options.find((option) => option[valueKey] === value);
|
|
99
|
-
}
|
|
100
|
-
}
|