@vkontakte/vkui 4.35.1 → 4.35.4

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.
Files changed (77) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +11 -11
  4. package/.cache/ts/src/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  5. package/dist/cjs/components/Banner/Banner.js +41 -47
  6. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  7. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  8. package/dist/cjs/components/CustomSelect/CustomSelect.js +1 -1
  9. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  10. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +3 -0
  11. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  12. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +1 -2
  13. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  14. package/dist/cjs/components/Popper/Popper.js +53 -50
  15. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  16. package/dist/cjs/lib/platform.js +9 -4
  17. package/dist/cjs/lib/platform.js.map +1 -1
  18. package/dist/components/Banner/Banner.js +41 -48
  19. package/dist/components/Banner/Banner.js.map +1 -1
  20. package/dist/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  21. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  22. package/dist/components/CustomSelect/CustomSelect.js +1 -1
  23. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  24. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -0
  25. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  26. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +1 -2
  27. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  28. package/dist/components/Popper/Popper.js +53 -50
  29. package/dist/components/Popper/Popper.js.map +1 -1
  30. package/dist/components.css +4 -4
  31. package/dist/components.css.map +1 -1
  32. package/dist/cssm/components/Banner/Banner.js +41 -48
  33. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  34. package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  35. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  36. package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -1
  37. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  38. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -0
  39. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  40. package/dist/cssm/components/Header/Header.css +1 -1
  41. package/dist/cssm/components/PanelHeader/PanelHeader.css +1 -1
  42. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +1 -1
  43. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +1 -2
  44. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  45. package/dist/cssm/components/Popper/Popper.js +53 -50
  46. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  47. package/dist/cssm/components/Spacing/Spacing.css +1 -1
  48. package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
  49. package/dist/cssm/components/Typography/Text/Text.css +1 -1
  50. package/dist/cssm/lib/platform.js +8 -3
  51. package/dist/cssm/lib/platform.js.map +1 -1
  52. package/dist/cssm/styles/components.css +4 -4
  53. package/dist/cssm/styles/themes.css +1 -1
  54. package/dist/cssm/styles/vkcom_dark.css +1 -1
  55. package/dist/cssm/styles/vkcom_light.css +1 -1
  56. package/dist/lib/platform.js +8 -3
  57. package/dist/lib/platform.js.map +1 -1
  58. package/dist/vkui.css +5 -5
  59. package/dist/vkui.css.map +1 -1
  60. package/package.json +2 -2
  61. package/src/components/Banner/Banner.tsx +58 -63
  62. package/src/components/ButtonGroup/ButtonGroup.tsx +6 -3
  63. package/src/components/ButtonGroup/Readme.md +13 -11
  64. package/src/components/CustomSelect/CustomSelect.tsx +1 -1
  65. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +2 -0
  66. package/src/components/Header/Header.css +1 -5
  67. package/src/components/PanelHeader/PanelHeader.css +8 -13
  68. package/src/components/PanelHeaderContent/PanelHeaderContent.css +8 -2
  69. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +1 -2
  70. package/src/components/Popper/Popper.tsx +37 -31
  71. package/src/components/Spacing/Readme.md +20 -20
  72. package/src/components/Spacing/Spacing.css +5 -1
  73. package/src/components/Typography/Headline/Headline.css +10 -0
  74. package/src/components/Typography/Text/Text.css +10 -0
  75. package/src/lib/platform.ts +12 -6
  76. package/src/styles/vkcom_dark.css +8 -8
  77. package/src/styles/vkcom_light.css +34 -34
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PanelHeaderContent/PanelHeaderContent.tsx"],"names":["getClassName","Tappable","usePlatform","hasReactNode","Caption","Headline","IOS","Platform","Text","PanelHeaderChildren","platform","hasStatus","hasBefore","children","VKCOM","PanelHeaderContent","className","style","aside","status","before","onClick","restProps","InComponent","rootProps","inProps","activeEffectDelay","hasActive","activeMode","baseClassNames"],"mappings":";;;;;AACA,SAASA,YAAT;AACA,SAASC,QAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,OAAT;AACA,SAASC,QAAT;AACA,SAASC,GAAT,EAAcC,QAAd;AACA,SAASC,IAAT;AAEA;;AAeA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,OAKI;AAAA,MAJ9BC,QAI8B,QAJ9BA,QAI8B;AAAA,MAH9BC,SAG8B,QAH9BA,SAG8B;AAAA,MAF9BC,SAE8B,QAF9BA,SAE8B;AAAA,MAD9BC,QAC8B,QAD9BA,QAC8B;;AAC9B,MAAIH,QAAQ,KAAKH,QAAQ,CAACO,KAA1B,EAAiC;AAC/B,WACE,oBAAC,IAAD;AAAM,MAAA,SAAS,EAAC,KAAhB;AAAsB,MAAA,MAAM,EAAC;AAA7B,OACGD,QADH,CADF;AAKD;;AAED,SAAOF,SAAS,IAAIC,SAAb,GACL,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAC,KAApB;AAA0B,IAAA,MAAM,EAAC;AAAjC,KACGC,QADH,CADK,GAKL;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkDA,QAAlD,CALF;AAOD,CArBD;AAuBA;AACA;AACA;;;AACA,OAAO,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,QASH;AAAA,MAR7BC,SAQ6B,SAR7BA,SAQ6B;AAAA,MAP7BC,KAO6B,SAP7BA,KAO6B;AAAA,MAN7BC,KAM6B,SAN7BA,KAM6B;AAAA,MAL7BC,MAK6B,SAL7BA,MAK6B;AAAA,MAJ7BC,MAI6B,SAJ7BA,MAI6B;AAAA,MAH7BP,QAG6B,SAH7BA,QAG6B;AAAA,MAF7BQ,OAE6B,SAF7BA,OAE6B;AAAA,MAD1BC,SAC0B;;AAC7B,MAAMC,WAAW,GAAGF,OAAO,GAAGpB,QAAH,GAAc,KAAzC;AACA,MAAMuB,SAAS,GAAGH,OAAO,GAAG,EAAH,GAAQC,SAAjC;AACA,MAAMZ,QAAQ,GAAGR,WAAW,EAA5B;AACA,MAAMuB,OAAO,GAAGJ,OAAO,mCAEdC,SAFc;AAGjBD,IAAAA,OAAO,EAAPA,OAHiB;AAIjBK,IAAAA,iBAAiB,EAAE,GAJF;AAKjBC,IAAAA,SAAS,EAAEjB,QAAQ,KAAKJ,GALP;AAMjBsB,IAAAA,UAAU,EAAE;AANK,OAQnB,EARJ;AASA,MAAMC,cAAc,GAAG7B,YAAY,CAAC,oBAAD,EAAuBU,QAAvB,CAAnC;AAEA,SACE,wCACMc,SADN;AAEE,IAAA,SAAS,EAAEK,cAFb;AAGE,IAAA,KAAK,EAAEZ,KAHT;AAIE,IAAA,SAAS,EAAED;AAJb,MAMGb,YAAY,CAACiB,MAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CA,MAA7C,CAPJ,EASE,oBAAC,WAAD,eAAiBK,OAAjB;AAA0B,IAAA,SAAS,EAAC;AAApC,MACGtB,YAAY,CAACgB,MAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAiDA,MAAjD,CAFJ,EAIE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,mBAAD;AACE,IAAA,QAAQ,EAAET,QADZ;AAEE,IAAA,SAAS,EAAEP,YAAY,CAACgB,MAAD,CAFzB;AAGE,IAAA,SAAS,EAAEhB,YAAY,CAACiB,MAAD;AAHzB,KAKGP,QALH,CADF,EAQGV,YAAY,CAACe,KAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA4CA,KAA5C,CATJ,CAJF,EAgBGf,YAAY,CAACiB,MAAD,CAAZ,IAAwB;AAAK,IAAA,SAAS,EAAC;AAAf,IAhB3B,CATF,CADF;AA8BD,CAtDM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { IOS, Platform } from \"../../lib/platform\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { HasPlatform } from \"../../types\";\nimport \"./PanelHeaderContent.css\";\n\nexport interface PanelHeaderContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n aside?: React.ReactNode;\n before?: React.ReactNode;\n status?: React.ReactNode;\n}\n\ninterface PanelHeaderChildrenProps extends HasPlatform {\n hasStatus: boolean;\n hasBefore: boolean;\n children?: React.ReactNode;\n}\n\nconst PanelHeaderChildren = ({\n platform,\n hasStatus,\n hasBefore,\n children,\n}: PanelHeaderChildrenProps) => {\n if (platform === Platform.VKCOM) {\n return (\n <Text Component=\"div\" weight=\"2\">\n {children}\n </Text>\n );\n }\n\n return hasStatus || hasBefore ? (\n <Headline Component=\"div\" weight=\"2\">\n {children}\n </Headline>\n ) : (\n <div vkuiClass=\"PanelHeaderContent__children-in\">{children}</div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderContent\n */\nexport const PanelHeaderContent = ({\n className,\n style,\n aside,\n status,\n before,\n children,\n onClick,\n ...restProps\n}: PanelHeaderContentProps) => {\n const InComponent = onClick ? Tappable : \"div\";\n const rootProps = onClick ? {} : restProps;\n const platform = usePlatform();\n const inProps = onClick\n ? {\n ...restProps,\n onClick,\n activeEffectDelay: 200,\n hasActive: platform === IOS,\n activeMode: \"opacity\",\n }\n : {};\n const baseClassNames = getClassName(\"PanelHeaderContent\", platform);\n\n return (\n <div\n {...rootProps}\n vkuiClass={baseClassNames}\n style={style}\n className={className}\n >\n {hasReactNode(before) && (\n <div vkuiClass=\"PanelHeaderContent__before\">{before}</div>\n )}\n <InComponent {...inProps} vkuiClass=\"PanelHeaderContent__in\">\n {hasReactNode(status) && (\n <Caption vkuiClass=\"PanelHeaderContent__status\">{status}</Caption>\n )}\n <div vkuiClass=\"PanelHeaderContent__children\">\n <PanelHeaderChildren\n platform={platform}\n hasStatus={hasReactNode(status)}\n hasBefore={hasReactNode(before)}\n >\n {children}\n </PanelHeaderChildren>\n {hasReactNode(aside) && (\n <div vkuiClass=\"PanelHeaderContent__aside\">{aside}</div>\n )}\n </div>\n {hasReactNode(before) && <div vkuiClass=\"PanelHeaderContent__width\" />}\n </InComponent>\n </div>\n );\n};\n"],"file":"PanelHeaderContent.js"}
1
+ {"version":3,"sources":["../../../../src/components/PanelHeaderContent/PanelHeaderContent.tsx"],"names":["getClassName","Tappable","usePlatform","hasReactNode","Caption","Headline","IOS","Platform","Text","PanelHeaderChildren","platform","hasStatus","hasBefore","children","VKCOM","PanelHeaderContent","className","style","aside","status","before","onClick","restProps","InComponent","rootProps","inProps","activeEffectDelay","hasActive","activeMode"],"mappings":";;;;;AACA,SAASA,YAAT;AACA,SAASC,QAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,OAAT;AACA,SAASC,QAAT;AACA,SAASC,GAAT,EAAcC,QAAd;AACA,SAASC,IAAT;AAEA;;AAeA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,OAKI;AAAA,MAJ9BC,QAI8B,QAJ9BA,QAI8B;AAAA,MAH9BC,SAG8B,QAH9BA,SAG8B;AAAA,MAF9BC,SAE8B,QAF9BA,SAE8B;AAAA,MAD9BC,QAC8B,QAD9BA,QAC8B;;AAC9B,MAAIH,QAAQ,KAAKH,QAAQ,CAACO,KAA1B,EAAiC;AAC/B,WACE,oBAAC,IAAD;AAAM,MAAA,SAAS,EAAC,KAAhB;AAAsB,MAAA,MAAM,EAAC;AAA7B,OACGD,QADH,CADF;AAKD;;AAED,SAAOF,SAAS,IAAIC,SAAb,GACL,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAC,KAApB;AAA0B,IAAA,MAAM,EAAC;AAAjC,KACGC,QADH,CADK,GAKL;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkDA,QAAlD,CALF;AAOD,CArBD;AAuBA;AACA;AACA;;;AACA,OAAO,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,QASH;AAAA,MAR7BC,SAQ6B,SAR7BA,SAQ6B;AAAA,MAP7BC,KAO6B,SAP7BA,KAO6B;AAAA,MAN7BC,KAM6B,SAN7BA,KAM6B;AAAA,MAL7BC,MAK6B,SAL7BA,MAK6B;AAAA,MAJ7BC,MAI6B,SAJ7BA,MAI6B;AAAA,MAH7BP,QAG6B,SAH7BA,QAG6B;AAAA,MAF7BQ,OAE6B,SAF7BA,OAE6B;AAAA,MAD1BC,SAC0B;;AAC7B,MAAMC,WAAW,GAAGF,OAAO,GAAGpB,QAAH,GAAc,KAAzC;AACA,MAAMuB,SAAS,GAAGH,OAAO,GAAG,EAAH,GAAQC,SAAjC;AACA,MAAMZ,QAAQ,GAAGR,WAAW,EAA5B;AACA,MAAMuB,OAAO,GAAGJ,OAAO,mCAEdC,SAFc;AAGjBD,IAAAA,OAAO,EAAPA,OAHiB;AAIjBK,IAAAA,iBAAiB,EAAE,GAJF;AAKjBC,IAAAA,SAAS,EAAEjB,QAAQ,KAAKJ,GALP;AAMjBsB,IAAAA,UAAU,EAAE;AANK,OAQnB,EARJ;AAUA,SACE,wCACMJ,SADN;AAEE,IAAA,SAAS,EAAExB,YAAY,CAAC,oBAAD,EAAuBU,QAAvB,CAFzB;AAGE,IAAA,KAAK,EAAEO,KAHT;AAIE,IAAA,SAAS,EAAED;AAJb,MAMGb,YAAY,CAACiB,MAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CA,MAA7C,CAPJ,EASE,oBAAC,WAAD,eAAiBK,OAAjB;AAA0B,IAAA,SAAS,EAAC;AAApC,MACGtB,YAAY,CAACgB,MAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAiDA,MAAjD,CAFJ,EAIE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,mBAAD;AACE,IAAA,QAAQ,EAAET,QADZ;AAEE,IAAA,SAAS,EAAEP,YAAY,CAACgB,MAAD,CAFzB;AAGE,IAAA,SAAS,EAAEhB,YAAY,CAACiB,MAAD;AAHzB,KAKGP,QALH,CADF,EAQGV,YAAY,CAACe,KAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA4CA,KAA5C,CATJ,CAJF,EAgBGf,YAAY,CAACiB,MAAD,CAAZ,IAAwB;AAAK,IAAA,SAAS,EAAC;AAAf,IAhB3B,CATF,CADF;AA8BD,CArDM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { IOS, Platform } from \"../../lib/platform\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { HasPlatform } from \"../../types\";\nimport \"./PanelHeaderContent.css\";\n\nexport interface PanelHeaderContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n aside?: React.ReactNode;\n before?: React.ReactNode;\n status?: React.ReactNode;\n}\n\ninterface PanelHeaderChildrenProps extends HasPlatform {\n hasStatus: boolean;\n hasBefore: boolean;\n children?: React.ReactNode;\n}\n\nconst PanelHeaderChildren = ({\n platform,\n hasStatus,\n hasBefore,\n children,\n}: PanelHeaderChildrenProps) => {\n if (platform === Platform.VKCOM) {\n return (\n <Text Component=\"div\" weight=\"2\">\n {children}\n </Text>\n );\n }\n\n return hasStatus || hasBefore ? (\n <Headline Component=\"div\" weight=\"2\">\n {children}\n </Headline>\n ) : (\n <div vkuiClass=\"PanelHeaderContent__children-in\">{children}</div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderContent\n */\nexport const PanelHeaderContent = ({\n className,\n style,\n aside,\n status,\n before,\n children,\n onClick,\n ...restProps\n}: PanelHeaderContentProps) => {\n const InComponent = onClick ? Tappable : \"div\";\n const rootProps = onClick ? {} : restProps;\n const platform = usePlatform();\n const inProps = onClick\n ? {\n ...restProps,\n onClick,\n activeEffectDelay: 200,\n hasActive: platform === IOS,\n activeMode: \"opacity\",\n }\n : {};\n\n return (\n <div\n {...rootProps}\n vkuiClass={getClassName(\"PanelHeaderContent\", platform)}\n style={style}\n className={className}\n >\n {hasReactNode(before) && (\n <div vkuiClass=\"PanelHeaderContent__before\">{before}</div>\n )}\n <InComponent {...inProps} vkuiClass=\"PanelHeaderContent__in\">\n {hasReactNode(status) && (\n <Caption vkuiClass=\"PanelHeaderContent__status\">{status}</Caption>\n )}\n <div vkuiClass=\"PanelHeaderContent__children\">\n <PanelHeaderChildren\n platform={platform}\n hasStatus={hasReactNode(status)}\n hasBefore={hasReactNode(before)}\n >\n {children}\n </PanelHeaderChildren>\n {hasReactNode(aside) && (\n <div vkuiClass=\"PanelHeaderContent__aside\">{aside}</div>\n )}\n </div>\n {hasReactNode(before) && <div vkuiClass=\"PanelHeaderContent__width\" />}\n </InComponent>\n </div>\n );\n};\n"],"file":"PanelHeaderContent.js"}
@@ -17,32 +17,61 @@ import "./Popper.css";
17
17
  var ARROW_PADDING = 8;
18
18
  var ARROW_WIDTH = 20;
19
19
  var ARROW_HEIGHT = 8;
20
+ var preventOverflowModifier = {
21
+ name: "preventOverflow",
22
+ options: {
23
+ mainAxis: false
24
+ }
25
+ };
26
+ var flipModifier = {
27
+ name: "flip"
28
+ };
29
+ var arrowModifier = {
30
+ name: "arrow",
31
+ options: {
32
+ padding: ARROW_PADDING
33
+ }
34
+ };
35
+ var sameWidthModifier = {
36
+ name: "sameWidth",
37
+ enabled: true,
38
+ phase: "beforeWrite",
39
+ requires: ["computeStyles"],
40
+ fn: function fn(_ref) {
41
+ var state = _ref.state;
42
+ state.styles.popper.width = "".concat(state.rects.reference.width, "px");
43
+ },
44
+ effect: function effect(_ref2) {
45
+ var state = _ref2.state;
46
+ state.elements.popper.style.width = "".concat(state.elements.reference.offsetWidth, "px");
47
+ }
48
+ };
20
49
  /**
21
50
  * @see https://vkcom.github.io/VKUI/#/Popper
22
51
  */
23
52
 
24
- export var Popper = function Popper(_ref) {
53
+ export var Popper = function Popper(_ref3) {
25
54
  var _targetRef$current3;
26
55
 
27
- var targetRef = _ref.targetRef,
28
- children = _ref.children,
29
- getRef = _ref.getRef,
30
- _ref$placement = _ref.placement,
31
- placement = _ref$placement === void 0 ? "bottom-start" : _ref$placement,
32
- onPlacementChange = _ref.onPlacementChange,
33
- arrow = _ref.arrow,
34
- arrowClassName = _ref.arrowClassName,
35
- sameWidth = _ref.sameWidth,
36
- _ref$offsetDistance = _ref.offsetDistance,
37
- offsetDistance = _ref$offsetDistance === void 0 ? 8 : _ref$offsetDistance,
38
- _ref$offsetSkidding = _ref.offsetSkidding,
39
- offsetSkidding = _ref$offsetSkidding === void 0 ? 0 : _ref$offsetSkidding,
40
- _ref$forcePortal = _ref.forcePortal,
41
- forcePortal = _ref$forcePortal === void 0 ? true : _ref$forcePortal,
42
- compStyles = _ref.style,
43
- customModifiers = _ref.customModifiers,
44
- renderContent = _ref.renderContent,
45
- restProps = _objectWithoutProperties(_ref, _excluded);
56
+ var targetRef = _ref3.targetRef,
57
+ children = _ref3.children,
58
+ getRef = _ref3.getRef,
59
+ _ref3$placement = _ref3.placement,
60
+ placement = _ref3$placement === void 0 ? "bottom-start" : _ref3$placement,
61
+ onPlacementChange = _ref3.onPlacementChange,
62
+ arrow = _ref3.arrow,
63
+ arrowClassName = _ref3.arrowClassName,
64
+ sameWidth = _ref3.sameWidth,
65
+ _ref3$offsetDistance = _ref3.offsetDistance,
66
+ offsetDistance = _ref3$offsetDistance === void 0 ? 8 : _ref3$offsetDistance,
67
+ _ref3$offsetSkidding = _ref3.offsetSkidding,
68
+ offsetSkidding = _ref3$offsetSkidding === void 0 ? 0 : _ref3$offsetSkidding,
69
+ _ref3$forcePortal = _ref3.forcePortal,
70
+ forcePortal = _ref3$forcePortal === void 0 ? true : _ref3$forcePortal,
71
+ compStyles = _ref3.style,
72
+ customModifiers = _ref3.customModifiers,
73
+ renderContent = _ref3.renderContent,
74
+ restProps = _objectWithoutProperties(_ref3, _excluded);
46
75
 
47
76
  var _React$useState = React.useState(null),
48
77
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -57,45 +86,19 @@ export var Popper = function Popper(_ref) {
57
86
  var platform = usePlatform();
58
87
  var setExternalRef = useExternRef(getRef, setPopperNode);
59
88
  var modifiers = React.useMemo(function () {
60
- var modifiers = [{
61
- name: "preventOverflow",
62
- options: {
63
- mainAxis: false
64
- }
65
- }, {
89
+ var modifiers = [preventOverflowModifier, {
66
90
  name: "offset",
67
91
  options: {
68
92
  offset: [arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding, arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance]
69
93
  }
70
- }, {
71
- name: "flip"
72
- }];
94
+ }, flipModifier];
73
95
 
74
96
  if (arrow) {
75
- modifiers.push({
76
- name: "arrow",
77
- options: {
78
- padding: ARROW_PADDING
79
- }
80
- });
97
+ modifiers.push(arrowModifier);
81
98
  }
82
99
 
83
100
  if (sameWidth) {
84
- var _sameWidth = {
85
- name: "sameWidth",
86
- enabled: true,
87
- phase: "beforeWrite",
88
- requires: ["computeStyles"],
89
- fn: function fn(_ref2) {
90
- var state = _ref2.state;
91
- state.styles.popper.width = "".concat(state.rects.reference.width, "px");
92
- },
93
- effect: function effect(_ref3) {
94
- var state = _ref3.state;
95
- state.elements.popper.style.width = "".concat(state.elements.reference.offsetWidth, "px");
96
- }
97
- };
98
- modifiers.push(_sameWidth);
101
+ modifiers.push(sameWidthModifier);
99
102
  }
100
103
 
101
104
  if (customModifiers) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Popper/Popper.tsx"],"names":["React","usePopper","AppRootPortal","PopperArrow","usePlatform","getClassName","useExternRef","useIsomorphicLayoutEffect","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","style","customModifiers","renderContent","restProps","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","name","options","mainAxis","offset","push","padding","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","offsetWidth","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined","className"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { PopperArrow } from \"../PopperArrow/PopperArrow\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.css\";\n\nexport type Placement =\n | \"auto\"\n | \"auto-start\"\n | \"auto-end\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"right-start\"\n | \"right-end\"\n | \"left-start\"\n | \"left-end\"\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\";\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = \"bottom-start\",\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n renderContent,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n },\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n {\n name: \"flip\",\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n });\n }\n\n if (sameWidth) {\n const sameWidth: Modifier<string> = {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n };\n\n modifiers.push(sameWidth);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n placementDirection === \"vertical\" ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === \"vertical\"\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <PopperArrow\n attributes={attributes.arrow}\n style={styles.arrow}\n arrowClassName={arrowClassName}\n />\n )}\n {renderContent ? (\n renderContent({ className: \"Popper__content\" })\n ) : (\n <div vkuiClass=\"Popper__content\">{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
1
+ {"version":3,"sources":["../../../../src/components/Popper/Popper.tsx"],"names":["React","usePopper","AppRootPortal","PopperArrow","usePlatform","getClassName","useExternRef","useIsomorphicLayoutEffect","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","preventOverflowModifier","name","options","mainAxis","flipModifier","arrowModifier","padding","sameWidthModifier","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","style","offsetWidth","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","customModifiers","renderContent","restProps","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","offset","push","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined","className"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { PopperArrow } from \"../PopperArrow/PopperArrow\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.css\";\n\nexport type Placement =\n | \"auto\"\n | \"auto-start\"\n | \"auto-end\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"right-start\"\n | \"right-end\"\n | \"left-start\"\n | \"left-end\"\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\";\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\nconst preventOverflowModifier: Modifier<string> = {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n};\n\nconst flipModifier: Modifier<string> = {\n name: \"flip\",\n};\n\nconst arrowModifier: Modifier<string> = {\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n};\n\nconst sameWidthModifier: Modifier<string> = {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = \"bottom-start\",\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n renderContent,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n preventOverflowModifier,\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n flipModifier,\n ];\n\n if (arrow) {\n modifiers.push(arrowModifier);\n }\n\n if (sameWidth) {\n modifiers.push(sameWidthModifier);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n placementDirection === \"vertical\" ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === \"vertical\"\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <PopperArrow\n attributes={attributes.arrow}\n style={styles.arrow}\n arrowClassName={arrowClassName}\n />\n )}\n {renderContent ? (\n renderContent({ className: \"Popper__content\" })\n ) : (\n <div vkuiClass=\"Popper__content\">{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
@@ -1 +1 @@
1
- .vkuiSpacing{box-sizing:border-box;color:#d7d8d9;color:var(--separator_common,var(--vkui--color_separator_primary));display:flex;flex-flow:column;justify-content:center;position:relative}.vkuiSpacing--separator{padding-left:16px;padding-left:var(--vkui--size_base_padding_horizontal--regular,16px);padding-right:16px;padding-right:var(--vkui--size_base_padding_horizontal--regular,16px)}.vkuiSpacing--separator-center{justify-content:center}.vkuiSpacing--separator-bottom{flex-direction:column-reverse}.vkuiSpacing--separator:after{background:currentColor;content:"";display:block;height:1px;-webkit-transform-origin:center top;transform-origin:center top}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.vkuiSpacing--separator:after{-webkit-transform:scaleY(.5);transform:scaleY(.5)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){.vkuiSpacing--separator:after{-webkit-transform:scaleY(.32);transform:scaleY(.32)}}
1
+ .vkuiSpacing{box-sizing:border-box;color:#d7d8d9;color:var(--separator_common,var(--vkui--color_separator_primary));display:flex;flex-flow:column;justify-content:center;position:relative}.vkuiSpacing--separator{padding-left:16px;padding-left:var(--vkui--size_base_padding_horizontal--regular,16px);padding-right:16px;padding-right:var(--vkui--size_base_padding_horizontal--regular,16px)}.vkuiSpacing--separator-top{justify-content:start}.vkuiSpacing--separator-center{justify-content:center}.vkuiSpacing--separator-bottom{justify-content:end}.vkuiSpacing--separator:after{background:currentColor;content:"";display:block;height:1px;-webkit-transform-origin:center top;transform-origin:center top}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.vkuiSpacing--separator:after{-webkit-transform:scaleY(.5);transform:scaleY(.5)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){.vkuiSpacing--separator:after{-webkit-transform:scaleY(.32);transform:scaleY(.32)}}
@@ -1 +1 @@
1
- .vkuiHeadline{display:block;margin:0}.vkuiHeadline--l-1{font-size:16px;font-size:var(--vkui--font_headline1--font_size--regular,16px);font-weight:500;font-weight:var(--vkui--font_headline1--font_weight--regular,500);line-height:20px;line-height:var(--vkui--font_headline1--line_height--regular,20px)}.vkuiHeadline--l-2{font-size:15px;font-size:var(--vkui--font_headline2--font_size--regular,15px);font-weight:500;font-weight:var(--vkui--font_headline2--font_weight--regular,500);line-height:20px;line-height:var(--vkui--font_headline2--line_height--regular,20px)}.vkuiHeadline--sizeY-compact.vkuiHeadline--l-1{font-size:15px;font-size:var(--vkui--font_headline1--font_size--compact,15px);line-height:20px;line-height:var(--vkui--font_headline1--line_height--compact,20px)}.vkuiHeadline--sizeY-compact.vkuiHeadline--l-2{font-size:14px;font-size:var(--vkui--font_headline2--font_size--compact,14px);line-height:20px;line-height:var(--vkui--font_headline2--line_height--compact,20px)}.vkuiHeadline--w-regular{font-weight:400}.vkuiHeadline--w-medium{font-weight:500}.vkuiHeadline--w-semibold{font-weight:600}.vkuiHeadline--android.vkuiHeadline--w-semibold{font-weight:500}.vkuiHeadline--w-1{font-weight:600;font-weight:var(--vkui--font_weight_accent1,600)}.vkuiHeadline--w-2{font-weight:500;font-weight:var(--vkui--font_weight_accent2,500)}.vkuiHeadline--w-3{font-weight:400;font-weight:var(--vkui--font_weight_accent3,400)}
1
+ .vkuiHeadline{display:block;margin:0}.vkuiHeadline--l-1{font-size:16px;font-size:var(--vkui--font_headline1--font_size--regular,16px);font-weight:500;font-weight:var(--vkui--font_headline1--font_weight--regular,500);line-height:20px;line-height:var(--vkui--font_headline1--line_height--regular,20px)}.vkuiHeadline--l-2{font-size:15px;font-size:var(--vkui--font_headline2--font_size--regular,15px);font-weight:500;font-weight:var(--vkui--font_headline2--font_weight--regular,500);line-height:20px;line-height:var(--vkui--font_headline2--line_height--regular,20px)}.vkuiHeadline--sizeY-compact.vkuiHeadline--l-1{font-size:15px;font-size:var(--vkui--font_headline1--font_size--compact,15px);line-height:20px;line-height:var(--vkui--font_headline1--line_height--compact,20px)}.vkuiHeadline--sizeY-compact.vkuiHeadline--l-2{font-size:14px;font-size:var(--vkui--font_headline2--font_size--compact,14px);line-height:20px;line-height:var(--vkui--font_headline2--line_height--compact,20px)}.vkuiHeadline--w-regular{font-weight:400}.vkuiHeadline--w-medium{font-weight:500}.vkuiHeadline--w-semibold{font-weight:600}.vkuiHeadline--android.vkuiHeadline--w-semibold{font-weight:500}.vkuiHeadline--w-1{font-weight:600;font-weight:var(--vkui--font_weight_accent1,600)}.vkuiHeadline--w-2{font-weight:500;font-weight:var(--vkui--font_weight_accent2,500)}.vkuiHeadline--w-3{font-weight:400;font-weight:var(--vkui--font_weight_accent3,400)}.vkuiPanelHeaderContent__children .vkuiHeadline{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@@ -1 +1 @@
1
- .vkuiText{display:block;font-size:16px;font-size:var(--vkui--font_text--font_size--regular,16px);font-weight:400;font-weight:var(--vkui--font_text--font_weight--regular,400);line-height:20px;line-height:var(--vkui--font_text--line_height--regular,20px);margin:0}.vkuiText--sizeY-compact{font-size:15px;font-size:var(--vkui--font_text--font_size--compact,15px);line-height:20px;line-height:var(--vkui--font_text--line_height--compact,20px)}.vkuiText--w-regular{font-weight:400}.vkuiText--w-medium{font-weight:500}.vkuiText--w-1,.vkuiText--w-semibold{font-weight:600}.vkuiText--w-1{font-weight:var(--vkui--font_weight_accent1,600)}.vkuiText--w-2{font-weight:500;font-weight:var(--vkui--font_weight_accent2,500)}.vkuiText--w-3{font-weight:400;font-weight:var(--vkui--font_weight_accent3,400)}
1
+ .vkuiText{display:block;font-size:16px;font-size:var(--vkui--font_text--font_size--regular,16px);font-weight:400;font-weight:var(--vkui--font_text--font_weight--regular,400);line-height:20px;line-height:var(--vkui--font_text--line_height--regular,20px);margin:0}.vkuiText--sizeY-compact{font-size:15px;font-size:var(--vkui--font_text--font_size--compact,15px);line-height:20px;line-height:var(--vkui--font_text--line_height--compact,20px)}.vkuiText--w-regular{font-weight:400}.vkuiText--w-medium{font-weight:500}.vkuiText--w-1,.vkuiText--w-semibold{font-weight:600}.vkuiText--w-1{font-weight:var(--vkui--font_weight_accent1,600)}.vkuiText--w-2{font-weight:500;font-weight:var(--vkui--font_weight_accent2,500)}.vkuiText--w-3{font-weight:400;font-weight:var(--vkui--font_weight_accent3,400)}.vkuiPanelHeaderContent__children .vkuiText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@@ -23,9 +23,14 @@ function isPlatformAlias(platformAlias) {
23
23
 
24
24
 
25
25
  function getPlatformByQueryString(queryString) {
26
- var parsedQuery = querystring.parse(queryString);
27
- var platformAliasByQuery = parsedQuery["vk_platform"];
28
- return typeof platformAliasByQuery === "string" && isPlatformAlias(platformAliasByQuery) ? PLATFORM_ALIAS[platformAliasByQuery] : undefined;
26
+ try {
27
+ var parsedQuery = querystring.parse(queryString);
28
+ var platformAliasByQuery = parsedQuery["vk_platform"];
29
+ return typeof platformAliasByQuery === "string" && isPlatformAlias(platformAliasByQuery) ? PLATFORM_ALIAS[platformAliasByQuery] : undefined;
30
+ } catch (e) {
31
+ console.warn(e);
32
+ return undefined;
33
+ }
29
34
  }
30
35
 
31
36
  var platformByQueryString = canUseDOM ? getPlatformByQueryString(location.search) : undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/platform.ts"],"names":["computeBrowserInfo","querystring","canUseDOM","Platform","PLATFORM_ALIAS","desktop_web","VKCOM","isPlatformAlias","platformAlias","getPlatformByQueryString","queryString","parsedQuery","parse","platformAliasByQuery","undefined","platformByQueryString","location","search","ANDROID","IOS","platform","browserInfo","system","platformName","IS_PLATFORM_IOS","IS_PLATFORM_ANDROID"],"mappings":"AAAA,SAAsBA,kBAAtB;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,SAAT;AAEA,WAAYC,QAAZ;;WAAYA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;GAAAA,Q,KAAAA,Q;;AAMZ,IAAMC,cAAc,GAAG;AACrBC,EAAAA,WAAW,EAAEF,QAAQ,CAACG;AADD,CAAvB;;AAIA,SAASC,eAAT,CACEC,aADF,EAEgD;AAC9C,SAAOA,aAAa,IAAIJ,cAAxB;AACD;AAED;AACA;AACA;AACA;;;AACA,SAASK,wBAAT,CAAkCC,WAAlC,EAA6E;AAC3E,MAAMC,WAAW,GAAGV,WAAW,CAACW,KAAZ,CAAkBF,WAAlB,CAApB;AACA,MAAMG,oBAAoB,GAAGF,WAAW,CAAC,aAAD,CAAxC;AAEA,SAAO,OAAOE,oBAAP,KAAgC,QAAhC,IACLN,eAAe,CAACM,oBAAD,CADV,GAEHT,cAAc,CAACS,oBAAD,CAFX,GAGHC,SAHJ;AAID;;AAED,IAAMC,qBAAqB,GAAGb,SAAS,GACnCO,wBAAwB,CAACO,QAAQ,CAACC,MAAV,CADW,GAEnCH,SAFJ;AAIA,OAAO,IAAMI,OAAO,GAAGf,QAAQ,CAACe,OAAzB;AACP,OAAO,IAAMC,GAAG,GAAGhB,QAAQ,CAACgB,GAArB;AACP,OAAO,IAAMb,KAAK,GAAGH,QAAQ,CAACG,KAAvB;AAQP,OAAO,SAASc,QAAT,CAAkBC,WAAlB,EAA2D;AAChE,MAAIN,qBAAJ,EAA2B;AACzB,WAAOA,qBAAP;AACD;;AAED,MAAI,CAACM,WAAL,EAAkB;AAChBA,IAAAA,WAAW,GAAGrB,kBAAkB,EAAhC;AACD;;AAED,SAAOqB,WAAW,CAACC,MAAZ,KAAuB,KAAvB,GAA+BH,GAA/B,GAAqCD,OAA5C;AACD;AAED,IAAMK,YAAY,GAAGH,QAAQ,EAA7B;AAEA;AACA;AACA;;AACA,OAAO,IAAMI,eAAwB,GAAGD,YAAY,KAAKJ,GAAlD;AACP;AACA;AACA;;AACA,OAAO,IAAMM,mBAA4B,GAAGF,YAAY,KAAKL,OAAtD","sourcesContent":["import { BrowserInfo, computeBrowserInfo } from \"./browser\";\nimport { querystring } from \"@vkontakte/vkjs\";\nimport { canUseDOM } from \"./dom\";\n\nexport enum Platform {\n ANDROID = \"android\",\n IOS = \"ios\",\n VKCOM = \"vkcom\",\n}\n\nconst PLATFORM_ALIAS = {\n desktop_web: Platform.VKCOM,\n};\n\nfunction isPlatformAlias(\n platformAlias: string\n): platformAlias is keyof typeof PLATFORM_ALIAS {\n return platformAlias in PLATFORM_ALIAS;\n}\n\n/**\n * Значение, которое передаётся в качестве query-параметра при открытии VK Mini Apps\n * @see {@link https://dev.vk.com/mini-apps/development/launch-params#vk_platform vk_platform}\n */\nfunction getPlatformByQueryString(queryString: string): Platform | undefined {\n const parsedQuery = querystring.parse(queryString);\n const platformAliasByQuery = parsedQuery[\"vk_platform\"];\n\n return typeof platformAliasByQuery === \"string\" &&\n isPlatformAlias(platformAliasByQuery)\n ? PLATFORM_ALIAS[platformAliasByQuery]\n : undefined;\n}\n\nconst platformByQueryString = canUseDOM\n ? getPlatformByQueryString(location.search)\n : undefined;\n\nexport const ANDROID = Platform.ANDROID;\nexport const IOS = Platform.IOS;\nexport const VKCOM = Platform.VKCOM;\n\nexport type PlatformType =\n | Platform.ANDROID\n | Platform.IOS\n | Platform.VKCOM\n | string;\n\nexport function platform(browserInfo?: BrowserInfo): PlatformType {\n if (platformByQueryString) {\n return platformByQueryString;\n }\n\n if (!browserInfo) {\n browserInfo = computeBrowserInfo();\n }\n\n return browserInfo.system === \"ios\" ? IOS : ANDROID;\n}\n\nconst platformName = platform();\n\n/**\n * @deprecated для определения платформы используйте withPlatform или usePlatform\n */\nexport const IS_PLATFORM_IOS: boolean = platformName === IOS;\n/**\n * @deprecated для определения платформы используйте withPlatform или usePlatform\n */\nexport const IS_PLATFORM_ANDROID: boolean = platformName === ANDROID;\n"],"file":"platform.js"}
1
+ {"version":3,"sources":["../../../src/lib/platform.ts"],"names":["computeBrowserInfo","querystring","canUseDOM","Platform","PLATFORM_ALIAS","desktop_web","VKCOM","isPlatformAlias","platformAlias","getPlatformByQueryString","queryString","parsedQuery","parse","platformAliasByQuery","undefined","e","console","warn","platformByQueryString","location","search","ANDROID","IOS","platform","browserInfo","system","platformName","IS_PLATFORM_IOS","IS_PLATFORM_ANDROID"],"mappings":"AAAA,SAAsBA,kBAAtB;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,SAAT;AAEA,WAAYC,QAAZ;;WAAYA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;GAAAA,Q,KAAAA,Q;;AAMZ,IAAMC,cAAc,GAAG;AACrBC,EAAAA,WAAW,EAAEF,QAAQ,CAACG;AADD,CAAvB;;AAIA,SAASC,eAAT,CACEC,aADF,EAEgD;AAC9C,SAAOA,aAAa,IAAIJ,cAAxB;AACD;AAED;AACA;AACA;AACA;;;AACA,SAASK,wBAAT,CAAkCC,WAAlC,EAA6E;AAC3E,MAAI;AACF,QAAMC,WAAW,GAAGV,WAAW,CAACW,KAAZ,CAAkBF,WAAlB,CAApB;AACA,QAAMG,oBAAoB,GAAGF,WAAW,CAAC,aAAD,CAAxC;AAEA,WAAO,OAAOE,oBAAP,KAAgC,QAAhC,IACLN,eAAe,CAACM,oBAAD,CADV,GAEHT,cAAc,CAACS,oBAAD,CAFX,GAGHC,SAHJ;AAID,GARD,CAQE,OAAOC,CAAP,EAAU;AACVC,IAAAA,OAAO,CAACC,IAAR,CAAaF,CAAb;AAEA,WAAOD,SAAP;AACD;AACF;;AAED,IAAMI,qBAAqB,GAAGhB,SAAS,GACnCO,wBAAwB,CAACU,QAAQ,CAACC,MAAV,CADW,GAEnCN,SAFJ;AAIA,OAAO,IAAMO,OAAO,GAAGlB,QAAQ,CAACkB,OAAzB;AACP,OAAO,IAAMC,GAAG,GAAGnB,QAAQ,CAACmB,GAArB;AACP,OAAO,IAAMhB,KAAK,GAAGH,QAAQ,CAACG,KAAvB;AAQP,OAAO,SAASiB,QAAT,CAAkBC,WAAlB,EAA2D;AAChE,MAAIN,qBAAJ,EAA2B;AACzB,WAAOA,qBAAP;AACD;;AAED,MAAI,CAACM,WAAL,EAAkB;AAChBA,IAAAA,WAAW,GAAGxB,kBAAkB,EAAhC;AACD;;AAED,SAAOwB,WAAW,CAACC,MAAZ,KAAuB,KAAvB,GAA+BH,GAA/B,GAAqCD,OAA5C;AACD;AAED,IAAMK,YAAY,GAAGH,QAAQ,EAA7B;AAEA;AACA;AACA;;AACA,OAAO,IAAMI,eAAwB,GAAGD,YAAY,KAAKJ,GAAlD;AACP;AACA;AACA;;AACA,OAAO,IAAMM,mBAA4B,GAAGF,YAAY,KAAKL,OAAtD","sourcesContent":["import { BrowserInfo, computeBrowserInfo } from \"./browser\";\nimport { querystring } from \"@vkontakte/vkjs\";\nimport { canUseDOM } from \"./dom\";\n\nexport enum Platform {\n ANDROID = \"android\",\n IOS = \"ios\",\n VKCOM = \"vkcom\",\n}\n\nconst PLATFORM_ALIAS = {\n desktop_web: Platform.VKCOM,\n};\n\nfunction isPlatformAlias(\n platformAlias: string\n): platformAlias is keyof typeof PLATFORM_ALIAS {\n return platformAlias in PLATFORM_ALIAS;\n}\n\n/**\n * Значение, которое передаётся в качестве query-параметра при открытии VK Mini Apps\n * @see {@link https://dev.vk.com/mini-apps/development/launch-params#vk_platform vk_platform}\n */\nfunction getPlatformByQueryString(queryString: string): Platform | undefined {\n try {\n const parsedQuery = querystring.parse(queryString);\n const platformAliasByQuery = parsedQuery[\"vk_platform\"];\n\n return typeof platformAliasByQuery === \"string\" &&\n isPlatformAlias(platformAliasByQuery)\n ? PLATFORM_ALIAS[platformAliasByQuery]\n : undefined;\n } catch (e) {\n console.warn(e);\n\n return undefined;\n }\n}\n\nconst platformByQueryString = canUseDOM\n ? getPlatformByQueryString(location.search)\n : undefined;\n\nexport const ANDROID = Platform.ANDROID;\nexport const IOS = Platform.IOS;\nexport const VKCOM = Platform.VKCOM;\n\nexport type PlatformType =\n | Platform.ANDROID\n | Platform.IOS\n | Platform.VKCOM\n | string;\n\nexport function platform(browserInfo?: BrowserInfo): PlatformType {\n if (platformByQueryString) {\n return platformByQueryString;\n }\n\n if (!browserInfo) {\n browserInfo = computeBrowserInfo();\n }\n\n return browserInfo.system === \"ios\" ? IOS : ANDROID;\n}\n\nconst platformName = platform();\n\n/**\n * @deprecated для определения платформы используйте withPlatform или usePlatform\n */\nexport const IS_PLATFORM_IOS: boolean = platformName === IOS;\n/**\n * @deprecated для определения платформы используйте withPlatform или usePlatform\n */\nexport const IS_PLATFORM_ANDROID: boolean = platformName === ANDROID;\n"],"file":"platform.js"}