@grafana/scenes 6.10.3--canary.1113.14667240921.0 → 6.10.3--canary.1116.14842936692.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/SceneTimePicker.js +2 -3
- package/dist/esm/components/SceneTimePicker.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -43,7 +43,7 @@ class SceneTimePicker extends SceneObjectBase {
|
|
|
43
43
|
}
|
|
44
44
|
SceneTimePicker.Component = SceneTimePickerRenderer;
|
|
45
45
|
function SceneTimePickerRenderer({ model }) {
|
|
46
|
-
const { hidePicker, isOnCanvas, quickRanges
|
|
46
|
+
const { hidePicker, isOnCanvas, quickRanges } = model.useState();
|
|
47
47
|
const timeRange = sceneGraph.getTimeRange(model);
|
|
48
48
|
const timeZone = timeRange.getTimeZone();
|
|
49
49
|
const timeRangeState = timeRange.useState();
|
|
@@ -55,7 +55,6 @@ function SceneTimePickerRenderer({ model }) {
|
|
|
55
55
|
if (hidePicker) {
|
|
56
56
|
return null;
|
|
57
57
|
}
|
|
58
|
-
const rangesToUse = quickRanges || defaultQuickRanges;
|
|
59
58
|
return /* @__PURE__ */ React.createElement(
|
|
60
59
|
TimeRangePicker,
|
|
61
60
|
{
|
|
@@ -76,7 +75,7 @@ function SceneTimePickerRenderer({ model }) {
|
|
|
76
75
|
onChangeFiscalYearStartMonth: model.onChangeFiscalYearStartMonth,
|
|
77
76
|
weekStart: timeRangeState.weekStart,
|
|
78
77
|
history: timeRangeHistory,
|
|
79
|
-
quickRanges
|
|
78
|
+
quickRanges
|
|
80
79
|
}
|
|
81
80
|
);
|
|
82
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneTimePicker.js","sources":["../../../src/components/SceneTimePicker.tsx"],"sourcesContent":["import React from 'react';\nimport { useLocalStorage } from 'react-use';\nimport { uniqBy } from 'lodash';\n\nimport { TimeOption, TimeRange, isDateTime, rangeUtil, toUtc } from '@grafana/data';\nimport { TimeRangePicker } from '@grafana/ui';\n\nimport { SceneObjectBase } from '../core/SceneObjectBase';\nimport { sceneGraph } from '../core/sceneGraph';\nimport { SceneComponentProps, SceneObjectState } from '../core/types';\n\nexport interface SceneTimePickerState extends SceneObjectState {\n hidePicker?: boolean;\n isOnCanvas?: boolean;\n quickRanges?: TimeOption[];\n defaultQuickRanges?: TimeOption[]; // Overrides default time ranges from server config, so not serialised back to JSON\n}\n\nexport class SceneTimePicker extends SceneObjectBase<SceneTimePickerState> {\n public static Component = SceneTimePickerRenderer;\n\n public onZoom = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const zoomedTimeRange = getZoomedTimeRange(timeRange.state.value, 2);\n timeRange.onTimeRangeChange(zoomedTimeRange);\n };\n\n public onChangeFiscalYearStartMonth = (month: number) => {\n const timeRange = sceneGraph.getTimeRange(this);\n timeRange.setState({ fiscalYearStartMonth: month });\n };\n\n public toAbsolute = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const timeRangeVal = timeRange.state.value;\n const from = toUtc(timeRangeVal.from);\n const to = toUtc(timeRangeVal.to);\n timeRange.onTimeRangeChange({ from, to, raw: { from, to } });\n };\n\n public onMoveBackward = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const {\n state: { value: range },\n } = timeRange;\n\n timeRange.onTimeRangeChange(getShiftedTimeRange(TimeRangeDirection.Backward, range, Date.now()));\n };\n\n public onMoveForward = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const {\n state: { value: range },\n } = timeRange;\n\n timeRange.onTimeRangeChange(getShiftedTimeRange(TimeRangeDirection.Forward, range, Date.now()));\n };\n}\n\nfunction SceneTimePickerRenderer({ model }: SceneComponentProps<SceneTimePicker>) {\n const { hidePicker, isOnCanvas, quickRanges, defaultQuickRanges } = model.useState();\n const timeRange = sceneGraph.getTimeRange(model);\n const timeZone = timeRange.getTimeZone();\n const timeRangeState = timeRange.useState();\n const [timeRangeHistory, setTimeRangeHistory] = useLocalStorage<TimeRange[]>(HISTORY_LOCAL_STORAGE_KEY, [], {\n raw: false,\n serializer: serializeHistory,\n deserializer: deserializeHistory,\n });\n\n if (hidePicker) {\n return null;\n }\n\n const rangesToUse = quickRanges || defaultQuickRanges;\n\n return (\n <TimeRangePicker\n isOnCanvas={isOnCanvas ?? true}\n value={timeRangeState.value}\n onChange={(range) => {\n if (isAbsolute(range)) {\n setTimeRangeHistory([range, ...(timeRangeHistory ?? [])]);\n }\n\n timeRange.onTimeRangeChange(range);\n }}\n timeZone={timeZone}\n fiscalYearStartMonth={timeRangeState.fiscalYearStartMonth}\n onMoveBackward={model.onMoveBackward}\n onMoveForward={model.onMoveForward}\n onZoom={model.onZoom}\n onChangeTimeZone={timeRange.onTimeZoneChange}\n onChangeFiscalYearStartMonth={model.onChangeFiscalYearStartMonth}\n weekStart={timeRangeState.weekStart}\n history={timeRangeHistory}\n quickRanges={rangesToUse}\n />\n );\n}\n\nexport function getZoomedTimeRange(timeRange: TimeRange, factor: number): TimeRange {\n const timespan = timeRange.to.valueOf() - timeRange.from.valueOf();\n const center = timeRange.to.valueOf() - timespan / 2;\n // If the timepsan is 0, zooming out would do nothing, so we force a zoom out to 30s\n const newTimespan = timespan === 0 ? 30000 : timespan * factor;\n\n const to = center + newTimespan / 2;\n const from = center - newTimespan / 2;\n\n return { from: toUtc(from), to: toUtc(to), raw: { from: toUtc(from), to: toUtc(to) } };\n}\n\nexport enum TimeRangeDirection {\n Backward,\n Forward,\n}\n\nexport function getShiftedTimeRange(dir: TimeRangeDirection, timeRange: TimeRange, upperLimit: number): TimeRange {\n const oldTo = timeRange.to.valueOf();\n const oldFrom = timeRange.from.valueOf();\n const halfSpan = (oldTo - oldFrom) / 2;\n\n let fromRaw: number;\n let toRaw: number;\n if (dir === TimeRangeDirection.Backward) {\n fromRaw = oldFrom - halfSpan;\n toRaw = oldTo - halfSpan;\n } else {\n fromRaw = oldFrom + halfSpan;\n toRaw = oldTo + halfSpan;\n\n if (toRaw > upperLimit && oldTo < upperLimit) {\n toRaw = upperLimit;\n fromRaw = oldFrom;\n }\n }\n\n const from = toUtc(fromRaw);\n const to = toUtc(toRaw);\n return {\n from,\n to,\n raw: { from, to },\n };\n}\n\nconst HISTORY_LOCAL_STORAGE_KEY = 'grafana.dashboard.timepicker.history';\n\n// Simplified object to store in local storage\ninterface TimePickerHistoryItem {\n from: string;\n to: string;\n}\n\nfunction deserializeHistory(value: string): TimeRange[] {\n const values: TimePickerHistoryItem[] = JSON.parse(value);\n // The history is saved in UTC and with the default date format, so we need to pass those values to the convertRawToRange\n return values.map((item) => rangeUtil.convertRawToRange(item, 'utc', undefined, 'YYYY-MM-DD HH:mm:ss'));\n}\n\nfunction serializeHistory(values: TimeRange[]) {\n return JSON.stringify(\n limit(\n values.map((v) => ({\n from: typeof v.raw.from === 'string' ? v.raw.from : v.raw.from.toISOString(),\n to: typeof v.raw.to === 'string' ? v.raw.to : v.raw.to.toISOString(),\n }))\n )\n );\n}\n\nfunction limit(value: TimePickerHistoryItem[]): TimePickerHistoryItem[] {\n return uniqBy(value, (v) => v.from + v.to).slice(0, 4);\n}\n\nfunction isAbsolute(value: TimeRange): boolean {\n return isDateTime(value.raw.from) || isDateTime(value.raw.to);\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SceneTimePicker.js","sources":["../../../src/components/SceneTimePicker.tsx"],"sourcesContent":["import React from 'react';\nimport { useLocalStorage } from 'react-use';\nimport { uniqBy } from 'lodash';\n\nimport { TimeOption, TimeRange, isDateTime, rangeUtil, toUtc } from '@grafana/data';\nimport { TimeRangePicker } from '@grafana/ui';\n\nimport { SceneObjectBase } from '../core/SceneObjectBase';\nimport { sceneGraph } from '../core/sceneGraph';\nimport { SceneComponentProps, SceneObjectState } from '../core/types';\n\nexport interface SceneTimePickerState extends SceneObjectState {\n hidePicker?: boolean;\n isOnCanvas?: boolean;\n quickRanges?: TimeOption[];\n}\n\nexport class SceneTimePicker extends SceneObjectBase<SceneTimePickerState> {\n public static Component = SceneTimePickerRenderer;\n\n public onZoom = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const zoomedTimeRange = getZoomedTimeRange(timeRange.state.value, 2);\n timeRange.onTimeRangeChange(zoomedTimeRange);\n };\n\n public onChangeFiscalYearStartMonth = (month: number) => {\n const timeRange = sceneGraph.getTimeRange(this);\n timeRange.setState({ fiscalYearStartMonth: month });\n };\n\n public toAbsolute = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const timeRangeVal = timeRange.state.value;\n const from = toUtc(timeRangeVal.from);\n const to = toUtc(timeRangeVal.to);\n timeRange.onTimeRangeChange({ from, to, raw: { from, to } });\n };\n\n public onMoveBackward = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const {\n state: { value: range },\n } = timeRange;\n\n timeRange.onTimeRangeChange(getShiftedTimeRange(TimeRangeDirection.Backward, range, Date.now()));\n };\n\n public onMoveForward = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const {\n state: { value: range },\n } = timeRange;\n\n timeRange.onTimeRangeChange(getShiftedTimeRange(TimeRangeDirection.Forward, range, Date.now()));\n };\n}\n\nfunction SceneTimePickerRenderer({ model }: SceneComponentProps<SceneTimePicker>) {\n const { hidePicker, isOnCanvas, quickRanges } = model.useState();\n const timeRange = sceneGraph.getTimeRange(model);\n const timeZone = timeRange.getTimeZone();\n const timeRangeState = timeRange.useState();\n const [timeRangeHistory, setTimeRangeHistory] = useLocalStorage<TimeRange[]>(HISTORY_LOCAL_STORAGE_KEY, [], {\n raw: false,\n serializer: serializeHistory,\n deserializer: deserializeHistory,\n });\n\n if (hidePicker) {\n return null;\n }\n\n return (\n <TimeRangePicker\n isOnCanvas={isOnCanvas ?? true}\n value={timeRangeState.value}\n onChange={(range) => {\n if (isAbsolute(range)) {\n setTimeRangeHistory([range, ...(timeRangeHistory ?? [])]);\n }\n\n timeRange.onTimeRangeChange(range);\n }}\n timeZone={timeZone}\n fiscalYearStartMonth={timeRangeState.fiscalYearStartMonth}\n onMoveBackward={model.onMoveBackward}\n onMoveForward={model.onMoveForward}\n onZoom={model.onZoom}\n onChangeTimeZone={timeRange.onTimeZoneChange}\n onChangeFiscalYearStartMonth={model.onChangeFiscalYearStartMonth}\n weekStart={timeRangeState.weekStart}\n history={timeRangeHistory}\n //TODO: remove once grafana/grafana updated to 11.6\n //@ts-expect-error\n quickRanges={quickRanges}\n />\n );\n}\n\nexport function getZoomedTimeRange(timeRange: TimeRange, factor: number): TimeRange {\n const timespan = timeRange.to.valueOf() - timeRange.from.valueOf();\n const center = timeRange.to.valueOf() - timespan / 2;\n // If the timepsan is 0, zooming out would do nothing, so we force a zoom out to 30s\n const newTimespan = timespan === 0 ? 30000 : timespan * factor;\n\n const to = center + newTimespan / 2;\n const from = center - newTimespan / 2;\n\n return { from: toUtc(from), to: toUtc(to), raw: { from: toUtc(from), to: toUtc(to) } };\n}\n\nexport enum TimeRangeDirection {\n Backward,\n Forward,\n}\n\nexport function getShiftedTimeRange(dir: TimeRangeDirection, timeRange: TimeRange, upperLimit: number): TimeRange {\n const oldTo = timeRange.to.valueOf();\n const oldFrom = timeRange.from.valueOf();\n const halfSpan = (oldTo - oldFrom) / 2;\n\n let fromRaw: number;\n let toRaw: number;\n if (dir === TimeRangeDirection.Backward) {\n fromRaw = oldFrom - halfSpan;\n toRaw = oldTo - halfSpan;\n } else {\n fromRaw = oldFrom + halfSpan;\n toRaw = oldTo + halfSpan;\n\n if (toRaw > upperLimit && oldTo < upperLimit) {\n toRaw = upperLimit;\n fromRaw = oldFrom;\n }\n }\n\n const from = toUtc(fromRaw);\n const to = toUtc(toRaw);\n return {\n from,\n to,\n raw: { from, to },\n };\n}\n\nconst HISTORY_LOCAL_STORAGE_KEY = 'grafana.dashboard.timepicker.history';\n\n// Simplified object to store in local storage\ninterface TimePickerHistoryItem {\n from: string;\n to: string;\n}\n\nfunction deserializeHistory(value: string): TimeRange[] {\n const values: TimePickerHistoryItem[] = JSON.parse(value);\n // The history is saved in UTC and with the default date format, so we need to pass those values to the convertRawToRange\n return values.map((item) => rangeUtil.convertRawToRange(item, 'utc', undefined, 'YYYY-MM-DD HH:mm:ss'));\n}\n\nfunction serializeHistory(values: TimeRange[]) {\n return JSON.stringify(\n limit(\n values.map((v) => ({\n from: typeof v.raw.from === 'string' ? v.raw.from : v.raw.from.toISOString(),\n to: typeof v.raw.to === 'string' ? v.raw.to : v.raw.to.toISOString(),\n }))\n )\n );\n}\n\nfunction limit(value: TimePickerHistoryItem[]): TimePickerHistoryItem[] {\n return uniqBy(value, (v) => v.from + v.to).slice(0, 4);\n}\n\nfunction isAbsolute(value: TimeRange): boolean {\n return isDateTime(value.raw.from) || isDateTime(value.raw.to);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -100,7 +100,7 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
|
100
100
|
tooltip: `Remove filter with key ${keyLabel}`
|
|
101
101
|
}
|
|
102
102
|
) : null,
|
|
103
|
-
filter.origin && !filter.restorable && /* @__PURE__ */ React.createElement(Tooltip, { content: `This is a ${filter.origin} injected filter`, placement: "bottom" }, /* @__PURE__ */ React.createElement(Icon, { name: "info-circle", size: "md", className: styles.infoPillIcon })),
|
|
103
|
+
filter.origin && !filter.restorable && /* @__PURE__ */ React.createElement(Tooltip, { content: `This is a ${filter.origin} injected test filter`, placement: "bottom" }, /* @__PURE__ */ React.createElement(Icon, { name: "info-circle", size: "md", className: styles.infoPillIcon })),
|
|
104
104
|
filter.origin && filter.restorable && /* @__PURE__ */ React.createElement(
|
|
105
105
|
IconButton,
|
|
106
106
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdHocFilterPill.js","sources":["../../../../../src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2, IconButton, Tooltip, Icon } from '@grafana/ui';\nimport React, { useState, useRef, useCallback, useEffect } from 'react';\nimport { AdHocCombobox } from './AdHocFiltersCombobox';\nimport { AdHocFilterWithLabels, AdHocFiltersVariable, isMatchAllFilter } from '../AdHocFiltersVariable';\n\nconst LABEL_MAX_VISIBLE_LENGTH = 20;\n\ninterface Props {\n filter: AdHocFilterWithLabels;\n model: AdHocFiltersVariable;\n readOnly?: boolean;\n focusOnWipInputRef?: () => void;\n}\n\nexport function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }: Props) {\n const styles = useStyles2(getStyles);\n const [viewMode, setViewMode] = useState(true);\n const [shouldFocusOnPillWrapper, setShouldFocusOnPillWrapper] = useState(false);\n const pillWrapperRef = useRef<HTMLDivElement>(null);\n const [populateInputOnEdit, setPopulateInputOnEdit] = useState(false);\n\n const keyLabel = filter.keyLabel ?? filter.key;\n const valueLabel = filter.valueLabels?.join(', ') || filter.values?.join(', ') || filter.value;\n\n const handleChangeViewMode = useCallback(\n (event?: React.MouseEvent, shouldFocusOnPillWrapperOverride?: boolean) => {\n event?.stopPropagation();\n if (readOnly) {\n return;\n }\n\n setShouldFocusOnPillWrapper(shouldFocusOnPillWrapperOverride ?? !viewMode);\n setViewMode(!viewMode);\n },\n [readOnly, viewMode]\n );\n\n useEffect(() => {\n if (shouldFocusOnPillWrapper) {\n pillWrapperRef.current?.focus();\n setShouldFocusOnPillWrapper(false);\n }\n }, [shouldFocusOnPillWrapper]);\n\n // set viewMode to false when filter.forceEdit is defined\n useEffect(() => {\n if (filter.forceEdit && viewMode) {\n setViewMode(false);\n // immediately set forceEdit back to undefined as a clean up\n model._updateFilter(filter, { forceEdit: undefined });\n }\n }, [filter, model, viewMode]);\n\n // reset populateInputOnEdit when pill goes into view mode\n useEffect(() => {\n if (viewMode) {\n setPopulateInputOnEdit((prevValue) => (prevValue ? false : prevValue));\n }\n }, [viewMode]);\n\n if (viewMode) {\n const pillText = (\n <span className={styles.pillText}>\n {keyLabel} {filter.operator} {valueLabel}\n </span>\n );\n return (\n <div\n className={cx(\n styles.combinedFilterPill,\n readOnly && styles.readOnlyCombinedFilter,\n isMatchAllFilter(filter) && styles.matchAllPill\n )}\n onClick={(e) => {\n e.stopPropagation();\n setPopulateInputOnEdit(true);\n handleChangeViewMode();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n setPopulateInputOnEdit(true);\n handleChangeViewMode();\n }\n }}\n role=\"button\"\n aria-label={`Edit filter with key ${keyLabel}`}\n tabIndex={0}\n ref={pillWrapperRef}\n >\n {valueLabel.length < LABEL_MAX_VISIBLE_LENGTH ? (\n pillText\n ) : (\n <Tooltip content={<div className={styles.tooltipText}>{valueLabel}</div>} placement=\"top\">\n {pillText}\n </Tooltip>\n )}\n\n {!readOnly && !filter.matchAllFilter && (!filter.origin || filter.origin === 'dashboard') ? (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n if (filter.origin && filter.origin === 'dashboard') {\n model.updateToMatchAll(filter);\n } else {\n model._removeFilter(filter);\n }\n\n setTimeout(() => focusOnWipInputRef?.());\n }}\n onKeyDownCapture={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n if (filter.origin && filter.origin === 'dashboard') {\n model.updateToMatchAll(filter);\n } else {\n model._removeFilter(filter);\n }\n setTimeout(() => focusOnWipInputRef?.());\n }\n }}\n name=\"times\"\n size=\"md\"\n className={styles.pillIcon}\n tooltip={`Remove filter with key ${keyLabel}`}\n />\n ) : null}\n\n {filter.origin && !filter.restorable && (\n <Tooltip content={`This is a ${filter.origin} injected filter`} placement={'bottom'}>\n <Icon name=\"info-circle\" size=\"md\" className={styles.infoPillIcon} />\n </Tooltip>\n )}\n\n {filter.origin && filter.restorable && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n model.restoreOriginalFilter(filter);\n }}\n onKeyDownCapture={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n model.restoreOriginalFilter(filter);\n }\n }}\n name=\"history\"\n size=\"md\"\n className={isMatchAllFilter(filter) ? styles.matchAllPillIcon : styles.pillIcon}\n tooltip={`Restore filter to its original value`}\n />\n )}\n </div>\n );\n }\n\n return (\n <AdHocCombobox\n filter={filter}\n model={model}\n handleChangeViewMode={handleChangeViewMode}\n focusOnWipInputRef={focusOnWipInputRef}\n populateInputOnEdit={populateInputOnEdit}\n />\n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n combinedFilterPill: css({\n display: 'flex',\n alignItems: 'center',\n background: theme.colors.action.selected,\n borderRadius: theme.shape.radius.default,\n border: `1px solid ${theme.colors.border.weak}`,\n padding: theme.spacing(0.125, 0, 0.125, 1),\n color: theme.colors.text.primary,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n minHeight: theme.spacing(2.75),\n ...theme.typography.bodySmall,\n fontWeight: theme.typography.fontWeightBold,\n cursor: 'pointer',\n\n '&:hover': {\n background: theme.colors.action.hover,\n },\n }),\n readOnlyCombinedFilter: css({\n paddingRight: theme.spacing(1),\n cursor: 'text',\n '&:hover': {\n background: theme.colors.action.selected,\n },\n }),\n pillIcon: css({\n marginInline: theme.spacing(0.5),\n cursor: 'pointer',\n '&:hover': {\n color: theme.colors.text.primary,\n },\n }),\n pillText: css({\n maxWidth: '200px',\n width: '100%',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n }),\n tooltipText: css({\n textAlign: 'center',\n }),\n infoPillIcon: css({\n marginInline: theme.spacing(0.5),\n cursor: 'pointer',\n }),\n matchAllPillIcon: css({\n marginInline: theme.spacing(0.5),\n cursor: 'pointer',\n color: theme.colors.text.disabled,\n }),\n matchAllPill: css({\n background: theme.colors.action.selected,\n color: theme.colors.text.disabled,\n border: 0,\n '&:hover': {\n background: theme.colors.action.selected,\n },\n }),\n});\n"],"names":["_a"],"mappings":";;;;;;AAOA,MAAM,wBAA2B,GAAA,EAAA;AAS1B,SAAS,gBAAgB,EAAE,MAAA,EAAQ,KAAO,EAAA,QAAA,EAAU,oBAA6B,EAAA;AAhBxF,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiBE,EAAM,MAAA,MAAA,GAAS,WAAW,SAAS,CAAA;AACnC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,IAAI,CAAA;AAC7C,EAAA,MAAM,CAAC,wBAAA,EAA0B,2BAA2B,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9E,EAAM,MAAA,cAAA,GAAiB,OAAuB,IAAI,CAAA;AAClD,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAI,SAAS,KAAK,CAAA;AAEpE,EAAA,MAAM,QAAW,GAAA,CAAA,EAAA,GAAA,MAAA,CAAO,QAAP,KAAA,IAAA,GAAA,EAAA,GAAmB,MAAO,CAAA,GAAA;AAC3C,EAAM,MAAA,UAAA,GAAA,CAAA,CAAa,EAAO,GAAA,MAAA,CAAA,WAAA,KAAP,IAAoB,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAK,IAAS,CAAA,MAAA,CAAA,EAAA,GAAA,MAAA,CAAO,MAAP,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,IAAK,CAAA,IAAA,CAAA,CAAA,IAAS,MAAO,CAAA,KAAA;AAEzF,EAAA,MAAM,oBAAuB,GAAA,WAAA;AAAA,IAC3B,CAAC,OAA0B,gCAA+C,KAAA;AACxE,MAAO,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,eAAA,EAAA;AACP,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA;AAAA;AAGF,MAA4B,2BAAA,CAAA,gCAAA,IAAA,IAAA,GAAA,gCAAA,GAAoC,CAAC,QAAQ,CAAA;AACzE,MAAA,WAAA,CAAY,CAAC,QAAQ,CAAA;AAAA,KACvB;AAAA,IACA,CAAC,UAAU,QAAQ;AAAA,GACrB;AAEA,EAAA,SAAA,CAAU,MAAM;AAvClB,IAAAA,IAAAA,GAAAA;AAwCI,IAAA,IAAI,wBAA0B,EAAA;AAC5B,MAAA,CAAAA,GAAA,GAAA,cAAA,CAAe,OAAf,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA;AACxB,MAAA,2BAAA,CAA4B,KAAK,CAAA;AAAA;AACnC,GACF,EAAG,CAAC,wBAAwB,CAAC,CAAA;AAG7B,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,MAAA,CAAO,aAAa,QAAU,EAAA;AAChC,MAAA,WAAA,CAAY,KAAK,CAAA;AAEjB,MAAA,KAAA,CAAM,aAAc,CAAA,MAAA,EAAQ,EAAE,SAAA,EAAW,QAAW,CAAA;AAAA;AACtD,GACC,EAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,QAAQ,CAAC,CAAA;AAG5B,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,sBAAA,CAAuB,CAAC,SAAA,KAAe,SAAY,GAAA,KAAA,GAAQ,SAAU,CAAA;AAAA;AACvE,GACF,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,IAAI,QAAU,EAAA;AACZ,IAAM,MAAA,QAAA,mBACH,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,MAAA,CAAO,QACrB,EAAA,EAAA,QAAA,EAAS,GAAE,EAAA,MAAA,CAAO,QAAS,EAAA,GAAA,EAAE,UAChC,CAAA;AAEF,IACE,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,EAAA;AAAA,UACT,MAAO,CAAA,kBAAA;AAAA,UACP,YAAY,MAAO,CAAA,sBAAA;AAAA,UACnB,gBAAA,CAAiB,MAAM,CAAA,IAAK,MAAO,CAAA;AAAA,SACrC;AAAA,QACA,OAAA,EAAS,CAAC,CAAM,KAAA;AACd,UAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,UAAA,sBAAA,CAAuB,IAAI,CAAA;AAC3B,UAAqB,oBAAA,EAAA;AAAA,SACvB;AAAA,QACA,SAAA,EAAW,CAAC,CAAM,KAAA;AAChB,UAAI,IAAA,CAAA,CAAE,QAAQ,OAAS,EAAA;AACrB,YAAA,sBAAA,CAAuB,IAAI,CAAA;AAC3B,YAAqB,oBAAA,EAAA;AAAA;AACvB,SACF;AAAA,QACA,IAAK,EAAA,QAAA;AAAA,QACL,YAAA,EAAY,wBAAwB,QAAQ,CAAA,CAAA;AAAA,QAC5C,QAAU,EAAA,CAAA;AAAA,QACV,GAAK,EAAA;AAAA,OAAA;AAAA,MAEJ,WAAW,MAAS,GAAA,wBAAA,GACnB,QAEA,mBAAA,KAAA,CAAA,aAAA,CAAC,WAAQ,OAAS,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,OAAO,WAAc,EAAA,EAAA,UAAW,CAAQ,EAAA,SAAA,EAAU,SACjF,QACH,CAAA;AAAA,MAGD,CAAC,QAAY,IAAA,CAAC,MAAO,CAAA,cAAA,KAAmB,CAAC,MAAO,CAAA,MAAA,IAAU,MAAO,CAAA,MAAA,KAAW,WAC3E,CAAA,mBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,CAAC,CAAM,KAAA;AACd,YAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,YAAA,IAAI,MAAO,CAAA,MAAA,IAAU,MAAO,CAAA,MAAA,KAAW,WAAa,EAAA;AAClD,cAAA,KAAA,CAAM,iBAAiB,MAAM,CAAA;AAAA,aACxB,MAAA;AACL,cAAA,KAAA,CAAM,cAAc,MAAM,CAAA;AAAA;AAG5B,YAAA,UAAA,CAAW,MAAM,kBAAsB,IAAA,IAAA,GAAA,MAAA,GAAA,kBAAA,EAAA,CAAA;AAAA,WACzC;AAAA,UACA,gBAAA,EAAkB,CAAC,CAAM,KAAA;AACvB,YAAI,IAAA,CAAA,CAAE,QAAQ,OAAS,EAAA;AACrB,cAAA,CAAA,CAAE,cAAe,EAAA;AACjB,cAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,cAAA,IAAI,MAAO,CAAA,MAAA,IAAU,MAAO,CAAA,MAAA,KAAW,WAAa,EAAA;AAClD,gBAAA,KAAA,CAAM,iBAAiB,MAAM,CAAA;AAAA,eACxB,MAAA;AACL,gBAAA,KAAA,CAAM,cAAc,MAAM,CAAA;AAAA;AAE5B,cAAA,UAAA,CAAW,MAAM,kBAAsB,IAAA,IAAA,GAAA,MAAA,GAAA,kBAAA,EAAA,CAAA;AAAA;AACzC,WACF;AAAA,UACA,IAAK,EAAA,OAAA;AAAA,UACL,IAAK,EAAA,IAAA;AAAA,UACL,WAAW,MAAO,CAAA,QAAA;AAAA,UAClB,OAAA,EAAS,0BAA0B,QAAQ,CAAA;AAAA;AAAA,OAE3C,GAAA,IAAA;AAAA,MAEH,MAAA,CAAO,UAAU,CAAC,MAAA,CAAO,8BACvB,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAQ,OAAS,EAAA,CAAA,UAAA,EAAa,MAAO,CAAA,MAAM,oBAAoB,SAAW,EAAA,QAAA,EAAA,kBACxE,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,IAAK,EAAA,aAAA,EAAc,MAAK,IAAK,EAAA,SAAA,EAAW,MAAO,CAAA,YAAA,EAAc,CACrE,CAAA;AAAA,MAGD,MAAA,CAAO,MAAU,IAAA,MAAA,CAAO,UACvB,oBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,CAAC,CAAM,KAAA;AACd,YAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,YAAA,KAAA,CAAM,sBAAsB,MAAM,CAAA;AAAA,WACpC;AAAA,UACA,gBAAA,EAAkB,CAAC,CAAM,KAAA;AACvB,YAAI,IAAA,CAAA,CAAE,QAAQ,OAAS,EAAA;AACrB,cAAA,CAAA,CAAE,cAAe,EAAA;AACjB,cAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,cAAA,KAAA,CAAM,sBAAsB,MAAM,CAAA;AAAA;AACpC,WACF;AAAA,UACA,IAAK,EAAA,SAAA;AAAA,UACL,IAAK,EAAA,IAAA;AAAA,UACL,WAAW,gBAAiB,CAAA,MAAM,CAAI,GAAA,MAAA,CAAO,mBAAmB,MAAO,CAAA,QAAA;AAAA,UACvE,OAAS,EAAA,CAAA,oCAAA;AAAA;AAAA;AACX,KAEJ;AAAA;AAIJ,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,MAAA;AAAA,MACA,KAAA;AAAA,MACA,oBAAA;AAAA,MACA,kBAAA;AAAA,MACA;AAAA;AAAA,GACF;AAEJ;AAEA,MAAM,SAAA,GAAY,CAAC,KAA0B,MAAA;AAAA,EAC3C,oBAAoB,GAAI,CAAA;AAAA,IACtB,OAAS,EAAA,MAAA;AAAA,IACT,UAAY,EAAA,QAAA;AAAA,IACZ,UAAA,EAAY,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,QAAA;AAAA,IAChC,YAAA,EAAc,KAAM,CAAA,KAAA,CAAM,MAAO,CAAA,OAAA;AAAA,IACjC,MAAQ,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,OAAO,IAAI,CAAA,CAAA;AAAA,IAC7C,SAAS,KAAM,CAAA,OAAA,CAAQ,KAAO,EAAA,CAAA,EAAG,OAAO,CAAC,CAAA;AAAA,IACzC,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,OAAA;AAAA,IACzB,QAAU,EAAA,QAAA;AAAA,IACV,UAAY,EAAA,QAAA;AAAA,IACZ,SAAA,EAAW,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,IAC7B,GAAG,MAAM,UAAW,CAAA,SAAA;AAAA,IACpB,UAAA,EAAY,MAAM,UAAW,CAAA,cAAA;AAAA,IAC7B,MAAQ,EAAA,SAAA;AAAA,IAER,SAAW,EAAA;AAAA,MACT,UAAA,EAAY,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA;AAAA;AAClC,GACD,CAAA;AAAA,EACD,wBAAwB,GAAI,CAAA;AAAA,IAC1B,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC7B,MAAQ,EAAA,MAAA;AAAA,IACR,SAAW,EAAA;AAAA,MACT,UAAA,EAAY,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA;AAAA;AAClC,GACD,CAAA;AAAA,EACD,UAAU,GAAI,CAAA;AAAA,IACZ,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC/B,MAAQ,EAAA,SAAA;AAAA,IACR,SAAW,EAAA;AAAA,MACT,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA;AAAA;AAC3B,GACD,CAAA;AAAA,EACD,UAAU,GAAI,CAAA;AAAA,IACZ,QAAU,EAAA,OAAA;AAAA,IACV,KAAO,EAAA,MAAA;AAAA,IACP,YAAc,EAAA,UAAA;AAAA,IACd,QAAU,EAAA;AAAA,GACX,CAAA;AAAA,EACD,aAAa,GAAI,CAAA;AAAA,IACf,SAAW,EAAA;AAAA,GACZ,CAAA;AAAA,EACD,cAAc,GAAI,CAAA;AAAA,IAChB,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC/B,MAAQ,EAAA;AAAA,GACT,CAAA;AAAA,EACD,kBAAkB,GAAI,CAAA;AAAA,IACpB,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC/B,MAAQ,EAAA,SAAA;AAAA,IACR,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA;AAAA,GAC1B,CAAA;AAAA,EACD,cAAc,GAAI,CAAA;AAAA,IAChB,UAAA,EAAY,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,QAAA;AAAA,IAChC,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,QAAA;AAAA,IACzB,MAAQ,EAAA,CAAA;AAAA,IACR,SAAW,EAAA;AAAA,MACT,UAAA,EAAY,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA;AAAA;AAClC,GACD;AACH,CAAA,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"AdHocFilterPill.js","sources":["../../../../../src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2, IconButton, Tooltip, Icon } from '@grafana/ui';\nimport React, { useState, useRef, useCallback, useEffect } from 'react';\nimport { AdHocCombobox } from './AdHocFiltersCombobox';\nimport { AdHocFilterWithLabels, AdHocFiltersVariable, isMatchAllFilter } from '../AdHocFiltersVariable';\n\nconst LABEL_MAX_VISIBLE_LENGTH = 20;\n\ninterface Props {\n filter: AdHocFilterWithLabels;\n model: AdHocFiltersVariable;\n readOnly?: boolean;\n focusOnWipInputRef?: () => void;\n}\n\nexport function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }: Props) {\n const styles = useStyles2(getStyles);\n const [viewMode, setViewMode] = useState(true);\n const [shouldFocusOnPillWrapper, setShouldFocusOnPillWrapper] = useState(false);\n const pillWrapperRef = useRef<HTMLDivElement>(null);\n const [populateInputOnEdit, setPopulateInputOnEdit] = useState(false);\n\n const keyLabel = filter.keyLabel ?? filter.key;\n const valueLabel = filter.valueLabels?.join(', ') || filter.values?.join(', ') || filter.value;\n\n const handleChangeViewMode = useCallback(\n (event?: React.MouseEvent, shouldFocusOnPillWrapperOverride?: boolean) => {\n event?.stopPropagation();\n if (readOnly) {\n return;\n }\n\n setShouldFocusOnPillWrapper(shouldFocusOnPillWrapperOverride ?? !viewMode);\n setViewMode(!viewMode);\n },\n [readOnly, viewMode]\n );\n\n useEffect(() => {\n if (shouldFocusOnPillWrapper) {\n pillWrapperRef.current?.focus();\n setShouldFocusOnPillWrapper(false);\n }\n }, [shouldFocusOnPillWrapper]);\n\n // set viewMode to false when filter.forceEdit is defined\n useEffect(() => {\n if (filter.forceEdit && viewMode) {\n setViewMode(false);\n // immediately set forceEdit back to undefined as a clean up\n model._updateFilter(filter, { forceEdit: undefined });\n }\n }, [filter, model, viewMode]);\n\n // reset populateInputOnEdit when pill goes into view mode\n useEffect(() => {\n if (viewMode) {\n setPopulateInputOnEdit((prevValue) => (prevValue ? false : prevValue));\n }\n }, [viewMode]);\n\n if (viewMode) {\n const pillText = (\n <span className={styles.pillText}>\n {keyLabel} {filter.operator} {valueLabel}\n </span>\n );\n return (\n <div\n className={cx(\n styles.combinedFilterPill,\n readOnly && styles.readOnlyCombinedFilter,\n isMatchAllFilter(filter) && styles.matchAllPill\n )}\n onClick={(e) => {\n e.stopPropagation();\n setPopulateInputOnEdit(true);\n handleChangeViewMode();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n setPopulateInputOnEdit(true);\n handleChangeViewMode();\n }\n }}\n role=\"button\"\n aria-label={`Edit filter with key ${keyLabel}`}\n tabIndex={0}\n ref={pillWrapperRef}\n >\n {valueLabel.length < LABEL_MAX_VISIBLE_LENGTH ? (\n pillText\n ) : (\n <Tooltip content={<div className={styles.tooltipText}>{valueLabel}</div>} placement=\"top\">\n {pillText}\n </Tooltip>\n )}\n\n {!readOnly && !filter.matchAllFilter && (!filter.origin || filter.origin === 'dashboard') ? (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n if (filter.origin && filter.origin === 'dashboard') {\n model.updateToMatchAll(filter);\n } else {\n model._removeFilter(filter);\n }\n\n setTimeout(() => focusOnWipInputRef?.());\n }}\n onKeyDownCapture={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n if (filter.origin && filter.origin === 'dashboard') {\n model.updateToMatchAll(filter);\n } else {\n model._removeFilter(filter);\n }\n setTimeout(() => focusOnWipInputRef?.());\n }\n }}\n name=\"times\"\n size=\"md\"\n className={styles.pillIcon}\n tooltip={`Remove filter with key ${keyLabel}`}\n />\n ) : null}\n\n {filter.origin && !filter.restorable && (\n <Tooltip content={`This is a ${filter.origin} injected test filter`} placement={'bottom'}>\n <Icon name=\"info-circle\" size=\"md\" className={styles.infoPillIcon} />\n </Tooltip>\n )}\n\n {filter.origin && filter.restorable && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n model.restoreOriginalFilter(filter);\n }}\n onKeyDownCapture={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n model.restoreOriginalFilter(filter);\n }\n }}\n name=\"history\"\n size=\"md\"\n className={isMatchAllFilter(filter) ? styles.matchAllPillIcon : styles.pillIcon}\n tooltip={`Restore filter to its original value`}\n />\n )}\n </div>\n );\n }\n\n return (\n <AdHocCombobox\n filter={filter}\n model={model}\n handleChangeViewMode={handleChangeViewMode}\n focusOnWipInputRef={focusOnWipInputRef}\n populateInputOnEdit={populateInputOnEdit}\n />\n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n combinedFilterPill: css({\n display: 'flex',\n alignItems: 'center',\n background: theme.colors.action.selected,\n borderRadius: theme.shape.radius.default,\n border: `1px solid ${theme.colors.border.weak}`,\n padding: theme.spacing(0.125, 0, 0.125, 1),\n color: theme.colors.text.primary,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n minHeight: theme.spacing(2.75),\n ...theme.typography.bodySmall,\n fontWeight: theme.typography.fontWeightBold,\n cursor: 'pointer',\n\n '&:hover': {\n background: theme.colors.action.hover,\n },\n }),\n readOnlyCombinedFilter: css({\n paddingRight: theme.spacing(1),\n cursor: 'text',\n '&:hover': {\n background: theme.colors.action.selected,\n },\n }),\n pillIcon: css({\n marginInline: theme.spacing(0.5),\n cursor: 'pointer',\n '&:hover': {\n color: theme.colors.text.primary,\n },\n }),\n pillText: css({\n maxWidth: '200px',\n width: '100%',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n }),\n tooltipText: css({\n textAlign: 'center',\n }),\n infoPillIcon: css({\n marginInline: theme.spacing(0.5),\n cursor: 'pointer',\n }),\n matchAllPillIcon: css({\n marginInline: theme.spacing(0.5),\n cursor: 'pointer',\n color: theme.colors.text.disabled,\n }),\n matchAllPill: css({\n background: theme.colors.action.selected,\n color: theme.colors.text.disabled,\n border: 0,\n '&:hover': {\n background: theme.colors.action.selected,\n },\n }),\n});\n"],"names":["_a"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2106,7 +2106,6 @@ interface SceneTimePickerState extends SceneObjectState {
|
|
|
2106
2106
|
hidePicker?: boolean;
|
|
2107
2107
|
isOnCanvas?: boolean;
|
|
2108
2108
|
quickRanges?: TimeOption[];
|
|
2109
|
-
defaultQuickRanges?: TimeOption[];
|
|
2110
2109
|
}
|
|
2111
2110
|
declare class SceneTimePicker extends SceneObjectBase<SceneTimePickerState> {
|
|
2112
2111
|
static Component: typeof SceneTimePickerRenderer;
|
package/dist/index.js
CHANGED
|
@@ -5016,7 +5016,7 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
|
5016
5016
|
tooltip: `Remove filter with key ${keyLabel}`
|
|
5017
5017
|
}
|
|
5018
5018
|
) : null,
|
|
5019
|
-
filter.origin && !filter.restorable && /* @__PURE__ */ React__default.default.createElement(ui.Tooltip, { content: `This is a ${filter.origin} injected filter`, placement: "bottom" }, /* @__PURE__ */ React__default.default.createElement(ui.Icon, { name: "info-circle", size: "md", className: styles.infoPillIcon })),
|
|
5019
|
+
filter.origin && !filter.restorable && /* @__PURE__ */ React__default.default.createElement(ui.Tooltip, { content: `This is a ${filter.origin} injected test filter`, placement: "bottom" }, /* @__PURE__ */ React__default.default.createElement(ui.Icon, { name: "info-circle", size: "md", className: styles.infoPillIcon })),
|
|
5020
5020
|
filter.origin && filter.restorable && /* @__PURE__ */ React__default.default.createElement(
|
|
5021
5021
|
ui.IconButton,
|
|
5022
5022
|
{
|
|
@@ -11404,7 +11404,7 @@ class SceneTimePicker extends SceneObjectBase {
|
|
|
11404
11404
|
}
|
|
11405
11405
|
SceneTimePicker.Component = SceneTimePickerRenderer;
|
|
11406
11406
|
function SceneTimePickerRenderer({ model }) {
|
|
11407
|
-
const { hidePicker, isOnCanvas, quickRanges
|
|
11407
|
+
const { hidePicker, isOnCanvas, quickRanges } = model.useState();
|
|
11408
11408
|
const timeRange = sceneGraph.getTimeRange(model);
|
|
11409
11409
|
const timeZone = timeRange.getTimeZone();
|
|
11410
11410
|
const timeRangeState = timeRange.useState();
|
|
@@ -11416,7 +11416,6 @@ function SceneTimePickerRenderer({ model }) {
|
|
|
11416
11416
|
if (hidePicker) {
|
|
11417
11417
|
return null;
|
|
11418
11418
|
}
|
|
11419
|
-
const rangesToUse = quickRanges || defaultQuickRanges;
|
|
11420
11419
|
return /* @__PURE__ */ React__default.default.createElement(
|
|
11421
11420
|
ui.TimeRangePicker,
|
|
11422
11421
|
{
|
|
@@ -11437,7 +11436,7 @@ function SceneTimePickerRenderer({ model }) {
|
|
|
11437
11436
|
onChangeFiscalYearStartMonth: model.onChangeFiscalYearStartMonth,
|
|
11438
11437
|
weekStart: timeRangeState.weekStart,
|
|
11439
11438
|
history: timeRangeHistory,
|
|
11440
|
-
quickRanges
|
|
11439
|
+
quickRanges
|
|
11441
11440
|
}
|
|
11442
11441
|
);
|
|
11443
11442
|
}
|