@consta/header 1.0.1 → 1.2.1

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 (158) hide show
  1. package/BannerBar/index.d.ts +1 -0
  2. package/BannerBar/index.js +1 -0
  3. package/GlobalMenu/index.d.ts +1 -0
  4. package/GlobalMenu/index.js +1 -0
  5. package/MegaMenu/index.d.ts +1 -0
  6. package/MegaMenu/index.js +1 -0
  7. package/NavBar/index.d.ts +1 -0
  8. package/NavBar/index.js +1 -0
  9. package/README.md +15 -16
  10. package/__internal__/src/components/Badges/Badges.js.map +1 -1
  11. package/__internal__/src/components/Badges/helpers.js.map +1 -1
  12. package/__internal__/src/components/Badges/types.d.ts +6 -6
  13. package/__internal__/src/components/BannerBar/BannerBar.css +1 -0
  14. package/__internal__/src/components/BannerBar/BannerBar.d.ts +3 -0
  15. package/__internal__/src/components/BannerBar/BannerBar.js +2 -0
  16. package/__internal__/src/components/BannerBar/BannerBar.js.map +1 -0
  17. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.css +1 -0
  18. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.d.ts +3 -0
  19. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.js +2 -0
  20. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.js.map +1 -0
  21. package/__internal__/src/components/BannerBar/BannerBarItem/index.d.ts +1 -0
  22. package/__internal__/src/components/BannerBar/BannerBarItem/index.js +2 -0
  23. package/__internal__/src/components/BannerBar/BannerBarItem/index.js.map +1 -0
  24. package/__internal__/src/components/BannerBar/helpers.d.ts +274 -0
  25. package/__internal__/src/components/BannerBar/helpers.js +2 -0
  26. package/__internal__/src/components/BannerBar/helpers.js.map +1 -0
  27. package/__internal__/src/components/BannerBar/index.d.ts +3 -0
  28. package/__internal__/src/components/BannerBar/index.js +2 -0
  29. package/__internal__/src/components/BannerBar/index.js.map +1 -0
  30. package/__internal__/src/components/BannerBar/types.d.ts +42 -0
  31. package/__internal__/src/components/BannerBar/types.js +2 -0
  32. package/__internal__/src/components/BannerBar/types.js.map +1 -0
  33. package/__internal__/src/components/ButtonMenu/ButtonMenu.js.map +1 -1
  34. package/__internal__/src/components/ButtonMenu/helpers.d.ts +2 -2
  35. package/__internal__/src/components/ButtonMenu/helpers.js.map +1 -1
  36. package/__internal__/src/components/ButtonMenu/types.d.ts +9 -9
  37. package/__internal__/src/components/GlobalMenu/GlobalMenu.css +1 -0
  38. package/__internal__/src/components/GlobalMenu/GlobalMenu.d.ts +3 -0
  39. package/__internal__/src/components/GlobalMenu/GlobalMenu.js +2 -0
  40. package/__internal__/src/components/GlobalMenu/GlobalMenu.js.map +1 -0
  41. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.css +1 -0
  42. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.d.ts +3 -0
  43. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.js +2 -0
  44. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.js.map +1 -0
  45. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/index.d.ts +1 -0
  46. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/index.js +2 -0
  47. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/index.js.map +1 -0
  48. package/__internal__/src/components/GlobalMenu/helper.d.ts +281 -0
  49. package/__internal__/src/components/GlobalMenu/helper.js +2 -0
  50. package/__internal__/src/components/GlobalMenu/helper.js.map +1 -0
  51. package/__internal__/src/components/GlobalMenu/index.d.ts +2 -0
  52. package/__internal__/src/components/GlobalMenu/index.js +2 -0
  53. package/__internal__/src/components/GlobalMenu/index.js.map +1 -0
  54. package/__internal__/src/components/GlobalMenu/types.d.ts +75 -0
  55. package/__internal__/src/components/GlobalMenu/types.js +2 -0
  56. package/__internal__/src/components/GlobalMenu/types.js.map +1 -0
  57. package/__internal__/src/components/Header/Header.js.map +1 -1
  58. package/__internal__/src/components/Header/HeaderLogin/HeaderLogin.d.ts +2 -2
  59. package/__internal__/src/components/Header/HeaderLogin/HeaderLogin.js.map +1 -1
  60. package/__internal__/src/components/Header/HeaderLogo/HeaderLogo.d.ts +2 -2
  61. package/__internal__/src/components/Header/HeaderLogo/HeaderLogo.js.map +1 -1
  62. package/__internal__/src/components/Header/HeaderSearch/HeaderSearch.d.ts +1 -1
  63. package/__internal__/src/components/Header/HeaderSearch/HeaderSearch.js.map +1 -1
  64. package/__internal__/src/components/Header/helpers.d.ts +1 -1
  65. package/__internal__/src/components/Header/helpers.js.map +1 -1
  66. package/__internal__/src/components/Header/types.d.ts +12 -12
  67. package/__internal__/src/components/Languages/Languages.js.map +1 -1
  68. package/__internal__/src/components/Languages/helpers.d.ts +1 -1
  69. package/__internal__/src/components/Languages/helpers.js.map +1 -1
  70. package/__internal__/src/components/Languages/types.d.ts +3 -3
  71. package/__internal__/src/components/Layout/Layout.d.ts +1 -1
  72. package/__internal__/src/components/Layout/Layout.js.map +1 -1
  73. package/__internal__/src/components/Layout/LayoutRow/LayoutRow.d.ts +1 -1
  74. package/__internal__/src/components/Layout/LayoutRow/LayoutRow.js.map +1 -1
  75. package/__internal__/src/components/Layout/helpers.js.map +1 -1
  76. package/__internal__/src/components/Layout/types.d.ts +3 -3
  77. package/__internal__/src/components/MegaMenu/MegaMenu.css +1 -0
  78. package/__internal__/src/components/MegaMenu/MegaMenu.d.ts +4 -0
  79. package/__internal__/src/components/MegaMenu/MegaMenu.js +2 -0
  80. package/__internal__/src/components/MegaMenu/MegaMenu.js.map +1 -0
  81. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.css +1 -0
  82. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.d.ts +3 -0
  83. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.js +2 -0
  84. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.js.map +1 -0
  85. package/__internal__/src/components/MegaMenu/MegaMenuBox/index.d.ts +2 -0
  86. package/__internal__/src/components/MegaMenu/MegaMenuBox/index.js +2 -0
  87. package/__internal__/src/components/MegaMenu/MegaMenuBox/index.js.map +1 -0
  88. package/__internal__/src/components/MegaMenu/MegaMenuBox/types.d.ts +10 -0
  89. package/__internal__/src/components/MegaMenu/MegaMenuBox/types.js +2 -0
  90. package/__internal__/src/components/MegaMenu/MegaMenuBox/types.js.map +1 -0
  91. package/__internal__/src/components/MegaMenu/helper.d.ts +301 -0
  92. package/__internal__/src/components/MegaMenu/helper.js +2 -0
  93. package/__internal__/src/components/MegaMenu/helper.js.map +1 -0
  94. package/__internal__/src/components/MegaMenu/index.d.ts +3 -0
  95. package/__internal__/src/components/MegaMenu/index.js +2 -0
  96. package/__internal__/src/components/MegaMenu/index.js.map +1 -0
  97. package/__internal__/src/components/MegaMenu/types.d.ts +65 -0
  98. package/__internal__/src/components/MegaMenu/types.js +2 -0
  99. package/__internal__/src/components/MegaMenu/types.js.map +1 -0
  100. package/__internal__/src/components/Menu/Menu.js.map +1 -1
  101. package/__internal__/src/components/Menu/helpers.d.ts +1 -1
  102. package/__internal__/src/components/Menu/helpers.js.map +1 -1
  103. package/__internal__/src/components/Menu/types.d.ts +10 -10
  104. package/__internal__/src/components/MobileMenu/MobileMenu.js.map +1 -1
  105. package/__internal__/src/components/MobileMenu/types.d.ts +2 -2
  106. package/__internal__/src/components/NavBar/NavBar.css +1 -0
  107. package/__internal__/src/components/NavBar/NavBar.d.ts +3 -0
  108. package/__internal__/src/components/NavBar/NavBar.js +2 -0
  109. package/__internal__/src/components/NavBar/NavBar.js.map +1 -0
  110. package/__internal__/src/components/NavBar/helper.d.ts +31 -0
  111. package/__internal__/src/components/NavBar/helper.js +2 -0
  112. package/__internal__/src/components/NavBar/helper.js.map +1 -0
  113. package/__internal__/src/components/NavBar/index.d.ts +1 -0
  114. package/__internal__/src/components/NavBar/index.js +2 -0
  115. package/__internal__/src/components/NavBar/index.js.map +1 -0
  116. package/__internal__/src/components/NavBar/types.d.ts +48 -0
  117. package/__internal__/src/components/NavBar/types.js +2 -0
  118. package/__internal__/src/components/NavBar/types.js.map +1 -0
  119. package/__internal__/src/components/NotificationCard/NotificationCard.d.ts +1 -1
  120. package/__internal__/src/components/NotificationCard/NotificationCard.js.map +1 -1
  121. package/__internal__/src/components/NotificationCard/helpers.js.map +1 -1
  122. package/__internal__/src/components/NotificationCard/types.d.ts +3 -3
  123. package/__internal__/src/components/Notifications/Notifications.js.map +1 -1
  124. package/__internal__/src/components/Notifications/types.d.ts +2 -2
  125. package/__internal__/src/components/NotificationsActions/NotificationsActions.js.map +1 -1
  126. package/__internal__/src/components/NotificationsActions/helpers.js.map +1 -1
  127. package/__internal__/src/components/NotificationsActions/types.d.ts +7 -7
  128. package/__internal__/src/components/NotificationsList/NotificationsList.js.map +1 -1
  129. package/__internal__/src/components/NotificationsList/helpers.d.ts +2 -2
  130. package/__internal__/src/components/NotificationsList/helpers.js.map +1 -1
  131. package/__internal__/src/components/NotificationsList/types.d.ts +23 -23
  132. package/__internal__/src/components/SelectMenu/SelectMenu.js.map +1 -1
  133. package/__internal__/src/components/SelectMenu/helpers.d.ts +1 -1
  134. package/__internal__/src/components/SelectMenu/helpers.js.map +1 -1
  135. package/__internal__/src/components/SelectMenu/types.d.ts +9 -9
  136. package/__internal__/src/components/Sidebar/Sidebar.d.ts +1 -1
  137. package/__internal__/src/components/Sidebar/Sidebar.js.map +1 -1
  138. package/__internal__/src/components/TileMenu/TileMenu.js.map +1 -1
  139. package/__internal__/src/components/TileMenu/TileMenuItem/TileMenuItem.d.ts +2 -2
  140. package/__internal__/src/components/TileMenu/TileMenuItem/TileMenuItem.js.map +1 -1
  141. package/__internal__/src/components/TileMenu/TileMenuList/TileMenuList.js.map +1 -1
  142. package/__internal__/src/components/TileMenu/TileMenuList/types.d.ts +8 -8
  143. package/__internal__/src/components/TileMenu/helpers.d.ts +3 -0
  144. package/__internal__/src/components/TileMenu/helpers.js.map +1 -1
  145. package/__internal__/src/components/TileMenu/types.d.ts +14 -14
  146. package/__internal__/src/components/TileMenu/types.js.map +1 -1
  147. package/__internal__/src/components/VerticalMenu/VerticalMenu.js.map +1 -1
  148. package/__internal__/src/components/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js.map +1 -1
  149. package/__internal__/src/components/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js.map +1 -1
  150. package/__internal__/src/components/VerticalMenu/helpers.d.ts +1 -1
  151. package/__internal__/src/components/VerticalMenu/helpers.js.map +1 -1
  152. package/__internal__/src/components/VerticalMenu/types.d.ts +16 -16
  153. package/__internal__/src/docs/start/start.stand.js.map +1 -1
  154. package/__internal__/src/helpers/getItemClick.d.ts +2 -2
  155. package/__internal__/src/helpers/getItemClick.js.map +1 -1
  156. package/__internal__/src/utils/bem.js.map +1 -1
  157. package/__internal__/src/utils/types/PropsWithHTMLAttributes.d.ts +2 -2
  158. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutRow.js","names":["React","cn","LayoutRowIsObject","cnLayoutRow","LayoutRow","props","className","content","height","left","center","right","position"],"sources":["../../../../../../src/components/Layout/LayoutRow/LayoutRow.tsx"],"sourcesContent":["import './LayoutRow.css';\n\nimport React from 'react';\n\nimport { cn } from '##/utils/bem';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { LayoutRowIsObject } from '../helpers';\nimport { LayoutRow as LayoutRowType, LayoutSlotHeight } from '../types';\n\nconst cnLayoutRow = cn('LayoutRow');\n\ntype LayoutRowProps = PropsWithHTMLAttributes<\n {\n content?: React.ReactNode | LayoutRowType;\n children?: never;\n height?: LayoutSlotHeight;\n },\n HTMLDivElement\n>;\n\nexport const LayoutRow: React.FC<LayoutRowProps> = (props) => {\n const { className, content, height = 'm' } = props;\n if (!content) {\n return null;\n }\n if (LayoutRowIsObject(content)) {\n const { left, center, right } = content;\n return (\n <div className={cnLayoutRow({ height }, [className])}>\n {left && (\n <div className={cnLayoutRow('Side', { position: 'left' })}>\n {left}\n </div>\n )}\n {center && (\n <div className={cnLayoutRow('Side', { position: 'center' })}>\n {center}\n </div>\n )}\n {right && (\n <div className={cnLayoutRow('Side', { position: 'right' })}>\n {right}\n </div>\n )}\n </div>\n );\n }\n return (\n <div className={cnLayoutRow({ height }, [className])}>\n <div className={cnLayoutRow('Side', { position: 'left' })}>{content}</div>\n </div>\n );\n};\n"],"mappings":"AAAA,wBAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,0BAGA,OAASC,iBAAT,kBAGA,KAAMC,YAAW,CAAGF,EAAE,CAAC,WAAD,CAAtB,CAWA,MAAO,MAAMG,UAAmC,CAAIC,CAAD,EAAW,CAC5D,KAAM,CAAEC,SAAS,CAATA,CAAF,CAAaC,OAAO,CAAPA,CAAb,CAAsBC,MAAM,CAANA,CAAM,CAAG,GAA/B,EAAuCH,CAA7C,CACA,GAAI,CAACE,CAAL,CACE,MAAO,KAAP,CAEF,GAAIL,iBAAiB,CAACK,CAAD,CAArB,CAAgC,CAC9B,KAAM,CAAEE,IAAI,CAAJA,CAAF,CAAQC,MAAM,CAANA,CAAR,CAAgBC,KAAK,CAALA,CAAhB,EAA0BJ,CAAhC,CACA,MACE,4BAAK,SAAS,CAAEJ,WAAW,CAAC,CAAEK,MAAM,CAANA,CAAF,CAAD,CAAa,CAACF,CAAD,CAAb,CAA3B,EACGG,CAAI,EACH,2BAAK,SAAS,CAAEN,WAAW,CAAC,MAAD,CAAS,CAAES,QAAQ,CAAE,MAAZ,CAAT,CAA3B,EACGH,CADH,CAFJ,CAMGC,CAAM,EACL,2BAAK,SAAS,CAAEP,WAAW,CAAC,MAAD,CAAS,CAAES,QAAQ,CAAE,QAAZ,CAAT,CAA3B,EACGF,CADH,CAPJ,CAWGC,CAAK,EACJ,2BAAK,SAAS,CAAER,WAAW,CAAC,MAAD,CAAS,CAAES,QAAQ,CAAE,OAAZ,CAAT,CAA3B,EACGD,CADH,CAZJ,CAkBH,CACD,MACE,4BAAK,SAAS,CAAER,WAAW,CAAC,CAAEK,MAAM,CAANA,CAAF,CAAD,CAAa,CAACF,CAAD,CAAb,CAA3B,EACE,2BAAK,SAAS,CAAEH,WAAW,CAAC,MAAD,CAAS,CAAES,QAAQ,CAAE,MAAZ,CAAT,CAA3B,EAA4DL,CAA5D,CADF,CAIH,CAhCM"}
1
+ {"version":3,"file":"LayoutRow.js","names":["React","cn","LayoutRowIsObject","cnLayoutRow","LayoutRow","props","className","content","height","left","center","right","position"],"sources":["../../../../../../src/components/Layout/LayoutRow/LayoutRow.tsx"],"sourcesContent":["import './LayoutRow.css';\n\nimport React from 'react';\n\nimport { cn } from '##/utils/bem';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { LayoutRowIsObject } from '../helpers';\nimport { LayoutRow as LayoutRowType, LayoutSlotHeight } from '../types';\n\nconst cnLayoutRow = cn('LayoutRow');\n\ntype LayoutRowProps = PropsWithHTMLAttributes<\n {\n content?: React.ReactNode | LayoutRowType;\n children?: never;\n height?: LayoutSlotHeight;\n },\n HTMLDivElement\n>;\n\nexport const LayoutRow: React.FC<LayoutRowProps> = (props) => {\n const { className, content, height = 'm' } = props;\n if (!content) {\n return null;\n }\n if (LayoutRowIsObject(content)) {\n const { left, center, right } = content;\n return (\n <div className={cnLayoutRow({ height }, [className])}>\n {left && (\n <div className={cnLayoutRow('Side', { position: 'left' })}>\n {left}\n </div>\n )}\n {center && (\n <div className={cnLayoutRow('Side', { position: 'center' })}>\n {center}\n </div>\n )}\n {right && (\n <div className={cnLayoutRow('Side', { position: 'right' })}>\n {right}\n </div>\n )}\n </div>\n );\n }\n return (\n <div className={cnLayoutRow({ height }, [className])}>\n <div className={cnLayoutRow('Side', { position: 'left' })}>{content}</div>\n </div>\n );\n};\n"],"mappings":"AAAA,wBAEA,MAAOA,MAAK,KAAM,OAAO,CAEzB,OAASC,EAAE,0BAGX,OAASC,iBAAiB,kBAG1B,KAAMC,YAAW,CAAGF,EAAE,CAAC,WAAW,CAAC,CAWnC,MAAO,MAAMG,UAAmC,CAAIC,CAAK,EAAK,CAC5D,KAAM,CAAEC,SAAS,CAATA,CAAS,CAAEC,OAAO,CAAPA,CAAO,CAAEC,MAAM,CAANA,CAAM,CAAG,GAAI,CAAC,CAAGH,CAAK,CAClD,GAAI,CAACE,CAAO,CACV,MAAO,KAAI,CAEb,GAAIL,iBAAiB,CAACK,CAAO,CAAC,CAAE,CAC9B,KAAM,CAAEE,IAAI,CAAJA,CAAI,CAAEC,MAAM,CAANA,CAAM,CAAEC,KAAK,CAALA,CAAM,CAAC,CAAGJ,CAAO,CACvC,MACE,4BAAK,SAAS,CAAEJ,WAAW,CAAC,CAAEK,MAAM,CAANA,CAAO,CAAC,CAAE,CAACF,CAAS,CAAC,CAAE,EAClDG,CAAI,EACH,2BAAK,SAAS,CAAEN,WAAW,CAAC,MAAM,CAAE,CAAES,QAAQ,CAAE,MAAO,CAAC,CAAE,EACvDH,CAAI,CAER,CACAC,CAAM,EACL,2BAAK,SAAS,CAAEP,WAAW,CAAC,MAAM,CAAE,CAAES,QAAQ,CAAE,QAAS,CAAC,CAAE,EACzDF,CAAM,CAEV,CACAC,CAAK,EACJ,2BAAK,SAAS,CAAER,WAAW,CAAC,MAAM,CAAE,CAAES,QAAQ,CAAE,OAAQ,CAAC,CAAE,EACxDD,CAAK,CAET,CAGP,CACA,MACE,4BAAK,SAAS,CAAER,WAAW,CAAC,CAAEK,MAAM,CAANA,CAAO,CAAC,CAAE,CAACF,CAAS,CAAC,CAAE,EACnD,2BAAK,SAAS,CAAEH,WAAW,CAAC,MAAM,CAAE,CAAES,QAAQ,CAAE,MAAO,CAAC,CAAE,EAAEL,CAAO,CAAO,CAGhF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["hasProperty","Object","prototype","hasOwnProperty","LayoutRowIsObject","content","call"],"sources":["../../../../../src/components/Layout/helpers.tsx"],"sourcesContent":["import { LayoutRow } from './types';\n\nconst hasProperty = Object.prototype.hasOwnProperty;\n\nexport const LayoutRowIsObject = (\n content: React.ReactNode | LayoutRow,\n): content is LayoutRow => {\n if (\n content &&\n typeof content === 'object' &&\n (hasProperty.call(content, 'left') ||\n hasProperty.call(content, 'right') ||\n hasProperty.call(content, 'center'))\n ) {\n return true;\n }\n return false;\n};\n"],"mappings":"AAEA,KAAMA,YAAW,CAAGC,MAAM,CAACC,SAAP,CAAiBC,cAArC,CAEA,MAAO,MAAMC,kBAAiB,CAC5BC,CAD+B,KAI7BA,CAAO,EACY,QAAnB,QAAOA,EADP,GAECL,WAAW,CAACM,IAAZ,CAAiBD,CAAjB,CAA0B,MAA1B,GACCL,WAAW,CAACM,IAAZ,CAAiBD,CAAjB,CAA0B,OAA1B,CADD,EAECL,WAAW,CAACM,IAAZ,CAAiBD,CAAjB,CAA0B,QAA1B,CAJF,CAJ6B,CAA1B"}
1
+ {"version":3,"file":"helpers.js","names":["hasProperty","Object","prototype","hasOwnProperty","LayoutRowIsObject","content","call"],"sources":["../../../../../src/components/Layout/helpers.tsx"],"sourcesContent":["import { LayoutRow } from './types';\n\nconst hasProperty = Object.prototype.hasOwnProperty;\n\nexport const LayoutRowIsObject = (\n content: React.ReactNode | LayoutRow,\n): content is LayoutRow => {\n if (\n content &&\n typeof content === 'object' &&\n (hasProperty.call(content, 'left') ||\n hasProperty.call(content, 'right') ||\n hasProperty.call(content, 'center'))\n ) {\n return true;\n }\n return false;\n};\n"],"mappings":"AAEA,KAAMA,YAAW,CAAGC,MAAM,CAACC,SAAS,CAACC,cAAc,CAEnD,MAAO,MAAMC,kBAAiB,CAC5BC,CAAoC,KAGlCA,CAAO,EACY,QAAQ,EAA3B,MAAOA,EAAoB,GAC1BL,WAAW,CAACM,IAAI,CAACD,CAAO,CAAE,MAAM,CAAC,EAChCL,WAAW,CAACM,IAAI,CAACD,CAAO,CAAE,OAAO,CAAC,EAClCL,WAAW,CAACM,IAAI,CAACD,CAAO,CAAE,QAAQ,CAAC,CAAC,CAKzC"}
@@ -1,13 +1,13 @@
1
1
  import React from 'react';
2
2
  import { PropsWithHTMLAttributesAndRef } from "../../utils/types/PropsWithHTMLAttributes";
3
- export declare type LayoutSlotHeight = 'm' | 's';
4
- export declare type LayoutRow = {
3
+ export type LayoutSlotHeight = 'm' | 's';
4
+ export type LayoutRow = {
5
5
  left: React.ReactNode;
6
6
  right: React.ReactNode;
7
7
  center: React.ReactNode;
8
8
  height?: LayoutSlotHeight;
9
9
  };
10
- export declare type LayoutProps = PropsWithHTMLAttributesAndRef<{
10
+ export type LayoutProps = PropsWithHTMLAttributesAndRef<{
11
11
  rowCenter?: React.ReactNode | LayoutRow;
12
12
  rowTop?: React.ReactNode | Omit<LayoutRow, 'height'>;
13
13
  rowBottom?: React.ReactNode | Omit<LayoutRow, 'height'>;
@@ -0,0 +1 @@
1
+ .che--MegaMenu{display:grid;grid-template-columns:var(--mega-menu-grid-columns);width:100%}.che--MegaMenu_withNavBar{--mega-menu-grid-columns:275px auto}.che--MegaMenu_bannerPosition_right{--mega-menu-wrapper-grid-columns:100%}.che--MegaMenu_bannerPosition_right.che--MegaMenu_withBannersBar{--mega-menu-wrapper-grid-columns:auto 344px}.che--MegaMenu_bannerPosition_bottom{--mega-menu-wrapper-grid-columns:100%}.che--MegaMenu-Wrapper{background:var(--color-bg-default);display:grid;grid-template-columns:var(--mega-menu-wrapper-grid-columns);width:100%}.che--MegaMenu-NavBar.che--NavBar{height:auto;max-height:var(--mega-menu-max-height);max-width:275px;min-width:275px}.che--MegaMenu-GlobalMenu{height:max-content;max-width:100%;width:100%}
@@ -0,0 +1,4 @@
1
+ import './MegaMenu.css';
2
+ import { MegaMenuProps } from './types';
3
+ export declare const MegaMenu: (props: MegaMenuProps) => JSX.Element;
4
+ export * from './types';
@@ -0,0 +1,2 @@
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";const _excluded=["items","menuHideButtonText","menuMaxElements","menuShowButtonText","menuTitle","onItemClick","getItemAs","getItemKey","getItemAttributes","getItemSubMenu","getItemIconLeft","getItemLabel","getItemOnClick","banners","bannerPosition","onBannerClick","getBannerAs","getBannerAttributes","getBannerDescription","getBannerImage","getBannerLabel","getBannerOnClick","className"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./MegaMenu.css";import{IconArrowRight}from"@consta/uikit/IconArrowRight";import React,{useEffect,useMemo,useState}from"react";import{cn}from"../../utils/bem";import{BannerBar}from"../BannerBar";import{GlobalMenu}from"../GlobalMenu";import{NavBar}from"../NavBar";import{getItemsDepth,separateItemsByDepth,withDefaultGetters}from"./helper";const cnMegaMenu=cn("MegaMenu");export const MegaMenu=a=>{const b=withDefaultGetters(a),{items:c,menuHideButtonText:w="\u0421\u043A\u0440\u044B\u0442\u044C",menuMaxElements:d,menuShowButtonText:x="\u0415\u0449\u0451",menuTitle:e,onItemClick:f,getItemAs:g,getItemKey:h,getItemAttributes:i,getItemSubMenu:j,getItemIconLeft:k,getItemLabel:l,getItemOnClick:m,banners:n,bannerPosition:y="right",onBannerClick:o,getBannerAs:p,getBannerAttributes:q,getBannerDescription:r,getBannerImage:s,getBannerLabel:t,getBannerOnClick:u,className:v}=b,z=_objectWithoutProperties(b,_excluded),[A,B]=useState(),C=a=>!!A&&h(A)===h(a),D=useMemo(()=>getItemsDepth(c,j),[c]),[E,F,G]=useMemo(()=>separateItemsByDepth({items:c,getItemKey:h,getItemSubMenu:j,getItemActive:C,depth:D}),[c,A]),{navItems:H,items:I,groups:J}=useMemo(()=>({navItems:2>D||2<D?E:void 0,groups:3>D?E:F,items:3>D?F:G}),[D,E,F,G]);useEffect(()=>{2<D&&j(c[0])&&B(c[0])},[D]);const K=(a,b)=>{null===f||void 0===f?void 0:f({e:a,item:b}),j(b)&&B(b)},L=(a,b)=>{var c;const d=null===(c=i(b))||void 0===c?void 0:c.onMouseEnter;null===d||void 0===d?void 0:d(a),j(b)&&B(b)};return React.createElement("div",Object.assign({className:cnMegaMenu({withGlobalMenu:1<D,withBannersBar:0<(null!==n&&void 0!==n?n:[]).length,withNavBar:2!==D,bannerPosition:y},[v])},z),H&&React.createElement(NavBar,{items:H,className:cnMegaMenu("NavBar"),getItemActive:({item:a})=>C(a),getItemAs:({item:a})=>g(a),getItemAttributes:({item:a})=>_objectSpread(_objectSpread({},i(a)),{},{onMouseEnter:b=>L(b,a)}),getItemIconLeft:({item:a})=>k(a),getItemLabel:({item:a})=>l(a),getItemOnClick:({item:a})=>m(a),onItemClick:({e:a,item:{item:b}})=>K(a,b),getItemIconRight:({item:a})=>j(a)?IconArrowRight:void 0}),React.createElement("div",{className:cnMegaMenu("Wrapper")},2<=D&&React.createElement(GlobalMenu,{className:cnMegaMenu("GlobalMenu"),items:I,groups:J,title:null!==e&&void 0!==e?e:A?l(A):void 0,getGroupKey:({item:a})=>h(a),getGroupLabel:({item:a})=>l(a),getItemAs:({item:a})=>g(a),getItemAttributes:({item:a})=>i(a),getItemGroupId:({groupId:a})=>a,getItemLabel:({item:a})=>l(a),getItemOnClick:({item:a})=>m(a),getGroupOnClick:({item:a})=>m(a),onGroupClick:f?({e:a,group:{item:b}})=>{null===f||void 0===f?void 0:f({e:a,item:b})}:void 0,onItemClick:f?({e:a,item:{item:b}})=>null===f||void 0===f?void 0:f({e:a,item:b}):void 0,maxElements:d,showButtonText:x,hideButtonText:w}),n&&React.createElement(BannerBar,{className:cnMegaMenu("BannerBar"),items:n,view:"right"===y?"vertical":"horizontal",onItemClick:o,getItemAs:p,getItemAttributes:q,getItemDescription:r,getItemImage:s,getItemLabel:t,getItemOnClick:u})))};export*from"./types";
2
+ //# sourceMappingURL=MegaMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MegaMenu.js","names":["IconArrowRight","React","useEffect","useMemo","useState","cn","BannerBar","GlobalMenu","NavBar","getItemsDepth","separateItemsByDepth","withDefaultGetters","cnMegaMenu","MegaMenu","props","items","itemsProp","menuHideButtonText","menuMaxElements","menuShowButtonText","menuTitle","onItemClick","onItemClickProp","getItemAs","getItemKey","getItemAttributes","getItemSubMenu","getItemIconLeft","getItemLabel","getItemOnClick","banners","bannerPosition","onBannerClick","getBannerAs","getBannerAttributes","getBannerDescription","getBannerImage","getBannerLabel","getBannerOnClick","className","otherProps","activeItem","setActiveItem","getItemActive","item","depth","firstLevel","secondLevel","thirdLevel","navItems","groups","handleNavBarClick","e","handleNavBarMouseEnter","onMouseEnter","withGlobalMenu","withBannersBar","length","withNavBar","groupId","group"],"sources":["../../../../../src/components/MegaMenu/MegaMenu.tsx"],"sourcesContent":["import './MegaMenu.css';\n\nimport { IconArrowRight } from '@consta/uikit/IconArrowRight';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport { cn } from '##/utils/bem';\n\nimport { BannerBar } from '../BannerBar';\nimport { GlobalMenu } from '../GlobalMenu';\nimport { NavBar } from '../NavBar';\nimport {\n getItemsDepth,\n separateItemsByDepth,\n withDefaultGetters,\n} from './helper';\nimport { MegaMenuProps } from './types';\n\nconst cnMegaMenu = cn('MegaMenu');\n\nexport const MegaMenu = (props: MegaMenuProps) => {\n const {\n // GlobalMenu\n items: itemsProp,\n menuHideButtonText = 'Скрыть',\n menuMaxElements,\n menuShowButtonText = 'Ещё',\n menuTitle,\n onItemClick: onItemClickProp,\n getItemAs,\n getItemKey,\n getItemAttributes,\n getItemSubMenu,\n getItemIconLeft,\n getItemLabel,\n getItemOnClick,\n // BannerBar\n banners,\n bannerPosition = 'right',\n onBannerClick,\n getBannerAs,\n getBannerAttributes,\n getBannerDescription,\n getBannerImage,\n getBannerLabel,\n getBannerOnClick,\n // Others\n className,\n ...otherProps\n } = withDefaultGetters(props);\n type ITEM = (typeof itemsProp)[number];\n\n const [activeItem, setActiveItem] = useState<ITEM | undefined>();\n\n const getItemActive = (item: ITEM) => {\n if (activeItem) {\n return getItemKey(activeItem) === getItemKey(item);\n }\n return false;\n };\n\n const depth = useMemo(\n () => getItemsDepth(itemsProp, getItemSubMenu),\n [itemsProp],\n );\n\n const [firstLevel, secondLevel, thirdLevel] = useMemo(\n () =>\n separateItemsByDepth({\n items: itemsProp,\n getItemKey,\n getItemSubMenu,\n getItemActive,\n depth,\n }),\n [itemsProp, activeItem],\n );\n\n const { navItems, items, groups } = useMemo(() => {\n return {\n navItems: depth < 2 || depth > 2 ? firstLevel : undefined,\n groups: depth < 3 ? firstLevel : secondLevel,\n items: depth < 3 ? secondLevel : thirdLevel,\n };\n }, [depth, firstLevel, secondLevel, thirdLevel]);\n\n useEffect(() => {\n if (depth > 2 && getItemSubMenu(itemsProp[0])) {\n setActiveItem(itemsProp[0]);\n }\n }, [depth]);\n\n const handleNavBarClick = (e: React.MouseEvent, item: ITEM) => {\n onItemClickProp?.({ e, item });\n if (getItemSubMenu(item)) {\n setActiveItem(item);\n }\n };\n\n const handleNavBarMouseEnter = (\n e: React.MouseEvent<HTMLDivElement>,\n item: ITEM,\n ) => {\n const onMouseEnter = getItemAttributes(item)\n ?.onMouseEnter as JSX.IntrinsicElements['div']['onMouseEnter'];\n onMouseEnter?.(e);\n if (getItemSubMenu(item)) {\n setActiveItem(item);\n }\n };\n\n return (\n <div\n className={cnMegaMenu(\n {\n withGlobalMenu: depth > 1,\n withBannersBar: (banners ?? []).length > 0,\n withNavBar: depth !== 2,\n bannerPosition,\n },\n [className],\n )}\n {...otherProps}\n >\n {navItems && (\n <NavBar\n items={navItems}\n className={cnMegaMenu('NavBar')}\n getItemActive={({ item }) => getItemActive(item)}\n getItemAs={({ item }) => getItemAs(item)}\n getItemAttributes={({ item }) =>\n ({\n ...getItemAttributes(item),\n onMouseEnter: (e: React.MouseEvent<HTMLDivElement>) =>\n handleNavBarMouseEnter(e, item),\n } as JSX.IntrinsicElements['div'])\n }\n getItemIconLeft={({ item }) => getItemIconLeft(item)}\n getItemLabel={({ item }) => getItemLabel(item)}\n getItemOnClick={({ item }) => getItemOnClick(item)}\n onItemClick={({ e, item: { item } }) => handleNavBarClick(e, item)}\n getItemIconRight={({ item }) =>\n getItemSubMenu(item) ? IconArrowRight : undefined\n }\n />\n )}\n <div className={cnMegaMenu('Wrapper')}>\n {depth >= 2 && (\n <GlobalMenu\n className={cnMegaMenu('GlobalMenu')}\n items={items}\n groups={groups}\n title={\n menuTitle ?? (activeItem ? getItemLabel(activeItem) : undefined)\n }\n getGroupKey={({ item }) => getItemKey(item)}\n getGroupLabel={({ item }) => getItemLabel(item)}\n getItemAs={({ item }) => getItemAs(item)}\n getItemAttributes={({ item }) => getItemAttributes(item)}\n getItemGroupId={({ groupId }) => groupId}\n getItemLabel={({ item }) => getItemLabel(item)}\n getItemOnClick={({ item }) => getItemOnClick(item)}\n getGroupOnClick={({ item }) => getItemOnClick(item)}\n onGroupClick={\n onItemClickProp\n ? ({ e, group: { item } }) => {\n onItemClickProp?.({ e, item });\n }\n : undefined\n }\n onItemClick={\n onItemClickProp\n ? ({ e, item: { item } }) => onItemClickProp?.({ e, item })\n : undefined\n }\n maxElements={menuMaxElements}\n showButtonText={menuShowButtonText}\n hideButtonText={menuHideButtonText}\n />\n )}\n {banners && (\n <BannerBar\n className={cnMegaMenu('BannerBar')}\n items={banners}\n view={bannerPosition === 'right' ? 'vertical' : 'horizontal'}\n onItemClick={onBannerClick}\n getItemAs={getBannerAs}\n getItemAttributes={getBannerAttributes}\n getItemDescription={getBannerDescription}\n getItemImage={getBannerImage}\n getItemLabel={getBannerLabel}\n getItemOnClick={getBannerOnClick}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport * from './types';\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .che--MegaMenuBox-Wrapper{max-width:var(--mega-menu-content-width);pointer-events:all;width:100%;width:var(--mega-menu-content-width)}.che--MegaMenuBox-Window{align-items:flex-start;background:var(--color-bg-default);display:flex;height:max-content;justify-content:center;pointer-events:none;position:absolute;top:var(--mega-menu-offset);transition:transform .24s ease,opacity .4s;width:100%;z-index:2}.che--MegaMenuBox-Window_animate_exited,.che--MegaMenuBox-Window_animate_exiting{opacity:0;transform:translate3d(0,-20%,0)}.che--MegaMenuBox-Window_animate_entered,.che--MegaMenuBox-Window_animate_entering{opacity:1;transform:translateZ(0)}.che--MegaMenuBox-Overlay{background:var(--color-bg-tone);bottom:0;height:100%;left:0;position:fixed;right:0;top:0;width:100%}.che--MegaMenuBox-Overlay_animate_exited,.che--MegaMenuBox-Overlay_animate_exiting{opacity:0}.che--MegaMenuBox-Overlay_animate_entered,.che--MegaMenuBox-Overlay_animate_entering{opacity:1}.che--MegaMenuBox-Overlay_animate_entered,.che--MegaMenuBox-Overlay_animate_entering,.che--MegaMenuBox-Overlay_animate_exited,.che--MegaMenuBox-Overlay_animate_exiting{transition:opacity .24s ease}
@@ -0,0 +1,3 @@
1
+ import './MegaMenuBox.css';
2
+ import { MegaMenuBoxProps } from './types';
3
+ export declare const MegaMenuBox: (props: MegaMenuBoxProps) => JSX.Element;
@@ -0,0 +1,2 @@
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";const _excluded=["isOpen","onClickOutside","onEsc","offset","style","anchorRef","className","children","maxContentWidth"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./MegaMenuBox.css";import{PortalWithTheme,usePortalContext}from"@consta/uikit/PortalWithTheme";import{useTheme}from"@consta/uikit/Theme";import{useClickOutside}from"@consta/uikit/useClickOutside";import React,{useMemo,useRef}from"react";import{Transition}from"react-transition-group";import{cn}from"../../../utils/bem";const cnMegaMenuBox=cn("MegaMenuBox"),ContextConsumer=({onClickOutside:a,children:b,ignoreClicksInsideRefs:c})=>{const{refs:d}=usePortalContext();return useClickOutside({isActive:!!a,ignoreClicksInsideRefs:[...(c||[]),...(d||[])],handler:a}),b};export const MegaMenuBox=a=>{const{isOpen:b,onClickOutside:c,onEsc:d,offset:j=0,style:e,anchorRef:f,className:g,children:h,maxContentWidth:i}=a,k=_objectWithoutProperties(a,_excluded),l=useRef(null),m=useRef(null),{theme:n}=useTheme(),o=useMemo(()=>{var a,b,c,d;return(null!==(a=null===f||void 0===f||null===(b=f.current)||void 0===b?void 0:b.offsetTop)&&void 0!==a?a:0)+(null!==(c=null===f||void 0===f||null===(d=f.current)||void 0===d?void 0:d.offsetHeight)&&void 0!==c?c:0)+j},[j,null===f||void 0===f?void 0:f.current]);return React.createElement(Transition,{in:b,unmountOnExit:!0,timeout:240,nodeRef:l},a=>React.createElement(PortalWithTheme,Object.assign({preset:n,style:_objectSpread({"--mega-menu-offset":`${o}px`},e),className:cnMegaMenuBox(null,[g]),ref:l},k),React.createElement("div",{className:cnMegaMenuBox("Overlay",{animate:a})}),React.createElement(ContextConsumer,{onClickOutside:c,ignoreClicksInsideRefs:[m]},React.createElement("div",{ref:m,className:cnMegaMenuBox("Window",{animate:a})},React.createElement("div",{className:cnMegaMenuBox("Wrapper"),style:{"--mega-menu-content-width":i?`${i}px`:"100%"}},h)))))};
2
+ //# sourceMappingURL=MegaMenuBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MegaMenuBox.js","names":["PortalWithTheme","usePortalContext","useTheme","useClickOutside","React","useMemo","useRef","Transition","cn","cnMegaMenuBox","ContextConsumer","onClickOutside","children","ignoreClicksInsideRefs","refs","isActive","handler","MegaMenuBox","props","isOpen","onEsc","offset","offsetProp","style","anchorRef","className","maxContentWidth","otherProps","containerRef","menuRef","theme","current","offsetTop","offsetHeight","animate"],"sources":["../../../../../../src/components/MegaMenu/MegaMenuBox/MegaMenuBox.tsx"],"sourcesContent":["import './MegaMenuBox.css';\n\nimport {\n PortalWithTheme,\n usePortalContext,\n} from '@consta/uikit/PortalWithTheme';\nimport { useTheme } from '@consta/uikit/Theme';\nimport { useClickOutside } from '@consta/uikit/useClickOutside';\nimport React, { useMemo, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport { cn } from '##/utils/bem';\n\nimport { MegaMenuBoxProps } from './types';\n\nconst cnMegaMenuBox = cn('MegaMenuBox');\n\nconst ContextConsumer: React.FC<{\n onClickOutside?: (event: MouseEvent) => void;\n ignoreClicksInsideRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n children: React.ReactNode;\n}> = ({ onClickOutside, children, ignoreClicksInsideRefs }) => {\n const { refs } = usePortalContext();\n\n useClickOutside({\n isActive: !!onClickOutside,\n ignoreClicksInsideRefs: [\n ...(ignoreClicksInsideRefs || []),\n ...(refs || []),\n ],\n handler: onClickOutside,\n });\n\n return children as React.ReactElement;\n};\n\nexport const MegaMenuBox = (props: MegaMenuBoxProps) => {\n const {\n isOpen,\n onClickOutside,\n onEsc,\n offset: offsetProp = 0,\n style,\n anchorRef,\n className,\n children,\n maxContentWidth,\n ...otherProps\n } = props;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n\n const { theme } = useTheme();\n\n const offset = useMemo(() => {\n return (\n (anchorRef?.current?.offsetTop ?? 0) +\n (anchorRef?.current?.offsetHeight ?? 0) +\n offsetProp\n );\n }, [offsetProp, anchorRef?.current]);\n\n return (\n <Transition in={isOpen} unmountOnExit timeout={240} nodeRef={containerRef}>\n {(animate) => (\n <PortalWithTheme\n preset={theme}\n style={{\n ['--mega-menu-offset' as string]: `${offset}px`,\n ...style,\n }}\n className={cnMegaMenuBox(null, [className])}\n ref={containerRef}\n {...otherProps}\n >\n <div className={cnMegaMenuBox('Overlay', { animate })} />\n <ContextConsumer\n onClickOutside={onClickOutside}\n ignoreClicksInsideRefs={[menuRef]}\n >\n <div ref={menuRef} className={cnMegaMenuBox('Window', { animate })}>\n <div\n className={cnMegaMenuBox('Wrapper')}\n style={{\n ['--mega-menu-content-width' as string]: maxContentWidth\n ? `${maxContentWidth}px`\n : '100%',\n }}\n >\n {children}\n </div>\n </div>\n </ContextConsumer>\n </PortalWithTheme>\n )}\n </Transition>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './MegaMenuBox';
2
+ export * from './types';
@@ -0,0 +1,2 @@
1
+ export*from"./MegaMenuBox";export*from"./types";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/components/MegaMenu/MegaMenuBox/index.ts"],"sourcesContent":["export * from './MegaMenuBox';\nexport * from './types';\n"],"mappings":"AAAA,2BACA"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { PropsWithHTMLAttributesAndRef } from "../../../utils/types/PropsWithHTMLAttributes";
3
+ export type MegaMenuBoxProps = PropsWithHTMLAttributesAndRef<{
4
+ offset?: number;
5
+ isOpen?: boolean;
6
+ onClickOutside?: (event: MouseEvent) => void;
7
+ onEsc?: (event: KeyboardEvent) => void;
8
+ anchorRef?: React.RefObject<HTMLElement>;
9
+ maxContentWidth?: number;
10
+ }, HTMLDivElement>;
@@ -0,0 +1,2 @@
1
+ export{};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../../src/components/MegaMenu/MegaMenuBox/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport type MegaMenuBoxProps = PropsWithHTMLAttributesAndRef<\n {\n offset?: number;\n isOpen?: boolean;\n onClickOutside?: (event: MouseEvent) => void;\n onEsc?: (event: KeyboardEvent) => void;\n anchorRef?: React.RefObject<HTMLElement>;\n maxContentWidth?: number;\n },\n HTMLDivElement\n>;\n"],"mappings":""}
@@ -0,0 +1,301 @@
1
+ /// <reference types="react" />
2
+ import { BannerBarDefaultItem, BannerBarPropGetItemAs, BannerBarPropGetItemAttributes, BannerBarPropGetItemDescription, BannerBarPropGetItemImage, BannerBarPropGetItemLabel, BannerBarPropGetItemOnClick } from '../BannerBar/types';
3
+ import { MegaMenuDefaultItem, MegaMenuPropGetItemAs, MegaMenuPropGetItemAttributes, MegaMenuPropGetItemIconLeft, MegaMenuPropGetItemKey, MegaMenuPropGetItemLabel, MegaMenuPropGetItemOnClick, MegaMenuPropGetItemSubMenu, MegaMenuProps } from './types';
4
+ export declare const withDefaultGetters: (props: MegaMenuProps) => {
5
+ getItemKey: MegaMenuPropGetItemKey<MegaMenuDefaultItem>;
6
+ getItemAs: MegaMenuPropGetItemAs<MegaMenuDefaultItem>;
7
+ getItemAttributes: MegaMenuPropGetItemAttributes<MegaMenuDefaultItem>;
8
+ getItemLabel: MegaMenuPropGetItemLabel<MegaMenuDefaultItem>;
9
+ getItemOnClick: MegaMenuPropGetItemOnClick<MegaMenuDefaultItem>;
10
+ getItemIconLeft: MegaMenuPropGetItemIconLeft<MegaMenuDefaultItem>;
11
+ getItemSubMenu: MegaMenuPropGetItemSubMenu<MegaMenuDefaultItem>;
12
+ getBannerAs: BannerBarPropGetItemAs<BannerBarDefaultItem>;
13
+ getBannerAttributes: BannerBarPropGetItemAttributes<BannerBarDefaultItem>;
14
+ getBannerLabel: BannerBarPropGetItemLabel<BannerBarDefaultItem>;
15
+ getBannerOnClick: BannerBarPropGetItemOnClick<BannerBarDefaultItem>;
16
+ getBannerImage: BannerBarPropGetItemImage<BannerBarDefaultItem>;
17
+ getBannerDescription: BannerBarPropGetItemDescription<BannerBarDefaultItem>;
18
+ banners?: BannerBarDefaultItem[] | undefined;
19
+ items: MegaMenuDefaultItem[];
20
+ menuTitle?: string | undefined;
21
+ menuShowButtonText?: string | undefined;
22
+ menuHideButtonText?: string | undefined;
23
+ menuMaxElements?: number | undefined;
24
+ bannerPosition?: "right" | "bottom" | undefined;
25
+ onItemClick?: import("./types").MegaMenuPropOnItemClick<MegaMenuDefaultItem> | undefined;
26
+ onBannerClick?: import("./types").MegaMenuPropOnItemClick<BannerBarDefaultItem> | undefined;
27
+ defaultChecked?: boolean | undefined;
28
+ defaultValue?: string | number | readonly string[] | undefined;
29
+ suppressContentEditableWarning?: boolean | undefined;
30
+ suppressHydrationWarning?: boolean | undefined;
31
+ accessKey?: string | undefined;
32
+ className?: string | undefined;
33
+ contentEditable?: (boolean | "true" | "false") | "inherit" | undefined;
34
+ contextMenu?: string | undefined;
35
+ dir?: string | undefined;
36
+ draggable?: (boolean | "true" | "false") | undefined;
37
+ hidden?: boolean | undefined;
38
+ id?: string | undefined;
39
+ lang?: string | undefined;
40
+ nonce?: string | undefined;
41
+ placeholder?: string | undefined;
42
+ slot?: string | undefined;
43
+ spellCheck?: (boolean | "true" | "false") | undefined;
44
+ style?: import("react").CSSProperties | undefined;
45
+ tabIndex?: number | undefined;
46
+ title?: string | undefined;
47
+ translate?: "yes" | "no" | undefined;
48
+ radioGroup?: string | undefined;
49
+ role?: import("react").AriaRole | undefined;
50
+ about?: string | undefined;
51
+ datatype?: string | undefined;
52
+ inlist?: any;
53
+ prefix?: string | undefined;
54
+ property?: string | undefined;
55
+ resource?: string | undefined;
56
+ typeof?: string | undefined;
57
+ vocab?: string | undefined;
58
+ autoCapitalize?: string | undefined;
59
+ autoCorrect?: string | undefined;
60
+ autoSave?: string | undefined;
61
+ color?: string | undefined;
62
+ itemProp?: string | undefined;
63
+ itemScope?: boolean | undefined;
64
+ itemType?: string | undefined;
65
+ itemID?: string | undefined;
66
+ itemRef?: string | undefined;
67
+ results?: number | undefined;
68
+ security?: string | undefined;
69
+ unselectable?: "on" | "off" | undefined;
70
+ inputMode?: "search" | "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
71
+ is?: string | undefined;
72
+ 'aria-activedescendant'?: string | undefined;
73
+ 'aria-atomic'?: (boolean | "true" | "false") | undefined;
74
+ 'aria-autocomplete'?: "list" | "none" | "inline" | "both" | undefined;
75
+ 'aria-busy'?: (boolean | "true" | "false") | undefined;
76
+ 'aria-checked'?: boolean | "true" | "false" | "mixed" | undefined;
77
+ 'aria-colcount'?: number | undefined;
78
+ 'aria-colindex'?: number | undefined;
79
+ 'aria-colspan'?: number | undefined;
80
+ 'aria-controls'?: string | undefined;
81
+ 'aria-current'?: boolean | "true" | "false" | "page" | "step" | "location" | "date" | "time" | undefined;
82
+ 'aria-describedby'?: string | undefined;
83
+ 'aria-details'?: string | undefined;
84
+ 'aria-disabled'?: (boolean | "true" | "false") | undefined;
85
+ 'aria-dropeffect'?: "link" | "none" | "copy" | "execute" | "move" | "popup" | undefined;
86
+ 'aria-errormessage'?: string | undefined;
87
+ 'aria-expanded'?: (boolean | "true" | "false") | undefined;
88
+ 'aria-flowto'?: string | undefined;
89
+ 'aria-grabbed'?: (boolean | "true" | "false") | undefined;
90
+ 'aria-haspopup'?: boolean | "true" | "false" | "dialog" | "grid" | "listbox" | "menu" | "tree" | undefined;
91
+ 'aria-hidden'?: (boolean | "true" | "false") | undefined;
92
+ 'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
93
+ 'aria-keyshortcuts'?: string | undefined;
94
+ 'aria-label'?: string | undefined;
95
+ 'aria-labelledby'?: string | undefined;
96
+ 'aria-level'?: number | undefined;
97
+ 'aria-live'?: "off" | "assertive" | "polite" | undefined;
98
+ 'aria-modal'?: (boolean | "true" | "false") | undefined;
99
+ 'aria-multiline'?: (boolean | "true" | "false") | undefined;
100
+ 'aria-multiselectable'?: (boolean | "true" | "false") | undefined;
101
+ 'aria-orientation'?: "horizontal" | "vertical" | undefined;
102
+ 'aria-owns'?: string | undefined;
103
+ 'aria-placeholder'?: string | undefined;
104
+ 'aria-posinset'?: number | undefined;
105
+ 'aria-pressed'?: boolean | "true" | "false" | "mixed" | undefined;
106
+ 'aria-readonly'?: (boolean | "true" | "false") | undefined;
107
+ 'aria-relevant'?: "text" | "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
108
+ 'aria-required'?: (boolean | "true" | "false") | undefined;
109
+ 'aria-roledescription'?: string | undefined;
110
+ 'aria-rowcount'?: number | undefined;
111
+ 'aria-rowindex'?: number | undefined;
112
+ 'aria-rowspan'?: number | undefined;
113
+ 'aria-selected'?: (boolean | "true" | "false") | undefined;
114
+ 'aria-setsize'?: number | undefined;
115
+ 'aria-sort'?: "none" | "ascending" | "descending" | "other" | undefined;
116
+ 'aria-valuemax'?: number | undefined;
117
+ 'aria-valuemin'?: number | undefined;
118
+ 'aria-valuenow'?: number | undefined;
119
+ 'aria-valuetext'?: string | undefined;
120
+ children?: import("react").ReactNode;
121
+ dangerouslySetInnerHTML?: {
122
+ __html: string;
123
+ } | undefined;
124
+ onCopy?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
125
+ onCopyCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
126
+ onCut?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
127
+ onCutCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
128
+ onPaste?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
129
+ onPasteCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
130
+ onCompositionEnd?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
131
+ onCompositionEndCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
132
+ onCompositionStart?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
133
+ onCompositionStartCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
134
+ onCompositionUpdate?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
135
+ onCompositionUpdateCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
136
+ onFocus?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
137
+ onFocusCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
138
+ onBlur?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
139
+ onBlurCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
140
+ onChange?: import("react").FormEventHandler<HTMLDivElement> | undefined;
141
+ onChangeCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
142
+ onBeforeInput?: import("react").FormEventHandler<HTMLDivElement> | undefined;
143
+ onBeforeInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
144
+ onInput?: import("react").FormEventHandler<HTMLDivElement> | undefined;
145
+ onInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
146
+ onReset?: import("react").FormEventHandler<HTMLDivElement> | undefined;
147
+ onResetCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
148
+ onSubmit?: import("react").FormEventHandler<HTMLDivElement> | undefined;
149
+ onSubmitCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
150
+ onInvalid?: import("react").FormEventHandler<HTMLDivElement> | undefined;
151
+ onInvalidCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
152
+ onLoad?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
153
+ onLoadCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
154
+ onError?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
155
+ onErrorCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
156
+ onKeyDown?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
157
+ onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
158
+ onKeyPress?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
159
+ onKeyPressCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
160
+ onKeyUp?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
161
+ onKeyUpCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
162
+ onAbort?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
163
+ onAbortCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
164
+ onCanPlay?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
165
+ onCanPlayCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
166
+ onCanPlayThrough?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
167
+ onCanPlayThroughCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
168
+ onDurationChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
169
+ onDurationChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
170
+ onEmptied?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
171
+ onEmptiedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
172
+ onEncrypted?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
173
+ onEncryptedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
174
+ onEnded?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
175
+ onEndedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
176
+ onLoadedData?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
177
+ onLoadedDataCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
178
+ onLoadedMetadata?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
179
+ onLoadedMetadataCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
180
+ onLoadStart?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
181
+ onLoadStartCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
182
+ onPause?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
183
+ onPauseCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
184
+ onPlay?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
185
+ onPlayCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
186
+ onPlaying?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
187
+ onPlayingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
188
+ onProgress?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
189
+ onProgressCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
190
+ onRateChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
191
+ onRateChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
192
+ onResize?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
193
+ onResizeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
194
+ onSeeked?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
195
+ onSeekedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
196
+ onSeeking?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
197
+ onSeekingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
198
+ onStalled?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
199
+ onStalledCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
200
+ onSuspend?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
201
+ onSuspendCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
202
+ onTimeUpdate?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
203
+ onTimeUpdateCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
204
+ onVolumeChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
205
+ onVolumeChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
206
+ onWaiting?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
207
+ onWaitingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
208
+ onAuxClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
209
+ onAuxClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
210
+ onClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
211
+ onClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
212
+ onContextMenu?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
213
+ onContextMenuCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
214
+ onDoubleClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
215
+ onDoubleClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
216
+ onDrag?: import("react").DragEventHandler<HTMLDivElement> | undefined;
217
+ onDragCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
218
+ onDragEnd?: import("react").DragEventHandler<HTMLDivElement> | undefined;
219
+ onDragEndCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
220
+ onDragEnter?: import("react").DragEventHandler<HTMLDivElement> | undefined;
221
+ onDragEnterCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
222
+ onDragExit?: import("react").DragEventHandler<HTMLDivElement> | undefined;
223
+ onDragExitCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
224
+ onDragLeave?: import("react").DragEventHandler<HTMLDivElement> | undefined;
225
+ onDragLeaveCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
226
+ onDragOver?: import("react").DragEventHandler<HTMLDivElement> | undefined;
227
+ onDragOverCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
228
+ onDragStart?: import("react").DragEventHandler<HTMLDivElement> | undefined;
229
+ onDragStartCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
230
+ onDrop?: import("react").DragEventHandler<HTMLDivElement> | undefined;
231
+ onDropCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
232
+ onMouseDown?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
233
+ onMouseDownCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
234
+ onMouseEnter?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
235
+ onMouseLeave?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
236
+ onMouseMove?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
237
+ onMouseMoveCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
238
+ onMouseOut?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
239
+ onMouseOutCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
240
+ onMouseOver?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
241
+ onMouseOverCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
242
+ onMouseUp?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
243
+ onMouseUpCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
244
+ onSelect?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
245
+ onSelectCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
246
+ onTouchCancel?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
247
+ onTouchCancelCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
248
+ onTouchEnd?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
249
+ onTouchEndCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
250
+ onTouchMove?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
251
+ onTouchMoveCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
252
+ onTouchStart?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
253
+ onTouchStartCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
254
+ onPointerDown?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
255
+ onPointerDownCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
256
+ onPointerMove?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
257
+ onPointerMoveCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
258
+ onPointerUp?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
259
+ onPointerUpCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
260
+ onPointerCancel?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
261
+ onPointerCancelCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
262
+ onPointerEnter?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
263
+ onPointerEnterCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
264
+ onPointerLeave?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
265
+ onPointerLeaveCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
266
+ onPointerOver?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
267
+ onPointerOverCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
268
+ onPointerOut?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
269
+ onPointerOutCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
270
+ onGotPointerCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
271
+ onGotPointerCaptureCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
272
+ onLostPointerCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
273
+ onLostPointerCaptureCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
274
+ onScroll?: import("react").UIEventHandler<HTMLDivElement> | undefined;
275
+ onScrollCapture?: import("react").UIEventHandler<HTMLDivElement> | undefined;
276
+ onWheel?: import("react").WheelEventHandler<HTMLDivElement> | undefined;
277
+ onWheelCapture?: import("react").WheelEventHandler<HTMLDivElement> | undefined;
278
+ onAnimationStart?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
279
+ onAnimationStartCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
280
+ onAnimationEnd?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
281
+ onAnimationEndCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
282
+ onAnimationIteration?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
283
+ onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
284
+ onTransitionEnd?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
285
+ onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
286
+ ref?: import("react").Ref<HTMLDivElement> | undefined;
287
+ key?: import("react").Key | null | undefined;
288
+ };
289
+ type Level<ITEM> = Array<{
290
+ groupId?: string | number;
291
+ item: ITEM;
292
+ }>;
293
+ export declare const getItemsDepth: <ITEM>(items: ITEM[], getItemSubMenu: MegaMenuPropGetItemSubMenu<ITEM>) => number;
294
+ export declare const separateItemsByDepth: <ITEM>(params: {
295
+ getItemKey: MegaMenuPropGetItemKey<ITEM>;
296
+ items: ITEM[];
297
+ getItemSubMenu: MegaMenuPropGetItemSubMenu<ITEM>;
298
+ getItemActive: (item: ITEM) => boolean;
299
+ depth?: number | undefined;
300
+ }) => [Level<ITEM>, Level<ITEM>, Level<ITEM>];
301
+ export {};
@@ -0,0 +1,2 @@
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}const defaultGetItemKey=a=>a.key,defaultGetItemLabel=a=>a.label,defaultGetItemIconLeft=a=>a.iconLeft,defaultGetItemOnClick=a=>a.onClick,defaultGetItemAs=a=>a.as,defaultGetItemAttributes=a=>a.attributes,defaultGetItemSubMenu=a=>a.subMenu,defaultGetBannerLabel=a=>a.label,defaultGetBannerOnClick=a=>a.onClick,defaultGetBannerDescription=a=>a.description,defaultGetBannerImage=a=>a.image,defaultGetBannerAs=a=>a.as,defaultGetBannerAttributees=a=>a.attributes;export const withDefaultGetters=a=>_objectSpread(_objectSpread({},a),{},{getItemKey:a.getItemKey||defaultGetItemKey,getItemAs:a.getItemAs||defaultGetItemAs,getItemAttributes:a.getItemAttributes||defaultGetItemAttributes,getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemOnClick:a.getItemOnClick||defaultGetItemOnClick,getItemIconLeft:a.getItemIconLeft||defaultGetItemIconLeft,getItemSubMenu:a.getItemSubMenu||defaultGetItemSubMenu,getBannerAs:a.getBannerAs||defaultGetBannerAs,getBannerAttributes:a.getBannerAttributes||defaultGetBannerAttributees,getBannerLabel:a.getBannerLabel||defaultGetBannerLabel,getBannerOnClick:a.getBannerOnClick||defaultGetBannerOnClick,getBannerImage:a.getBannerImage||defaultGetBannerImage,getBannerDescription:a.getBannerDescription||defaultGetBannerDescription});export const getItemsDepth=(a,b)=>{let c=1;return a.forEach(a=>{const d=b(a);d&&(1==c&&(c+=1),d.forEach(a=>{const d=b(a);2==c&&d&&(c+=1)}))}),c};export const separateItemsByDepth=a=>{const{items:b,getItemKey:c,getItemSubMenu:d,getItemActive:e,depth:f=3}=a,g=[],h=[],i=[];return b.forEach(a=>{const b=d(a),j=c(a);g.push({item:a}),b&&b.forEach(b=>{const g=d(b),k=c(b);(e(a)||2===f)&&(h.push({groupId:j,item:b}),g&&g.forEach(a=>{i.push({groupId:k,item:a})}))})}),[g,h,i]};
2
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","names":["defaultGetItemKey","item","key","defaultGetItemLabel","label","defaultGetItemIconLeft","iconLeft","defaultGetItemOnClick","onClick","defaultGetItemAs","as","defaultGetItemAttributes","attributes","defaultGetItemSubMenu","subMenu","defaultGetBannerLabel","defaultGetBannerOnClick","defaultGetBannerDescription","description","defaultGetBannerImage","image","defaultGetBannerAs","defaultGetBannerAttributees","withDefaultGetters","props","getItemKey","getItemAs","getItemAttributes","getItemLabel","getItemOnClick","getItemIconLeft","getItemSubMenu","getBannerAs","getBannerAttributes","getBannerLabel","getBannerOnClick","getBannerImage","getBannerDescription","getItemsDepth","items","depth","forEach","secondArr","el","thirdArr","separateItemsByDepth","params","getItemActive","firstLevel","secondLevel","thirdLevel","firstLevelItemKey","push","secondLevelItemKey","groupId","subItem"],"sources":["../../../../../src/components/MegaMenu/helper.ts"],"sourcesContent":["import {\n BannerBarDefaultItem,\n BannerBarPropGetItemAs,\n BannerBarPropGetItemAttributes,\n BannerBarPropGetItemDescription,\n BannerBarPropGetItemImage,\n BannerBarPropGetItemLabel,\n BannerBarPropGetItemOnClick,\n} from '../BannerBar/types';\nimport {\n MegaMenuDefaultItem,\n MegaMenuPropGetItemAs,\n MegaMenuPropGetItemAttributes,\n MegaMenuPropGetItemIconLeft,\n MegaMenuPropGetItemKey,\n MegaMenuPropGetItemLabel,\n MegaMenuPropGetItemOnClick,\n MegaMenuPropGetItemSubMenu,\n MegaMenuProps,\n} from './types';\n\n// Menu\nconst defaultGetItemKey: MegaMenuPropGetItemKey<MegaMenuDefaultItem> = (item) =>\n item.key;\nconst defaultGetItemLabel: MegaMenuPropGetItemLabel<MegaMenuDefaultItem> = (\n item,\n) => item.label;\nconst defaultGetItemIconLeft: MegaMenuPropGetItemIconLeft<\n MegaMenuDefaultItem\n> = (item) => item.iconLeft;\nconst defaultGetItemOnClick: MegaMenuPropGetItemOnClick<MegaMenuDefaultItem> = (\n item,\n) => item.onClick;\nconst defaultGetItemAs: MegaMenuPropGetItemAs<MegaMenuDefaultItem> = (item) =>\n item.as;\nconst defaultGetItemAttributes: MegaMenuPropGetItemAttributes<\n MegaMenuDefaultItem\n> = (item) => item.attributes;\nconst defaultGetItemSubMenu: MegaMenuPropGetItemSubMenu<MegaMenuDefaultItem> = (\n item,\n) => item.subMenu;\n\n// BannerBar\nconst defaultGetBannerLabel: BannerBarPropGetItemLabel<BannerBarDefaultItem> = (\n item,\n) => item.label;\nconst defaultGetBannerOnClick: BannerBarPropGetItemOnClick<\n BannerBarDefaultItem\n> = (item) => item.onClick;\nconst defaultGetBannerDescription: BannerBarPropGetItemDescription<\n BannerBarDefaultItem\n> = (item) => item.description;\nconst defaultGetBannerImage: BannerBarPropGetItemImage<BannerBarDefaultItem> = (\n item,\n) => item.image;\nconst defaultGetBannerAs: BannerBarPropGetItemAs<BannerBarDefaultItem> = (\n item,\n) => item.as;\nconst defaultGetBannerAttributees: BannerBarPropGetItemAttributes<\n BannerBarDefaultItem\n> = (item) => item.attributes;\n\nexport const withDefaultGetters = (props: MegaMenuProps) => ({\n ...props,\n // Menu\n getItemKey: props.getItemKey || defaultGetItemKey,\n getItemAs: props.getItemAs || defaultGetItemAs,\n getItemAttributes: props.getItemAttributes || defaultGetItemAttributes,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n getItemIconLeft: props.getItemIconLeft || defaultGetItemIconLeft,\n getItemSubMenu: props.getItemSubMenu || defaultGetItemSubMenu,\n // BannerBar\n getBannerAs: props.getBannerAs || defaultGetBannerAs,\n getBannerAttributes: props.getBannerAttributes || defaultGetBannerAttributees,\n getBannerLabel: props.getBannerLabel || defaultGetBannerLabel,\n getBannerOnClick: props.getBannerOnClick || defaultGetBannerOnClick,\n getBannerImage: props.getBannerImage || defaultGetBannerImage,\n getBannerDescription:\n props.getBannerDescription || defaultGetBannerDescription,\n});\n\ntype Level<ITEM> = Array<{ groupId?: string | number; item: ITEM }>;\n\nexport const getItemsDepth = <ITEM>(\n items: ITEM[],\n getItemSubMenu: MegaMenuPropGetItemSubMenu<ITEM>,\n) => {\n let depth = 1;\n items.forEach((item) => {\n const secondArr = getItemSubMenu(item);\n if (secondArr) {\n if (depth === 1) {\n depth += 1;\n }\n secondArr.forEach((el) => {\n const thirdArr = getItemSubMenu(el);\n if (depth === 2 && thirdArr) {\n depth += 1;\n }\n });\n }\n });\n return depth;\n};\n\nexport const separateItemsByDepth = <ITEM>(params: {\n getItemKey: MegaMenuPropGetItemKey<ITEM>;\n items: ITEM[];\n getItemSubMenu: MegaMenuPropGetItemSubMenu<ITEM>;\n getItemActive: (item: ITEM) => boolean;\n depth?: number;\n}): [Level<ITEM>, Level<ITEM>, Level<ITEM>] => {\n const {\n items,\n getItemKey,\n getItemSubMenu,\n getItemActive,\n depth = 3,\n } = params;\n const firstLevel: Level<ITEM> = [];\n const secondLevel: Level<ITEM> = [];\n const thirdLevel: Level<ITEM> = [];\n items.forEach((item) => {\n const secondArr = getItemSubMenu(item);\n const firstLevelItemKey = getItemKey(item);\n firstLevel.push({ item });\n if (secondArr) {\n secondArr.forEach((el) => {\n const thirdArr = getItemSubMenu(el);\n const secondLevelItemKey = getItemKey(el);\n if (getItemActive(item) || depth === 2) {\n secondLevel.push({ groupId: firstLevelItemKey, item: el });\n if (thirdArr) {\n thirdArr.forEach((subItem) => {\n thirdLevel.push({ groupId: secondLevelItemKey, item: subItem });\n });\n }\n }\n });\n }\n });\n return [firstLevel, secondLevel, thirdLevel];\n};\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './MegaMenu';
2
+ export * from './types';
3
+ export * from './MegaMenuBox';
@@ -0,0 +1,2 @@
1
+ export*from"./MegaMenu";export*from"./types";export*from"./MegaMenuBox";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/MegaMenu/index.ts"],"sourcesContent":["export * from './MegaMenu';\nexport * from './types';\nexport * from './MegaMenuBox';\n"],"mappings":"AAAA,wBACA,qBACA"}
@@ -0,0 +1,65 @@
1
+ import { IconComponent } from '@consta/uikit/Icon';
2
+ import React from 'react';
3
+ import { BannerBarDefaultItem, BannerBarPropGetItemAs, BannerBarPropGetItemAttributes, BannerBarPropGetItemDescription, BannerBarPropGetItemImage, BannerBarPropGetItemLabel, BannerBarPropGetItemOnClick } from "../BannerBar/types";
4
+ import { PropsWithHTMLAttributesAndRef } from "../../utils/types/PropsWithHTMLAttributes";
5
+ export type MegaMenuPropOnItemClick<ITEM> = (params: {
6
+ e: React.MouseEvent;
7
+ item: ITEM;
8
+ }) => void;
9
+ export type MegaMenuDefaultItem = {
10
+ key: string | number;
11
+ label: string;
12
+ iconLeft?: IconComponent;
13
+ as?: keyof JSX.IntrinsicElements;
14
+ attributes?: JSX.IntrinsicElements[keyof JSX.IntrinsicElements];
15
+ subMenu?: MegaMenuDefaultItem[];
16
+ onClick?: React.MouseEventHandler;
17
+ };
18
+ export type MegaMenuPropGetItemKey<ITEM> = (item: ITEM) => string | number;
19
+ export type MegaMenuPropGetItemLabel<ITEM> = (item: ITEM) => string;
20
+ export type MegaMenuPropGetItemIconLeft<ITEM> = (item: ITEM) => IconComponent | undefined;
21
+ export type MegaMenuPropGetItemOnClick<ITEM> = (item: ITEM) => React.MouseEventHandler | undefined;
22
+ export type MegaMenuPropGetItemAs<ITEM> = (item: ITEM) => keyof JSX.IntrinsicElements | undefined;
23
+ export type MegaMenuPropGetItemAttributes<ITEM> = (item: ITEM) => JSX.IntrinsicElements[keyof JSX.IntrinsicElements] | undefined;
24
+ export type MegaMenuPropGetItemSubMenu<ITEM> = (item: ITEM) => ITEM[] | undefined;
25
+ export type ItemMappers<ITEM = MegaMenuDefaultItem> = {
26
+ getItemKey?: MegaMenuPropGetItemKey<ITEM>;
27
+ getItemLabel?: MegaMenuPropGetItemLabel<ITEM>;
28
+ getItemIconLeft?: MegaMenuPropGetItemIconLeft<ITEM>;
29
+ getItemOnClick?: MegaMenuPropGetItemOnClick<ITEM>;
30
+ getItemAs?: MegaMenuPropGetItemAs<ITEM>;
31
+ getItemAttributes?: MegaMenuPropGetItemAttributes<ITEM>;
32
+ getItemSubMenu?: MegaMenuPropGetItemSubMenu<ITEM>;
33
+ };
34
+ export type BannerMappers<ITEM = BannerBarDefaultItem> = {
35
+ getBannerLabel?: BannerBarPropGetItemLabel<ITEM>;
36
+ getBannerOnClick?: BannerBarPropGetItemOnClick<ITEM>;
37
+ getBannerDescription?: BannerBarPropGetItemDescription<ITEM>;
38
+ getBannerImage?: BannerBarPropGetItemImage<ITEM>;
39
+ getBannerAs?: BannerBarPropGetItemAs<ITEM>;
40
+ getBannerAttributes?: BannerBarPropGetItemAttributes<ITEM>;
41
+ };
42
+ export type MegaMenuProps<ITEM = MegaMenuDefaultItem, BANNER = BannerBarDefaultItem> = PropsWithHTMLAttributesAndRef<{
43
+ banners?: BANNER[];
44
+ items: ITEM[];
45
+ menuTitle?: string;
46
+ menuShowButtonText?: string;
47
+ menuHideButtonText?: string;
48
+ menuMaxElements?: number;
49
+ bannerPosition?: 'right' | 'bottom';
50
+ onItemClick?: MegaMenuPropOnItemClick<ITEM>;
51
+ onBannerClick?: MegaMenuPropOnItemClick<BANNER>;
52
+ } & BannerMappers<BANNER> & ItemMappers<ITEM> & (ITEM extends {
53
+ key: MegaMenuDefaultItem['key'];
54
+ } ? {} : {
55
+ getItemKey: MegaMenuPropGetItemKey<ITEM>;
56
+ }) & (ITEM extends {
57
+ label: MegaMenuDefaultItem['label'];
58
+ } ? {} : {
59
+ getItemLabel: MegaMenuPropGetItemLabel<ITEM>;
60
+ }) & (BANNER extends {
61
+ label: BannerBarDefaultItem['label'] | unknown;
62
+ } ? {} : {
63
+ getBannerLabel: BannerBarPropGetItemLabel<ITEM>;
64
+ }), HTMLDivElement>;
65
+ export type MegaMenuComponent = <ITEM = MegaMenuDefaultItem, BANNER = BannerBarDefaultItem>(props: MegaMenuProps<ITEM, BANNER>, ref: React.Ref<HTMLDivElement>) => React.ReactElement | null;
@@ -0,0 +1,2 @@
1
+ export{};
2
+ //# sourceMappingURL=types.js.map