@splunk/dynamic-editors 0.38.0 → 0.38.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.
@@ -1 +1 @@
1
- {"version":3,"file":"SeriesColorsEditor.js","mappings":"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","sources":["webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/ScreenReaderContent\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/visualizations-shared/colorConstants\"","webpack://@splunk/dynamic-editors/./src/editors/ColorEditor.jsx","webpack://@splunk/dynamic-editors/./src/editors/MultiColorPickerEditor.tsx","webpack://@splunk/dynamic-editors/./src/editors/SeriesColorsEditor.tsx","webpack://@splunk/dynamic-editors/./src/editors/formatters/ColorPreview.tsx","webpack://@splunk/dynamic-editors/./src/interfaces/BaseEditorProps.ts","webpack://@splunk/dynamic-editors/./src/shared/AdvancedControlGroup.tsx","webpack://@splunk/dynamic-editors/./src/shared/PreviewWrapper.tsx","webpack://@splunk/dynamic-editors/./src/shared/dimensionConstants.ts","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-icons/SlidersDoubleHorizontal\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Button\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Color\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/ColumnLayout\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/ControlGroup\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Dropdown\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/FormRows\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Menu\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Popover\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Text\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Tooltip\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/themes\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/themes/variables\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/ui-utils/i18n\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/ui-utils/id\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/visualization-color-palettes\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/visualizations-shared/colorUtils\"","webpack://@splunk/dynamic-editors/external commonjs2 \"lodash\"","webpack://@splunk/dynamic-editors/external commonjs2 \"prop-types\"","webpack://@splunk/dynamic-editors/external commonjs2 \"react\"","webpack://@splunk/dynamic-editors/external commonjs2 \"styled-components\"","webpack://@splunk/dynamic-editors/webpack/bootstrap","webpack://@splunk/dynamic-editors/webpack/runtime/compat get default export","webpack://@splunk/dynamic-editors/webpack/runtime/define property getters","webpack://@splunk/dynamic-editors/webpack/runtime/hasOwnProperty shorthand","webpack://@splunk/dynamic-editors/webpack/runtime/make namespace object","webpack://@splunk/dynamic-editors/webpack/startup"],"sourcesContent":["const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@splunk/react-ui/ScreenReaderContent\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@splunk/visualizations-shared/colorConstants\");","import React, { useEffect, useCallback, useState, useMemo } from 'react';\nimport T from 'prop-types';\nimport styled from 'styled-components';\nimport { debounce, noop, toLower } from 'lodash';\nimport { variables } from '@splunk/themes';\nimport Color from '@splunk/react-ui/Color';\nimport Text from '@splunk/react-ui/Text';\nimport { createDOMID } from '@splunk/ui-utils/id';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ScreenReaderContent from '@splunk/react-ui/ScreenReaderContent';\nimport { COLOR_EDITOR_PALETTE } from '@splunk/visualizations-shared/colorConstants';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport ControlGroup from '../shared/AdvancedControlGroup';\n\nconst TextContainer = styled.div`\n max-height: ${variables.inputHeight};\n width: 100%;\n min-width: 0;\n`;\n\n// hardcoded style to sync with SUI color picker's hardcoded dimensions\n// TODO(fkurniawan): see if we can leverage prisma's consolidated textInput out of the box instead of our own component\n// right now, we're using hideInput\nconst StyledText = styled(Text)`\n max-height: ${variables.inputHeight};\n`;\n\n/**\n * Trims the color input and returns the result, or default color if the default color is valid, or previous color\n * @param {String} color The color the user entered\n * @param {String} defaultColor The default color of the component\n * @param {String} prevColor The previous color of the component\n * @returns {String}\n */\nconst getColor = ({ color, defaultColor, prevColor }) => {\n const newColor = typeof color === 'string' ? color.trim() : color;\n\n // color === null is `N/A` in color picker\n if (isColor(newColor) || newColor === null) {\n return newColor;\n }\n\n if (isColor(defaultColor)) {\n return defaultColor;\n }\n\n if (isColor(prevColor) || prevColor === null) {\n return prevColor;\n }\n\n return 'transparent';\n};\n\nconst ColorAndTextWrapper = ({\n id,\n showTextInput,\n color,\n palette,\n handleColorChange,\n labelledBy,\n textWidth,\n value,\n name,\n handleTextColorChange,\n handleKeyPress,\n handleBlur,\n isDisabled,\n}) => {\n const textLabelId = useMemo(() => createDOMID('color-code'), []);\n\n return (\n <>\n <div>\n <Color\n key=\"color-editor\"\n append={showTextInput}\n value={getColor({ color })}\n palette={palette}\n onChange={handleColorChange}\n data-test={`color-picker-${name}`}\n disabled={isDisabled}\n hideInput\n labelledBy={labelledBy}\n />\n </div>\n {showTextInput && (\n <TextContainer data-test=\"text-container\" textWidth={textWidth}>\n <ScreenReaderContent id={textLabelId}>{_('Color code input')}</ScreenReaderContent>\n <StyledText\n key={value}\n data-test={name}\n prepend\n value={color === null ? 'N/A' : color}\n onChange={handleTextColorChange}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n disabled={isDisabled}\n // hardcoded style to sync with SUI color picker's hardcoded dimensions\n // TODO(fkurniawan): see if we can leverage prisma's consolidated textInput out of the box\n style={{ height: '32px' }}\n labelledBy={`${labelledBy} ${textLabelId}`}\n inputId={id}\n />\n </TextContainer>\n )}\n </>\n );\n};\n\nColorAndTextWrapper.propTypes = {\n id: T.string,\n showTextInput: T.bool,\n color: T.string,\n palette: T.arrayOf(T.string),\n handleColorChange: T.func,\n labelledBy: T.string,\n textWidth: T.oneOfType([T.string, T.number]),\n value: T.string,\n name: T.string.isRequired,\n handleTextColorChange: T.func,\n handleKeyPress: T.func,\n handleBlur: T.func,\n isDisabled: T.bool,\n};\n\nconst defaultItemSchema = { default: 'transparent' };\nconst emptyStyle = {};\n\n// The propTypes typing for TS callers isn't working for the onChange callback\n/**\n * @param {Object} props\n * @param {(e: import('react').SyntheticEvent, name: string, value: string) => void} [props.onChange]\n * @returns\n */\nconst ColorEditor = ({\n name = 'color',\n value = 'transparent',\n label = '',\n labelPosition = 'top',\n labelWidth,\n palette = COLOR_EDITOR_PALETTE,\n onChange = noop,\n itemSchema = defaultItemSchema,\n isDisabled = false,\n textWidth = 'auto',\n hideLabel = false,\n showTextInput = true,\n style: customEditorStyle = emptyStyle,\n}) => {\n const [color, setColor] = useState(value);\n\n useEffect(() => {\n setColor(value);\n }, [value]);\n\n const debouncedOnChange = useMemo(() => debounce(onChange, 250), [onChange]);\n\n const handleColorChange = useCallback(\n ({ value: val }) => {\n const newColor = getColor({ color: val, defaultColor: itemSchema.default, prevColor: value });\n setColor(newColor);\n if (value !== newColor) {\n // No event to pass back, so it is null\n debouncedOnChange(null, name, newColor);\n }\n },\n [debouncedOnChange, itemSchema.default, name, value]\n );\n\n const handleTextColorChange = useCallback((_event, { value: val }) => {\n const colorToValue = toLower(val).trim() === 'n/a' ? null : val;\n setColor(colorToValue);\n }, []);\n\n const handleKeyPress = useCallback(\n event => {\n if (event.key === 'Escape') {\n setColor(value);\n return;\n }\n if (event.key !== 'Enter') {\n return;\n }\n\n if (value !== color) {\n const newColor = getColor({ color, defaultColor: itemSchema.default, prevColor: value });\n setColor(newColor);\n if (newColor !== value) {\n onChange(event, name, newColor);\n }\n }\n },\n [name, color, value, onChange, itemSchema.default]\n );\n\n const handleBlur = useCallback(\n event => {\n if (color !== value) {\n const newColor = getColor({ color, defaultColor: itemSchema.default, prevColor: value });\n setColor(newColor);\n if (newColor !== value) {\n onChange(event, name, newColor);\n }\n }\n },\n [name, color, value, onChange, itemSchema.default]\n );\n\n return (\n <ControlGroup\n label={label}\n labelPosition={labelPosition}\n labelWidth={labelWidth}\n style={customEditorStyle}\n hideLabel={hideLabel}\n controlsLayout=\"fillJoin\"\n >\n <ColorAndTextWrapper\n showTextInput={showTextInput}\n color={color}\n palette={palette}\n handleColorChange={handleColorChange}\n name={name}\n isDisabled={isDisabled}\n textWidth={textWidth}\n value={value}\n handleTextColorChange={handleTextColorChange}\n handleKeyPress={handleKeyPress}\n handleBlur={handleBlur}\n />\n </ControlGroup>\n );\n};\n\nColorEditor.propTypes = {\n /**\n * The option name\n */\n name: T.string.isRequired,\n\n /**\n * The option value\n */\n value: T.string,\n\n /**\n * @param {Object} itemSchema Either the dataContract or schema for the selected item\n */\n itemSchema: T.object,\n\n /**\n * A human readable label for the option\n */\n label: T.string.isRequired,\n\n /**\n * Flag to hide the editor label\n */\n hideLabel: T.bool,\n\n /**\n * Flag to hide the color text input\n */\n showTextInput: T.bool,\n\n /**\n * Custom styling for the editor layout, eg: setting margin-bottom to 0px for ControlGroup, SUI has it at 15px\n */\n style: T.object,\n\n /**\n * Label position\n */\n labelPosition: T.oneOf(['top', 'left']),\n\n /**\n * Label position\n */\n labelWidth: T.number,\n\n /**\n * An array of color swatch values\n */\n palette: T.arrayOf(T.string),\n\n /**\n * Callback when changing the text value\n *\n * @param {SyntheticEvent} event The react `SyntheticEvent`\n * @param {string} name The option name\n * @param {string} value The option value\n */\n onChange: T.func.isRequired,\n /**\n * Disabled state of component\n */\n isDisabled: T.bool,\n textWidth: T.oneOfType([T.string, T.number]),\n};\n\nexport default ColorEditor;\n","import React, { useState, useRef, useEffect, useCallback, useMemo } from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport { noop } from 'lodash';\nimport variables from '@splunk/themes/variables';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport FormRows from '@splunk/react-ui/FormRows';\nimport { createDOMID } from '@splunk/ui-utils/id';\nimport Button from '@splunk/react-ui/Button';\nimport Popover, { PopoverRequestCloseHandler } from '@splunk/react-ui/Popover';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport { BaseEditorProps, BaseEditorPropTypes } from '../interfaces/BaseEditorProps';\nimport ControlGroup from '../shared/AdvancedControlGroup';\nimport ColorEditor from './ColorEditor';\n\nconst popoverStyle = { padding: '10px' };\nconst colorButtonStyle = { width: '314px' };\n\nconst StyledButton = styled(Button)`\n padding: 8px;\n width: 100%;\n min-height: 40px;\n & > span {\n display: grid;\n grid-template-columns: repeat(auto-fill, 26px);\n justify-content: space-evenly;\n grid-gap: 4px;\n }\n background-color: ${variables.interactiveColorBackground};\n`;\n\nconst ColorChip = styled.div`\n width: 26px;\n height: 24px;\n background-color: ${(props): string => props.color};\n border-radius: 2px;\n`;\n\nconst StyledFlyoutContent = styled.div`\n box-sizing: border-box;\n padding: 8px;\n width: 312px;\n max-height: 484px;\n background-color: ${variables.backgroundColorPopup};\n`;\n\nconst FlyoutHeader = styled.div`\n font-weight: 500;\n font-size: 14px;\n line-height: 20px;\n padding: 8px 8px 0 8px;\n font-family: ${variables.fontFamily};\n color: ${variables.contentColorActive};\n`;\n\nconst ColorListEditor = styled.div`\n height: 412px;\n overflow-y: auto;\n padding: 8px 10px;\n`;\n\nexport interface ColorFlyoutEditorProps {\n colors: string[];\n handleColorRemove: (_e, { index }: { index: number }) => void;\n handleColorChange: (idx: number) => (_evt, name: string, value: string) => void;\n CustomColorMatchEditor?: (props: { index: number }) => React.ReactNode;\n flyoutTitle: string;\n addColorButtonLabel: string;\n handleColorAdd: () => void;\n handleColorMove: (data: { fromIndex: number; toIndex: number }) => void;\n}\n\nexport const ColorFlyoutEditor = ({\n colors,\n CustomColorMatchEditor,\n handleColorRemove,\n handleColorChange,\n flyoutTitle,\n addColorButtonLabel,\n handleColorAdd,\n handleColorMove,\n}: ColorFlyoutEditorProps) => {\n const ColorRowItems = useMemo(() => {\n return colors.map((color, idx) => {\n // disable the color editor's text input when a custom input editor is available to render adjacently\n const showTextInput = CustomColorMatchEditor == null;\n return (\n <FormRows.Row\n index={idx}\n key={createDOMID()}\n data-color={color}\n onRequestRemove={handleColorRemove}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <ColorEditor\n value={color}\n key={createDOMID()}\n onChange={handleColorChange(idx)}\n hideLabel\n label=\" \"\n name=\"color\"\n style={{ marginBottom: 0, marginTop: 0, width: showTextInput ? '100%' : 32 }}\n showTextInput={showTextInput}\n />\n {typeof CustomColorMatchEditor === 'function' && (\n <CustomColorMatchEditor index={idx} />\n )}\n </div>\n </FormRows.Row>\n );\n });\n }, [colors, CustomColorMatchEditor, handleColorRemove, handleColorChange]);\n\n return (\n <StyledFlyoutContent data-test=\"MultiColorPickerFlyoutContent\">\n <FlyoutHeader data-test=\"MultiColorPickerFlyoutTitle\">{flyoutTitle}</FlyoutHeader>\n <ColorListEditor>\n <FormRows\n addLabel={addColorButtonLabel}\n onRequestAdd={handleColorAdd}\n onRequestMove={handleColorMove}\n data-test=\"ColorListEditor\"\n >\n {ColorRowItems}\n </FormRows>\n </ColorListEditor>\n </StyledFlyoutContent>\n );\n};\n\nlet nextColorIndex = 0;\n\nexport interface MultiColorPickerEditorProps extends BaseEditorProps {\n CustomColorMatchEditor?: (props: { index: number }) => React.ReactNode;\n canReorderColors?: boolean;\n value: string[];\n flyoutTitle?: string;\n addColorButtonLabel?: string;\n hideLabel?: boolean;\n canAddNewColors?: boolean;\n}\n\nconst MultiColorPickerEditor: React.FunctionComponent<MultiColorPickerEditorProps> = ({\n CustomColorMatchEditor,\n onChange = noop,\n canReorderColors = true,\n value: vizColors = VIZ_CATEGORICAL,\n flyoutTitle = _('Customize colors'),\n addColorButtonLabel = _('Add color'),\n name = 'seriesColors',\n label = '',\n labelPosition = 'top',\n labelWidth,\n isDisabled = false,\n hideLabel = true,\n canAddNewColors = true,\n}) => {\n const [showFlyout, setShowFlyout] = useState(false);\n const [colors, setColors] = useState(vizColors);\n const buttonRef = useRef(null);\n\n useEffect(() => {\n setColors(vizColors);\n }, [vizColors]);\n\n // callbacks to add, remove, update and reorder a color form row\n const handleColorAdd = useCallback(() => {\n onChange(null, name, [...colors, VIZ_CATEGORICAL[nextColorIndex % VIZ_CATEGORICAL.length]]);\n nextColorIndex += 1;\n }, [name, onChange, colors]);\n\n const handleColorChange = useCallback(\n idx => (_evt, _name, value) => {\n const colorsCopy = [...colors];\n colorsCopy.splice(idx, 1, value);\n onChange(null, name, colorsCopy);\n },\n [name, onChange, colors]\n );\n\n const handleColorRemove = useCallback(\n (e, { index }) => {\n const colorsCopy = [...colors];\n colorsCopy.splice(index, 1);\n onChange(null, name, colorsCopy);\n },\n [name, onChange, colors]\n );\n\n const handleColorMove = useCallback(\n ({ fromIndex, toIndex }) => {\n const colorsCopy = [...colors];\n const movedColor = colorsCopy[fromIndex];\n colorsCopy.splice(fromIndex, 1); // first, delete the color at the original position\n colorsCopy.splice(toIndex, 0, movedColor); // then reinsert it at the new position\n onChange(null, name, colorsCopy);\n },\n [name, onChange, colors]\n );\n\n /**\n * custom logic is required for closing the flyout as the FormRows component is rendered inside a Popover, and\n * when we sort the form rows, the popover closes mid-sorting (closeReason=\"clickAway\") as the dragged element is\n * taken out of the flow. Current workaround is to check if the event's source element has a sortable handle,\n * if yes, the flyout is kept open.\n *\n * Additionally, focus is returned to the trigger button when exiting through escape key press\n */\n const handleFlyoutClose: PopoverRequestCloseHandler = useCallback(({ event, reason }) => {\n // @ts-ignore\n if (!event?.srcElement?.sortableHandle) {\n setShowFlyout(false);\n }\n if (reason === 'escapeKey') {\n buttonRef.current.focus();\n }\n }, []);\n\n const ColorChips = useMemo(\n () => colors.map(color => <ColorChip color={color} key={createDOMID()} />),\n [colors]\n );\n\n const toggleShowFlyout = useCallback(() => {\n setShowFlyout(isShown => !isShown);\n }, []);\n\n return (\n <ControlGroup\n label={label}\n labelPosition={labelPosition}\n labelWidth={labelWidth}\n hideLabel={hideLabel}\n data-test=\"MultiColorPickerEditor\"\n >\n <StyledButton\n inline={false}\n data-test=\"MultiColorPickerButton\"\n appearance=\"default\"\n ref={buttonRef}\n onClick={toggleShowFlyout}\n disabled={isDisabled}\n style={colorButtonStyle}\n >\n {ColorChips}\n </StyledButton>\n <Popover\n data-test=\"MultiColorPickerFlyout\"\n open={showFlyout}\n anchor={buttonRef.current}\n defaultPlacement=\"horizontal\"\n style={popoverStyle}\n onRequestClose={handleFlyoutClose}\n takeFocus\n >\n <ColorFlyoutEditor\n colors={colors}\n CustomColorMatchEditor={CustomColorMatchEditor}\n handleColorRemove={handleColorRemove}\n handleColorChange={handleColorChange}\n handleColorAdd={canAddNewColors ? handleColorAdd : undefined}\n handleColorMove={canReorderColors ? handleColorMove : undefined}\n flyoutTitle={flyoutTitle}\n addColorButtonLabel={addColorButtonLabel}\n />\n </Popover>\n </ControlGroup>\n );\n};\n\nMultiColorPickerEditor.propTypes = {\n ...BaseEditorPropTypes,\n /**\n * Colors can be reordered manually\n */\n canReorderColors: T.bool,\n /**\n * Can add a new color\n */\n canAddNewColors: T.bool,\n /**\n * List of colors\n */\n value: T.arrayOf(T.string),\n /**\n * Title of the flyout editor\n */\n flyoutTitle: T.string,\n /**\n * Button label for adding a new color row\n */\n addColorButtonLabel: T.string,\n /**\n * Custom input editor for mapping a value to color, eg: dropdown for field -> color\n */\n CustomColorMatchEditor: T.func,\n /**\n * Flag to hide the editor label\n */\n hideLabel: T.bool,\n};\n\nexport default MultiColorPickerEditor;\n","import React, { useState, useCallback, useMemo } from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport { isEqual } from 'lodash';\nimport Button from '@splunk/react-ui/Button';\nimport ColumnLayout from '@splunk/react-ui/ColumnLayout';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport MultiColorPickerEditor from './MultiColorPickerEditor';\nimport { ColorPreview } from './formatters/ColorPreview';\nimport ControlGroup from '../shared/AdvancedControlGroup';\nimport PreviewWrapper from '../shared/PreviewWrapper';\nimport { VERTICAL_EDITOR_SPACING, DROPDOWN_MENU_WIDTH } from '../shared/dimensionConstants';\nimport { BaseEditorProps, BaseEditorPropTypes } from '../interfaces/BaseEditorProps';\n\nconst MAX_PREVIEW_COLOR_COUNT = 8;\n\n// to add more warm/cold... palettes\nexport type PaletteType = 'default' | 'custom';\n\nexport interface PaletteDefinition<P extends PaletteType = PaletteType> {\n id: P;\n name: string;\n palette: string[];\n}\n\ntype Palettes = {\n [P in PaletteType]: PaletteDefinition<P>;\n};\n\nexport const PALETTES = {\n default: { id: 'default', name: _('Default'), palette: VIZ_CATEGORICAL },\n custom: { id: 'custom', name: _('Custom'), palette: [] },\n} satisfies Palettes;\n\nconst NameWrapper = styled.div`\n width: 120px;\n margin-right: 20px;\n display: flex;\n`;\n\nconst PaletteWrapper = styled(PreviewWrapper)`\n display: flex;\n align-items: center;\n`;\n\nconst ColorPreviewWrapper = styled.div`\n flex: 1 0 1px;\n height: 100%;\n`;\n\nconst SeriesColorsEditor = ({ label, value, name, onChange }: BaseEditorProps) => {\n const overrideCustomPalette = useMemo(() => !!value?.length && !isEqual(value, VIZ_CATEGORICAL), [value]);\n\n // use `value` to override the custom palette if value is not empty\n const originalPalettes = useMemo(() => {\n if (overrideCustomPalette) {\n return {\n ...PALETTES,\n custom: { ...PALETTES.custom, palette: value },\n };\n }\n return PALETTES;\n }, [overrideCustomPalette, value]);\n\n // selected palette ID\n const [selectedPalette, setSelectedPalette] = useState<PaletteType>(\n overrideCustomPalette ? 'custom' : 'default'\n );\n // current palettes on update\n const [palettes, setPalettes] = useState(originalPalettes);\n\n const handleMenuSelect = useCallback(\n (paletteId: PaletteType) => {\n setSelectedPalette(paletteId);\n onChange(null, name, palettes[paletteId].palette);\n },\n [name, onChange, palettes]\n );\n\n const handleColorChange = useCallback(\n (_evt, _name, newColors) => {\n if (newColors.length) {\n // override the previous custom palette\n setPalettes(prev => ({\n ...prev,\n custom: { ...PALETTES.custom, palette: newColors },\n }));\n setSelectedPalette('custom');\n onChange(null, name, newColors);\n } else {\n // set the colors to `Default` if MultiColorPicker returns empty array\n setPalettes(prev => ({\n ...prev,\n custom: PALETTES.custom,\n }));\n setSelectedPalette('default');\n onChange(null, name, PALETTES.default.palette);\n }\n },\n [name, onChange]\n );\n\n const toggle = (\n <Button\n appearance=\"default\"\n data-test=\"palette-dropdown-button\"\n label={palettes[selectedPalette].name}\n isMenu\n />\n );\n\n const renderMenuItem = (paletteConfig: PaletteDefinition) => {\n const { id, palette, name: paletteName } = paletteConfig;\n return (\n <Menu.Item\n key={`SeriesColorsDropdownMenuItem-${id}`}\n data-test={`palette-dropdown-menu-${id}`}\n selectable\n selected={selectedPalette === id}\n onClick={() => handleMenuSelect(id)}\n >\n <PaletteWrapper>\n <NameWrapper>{paletteName}</NameWrapper>\n <ColorPreviewWrapper>\n <ColorPreview\n colors={palette.slice(0, MAX_PREVIEW_COLOR_COUNT)}\n maxColorCount={MAX_PREVIEW_COLOR_COUNT}\n expandToFillHorizontalSpace={false}\n />\n </ColorPreviewWrapper>\n </PaletteWrapper>\n </Menu.Item>\n );\n };\n\n const isCustomPaletteAvailable = palettes.custom.palette.length > 0;\n\n return (\n <ColumnLayout gutter={VERTICAL_EDITOR_SPACING}>\n <ColumnLayout.Row>\n <ControlGroup\n label={label || _('Series colors')}\n labelPosition=\"top\"\n data-test=\"series-colors-editor\"\n >\n <Dropdown toggle={toggle}>\n <Menu style={{ width: DROPDOWN_MENU_WIDTH }}>\n {isCustomPaletteAvailable && renderMenuItem(palettes.custom)}\n {isCustomPaletteAvailable && <Menu.Divider />}\n {renderMenuItem(PALETTES.default)}\n </Menu>\n </Dropdown>\n </ControlGroup>\n </ColumnLayout.Row>\n <ColumnLayout.Row>\n <MultiColorPickerEditor\n name=\"series-colors\"\n value={palettes[selectedPalette].palette}\n flyoutTitle={_('Customize colors')}\n addColorButtonLabel={_('Add color')}\n onChange={handleColorChange}\n />\n </ColumnLayout.Row>\n </ColumnLayout>\n );\n};\n\nSeriesColorsEditor.propTypes = {\n ...BaseEditorPropTypes,\n value: T.arrayOf(T.string),\n};\n\nexport default SeriesColorsEditor;\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport { createDOMID } from '@splunk/ui-utils/id';\n\nconst DEFAULT_MAX_COLOR_COUNT = 7;\n\ninterface ColorPreviewWrapperProps {\n isReversed?: boolean;\n}\n\nconst ColorPreviewWrapper = styled.div.attrs<ColorPreviewWrapperProps>(props => ({\n 'data-test': 'ColorPreviewWrapper',\n isReversed: props.isReversed,\n}))<ColorPreviewWrapperProps>`\n display: flex;\n flex-direction: row;\n height: 100%;\n`;\n\ninterface ColorPreviewItemProps {\n color: string;\n widthGrow?: boolean;\n maxColorCount?: number;\n}\n\nconst ColorPreviewItem = styled.div.attrs<ColorPreviewItemProps>(() => ({\n 'data-test': 'ColorPreviewItem',\n}))<ColorPreviewItemProps>`\n flex-grow: ${({ widthGrow }): number => (widthGrow ? 1 : 0)};\n width: ${({ maxColorCount }): string => `calc(100% / ${maxColorCount})`};\n margin-right: 1px;\n background-color: ${({ color }): string => color};\n &:last-of-type {\n margin-right: 0;\n }\n`;\n\ninterface ColorPreviewProps {\n colors: string[];\n maxColorCount?: number;\n expandToFillHorizontalSpace?: boolean;\n isReversed?: boolean;\n}\nconst propTypes: Record<keyof ColorPreviewProps, T.Validator<any>> = {\n colors: T.arrayOf(T.string).isRequired,\n maxColorCount: T.number,\n expandToFillHorizontalSpace: T.bool,\n isReversed: T.bool,\n};\n\nexport const ColorPreview: React.FunctionComponent<ColorPreviewProps> = ({\n colors = [],\n maxColorCount = DEFAULT_MAX_COLOR_COUNT,\n expandToFillHorizontalSpace = true,\n isReversed = false,\n}): React.ReactElement => {\n const trueColors = isReversed ? [...colors].reverse() : [...colors];\n return (\n <ColorPreviewWrapper isReversed={isReversed}>\n {trueColors.map(\n (color, _i): React.ReactElement =>\n isColor(color) && (\n <ColorPreviewItem\n key={createDOMID()}\n color={color}\n widthGrow={expandToFillHorizontalSpace}\n maxColorCount={maxColorCount}\n />\n )\n )}\n </ColorPreviewWrapper>\n );\n};\nColorPreview.propTypes = propTypes;\n","import * as T from 'prop-types';\nimport type { JSONSchema7 } from 'json-schema';\n\nexport interface BaseEditorProps {\n name: string;\n value: any;\n onChange?: (...args: any[]) => void;\n label?: string; // @TODO(pwied): this should not live in editor props\n labelPosition?: 'top' | 'left'; // ^^^\n context?: Record<string, any>;\n labelWidth?: number;\n isAdvanced?: boolean;\n isDisabled?: boolean;\n dataSourceBindings?: Record<string, any>;\n options?: { [k: string]: any };\n optionsSchema?: {\n [key: string]: JSONSchema7;\n };\n}\n\nexport const BaseEditorPropTypes: Record<keyof BaseEditorProps, T.Validator<any>> = {\n name: T.string.isRequired,\n value: T.oneOfType([T.string, T.object, T.arrayOf(T.string)]),\n context: T.object,\n label: T.string,\n labelPosition: T.oneOf(['top', 'left']),\n labelWidth: T.number,\n onChange: T.func,\n isAdvanced: T.bool,\n isDisabled: T.bool,\n dataSourceBindings: T.object,\n options: T.object,\n optionsSchema: T.object,\n};\n","import React, { Children, cloneElement, ReactElement } from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport AdvancedConfigIcon from '@splunk/react-icons/SlidersDoubleHorizontal';\nimport { variables } from '@splunk/themes';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport Button, { ButtonClickHandler, ButtonProps } from '@splunk/react-ui/Button';\nimport SUIControlGroup, { ControlGroupPropsBase } from '@splunk/react-ui/ControlGroup';\n\ninterface AdvancedControlGroupProps extends Omit<ControlGroupPropsBase, 'splunkTheme'> {\n 'data-test'?: string;\n style?: Record<string, string | number>;\n isAdvanced?: boolean;\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n onAdvancedConfigButtonClick?: ButtonClickHandler;\n}\n\ninterface AdvancedConfigButtonProps {\n label?: string;\n onClick?: ButtonClickHandler;\n}\n\n// remove all surrounding margins. let parent add padding\nconst ControlGroupContainer = styled(SUIControlGroup)`\n margin-top: 0;\n padding: 0;\n // adjust bottom margin according to theme\n margin-bottom: ${variables.spacingMedium};\n width: 100%;\n\n // remove top margin of the first component in control group\n &:first-child {\n margin-top: 0;\n }\n\n // remove bottom margin of the last component in control group\n &:last-child {\n margin-bottom: 0;\n }\n // remove top padding on label of the first control group\n [data-test='label']:first-of-type {\n padding-top: 0;\n }\n`;\n\n// override tooltip to set desired config button style\nconst StyledToolTip = styled(Tooltip)`\n display: flex;\n > span {\n display: flex;\n width: 35px;\n }\n`;\n\nconst StyledAdvancedConfigButton = styled(Button)<ButtonProps>`\n color: ${variables.contentColorActive} !important;\n &:hover {\n background-color: ${variables.interactiveColorOverlayDrag} !important;\n }\n`;\n\nexport const AdvancedConfigButton = ({\n label = '',\n onClick,\n}: AdvancedConfigButtonProps): React.ReactElement => {\n return (\n <StyledToolTip\n data-test={`${label}-advanced-config-button-tooltip`}\n content={_('Advanced configurations')}\n >\n <StyledAdvancedConfigButton\n data-test={`${label}-advanced-config-button`}\n icon={<AdvancedConfigIcon data-test={`${label}-advanced-config-button-icon`} />}\n appearance=\"subtle\"\n onClick={onClick}\n />\n </StyledToolTip>\n );\n};\n\nconst AdvancedControlGroup = ({\n 'data-test': dataTest,\n children,\n isAdvanced = false,\n label,\n hideLabel,\n labelPosition,\n labelWidth,\n tooltip,\n help,\n style,\n error,\n controlsLayout,\n onClick,\n onAdvancedConfigButtonClick,\n}: AdvancedControlGroupProps): React.ReactElement => (\n <ControlGroupContainer\n data-test={dataTest ?? 'control-group'}\n label={label}\n hideLabel={hideLabel}\n labelPosition={labelPosition}\n labelWidth={labelWidth}\n tooltip={tooltip}\n help={help}\n error={error}\n style={style}\n onClick={onClick}\n controlsLayout={controlsLayout}\n >\n {isAdvanced\n ? Children.toArray(children)\n .filter(Boolean)\n .map(child =>\n cloneElement(child as ReactElement, {\n style: { flex: 1 },\n })\n )\n : children}\n {isAdvanced ? <AdvancedConfigButton label={label} onClick={onAdvancedConfigButtonClick} /> : null}\n </ControlGroupContainer>\n);\n\nAdvancedControlGroup.propTypes = {\n /**\n * Style overriding SUI ControlGroup\n */\n style: T.object,\n /**\n * Whether the current editor is enabled with advanced configurations\n */\n isAdvanced: T.bool,\n /**\n * Callback for editor click\n */\n onClick: T.func,\n /**\n * Callback for advanced config button click\n */\n onAdvancedConfigButtonClick: T.func,\n};\n\nexport default AdvancedControlGroup;\n","import styled from 'styled-components';\n\nexport default styled.div`\n border-radius: 3px; /* @TODO(pwied): should this be imported from SUI variables? */\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 20px;\n`;\n","export const FLYOUT_PADDING = 21;\nexport const COLUMN_FLYOUT_PADDING = 16;\nexport const FLYOUT_WIDTH = 344;\n\nexport const VERTICAL_EDITOR_SPACING = 16;\n\nexport const DROPDOWN_MENU_WIDTH = 327;\n\nexport const editorStyle = { width: '100%' };\n","module.exports = require(\"@splunk/react-icons/SlidersDoubleHorizontal\");","module.exports = require(\"@splunk/react-ui/Button\");","module.exports = require(\"@splunk/react-ui/Color\");","module.exports = require(\"@splunk/react-ui/ColumnLayout\");","module.exports = require(\"@splunk/react-ui/ControlGroup\");","module.exports = require(\"@splunk/react-ui/Dropdown\");","module.exports = require(\"@splunk/react-ui/FormRows\");","module.exports = require(\"@splunk/react-ui/Menu\");","module.exports = require(\"@splunk/react-ui/Popover\");","module.exports = require(\"@splunk/react-ui/Text\");","module.exports = require(\"@splunk/react-ui/Tooltip\");","module.exports = require(\"@splunk/themes\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/ui-utils/id\");","module.exports = require(\"@splunk/visualization-color-palettes\");","module.exports = require(\"@splunk/visualizations-shared/colorUtils\");","module.exports = require(\"lodash\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"styled-components\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(5695);\n"],"names":["require","TextContainer","styled","variables","inputHeight","StyledText","Text","getColor","color","defaultColor","prevColor","newColor","trim","isColor","ColorAndTextWrapper","id","showTextInput","palette","handleColorChange","labelledBy","textWidth","value","name","handleTextColorChange","handleKeyPress","handleBlur","isDisabled","textLabelId","useMemo","createDOMID","React","Color","key","append","onChange","disabled","hideInput","ScreenReaderContent","_","prepend","onKeyDown","onBlur","style","height","inputId","propTypes","T","isRequired","defaultItemSchema","default","emptyStyle","ColorEditor","label","labelPosition","labelWidth","COLOR_EDITOR_PALETTE","noop","itemSchema","hideLabel","customEditorStyle","setColor","useState","useEffect","debouncedOnChange","debounce","useCallback","val","_event","colorToValue","toLower","event","ControlGroup","controlsLayout","popoverStyle","padding","colorButtonStyle","width","StyledButton","interactiveColorBackground","ColorChip","div","props","StyledFlyoutContent","backgroundColorPopup","FlyoutHeader","fontFamily","contentColorActive","ColorListEditor","ColorFlyoutEditor","colors","CustomColorMatchEditor","handleColorRemove","flyoutTitle","addColorButtonLabel","handleColorAdd","handleColorMove","ColorRowItems","map","idx","Row","index","onRequestRemove","display","justifyContent","marginBottom","marginTop","addLabel","onRequestAdd","onRequestMove","nextColorIndex","MultiColorPickerEditor","canReorderColors","vizColors","VIZ_CATEGORICAL","canAddNewColors","showFlyout","setShowFlyout","setColors","buttonRef","useRef","length","_evt","_name","colorsCopy","splice","e","fromIndex","toIndex","movedColor","handleFlyoutClose","reason","srcElement","sortableHandle","current","focus","ColorChips","toggleShowFlyout","isShown","inline","appearance","ref","onClick","open","anchor","defaultPlacement","onRequestClose","takeFocus","undefined","BaseEditorPropTypes","bool","arrayOf","string","func","PALETTES","custom","NameWrapper","PaletteWrapper","ColorPreviewWrapper","SeriesColorsEditor","overrideCustomPalette","isEqual","originalPalettes","selectedPalette","setSelectedPalette","palettes","setPalettes","handleMenuSelect","paletteId","newColors","prev","toggle","isMenu","renderMenuItem","paletteConfig","paletteName","Item","selectable","selected","ColorPreview","slice","maxColorCount","expandToFillHorizontalSpace","isCustomPaletteAvailable","gutter","VERTICAL_EDITOR_SPACING","DROPDOWN_MENU_WIDTH","Divider","attrs","isReversed","ColorPreviewItem","widthGrow","number","trueColors","reverse","_i","oneOfType","object","context","oneOf","isAdvanced","dataSourceBindings","options","optionsSchema","ControlGroupContainer","spacingMedium","StyledToolTip","StyledAdvancedConfigButton","interactiveColorOverlayDrag","AdvancedConfigButton","content","icon","AdvancedControlGroup","dataTest","children","tooltip","help","error","onAdvancedConfigButtonClick","Children","toArray","filter","Boolean","child","cloneElement","flex","FLYOUT_PADDING","COLUMN_FLYOUT_PADDING","FLYOUT_WIDTH","editorStyle","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","__webpack_exports__"],"sourceRoot":""}
1
+ {"version":3,"file":"SeriesColorsEditor.js","mappings":"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","sources":["webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/ScreenReaderContent\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/visualizations-shared/colorConstants\"","webpack://@splunk/dynamic-editors/./src/editors/ColorEditor.jsx","webpack://@splunk/dynamic-editors/./src/editors/MultiColorPickerEditor.tsx","webpack://@splunk/dynamic-editors/./src/editors/SeriesColorsEditor.tsx","webpack://@splunk/dynamic-editors/./src/editors/formatters/ColorPreview.tsx","webpack://@splunk/dynamic-editors/./src/interfaces/BaseEditorProps.ts","webpack://@splunk/dynamic-editors/./src/shared/AdvancedControlGroup.tsx","webpack://@splunk/dynamic-editors/./src/shared/PreviewWrapper.tsx","webpack://@splunk/dynamic-editors/./src/shared/dimensionConstants.ts","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-icons/SlidersDoubleHorizontal\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Button\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Color\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/ColumnLayout\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/ControlGroup\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Dropdown\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/FormRows\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Menu\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Popover\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Text\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/react-ui/Tooltip\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/themes\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/themes/variables\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/ui-utils/i18n\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/ui-utils/id\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/visualization-color-palettes\"","webpack://@splunk/dynamic-editors/external commonjs2 \"@splunk/visualizations-shared/colorUtils\"","webpack://@splunk/dynamic-editors/external commonjs2 \"lodash\"","webpack://@splunk/dynamic-editors/external commonjs2 \"prop-types\"","webpack://@splunk/dynamic-editors/external commonjs2 \"react\"","webpack://@splunk/dynamic-editors/external commonjs2 \"styled-components\"","webpack://@splunk/dynamic-editors/webpack/bootstrap","webpack://@splunk/dynamic-editors/webpack/runtime/compat get default export","webpack://@splunk/dynamic-editors/webpack/runtime/define property getters","webpack://@splunk/dynamic-editors/webpack/runtime/hasOwnProperty shorthand","webpack://@splunk/dynamic-editors/webpack/runtime/make namespace object","webpack://@splunk/dynamic-editors/webpack/startup"],"sourcesContent":["const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@splunk/react-ui/ScreenReaderContent\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@splunk/visualizations-shared/colorConstants\");","import React, { useEffect, useCallback, useState, useMemo } from 'react';\nimport T from 'prop-types';\nimport styled from 'styled-components';\nimport { debounce, noop, toLower } from 'lodash';\nimport { variables } from '@splunk/themes';\nimport Color from '@splunk/react-ui/Color';\nimport Text from '@splunk/react-ui/Text';\nimport { createDOMID } from '@splunk/ui-utils/id';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ScreenReaderContent from '@splunk/react-ui/ScreenReaderContent';\nimport { COLOR_EDITOR_PALETTE } from '@splunk/visualizations-shared/colorConstants';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport ControlGroup from '../shared/AdvancedControlGroup';\n\nconst TextContainer = styled.div`\n max-height: ${variables.inputHeight};\n width: 100%;\n min-width: 0;\n`;\n\n// hardcoded style to sync with SUI color picker's hardcoded dimensions\n// TODO(fkurniawan): see if we can leverage prisma's consolidated textInput out of the box instead of our own component\n// right now, we're using hideInput\nconst StyledText = styled(Text)`\n max-height: ${variables.inputHeight};\n`;\n\n/**\n * Trims the color input and returns the result, or default color if the default color is valid, or previous color\n * @param {String} color The color the user entered\n * @param {String} defaultColor The default color of the component\n * @param {String} prevColor The previous color of the component\n * @returns {String}\n */\nconst getColor = ({ color, defaultColor, prevColor }) => {\n const newColor = typeof color === 'string' ? color.trim() : color;\n\n // color === null is `N/A` in color picker\n if (isColor(newColor) || newColor === null) {\n return newColor;\n }\n\n if (isColor(defaultColor)) {\n return defaultColor;\n }\n\n if (isColor(prevColor) || prevColor === null) {\n return prevColor;\n }\n\n return 'transparent';\n};\n\nconst ColorAndTextWrapper = ({\n id,\n showTextInput,\n color,\n palette,\n handleColorChange,\n labelledBy,\n textWidth,\n value,\n name,\n handleTextColorChange,\n handleKeyPress,\n handleBlur,\n isDisabled,\n}) => {\n const textLabelId = useMemo(() => createDOMID('color-code'), []);\n\n return (\n <>\n <div>\n <Color\n key=\"color-editor\"\n append={showTextInput}\n value={getColor({ color })}\n palette={palette}\n onChange={handleColorChange}\n data-test={`color-picker-${name}`}\n disabled={isDisabled}\n hideInput\n labelledBy={labelledBy}\n />\n </div>\n {showTextInput && (\n <TextContainer data-test=\"text-container\" textWidth={textWidth}>\n <ScreenReaderContent id={textLabelId}>{_('Color code input')}</ScreenReaderContent>\n <StyledText\n key={value}\n data-test={name}\n prepend\n value={color === null ? 'N/A' : color}\n onChange={handleTextColorChange}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n disabled={isDisabled}\n // hardcoded style to sync with SUI color picker's hardcoded dimensions\n // TODO(fkurniawan): see if we can leverage prisma's consolidated textInput out of the box\n style={{ height: '32px' }}\n labelledBy={`${labelledBy} ${textLabelId}`}\n inputId={id}\n />\n </TextContainer>\n )}\n </>\n );\n};\n\nColorAndTextWrapper.propTypes = {\n id: T.string,\n showTextInput: T.bool,\n color: T.string,\n palette: T.arrayOf(T.string),\n handleColorChange: T.func,\n labelledBy: T.string,\n textWidth: T.oneOfType([T.string, T.number]),\n value: T.string,\n name: T.string.isRequired,\n handleTextColorChange: T.func,\n handleKeyPress: T.func,\n handleBlur: T.func,\n isDisabled: T.bool,\n};\n\nconst defaultItemSchema = { default: 'transparent' };\nconst emptyStyle = {};\n\n// The propTypes typing for TS callers isn't working for the onChange callback\n/**\n * @param {Object} props\n * @param {(e: import('react').SyntheticEvent, name: string, value: string) => void} [props.onChange]\n * @returns\n */\nconst ColorEditor = ({\n name = 'color',\n value = 'transparent',\n label = '',\n labelPosition = 'top',\n labelWidth,\n palette = COLOR_EDITOR_PALETTE,\n onChange = noop,\n itemSchema = defaultItemSchema,\n isDisabled = false,\n textWidth = 'auto',\n hideLabel = false,\n showTextInput = true,\n style: customEditorStyle = emptyStyle,\n}) => {\n const [color, setColor] = useState(value);\n\n useEffect(() => {\n setColor(value);\n }, [value]);\n\n const debouncedOnChange = useMemo(() => debounce(onChange, 250), [onChange]);\n\n const handleColorChange = useCallback(\n ({ value: val }) => {\n const newColor = getColor({ color: val, defaultColor: itemSchema.default, prevColor: value });\n setColor(newColor);\n if (value !== newColor) {\n // No event to pass back, so it is null\n debouncedOnChange(null, name, newColor);\n }\n },\n [debouncedOnChange, itemSchema.default, name, value]\n );\n\n const handleTextColorChange = useCallback((_event, { value: val }) => {\n const colorToValue = toLower(val).trim() === 'n/a' ? null : val;\n setColor(colorToValue);\n }, []);\n\n const handleKeyPress = useCallback(\n event => {\n if (event.key === 'Escape') {\n setColor(value);\n return;\n }\n if (event.key !== 'Enter') {\n return;\n }\n\n if (value !== color) {\n const newColor = getColor({ color, defaultColor: itemSchema.default, prevColor: value });\n setColor(newColor);\n if (newColor !== value) {\n onChange(event, name, newColor);\n }\n }\n },\n [name, color, value, onChange, itemSchema.default]\n );\n\n const handleBlur = useCallback(\n event => {\n if (color !== value) {\n const newColor = getColor({ color, defaultColor: itemSchema.default, prevColor: value });\n setColor(newColor);\n if (newColor !== value) {\n onChange(event, name, newColor);\n }\n }\n },\n [name, color, value, onChange, itemSchema.default]\n );\n\n return (\n <ControlGroup\n label={label}\n labelPosition={labelPosition}\n labelWidth={labelWidth}\n style={customEditorStyle}\n hideLabel={hideLabel}\n controlsLayout=\"fillJoin\"\n >\n <ColorAndTextWrapper\n showTextInput={showTextInput}\n color={color}\n palette={palette}\n handleColorChange={handleColorChange}\n name={name}\n isDisabled={isDisabled}\n textWidth={textWidth}\n value={value}\n handleTextColorChange={handleTextColorChange}\n handleKeyPress={handleKeyPress}\n handleBlur={handleBlur}\n />\n </ControlGroup>\n );\n};\n\nColorEditor.propTypes = {\n /**\n * The option name\n */\n name: T.string.isRequired,\n\n /**\n * The option value\n */\n value: T.string,\n\n /**\n * @param {Object} itemSchema Either the dataContract or schema for the selected item\n */\n itemSchema: T.object,\n\n /**\n * A human readable label for the option\n */\n label: T.string.isRequired,\n\n /**\n * Flag to hide the editor label\n */\n hideLabel: T.bool,\n\n /**\n * Flag to hide the color text input\n */\n showTextInput: T.bool,\n\n /**\n * Custom styling for the editor layout, eg: setting margin-bottom to 0px for ControlGroup, SUI has it at 15px\n */\n style: T.object,\n\n /**\n * Label position\n */\n labelPosition: T.oneOf(['top', 'left']),\n\n /**\n * Label position\n */\n labelWidth: T.number,\n\n /**\n * An array of color swatch values\n */\n palette: T.arrayOf(T.string),\n\n /**\n * Callback when changing the text value\n *\n * @param {SyntheticEvent} event The react `SyntheticEvent`\n * @param {string} name The option name\n * @param {string} value The option value\n */\n onChange: T.func.isRequired,\n /**\n * Disabled state of component\n */\n isDisabled: T.bool,\n textWidth: T.oneOfType([T.string, T.number]),\n};\n\nexport default ColorEditor;\n","import React, { useState, useRef, useEffect, useCallback, useMemo } from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport { noop } from 'lodash';\nimport variables from '@splunk/themes/variables';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport FormRows from '@splunk/react-ui/FormRows';\nimport { createDOMID } from '@splunk/ui-utils/id';\nimport Button from '@splunk/react-ui/Button';\nimport Popover, { PopoverRequestCloseHandler } from '@splunk/react-ui/Popover';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport { BaseEditorProps, BaseEditorPropTypes } from '../interfaces/BaseEditorProps';\nimport ControlGroup from '../shared/AdvancedControlGroup';\nimport ColorEditor from './ColorEditor';\n\nconst popoverStyle = { padding: '10px' };\nconst colorButtonStyle = { width: '314px' };\n\nconst StyledButton = styled(Button)`\n padding: 8px;\n width: 100%;\n min-height: 40px;\n & > span {\n display: grid;\n grid-template-columns: repeat(auto-fill, 26px);\n justify-content: space-evenly;\n grid-gap: 4px;\n }\n background-color: ${variables.interactiveColorBackground};\n`;\n\nconst ColorChip = styled.div`\n width: 26px;\n height: 24px;\n background-color: ${(props): string => props.color};\n border-radius: 2px;\n`;\n\nconst StyledFlyoutContent = styled.div`\n box-sizing: border-box;\n padding: 8px;\n width: 312px;\n max-height: 484px;\n background-color: ${variables.backgroundColorPopup};\n`;\n\nconst FlyoutHeader = styled.div`\n font-weight: 500;\n font-size: 14px;\n line-height: 20px;\n padding: 8px 8px 0 8px;\n font-family: ${variables.fontFamily};\n color: ${variables.contentColorActive};\n`;\n\nconst ColorListEditor = styled.div`\n height: 412px;\n overflow-y: auto;\n padding: 8px 10px;\n`;\n\nexport interface ColorFlyoutEditorProps {\n colors: string[];\n handleColorRemove: (_e, { index }: { index: number }) => void;\n handleColorChange: (idx: number) => (_evt, name: string, value: string) => void;\n CustomColorMatchEditor?: (props: { index: number }) => React.ReactNode;\n flyoutTitle: string;\n addColorButtonLabel: string;\n handleColorAdd: () => void;\n handleColorMove: (data: { fromIndex: number; toIndex: number }) => void;\n}\n\nexport const ColorFlyoutEditor = ({\n colors,\n CustomColorMatchEditor,\n handleColorRemove,\n handleColorChange,\n flyoutTitle,\n addColorButtonLabel,\n handleColorAdd,\n handleColorMove,\n}: ColorFlyoutEditorProps) => {\n const ColorRowItems = useMemo(() => {\n return colors.map((color, idx) => {\n // disable the color editor's text input when a custom input editor is available to render adjacently\n const showTextInput = CustomColorMatchEditor == null;\n return (\n <FormRows.Row\n index={idx}\n key={createDOMID()}\n data-color={color}\n onRequestRemove={handleColorRemove}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <ColorEditor\n value={color}\n key={createDOMID()}\n onChange={handleColorChange(idx)}\n hideLabel\n label=\" \"\n name=\"color\"\n style={{ marginBottom: 0, marginTop: 0, width: showTextInput ? '100%' : 32 }}\n showTextInput={showTextInput}\n />\n {typeof CustomColorMatchEditor === 'function' && (\n <CustomColorMatchEditor index={idx} />\n )}\n </div>\n </FormRows.Row>\n );\n });\n }, [colors, CustomColorMatchEditor, handleColorRemove, handleColorChange]);\n\n return (\n <StyledFlyoutContent data-test=\"MultiColorPickerFlyoutContent\">\n <FlyoutHeader data-test=\"MultiColorPickerFlyoutTitle\">{flyoutTitle}</FlyoutHeader>\n <ColorListEditor>\n <FormRows\n addLabel={addColorButtonLabel}\n onRequestAdd={handleColorAdd}\n onRequestMove={handleColorMove}\n data-test=\"ColorListEditor\"\n >\n {ColorRowItems}\n </FormRows>\n </ColorListEditor>\n </StyledFlyoutContent>\n );\n};\n\nexport interface MultiColorPickerEditorProps extends BaseEditorProps {\n CustomColorMatchEditor?: (props: { index: number }) => React.ReactNode;\n canReorderColors?: boolean;\n value: string[];\n flyoutTitle?: string;\n addColorButtonLabel?: string;\n hideLabel?: boolean;\n canAddNewColors?: boolean;\n}\n\nconst MultiColorPickerEditor: React.FunctionComponent<MultiColorPickerEditorProps> = ({\n CustomColorMatchEditor,\n onChange = noop,\n canReorderColors = true,\n value: vizColors = VIZ_CATEGORICAL,\n flyoutTitle = _('Customize colors'),\n addColorButtonLabel = _('Add color'),\n name = 'seriesColors',\n label = '',\n labelPosition = 'top',\n labelWidth,\n isDisabled = false,\n hideLabel = true,\n canAddNewColors = true,\n}) => {\n const [showFlyout, setShowFlyout] = useState(false);\n const [colors, setColors] = useState(vizColors);\n const buttonRef = useRef(null);\n\n useEffect(() => {\n setColors(vizColors);\n }, [vizColors]);\n\n // callbacks to add, remove, update and reorder a color form row\n const handleColorAdd = useCallback(() => {\n const userColorsSet = new Set(colors);\n let nextColor = VIZ_CATEGORICAL.find(color => !userColorsSet.has(color));\n if (!nextColor) {\n // All picked, count appearances\n const countMap = new Map<string, number>();\n VIZ_CATEGORICAL.forEach(color => countMap.set(color, 0));\n colors.forEach(color => {\n countMap.set(color, (countMap.get(color) || 0) + 1);\n });\n // Find color with minimum appearances\n let minCount = Infinity;\n VIZ_CATEGORICAL.forEach(color => {\n const count = countMap.get(color) || 0;\n if (count < minCount) {\n minCount = count;\n nextColor = color;\n }\n });\n }\n onChange(null, name, [...colors, nextColor]);\n }, [name, onChange, colors]);\n\n const handleColorChange = useCallback(\n idx => (_evt, _name, value) => {\n const colorsCopy = [...colors];\n colorsCopy.splice(idx, 1, value);\n onChange(null, name, colorsCopy);\n },\n [name, onChange, colors]\n );\n\n const handleColorRemove = useCallback(\n (e, { index }) => {\n const colorsCopy = [...colors];\n colorsCopy.splice(index, 1);\n onChange(null, name, colorsCopy);\n },\n [name, onChange, colors]\n );\n\n const handleColorMove = useCallback(\n ({ fromIndex, toIndex }) => {\n const colorsCopy = [...colors];\n const movedColor = colorsCopy[fromIndex];\n colorsCopy.splice(fromIndex, 1); // first, delete the color at the original position\n colorsCopy.splice(toIndex, 0, movedColor); // then reinsert it at the new position\n onChange(null, name, colorsCopy);\n },\n [name, onChange, colors]\n );\n\n /**\n * custom logic is required for closing the flyout as the FormRows component is rendered inside a Popover, and\n * when we sort the form rows, the popover closes mid-sorting (closeReason=\"clickAway\") as the dragged element is\n * taken out of the flow. Current workaround is to check if the event's source element has a sortable handle,\n * if yes, the flyout is kept open.\n *\n * Additionally, focus is returned to the trigger button when exiting through escape key press\n */\n const handleFlyoutClose: PopoverRequestCloseHandler = useCallback(({ event, reason }) => {\n // @ts-ignore\n if (!event?.srcElement?.sortableHandle) {\n setShowFlyout(false);\n }\n if (reason === 'escapeKey') {\n buttonRef.current.focus();\n }\n }, []);\n\n const ColorChips = useMemo(\n () => colors.map(color => <ColorChip color={color} key={createDOMID()} />),\n [colors]\n );\n\n const toggleShowFlyout = useCallback(() => {\n setShowFlyout(isShown => !isShown);\n }, []);\n\n return (\n <ControlGroup\n label={label}\n labelPosition={labelPosition}\n labelWidth={labelWidth}\n hideLabel={hideLabel}\n data-test=\"MultiColorPickerEditor\"\n >\n <StyledButton\n inline={false}\n data-test=\"MultiColorPickerButton\"\n appearance=\"default\"\n ref={buttonRef}\n onClick={toggleShowFlyout}\n disabled={isDisabled}\n style={colorButtonStyle}\n >\n {ColorChips}\n </StyledButton>\n <Popover\n data-test=\"MultiColorPickerFlyout\"\n open={showFlyout}\n anchor={buttonRef.current}\n defaultPlacement=\"horizontal\"\n style={popoverStyle}\n onRequestClose={handleFlyoutClose}\n takeFocus\n >\n <ColorFlyoutEditor\n colors={colors}\n CustomColorMatchEditor={CustomColorMatchEditor}\n handleColorRemove={handleColorRemove}\n handleColorChange={handleColorChange}\n handleColorAdd={canAddNewColors ? handleColorAdd : undefined}\n handleColorMove={canReorderColors ? handleColorMove : undefined}\n flyoutTitle={flyoutTitle}\n addColorButtonLabel={addColorButtonLabel}\n />\n </Popover>\n </ControlGroup>\n );\n};\n\nMultiColorPickerEditor.propTypes = {\n ...BaseEditorPropTypes,\n /**\n * Colors can be reordered manually\n */\n canReorderColors: T.bool,\n /**\n * Can add a new color\n */\n canAddNewColors: T.bool,\n /**\n * List of colors\n */\n value: T.arrayOf(T.string),\n /**\n * Title of the flyout editor\n */\n flyoutTitle: T.string,\n /**\n * Button label for adding a new color row\n */\n addColorButtonLabel: T.string,\n /**\n * Custom input editor for mapping a value to color, eg: dropdown for field -> color\n */\n CustomColorMatchEditor: T.func,\n /**\n * Flag to hide the editor label\n */\n hideLabel: T.bool,\n};\n\nexport default MultiColorPickerEditor;\n","import React, { useState, useCallback, useMemo } from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport { isEqual } from 'lodash';\nimport Button from '@splunk/react-ui/Button';\nimport ColumnLayout from '@splunk/react-ui/ColumnLayout';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport MultiColorPickerEditor from './MultiColorPickerEditor';\nimport { ColorPreview } from './formatters/ColorPreview';\nimport ControlGroup from '../shared/AdvancedControlGroup';\nimport PreviewWrapper from '../shared/PreviewWrapper';\nimport { VERTICAL_EDITOR_SPACING, DROPDOWN_MENU_WIDTH } from '../shared/dimensionConstants';\nimport { BaseEditorProps, BaseEditorPropTypes } from '../interfaces/BaseEditorProps';\n\nconst MAX_PREVIEW_COLOR_COUNT = 8;\n\n// to add more warm/cold... palettes\nexport type PaletteType = 'default' | 'custom';\n\nexport interface PaletteDefinition<P extends PaletteType = PaletteType> {\n id: P;\n name: string;\n palette: string[];\n}\n\ntype Palettes = {\n [P in PaletteType]: PaletteDefinition<P>;\n};\n\nexport const PALETTES = {\n default: { id: 'default', name: _('Default'), palette: VIZ_CATEGORICAL },\n custom: { id: 'custom', name: _('Custom'), palette: [] },\n} satisfies Palettes;\n\nconst NameWrapper = styled.div`\n width: 120px;\n margin-right: 20px;\n display: flex;\n`;\n\nconst PaletteWrapper = styled(PreviewWrapper)`\n display: flex;\n align-items: center;\n`;\n\nconst ColorPreviewWrapper = styled.div`\n flex: 1 0 1px;\n height: 100%;\n`;\n\nconst SeriesColorsEditor = ({ label, value, name, onChange }: BaseEditorProps) => {\n const overrideCustomPalette = useMemo(() => !!value?.length && !isEqual(value, VIZ_CATEGORICAL), [value]);\n\n // use `value` to override the custom palette if value is not empty\n const originalPalettes = useMemo(() => {\n if (overrideCustomPalette) {\n return {\n ...PALETTES,\n custom: { ...PALETTES.custom, palette: value },\n };\n }\n return PALETTES;\n }, [overrideCustomPalette, value]);\n\n // selected palette ID\n const [selectedPalette, setSelectedPalette] = useState<PaletteType>(\n overrideCustomPalette ? 'custom' : 'default'\n );\n // current palettes on update\n const [palettes, setPalettes] = useState(originalPalettes);\n\n const handleMenuSelect = useCallback(\n (paletteId: PaletteType) => {\n setSelectedPalette(paletteId);\n onChange(null, name, palettes[paletteId].palette);\n },\n [name, onChange, palettes]\n );\n\n const handleColorChange = useCallback(\n (_evt, _name, newColors) => {\n if (newColors.length) {\n // override the previous custom palette\n setPalettes(prev => ({\n ...prev,\n custom: { ...PALETTES.custom, palette: newColors },\n }));\n setSelectedPalette('custom');\n onChange(null, name, newColors);\n } else {\n // set the colors to `Default` if MultiColorPicker returns empty array\n setPalettes(prev => ({\n ...prev,\n custom: PALETTES.custom,\n }));\n setSelectedPalette('default');\n onChange(null, name, PALETTES.default.palette);\n }\n },\n [name, onChange]\n );\n\n const toggle = (\n <Button\n appearance=\"default\"\n data-test=\"palette-dropdown-button\"\n label={palettes[selectedPalette].name}\n isMenu\n />\n );\n\n const renderMenuItem = (paletteConfig: PaletteDefinition) => {\n const { id, palette, name: paletteName } = paletteConfig;\n return (\n <Menu.Item\n key={`SeriesColorsDropdownMenuItem-${id}`}\n data-test={`palette-dropdown-menu-${id}`}\n selectable\n selected={selectedPalette === id}\n onClick={() => handleMenuSelect(id)}\n >\n <PaletteWrapper>\n <NameWrapper>{paletteName}</NameWrapper>\n <ColorPreviewWrapper>\n <ColorPreview\n colors={palette.slice(0, MAX_PREVIEW_COLOR_COUNT)}\n maxColorCount={MAX_PREVIEW_COLOR_COUNT}\n expandToFillHorizontalSpace={false}\n />\n </ColorPreviewWrapper>\n </PaletteWrapper>\n </Menu.Item>\n );\n };\n\n const isCustomPaletteAvailable = palettes.custom.palette.length > 0;\n\n return (\n <ColumnLayout gutter={VERTICAL_EDITOR_SPACING}>\n <ColumnLayout.Row>\n <ControlGroup\n label={label || _('Series colors')}\n labelPosition=\"top\"\n data-test=\"series-colors-editor\"\n >\n <Dropdown toggle={toggle}>\n <Menu style={{ width: DROPDOWN_MENU_WIDTH }}>\n {isCustomPaletteAvailable && renderMenuItem(palettes.custom)}\n {isCustomPaletteAvailable && <Menu.Divider />}\n {renderMenuItem(PALETTES.default)}\n </Menu>\n </Dropdown>\n </ControlGroup>\n </ColumnLayout.Row>\n <ColumnLayout.Row>\n <MultiColorPickerEditor\n name=\"series-colors\"\n value={palettes[selectedPalette].palette}\n flyoutTitle={_('Customize colors')}\n addColorButtonLabel={_('Add color')}\n onChange={handleColorChange}\n />\n </ColumnLayout.Row>\n </ColumnLayout>\n );\n};\n\nSeriesColorsEditor.propTypes = {\n ...BaseEditorPropTypes,\n value: T.arrayOf(T.string),\n};\n\nexport default SeriesColorsEditor;\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport { createDOMID } from '@splunk/ui-utils/id';\n\nconst DEFAULT_MAX_COLOR_COUNT = 7;\n\ninterface ColorPreviewWrapperProps {\n isReversed?: boolean;\n}\n\nconst ColorPreviewWrapper = styled.div.attrs<ColorPreviewWrapperProps>(props => ({\n 'data-test': 'ColorPreviewWrapper',\n isReversed: props.isReversed,\n}))<ColorPreviewWrapperProps>`\n display: flex;\n flex-direction: row;\n height: 100%;\n`;\n\ninterface ColorPreviewItemProps {\n color: string;\n widthGrow?: boolean;\n maxColorCount?: number;\n}\n\nconst ColorPreviewItem = styled.div.attrs<ColorPreviewItemProps>(() => ({\n 'data-test': 'ColorPreviewItem',\n}))<ColorPreviewItemProps>`\n flex-grow: ${({ widthGrow }): number => (widthGrow ? 1 : 0)};\n width: ${({ maxColorCount }): string => `calc(100% / ${maxColorCount})`};\n margin-right: 1px;\n background-color: ${({ color }): string => color};\n &:last-of-type {\n margin-right: 0;\n }\n`;\n\ninterface ColorPreviewProps {\n colors: string[];\n maxColorCount?: number;\n expandToFillHorizontalSpace?: boolean;\n isReversed?: boolean;\n}\nconst propTypes: Record<keyof ColorPreviewProps, T.Validator<any>> = {\n colors: T.arrayOf(T.string).isRequired,\n maxColorCount: T.number,\n expandToFillHorizontalSpace: T.bool,\n isReversed: T.bool,\n};\n\nexport const ColorPreview: React.FunctionComponent<ColorPreviewProps> = ({\n colors = [],\n maxColorCount = DEFAULT_MAX_COLOR_COUNT,\n expandToFillHorizontalSpace = true,\n isReversed = false,\n}): React.ReactElement => {\n const trueColors = isReversed ? [...colors].reverse() : [...colors];\n return (\n <ColorPreviewWrapper isReversed={isReversed}>\n {trueColors.map(\n (color, _i): React.ReactElement =>\n isColor(color) && (\n <ColorPreviewItem\n key={createDOMID()}\n color={color}\n widthGrow={expandToFillHorizontalSpace}\n maxColorCount={maxColorCount}\n />\n )\n )}\n </ColorPreviewWrapper>\n );\n};\nColorPreview.propTypes = propTypes;\n","import * as T from 'prop-types';\nimport type { JSONSchema7 } from 'json-schema';\n\nexport interface BaseEditorProps {\n name: string;\n value: any;\n onChange?: (...args: any[]) => void;\n label?: string; // @TODO(pwied): this should not live in editor props\n labelPosition?: 'top' | 'left'; // ^^^\n context?: Record<string, any>;\n labelWidth?: number;\n isAdvanced?: boolean;\n isDisabled?: boolean;\n dataSourceBindings?: Record<string, any>;\n options?: { [k: string]: any };\n optionsSchema?: {\n [key: string]: JSONSchema7;\n };\n}\n\nexport const BaseEditorPropTypes: Record<keyof BaseEditorProps, T.Validator<any>> = {\n name: T.string.isRequired,\n value: T.oneOfType([T.string, T.object, T.arrayOf(T.string)]),\n context: T.object,\n label: T.string,\n labelPosition: T.oneOf(['top', 'left']),\n labelWidth: T.number,\n onChange: T.func,\n isAdvanced: T.bool,\n isDisabled: T.bool,\n dataSourceBindings: T.object,\n options: T.object,\n optionsSchema: T.object,\n};\n","import React, { Children, cloneElement, ReactElement } from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport AdvancedConfigIcon from '@splunk/react-icons/SlidersDoubleHorizontal';\nimport { variables } from '@splunk/themes';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport Button, { ButtonClickHandler, ButtonProps } from '@splunk/react-ui/Button';\nimport SUIControlGroup, { ControlGroupPropsBase } from '@splunk/react-ui/ControlGroup';\n\ninterface AdvancedControlGroupProps extends Omit<ControlGroupPropsBase, 'splunkTheme'> {\n 'data-test'?: string;\n style?: Record<string, string | number>;\n isAdvanced?: boolean;\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n onAdvancedConfigButtonClick?: ButtonClickHandler;\n}\n\ninterface AdvancedConfigButtonProps {\n label?: string;\n onClick?: ButtonClickHandler;\n}\n\n// remove all surrounding margins. let parent add padding\nconst ControlGroupContainer = styled(SUIControlGroup)`\n margin-top: 0;\n padding: 0;\n // adjust bottom margin according to theme\n margin-bottom: ${variables.spacingMedium};\n width: 100%;\n\n // remove top margin of the first component in control group\n &:first-child {\n margin-top: 0;\n }\n\n // remove bottom margin of the last component in control group\n &:last-child {\n margin-bottom: 0;\n }\n // remove top padding on label of the first control group\n [data-test='label']:first-of-type {\n padding-top: 0;\n }\n`;\n\n// override tooltip to set desired config button style\nconst StyledToolTip = styled(Tooltip)`\n display: flex;\n > span {\n display: flex;\n width: 35px;\n }\n`;\n\nconst StyledAdvancedConfigButton = styled(Button)<ButtonProps>`\n color: ${variables.contentColorActive} !important;\n &:hover {\n background-color: ${variables.interactiveColorOverlayDrag} !important;\n }\n`;\n\nexport const AdvancedConfigButton = ({\n label = '',\n onClick,\n}: AdvancedConfigButtonProps): React.ReactElement => {\n return (\n <StyledToolTip\n data-test={`${label}-advanced-config-button-tooltip`}\n content={_('Advanced configurations')}\n >\n <StyledAdvancedConfigButton\n data-test={`${label}-advanced-config-button`}\n icon={<AdvancedConfigIcon data-test={`${label}-advanced-config-button-icon`} />}\n appearance=\"subtle\"\n onClick={onClick}\n />\n </StyledToolTip>\n );\n};\n\nconst AdvancedControlGroup = ({\n 'data-test': dataTest,\n children,\n isAdvanced = false,\n label,\n hideLabel,\n labelPosition,\n labelWidth,\n tooltip,\n help,\n style,\n error,\n controlsLayout,\n onClick,\n onAdvancedConfigButtonClick,\n}: AdvancedControlGroupProps): React.ReactElement => (\n <ControlGroupContainer\n data-test={dataTest ?? 'control-group'}\n label={label}\n hideLabel={hideLabel}\n labelPosition={labelPosition}\n labelWidth={labelWidth}\n tooltip={tooltip}\n help={help}\n error={error}\n style={style}\n onClick={onClick}\n controlsLayout={controlsLayout}\n >\n {isAdvanced\n ? Children.toArray(children)\n .filter(Boolean)\n .map(child =>\n cloneElement(child as ReactElement, {\n style: { flex: 1 },\n })\n )\n : children}\n {isAdvanced ? <AdvancedConfigButton label={label} onClick={onAdvancedConfigButtonClick} /> : null}\n </ControlGroupContainer>\n);\n\nAdvancedControlGroup.propTypes = {\n /**\n * Style overriding SUI ControlGroup\n */\n style: T.object,\n /**\n * Whether the current editor is enabled with advanced configurations\n */\n isAdvanced: T.bool,\n /**\n * Callback for editor click\n */\n onClick: T.func,\n /**\n * Callback for advanced config button click\n */\n onAdvancedConfigButtonClick: T.func,\n};\n\nexport default AdvancedControlGroup;\n","import styled from 'styled-components';\n\nexport default styled.div`\n border-radius: 3px; /* @TODO(pwied): should this be imported from SUI variables? */\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 20px;\n`;\n","export const FLYOUT_PADDING = 21;\nexport const COLUMN_FLYOUT_PADDING = 16;\nexport const FLYOUT_WIDTH = 344;\n\nexport const VERTICAL_EDITOR_SPACING = 16;\n\nexport const DROPDOWN_MENU_WIDTH = 327;\n\nexport const editorStyle = { width: '100%' };\n","module.exports = require(\"@splunk/react-icons/SlidersDoubleHorizontal\");","module.exports = require(\"@splunk/react-ui/Button\");","module.exports = require(\"@splunk/react-ui/Color\");","module.exports = require(\"@splunk/react-ui/ColumnLayout\");","module.exports = require(\"@splunk/react-ui/ControlGroup\");","module.exports = require(\"@splunk/react-ui/Dropdown\");","module.exports = require(\"@splunk/react-ui/FormRows\");","module.exports = require(\"@splunk/react-ui/Menu\");","module.exports = require(\"@splunk/react-ui/Popover\");","module.exports = require(\"@splunk/react-ui/Text\");","module.exports = require(\"@splunk/react-ui/Tooltip\");","module.exports = require(\"@splunk/themes\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/ui-utils/id\");","module.exports = require(\"@splunk/visualization-color-palettes\");","module.exports = require(\"@splunk/visualizations-shared/colorUtils\");","module.exports = require(\"lodash\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"styled-components\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(5695);\n"],"names":["require","TextContainer","styled","variables","inputHeight","StyledText","Text","getColor","color","defaultColor","prevColor","newColor","trim","isColor","ColorAndTextWrapper","id","showTextInput","palette","handleColorChange","labelledBy","textWidth","value","name","handleTextColorChange","handleKeyPress","handleBlur","isDisabled","textLabelId","useMemo","createDOMID","React","Color","key","append","onChange","disabled","hideInput","ScreenReaderContent","_","prepend","onKeyDown","onBlur","style","height","inputId","propTypes","T","isRequired","defaultItemSchema","default","emptyStyle","ColorEditor","label","labelPosition","labelWidth","COLOR_EDITOR_PALETTE","noop","itemSchema","hideLabel","customEditorStyle","setColor","useState","useEffect","debouncedOnChange","debounce","useCallback","val","_event","colorToValue","toLower","event","ControlGroup","controlsLayout","popoverStyle","padding","colorButtonStyle","width","StyledButton","interactiveColorBackground","ColorChip","div","props","StyledFlyoutContent","backgroundColorPopup","FlyoutHeader","fontFamily","contentColorActive","ColorListEditor","ColorFlyoutEditor","colors","CustomColorMatchEditor","handleColorRemove","flyoutTitle","addColorButtonLabel","handleColorAdd","handleColorMove","ColorRowItems","map","idx","Row","index","onRequestRemove","display","justifyContent","marginBottom","marginTop","addLabel","onRequestAdd","onRequestMove","MultiColorPickerEditor","canReorderColors","vizColors","VIZ_CATEGORICAL","canAddNewColors","showFlyout","setShowFlyout","setColors","buttonRef","useRef","userColorsSet","Set","nextColor","find","has","countMap","Map","forEach","set","get","minCount","Infinity","count","_evt","_name","colorsCopy","splice","e","fromIndex","toIndex","movedColor","handleFlyoutClose","reason","srcElement","sortableHandle","current","focus","ColorChips","toggleShowFlyout","isShown","inline","appearance","ref","onClick","open","anchor","defaultPlacement","onRequestClose","takeFocus","undefined","BaseEditorPropTypes","bool","arrayOf","string","func","PALETTES","custom","NameWrapper","PaletteWrapper","ColorPreviewWrapper","SeriesColorsEditor","overrideCustomPalette","length","isEqual","originalPalettes","selectedPalette","setSelectedPalette","palettes","setPalettes","handleMenuSelect","paletteId","newColors","prev","toggle","isMenu","renderMenuItem","paletteConfig","paletteName","Item","selectable","selected","ColorPreview","slice","maxColorCount","expandToFillHorizontalSpace","isCustomPaletteAvailable","gutter","VERTICAL_EDITOR_SPACING","DROPDOWN_MENU_WIDTH","Divider","attrs","isReversed","ColorPreviewItem","widthGrow","number","trueColors","reverse","_i","oneOfType","object","context","oneOf","isAdvanced","dataSourceBindings","options","optionsSchema","ControlGroupContainer","spacingMedium","StyledToolTip","StyledAdvancedConfigButton","interactiveColorOverlayDrag","AdvancedConfigButton","content","icon","AdvancedControlGroup","dataTest","children","tooltip","help","error","onAdvancedConfigButtonClick","Children","toArray","filter","Boolean","child","cloneElement","flex","FLYOUT_PADDING","COLUMN_FLYOUT_PADDING","FLYOUT_WIDTH","editorStyle","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","__webpack_exports__"],"sourceRoot":""}
@@ -2,13 +2,13 @@
2
2
  * Copyright © 2018 Splunk Inc.
3
3
  * SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
4
4
  * in part without a valid written license from Splunk Inc. is PROHIBITED.
5
- */(()=>{"use strict";var e={6004:(e,t,a)=>{a.r(t),a.d(t,{default:()=>ae,editorTypeToComponentMap:()=>ee});var o=a(2649),l=a.n(o),r=a(9497),n=a.n(r),i=a(23),s=a.n(i),u=a(2749),d=a.n(u),c=a(4182),f=a(3263),p=a(9967),m=a(2065),g=a(3797),b=a(437),h=a(3068),v=a(148),y=a.n(v),C=a(4215),_=a.n(C),O=a(2406),E=a(2055),x=a(1027),P=a(152),j=a(8281),w=a(4942),T=a.n(w),D=a(5731),S=a.n(D),M=a(6116),k=a.n(M),F=a(8444),R=a(4680),B=a(7970),A=a.n(B),I=a(5456),L=a(7585),$=a.n(L),V=a(2117),N=a.n(V),q=a(2965),W=a.n(q),U=a(5695),z=a.n(U),K=a(7364),G=a.n(K),H=a(9172),Y=a.n(H),X=a(5678),J=a.n(X),Z=a(8687),Q=a.n(Z);const ee={"editor.checkbox":d(),"editor.radioBar":f.default,"editor.select":c.default,"editor.text":p.default,"editor.textArea":Q(),"editor.toggle":m.default,"editor.number":g.default,"editor.color":b.default,"editor.percent":h.default,"editor.image":O.default,"editor.threshold":E.default,"editor.presetSelector":_(),"editor.dynamicColor":P.DynamicColorEditor,"editor.dynamicColorWithPrecedence":j.DynamicColorEditorWithPrecedence,"editor.columnMultiSelector":T(),"editor.columnSelector":S(),"editor.tableColumnFormatter":k(),"editor.tableBackgroundColor":R.TableBackgroundColorEditor,"editor.tableDynamicColor":F.TableDynamicColorEditor,"editor.slider":y(),"editor.markdown":A(),"editor.staticItem":I.default,"editor.dynamicItem":$(),"editor.arrayOfStrings":N(),"editor.multiColorPicker":W(),"editor.seriesColors":z(),"editor.seriesColorsByField":G(),"editor.columnMultiSelectionByFieldNameEditor":Y(),"editor.trellisSplitBy":J()},te=({item:e,name:t,itemSchema:a,dataSourceBindings:o,context:r,value:i,onChange:s,isDisabled:u,options:d,optionsSchema:c})=>{const{editor:f}=e;let p;if("string"==typeof f){if(!ee[f])throw Error(`Invalid editor type: ${f}`);p=ee[f]}else p=f;const m=(0,x.getStaticItemSchema)(a);return n().createElement("div",{key:e.option||e.encoding,"data-test":`editor-${t}`},n().createElement(p,l()({},e.editorProps,{name:t,isOption:!!e.option,itemSchema:m,dataSourceBindings:o,label:e.label,onChange:s,value:i,context:r,placeholder:e.placeholder,isAdvanced:e.isAdvanced,isDisabled:u,options:d,optionsSchema:c})))};te.propTypes={item:s().object.isRequired,name:s().string.isRequired,itemSchema:s().object.isRequired,context:s().object,dataSourceBindings:s().object,value:s().any,onChange:s().func.isRequired,isDisabled:s().bool,options:s().object,optionsSchema:s().object};const ae=te},437:(e,t,a)=>{a.r(t),a.d(t,{default:()=>S});var o=a(9497),l=a.n(o),r=a(23),n=a.n(r),i=a(232),s=a.n(i),u=a(4793),d=a(3563),c=a(7408),f=a.n(c),p=a(4082),m=a.n(p),g=a(8987),b=a(6649);const h=require("@splunk/react-ui/ScreenReaderContent");var v=a.n(h);const y=require("@splunk/visualizations-shared/colorConstants");var C=a(3283),_=a(4008),O=a.n(_);const E=s().div`
5
+ */(()=>{"use strict";var e={6004:(e,t,a)=>{a.r(t),a.d(t,{default:()=>ae,editorTypeToComponentMap:()=>ee});var o=a(2649),l=a.n(o),r=a(9497),n=a.n(r),i=a(23),s=a.n(i),u=a(2749),d=a.n(u),c=a(4182),f=a(3263),p=a(9967),m=a(2065),g=a(3797),b=a(437),h=a(3068),v=a(148),y=a.n(v),C=a(4215),_=a.n(C),O=a(2406),E=a(2055),x=a(1027),P=a(152),j=a(8281),w=a(4942),T=a.n(w),D=a(5731),S=a.n(D),M=a(6116),k=a.n(M),F=a(8444),R=a(4680),B=a(7970),A=a.n(B),I=a(5456),L=a(7585),$=a.n(L),V=a(2117),N=a.n(V),q=a(2965),W=a.n(q),U=a(5695),z=a.n(U),G=a(7364),K=a.n(G),H=a(9172),Y=a.n(H),X=a(5678),Z=a.n(X),J=a(8687),Q=a.n(J);const ee={"editor.checkbox":d(),"editor.radioBar":f.default,"editor.select":c.default,"editor.text":p.default,"editor.textArea":Q(),"editor.toggle":m.default,"editor.number":g.default,"editor.color":b.default,"editor.percent":h.default,"editor.image":O.default,"editor.threshold":E.default,"editor.presetSelector":_(),"editor.dynamicColor":P.DynamicColorEditor,"editor.dynamicColorWithPrecedence":j.DynamicColorEditorWithPrecedence,"editor.columnMultiSelector":T(),"editor.columnSelector":S(),"editor.tableColumnFormatter":k(),"editor.tableBackgroundColor":R.TableBackgroundColorEditor,"editor.tableDynamicColor":F.TableDynamicColorEditor,"editor.slider":y(),"editor.markdown":A(),"editor.staticItem":I.default,"editor.dynamicItem":$(),"editor.arrayOfStrings":N(),"editor.multiColorPicker":W(),"editor.seriesColors":z(),"editor.seriesColorsByField":K(),"editor.columnMultiSelectionByFieldNameEditor":Y(),"editor.trellisSplitBy":Z()},te=({item:e,name:t,itemSchema:a,dataSourceBindings:o,context:r,value:i,onChange:s,isDisabled:u,options:d,optionsSchema:c})=>{const{editor:f}=e;let p;if("string"==typeof f){if(!ee[f])throw Error(`Invalid editor type: ${f}`);p=ee[f]}else p=f;const m=(0,x.getStaticItemSchema)(a);return n().createElement("div",{key:e.option||e.encoding,"data-test":`editor-${t}`},n().createElement(p,l()({},e.editorProps,{name:t,isOption:!!e.option,itemSchema:m,dataSourceBindings:o,label:e.label,onChange:s,value:i,context:r,placeholder:e.placeholder,isAdvanced:e.isAdvanced,isDisabled:u,options:d,optionsSchema:c})))};te.propTypes={item:s().object.isRequired,name:s().string.isRequired,itemSchema:s().object.isRequired,context:s().object,dataSourceBindings:s().object,value:s().any,onChange:s().func.isRequired,isDisabled:s().bool,options:s().object,optionsSchema:s().object};const ae=te},437:(e,t,a)=>{a.r(t),a.d(t,{default:()=>S});var o=a(9497),l=a.n(o),r=a(23),n=a.n(r),i=a(232),s=a.n(i),u=a(4793),d=a(3563),c=a(7408),f=a.n(c),p=a(4082),m=a.n(p),g=a(8987),b=a(6649);const h=require("@splunk/react-ui/ScreenReaderContent");var v=a.n(h);const y=require("@splunk/visualizations-shared/colorConstants");var C=a(3283),_=a(4008),O=a.n(_);const E=s().div`
6
6
  max-height: ${d.variables.inputHeight};
7
7
  width: 100%;
8
8
  min-width: 0;
9
9
  `,x=s()(m())`
10
10
  max-height: ${d.variables.inputHeight};
11
- `,P=({color:e,defaultColor:t,prevColor:a})=>{const o="string"==typeof e?e.trim():e;return(0,C.isColor)(o)||null===o?o:(0,C.isColor)(t)?t:(0,C.isColor)(a)||null===a?a:"transparent"},j=({id:e,showTextInput:t,color:a,palette:r,handleColorChange:n,labelledBy:i,textWidth:s,value:u,name:d,handleTextColorChange:c,handleKeyPress:p,handleBlur:m,isDisabled:h})=>{const y=(0,o.useMemo)((()=>(0,g.createDOMID)("color-code")),[]);return l().createElement(l().Fragment,null,l().createElement("div",null,l().createElement(f(),{key:"color-editor",append:t,value:P({color:a}),palette:r,onChange:n,"data-test":`color-picker-${d}`,disabled:h,hideInput:!0,labelledBy:i})),t&&l().createElement(E,{"data-test":"text-container",textWidth:s},l().createElement(v(),{id:y},(0,b._)("Color code input")),l().createElement(x,{key:u,"data-test":d,prepend:!0,value:null===a?"N/A":a,onChange:c,onKeyDown:p,onBlur:m,disabled:h,style:{height:"32px"},labelledBy:`${i} ${y}`,inputId:e})))};j.propTypes={id:n().string,showTextInput:n().bool,color:n().string,palette:n().arrayOf(n().string),handleColorChange:n().func,labelledBy:n().string,textWidth:n().oneOfType([n().string,n().number]),value:n().string,name:n().string.isRequired,handleTextColorChange:n().func,handleKeyPress:n().func,handleBlur:n().func,isDisabled:n().bool};const w={default:"transparent"},T={},D=({name:e="color",value:t="transparent",label:a="",labelPosition:r="top",labelWidth:n,palette:i=y.COLOR_EDITOR_PALETTE,onChange:s=u.noop,itemSchema:d=w,isDisabled:c=!1,textWidth:f="auto",hideLabel:p=!1,showTextInput:m=!0,style:g=T})=>{const[b,h]=(0,o.useState)(t);(0,o.useEffect)((()=>{h(t)}),[t]);const v=(0,o.useMemo)((()=>(0,u.debounce)(s,250)),[s]),C=(0,o.useCallback)((({value:a})=>{const o=P({color:a,defaultColor:d.default,prevColor:t});h(o),t!==o&&v(null,e,o)}),[v,d.default,e,t]),_=(0,o.useCallback)(((e,{value:t})=>{const a="n/a"===(0,u.toLower)(t).trim()?null:t;h(a)}),[]),E=(0,o.useCallback)((a=>{if("Escape"!==a.key){if("Enter"===a.key&&t!==b){const o=P({color:b,defaultColor:d.default,prevColor:t});h(o),o!==t&&s(a,e,o)}}else h(t)}),[e,b,t,s,d.default]),x=(0,o.useCallback)((a=>{if(b!==t){const o=P({color:b,defaultColor:d.default,prevColor:t});h(o),o!==t&&s(a,e,o)}}),[e,b,t,s,d.default]);return l().createElement(O(),{label:a,labelPosition:r,labelWidth:n,style:g,hideLabel:p,controlsLayout:"fillJoin"},l().createElement(j,{showTextInput:m,color:b,palette:i,handleColorChange:C,name:e,isDisabled:c,textWidth:f,value:t,handleTextColorChange:_,handleKeyPress:E,handleBlur:x}))};D.propTypes={name:n().string.isRequired,value:n().string,itemSchema:n().object,label:n().string.isRequired,hideLabel:n().bool,showTextInput:n().bool,style:n().object,labelPosition:n().oneOf(["top","left"]),labelWidth:n().number,palette:n().arrayOf(n().string),onChange:n().func.isRequired,isDisabled:n().bool,textWidth:n().oneOfType([n().string,n().number])};const S=D},2406:(e,t,a)=>{a.d(t,{default:()=>J});var o=a(9497),l=a.n(o),r=a(23),n=a.n(r);const i=require("@splunk/visualization-context/ImageContext");var s=a.n(i),u=a(4008),d=a.n(u),c=a(6195),f=a.n(c),p=a(232),m=a.n(p),g=a(6649),b=a(6447),h=a.n(b),v=a(4082),y=a.n(v);const C=require("@splunk/react-ui/Image");var _=a.n(C),O=a(7464),E=a.n(O),x=a(4793),P=a(962);const j=m().div`
11
+ `,P=({color:e,defaultColor:t,prevColor:a})=>{const o="string"==typeof e?e.trim():e;return(0,C.isColor)(o)||null===o?o:(0,C.isColor)(t)?t:(0,C.isColor)(a)||null===a?a:"transparent"},j=({id:e,showTextInput:t,color:a,palette:r,handleColorChange:n,labelledBy:i,textWidth:s,value:u,name:d,handleTextColorChange:c,handleKeyPress:p,handleBlur:m,isDisabled:h})=>{const y=(0,o.useMemo)((()=>(0,g.createDOMID)("color-code")),[]);return l().createElement(l().Fragment,null,l().createElement("div",null,l().createElement(f(),{key:"color-editor",append:t,value:P({color:a}),palette:r,onChange:n,"data-test":`color-picker-${d}`,disabled:h,hideInput:!0,labelledBy:i})),t&&l().createElement(E,{"data-test":"text-container",textWidth:s},l().createElement(v(),{id:y},(0,b._)("Color code input")),l().createElement(x,{key:u,"data-test":d,prepend:!0,value:null===a?"N/A":a,onChange:c,onKeyDown:p,onBlur:m,disabled:h,style:{height:"32px"},labelledBy:`${i} ${y}`,inputId:e})))};j.propTypes={id:n().string,showTextInput:n().bool,color:n().string,palette:n().arrayOf(n().string),handleColorChange:n().func,labelledBy:n().string,textWidth:n().oneOfType([n().string,n().number]),value:n().string,name:n().string.isRequired,handleTextColorChange:n().func,handleKeyPress:n().func,handleBlur:n().func,isDisabled:n().bool};const w={default:"transparent"},T={},D=({name:e="color",value:t="transparent",label:a="",labelPosition:r="top",labelWidth:n,palette:i=y.COLOR_EDITOR_PALETTE,onChange:s=u.noop,itemSchema:d=w,isDisabled:c=!1,textWidth:f="auto",hideLabel:p=!1,showTextInput:m=!0,style:g=T})=>{const[b,h]=(0,o.useState)(t);(0,o.useEffect)((()=>{h(t)}),[t]);const v=(0,o.useMemo)((()=>(0,u.debounce)(s,250)),[s]),C=(0,o.useCallback)((({value:a})=>{const o=P({color:a,defaultColor:d.default,prevColor:t});h(o),t!==o&&v(null,e,o)}),[v,d.default,e,t]),_=(0,o.useCallback)(((e,{value:t})=>{const a="n/a"===(0,u.toLower)(t).trim()?null:t;h(a)}),[]),E=(0,o.useCallback)((a=>{if("Escape"!==a.key){if("Enter"===a.key&&t!==b){const o=P({color:b,defaultColor:d.default,prevColor:t});h(o),o!==t&&s(a,e,o)}}else h(t)}),[e,b,t,s,d.default]),x=(0,o.useCallback)((a=>{if(b!==t){const o=P({color:b,defaultColor:d.default,prevColor:t});h(o),o!==t&&s(a,e,o)}}),[e,b,t,s,d.default]);return l().createElement(O(),{label:a,labelPosition:r,labelWidth:n,style:g,hideLabel:p,controlsLayout:"fillJoin"},l().createElement(j,{showTextInput:m,color:b,palette:i,handleColorChange:C,name:e,isDisabled:c,textWidth:f,value:t,handleTextColorChange:_,handleKeyPress:E,handleBlur:x}))};D.propTypes={name:n().string.isRequired,value:n().string,itemSchema:n().object,label:n().string.isRequired,hideLabel:n().bool,showTextInput:n().bool,style:n().object,labelPosition:n().oneOf(["top","left"]),labelWidth:n().number,palette:n().arrayOf(n().string),onChange:n().func.isRequired,isDisabled:n().bool,textWidth:n().oneOfType([n().string,n().number])};const S=D},2406:(e,t,a)=>{a.d(t,{default:()=>Z});var o=a(9497),l=a.n(o),r=a(23),n=a.n(r);const i=require("@splunk/visualization-context/ImageContext");var s=a.n(i),u=a(4008),d=a.n(u),c=a(6195),f=a.n(c),p=a(232),m=a.n(p),g=a(6649),b=a(6447),h=a.n(b),v=a(4082),y=a.n(v);const C=require("@splunk/react-ui/Image");var _=a.n(C),O=a(7464),E=a.n(O),x=a(4793),P=a(962);const j=m().div`
12
12
  padding-bottom: 5px;
13
13
  width: 100%;
14
14
  text-align: center;
@@ -39,18 +39,18 @@
39
39
  text-align: start;
40
40
  text-overflow: ellipsis;
41
41
  white-space: nowrap;
42
- `,K=m()(I()).attrs({"data-test":"image-remove-button"})`
42
+ `,G=m()(I()).attrs({"data-test":"image-remove-button"})`
43
43
  flex-grow: 0;
44
44
  color: ${L.variables.contentColorActive} !important;
45
45
  &:hover {
46
46
  background-color: ${L.variables.actionColorBackgroundSecondaryHover} !important;
47
47
  }
48
- `,G=m().img`
48
+ `,K=m().img`
49
49
  ${L.mixins.reset("block")};
50
50
  margin: 0 auto;
51
51
  max-width: 100%;
52
52
  max-height: 180px;
53
- `,H=({filename:e=null,imageDataURI:t=null,onImageRemove:a=x.noop,overrideCSPViolation:o})=>{const r=(0,$.useCSPViolationObserver)(t,o);return l().createElement(q,null,l().createElement(W,null,l().createElement(U,null,l().createElement(z,null,e),l().createElement(K,{"aria-label":(0,g._)("Remove image"),appearance:"subtle",icon:N,onClick:a})),l().createElement(G,{alt:e,src:t})),"none"!==r&&l().createElement(V.MessageContainer,null,l().createElement(P.CSPMessage,{type:r})))};H.propTypes={filename:n().string,imageDataURI:n().string,onImageRemove:n().func,overrideCSPViolation:n().string};const Y=H,X=({onChange:e,name:t,value:a,labelPosition:r="top",labelWidth:n,label:i,validMediaTypes:u,svgRenderAsDom:c,overrideCSPViolation:f})=>{const p=(0,o.useContext)(s()),[m,g]=(0,o.useState)(null),[b,h]=(0,o.useState)(null),v=(0,o.useCallback)((async(a,o)=>{try{const l=await p.upload(o,{name:a},null,u);e(null,t,l)}catch(e){console.warn(e)}}),[p,u,e,t]),y=(0,o.useCallback)((({src:a,filename:o,imageDataURI:l})=>a?e(null,t,a):null!==o&&null!==l?v(o,l):e(null,t,null)),[v,e,t]),C=(0,o.useCallback)((a=>e(a,t,null)),[e,t]);return(0,o.useEffect)((()=>{(async()=>{if(a){const e=await(async(e,t)=>null!=e&&e.isResourceURL(t)?e.getByURL(t):{dataURI:t,metaData:{name:t}})(p,a);g(e.dataURI),h(e.metaData.name)}})()}),[a,p]),l().createElement(d(),{label:i,labelPosition:r,labelWidth:n},a?l().createElement(Y,{filename:b,imageDataURI:m,onImageRemove:C,overrideCSPViolation:f}):l().createElement(F,{svgRenderAsDom:c,validImageTypes:u,handleImageUpload:y}))};X.propTypes={onChange:n().func.isRequired,name:n().string.isRequired,label:n().string.isRequired,value:n().string,labelPosition:n().oneOf(["top","left"]),labelWidth:n().number,validMediaTypes:n().array,svgRenderAsDom:n().bool,overrideCSPViolation:n().string};const J=X},3797:(e,t,a)=>{a.d(t,{default:()=>p});var o=a(9497),l=a.n(o),r=a(23),n=a.n(r),i=a(2782),s=a.n(i),u=a(4008),d=a.n(u),c=a(5592);const f=({onChange:e,name:t,value:a=null,labelPosition:r="top",labelWidth:n,label:i,min:u,max:f,step:p,isDisabled:m,help:g,defaultValue:b})=>{const h=(0,o.useCallback)(((a,o)=>{if(void 0===b&&null==o)return void e(a,t,o);const l=parseFloat(null!=o?o:b);Number.isFinite(l)&&e(a,t,l)}),[b,e,t]),{currentValue:v,handleChange:y,handleBlur:C,handleFocus:_,handleKeyPress:O}=(0,c.useNumberInput)({value:a,min:u,max:f,defaultValue:b,onValueChange:h});return l().createElement(d(),{label:i,labelPosition:r,labelWidth:n,help:g},l().createElement(s(),{"data-test":t,min:u,max:f,step:p,onChange:y,onBlur:C,onFocus:_,onKeyDown:O,value:v,disabled:m}))};f.propTypes={onChange:n().func.isRequired,name:n().string.isRequired,label:n().string.isRequired,value:n().number,defaultValue:n().number,labelPosition:n().oneOf(["top","left"]),labelWidth:n().number,min:n().number,max:n().number,step:n().number,isDisabled:n().bool,help:n().string};const p=f},3068:(e,t,a)=>{a.d(t,{default:()=>u});var o=a(9497),l=a.n(o),r=a(23),n=a.n(r),i=a(3797);const s=({name:e,value:t=0,labelPosition:a="top",labelWidth:r,label:n,onChange:s,isDisabled:u=!1,help:d})=>{const c=(0,o.useCallback)(((e,t,a)=>{s(e,t,null==a?a:a/100)}),[s]);return l().createElement(i.default,{name:e,value:Math.round(100*t),label:n,labelPosition:a,labelWidth:r,onChange:c,min:0,max:100,step:1,disabled:u,help:d})};s.propTypes={onChange:n().func.isRequired,name:n().string.isRequired,label:n().string.isRequired,labelWidth:n().number,value:n().number,labelPosition:n().oneOf(["top","left"]),isDisabled:n().bool,help:n().string};const u=s},3263:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var o=a(2649),l=a.n(o),r=a(9497),n=a.n(r),i=a(23),s=a.n(i),u=a(5411),d=a.n(u),c=a(6379),f=a.n(c),p=a(2166),m=a(1027),g=a(5862),b=a(4008),h=a.n(b);const v=({onChange:e,name:t,itemSchema:a,values:o,value:i,labelPosition:s="top",labelWidth:u,label:c,isDisabled:b=!1})=>{const v=(0,m.getOptions)(a,o),y=(0,p.hasTokens)(i)||b,C=(0,r.useCallback)(((a,{value:o})=>e(a,t,o)),[e,t]),_=c&&""!==c?void 0:{marginTop:"-8px"};return n().createElement(h(),{label:c,labelPosition:s,labelWidth:u,style:_},n().createElement(d(),{"data-test":t,onChange:C,value:i,style:g.editorStyle,disabled:y},v.map((e=>{const t=e.label||e.value,a={};return e.icon?a.startAdornment=n().createElement(f(),{content:t},n().createElement(e.icon,{hideDefaultTooltip:!0})):a.label=t,n().createElement(d().Option,l()({key:e.value,value:e.value,disabled:y},a))}))))};v.propTypes={onChange:s().func.isRequired,name:s().string.isRequired,itemSchema:s().object,values:s().arrayOf(s().shape({label:s().string,value:s().oneOfType([s().string,s().bool]).isRequired})),value:s().oneOfType([s().string,s().bool]),label:s().string.isRequired,labelPosition:s().oneOf(["left","top"]),labelWidth:s().number,isDisabled:s().bool};const y=v},4182:(e,t,a)=>{a.d(t,{default:()=>g});var o=a(9497),l=a.n(o),r=a(23),n=a.n(r),i=a(2373),s=a.n(i),u=a(2166),d=a(1027),c=a(5862),f=a(4008),p=a.n(f);const m=({onChange:e,name:t,itemSchema:a,values:r,value:n,labelPosition:i="top",labelWidth:f,label:m,tooltip:g,isDisabled:b=!1,isAdvanced:h,hideLabel:v})=>{const y=(0,d.getOptions)(a,r),C=(0,u.hasTokens)(n)||b,_=(0,o.useCallback)(((a,{value:o})=>e(a,t,o)),[e,t]);return l().createElement(p(),{label:m,labelPosition:i,labelWidth:f,tooltip:g,isAdvanced:h,hideLabel:v},l().createElement(s(),{"data-test":t,onChange:_,value:n,disabled:C,style:c.editorStyle},y.map((e=>l().createElement(s().Option,{key:e.value,value:e.value,label:e.label||e.value,icon:e.icon?l().createElement(e.icon,null):null})))))};m.propTypes={onChange:n().func.isRequired,name:n().string.isRequired,itemSchema:n().object,values:n().arrayOf(n().shape({label:n().string,value:n().oneOfType([n().string,n().number]).isRequired})),value:n().oneOfType([n().string,n().number]),label:n().string.isRequired,labelPosition:n().oneOf(["left","top"]),labelWidth:n().number,tooltip:n().string,isDisabled:n().bool,isAdvanced:n().bool,hideLabel:n().bool};const g=m},5456:(e,t,a)=>{a.r(t),a.d(t,{default:()=>D});var o=a(6195),l=a.n(o),r=a(9497),n=a.n(r),i=a(23),s=a.n(i),u=a(232),d=a.n(u),c=a(4793),f=a(6649),p=a(8965),m=a.n(p),g=a(9967),b=a(4008),h=a.n(b);function v(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function y(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?v(Object(a),!0).forEach((function(t){l()(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):v(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}const C=d().div`
53
+ `,H=({filename:e=null,imageDataURI:t=null,onImageRemove:a=x.noop,overrideCSPViolation:o})=>{const r=(0,$.useCSPViolationObserver)(t,o);return l().createElement(q,null,l().createElement(W,null,l().createElement(U,null,l().createElement(z,null,e),l().createElement(G,{"aria-label":(0,g._)("Remove image"),appearance:"subtle",icon:N,onClick:a})),l().createElement(K,{alt:e,src:t})),"none"!==r&&l().createElement(V.MessageContainer,null,l().createElement(P.CSPMessage,{type:r})))};H.propTypes={filename:n().string,imageDataURI:n().string,onImageRemove:n().func,overrideCSPViolation:n().string};const Y=H,X=({onChange:e,name:t,value:a,labelPosition:r="top",labelWidth:n,label:i,validMediaTypes:u,svgRenderAsDom:c,overrideCSPViolation:f})=>{const p=(0,o.useContext)(s()),[m,g]=(0,o.useState)(null),[b,h]=(0,o.useState)(null),v=(0,o.useCallback)((async(a,o)=>{try{const l=await p.upload(o,{name:a},null,u);e(null,t,l)}catch(e){console.warn(e)}}),[p,u,e,t]),y=(0,o.useCallback)((({src:a,filename:o,imageDataURI:l})=>a?e(null,t,a):null!==o&&null!==l?v(o,l):e(null,t,null)),[v,e,t]),C=(0,o.useCallback)((a=>e(a,t,null)),[e,t]);return(0,o.useEffect)((()=>{(async()=>{if(a){const e=await(async(e,t)=>null!=e&&e.isResourceURL(t)?e.getByURL(t):{dataURI:t,metaData:{name:t}})(p,a);g(e.dataURI),h(e.metaData.name)}})()}),[a,p]),l().createElement(d(),{label:i,labelPosition:r,labelWidth:n},a?l().createElement(Y,{filename:b,imageDataURI:m,onImageRemove:C,overrideCSPViolation:f}):l().createElement(F,{svgRenderAsDom:c,validImageTypes:u,handleImageUpload:y}))};X.propTypes={onChange:n().func.isRequired,name:n().string.isRequired,label:n().string.isRequired,value:n().string,labelPosition:n().oneOf(["top","left"]),labelWidth:n().number,validMediaTypes:n().array,svgRenderAsDom:n().bool,overrideCSPViolation:n().string};const Z=X},3797:(e,t,a)=>{a.d(t,{default:()=>p});var o=a(9497),l=a.n(o),r=a(23),n=a.n(r),i=a(2782),s=a.n(i),u=a(4008),d=a.n(u),c=a(5592);const f=({onChange:e,name:t,value:a=null,labelPosition:r="top",labelWidth:n,label:i,min:u,max:f,step:p,isDisabled:m,help:g,defaultValue:b})=>{const h=(0,o.useCallback)(((a,o)=>{if(void 0===b&&null==o)return void e(a,t,o);const l=parseFloat(null!=o?o:b);Number.isFinite(l)&&e(a,t,l)}),[b,e,t]),{currentValue:v,handleChange:y,handleBlur:C,handleFocus:_,handleKeyPress:O}=(0,c.useNumberInput)({value:a,min:u,max:f,defaultValue:b,onValueChange:h});return l().createElement(d(),{label:i,labelPosition:r,labelWidth:n,help:g},l().createElement(s(),{"data-test":t,min:u,max:f,step:p,onChange:y,onBlur:C,onFocus:_,onKeyDown:O,value:v,disabled:m}))};f.propTypes={onChange:n().func.isRequired,name:n().string.isRequired,label:n().string.isRequired,value:n().number,defaultValue:n().number,labelPosition:n().oneOf(["top","left"]),labelWidth:n().number,min:n().number,max:n().number,step:n().number,isDisabled:n().bool,help:n().string};const p=f},3068:(e,t,a)=>{a.d(t,{default:()=>u});var o=a(9497),l=a.n(o),r=a(23),n=a.n(r),i=a(3797);const s=({name:e,value:t=0,labelPosition:a="top",labelWidth:r,label:n,onChange:s,isDisabled:u=!1,help:d})=>{const c=(0,o.useCallback)(((e,t,a)=>{s(e,t,null==a?a:a/100)}),[s]);return l().createElement(i.default,{name:e,value:Math.round(100*t),label:n,labelPosition:a,labelWidth:r,onChange:c,min:0,max:100,step:1,disabled:u,help:d})};s.propTypes={onChange:n().func.isRequired,name:n().string.isRequired,label:n().string.isRequired,labelWidth:n().number,value:n().number,labelPosition:n().oneOf(["top","left"]),isDisabled:n().bool,help:n().string};const u=s},3263:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var o=a(2649),l=a.n(o),r=a(9497),n=a.n(r),i=a(23),s=a.n(i),u=a(5411),d=a.n(u),c=a(6379),f=a.n(c),p=a(2166),m=a(1027),g=a(5862),b=a(4008),h=a.n(b);const v=({onChange:e,name:t,itemSchema:a,values:o,value:i,labelPosition:s="top",labelWidth:u,label:c,isDisabled:b=!1})=>{const v=(0,m.getOptions)(a,o),y=(0,p.hasTokens)(i)||b,C=(0,r.useCallback)(((a,{value:o})=>e(a,t,o)),[e,t]),_=c&&""!==c?void 0:{marginTop:"-8px"};return n().createElement(h(),{label:c,labelPosition:s,labelWidth:u,style:_},n().createElement(d(),{"data-test":t,onChange:C,value:i,style:g.editorStyle,disabled:y},v.map((e=>{const t=e.label||e.value,a={};return e.icon?a.startAdornment=n().createElement(f(),{content:t},n().createElement(e.icon,{hideDefaultTooltip:!0})):a.label=t,n().createElement(d().Option,l()({key:e.value,value:e.value,disabled:y},a))}))))};v.propTypes={onChange:s().func.isRequired,name:s().string.isRequired,itemSchema:s().object,values:s().arrayOf(s().shape({label:s().string,value:s().oneOfType([s().string,s().bool]).isRequired})),value:s().oneOfType([s().string,s().bool]),label:s().string.isRequired,labelPosition:s().oneOf(["left","top"]),labelWidth:s().number,isDisabled:s().bool};const y=v},4182:(e,t,a)=>{a.d(t,{default:()=>g});var o=a(9497),l=a.n(o),r=a(23),n=a.n(r),i=a(2373),s=a.n(i),u=a(2166),d=a(1027),c=a(5862),f=a(4008),p=a.n(f);const m=({onChange:e,name:t,itemSchema:a,values:r,value:n,labelPosition:i="top",labelWidth:f,label:m,tooltip:g,isDisabled:b=!1,isAdvanced:h,hideLabel:v})=>{const y=(0,d.getOptions)(a,r),C=(0,u.hasTokens)(n)||b,_=(0,o.useCallback)(((a,{value:o})=>e(a,t,o)),[e,t]);return l().createElement(p(),{label:m,labelPosition:i,labelWidth:f,tooltip:g,isAdvanced:h,hideLabel:v},l().createElement(s(),{"data-test":t,onChange:_,value:n,disabled:C,style:c.editorStyle},y.map((e=>l().createElement(s().Option,{key:e.value,value:e.value,label:e.label||e.value,icon:e.icon?l().createElement(e.icon,null):null})))))};m.propTypes={onChange:n().func.isRequired,name:n().string.isRequired,itemSchema:n().object,values:n().arrayOf(n().shape({label:n().string,value:n().oneOfType([n().string,n().number]).isRequired})),value:n().oneOfType([n().string,n().number]),label:n().string.isRequired,labelPosition:n().oneOf(["left","top"]),labelWidth:n().number,tooltip:n().string,isDisabled:n().bool,isAdvanced:n().bool,hideLabel:n().bool};const g=m},5456:(e,t,a)=>{a.r(t),a.d(t,{default:()=>D});var o=a(6195),l=a.n(o),r=a(9497),n=a.n(r),i=a(23),s=a.n(i),u=a(232),d=a.n(u),c=a(4793),f=a(6649),p=a(8965),m=a.n(p),g=a(9967),b=a(4008),h=a.n(b);function v(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function y(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?v(Object(a),!0).forEach((function(t){l()(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):v(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}const C=d().div`
54
54
  display: grid;
55
55
  grid-template-columns: 1fr 1fr;
56
56
  gap: 10px;
@@ -77,7 +77,7 @@
77
77
  line-height: 36px;
78
78
  margin-right: 10px;
79
79
  color: ${e=>e.isDisabled?v().contentColorDisabled:v().contentColorMuted};
80
- `,K=u().span`
80
+ `,G=u().span`
81
81
  display: inline-block;
82
82
  color: ${e=>e.isDisabled?v().contentColorDisabled:v().contentColorMuted};
83
83
  width: 30px;
@@ -85,13 +85,13 @@
85
85
  vertical-align: bottom;
86
86
  overflow: hidden;
87
87
  white-space: nowrap;
88
- `,G=({describedBy:e,isDisabled:t,to:a})=>l().createElement(K,{"aria-describedby":e,isDisabled:t},a);G.propTypes={describedBy:n().any,isDisabled:n().bool,to:n().number};const H=({isDisabled:e,to:t})=>l().createElement(q(),{content:`${t}`},l().createElement(G,{to:t,isDisabled:e}));H.propTypes={isDisabled:n().bool,to:n().number};const Y=({index:e,to:t,isRemovable:a,isEditable:o,onChange:r,isDisabled:n,errorId:i})=>{const s=0===e,u=a?`${(0,d._)("and")} `:"";return o?l().createElement(U,null,l().createElement(z,{isDisabled:n},(0,d._)("to")),l().createElement(W,null,l().createElement(j,{"data-test":"threshold-to-level",boundary:t,isDisabled:n,isEditable:!0,errorId:i,onChange:r}))):l().createElement(U,null,s&&l().createElement(z,{isDisabled:n},(0,d._)("and above")),!s&&l().createElement(l().Fragment,null,l().createElement(z,{isDisabled:n},`${u}${(0,d._)("below")}`),l().createElement(H,{isDisabled:n,to:t})))};Y.propTypes={to:n().number,index:n().number,isRemovable:n().bool,isEditable:n().bool,isDisabled:n().bool,onChange:n().func,errorId:n().string};const X=Y,J=u().div.attrs((()=>({"data-test":"threshold-level"})))`
88
+ `,K=({describedBy:e,isDisabled:t,to:a})=>l().createElement(G,{"aria-describedby":e,isDisabled:t},a);K.propTypes={describedBy:n().any,isDisabled:n().bool,to:n().number};const H=({isDisabled:e,to:t})=>l().createElement(q(),{content:`${t}`},l().createElement(K,{to:t,isDisabled:e}));H.propTypes={isDisabled:n().bool,to:n().number};const Y=({index:e,to:t,isRemovable:a,isEditable:o,onChange:r,isDisabled:n,errorId:i})=>{const s=0===e,u=a?`${(0,d._)("and")} `:"";return o?l().createElement(U,null,l().createElement(z,{isDisabled:n},(0,d._)("to")),l().createElement(W,null,l().createElement(j,{"data-test":"threshold-to-level",boundary:t,isDisabled:n,isEditable:!0,errorId:i,onChange:r}))):l().createElement(U,null,s&&l().createElement(z,{isDisabled:n},(0,d._)("and above")),!s&&l().createElement(l().Fragment,null,l().createElement(z,{isDisabled:n},`${u}${(0,d._)("below")}`),l().createElement(H,{isDisabled:n,to:t})))};Y.propTypes={to:n().number,index:n().number,isRemovable:n().bool,isEditable:n().bool,isDisabled:n().bool,onChange:n().func,errorId:n().string};const X=Y,Z=u().div.attrs((()=>({"data-test":"threshold-level"})))`
89
89
  width: 100%;
90
90
  position: relative;
91
91
  display: flex;
92
92
  align-items: flex-end;
93
93
  margin-bottom: 5px;
94
- `,Z=u().div`
94
+ `,J=u().div`
95
95
  margin-right: 10px;
96
96
  width: 100px;
97
97
  display: inline-block;
@@ -106,7 +106,7 @@
106
106
  &:hover {
107
107
  background-color: ${e=>!e.disabled&&V.variables.interactiveColorOverlayDrag} !important;
108
108
  }
109
- `,ae=({editFrom:e,editTo:t,editValue:a,error:r,from:n,index:i,isDisabled:s=!1,isRemovable:u=!1,onChange:d,onRemove:c,renderThresholdValueEditor:f,to:p,value:m})=>{const g=(0,o.useCallback)((e=>{(r||e!==n)&&d(i,{from:e,value:m,to:p})}),[d,n,m,p,i,r]),b=(0,o.useCallback)((e=>{(r||e!==p)&&d(i,{from:n,value:m,to:e})}),[d,n,m,p,i,r]),h=(0,o.useCallback)((({value:e})=>{d(i,{from:n,value:e,to:p})}),[d,i,n,p]),v=(0,o.useCallback)((()=>c(i)),[c,i]),y=(0,o.useMemo)((()=>r?(0,$.createDOMID)("threshold-error"):void 0),[r]);return l().createElement(l().Fragment,null,l().createElement(J,null,l().createElement(Z,null,l().createElement(j,{"data-test":"threshold-from-level",boundary:n,isDisabled:s,isEditable:e,errorId:y,onChange:g,index:i})),l().createElement(X,{to:p,index:i,isRemovable:u,isEditable:t,isDisabled:s,onChange:b,errorId:y}),l().createElement(Q,null,f({value:m,onChange:h,isDisabled:s||!!r,editValue:a})),l().createElement(ee,null,u&&l().createElement(te,{"data-test":"threshold-remove-button",icon:l().createElement(L(),null),appearance:"subtle",onClick:v,disabled:s}))),l().createElement(O,{error:r,id:y,thresholdIndex:i}))};ae.propTypes={editFrom:n().bool,editTo:n().bool,editValue:n().bool,error:n().string,from:n().number,index:n().number,isDisabled:n().bool,isRemovable:n().bool,onChange:n().func,onRemove:n().func,renderThresholdValueEditor:n().elementType.isRequired,to:n().number,value:n().string};const oe=ae;function le(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function re(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?le(Object(a),!0).forEach((function(t){T()(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):le(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}const ne=[],ie=({ranges:e=ne,openRanges:t=!0,isDisabled:a=!1,onChange:r,renderThresholdValueEditor:n})=>{const[s,u]=(0,o.useState)({}),c=(0,o.useCallback)((t=>{const a=(0,i.cloneDeep)(e);a.splice(t,1),r(k(a));const o=re({},s);delete o[t],u(o)}),[s,e,r]),f=(0,o.useCallback)(((a,o)=>{const l=(0,i.cloneDeep)(e),n=re({},s);if(l.splice(a,1,o),delete n[a],!t&&0===a){const e=function(e="",t=""){const a=parseFloat(e),o=parseFloat(t);return(0,i.isNaN)(a)||(0,i.isNaN)(+e)||(0,i.isNaN)(o)||(0,i.isNaN)(+t)?{error:!0,errorMessage:(0,d._)("Not a valid threshold. Must be a number")}:a<o?{error:!0,errorMessage:(0,d._)("Upper boundary must exceed lower boundary")}:{error:!1,errorMessage:null}}(o.to,o.from);e.error&&(n[a]=e.errorMessage)}if(!t&&0!==a&&o.to<o.from&&o.from>e[0].from&&(l[a].to=o.from+10),!t||a<e.length-1){const t=(0,i.cloneDeep)(e);t.splice(a,1);const l=F(o.from,t);l.error&&(n[a]=l.errorMessage)}u(n),Object.keys(n).length||r(k(l))}),[s,e,r,t]),p=!!Object.keys(s).length,m=(0,o.useCallback)((a=>!t&&e.length>1||t&&e.length>2&&a!==e.length-1),[t,e]);return e.map(((o,r)=>l().createElement(oe,{key:`threshold-${o.from}-${o.to}-${o.value}`,onRemove:c,onChange:f,index:r,from:o.from,to:o.to,value:o.value,error:s[r],editFrom:!t||r!==e.length-1,editTo:!t&&0===r,editValue:!p,isRemovable:m(r),isDisabled:a,renderThresholdValueEditor:n})))};ie.propTypes={onChange:n().func.isRequired,ranges:n().arrayOf(n().shape({from:n().number,to:n().number,value:n().string})),isDisabled:n().bool,renderThresholdValueEditor:n().elementType.isRequired,openRanges:n().bool};const se=ie;var ue=a(7408),de=a.n(ue),ce=a(3283);const fe=({isDisabled:e,value:t,onChange:a})=>l().createElement(de(),{disabled:e,value:(0,ce.isColor)(t)?t:"transparent",onChange:a,hideInput:!0,palette:M,"data-test":"threshold-level-value"});fe.propTypes={isDisabled:n().bool,value:n().string,onChange:n().func.isRequired};const pe=fe,me=u().div`
109
+ `,ae=({editFrom:e,editTo:t,editValue:a,error:r,from:n,index:i,isDisabled:s=!1,isRemovable:u=!1,onChange:d,onRemove:c,renderThresholdValueEditor:f,to:p,value:m})=>{const g=(0,o.useCallback)((e=>{(r||e!==n)&&d(i,{from:e,value:m,to:p})}),[d,n,m,p,i,r]),b=(0,o.useCallback)((e=>{(r||e!==p)&&d(i,{from:n,value:m,to:e})}),[d,n,m,p,i,r]),h=(0,o.useCallback)((({value:e})=>{d(i,{from:n,value:e,to:p})}),[d,i,n,p]),v=(0,o.useCallback)((()=>c(i)),[c,i]),y=(0,o.useMemo)((()=>r?(0,$.createDOMID)("threshold-error"):void 0),[r]);return l().createElement(l().Fragment,null,l().createElement(Z,null,l().createElement(J,null,l().createElement(j,{"data-test":"threshold-from-level",boundary:n,isDisabled:s,isEditable:e,errorId:y,onChange:g,index:i})),l().createElement(X,{to:p,index:i,isRemovable:u,isEditable:t,isDisabled:s,onChange:b,errorId:y}),l().createElement(Q,null,f({value:m,onChange:h,isDisabled:s||!!r,editValue:a})),l().createElement(ee,null,u&&l().createElement(te,{"data-test":"threshold-remove-button",icon:l().createElement(L(),null),appearance:"subtle",onClick:v,disabled:s}))),l().createElement(O,{error:r,id:y,thresholdIndex:i}))};ae.propTypes={editFrom:n().bool,editTo:n().bool,editValue:n().bool,error:n().string,from:n().number,index:n().number,isDisabled:n().bool,isRemovable:n().bool,onChange:n().func,onRemove:n().func,renderThresholdValueEditor:n().elementType.isRequired,to:n().number,value:n().string};const oe=ae;function le(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function re(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?le(Object(a),!0).forEach((function(t){T()(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):le(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}const ne=[],ie=({ranges:e=ne,openRanges:t=!0,isDisabled:a=!1,onChange:r,renderThresholdValueEditor:n})=>{const[s,u]=(0,o.useState)({}),c=(0,o.useCallback)((t=>{const a=(0,i.cloneDeep)(e);a.splice(t,1),r(k(a));const o=re({},s);delete o[t],u(o)}),[s,e,r]),f=(0,o.useCallback)(((a,o)=>{const l=(0,i.cloneDeep)(e),n=re({},s);if(l.splice(a,1,o),delete n[a],!t&&0===a){const e=function(e="",t=""){const a=parseFloat(e),o=parseFloat(t);return(0,i.isNaN)(a)||(0,i.isNaN)(+e)||(0,i.isNaN)(o)||(0,i.isNaN)(+t)?{error:!0,errorMessage:(0,d._)("Not a valid threshold. Must be a number")}:a<o?{error:!0,errorMessage:(0,d._)("Upper boundary must exceed lower boundary")}:{error:!1,errorMessage:null}}(o.to,o.from);e.error&&(n[a]=e.errorMessage)}if(!t&&0!==a&&o.to<o.from&&o.from>e[0].from&&(l[a].to=o.from+10),!t||a<e.length-1){const t=(0,i.cloneDeep)(e);t.splice(a,1);const l=F(o.from,t);l.error&&(n[a]=l.errorMessage)}u(n),Object.keys(n).length||r(k(l))}),[s,e,r,t]),p=!!Object.keys(s).length,m=(0,o.useCallback)((a=>!t&&e.length>1||t&&e.length>2&&a!==e.length-1),[t,e]);return e.map(((o,r)=>l().createElement(oe,{key:`threshold-${o.from}-${o.to}-${o.value}`,onRemove:c,onChange:f,index:r,from:o.from,to:o.to,value:o.value,error:s[r],editFrom:!t||r!==e.length-1,editTo:!t&&0===r,editValue:!p,isRemovable:m(r),isDisabled:a,renderThresholdValueEditor:n})))};ie.propTypes={onChange:n().func.isRequired,ranges:n().arrayOf(n().shape({from:n().number,to:n().number,value:n().string})),isDisabled:n().bool,renderThresholdValueEditor:n().elementType.isRequired,openRanges:n().bool};const se=ie;var ue=a(7408),de=a.n(ue),ce=a(3283);const fe=({isDisabled:e,value:t,onChange:a})=>l().createElement(de(),{disabled:e,value:(0,ce.isColor)(t)?t:"transparent",onChange:a,hideInput:!0,palette:M,"data-test":"threshold-level-value"});fe.propTypes={isDisabled:n().bool,value:n().string,onChange:n().func.isRequired};const pe=fe,me=u().div`
110
110
  flex-direction: column;
111
111
  flex-grow: 1;
112
112
  `,ge=({onChange:e,name:t,itemSchema:a,value:r,labelPosition:n="top",labelWidth:s,label:u,isDisabled:c=!1,isTogglable:p=!0,openRanges:g=!0,renderThresholdValueEditor:b=pe})=>{const h=Array.isArray(r)&&r.length>0,v=(0,o.useCallback)((()=>{e(null,t,a.default)}),[a,t,e]),y=(0,o.useCallback)((()=>{e(null,t,null)}),[t,e]),C=(0,o.useCallback)((()=>h?y():v()),[h,v,y]),_=(0,o.useCallback)((a=>{const o=(0,i.cloneDeep)(r),l={from:a,value:function(e=[]){const t=(0,i.difference)(M,e);return t.length>0?t[0]:"#444000"}(o.map((e=>e.value)))};g||(l.to=a+10),o.push(l);const n=k(o);e(null,t,n)}),[t,r,e,g]),O=(0,o.useCallback)((a=>{e(null,t,a)}),[e,t]);return l().createElement(m(),{label:u,labelPosition:n,labelWidth:s},l().createElement(me,{"data-test":t},p&&l().createElement(f(),{appearance:"toggle",selected:h,onClick:C,disabled:c,role:"switch"},(0,d._)("Threshold")),h&&l().createElement(l().Fragment,null,!c&&l().createElement(A,{onAddThreshold:_,thresholds:r}),l().createElement(se,{onChange:O,ranges:r,isDisabled:c,openRanges:g,renderThresholdValueEditor:b}))))};ge.propTypes={onChange:n().func.isRequired,name:n().string.isRequired,itemSchema:n().object,value:n().arrayOf(n().shape({from:n().number,to:n().number,value:n().string})),label:n().string.isRequired,labelPosition:n().oneOf(["left","top"]),labelWidth:n().number,isDisabled:n().bool,openRanges:n().bool,renderThresholdValueEditor:n().elementType,isTogglable:n().bool};const be=ge},2065:(e,t,a)=>{a.r(t),a.d(t,{default:()=>u});var o=a(2649),l=a.n(o),r=a(9497),n=a.n(r),i=a(2749),s=a.n(i);const u=e=>n().createElement(s(),l()({},e,{appearance:"toggle"}))},1668:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});var o=a(232);const l=a.n(o)().div`
@@ -152,7 +152,7 @@
152
152
  width: ${(0,u.toPx)(_.FLYOUT_WIDTH)};
153
153
  `,S=(0,p.default)(c.default)`
154
154
  padding: '4px';
155
- `,M=Object.assign(Object.assign({},O.BaseEditorPropTypes),{flyoutTitle:s.string,formatters:s.arrayOf(s.shape({label:s.string,value:s.string,defaults:s.object,isDefault:s.bool})),dataSelectors:s.arrayOf(s.shape({label:s.string,value:s.string})),defaultPalettesConfig:y.sharedPalettesConfigPropType,showStaticTextColor:s.bool,colorMode:s.oneOf(["text","background","off"]),handleColorModeChange:s.func});t.prepareUpdate=({name:e,selectedDataSelector:t,selectedFormatterType:a,currentFormatterConfig:o})=>{const l=`${e}EditorConfig`,r=l.replace(/^\w+\[\d+\]\.(.+)$/,"$1");return{options:{[e]:(0,h.buildDSLFromDataSelectorAndFormatter)(t,a,l)},context:{[r]:o}}};t.DynamicColorEditor=({name:e,value:a,label:o="",labelPosition:l="left",labelWidth:r,context:n,onChange:s=(()=>{}),flyoutTitle:u=(0,m._)("Dynamic coloring"),formatters:c=[],dataSelectors:p=[],defaultPalettesConfig:_=g.defaultPalettesConfig,isDisabled:O=!1,showStaticTextColor:M=!1,colorMode:k,handleColorModeChange:F})=>{const[R,B]=P(!1),A=x(null),{type:I,paramKey:L}=(0,h.getLastFormatterFromDSL)(a)||{type:"unknown",paramKey:"unknown"},$=(0,h.getDataSelectorsFromDSL)(a)[0],[V,N]=P(I);j((()=>{N(I)}),[I]);const[q,W]=P($);j((()=>{W($)}),[$]);const U=(0,E.getFormatterConfig)({contextConfig:n[L],formatters:c,formatterFromDSL:I,selectedDataSelector:q}),[z,K]=P(U);j((()=>{K(U)}),[n,c,L,I,$]);const G=a=>{const o=(0,b.find)(c,(e=>e.isDefault))||(0,b.find)(c,(e=>"rangeValue"===e.value))||c[0];if((0,b.isEmpty)(o))return;const l=o.value,r=Object.keys(o.defaults)[0],n=o.defaults[r];W(r),N(l),K(n),s(a,(0,t.prepareUpdate)({name:e,selectedDataSelector:r,selectedFormatterType:l,currentFormatterConfig:n}))},H=i.useCallback((()=>{B((e=>!e))}),[]);if(!(0,E.isSupportedDataSelector)({selectedDataSelector:q,dataSelectors:p})||!(0,E.isSupportedFormatter)({selectedFormatterType:V,formattersFromEditor:c,supportedFormatters:y.supportedFormatters}))return i.createElement(C.default,{label:o,labelPosition:l,labelWidth:r,onResetToDefault:G});const Y=y.supportedFormatters[V].preview;return i.createElement(i.Fragment,null,i.createElement(d.default,{"data-test":"DynamicColorEditorGroup",label:o,labelPosition:l,labelWidth:r},i.createElement(S,{inline:!1,"data-test":"DynamicColorEditorButton",appearance:"default",ref:A,onClick:H,disabled:O},i.createElement(Y,{"data-test":"FormatterConfigPreview",config:z}))),i.createElement(f.default,{"data-test":"DynamicColorEditorFlyout",open:R,anchor:A.current,defaultPlacement:"horizontal",style:{padding:"10px"},onRequestClose:()=>B(!1),takeFocus:!0},i.createElement(D,null,!k&&i.createElement(w,null,u),k&&i.createElement(d.default,{"data-test":"TableDynamicColorEditorGroup",label:u,labelPosition:l,labelWidth:r},i.createElement(v.default,{value:k,onChange:F},[{label:(0,m._)("Off"),value:"off"},{label:(0,m._)("Text"),value:"text"},{label:(0,m._)("Background"),value:"background"}].map((({label:e,value:t})=>i.createElement(v.default.Option,{key:t,value:t,label:(0,m._)(e)}))))),k&&i.createElement(T,null,(0,m._)("Method")),i.createElement(y.FormatterEditor,{selectedDataSelector:q,selectedFormatterType:V,currentFormatterConfig:z,onDataSelectorChange:(a,o,l)=>{W(l);const r=(0,b.find)(c,(e=>e.defaults[l]));N(r.value);const n=r.defaults[l];K(n),s(a,(0,t.prepareUpdate)({name:e,selectedDataSelector:l,selectedFormatterType:r.value,currentFormatterConfig:n}))},onFormatterTypeChange:(a,o,l)=>{N(l);const r=(0,b.find)(c,["value",l]).defaults[q];K(r),s(a,(0,t.prepareUpdate)({name:e,selectedDataSelector:q,selectedFormatterType:l,currentFormatterConfig:r}))},onFormatterConfigChange:(a,o,l)=>{K(l),s(a,(0,t.prepareUpdate)({name:e,selectedDataSelector:q,selectedFormatterType:V,currentFormatterConfig:l}))},formatters:c,dataSelectors:p,defaultPalettesConfig:_,showStaticTextColor:M}))))},t.DynamicColorEditor.propTypes=M},8281:function(e,t,a){var o=this&&this.__createBinding||(Object.create?function(e,t,a,o){void 0===o&&(o=a);var l=Object.getOwnPropertyDescriptor(t,a);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,o,l)}:function(e,t,a,o){void 0===o&&(o=a),e[o]=t[a]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&o(t,e,a);return l(t,e),t},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DynamicColorEditorWithPrecedence=void 0;const i=r(a(9497)),s=a(6649),u=a(5089),d=a(333),c=a(152),f=n(a(2065)),p=a(1027),m=Object.assign({},d.DynamicColorEditorPropTypes);t.DynamicColorEditorWithPrecedence=({name:e,value:t,label:a="",labelPosition:o,labelWidth:l,context:r,flyoutTitle:n=(0,s._)("Dynamic coloring"),formatters:d=[],dataSelectors:m=[],defaultPalettesConfig:g=u.defaultPalettesConfig,tooltip:b,options:h={},onChange:v=(()=>{})})=>{const y=i.useCallback((e=>{if(!e||""===e)return!0;if("string"==typeof e){return null!==/^>\s*areaValues\s*\|\s*gradient\(\s*\)$/.exec(e)}return!1}),[]),[C,_]=i.useState(!y(t));i.useEffect((()=>{_(!y(t))}),[t,y]);const O=i.useCallback(((a,o)=>{var l,n,i,s,u,c;_((e=>!e));const f={},g={};if(C){const t=m.map((e=>e.value));f[e]=(0,p.getToggleOffValueForDataColors)({name:e,options:h,dataSelectors:t}),r&&void 0!==r.dataColorsEditorConfig&&(g.dataColorsEditorConfig=void 0)}else{if("string"==typeof t&&null!==/^>\s*areaValues\s*\|\s*gradient\(\s*\)$/.exec(t)){f[e]="> areaValues | gradient(dataColorsEditorConfig)";const t=null===(n=null===(l=d.find((e=>"gradient"===e.value)))||void 0===l?void 0:l.defaults)||void 0===n?void 0:n.areaValues;t&&(g.dataColorsEditorConfig=t)}else if(e.endsWith("dataColors")){const t=null===(i=m[0])||void 0===i?void 0:i.value,a=null===(s=d[0])||void 0===s?void 0:s.value,o=null===(c=null===(u=d[0])||void 0===u?void 0:u.defaults)||void 0===c?void 0:c[t];if(!t||!a||!o)return;f[e]=`> ${m[0].value} | ${a}(dataColorsEditorConfig)`,g.dataColorsEditorConfig=o}}v(a,{options:f,context:g})}),[r,m,d,C,e,v,h,t]),E=i.useCallback(((e,t)=>{v(e,t)}),[v]);return i.createElement("div",{"data-test":"dynamic-color-toggle"},i.createElement(f.default,{name:e,label:(0,s._)("Dynamic coloring"),labelPosition:"right",value:C,onChange:O,itemSchema:{type:"boolean"},help:b}),C&&i.createElement("div",{"data-test":"dynamic-color-editor"},i.createElement(c.DynamicColorEditor,{name:e,label:a,labelPosition:o,labelWidth:l,value:t,context:r,onChange:E,flyoutTitle:n,formatters:d,dataSelectors:m,defaultPalettesConfig:g})))},t.DynamicColorEditorWithPrecedence.propTypes=m},7585:function(e,t,a){var o=this&&this.__createBinding||(Object.create?function(e,t,a,o){void 0===o&&(o=a);var l=Object.getOwnPropertyDescriptor(t,a);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,o,l)}:function(e,t,a,o){void 0===o&&(o=a),e[o]=t[a]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&o(t,e,a);return l(t,e),t},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(a(9497)),s=r(a(23)),u=a(4793),d=n(a(4082)),c=n(a(9250)),f=n(a(7143)),p=a(6649),m=n(a(5731)),g=n(a(5456)),b=a(4381),h=a(5862),v=(0,p._)("Advanced configuration options are being used by this input. Please edit in source mode."),y=({name:e,context:t,value:a="",label:o,onChange:l,dataSourceBindings:r,labelPosition:n="top",labelWidth:s,help:y=v,validate:C})=>{const[_,O]=i.useState([]),[E,x]=i.useState(""),[P,j]=i.useState("");i.useEffect((()=>{const{staticOptions:e,dynamicOptionsLabel:o,dynamicOptionsValue:l}=(0,b.getDynamicOptionsFromConfig)({items:a,context:t});O(e),x(o),j(l)}),[a,t]),i.useEffect((()=>{void 0!==r.primary||Array.isArray(a)||l(null,{context:{formattedConfig:void 0,formattedStatics:void 0,statics:void 0,label:void 0,value:void 0},options:{[e]:_}})}),[r,e,a,l,_]);const w=i.useCallback(((t,o,r)=>{if(Array.isArray(a)&&(!o||!r))l(null,{options:{[e]:t}});else{const a=(0,u.unzip)(t.map((({label:e,value:t})=>[e,t])));l(null,{context:{formattedConfig:{number:{prefix:""}},formattedStatics:">statics | formatByType(formattedConfig)",statics:a,label:`>primary | seriesByName("${o}") | renameSeries("label") | formatByType(formattedConfig)`,value:`>primary | seriesByName("${r}") | renameSeries("value") | formatByType(formattedConfig)`},options:{[e]:">frame(label, value) | prepend(formattedStatics) | objects()"}})}}),[e,a,l]),T=i.useCallback(((e,t,a)=>{w(a,E,P)}),[w,E,P]),D=i.useCallback(((e,{value:t})=>{""===P?x(t):w(_,t,P)}),[w,_,P]),S=i.useCallback(((e,{value:t})=>{""===E?j(t):w(_,E,t)}),[w,_,E]),M=e=>t=>{var a;const o=null===(a=null==t?void 0:t.options)||void 0===a?void 0:a[e];return"string"==typeof o?{value:(0,b.getFieldFromFieldNameDsl)(o)}:{value:""}};if(i.useMemo((()=>(0,b.isConfigAdvanced)({items:a,context:t})),[a,t]))return i.createElement(c.default,{label:(0,p._)(o),labelPosition:n,labelWidth:s,help:y},i.createElement(d.default,{key:a.toString(),"data-test":e,disabled:!0,defaultValue:a.toString()}));const k=!!r.primary;return i.createElement(i.Fragment,null,i.createElement(g.default,{name:"",label:(0,p._)("Static menu configuration"),labelPosition:n,value:_,onChange:T,validate:C}),k&&i.createElement(f.default,{key:"dynamic-item-editor-label-value-layout",gutter:h.VERTICAL_EDITOR_SPACING},i.createElement(f.default.Row,{key:"dynamic-item-editor-label-row"},i.createElement(m.default,{name:"label",label:(0,p._)("Dynamic menu label field"),dataSourceKey:"primary",dataSourceBindings:r,value:`>primary | seriesByName("${E}")`,context:t,onChange:D,prepareValue:M("label")})),i.createElement(f.default.Row,{key:"dynamic-item-editor-value-row"},i.createElement(m.default,{name:"value",label:(0,p._)("Dynamic menu value field"),dataSourceKey:"primary",dataSourceBindings:r,value:`>primary | seriesByName("${P}")`,context:t,onChange:S,prepareValue:M("value")}))))};y.propTypes={onChange:s.func.isRequired,name:s.string.isRequired,label:s.string.isRequired,value:s.oneOfType([s.arrayOf(s.shape({label:s.string.isRequired,value:s.string.isRequired}).isRequired),s.string]),labelPosition:s.oneOf(["top","left"]),labelWidth:s.number,context:s.shape({label:s.string,value:s.string,statics:s.arrayOf(s.arrayOf(s.string.isRequired).isRequired)}).isRequired,dataSourceBindings:s.shape({primary:s.any}).isRequired,help:s.string},t.default=y},7970:function(e,t,a){var o=this&&this.__createBinding||(Object.create?function(e,t,a,o){void 0===o&&(o=a);var l=Object.getOwnPropertyDescriptor(t,a);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,o,l)}:function(e,t,a,o){void 0===o&&(o=a),e[o]=t[a]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&o(t,e,a);return l(t,e),t},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(a(9497)),s=r(a(23)),u=n(a(232)),d=n(a(348));a(6265);const c=n(a(1018)),f=a(6649),p=n(a(6447)),m=a(3563),g=a(5135),b=a(962),h=a(137),v=u.default.div`
155
+ `,M=Object.assign(Object.assign({},O.BaseEditorPropTypes),{flyoutTitle:s.string,formatters:s.arrayOf(s.shape({label:s.string,value:s.string,defaults:s.object,isDefault:s.bool})),dataSelectors:s.arrayOf(s.shape({label:s.string,value:s.string})),defaultPalettesConfig:y.sharedPalettesConfigPropType,showStaticTextColor:s.bool,colorMode:s.oneOf(["text","background","off"]),handleColorModeChange:s.func});t.prepareUpdate=({name:e,selectedDataSelector:t,selectedFormatterType:a,currentFormatterConfig:o})=>{const l=`${e}EditorConfig`,r=l.replace(/^\w+\[\d+\]\.(.+)$/,"$1");return{options:{[e]:(0,h.buildDSLFromDataSelectorAndFormatter)(t,a,l)},context:{[r]:o}}};t.DynamicColorEditor=({name:e,value:a,label:o="",labelPosition:l="left",labelWidth:r,context:n,onChange:s=(()=>{}),flyoutTitle:u=(0,m._)("Dynamic coloring"),formatters:c=[],dataSelectors:p=[],defaultPalettesConfig:_=g.defaultPalettesConfig,isDisabled:O=!1,showStaticTextColor:M=!1,colorMode:k,handleColorModeChange:F})=>{const[R,B]=P(!1),A=x(null),{type:I,paramKey:L}=(0,h.getLastFormatterFromDSL)(a)||{type:"unknown",paramKey:"unknown"},$=(0,h.getDataSelectorsFromDSL)(a)[0],[V,N]=P(I);j((()=>{N(I)}),[I]);const[q,W]=P($);j((()=>{W($)}),[$]);const U=(0,E.getFormatterConfig)({contextConfig:n[L],formatters:c,formatterFromDSL:I,selectedDataSelector:q}),[z,G]=P(U);j((()=>{G(U)}),[n,c,L,I,$]);const K=a=>{const o=(0,b.find)(c,(e=>e.isDefault))||(0,b.find)(c,(e=>"rangeValue"===e.value))||c[0];if((0,b.isEmpty)(o))return;const l=o.value,r=Object.keys(o.defaults)[0],n=o.defaults[r];W(r),N(l),G(n),s(a,(0,t.prepareUpdate)({name:e,selectedDataSelector:r,selectedFormatterType:l,currentFormatterConfig:n}))},H=i.useCallback((()=>{B((e=>!e))}),[]);if(!(0,E.isSupportedDataSelector)({selectedDataSelector:q,dataSelectors:p})||!(0,E.isSupportedFormatter)({selectedFormatterType:V,formattersFromEditor:c,supportedFormatters:y.supportedFormatters}))return i.createElement(C.default,{label:o,labelPosition:l,labelWidth:r,onResetToDefault:K});const Y=y.supportedFormatters[V].preview;return i.createElement(i.Fragment,null,i.createElement(d.default,{"data-test":"DynamicColorEditorGroup",label:o,labelPosition:l,labelWidth:r},i.createElement(S,{inline:!1,"data-test":"DynamicColorEditorButton",appearance:"default",ref:A,onClick:H,disabled:O},i.createElement(Y,{"data-test":"FormatterConfigPreview",config:z}))),i.createElement(f.default,{"data-test":"DynamicColorEditorFlyout",open:R,anchor:A.current,defaultPlacement:"horizontal",style:{padding:"10px"},onRequestClose:()=>B(!1),takeFocus:!0},i.createElement(D,null,!k&&i.createElement(w,null,u),k&&i.createElement(d.default,{"data-test":"TableDynamicColorEditorGroup",label:u,labelPosition:l,labelWidth:r},i.createElement(v.default,{value:k,onChange:F},[{label:(0,m._)("Off"),value:"off"},{label:(0,m._)("Text"),value:"text"},{label:(0,m._)("Background"),value:"background"}].map((({label:e,value:t})=>i.createElement(v.default.Option,{key:t,value:t,label:(0,m._)(e)}))))),k&&i.createElement(T,null,(0,m._)("Method")),i.createElement(y.FormatterEditor,{selectedDataSelector:q,selectedFormatterType:V,currentFormatterConfig:z,onDataSelectorChange:(a,o,l)=>{W(l);const r=(0,b.find)(c,(e=>e.defaults[l]));N(r.value);const n=r.defaults[l];G(n),s(a,(0,t.prepareUpdate)({name:e,selectedDataSelector:l,selectedFormatterType:r.value,currentFormatterConfig:n}))},onFormatterTypeChange:(a,o,l)=>{N(l);const r=(0,b.find)(c,["value",l]).defaults[q];G(r),s(a,(0,t.prepareUpdate)({name:e,selectedDataSelector:q,selectedFormatterType:l,currentFormatterConfig:r}))},onFormatterConfigChange:(a,o,l)=>{G(l),s(a,(0,t.prepareUpdate)({name:e,selectedDataSelector:q,selectedFormatterType:V,currentFormatterConfig:l}))},formatters:c,dataSelectors:p,defaultPalettesConfig:_,showStaticTextColor:M}))))},t.DynamicColorEditor.propTypes=M},8281:function(e,t,a){var o=this&&this.__createBinding||(Object.create?function(e,t,a,o){void 0===o&&(o=a);var l=Object.getOwnPropertyDescriptor(t,a);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,o,l)}:function(e,t,a,o){void 0===o&&(o=a),e[o]=t[a]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&o(t,e,a);return l(t,e),t},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DynamicColorEditorWithPrecedence=void 0;const i=r(a(9497)),s=a(6649),u=a(5089),d=a(333),c=a(152),f=n(a(2065)),p=a(1027),m=Object.assign({},d.DynamicColorEditorPropTypes);t.DynamicColorEditorWithPrecedence=({name:e,value:t,label:a="",labelPosition:o,labelWidth:l,context:r,flyoutTitle:n=(0,s._)("Dynamic coloring"),formatters:d=[],dataSelectors:m=[],defaultPalettesConfig:g=u.defaultPalettesConfig,tooltip:b,options:h={},onChange:v=(()=>{})})=>{const y=i.useCallback((e=>{if(!e||""===e)return!0;if("string"==typeof e){return null!==/^>\s*areaValues\s*\|\s*gradient\(\s*\)$/.exec(e)}return!1}),[]),[C,_]=i.useState(!y(t));i.useEffect((()=>{_(!y(t))}),[t,y]);const O=i.useCallback(((a,o)=>{var l,n,i,s,u,c;_((e=>!e));const f={},g={};if(C){const t=m.map((e=>e.value));f[e]=(0,p.getToggleOffValueForDataColors)({name:e,options:h,dataSelectors:t}),r&&void 0!==r.dataColorsEditorConfig&&(g.dataColorsEditorConfig=void 0)}else{if("string"==typeof t&&null!==/^>\s*areaValues\s*\|\s*gradient\(\s*\)$/.exec(t)){f[e]="> areaValues | gradient(dataColorsEditorConfig)";const t=null===(n=null===(l=d.find((e=>"gradient"===e.value)))||void 0===l?void 0:l.defaults)||void 0===n?void 0:n.areaValues;t&&(g.dataColorsEditorConfig=t)}else if(e.endsWith("dataColors")){const t=null===(i=m[0])||void 0===i?void 0:i.value,a=null===(s=d[0])||void 0===s?void 0:s.value,o=null===(c=null===(u=d[0])||void 0===u?void 0:u.defaults)||void 0===c?void 0:c[t];if(!t||!a||!o)return;f[e]=`> ${m[0].value} | ${a}(dataColorsEditorConfig)`,g.dataColorsEditorConfig=o}}v(a,{options:f,context:g})}),[r,m,d,C,e,v,h,t]),E=i.useCallback(((e,t)=>{v(e,t)}),[v]);return i.createElement("div",{"data-test":"dynamic-color-toggle"},i.createElement(f.default,{name:e,label:(0,s._)("Dynamic coloring"),labelPosition:"right",value:C,onChange:O,itemSchema:{type:"boolean"},help:b}),C&&i.createElement("div",{"data-test":"dynamic-color-editor"},i.createElement(c.DynamicColorEditor,{name:e,label:a,labelPosition:o,labelWidth:l,value:t,context:r,onChange:E,flyoutTitle:n,formatters:d,dataSelectors:m,defaultPalettesConfig:g})))},t.DynamicColorEditorWithPrecedence.propTypes=m},7585:function(e,t,a){var o=this&&this.__createBinding||(Object.create?function(e,t,a,o){void 0===o&&(o=a);var l=Object.getOwnPropertyDescriptor(t,a);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,o,l)}:function(e,t,a,o){void 0===o&&(o=a),e[o]=t[a]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&o(t,e,a);return l(t,e),t},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(a(9497)),s=r(a(23)),u=a(4793),d=n(a(4082)),c=n(a(9250)),f=n(a(7143)),p=a(6649),m=n(a(5731)),g=n(a(5456)),b=a(4381),h=a(5862),v=(0,p._)("Advanced configuration options are being used by this input. Please edit in source mode."),y=({name:e,context:t,value:a="",label:o,onChange:l,dataSourceBindings:r,labelPosition:n="top",labelWidth:s,help:y=v,validate:C})=>{const[_,O]=i.useState([]),[E,x]=i.useState(""),[P,j]=i.useState("");i.useEffect((()=>{const{staticOptions:e,dynamicOptionsLabel:o,dynamicOptionsValue:l}=(0,b.getDynamicOptionsFromConfig)({items:a,context:t});O(e),x(o),j(l)}),[a,t]),i.useEffect((()=>{void 0!==r.primary||Array.isArray(a)||l(null,{context:{formattedConfig:void 0,formattedStatics:void 0,statics:void 0,label:void 0,value:void 0},options:{[e]:_}})}),[r,e,a,l,_]);const w=i.useCallback(((t,o,r)=>{if(Array.isArray(a)&&(!o||!r))l(null,{options:{[e]:t}});else{const a=(0,u.unzip)(t.map((({label:e,value:t})=>[e,t])));l(null,{context:{formattedConfig:{number:{prefix:""}},formattedStatics:">statics | formatByType(formattedConfig)",statics:a,label:`>primary | seriesByName("${o}") | renameSeries("label") | formatByType(formattedConfig)`,value:`>primary | seriesByName("${r}") | renameSeries("value") | formatByType(formattedConfig)`},options:{[e]:">frame(label, value) | prepend(formattedStatics) | objects()"}})}}),[e,a,l]),T=i.useCallback(((e,t,a)=>{w(a,E,P)}),[w,E,P]),D=i.useCallback(((e,{value:t})=>{""===P?x(t):w(_,t,P)}),[w,_,P]),S=i.useCallback(((e,{value:t})=>{""===E?j(t):w(_,E,t)}),[w,_,E]),M=e=>t=>{var a;const o=null===(a=null==t?void 0:t.options)||void 0===a?void 0:a[e];return"string"==typeof o?{value:(0,b.getFieldFromFieldNameDsl)(o)}:{value:""}};if(i.useMemo((()=>(0,b.isConfigAdvanced)({items:a,context:t})),[a,t]))return i.createElement(c.default,{label:(0,p._)(o),labelPosition:n,labelWidth:s,help:y},i.createElement(d.default,{key:a.toString(),"data-test":e,disabled:!0,defaultValue:a.toString()}));const k=!!r.primary;return i.createElement(i.Fragment,null,i.createElement(g.default,{name:"",label:(0,p._)("Static menu configuration"),labelPosition:n,value:_,onChange:T,validate:C}),k&&i.createElement(f.default,{key:"dynamic-item-editor-label-value-layout",gutter:h.VERTICAL_EDITOR_SPACING},i.createElement(f.default.Row,{key:"dynamic-item-editor-label-row"},i.createElement(m.default,{name:"label",label:(0,p._)("Dynamic menu label field"),dataSourceKey:"primary",dataSourceBindings:r,value:`>primary | seriesByName("${E}")`,context:t,onChange:D,prepareValue:M("label")})),i.createElement(f.default.Row,{key:"dynamic-item-editor-value-row"},i.createElement(m.default,{name:"value",label:(0,p._)("Dynamic menu value field"),dataSourceKey:"primary",dataSourceBindings:r,value:`>primary | seriesByName("${P}")`,context:t,onChange:S,prepareValue:M("value")}))))};y.propTypes={onChange:s.func.isRequired,name:s.string.isRequired,label:s.string.isRequired,value:s.oneOfType([s.arrayOf(s.shape({label:s.string.isRequired,value:s.string.isRequired}).isRequired),s.string]),labelPosition:s.oneOf(["top","left"]),labelWidth:s.number,context:s.shape({label:s.string,value:s.string,statics:s.arrayOf(s.arrayOf(s.string.isRequired).isRequired)}).isRequired,dataSourceBindings:s.shape({primary:s.any}).isRequired,help:s.string},t.default=y},7970:function(e,t,a){var o=this&&this.__createBinding||(Object.create?function(e,t,a,o){void 0===o&&(o=a);var l=Object.getOwnPropertyDescriptor(t,a);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,o,l)}:function(e,t,a,o){void 0===o&&(o=a),e[o]=t[a]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&o(t,e,a);return l(t,e),t},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(a(9497)),s=r(a(23)),u=n(a(232)),d=n(a(348));a(6265);const c=n(a(1018)),f=a(6649),p=n(a(6447)),m=a(3563),g=a(5135),b=a(962),h=a(137),v=u.default.div`
156
156
  font-family: ${m.variables.sansFontFamily};
157
157
  .react-mde * {
158
158
  font-family: inherit;
@@ -202,7 +202,7 @@
202
202
  height: 412px;
203
203
  overflow-y: auto;
204
204
  padding: 8px 10px;
205
- `;t.ColorFlyoutEditor=({colors:e,CustomColorMatchEditor:t,handleColorRemove:a,handleColorChange:o,flyoutTitle:l,addColorButtonLabel:r,handleColorAdd:n,handleColorMove:s})=>{const u=(0,i.useMemo)((()=>e.map(((e,l)=>{const r=null==t;return i.default.createElement(p.default.Row,{index:l,key:(0,m.createDOMID)(),"data-color":e,onRequestRemove:a},i.default.createElement("div",{style:{display:"flex",justifyContent:"space-between"}},i.default.createElement(C.default,{value:e,key:(0,m.createDOMID)(),onChange:o(l),hideLabel:!0,label:" ",name:"color",style:{marginBottom:0,marginTop:0,width:r?"100%":32},showTextInput:r}),"function"==typeof t&&i.default.createElement(t,{index:l})))}))),[e,t,a,o]);return i.default.createElement(P,{"data-test":"MultiColorPickerFlyoutContent"},i.default.createElement(j,{"data-test":"MultiColorPickerFlyoutTitle"},l),i.default.createElement(w,null,i.default.createElement(p.default,{addLabel:r,onRequestAdd:n,onRequestMove:s,"data-test":"ColorListEditor"},u)))};let T=0;const D=({CustomColorMatchEditor:e,onChange:a=d.noop,canReorderColors:o=!0,value:l=h.VIZ_CATEGORICAL,flyoutTitle:r=(0,f._)("Customize colors"),addColorButtonLabel:n=(0,f._)("Add color"),name:s="seriesColors",label:u="",labelPosition:c="top",labelWidth:p,isDisabled:g=!1,hideLabel:v=!0,canAddNewColors:C=!0})=>{const[P,j]=(0,i.useState)(!1),[w,D]=(0,i.useState)(l),S=(0,i.useRef)(null);(0,i.useEffect)((()=>{D(l)}),[l]);const M=(0,i.useCallback)((()=>{a(null,s,[...w,h.VIZ_CATEGORICAL[T%h.VIZ_CATEGORICAL.length]]),T+=1}),[s,a,w]),k=(0,i.useCallback)((e=>(t,o,l)=>{const r=[...w];r.splice(e,1,l),a(null,s,r)}),[s,a,w]),F=(0,i.useCallback)(((e,{index:t})=>{const o=[...w];o.splice(t,1),a(null,s,o)}),[s,a,w]),R=(0,i.useCallback)((({fromIndex:e,toIndex:t})=>{const o=[...w],l=o[e];o.splice(e,1),o.splice(t,0,l),a(null,s,o)}),[s,a,w]),B=(0,i.useCallback)((({event:e,reason:t})=>{var a;(null===(a=null==e?void 0:e.srcElement)||void 0===a?void 0:a.sortableHandle)||j(!1),"escapeKey"===t&&S.current.focus()}),[]),A=(0,i.useMemo)((()=>w.map((e=>i.default.createElement(x,{color:e,key:(0,m.createDOMID)()})))),[w]),I=(0,i.useCallback)((()=>{j((e=>!e))}),[]);return i.default.createElement(y.default,{label:u,labelPosition:c,labelWidth:p,hideLabel:v,"data-test":"MultiColorPickerEditor"},i.default.createElement(E,{inline:!1,"data-test":"MultiColorPickerButton",appearance:"default",ref:S,onClick:I,disabled:g,style:O},A),i.default.createElement(b.default,{"data-test":"MultiColorPickerFlyout",open:P,anchor:S.current,defaultPlacement:"horizontal",style:_,onRequestClose:B,takeFocus:!0},i.default.createElement(t.ColorFlyoutEditor,{colors:w,CustomColorMatchEditor:e,handleColorRemove:F,handleColorChange:k,handleColorAdd:C?M:void 0,handleColorMove:o?R:void 0,flyoutTitle:r,addColorButtonLabel:n})))};D.propTypes=Object.assign(Object.assign({},v.BaseEditorPropTypes),{canReorderColors:s.bool,canAddNewColors:s.bool,value:s.arrayOf(s.string),flyoutTitle:s.string,addColorButtonLabel:s.string,CustomColorMatchEditor:s.func,hideLabel:s.bool}),t.default=D},4215:function(e,t,a){var o=this&&this.__createBinding||(Object.create?function(e,t,a,o){void 0===o&&(o=a);var l=Object.getOwnPropertyDescriptor(t,a);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,o,l)}:function(e,t,a,o){void 0===o&&(o=a),e[o]=t[a]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&o(t,e,a);return l(t,e),t},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(a(9497)),s=n(a(232)),u=n(a(4566)),d=n(a(7020)),c=n(a(1551)),f=n(a(6769)),p=a(3563),m=n(a(1668)),g=n(a(4008)),b=(0,s.default)(m.default)`
205
+ `;t.ColorFlyoutEditor=({colors:e,CustomColorMatchEditor:t,handleColorRemove:a,handleColorChange:o,flyoutTitle:l,addColorButtonLabel:r,handleColorAdd:n,handleColorMove:s})=>{const u=(0,i.useMemo)((()=>e.map(((e,l)=>{const r=null==t;return i.default.createElement(p.default.Row,{index:l,key:(0,m.createDOMID)(),"data-color":e,onRequestRemove:a},i.default.createElement("div",{style:{display:"flex",justifyContent:"space-between"}},i.default.createElement(C.default,{value:e,key:(0,m.createDOMID)(),onChange:o(l),hideLabel:!0,label:" ",name:"color",style:{marginBottom:0,marginTop:0,width:r?"100%":32},showTextInput:r}),"function"==typeof t&&i.default.createElement(t,{index:l})))}))),[e,t,a,o]);return i.default.createElement(P,{"data-test":"MultiColorPickerFlyoutContent"},i.default.createElement(j,{"data-test":"MultiColorPickerFlyoutTitle"},l),i.default.createElement(w,null,i.default.createElement(p.default,{addLabel:r,onRequestAdd:n,onRequestMove:s,"data-test":"ColorListEditor"},u)))};const T=({CustomColorMatchEditor:e,onChange:a=d.noop,canReorderColors:o=!0,value:l=h.VIZ_CATEGORICAL,flyoutTitle:r=(0,f._)("Customize colors"),addColorButtonLabel:n=(0,f._)("Add color"),name:s="seriesColors",label:u="",labelPosition:c="top",labelWidth:p,isDisabled:g=!1,hideLabel:v=!0,canAddNewColors:C=!0})=>{const[P,j]=(0,i.useState)(!1),[w,T]=(0,i.useState)(l),D=(0,i.useRef)(null);(0,i.useEffect)((()=>{T(l)}),[l]);const S=(0,i.useCallback)((()=>{const e=new Set(w);let t=h.VIZ_CATEGORICAL.find((t=>!e.has(t)));if(!t){const e=new Map;h.VIZ_CATEGORICAL.forEach((t=>e.set(t,0))),w.forEach((t=>{e.set(t,(e.get(t)||0)+1)}));let a=1/0;h.VIZ_CATEGORICAL.forEach((o=>{const l=e.get(o)||0;l<a&&(a=l,t=o)}))}a(null,s,[...w,t])}),[s,a,w]),M=(0,i.useCallback)((e=>(t,o,l)=>{const r=[...w];r.splice(e,1,l),a(null,s,r)}),[s,a,w]),k=(0,i.useCallback)(((e,{index:t})=>{const o=[...w];o.splice(t,1),a(null,s,o)}),[s,a,w]),F=(0,i.useCallback)((({fromIndex:e,toIndex:t})=>{const o=[...w],l=o[e];o.splice(e,1),o.splice(t,0,l),a(null,s,o)}),[s,a,w]),R=(0,i.useCallback)((({event:e,reason:t})=>{var a;(null===(a=null==e?void 0:e.srcElement)||void 0===a?void 0:a.sortableHandle)||j(!1),"escapeKey"===t&&D.current.focus()}),[]),B=(0,i.useMemo)((()=>w.map((e=>i.default.createElement(x,{color:e,key:(0,m.createDOMID)()})))),[w]),A=(0,i.useCallback)((()=>{j((e=>!e))}),[]);return i.default.createElement(y.default,{label:u,labelPosition:c,labelWidth:p,hideLabel:v,"data-test":"MultiColorPickerEditor"},i.default.createElement(E,{inline:!1,"data-test":"MultiColorPickerButton",appearance:"default",ref:D,onClick:A,disabled:g,style:O},B),i.default.createElement(b.default,{"data-test":"MultiColorPickerFlyout",open:P,anchor:D.current,defaultPlacement:"horizontal",style:_,onRequestClose:R,takeFocus:!0},i.default.createElement(t.ColorFlyoutEditor,{colors:w,CustomColorMatchEditor:e,handleColorRemove:k,handleColorChange:M,handleColorAdd:C?S:void 0,handleColorMove:o?F:void 0,flyoutTitle:r,addColorButtonLabel:n})))};T.propTypes=Object.assign(Object.assign({},v.BaseEditorPropTypes),{canReorderColors:s.bool,canAddNewColors:s.bool,value:s.arrayOf(s.string),flyoutTitle:s.string,addColorButtonLabel:s.string,CustomColorMatchEditor:s.func,hideLabel:s.bool}),t.default=T},4215:function(e,t,a){var o=this&&this.__createBinding||(Object.create?function(e,t,a,o){void 0===o&&(o=a);var l=Object.getOwnPropertyDescriptor(t,a);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,o,l)}:function(e,t,a,o){void 0===o&&(o=a),e[o]=t[a]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&o(t,e,a);return l(t,e),t},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(a(9497)),s=n(a(232)),u=n(a(4566)),d=n(a(7020)),c=n(a(1551)),f=n(a(6769)),p=a(3563),m=n(a(1668)),g=n(a(4008)),b=(0,s.default)(m.default)`
206
206
  background-color: ${u.default.backgroundColorPopup};
207
207
  `,h=s.default.span`
208
208
  font-weight: 500;