@economic/taco 1.0.1 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { Placement } from '../..';
3
+ export declare type HoverCardTriggerProps = React.HTMLAttributes<HTMLAnchorElement>;
4
+ export declare type HoverCardContentProps = React.HTMLAttributes<HTMLDivElement> & {
5
+ /** Set the position of the HoverCard relative to its trigger. Default value is `bottom` */
6
+ placement?: Placement;
7
+ };
8
+ export declare type HoverCardProps = React.PropsWithChildren<{}>;
9
+ export declare const HoverCard: {
10
+ (props: HoverCardProps): JSX.Element;
11
+ Trigger: React.ForwardRefExoticComponent<HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>;
12
+ Content: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
13
+ /** Set the position of the HoverCard relative to its trigger. Default value is `bottom` */
14
+ placement?: "right" | "left" | "top" | "bottom" | undefined;
15
+ } & React.RefAttributes<HTMLDivElement>>;
16
+ };
@@ -0,0 +1,33 @@
1
+ import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { createElement, forwardRef } from 'react';
3
+ import cn from 'classnames';
4
+ import { Root, Trigger as Trigger$1, Content as Content$1 } from '@radix-ui/react-hover-card';
5
+
6
+ var _excluded = ["placement"];
7
+ var Trigger = /*#__PURE__*/forwardRef(function HoverCardTrigger(props, ref) {
8
+ return createElement(Trigger$1, Object.assign({}, props, {
9
+ asChild: true,
10
+ ref: ref
11
+ }));
12
+ });
13
+ var Content = /*#__PURE__*/forwardRef(function HoverCardContent(externalProps, ref) {
14
+ var placement = externalProps.placement,
15
+ props = _objectWithoutPropertiesLoose(externalProps, _excluded);
16
+
17
+ var className = cn('bg-white rounded p-3 yt-shadow', props.className);
18
+ return createElement(Content$1, Object.assign({}, props, {
19
+ className: className,
20
+ ref: ref,
21
+ side: placement
22
+ }));
23
+ });
24
+ var HoverCard = function HoverCard(props) {
25
+ return createElement(Root, Object.assign({}, props, {
26
+ openDelay: 300
27
+ }));
28
+ };
29
+ HoverCard.Trigger = Trigger;
30
+ HoverCard.Content = Content;
31
+
32
+ export { HoverCard };
33
+ //# sourceMappingURL=HoverCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HoverCard.js","sources":["../../../../src/components/HoverCard/HoverCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport * as HoverCardPrimitive from '@radix-ui/react-hover-card';\nimport { Placement } from '../..';\n\nexport type HoverCardTriggerProps = React.HTMLAttributes<HTMLAnchorElement>;\nconst Trigger = React.forwardRef(function HoverCardTrigger(props: HoverCardTriggerProps, ref: React.Ref<HTMLAnchorElement>) {\n return <HoverCardPrimitive.Trigger {...props} asChild ref={ref} />;\n});\n\nexport type HoverCardContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Set the position of the HoverCard relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\nconst Content = React.forwardRef(function HoverCardContent(externalProps: HoverCardContentProps, ref: React.Ref<HTMLDivElement>) {\n const { placement, ...props } = externalProps;\n const className = cn('bg-white rounded p-3 yt-shadow', props.className);\n\n return <HoverCardPrimitive.Content {...props} className={className} ref={ref} side={placement} />;\n});\n\nexport type HoverCardProps = React.PropsWithChildren<{}>;\n\nexport const HoverCard = (props: HoverCardProps) => {\n return <HoverCardPrimitive.Root {...props} openDelay={300} />;\n};\nHoverCard.Trigger = Trigger;\nHoverCard.Content = Content;\n"],"names":["Trigger","React","HoverCardTrigger","props","ref","HoverCardPrimitive","asChild","Content","HoverCardContent","externalProps","placement","className","cn","side","HoverCard","openDelay"],"mappings":";;;;;;AAMA,IAAMA,OAAO,gBAAGC,UAAA,CAAiB,SAASC,gBAAT,CAA0BC,KAA1B,EAAwDC,GAAxD;AAC7B,SAAOH,aAAA,CAACI,SAAD,oBAAgCF;AAAOG,IAAAA,OAAO;AAACF,IAAAA,GAAG,EAAEA;IAApD,CAAP;AACH,CAFe,CAAhB;AAQA,IAAMG,OAAO,gBAAGN,UAAA,CAAiB,SAASO,gBAAT,CAA0BC,aAA1B,EAAgEL,GAAhE;AAC7B,MAAQM,SAAR,GAAgCD,aAAhC,CAAQC,SAAR;AAAA,MAAsBP,KAAtB,iCAAgCM,aAAhC;;AACA,MAAME,SAAS,GAAGC,EAAE,CAAC,gCAAD,EAAmCT,KAAK,CAACQ,SAAzC,CAApB;AAEA,SAAOV,aAAA,CAACI,SAAD,oBAAgCF;AAAOQ,IAAAA,SAAS,EAAEA;AAAWP,IAAAA,GAAG,EAAEA;AAAKS,IAAAA,IAAI,EAAEH;IAA7E,CAAP;AACH,CALe,CAAhB;IASaI,SAAS,GAAG,SAAZA,SAAY,CAACX,KAAD;AACrB,SAAOF,aAAA,CAACI,IAAD,oBAA6BF;AAAOY,IAAAA,SAAS,EAAE;IAA/C,CAAP;AACH;AACDD,SAAS,CAACd,OAAV,GAAoBA,OAApB;AACAc,SAAS,CAACP,OAAV,GAAoBA,OAApB;;;;"}
@@ -29,6 +29,7 @@ import '../Field/Field.js';
29
29
  import '../Form/Form.js';
30
30
  import '../Group/Group.js';
31
31
  import '../Hanger/Hanger.js';
32
+ import '../HoverCard/HoverCard.js';
32
33
  import '../Listbox/Listbox.js';
33
34
  import '../RadioGroup/RadioGroup.js';
34
35
  import '../Menu/Menu.js';
@@ -64,11 +65,15 @@ var SearchInput = /*#__PURE__*/forwardRef(function SearchInput(_ref, ref) {
64
65
  };
65
66
 
66
67
  var handleKeyDown = function handleKeyDown(event) {
68
+ var _props$onKeyDown;
69
+
67
70
  var isEnterKeyPressed = event.keyCode === keycode('enter');
68
71
 
69
72
  if (isEnterKeyPressed) {
70
73
  handleClick();
71
74
  }
75
+
76
+ (_props$onKeyDown = props.onKeyDown) === null || _props$onKeyDown === void 0 ? void 0 : _props$onKeyDown.call(props, event);
72
77
  };
73
78
 
74
79
  return createElement(Input, Object.assign({
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.js","sources":["../../../../src/components/SearchInput/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport keycode from 'keycode';\nimport { Input, InputProps, useLocalization, IconButton } from '../..';\n\nexport type SearchInputTexts = {\n /**\n * aria-label text for input\n */\n inputLabel: string;\n};\n\nexport type SearchInputProps = Omit<InputProps, 'icon'> & {\n /** Current input value will be passed to the method. In order to get the value, the component must be controlled otherwise value will always be undefined */\n onSearch?: (value: string | number | readonly string[] | undefined) => void;\n};\n\nexport const SearchInput = React.forwardRef(function SearchInput(\n { onSearch, ...props }: SearchInputProps,\n ref: React.Ref<HTMLInputElement>\n) {\n const { texts } = useLocalization();\n\n const handleClick = (): void => {\n if (!props.disabled) {\n onSearch?.(props.value);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n const isEnterKeyPressed = event.keyCode === keycode('enter');\n\n if (isEnterKeyPressed) {\n handleClick();\n }\n };\n\n return (\n <Input\n aria-label={texts.searchInput.inputLabel}\n {...props}\n button={\n <IconButton\n icon=\"search\"\n className=\"!border-transparent !bg-transparent focus:!border-transparent peer-focus:!border-transparent peer-focus:peer-active:!border-transparent\"\n disabled={props.disabled}\n onClick={handleClick}\n />\n }\n onKeyDown={handleKeyDown}\n ref={ref}\n type=\"search\"\n />\n );\n});\n"],"names":["SearchInput","React","ref","onSearch","props","useLocalization","texts","handleClick","disabled","value","handleKeyDown","event","isEnterKeyPressed","keyCode","keycode","Input","searchInput","inputLabel","button","IconButton","icon","className","onClick","onKeyDown","type"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgBaA,WAAW,gBAAGC,UAAA,CAAiB,SAASD,WAAT,OAExCE,GAFwC;MACtCC,gBAAAA;MAAaC;;AAGf,yBAAkBC,eAAe,EAAjC;AAAA,MAAQC,KAAR,oBAAQA,KAAR;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc;AAChB,QAAI,CAACH,KAAK,CAACI,QAAX,EAAqB;AACjBL,MAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGC,KAAK,CAACK,KAAT,CAAR;AACH;AACJ,GAJD;;AAMA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;AAClB,QAAMC,iBAAiB,GAAGD,KAAK,CAACE,OAAN,KAAkBC,OAAO,CAAC,OAAD,CAAnD;;AAEA,QAAIF,iBAAJ,EAAuB;AACnBL,MAAAA,WAAW;AACd;AACJ,GAND;;AAQA,SACIN,aAAA,CAACc,KAAD;kBACgBT,KAAK,CAACU,WAAN,CAAkBC;KAC1Bb;AACJc,IAAAA,MAAM,EACFjB,aAAA,CAACkB,UAAD;AACIC,MAAAA,IAAI,EAAC;AACLC,MAAAA,SAAS,EAAC;AACVb,MAAAA,QAAQ,EAAEJ,KAAK,CAACI;AAChBc,MAAAA,OAAO,EAAEf;KAJb;AAOJgB,IAAAA,SAAS,EAAEb;AACXR,IAAAA,GAAG,EAAEA;AACLsB,IAAAA,IAAI,EAAC;IAbT,CADJ;AAiBH,CArC0B;;;;"}
1
+ {"version":3,"file":"SearchInput.js","sources":["../../../../src/components/SearchInput/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport keycode from 'keycode';\nimport { Input, InputProps, useLocalization, IconButton } from '../..';\n\nexport type SearchInputTexts = {\n /**\n * aria-label text for input\n */\n inputLabel: string;\n};\n\nexport type SearchInputProps = Omit<InputProps, 'icon'> & {\n /** Current input value will be passed to the method. In order to get the value, the component must be controlled otherwise value will always be undefined */\n onSearch?: (value: string | number | readonly string[] | undefined) => void;\n};\n\nexport const SearchInput = React.forwardRef(function SearchInput(\n { onSearch, ...props }: SearchInputProps,\n ref: React.Ref<HTMLInputElement>\n) {\n const { texts } = useLocalization();\n\n const handleClick = (): void => {\n if (!props.disabled) {\n onSearch?.(props.value);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n const isEnterKeyPressed = event.keyCode === keycode('enter');\n\n if (isEnterKeyPressed) {\n handleClick();\n }\n\n props.onKeyDown?.(event);\n };\n\n return (\n <Input\n aria-label={texts.searchInput.inputLabel}\n {...props}\n button={\n <IconButton\n icon=\"search\"\n className=\"!border-transparent !bg-transparent focus:!border-transparent peer-focus:!border-transparent peer-focus:peer-active:!border-transparent\"\n disabled={props.disabled}\n onClick={handleClick}\n />\n }\n onKeyDown={handleKeyDown}\n ref={ref}\n type=\"search\"\n />\n );\n});\n"],"names":["SearchInput","React","ref","onSearch","props","useLocalization","texts","handleClick","disabled","value","handleKeyDown","event","isEnterKeyPressed","keyCode","keycode","onKeyDown","Input","searchInput","inputLabel","button","IconButton","icon","className","onClick","type"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgBaA,WAAW,gBAAGC,UAAA,CAAiB,SAASD,WAAT,OAExCE,GAFwC;MACtCC,gBAAAA;MAAaC;;AAGf,yBAAkBC,eAAe,EAAjC;AAAA,MAAQC,KAAR,oBAAQA,KAAR;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc;AAChB,QAAI,CAACH,KAAK,CAACI,QAAX,EAAqB;AACjBL,MAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGC,KAAK,CAACK,KAAT,CAAR;AACH;AACJ,GAJD;;AAMA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;;;AAClB,QAAMC,iBAAiB,GAAGD,KAAK,CAACE,OAAN,KAAkBC,OAAO,CAAC,OAAD,CAAnD;;AAEA,QAAIF,iBAAJ,EAAuB;AACnBL,MAAAA,WAAW;AACd;;AAED,wBAAAH,KAAK,CAACW,SAAN,2EAAAX,KAAK,EAAaO,KAAb,CAAL;AACH,GARD;;AAUA,SACIV,aAAA,CAACe,KAAD;kBACgBV,KAAK,CAACW,WAAN,CAAkBC;KAC1Bd;AACJe,IAAAA,MAAM,EACFlB,aAAA,CAACmB,UAAD;AACIC,MAAAA,IAAI,EAAC;AACLC,MAAAA,SAAS,EAAC;AACVd,MAAAA,QAAQ,EAAEJ,KAAK,CAACI;AAChBe,MAAAA,OAAO,EAAEhB;KAJb;AAOJQ,IAAAA,SAAS,EAAEL;AACXR,IAAAA,GAAG,EAAEA;AACLsB,IAAAA,IAAI,EAAC;IAbT,CADJ;AAiBH,CAvC0B;;;;"}
@@ -85,7 +85,6 @@ var getActionProps = function getActionProps(action, row) {
85
85
  'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,
86
86
  disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,
87
87
  onClick: function onClick(event) {
88
- event.persist();
89
88
  action.onClick(row, event);
90
89
  }
91
90
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport keycode from 'keycode';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Provider';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: TableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x);\n\n if (row) {\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach((action: RowAction<any>) => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n event.persist();\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.keyCode === keycode('escape') && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}\n >\n {action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","persist","EditModeActions","React","useEffect","listener","keyCode","keycode","target","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","key","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":"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"}
1
+ {"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport keycode from 'keycode';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Provider';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: TableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x);\n\n if (row) {\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach((action: RowAction<any>) => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.keyCode === keycode('escape') && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}\n >\n {action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","EditModeActions","React","useEffect","listener","keyCode","keycode","target","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","persist","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","key","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -26,6 +26,7 @@ export { Field } from './components/Field/Field.js';
26
26
  export { Form } from './components/Form/Form.js';
27
27
  export { Group } from './components/Group/Group.js';
28
28
  export { Hanger, Title } from './components/Hanger/Hanger.js';
29
+ export { HoverCard } from './components/HoverCard/HoverCard.js';
29
30
  export { SearchInput } from './components/SearchInput/SearchInput.js';
30
31
  export { Listbox, MultiListbox } from './components/Listbox/Listbox.js';
31
32
  export { RadioGroup, findByValue, getRadioGroupItemValueAsString, useRadioGroup } from './components/RadioGroup/RadioGroup.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export * from './components/Field/Field';
13
13
  export * from './components/Form/Form';
14
14
  export * from './components/Group/Group';
15
15
  export * from './components/Hanger/Hanger';
16
+ export * from './components/HoverCard/HoverCard';
16
17
  export * from './components/Icon/Icon';
17
18
  export * from './components/IconButton/IconButton';
18
19
  export * from './components/Input/Input';