@consta/header 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Badges/Badges.css +1 -0
- package/Badges/Badges.d.ts +5 -0
- package/Badges/Badges.js +2 -0
- package/Badges/Badges.js.map +1 -0
- package/Badges/helpers.d.ts +20 -0
- package/Badges/helpers.js +2 -0
- package/Badges/helpers.js.map +1 -0
- package/Badges/index.d.ts +1 -0
- package/Badges/index.js +2 -0
- package/Badges/index.js.map +1 -0
- package/Badges/types.d.ts +27 -0
- package/Badges/types.js +2 -0
- package/Badges/types.js.map +1 -0
- package/Header/Header.css +1 -0
- package/Header/Header.d.ts +5 -0
- package/Header/Header.js +2 -0
- package/Header/Header.js.map +1 -0
- package/Header/HeaderLogin/HeaderLogin.d.ts +15 -0
- package/Header/HeaderLogin/HeaderLogin.js +2 -0
- package/Header/HeaderLogin/HeaderLogin.js.map +1 -0
- package/Header/HeaderLogin/index.d.ts +1 -0
- package/Header/HeaderLogin/index.js +2 -0
- package/Header/HeaderLogin/index.js.map +1 -0
- package/Header/HeaderLogo/HeaderLogo.d.ts +9 -0
- package/Header/HeaderLogo/HeaderLogo.js +2 -0
- package/Header/HeaderLogo/HeaderLogo.js.map +1 -0
- package/Header/HeaderLogo/index.d.ts +1 -0
- package/Header/HeaderLogo/index.js +2 -0
- package/Header/HeaderLogo/index.js.map +1 -0
- package/Header/index.d.ts +1 -0
- package/Header/index.js +2 -0
- package/Header/index.js.map +1 -0
- package/Header/types.d.ts +80 -0
- package/Header/types.js +2 -0
- package/Header/types.js.map +1 -0
- package/Layout/Layout.css +1 -0
- package/Layout/Layout.d.ts +8 -0
- package/Layout/Layout.js +2 -0
- package/Layout/Layout.js.map +1 -0
- package/Layout/LayoutRow/LayoutRow.css +1 -0
- package/Layout/LayoutRow/LayoutRow.d.ts +11 -0
- package/Layout/LayoutRow/LayoutRow.js +2 -0
- package/Layout/LayoutRow/LayoutRow.js.map +1 -0
- package/Layout/helpers.d.ts +2 -0
- package/Layout/helpers.js +2 -0
- package/Layout/helpers.js.map +1 -0
- package/Layout/index.d.ts +1 -0
- package/Layout/index.js +2 -0
- package/Layout/index.js.map +1 -0
- package/Layout/types.d.ts +17 -0
- package/Layout/types.js +2 -0
- package/Layout/types.js.map +1 -0
- package/Menu/Menu.css +1 -0
- package/Menu/Menu.d.ts +5 -0
- package/Menu/Menu.js +2 -0
- package/Menu/Menu.js.map +1 -0
- package/Menu/helpers.d.ts +31 -0
- package/Menu/helpers.js +2 -0
- package/Menu/helpers.js.map +1 -0
- package/Menu/index.d.ts +1 -0
- package/Menu/index.js +2 -0
- package/Menu/index.js.map +1 -0
- package/Menu/types.d.ts +35 -0
- package/Menu/types.js +2 -0
- package/Menu/types.js.map +1 -0
- package/MobileMenu/MobileMenu.css +1 -0
- package/MobileMenu/MobileMenu.d.ts +5 -0
- package/MobileMenu/MobileMenu.js +2 -0
- package/MobileMenu/MobileMenu.js.map +1 -0
- package/MobileMenu/index.d.ts +1 -0
- package/MobileMenu/index.js +2 -0
- package/MobileMenu/index.js.map +1 -0
- package/MobileMenu/types.d.ts +21 -0
- package/MobileMenu/types.js +2 -0
- package/MobileMenu/types.js.map +1 -0
- package/Notifications/Notifications.css +1 -0
- package/Notifications/Notifications.d.ts +4 -0
- package/Notifications/Notifications.js +2 -0
- package/Notifications/Notifications.js.map +1 -0
- package/Notifications/index.d.ts +1 -0
- package/Notifications/index.js +2 -0
- package/Notifications/index.js.map +1 -0
- package/Notifications/types.d.ts +8 -0
- package/Notifications/types.js +2 -0
- package/Notifications/types.js.map +1 -0
- package/NotificationsList/NotificationsList.css +1 -0
- package/NotificationsList/NotificationsList.d.ts +5 -0
- package/NotificationsList/NotificationsList.js +2 -0
- package/NotificationsList/NotificationsList.js.map +1 -0
- package/NotificationsList/helpers.d.ts +4150 -0
- package/NotificationsList/helpers.js +2 -0
- package/NotificationsList/helpers.js.map +1 -0
- package/NotificationsList/index.d.ts +1 -0
- package/NotificationsList/index.js +2 -0
- package/NotificationsList/index.js.map +1 -0
- package/NotificationsList/types.d.ts +88 -0
- package/NotificationsList/types.js +2 -0
- package/NotificationsList/types.js.map +1 -0
- package/README.md +80 -0
- package/TileMenu/TileMenu.css +1 -0
- package/TileMenu/TileMenu.d.ts +5 -0
- package/TileMenu/TileMenu.js +2 -0
- package/TileMenu/TileMenu.js.map +1 -0
- package/TileMenu/TileMenuItem/TileMenuItem.css +1 -0
- package/TileMenu/TileMenuItem/TileMenuItem.d.ts +12 -0
- package/TileMenu/TileMenuItem/TileMenuItem.js +2 -0
- package/TileMenu/TileMenuItem/TileMenuItem.js.map +1 -0
- package/TileMenu/TileMenuList/TileMenuList.css +1 -0
- package/TileMenu/TileMenuList/TileMenuList.d.ts +4 -0
- package/TileMenu/TileMenuList/TileMenuList.js +2 -0
- package/TileMenu/TileMenuList/TileMenuList.js.map +1 -0
- package/TileMenu/TileMenuList/types.d.ts +32 -0
- package/TileMenu/TileMenuList/types.js +2 -0
- package/TileMenu/TileMenuList/types.js.map +1 -0
- package/TileMenu/helpers.d.ts +274 -0
- package/TileMenu/helpers.js +2 -0
- package/TileMenu/helpers.js.map +1 -0
- package/TileMenu/index.d.ts +1 -0
- package/TileMenu/index.js +2 -0
- package/TileMenu/index.js.map +1 -0
- package/TileMenu/types.d.ts +48 -0
- package/TileMenu/types.js +2 -0
- package/TileMenu/types.js.map +1 -0
- package/VerticalMenu/VerticalMenu.css +1 -0
- package/VerticalMenu/VerticalMenu.d.ts +5 -0
- package/VerticalMenu/VerticalMenu.js +2 -0
- package/VerticalMenu/VerticalMenu.js.map +1 -0
- package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.css +1 -0
- package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.d.ts +4 -0
- package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js +2 -0
- package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js.map +1 -0
- package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.css +1 -0
- package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.d.ts +5 -0
- package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js +2 -0
- package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js.map +1 -0
- package/VerticalMenu/helpers.d.ts +31 -0
- package/VerticalMenu/helpers.js +2 -0
- package/VerticalMenu/helpers.js.map +1 -0
- package/VerticalMenu/index.d.ts +1 -0
- package/VerticalMenu/index.js +2 -0
- package/VerticalMenu/index.js.map +1 -0
- package/VerticalMenu/types.d.ts +63 -0
- package/VerticalMenu/types.js +2 -0
- package/VerticalMenu/types.js.map +1 -0
- package/__private__/AnimatedContextMenu/AnimatedContextMenu.css +1 -0
- package/__private__/AnimatedContextMenu/AnimatedContextMenu.d.ts +8 -0
- package/__private__/AnimatedContextMenu/AnimatedContextMenu.js +2 -0
- package/__private__/AnimatedContextMenu/AnimatedContextMenu.js.map +1 -0
- package/__private__/components/NotificationCard/NotificationCard.css +1 -0
- package/__private__/components/NotificationCard/NotificationCard.d.ts +19 -0
- package/__private__/components/NotificationCard/NotificationCard.js +2 -0
- package/__private__/components/NotificationCard/NotificationCard.js.map +1 -0
- package/__private__/components/NotificationCard/helpers.d.ts +1 -0
- package/__private__/components/NotificationCard/helpers.js +2 -0
- package/__private__/components/NotificationCard/helpers.js.map +1 -0
- package/__private__/components/NotificationCard/index.d.ts +1 -0
- package/__private__/components/NotificationCard/index.js +2 -0
- package/__private__/components/NotificationCard/index.js.map +1 -0
- package/__private__/components/NotificationCard/types.d.ts +28 -0
- package/__private__/components/NotificationCard/types.js +2 -0
- package/__private__/components/NotificationCard/types.js.map +1 -0
- package/__private__/components/NotificationsActions/NotificationsActions.d.ts +2 -0
- package/__private__/components/NotificationsActions/NotificationsActions.js +2 -0
- package/__private__/components/NotificationsActions/NotificationsActions.js.map +1 -0
- package/__private__/components/NotificationsActions/helpers.d.ts +23 -0
- package/__private__/components/NotificationsActions/helpers.js +2 -0
- package/__private__/components/NotificationsActions/helpers.js.map +1 -0
- package/__private__/components/NotificationsActions/index.d.ts +1 -0
- package/__private__/components/NotificationsActions/index.js +2 -0
- package/__private__/components/NotificationsActions/index.js.map +1 -0
- package/__private__/components/NotificationsActions/types.d.ts +32 -0
- package/__private__/components/NotificationsActions/types.js +2 -0
- package/__private__/components/NotificationsActions/types.js.map +1 -0
- package/__private__/components/Sidebar/Sidebar.css +1 -0
- package/__private__/components/Sidebar/Sidebar.d.ts +9 -0
- package/__private__/components/Sidebar/Sidebar.js +2 -0
- package/__private__/components/Sidebar/Sidebar.js.map +1 -0
- package/__private__/components/Sidebar/index.d.ts +1 -0
- package/__private__/components/Sidebar/index.js +2 -0
- package/__private__/components/Sidebar/index.js.map +1 -0
- package/__private__/hooks/useHideElementsLine.d.ts +8 -0
- package/__private__/hooks/useHideElementsLine.js +2 -0
- package/__private__/hooks/useHideElementsLine.js.map +1 -0
- package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.css +1 -0
- package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.d.ts +4 -0
- package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js +2 -0
- package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js.map +1 -0
- package/__private__/mixs/MixPopoverArrow/MixPopoverArrow.css +1 -0
- package/__private__/mixs/MixPopoverArrow/MixPopoverArrow.d.ts +8 -0
- package/__private__/mixs/MixPopoverArrow/MixPopoverArrow.js +2 -0
- package/__private__/mixs/MixPopoverArrow/MixPopoverArrow.js.map +1 -0
- package/__private__/utils/bem.d.ts +1 -0
- package/__private__/utils/bem.js +2 -0
- package/__private__/utils/bem.js.map +1 -0
- package/__private__/utils/types/PropsWithHTMLAttributes.d.ts +3 -0
- package/__private__/utils/types/PropsWithHTMLAttributes.js +2 -0
- package/__private__/utils/types/PropsWithHTMLAttributes.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.che--Badges-Badge{margin-right:var(--space-xs)}.che--Badges-Badge_hidden{position:absolute;left:-300vw;visibility:hidden}.che--Badges-Badge_zero{display:none}.che--Badges-Badge:last-child{margin-right:0}
|
package/Badges/Badges.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef}from"react";import{Badge}from"@consta/uikit/Badge";import{useForkRef}from"@consta/uikit/useForkRef";import{useHideElementsLine}from"../__private__/hooks/useHideElementsLine";import{cn}from"../__private__/utils/bem";import{withDefaultGetters}from"./helpers";import"./Badges.css";export const cnBadges=cn("Badges");const BadgesRender=(a,b)=>{const c=withDefaultGetters(a),{className:d,items:k=[],view:e,form:f,size:g,getItemIcon:h,getItemLabel:i,getItemStatus:j}=c,l=_objectWithoutProperties(c,["className","items","view","form","size","getItemIcon","getItemLabel","getItemStatus"]),{visibleItems:m,itemsRefs:n,wrapperRef:o,hiddenItems:p,moreRef:q}=useHideElementsLine(k);return React.createElement("div",Object.assign({},l,{ref:useForkRef([b,o]),className:cnBadges(null,[d])}),k.map((a,b)=>React.createElement(Badge,{className:cnBadges("Badge",{hidden:!m[b]}),key:cnBadges("Badge",{index:b}),label:i(a),status:j(a)||"normal",icon:h(a),view:e,form:f,size:g,ref:n[b]})),React.createElement(Badge,{className:cnBadges("Badge",{hidden:0>=p.length,zero:0>=p.length}),key:"more",label:`+${p.length}`,status:"system",form:f,size:g,view:e,ref:q}))};export const Badges=forwardRef(BadgesRender);export*from"./types";
|
|
2
|
+
//# sourceMappingURL=Badges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Badges/Badges.tsx"],"names":["React","forwardRef","Badge","useForkRef","useHideElementsLine","cn","withDefaultGetters","cnBadges","BadgesRender","props","ref","className","items","view","form","size","getItemIcon","getItemLabel","getItemStatus","otherProps","visibleItems","itemsRefs","wrapperRef","hiddenItems","moreRef","map","item","index","hidden","length","zero","Badges"],"mappings":"qFAAA,MAAOA,CAAAA,KAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,KAAT,KAAsB,qBAAtB,CACA,OAASC,UAAT,KAA2B,0BAA3B,CACA,OAASC,mBAAT,gDACA,OAASC,EAAT,gCAGA,OAASC,kBAAT,iBAEA,qBAEA,MAAO,MAAMC,CAAAA,QAAQ,CAAGF,EAAE,CAAC,QAAD,CAAnB,CAEP,KAAMG,CAAAA,YAAY,CAAG,CAACC,CAAD,CAAqBC,CAArB,GAAwD,SAWvEJ,kBAAkB,CAACG,CAAD,CAXqD,CACrE,CACJE,SAAS,CAATA,CADI,CAEJC,KAAK,CAALA,CAAK,CAAG,EAFJ,CAGJC,IAAI,CAAJA,CAHI,CAIJC,IAAI,CAAJA,CAJI,CAKJC,IAAI,CAAJA,CALI,CAMJC,WAAW,CAAXA,CANI,CAOJC,YAAY,CAAZA,CAPI,CAQJC,aAAa,CAAbA,CARI,CADqE,GAUtEC,CAVsE,qHAarE,CAAEC,YAAY,CAAZA,CAAF,CAAgBC,SAAS,CAATA,CAAhB,CAA2BC,UAAU,CAAVA,CAA3B,CAAuCC,WAAW,CAAXA,CAAvC,CAAoDC,OAAO,CAAPA,CAApD,EAAgEpB,mBAAmB,CAIvFQ,CAJuF,CAbd,CAmB3E,MACE,4CACMO,CADN,EAEE,GAAG,CAAEhB,UAAU,CAAC,CAACO,CAAD,CAAMY,CAAN,CAAD,CAFjB,CAGE,SAAS,CAAEf,QAAQ,CAAC,IAAD,CAAO,CAACI,CAAD,CAAP,CAHrB,GAKGC,CAAK,CAACa,GAAN,CAAU,CAACC,CAAD,CAAOC,CAAP,GAEP,oBAAC,KAAD,EACE,SAAS,CAAEpB,QAAQ,CAAC,OAAD,CAAU,CAAEqB,MAAM,CAAE,CAACR,CAAY,CAACO,CAAD,CAAvB,CAAV,CADrB,CAEE,GAAG,CAAEpB,QAAQ,CAAC,OAAD,CAAU,CAAEoB,KAAK,CAALA,CAAF,CAAV,CAFf,CAGE,KAAK,CAAEV,CAAY,CAACS,CAAD,CAHrB,CAIE,MAAM,CAAER,CAAa,CAACQ,CAAD,CAAb,EAAuB,QAJjC,CAKE,IAAI,CAAEV,CAAW,CAACU,CAAD,CALnB,CAME,IAAI,CAAEb,CANR,CAOE,IAAI,CAAEC,CAPR,CAQE,IAAI,CAAEC,CARR,CASE,GAAG,CAAEM,CAAS,CAACM,CAAD,CAThB,EAFH,CALH,CAoBE,oBAAC,KAAD,EACE,SAAS,CAAEpB,QAAQ,CAAC,OAAD,CAAU,CAC3BqB,MAAM,CAAwB,CAAtB,EAAAL,CAAW,CAACM,MADO,CAE3BC,IAAI,CAAwB,CAAtB,EAAAP,CAAW,CAACM,MAFS,CAAV,CADrB,CAKE,GAAG,CAAC,MALN,CAME,KAAK,CAAG,IAAGN,CAAW,CAACM,MAAO,EANhC,CAOE,MAAM,CAAC,QAPT,CAQE,IAAI,CAAEf,CARR,CASE,IAAI,CAAEC,CATR,CAUE,IAAI,CAAEF,CAVR,CAWE,GAAG,CAAEW,CAXP,EApBF,CAmCH,CAvDD,CAyDA,MAAO,MAAMO,CAAAA,MAAM,CAAG9B,UAAU,CAACO,YAAD,CAAzB,CAEP","sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { Badge } from '@consta/uikit/Badge'\nimport { useForkRef } from '@consta/uikit/useForkRef'\nimport { useHideElementsLine } from '@/__private__/hooks/useHideElementsLine'\nimport { cn } from '@/__private__/utils/bem'\n\nimport { BadgesProps, BadgesComponent } from './types'\nimport { withDefaultGetters } from './helpers'\n\nimport './Badges.css'\n\nexport const cnBadges = cn('Badges')\n\nconst BadgesRender = (props: BadgesProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n className,\n items = [],\n view,\n form,\n size,\n getItemIcon,\n getItemLabel,\n getItemStatus,\n ...otherProps\n } = withDefaultGetters(props)\n\n const { visibleItems, itemsRefs, wrapperRef, hiddenItems, moreRef } = useHideElementsLine<\n HTMLDivElement,\n HTMLDivElement,\n typeof items[number]\n >(items)\n\n return (\n <div\n {...otherProps}\n ref={useForkRef([ref, wrapperRef])}\n className={cnBadges(null, [className])}\n >\n {items.map((item, index) => {\n return (\n <Badge\n className={cnBadges('Badge', { hidden: !visibleItems[index] })}\n key={cnBadges('Badge', { index })}\n label={getItemLabel(item)}\n status={getItemStatus(item) || 'normal'}\n icon={getItemIcon(item)}\n view={view}\n form={form}\n size={size}\n ref={itemsRefs[index]}\n />\n )\n })}\n <Badge\n className={cnBadges('Badge', {\n hidden: hiddenItems.length <= 0,\n zero: hiddenItems.length <= 0,\n })}\n key=\"more\"\n label={`+${hiddenItems.length}`}\n status=\"system\"\n form={form}\n size={size}\n view={view}\n ref={moreRef}\n />\n </div>\n )\n}\n\nexport const Badges = forwardRef(BadgesRender) as BadgesComponent\n\nexport * from './types'\n"],"file":"Badges.js"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { BadgesPropGetItemIcon, BadgesPropGetItemLabel, BadgesPropGetItemStatus, DefaultItem, BadgesProps } from "./types";
|
|
3
|
+
export declare const withDefaultGetters: <ITEM>(props: BadgesProps<ITEM>) => {
|
|
4
|
+
items?: ITEM[] | undefined;
|
|
5
|
+
form?: "default" | "round" | undefined;
|
|
6
|
+
size?: "s" | "m" | "l" | undefined;
|
|
7
|
+
view?: "filled" | "stroked" | undefined;
|
|
8
|
+
children?: undefined;
|
|
9
|
+
getItemLabel?: BadgesPropGetItemLabel<ITEM> | undefined;
|
|
10
|
+
getItemStatus?: BadgesPropGetItemStatus<ITEM> | undefined;
|
|
11
|
+
getItemIcon?: BadgesPropGetItemIcon<ITEM> | undefined;
|
|
12
|
+
} & Pick<import("react").HTMLAttributes<HTMLDivElement>, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture"> & import("react").RefAttributes<HTMLDivElement> & (ITEM extends {
|
|
13
|
+
label: string;
|
|
14
|
+
} ? {} : {
|
|
15
|
+
getItemLabel: BadgesPropGetItemLabel<ITEM>;
|
|
16
|
+
}) & {
|
|
17
|
+
getItemLabel: BadgesPropGetItemLabel<DefaultItem> | BadgesPropGetItemLabel<ITEM>;
|
|
18
|
+
getItemIcon: BadgesPropGetItemIcon<DefaultItem> | BadgesPropGetItemIcon<ITEM>;
|
|
19
|
+
getItemStatus: BadgesPropGetItemStatus<DefaultItem> | BadgesPropGetItemStatus<ITEM>;
|
|
20
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _objectSpread from"@babel/runtime/helpers/objectSpread";const defaultGetItemIcon=a=>a.icon,defaultGetItemLabel=a=>a.label,defaultGetItemStatus=a=>a.status;export const withDefaultGetters=a=>_objectSpread({},a,{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemIcon:a.getItemIcon||defaultGetItemIcon,getItemStatus:a.getItemStatus||defaultGetItemStatus});
|
|
2
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Badges/helpers.ts"],"names":["defaultGetItemIcon","item","icon","defaultGetItemLabel","label","defaultGetItemStatus","status","withDefaultGetters","props","getItemLabel","getItemIcon","getItemStatus"],"mappings":"oEAQMA,CAAAA,kBAAsD,CAAGC,CAAI,EAAIA,CAAI,CAACC,I,CACtEC,mBAAwD,CAAGF,CAAI,EAAIA,CAAI,CAACG,K,CACxEC,oBAA0D,CAAGJ,CAAI,EAAIA,CAAI,CAACK,M,CAEhF,MAAO,MAAMC,CAAAA,kBAAkB,CAAUC,CAAP,mBAE3BA,CAF2B,EAG9BC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBN,mBAHN,CAI9BO,WAAW,CAAEF,CAAK,CAACE,WAAN,EAAqBV,kBAJJ,CAK9BW,aAAa,CAAEH,CAAK,CAACG,aAAN,EAAuBN,oBALR,EAA3B","sourcesContent":["import {\n BadgesPropGetItemIcon,\n BadgesPropGetItemLabel,\n BadgesPropGetItemStatus,\n DefaultItem,\n BadgesProps,\n} from './types'\n\nconst defaultGetItemIcon: BadgesPropGetItemIcon<DefaultItem> = item => item.icon\nconst defaultGetItemLabel: BadgesPropGetItemLabel<DefaultItem> = item => item.label\nconst defaultGetItemStatus: BadgesPropGetItemStatus<DefaultItem> = item => item.status\n\nexport const withDefaultGetters = <ITEM>(props: BadgesProps<ITEM>) => {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemIcon: props.getItemIcon || defaultGetItemIcon,\n getItemStatus: props.getItemStatus || defaultGetItemStatus,\n }\n}\n"],"file":"helpers.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Badges";
|
package/Badges/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Badges/index.ts"],"names":[],"mappings":"AAAA","sourcesContent":["export * from './Badges'\n"],"file":"index.js"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { PropsWithHTMLAttributesAndRef } from "../__private__/utils/types/PropsWithHTMLAttributes";
|
|
3
|
+
import { BadgePropStatus, BadgePropForm, BadgePropSize, BadgePropView } from '@consta/uikit/Badge';
|
|
4
|
+
import { IconComponent } from '@consta/uikit/Icon';
|
|
5
|
+
export declare type DefaultItem = {
|
|
6
|
+
label: string;
|
|
7
|
+
status?: BadgePropStatus;
|
|
8
|
+
icon?: IconComponent;
|
|
9
|
+
};
|
|
10
|
+
export declare type BadgesPropGetItemLabel<ITEM> = (item: ITEM) => string;
|
|
11
|
+
export declare type BadgesPropGetItemStatus<ITEM> = (item: ITEM) => BadgePropStatus | undefined;
|
|
12
|
+
export declare type BadgesPropGetItemIcon<ITEM> = (item: ITEM) => IconComponent | undefined;
|
|
13
|
+
export declare type BadgesProps<ITEM = DefaultItem> = PropsWithHTMLAttributesAndRef<{
|
|
14
|
+
items?: ITEM[];
|
|
15
|
+
form?: BadgePropForm;
|
|
16
|
+
size?: BadgePropSize;
|
|
17
|
+
view?: BadgePropView;
|
|
18
|
+
children?: never;
|
|
19
|
+
getItemLabel?: BadgesPropGetItemLabel<ITEM>;
|
|
20
|
+
getItemStatus?: BadgesPropGetItemStatus<ITEM>;
|
|
21
|
+
getItemIcon?: BadgesPropGetItemIcon<ITEM>;
|
|
22
|
+
}, HTMLDivElement> & (ITEM extends {
|
|
23
|
+
label: DefaultItem['label'];
|
|
24
|
+
} ? {} : {
|
|
25
|
+
getItemLabel: BadgesPropGetItemLabel<ITEM>;
|
|
26
|
+
});
|
|
27
|
+
export declare type BadgesComponent = <ITEM = DefaultItem>(props: BadgesProps<ITEM>) => React.ReactElement | null;
|
package/Badges/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.che--Header-Logo{flex:none}.che--Header-Menu{flex:1}.che--Header-RowCenterLeft{display:flex;align-items:center;grid-gap:var(--space-2xl);gap:var(--space-2xl)}.che--Header-RowCenterLeft_breakpoint_m{width:100%}.che--Header-RowCenterRight{display:flex;align-items:center;flex-direction:row-reverse;width:100%;grid-gap:var(--space-l);gap:var(--space-l)}.che--Header-NotificationsList_breakpoint_m,.che--Header-TileMenuList_breakpoint_m{max-height:60vh}.che--Header-RowCenterLeftMobile{display:flex;align-items:center;grid-gap:var(--space-2xl);gap:var(--space-2xl)}.che--Header-MobileMenuHeader{display:flex;flex-wrap:wrap;justify-content:space-between;margin:var(--space-s) var(--space-l);grid-gap:var(--space-s);gap:var(--space-s)}
|
package/Header/Header.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef}from"react";import{cn}from"../__private__/utils/bem";import{Layout}from"../Layout";import{Menu}from"../Menu";import{HeaderLogo}from"./HeaderLogo";import{HeaderLogin}from"./HeaderLogin";import{Notifications}from"../Notifications";import{TileMenu}from"../TileMenu";import{useBreakpoints}from"@consta/uikit/useBreakpoints";import{MobileMenu}from"../MobileMenu";import"./Header.css";export const cnHeader=cn("Header");const HeaderRender=(a,b)=>{var c;const{className:d,logo:e,onLogoClick:f,logoHref:g,menu:h,getMenuItemActive:i,getMenuItemHref:j,getMenuItemLabel:k,getMenuItemOnClick:l,getMenuItemSubMenu:m,getMenuItemTarget:n,onMenuItemClick:o,userName:p,userAvatar:q,userInfo:r,userLogined:s,onLoginButtonClick:t,loginButtonLabel:u,notifications:v,notificationsDateFormat:w,notificationsTitle:x,notificationsActions:y,notificationsGroupByDay:z,notificationsGroupLabelFormat:A,notificationsGroups:B,getNotificationsItemLabel:C,getNotificationsItemDescription:D,getNotificationsItemImage:E,getNotificationsItemRead:F,getNotificationsItemDate:G,getNotificationsItemBadges:H,getNotificationsItemActions:I,getNotificationsItemGroup:J,getNotificationsItemView:K,getNotificationsActionLabel:L,getNotificationsActionIcon:M,getNotificationsActionOnClick:N,getNotificationsGroupLabel:O,getNotificationsGroupId:P,tileMenu:Q,tileMenuView:R,onTileMenuItemClick:S,getTileMenuItemDescription:T,getTileMenuItemHref:U,getTileMenuItemImage:V,getTileMenuItemOnClick:W,getTileMenuItemTitle:X,tileMenuTitle:Y}=a,Z=_objectWithoutProperties(a,["className","logo","onLogoClick","logoHref","menu","getMenuItemActive","getMenuItemHref","getMenuItemLabel","getMenuItemOnClick","getMenuItemSubMenu","getMenuItemTarget","onMenuItemClick","userName","userAvatar","userInfo","userLogined","onLoginButtonClick","loginButtonLabel","notifications","notificationsDateFormat","notificationsTitle","notificationsActions","notificationsGroupByDay","notificationsGroupLabelFormat","notificationsGroups","getNotificationsItemLabel","getNotificationsItemDescription","getNotificationsItemImage","getNotificationsItemRead","getNotificationsItemDate","getNotificationsItemBadges","getNotificationsItemActions","getNotificationsItemGroup","getNotificationsItemView","getNotificationsActionLabel","getNotificationsActionIcon","getNotificationsActionOnClick","getNotificationsGroupLabel","getNotificationsGroupId","tileMenu","tileMenuView","onTileMenuItemClick","getTileMenuItemDescription","getTileMenuItemHref","getTileMenuItemImage","getTileMenuItemOnClick","getTileMenuItemTitle","tileMenuTitle"]),$=useBreakpoints({s:800,m:1200}),_="number"==typeof(null===(c=a.style)||void 0===c?void 0:c.zIndex)?a.style.zIndex:void 0;return $.m?React.createElement(Layout,Object.assign({},Z,{ref:b,className:cnHeader(null,[d]),rowCenter:{left:_jsx("div",{className:cnHeader("RowCenterLeft",{breakpoint:"m"})},void 0,_jsx(HeaderLogo,{className:cnHeader("Logo"),logo:e,href:g}),h&&_jsx(Menu,{className:cnHeader("Menu"),items:h,getItemActive:i,getItemHref:j,getItemLabel:k,getItemOnClick:l,getItemSubMenu:m,getItemTarget:n,onItemClick:o,style:{zIndex:_}})),right:_jsx("div",{className:cnHeader("RowCenterRight")},void 0,_jsx(HeaderLogin,{userName:p,userAvatar:q,userInfo:r,userLogined:s,onLoginButtonClick:t,loginButtonLabel:u}),(null===Q||void 0===Q?void 0:Q.length)&&_jsx(TileMenu,{items:Q,view:R,onItemClick:S,getItemDescription:T,getItemHref:U,getItemImage:V,getItemOnClick:W,getItemTitle:X,listClassName:cnHeader("TileMenuList",{breakpoint:"m"}),title:Y,style:{zIndex:_}}),(null===v||void 0===v?void 0:v.length)&&_jsx(Notifications,{listClassName:cnHeader("NotificationsList",{breakpoint:"m"}),items:v,itemDateFormat:w,title:x,actions:y,groupByDay:z,groupLabelFormat:A,groups:B,getItemLabel:C,getItemDescription:D,getItemImage:E,getItemRead:F,getItemDate:G,getItemBadges:H,getItemActions:I,getItemGroup:J,getItemView:K,getActionLabel:L,getActionIcon:M,getActionOnClick:N,getGroupLabel:O,getGroupId:P,style:{zIndex:_}}))}})):$.s?React.createElement(Layout,Object.assign({},Z,{ref:b,className:cnHeader(null,[d]),rowCenter:{left:_jsx("div",{className:cnHeader("RowCenterLeft")},void 0,h&&_jsx(MobileMenu,{className:cnHeader("Menu"),items:h,getItemActive:i,getItemHref:j,getItemLabel:k,getItemOnClick:l,getItemSubMenu:m,getItemTarget:n,onItemClick:o,style:{zIndex:_}}),_jsx(HeaderLogo,{className:cnHeader("Logo"),logo:e,href:g})),right:_jsx("div",{className:cnHeader("RowCenterRight")},void 0,_jsx(HeaderLogin,{userName:p,userAvatar:q,userInfo:r,userLogined:s,onLoginButtonClick:t,loginButtonLabel:u}),(null===Q||void 0===Q?void 0:Q.length)&&_jsx(TileMenu,{items:Q,view:R,onItemClick:S,getItemDescription:T,getItemHref:U,getItemImage:V,getItemOnClick:W,getItemTitle:X,listClassName:cnHeader("TileMenuList"),title:Y,isMobile:!0,style:{zIndex:_}}),(null===v||void 0===v?void 0:v.length)&&_jsx(Notifications,{listClassName:cnHeader("NotificationsList"),items:v,itemDateFormat:w,title:x,actions:y,groupByDay:z,groupLabelFormat:A,groups:B,getItemLabel:C,getItemDescription:D,getItemImage:E,getItemRead:F,getItemDate:G,getItemBadges:H,getItemActions:I,getItemGroup:J,getItemView:K,getActionLabel:L,getActionIcon:M,getActionOnClick:N,getGroupLabel:O,getGroupId:P,isMobile:!0,style:{zIndex:_}}))}})):React.createElement(Layout,Object.assign({},Z,{ref:b,className:cnHeader(null,[d]),rowCenter:{left:_jsx("div",{className:cnHeader("RowCenterLeft")},void 0,h&&_jsx(MobileMenu,{className:cnHeader("Menu"),items:h,getItemActive:i,getItemHref:j,getItemLabel:k,getItemOnClick:l,getItemSubMenu:m,getItemTarget:n,onItemClick:o,style:{zIndex:_},header:_jsx("div",{className:cnHeader("MobileMenuHeader")},void 0,_jsx("div",{},void 0,_jsx(HeaderLogin,{userName:p,userAvatar:q,userInfo:r,userLogined:s,onLoginButtonClick:t,loginButtonLabel:u})),(null===Q||void 0===Q?void 0:Q.length)&&(null===v||void 0===v?void 0:v.length)&&_jsx("div",{},void 0,(null===Q||void 0===Q?void 0:Q.length)&&_jsx(TileMenu,{items:Q,view:R,onItemClick:S,getItemDescription:T,getItemHref:U,getItemImage:V,getItemOnClick:W,getItemTitle:X,listClassName:cnHeader("TileMenuList"),title:Y,isMobile:!0,style:{zIndex:_}}),(null===v||void 0===v?void 0:v.length)&&_jsx(Notifications,{listClassName:cnHeader("NotificationsList"),items:v,itemDateFormat:w,title:x,actions:y,groupByDay:z,groupLabelFormat:A,groups:B,getItemLabel:C,getItemDescription:D,getItemImage:E,getItemRead:F,getItemDate:G,getItemBadges:H,getItemActions:I,getItemGroup:J,getItemView:K,getActionLabel:L,getActionIcon:M,getActionOnClick:N,getGroupLabel:O,getGroupId:P,isMobile:!0,style:{zIndex:_}})))}),_jsx(HeaderLogo,{className:cnHeader("Logo"),logo:e,href:g}))}}))};export const Header=forwardRef(HeaderRender);export*from"./types";
|
|
2
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Header/Header.tsx"],"names":["React","forwardRef","cn","Layout","Menu","HeaderLogo","HeaderLogin","Notifications","TileMenu","useBreakpoints","MobileMenu","cnHeader","HeaderRender","props","ref","className","logo","onLogoClick","logoHref","menu","getMenuItemActive","getMenuItemHref","getMenuItemLabel","getMenuItemOnClick","getMenuItemSubMenu","getMenuItemTarget","onMenuItemClick","userName","userAvatar","userInfo","userLogined","onLoginButtonClick","loginButtonLabel","notifications","notificationsDateFormat","notificationsTitle","notificationsActions","notificationsGroupByDay","notificationsGroupLabelFormat","notificationsGroups","getNotificationsItemLabel","getNotificationsItemDescription","getNotificationsItemImage","getNotificationsItemRead","getNotificationsItemDate","getNotificationsItemBadges","getNotificationsItemActions","getNotificationsItemGroup","getNotificationsItemView","getNotificationsActionLabel","getNotificationsActionIcon","getNotificationsActionOnClick","getNotificationsGroupLabel","getNotificationsGroupId","tileMenu","tileMenuView","onTileMenuItemClick","getTileMenuItemDescription","getTileMenuItemHref","getTileMenuItemImage","getTileMenuItemOnClick","getTileMenuItemTitle","tileMenuTitle","otherProps","breakpoints","s","m","elementZIndex","style","zIndex","left","breakpoint","right","length","Header"],"mappings":"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","sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { HeaderProps, HeaderComponent } from './types'\nimport { Layout } from '@/Layout'\nimport { Menu } from '@/Menu'\nimport { HeaderLogo } from './HeaderLogo'\nimport { HeaderLogin } from './HeaderLogin'\nimport { Notifications } from '@/Notifications'\nimport { TileMenu } from '@/TileMenu'\nimport { useBreakpoints } from '@consta/uikit/useBreakpoints'\nimport { MobileMenu } from '@/MobileMenu'\n\nimport './Header.css'\n\nexport const cnHeader = cn('Header')\n\nconst HeaderRender = (props: HeaderProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n className,\n\n // Logo\n logo,\n onLogoClick,\n logoHref,\n\n // Menu\n menu,\n getMenuItemActive,\n getMenuItemHref,\n getMenuItemLabel,\n getMenuItemOnClick,\n getMenuItemSubMenu,\n getMenuItemTarget,\n onMenuItemClick,\n\n // Login\n userName,\n userAvatar,\n userInfo,\n userLogined,\n onLoginButtonClick,\n loginButtonLabel,\n\n // Notifications\n notifications,\n notificationsDateFormat,\n notificationsTitle,\n notificationsActions,\n notificationsGroupByDay,\n notificationsGroupLabelFormat,\n notificationsGroups,\n getNotificationsItemLabel,\n getNotificationsItemDescription,\n getNotificationsItemImage,\n getNotificationsItemRead,\n getNotificationsItemDate,\n getNotificationsItemBadges,\n getNotificationsItemActions,\n getNotificationsItemGroup,\n getNotificationsItemView,\n getNotificationsActionLabel,\n getNotificationsActionIcon,\n getNotificationsActionOnClick,\n getNotificationsGroupLabel,\n getNotificationsGroupId,\n\n // TileMenu\n tileMenu,\n tileMenuView,\n onTileMenuItemClick,\n getTileMenuItemDescription,\n getTileMenuItemHref,\n getTileMenuItemImage,\n getTileMenuItemOnClick,\n getTileMenuItemTitle,\n tileMenuTitle,\n ...otherProps\n } = props\n\n const breakpoints = useBreakpoints({ s: 800, m: 1200 })\n\n const elementZIndex = typeof props.style?.zIndex === 'number' ? props.style.zIndex : undefined\n\n if (breakpoints.m) {\n return (\n <Layout\n {...otherProps}\n ref={ref}\n className={cnHeader(null, [className])}\n rowCenter={{\n left: (\n <div className={cnHeader('RowCenterLeft', { breakpoint: 'm' })}>\n <HeaderLogo className={cnHeader('Logo')} logo={logo} href={logoHref} />\n {menu && (\n <Menu\n className={cnHeader('Menu')}\n items={menu}\n getItemActive={getMenuItemActive}\n getItemHref={getMenuItemHref}\n getItemLabel={getMenuItemLabel}\n getItemOnClick={getMenuItemOnClick}\n getItemSubMenu={getMenuItemSubMenu}\n getItemTarget={getMenuItemTarget}\n onItemClick={onMenuItemClick}\n style={{ zIndex: elementZIndex }}\n />\n )}\n </div>\n ),\n right: (\n <div className={cnHeader('RowCenterRight')}>\n <HeaderLogin\n userName={userName}\n userAvatar={userAvatar}\n userInfo={userInfo}\n userLogined={userLogined}\n onLoginButtonClick={onLoginButtonClick}\n loginButtonLabel={loginButtonLabel}\n />\n {tileMenu?.length && (\n <TileMenu\n items={tileMenu}\n view={tileMenuView}\n onItemClick={onTileMenuItemClick}\n getItemDescription={getTileMenuItemDescription}\n getItemHref={getTileMenuItemHref}\n getItemImage={getTileMenuItemImage}\n getItemOnClick={getTileMenuItemOnClick}\n getItemTitle={getTileMenuItemTitle}\n listClassName={cnHeader('TileMenuList', { breakpoint: 'm' })}\n title={tileMenuTitle}\n style={{ zIndex: elementZIndex }}\n />\n )}\n {notifications?.length && (\n <Notifications\n listClassName={cnHeader('NotificationsList', { breakpoint: 'm' })}\n items={notifications}\n itemDateFormat={notificationsDateFormat}\n title={notificationsTitle}\n actions={notificationsActions}\n groupByDay={notificationsGroupByDay}\n groupLabelFormat={notificationsGroupLabelFormat}\n groups={notificationsGroups}\n getItemLabel={getNotificationsItemLabel}\n getItemDescription={getNotificationsItemDescription}\n getItemImage={getNotificationsItemImage}\n getItemRead={getNotificationsItemRead}\n getItemDate={getNotificationsItemDate}\n getItemBadges={getNotificationsItemBadges}\n getItemActions={getNotificationsItemActions}\n getItemGroup={getNotificationsItemGroup}\n getItemView={getNotificationsItemView}\n getActionLabel={getNotificationsActionLabel}\n getActionIcon={getNotificationsActionIcon}\n getActionOnClick={getNotificationsActionOnClick}\n getGroupLabel={getNotificationsGroupLabel}\n getGroupId={getNotificationsGroupId}\n style={{ zIndex: elementZIndex }}\n />\n )}\n </div>\n ),\n }}\n />\n )\n }\n\n if (breakpoints.s) {\n return (\n <Layout\n {...otherProps}\n ref={ref}\n className={cnHeader(null, [className])}\n rowCenter={{\n left: (\n <div className={cnHeader('RowCenterLeft')}>\n {menu && (\n <MobileMenu\n className={cnHeader('Menu')}\n items={menu}\n getItemActive={getMenuItemActive}\n getItemHref={getMenuItemHref}\n getItemLabel={getMenuItemLabel}\n getItemOnClick={getMenuItemOnClick}\n getItemSubMenu={getMenuItemSubMenu}\n getItemTarget={getMenuItemTarget}\n onItemClick={onMenuItemClick}\n style={{ zIndex: elementZIndex }}\n />\n )}\n <HeaderLogo className={cnHeader('Logo')} logo={logo} href={logoHref} />\n </div>\n ),\n right: (\n <div className={cnHeader('RowCenterRight')}>\n <HeaderLogin\n userName={userName}\n userAvatar={userAvatar}\n userInfo={userInfo}\n userLogined={userLogined}\n onLoginButtonClick={onLoginButtonClick}\n loginButtonLabel={loginButtonLabel}\n />\n {tileMenu?.length && (\n <TileMenu\n items={tileMenu}\n view={tileMenuView}\n onItemClick={onTileMenuItemClick}\n getItemDescription={getTileMenuItemDescription}\n getItemHref={getTileMenuItemHref}\n getItemImage={getTileMenuItemImage}\n getItemOnClick={getTileMenuItemOnClick}\n getItemTitle={getTileMenuItemTitle}\n listClassName={cnHeader('TileMenuList')}\n title={tileMenuTitle}\n isMobile\n style={{ zIndex: elementZIndex }}\n />\n )}\n {notifications?.length && (\n <Notifications\n listClassName={cnHeader('NotificationsList')}\n items={notifications}\n itemDateFormat={notificationsDateFormat}\n title={notificationsTitle}\n actions={notificationsActions}\n groupByDay={notificationsGroupByDay}\n groupLabelFormat={notificationsGroupLabelFormat}\n groups={notificationsGroups}\n getItemLabel={getNotificationsItemLabel}\n getItemDescription={getNotificationsItemDescription}\n getItemImage={getNotificationsItemImage}\n getItemRead={getNotificationsItemRead}\n getItemDate={getNotificationsItemDate}\n getItemBadges={getNotificationsItemBadges}\n getItemActions={getNotificationsItemActions}\n getItemGroup={getNotificationsItemGroup}\n getItemView={getNotificationsItemView}\n getActionLabel={getNotificationsActionLabel}\n getActionIcon={getNotificationsActionIcon}\n getActionOnClick={getNotificationsActionOnClick}\n getGroupLabel={getNotificationsGroupLabel}\n getGroupId={getNotificationsGroupId}\n isMobile\n style={{ zIndex: elementZIndex }}\n />\n )}\n </div>\n ),\n }}\n />\n )\n }\n\n return (\n <Layout\n {...otherProps}\n ref={ref}\n className={cnHeader(null, [className])}\n rowCenter={{\n left: (\n <div className={cnHeader('RowCenterLeft')}>\n {menu && (\n <MobileMenu\n className={cnHeader('Menu')}\n items={menu}\n getItemActive={getMenuItemActive}\n getItemHref={getMenuItemHref}\n getItemLabel={getMenuItemLabel}\n getItemOnClick={getMenuItemOnClick}\n getItemSubMenu={getMenuItemSubMenu}\n getItemTarget={getMenuItemTarget}\n onItemClick={onMenuItemClick}\n style={{ zIndex: elementZIndex }}\n header={\n <div className={cnHeader('MobileMenuHeader')}>\n <div>\n <HeaderLogin\n userName={userName}\n userAvatar={userAvatar}\n userInfo={userInfo}\n userLogined={userLogined}\n onLoginButtonClick={onLoginButtonClick}\n loginButtonLabel={loginButtonLabel}\n />\n </div>\n {tileMenu?.length && notifications?.length && (\n <div>\n {tileMenu?.length && (\n <TileMenu\n items={tileMenu}\n view={tileMenuView}\n onItemClick={onTileMenuItemClick}\n getItemDescription={getTileMenuItemDescription}\n getItemHref={getTileMenuItemHref}\n getItemImage={getTileMenuItemImage}\n getItemOnClick={getTileMenuItemOnClick}\n getItemTitle={getTileMenuItemTitle}\n listClassName={cnHeader('TileMenuList')}\n title={tileMenuTitle}\n isMobile\n style={{ zIndex: elementZIndex }}\n />\n )}\n {notifications?.length && (\n <Notifications\n listClassName={cnHeader('NotificationsList')}\n items={notifications}\n itemDateFormat={notificationsDateFormat}\n title={notificationsTitle}\n actions={notificationsActions}\n groupByDay={notificationsGroupByDay}\n groupLabelFormat={notificationsGroupLabelFormat}\n groups={notificationsGroups}\n getItemLabel={getNotificationsItemLabel}\n getItemDescription={getNotificationsItemDescription}\n getItemImage={getNotificationsItemImage}\n getItemRead={getNotificationsItemRead}\n getItemDate={getNotificationsItemDate}\n getItemBadges={getNotificationsItemBadges}\n getItemActions={getNotificationsItemActions}\n getItemGroup={getNotificationsItemGroup}\n getItemView={getNotificationsItemView}\n getActionLabel={getNotificationsActionLabel}\n getActionIcon={getNotificationsActionIcon}\n getActionOnClick={getNotificationsActionOnClick}\n getGroupLabel={getNotificationsGroupLabel}\n getGroupId={getNotificationsGroupId}\n isMobile\n style={{ zIndex: elementZIndex }}\n />\n )}\n </div>\n )}\n </div>\n }\n />\n )}\n <HeaderLogo className={cnHeader('Logo')} logo={logo} href={logoHref} />\n </div>\n ),\n }}\n />\n )\n}\n\nexport const Header = forwardRef(HeaderRender) as HeaderComponent\n\nexport * from './types'\n"],"file":"Header.js"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type HeaderLoginProps = {
|
|
3
|
+
href?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
userName?: string;
|
|
6
|
+
userAvatar?: string;
|
|
7
|
+
userInfo?: string;
|
|
8
|
+
userLogined?: boolean;
|
|
9
|
+
onLoginButtonClick?: React.MouseEventHandler;
|
|
10
|
+
onUserClick?: React.MouseEventHandler;
|
|
11
|
+
loginButtonLabel?: string;
|
|
12
|
+
};
|
|
13
|
+
declare type HeaderLoginComponent = (props: HeaderLoginProps) => React.ReactElement | null;
|
|
14
|
+
export declare const HeaderLogin: HeaderLoginComponent;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _jsx from"@babel/runtime/helpers/jsx";import React from"react";import{User}from"@consta/uikit/User";import{Button}from"@consta/uikit/Button";export const HeaderLogin=a=>{const{href:b,className:c,userName:d,userAvatar:e,userInfo:f,userLogined:g,onLoginButtonClick:h,onUserClick:i,loginButtonLabel:j}=a;return g&&(d||e)?React.createElement(User,Object.assign({name:d,avatarUrl:e,className:c,info:f,onClick:i,size:"l"},b&&{href:b,as:"a"})):j?_jsx(Button,{className:c,label:j,onClick:h}):null};
|
|
2
|
+
//# sourceMappingURL=HeaderLogin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Header/HeaderLogin/HeaderLogin.tsx"],"names":["React","User","Button","HeaderLogin","props","href","className","userName","userAvatar","userInfo","userLogined","onLoginButtonClick","onUserClick","loginButtonLabel","as"],"mappings":"6CAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,OAASC,IAAT,KAAqB,oBAArB,CACA,OAASC,MAAT,KAAuB,sBAAvB,CAgBA,MAAO,MAAMC,CAAAA,WAAiC,CAAGC,CAAK,EAAI,CACxD,KAAM,CACJC,IAAI,CAAJA,CADI,CAEJC,SAAS,CAATA,CAFI,CAGJC,QAAQ,CAARA,CAHI,CAIJC,UAAU,CAAVA,CAJI,CAKJC,QAAQ,CAARA,CALI,CAMJC,WAAW,CAAXA,CANI,CAOJC,kBAAkB,CAAlBA,CAPI,CAQJC,WAAW,CAAXA,CARI,CASJC,gBAAgB,CAAhBA,CATI,EAUFT,CAVJ,CADwD,MAapDM,CAAAA,CAAW,GAAKH,CAAQ,EAAIC,CAAjB,CAbyC,CAepD,oBAAC,IAAD,gBACE,IAAI,CAAED,CADR,CAEE,SAAS,CAAEC,CAFb,CAGE,SAAS,CAAEF,CAHb,CAIE,IAAI,CAAEG,CAJR,CAKE,OAAO,CAAEG,CALX,CAME,IAAI,CAAC,GANP,EAOOP,CAAI,EAAI,CAAEA,IAAI,CAAJA,CAAF,CAAQS,EAAE,CAAE,GAAZ,CAPf,EAfoD,CA2BpDD,CA3BoD,CA4B/C,KAAC,MAAD,EAAQ,SAAS,CAAEP,CAAnB,CAA8B,KAAK,CAAEO,CAArC,CAAuD,OAAO,CAAEF,CAAhE,EA5B+C,CA+BjD,IACR,CAhCM","sourcesContent":["import React from 'react'\n\nimport { User } from '@consta/uikit/User'\nimport { Button } from '@consta/uikit/Button'\n\ntype HeaderLoginProps = {\n href?: string\n className?: string\n userName?: string\n userAvatar?: string\n userInfo?: string\n userLogined?: boolean\n onLoginButtonClick?: React.MouseEventHandler\n onUserClick?: React.MouseEventHandler\n loginButtonLabel?: string\n}\n\ntype HeaderLoginComponent = (props: HeaderLoginProps) => React.ReactElement | null\n\nexport const HeaderLogin: HeaderLoginComponent = props => {\n const {\n href,\n className,\n userName,\n userAvatar,\n userInfo,\n userLogined,\n onLoginButtonClick,\n onUserClick,\n loginButtonLabel,\n } = props\n\n if (userLogined && (userName || userAvatar)) {\n return (\n <User\n name={userName}\n avatarUrl={userAvatar}\n className={className}\n info={userInfo}\n onClick={onUserClick}\n size=\"l\"\n {...(href && { href, as: 'a' })}\n />\n )\n }\n\n if (loginButtonLabel) {\n return <Button className={className} label={loginButtonLabel} onClick={onLoginButtonClick} />\n }\n\n return null\n}\n"],"file":"HeaderLogin.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./HeaderLogin";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Header/HeaderLogin/index.ts"],"names":[],"mappings":"AAAA","sourcesContent":["export * from './HeaderLogin'\n"],"file":"index.js"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type HeaderLogoProps = {
|
|
3
|
+
logo: React.ReactNode;
|
|
4
|
+
href?: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
};
|
|
7
|
+
declare type HeaderLogoComponent = (props: HeaderLogoProps) => React.ReactElement | null;
|
|
8
|
+
export declare const HeaderLogo: HeaderLogoComponent;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _jsx from"@babel/runtime/helpers/jsx";import React from"react";import{Text}from"@consta/uikit/Text";export const HeaderLogo=a=>{const{logo:b,href:c,className:d}=a;if(!b)return null;if("string"==typeof b||"number"==typeof b)return React.createElement(Text,Object.assign({className:d,size:"l",weight:"bold"},c&&{as:"a",href:c}),b);const e=c?"a":"div";return _jsx(e,{className:d,href:c},void 0,b)};
|
|
2
|
+
//# sourceMappingURL=HeaderLogo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Header/HeaderLogo/HeaderLogo.tsx"],"names":["React","Text","HeaderLogo","props","logo","href","className","as","Tag"],"mappings":"6CAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,OAASC,IAAT,KAAqB,oBAArB,CAMA,MAAO,MAAMC,CAAAA,UAA+B,CAAGC,CAAK,EAAI,CACtD,KAAM,CAAEC,IAAI,CAAJA,CAAF,CAAQC,IAAI,CAAJA,CAAR,CAAcC,SAAS,CAATA,CAAd,EAA4BH,CAAlC,CAEA,GAAI,CAACC,CAAL,CACE,MAAO,KAAP,CAGF,GAAoB,QAAhB,QAAOA,CAAAA,CAAP,EAA4C,QAAhB,QAAOA,CAAAA,CAAvC,CACE,MACE,qBAAC,IAAD,gBAAM,SAAS,CAAEE,CAAjB,CAA4B,IAAI,CAAC,GAAjC,CAAqC,MAAM,CAAC,MAA5C,EAAwDD,CAAI,EAAI,CAAEE,EAAE,CAAE,GAAN,CAAWF,IAAI,CAAJA,CAAX,CAAhE,EACGD,CADH,CADF,CAOF,KAAMI,CAAAA,CAAG,CAAGH,CAAI,CAAG,GAAH,CAAS,KAAzB,CAEA,MACE,MAAC,CAAD,EAAK,SAAS,CAAEC,CAAhB,CAA2B,IAAI,CAAED,CAAjC,SACGD,CADH,CAIH,CAtBM","sourcesContent":["import React from 'react'\n\nimport { Text } from '@consta/uikit/Text'\n\ntype HeaderLogoProps = { logo: React.ReactNode; href?: string; className?: string }\n\ntype HeaderLogoComponent = (props: HeaderLogoProps) => React.ReactElement | null\n\nexport const HeaderLogo: HeaderLogoComponent = props => {\n const { logo, href, className } = props\n\n if (!logo) {\n return null\n }\n\n if (typeof logo === 'string' || typeof logo === 'number') {\n return (\n <Text className={className} size=\"l\" weight=\"bold\" {...(href && { as: 'a', href })}>\n {logo}\n </Text>\n )\n }\n\n const Tag = href ? 'a' : 'div'\n\n return (\n <Tag className={className} href={href}>\n {logo}\n </Tag>\n )\n}\n"],"file":"HeaderLogo.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./HeaderLogo";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Header/HeaderLogo/index.ts"],"names":[],"mappings":"AAAA","sourcesContent":["export * from './HeaderLogo'\n"],"file":"index.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Header";
|
package/Header/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Header/index.ts"],"names":[],"mappings":"AAAA","sourcesContent":["export * from './Header'\n"],"file":"index.js"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DefaultItem as DefaultMenuItem, MenuPropOnItemClick, MenuPropGetItemHref, MenuPropGetItemLabel, MenuPropGetItemTarget, MenuPropGetItemActive, MenuPropGetItemOnClick, MenuPropGetItemSubMenu } from "../Menu/index";
|
|
3
|
+
import { NotificationsListPropGetItemLabel, NotificationsListPropGetActionIcon, NotificationsListPropGetActionLabel, NotificationsListPropGetActionOnClick, NotificationsListPropGetGroupId, NotificationsListPropGetGroupLabel, NotificationsListPropGetItemActions, NotificationsListPropGetItemBadges, NotificationsListPropGetItemDate, NotificationsListPropGetItemDescription, NotificationsListPropGetItemGroup, NotificationsListPropGetItemImage, NotificationsListPropGetItemRead, NotificationsListPropGetItemView, NotificationsListPropGroupLabelFormat, DefaultAction as DefaultNotificationAction, DefaultGroup as DefaultNotificationGroup, DefaultItem as DefaultNotificationItem, NotificationsListPropItemDateFormat } from "../NotificationsList/index";
|
|
4
|
+
import { TileMenuPropGetItemImage, TileMenuPropGetItemDescription, TileMenuPropGetItemHref, TileMenuPropGetItemOnClick, TileMenuPropGetItemTitle, TileMenuOnItemClick, TileMenuPropView, DefaultItem as DefaultTileMenuItem } from "../TileMenu/index";
|
|
5
|
+
import { PropsWithHTMLAttributesAndRef } from "../__private__/utils/types/PropsWithHTMLAttributes";
|
|
6
|
+
export declare type HeaderProps<MENU_ITEM = DefaultMenuItem, NOTIFICATION_ITEM = DefaultNotificationItem, NOTIFICATION_GROUP = DefaultNotificationGroup, NOTIFICATION_ACTION = DefaultNotificationAction, NOTIFICATION_GROUP_BY_DAY extends boolean = false, TILE_MENU_ITEM = DefaultTileMenuItem> = PropsWithHTMLAttributesAndRef<{
|
|
7
|
+
logo?: React.ReactNode;
|
|
8
|
+
onLogoClick?: React.MouseEventHandler;
|
|
9
|
+
logoHref?: string;
|
|
10
|
+
menu?: MENU_ITEM[];
|
|
11
|
+
onMenuItemClick?: MenuPropOnItemClick<MENU_ITEM>;
|
|
12
|
+
getMenuItemHref?: MenuPropGetItemHref<MENU_ITEM>;
|
|
13
|
+
getMenuItemLabel?: MenuPropGetItemLabel<MENU_ITEM>;
|
|
14
|
+
getMenuItemTarget?: MenuPropGetItemTarget<MENU_ITEM>;
|
|
15
|
+
getMenuItemActive?: MenuPropGetItemActive<MENU_ITEM>;
|
|
16
|
+
getMenuItemOnClick?: MenuPropGetItemOnClick<MENU_ITEM>;
|
|
17
|
+
getMenuItemSubMenu?: MenuPropGetItemSubMenu<MENU_ITEM>;
|
|
18
|
+
userName?: string;
|
|
19
|
+
userAvatar?: string;
|
|
20
|
+
userInfo?: string;
|
|
21
|
+
userLogined?: boolean;
|
|
22
|
+
onLoginButtonClick?: React.MouseEventHandler;
|
|
23
|
+
onUserClick?: React.MouseEventHandler;
|
|
24
|
+
loginButtonLabel?: string;
|
|
25
|
+
notifications?: NOTIFICATION_ITEM[];
|
|
26
|
+
notificationsDateFormat?: NotificationsListPropItemDateFormat;
|
|
27
|
+
notificationsTitle?: string;
|
|
28
|
+
notificationsActions?: NOTIFICATION_ACTION[];
|
|
29
|
+
notificationsGroupByDay?: NOTIFICATION_GROUP_BY_DAY;
|
|
30
|
+
notificationsGroupLabelFormat?: NotificationsListPropGroupLabelFormat<NOTIFICATION_GROUP_BY_DAY>;
|
|
31
|
+
notificationsGroups?: NOTIFICATION_GROUP_BY_DAY extends true ? never : NOTIFICATION_GROUP[];
|
|
32
|
+
getNotificationsItemLabel?: NotificationsListPropGetItemLabel<NOTIFICATION_ITEM>;
|
|
33
|
+
getNotificationsItemDescription?: NotificationsListPropGetItemDescription<NOTIFICATION_ITEM>;
|
|
34
|
+
getNotificationsItemImage?: NotificationsListPropGetItemImage<NOTIFICATION_ITEM>;
|
|
35
|
+
getNotificationsItemRead?: NotificationsListPropGetItemRead<NOTIFICATION_ITEM>;
|
|
36
|
+
getNotificationsItemDate?: NotificationsListPropGetItemDate<NOTIFICATION_ITEM>;
|
|
37
|
+
getNotificationsItemBadges?: NotificationsListPropGetItemBadges<NOTIFICATION_ITEM>;
|
|
38
|
+
getNotificationsItemActions?: NotificationsListPropGetItemActions<NOTIFICATION_ITEM>;
|
|
39
|
+
getNotificationsItemGroup?: NotificationsListPropGetItemGroup<NOTIFICATION_ITEM>;
|
|
40
|
+
getNotificationsItemView?: NotificationsListPropGetItemView<NOTIFICATION_ITEM>;
|
|
41
|
+
getNotificationsActionLabel?: NotificationsListPropGetActionLabel<NOTIFICATION_ACTION>;
|
|
42
|
+
getNotificationsActionIcon?: NotificationsListPropGetActionIcon<NOTIFICATION_ACTION>;
|
|
43
|
+
getNotificationsActionOnClick?: NotificationsListPropGetActionOnClick<NOTIFICATION_ACTION>;
|
|
44
|
+
getNotificationsGroupLabel?: NotificationsListPropGetGroupLabel<NOTIFICATION_GROUP>;
|
|
45
|
+
getNotificationsGroupId?: NotificationsListPropGetGroupId<NOTIFICATION_GROUP>;
|
|
46
|
+
tileMenu?: TILE_MENU_ITEM[];
|
|
47
|
+
tileMenuTitle?: string;
|
|
48
|
+
tileMenuView?: TileMenuPropView;
|
|
49
|
+
onTileMenuItemClick?: TileMenuOnItemClick<TILE_MENU_ITEM>;
|
|
50
|
+
getTileMenuItemImage?: TileMenuPropGetItemImage<TILE_MENU_ITEM>;
|
|
51
|
+
getTileMenuItemTitle?: TileMenuPropGetItemTitle<TILE_MENU_ITEM>;
|
|
52
|
+
getTileMenuItemDescription?: TileMenuPropGetItemDescription<TILE_MENU_ITEM>;
|
|
53
|
+
getTileMenuItemHref?: TileMenuPropGetItemHref<TILE_MENU_ITEM>;
|
|
54
|
+
getTileMenuItemOnClick?: TileMenuPropGetItemOnClick<TILE_MENU_ITEM>;
|
|
55
|
+
}, HTMLDivElement> & (MENU_ITEM extends {
|
|
56
|
+
label: DefaultMenuItem['label'] | unknown;
|
|
57
|
+
} ? {} : {
|
|
58
|
+
getMenuItemLabel: MenuPropGetItemLabel<MENU_ITEM>;
|
|
59
|
+
}) & (NOTIFICATION_ACTION extends {
|
|
60
|
+
label: DefaultNotificationAction['label'] | unknown;
|
|
61
|
+
} ? {} : {
|
|
62
|
+
getNotificationsActionLabel: NotificationsListPropGetItemActions<NOTIFICATION_ACTION>;
|
|
63
|
+
}) & (NOTIFICATION_GROUP extends {
|
|
64
|
+
label: DefaultNotificationGroup['label'] | unknown;
|
|
65
|
+
} ? {} : {
|
|
66
|
+
getNotificationsGroupLabel: NotificationsListPropGetGroupLabel<NOTIFICATION_GROUP>;
|
|
67
|
+
}) & (NOTIFICATION_GROUP extends {
|
|
68
|
+
id: DefaultNotificationGroup['id'] | unknown;
|
|
69
|
+
} ? {} : {
|
|
70
|
+
getNotificationsGroupId: NotificationsListPropGetGroupId<NOTIFICATION_GROUP>;
|
|
71
|
+
}) & (NOTIFICATION_ITEM extends {
|
|
72
|
+
label: DefaultNotificationItem['label'] | unknown;
|
|
73
|
+
} ? {} : {
|
|
74
|
+
getNotificationsItemLabel: NotificationsListPropGetItemLabel<NOTIFICATION_ITEM>;
|
|
75
|
+
}) & (TILE_MENU_ITEM extends {
|
|
76
|
+
title: DefaultTileMenuItem['title'] | unknown;
|
|
77
|
+
} ? {} : {
|
|
78
|
+
getTileMenuItemTitle: TileMenuPropGetItemTitle<TILE_MENU_ITEM>;
|
|
79
|
+
});
|
|
80
|
+
export declare type HeaderComponent = <MENU_ITEM = DefaultMenuItem, NOTIFICATION_ITEM = DefaultNotificationItem, NOTIFICATION_GROUP = DefaultNotificationGroup, NOTIFICATION_ACTION = DefaultNotificationAction, NOTIFICATION_GROUP_BY_DAY extends boolean = false, TILE_MENU_ITEM = DefaultTileMenuItem>(props: HeaderProps<MENU_ITEM, NOTIFICATION_ITEM, NOTIFICATION_GROUP, NOTIFICATION_ACTION, NOTIFICATION_GROUP_BY_DAY, TILE_MENU_ITEM>) => React.ReactElement | null;
|
package/Header/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.che--Layout{width:100%}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Layout.css';
|
|
3
|
+
export declare const Layout: React.ForwardRefExoticComponent<Pick<import("../__private__/utils/types/PropsWithHTMLAttributes").PropsWithHTMLAttributesAndRef<{
|
|
4
|
+
rowCenter?: import("./types").LayoutPropRowCenter;
|
|
5
|
+
rowTop?: import("./types").LayoutPropRowTop;
|
|
6
|
+
rowBottom?: import("./types").LayoutPropRowTop;
|
|
7
|
+
}, HTMLDivElement>, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "key" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "rowCenter" | "rowTop" | "rowBottom"> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export * from "./types";
|
package/Layout/Layout.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef}from"react";import{cn}from"../__private__/utils/bem";import{LayoutRowIsObject}from"./helpers";import"./Layout.css";import{LayoutRow}from"./LayoutRow/LayoutRow";const cnLayout=cn("Layout");export const Layout=forwardRef((a,b)=>{const{className:c,rowTop:d,rowBottom:e,rowCenter:f,children:g}=a,h=_objectWithoutProperties(a,["className","rowTop","rowBottom","rowCenter","children"]);return React.createElement("div",Object.assign({},h,{className:cnLayout(null,[c]),ref:b}),d&&_jsx(LayoutRow,{className:cnLayout("Row"),content:d,height:"s"}),(f||g)&&_jsx(LayoutRow,{className:cnLayout("Row"),content:f||g,height:LayoutRowIsObject(f)?f.height:void 0}),e&&_jsx(LayoutRow,{className:cnLayout("Row"),content:e,height:"s"}))});export*from"./types";
|
|
2
|
+
//# sourceMappingURL=Layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Layout/Layout.tsx"],"names":["React","forwardRef","cn","LayoutRowIsObject","LayoutRow","cnLayout","Layout","props","ref","className","rowTop","rowBottom","rowCenter","children","otherProps","height"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,EAAT,gCAEA,OAASC,iBAAT,iBAEA,qBACA,OAASC,SAAT,6BAEA,KAAMC,CAAAA,QAAQ,CAAGH,EAAE,CAAC,QAAD,CAAnB,CAEA,MAAO,MAAMI,CAAAA,MAAM,CAAGL,UAAU,CAAC,CAACM,CAAD,CAAqBC,CAArB,GAAwD,CACvF,KAAM,CAAEC,SAAS,CAATA,CAAF,CAAaC,MAAM,CAANA,CAAb,CAAqBC,SAAS,CAATA,CAArB,CAAgCC,SAAS,CAATA,CAAhC,CAA2CC,QAAQ,CAARA,CAA3C,EAAuEN,CAA7E,CAA8DO,CAA9D,0BAA6EP,CAA7E,4DAEA,MACE,4CAASO,CAAT,EAAqB,SAAS,CAAET,QAAQ,CAAC,IAAD,CAAO,CAACI,CAAD,CAAP,CAAxC,CAA6D,GAAG,CAAED,CAAlE,GACGE,CAAM,EAAI,KAAC,SAAD,EAAW,SAAS,CAAEL,QAAQ,CAAC,KAAD,CAA9B,CAAuC,OAAO,CAAEK,CAAhD,CAAwD,MAAM,CAAC,GAA/D,EADb,CAEG,CAACE,CAAS,EAAIC,CAAd,GACC,KAAC,SAAD,EACE,SAAS,CAAER,QAAQ,CAAC,KAAD,CADrB,CAEE,OAAO,CAAEO,CAAS,EAAIC,CAFxB,CAGE,MAAM,CAAEV,iBAAiB,CAACS,CAAD,CAAjB,CAA+BA,CAAS,CAACG,MAAzC,OAHV,EAHJ,CASGJ,CAAS,EAAI,KAAC,SAAD,EAAW,SAAS,CAAEN,QAAQ,CAAC,KAAD,CAA9B,CAAuC,OAAO,CAAEM,CAAhD,CAA2D,MAAM,CAAC,GAAlE,EAThB,CAYH,CAhB+B,CAAzB,CAkBP","sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { LayoutRowIsObject } from './helpers'\nimport { LayoutProps } from './types'\nimport './Layout.css'\nimport { LayoutRow } from './LayoutRow/LayoutRow'\n\nconst cnLayout = cn('Layout')\n\nexport const Layout = forwardRef((props: LayoutProps, ref: React.Ref<HTMLDivElement>) => {\n const { className, rowTop, rowBottom, rowCenter, children, ...otherProps } = props\n\n return (\n <div {...otherProps} className={cnLayout(null, [className])} ref={ref}>\n {rowTop && <LayoutRow className={cnLayout('Row')} content={rowTop} height=\"s\" />}\n {(rowCenter || children) && (\n <LayoutRow\n className={cnLayout('Row')}\n content={rowCenter || children}\n height={LayoutRowIsObject(rowCenter) ? rowCenter.height : undefined}\n />\n )}\n {rowBottom && <LayoutRow className={cnLayout('Row')} content={rowBottom} height=\"s\" />}\n </div>\n )\n})\n\nexport * from './types'\n"],"file":"Layout.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.che--LayoutRow{display:flex;box-sizing:border-box;width:100%;height:var(--header-height);padding:0 var(--space-xl);border-bottom:1px solid var(--color-bg-border);background-color:var(--color-bg-default)}.che--LayoutRow_height_m{--header-height:60px}.che--LayoutRow_height_s{--header-height:40px}.che--LayoutRow-Side{display:flex;align-items:center;flex:1 1 auto}.che--LayoutRow-Side_position_left{justify-content:flex-start}.che--LayoutRow-Side_position_right{justify-content:flex-end}.che--LayoutRow-Side_position_center{flex:0;justify-content:center}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PropsWithHTMLAttributes } from "../../__private__/utils/types/PropsWithHTMLAttributes";
|
|
3
|
+
import { LayoutRow as LayoutRowType, LayoutSlotHeight } from "../types";
|
|
4
|
+
import './LayoutRow.css';
|
|
5
|
+
declare type LayoutRowProps = PropsWithHTMLAttributes<{
|
|
6
|
+
content?: React.ReactNode | LayoutRowType;
|
|
7
|
+
children?: never;
|
|
8
|
+
height?: LayoutSlotHeight;
|
|
9
|
+
}, HTMLDivElement>;
|
|
10
|
+
export declare const LayoutRow: React.FC<LayoutRowProps>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _jsx from"@babel/runtime/helpers/jsx";import React from"react";import{cn}from"../../__private__/utils/bem";import{LayoutRowIsObject}from"../helpers";import"./LayoutRow.css";const cnLayoutRow=cn("LayoutRow");export const LayoutRow=a=>{const{className:b,content:c,height:d="m"}=a;if(!c)return null;if(LayoutRowIsObject(c)){const{left:a,center:e,right:f}=c;return _jsx("div",{className:cnLayoutRow({height:d},[b])},void 0,a&&_jsx("div",{className:cnLayoutRow("Side",{position:"left"})},void 0,a),e&&_jsx("div",{className:cnLayoutRow("Side",{position:"center"})},void 0,e),f&&_jsx("div",{className:cnLayoutRow("Side",{position:"right"})},void 0,f))}return _jsx("div",{className:cnLayoutRow({height:d},[b])},void 0,_jsx("div",{className:cnLayoutRow("Side",{position:"left"})},void 0,c))};
|
|
2
|
+
//# sourceMappingURL=LayoutRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Layout/LayoutRow/LayoutRow.tsx"],"names":["React","cn","LayoutRowIsObject","cnLayoutRow","LayoutRow","props","className","content","height","left","center","right","position"],"mappings":"6CAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,mCAGA,OAASC,iBAAT,kBAGA,wBAEA,KAAMC,CAAAA,WAAW,CAAGF,EAAE,CAAC,WAAD,CAAtB,CAWA,MAAO,MAAMG,CAAAA,SAAmC,CAAGC,CAAK,EAAI,CAC1D,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,aAAK,SAAS,CAAEJ,WAAW,CAAC,CAAEK,MAAM,CAANA,CAAF,CAAD,CAAa,CAACF,CAAD,CAAb,CAA3B,SACGG,CAAI,EAAI,YAAK,SAAS,CAAEN,WAAW,CAAC,MAAD,CAAS,CAAES,QAAQ,CAAE,MAAZ,CAAT,CAA3B,SAA4DH,CAA5D,CADX,CAEGC,CAAM,EAAI,YAAK,SAAS,CAAEP,WAAW,CAAC,MAAD,CAAS,CAAES,QAAQ,CAAE,QAAZ,CAAT,CAA3B,SAA8DF,CAA9D,CAFb,CAGGC,CAAK,EAAI,YAAK,SAAS,CAAER,WAAW,CAAC,MAAD,CAAS,CAAES,QAAQ,CAAE,OAAZ,CAAT,CAA3B,SAA6DD,CAA7D,CAHZ,CAMH,CACD,MACE,aAAK,SAAS,CAAER,WAAW,CAAC,CAAEK,MAAM,CAANA,CAAF,CAAD,CAAa,CAACF,CAAD,CAAb,CAA3B,SACE,YAAK,SAAS,CAAEH,WAAW,CAAC,MAAD,CAAS,CAAES,QAAQ,CAAE,MAAZ,CAAT,CAA3B,SAA4DL,CAA5D,CADF,CAIH,CApBM","sourcesContent":["import React from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { PropsWithHTMLAttributes } from '@/__private__/utils/types/PropsWithHTMLAttributes'\n\nimport { LayoutRowIsObject } from '../helpers'\nimport { LayoutRow as LayoutRowType, LayoutSlotHeight } from '../types'\n\nimport './LayoutRow.css'\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 && <div className={cnLayoutRow('Side', { position: 'left' })}>{left}</div>}\n {center && <div className={cnLayoutRow('Side', { position: 'center' })}>{center}</div>}\n {right && <div className={cnLayoutRow('Side', { position: 'right' })}>{right}</div>}\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"],"file":"LayoutRow.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Layout/helpers.tsx"],"names":["hasProperty","Object","prototype","hasOwnProperty","LayoutRowIsObject","content","call"],"mappings":"AAEA,KAAMA,CAAAA,WAAW,CAAGC,MAAM,CAACC,SAAP,CAAiBC,cAArC,CAEA,MAAO,MAAMC,CAAAA,iBAAiB,CAAIC,CAAD,KAE7BA,CAAO,EACY,QAAnB,QAAOA,CAAAA,CADP,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,CAF6B,CAA1B","sourcesContent":["import { LayoutRow } from './types'\n\nconst hasProperty = Object.prototype.hasOwnProperty\n\nexport const LayoutRowIsObject = (content: React.ReactNode | LayoutRow): 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"],"file":"helpers.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Layout";
|
package/Layout/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Layout/index.ts"],"names":[],"mappings":"AAAA","sourcesContent":["export * from './Layout'\n"],"file":"index.js"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { PropsWithHTMLAttributesAndRef } from "../__private__/utils/types/PropsWithHTMLAttributes";
|
|
3
|
+
export declare type LayoutSlotHeight = 'm' | 's';
|
|
4
|
+
export declare type LayoutRow = {
|
|
5
|
+
left: React.ReactNode;
|
|
6
|
+
right: React.ReactNode;
|
|
7
|
+
center: React.ReactNode;
|
|
8
|
+
height?: LayoutSlotHeight;
|
|
9
|
+
};
|
|
10
|
+
export declare type LayoutPropRowCenter = React.ReactNode | LayoutRow;
|
|
11
|
+
export declare type LayoutPropRowTop = React.ReactNode | Omit<LayoutRow, 'height'>;
|
|
12
|
+
export declare type LayoutPropRowBottom = React.ReactNode | Omit<LayoutRow, 'height'>;
|
|
13
|
+
export declare type LayoutProps = PropsWithHTMLAttributesAndRef<{
|
|
14
|
+
rowCenter?: LayoutPropRowCenter;
|
|
15
|
+
rowTop?: LayoutPropRowTop;
|
|
16
|
+
rowBottom?: LayoutPropRowBottom;
|
|
17
|
+
}, HTMLDivElement>;
|
package/Layout/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
|
package/Menu/Menu.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.che--Menu-List{display:flex;align-items:center;margin:0;padding:0;list-style-type:none}.che--Menu-Item{margin-right:var(--space-m)}.che--Menu-Item:last-child{margin-right:0}.che--Menu-Item_hidden{position:absolute;left:-300vw;visibility:hidden}.che--Menu-Link{position:relative;display:flex;align-items:center;cursor:pointer;text-decoration:none;color:var(--color-typo-secondary);transition:color .2s}.che--Menu-Link:hover,.che--Menu-Link_active,.che--Menu-Link_opened{color:var(--color-typo-primary)}.che--Menu-Link_active{pointer-events:none}.che--Menu-Link_active:before{position:absolute;bottom:0;left:50%;width:100%;max-width:40px;height:4px;content:"";border-radius:4px 4px 0 0;background-color:var(--color-typo-link);transform:translateX(-50%)}.che--Menu-Arrow{margin-left:var(--space-2xs)}
|
package/Menu/Menu.d.ts
ADDED
package/Menu/Menu.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef,useState,useRef,useCallback,useEffect}from"react";import{IconSelect}from"@consta/uikit/IconSelect";import{Button}from"@consta/uikit/Button";import{IconMeatball}from"@consta/uikit/IconMeatball";import{useMutableRef}from"@consta/uikit/useMutableRef";import{useDebounce}from"@consta/uikit/useDebounce";import{useFlag}from"@consta/uikit/useFlag";import{AnimatedContextMenu}from"../__private__/AnimatedContextMenu/AnimatedContextMenu";import{cn}from"../__private__/utils/bem";import{useHideElementsLine}from"../__private__/hooks/useHideElementsLine";import{withDefaultGetters,getItemClick,animateTimeout}from"./helpers";import"./Menu.css";export const cnMenu=cn("Menu");const MenuRender=(a,b)=>{var c;const d=withDefaultGetters(a),{items:e,className:f,getItemActive:g,getItemHref:h,getItemLabel:i,getItemOnClick:j,getItemTarget:k,getItemSubMenu:l,onItemClick:m}=d,n=_objectWithoutProperties(d,["items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","onItemClick"]),[o,p]=useState(),[q,r]=useFlag(),{visibleItems:s,itemsRefs:t,wrapperRef:u,hiddenItems:v,moreRef:w}=useHideElementsLine(e),x=useRef(null),y=useMutableRef(h),z=useCallback(a=>y.current(a)?"a":"span",[]),A=useCallback(a=>y.current(a)?{href:y.current(a)}:{},[]),B="number"==typeof(null===(c=a.style)||void 0===c?void 0:c.zIndex)?a.style.zIndex+1:void 0;return useEffect(useDebounce(()=>{q||p(void 0)},animateTimeout),[q]),React.createElement("nav",Object.assign({},n,{className:cnMenu(null,[f]),onMouseLeave:r.off,onMouseEnter:r.on,ref:b}),React.createElement("ul",{className:cnMenu("List"),ref:u},e.map((a,b)=>{const c=i(a),d=h(a),e=d?k(a):void 0,f=g(a),n=d?"a":"span",q=l(a),r=o===b,u=!s[b];return React.createElement("li",{className:cnMenu("Item",{hidden:u}),key:cnMenu("Item",{index:b}),ref:t[b],onMouseEnter:()=>p(b)},_jsx(n,{className:cnMenu("Link",{active:f,opened:r}),href:d,target:e,onClick:getItemClick(a,j,m)},void 0,c," ",q&&_jsx(IconSelect,{size:"s",className:cnMenu("Arrow")})),_jsx(AnimatedContextMenu,{isOpen:q&&0<q.length&&r,items:q||[],getLabel:i,getSubItems:l,anchorRef:t[b],getOnClick:a=>getItemClick(a,j,m),direction:"downStartLeft",possibleDirections:["upStartLeft","downStartRight","downStartLeft","upStartRight"],spareDirection:"downStartLeft",getItemAs:z,getItemHTMLAttributes:A,style:{zIndex:B}}))}),0<v.length&&React.createElement("li",{className:cnMenu("Item"),key:cnMenu("Item",{more:!0}),ref:w,onMouseEnter:()=>p("more")},React.createElement(Button,{iconLeft:IconMeatball,ref:x,size:"xs",view:"clear"}),_jsx(AnimatedContextMenu,{isOpen:"more"===o,items:v,getLabel:i,getSubItems:l,anchorRef:x,getOnClick:a=>getItemClick(a,j,m),direction:"downStartLeft",possibleDirections:["upStartLeft","downStartRight","downStartLeft","upStartRight"],spareDirection:"downStartRight",getItemAs:z,getItemHTMLAttributes:A,style:{zIndex:B}}))))};export const Menu=forwardRef(MenuRender);export*from"./types";
|
|
2
|
+
//# sourceMappingURL=Menu.js.map
|
package/Menu/Menu.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Menu/Menu.tsx"],"names":["React","forwardRef","useState","useRef","useCallback","useEffect","IconSelect","Button","IconMeatball","useMutableRef","useDebounce","useFlag","AnimatedContextMenu","cn","useHideElementsLine","withDefaultGetters","getItemClick","animateTimeout","cnMenu","MenuRender","props","ref","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","onItemClick","otherProps","openedSubMenu","setOpenedSubMenu","mouseOnMenu","setMouseOnMenu","visibleItems","itemsRefs","wrapperRef","hiddenItems","moreRef","moreButtonRef","getItemHrefRef","getItemAs","item","current","getItemHTMLAttributes","href","elementZIndex","style","zIndex","off","on","map","index","label","target","active","Tag","subItems","opened","hidden","length","contextMenuItem","more","Menu"],"mappings":"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","sourcesContent":["import React, { forwardRef, useState, useRef, useCallback, useEffect } from 'react'\n\nimport { IconSelect } from '@consta/uikit/IconSelect'\nimport { Button } from '@consta/uikit/Button'\nimport { IconMeatball } from '@consta/uikit/IconMeatball'\nimport { useMutableRef } from '@consta/uikit/useMutableRef'\nimport { useDebounce } from '@consta/uikit/useDebounce'\nimport { useFlag } from '@consta/uikit/useFlag'\n\nimport { AnimatedContextMenu } from '@/__private__/AnimatedContextMenu/AnimatedContextMenu'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { useHideElementsLine } from '@/__private__/hooks/useHideElementsLine'\n\nimport { withDefaultGetters, getItemClick, animateTimeout } from './helpers'\nimport { MenuComponent, MenuProps } from './types'\nimport './Menu.css'\n\nexport const cnMenu = cn('Menu')\n\nconst MenuRender = (props: MenuProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n items,\n className,\n getItemActive,\n getItemHref,\n getItemLabel,\n getItemOnClick,\n getItemTarget,\n getItemSubMenu,\n onItemClick,\n ...otherProps\n } = withDefaultGetters(props)\n\n const [openedSubMenu, setOpenedSubMenu] = useState<number | 'more' | undefined>()\n const [mouseOnMenu, setMouseOnMenu] = useFlag()\n\n const { visibleItems, itemsRefs, wrapperRef, hiddenItems, moreRef } = useHideElementsLine<\n HTMLLIElement,\n HTMLUListElement,\n typeof items[number]\n >(items)\n\n const moreButtonRef = useRef<HTMLButtonElement>(null)\n\n const getItemHrefRef = useMutableRef(getItemHref)\n\n const getItemAs = useCallback((item: typeof items[number]) => {\n if (!!getItemHrefRef.current(item)) {\n return 'a'\n }\n return 'span'\n }, [])\n\n const getItemHTMLAttributes = useCallback((item: typeof items[number]) => {\n if (!!getItemHrefRef.current(item)) {\n return { href: getItemHrefRef.current(item) }\n }\n return {}\n }, [])\n\n const elementZIndex = typeof props.style?.zIndex === 'number' ? props.style.zIndex + 1 : undefined\n\n useEffect(\n useDebounce(() => {\n if (!mouseOnMenu) {\n setOpenedSubMenu(undefined)\n }\n }, animateTimeout),\n [mouseOnMenu]\n )\n\n return (\n <nav\n {...otherProps}\n className={cnMenu(null, [className])}\n onMouseLeave={setMouseOnMenu.off}\n onMouseEnter={setMouseOnMenu.on}\n ref={ref}\n >\n <ul className={cnMenu('List')} ref={wrapperRef}>\n {items.map((item, index) => {\n const label = getItemLabel(item)\n const href = getItemHref(item)\n const target = href ? getItemTarget(item) : undefined\n const active = getItemActive(item)\n const Tag = href ? 'a' : 'span'\n const subItems = getItemSubMenu(item)\n const opened = openedSubMenu === index\n const hidden = !visibleItems[index]\n return (\n <li\n className={cnMenu('Item', { hidden })}\n key={cnMenu('Item', { index })}\n ref={itemsRefs[index]}\n onMouseEnter={() => setOpenedSubMenu(index)}\n >\n <Tag\n className={cnMenu('Link', { active, opened })}\n href={href}\n target={target}\n onClick={getItemClick(item, getItemOnClick, onItemClick)}\n >\n {label} {subItems && <IconSelect size=\"s\" className={cnMenu('Arrow')} />}\n </Tag>\n <AnimatedContextMenu\n isOpen={subItems && subItems.length > 0 && opened}\n items={subItems || []}\n getLabel={getItemLabel}\n getSubItems={getItemSubMenu}\n anchorRef={itemsRefs[index]}\n getOnClick={contextMenuItem =>\n getItemClick(contextMenuItem, getItemOnClick, onItemClick)\n }\n direction=\"downStartLeft\"\n possibleDirections={[\n 'upStartLeft',\n 'downStartRight',\n 'downStartLeft',\n 'upStartRight',\n ]}\n spareDirection=\"downStartLeft\"\n getItemAs={getItemAs}\n getItemHTMLAttributes={getItemHTMLAttributes}\n style={{ zIndex: elementZIndex }}\n />\n </li>\n )\n })}\n {hiddenItems.length > 0 && (\n <li\n className={cnMenu('Item')}\n key={cnMenu('Item', { more: true })}\n ref={moreRef}\n onMouseEnter={() => setOpenedSubMenu('more')}\n >\n <Button iconLeft={IconMeatball} ref={moreButtonRef} size=\"xs\" view=\"clear\" />\n <AnimatedContextMenu\n isOpen={openedSubMenu === 'more'}\n items={hiddenItems}\n getLabel={getItemLabel}\n getSubItems={getItemSubMenu}\n anchorRef={moreButtonRef}\n getOnClick={contextMenuItem =>\n getItemClick(contextMenuItem, getItemOnClick, onItemClick)\n }\n direction=\"downStartLeft\"\n possibleDirections={[\n 'upStartLeft',\n 'downStartRight',\n 'downStartLeft',\n 'upStartRight',\n ]}\n spareDirection=\"downStartRight\"\n getItemAs={getItemAs}\n getItemHTMLAttributes={getItemHTMLAttributes}\n style={{ zIndex: elementZIndex }}\n />\n </li>\n )}\n </ul>\n </nav>\n )\n}\n\nexport const Menu = forwardRef(MenuRender) as MenuComponent\n\nexport * from './types'\n"],"file":"Menu.js"}
|