quasar 2.13.0 → 2.14.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/dist/api/BottomSheet.json +7 -2
- package/dist/api/Dialog.json +7 -2
- package/dist/api/QBanner.json +7 -2
- package/dist/api/QBar.json +7 -2
- package/dist/api/QBtn.json +7 -2
- package/dist/api/QBtnDropdown.json +7 -2
- package/dist/api/QCard.json +7 -2
- package/dist/api/QCarousel.json +7 -2
- package/dist/api/QCheckbox.json +8 -3
- package/dist/api/QChip.json +13 -3
- package/dist/api/QColor.json +7 -2
- package/dist/api/QDate.json +7 -2
- package/dist/api/QDrawer.json +7 -2
- package/dist/api/QEditor.json +7 -2
- package/dist/api/QExpansionItem.json +7 -2
- package/dist/api/QFab.json +7 -2
- package/dist/api/QFabAction.json +7 -2
- package/dist/api/QField.json +28 -4
- package/dist/api/QFile.json +14 -4
- package/dist/api/QImg.json +3 -3
- package/dist/api/QInnerLoading.json +7 -2
- package/dist/api/QInput.json +16 -5
- package/dist/api/QIntersection.json +7 -2
- package/dist/api/QItem.json +12 -4
- package/dist/api/QLinearProgress.json +7 -2
- package/dist/api/QList.json +7 -2
- package/dist/api/QMarkupTable.json +7 -2
- package/dist/api/QMenu.json +21 -6
- package/dist/api/QOptionGroup.json +7 -2
- package/dist/api/QPagination.json +37 -11
- package/dist/api/QRadio.json +7 -2
- package/dist/api/QRange.json +7 -2
- package/dist/api/QScrollArea.json +14 -4
- package/dist/api/QSelect.json +23 -7
- package/dist/api/QSeparator.json +7 -2
- package/dist/api/QSkeleton.json +7 -2
- package/dist/api/QSlideItem.json +7 -2
- package/dist/api/QSlider.json +7 -2
- package/dist/api/QStepper.json +7 -2
- package/dist/api/QTabPanel.json +7 -2
- package/dist/api/QTable.json +70 -20
- package/dist/api/QTime.json +17 -6
- package/dist/api/QTimeline.json +7 -2
- package/dist/api/QToggle.json +8 -3
- package/dist/api/QTooltip.json +14 -4
- package/dist/api/QTree.json +7 -2
- package/dist/api/QUploader.json +7 -2
- package/dist/api/QVirtualScroll.json +2 -1
- package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/eva-icons.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
- package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
- package/dist/icon-set/line-awesome.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
- package/dist/icon-set/material-icons.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
- package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +2 -2
- package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
- package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
- package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
- package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v7.umd.prod.js +2 -2
- package/dist/icon-set/svg-themify.umd.prod.js +1 -1
- package/dist/icon-set/themify.umd.prod.js +1 -1
- package/dist/lang/ar-TN.umd.prod.js +1 -1
- package/dist/lang/ar.umd.prod.js +1 -1
- package/dist/lang/az-Latn.umd.prod.js +1 -1
- package/dist/lang/bg.umd.prod.js +1 -1
- package/dist/lang/bn.umd.prod.js +1 -1
- package/dist/lang/ca.umd.prod.js +1 -1
- package/dist/lang/cs.umd.prod.js +1 -1
- package/dist/lang/da.umd.prod.js +1 -1
- package/dist/lang/de-CH.umd.prod.js +1 -1
- package/dist/lang/de-DE.umd.prod.js +1 -1
- package/dist/lang/de.umd.prod.js +1 -1
- package/dist/lang/el.umd.prod.js +1 -1
- package/dist/lang/en-GB.umd.prod.js +1 -1
- package/dist/lang/en-US.umd.prod.js +1 -1
- package/dist/lang/eo.umd.prod.js +1 -1
- package/dist/lang/es.umd.prod.js +1 -1
- package/dist/lang/et.umd.prod.js +1 -1
- package/dist/lang/eu.umd.prod.js +1 -1
- package/dist/lang/fa-IR.umd.prod.js +1 -1
- package/dist/lang/fa.umd.prod.js +1 -1
- package/dist/lang/fi.umd.prod.js +1 -1
- package/dist/lang/fr.umd.prod.js +1 -1
- package/dist/lang/gn.umd.prod.js +1 -1
- package/dist/lang/he.umd.prod.js +1 -1
- package/dist/lang/hi.umd.prod.js +1 -1
- package/dist/lang/hr.umd.prod.js +1 -1
- package/dist/lang/hu.umd.prod.js +1 -1
- package/dist/lang/id.umd.prod.js +1 -1
- package/dist/lang/is.umd.prod.js +1 -1
- package/dist/lang/it.umd.prod.js +1 -1
- package/dist/lang/ja.umd.prod.js +1 -1
- package/dist/lang/kk.umd.prod.js +1 -1
- package/dist/lang/km.umd.prod.js +1 -1
- package/dist/lang/ko-KR.umd.prod.js +1 -1
- package/dist/lang/kur-CKB.umd.prod.js +1 -1
- package/dist/lang/lt.umd.prod.js +1 -1
- package/dist/lang/lu.umd.prod.js +1 -1
- package/dist/lang/lv.umd.prod.js +1 -1
- package/dist/lang/mk.umd.prod.js +2 -2
- package/dist/lang/ml.umd.prod.js +1 -1
- package/dist/lang/mm.umd.prod.js +1 -1
- package/dist/lang/ms.umd.prod.js +1 -1
- package/dist/lang/my.umd.prod.js +1 -1
- package/dist/lang/nb-NO.umd.prod.js +1 -1
- package/dist/lang/nl.umd.prod.js +1 -1
- package/dist/lang/pl.umd.prod.js +1 -1
- package/dist/lang/pt-BR.umd.prod.js +1 -1
- package/dist/lang/pt.umd.prod.js +1 -1
- package/dist/lang/ro.umd.prod.js +1 -1
- package/dist/lang/ru.umd.prod.js +1 -1
- package/dist/lang/sk.umd.prod.js +1 -1
- package/dist/lang/sl.umd.prod.js +1 -1
- package/dist/lang/sm.umd.prod.js +1 -1
- package/dist/lang/sr-CYR.umd.prod.js +1 -1
- package/dist/lang/sr.umd.prod.js +1 -1
- package/dist/lang/sv.umd.prod.js +1 -1
- package/dist/lang/ta.umd.prod.js +1 -1
- package/dist/lang/th.umd.prod.js +1 -1
- package/dist/lang/tr.umd.prod.js +1 -1
- package/dist/lang/ug.umd.prod.js +1 -1
- package/dist/lang/uk.umd.prod.js +1 -1
- package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
- package/dist/lang/uz-Latn.umd.prod.js +1 -1
- package/dist/lang/vi.umd.prod.js +1 -1
- package/dist/lang/zh-CN.umd.prod.js +1 -1
- package/dist/lang/zh-TW.umd.prod.js +1 -1
- package/dist/quasar.addon.css +0 -940
- package/dist/quasar.addon.prod.css +1 -1
- package/dist/quasar.addon.rtl.prod.css +1 -1
- package/dist/quasar.cjs.prod.js +2 -2
- package/dist/quasar.css +3 -138
- package/dist/quasar.esm.js +43 -18
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +3 -6
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +17 -13
- package/dist/quasar.umd.js +43 -18
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/types/api/qtree.d.ts +115 -21
- package/dist/types/index.d.ts +85 -80
- package/dist/vetur/quasar-attributes.json +69 -65
- package/dist/vetur/quasar-tags.json +2 -1
- package/dist/web-types/web-types.json +135 -181
- package/lang/mk.js +4 -4
- package/lang/mk.mjs +4 -4
- package/package.json +1 -1
- package/src/api.extends.json +2 -1
- package/src/components/btn/use-btn.json +2 -1
- package/src/components/checkbox/use-checkbox.json +1 -1
- package/src/components/chip/QChip.json +2 -1
- package/src/components/date/QDate.js +4 -4
- package/src/components/fab/use-fab.json +2 -1
- package/src/components/field/QField.js +14 -2
- package/src/components/field/QField.json +7 -0
- package/src/components/img/QImg.json +3 -3
- package/src/components/input/QInput.json +2 -1
- package/src/components/intersection/QIntersection.json +2 -1
- package/src/components/item/QItem.js +1 -1
- package/src/components/item/QItem.json +3 -3
- package/src/components/menu/QMenu.json +4 -0
- package/src/components/pagination/QPagination.json +9 -5
- package/src/components/scroll-area/QScrollArea.json +2 -1
- package/src/components/select/QSelect.json +2 -1
- package/src/components/time/QTime.json +4 -3
- package/src/components/tooltip/QTooltip.json +4 -0
- package/src/components/virtual-scroll/use-virtual-scroll.json +1 -1
- package/src/composables/private/use-field.js +21 -8
- package/src/composables/private/use-validate.json +2 -1
- package/src/css/core/flex.sass +5 -3
- package/src/css/flex-addon.sass +3 -1
- package/src/css/helpers/math.sass +7 -5
package/dist/quasar.sass
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Quasar Framework v2.
|
|
3
|
-
* (c) 2015-present Razvan Stoenescu
|
|
4
|
-
* Released under the MIT License.
|
|
5
|
-
*/
|
|
1
|
+
/*!
|
|
2
|
+
* Quasar Framework v2.14.0
|
|
3
|
+
* (c) 2015-present Razvan Stoenescu
|
|
4
|
+
* Released under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
@use 'sass:math'
|
|
7
|
+
|
|
6
8
|
@function str-replace($string, $search, $replace: '')
|
|
7
9
|
$index: str-index($string, $search)
|
|
8
10
|
@if $index
|
|
@@ -16,6 +18,7 @@
|
|
|
16
18
|
@if $noProc
|
|
17
19
|
@return str-fr($selector, $name, $i)
|
|
18
20
|
@return join(str-fr($selector, '', $i), str-fr($selector, $name, $i), $separator: comma)
|
|
21
|
+
|
|
19
22
|
$PI: 3.14159265359
|
|
20
23
|
@function pow($number, $exp)
|
|
21
24
|
$value: 1
|
|
@@ -33,22 +36,22 @@ $PI: 3.14159265359
|
|
|
33
36
|
$value: $value * $i
|
|
34
37
|
@return $value
|
|
35
38
|
@function toFixed($number, $power)
|
|
36
|
-
@return round($number * $power)
|
|
39
|
+
@return math.div(round($number * $power), $power)
|
|
37
40
|
@function sin($angle)
|
|
38
41
|
$sin: 0
|
|
39
42
|
|
|
40
|
-
$rad: $angle
|
|
43
|
+
$rad: math.div($angle, 180) * $PI
|
|
41
44
|
|
|
42
45
|
@for $i from 0 through 25
|
|
43
|
-
$sin: $sin + pow(-1, $i) * pow($rad, (2 * $i + 1))
|
|
46
|
+
$sin: $sin + math.div(pow(-1, $i) * pow($rad, (2 * $i + 1)), fact(2 * $i + 1))
|
|
44
47
|
@return $sin
|
|
45
48
|
@function cos($angle)
|
|
46
49
|
$cos: 0
|
|
47
50
|
|
|
48
|
-
$rad: $angle
|
|
51
|
+
$rad: math.div($angle, 180) * $PI
|
|
49
52
|
|
|
50
53
|
@for $i from 0 through 25
|
|
51
|
-
$cos: $cos + pow(-1, $i) * pow($rad, 2 * $i)
|
|
54
|
+
$cos: $cos + math.div(pow(-1, $i) * pow($rad, 2 * $i), fact(2 * $i))
|
|
52
55
|
@return $cos
|
|
53
56
|
$space-base : 16px !default
|
|
54
57
|
$space-x-base : $space-base !default
|
|
@@ -6825,6 +6828,7 @@ body.body--dark
|
|
|
6825
6828
|
z-index: $z-fullscreen
|
|
6826
6829
|
.z-inherit
|
|
6827
6830
|
z-index: inherit !important
|
|
6831
|
+
|
|
6828
6832
|
@mixin fg($name, $size)
|
|
6829
6833
|
$noProcNotZero: $size > 0
|
|
6830
6834
|
@media (min-width: $size)
|
|
@@ -6853,13 +6857,13 @@ body.body--dark
|
|
|
6853
6857
|
.row
|
|
6854
6858
|
#{str-fe('> .col<name>-<i>', $name, $noProcNotZero, $ic)}
|
|
6855
6859
|
height: auto
|
|
6856
|
-
width: toFixed(percentage($i
|
|
6860
|
+
width: toFixed(percentage(math.div($i, $flex-cols)), 10000)
|
|
6857
6861
|
@if $i != 0 or $name != ''
|
|
6858
6862
|
#{str-fe('> .offset<name>-<i>', $name, $noProcNotZero, $ic)}
|
|
6859
|
-
margin-left: toFixed(percentage($i
|
|
6863
|
+
margin-left: toFixed(percentage(math.div($i, $flex-cols)), 10000)
|
|
6860
6864
|
.column
|
|
6861
6865
|
#{str-fe('> .col<name>-<i>', $name, $noProcNotZero, $ic)}
|
|
6862
|
-
height: toFixed(percentage($i
|
|
6866
|
+
height: toFixed(percentage(math.div($i, $flex-cols)), 10000)
|
|
6863
6867
|
width: auto
|
|
6864
6868
|
@if $size == 0 and $i == $flex-cols
|
|
6865
6869
|
.row > .col-all
|
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.
|
|
2
|
+
* Quasar Framework v2.14.0
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1653,7 +1653,7 @@
|
|
|
1653
1653
|
}
|
|
1654
1654
|
|
|
1655
1655
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1656
|
-
const $q = { version: '2.
|
|
1656
|
+
const $q = { version: '2.14.0' };
|
|
1657
1657
|
|
|
1658
1658
|
if (globalConfigIsFrozen === false) {
|
|
1659
1659
|
if (opts.config !== void 0) {
|
|
@@ -14096,17 +14096,17 @@
|
|
|
14096
14096
|
|
|
14097
14097
|
function updateViewModel (year, month, time) {
|
|
14098
14098
|
if (minNav.value !== null && year <= minNav.value.year) {
|
|
14099
|
-
year
|
|
14100
|
-
if (month < minNav.value.month) {
|
|
14099
|
+
if (month < minNav.value.month || year < minNav.value.year) {
|
|
14101
14100
|
month = minNav.value.month;
|
|
14102
14101
|
}
|
|
14102
|
+
year = minNav.value.year;
|
|
14103
14103
|
}
|
|
14104
14104
|
|
|
14105
14105
|
if (maxNav.value !== null && year >= maxNav.value.year) {
|
|
14106
|
-
year
|
|
14107
|
-
if (month > maxNav.value.month) {
|
|
14106
|
+
if (month > maxNav.value.month || year > maxNav.value.year) {
|
|
14108
14107
|
month = maxNav.value.month;
|
|
14109
14108
|
}
|
|
14109
|
+
year = maxNav.value.year;
|
|
14110
14110
|
}
|
|
14111
14111
|
|
|
14112
14112
|
if (time !== void 0) {
|
|
@@ -16743,7 +16743,7 @@
|
|
|
16743
16743
|
}
|
|
16744
16744
|
|
|
16745
16745
|
function onKeyup (e) {
|
|
16746
|
-
if (isClickable.value === true && isKeyCode(e, 13) === true) {
|
|
16746
|
+
if (isClickable.value === true && isKeyCode(e, [ 13, 32 ]) === true) {
|
|
16747
16747
|
stopAndPrevent(e);
|
|
16748
16748
|
|
|
16749
16749
|
// for ripple
|
|
@@ -18920,8 +18920,10 @@
|
|
|
18920
18920
|
}
|
|
18921
18921
|
}
|
|
18922
18922
|
|
|
18923
|
-
function getTargetUid (val) {
|
|
18924
|
-
return val === void 0
|
|
18923
|
+
function getTargetUid (val, requiredForAttr) {
|
|
18924
|
+
return val === void 0
|
|
18925
|
+
? (requiredForAttr === true ? `f_${ uid$3() }` : void 0)
|
|
18926
|
+
: val
|
|
18925
18927
|
}
|
|
18926
18928
|
|
|
18927
18929
|
function fieldValueIsFilled (val) {
|
|
@@ -18980,12 +18982,17 @@
|
|
|
18980
18982
|
|
|
18981
18983
|
const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur', 'popupShow', 'popupHide' ];
|
|
18982
18984
|
|
|
18983
|
-
function useFieldState () {
|
|
18985
|
+
function useFieldState ({ requiredForAttr = true, tagProp } = {}) {
|
|
18984
18986
|
const { props, attrs, proxy, vnode } = vue.getCurrentInstance();
|
|
18985
18987
|
|
|
18986
18988
|
const isDark = useDark(props, proxy.$q);
|
|
18987
18989
|
|
|
18988
18990
|
return {
|
|
18991
|
+
requiredForAttr,
|
|
18992
|
+
tag: tagProp === true
|
|
18993
|
+
? vue.computed(() => props.tag)
|
|
18994
|
+
: { value: 'label' },
|
|
18995
|
+
|
|
18989
18996
|
isDark,
|
|
18990
18997
|
|
|
18991
18998
|
editable: vue.computed(() =>
|
|
@@ -18997,7 +19004,9 @@
|
|
|
18997
19004
|
hasPopupOpen: false,
|
|
18998
19005
|
|
|
18999
19006
|
splitAttrs: useSplitAttrs(attrs, vnode),
|
|
19000
|
-
targetUid: vue.ref(
|
|
19007
|
+
targetUid: vue.ref(
|
|
19008
|
+
getTargetUid(props.for, requiredForAttr)
|
|
19009
|
+
),
|
|
19001
19010
|
|
|
19002
19011
|
rootRef: vue.ref(null),
|
|
19003
19012
|
targetRef: vue.ref(null),
|
|
@@ -19166,7 +19175,7 @@
|
|
|
19166
19175
|
vue.watch(() => props.for, val => {
|
|
19167
19176
|
// don't transform targetUid into a computed
|
|
19168
19177
|
// prop as it will break SSR
|
|
19169
|
-
state.targetUid.value = getTargetUid(val);
|
|
19178
|
+
state.targetUid.value = getTargetUid(val, state.requiredForAttr);
|
|
19170
19179
|
});
|
|
19171
19180
|
|
|
19172
19181
|
function focusHandler () {
|
|
@@ -19451,8 +19460,12 @@
|
|
|
19451
19460
|
});
|
|
19452
19461
|
|
|
19453
19462
|
vue.onMounted(() => {
|
|
19454
|
-
if (
|
|
19455
|
-
|
|
19463
|
+
if (
|
|
19464
|
+
isRuntimeSsrPreHydration.value === true
|
|
19465
|
+
&& state.requiredForAttr === true
|
|
19466
|
+
&& props.for === void 0
|
|
19467
|
+
) {
|
|
19468
|
+
state.targetUid.value = `f_${ uid$3() }`; // getTargetUid(void 0, true)
|
|
19456
19469
|
}
|
|
19457
19470
|
|
|
19458
19471
|
props.autofocus === true && proxy.focus();
|
|
@@ -19474,7 +19487,7 @@
|
|
|
19474
19487
|
}
|
|
19475
19488
|
: attributes.value;
|
|
19476
19489
|
|
|
19477
|
-
return vue.h(
|
|
19490
|
+
return vue.h(state.tag.value, {
|
|
19478
19491
|
ref: state.rootRef,
|
|
19479
19492
|
class: [
|
|
19480
19493
|
classes.value,
|
|
@@ -19520,12 +19533,24 @@
|
|
|
19520
19533
|
|
|
19521
19534
|
inheritAttrs: false,
|
|
19522
19535
|
|
|
19523
|
-
props:
|
|
19536
|
+
props: {
|
|
19537
|
+
...useFieldProps,
|
|
19538
|
+
|
|
19539
|
+
tag: {
|
|
19540
|
+
type: String,
|
|
19541
|
+
default: 'label'
|
|
19542
|
+
}
|
|
19543
|
+
},
|
|
19524
19544
|
|
|
19525
19545
|
emits: useFieldEmits,
|
|
19526
19546
|
|
|
19527
19547
|
setup () {
|
|
19528
|
-
return useField(
|
|
19548
|
+
return useField(
|
|
19549
|
+
useFieldState({
|
|
19550
|
+
requiredForAttr: false,
|
|
19551
|
+
tagProp: true
|
|
19552
|
+
})
|
|
19553
|
+
)
|
|
19529
19554
|
}
|
|
19530
19555
|
});
|
|
19531
19556
|
|
|
@@ -41000,7 +41025,7 @@
|
|
|
41000
41025
|
*/
|
|
41001
41026
|
|
|
41002
41027
|
var index_umd = {
|
|
41003
|
-
version: '2.
|
|
41028
|
+
version: '2.14.0',
|
|
41004
41029
|
install (app, opts) {
|
|
41005
41030
|
installQuasar(app, {
|
|
41006
41031
|
components,
|