@grafana/scenes 6.4.0--canary.1062.13918541857.0 → 6.4.0--canary.1062.13918599453.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.
@@ -1 +1 @@
1
- {"version":3,"file":"AdHocFiltersVariableUrlSyncHandler.js","sources":["../../../../src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.ts"],"sourcesContent":["import { SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues } from '../../core/types';\nimport {\n AdHocFiltersVariable,\n AdHocFilterWithLabels,\n FilterOrigin,\n isFilterComplete,\n isMultiValueOperator,\n} from './AdHocFiltersVariable';\nimport {\n escapeInjectedFilterUrlDelimiters,\n escapeUrlPipeDelimiters,\n toUrlCommaDelimitedString,\n unescapeUrlDelimiters,\n} from '../utils';\n\nexport class AdHocFiltersVariableUrlSyncHandler implements SceneObjectUrlSyncHandler {\n public constructor(private _variable: AdHocFiltersVariable) {}\n\n private getKey(): string {\n return `var-${this._variable.state.name}`;\n }\n\n public getKeys(): string[] {\n return [this.getKey()];\n }\n\n public getUrlState(): SceneObjectUrlValues {\n const filters = this._variable.state.filters;\n const baseFilters = this._variable.state.baseFilters;\n\n let value = [];\n\n if (filters.length === 0 && baseFilters?.length === 0) {\n return { [this.getKey()]: [''] };\n }\n\n if (filters.length) {\n value.push(\n ...filters\n .filter(isFilterComplete)\n .filter((filter) => !filter.hidden)\n .map((filter) => toArray(filter).map(escapeUrlPipeDelimiters).join('|'))\n );\n }\n\n if (baseFilters?.length) {\n value.push(\n ...baseFilters\n ?.filter(isFilterComplete)\n .filter((filter) => !filter.hidden && filter.origin && filter.originalValue)\n .map((filter) =>\n toArray(filter)\n .map(escapeInjectedFilterUrlDelimiters)\n .join('|')\n .concat(\n `#${filter.originalValue?.map(escapeInjectedFilterUrlDelimiters).join('|') ?? ''}#${filter.origin}`\n )\n )\n );\n }\n\n return {\n [this.getKey()]: value.length ? value : [''],\n };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n const urlValue = values[this.getKey()];\n\n if (urlValue == null) {\n return;\n }\n\n if (urlValue) {\n const filters = deserializeUrlToFilters(urlValue);\n this._variable.setState({\n filters: filters.filter((f) => !f.origin),\n baseFilters: filters.filter((f) => f.origin),\n });\n }\n }\n}\n\nfunction deserializeUrlToFilters(value: SceneObjectUrlValue): AdHocFilterWithLabels[] {\n if (Array.isArray(value)) {\n const values = value;\n return values.map(toFilter).filter(isFilter);\n }\n\n const filter = toFilter(value);\n return filter === null ? [] : [filter];\n}\n\nfunction toArray(filter: AdHocFilterWithLabels): string[] {\n const result = [toUrlCommaDelimitedString(filter.key, filter.keyLabel), filter.operator];\n if (isMultiValueOperator(filter.operator)) {\n // TODO remove expect-error when we're on the latest version of @grafana/data\n // @ts-expect-error\n filter.values.forEach((value, index) => {\n result.push(toUrlCommaDelimitedString(value, filter.valueLabels?.[index]));\n });\n } else {\n result.push(toUrlCommaDelimitedString(filter.value, filter.valueLabels?.[0]));\n }\n return result;\n}\n\nfunction toFilter(urlValue: string | number | boolean | undefined | null): AdHocFilterWithLabels | null {\n if (typeof urlValue !== 'string' || urlValue.length === 0) {\n return null;\n }\n\n const [filter, originalValues, origin] = urlValue.split('#');\n const [key, keyLabel, operator, _operatorLabel, ...values] = filter\n .split('|')\n .reduce<string[]>((acc, v) => {\n const [key, label] = v.split(',');\n\n acc.push(key, label ?? key);\n\n return acc;\n }, [])\n .map(unescapeUrlDelimiters);\n\n return {\n key,\n keyLabel,\n operator,\n value: values[0],\n values: isMultiValueOperator(operator) ? values.filter((_, index) => index % 2 === 0) : undefined,\n valueLabels: values.filter((_, index) => index % 2 === 1),\n condition: '',\n origin: isFilterOrigin(origin) ? origin : undefined,\n originalValue: originalValues && originalValues.length ? originalValues.split('|') ?? [originalValues] : undefined,\n };\n}\n\nfunction isFilterOrigin(value: string): value is FilterOrigin {\n return value === FilterOrigin.Scopes || value === FilterOrigin.Dashboards;\n}\n\nfunction isFilter(filter: AdHocFilterWithLabels | null): filter is AdHocFilterWithLabels {\n return filter !== null && typeof filter.key === 'string' && typeof filter.value === 'string';\n}\n"],"names":["_a","key"],"mappings":"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"}
1
+ {"version":3,"file":"AdHocFiltersVariableUrlSyncHandler.js","sources":["../../../../src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.ts"],"sourcesContent":["import { SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues } from '../../core/types';\nimport {\n AdHocFiltersVariable,\n AdHocFilterWithLabels,\n FilterOrigin,\n isFilterComplete,\n isMultiValueOperator,\n} from './AdHocFiltersVariable';\nimport {\n escapeInjectedFilterUrlDelimiters,\n escapeUrlPipeDelimiters,\n toUrlCommaDelimitedString,\n unescapeUrlDelimiters,\n} from '../utils';\n\nexport class AdHocFiltersVariableUrlSyncHandler implements SceneObjectUrlSyncHandler {\n public constructor(private _variable: AdHocFiltersVariable) {}\n\n private getKey(): string {\n return `var-${this._variable.state.name}`;\n }\n\n public getKeys(): string[] {\n return [this.getKey()];\n }\n\n public getUrlState(): SceneObjectUrlValues {\n const filters = this._variable.state.filters;\n const baseFilters = this._variable.state.baseFilters;\n\n let value = [];\n\n if (filters.length === 0 && baseFilters?.length === 0) {\n return { [this.getKey()]: [''] };\n }\n\n if (filters.length) {\n value.push(\n ...filters\n .filter(isFilterComplete)\n .filter((filter) => !filter.hidden)\n .map((filter) => toArray(filter).map(escapeUrlPipeDelimiters).join('|'))\n );\n }\n\n if (baseFilters?.length) {\n // injected filters stored in the following format: normal|adhoc|values#original|values#filterOrigin\n value.push(\n ...baseFilters\n ?.filter(isFilterComplete)\n .filter((filter) => !filter.hidden && filter.origin && filter.originalValue)\n .map((filter) =>\n toArray(filter)\n .map(escapeInjectedFilterUrlDelimiters)\n .join('|')\n .concat(\n `#${filter.originalValue?.map(escapeInjectedFilterUrlDelimiters).join('|') ?? ''}#${filter.origin}`\n )\n )\n );\n }\n\n return {\n [this.getKey()]: value.length ? value : [''],\n };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n const urlValue = values[this.getKey()];\n\n if (urlValue == null) {\n return;\n }\n\n if (urlValue) {\n const filters = deserializeUrlToFilters(urlValue);\n this._variable.setState({\n filters: filters.filter((f) => !f.origin),\n baseFilters: filters.filter((f) => f.origin),\n });\n }\n }\n}\n\nfunction deserializeUrlToFilters(value: SceneObjectUrlValue): AdHocFilterWithLabels[] {\n if (Array.isArray(value)) {\n const values = value;\n return values.map(toFilter).filter(isFilter);\n }\n\n const filter = toFilter(value);\n return filter === null ? [] : [filter];\n}\n\nfunction toArray(filter: AdHocFilterWithLabels): string[] {\n const result = [toUrlCommaDelimitedString(filter.key, filter.keyLabel), filter.operator];\n if (isMultiValueOperator(filter.operator)) {\n // TODO remove expect-error when we're on the latest version of @grafana/data\n // @ts-expect-error\n filter.values.forEach((value, index) => {\n result.push(toUrlCommaDelimitedString(value, filter.valueLabels?.[index]));\n });\n } else {\n result.push(toUrlCommaDelimitedString(filter.value, filter.valueLabels?.[0]));\n }\n return result;\n}\n\nfunction toFilter(urlValue: string | number | boolean | undefined | null): AdHocFilterWithLabels | null {\n if (typeof urlValue !== 'string' || urlValue.length === 0) {\n return null;\n }\n\n const [filter, originalValues, origin] = urlValue.split('#');\n const [key, keyLabel, operator, _operatorLabel, ...values] = filter\n .split('|')\n .reduce<string[]>((acc, v) => {\n const [key, label] = v.split(',');\n\n acc.push(key, label ?? key);\n\n return acc;\n }, [])\n .map(unescapeUrlDelimiters);\n\n return {\n key,\n keyLabel,\n operator,\n value: values[0],\n values: isMultiValueOperator(operator) ? values.filter((_, index) => index % 2 === 0) : undefined,\n valueLabels: values.filter((_, index) => index % 2 === 1),\n condition: '',\n origin: isFilterOrigin(origin) ? origin : undefined,\n originalValue: originalValues && originalValues.length ? originalValues.split('|') ?? [originalValues] : undefined,\n };\n}\n\nfunction isFilterOrigin(value: string): value is FilterOrigin {\n return value === FilterOrigin.Scopes || value === FilterOrigin.Dashboards;\n}\n\nfunction isFilter(filter: AdHocFilterWithLabels | null): filter is AdHocFilterWithLabels {\n return filter !== null && typeof filter.key === 'string' && typeof filter.value === 'string';\n}\n"],"names":["_a","key"],"mappings":"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"}