@vkontakte/vkui 4.38.0 → 4.38.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/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +19 -10
- package/.cache/ts/src/components/BaseGallery/BaseGallery.d.ts +1 -1
- package/.cache/ts/src/components/ContentCard/ContentCard.d.ts +1 -1
- package/.cache/ts/src/hooks/useId.d.ts +1 -0
- package/dist/cjs/components/BaseGallery/BaseGallery.d.ts +1 -1
- package/dist/cjs/components/BaseGallery/BaseGallery.js +4 -3
- package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.d.ts +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.js +7 -3
- package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js +2 -1
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cjs/components/InfoRow/InfoRow.js +3 -1
- package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +14 -8
- package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cjs/components/UsersStack/UsersStack.js +29 -16
- package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cjs/hooks/useId.d.ts +1 -0
- package/dist/cjs/hooks/useId.js +33 -0
- package/dist/cjs/hooks/useId.js.map +1 -0
- package/dist/components/BaseGallery/BaseGallery.d.ts +1 -1
- package/dist/components/BaseGallery/BaseGallery.js +4 -3
- package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.d.ts +1 -1
- package/dist/components/ContentCard/ContentCard.js +7 -3
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.js +2 -1
- package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/components/InfoRow/InfoRow.js +3 -1
- package/dist/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js +11 -8
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.js +28 -16
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components.css +12 -12
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.css +1 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.d.ts +1 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.js +4 -3
- package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.css +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.d.ts +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js +7 -3
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.css +3 -3
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js +2 -1
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.css +1 -1
- package/dist/cssm/components/FormField/FormField.css +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.js +3 -1
- package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cssm/components/Link/Link.css +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +11 -8
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.css +1 -1
- package/dist/cssm/components/Tappable/Tappable.css +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.css +2 -2
- package/dist/cssm/components/UsersStack/UsersStack.js +28 -16
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/hooks/useId.d.ts +1 -0
- package/dist/cssm/hooks/useId.js +19 -0
- package/dist/cssm/hooks/useId.js.map +1 -0
- package/dist/cssm/styles/components.css +12 -12
- package/dist/hooks/useId.d.ts +1 -0
- package/dist/hooks/useId.js +19 -0
- package/dist/hooks/useId.js.map +1 -0
- package/dist/vkui.css +12 -12
- package/dist/vkui.css.map +1 -1
- package/package.json +1 -1
- package/src/components/BaseGallery/BaseGallery.css +4 -1
- package/src/components/BaseGallery/BaseGallery.tsx +5 -2
- package/src/components/CardGrid/CardGrid.css +7 -7
- package/src/components/ContentCard/ContentCard.tsx +4 -2
- package/src/components/Counter/Counter.css +10 -5
- package/src/components/DropdownIcon/DropdownIcon.tsx +3 -1
- package/src/components/FixedLayout/FixedLayout.css +8 -0
- package/src/components/FormField/FormField.css +4 -0
- package/src/components/FormLayoutGroup/FormLayoutGroup.css +2 -1
- package/src/components/InfoRow/InfoRow.tsx +1 -1
- package/src/components/Link/Link.css +2 -1
- package/src/components/MiniInfoCell/MiniInfoCell.tsx +23 -14
- package/src/components/Removable/Removable.css +4 -0
- package/src/components/Root/Readme.md +1 -1
- package/src/components/SimpleCell/Readme.md +2 -2
- package/src/components/Tappable/Tappable.css +1 -0
- package/src/components/UsersStack/UsersStack.css +13 -51
- package/src/components/UsersStack/UsersStack.tsx +48 -43
- package/src/hooks/useId.ts +18 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiniInfoCell.js","names":["classNames","Paragraph","Tappable","hasReactNode","MiniInfoCell","before","after","mode","textWrap","textLevel","children","restProps","
|
|
1
|
+
{"version":3,"file":"MiniInfoCell.js","names":["React","classNames","Paragraph","Tappable","hasReactNode","MiniInfoCell","before","after","mode","textWrap","textLevel","children","restProps","cellClasses","cellContent","undefined","onClick"],"sources":["../../../src/components/MiniInfoCell/MiniInfoCell.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Paragraph } from \"../Typography/Paragraph/Paragraph\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport \"./MiniInfoCell.css\";\n\nexport interface MiniInfoCellProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Иконка слева.<br />\n * Рекомендуется использовать иконки размера 20.\n */\n before: React.ReactNode;\n\n /**\n * Содержимое справа.<br />\n * `<UsersStack size=\"s\" />` или `<Avatar size={24} />`\n */\n after?: React.ReactNode;\n\n /**\n * Тип ячейки:\n *\n * - `base` – базовая ячейка с серой иконкой и серым текстом.<br />\n * В компонент можно передать `Link`, чтобы визуально сделать часть текста ссылкой.\n * - `add` – тип ячейки, который показывает, что взаимодействие с ней должно вызывать действие добавления чего-то.\n * - `more` – взаимодействие с такой ячейкой должно открывать какую-то подробную информацию.\n */\n mode?: \"base\" | \"add\" | \"more\";\n\n /**\n * Тип отображения текста:\n *\n * - `nowrap` – в одну строку, текст не переносится и обрезается.\n * - `short` – максимально отображается 3 строки, остальное обрезается.\n * - `full` – текст отображается полностью.\n */\n textWrap?: \"nowrap\" | \"short\" | \"full\";\n\n /**\n * Стиль текста:\n *\n * - `primary` – используйте этот стиль, если хотите выделить информацию в общем списке.<br />Пример использования: подробная информация на странице сообщества\n * - `secondary` – стиль по-умолчанию.\n */\n textLevel?: \"primary\" | \"secondary\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/MiniInfoCell\n */\nexport const MiniInfoCell = ({\n before,\n after,\n mode = \"base\",\n textWrap = \"nowrap\",\n textLevel = \"secondary\",\n children,\n ...restProps\n}: MiniInfoCellProps) => {\n const cellClasses = classNames(\n \"MiniInfoCell\",\n mode !== \"base\" && `MiniInfoCell--md-${mode}`,\n textWrap !== \"nowrap\" && `MiniInfoCell--wr-${textWrap}`,\n `MiniInfoCell--lvl-${textLevel}`\n );\n\n const cellContent = (\n <React.Fragment>\n <span vkuiClass=\"MiniInfoCell__icon\">{before}</span>\n <Paragraph\n vkuiClass=\"MiniInfoCell__content\"\n weight={mode === \"more\" ? \"2\" : undefined}\n >\n {children}\n </Paragraph>\n {hasReactNode(after) && (\n <span vkuiClass=\"MiniInfoCell__after\">{after}</span>\n )}\n </React.Fragment>\n );\n\n return restProps.onClick ? (\n <Tappable\n Component=\"div\"\n role=\"button\"\n {...restProps}\n vkuiClass={cellClasses}\n >\n {cellContent}\n </Tappable>\n ) : (\n <div {...restProps} vkuiClass={cellClasses}>\n {cellContent}\n </div>\n );\n};\n"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,SAAT;AACA,SAASC,QAAT;AACA,SAASC,YAAT;;AA6CA;AACA;AACA;AACA,OAAO,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAQH;EAAA,IAPvBC,MAOuB,QAPvBA,MAOuB;EAAA,IANvBC,KAMuB,QANvBA,KAMuB;EAAA,qBALvBC,IAKuB;EAAA,IALvBA,IAKuB,0BALhB,MAKgB;EAAA,yBAJvBC,QAIuB;EAAA,IAJvBA,QAIuB,8BAJZ,QAIY;EAAA,0BAHvBC,SAGuB;EAAA,IAHvBA,SAGuB,+BAHX,WAGW;EAAA,IAFvBC,QAEuB,QAFvBA,QAEuB;EAAA,IADpBC,SACoB;;EACvB,IAAMC,WAAW,GAAGZ,UAAU,CAC5B,cAD4B,EAE5BO,IAAI,KAAK,MAAT,+BAAuCA,IAAvC,CAF4B,EAG5BC,QAAQ,KAAK,QAAb,+BAA6CA,QAA7C,CAH4B,8BAIPC,SAJO,EAA9B;EAOA,IAAMI,WAAW,GACf,oBAAC,KAAD,CAAO,QAAP,QACE;IAAM,SAAS,EAAC;EAAhB,GAAsCR,MAAtC,CADF,EAEE,oBAAC,SAAD;IACE,SAAS,EAAC,uBADZ;IAEE,MAAM,EAAEE,IAAI,KAAK,MAAT,GAAkB,GAAlB,GAAwBO;EAFlC,GAIGJ,QAJH,CAFF,EAQGP,YAAY,CAACG,KAAD,CAAZ,IACC;IAAM,SAAS,EAAC;EAAhB,GAAuCA,KAAvC,CATJ,CADF;EAeA,OAAOK,SAAS,CAACI,OAAV,GACL,oBAAC,QAAD;IACE,SAAS,EAAC,KADZ;IAEE,IAAI,EAAC;EAFP,GAGMJ,SAHN;IAIE,SAAS,EAAEC;EAJb,IAMGC,WANH,CADK,GAUL,wCAASF,SAAT;IAAoB,SAAS,EAAEC;EAA/B,IACGC,WADH,CAVF;AAcD,CA7CM"}
|
|
@@ -7,6 +7,7 @@ import { hasReactNode } from "../../lib/utils";
|
|
|
7
7
|
import { classNames } from "../../lib/classNames";
|
|
8
8
|
import { Footnote } from "../Typography/Footnote/Footnote";
|
|
9
9
|
import { Caption } from "../Typography/Caption/Caption";
|
|
10
|
+
import { useId } from "../../hooks/useId";
|
|
10
11
|
|
|
11
12
|
function PathElement(_ref) {
|
|
12
13
|
var photoSize = _ref.photoSize,
|
|
@@ -74,6 +75,7 @@ export var UsersStack = function UsersStack(_ref2) {
|
|
|
74
75
|
children = _ref2.children,
|
|
75
76
|
restProps = _objectWithoutProperties(_ref2, _excluded2);
|
|
76
77
|
|
|
78
|
+
var cmpId = useId();
|
|
77
79
|
var canShowOthers = count > 0 && size !== "xs";
|
|
78
80
|
var CounterTypography = size === "m" ? Footnote : Caption;
|
|
79
81
|
var photoSize = {
|
|
@@ -82,43 +84,53 @@ export var UsersStack = function UsersStack(_ref2) {
|
|
|
82
84
|
m: 32
|
|
83
85
|
}[size];
|
|
84
86
|
var directionClip = canShowOthers ? "right" : "left";
|
|
85
|
-
var
|
|
86
|
-
return createScopedElement("div", _extends({}, restProps, {
|
|
87
|
-
vkuiClass: classNames("UsersStack", "UsersStack--size-".concat(size), "UsersStack--l-".concat(layout), canShowOthers && "UsersStack--others")
|
|
88
|
-
}), createScopedElement("div", {
|
|
89
|
-
vkuiClass: "UsersStack__photos",
|
|
90
|
-
role: "presentation"
|
|
91
|
-
}, photosShown.map(function (photo, i) {
|
|
87
|
+
var photosElements = photos.slice(0, visibleCount).map(function (photo, i) {
|
|
92
88
|
var direction = i === 0 && !canShowOthers ? "circle" : directionClip;
|
|
89
|
+
var id = "UsersStackDefs".concat(cmpId).concat(i);
|
|
90
|
+
var hrefID = "#".concat(id);
|
|
91
|
+
var maskID = "UsersStackMask".concat(cmpId).concat(i);
|
|
93
92
|
return createScopedElement("svg", {
|
|
94
93
|
xmlns: "http://www.w3.org/2000/svg",
|
|
95
94
|
vkuiClass: "UsersStack__photo",
|
|
96
95
|
key: i,
|
|
97
96
|
"aria-hidden": true
|
|
98
|
-
}, createScopedElement("
|
|
99
|
-
|
|
100
|
-
}, createScopedElement(PathElement, {
|
|
97
|
+
}, createScopedElement("defs", null, createScopedElement(PathElement, {
|
|
98
|
+
id: id,
|
|
101
99
|
direction: direction,
|
|
102
|
-
photoSize: photoSize
|
|
100
|
+
photoSize: photoSize
|
|
101
|
+
})), createScopedElement("clipPath", {
|
|
102
|
+
id: maskID
|
|
103
|
+
}, createScopedElement("use", {
|
|
104
|
+
href: hrefID
|
|
105
|
+
})), createScopedElement("g", {
|
|
106
|
+
clipPath: "url(#".concat(maskID, ")")
|
|
107
|
+
}, createScopedElement("use", {
|
|
108
|
+
href: hrefID,
|
|
103
109
|
vkuiClass: "UsersStack__fill"
|
|
104
110
|
}), createScopedElement("image", {
|
|
105
111
|
href: photo,
|
|
106
112
|
width: photoSize,
|
|
107
113
|
height: photoSize
|
|
108
|
-
}), createScopedElement(
|
|
109
|
-
|
|
110
|
-
photoSize: photoSize,
|
|
114
|
+
}), createScopedElement("use", {
|
|
115
|
+
href: hrefID,
|
|
111
116
|
fill: "none",
|
|
112
117
|
stroke: "rgba(0, 0, 0, 0.08)"
|
|
113
118
|
})));
|
|
114
|
-
})
|
|
119
|
+
});
|
|
120
|
+
var othersElement = canShowOthers ? createScopedElement(CounterTypography, {
|
|
115
121
|
caps: true,
|
|
116
122
|
weight: "1",
|
|
117
123
|
level: "2" // TODO: remove only level in #2343
|
|
118
124
|
,
|
|
119
125
|
vkuiClass: "UsersStack__photo UsersStack__photo--others",
|
|
120
126
|
"aria-hidden": true
|
|
121
|
-
}, createScopedElement("span", null, "+", count))
|
|
127
|
+
}, createScopedElement("span", null, "+", count)) : null;
|
|
128
|
+
return createScopedElement("div", _extends({}, restProps, {
|
|
129
|
+
vkuiClass: classNames("UsersStack", "UsersStack--size-".concat(size), "UsersStack--l-".concat(layout), canShowOthers && "UsersStack--others")
|
|
130
|
+
}), (photosElements.length > 0 || othersElement) && createScopedElement("div", {
|
|
131
|
+
vkuiClass: "UsersStack__photos",
|
|
132
|
+
role: "presentation"
|
|
133
|
+
}, photosElements, othersElement), hasReactNode(children) && createScopedElement(Footnote, {
|
|
122
134
|
vkuiClass: "UsersStack__text"
|
|
123
135
|
}, children));
|
|
124
136
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsersStack.js","names":["hasReactNode","classNames","Footnote","Caption","PathElement","photoSize","direction","props","radius","UsersStack","photos","visibleCount","count","Math","max","length","size","layout","children","restProps","canShowOthers","CounterTypography","xs","s","m","directionClip","
|
|
1
|
+
{"version":3,"file":"UsersStack.js","names":["hasReactNode","classNames","Footnote","Caption","useId","PathElement","photoSize","direction","props","radius","UsersStack","photos","visibleCount","count","Math","max","length","size","layout","children","restProps","cmpId","canShowOthers","CounterTypography","xs","s","m","directionClip","photosElements","slice","map","photo","i","id","hrefID","maskID","othersElement"],"sources":["../../../src/components/UsersStack/UsersStack.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Footnote } from \"../Typography/Footnote/Footnote\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { useId } from \"../../hooks/useId\";\nimport \"./UsersStack.css\";\n\nexport interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Массив ссылок на фотографии\n */\n photos?: string[];\n /**\n * Размер аватарок\n */\n size?: \"xs\" | \"s\" | \"m\"; // TODO: \"s\" | \"m\" | \"l\"\n /**\n * Вертикальный режим рекомендуется использовать с размером `m`\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Количество аватарок, которые будут показаны.\n * Если в массиве `photos` больше элементов и используется размер `m`, то будет показано количество остальных элементов\n */\n visibleCount?: number;\n /**\n * Число, которое будет указано в счетчике.\n * По умолчанию высчитывается по формуле `photos.length - visibleCount`.\n * Если число больше 99, то счетчик скроется.\n */\n count?: number;\n}\n\ninterface PathElementProps extends React.SVGAttributes<SVGElement> {\n photoSize: number;\n direction: \"circle\" | \"right\" | \"left\";\n}\n\nfunction PathElement({ photoSize, direction, ...props }: PathElementProps) {\n switch (direction) {\n case \"circle\":\n const radius = photoSize / 2;\n\n return <circle cx={radius} cy={radius} r={radius} {...props} />;\n\n case \"right\":\n switch (photoSize) {\n case 24:\n return (\n <path\n d=\"M22,18.625A12 12 0 0 1 12 24A12 12 0 0 1 12 0A12 12 0 0 1 22 5.375A12 12 0 0 0 22,18.625\"\n {...props}\n />\n );\n\n default:\n return (\n <path\n d=\"M30,23.75A16 16 0 0 1 16 32A16 16 0 0 1 16 0A16 16 0 0 1 30 8.25A16 16 0 0 0 30,23.75\"\n {...props}\n />\n );\n }\n\n default:\n switch (photoSize) {\n case 16:\n return (\n <path\n d=\"M2,13.285A8 8 0 0 0 8 16A8 8 0 0 0 8 0A8 8 0 0 0 2 2.715A8 8 0 0 1 2,13.285\"\n {...props}\n />\n );\n case 24:\n return (\n <path\n d=\"M2,18.625A12 12 0 0 0 12 24A12 12 0 0 0 12 0A12 12 0 0 0 2 5.375A12 12 0 0 1 2,18.625\"\n {...props}\n />\n );\n\n default:\n return (\n <path\n d=\"M2,23.75A16 16 0 0 0 16 32A16 16 0 0 0 16 0A16 16 0 0 0 2 8.25A16 16 0 0 1 2,23.75\"\n {...props}\n />\n );\n }\n }\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/UsersStack\n */\nexport const UsersStack = ({\n photos = [],\n visibleCount = 3,\n count = Math.max(0, photos.length - visibleCount),\n size = \"s\",\n layout = \"horizontal\",\n children,\n ...restProps\n}: UsersStackProps) => {\n const cmpId = useId();\n\n const canShowOthers = count > 0 && size !== \"xs\";\n const CounterTypography = size === \"m\" ? Footnote : Caption;\n\n const photoSize = {\n xs: 16,\n s: 24,\n m: 32,\n }[size];\n const directionClip = canShowOthers ? \"right\" : \"left\";\n\n const photosElements = photos.slice(0, visibleCount).map((photo, i) => {\n const direction = i === 0 && !canShowOthers ? \"circle\" : directionClip;\n\n const id = `UsersStackDefs${cmpId}${i}`;\n const hrefID = `#${id}`;\n const maskID = `UsersStackMask${cmpId}${i}`;\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n vkuiClass=\"UsersStack__photo\"\n key={i}\n aria-hidden\n >\n <defs>\n <PathElement id={id} direction={direction} photoSize={photoSize} />\n </defs>\n <clipPath id={maskID}>\n <use href={hrefID} />\n </clipPath>\n <g clipPath={`url(#${maskID})`}>\n <use href={hrefID} vkuiClass=\"UsersStack__fill\" />\n <image href={photo} width={photoSize} height={photoSize} />\n <use href={hrefID} fill=\"none\" stroke=\"rgba(0, 0, 0, 0.08)\" />\n </g>\n </svg>\n );\n });\n const othersElement = canShowOthers ? (\n <CounterTypography\n caps\n weight=\"1\"\n level=\"2\" // TODO: remove only level in #2343\n vkuiClass=\"UsersStack__photo UsersStack__photo--others\"\n aria-hidden\n >\n <span>+{count}</span>\n </CounterTypography>\n ) : null;\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n \"UsersStack\",\n `UsersStack--size-${size}`,\n `UsersStack--l-${layout}`,\n canShowOthers && \"UsersStack--others\"\n )}\n >\n {(photosElements.length > 0 || othersElement) && (\n <div vkuiClass=\"UsersStack__photos\" role=\"presentation\">\n {photosElements}\n {othersElement}\n </div>\n )}\n {hasReactNode(children) && (\n <Footnote vkuiClass=\"UsersStack__text\">{children}</Footnote>\n )}\n </div>\n );\n};\n"],"mappings":"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"}
|