@vkontakte/vkui 5.4.1 → 5.4.3

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 (179) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +1 -1
  3. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  4. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +7 -3
  5. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  6. package/dist/cjs/components/Banner/Banner.js +3 -3
  7. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  8. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +2 -2
  9. package/dist/cjs/components/Cell/CellDragger/CellDragger.js +9 -5
  10. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  11. package/dist/cjs/components/Cell/useDraggable.d.ts +3 -3
  12. package/dist/cjs/components/Cell/useDraggable.js +12 -7
  13. package/dist/cjs/components/Cell/useDraggable.js.map +1 -1
  14. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +3 -20
  15. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  16. package/dist/cjs/components/CustomSelect/CustomSelect.js +16 -2
  17. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  18. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.d.ts +1 -1
  19. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +4 -2
  20. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  21. package/dist/cjs/components/HorizontalCell/HorizontalCell.d.ts +11 -1
  22. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +6 -3
  23. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  24. package/dist/cjs/components/ImageBase/ImageBase.js +5 -2
  25. package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
  26. package/dist/cjs/components/InfoRow/InfoRow.js +3 -2
  27. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  28. package/dist/cjs/components/ModalPage/ModalPage.js +6 -1
  29. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  30. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +6 -5
  31. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  32. package/dist/cjs/components/ModalRoot/ModalRoot.js +30 -12
  33. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  34. package/dist/cjs/components/ModalRoot/types.d.ts +0 -1
  35. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  36. package/dist/cjs/components/ModalRoot/useModalManager.js +0 -1
  37. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  38. package/dist/cjs/components/NativeSelect/NativeSelect.js +2 -1
  39. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  40. package/dist/cjs/components/Panel/Panel.js +4 -4
  41. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  42. package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +8 -4
  43. package/dist/cjs/components/PanelHeader/PanelHeader.js +48 -21
  44. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  45. package/dist/cjs/components/TabsItem/TabsItem.js +3 -2
  46. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  47. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +3 -4
  48. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  49. package/dist/cjs/components/WriteBar/WriteBar.js +14 -2
  50. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  51. package/dist/cjs/hooks/useTodayDate.js +30 -7
  52. package/dist/cjs/hooks/useTodayDate.js.map +1 -1
  53. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +1 -1
  54. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  55. package/dist/components/ActionSheetItem/ActionSheetItem.js +7 -3
  56. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  57. package/dist/components/Banner/Banner.js +3 -3
  58. package/dist/components/Banner/Banner.js.map +1 -1
  59. package/dist/components/Cell/CellDragger/CellDragger.d.ts +2 -2
  60. package/dist/components/Cell/CellDragger/CellDragger.js +9 -5
  61. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  62. package/dist/components/Cell/useDraggable.d.ts +3 -3
  63. package/dist/components/Cell/useDraggable.js +12 -7
  64. package/dist/components/Cell/useDraggable.js.map +1 -1
  65. package/dist/components/ChipsSelect/ChipsSelect.js +3 -20
  66. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  67. package/dist/components/CustomSelect/CustomSelect.js +16 -2
  68. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  69. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +1 -1
  70. package/dist/components/CustomSelectOption/CustomSelectOption.js +4 -2
  71. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  72. package/dist/components/HorizontalCell/HorizontalCell.d.ts +11 -1
  73. package/dist/components/HorizontalCell/HorizontalCell.js +6 -3
  74. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  75. package/dist/components/ImageBase/ImageBase.js +5 -2
  76. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  77. package/dist/components/InfoRow/InfoRow.js +3 -2
  78. package/dist/components/InfoRow/InfoRow.js.map +1 -1
  79. package/dist/components/ModalPage/ModalPage.js +6 -1
  80. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  81. package/dist/components/ModalPageHeader/ModalPageHeader.js +6 -5
  82. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  83. package/dist/components/ModalRoot/ModalRoot.js +30 -12
  84. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  85. package/dist/components/ModalRoot/types.d.ts +0 -1
  86. package/dist/components/ModalRoot/types.js.map +1 -1
  87. package/dist/components/ModalRoot/useModalManager.js +0 -1
  88. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  89. package/dist/components/NativeSelect/NativeSelect.js +2 -1
  90. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  91. package/dist/components/Panel/Panel.js +4 -4
  92. package/dist/components/Panel/Panel.js.map +1 -1
  93. package/dist/components/PanelHeader/PanelHeader.d.ts +8 -4
  94. package/dist/components/PanelHeader/PanelHeader.js +48 -21
  95. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  96. package/dist/components/TabsItem/TabsItem.js +3 -2
  97. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  98. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +3 -4
  99. package/dist/components/VisuallyHidden/VisuallyHidden.js +3 -4
  100. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  101. package/dist/components/WriteBar/WriteBar.js +14 -2
  102. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  103. package/dist/components.css +15 -15
  104. package/dist/components.css.map +1 -1
  105. package/dist/components.js.tmp +275 -140
  106. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +1 -5
  107. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +1 -1
  108. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  109. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +7 -3
  110. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  111. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +7 -6
  112. package/dist/cssm/components/Banner/Banner.js +3 -3
  113. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  114. package/dist/cssm/components/Banner/Banner.module.css +1 -9
  115. package/dist/cssm/components/Cell/CellDragger/CellDragger.d.ts +2 -2
  116. package/dist/cssm/components/Cell/CellDragger/CellDragger.js +8 -5
  117. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  118. package/dist/cssm/components/Cell/useDraggable.d.ts +3 -3
  119. package/dist/cssm/components/Cell/useDraggable.js +12 -7
  120. package/dist/cssm/components/Cell/useDraggable.js.map +1 -1
  121. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +3 -17
  122. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  123. package/dist/cssm/components/CustomSelect/CustomSelect.js +15 -2
  124. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  125. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.d.ts +1 -1
  126. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +2 -1
  127. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  128. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +0 -1
  129. package/dist/cssm/components/HorizontalCell/HorizontalCell.d.ts +11 -1
  130. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +4 -2
  131. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  132. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +23 -11
  133. package/dist/cssm/components/ImageBase/ImageBase.js +5 -2
  134. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  135. package/dist/cssm/components/ImageBase/ImageBase.module.css +13 -2
  136. package/dist/cssm/components/InfoRow/InfoRow.js +3 -2
  137. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  138. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +1 -0
  139. package/dist/cssm/components/ModalPage/ModalPage.js +6 -1
  140. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  141. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +6 -5
  142. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  143. package/dist/cssm/components/ModalRoot/ModalRoot.js +26 -11
  144. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  145. package/dist/cssm/components/ModalRoot/types.d.ts +0 -1
  146. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  147. package/dist/cssm/components/ModalRoot/useModalManager.js +0 -1
  148. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  149. package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -1
  150. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  151. package/dist/cssm/components/Panel/Panel.js +4 -4
  152. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  153. package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +8 -4
  154. package/dist/cssm/components/PanelHeader/PanelHeader.js +45 -19
  155. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  156. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +1 -1
  157. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +3 -0
  158. package/dist/cssm/components/TabsItem/TabsItem.js +3 -2
  159. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  160. package/dist/cssm/components/Typography/Typography.module.css +2 -1
  161. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +3 -4
  162. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +3 -4
  163. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  164. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +9 -5
  165. package/dist/cssm/components/WriteBar/WriteBar.js +15 -2
  166. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  167. package/dist/cssm/components/WriteBar/WriteBar.module.css +13 -7
  168. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +9 -1
  169. package/dist/cssm/hooks/useTodayDate.js +31 -8
  170. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  171. package/dist/cssm/styles/constants.css +3 -2
  172. package/dist/hooks/useTodayDate.js +31 -8
  173. package/dist/hooks/useTodayDate.js.map +1 -1
  174. package/dist/vkui.css +15 -15
  175. package/dist/vkui.css.map +1 -1
  176. package/dist/vkui.js.tmp +275 -140
  177. package/package.json +3 -5
  178. package/docs/assets/assets/vkui-logo-dark.svg +0 -5
  179. package/docs/assets/assets/vkui-logo-light.svg +0 -5
@@ -26,10 +26,10 @@
26
26
 
27
27
  /* z_index */
28
28
  --vkui_internal--z_index_cell_dragging: 1;
29
- --vkui_internal--z_index_pull_to_refresh: 1;
30
29
  --vkui_internal--z_index_tabs: 2;
31
30
  --vkui_internal--z_index_fixed_layout: 3;
32
31
  --vkui_internal--z_index_panel_header_context: 4;
32
+ --vkui_internal--z_index_pull_to_refresh: 9;
33
33
  --vkui_internal--z_index_panel_header_fixed: 10;
34
34
  --vkui_internal--z_index_split_layout_panel_header: 11;
35
35
 
@@ -52,7 +52,8 @@
52
52
 
53
53
  /* z_index ImageBase isolate */
54
54
  --vkui_internal--z_index_image_base_overlay: 0;
55
- --vkui_internal--z_index_image_base_badge: 1;
55
+ --vkui_internal--z_index_image_base_border: 1;
56
+ --vkui_internal--z_index_image_base_badge: 2;
56
57
  }
57
58
 
58
59
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
@@ -1,6 +1,7 @@
1
1
  import _sliced_to_array from "@swc/helpers/src/_sliced_to_array.mjs";
2
2
  import React from "react";
3
- import { getMillisecondsToTomorrow } from "../lib/date";
3
+ import { getMillisecondsToTomorrow, isSameDay } from "../lib/date";
4
+ import { useDOM } from "../lib/dom";
4
5
  /**
5
6
  * Опционально обновляемая дата сегодняшнего дня
6
7
  *
@@ -11,23 +12,45 @@ import { getMillisecondsToTomorrow } from "../lib/date";
11
12
  * @param listenDayChangesForUpdate - флаг по которому определяется, будет ли создаваться подписка на смену календарного дня
12
13
  */ export function useTodayDate() {
13
14
  var listenDayChangesForUpdate = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
15
+ var _useDOM = useDOM(), document = _useDOM.document, window = _useDOM.window;
14
16
  var _React_useState = _sliced_to_array(React.useState(function() {
15
17
  return new Date();
16
18
  }), 2), todayDate = _React_useState[0], setTodayDate = _React_useState[1];
17
19
  React.useEffect(function() {
18
- if (!listenDayChangesForUpdate) {
20
+ if (!listenDayChangesForUpdate || !document || !window) {
19
21
  return;
20
22
  }
21
- var timeToDayChange = getMillisecondsToTomorrow(todayDate);
22
- var timeout = setTimeout(function() {
23
- setTodayDate(new Date());
24
- }, timeToDayChange);
23
+ var timeout = undefined;
24
+ var recalcTimeout = function() {
25
+ if (document.visibilityState === "visible") {
26
+ var now = new Date();
27
+ var timeToDayChange = getMillisecondsToTomorrow(now);
28
+ // Удаляем старый таймаут
29
+ window.clearTimeout(timeout);
30
+ // Создаем новый таймаут
31
+ timeout = window.setTimeout(function() {
32
+ setTodayDate(now);
33
+ }, timeToDayChange);
34
+ // Если todayDate не обновился в таймаут - обновить при заходе на вкладку
35
+ if (!isSameDay(todayDate, now)) {
36
+ setTodayDate(now);
37
+ }
38
+ }
39
+ };
40
+ recalcTimeout();
41
+ // Создаем слушатель visibilitychange, чтобы предотвратить пропуск обновления стейта после заморозки вкладки
42
+ // Если человек ее долго не трогал или закрывал крышку ноута и тп
43
+ // https://developer.chrome.com/blog/page-lifecycle-api/
44
+ document.addEventListener("visibilitychange", recalcTimeout);
25
45
  return function() {
26
- clearTimeout(timeout);
46
+ window.clearTimeout(timeout);
47
+ document.removeEventListener("visibilitychange", recalcTimeout);
27
48
  };
28
49
  }, [
50
+ document,
29
51
  listenDayChangesForUpdate,
30
- todayDate
52
+ todayDate,
53
+ window
31
54
  ]);
32
55
  return todayDate;
33
56
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useTodayDate.ts"],"sourcesContent":["import React from 'react';\nimport { getMillisecondsToTomorrow } from '../lib/date';\n\n/**\n * Опционально обновляемая дата сегодняшнего дня\n *\n * Дата - сегодня (в соответствии с системным временем)\n *\n * Часы, минуты, секунды, миллисекунды - произвольные\n *\n * @param listenDayChangesForUpdate - флаг по которому определяется, будет ли создаваться подписка на смену календарного дня\n */\nexport function useTodayDate(listenDayChangesForUpdate = false) {\n const [todayDate, setTodayDate] = React.useState(() => new Date());\n\n React.useEffect(() => {\n if (!listenDayChangesForUpdate) {\n return;\n }\n\n const timeToDayChange = getMillisecondsToTomorrow(todayDate);\n\n const timeout = setTimeout(() => {\n setTodayDate(new Date());\n }, timeToDayChange);\n\n return () => {\n clearTimeout(timeout);\n };\n }, [listenDayChangesForUpdate, todayDate]);\n\n return todayDate;\n}\n"],"names":["React","getMillisecondsToTomorrow","useTodayDate","listenDayChangesForUpdate","useState","Date","todayDate","setTodayDate","useEffect","timeToDayChange","timeout","setTimeout","clearTimeout"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,yBAAyB,QAAQ,cAAc;AAExD;;;;;;;;CAQC,GACD,OAAO,SAASC,eAAgD;QAAnCC,4BAAAA,iEAA4B,KAAK;IAC5D,IAAkCH,mCAAAA,MAAMI,QAAQ,CAAC;eAAM,IAAIC;YAApDC,YAA2BN,oBAAhBO,eAAgBP;IAElCA,MAAMQ,SAAS,CAAC,WAAM;QACpB,IAAI,CAACL,2BAA2B;YAC9B;QACF,CAAC;QAED,IAAMM,kBAAkBR,0BAA0BK;QAElD,IAAMI,UAAUC,WAAW,WAAM;YAC/BJ,aAAa,IAAIF;QACnB,GAAGI;QAEH,OAAO,WAAM;YACXG,aAAaF;QACf;IACF,GAAG;QAACP;QAA2BG;KAAU;IAEzC,OAAOA;AACT,CAAC"}
1
+ {"version":3,"sources":["../../src/hooks/useTodayDate.ts"],"sourcesContent":["import React from 'react';\nimport { getMillisecondsToTomorrow, isSameDay } from '../lib/date';\nimport { useDOM } from '../lib/dom';\n\n/**\n * Опционально обновляемая дата сегодняшнего дня\n *\n * Дата - сегодня (в соответствии с системным временем)\n *\n * Часы, минуты, секунды, миллисекунды - произвольные\n *\n * @param listenDayChangesForUpdate - флаг по которому определяется, будет ли создаваться подписка на смену календарного дня\n */\nexport function useTodayDate(listenDayChangesForUpdate = false) {\n const { document, window } = useDOM();\n const [todayDate, setTodayDate] = React.useState(() => new Date());\n\n React.useEffect(() => {\n if (!listenDayChangesForUpdate || !document || !window) {\n return;\n }\n\n let timeout: number | undefined = undefined;\n\n const recalcTimeout = () => {\n if (document.visibilityState === 'visible') {\n const now = new Date();\n\n const timeToDayChange = getMillisecondsToTomorrow(now);\n\n // Удаляем старый таймаут\n window.clearTimeout(timeout);\n\n // Создаем новый таймаут\n timeout = window.setTimeout(() => {\n setTodayDate(now);\n }, timeToDayChange);\n\n // Если todayDate не обновился в таймаут - обновить при заходе на вкладку\n if (!isSameDay(todayDate, now)) {\n setTodayDate(now);\n }\n }\n };\n\n recalcTimeout();\n\n // Создаем слушатель visibilitychange, чтобы предотвратить пропуск обновления стейта после заморозки вкладки\n // Если человек ее долго не трогал или закрывал крышку ноута и тп\n // https://developer.chrome.com/blog/page-lifecycle-api/\n document.addEventListener('visibilitychange', recalcTimeout);\n\n return () => {\n window.clearTimeout(timeout);\n document.removeEventListener('visibilitychange', recalcTimeout);\n };\n }, [document, listenDayChangesForUpdate, todayDate, window]);\n\n return todayDate;\n}\n"],"names":["React","getMillisecondsToTomorrow","isSameDay","useDOM","useTodayDate","listenDayChangesForUpdate","document","window","useState","Date","todayDate","setTodayDate","useEffect","timeout","undefined","recalcTimeout","visibilityState","now","timeToDayChange","clearTimeout","setTimeout","addEventListener","removeEventListener"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,yBAAyB,EAAEC,SAAS,QAAQ,cAAc;AACnE,SAASC,MAAM,QAAQ,aAAa;AAEpC;;;;;;;;CAQC,GACD,OAAO,SAASC,eAAgD;QAAnCC,4BAAAA,iEAA4B,KAAK;IAC5D,IAA6BF,UAAAA,UAArBG,WAAqBH,QAArBG,UAAUC,SAAWJ,QAAXI;IAClB,IAAkCP,mCAAAA,MAAMQ,QAAQ,CAAC;eAAM,IAAIC;YAApDC,YAA2BV,oBAAhBW,eAAgBX;IAElCA,MAAMY,SAAS,CAAC,WAAM;QACpB,IAAI,CAACP,6BAA6B,CAACC,YAAY,CAACC,QAAQ;YACtD;QACF,CAAC;QAED,IAAIM,UAA8BC;QAElC,IAAMC,gBAAgB,WAAM;YAC1B,IAAIT,SAASU,eAAe,KAAK,WAAW;gBAC1C,IAAMC,MAAM,IAAIR;gBAEhB,IAAMS,kBAAkBjB,0BAA0BgB;gBAElD,yBAAyB;gBACzBV,OAAOY,YAAY,CAACN;gBAEpB,wBAAwB;gBACxBA,UAAUN,OAAOa,UAAU,CAAC,WAAM;oBAChCT,aAAaM;gBACf,GAAGC;gBAEH,yEAAyE;gBACzE,IAAI,CAAChB,UAAUQ,WAAWO,MAAM;oBAC9BN,aAAaM;gBACf,CAAC;YACH,CAAC;QACH;QAEAF;QAEA,4GAA4G;QAC5G,iEAAiE;QACjE,wDAAwD;QACxDT,SAASe,gBAAgB,CAAC,oBAAoBN;QAE9C,OAAO,WAAM;YACXR,OAAOY,YAAY,CAACN;YACpBP,SAASgB,mBAAmB,CAAC,oBAAoBP;QACnD;IACF,GAAG;QAACT;QAAUD;QAA2BK;QAAWH;KAAO;IAE3D,OAAOG;AACT,CAAC"}