@deephaven/components 0.22.1-dhe-vite.2 → 0.22.2-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,7 +37,7 @@ import './DropdownMenu.scss';
37
37
  export declare type DropdownAction = ContextAction & {
38
38
  actions?: never;
39
39
  };
40
- export declare type DropdownActions = DropdownAction | DropdownAction[];
40
+ export declare type DropdownActions = (() => DropdownAction[]) | DropdownAction | DropdownAction[];
41
41
  declare type DropdownMenuProps = {
42
42
  actions: DropdownActions;
43
43
  isShown: boolean | null;
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/menu-actions/DropdownMenu.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAa,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,qBAAqB,CAAC;AAE7B,oBAAY,cAAc,GAAG,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjE,oBAAY,eAAe,GAAG,cAAc,GAAG,cAAc,EAAE,CAAC;AAEhE,aAAK,iBAAiB,GAAG;IAEvB,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,YAAY,IAAI,IAAI,CAAC;IACrB,YAAY,IAAI,IAAI,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,cAAM,YAAa,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACzD,MAAM,CAAC,YAAY;;wBAED,IAAI;wBAGJ,IAAI;;;;;;MAQpB;gBAEU,KAAK,EAAE,iBAAiB;IAcpC,iBAAiB,IAAI,IAAI;IAazB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAetD,oBAAoB,IAAI,IAAI;IAM5B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE3C,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAEvB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,EAAE,OAAO,CAAC;IAEhB,SAAS,IAAI,IAAI;IAIjB,QAAQ,IAAI,IAAI;IAOhB,cAAc,IAAI,IAAI;IAItB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAO3B,eAAe,IAAI,IAAI;IAIvB,YAAY,IAAI,IAAI;IAOpB,MAAM,IAAI,GAAG,CAAC,OAAO;CAuCtB;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/menu-actions/DropdownMenu.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAa,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,qBAAqB,CAAC;AAE7B,oBAAY,cAAc,GAAG,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjE,oBAAY,eAAe,GACvB,CAAC,MAAM,cAAc,EAAE,CAAC,GACxB,cAAc,GACd,cAAc,EAAE,CAAC;AAErB,aAAK,iBAAiB,GAAG;IAEvB,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,YAAY,IAAI,IAAI,CAAC;IACrB,YAAY,IAAI,IAAI,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,cAAM,YAAa,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACzD,MAAM,CAAC,YAAY;;wBAED,IAAI;wBAGJ,IAAI;;;;;;MAQpB;gBAEU,KAAK,EAAE,iBAAiB;IAcpC,iBAAiB,IAAI,IAAI;IAazB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAetD,oBAAoB,IAAI,IAAI;IAM5B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE3C,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAEvB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,EAAE,OAAO,CAAC;IAEhB,SAAS,IAAI,IAAI;IAIjB,QAAQ,IAAI,IAAI;IAOhB,cAAc,IAAI,IAAI;IAItB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAO3B,eAAe,IAAI,IAAI;IAIvB,YAAY,IAAI,IAAI;IAOpB,MAAM,IAAI,GAAG,CAAC,OAAO;CAuCtB;AAED,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.js","names":["React","PureComponent","classNames","Popper","Menu","DropdownMenu","constructor","props","handleClick","bind","handleCloseMenu","handleExited","container","createRef","parent","popper","isOpen","componentDidMount","isShown","current","parentElement","addEventListener","openMenu","componentDidUpdate","prevProps","window","requestAnimationFrame","closeMenu","componentWillUnmount","removeEventListener","hide","show","scheduleUpdate","e","preventDefault","stopPropagation","onMenuClosed","render","actions","onMenuOpened","popperClassName","dataTestId","menuStyle","options","popperOptions","placement","separateKeyboardMouse","undefined"],"sources":["../../src/menu-actions/DropdownMenu.tsx"],"sourcesContent":["/**\n * Add dropdown menu that you add onto any component.\n *\n * Similar to the context-actions package, accepts list of actions to create a dropdown menu.\n * Note: Does not support nested sub-menus.\n *\n * Usage:\n * let actions = [{\n * title: 'My Action',\n * action: () => { alert('My Action Clicked!') }\n * icon: faPrint, // Limited to FontAwesome icons for now.\n * shortcut: Shortcut, // Shortcut class instance\n * group: ContextActions.groups.default, // What group to group the context action with\n * order: null // Int where to order within group\n * }];\n *\n * Usage:\n * 1. Auto bind click to open event to parent\n * <div>\n * Click in this container\n * <DropdownMenu actions={actions}/>\n * </div>\n *\n * 2. Control via prop\n * <div>\n * DropdownMenu will not react to the click event if isShown prop is used\n * <DropdownMenu actions={actions} isShown={isShown} />\n * </div>\n *\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { PopperOptions } from 'popper.js';\nimport { Popper } from '../popper';\nimport Menu, { MenuOptions } from './Menu';\nimport { ContextAction } from '../context-actions/ContextActionUtils';\nimport './DropdownMenu.scss';\n\nexport type DropdownAction = ContextAction & { actions?: never };\n\nexport type DropdownActions = DropdownAction | DropdownAction[];\n\ntype DropdownMenuProps = {\n // Override to prevent nested lists\n actions: DropdownActions;\n isShown: boolean | null;\n onMenuClosed(): void;\n onMenuOpened(): void;\n options: MenuOptions;\n popperOptions: PopperOptions;\n popperClassName: string;\n menuStyle: React.CSSProperties;\n 'data-testid'?: string;\n};\n\nclass DropdownMenu extends PureComponent<DropdownMenuProps> {\n static defaultProps = {\n isShown: null,\n onMenuClosed(): void {\n // no-op\n },\n onMenuOpened(): void {\n // no-op\n },\n options: {},\n popperOptions: {},\n popperClassName: '',\n menuStyle: {},\n 'data-testid': undefined,\n };\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleCloseMenu = this.handleCloseMenu.bind(this);\n this.handleExited = this.handleExited.bind(this);\n\n this.container = React.createRef();\n this.parent = null;\n this.popper = React.createRef();\n\n this.isOpen = false;\n }\n\n componentDidMount(): void {\n const { isShown } = this.props;\n\n if (isShown === null) {\n if (this.container.current?.parentElement) {\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('click', this.handleClick);\n }\n } else if (isShown) {\n this.openMenu();\n }\n }\n\n componentDidUpdate(prevProps: DropdownMenuProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown !== null && isShown) {\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n this.openMenu();\n });\n } else {\n this.closeMenu();\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this.parent) {\n this.parent.removeEventListener('click', this.handleClick);\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n parent: Element | null;\n\n popper: React.RefObject<Popper>;\n\n isOpen: boolean;\n\n closeMenu(): void {\n this.popper.current?.hide();\n }\n\n openMenu(): void {\n if (this.popper.current && !this.isOpen) {\n this.popper.current.show();\n this.isOpen = true;\n }\n }\n\n scheduleUpdate(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n\n this.openMenu();\n }\n\n handleCloseMenu(): void {\n this.closeMenu();\n }\n\n handleExited(): void {\n this.isOpen = false;\n\n const { onMenuClosed } = this.props;\n onMenuClosed();\n }\n\n render(): JSX.Element {\n const {\n actions,\n onMenuOpened,\n popperClassName,\n 'data-testid': dataTestId,\n } = this.props;\n const { menuStyle } = this.props;\n let { options, popperOptions } = this.props;\n popperOptions = { placement: 'bottom', ...popperOptions };\n options = {\n separateKeyboardMouse: true,\n ...options,\n };\n return (\n <div\n className=\"menu-actions-listener\"\n ref={this.container}\n data-testid={dataTestId}\n >\n <Popper\n ref={this.popper}\n options={popperOptions}\n className={classNames('menu-popper', popperClassName)}\n onExited={this.handleExited}\n closeOnBlur\n interactive\n >\n <Menu\n actions={actions}\n closeMenu={this.handleCloseMenu}\n onMenuOpened={onMenuOpened}\n options={options}\n menuStyle={menuStyle}\n />\n </Popper>\n </div>\n );\n }\n}\n\nexport default DropdownMenu;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownMenu.js","names":["React","PureComponent","classNames","Popper","Menu","DropdownMenu","constructor","props","handleClick","bind","handleCloseMenu","handleExited","container","createRef","parent","popper","isOpen","componentDidMount","isShown","current","parentElement","addEventListener","openMenu","componentDidUpdate","prevProps","window","requestAnimationFrame","closeMenu","componentWillUnmount","removeEventListener","hide","show","scheduleUpdate","e","preventDefault","stopPropagation","onMenuClosed","render","actions","onMenuOpened","popperClassName","dataTestId","menuStyle","options","popperOptions","placement","separateKeyboardMouse","undefined"],"sources":["../../src/menu-actions/DropdownMenu.tsx"],"sourcesContent":["/**\n * Add dropdown menu that you add onto any component.\n *\n * Similar to the context-actions package, accepts list of actions to create a dropdown menu.\n * Note: Does not support nested sub-menus.\n *\n * Usage:\n * let actions = [{\n * title: 'My Action',\n * action: () => { alert('My Action Clicked!') }\n * icon: faPrint, // Limited to FontAwesome icons for now.\n * shortcut: Shortcut, // Shortcut class instance\n * group: ContextActions.groups.default, // What group to group the context action with\n * order: null // Int where to order within group\n * }];\n *\n * Usage:\n * 1. Auto bind click to open event to parent\n * <div>\n * Click in this container\n * <DropdownMenu actions={actions}/>\n * </div>\n *\n * 2. Control via prop\n * <div>\n * DropdownMenu will not react to the click event if isShown prop is used\n * <DropdownMenu actions={actions} isShown={isShown} />\n * </div>\n *\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { PopperOptions } from 'popper.js';\nimport { Popper } from '../popper';\nimport Menu, { MenuOptions } from './Menu';\nimport { ContextAction } from '../context-actions/ContextActionUtils';\nimport './DropdownMenu.scss';\n\nexport type DropdownAction = ContextAction & { actions?: never };\n\nexport type DropdownActions =\n | (() => DropdownAction[])\n | DropdownAction\n | DropdownAction[];\n\ntype DropdownMenuProps = {\n // Override to prevent nested lists\n actions: DropdownActions;\n isShown: boolean | null;\n onMenuClosed(): void;\n onMenuOpened(): void;\n options: MenuOptions;\n popperOptions: PopperOptions;\n popperClassName: string;\n menuStyle: React.CSSProperties;\n 'data-testid'?: string;\n};\n\nclass DropdownMenu extends PureComponent<DropdownMenuProps> {\n static defaultProps = {\n isShown: null,\n onMenuClosed(): void {\n // no-op\n },\n onMenuOpened(): void {\n // no-op\n },\n options: {},\n popperOptions: {},\n popperClassName: '',\n menuStyle: {},\n 'data-testid': undefined,\n };\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleCloseMenu = this.handleCloseMenu.bind(this);\n this.handleExited = this.handleExited.bind(this);\n\n this.container = React.createRef();\n this.parent = null;\n this.popper = React.createRef();\n\n this.isOpen = false;\n }\n\n componentDidMount(): void {\n const { isShown } = this.props;\n\n if (isShown === null) {\n if (this.container.current?.parentElement) {\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('click', this.handleClick);\n }\n } else if (isShown) {\n this.openMenu();\n }\n }\n\n componentDidUpdate(prevProps: DropdownMenuProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown !== null && isShown) {\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n this.openMenu();\n });\n } else {\n this.closeMenu();\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this.parent) {\n this.parent.removeEventListener('click', this.handleClick);\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n parent: Element | null;\n\n popper: React.RefObject<Popper>;\n\n isOpen: boolean;\n\n closeMenu(): void {\n this.popper.current?.hide();\n }\n\n openMenu(): void {\n if (this.popper.current && !this.isOpen) {\n this.popper.current.show();\n this.isOpen = true;\n }\n }\n\n scheduleUpdate(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n\n this.openMenu();\n }\n\n handleCloseMenu(): void {\n this.closeMenu();\n }\n\n handleExited(): void {\n this.isOpen = false;\n\n const { onMenuClosed } = this.props;\n onMenuClosed();\n }\n\n render(): JSX.Element {\n const {\n actions,\n onMenuOpened,\n popperClassName,\n 'data-testid': dataTestId,\n } = this.props;\n const { menuStyle } = this.props;\n let { options, popperOptions } = this.props;\n popperOptions = { placement: 'bottom', ...popperOptions };\n options = {\n separateKeyboardMouse: true,\n ...options,\n };\n return (\n <div\n className=\"menu-actions-listener\"\n ref={this.container}\n data-testid={dataTestId}\n >\n <Popper\n ref={this.popper}\n options={popperOptions}\n className={classNames('menu-popper', popperClassName)}\n onExited={this.handleExited}\n closeOnBlur\n interactive\n >\n <Menu\n actions={actions}\n closeMenu={this.handleCloseMenu}\n onMenuOpened={onMenuOpened}\n options={options}\n menuStyle={menuStyle}\n />\n </Popper>\n </div>\n );\n }\n}\n\nexport default DropdownMenu;\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare type MenuOptions = {
6
6
  initialKeyboardIndex?: number;
7
7
  };
8
8
  declare type MenuProps = {
9
- actions: ContextAction | ContextAction[];
9
+ actions: (() => ContextAction[]) | ContextAction | ContextAction[];
10
10
  closeMenu(closeAll: boolean): void;
11
11
  onMenuClosed(menu: Menu): void;
12
12
  onMenuOpened(menu: Menu): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/menu-actions/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAA2B,EACzB,aAAa,EACd,MAAM,uCAAuC,CAAC;AAG/C,oBAAY,WAAW,GAAG;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,aAAK,SAAS,GAAG;IACf,OAAO,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;IACzC,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,aAAK,SAAS,GAAG;IACf,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AAEH,cAAM,IAAK,SAAQ,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;IACpD,MAAM,CAAC,YAAY;qBACJ,IAAI;wBAGD,IAAI;wBAGJ,IAAI;;;;MAMpB;gBAEU,KAAK,EAAE,SAAS;IAuB5B,iBAAiB,IAAI,IAAI;IAYzB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAO9C,oBAAoB,IAAI,IAAI;IAI5B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE3C,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAEzB,GAAG,EAAE,MAAM,CAAC;IAEZ,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAajC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAYrC,aAAa,IAAI,MAAM;IAKvB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC,QAAQ,IAAI,IAAI;IAoBhB,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI;IAiD3C,SAAS,CAAC,QAAQ,UAAQ,GAAG,IAAI;IASjC,eAAe,IAAI,IAAI;IAIvB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI;IAc3E,uBAAuB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAMtD,gBAAgB,IAAI,IAAI;IAIxB,MAAM,IAAI,GAAG,CAAC,OAAO;CA4CtB;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/menu-actions/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAA2B,EACzB,aAAa,EACd,MAAM,uCAAuC,CAAC;AAG/C,oBAAY,WAAW,GAAG;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,aAAK,SAAS,GAAG;IACf,OAAO,EAAE,CAAC,MAAM,aAAa,EAAE,CAAC,GAAG,aAAa,GAAG,aAAa,EAAE,CAAC;IACnE,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,aAAK,SAAS,GAAG;IACf,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AAEH,cAAM,IAAK,SAAQ,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;IACpD,MAAM,CAAC,YAAY;qBACJ,IAAI;wBAGD,IAAI;wBAGJ,IAAI;;;;MAMpB;gBAEU,KAAK,EAAE,SAAS;IAsB5B,iBAAiB,IAAI,IAAI;IAYzB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAO9C,oBAAoB,IAAI,IAAI;IAI5B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE3C,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAEzB,GAAG,EAAE,MAAM,CAAC;IAEZ,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAajC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAYrC,aAAa,IAAI,MAAM;IAKvB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC,QAAQ,IAAI,IAAI;IAoBhB,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI;IAiD3C,SAAS,CAAC,QAAQ,UAAQ,GAAG,IAAI;IASjC,eAAe,IAAI,IAAI;IAIvB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI;IAc3E,uBAAuB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAMtD,gBAAgB,IAAI,IAAI;IAIxB,MAAM,IAAI,GAAG,CAAC,OAAO;CA4CtB;AAED,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","names":["React","PureComponent","ContextActionUtils","ContextMenuItem","Menu","constructor","props","handleKeyDown","bind","handleMenuItemClick","handleMenuItemMouseMove","handleMouseLeave","handleCloseMenu","container","createRef","oldFocus","document","activeElement","rAF","options","keyboardIndex","initialKeyboardIndex","state","menuItems","mouseIndex","componentDidMount","initMenu","window","requestAnimationFrame","current","focus","onMenuOpened","componentDidUpdate","prevProps","actions","componentWillUnmount","cancelAnimationFrame","getKeyboardIndex","separateKeyboardMouse","undefined","getMouseIndex","setKeyboardIndex","index","setState","setMouseIndex","getMenuItems","length","sortActions","concat","e","newFocus","key","shiftKey","getNextMenuItem","closeMenu","HTMLElement","preventDefault","stopPropagation","closeAll","onMenuClosed","menuItem","disabled","action","focusIndex","indexOf","render","menuItemElements","dataTestId","i","group","push","menuItemElement","menuStyle"],"sources":["../../src/menu-actions/Menu.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport ContextActionUtils, {\n ContextAction,\n} from '../context-actions/ContextActionUtils';\nimport ContextMenuItem from '../context-actions/ContextMenuItem';\n\nexport type MenuOptions = {\n doNotVerifyPosition?: boolean;\n separateKeyboardMouse?: boolean;\n initialKeyboardIndex?: number;\n};\n\ntype MenuProps = {\n actions: ContextAction | ContextAction[];\n closeMenu(closeAll: boolean): void;\n onMenuClosed(menu: Menu): void;\n onMenuOpened(menu: Menu): void;\n options: MenuOptions;\n menuStyle: React.CSSProperties;\n 'data-testid'?: string;\n};\n\ntype MenuState = {\n menuItems: ContextAction[];\n keyboardIndex: number;\n mouseIndex: number;\n};\n\n/**\n * Do not use this class directly. Use DropdownMenu instead.\n *\n * Generates list from actions for use by DropdownMenu.\n * It has beem split from the context-actions component, due to divergering requirements,\n * but still re-uses styling from context-menu. Depending on how usage evolves, may get split further.\n *\n */\n\nclass Menu extends PureComponent<MenuProps, MenuState> {\n static defaultProps = {\n closeMenu(): void {\n // no-op\n },\n onMenuOpened(): void {\n // no-op\n },\n onMenuClosed(): void {\n // no-op\n },\n options: {},\n menuStyle: {},\n 'data-testid': undefined,\n };\n\n constructor(props: MenuProps) {\n super(props);\n\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleMenuItemMouseMove = this.handleMenuItemMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleCloseMenu = this.handleCloseMenu.bind(this);\n\n this.container = React.createRef();\n this.oldFocus = document.activeElement;\n this.rAF = 0;\n\n const { options } = props;\n const keyboardIndex = options.initialKeyboardIndex ?? -1;\n\n this.state = {\n menuItems: [],\n keyboardIndex,\n mouseIndex: -1,\n };\n }\n\n componentDidMount(): void {\n this.initMenu();\n\n this.rAF = window.requestAnimationFrame(() => {\n // set initial focus to container so keyboard navigation works\n // components can still override focus in onMenuOpened callback\n this.container.current?.focus();\n const { onMenuOpened } = this.props;\n onMenuOpened(this);\n });\n }\n\n componentDidUpdate(prevProps: MenuProps): void {\n const { actions } = this.props;\n if (prevProps.actions !== actions) {\n this.initMenu();\n }\n }\n\n componentWillUnmount(): void {\n cancelAnimationFrame(this.rAF);\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n oldFocus: Element | null;\n\n rAF: number;\n\n getKeyboardIndex(): number | null {\n const { options } = this.props;\n if (\n options.separateKeyboardMouse !== undefined &&\n options.separateKeyboardMouse\n ) {\n const { keyboardIndex } = this.state;\n return keyboardIndex;\n }\n\n return this.getMouseIndex();\n }\n\n setKeyboardIndex(index: number): void {\n const { options } = this.props;\n if (\n options.separateKeyboardMouse !== undefined &&\n options.separateKeyboardMouse\n ) {\n this.setState({ keyboardIndex: index });\n } else {\n this.setMouseIndex(index);\n }\n }\n\n getMouseIndex(): number {\n const { mouseIndex } = this.state;\n return mouseIndex;\n }\n\n setMouseIndex(index: number): void {\n this.setState({ mouseIndex: index });\n }\n\n initMenu(): void {\n // cancel any pending close\n cancelAnimationFrame(this.rAF);\n\n this.setState({\n menuItems: [],\n });\n\n const { actions } = this.props;\n const menuItems = ContextActionUtils.getMenuItems(actions, false);\n\n if (menuItems.length > 0) {\n this.setState(state => ({\n menuItems: ContextActionUtils.sortActions(\n state.menuItems.concat(menuItems)\n ),\n }));\n }\n }\n\n handleKeyDown(e: React.KeyboardEvent): void {\n const { menuItems } = this.state;\n const oldFocus = this.getKeyboardIndex();\n let newFocus = oldFocus;\n\n if (e.key === 'Enter' || e.key === ' ') {\n if (oldFocus != null && oldFocus >= 0 && oldFocus < menuItems.length) {\n this.handleMenuItemClick(menuItems[oldFocus], e);\n }\n return;\n }\n\n if (e.key === 'Escape') {\n newFocus = null;\n } else if (\n e.key === 'ArrowUp' ||\n (e.key === 'Tab' && e.shiftKey === true)\n ) {\n newFocus = ContextActionUtils.getNextMenuItem(\n newFocus ?? 0,\n -1,\n menuItems\n );\n } else if (\n e.key === 'ArrowDown' ||\n (e.key === 'Tab' && e.shiftKey === false)\n ) {\n newFocus = ContextActionUtils.getNextMenuItem(\n newFocus ?? 0,\n 1,\n menuItems\n );\n }\n\n if (oldFocus !== newFocus) {\n if (newFocus !== null) {\n this.setKeyboardIndex(newFocus);\n } else {\n this.closeMenu();\n if (this.oldFocus instanceof HTMLElement) {\n this.oldFocus.focus();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n closeMenu(closeAll = false): void {\n const { closeMenu, onMenuClosed } = this.props;\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n closeMenu(closeAll);\n onMenuClosed(this);\n });\n }\n\n handleCloseMenu(): void {\n this.closeMenu();\n }\n\n handleMenuItemClick(menuItem: ContextAction, e: React.SyntheticEvent): void {\n e.preventDefault();\n e.stopPropagation();\n\n if (\n menuItem != null &&\n (menuItem.disabled === undefined || !menuItem.disabled) &&\n menuItem.action != null\n ) {\n menuItem.action();\n this.closeMenu(true);\n }\n }\n\n handleMenuItemMouseMove(menuItem: ContextAction): void {\n const { menuItems } = this.state;\n const focusIndex = menuItems.indexOf(menuItem);\n this.setMouseIndex(focusIndex);\n }\n\n handleMouseLeave(): void {\n this.setMouseIndex(-1);\n }\n\n render(): JSX.Element {\n const menuItemElements = [];\n const { 'data-testid': dataTestId } = this.props;\n const { keyboardIndex, menuItems, mouseIndex } = this.state;\n for (let i = 0; i < menuItems.length; i += 1) {\n const menuItem = menuItems[i];\n\n if (i > 0 && menuItem.group !== menuItems[i - 1].group) {\n menuItemElements.push(<hr key={`${i}.separator`} />);\n }\n\n const menuItemElement = (\n <ContextMenuItem\n key={i}\n isKeyboardSelected={keyboardIndex === i}\n isMouseSelected={mouseIndex === i}\n menuItem={menuItem}\n closeMenu={this.handleCloseMenu}\n onMenuItemClick={this.handleMenuItemClick}\n onMenuItemMouseMove={this.handleMenuItemMouseMove}\n onMenuItemContextMenu={() => false}\n />\n );\n\n menuItemElements.push(menuItemElement);\n }\n\n const { menuStyle } = this.props;\n\n return (\n <div\n className=\"context-menu-container\"\n style={{ ...menuStyle }}\n ref={this.container}\n onKeyDown={this.handleKeyDown}\n onMouseLeave={this.handleMouseLeave}\n role=\"menuitem\"\n tabIndex={0}\n data-testid={dataTestId}\n >\n {menuItemElements}\n </div>\n );\n }\n}\n\nexport default Menu;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","names":["React","PureComponent","ContextActionUtils","ContextMenuItem","Menu","constructor","props","handleKeyDown","bind","handleMenuItemClick","handleMenuItemMouseMove","handleMouseLeave","handleCloseMenu","container","createRef","oldFocus","document","activeElement","rAF","options","keyboardIndex","initialKeyboardIndex","state","menuItems","mouseIndex","componentDidMount","initMenu","window","requestAnimationFrame","current","focus","onMenuOpened","componentDidUpdate","prevProps","actions","componentWillUnmount","cancelAnimationFrame","getKeyboardIndex","separateKeyboardMouse","undefined","getMouseIndex","setKeyboardIndex","index","setState","setMouseIndex","getMenuItems","length","sortActions","concat","e","newFocus","key","shiftKey","getNextMenuItem","closeMenu","HTMLElement","preventDefault","stopPropagation","closeAll","onMenuClosed","menuItem","disabled","action","focusIndex","indexOf","render","menuItemElements","dataTestId","i","group","push","menuItemElement","menuStyle"],"sources":["../../src/menu-actions/Menu.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport ContextActionUtils, {\n ContextAction,\n} from '../context-actions/ContextActionUtils';\nimport ContextMenuItem from '../context-actions/ContextMenuItem';\n\nexport type MenuOptions = {\n doNotVerifyPosition?: boolean;\n separateKeyboardMouse?: boolean;\n initialKeyboardIndex?: number;\n};\n\ntype MenuProps = {\n actions: (() => ContextAction[]) | ContextAction | ContextAction[];\n closeMenu(closeAll: boolean): void;\n onMenuClosed(menu: Menu): void;\n onMenuOpened(menu: Menu): void;\n options: MenuOptions;\n menuStyle: React.CSSProperties;\n 'data-testid'?: string;\n};\n\ntype MenuState = {\n menuItems: ContextAction[];\n keyboardIndex: number;\n mouseIndex: number;\n};\n\n/**\n * Do not use this class directly. Use DropdownMenu instead.\n *\n * Generates list from actions for use by DropdownMenu.\n * It has beem split from the context-actions component, due to divergering requirements,\n * but still re-uses styling from context-menu. Depending on how usage evolves, may get split further.\n *\n */\n\nclass Menu extends PureComponent<MenuProps, MenuState> {\n static defaultProps = {\n closeMenu(): void {\n // no-op\n },\n onMenuOpened(): void {\n // no-op\n },\n onMenuClosed(): void {\n // no-op\n },\n options: {},\n menuStyle: {},\n 'data-testid': undefined,\n };\n\n constructor(props: MenuProps) {\n super(props);\n\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleMenuItemMouseMove = this.handleMenuItemMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleCloseMenu = this.handleCloseMenu.bind(this);\n\n this.container = React.createRef();\n this.oldFocus = document.activeElement;\n this.rAF = 0;\n\n const { options } = props;\n const keyboardIndex = options.initialKeyboardIndex ?? -1;\n this.state = {\n menuItems: [],\n keyboardIndex,\n mouseIndex: -1,\n };\n }\n\n componentDidMount(): void {\n this.initMenu();\n\n this.rAF = window.requestAnimationFrame(() => {\n // set initial focus to container so keyboard navigation works\n // components can still override focus in onMenuOpened callback\n this.container.current?.focus();\n const { onMenuOpened } = this.props;\n onMenuOpened(this);\n });\n }\n\n componentDidUpdate(prevProps: MenuProps): void {\n const { actions } = this.props;\n if (prevProps.actions !== actions) {\n this.initMenu();\n }\n }\n\n componentWillUnmount(): void {\n cancelAnimationFrame(this.rAF);\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n oldFocus: Element | null;\n\n rAF: number;\n\n getKeyboardIndex(): number | null {\n const { options } = this.props;\n if (\n options.separateKeyboardMouse !== undefined &&\n options.separateKeyboardMouse\n ) {\n const { keyboardIndex } = this.state;\n return keyboardIndex;\n }\n\n return this.getMouseIndex();\n }\n\n setKeyboardIndex(index: number): void {\n const { options } = this.props;\n if (\n options.separateKeyboardMouse !== undefined &&\n options.separateKeyboardMouse\n ) {\n this.setState({ keyboardIndex: index });\n } else {\n this.setMouseIndex(index);\n }\n }\n\n getMouseIndex(): number {\n const { mouseIndex } = this.state;\n return mouseIndex;\n }\n\n setMouseIndex(index: number): void {\n this.setState({ mouseIndex: index });\n }\n\n initMenu(): void {\n // cancel any pending close\n cancelAnimationFrame(this.rAF);\n\n this.setState({\n menuItems: [],\n });\n\n const { actions } = this.props;\n const menuItems = ContextActionUtils.getMenuItems(actions, false);\n\n if (menuItems.length > 0) {\n this.setState(state => ({\n menuItems: ContextActionUtils.sortActions(\n state.menuItems.concat(menuItems)\n ),\n }));\n }\n }\n\n handleKeyDown(e: React.KeyboardEvent): void {\n const { menuItems } = this.state;\n const oldFocus = this.getKeyboardIndex();\n let newFocus = oldFocus;\n\n if (e.key === 'Enter' || e.key === ' ') {\n if (oldFocus != null && oldFocus >= 0 && oldFocus < menuItems.length) {\n this.handleMenuItemClick(menuItems[oldFocus], e);\n }\n return;\n }\n\n if (e.key === 'Escape') {\n newFocus = null;\n } else if (\n e.key === 'ArrowUp' ||\n (e.key === 'Tab' && e.shiftKey === true)\n ) {\n newFocus = ContextActionUtils.getNextMenuItem(\n newFocus ?? 0,\n -1,\n menuItems\n );\n } else if (\n e.key === 'ArrowDown' ||\n (e.key === 'Tab' && e.shiftKey === false)\n ) {\n newFocus = ContextActionUtils.getNextMenuItem(\n newFocus ?? 0,\n 1,\n menuItems\n );\n }\n\n if (oldFocus !== newFocus) {\n if (newFocus !== null) {\n this.setKeyboardIndex(newFocus);\n } else {\n this.closeMenu();\n if (this.oldFocus instanceof HTMLElement) {\n this.oldFocus.focus();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n closeMenu(closeAll = false): void {\n const { closeMenu, onMenuClosed } = this.props;\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n closeMenu(closeAll);\n onMenuClosed(this);\n });\n }\n\n handleCloseMenu(): void {\n this.closeMenu();\n }\n\n handleMenuItemClick(menuItem: ContextAction, e: React.SyntheticEvent): void {\n e.preventDefault();\n e.stopPropagation();\n\n if (\n menuItem != null &&\n (menuItem.disabled === undefined || !menuItem.disabled) &&\n menuItem.action != null\n ) {\n menuItem.action();\n this.closeMenu(true);\n }\n }\n\n handleMenuItemMouseMove(menuItem: ContextAction): void {\n const { menuItems } = this.state;\n const focusIndex = menuItems.indexOf(menuItem);\n this.setMouseIndex(focusIndex);\n }\n\n handleMouseLeave(): void {\n this.setMouseIndex(-1);\n }\n\n render(): JSX.Element {\n const menuItemElements = [];\n const { 'data-testid': dataTestId } = this.props;\n const { keyboardIndex, menuItems, mouseIndex } = this.state;\n for (let i = 0; i < menuItems.length; i += 1) {\n const menuItem = menuItems[i];\n\n if (i > 0 && menuItem.group !== menuItems[i - 1].group) {\n menuItemElements.push(<hr key={`${i}.separator`} />);\n }\n\n const menuItemElement = (\n <ContextMenuItem\n key={i}\n isKeyboardSelected={keyboardIndex === i}\n isMouseSelected={mouseIndex === i}\n menuItem={menuItem}\n closeMenu={this.handleCloseMenu}\n onMenuItemClick={this.handleMenuItemClick}\n onMenuItemMouseMove={this.handleMenuItemMouseMove}\n onMenuItemContextMenu={() => false}\n />\n );\n\n menuItemElements.push(menuItemElement);\n }\n\n const { menuStyle } = this.props;\n\n return (\n <div\n className=\"context-menu-container\"\n style={{ ...menuStyle }}\n ref={this.container}\n onKeyDown={this.handleKeyDown}\n onMouseLeave={this.handleMouseLeave}\n role=\"menuitem\"\n tabIndex={0}\n data-testid={dataTestId}\n >\n {menuItemElements}\n </div>\n );\n }\n}\n\nexport default Menu;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/components",
3
- "version": "0.22.1-dhe-vite.2+0881060",
3
+ "version": "0.22.2-beta.1+0c0142f",
4
4
  "description": "Deephaven React component library",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -23,10 +23,10 @@
23
23
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist ./scss/BaseStyleSheet.scss:./css/BaseStyleSheet.css"
24
24
  },
25
25
  "dependencies": {
26
- "@deephaven/icons": "^0.22.1-dhe-vite.2+0881060",
27
- "@deephaven/log": "^0.22.1-dhe-vite.2+0881060",
28
- "@deephaven/react-hooks": "^0.22.1-dhe-vite.2+0881060",
29
- "@deephaven/utils": "^0.22.1-dhe-vite.2+0881060",
26
+ "@deephaven/icons": "^0.22.2-beta.1+0c0142f",
27
+ "@deephaven/log": "^0.22.2-beta.1+0c0142f",
28
+ "@deephaven/react-hooks": "^0.22.2-beta.1+0c0142f",
29
+ "@deephaven/utils": "^0.22.2-beta.1+0c0142f",
30
30
  "@fortawesome/fontawesome-svg-core": "^6.1.1",
31
31
  "@fortawesome/react-fontawesome": "^0.1.18",
32
32
  "bootstrap": "4.6.2",
@@ -49,8 +49,8 @@
49
49
  "react-dom": "^17.x"
50
50
  },
51
51
  "devDependencies": {
52
- "@deephaven/mocks": "^0.22.1-dhe-vite.2+0881060",
53
- "@deephaven/tsconfig": "^0.22.1-dhe-vite.2+0881060"
52
+ "@deephaven/mocks": "^0.22.2-beta.1+0c0142f",
53
+ "@deephaven/tsconfig": "^0.22.2-beta.1+0c0142f"
54
54
  },
55
55
  "files": [
56
56
  "dist",
@@ -63,5 +63,5 @@
63
63
  "publishConfig": {
64
64
  "access": "public"
65
65
  },
66
- "gitHead": "0881060c1d28adce1a47fec6c44590e737b2a7dc"
66
+ "gitHead": "0c0142f618e2f9979c2d09635ea38931cde7d39f"
67
67
  }