@ahoo-wang/wow-view-engine 9.2.0-rc.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/LICENSE +201 -0
- package/README.md +1182 -0
- package/README.zh-CN.md +1171 -0
- package/THIRD_PARTY_NOTICES.md +196 -0
- package/dist/actions-DK1yfiI8.js +9986 -0
- package/dist/actions-DK1yfiI8.js.map +1 -0
- package/dist/analysis/boxplot.d.ts +80 -0
- package/dist/analysis/boxplot.d.ts.map +1 -0
- package/dist/analysis/bucketChange.d.ts +25 -0
- package/dist/analysis/bucketChange.d.ts.map +1 -0
- package/dist/analysis/budget.d.ts +37 -0
- package/dist/analysis/budget.d.ts.map +1 -0
- package/dist/analysis/candidates.d.ts +96 -0
- package/dist/analysis/candidates.d.ts.map +1 -0
- package/dist/analysis/candlestick.d.ts +73 -0
- package/dist/analysis/candlestick.d.ts.map +1 -0
- package/dist/analysis/capability.d.ts +129 -0
- package/dist/analysis/capability.d.ts.map +1 -0
- package/dist/analysis/cartesian.d.ts +102 -0
- package/dist/analysis/cartesian.d.ts.map +1 -0
- package/dist/analysis/chart.d.ts +108 -0
- package/dist/analysis/chart.d.ts.map +1 -0
- package/dist/analysis/chartFamilies.d.ts +175 -0
- package/dist/analysis/chartFamilies.d.ts.map +1 -0
- package/dist/analysis/chartOptions.d.ts +113 -0
- package/dist/analysis/chartOptions.d.ts.map +1 -0
- package/dist/analysis/chartRefs.d.ts +31 -0
- package/dist/analysis/chartRefs.d.ts.map +1 -0
- package/dist/analysis/chartRows.d.ts +39 -0
- package/dist/analysis/chartRows.d.ts.map +1 -0
- package/dist/analysis/chartSlots.d.ts +73 -0
- package/dist/analysis/chartSlots.d.ts.map +1 -0
- package/dist/analysis/chartSwitch.d.ts +34 -0
- package/dist/analysis/chartSwitch.d.ts.map +1 -0
- package/dist/analysis/compile.d.ts +55 -0
- package/dist/analysis/compile.d.ts.map +1 -0
- package/dist/analysis/currency.d.ts +68 -0
- package/dist/analysis/currency.d.ts.map +1 -0
- package/dist/analysis/dangling.d.ts +52 -0
- package/dist/analysis/dangling.d.ts.map +1 -0
- package/dist/analysis/defaults.d.ts +168 -0
- package/dist/analysis/defaults.d.ts.map +1 -0
- package/dist/analysis/derived.d.ts +81 -0
- package/dist/analysis/derived.d.ts.map +1 -0
- package/dist/analysis/drill.d.ts +142 -0
- package/dist/analysis/drill.d.ts.map +1 -0
- package/dist/analysis/drillFilter.d.ts +34 -0
- package/dist/analysis/drillFilter.d.ts.map +1 -0
- package/dist/analysis/expand.d.ts +51 -0
- package/dist/analysis/expand.d.ts.map +1 -0
- package/dist/analysis/expressions.d.ts +12 -0
- package/dist/analysis/expressions.d.ts.map +1 -0
- package/dist/analysis/fitCharts.d.ts +93 -0
- package/dist/analysis/fitCharts.d.ts.map +1 -0
- package/dist/analysis/formula.d.ts +65 -0
- package/dist/analysis/formula.d.ts.map +1 -0
- package/dist/analysis/funnel.d.ts +48 -0
- package/dist/analysis/funnel.d.ts.map +1 -0
- package/dist/analysis/gauge.d.ts +34 -0
- package/dist/analysis/gauge.d.ts.map +1 -0
- package/dist/analysis/granularity.d.ts +22 -0
- package/dist/analysis/granularity.d.ts.map +1 -0
- package/dist/analysis/having.d.ts +38 -0
- package/dist/analysis/having.d.ts.map +1 -0
- package/dist/analysis/hierarchy.d.ts +73 -0
- package/dist/analysis/hierarchy.d.ts.map +1 -0
- package/dist/analysis/index.d.ts +29 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/analysis/logScale.d.ts +20 -0
- package/dist/analysis/logScale.d.ts.map +1 -0
- package/dist/analysis/map.d.ts +28 -0
- package/dist/analysis/map.d.ts.map +1 -0
- package/dist/analysis/metricCard.d.ts +155 -0
- package/dist/analysis/metricCard.d.ts.map +1 -0
- package/dist/analysis/metricCondition.d.ts +41 -0
- package/dist/analysis/metricCondition.d.ts.map +1 -0
- package/dist/analysis/metricFormat.d.ts +136 -0
- package/dist/analysis/metricFormat.d.ts.map +1 -0
- package/dist/analysis/metricOrder.d.ts +47 -0
- package/dist/analysis/metricOrder.d.ts.map +1 -0
- package/dist/analysis/metricWindow.d.ts +28 -0
- package/dist/analysis/metricWindow.d.ts.map +1 -0
- package/dist/analysis/profiles.d.ts +53 -0
- package/dist/analysis/profiles.d.ts.map +1 -0
- package/dist/analysis/project.d.ts +242 -0
- package/dist/analysis/project.d.ts.map +1 -0
- package/dist/analysis/queryFilter.d.ts +32 -0
- package/dist/analysis/queryFilter.d.ts.map +1 -0
- package/dist/analysis/references.d.ts +41 -0
- package/dist/analysis/references.d.ts.map +1 -0
- package/dist/analysis/splitOther.d.ts +80 -0
- package/dist/analysis/splitOther.d.ts.map +1 -0
- package/dist/analysis/timeAxis.d.ts +173 -0
- package/dist/analysis/timeAxis.d.ts.map +1 -0
- package/dist/analysis/timeCharts.d.ts +76 -0
- package/dist/analysis/timeCharts.d.ts.map +1 -0
- package/dist/analysis/treemap.d.ts +36 -0
- package/dist/analysis/treemap.d.ts.map +1 -0
- package/dist/analysis/validate.d.ts +19 -0
- package/dist/analysis/validate.d.ts.map +1 -0
- package/dist/analysis/validateAliases.d.ts +16 -0
- package/dist/analysis/validateAliases.d.ts.map +1 -0
- package/dist/analysis/validateChart.d.ts +60 -0
- package/dist/analysis/validateChart.d.ts.map +1 -0
- package/dist/analysis/validateElements.d.ts +20 -0
- package/dist/analysis/validateElements.d.ts.map +1 -0
- package/dist/analysis/validateGroups.d.ts +5 -0
- package/dist/analysis/validateGroups.d.ts.map +1 -0
- package/dist/analysis/validateHaving.d.ts +9 -0
- package/dist/analysis/validateHaving.d.ts.map +1 -0
- package/dist/analysis/validateLevels.d.ts +33 -0
- package/dist/analysis/validateLevels.d.ts.map +1 -0
- package/dist/analysis/validateLimits.d.ts +3 -0
- package/dist/analysis/validateLimits.d.ts.map +1 -0
- package/dist/analysis/validateMetrics.d.ts +5 -0
- package/dist/analysis/validateMetrics.d.ts.map +1 -0
- package/dist/analysis/validateOffers.d.ts +12 -0
- package/dist/analysis/validateOffers.d.ts.map +1 -0
- package/dist/analysis/validateReferences.d.ts +16 -0
- package/dist/analysis/validateReferences.d.ts.map +1 -0
- package/dist/analysis/validateShape.d.ts +14 -0
- package/dist/analysis/validateShape.d.ts.map +1 -0
- package/dist/analysis/validateSort.d.ts +3 -0
- package/dist/analysis/validateSort.d.ts.map +1 -0
- package/dist/analysis/waterfall.d.ts +33 -0
- package/dist/analysis/waterfall.d.ts.map +1 -0
- package/dist/capabilities/aliases.d.ts +36 -0
- package/dist/capabilities/aliases.d.ts.map +1 -0
- package/dist/capabilities/analysis.d.ts +19 -0
- package/dist/capabilities/analysis.d.ts.map +1 -0
- package/dist/capabilities/cache.d.ts +69 -0
- package/dist/capabilities/cache.d.ts.map +1 -0
- package/dist/capabilities/fields.d.ts +50 -0
- package/dist/capabilities/fields.d.ts.map +1 -0
- package/dist/capabilities/index.d.ts +13 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/limits.d.ts +24 -0
- package/dist/capabilities/limits.d.ts.map +1 -0
- package/dist/capabilities/match.d.ts +52 -0
- package/dist/capabilities/match.d.ts.map +1 -0
- package/dist/capabilities/narrow.d.ts +27 -0
- package/dist/capabilities/narrow.d.ts.map +1 -0
- package/dist/capabilities/open.d.ts +25 -0
- package/dist/capabilities/open.d.ts.map +1 -0
- package/dist/capabilities/record.d.ts +13 -0
- package/dist/capabilities/record.d.ts.map +1 -0
- package/dist/capabilities/violations.d.ts +19 -0
- package/dist/capabilities/violations.d.ts.map +1 -0
- package/dist/cartesianBrush-HLU12ig5.js +122 -0
- package/dist/cartesianBrush-HLU12ig5.js.map +1 -0
- package/dist/clickDraft-DQDQn4x-.js +184 -0
- package/dist/clickDraft-DQDQn4x-.js.map +1 -0
- package/dist/dashboard/boardFields.d.ts +11 -0
- package/dist/dashboard/boardFields.d.ts.map +1 -0
- package/dist/dashboard/click.d.ts +105 -0
- package/dist/dashboard/click.d.ts.map +1 -0
- package/dist/dashboard/clickDraft.d.ts +84 -0
- package/dist/dashboard/clickDraft.d.ts.map +1 -0
- package/dist/dashboard/declared.d.ts +29 -0
- package/dist/dashboard/declared.d.ts.map +1 -0
- package/dist/dashboard/defaults.d.ts +14 -0
- package/dist/dashboard/defaults.d.ts.map +1 -0
- package/dist/dashboard/edit.d.ts +118 -0
- package/dist/dashboard/edit.d.ts.map +1 -0
- package/dist/dashboard/filterEdit.d.ts +60 -0
- package/dist/dashboard/filterEdit.d.ts.map +1 -0
- package/dist/dashboard/filters.d.ts +104 -0
- package/dist/dashboard/filters.d.ts.map +1 -0
- package/dist/dashboard/index.d.ts +26 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/layout.d.ts +184 -0
- package/dist/dashboard/layout.d.ts.map +1 -0
- package/dist/dashboard/merge.d.ts +32 -0
- package/dist/dashboard/merge.d.ts.map +1 -0
- package/dist/dashboard/migrate.d.ts +33 -0
- package/dist/dashboard/migrate.d.ts.map +1 -0
- package/dist/dashboard/panelFieldNames.d.ts +20 -0
- package/dist/dashboard/panelFieldNames.d.ts.map +1 -0
- package/dist/dashboard/panelLook.d.ts +18 -0
- package/dist/dashboard/panelLook.d.ts.map +1 -0
- package/dist/dashboard/panels.d.ts +78 -0
- package/dist/dashboard/panels.d.ts.map +1 -0
- package/dist/dashboard/placeholders.d.ts +3 -0
- package/dist/dashboard/placeholders.d.ts.map +1 -0
- package/dist/dashboard/tabs.d.ts +28 -0
- package/dist/dashboard/tabs.d.ts.map +1 -0
- package/dist/dashboard/timeBindings.d.ts +42 -0
- package/dist/dashboard/timeBindings.d.ts.map +1 -0
- package/dist/dashboard/validate.d.ts +80 -0
- package/dist/dashboard/validate.d.ts.map +1 -0
- package/dist/dashboard/validateFilters.d.ts +15 -0
- package/dist/dashboard/validateFilters.d.ts.map +1 -0
- package/dist/dashboard/wiring.d.ts +103 -0
- package/dist/dashboard/wiring.d.ts.map +1 -0
- package/dist/echarts-HUGzxow7.js +35 -0
- package/dist/echarts-HUGzxow7.js.map +1 -0
- package/dist/echartsGeo-BWbXo9ef.js +14 -0
- package/dist/echartsGeo-BWbXo9ef.js.map +1 -0
- package/dist/echartsHierarchy-Cm-9-LN9.js +14 -0
- package/dist/echartsHierarchy-Cm-9-LN9.js.map +1 -0
- package/dist/echartsStatistics-Lq-BjHez.js +20 -0
- package/dist/echartsStatistics-Lq-BjHez.js.map +1 -0
- package/dist/echartsTime-gMH0oF0x.js +15 -0
- package/dist/echartsTime-gMH0oF0x.js.map +1 -0
- package/dist/filter/compile.d.ts +23 -0
- package/dist/filter/compile.d.ts.map +1 -0
- package/dist/filter/configBase.d.ts +23 -0
- package/dist/filter/configBase.d.ts.map +1 -0
- package/dist/filter/describe.d.ts +234 -0
- package/dist/filter/describe.d.ts.map +1 -0
- package/dist/filter/fieldGroups.d.ts +17 -0
- package/dist/filter/fieldGroups.d.ts.map +1 -0
- package/dist/filter/fieldKind.d.ts +244 -0
- package/dist/filter/fieldKind.d.ts.map +1 -0
- package/dist/filter/index.d.ts +21 -0
- package/dist/filter/index.d.ts.map +1 -0
- package/dist/filter/issuePath.d.ts +21 -0
- package/dist/filter/issuePath.d.ts.map +1 -0
- package/dist/filter/kinds/array.d.ts +18 -0
- package/dist/filter/kinds/array.d.ts.map +1 -0
- package/dist/filter/kinds/boolean.d.ts +3 -0
- package/dist/filter/kinds/boolean.d.ts.map +1 -0
- package/dist/filter/kinds/dateTime.d.ts +39 -0
- package/dist/filter/kinds/dateTime.d.ts.map +1 -0
- package/dist/filter/kinds/deletion.d.ts +42 -0
- package/dist/filter/kinds/deletion.d.ts.map +1 -0
- package/dist/filter/kinds/duration.d.ts +27 -0
- package/dist/filter/kinds/duration.d.ts.map +1 -0
- package/dist/filter/kinds/elementMatch.d.ts +34 -0
- package/dist/filter/kinds/elementMatch.d.ts.map +1 -0
- package/dist/filter/kinds/entries.d.ts +20 -0
- package/dist/filter/kinds/entries.d.ts.map +1 -0
- package/dist/filter/kinds/enum.d.ts +7 -0
- package/dist/filter/kinds/enum.d.ts.map +1 -0
- package/dist/filter/kinds/index.d.ts +18 -0
- package/dist/filter/kinds/index.d.ts.map +1 -0
- package/dist/filter/kinds/metadata.d.ts +3 -0
- package/dist/filter/kinds/metadata.d.ts.map +1 -0
- package/dist/filter/kinds/number.d.ts +3 -0
- package/dist/filter/kinds/number.d.ts.map +1 -0
- package/dist/filter/kinds/options.d.ts +44 -0
- package/dist/filter/kinds/options.d.ts.map +1 -0
- package/dist/filter/kinds/presence.d.ts +18 -0
- package/dist/filter/kinds/presence.d.ts.map +1 -0
- package/dist/filter/kinds/reference.d.ts +8 -0
- package/dist/filter/kinds/reference.d.ts.map +1 -0
- package/dist/filter/kinds/search.d.ts +15 -0
- package/dist/filter/kinds/search.d.ts.map +1 -0
- package/dist/filter/kinds/string.d.ts +3 -0
- package/dist/filter/kinds/string.d.ts.map +1 -0
- package/dist/filter/marks.d.ts +28 -0
- package/dist/filter/marks.d.ts.map +1 -0
- package/dist/filter/search.d.ts +28 -0
- package/dist/filter/search.d.ts.map +1 -0
- package/dist/filter/time.d.ts +57 -0
- package/dist/filter/time.d.ts.map +1 -0
- package/dist/filter/tree.d.ts +186 -0
- package/dist/filter/tree.d.ts.map +1 -0
- package/dist/filter/validate.d.ts +42 -0
- package/dist/filter/validate.d.ts.map +1 -0
- package/dist/filter/values.d.ts +111 -0
- package/dist/filter/values.d.ts.map +1 -0
- package/dist/index.d.ts +138 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +478 -0
- package/dist/index.js.map +1 -0
- package/dist/model/analysis.d.ts +327 -0
- package/dist/model/analysis.d.ts.map +1 -0
- package/dist/model/chart.d.ts +503 -0
- package/dist/model/chart.d.ts.map +1 -0
- package/dist/model/config.d.ts +68 -0
- package/dist/model/config.d.ts.map +1 -0
- package/dist/model/currency.d.ts +55 -0
- package/dist/model/currency.d.ts.map +1 -0
- package/dist/model/dashboard.d.ts +454 -0
- package/dist/model/dashboard.d.ts.map +1 -0
- package/dist/model/definition.d.ts +373 -0
- package/dist/model/definition.d.ts.map +1 -0
- package/dist/model/field.d.ts +432 -0
- package/dist/model/field.d.ts.map +1 -0
- package/dist/model/filter.d.ts +54 -0
- package/dist/model/filter.d.ts.map +1 -0
- package/dist/model/index.d.ts +21 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/instance.d.ts +118 -0
- package/dist/model/instance.d.ts.map +1 -0
- package/dist/model/issue.d.ts +33 -0
- package/dist/model/issue.d.ts.map +1 -0
- package/dist/model/json.d.ts +34 -0
- package/dist/model/json.d.ts.map +1 -0
- package/dist/model/limits.d.ts +133 -0
- package/dist/model/limits.d.ts.map +1 -0
- package/dist/model/record.d.ts +114 -0
- package/dist/model/record.d.ts.map +1 -0
- package/dist/model/storeError.d.ts +105 -0
- package/dist/model/storeError.d.ts.map +1 -0
- package/dist/model/text.d.ts +58 -0
- package/dist/model/text.d.ts.map +1 -0
- package/dist/react/actionRunner.d.ts +161 -0
- package/dist/react/actionRunner.d.ts.map +1 -0
- package/dist/react/actions.d.ts +112 -0
- package/dist/react/actions.d.ts.map +1 -0
- package/dist/react/analysisEditing.d.ts +122 -0
- package/dist/react/analysisEditing.d.ts.map +1 -0
- package/dist/react/analysisFields.d.ts +38 -0
- package/dist/react/analysisFields.d.ts.map +1 -0
- package/dist/react/environment.d.ts +10 -0
- package/dist/react/environment.d.ts.map +1 -0
- package/dist/react/index.d.ts +41 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/issues.d.ts +14 -0
- package/dist/react/issues.d.ts.map +1 -0
- package/dist/react/manager/abilities.d.ts +38 -0
- package/dist/react/manager/abilities.d.ts.map +1 -0
- package/dist/react/manager/order.d.ts +60 -0
- package/dist/react/manager/order.d.ts.map +1 -0
- package/dist/react/manager/outcomes.d.ts +55 -0
- package/dist/react/manager/outcomes.d.ts.map +1 -0
- package/dist/react/manager/queue.d.ts +56 -0
- package/dist/react/manager/queue.d.ts.map +1 -0
- package/dist/react/manager/useCommandRunner.d.ts +74 -0
- package/dist/react/manager/useCommandRunner.d.ts.map +1 -0
- package/dist/react/recordColumns.d.ts +68 -0
- package/dist/react/recordColumns.d.ts.map +1 -0
- package/dist/react/recordDraft.d.ts +31 -0
- package/dist/react/recordDraft.d.ts.map +1 -0
- package/dist/react/recordEdits.d.ts +58 -0
- package/dist/react/recordEdits.d.ts.map +1 -0
- package/dist/react/recordSelection.d.ts +46 -0
- package/dist/react/recordSelection.d.ts.map +1 -0
- package/dist/react/useAnalysisEditor.d.ts +183 -0
- package/dist/react/useAnalysisEditor.d.ts.map +1 -0
- package/dist/react/useAnalysisResult.d.ts +168 -0
- package/dist/react/useAnalysisResult.d.ts.map +1 -0
- package/dist/react/useAutoRefresh.d.ts +115 -0
- package/dist/react/useAutoRefresh.d.ts.map +1 -0
- package/dist/react/useDashboard.d.ts +204 -0
- package/dist/react/useDashboard.d.ts.map +1 -0
- package/dist/react/useFilterEditor.d.ts +255 -0
- package/dist/react/useFilterEditor.d.ts.map +1 -0
- package/dist/react/usePanelFollowUps.d.ts +31 -0
- package/dist/react/usePanelFollowUps.d.ts.map +1 -0
- package/dist/react/useRecordActions.d.ts +126 -0
- package/dist/react/useRecordActions.d.ts.map +1 -0
- package/dist/react/useRecordDetail.d.ts +76 -0
- package/dist/react/useRecordDetail.d.ts.map +1 -0
- package/dist/react/useRecordExport.d.ts +104 -0
- package/dist/react/useRecordExport.d.ts.map +1 -0
- package/dist/react/useRecordTable.d.ts +309 -0
- package/dist/react/useRecordTable.d.ts.map +1 -0
- package/dist/react/useReshape.d.ts +54 -0
- package/dist/react/useReshape.d.ts.map +1 -0
- package/dist/react/useSaveCommands.d.ts +119 -0
- package/dist/react/useSaveCommands.d.ts.map +1 -0
- package/dist/react/useSearchBox.d.ts +34 -0
- package/dist/react/useSearchBox.d.ts.map +1 -0
- package/dist/react/useUnavailable.d.ts +19 -0
- package/dist/react/useUnavailable.d.ts.map +1 -0
- package/dist/react/useValueCandidates.d.ts +41 -0
- package/dist/react/useValueCandidates.d.ts.map +1 -0
- package/dist/react/useViewEngine.d.ts +93 -0
- package/dist/react/useViewEngine.d.ts.map +1 -0
- package/dist/react/useViewList.d.ts +75 -0
- package/dist/react/useViewList.d.ts.map +1 -0
- package/dist/react/useViewManager.d.ts +92 -0
- package/dist/react/useViewManager.d.ts.map +1 -0
- package/dist/react/useWorkbench.d.ts +334 -0
- package/dist/react/useWorkbench.d.ts.map +1 -0
- package/dist/react/workbench/handOver.d.ts +73 -0
- package/dist/react/workbench/handOver.d.ts.map +1 -0
- package/dist/react/workbench/instanceSync.d.ts +55 -0
- package/dist/react/workbench/instanceSync.d.ts.map +1 -0
- package/dist/react/workbench/leaveGuard.d.ts +65 -0
- package/dist/react/workbench/leaveGuard.d.ts.map +1 -0
- package/dist/react/workbench/newView.d.ts +35 -0
- package/dist/react/workbench/newView.d.ts.map +1 -0
- package/dist/react/workbench/releaseDeleted.d.ts +19 -0
- package/dist/react/workbench/releaseDeleted.d.ts.map +1 -0
- package/dist/react/writes.d.ts +134 -0
- package/dist/react/writes.d.ts.map +1 -0
- package/dist/react-DzstAsWB.js +3648 -0
- package/dist/react-DzstAsWB.js.map +1 -0
- package/dist/react-router/index.d.ts +12 -0
- package/dist/react-router/index.d.ts.map +1 -0
- package/dist/react-router.js +27 -0
- package/dist/react-router.js.map +1 -0
- package/dist/react.js +3 -0
- package/dist/record/compile.d.ts +56 -0
- package/dist/record/compile.d.ts.map +1 -0
- package/dist/record/defaults.d.ts +9 -0
- package/dist/record/defaults.d.ts.map +1 -0
- package/dist/record/detail.d.ts +27 -0
- package/dist/record/detail.d.ts.map +1 -0
- package/dist/record/export.d.ts +78 -0
- package/dist/record/export.d.ts.map +1 -0
- package/dist/record/index.d.ts +12 -0
- package/dist/record/index.d.ts.map +1 -0
- package/dist/record/paging.d.ts +89 -0
- package/dist/record/paging.d.ts.map +1 -0
- package/dist/record/path.d.ts +13 -0
- package/dist/record/path.d.ts.map +1 -0
- package/dist/record/project.d.ts +245 -0
- package/dist/record/project.d.ts.map +1 -0
- package/dist/record/summaryCurrency.d.ts +18 -0
- package/dist/record/summaryCurrency.d.ts.map +1 -0
- package/dist/record/validate.d.ts +30 -0
- package/dist/record/validate.d.ts.map +1 -0
- package/dist/routes-DvPNPlQP.js +23 -0
- package/dist/routes-DvPNPlQP.js.map +1 -0
- package/dist/runtime/abort.d.ts +3 -0
- package/dist/runtime/abort.d.ts.map +1 -0
- package/dist/runtime/actions.d.ts +241 -0
- package/dist/runtime/actions.d.ts.map +1 -0
- package/dist/runtime/admission.d.ts +35 -0
- package/dist/runtime/admission.d.ts.map +1 -0
- package/dist/runtime/autoApply.d.ts +51 -0
- package/dist/runtime/autoApply.d.ts.map +1 -0
- package/dist/runtime/capabilities.d.ts +98 -0
- package/dist/runtime/capabilities.d.ts.map +1 -0
- package/dist/runtime/commandChecks.d.ts +22 -0
- package/dist/runtime/commandChecks.d.ts.map +1 -0
- package/dist/runtime/dashboard/anchor.d.ts +46 -0
- package/dist/runtime/dashboard/anchor.d.ts.map +1 -0
- package/dist/runtime/dashboard/canonical.d.ts +31 -0
- package/dist/runtime/dashboard/canonical.d.ts.map +1 -0
- package/dist/runtime/dashboard/children.d.ts +127 -0
- package/dist/runtime/dashboard/children.d.ts.map +1 -0
- package/dist/runtime/dashboard/commands.d.ts +172 -0
- package/dist/runtime/dashboard/commands.d.ts.map +1 -0
- package/dist/runtime/dashboard/contract.d.ts +250 -0
- package/dist/runtime/dashboard/contract.d.ts.map +1 -0
- package/dist/runtime/dashboard/editing.d.ts +197 -0
- package/dist/runtime/dashboard/editing.d.ts.map +1 -0
- package/dist/runtime/dashboard/filterCandidates.d.ts +38 -0
- package/dist/runtime/dashboard/filterCandidates.d.ts.map +1 -0
- package/dist/runtime/dashboard/filterValues.d.ts +117 -0
- package/dist/runtime/dashboard/filterValues.d.ts.map +1 -0
- package/dist/runtime/dashboard/grouping.d.ts +26 -0
- package/dist/runtime/dashboard/grouping.d.ts.map +1 -0
- package/dist/runtime/dashboard/history.d.ts +78 -0
- package/dist/runtime/dashboard/history.d.ts.map +1 -0
- package/dist/runtime/dashboard/opening.d.ts +17 -0
- package/dist/runtime/dashboard/opening.d.ts.map +1 -0
- package/dist/runtime/dashboard/owned.d.ts +38 -0
- package/dist/runtime/dashboard/owned.d.ts.map +1 -0
- package/dist/runtime/dashboard/panelRun.d.ts +101 -0
- package/dist/runtime/dashboard/panelRun.d.ts.map +1 -0
- package/dist/runtime/dashboard/panels.d.ts +155 -0
- package/dist/runtime/dashboard/panels.d.ts.map +1 -0
- package/dist/runtime/dashboard/presentation.d.ts +25 -0
- package/dist/runtime/dashboard/presentation.d.ts.map +1 -0
- package/dist/runtime/dashboard/press.d.ts +150 -0
- package/dist/runtime/dashboard/press.d.ts.map +1 -0
- package/dist/runtime/dashboard/references.d.ts +97 -0
- package/dist/runtime/dashboard/references.d.ts.map +1 -0
- package/dist/runtime/dashboardRuntime.d.ts +235 -0
- package/dist/runtime/dashboardRuntime.d.ts.map +1 -0
- package/dist/runtime/define/analysis.d.ts +8 -0
- package/dist/runtime/define/analysis.d.ts.map +1 -0
- package/dist/runtime/define/defineView.d.ts +42 -0
- package/dist/runtime/define/defineView.d.ts.map +1 -0
- package/dist/runtime/define/fields.d.ts +23 -0
- package/dist/runtime/define/fields.d.ts.map +1 -0
- package/dist/runtime/define/spec.d.ts +88 -0
- package/dist/runtime/define/spec.d.ts.map +1 -0
- package/dist/runtime/definitions.d.ts +35 -0
- package/dist/runtime/definitions.d.ts.map +1 -0
- package/dist/runtime/deprecated.d.ts +3 -0
- package/dist/runtime/deprecated.d.ts.map +1 -0
- package/dist/runtime/environment.d.ts +95 -0
- package/dist/runtime/environment.d.ts.map +1 -0
- package/dist/runtime/execute.d.ts +70 -0
- package/dist/runtime/execute.d.ts.map +1 -0
- package/dist/runtime/exportRows.d.ts +67 -0
- package/dist/runtime/exportRows.d.ts.map +1 -0
- package/dist/runtime/failures.d.ts +57 -0
- package/dist/runtime/failures.d.ts.map +1 -0
- package/dist/runtime/fetchRecord.d.ts +20 -0
- package/dist/runtime/fetchRecord.d.ts.map +1 -0
- package/dist/runtime/index.d.ts +35 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/issueReport.d.ts +25 -0
- package/dist/runtime/issueReport.d.ts.map +1 -0
- package/dist/runtime/issues.d.ts +35 -0
- package/dist/runtime/issues.d.ts.map +1 -0
- package/dist/runtime/listeners.d.ts +36 -0
- package/dist/runtime/listeners.d.ts.map +1 -0
- package/dist/runtime/navigation.d.ts +139 -0
- package/dist/runtime/navigation.d.ts.map +1 -0
- package/dist/runtime/openRuntimes.d.ts +34 -0
- package/dist/runtime/openRuntimes.d.ts.map +1 -0
- package/dist/runtime/panelViews.d.ts +42 -0
- package/dist/runtime/panelViews.d.ts.map +1 -0
- package/dist/runtime/pending.d.ts +75 -0
- package/dist/runtime/pending.d.ts.map +1 -0
- package/dist/runtime/permissions.d.ts +80 -0
- package/dist/runtime/permissions.d.ts.map +1 -0
- package/dist/runtime/preferences.d.ts +37 -0
- package/dist/runtime/preferences.d.ts.map +1 -0
- package/dist/runtime/publish.d.ts +38 -0
- package/dist/runtime/publish.d.ts.map +1 -0
- package/dist/runtime/queryFailure.d.ts +59 -0
- package/dist/runtime/queryFailure.d.ts.map +1 -0
- package/dist/runtime/queryWeight.d.ts +29 -0
- package/dist/runtime/queryWeight.d.ts.map +1 -0
- package/dist/runtime/recordRuntime.d.ts +88 -0
- package/dist/runtime/recordRuntime.d.ts.map +1 -0
- package/dist/runtime/refreshTimer.d.ts +72 -0
- package/dist/runtime/refreshTimer.d.ts.map +1 -0
- package/dist/runtime/requestId.d.ts +11 -0
- package/dist/runtime/requestId.d.ts.map +1 -0
- package/dist/runtime/requestRunner.d.ts +58 -0
- package/dist/runtime/requestRunner.d.ts.map +1 -0
- package/dist/runtime/resources.d.ts +73 -0
- package/dist/runtime/resources.d.ts.map +1 -0
- package/dist/runtime/restyle.d.ts +21 -0
- package/dist/runtime/restyle.d.ts.map +1 -0
- package/dist/runtime/routes.d.ts +99 -0
- package/dist/runtime/routes.d.ts.map +1 -0
- package/dist/runtime/runtimeFactory.d.ts +80 -0
- package/dist/runtime/runtimeFactory.d.ts.map +1 -0
- package/dist/runtime/runtimeStore.d.ts +187 -0
- package/dist/runtime/runtimeStore.d.ts.map +1 -0
- package/dist/runtime/savedConditions.d.ts +11 -0
- package/dist/runtime/savedConditions.d.ts.map +1 -0
- package/dist/runtime/scope.d.ts +50 -0
- package/dist/runtime/scope.d.ts.map +1 -0
- package/dist/runtime/source.d.ts +108 -0
- package/dist/runtime/source.d.ts.map +1 -0
- package/dist/runtime/sourceReason.d.ts +65 -0
- package/dist/runtime/sourceReason.d.ts.map +1 -0
- package/dist/runtime/storedViews.d.ts +17 -0
- package/dist/runtime/storedViews.d.ts.map +1 -0
- package/dist/runtime/summaries.d.ts +25 -0
- package/dist/runtime/summaries.d.ts.map +1 -0
- package/dist/runtime/tabMemory.d.ts +39 -0
- package/dist/runtime/tabMemory.d.ts.map +1 -0
- package/dist/runtime/text.d.ts +20 -0
- package/dist/runtime/text.d.ts.map +1 -0
- package/dist/runtime/unavailable.d.ts +13 -0
- package/dist/runtime/unavailable.d.ts.map +1 -0
- package/dist/runtime/validateDefinition.d.ts +43 -0
- package/dist/runtime/validateDefinition.d.ts.map +1 -0
- package/dist/runtime/validateFields.d.ts +9 -0
- package/dist/runtime/validateFields.d.ts.map +1 -0
- package/dist/runtime/valueCandidates.d.ts +58 -0
- package/dist/runtime/valueCandidates.d.ts.map +1 -0
- package/dist/runtime/viewChanges.d.ts +39 -0
- package/dist/runtime/viewChanges.d.ts.map +1 -0
- package/dist/runtime/viewEngine.d.ts +292 -0
- package/dist/runtime/viewEngine.d.ts.map +1 -0
- package/dist/runtime/viewRuntime.d.ts +199 -0
- package/dist/runtime/viewRuntime.d.ts.map +1 -0
- package/dist/runtime/viewRuntimeTypes.d.ts +445 -0
- package/dist/runtime/viewRuntimeTypes.d.ts.map +1 -0
- package/dist/runtime/write.d.ts +96 -0
- package/dist/runtime/write.d.ts.map +1 -0
- package/dist/runtime/writeLedger.d.ts +134 -0
- package/dist/runtime/writeLedger.d.ts.map +1 -0
- package/dist/shadcn-bridge.css +107 -0
- package/dist/store/MemoryViewStore.d.ts +134 -0
- package/dist/store/MemoryViewStore.d.ts.map +1 -0
- package/dist/store/ViewStore.d.ts +116 -0
- package/dist/store/ViewStore.d.ts.map +1 -0
- package/dist/store/index.d.ts +10 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/localStorageSnapshot.d.ts +65 -0
- package/dist/store/localStorageSnapshot.d.ts.map +1 -0
- package/dist/styles.css +3 -0
- package/dist/styles.d.ts +1 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +0 -0
- package/dist/testing/actions.d.ts +78 -0
- package/dist/testing/actions.d.ts.map +1 -0
- package/dist/testing/aggregate.d.ts +24 -0
- package/dist/testing/aggregate.d.ts.map +1 -0
- package/dist/testing/calendar.d.ts +41 -0
- package/dist/testing/calendar.d.ts.map +1 -0
- package/dist/testing/expression.d.ts +17 -0
- package/dist/testing/expression.d.ts.map +1 -0
- package/dist/testing/filter.d.ts +48 -0
- package/dist/testing/filter.d.ts.map +1 -0
- package/dist/testing/index.d.ts +13 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/source.d.ts +52 -0
- package/dist/testing/source.d.ts.map +1 -0
- package/dist/testing/values.d.ts +14 -0
- package/dist/testing/values.d.ts.map +1 -0
- package/dist/testing.js +725 -0
- package/dist/testing.js.map +1 -0
- package/dist/theme-check.mjs +6972 -0
- package/dist/theme-source.css +1393 -0
- package/dist/theme-tokens.json +5335 -0
- package/dist/themes/azure.css +126 -0
- package/dist/themes/contrast.css +122 -0
- package/dist/themes/neutral.css +2 -0
- package/dist/themes/porcelain.css +136 -0
- package/dist/themes.css +389 -0
- package/dist/ui/DashboardWorkbench.d.ts +133 -0
- package/dist/ui/DashboardWorkbench.d.ts.map +1 -0
- package/dist/ui/DataWorkbench.d.ts +155 -0
- package/dist/ui/DataWorkbench.d.ts.map +1 -0
- package/dist/ui/EmbeddedDashboard.d.ts +103 -0
- package/dist/ui/EmbeddedDashboard.d.ts.map +1 -0
- package/dist/ui/EmbeddedView.d.ts +76 -0
- package/dist/ui/EmbeddedView.d.ts.map +1 -0
- package/dist/ui/ViewHost.d.ts +94 -0
- package/dist/ui/ViewHost.d.ts.map +1 -0
- package/dist/ui/actions/ActionButtons.d.ts +49 -0
- package/dist/ui/actions/ActionButtons.d.ts.map +1 -0
- package/dist/ui/actions/ActionDialog.d.ts +35 -0
- package/dist/ui/actions/ActionDialog.d.ts.map +1 -0
- package/dist/ui/actions/ActionSurface.d.ts +60 -0
- package/dist/ui/actions/ActionSurface.d.ts.map +1 -0
- package/dist/ui/actions/BulkStatus.d.ts +41 -0
- package/dist/ui/actions/BulkStatus.d.ts.map +1 -0
- package/dist/ui/analysis/AnalysisChart.d.ts +71 -0
- package/dist/ui/analysis/AnalysisChart.d.ts.map +1 -0
- package/dist/ui/analysis/AnalysisTable.d.ts +54 -0
- package/dist/ui/analysis/AnalysisTable.d.ts.map +1 -0
- package/dist/ui/analysis/AnalysisToolbar.d.ts +68 -0
- package/dist/ui/analysis/AnalysisToolbar.d.ts.map +1 -0
- package/dist/ui/analysis/AxesTab.d.ts +11 -0
- package/dist/ui/analysis/AxesTab.d.ts.map +1 -0
- package/dist/ui/analysis/CardMenu.d.ts +41 -0
- package/dist/ui/analysis/CardMenu.d.ts.map +1 -0
- package/dist/ui/analysis/ChartOptions.d.ts +38 -0
- package/dist/ui/analysis/ChartOptions.d.ts.map +1 -0
- package/dist/ui/analysis/ChartPicker.d.ts +86 -0
- package/dist/ui/analysis/ChartPicker.d.ts.map +1 -0
- package/dist/ui/analysis/CompactSelect.d.ts +28 -0
- package/dist/ui/analysis/CompactSelect.d.ts.map +1 -0
- package/dist/ui/analysis/CompositionOptions.d.ts +18 -0
- package/dist/ui/analysis/CompositionOptions.d.ts.map +1 -0
- package/dist/ui/analysis/CurrencyStrip.d.ts +19 -0
- package/dist/ui/analysis/CurrencyStrip.d.ts.map +1 -0
- package/dist/ui/analysis/DataTab.d.ts +10 -0
- package/dist/ui/analysis/DataTab.d.ts.map +1 -0
- package/dist/ui/analysis/DimensionCard.d.ts +13 -0
- package/dist/ui/analysis/DimensionCard.d.ts.map +1 -0
- package/dist/ui/analysis/DisplayTab.d.ts +26 -0
- package/dist/ui/analysis/DisplayTab.d.ts.map +1 -0
- package/dist/ui/analysis/DrillMenu.d.ts +73 -0
- package/dist/ui/analysis/DrillMenu.d.ts.map +1 -0
- package/dist/ui/analysis/DroppedNotice.d.ts +28 -0
- package/dist/ui/analysis/DroppedNotice.d.ts.map +1 -0
- package/dist/ui/analysis/ElementsSlot.d.ts +22 -0
- package/dist/ui/analysis/ElementsSlot.d.ts.map +1 -0
- package/dist/ui/analysis/EmptyResult.d.ts +50 -0
- package/dist/ui/analysis/EmptyResult.d.ts.map +1 -0
- package/dist/ui/analysis/ExportMenu.d.ts +35 -0
- package/dist/ui/analysis/ExportMenu.d.ts.map +1 -0
- package/dist/ui/analysis/FormulaCard.d.ts +46 -0
- package/dist/ui/analysis/FormulaCard.d.ts.map +1 -0
- package/dist/ui/analysis/HavingRows.d.ts +50 -0
- package/dist/ui/analysis/HavingRows.d.ts.map +1 -0
- package/dist/ui/analysis/LevelOptions.d.ts +21 -0
- package/dist/ui/analysis/LevelOptions.d.ts.map +1 -0
- package/dist/ui/analysis/MapOptions.d.ts +8 -0
- package/dist/ui/analysis/MapOptions.d.ts.map +1 -0
- package/dist/ui/analysis/MetricCard.d.ts +29 -0
- package/dist/ui/analysis/MetricCard.d.ts.map +1 -0
- package/dist/ui/analysis/MetricCondition.d.ts +73 -0
- package/dist/ui/analysis/MetricCondition.d.ts.map +1 -0
- package/dist/ui/analysis/MetricSlot.d.ts +35 -0
- package/dist/ui/analysis/MetricSlot.d.ts.map +1 -0
- package/dist/ui/analysis/OrderedCards.d.ts +39 -0
- package/dist/ui/analysis/OrderedCards.d.ts.map +1 -0
- package/dist/ui/analysis/RangeSlot.d.ts +26 -0
- package/dist/ui/analysis/RangeSlot.d.ts.map +1 -0
- package/dist/ui/analysis/ReferenceOptions.d.ts +12 -0
- package/dist/ui/analysis/ReferenceOptions.d.ts.map +1 -0
- package/dist/ui/analysis/ResultSlot.d.ts +31 -0
- package/dist/ui/analysis/ResultSlot.d.ts.map +1 -0
- package/dist/ui/analysis/SeriesList.d.ts +35 -0
- package/dist/ui/analysis/SeriesList.d.ts.map +1 -0
- package/dist/ui/analysis/SkeletonResult.d.ts +36 -0
- package/dist/ui/analysis/SkeletonResult.d.ts.map +1 -0
- package/dist/ui/analysis/StatisticalOptions.d.ts +31 -0
- package/dist/ui/analysis/StatisticalOptions.d.ts.map +1 -0
- package/dist/ui/analysis/TermTip.d.ts +32 -0
- package/dist/ui/analysis/TermTip.d.ts.map +1 -0
- package/dist/ui/analysis/Tray.d.ts +45 -0
- package/dist/ui/analysis/Tray.d.ts.map +1 -0
- package/dist/ui/analysis/VisualizationPanel.d.ts +68 -0
- package/dist/ui/analysis/VisualizationPanel.d.ts.map +1 -0
- package/dist/ui/analysis/chartIcons.d.ts +19 -0
- package/dist/ui/analysis/chartIcons.d.ts.map +1 -0
- package/dist/ui/analysis/drag.d.ts +39 -0
- package/dist/ui/analysis/drag.d.ts.map +1 -0
- package/dist/ui/analysis/editing.d.ts +69 -0
- package/dist/ui/analysis/editing.d.ts.map +1 -0
- package/dist/ui/analysis/exportOffer.d.ts +60 -0
- package/dist/ui/analysis/exportOffer.d.ts.map +1 -0
- package/dist/ui/analysis/headerSort.d.ts +66 -0
- package/dist/ui/analysis/headerSort.d.ts.map +1 -0
- package/dist/ui/analysis/imageExport.d.ts +40 -0
- package/dist/ui/analysis/imageExport.d.ts.map +1 -0
- package/dist/ui/analysis/issueNames.d.ts +39 -0
- package/dist/ui/analysis/issueNames.d.ts.map +1 -0
- package/dist/ui/analysis/listFocus.d.ts +42 -0
- package/dist/ui/analysis/listFocus.d.ts.map +1 -0
- package/dist/ui/analysis/optionControls.d.ts +200 -0
- package/dist/ui/analysis/optionControls.d.ts.map +1 -0
- package/dist/ui/analysis/tableColumns.d.ts +79 -0
- package/dist/ui/analysis/tableColumns.d.ts.map +1 -0
- package/dist/ui/analysis/virtualRows.d.ts +66 -0
- package/dist/ui/analysis/virtualRows.d.ts.map +1 -0
- package/dist/ui/charts/Boxplot.d.ts +10 -0
- package/dist/ui/charts/Boxplot.d.ts.map +1 -0
- package/dist/ui/charts/Candlestick.d.ts +9 -0
- package/dist/ui/charts/Candlestick.d.ts.map +1 -0
- package/dist/ui/charts/Cartesian.d.ts +9 -0
- package/dist/ui/charts/Cartesian.d.ts.map +1 -0
- package/dist/ui/charts/ChartLegend.d.ts +47 -0
- package/dist/ui/charts/ChartLegend.d.ts.map +1 -0
- package/dist/ui/charts/ChartNotes.d.ts +14 -0
- package/dist/ui/charts/ChartNotes.d.ts.map +1 -0
- package/dist/ui/charts/ChartReading.d.ts +15 -0
- package/dist/ui/charts/ChartReading.d.ts.map +1 -0
- package/dist/ui/charts/EChart.d.ts +177 -0
- package/dist/ui/charts/EChart.d.ts.map +1 -0
- package/dist/ui/charts/Funnel.d.ts +27 -0
- package/dist/ui/charts/Funnel.d.ts.map +1 -0
- package/dist/ui/charts/Gauge.d.ts +9 -0
- package/dist/ui/charts/Gauge.d.ts.map +1 -0
- package/dist/ui/charts/GeoMap.d.ts +11 -0
- package/dist/ui/charts/GeoMap.d.ts.map +1 -0
- package/dist/ui/charts/Heatmap.d.ts +9 -0
- package/dist/ui/charts/Heatmap.d.ts.map +1 -0
- package/dist/ui/charts/Hierarchy.d.ts +12 -0
- package/dist/ui/charts/Hierarchy.d.ts.map +1 -0
- package/dist/ui/charts/MetricCard.d.ts +4 -0
- package/dist/ui/charts/MetricCard.d.ts.map +1 -0
- package/dist/ui/charts/PieSlices.d.ts +26 -0
- package/dist/ui/charts/PieSlices.d.ts.map +1 -0
- package/dist/ui/charts/Profiles.d.ts +11 -0
- package/dist/ui/charts/Profiles.d.ts.map +1 -0
- package/dist/ui/charts/ScatterPoints.d.ts +5 -0
- package/dist/ui/charts/ScatterPoints.d.ts.map +1 -0
- package/dist/ui/charts/TimeCharts.d.ts +10 -0
- package/dist/ui/charts/TimeCharts.d.ts.map +1 -0
- package/dist/ui/charts/Treemap.d.ts +12 -0
- package/dist/ui/charts/Treemap.d.ts.map +1 -0
- package/dist/ui/charts/Waterfall.d.ts +11 -0
- package/dist/ui/charts/Waterfall.d.ts.map +1 -0
- package/dist/ui/charts/axis.d.ts +101 -0
- package/dist/ui/charts/axis.d.ts.map +1 -0
- package/dist/ui/charts/boxplotOption.d.ts +33 -0
- package/dist/ui/charts/boxplotOption.d.ts.map +1 -0
- package/dist/ui/charts/candlestickOption.d.ts +42 -0
- package/dist/ui/charts/candlestickOption.d.ts.map +1 -0
- package/dist/ui/charts/cartesianBrush.d.ts +84 -0
- package/dist/ui/charts/cartesianBrush.d.ts.map +1 -0
- package/dist/ui/charts/cartesianFit.d.ts +72 -0
- package/dist/ui/charts/cartesianFit.d.ts.map +1 -0
- package/dist/ui/charts/cartesianMarks.d.ts +116 -0
- package/dist/ui/charts/cartesianMarks.d.ts.map +1 -0
- package/dist/ui/charts/cartesianOption.d.ts +32 -0
- package/dist/ui/charts/cartesianOption.d.ts.map +1 -0
- package/dist/ui/charts/cartesianPlan.d.ts +263 -0
- package/dist/ui/charts/cartesianPlan.d.ts.map +1 -0
- package/dist/ui/charts/cartesianSeries.d.ts +41 -0
- package/dist/ui/charts/cartesianSeries.d.ts.map +1 -0
- package/dist/ui/charts/cartesianTooltip.d.ts +14 -0
- package/dist/ui/charts/cartesianTooltip.d.ts.map +1 -0
- package/dist/ui/charts/cartesianZoom.d.ts +60 -0
- package/dist/ui/charts/cartesianZoom.d.ts.map +1 -0
- package/dist/ui/charts/categoryFrame.d.ts +106 -0
- package/dist/ui/charts/categoryFrame.d.ts.map +1 -0
- package/dist/ui/charts/dateTicks.d.ts +36 -0
- package/dist/ui/charts/dateTicks.d.ts.map +1 -0
- package/dist/ui/charts/echarts.d.ts +16 -0
- package/dist/ui/charts/echarts.d.ts.map +1 -0
- package/dist/ui/charts/echartsGeo.d.ts +5 -0
- package/dist/ui/charts/echartsGeo.d.ts.map +1 -0
- package/dist/ui/charts/echartsHierarchy.d.ts +2 -0
- package/dist/ui/charts/echartsHierarchy.d.ts.map +1 -0
- package/dist/ui/charts/echartsStatistics.d.ts +2 -0
- package/dist/ui/charts/echartsStatistics.d.ts.map +1 -0
- package/dist/ui/charts/echartsTime.d.ts +2 -0
- package/dist/ui/charts/echartsTime.d.ts.map +1 -0
- package/dist/ui/charts/family.d.ts +176 -0
- package/dist/ui/charts/family.d.ts.map +1 -0
- package/dist/ui/charts/frameClass.d.ts +18 -0
- package/dist/ui/charts/frameClass.d.ts.map +1 -0
- package/dist/ui/charts/funnelFit.d.ts +67 -0
- package/dist/ui/charts/funnelFit.d.ts.map +1 -0
- package/dist/ui/charts/funnelOption.d.ts +94 -0
- package/dist/ui/charts/funnelOption.d.ts.map +1 -0
- package/dist/ui/charts/gaugeOption.d.ts +32 -0
- package/dist/ui/charts/gaugeOption.d.ts.map +1 -0
- package/dist/ui/charts/heatmapOption.d.ts +38 -0
- package/dist/ui/charts/heatmapOption.d.ts.map +1 -0
- package/dist/ui/charts/hierarchyOption.d.ts +85 -0
- package/dist/ui/charts/hierarchyOption.d.ts.map +1 -0
- package/dist/ui/charts/highlight.d.ts +26 -0
- package/dist/ui/charts/highlight.d.ts.map +1 -0
- package/dist/ui/charts/image.d.ts +96 -0
- package/dist/ui/charts/image.d.ts.map +1 -0
- package/dist/ui/charts/legend.d.ts +11 -0
- package/dist/ui/charts/legend.d.ts.map +1 -0
- package/dist/ui/charts/load.d.ts +29 -0
- package/dist/ui/charts/load.d.ts.map +1 -0
- package/dist/ui/charts/mapOption.d.ts +39 -0
- package/dist/ui/charts/mapOption.d.ts.map +1 -0
- package/dist/ui/charts/maps.d.ts +53 -0
- package/dist/ui/charts/maps.d.ts.map +1 -0
- package/dist/ui/charts/markWords.d.ts +38 -0
- package/dist/ui/charts/markWords.d.ts.map +1 -0
- package/dist/ui/charts/measure.d.ts +2 -0
- package/dist/ui/charts/measure.d.ts.map +1 -0
- package/dist/ui/charts/motion.d.ts +15 -0
- package/dist/ui/charts/motion.d.ts.map +1 -0
- package/dist/ui/charts/optionMerge.d.ts +10 -0
- package/dist/ui/charts/optionMerge.d.ts.map +1 -0
- package/dist/ui/charts/palette.d.ts +43 -0
- package/dist/ui/charts/palette.d.ts.map +1 -0
- package/dist/ui/charts/patterns.d.ts +29 -0
- package/dist/ui/charts/patterns.d.ts.map +1 -0
- package/dist/ui/charts/periodSpan.d.ts +11 -0
- package/dist/ui/charts/periodSpan.d.ts.map +1 -0
- package/dist/ui/charts/pieOption.d.ts +107 -0
- package/dist/ui/charts/pieOption.d.ts.map +1 -0
- package/dist/ui/charts/print.d.ts +16 -0
- package/dist/ui/charts/print.d.ts.map +1 -0
- package/dist/ui/charts/profileOption.d.ts +47 -0
- package/dist/ui/charts/profileOption.d.ts.map +1 -0
- package/dist/ui/charts/reading.d.ts +66 -0
- package/dist/ui/charts/reading.d.ts.map +1 -0
- package/dist/ui/charts/readingStatistics.d.ts +58 -0
- package/dist/ui/charts/readingStatistics.d.ts.map +1 -0
- package/dist/ui/charts/scale.d.ts +42 -0
- package/dist/ui/charts/scale.d.ts.map +1 -0
- package/dist/ui/charts/scatterOption.d.ts +44 -0
- package/dist/ui/charts/scatterOption.d.ts.map +1 -0
- package/dist/ui/charts/sentence.d.ts +19 -0
- package/dist/ui/charts/sentence.d.ts.map +1 -0
- package/dist/ui/charts/sentenceParts.d.ts +36 -0
- package/dist/ui/charts/sentenceParts.d.ts.map +1 -0
- package/dist/ui/charts/sizes.d.ts +25 -0
- package/dist/ui/charts/sizes.d.ts.map +1 -0
- package/dist/ui/charts/sparklineOption.d.ts +19 -0
- package/dist/ui/charts/sparklineOption.d.ts.map +1 -0
- package/dist/ui/charts/theme.d.ts +179 -0
- package/dist/ui/charts/theme.d.ts.map +1 -0
- package/dist/ui/charts/timeOption.d.ts +54 -0
- package/dist/ui/charts/timeOption.d.ts.map +1 -0
- package/dist/ui/charts/tooltip.d.ts +51 -0
- package/dist/ui/charts/tooltip.d.ts.map +1 -0
- package/dist/ui/charts/treemapOption.d.ts +56 -0
- package/dist/ui/charts/treemapOption.d.ts.map +1 -0
- package/dist/ui/charts/waterfallOption.d.ts +58 -0
- package/dist/ui/charts/waterfallOption.d.ts.map +1 -0
- package/dist/ui/colorMode.d.ts +39 -0
- package/dist/ui/colorMode.d.ts.map +1 -0
- package/dist/ui/columns/ColumnRow.d.ts +79 -0
- package/dist/ui/columns/ColumnRow.d.ts.map +1 -0
- package/dist/ui/columns/ColumnSettings.d.ts +51 -0
- package/dist/ui/columns/ColumnSettings.d.ts.map +1 -0
- package/dist/ui/columns/WidthInput.d.ts +39 -0
- package/dist/ui/columns/WidthInput.d.ts.map +1 -0
- package/dist/ui/columns/drag.d.ts +34 -0
- package/dist/ui/columns/drag.d.ts.map +1 -0
- package/dist/ui/columns/rows.d.ts +155 -0
- package/dist/ui/columns/rows.d.ts.map +1 -0
- package/dist/ui/columns/sections.d.ts +55 -0
- package/dist/ui/columns/sections.d.ts.map +1 -0
- package/dist/ui/components/alert-dialog.d.ts +19 -0
- package/dist/ui/components/alert-dialog.d.ts.map +1 -0
- package/dist/ui/components/alert.d.ts +11 -0
- package/dist/ui/components/alert.d.ts.map +1 -0
- package/dist/ui/components/badge.d.ts +8 -0
- package/dist/ui/components/badge.d.ts.map +1 -0
- package/dist/ui/components/button-group.d.ts +11 -0
- package/dist/ui/components/button-group.d.ts.map +1 -0
- package/dist/ui/components/button.d.ts +9 -0
- package/dist/ui/components/button.d.ts.map +1 -0
- package/dist/ui/components/calendar.d.ts +11 -0
- package/dist/ui/components/calendar.d.ts.map +1 -0
- package/dist/ui/components/card.d.ts +12 -0
- package/dist/ui/components/card.d.ts.map +1 -0
- package/dist/ui/components/checkbox.d.ts +4 -0
- package/dist/ui/components/checkbox.d.ts.map +1 -0
- package/dist/ui/components/collapsible.d.ts +6 -0
- package/dist/ui/components/collapsible.d.ts.map +1 -0
- package/dist/ui/components/combobox.d.ts +25 -0
- package/dist/ui/components/combobox.d.ts.map +1 -0
- package/dist/ui/components/dialog.d.ts +18 -0
- package/dist/ui/components/dialog.d.ts.map +1 -0
- package/dist/ui/components/dropdown-menu.d.ts +30 -0
- package/dist/ui/components/dropdown-menu.d.ts.map +1 -0
- package/dist/ui/components/empty.d.ts +12 -0
- package/dist/ui/components/empty.d.ts.map +1 -0
- package/dist/ui/components/field.d.ts +25 -0
- package/dist/ui/components/field.d.ts.map +1 -0
- package/dist/ui/components/input-group.d.ts +19 -0
- package/dist/ui/components/input-group.d.ts.map +1 -0
- package/dist/ui/components/input.d.ts +4 -0
- package/dist/ui/components/input.d.ts.map +1 -0
- package/dist/ui/components/item.d.ts +23 -0
- package/dist/ui/components/item.d.ts.map +1 -0
- package/dist/ui/components/label.d.ts +4 -0
- package/dist/ui/components/label.d.ts.map +1 -0
- package/dist/ui/components/pagination.d.ts +18 -0
- package/dist/ui/components/pagination.d.ts.map +1 -0
- package/dist/ui/components/popover.d.ts +10 -0
- package/dist/ui/components/popover.d.ts.map +1 -0
- package/dist/ui/components/progress.d.ts +8 -0
- package/dist/ui/components/progress.d.ts.map +1 -0
- package/dist/ui/components/radio-group.d.ts +6 -0
- package/dist/ui/components/radio-group.d.ts.map +1 -0
- package/dist/ui/components/select.d.ts +16 -0
- package/dist/ui/components/select.d.ts.map +1 -0
- package/dist/ui/components/separator.d.ts +4 -0
- package/dist/ui/components/separator.d.ts.map +1 -0
- package/dist/ui/components/sheet.d.ts +15 -0
- package/dist/ui/components/sheet.d.ts.map +1 -0
- package/dist/ui/components/skeleton.d.ts +3 -0
- package/dist/ui/components/skeleton.d.ts.map +1 -0
- package/dist/ui/components/spinner.d.ts +3 -0
- package/dist/ui/components/spinner.d.ts.map +1 -0
- package/dist/ui/components/table.d.ts +11 -0
- package/dist/ui/components/table.d.ts.map +1 -0
- package/dist/ui/components/tabs.d.ts +11 -0
- package/dist/ui/components/tabs.d.ts.map +1 -0
- package/dist/ui/components/textarea.d.ts +4 -0
- package/dist/ui/components/textarea.d.ts.map +1 -0
- package/dist/ui/components/toast.d.ts +17 -0
- package/dist/ui/components/toast.d.ts.map +1 -0
- package/dist/ui/components/toggle-group.d.ts +12 -0
- package/dist/ui/components/toggle-group.d.ts.map +1 -0
- package/dist/ui/components/toggle.d.ts +9 -0
- package/dist/ui/components/toggle.d.ts.map +1 -0
- package/dist/ui/components/tooltip.d.ts +7 -0
- package/dist/ui/components/tooltip.d.ts.map +1 -0
- package/dist/ui/dashboard/AddMenu.d.ts +28 -0
- package/dist/ui/dashboard/AddMenu.d.ts.map +1 -0
- package/dist/ui/dashboard/Board.d.ts +49 -0
- package/dist/ui/dashboard/Board.d.ts.map +1 -0
- package/dist/ui/dashboard/BoardDestination.d.ts +48 -0
- package/dist/ui/dashboard/BoardDestination.d.ts.map +1 -0
- package/dist/ui/dashboard/BoardFilters.d.ts +58 -0
- package/dist/ui/dashboard/BoardFilters.d.ts.map +1 -0
- package/dist/ui/dashboard/BoardWidth.d.ts +15 -0
- package/dist/ui/dashboard/BoardWidth.d.ts.map +1 -0
- package/dist/ui/dashboard/ClickSettings.d.ts +30 -0
- package/dist/ui/dashboard/ClickSettings.d.ts.map +1 -0
- package/dist/ui/dashboard/ContentEditor.d.ts +40 -0
- package/dist/ui/dashboard/ContentEditor.d.ts.map +1 -0
- package/dist/ui/dashboard/DashboardArrange.d.ts +101 -0
- package/dist/ui/dashboard/DashboardArrange.d.ts.map +1 -0
- package/dist/ui/dashboard/DashboardGrid.d.ts +96 -0
- package/dist/ui/dashboard/DashboardGrid.d.ts.map +1 -0
- package/dist/ui/dashboard/DashboardPanel.d.ts +143 -0
- package/dist/ui/dashboard/DashboardPanel.d.ts.map +1 -0
- package/dist/ui/dashboard/DashboardPanels.d.ts +93 -0
- package/dist/ui/dashboard/DashboardPanels.d.ts.map +1 -0
- package/dist/ui/dashboard/DashboardTabs.d.ts +43 -0
- package/dist/ui/dashboard/DashboardTabs.d.ts.map +1 -0
- package/dist/ui/dashboard/EditBar.d.ts +55 -0
- package/dist/ui/dashboard/EditBar.d.ts.map +1 -0
- package/dist/ui/dashboard/EditableTabs.d.ts +32 -0
- package/dist/ui/dashboard/EditableTabs.d.ts.map +1 -0
- package/dist/ui/dashboard/FilterBar.d.ts +82 -0
- package/dist/ui/dashboard/FilterBar.d.ts.map +1 -0
- package/dist/ui/dashboard/FilterOrder.d.ts +40 -0
- package/dist/ui/dashboard/FilterOrder.d.ts.map +1 -0
- package/dist/ui/dashboard/FilterReadings.d.ts +41 -0
- package/dist/ui/dashboard/FilterReadings.d.ts.map +1 -0
- package/dist/ui/dashboard/FilterSettings.d.ts +32 -0
- package/dist/ui/dashboard/FilterSettings.d.ts.map +1 -0
- package/dist/ui/dashboard/FilterSheet.d.ts +24 -0
- package/dist/ui/dashboard/FilterSheet.d.ts.map +1 -0
- package/dist/ui/dashboard/FilterWiring.d.ts +47 -0
- package/dist/ui/dashboard/FilterWiring.d.ts.map +1 -0
- package/dist/ui/dashboard/GridBlocksLayer.d.ts +17 -0
- package/dist/ui/dashboard/GridBlocksLayer.d.ts.map +1 -0
- package/dist/ui/dashboard/GroupingControl.d.ts +10 -0
- package/dist/ui/dashboard/GroupingControl.d.ts.map +1 -0
- package/dist/ui/dashboard/NewAnalysisDialog.d.ts +41 -0
- package/dist/ui/dashboard/NewAnalysisDialog.d.ts.map +1 -0
- package/dist/ui/dashboard/PanelBodies.d.ts +101 -0
- package/dist/ui/dashboard/PanelBodies.d.ts.map +1 -0
- package/dist/ui/dashboard/PanelExport.d.ts +35 -0
- package/dist/ui/dashboard/PanelExport.d.ts.map +1 -0
- package/dist/ui/dashboard/PanelMarks.d.ts +43 -0
- package/dist/ui/dashboard/PanelMarks.d.ts.map +1 -0
- package/dist/ui/dashboard/PanelMenu.d.ts +56 -0
- package/dist/ui/dashboard/PanelMenu.d.ts.map +1 -0
- package/dist/ui/dashboard/PanelUnavailable.d.ts +45 -0
- package/dist/ui/dashboard/PanelUnavailable.d.ts.map +1 -0
- package/dist/ui/dashboard/PresentationDialog.d.ts +36 -0
- package/dist/ui/dashboard/PresentationDialog.d.ts.map +1 -0
- package/dist/ui/dashboard/ScrollCue.d.ts +21 -0
- package/dist/ui/dashboard/ScrollCue.d.ts.map +1 -0
- package/dist/ui/dashboard/ViewPicker.d.ts +59 -0
- package/dist/ui/dashboard/ViewPicker.d.ts.map +1 -0
- package/dist/ui/dashboard/buildShell.d.ts +44 -0
- package/dist/ui/dashboard/buildShell.d.ts.map +1 -0
- package/dist/ui/dashboard/building.d.ts +44 -0
- package/dist/ui/dashboard/building.d.ts.map +1 -0
- package/dist/ui/dashboard/commands.d.ts +131 -0
- package/dist/ui/dashboard/commands.d.ts.map +1 -0
- package/dist/ui/dashboard/extensions.d.ts +66 -0
- package/dist/ui/dashboard/extensions.d.ts.map +1 -0
- package/dist/ui/dashboard/filterModes.d.ts +60 -0
- package/dist/ui/dashboard/filterModes.d.ts.map +1 -0
- package/dist/ui/dashboard/filterOutcome.d.ts +24 -0
- package/dist/ui/dashboard/filterOutcome.d.ts.map +1 -0
- package/dist/ui/dashboard/findings.d.ts +24 -0
- package/dist/ui/dashboard/findings.d.ts.map +1 -0
- package/dist/ui/dashboard/gridBlocks.d.ts +55 -0
- package/dist/ui/dashboard/gridBlocks.d.ts.map +1 -0
- package/dist/ui/dashboard/gridPlacement.d.ts +38 -0
- package/dist/ui/dashboard/gridPlacement.d.ts.map +1 -0
- package/dist/ui/dashboard/gridWidth.d.ts +33 -0
- package/dist/ui/dashboard/gridWidth.d.ts.map +1 -0
- package/dist/ui/dashboard/history.d.ts +56 -0
- package/dist/ui/dashboard/history.d.ts.map +1 -0
- package/dist/ui/dashboard/landing.d.ts +13 -0
- package/dist/ui/dashboard/landing.d.ts.map +1 -0
- package/dist/ui/dashboard/panelFit.d.ts +43 -0
- package/dist/ui/dashboard/panelFit.d.ts.map +1 -0
- package/dist/ui/dashboard/press.d.ts +50 -0
- package/dist/ui/dashboard/press.d.ts.map +1 -0
- package/dist/ui/dashboard/reveal.d.ts +21 -0
- package/dist/ui/dashboard/reveal.d.ts.map +1 -0
- package/dist/ui/dashboard/scrollMore.d.ts +92 -0
- package/dist/ui/dashboard/scrollMore.d.ts.map +1 -0
- package/dist/ui/dashboard/touchGate.d.ts +30 -0
- package/dist/ui/dashboard/touchGate.d.ts.map +1 -0
- package/dist/ui/embed/EmbedFrame.d.ts +29 -0
- package/dist/ui/embed/EmbedFrame.d.ts.map +1 -0
- package/dist/ui/embed/EmbedHead.d.ts +81 -0
- package/dist/ui/embed/EmbedHead.d.ts.map +1 -0
- package/dist/ui/embed/EmbeddedAnalysis.d.ts +20 -0
- package/dist/ui/embed/EmbeddedAnalysis.d.ts.map +1 -0
- package/dist/ui/embed/EmbeddedRecord.d.ts +33 -0
- package/dist/ui/embed/EmbeddedRecord.d.ts.map +1 -0
- package/dist/ui/embed/options.d.ts +118 -0
- package/dist/ui/embed/options.d.ts.map +1 -0
- package/dist/ui/filter/AddEntry.d.ts +25 -0
- package/dist/ui/filter/AddEntry.d.ts.map +1 -0
- package/dist/ui/filter/AppliedBar.d.ts +39 -0
- package/dist/ui/filter/AppliedBar.d.ts.map +1 -0
- package/dist/ui/filter/ConditionPill.d.ts +38 -0
- package/dist/ui/filter/ConditionPill.d.ts.map +1 -0
- package/dist/ui/filter/FieldChecklist.d.ts +56 -0
- package/dist/ui/filter/FieldChecklist.d.ts.map +1 -0
- package/dist/ui/filter/FilterActions.d.ts +49 -0
- package/dist/ui/filter/FilterActions.d.ts.map +1 -0
- package/dist/ui/filter/FilterModes.d.ts +39 -0
- package/dist/ui/filter/FilterModes.d.ts.map +1 -0
- package/dist/ui/filter/FilterPanel.d.ts +76 -0
- package/dist/ui/filter/FilterPanel.d.ts.map +1 -0
- package/dist/ui/filter/FilterValueEditor.d.ts +103 -0
- package/dist/ui/filter/FilterValueEditor.d.ts.map +1 -0
- package/dist/ui/filter/GroupBlock.d.ts +49 -0
- package/dist/ui/filter/GroupBlock.d.ts.map +1 -0
- package/dist/ui/filter/conditionFocus.d.ts +39 -0
- package/dist/ui/filter/conditionFocus.d.ts.map +1 -0
- package/dist/ui/filter/enter.d.ts +20 -0
- package/dist/ui/filter/enter.d.ts.map +1 -0
- package/dist/ui/filter/groupOperators.d.ts +12 -0
- package/dist/ui/filter/groupOperators.d.ts.map +1 -0
- package/dist/ui/filter/inputs/calendar.d.ts +26 -0
- package/dist/ui/filter/inputs/calendar.d.ts.map +1 -0
- package/dist/ui/filter/inputs/candidates.d.ts +27 -0
- package/dist/ui/filter/inputs/candidates.d.ts.map +1 -0
- package/dist/ui/filter/inputs/chips.d.ts +56 -0
- package/dist/ui/filter/inputs/chips.d.ts.map +1 -0
- package/dist/ui/filter/inputs/date.d.ts +35 -0
- package/dist/ui/filter/inputs/date.d.ts.map +1 -0
- package/dist/ui/filter/inputs/daterange.d.ts +28 -0
- package/dist/ui/filter/inputs/daterange.d.ts.map +1 -0
- package/dist/ui/filter/inputs/duration.d.ts +16 -0
- package/dist/ui/filter/inputs/duration.d.ts.map +1 -0
- package/dist/ui/filter/inputs/number.d.ts +47 -0
- package/dist/ui/filter/inputs/number.d.ts.map +1 -0
- package/dist/ui/filter/inputs/relative.d.ts +23 -0
- package/dist/ui/filter/inputs/relative.d.ts.map +1 -0
- package/dist/ui/filter/inputs/remote.d.ts +20 -0
- package/dist/ui/filter/inputs/remote.d.ts.map +1 -0
- package/dist/ui/filter/inputs/select.d.ts +26 -0
- package/dist/ui/filter/inputs/select.d.ts.map +1 -0
- package/dist/ui/filter/inputs/shared.d.ts +79 -0
- package/dist/ui/filter/inputs/shared.d.ts.map +1 -0
- package/dist/ui/filter/inputs/suggested.d.ts +29 -0
- package/dist/ui/filter/inputs/suggested.d.ts.map +1 -0
- package/dist/ui/filter/inputs/text.d.ts +8 -0
- package/dist/ui/filter/inputs/text.d.ts.map +1 -0
- package/dist/ui/filter/inputs/time.d.ts +29 -0
- package/dist/ui/filter/inputs/time.d.ts.map +1 -0
- package/dist/ui/filter/inputs/timeOfDay.d.ts +38 -0
- package/dist/ui/filter/inputs/timeOfDay.d.ts.map +1 -0
- package/dist/ui/filter/inputs/unsupported.d.ts +33 -0
- package/dist/ui/filter/inputs/unsupported.d.ts.map +1 -0
- package/dist/ui/index.d.ts +123 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/kit/Announcer.d.ts +75 -0
- package/dist/ui/kit/Announcer.d.ts.map +1 -0
- package/dist/ui/kit/CopyButton.d.ts +31 -0
- package/dist/ui/kit/CopyButton.d.ts.map +1 -0
- package/dist/ui/kit/DragHandle.d.ts +84 -0
- package/dist/ui/kit/DragHandle.d.ts.map +1 -0
- package/dist/ui/kit/ExportDialog.d.ts +111 -0
- package/dist/ui/kit/ExportDialog.d.ts.map +1 -0
- package/dist/ui/kit/ExportSteps.d.ts +38 -0
- package/dist/ui/kit/ExportSteps.d.ts.map +1 -0
- package/dist/ui/kit/FieldMenu.d.ts +22 -0
- package/dist/ui/kit/FieldMenu.d.ts.map +1 -0
- package/dist/ui/kit/HandOffMenu.d.ts +29 -0
- package/dist/ui/kit/HandOffMenu.d.ts.map +1 -0
- package/dist/ui/kit/IconButton.d.ts +74 -0
- package/dist/ui/kit/IconButton.d.ts.map +1 -0
- package/dist/ui/kit/MessagesProvider.d.ts +135 -0
- package/dist/ui/kit/MessagesProvider.d.ts.map +1 -0
- package/dist/ui/kit/MixedCheckbox.d.ts +16 -0
- package/dist/ui/kit/MixedCheckbox.d.ts.map +1 -0
- package/dist/ui/kit/OutcomeActions.d.ts +78 -0
- package/dist/ui/kit/OutcomeActions.d.ts.map +1 -0
- package/dist/ui/kit/PendingDot.d.ts +39 -0
- package/dist/ui/kit/PendingDot.d.ts.map +1 -0
- package/dist/ui/kit/RenameInput.d.ts +63 -0
- package/dist/ui/kit/RenameInput.d.ts.map +1 -0
- package/dist/ui/kit/RenderBoundary.d.ts +68 -0
- package/dist/ui/kit/RenderBoundary.d.ts.map +1 -0
- package/dist/ui/kit/RowItem.d.ts +31 -0
- package/dist/ui/kit/RowItem.d.ts.map +1 -0
- package/dist/ui/kit/StatusStrip.d.ts +114 -0
- package/dist/ui/kit/StatusStrip.d.ts.map +1 -0
- package/dist/ui/kit/SystemMark.d.ts +32 -0
- package/dist/ui/kit/SystemMark.d.ts.map +1 -0
- package/dist/ui/kit/Truncated.d.ts +25 -0
- package/dist/ui/kit/Truncated.d.ts.map +1 -0
- package/dist/ui/kit/ViewExpansion.d.ts +89 -0
- package/dist/ui/kit/ViewExpansion.d.ts.map +1 -0
- package/dist/ui/kit/ViewSurface.d.ts +100 -0
- package/dist/ui/kit/ViewSurface.d.ts.map +1 -0
- package/dist/ui/kit/alerts.d.ts +60 -0
- package/dist/ui/kit/alerts.d.ts.map +1 -0
- package/dist/ui/kit/anchor.d.ts +16 -0
- package/dist/ui/kit/anchor.d.ts.map +1 -0
- package/dist/ui/kit/badges.d.ts +34 -0
- package/dist/ui/kit/badges.d.ts.map +1 -0
- package/dist/ui/kit/band.d.ts +49 -0
- package/dist/ui/kit/band.d.ts.map +1 -0
- package/dist/ui/kit/chartFailure.d.ts +19 -0
- package/dist/ui/kit/chartFailure.d.ts.map +1 -0
- package/dist/ui/kit/copyText.d.ts +13 -0
- package/dist/ui/kit/copyText.d.ts.map +1 -0
- package/dist/ui/kit/cspNonce.d.ts +19 -0
- package/dist/ui/kit/cspNonce.d.ts.map +1 -0
- package/dist/ui/kit/currency.d.ts +26 -0
- package/dist/ui/kit/currency.d.ts.map +1 -0
- package/dist/ui/kit/datePart.d.ts +11 -0
- package/dist/ui/kit/datePart.d.ts.map +1 -0
- package/dist/ui/kit/display.d.ts +293 -0
- package/dist/ui/kit/display.d.ts.map +1 -0
- package/dist/ui/kit/download.d.ts +29 -0
- package/dist/ui/kit/download.d.ts.map +1 -0
- package/dist/ui/kit/dragAnnounce.d.ts +51 -0
- package/dist/ui/kit/dragAnnounce.d.ts.map +1 -0
- package/dist/ui/kit/dragDrop.d.ts +36 -0
- package/dist/ui/kit/dragDrop.d.ts.map +1 -0
- package/dist/ui/kit/dragPlugins.d.ts +35 -0
- package/dist/ui/kit/dragPlugins.d.ts.map +1 -0
- package/dist/ui/kit/dragWording.d.ts +15 -0
- package/dist/ui/kit/dragWording.d.ts.map +1 -0
- package/dist/ui/kit/failureSink.d.ts +19 -0
- package/dist/ui/kit/failureSink.d.ts.map +1 -0
- package/dist/ui/kit/features.d.ts +38 -0
- package/dist/ui/kit/features.d.ts.map +1 -0
- package/dist/ui/kit/focus.d.ts +54 -0
- package/dist/ui/kit/focus.d.ts.map +1 -0
- package/dist/ui/kit/kinds.d.ts +54 -0
- package/dist/ui/kit/kinds.d.ts.map +1 -0
- package/dist/ui/kit/layout.d.ts +77 -0
- package/dist/ui/kit/layout.d.ts.map +1 -0
- package/dist/ui/kit/messages.d.ts +56 -0
- package/dist/ui/kit/messages.d.ts.map +1 -0
- package/dist/ui/kit/numbers.d.ts +53 -0
- package/dist/ui/kit/numbers.d.ts.map +1 -0
- package/dist/ui/kit/popups.d.ts +83 -0
- package/dist/ui/kit/popups.d.ts.map +1 -0
- package/dist/ui/kit/presets.d.ts +42 -0
- package/dist/ui/kit/presets.d.ts.map +1 -0
- package/dist/ui/kit/roving.d.ts +32 -0
- package/dist/ui/kit/roving.d.ts.map +1 -0
- package/dist/ui/kit/summary.d.ts +45 -0
- package/dist/ui/kit/summary.d.ts.map +1 -0
- package/dist/ui/kit/toolbar.d.ts +92 -0
- package/dist/ui/kit/toolbar.d.ts.map +1 -0
- package/dist/ui/kit/variants.d.ts +464 -0
- package/dist/ui/kit/variants.d.ts.map +1 -0
- package/dist/ui/lib/utils.d.ts +2 -0
- package/dist/ui/lib/utils.d.ts.map +1 -0
- package/dist/ui/manage/DeleteDialog.d.ts +32 -0
- package/dist/ui/manage/DeleteDialog.d.ts.map +1 -0
- package/dist/ui/manage/ViewManager.d.ts +24 -0
- package/dist/ui/manage/ViewManager.d.ts.map +1 -0
- package/dist/ui/manage/ViewManagerRow.d.ts +96 -0
- package/dist/ui/manage/ViewManagerRow.d.ts.map +1 -0
- package/dist/ui/manage/drag.d.ts +33 -0
- package/dist/ui/manage/drag.d.ts.map +1 -0
- package/dist/ui/messages/actions.d.ts +32 -0
- package/dist/ui/messages/actions.d.ts.map +1 -0
- package/dist/ui/messages/analysis.d.ts +684 -0
- package/dist/ui/messages/analysis.d.ts.map +1 -0
- package/dist/ui/messages/building.d.ts +62 -0
- package/dist/ui/messages/building.d.ts.map +1 -0
- package/dist/ui/messages/bulk.d.ts +27 -0
- package/dist/ui/messages/bulk.d.ts.map +1 -0
- package/dist/ui/messages/capabilities.d.ts +38 -0
- package/dist/ui/messages/capabilities.d.ts.map +1 -0
- package/dist/ui/messages/clicks.d.ts +84 -0
- package/dist/ui/messages/clicks.d.ts.map +1 -0
- package/dist/ui/messages/config.d.ts +12 -0
- package/dist/ui/messages/config.d.ts.map +1 -0
- package/dist/ui/messages/dashboard.d.ts +310 -0
- package/dist/ui/messages/dashboard.d.ts.map +1 -0
- package/dist/ui/messages/definition.d.ts +71 -0
- package/dist/ui/messages/definition.d.ts.map +1 -0
- package/dist/ui/messages/embed.d.ts +11 -0
- package/dist/ui/messages/embed.d.ts.map +1 -0
- package/dist/ui/messages/en.d.ts +2098 -0
- package/dist/ui/messages/en.d.ts.map +1 -0
- package/dist/ui/messages/export.d.ts +50 -0
- package/dist/ui/messages/export.d.ts.map +1 -0
- package/dist/ui/messages/filter.d.ts +263 -0
- package/dist/ui/messages/filter.d.ts.map +1 -0
- package/dist/ui/messages/filters.d.ts +78 -0
- package/dist/ui/messages/filters.d.ts.map +1 -0
- package/dist/ui/messages/header.d.ts +14 -0
- package/dist/ui/messages/header.d.ts.map +1 -0
- package/dist/ui/messages/manage.d.ts +35 -0
- package/dist/ui/messages/manage.d.ts.map +1 -0
- package/dist/ui/messages/record.d.ts +172 -0
- package/dist/ui/messages/record.d.ts.map +1 -0
- package/dist/ui/messages/refresh.d.ts +19 -0
- package/dist/ui/messages/refresh.d.ts.map +1 -0
- package/dist/ui/messages/render.d.ts +11 -0
- package/dist/ui/messages/render.d.ts.map +1 -0
- package/dist/ui/messages/reorder.d.ts +19 -0
- package/dist/ui/messages/reorder.d.ts.map +1 -0
- package/dist/ui/messages/save.d.ts +59 -0
- package/dist/ui/messages/save.d.ts.map +1 -0
- package/dist/ui/messages/scope.d.ts +28 -0
- package/dist/ui/messages/scope.d.ts.map +1 -0
- package/dist/ui/messages/status.d.ts +28 -0
- package/dist/ui/messages/status.d.ts.map +1 -0
- package/dist/ui/messages/view.d.ts +160 -0
- package/dist/ui/messages/view.d.ts.map +1 -0
- package/dist/ui/messages/workbench.d.ts +21 -0
- package/dist/ui/messages/workbench.d.ts.map +1 -0
- package/dist/ui/messages/zh-CN.d.ts +12 -0
- package/dist/ui/messages/zh-CN.d.ts.map +1 -0
- package/dist/ui/record/CardSettings.d.ts +34 -0
- package/dist/ui/record/CardSettings.d.ts.map +1 -0
- package/dist/ui/record/CardSummaries.d.ts +15 -0
- package/dist/ui/record/CardSummaries.d.ts.map +1 -0
- package/dist/ui/record/ColumnResizer.d.ts +67 -0
- package/dist/ui/record/ColumnResizer.d.ts.map +1 -0
- package/dist/ui/record/DetailStructure.d.ts +51 -0
- package/dist/ui/record/DetailStructure.d.ts.map +1 -0
- package/dist/ui/record/EmptyResult.d.ts +41 -0
- package/dist/ui/record/EmptyResult.d.ts.map +1 -0
- package/dist/ui/record/Filler.d.ts +47 -0
- package/dist/ui/record/Filler.d.ts.map +1 -0
- package/dist/ui/record/OffscreenSummary.d.ts +46 -0
- package/dist/ui/record/OffscreenSummary.d.ts.map +1 -0
- package/dist/ui/record/RecordCards.d.ts +53 -0
- package/dist/ui/record/RecordCards.d.ts.map +1 -0
- package/dist/ui/record/RecordDetail.d.ts +45 -0
- package/dist/ui/record/RecordDetail.d.ts.map +1 -0
- package/dist/ui/record/RecordPagination.d.ts +32 -0
- package/dist/ui/record/RecordPagination.d.ts.map +1 -0
- package/dist/ui/record/RecordTable.d.ts +118 -0
- package/dist/ui/record/RecordTable.d.ts.map +1 -0
- package/dist/ui/record/RowActions.d.ts +14 -0
- package/dist/ui/record/RowActions.d.ts.map +1 -0
- package/dist/ui/record/RowCheckbox.d.ts +30 -0
- package/dist/ui/record/RowCheckbox.d.ts.map +1 -0
- package/dist/ui/record/SelectionBar.d.ts +26 -0
- package/dist/ui/record/SelectionBar.d.ts.map +1 -0
- package/dist/ui/record/SkeletonCards.d.ts +11 -0
- package/dist/ui/record/SkeletonCards.d.ts.map +1 -0
- package/dist/ui/record/SkeletonRows.d.ts +33 -0
- package/dist/ui/record/SkeletonRows.d.ts.map +1 -0
- package/dist/ui/record/SortableHeader.d.ts +75 -0
- package/dist/ui/record/SortableHeader.d.ts.map +1 -0
- package/dist/ui/record/SummaryRows.d.ts +43 -0
- package/dist/ui/record/SummaryRows.d.ts.map +1 -0
- package/dist/ui/record/cells.d.ts +41 -0
- package/dist/ui/record/cells.d.ts.map +1 -0
- package/dist/ui/record/columns.d.ts +190 -0
- package/dist/ui/record/columns.d.ts.map +1 -0
- package/dist/ui/record/detailPlacement.d.ts +24 -0
- package/dist/ui/record/detailPlacement.d.ts.map +1 -0
- package/dist/ui/record/emptyWayOut.d.ts +59 -0
- package/dist/ui/record/emptyWayOut.d.ts.map +1 -0
- package/dist/ui/record/exportOffer.d.ts +47 -0
- package/dist/ui/record/exportOffer.d.ts.map +1 -0
- package/dist/ui/record/headerRoving.d.ts +57 -0
- package/dist/ui/record/headerRoving.d.ts.map +1 -0
- package/dist/ui/record/issueNames.d.ts +25 -0
- package/dist/ui/record/issueNames.d.ts.map +1 -0
- package/dist/ui/record/offscreenSummaries.d.ts +81 -0
- package/dist/ui/record/offscreenSummaries.d.ts.map +1 -0
- package/dist/ui/record/openRows.d.ts +43 -0
- package/dist/ui/record/openRows.d.ts.map +1 -0
- package/dist/ui/record/overflow.d.ts +39 -0
- package/dist/ui/record/overflow.d.ts.map +1 -0
- package/dist/ui/record/pinCap.d.ts +68 -0
- package/dist/ui/record/pinCap.d.ts.map +1 -0
- package/dist/ui/record/queryAnnouncement.d.ts +47 -0
- package/dist/ui/record/queryAnnouncement.d.ts.map +1 -0
- package/dist/ui/record/roomBelowRows.d.ts +24 -0
- package/dist/ui/record/roomBelowRows.d.ts.map +1 -0
- package/dist/ui/record/sticky.d.ts +227 -0
- package/dist/ui/record/sticky.d.ts.map +1 -0
- package/dist/ui/record/summaryText.d.ts +10 -0
- package/dist/ui/record/summaryText.d.ts.map +1 -0
- package/dist/ui/record/useOffscreenColumns.d.ts +36 -0
- package/dist/ui/record/useOffscreenColumns.d.ts.map +1 -0
- package/dist/ui/record/useSummaries.d.ts +31 -0
- package/dist/ui/record/useSummaries.d.ts.map +1 -0
- package/dist/ui/sort/SortSettings.d.ts +47 -0
- package/dist/ui/sort/SortSettings.d.ts.map +1 -0
- package/dist/ui/sort/drag.d.ts +53 -0
- package/dist/ui/sort/drag.d.ts.map +1 -0
- package/dist/ui/theme/brandDocs.d.ts +15 -0
- package/dist/ui/theme/brandDocs.d.ts.map +1 -0
- package/dist/ui/theme/densityDocs.d.ts +9 -0
- package/dist/ui/theme/densityDocs.d.ts.map +1 -0
- package/dist/ui/theme/pairs.d.ts +138 -0
- package/dist/ui/theme/pairs.d.ts.map +1 -0
- package/dist/ui/theme/stateDocs.d.ts +149 -0
- package/dist/ui/theme/stateDocs.d.ts.map +1 -0
- package/dist/ui/theme/tokenDocs.d.ts +25 -0
- package/dist/ui/theme/tokenDocs.d.ts.map +1 -0
- package/dist/ui/theme/tokens.d.ts +1526 -0
- package/dist/ui/theme/tokens.d.ts.map +1 -0
- package/dist/ui/viewNavigation.d.ts +39 -0
- package/dist/ui/viewNavigation.d.ts.map +1 -0
- package/dist/ui/workbench/AnalysisParts.d.ts +57 -0
- package/dist/ui/workbench/AnalysisParts.d.ts.map +1 -0
- package/dist/ui/workbench/ConditionBlock.d.ts +20 -0
- package/dist/ui/workbench/ConditionBlock.d.ts.map +1 -0
- package/dist/ui/workbench/ConflictConfirm.d.ts +21 -0
- package/dist/ui/workbench/ConflictConfirm.d.ts.map +1 -0
- package/dist/ui/workbench/EditorBand.d.ts +73 -0
- package/dist/ui/workbench/EditorBand.d.ts.map +1 -0
- package/dist/ui/workbench/LeaveGuard.d.ts +27 -0
- package/dist/ui/workbench/LeaveGuard.d.ts.map +1 -0
- package/dist/ui/workbench/NewView.d.ts +40 -0
- package/dist/ui/workbench/NewView.d.ts.map +1 -0
- package/dist/ui/workbench/NoViews.d.ts +22 -0
- package/dist/ui/workbench/NoViews.d.ts.map +1 -0
- package/dist/ui/workbench/OpeningSkeleton.d.ts +35 -0
- package/dist/ui/workbench/OpeningSkeleton.d.ts.map +1 -0
- package/dist/ui/workbench/OriginBar.d.ts +20 -0
- package/dist/ui/workbench/OriginBar.d.ts.map +1 -0
- package/dist/ui/workbench/RecordParts.d.ts +135 -0
- package/dist/ui/workbench/RecordParts.d.ts.map +1 -0
- package/dist/ui/workbench/RefreshControl.d.ts +70 -0
- package/dist/ui/workbench/RefreshControl.d.ts.map +1 -0
- package/dist/ui/workbench/ResultBlock.d.ts +88 -0
- package/dist/ui/workbench/ResultBlock.d.ts.map +1 -0
- package/dist/ui/workbench/ResultToolbar.d.ts +109 -0
- package/dist/ui/workbench/ResultToolbar.d.ts.map +1 -0
- package/dist/ui/workbench/SaveActions.d.ts +76 -0
- package/dist/ui/workbench/SaveActions.d.ts.map +1 -0
- package/dist/ui/workbench/SaveAsDialog.d.ts +66 -0
- package/dist/ui/workbench/SaveAsDialog.d.ts.map +1 -0
- package/dist/ui/workbench/SearchBox.d.ts +18 -0
- package/dist/ui/workbench/SearchBox.d.ts.map +1 -0
- package/dist/ui/workbench/Sidebar.d.ts +50 -0
- package/dist/ui/workbench/Sidebar.d.ts.map +1 -0
- package/dist/ui/workbench/StatusLine.d.ts +31 -0
- package/dist/ui/workbench/StatusLine.d.ts.map +1 -0
- package/dist/ui/workbench/TitleBar.d.ts +39 -0
- package/dist/ui/workbench/TitleBar.d.ts.map +1 -0
- package/dist/ui/workbench/Unopenable.d.ts +19 -0
- package/dist/ui/workbench/Unopenable.d.ts.map +1 -0
- package/dist/ui/workbench/ViewEngineProvider.d.ts +93 -0
- package/dist/ui/workbench/ViewEngineProvider.d.ts.map +1 -0
- package/dist/ui/workbench/ViewHeader.d.ts +123 -0
- package/dist/ui/workbench/ViewHeader.d.ts.map +1 -0
- package/dist/ui/workbench/ViewList.d.ts +71 -0
- package/dist/ui/workbench/ViewList.d.ts.map +1 -0
- package/dist/ui/workbench/ViewSwitcher.d.ts +49 -0
- package/dist/ui/workbench/ViewSwitcher.d.ts.map +1 -0
- package/dist/ui/workbench/WorkbenchShell.d.ts +291 -0
- package/dist/ui/workbench/WorkbenchShell.d.ts.map +1 -0
- package/dist/ui/workbench/WriteOutcome.d.ts +51 -0
- package/dist/ui/workbench/WriteOutcome.d.ts.map +1 -0
- package/dist/ui/workbench/address.d.ts +84 -0
- package/dist/ui/workbench/address.d.ts.map +1 -0
- package/dist/ui/workbench/bindings.d.ts +45 -0
- package/dist/ui/workbench/bindings.d.ts.map +1 -0
- package/dist/ui/workbench/configRemedy.d.ts +28 -0
- package/dist/ui/workbench/configRemedy.d.ts.map +1 -0
- package/dist/ui/workbench/describeConfig.d.ts +23 -0
- package/dist/ui/workbench/describeConfig.d.ts.map +1 -0
- package/dist/ui/workbench/panelsToFix.d.ts +43 -0
- package/dist/ui/workbench/panelsToFix.d.ts.map +1 -0
- package/dist/ui/workbench/parts.d.ts +33 -0
- package/dist/ui/workbench/parts.d.ts.map +1 -0
- package/dist/ui/workbench/useEditorFold.d.ts +26 -0
- package/dist/ui/workbench/useEditorFold.d.ts.map +1 -0
- package/dist/ui/workbench/useSidebarFold.d.ts +57 -0
- package/dist/ui/workbench/useSidebarFold.d.ts.map +1 -0
- package/dist/ui/workbench/useWorkbenchFolds.d.ts +44 -0
- package/dist/ui/workbench/useWorkbenchFolds.d.ts.map +1 -0
- package/dist/ui.js +43488 -0
- package/dist/ui.js.map +1 -0
- package/dist/viewRuntimeTypes-yK2rlUjK.js +5482 -0
- package/dist/viewRuntimeTypes-yK2rlUjK.js.map +1 -0
- package/package.json +168 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["QueryModelDescriptor","AnalysisCapability","AnalysisSpec","FieldAnalysisSpec","Issue","OpenCapabilities","issue","describedAnalysis","BuiltField","analysisPlan","spec","fields","undefined","narrowed","entry","analysis","plan","NonNullable","elements","own","described","children","entries","Record","child","one","field","name","buildAnalysis","descriptor","findings","map","what","push","FieldDescriptor","QueryModelDescriptor","FieldDefinition","FieldKindId","FieldOption","Issue","PagingMode","issue","describedField","DescribedField","FieldSpec","OptionSpec","FieldBuild","descriptor","paging","findings","BuiltField","field","described","spec","sensitive","children","found","code","params","Record","severity","buildFields","listed","Readonly","scope","build","Object","entries","flatMap","key","given","label","built","buildField","path","undefined","search","searchField","push","raw","fieldDescriptor","canonical","kind","kindOf","name","labelOf","comparable","sorts","sort","cursor","paged","sortsByDefault","sortable","operators","offered","operatorsOffered","operator","has","summary","functions","aggregate","fn","includes","options","optionsOf","deprecated","message","elements","some","element","map","entry","elementTitle","cell","timePrecision","assign","more","fields","searchFields","mode","searchMode","own","find","relative","slice","length","variants","values","variant","aliases","enum","temporal","semantic","type","types","description","ReadonlySet","Set","filter","add","listedOptions","value","option","known","Map","String","said","get","Array","isArray","keys","Exclude","QueryModelDescriptor","DataViewDefinition","FieldDefinition","Issue","PagingMode","RecordCapability","issue","analysisPlan","buildAnalysis","buildFields","BuiltField","narrowDefinition","constructible","builtinFieldKinds","FieldKindRegistry","DefineViewSpec","defineView","descriptor","spec","options","DefineViewOptions","findings","record","recordOf","fields","undefined","paging","definition","id","title","kind","source","map","entry","field","recordNoun","fieldGroups","plan","analysis","timeField","views","sort","flatMap","given","described","sortable","name","operators","openComparisons","withSnapshotComparisons","kinds","Set","version","open","scope","children","path","own","narrowed","ReadonlySet","index","cut","next","has","elements","PAGING","Readonly","Record","PAGED","CURSOR","offered","mode","includes","push","rowKey","identity","layouts","ViewInstance","MemorySnapshot","MemoryState","LocalStorageSnapshotOptions","storage","getItem","key","setItem","value","events","addEventListener","type","listener","event","storageArea","removeEventListener","KeptStorage","ReturnType","NonNullable","localStorageSnapshot","options","ambientStorage","undefined","ambientEvents","load","parseState","save","state","JSON","stringify","subscribe","onStorage","readable","globalThis","localStorage","Error","target","Partial","saved","parse","Array","isArray","instances","preferences","filter","isHeld","instance","id","ViewAudience","ViewConfig","ViewInstance","ViewInstanceSummary","ViewPreferences","ViewStore","list","definitionId","signal","AbortSignal","Promise","get","id","create","input","Omit","context","WriteContext","save","config","revision","rename","title","delete","getPreferences","setPreferences","preferences","changeAudience","audience","permissions","ViewPermissions","requestId","createPersonal","createShared","reorder","setDefault","editSystem","instance","InstancePermissions","emptyPreferences","order","defaultInstanceId","audienceOf","configBytes","isSystemInstanceId","isSystemScope","MAX_VIEW_CONFIG_BYTES","MAX_VIEW_TITLE_LENGTH","titleProblem","toSummary","ViewStoreError","ViewAudience","ViewConfig","ViewInstance","ViewInstanceSummary","ViewPreferences","emptyPreferences","ViewPermissions","ViewStore","WriteContext","MemoryViewStoreOptions","instances","preferences","Record","permissions","definitionId","snapshot","MemorySnapshot","load","MemoryState","save","state","subscribe","listener","MemoryViewStore","Map","outcomes","preferenceOutcomes","sequence","constructor","options","restored","restore","reload","list","Promise","summaries","values","filter","instance","map","sort","a","b","AUDIENCE_RANK","scope","resolve","get","id","copy","reject","create","input","Omit","context","replayed","requestId","refused","titleRefusal","title","configRefusal","config","has","given","stored","trim","revision","const","set","commit","delete","update","current","rename","changeAudience","audience","boards","sharedBoardsShowing","length","join","readOnlySystem","conflict","expect","persist","getPreferences","setPreferences","held","next","nextRevision","change","changed","kind","panels","Array","isArray","some","panel","shows","push","undefined","undo","Object","fromEntries","error","reasonOf","storage","clear","entries","instanceId","owned","opens","click","Readonly","system","shared","personal","test","String","Number","bytes","name","message","value","T","structuredClone","sameFilterNode","narrowsTo","TEMPORAL_FIELD_KIND_IDS","momentMetrics","DATE_PART_DOMAINS","isSafeContentUrl","compileRecord","analysisProbeLimit","audienceOf","MAX_DASHBOARD_TABS","validatePanelClick","filterFields","METADATA_FIELD_KINDS","DEFAULT_SEARCH_MODE","groupOfType","CHART_COLOR_SLOTS","filterStoredValue","ViewCommandError","isExecutableFilter","lastPageInWindow","shapeChart","MAX_TIMER_DELAY_MS","PEAKS_ONLY_FROM","columnPinned","crossFilterChoices","describePresence","MAX_VIEW_TITLE_LENGTH","seriesMark","DASHBOARD_PRESENTATION_MEMBERS","takesGroup","isViewWriteError","compilePresence","pagedPaging","MAX_VIEW_CONFIG_BYTES","peaksOnlyLabels","DASHBOARD_GRID_COLUMNS","setPanelClick","conditionOf","builtinFieldKinds","comboAxis","FILTER_GROUP_OPERATORS","aliasOf","boardWidth","defaultFilters","isFilterNode","DELETION_STATES","FIELD_CELL_IDS","summaryChoices","MAX_MOVING_WINDOW","panelFilterTree","isEmptyFilter","elementFields","drillConditions","DEFAULT_TEMPORAL","limitBounds","CHART_TYPES","filtersOf","conditions","stringFieldKind","comboMark","isFilterGroupOperator","defaultAnalysisConfig","filterTypeOf","filterCondition","mergeFilters","isDeletionState","focusOn","METADATA_FIELD_KIND_IDS","metricFieldOf","ANALYSIS_AUTO_RUN_MEMBERS","clicksFilter","isNegation","deletionFieldKind","FIELD_TONES","summaryOf","METRIC_HEADLINES","bindingsOf","countLeaves","searchFieldKind","fitChartSlots","BUILTIN_FIELD_KIND_IDS","firstMetric","filterControlValue","recordProjection","compileAnalysis","isSystemScope","switchChartType","MAX_MARKDOWN_LENGTH","FILTER_TYPE_OPERATOR","compileFilter","summaryAlias","compileAnalysisTotals","titleProblem","DEFAULT_MISSING_KEY","MAX_PANEL_LINKS","ONE_DAY_PRESETS","describePresenceParts","VIEW_AUDIENCES","valueLabelsOn","DASHBOARD_WIDTHS","urlPlaceholders","clearFilter","BUILTIN_FIELD_KINDS","toSummary","DEFAULT_PERCENTILE","PANEL_PRESENTATION_MEMBERS","admitFilters","removeConditionAt","drillFilter","SUMMARY_FUNCTIONS","metricMeasures","ANALYSIS_PRESENTATION_MEMBERS","isPresentationMember","durationFrom","referenceFieldKind","CURRENCY_CODE_PATTERN","freeAlias","sameFilterType","filterEditor","isBlankFilter","cursorPaging","wordReferences","DEFAULT_RUNTIME_LIMITS","CHART_FAMILIES","columnHidden","boardValueChoices","isViewCommandError","PRESENCE_OPERATORS","pageWindow","CODE_REVISION","familyOf","DASHBOARD_FILTER_TYPES","pressableGroups","isFilterGroup","elementMatchFieldKind","EPOCH_TIME_UNITS","metricOfSummary","DERIVED_KINDS","isBlankFilterValue","insertAt","enumFieldKind","bucketRange","DEFAULT_STRING_COMPARISON","groupableFields","CHART_FAMILY","filterValueIssues","isFilterLeaf","variantGroups","drillGroups","FIELDLESS_FIELD_KIND_IDS","metricWithCondition","MAX_CHART_LEVELS","isOneDayValue","nodeAt","dateTimeFieldKind","splitBy","SEARCH_MODES","metricFunctionOf","ANALYSIS_DATE_PARTS","isContentPanel","negateAt","dateFieldKind","groupFor","NUMERIC_TYPES","metricFormat","ANALYSIS_DATE_DIFF_UNITS","removeAt","readInstant","wallClockAt","STRING_COMPARISONS","metricMeasure","ANALYSIS_DATE_UNITS","isOwnedPanel","projectRecord","expressionText","withText","withSlot","isApproximate","validateTimeGrouping","arrayFieldKind","expressionFieldsOf","qualify","tabsOf","createFieldKindRegistry","isChartColor","fieldAliasSegment","describedField","isFormula","withStageOrder","systemInstanceId","mergeGlobalFilter","isGroupItem","relativeTree","momentColumns","issue","isSmooth","isFieldlessKind","coversScope","DATE_TIME_PRESETS","withOutOfScope","metricCondition","withFieldKinds","offersStacking","summaryFunctionsOf","addTab","isValidTimeZone","DERIVED_FORMAT_STYLES","readsAsItsField","isViewPanel","sameFilterTree","CHART_PICKER_ORDER","TEMPORAL_TYPES","DURATION_COMPARISONS","groupKeyText","EXPRESSION_OPERATORS","writeValue","optionTabs","temporalOf","moveTab","isDurationFilterValue","pageSummaries","durationMetric","withPercentStack","approximateMetrics","validateFilterFields","isDateTimeFilterValue","cardField","derivedText","textKeyOf","withMovedTo","SYSTEM_INSTANCE_ID_SEPARATOR","validateTabs","booleanFieldKind","datePartsOf","outOfScopeNames","referencedInstance","EDITOR_INPUTS","isAdditiveMetric","epochUnitOf","constructible","compileSummaries","asksForWhole","configBytes","leadMetric","MAX_HEADING_LENGTH","isPresenceOperator","FIRST_PAGE","VIEW_SCOPES","MAX_DASHBOARD_FILTERS","validateBoardClick","validateDataConfigBase","scopePrefix","projectAnalysis","operatorsOf","isStacked","isSingleStringField","validateDashboard","RELATIVE_DATE_UNITS","validateRecord","derivedMetric","text","stageValues","SYSTEM_INSTANCE_ID_PREFIX","renameTab","resolveDateTimeBound","MAX_DERIVED_DECIMALS","elementFilterFields","panelsOf","walkFilter","chartUnfit","aggregationFunctionsOf","narrowDefinition","describeFilter","groupFieldsOf","relativeFields","validateAnalysis","isBlankLeafValue","validateChart","isDateCell","MAX_RELATIVE_DATE_AMOUNT","maxSortFields","OPERATOR_SIGN","say","stacks","DEFAULT_APPROXIMATE_METRICS","removeTab","isSimpleTree","impliedDeletion","MAX_NUMERIC_SCALE","formulaFormat","REFERENCE_STATISTICS","clickOf","resolveDateTimeRange","dateDiffUnitsOf","innermostElement","presentationMembersOf","walkFilterShape","fitCharts","currencyPathOf","describedAnalysis","actions","groupJoinWord","isValueMetric","relativeName","measureColumns","isKnownEditorInput","isPercentStacked","isFieldName","periodOf","FIELD_METRIC_TYPES","analysisScope","panelTab","updateAt","chartPickerGroups","TIME_PRECISIONS","validateViewConfigBase","unknownOrOutside","rowCurrency","readValue","offersPercentStack","numberFormatOf","validateLayout","isNumberRange","projectSummaries","formulaMetric","VIEW_STORE_ERROR_CODES","withSmooth","isSystemInstanceId","boardCondition","ViewWriteError","validateFilter","pageAfterShrink","periodRollover","nearestPageSize","chartMarks","DASHBOARD_FILTER_KINDS","fillUrl","validateDefinition","isReferenceFilterValue","clampPage","metricReferenceText","isViewStoreError","withStagesFrom","RECORD_PRESENTATION_MEMBERS","boardFilterChoices","isOrderedRange","recordValue","isDuration","ViewStoreError","withStacked","parseSystemInstanceId","mapGlobalFilter","emptyFilter","numberFieldKind","DATE_SUMMARY_FUNCTIONS","groupFacts","CARTESIAN_MISSING","filterOperatorOf","STACKED_COLUMNS","setFilterOneDay","VALUE_CANDIDATE_OPERATORS","wiredOptions","rootSearch","moveFilter","nextLevel","retypeFilter","renameFilter","withoutLevelsFrom","bindPanel","valueCandidateNarrowing","editContent","isRootFilterIssue","compactTab","withRootSearch","filterReach","valueCandidatesConfig","removePanel","presentationMembers","movePanelToTab","VIEW_KINDS","filtersOnTab","detailSections","setFilterRequired","readValueCandidates","setTimeGrouping","valueCandidateField","setFilterDefault","autoBindings","valueCandidateLimit","setPresentation","unbindPanels","defaultRecordConfig","addFilter","nextExpansion","removeFixedScope","withLevel","defaultPanelSize","unmarkedErrors","addPanel","searchFieldOf","duplicatePanel","filterIndexes","replacePanelView","renamePanel","setBoardWidth","withHavingRows","ExportCancelledError","grownLayout","ALWAYS_VISIBLE","resultSpan","placePanelIn","reorderPanelIn","arrangePanel","stackedLayout","havingRows","HAVING_OPERATORS","isRecordRuntime","freeSpot","setFilterOptions","narrowValueCandidates","setFilterMultiple","VALUE_CANDIDATE_LIMIT","readingOrder","emptyDashboardConfig","hasResult","compactLayout","overlaps","withLayouts","referToSaved","autoRunMembers","ViewEngine","fitsGrid","isExportCancelledError","placePanel","hasAsked","bottomOf","reorderPanel","rangeSpan","removeFilter","withElements","defaultRuntimeEnvironment","levelLabel","recommendDateUnit","wireableFields","recordCapabilityOf","draftedClick","valueSourceKey","CSV_BOM","serializeCsv","clickDraftOf","withBoard","fieldGroups","boardValueSources","mappedValues","clickDraftGaps","urlFillable","CLICK_GO_KINDS","bucketChange","analysisPlan","spec","narrowed","entry","plan","fields","own","entries","child","one","buildAnalysis","descriptor","findings","field","found","code","params","severity","buildFields","listed","key","given","built","buildField","scope","build","path","searchField","described","raw","fieldDescriptor","kind","kindOf","labelOf","comparable","sorts","sortsByDefault","offered","operatorsOffered","operator","functions","fn","options","optionsOf","children","element","search","name","relative","variants","variant","temporal","types","listedOptions","values","value","option","known","said","defineView","record","recordOf","definition","analysis","sort","operators","openComparisons","withSnapshotComparisons","cut","index","next","open","PAGING","mode","paging","localStorageSnapshot","storage","ambientStorage","events","ambientEvents","parseState","state","onStorage","event","readable","listener","target","saved","isHeld","instance","emptyPreferences","MemoryViewStore","restored","summaries","definitionId","AUDIENCE_RANK","a","b","id","copy","replayed","context","refused","titleRefusal","input","configRefusal","revision","current","config","title","audience","boards","readOnlySystem","conflict","held","preferences","nextRevision","changed","change","panels","shows","panel","undo","error","reasonOf","stored","owned","instanceId","opens","click","bytes","message"],"sources":["../src/runtime/define/analysis.ts","../src/runtime/define/fields.ts","../src/runtime/define/defineView.ts","../src/store/localStorageSnapshot.ts","../src/store/ViewStore.ts","../src/store/MemoryViewStore.ts"],"sourcesContent":["/*\n * Copyright [2021-present] [ahoo wang <ahoowang@qq.com> (https://github.com/Ahoo-Wang)].\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * The analyses of a `defineView` definition: which fields analyse and how\n * the host narrows each is the host's (the plan, `OpenCapabilities`); what\n * each path offers is its source's. Built here over the snapshot — what a\n * source with no descriptor runs on — and read again over a source's own\n * descriptor when it narrows (`reopened`). A narrowing beyond what the\n * snapshot grants is a warning, not an error: another store may grant it.\n */\n\nimport type { QueryModelDescriptor } from '@ahoo-wang/wow-client';\nimport type {\n AnalysisCapability,\n AnalysisSpec,\n FieldAnalysisSpec,\n Issue,\n OpenCapabilities,\n} from '../../model/index.js';\nimport { issue } from '../../filter/index.js';\nimport { describedAnalysis } from '../../capabilities/open.js';\nimport type { BuiltField } from './fields.js';\n\n/** Which fields analyse, and the host's narrowing of each; `undefined` for none. */\nexport function analysisPlan(\n spec: AnalysisSpec | false | undefined,\n fields: readonly BuiltField[],\n): OpenCapabilities['analysis'] {\n if (spec === false) return undefined;\n const narrowed = (entry: BuiltField): FieldAnalysisSpec | null =>\n entry.spec.analysis === false ? null : (entry.spec.analysis ?? {});\n const plan: NonNullable<OpenCapabilities['analysis']> = {\n spec: spec ?? {},\n fields: {},\n elements: {},\n };\n for (const entry of fields) {\n const own = entry.described ? narrowed(entry) : null;\n if (!own) continue;\n if (entry.children) {\n const entries: Record<string, FieldAnalysisSpec> = {};\n for (const child of entry.children) {\n const one = narrowed(child);\n if (one) entries[child.field.name] = one;\n }\n (plan.elements as Record<string, typeof entries>)[entry.field.name] =\n entries;\n } else\n (plan.fields as Record<string, FieldAnalysisSpec>)[entry.field.name] =\n own;\n }\n return plan;\n}\n\n/** The plan's analyses over the snapshot, what it asks beyond said as warnings. */\nexport function buildAnalysis(\n plan: OpenCapabilities['analysis'],\n fields: readonly BuiltField[],\n descriptor: QueryModelDescriptor,\n findings: Issue[],\n): AnalysisCapability | undefined {\n if (!plan) return undefined;\n return describedAnalysis(\n plan,\n fields.map(entry => entry.field),\n descriptor,\n (field, what) =>\n findings.push(\n field === null\n ? issue(\n 'definition.analysis.wider',\n ['analysis'],\n { what },\n 'warning',\n )\n : issue(\n 'definition.field.analysis-wider',\n ['analysis'],\n { field, what },\n 'warning',\n ),\n ),\n );\n}\n","/*\n * Copyright [2021-present] [ahoo wang <ahoowang@qq.com> (https://github.com/Ahoo-Wang)].\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A field as `defineView` builds it (host-integration.md 3): its kind, its\n * values and whether it sorts are the descriptor's; its label, its order,\n * its cell and what it narrows are the host's. The operators are left to\n * the kind unless the host narrows them — the engine cuts them to the\n * descriptor in force whenever a view runs (N5), so a list copied here\n * would only go stale.\n */\n\nimport type {\n FieldDescriptor,\n QueryModelDescriptor,\n} from '@ahoo-wang/wow-client';\nimport type {\n FieldDefinition,\n FieldKindId,\n FieldOption,\n Issue,\n PagingMode,\n} from '../../model/index.js';\nimport { issue } from '../../filter/index.js';\nimport {\n describedField,\n type DescribedField,\n} from '../../capabilities/match.js';\nimport type { FieldSpec, OptionSpec } from './spec.js';\n\n/** What building the fields reads, and where it says what it found. */\nexport interface FieldBuild {\n descriptor: QueryModelDescriptor;\n paging: PagingMode;\n findings: Issue[];\n}\n\n/** One built field and what it is over, for the analyses to read. */\nexport interface BuiltField {\n field: FieldDefinition;\n described: DescribedField | null;\n spec: FieldSpec;\n /** Whether the value is sensitive: masked, so never grouped or measured. */\n sensitive: boolean;\n /** An array's entries, built as its fields are. */\n children?: BuiltField[];\n}\n\nconst found = (\n code: string,\n params: Record<string, string>,\n severity: Issue['severity'] = 'error',\n): Issue => issue(code, ['fields'], params, severity);\n\n/** The fields listed, built in the order listed; one the descriptor lacks is left out. */\nexport function buildFields(\n listed: Readonly<Record<string, FieldSpec | string>>,\n scope: string | undefined,\n build: FieldBuild,\n): BuiltField[] {\n return Object.entries(listed).flatMap(([key, given]) => {\n const spec: FieldSpec =\n typeof given === 'string' ? { label: given } : given;\n const built = buildField(key, spec, scope, build);\n return built ? [built] : [];\n });\n}\n\nfunction buildField(\n key: string,\n spec: FieldSpec,\n scope: string | undefined,\n build: FieldBuild,\n): BuiltField | null {\n const { descriptor, findings } = build;\n const path = scope === undefined ? key : `${scope}.${key}`;\n if (spec.search) return searchField(key, spec, scope, build);\n\n const described = describedField(descriptor, path, scope);\n if (!described) {\n findings.push(found('definition.field.undescribed', { field: path }));\n return null;\n }\n const raw = fieldDescriptor(descriptor, described.canonical ?? path, scope);\n const kind = spec.kind ?? kindOf(raw, described, spec);\n if (kind === null) {\n findings.push(found('definition.field.kind-unknown', { field: path }));\n return null;\n }\n const field: FieldDefinition = {\n name: key,\n label: labelOf(spec, raw, path, findings),\n kind,\n };\n const comparable = described.comparable !== false;\n\n // An entry's field is read inside its record, not what records are\n // ordered by: offered as a sort only where the host asks.\n const sorts =\n comparable &&\n (build.paging === 'cursor' ? described.sort.cursor : described.sort.paged);\n const sortsByDefault = sorts && scope === undefined;\n if (spec.sortable === true && !sorts)\n findings.push(\n found('definition.field.sort-wider', { field: path }, 'warning'),\n );\n if (sorts && (spec.sortable ?? sortsByDefault)) field.sortable = true;\n\n if (spec.operators) {\n const offered = operatorsOffered(descriptor, described, path);\n for (const operator of spec.operators)\n if (!offered.has(operator))\n findings.push(\n found(\n 'definition.field.operator-wider',\n { field: path, operator },\n 'warning',\n ),\n );\n field.operators = spec.operators;\n } else if (!comparable) field.operators = [];\n\n if (spec.summary) {\n const functions: readonly string[] = described.aggregate?.functions ?? [];\n for (const fn of spec.summary)\n if (fn !== 'COUNT' && !functions.includes(fn))\n findings.push(\n found(\n 'definition.field.summary-wider',\n { field: path, fn },\n 'warning',\n ),\n );\n field.summary = spec.summary;\n }\n\n const options = optionsOf(spec, described, path, findings);\n if (options) field.options = options;\n\n if (described.deprecated) {\n if (!spec.deprecated)\n findings.push(\n found(\n 'definition.field.deprecated',\n { field: path, message: described.deprecated.message ?? '' },\n 'warning',\n ),\n );\n field.deprecated = spec.deprecated ?? described.deprecated;\n }\n\n let children: BuiltField[] | undefined;\n if (spec.elements) {\n if (!descriptor.elements.some(element => element.path === path))\n findings.push(found('definition.field.not-elements', { field: path }));\n children = buildFields(spec.elements, path, build);\n field.elements = children.map(entry => entry.field);\n }\n if (spec.elementTitle !== undefined) field.elementTitle = spec.elementTitle;\n if (spec.cell !== undefined) field.cell = spec.cell;\n if (spec.timePrecision !== undefined)\n field.timePrecision = spec.timePrecision;\n Object.assign(field, spec.more);\n return {\n field,\n described,\n spec,\n sensitive: described.sensitive === true,\n ...(children ? { children } : {}),\n };\n}\n\n/** A search box: its fields must be paths the descriptor has. */\nfunction searchField(\n key: string,\n spec: FieldSpec,\n scope: string | undefined,\n build: FieldBuild,\n): BuiltField {\n const search = spec.search ?? { fields: [] };\n // An entry's search names its fields within the entry (N4).\n for (const name of search.fields) {\n const path = scope === undefined ? name : `${scope}.${name}`;\n if (!describedField(build.descriptor, path, scope))\n build.findings.push(\n found('definition.field.undescribed', { field: path }),\n );\n }\n const field: FieldDefinition = {\n name: key,\n label: spec.label ?? key,\n kind: 'search',\n searchFields: search.fields,\n };\n if (search.mode) field.searchMode = search.mode;\n return { field, described: null, spec, sensitive: false };\n}\n\n/** The descriptor's own entry for a path, for what `describedField` leaves out. */\nfunction fieldDescriptor(\n descriptor: QueryModelDescriptor,\n path: string,\n scope: string | undefined,\n): FieldDescriptor | undefined {\n const own = descriptor.fields.find(\n entry => entry.path === path && entry.scope === scope,\n );\n if (own || scope === undefined) return own;\n // A variant's fields are listed relative to the element, by path or alias,\n // as `describedField` reads them.\n const relative = path.slice(scope.length + 1);\n const variants = descriptor.variants;\n if (variants?.element !== scope) return undefined;\n return variants.values\n .flatMap(variant => variant.fields)\n .find(\n entry =>\n entry.path === relative || (entry.aliases ?? []).includes(relative),\n );\n}\n\n/** The kind the descriptor says a path is; `null` where it says none. */\nfunction kindOf(\n raw: FieldDescriptor | undefined,\n described: DescribedField,\n spec: FieldSpec,\n): FieldKindId | null {\n if (spec.elements) return 'elementMatch';\n if (described.enum || spec.options) return 'enum';\n const temporal = described.semantic?.type;\n if (temporal === 'TEMPORAL_DATE') return 'date';\n if (temporal === 'TEMPORAL_EPOCH' || temporal === 'TEMPORAL_FORMATTED')\n return 'datetime';\n const types: readonly string[] = raw?.types ?? [];\n if (types.length !== 1) return null;\n switch (types[0]) {\n case 'BOOLEAN':\n return 'boolean';\n case 'INTEGER':\n case 'DECIMAL':\n return 'number';\n case 'STRING':\n return 'string';\n default:\n return null;\n }\n}\n\n/**\n * The host's word, else the domain's description, else the path — the two\n * fallbacks said, since a reader would see a program's word.\n */\nfunction labelOf(\n spec: FieldSpec,\n raw: FieldDescriptor | undefined,\n path: string,\n findings: Issue[],\n): string {\n if (spec.label !== undefined) return spec.label;\n findings.push(found('definition.field.unlabelled', { field: path }, 'note'));\n return raw?.description ?? path;\n}\n\n/**\n * The comparisons a path admits: its own operators, and a match over its\n * entries where it is an element the model filters by (capabilities.md,\n * `ELEMENT_MATCH` comes from `elements[]`).\n */\nfunction operatorsOffered(\n descriptor: QueryModelDescriptor,\n described: DescribedField,\n path: string,\n): ReadonlySet<string> {\n const offered = new Set(described.operators);\n if (descriptor.elements.some(entry => entry.path === path && entry.filter))\n offered.add('ELEMENT_MATCH');\n return offered;\n}\n\n/**\n * A category's values: the host's listed first, in its order and words,\n * then the rest of the descriptor's under their descriptions; one the host\n * hides left out. Where the descriptor lists none the host's list is the\n * whole of it.\n */\nfunction optionsOf(\n spec: FieldSpec,\n described: DescribedField,\n path: string,\n findings: Issue[],\n): FieldOption[] | undefined {\n const listed = listedOptions(spec.options);\n const values = described.enum;\n if (!values)\n return spec.options\n ? listed.flatMap(([value, given]) =>\n given === false ? [] : [option(value, given)],\n )\n : undefined;\n const known = new Map(values.map(entry => [String(entry.value), entry]));\n const said = new Set<string>();\n const options: FieldOption[] = [];\n for (const [value, given] of listed) {\n const key = String(value);\n const entry = known.get(key);\n if (!entry) {\n findings.push(\n found('definition.option.undescribed', { field: path, value: key }),\n );\n continue;\n }\n said.add(key);\n if (given !== false) options.push(option(entry.value, given));\n }\n for (const entry of values)\n if (!said.has(String(entry.value)))\n options.push({\n value: entry.value as FieldOption['value'],\n label: entry.description ?? String(entry.value),\n });\n return options;\n}\n\n/**\n * The host's values in the order written: a list as it is, a record in its\n * own order — which JavaScript puts integer-like keys first in, so a\n * category of numbers is written as a list.\n */\nfunction listedOptions(\n given: FieldSpec['options'],\n): (readonly [unknown, OptionSpec])[] {\n if (!given) return [];\n if (Array.isArray(given)) return given as (readonly [unknown, OptionSpec])[];\n // Own keys only: a value named like a prototype member is a value.\n return Object.keys(given).map(key => [\n key,\n (given as Readonly<Record<string, OptionSpec>>)[key],\n ]);\n}\n\nfunction option(\n value: unknown,\n given: Exclude<OptionSpec, false>,\n): FieldOption {\n return typeof given === 'string'\n ? { value: value as FieldOption['value'], label: given }\n : { value: value as FieldOption['value'], ...given };\n}\n","/*\n * Copyright [2021-present] [ahoo wang <ahoowang@qq.com> (https://github.com/Ahoo-Wang)].\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { QueryModelDescriptor } from '@ahoo-wang/wow-client';\nimport type {\n DataViewDefinition,\n FieldDefinition,\n Issue,\n PagingMode,\n RecordCapability,\n} from '../../model/index.js';\nimport { issue } from '../../filter/index.js';\nimport { analysisPlan, buildAnalysis } from './analysis.js';\nimport { buildFields, type BuiltField } from './fields.js';\nimport { narrowDefinition } from '../../capabilities/index.js';\nimport { constructible } from '../../capabilities/analysis.js';\nimport {\n builtinFieldKinds,\n type FieldKindRegistry,\n} from '../../filter/index.js';\nimport type { DefineViewSpec } from './spec.js';\n\n/**\n * A data definition built from its source's descriptor (host-integration.md\n * 3, D67): the descriptor gives the facts — which paths there are, what\n * each is, what it sorts and feeds — as an upper bound, and `spec` picks,\n * names and narrows within it. A field not listed does not appear. A path\n * or a value the descriptor lacks is an error admission reports\n * (`DataViewDefinition.described`), never a throw: a definition wrong in\n * one place still loads, and says where. A capability asked beyond the\n * snapshot is a warning: what a path sorts and aggregates by is the\n * store's, and another store may grant it.\n *\n * Facts — paths, kinds, values, sensitivity, the entries of an array —\n * are the snapshot's. Capabilities are not baked in: where the host\n * narrows nothing the definition takes whatever its source grants, and\n * where it narrows, its subset of that (`DefinitionDescribed.open`,\n * filled by the narrowing from the source's descriptor). A source with\n * no descriptor runs on the snapshot's.\n *\n * `descriptor` is the snapshot committed beside the definition (Q2): the\n * definition is built at once, when the module loads, and a test builds\n * the same one. The descriptor the source answers at run time narrows it\n * again, as any definition is (N5).\n *\n * The result is an ordinary definition: nothing past this function knows\n * how it was written, and one written in full by hand is still one.\n */\nexport function defineView(\n descriptor: QueryModelDescriptor,\n spec: DefineViewSpec,\n options: DefineViewOptions = {},\n): DataViewDefinition {\n const findings: Issue[] = [];\n const record = recordOf(spec, descriptor, findings);\n const fields = buildFields(spec.fields, undefined, {\n descriptor,\n paging: record?.paging ?? 'paged',\n findings,\n });\n const definition: DataViewDefinition = {\n id: spec.id,\n title: spec.title,\n kind: 'data',\n source: spec.source,\n fields: fields.map(entry => entry.field),\n };\n if (spec.recordNoun !== undefined) definition.recordNoun = spec.recordNoun;\n if (spec.fieldGroups) definition.fieldGroups = spec.fieldGroups;\n if (record) definition.record = record;\n const plan = analysisPlan(spec.analysis, fields);\n const analysis = buildAnalysis(plan, fields, descriptor, findings);\n // A snapshot with no metric at all offers no analyses; a source that\n // grants some fills them in (`reopened`) rather than the definition\n // being refused for one store's word.\n if (analysis && constructible(analysis)) definition.analysis = analysis;\n if (spec.timeField !== undefined) definition.timeField = spec.timeField;\n if (spec.views) definition.views = spec.views;\n // What compares, sorts and aggregates is the store's: left to the source\n // where the host did not narrow it, filled from its descriptor when it\n // narrows (`reopened`), the snapshot's written here for a source that\n // has none.\n const sort = fields.flatMap(({ field, spec: given, described }) =>\n described && given.sortable !== false ? [field.name] : [],\n );\n const operators = openComparisons(fields);\n definition.fields = withSnapshotComparisons(\n definition.fields,\n narrowDefinition(definition, descriptor, options.kinds ?? builtinFieldKinds)\n .definition.fields,\n new Set(operators),\n );\n definition.described = {\n version: descriptor.version,\n findings,\n open: { sort, operators, ...(plan ? { analysis: plan } : {}) },\n };\n return definition;\n}\n\n/**\n * The fields whose comparisons the host left open, by path: every field\n * but one whose operators the host wrote, one that compares nothing (a\n * confidential value), and a search box.\n */\nfunction openComparisons(\n fields: readonly BuiltField[],\n scope?: string,\n): string[] {\n return fields.flatMap(({ field, spec, children }) => {\n const path = scope === undefined ? field.name : `${scope}.${field.name}`;\n // A search box is the host's to ask for, as written operators are: on\n // a source with no descriptor it is offered as declared, and a source\n // that says whether it searches narrows it.\n const own =\n spec.operators === undefined &&\n field.operators === undefined &&\n field.kind !== 'search'\n ? [path]\n : [];\n return [...own, ...openComparisons(children ?? [], path)];\n });\n}\n\n/**\n * The fields with the snapshot's comparisons written on each one left\n * open: the operators the narrowing against it keeps on each path, so a\n * source with no descriptor offers what the snapshot's store does, and no\n * more.\n */\nfunction withSnapshotComparisons(\n fields: readonly FieldDefinition[],\n narrowed: readonly FieldDefinition[],\n open: ReadonlySet<string>,\n scope?: string,\n): FieldDefinition[] {\n return fields.map((field, index) => {\n const path = scope === undefined ? field.name : `${scope}.${field.name}`;\n const cut = narrowed[index];\n let next = field;\n if (open.has(path) && cut?.operators !== undefined)\n next = { ...next, operators: cut.operators };\n if (field.elements)\n next = {\n ...next,\n elements: withSnapshotComparisons(\n field.elements,\n cut?.elements ?? [],\n open,\n path,\n ),\n };\n return next;\n });\n}\n\n/**\n * What `defineView` needs beyond the snapshot and the host's choices: the\n * field kinds the host registers (`ViewEngineOptions.kinds`) — the snapshot's\n * comparisons are written on a field of a host's own kind only when its\n * kind is known here, since it is built before any engine is. Left out,\n * the built-in kinds.\n */\nexport interface DefineViewOptions {\n kinds?: FieldKindRegistry;\n}\n\n/** The descriptor's paging modes, as a definition names them. */\nconst PAGING: Readonly<Record<string, PagingMode>> = {\n PAGED: 'paged',\n CURSOR: 'cursor',\n};\n\n/**\n * Records: the host's choices over the descriptor's identity and paging —\n * paged where the model pages, else by cursor — shown as a table unless the\n * host says otherwise. A paging the model does not offer is asked beyond it.\n */\nfunction recordOf(\n spec: DefineViewSpec,\n descriptor: QueryModelDescriptor,\n findings: Issue[],\n): RecordCapability | undefined {\n if (spec.record === false) return undefined;\n const given = spec.record ?? {};\n const offered = descriptor.record.paging.flatMap(mode =>\n PAGING[mode] ? [PAGING[mode]] : [],\n );\n const paging =\n given.paging ?? (offered.includes('paged') ? 'paged' : 'cursor');\n if (!offered.includes(paging))\n findings.push(\n issue(\n 'definition.record.paging-wider',\n ['record', 'paging'],\n { paging },\n 'warning',\n ),\n );\n return {\n ...given,\n rowKey: given.rowKey ?? descriptor.record.identity,\n paging,\n layouts: given.layouts ?? ['table'],\n };\n}\n","/*\n * Copyright [2021-present] [ahoo wang <ahoowang@qq.com> (https://github.com/Ahoo-Wang)].\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ViewInstance } from '../model/index.js';\nimport type { MemorySnapshot, MemoryState } from './MemoryViewStore.js';\n\n/**\n * Where a `localStorageSnapshot` reads and writes. Both are structural, so\n * this layer names no DOM type, and a test hands in a storage of its own.\n */\nexport interface LocalStorageSnapshotOptions {\n /**\n * The storage, asked for at each read and write rather than once, so a\n * browser that refuses it (private mode, blocked site data) is a refused\n * read or write rather than a failure to make the store. Defaults to\n * `globalThis.localStorage`.\n */\n storage?: () => {\n getItem(key: string): string | null;\n setItem(key: string, value: string): void;\n };\n /**\n * Where another tab's change is announced as a `storage` event. Defaults to\n * `globalThis` — the window — when it has `addEventListener`; `null` listens\n * nowhere, and a write still re-reads what is stored first.\n */\n events?: {\n addEventListener(\n type: 'storage',\n listener: (event: { key: string | null; storageArea?: unknown }) => void,\n ): void;\n removeEventListener(\n type: 'storage',\n listener: (event: { key: string | null; storageArea?: unknown }) => void,\n ): void;\n } | null;\n}\n\ntype KeptStorage = ReturnType<\n NonNullable<LocalStorageSnapshotOptions['storage']>\n>;\n\n/**\n * A `MemoryViewStore` snapshot kept in `localStorage` under `key`: the whole\n * store as one JSON document, `{ instances, preferences }`. For development\n * and single-user hosts until a real backend holds the views (phase 6); it\n * is one browser's, not a second store.\n *\n * Two things a browser does to such a document are the store's to answer,\n * and this is the design (decided 2026-09-28):\n *\n * - **A write storage refuses is a failed write.** `save` throws what\n * `setItem` threw (a full quota, blocked storage), and the store undoes the\n * write and rejects it as `UNAVAILABLE` — which the engine reports to the\n * environment's `onError` as a `store` failure and the UI shows as a save\n * whose outcome needs a retry, the error marked `storage` so the line\n * says the browser's storage is full or turned off rather than that the\n * result never came back. It never pretends a view was kept.\n * - **Tabs do not overwrite each other.** The stamps are the revisions the\n * stored state already carries, one per instance and one per definition's\n * preferences. The store re-reads this document before every write and\n * checks the write's revision against it, so a write merges instance by\n * instance into what another tab stored, and one based on a revision that\n * tab has moved past is a `CONFLICT`, the same flow a stale write in one\n * tab already takes. A `storage` event for `key` reloads the store, so\n * what another tab saved is listed without waiting for a write.\n *\n * A missing, unreadable or malformed document reads as nothing stored — the\n * store starts empty rather than the page breaking — and the next write\n * replaces it. The format is `{ instances, preferences }`, the one the\n * compensation console wrote under `wow-compensation-dashboard:views` before\n * it moved to the view store server.\n */\nexport function localStorageSnapshot(\n key: string,\n options: LocalStorageSnapshotOptions = {},\n): MemorySnapshot {\n const storage = options.storage ?? ambientStorage;\n const events =\n options.events === undefined ? ambientEvents() : options.events;\n return {\n load() {\n try {\n return parseState(storage().getItem(key));\n } catch {\n return undefined;\n }\n },\n save(state) {\n storage().setItem(key, JSON.stringify(state));\n },\n subscribe(listener) {\n if (!events) return () => {};\n const onStorage = (event: {\n key: string | null;\n storageArea?: unknown;\n }) => {\n // `null` is a `clear()`; another area (sessionStorage) is not ours.\n if (event.key !== null && event.key !== key) return;\n if (event.storageArea && event.storageArea !== readable(storage))\n return;\n listener();\n };\n events.addEventListener('storage', onStorage);\n return () => events.removeEventListener('storage', onStorage);\n },\n };\n}\n\nfunction ambientStorage(): KeptStorage {\n const storage = (globalThis as { localStorage?: KeptStorage }).localStorage;\n if (!storage) throw new Error('localStorage is not available');\n return storage;\n}\n\nfunction ambientEvents(): LocalStorageSnapshotOptions['events'] {\n const target = globalThis as Partial<\n NonNullable<LocalStorageSnapshotOptions['events']>\n >;\n return typeof target.addEventListener === 'function'\n ? (target as NonNullable<LocalStorageSnapshotOptions['events']>)\n : null;\n}\n\nfunction readable(storage: () => KeptStorage): KeptStorage | undefined {\n try {\n return storage();\n } catch {\n return undefined;\n }\n}\n\n/**\n * The stored document, or `undefined` when it is not one. Only its outline\n * is checked here — an instance needs an id to be held by it; each config is\n * checked, and migrated, where every view out of a store is read.\n */\nfunction parseState(saved: string | null): MemoryState | undefined {\n if (!saved) return undefined;\n const state = JSON.parse(saved) as Partial<MemoryState> | null;\n if (\n !state ||\n typeof state !== 'object' ||\n !Array.isArray(state.instances) ||\n typeof state.preferences !== 'object' ||\n state.preferences === null ||\n Array.isArray(state.preferences)\n )\n return undefined;\n return {\n instances: state.instances.filter(isHeld),\n preferences: state.preferences,\n };\n}\n\nfunction isHeld(instance: unknown): instance is ViewInstance {\n return (\n typeof instance === 'object' &&\n instance !== null &&\n typeof (instance as { id?: unknown }).id === 'string'\n );\n}\n","/*\n * Copyright [2021-present] [ahoo wang <ahoowang@qq.com> (https://github.com/Ahoo-Wang)].\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ViewAudience,\n ViewConfig,\n ViewInstance,\n ViewInstanceSummary,\n ViewPreferences,\n} from '../model/index.js';\n\n/**\n * The only port a backend must satisfy. Its failure type is `ViewStoreError`\n * from `model`, so both sides of the port speak it.\n *\n * Eight methods, and one a store may leave out (`changeAudience`); two\n * consistency rules: a write carries the revision it expects, and a retry\n * reuses its `requestId` so the server can recognise the same intent.\n *\n * Authorization, visibility filtering and deduplication belong to the server.\n * `permissions` only drives which buttons a UI enables.\n */\nexport interface ViewStore {\n /**\n * The definition's views this user sees, as summaries, **in a fixed\n * order**: the backend's system views first, as it declares them, then\n * the shared views, then the user's personal ones, each audience oldest\n * first (the order they were created in; a view moved to the other\n * audience keeps its place by age there). With no preferences, the first\n * of the list is the view that opens by default (`resolveDefault`), so\n * every store answers the same one.\n */\n list(\n definitionId: string,\n signal?: AbortSignal,\n ): Promise<ViewInstanceSummary[]>;\n get(id: string, signal?: AbortSignal): Promise<ViewInstance>;\n /**\n * Creates a view for the scope `input` names. `scope: 'system'` creates a\n * **stored system view** (D81) — what 「发布为系统视图」 and 另存为 send\n * when the host grants `editSystem` — and answers it with `stored: true`;\n * a store that keeps no system views refuses it (`FORBIDDEN` or\n * `INVALID`). Publishing is a copy: the view it was made from is not\n * touched. The engine never sends `stored` itself; the store sets it.\n */\n create(\n input: Omit<ViewInstance, 'id' | 'revision'>,\n context: WriteContext,\n ): Promise<ViewInstance>;\n save(\n id: string,\n config: ViewConfig,\n revision: string,\n context: WriteContext,\n ): Promise<ViewInstance>;\n /**\n * Stores the title trimmed. A title blank once trimmed, or longer than\n * `MAX_VIEW_TITLE_LENGTH`, is refused as `INVALID` — so is one passed to\n * `create`, and a config of more than `MAX_VIEW_CONFIG_BYTES` passed to\n * `create` or `save`. The engine refuses both before sending; the store\n * keeps them for every other caller.\n */\n rename(\n id: string,\n title: string,\n revision: string,\n context: WriteContext,\n ): Promise<ViewInstance>;\n delete(id: string, revision: string, context: WriteContext): Promise<void>;\n getPreferences(\n definitionId: string,\n signal?: AbortSignal,\n ): Promise<ViewPreferences>;\n setPreferences(\n definitionId: string,\n preferences: ViewPreferences,\n context: WriteContext,\n ): Promise<ViewPreferences>;\n /**\n * Moves a view to the other audience in place (设为共享/设为个人, D18\n * item 10): the id stays, so a board that shows it keeps showing it.\n *\n * Optional: a store without it has no such entry in the manager, and the\n * engine refuses the command before anything is sent\n * (`view.changeAudience.unsupported`). One that has it keeps the rules of\n * every other instance write — the expected `revision` (`CONFLICT`\n * carrying `instance`), a replayed `requestId` answering the first\n * outcome, a system view refused (`FORBIDDEN`) — a stored one too: a\n * system view never moves audience — a missing one\n * `NOT_FOUND` — and two of its own:\n *\n * - **No change is no write.** Asked for the audience the view already\n * has, it answers the view as it is, revision unmoved (after the\n * revision check, so a stale one still conflicts).\n * - **A view a shared board shows stays shared.** Made personal, it would\n * be blank on that board for every other reader, so the store refuses\n * it as `INVALID` with **`boards`, those boards' titles** as stored (a\n * title written as a key stays one): the engine says the refusal in\n * its own words around them (`view.changeAudience.invalid.shared-boards`),\n * so an adapter whose server answers with ids reads the titles. Only the\n * store sees every board.\n * Deleting such a view stays allowed (the panel alone breaks).\n */\n changeAudience?(\n id: string,\n audience: ViewAudience,\n revision: string,\n context: WriteContext,\n ): Promise<ViewInstance>;\n /** Synchronous, because the application fetched it before creating the engine. */\n permissions?(definitionId: string): ViewPermissions;\n}\n\n/**\n * One logical write. A retry after a timeout reuses the same `requestId` and\n * the same payload, which is what lets a server deduplicate it.\n */\nexport interface WriteContext {\n requestId: string;\n signal?: AbortSignal;\n}\n\n/** What the current user may do with one definition's views. */\nexport interface ViewPermissions {\n createPersonal: boolean;\n createShared: boolean;\n reorder: boolean;\n setDefault: boolean;\n /**\n * Whether this user edits the definition's **stored** system views\n * (`stored: true`) and creates new ones (`create({ scope: 'system' })`,\n * 「发布为系统视图」), D81. **Absent is false** — unlike everything else\n * here, where silence allows: a system view reaches every user, so only a\n * host that says so opens it, and `ALLOW_ALL` does not. When true, the\n * `instance(id)` answer below applies to a stored system view (save,\n * rename, delete); a system view never moves audience, and one declared\n * in code or in the backend's configuration stays read-only.\n */\n editSystem?: boolean;\n instance(id: string): InstancePermissions;\n}\n\nexport interface InstancePermissions {\n save: boolean;\n rename: boolean;\n delete: boolean;\n /**\n * Whether the view may be moved to the other audience. Absent reads as\n * allowed — silence is not a refusal, as with the rest — and moving it\n * also asks the create permission of the audience it goes to\n * (`createShared` to share it, `createPersonal` to take it back).\n */\n changeAudience?: boolean;\n}\n\n/** An empty preference record, which is what an untouched definition has. */\nexport function emptyPreferences(): ViewPreferences {\n return { order: [], defaultInstanceId: null, revision: '0' };\n}\n","/*\n * Copyright [2021-present] [ahoo wang <ahoowang@qq.com> (https://github.com/Ahoo-Wang)].\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n audienceOf,\n configBytes,\n isSystemInstanceId,\n isSystemScope,\n MAX_VIEW_CONFIG_BYTES,\n MAX_VIEW_TITLE_LENGTH,\n titleProblem,\n toSummary,\n ViewStoreError,\n type ViewAudience,\n type ViewConfig,\n type ViewInstance,\n type ViewInstanceSummary,\n type ViewPreferences,\n} from '../model/index.js';\nimport {\n emptyPreferences,\n type ViewPermissions,\n type ViewStore,\n type WriteContext,\n} from './ViewStore.js';\n\nexport interface MemoryViewStoreOptions {\n instances?: ViewInstance[];\n preferences?: Record<string, ViewPreferences>;\n permissions?: (definitionId: string) => ViewPermissions;\n /** Lets an example keep its data across reloads; not a second store. */\n snapshot?: MemorySnapshot;\n}\n\n/**\n * Where a `MemoryViewStore` keeps its state between page loads: the whole\n * state, read and written as one document, synchronously.\n *\n * The store reads it when it is made, again before every write, and again\n * whenever `subscribe` says another writer changed it, so every write is\n * checked against what is stored now rather than what this store last saw\n * (see `MemoryViewStore`). `load` answers `undefined` for nothing readable,\n * and the store then keeps what it holds.\n *\n * `save` throws when the state could not be kept — storage full, blocked,\n * refused. The store then undoes the write in memory and rejects it with a\n * `ViewStoreError` (`UNAVAILABLE`), so nobody is told a view was saved that\n * the next page load will not have.\n */\nexport interface MemorySnapshot {\n load(): MemoryState | undefined;\n save(state: MemoryState): void;\n /** Tells the store that another writer changed the state; answers the unsubscribe. */\n subscribe?(listener: () => void): () => void;\n}\n\nexport interface MemoryState {\n instances: ViewInstance[];\n preferences: Record<string, ViewPreferences>;\n}\n\n/**\n * The one implementation this package ships: a synchronous map behind the\n * port, for tests, examples and query-only use.\n *\n * It keeps the two consistency rules honest rather than convenient. A write\n * with a stale revision conflicts, and a replayed `requestId` returns the\n * first outcome instead of writing twice, so code written against it behaves\n * the same against a real backend — as do the port's list order and the\n * server's limits on a title and a config, which it refuses as the server\n * does (`INVALID`).\n *\n * System views come two ways (D81). One seeded with `scope: 'system'` and\n * no `stored` is a configured one, as the backend's configuration serves\n * it: every write to it is refused (`FORBIDDEN`). One created with\n * `scope: 'system'` — 「发布为系统视图」 — or seeded with `stored: true` is\n * a stored one: saved, renamed and deleted like a shared view, never moved\n * to another audience (`FORBIDDEN`). Like the server, the store asks no\n * permission of its own; `editSystem` is the host's to grant and the\n * engine's to ask.\n *\n * With a snapshot, several stores may share one stored state — two tabs over\n * one `localStorage`. The rule between them is the backend's: **re-read, then\n * compare revisions, one instance (or one definition's preferences) at a\n * time.** Before every write the store reloads the stored state, so a write\n * merges into what the other writer left — a board created in one tab\n * survives a reorder in the other, and ids never collide — and a write whose\n * `revision` the other writer has already moved past is refused as\n * `CONFLICT`, carrying what is stored, as any stale write is. Nothing is ever\n * overwritten because this store's copy was old. A write the snapshot could\n * not keep is undone and rejected as `UNAVAILABLE`: it did not land, so a\n * retry under the same `requestId` is safe.\n */\nexport class MemoryViewStore implements ViewStore {\n private readonly instances = new Map<string, ViewInstance>();\n private readonly preferences = new Map<string, ViewPreferences>();\n /** Outcome per logical instance write, so a retry is idempotent. */\n private readonly outcomes = new Map<string, ViewInstance | null>();\n /** The same rule for preferences, whose outcome is no instance. */\n private readonly preferenceOutcomes = new Map<string, ViewPreferences>();\n private readonly snapshot?: MemorySnapshot;\n readonly permissions?: (definitionId: string) => ViewPermissions;\n private sequence = 0;\n\n constructor(options: MemoryViewStoreOptions = {}) {\n // Left undefined when the caller declared none, which the port reads as\n // \"everything is allowed\".\n if (options.permissions) this.permissions = options.permissions;\n this.snapshot = options.snapshot;\n\n const restored = options.snapshot?.load();\n this.restore({\n instances: restored?.instances ?? options.instances ?? [],\n preferences: restored?.preferences ?? options.preferences ?? {},\n });\n options.snapshot?.subscribe?.(() => this.reload());\n }\n\n /**\n * In the port's order: system, shared, personal, each oldest first. The\n * map keeps insertion order — the order views were created or seeded in,\n * which a change of audience does not move — and the sort is stable.\n */\n list(definitionId: string): Promise<ViewInstanceSummary[]> {\n const summaries = [...this.instances.values()]\n .filter(instance => instance.definitionId === definitionId)\n .map(toSummary)\n .sort((a, b) => AUDIENCE_RANK[a.scope] - AUDIENCE_RANK[b.scope]);\n return Promise.resolve(summaries);\n }\n\n get(id: string): Promise<ViewInstance> {\n const instance = this.instances.get(id);\n return instance\n ? Promise.resolve(copy(instance))\n : Promise.reject(new ViewStoreError('NOT_FOUND', `No such view: ${id}`));\n }\n\n create(\n input: Omit<ViewInstance, 'id' | 'revision'>,\n context: WriteContext,\n ): Promise<ViewInstance> {\n const replayed = this.outcomes.get(context.requestId);\n if (replayed) return Promise.resolve(copy(replayed));\n const refused = titleRefusal(input.title) ?? configRefusal(input.config);\n if (refused) return Promise.reject(refused);\n this.reload();\n\n // Seeded instances occupy ids too, so the counter walks past anything\n // already taken rather than overwriting it.\n let id: string;\n do {\n this.sequence += 1;\n id = `${input.definitionId}-${this.sequence}`;\n } while (this.instances.has(id));\n if (isSystemInstanceId(id))\n return Promise.reject(\n new ViewStoreError('INVALID', `Reserved id namespace: ${id}`),\n );\n\n // `stored` is the store's to say, never the caller's: a system view\n // created here is one it keeps, and nothing else is one.\n const given = copy(input);\n delete given.stored;\n const instance: ViewInstance = {\n ...given,\n title: input.title.trim(),\n id,\n revision: '1',\n ...(isSystemScope(input.scope) ? { stored: true as const } : {}),\n };\n this.instances.set(id, instance);\n return this.commit(context, instance, () => this.instances.delete(id));\n }\n\n save(\n id: string,\n config: ViewConfig,\n revision: string,\n context: WriteContext,\n ): Promise<ViewInstance> {\n return this.update(\n id,\n revision,\n context,\n current => ({ ...current, config: copy(config) }),\n configRefusal(config),\n );\n }\n\n rename(\n id: string,\n title: string,\n revision: string,\n context: WriteContext,\n ): Promise<ViewInstance> {\n return this.update(\n id,\n revision,\n context,\n current => ({ ...current, title: title.trim() }),\n titleRefusal(title),\n );\n }\n\n /**\n * The port's in-place audience change: personal and shared swap, the id\n * and everything else stay. Asked for the audience the view already has,\n * it answers the view unchanged — no revision spent, nothing written — and\n * remembers that answer under the `requestId` like any other outcome.\n * A view a shared (or system) board shows is refused as `INVALID` when it\n * would become personal, `boards` naming those boards by title. A system\n * view, stored or not, never moves (`FORBIDDEN`).\n */\n changeAudience(\n id: string,\n audience: ViewAudience,\n revision: string,\n context: WriteContext,\n ): Promise<ViewInstance> {\n return this.update(id, revision, context, current => {\n if (isSystemScope(current.scope))\n return new ViewStoreError('FORBIDDEN', 'System views stay system');\n if (audienceOf(current.scope) === audience) return null;\n if (audience === 'personal') {\n const boards = this.sharedBoardsShowing(id);\n if (boards.length > 0)\n return new ViewStoreError(\n 'INVALID',\n `Shared dashboards show view ${id}: ${boards.join(', ')}`,\n { boards },\n );\n }\n return { ...current, scope: audience };\n });\n }\n\n delete(id: string, revision: string, context: WriteContext): Promise<void> {\n if (this.outcomes.has(context.requestId)) return Promise.resolve();\n this.reload();\n const current = this.instances.get(id);\n if (!current)\n return Promise.reject(\n new ViewStoreError('NOT_FOUND', `No such view: ${id}`),\n );\n // Deleting a configured system view is refused exactly as overwriting\n // one is: it is declared in code or by operations, and no user write\n // reaches it. A stored one is deleted like a shared view (unpublished).\n if (readOnlySystem(current))\n return Promise.reject(\n new ViewStoreError('FORBIDDEN', 'System views are read-only'),\n );\n const conflict = this.expect(current, revision);\n if (conflict) return Promise.reject(conflict);\n\n this.instances.delete(id);\n const refused = this.persist(() => this.instances.set(id, current));\n if (refused) return Promise.reject(refused);\n this.outcomes.set(context.requestId, null);\n return Promise.resolve();\n }\n\n getPreferences(definitionId: string): Promise<ViewPreferences> {\n return Promise.resolve(\n this.preferences.get(definitionId) ?? emptyPreferences(),\n );\n }\n\n setPreferences(\n definitionId: string,\n preferences: ViewPreferences,\n context: WriteContext,\n ): Promise<ViewPreferences> {\n // A replay answers with the outcome the first attempt produced, as every\n // other write does: a retry after a lost answer is the same logical\n // write, and reporting a conflict for it would be a lie.\n const replayed = this.preferenceOutcomes.get(context.requestId);\n if (replayed) return Promise.resolve(replayed);\n this.reload();\n\n const held = this.preferences.get(definitionId);\n const current = held ?? emptyPreferences();\n if (current.revision !== preferences.revision)\n return Promise.reject(\n new ViewStoreError(\n 'CONFLICT',\n `Preferences for ${definitionId} changed`,\n { preferences: current },\n ),\n );\n\n const next: ViewPreferences = {\n ...preferences,\n revision: nextRevision(current.revision),\n };\n this.preferences.set(definitionId, next);\n const refused = this.persist(() =>\n held\n ? this.preferences.set(definitionId, held)\n : this.preferences.delete(definitionId),\n );\n if (refused) return Promise.reject(refused);\n this.preferenceOutcomes.set(context.requestId, next);\n return Promise.resolve(next);\n }\n\n /**\n * One instance write: replay, the refusal of its input (`refused`, as the\n * server validates a command before it reaches the view), re-read, the\n * three refusals every instance write shares, then `change`. It may answer\n * `null` for a write that changes nothing — the view is answered as it is\n * and the revision is not spent — or a `ViewStoreError` for a refusal of\n * its own.\n */\n private update(\n id: string,\n revision: string,\n context: WriteContext,\n change: (current: ViewInstance) => ViewInstance | ViewStoreError | null,\n refused?: ViewStoreError,\n ): Promise<ViewInstance> {\n const replayed = this.outcomes.get(context.requestId);\n if (replayed) return Promise.resolve(copy(replayed));\n if (refused) return Promise.reject(refused);\n this.reload();\n\n const current = this.instances.get(id);\n if (!current)\n return Promise.reject(\n new ViewStoreError('NOT_FOUND', `No such view: ${id}`),\n );\n if (readOnlySystem(current))\n return Promise.reject(\n new ViewStoreError('FORBIDDEN', 'System views are read-only'),\n );\n const conflict = this.expect(current, revision);\n if (conflict) return Promise.reject(conflict);\n\n const changed = change(current);\n if (changed instanceof ViewStoreError) return Promise.reject(changed);\n if (changed === null) {\n this.outcomes.set(context.requestId, current);\n return Promise.resolve(copy(current));\n }\n const next: ViewInstance = {\n ...changed,\n revision: nextRevision(current.revision),\n };\n this.instances.set(id, next);\n return this.commit(context, next, () => this.instances.set(id, current));\n }\n\n /**\n * The titles of the boards everyone sees that show `id` in a panel — the\n * reference the dashboard kernel's `coversScope` guards from the board's\n * side. Read off the stored configs as the untrusted JSON they are: the\n * store may import nothing but the model.\n */\n private sharedBoardsShowing(id: string): string[] {\n const boards: string[] = [];\n for (const instance of this.instances.values()) {\n const { config } = instance;\n if (\n config.kind !== 'dashboard' ||\n audienceOf(instance.scope) !== 'shared'\n )\n continue;\n const panels: unknown = config.panels;\n if (Array.isArray(panels) && panels.some(panel => shows(panel, id)))\n boards.push(instance.title);\n }\n return boards;\n }\n\n private expect(\n current: ViewInstance,\n revision: string,\n ): ViewStoreError | undefined {\n return current.revision === revision\n ? undefined\n : new ViewStoreError(\n 'CONFLICT',\n `View ${current.id} moved to revision ${current.revision}`,\n { instance: current },\n );\n }\n\n private commit(\n context: WriteContext,\n instance: ViewInstance,\n undo: () => void,\n ): Promise<ViewInstance> {\n const refused = this.persist(undo);\n if (refused) return Promise.reject(refused);\n this.outcomes.set(context.requestId, instance);\n return Promise.resolve(copy(instance));\n }\n\n /**\n * Hands the state to the snapshot. When it could not be kept, the change\n * just made is undone — memory goes back to what is stored — and the\n * refusal is answered, so the write rejects rather than being reported as\n * saved. No outcome is remembered for it, so a retry writes again.\n */\n private persist(undo: () => void): ViewStoreError | undefined {\n if (!this.snapshot) return undefined;\n try {\n this.snapshot.save({\n instances: [...this.instances.values()].map(instance => copy(instance)),\n preferences: Object.fromEntries(this.preferences),\n });\n return undefined;\n } catch (error) {\n undo();\n return new ViewStoreError(\n 'UNAVAILABLE',\n `The view store could not keep this write: ${reasonOf(error)}`,\n { storage: true },\n );\n }\n }\n\n /**\n * Takes the stored state as it is now, when there is one to read: before a\n * write, so the write is checked against it, and when another writer says\n * it changed. Nothing readable leaves what the store holds as it is.\n */\n private reload(): void {\n const stored = this.snapshot?.load();\n if (stored) this.restore(stored);\n }\n\n private restore(state: MemoryState): void {\n this.instances.clear();\n this.preferences.clear();\n for (const instance of state.instances)\n this.instances.set(instance.id, copy(instance));\n for (const [definitionId, preferences] of Object.entries(state.preferences))\n this.preferences.set(definitionId, preferences);\n }\n}\n\n/**\n * Whether a stored panel references the saved view `id`, by any of the\n * three members the server reads (`ViewConfigs.PANEL_REFERENCES`, and\n * `DashboardPanel`): the view it shows (`instanceId`, unless the board owns\n * the view, `owned`), the view 「在工作台中打开」 opens (`opens`), and the\n * one a press opens (`click.instanceId`).\n */\nfunction shows(panel: unknown, id: string): boolean {\n if (typeof panel !== 'object' || panel === null) return false;\n const { instanceId, owned, opens, click } = panel as {\n instanceId?: unknown;\n owned?: unknown;\n opens?: unknown;\n click?: unknown;\n };\n if (owned === undefined && instanceId === id) return true;\n if (opens === id) return true;\n return (\n typeof click === 'object' &&\n click !== null &&\n (click as { instanceId?: unknown }).instanceId === id\n );\n}\n\n/** A system view no write reaches: configured, not one this store keeps. */\nfunction readOnlySystem(instance: ViewInstance): boolean {\n return isSystemScope(instance.scope) && instance.stored !== true;\n}\n\n/** System views first, then shared, then personal: the port's list order. */\nconst AUDIENCE_RANK: Readonly<Record<ViewInstance['scope'], number>> = {\n system: 0,\n shared: 1,\n personal: 2,\n};\n\n/**\n * The revision after `current`. Revisions are opaque to the port, and a host\n * may seed any string; one this store did not write as a count (`'ops-1'`)\n * starts the count again at `'1'`, which it can never have been, so a write\n * against it still conflicts. A count goes on counting.\n */\nfunction nextRevision(current: string): string {\n return /^(0|[1-9]\\d{0,14})$/.test(current)\n ? String(Number(current) + 1)\n : '1';\n}\n\n/** A title the server refuses (`ViewConfigs.requireTitle`), in its words. */\nfunction titleRefusal(title: string): ViewStoreError | undefined {\n switch (titleProblem(title)) {\n case 'empty':\n return new ViewStoreError('INVALID', \"A view's title must not be blank.\");\n case 'too-long':\n return new ViewStoreError(\n 'INVALID',\n `A view's title is longer than ${MAX_VIEW_TITLE_LENGTH} characters.`,\n );\n default:\n return undefined;\n }\n}\n\n/** A config larger than the server keeps, in its words. */\nfunction configRefusal(config: ViewConfig): ViewStoreError | undefined {\n const bytes = configBytes(config);\n return bytes > MAX_VIEW_CONFIG_BYTES\n ? new ViewStoreError(\n 'INVALID',\n `A view's config is ${bytes} bytes; the limit is ${MAX_VIEW_CONFIG_BYTES}.`,\n )\n : undefined;\n}\n\n/** What a refusal said — a `DOMException` is an `Error` only in some realms. */\nfunction reasonOf(error: unknown): string {\n if (typeof error === 'object' && error !== null) {\n const { name, message } = error as { name?: unknown; message?: unknown };\n if (typeof message === 'string')\n return typeof name === 'string' ? `${name}: ${message}` : message;\n }\n return String(error);\n}\n\n/**\n * A structural copy, so nothing a caller holds is the object the store keeps.\n * A config handed in or read back is a plain JSON tree, and a caller editing\n * one it still has a reference to must not change what is stored.\n */\nfunction copy<T>(value: T): T {\n return structuredClone(value);\n}\n"],"mappings":";;;;AAmCA,SAAgBS,GACdC,GACAC,GAC8B;CAC9B,IAAID,MAAS,IAAO;CACpB,IAAMG,KAAYC,MAChBA,EAAMJ,KAAKK,aAAa,KAAQ,OAAQD,EAAMJ,KAAKK,YAAY,CAAC,GAC5DC,IAAkD;EACtDN,MAAMA,KAAQ,CAAC;EACfC,QAAQ,CAAC;EACTO,UAAU,CAAC;CACb;CACA,KAAK,IAAMJ,KAASH,GAAQ;EAC1B,IAAMQ,IAAML,EAAMM,YAAYP,EAASC,CAAK,IAAI;EAChD,IAAKK,GACL;OAAIL,EAAMO,UAAU;IAClB,IAAMC,IAA6C,CAAC;IACpD,KAAK,IAAME,KAASV,EAAMO,UAAU;KAClC,IAAMI,IAAMZ,EAASW,CAAK;KAC1B,AAAIC,MAAKH,EAAQE,EAAME,MAAMC,QAAQF;IACvC;IACA,EAAMP,SAA4CJ,EAAMY,MAAMC,QAC5DL;GACJ,OACE,EAAMX,OAA6CG,EAAMY,MAAMC,QAC7DR;EAAAA;CACN;CACA,OAAOH;AACT;AAGA,SAAgBY,GACdZ,GACAL,GACAkB,GACAC,GACgC;CAChC,IAAKd,GACL,OAAOT,GACLS,GACAL,EAAOoB,KAAIjB,MAASA,EAAMY,KAAK,GAC/BG,IACCH,GAAOM,MACNF,EAASG,KACPP,MAAU,OACNpB,EACE,6BACA,CAAC,UAAU,GACX,EAAE0B,QAAK,GACP,SACF,IACA1B,EACE,mCACA,CAAC,UAAU,GACX;EAAEoB;EAAOM;CAAK,GACd,SACF,CACN,CACJ;AACF;;;ACpCA,IAAMwB,KACJC,GACAC,GACAE,IAA8B,YACpBnB,EAAMgB,GAAM,CAAC,QAAQ,GAAGC,GAAQE,CAAQ;AAGpD,SAAgBC,EACdC,GACAE,GACAC,GACc;CACd,OAAOC,OAAOC,QAAQL,CAAM,CAAC,CAACM,SAAS,CAACC,GAAKC,OAAW;EAGtD,IAAME,IAAQC,GAAWJ,GADvB,OAAOC,KAAU,WAAW,EAAEC,OAAOD,EAAM,IAAIA,GACbN,GAAOC,CAAK;EAChD,OAAOO,IAAQ,CAACA,CAAK,IAAI,CAAA;CAC3B,CAAC;AACH;AAEA,SAASC,GACPJ,GACAhB,GACAW,GACAC,GACmB;CACnB,IAAM,EAAElB,eAAYE,gBAAagB,GAC3BS,IAAOV,MAAUW,KAAAA,IAAYN,IAAM,GAAGL,EAAK,GAAIK;CACrD,IAAIhB,EAAKuB,QAAQ,OAAOC,GAAYR,GAAKhB,GAAMW,GAAOC,CAAK;CAE3D,IAAMb,IAAYV,EAAeK,GAAY2B,GAAMV,CAAK;CACxD,IAAI,CAACZ,GAEH,OADAH,EAAS6B,KAAKtB,EAAM,gCAAgC,EAAEL,OAAOuB,EAAK,CAAC,CAAC,GAC7D;CAET,IAAMK,IAAMC,GAAgBjC,GAAYK,EAAU6B,aAAaP,GAAMV,CAAK,GACpEkB,IAAO7B,EAAK6B,QAAQC,GAAOJ,GAAK3B,GAAWC,CAAI;CACrD,IAAI6B,MAAS,MAEX,OADAjC,EAAS6B,KAAKtB,EAAM,iCAAiC,EAAEL,OAAOuB,EAAK,CAAC,CAAC,GAC9D;CAET,IAAMvB,IAAyB;EAC7BiC,MAAMf;EACNE,OAAOc,GAAQhC,GAAM0B,GAAKL,GAAMzB,CAAQ;EACxCiC;CACF,GACMI,IAAalC,EAAUkC,eAAe,IAItCC,IACJD,MACCrB,EAAMjB,WAAW,WAAWI,EAAUoC,KAAKC,SAASrC,EAAUoC,KAAKE,QAChEC,IAAiBJ,KAASvB,MAAUW,KAAAA;CAO1C,IANItB,EAAKuC,aAAa,MAAQ,CAACL,KAC7BtC,EAAS6B,KACPtB,EAAM,+BAA+B,EAAEL,OAAOuB,EAAK,GAAG,SAAS,CACjE,GACEa,MAAUlC,EAAKuC,YAAYD,OAAiBxC,EAAMyC,WAAW,KAE7DvC,EAAKwC,WAAW;EAClB,IAAMC,IAAUC,GAAiBhD,GAAYK,GAAWsB,CAAI;EAC5D,KAAK,IAAMsB,KAAY3C,EAAKwC,WAC1B,AAAKC,EAAQG,IAAID,CAAQ,KACvB/C,EAAS6B,KACPtB,EACE,mCACA;GAAEL,OAAOuB;GAAMsB;EAAS,GACxB,SACF,CACF;EACJ7C,EAAM0C,YAAYxC,EAAKwC;CACzB,OAAO,AAAKP,MAAYnC,EAAM0C,YAAY,CAAA;CAE1C,IAAIxC,EAAK6C,SAAS;EAChB,IAAMC,IAA+B/C,EAAUgD,WAAWD,aAAa,CAAA;EACvE,KAAK,IAAME,KAAMhD,EAAK6C,SACpB,AAAIG,MAAO,WAAW,CAACF,EAAUG,SAASD,CAAE,KAC1CpD,EAAS6B,KACPtB,EACE,kCACA;GAAEL,OAAOuB;GAAM2B;EAAG,GAClB,SACF,CACF;EACJlD,EAAM+C,UAAU7C,EAAK6C;CACvB;CAEA,IAAMK,IAAUC,GAAUnD,GAAMD,GAAWsB,GAAMzB,CAAQ;CAGzD,AAFIsD,MAASpD,EAAMoD,UAAUA,IAEzBnD,EAAUqD,eACPpD,EAAKoD,cACRxD,EAAS6B,KACPtB,EACE,+BACA;EAAEL,OAAOuB;EAAMgC,SAAStD,EAAUqD,WAAWC,WAAW;CAAG,GAC3D,SACF,CACF,GACFvD,EAAMsD,aAAapD,EAAKoD,cAAcrD,EAAUqD;CAGlD,IAAIlD;CAYJ,OAXIF,EAAKsD,aACF5D,EAAW4D,SAASC,MAAKC,MAAWA,EAAQnC,SAASA,CAAI,KAC5DzB,EAAS6B,KAAKtB,EAAM,iCAAiC,EAAEL,OAAOuB,EAAK,CAAC,CAAC,GACvEnB,IAAWM,EAAYR,EAAKsD,UAAUjC,GAAMT,CAAK,GACjDd,EAAMwD,WAAWpD,EAASuD,KAAIC,MAASA,EAAM5D,KAAK,IAEhDE,EAAK2D,iBAAiBrC,KAAAA,MAAWxB,EAAM6D,eAAe3D,EAAK2D,eAC3D3D,EAAK4D,SAAStC,KAAAA,MAAWxB,EAAM8D,OAAO5D,EAAK4D,OAC3C5D,EAAK6D,kBAAkBvC,KAAAA,MACzBxB,EAAM+D,gBAAgB7D,EAAK6D,gBAC7BhD,OAAOiD,OAAOhE,GAAOE,EAAK+D,IAAI,GACvB;EACLjE;EACAC;EACAC;EACAC,WAAWF,EAAUE,cAAc;EACnC,GAAIC,IAAW,EAAEA,YAAS,IAAI,CAAC;CACjC;AACF;AAGA,SAASsB,GACPR,GACAhB,GACAW,GACAC,GACY;CACZ,IAAMW,IAASvB,EAAKuB,UAAU,EAAEyC,QAAQ,CAAA,EAAG;CAE3C,KAAK,IAAMjC,KAAQR,EAAOyC,QAAQ;EAChC,IAAM3C,IAAOV,MAAUW,KAAAA,IAAYS,IAAO,GAAGpB,EAAK,GAAIoB;EACtD,AAAK1C,EAAeuB,EAAMlB,YAAY2B,GAAMV,CAAK,KAC/CC,EAAMhB,SAAS6B,KACbtB,EAAM,gCAAgC,EAAEL,OAAOuB,EAAK,CAAC,CACvD;CACJ;CACA,IAAMvB,IAAyB;EAC7BiC,MAAMf;EACNE,OAAOlB,EAAKkB,SAASF;EACrBa,MAAM;EACNoC,cAAc1C,EAAOyC;CACvB;CAEA,OADIzC,EAAO2C,SAAMpE,EAAMqE,aAAa5C,EAAO2C,OACpC;EAAEpE;EAAOC,WAAW;EAAMC;EAAMC,WAAW;CAAM;AAC1D;AAGA,SAAS0B,GACPjC,GACA2B,GACAV,GAC6B;CAC7B,IAAMyD,IAAM1E,EAAWsE,OAAOK,MAC5BX,MAASA,EAAMrC,SAASA,KAAQqC,EAAM/C,UAAUA,CAClD;CACA,IAAIyD,KAAOzD,MAAUW,KAAAA,GAAW,OAAO8C;CAGvC,IAAME,IAAWjD,EAAKkD,MAAM5D,EAAM6D,SAAS,CAAC,GACtCC,IAAW/E,EAAW+E;CAC5B,IAAIA,GAAUjB,YAAY7C,GAC1B,OAAO8D,EAASC,OACb3D,SAAQ4D,MAAWA,EAAQX,MAAM,CAAC,CAClCK,MACCX,MACEA,EAAMrC,SAASiD,MAAaZ,EAAMkB,WAAW,CAAA,EAAA,CAAI3B,SAASqB,CAAQ,CACtE;AACJ;AAGA,SAASxC,GACPJ,GACA3B,GACAC,GACoB;CACpB,IAAIA,EAAKsD,UAAU,OAAO;CAC1B,IAAIvD,EAAU8E,QAAQ7E,EAAKkD,SAAS,OAAO;CAC3C,IAAM4B,IAAW/E,EAAUgF,UAAUC;CACrC,IAAIF,MAAa,iBAAiB,OAAO;CACzC,IAAIA,MAAa,oBAAoBA,MAAa,sBAChD,OAAO;CACT,IAAMG,IAA2BvD,GAAKuD,SAAS,CAAA;CAC/C,IAAIA,EAAMT,WAAW,GAAG,OAAO;CAC/B,QAAQS,EAAM,IAAd;EACE,KAAK,WACH,OAAO;EACT,KAAK;EACL,KAAK,WACH,OAAO;EACT,KAAK,UACH,OAAO;EACT,SACE,OAAO;CACX;AACF;AAMA,SAASjD,GACPhC,GACA0B,GACAL,GACAzB,GACQ;CAGR,OAFII,EAAKkB,UAAUI,KAAAA,KACnB1B,EAAS6B,KAAKtB,EAAM,+BAA+B,EAAEL,OAAOuB,EAAK,GAAG,MAAM,CAAC,GACpEK,GAAKwD,eAAe7D,KAFUrB,EAAKkB;AAG5C;AAOA,SAASwB,GACPhD,GACAK,GACAsB,GACqB;CACrB,IAAMoB,IAAU,IAAI2C,IAAIrF,EAAUyC,SAAS;CAG3C,OAFI9C,EAAW4D,SAASC,MAAKG,MAASA,EAAMrC,SAASA,KAAQqC,EAAM2B,MAAM,KACvE5C,EAAQ6C,IAAI,eAAe,GACtB7C;AACT;AAQA,SAASU,GACPnD,GACAD,GACAsB,GACAzB,GAC2B;CAC3B,IAAMa,IAAS8E,GAAcvF,EAAKkD,OAAO,GACnCwB,IAAS3E,EAAU8E;CACzB,IAAI,CAACH,GACH,OAAO1E,EAAKkD,UACRzC,EAAOM,SAAS,CAACyE,GAAOvE,OACtBA,MAAU,KAAQ,CAAA,IAAK,CAACwE,EAAOD,GAAOvE,CAAK,CAAC,CAC9C,IACAK,KAAAA;CACN,IAAMoE,IAAQ,IAAIC,IAAIjB,EAAOjB,KAAIC,MAAS,CAACkC,OAAOlC,EAAM8B,KAAK,GAAG9B,CAAK,CAAC,CAAC,GACjEmC,oBAAO,IAAIT,IAAY,GACvBlC,IAAyB,CAAA;CAC/B,KAAK,IAAM,CAACsC,GAAOvE,MAAUR,GAAQ;EACnC,IAAMO,IAAM4E,OAAOJ,CAAK,GAClB9B,IAAQgC,EAAMI,IAAI9E,CAAG;EAC3B,IAAI,CAAC0C,GAAO;GACV9D,EAAS6B,KACPtB,EAAM,iCAAiC;IAAEL,OAAOuB;IAAMmE,OAAOxE;GAAI,CAAC,CACpE;GACA;EACF;EAEA,AADA6E,EAAKP,IAAItE,CAAG,GACRC,MAAU,MAAOiC,EAAQzB,KAAKgE,EAAO/B,EAAM8B,OAAOvE,CAAK,CAAC;CAC9D;CACA,KAAK,IAAMyC,KAASgB,GAClB,AAAKmB,EAAKjD,IAAIgD,OAAOlC,EAAM8B,KAAK,CAAC,KAC/BtC,EAAQzB,KAAK;EACX+D,OAAO9B,EAAM8B;EACbtE,OAAOwC,EAAMwB,eAAeU,OAAOlC,EAAM8B,KAAK;CAChD,CAAC;CACL,OAAOtC;AACT;AAOA,SAASqC,GACPtE,GACoC;CAIpC,OAHKA,IACD8E,MAAMC,QAAQ/E,CAAK,IAAUA,IAE1BJ,OAAOoF,KAAKhF,CAAK,CAAC,CAACwC,KAAIzC,MAAO,CACnCA,GACCC,EAA+CD,EAAI,CACrD,IANkB,CAAA;AAOrB;AAEA,SAASyE,EACPD,GACAvE,GACa;CACb,OAAO,OAAOA,KAAU,WACpB;EAASuE;EAA+BtE,OAAOD;CAAM,IACrD;EAASuE;EAA+B,GAAGvE;CAAM;AACvD;;;AC3SA,SAAgBkG,GACdC,GACAC,GACAC,IAA6B,CAAC,GACV;CACpB,IAAME,IAAoB,CAAA,GACpBC,IAASC,GAASL,GAAMD,GAAYI,CAAQ,GAC5CG,IAASf,EAAYS,EAAKM,QAAQC,KAAAA,GAAW;EACjDR;EACAS,QAAQJ,GAAQI,UAAU;EAC1BL;CACF,CAAC,GACKM,IAAiC;EACrCC,IAAIV,EAAKU;EACTC,OAAOX,EAAKW;EACZC,MAAM;EACNC,QAAQb,EAAKa;EACbP,QAAQA,EAAOQ,KAAIC,MAASA,EAAMC,KAAK;CACzC;CAGA,AAFIhB,EAAKiB,eAAeV,KAAAA,MAAWE,EAAWQ,aAAajB,EAAKiB,aAC5DjB,EAAKkB,gBAAaT,EAAWS,cAAclB,EAAKkB,cAChDd,MAAQK,EAAWL,SAASA;CAChC,IAAMe,IAAO9B,GAAaW,EAAKoB,UAAUd,CAAM,GACzCc,IAAW9B,GAAc6B,GAAMb,GAAQP,GAAYI,CAAQ;CAMjE,AAFIiB,KAAY1B,GAAc0B,CAAQ,MAAGX,EAAWW,WAAWA,IAC3DpB,EAAKqB,cAAcd,KAAAA,MAAWE,EAAWY,YAAYrB,EAAKqB,YAC1DrB,EAAKsB,UAAOb,EAAWa,QAAQtB,EAAKsB;CAKxC,IAAMC,IAAOjB,EAAOkB,SAAS,EAAER,UAAOhB,MAAMyB,GAAOC,mBACjDA,KAAaD,EAAME,aAAa,KAAQ,CAACX,EAAMY,IAAI,IAAI,CAAA,CACzD,GACMC,IAAYC,EAAgBxB,CAAM;CAYxC,OAXAG,EAAWH,SAASyB,EAClBtB,EAAWH,QACXb,GAAiBgB,GAAYV,GAAYE,EAAQ+B,SAASrC,CAAiB,CAAC,CACzEc,WAAWH,QACd,IAAI2B,IAAIJ,CAAS,CACnB,GACApB,EAAWiB,YAAY;EACrBQ,SAASnC,EAAWmC;EACpB/B;EACAgC,MAAM;GAAEZ;GAAMM;GAAW,GAAIV,IAAO,EAAEC,UAAUD,EAAK,IAAI,CAAC;EAAG;CAC/D,GACOV;AACT;AAOA,SAASqB,EACPxB,GACA8B,GACU;CACV,OAAO9B,EAAOkB,SAAS,EAAER,UAAOhB,SAAMqC,kBAAe;EACnD,IAAMC,IAAOF,MAAU7B,KAAAA,IAAYS,EAAMY,OAAO,GAAGQ,EAAK,GAAIpB,EAAMY;EAUlE,OAAO,CAAC,GALN5B,EAAK6B,cAActB,KAAAA,KACnBS,EAAMa,cAActB,KAAAA,KACpBS,EAAMJ,SAAS,WACX,CAAC0B,CAAI,IACL,CAAA,GACU,GAAGR,EAAgBO,KAAY,CAAA,GAAIC,CAAI,CAAC;CAC1D,CAAC;AACH;AAQA,SAASP,EACPzB,GACAkC,GACAL,GACAC,GACmB;CACnB,OAAO9B,EAAOQ,KAAKE,GAAO0B,MAAU;EAClC,IAAMJ,IAAOF,MAAU7B,KAAAA,IAAYS,EAAMY,OAAO,GAAGQ,EAAK,GAAIpB,EAAMY,QAC5De,IAAMH,EAASE,IACjBE,IAAO5B;EAaX,OAZImB,EAAKU,IAAIP,CAAI,KAAKK,GAAKd,cAActB,KAAAA,MACvCqC,IAAO;GAAE,GAAGA;GAAMf,WAAWc,EAAId;EAAU,IACzCb,EAAM8B,aACRF,IAAO;GACL,GAAGA;GACHE,UAAUf,EACRf,EAAM8B,UACNH,GAAKG,YAAY,CAAA,GACjBX,GACAG,CACF;EACF,IACKM;CACT,CAAC;AACH;AAcA,IAAMG,IAA+C;CACnDG,OAAO;CACPC,QAAQ;AACV;AAOA,SAAS9C,GACPL,GACAD,GACAI,GAC8B;CAC9B,IAAIH,EAAKI,WAAW,IAAO;CAC3B,IAAMqB,IAAQzB,EAAKI,UAAU,CAAC,GACxBgD,IAAUrD,EAAWK,OAAOI,OAAOgB,SAAQ6B,MAC/CN,EAAOM,KAAQ,CAACN,EAAOM,EAAK,IAAI,CAAA,CAClC,GACM7C,IACJiB,EAAMjB,WAAW4C,EAAQE,SAAS,OAAO,IAAI,UAAU;CAUzD,OATKF,EAAQE,SAAS9C,CAAM,KAC1BL,EAASoD,KACPnE,EACE,kCACA,CAAC,UAAU,QAAQ,GACnB,EAAEoB,UAAO,GACT,SACF,CACF,GACK;EACL,GAAGiB;EACH+B,QAAQ/B,EAAM+B,UAAUzD,EAAWK,OAAOqD;EAC1CjD;EACAkD,SAASjC,EAAMiC,WAAW,CAAC,OAAO;CACpC;AACF;;;ACpIA,SAAgBoB,GACdb,GACAc,IAAuC,CAAC,GACxB;CAChB,IAAMhB,IAAUgB,EAAQhB,WAAWiB,IAC7BZ,IACJW,EAAQX,WAAWa,KAAAA,IAAYC,GAAc,IAAIH,EAAQX;CAC3D,OAAO;EACLe,OAAO;GACL,IAAI;IACF,OAAOC,GAAWrB,EAAQ,CAAC,CAACC,QAAQC,CAAG,CAAC;GAC1C,QAAQ;IACN;GACF;EACF;EACAoB,KAAKC,GAAO;GACVvB,EAAQ,CAAC,CAACG,QAAQD,GAAKsB,KAAKC,UAAUF,CAAK,CAAC;EAC9C;EACAG,UAAUlB,GAAU;GAClB,IAAI,CAACH,GAAQ,aAAa,CAAC;GAC3B,IAAMsB,KAAalB,MAGb;IAEJ,CAAIA,EAAMP,QAAQ,QAAQO,EAAMP,QAAQA,OACpCO,EAAMC,eAAeD,EAAMC,gBAAgBkB,GAAS5B,CAAO,KAE/DQ,EAAS;GACX;GAEA,OADAH,EAAOC,iBAAiB,WAAWqB,CAAS,SAC/BtB,EAAOM,oBAAoB,WAAWgB,CAAS;EAC9D;CACF;AACF;AAEA,SAASV,KAA8B;CACrC,IAAMjB,IAAW6B,WAA8CC;CAC/D,IAAI,CAAC9B,GAAS,MAAU+B,MAAM,+BAA+B;CAC7D,OAAO/B;AACT;AAEA,SAASmB,KAAuD;CAC9D,IAAMa,IAASH;CAGf,OAAO,OAAOG,EAAO1B,oBAAqB,aACrC0B,IACD;AACN;AAEA,SAASJ,GAAS5B,GAAqD;CACrE,IAAI;EACF,OAAOA,EAAQ;CACjB,QAAQ;EACN;CACF;AACF;AAOA,SAASqB,GAAWa,GAA+C;CACjE,IAAI,CAACA,GAAO;CACZ,IAAMX,IAAQC,KAAKW,MAAMD,CAAK;CAC9B,IACGX,KACD,OAAOA,KAAU,YAChBa,MAAMC,QAAQd,EAAMe,SAAS,KAC9B,OAAOf,EAAMgB,eAAgB,YAC7BhB,EAAMgB,gBAAgB,QACtBH,OAAMC,QAAQd,EAAMgB,WAAW,GAGjC,OAAO;EACLD,WAAWf,EAAMe,UAAUE,OAAOC,EAAM;EACxCF,aAAahB,EAAMgB;CACrB;AACF;AAEA,SAASE,GAAOC,GAA6C;CAC3D,OACE,OAAOA,KAAa,cACpBA,KACA,OAAQA,EAA8BC,MAAO;AAEjD;;;ACLA,SAAgBwC,IAAoC;CAClD,OAAO;EAAEC,OAAO,CAAA;EAAIC,mBAAmB;EAAMrB,UAAU;CAAI;AAC7D;;;ACjEA,IAAasD,KAAb,MAAkD;CAWhDK,YAAYC,IAAkC,CAAC,GAAG;EAIhD,AAd2B,KAAA,4BAAA,IAAIL,IAA0B,GAC5B,KAAA,8BAAA,IAAIA,IAA6B,GAEpC,KAAA,2BAAA,IAAIA,IAAiC,GAE3B,KAAA,qCAAA,IAAIA,IAA6B,GAGpD,KAAA,WAAA,GAKbK,EAAQhB,gBAAa,KAAKA,cAAcgB,EAAQhB,cACpD,KAAKE,WAAWc,EAAQd;EAExB,IAAMe,IAAWD,EAAQd,UAAUE,KAAK;EAKxCY,AAJA,KAAKE,QAAQ;GACXrB,WAAWoB,GAAUpB,aAAamB,EAAQnB,aAAa,CAAA;GACvDC,aAAamB,GAAUnB,eAAekB,EAAQlB,eAAe,CAAC;EAChE,CAAC,GACDkB,EAAQd,UAAUM,kBAAkB,KAAKW,OAAO,CAAC;CACnD;CAOAC,KAAKnB,GAAsD;EACzD,IAAMqB,IAAY,CAAC,GAAG,KAAKzB,UAAU0B,OAAO,CAAC,CAAC,CAC3CC,QAAOC,MAAYA,EAASxB,iBAAiBA,CAAY,CAAC,CAC1DyB,IAAIzC,CAAS,CAAC,CACd0C,MAAMC,GAAGC,MAAMC,EAAcF,EAAEG,SAASD,EAAcD,EAAEE,MAAM;EACjE,OAAOV,QAAQW,QAAQV,CAAS;CAClC;CAEAW,IAAIC,GAAmC;EACrC,IAAMT,IAAW,KAAK5B,UAAUoC,IAAIC,CAAE;EACtC,OAAOT,IACHJ,QAAQW,QAAQG,EAAKV,CAAQ,CAAC,IAC9BJ,QAAQe,OAAO,IAAIlD,EAAe,aAAa,iBAAiBgD,GAAI,CAAC;CAC3E;CAEAG,OACEC,GACAE,GACuB;EACvB,IAAMC,IAAW,KAAK7B,SAASqB,IAAIO,EAAQE,SAAS;EACpD,IAAID,GAAU,OAAOpB,QAAQW,QAAQG,EAAKM,CAAQ,CAAC;EACnD,IAAME,IAAUC,EAAaN,EAAMO,KAAK,KAAKC,EAAcR,EAAMS,MAAM;EACvE,IAAIJ,GAAS,OAAOtB,QAAQe,OAAOO,CAAO;EAC1C,KAAKxB,OAAO;EAIZ,IAAIe;EACJ;GAEEA,AADA,KAAKpB,YAAY,GACjBoB,IAAK,GAAGI,EAAMrC,aAAY,GAAI,KAAKa;SAC5B,KAAKjB,UAAUmD,IAAId,CAAE;EAC9B,IAAItD,EAAmBsD,CAAE,GACvB,OAAOb,QAAQe,OACb,IAAIlD,EAAe,WAAW,0BAA0BgD,GAAI,CAC9D;EAIF,IAAMe,IAAQd,EAAKG,CAAK;EACxB,OAAOW,EAAMC;EACb,IAAMzB,IAAyB;GAC7B,GAAGwB;GACHJ,OAAOP,EAAMO,MAAMM,KAAK;GACxBjB;GACAkB,UAAU;GACV,GAAIvE,EAAcyD,EAAMP,KAAK,IAAI,EAAEmB,QAAQ,GAAc,IAAI,CAAC;EAChE;EAEA,OADA,KAAKrD,UAAUyD,IAAIpB,GAAIT,CAAQ,GACxB,KAAK8B,OAAOf,GAASf,SAAgB,KAAK5B,UAAU2D,OAAOtB,CAAE,CAAC;CACvE;CAEA5B,KACE4B,GACAa,GACAK,GACAZ,GACuB;EACvB,OAAO,KAAKiB,OACVvB,GACAkB,GACAZ,IACAkB,OAAY;GAAE,GAAGA;GAASX,QAAQZ,EAAKY,CAAM;EAAE,IAC/CD,EAAcC,CAAM,CACtB;CACF;CAEAY,OACEzB,GACAW,GACAO,GACAZ,GACuB;EACvB,OAAO,KAAKiB,OACVvB,GACAkB,GACAZ,IACAkB,OAAY;GAAE,GAAGA;GAASb,OAAOA,EAAMM,KAAK;EAAE,IAC9CP,EAAaC,CAAK,CACpB;CACF;CAWAe,eACE1B,GACA2B,GACAT,GACAZ,GACuB;EACvB,OAAO,KAAKiB,OAAOvB,GAAIkB,GAAUZ,IAASkB,MAAW;GACnD,IAAI7E,EAAc6E,EAAQ3B,KAAK,GAC7B,OAAO,IAAI7C,EAAe,aAAa,0BAA0B;GACnE,IAAIR,EAAWgF,EAAQ3B,KAAK,MAAM8B,GAAU,OAAO;GACnD,IAAIA,MAAa,YAAY;IAC3B,IAAMC,IAAS,KAAKC,oBAAoB7B,CAAE;IAC1C,IAAI4B,EAAOE,SAAS,GAClB,OAAO,IAAI9E,EACT,WACA,+BAA+BgD,EAAE,IAAK4B,EAAOG,KAAK,IAAI,KACtD,EAAEH,UAAO,CACX;GACJ;GACA,OAAO;IAAE,GAAGJ;IAAS3B,OAAO8B;GAAS;EACvC,CAAC;CACH;CAEAL,OAAOtB,GAAYkB,GAAkBZ,GAAsC;EACzE,IAAI,KAAK5B,SAASoC,IAAIR,EAAQE,SAAS,GAAG,OAAOrB,QAAQW,QAAQ;EACjE,KAAKb,OAAO;EACZ,IAAMuC,IAAU,KAAK7D,UAAUoC,IAAIC,CAAE;EACrC,IAAI,CAACwB,GACH,OAAOrC,QAAQe,OACb,IAAIlD,EAAe,aAAa,iBAAiBgD,GAAI,CACvD;EAIF,IAAIgC,EAAeR,CAAO,GACxB,OAAOrC,QAAQe,OACb,IAAIlD,EAAe,aAAa,4BAA4B,CAC9D;EACF,IAAMiF,IAAW,KAAKC,OAAOV,GAASN,CAAQ;EAC9C,IAAIe,GAAU,OAAO9C,QAAQe,OAAO+B,CAAQ;EAE5C,KAAKtE,UAAU2D,OAAOtB,CAAE;EACxB,IAAMS,IAAU,KAAK0B,cAAc,KAAKxE,UAAUyD,IAAIpB,GAAIwB,CAAO,CAAC;EAGlE,OAFIf,IAAgBtB,QAAQe,OAAOO,CAAO,KAC1C,KAAK/B,SAAS0C,IAAId,EAAQE,WAAW,IAAI,GAClCrB,QAAQW,QAAQ;CACzB;CAEAsC,eAAerE,GAAgD;EAC7D,OAAOoB,QAAQW,QACb,KAAKlC,YAAYmC,IAAIhC,CAAY,KAAKT,EAAiB,CACzD;CACF;CAEA+E,eACEtE,GACAH,GACA0C,GAC0B;EAI1B,IAAMC,IAAW,KAAK5B,mBAAmBoB,IAAIO,EAAQE,SAAS;EAC9D,IAAID,GAAU,OAAOpB,QAAQW,QAAQS,CAAQ;EAC7C,KAAKtB,OAAO;EAEZ,IAAMqD,IAAO,KAAK1E,YAAYmC,IAAIhC,CAAY,GACxCyD,IAAUc,KAAQhF,EAAiB;EACzC,IAAIkE,EAAQN,aAAatD,EAAYsD,UACnC,OAAO/B,QAAQe,OACb,IAAIlD,EACF,YACA,mBAAmBe,EAAY,WAC/B,EAAEH,aAAa4D,EAAQ,CACzB,CACF;EAEF,IAAMe,IAAwB;GAC5B,GAAG3E;GACHsD,UAAUsB,EAAahB,EAAQN,QAAQ;EACzC;EACA,KAAKtD,YAAYwD,IAAIrD,GAAcwE,CAAI;EACvC,IAAM9B,IAAU,KAAK0B,cACnBG,IACI,KAAK1E,YAAYwD,IAAIrD,GAAcuE,CAAI,IACvC,KAAK1E,YAAY0D,OAAOvD,CAAY,CAC1C;EAGA,OAFI0C,IAAgBtB,QAAQe,OAAOO,CAAO,KAC1C,KAAK9B,mBAAmByC,IAAId,EAAQE,WAAW+B,CAAI,GAC5CpD,QAAQW,QAAQyC,CAAI;CAC7B;CAUA,OACEvC,GACAkB,GACAZ,GACAmC,GACAhC,GACuB;EACvB,IAAMF,IAAW,KAAK7B,SAASqB,IAAIO,EAAQE,SAAS;EACpD,IAAID,GAAU,OAAOpB,QAAQW,QAAQG,EAAKM,CAAQ,CAAC;EACnD,IAAIE,GAAS,OAAOtB,QAAQe,OAAOO,CAAO;EAC1C,KAAKxB,OAAO;EAEZ,IAAMuC,IAAU,KAAK7D,UAAUoC,IAAIC,CAAE;EACrC,IAAI,CAACwB,GACH,OAAOrC,QAAQe,OACb,IAAIlD,EAAe,aAAa,iBAAiBgD,GAAI,CACvD;EACF,IAAIgC,EAAeR,CAAO,GACxB,OAAOrC,QAAQe,OACb,IAAIlD,EAAe,aAAa,4BAA4B,CAC9D;EACF,IAAMiF,IAAW,KAAKC,OAAOV,GAASN,CAAQ;EAC9C,IAAIe,GAAU,OAAO9C,QAAQe,OAAO+B,CAAQ;EAE5C,IAAMS,IAAUD,EAAOjB,CAAO;EAC9B,IAAIkB,aAAmB1F,GAAgB,OAAOmC,QAAQe,OAAOwC,CAAO;EACpE,IAAIA,MAAY,MAEd,OADA,KAAKhE,SAAS0C,IAAId,EAAQE,WAAWgB,CAAO,GACrCrC,QAAQW,QAAQG,EAAKuB,CAAO,CAAC;EAEtC,IAAMe,IAAqB;GACzB,GAAGG;GACHxB,UAAUsB,EAAahB,EAAQN,QAAQ;EACzC;EAEA,OADA,KAAKvD,UAAUyD,IAAIpB,GAAIuC,CAAI,GACpB,KAAKlB,OAAOf,GAASiC,SAAY,KAAK5E,UAAUyD,IAAIpB,GAAIwB,CAAO,CAAC;CACzE;CAQA,oBAA4BxB,GAAsB;EAChD,IAAM4B,IAAmB,CAAA;EACzB,KAAK,IAAMrC,KAAY,KAAK5B,UAAU0B,OAAO,GAAG;GAC9C,IAAM,EAAEwB,cAAWtB;GACnB,IACEsB,EAAO8B,SAAS,eAChBnG,EAAW+C,EAASM,KAAK,MAAM,UAE/B;GACF,IAAM+C,IAAkB/B,EAAO+B;GAC/B,AAAIC,MAAMC,QAAQF,CAAM,KAAKA,EAAOG,MAAKC,MAASC,GAAMD,GAAOhD,CAAE,CAAC,KAChE4B,EAAOsB,KAAK3D,EAASoB,KAAK;EAC9B;EACA,OAAOiB;CACT;CAEA,OACEJ,GACAN,GAC4B;EAC5B,OAAOM,EAAQN,aAAaA,IACxBiC,KAAAA,IACA,IAAInG,EACF,YACA,QAAQwE,EAAQxB,GAAE,qBAAsBwB,EAAQN,YAChD,EAAE3B,UAAUiC,EAAQ,CACtB;CACN;CAEA,OACElB,GACAf,GACA6D,GACuB;EACvB,IAAM3C,IAAU,KAAK0B,QAAQiB,CAAI;EAGjC,OAFI3C,IAAgBtB,QAAQe,OAAOO,CAAO,KAC1C,KAAK/B,SAAS0C,IAAId,EAAQE,WAAWjB,CAAQ,GACtCJ,QAAQW,QAAQG,EAAKV,CAAQ,CAAC;CACvC;CAQA,QAAgB6D,GAA8C;EAC5D,IAAK,KAAKpF,UACV,IAAI;GACF,KAAKA,SAASI,KAAK;IACjBT,WAAW,CAAC,GAAG,KAAKA,UAAU0B,OAAO,CAAC,CAAC,CAACG,KAAID,MAAYU,EAAKV,CAAQ,CAAC;IACtE3B,aAAayF,OAAOC,YAAY,KAAK1F,WAAW;GAClD,CAAC;GACD;EACF,SAAS2F,GAAO;GAEd,OADAH,EAAK,GACE,IAAIpG,EACT,eACA,6CAA6CwG,GAASD,CAAK,KAC3D,EAAEE,SAAS,GAAK,CAClB;EACF;CACF;CAOA,SAAuB;EACrB,IAAMzC,IAAS,KAAKhD,UAAUE,KAAK;EACnC,AAAI8C,KAAQ,KAAKhC,QAAQgC,CAAM;CACjC;CAEA,QAAgB3C,GAA0B;EAExC,AADA,KAAKV,UAAU+F,MAAM,GACrB,KAAK9F,YAAY8F,MAAM;EACvB,KAAK,IAAMnE,KAAYlB,EAAMV,WAC3B,KAAKA,UAAUyD,IAAI7B,EAASS,IAAIC,EAAKV,CAAQ,CAAC;EAChD,KAAK,IAAM,CAACxB,GAAcH,MAAgByF,OAAOM,QAAQtF,EAAMT,WAAW,GACxE,KAAKA,YAAYwD,IAAIrD,GAAcH,CAAW;CAClD;AACF;AASA,SAASqF,GAAMD,GAAgBhD,GAAqB;CAClD,IAAI,OAAOgD,KAAU,aAAYA,GAAgB,OAAO;CACxD,IAAM,EAAEY,eAAYC,UAAOC,UAAOC,aAAUf;CAQ5C,OAFIa,MAAUV,KAAAA,KAAaS,MAAe5D,KACtC8D,MAAU9D,KAEZ,OAAO+D,KAAU,cACjBA,KACCA,EAAmCH,eAAe5D;AAEvD;AAGA,SAASgC,EAAezC,GAAiC;CACvD,OAAO5C,EAAc4C,EAASM,KAAK,KAAKN,EAASyB,WAAW;AAC9D;AAGA,IAAMpB,IAAiE;CACrEqE,QAAQ;CACRC,QAAQ;CACRC,UAAU;AACZ;AAQA,SAAS3B,EAAahB,GAAyB;CAC7C,OAAO,sBAAsB4C,KAAK5C,CAAO,IACrC6C,OAAOC,OAAO9C,CAAO,IAAI,CAAC,IAC1B;AACN;AAGA,SAASd,EAAaC,GAA2C;CAC/D,QAAQ7D,EAAa6D,CAAK,GAA1B;EACE,KAAK,SACH,OAAO,IAAI3D,EAAe,WAAW,mCAAmC;EAC1E,KAAK,YACH,OAAO,IAAIA,EACT,WACA,+CACF;EACF,SACE;CACJ;AACF;AAGA,SAAS4D,EAAcC,GAAgD;CACrE,IAAM0D,IAAQ9H,EAAYoE,CAAM;CAChC,OAAO0D,IAAAA,SACH,IAAIvH,EACF,WACA,sBAAsBuH,EAAK,uBAAwB3H,EAAqB,EAC1E,IACAuG,KAAAA;AACN;AAGA,SAASK,GAASD,GAAwB;CACxC,IAAI,OAAOA,KAAU,YAAYA,GAAgB;EAC/C,IAAM,EAAEiB,SAAMC,eAAYlB;EAC1B,IAAI,OAAOkB,KAAY,UACrB,OAAO,OAAOD,KAAS,WAAW,GAAGA,EAAI,IAAKC,MAAYA;CAC9D;CACA,OAAOJ,OAAOd,CAAK;AACrB;AAOA,SAAStD,EAAQyE,GAAa;CAC5B,OAAOE,gBAAgBF,CAAK;AAC9B"}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { AggregationDatePart, DateDiffUnit, AggregationDateUnit, AggregationExpressionOperator, AggregationFunction, AggregationGroupType, DerivedExpression, HavingExpression } from '@ahoo-wang/wow-client';
|
|
2
|
+
import { DataViewConfigBase } from './config.js';
|
|
3
|
+
import { ChartSpec } from './chart.js';
|
|
4
|
+
import { FilterTree } from './filter.js';
|
|
5
|
+
import { LiteralEnums } from './json.js';
|
|
6
|
+
import { SortDirection } from './record.js';
|
|
7
|
+
/**
|
|
8
|
+
* The Wow aggregation enums as the string literals a config stores. Naming
|
|
9
|
+
* them here keeps the protocol in this layer: everything above reaches for
|
|
10
|
+
* these rather than for `@ahoo-wang/wow-client`.
|
|
11
|
+
*/
|
|
12
|
+
export type AnalysisGroupType = `${AggregationGroupType}`;
|
|
13
|
+
export type AnalysisFunction = `${AggregationFunction}`;
|
|
14
|
+
export type AnalysisDateUnit = `${AggregationDateUnit}`;
|
|
15
|
+
export type AnalysisDatePart = `${AggregationDatePart}`;
|
|
16
|
+
export type AnalysisDateDiffUnit = `${DateDiffUnit}`;
|
|
17
|
+
/**
|
|
18
|
+
* Every unit a time between two moments is measured in (`DATE_DIFF`), in
|
|
19
|
+
* the order a choice among them is offered: the hour first, since 「付款到
|
|
20
|
+
* 发货几小时」 is the question it answers most, then the day, the minute
|
|
21
|
+
* and the second. Each has a fixed length — a day is exactly 24 hours.
|
|
22
|
+
*/
|
|
23
|
+
export declare const ANALYSIS_DATE_DIFF_UNITS: readonly ["HOUR", "DAY", "MINUTE", "SECOND"];
|
|
24
|
+
export type AnalysisExpressionOperator = `${AggregationExpressionOperator}`;
|
|
25
|
+
/**
|
|
26
|
+
* Every date unit Wow buckets by, coarsest first — the order a choice among
|
|
27
|
+
* them is offered in. A stored unit is checked against this list where no
|
|
28
|
+
* definition is at hand to ask (a board's time grouping, D22 F); a test holds
|
|
29
|
+
* it to Wow's enum.
|
|
30
|
+
*/
|
|
31
|
+
export declare const ANALYSIS_DATE_UNITS: readonly ["YEAR", "QUARTER", "MONTH", "WEEK", "DAY", "HOUR", "MINUTE", "SECOND"];
|
|
32
|
+
/**
|
|
33
|
+
* Every calendar part Wow groups by (`DATE_PART`), in the order a choice
|
|
34
|
+
* among them is offered: the weekly and daily cycles first, since 「哪天几点」
|
|
35
|
+
* is the question they answer, then the month's and the year's. A test holds
|
|
36
|
+
* it to Wow's enum.
|
|
37
|
+
*/
|
|
38
|
+
export declare const ANALYSIS_DATE_PARTS: readonly ["DAY_OF_WEEK", "HOUR_OF_DAY", "DAY_OF_MONTH", "MONTH_OF_YEAR"];
|
|
39
|
+
/**
|
|
40
|
+
* The keys a calendar part groups into, first and last: an ISO weekday runs
|
|
41
|
+
* 1 (Monday) to 7 (Sunday), an hour 0 to 23 on the group's wall clock, a day
|
|
42
|
+
* of the month 1 to 31 and a month 1 to 12. Every key between them is one of
|
|
43
|
+
* the part's, so a part's axis is this run whatever the rows held.
|
|
44
|
+
*/
|
|
45
|
+
export declare const DATE_PART_DOMAINS: {
|
|
46
|
+
readonly DAY_OF_WEEK: readonly [1, 7];
|
|
47
|
+
readonly HOUR_OF_DAY: readonly [0, 23];
|
|
48
|
+
readonly DAY_OF_MONTH: readonly [1, 31];
|
|
49
|
+
readonly MONTH_OF_YEAR: readonly [1, 12];
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* The calendar parts a field's capability offers a `DATE_PART` dimension, in
|
|
53
|
+
* the order a choice among them reads (`ANALYSIS_DATE_PARTS`): the declared
|
|
54
|
+
* ones, every one when it declares none (`AggregationFieldCapability.dateParts`),
|
|
55
|
+
* and none when it offers no `DATE_PART` at all.
|
|
56
|
+
*/
|
|
57
|
+
export declare function datePartsOf(capability: DatePartOffer | undefined): AnalysisDatePart[];
|
|
58
|
+
/** What `datePartsOf` reads: a capability, or the editor's option of one. */
|
|
59
|
+
export interface DatePartOffer {
|
|
60
|
+
groups: readonly string[];
|
|
61
|
+
dateParts?: readonly string[];
|
|
62
|
+
}
|
|
63
|
+
/** Every field an expression reads, in the order it reads them. */
|
|
64
|
+
export declare function expressionFieldsOf(expression: AnalysisExpression): string[];
|
|
65
|
+
/**
|
|
66
|
+
* The fields a dimension reads: its one field, or every field of the
|
|
67
|
+
* expression a band of a computed number is cut from (N3).
|
|
68
|
+
*/
|
|
69
|
+
export declare function groupFieldsOf(group: AnalysisGroup): string[];
|
|
70
|
+
/**
|
|
71
|
+
* The units a capability measures a time between two moments in
|
|
72
|
+
* (`AnalysisCapability.dateDiffUnits`): the declared ones in the offered
|
|
73
|
+
* order, every one when it declares none, and none where it offers no
|
|
74
|
+
* computed expressions at all.
|
|
75
|
+
*/
|
|
76
|
+
export declare function dateDiffUnitsOf(capability: {
|
|
77
|
+
expressions?: boolean;
|
|
78
|
+
dateDiffUnits?: readonly string[];
|
|
79
|
+
} | undefined): AnalysisDateDiffUnit[];
|
|
80
|
+
/**
|
|
81
|
+
* What a dimension or a metric is called on screen (D20 显示名), when the
|
|
82
|
+
* analyst gave it a name: the column header, the legend and the reading say
|
|
83
|
+
* this instead of what the field and the summary would compose. It is the
|
|
84
|
+
* view's — Wow never sees it — and the alias stays the query's key.
|
|
85
|
+
*/
|
|
86
|
+
export interface AnalysisNamed {
|
|
87
|
+
label?: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Isomorphic to Wow's `AggregationGroup`: fields are validated against the
|
|
91
|
+
* definition and enums are stored as literals.
|
|
92
|
+
*/
|
|
93
|
+
export type AnalysisGroup = AnalysisNamed & ({
|
|
94
|
+
type: 'TERMS';
|
|
95
|
+
field: string;
|
|
96
|
+
alias: string;
|
|
97
|
+
missingKey?: string;
|
|
98
|
+
} | {
|
|
99
|
+
type: 'HISTOGRAM';
|
|
100
|
+
field: string;
|
|
101
|
+
alias: string;
|
|
102
|
+
interval: number;
|
|
103
|
+
} | {
|
|
104
|
+
/**
|
|
105
|
+
* Bands of a number computed per record (N3), such as the hours
|
|
106
|
+
* from payment to shipment: 「0–2 小时」「2–4 小时」…. It names no
|
|
107
|
+
* field of its own — `field` is absent — and its bands follow the
|
|
108
|
+
* expression's unit.
|
|
109
|
+
*/
|
|
110
|
+
type: 'HISTOGRAM';
|
|
111
|
+
expression: AnalysisExpression;
|
|
112
|
+
alias: string;
|
|
113
|
+
interval: number;
|
|
114
|
+
field?: undefined;
|
|
115
|
+
} | {
|
|
116
|
+
type: 'DATE_HISTOGRAM';
|
|
117
|
+
field: string;
|
|
118
|
+
alias: string;
|
|
119
|
+
unit: AnalysisDateUnit;
|
|
120
|
+
timeZone?: string;
|
|
121
|
+
dense?: boolean;
|
|
122
|
+
} | {
|
|
123
|
+
/**
|
|
124
|
+
* One calendar part of a time field — the weekday, the hour — so
|
|
125
|
+
* records of different weeks or days fall into one group: 「哪天几点」.
|
|
126
|
+
* Its keys are the part's integers (`DATE_PART_DOMAINS`), read in
|
|
127
|
+
* `timeZone`, else the engine's zone, as a date histogram is cut.
|
|
128
|
+
*/
|
|
129
|
+
type: 'DATE_PART';
|
|
130
|
+
field: string;
|
|
131
|
+
alias: string;
|
|
132
|
+
part: AnalysisDatePart;
|
|
133
|
+
timeZone?: string;
|
|
134
|
+
dense?: boolean;
|
|
135
|
+
});
|
|
136
|
+
/** Isomorphic to Wow's `AggregationExpression`. */
|
|
137
|
+
export type AnalysisExpression = {
|
|
138
|
+
type: 'FIELD';
|
|
139
|
+
field: string;
|
|
140
|
+
} | {
|
|
141
|
+
type: 'CONSTANT';
|
|
142
|
+
value: number;
|
|
143
|
+
} | {
|
|
144
|
+
/**
|
|
145
|
+
* The time from one moment to another, `to − from`, in `unit` (N3):
|
|
146
|
+
* 付款到发货几小时. Negative when `to` is earlier; no value where either
|
|
147
|
+
* moment is missing. Both are time fields the analysis may bucket by
|
|
148
|
+
* date (`DATE_HISTOGRAM`), each read in its own encoding.
|
|
149
|
+
*/
|
|
150
|
+
type: 'DATE_DIFF';
|
|
151
|
+
from: string;
|
|
152
|
+
to: string;
|
|
153
|
+
unit: AnalysisDateDiffUnit;
|
|
154
|
+
} | {
|
|
155
|
+
type: 'BINARY';
|
|
156
|
+
operator: AnalysisExpressionOperator;
|
|
157
|
+
left: AnalysisExpression;
|
|
158
|
+
right: AnalysisExpression;
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Isomorphic to Wow's `AggregationMetric`. A metric-level `filter` is what
|
|
162
|
+
* makes a metric-per-stage funnel expressible.
|
|
163
|
+
*/
|
|
164
|
+
export type AnalysisMetric = AnalysisNamed & ({
|
|
165
|
+
type: 'COUNT';
|
|
166
|
+
alias: string;
|
|
167
|
+
filter?: FilterTree;
|
|
168
|
+
} | {
|
|
169
|
+
type: 'NUMERIC';
|
|
170
|
+
alias: string;
|
|
171
|
+
function: AnalysisFunction;
|
|
172
|
+
expression: AnalysisExpression;
|
|
173
|
+
filter?: FilterTree;
|
|
174
|
+
} | {
|
|
175
|
+
type: 'ANY';
|
|
176
|
+
alias: string;
|
|
177
|
+
field: string;
|
|
178
|
+
filter?: FilterTree;
|
|
179
|
+
} | {
|
|
180
|
+
/**
|
|
181
|
+
* The field's value on the group's earliest (`FIRST`, 期初值) or
|
|
182
|
+
* latest (`LAST`, 期末值) record by `orderBy` — the model's event
|
|
183
|
+
* time when left out at the root (the descriptor's
|
|
184
|
+
* `analysis.firstLastOrderBy`); inside an element it must be named.
|
|
185
|
+
* Only records with both a value and an `orderBy` count, and those
|
|
186
|
+
* the metric's `filter` keeps.
|
|
187
|
+
*/
|
|
188
|
+
type: 'FIRST' | 'LAST';
|
|
189
|
+
alias: string;
|
|
190
|
+
field: string;
|
|
191
|
+
orderBy?: string;
|
|
192
|
+
filter?: FilterTree;
|
|
193
|
+
} | {
|
|
194
|
+
type: 'DISTINCT_COUNT';
|
|
195
|
+
alias: string;
|
|
196
|
+
expression: AnalysisExpression;
|
|
197
|
+
filter?: FilterTree;
|
|
198
|
+
} | {
|
|
199
|
+
type: 'PERCENTILE';
|
|
200
|
+
alias: string;
|
|
201
|
+
expression: AnalysisExpression;
|
|
202
|
+
/** Open interval (0, 100), as Wow requires. */
|
|
203
|
+
percentile: number;
|
|
204
|
+
filter?: FilterTree;
|
|
205
|
+
} | {
|
|
206
|
+
type: 'DERIVED';
|
|
207
|
+
alias: string;
|
|
208
|
+
expression: AnalysisDerivedExpression;
|
|
209
|
+
/**
|
|
210
|
+
* How its number reads (D38): the view's, never sent to Wow. Left
|
|
211
|
+
* out, a plain number with two decimals.
|
|
212
|
+
*/
|
|
213
|
+
format?: DerivedFormat;
|
|
214
|
+
});
|
|
215
|
+
/**
|
|
216
|
+
* How a derived metric's number reads (D38), as a base metric's reads off
|
|
217
|
+
* its field: a ratio as a percent — the value is the ratio, 0.259 reads
|
|
218
|
+
* 25.9%, never multiplied by a hundred first — money in a currency, or a
|
|
219
|
+
* number with so many decimals. `decimals` is the fixed count of digits
|
|
220
|
+
* after the point (0 to `MAX_DERIVED_DECIMALS`); left out, 1 for a percent
|
|
221
|
+
* and 2 otherwise. A currency left out is the one its operands are in —
|
|
222
|
+
* GMV ÷ orders is in GMV's — and must be said where they are in none or in
|
|
223
|
+
* two.
|
|
224
|
+
*/
|
|
225
|
+
export type DerivedFormat = {
|
|
226
|
+
style: 'number';
|
|
227
|
+
decimals?: number;
|
|
228
|
+
} | {
|
|
229
|
+
style: 'percent';
|
|
230
|
+
decimals?: number;
|
|
231
|
+
} | {
|
|
232
|
+
style: 'currency';
|
|
233
|
+
currency?: string;
|
|
234
|
+
decimals?: number;
|
|
235
|
+
};
|
|
236
|
+
/** The three ways a derived number reads, in the order a picker offers them. */
|
|
237
|
+
export declare const DERIVED_FORMAT_STYLES: readonly ["number", "percent", "currency"];
|
|
238
|
+
/** The most digits after the point a derived number is written with. */
|
|
239
|
+
export declare const MAX_DERIVED_DECIMALS = 6;
|
|
240
|
+
/**
|
|
241
|
+
* The metric types that measure one field, in the order a field offers them
|
|
242
|
+
* (D20 汇总方式): a function of its values, how many distinct values it
|
|
243
|
+
* holds, a percentile of them, its value on the earliest or the latest
|
|
244
|
+
* record (期初值/期末值), or any one of them. The record count names
|
|
245
|
+
* no field, and a derived metric names other metrics. Declared beside the
|
|
246
|
+
* union so a `satisfies` refuses a type the metric does not have, and the
|
|
247
|
+
* summary a tray card offers is derived from this rather than listed again.
|
|
248
|
+
*/
|
|
249
|
+
export declare const FIELD_METRIC_TYPES: readonly ["NUMERIC", "DISTINCT_COUNT", "PERCENTILE", "FIRST", "LAST", "ANY"];
|
|
250
|
+
export type FieldMetricType = (typeof FIELD_METRIC_TYPES)[number];
|
|
251
|
+
/** A metric whose value is one record's value (`VALUE_METRIC_TYPES`). */
|
|
252
|
+
export type ValueMetric = Extract<AnalysisMetric, {
|
|
253
|
+
type: 'ANY' | 'FIRST' | 'LAST';
|
|
254
|
+
}>;
|
|
255
|
+
/** Whether a metric is one record's value (`VALUE_METRIC_TYPES`). */
|
|
256
|
+
export declare function isValueMetric(metric: AnalysisMetric): metric is ValueMetric;
|
|
257
|
+
/** Wow's having/derived trees only reference aliases and numbers. */
|
|
258
|
+
export type AnalysisHavingExpression = LiteralEnums<HavingExpression>;
|
|
259
|
+
export type AnalysisDerivedExpression = LiteralEnums<DerivedExpression>;
|
|
260
|
+
/** Expansion of an array path; its filter is scoped to the element fields. */
|
|
261
|
+
export interface AnalysisElement {
|
|
262
|
+
path: string;
|
|
263
|
+
filter?: FilterTree;
|
|
264
|
+
}
|
|
265
|
+
export interface AnalysisSort {
|
|
266
|
+
alias: string;
|
|
267
|
+
direction: SortDirection;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* One column of the result table. It has no `pinned`: the analysis table
|
|
271
|
+
* freezes nothing, so a stored pinning was a setting no renderer performed
|
|
272
|
+
* and no control offered — a promise the screen never kept. When the table
|
|
273
|
+
* grows frozen columns it will take the record table's word for it (D19).
|
|
274
|
+
*/
|
|
275
|
+
export interface AnalysisColumn {
|
|
276
|
+
alias: string;
|
|
277
|
+
width?: number;
|
|
278
|
+
}
|
|
279
|
+
export interface AnalysisTableSpec {
|
|
280
|
+
/**
|
|
281
|
+
* The order and widths of the table's columns — an override, not an
|
|
282
|
+
* allow-list. Every group and metric alias is a column; those listed come
|
|
283
|
+
* first in this order, the rest follow, groups before metrics, in the
|
|
284
|
+
* config's order. Empty means the config's order throughout.
|
|
285
|
+
*/
|
|
286
|
+
columns: AnalysisColumn[];
|
|
287
|
+
/**
|
|
288
|
+
* Whether the table draws a totals row. The row is the ungrouped
|
|
289
|
+
* aggregation, never derived from the group rows — which a grouped
|
|
290
|
+
* analysis asks for either way (`compileAnalysisTotals`), so this says
|
|
291
|
+
* only whether it is drawn.
|
|
292
|
+
*/
|
|
293
|
+
totals?: boolean;
|
|
294
|
+
}
|
|
295
|
+
export type AnalysisLayout = 'table' | 'chart';
|
|
296
|
+
/** Table and chart are stored together, like the two record layouts. */
|
|
297
|
+
export interface AnalysisViewConfig extends DataViewConfigBase {
|
|
298
|
+
kind: 'analysis';
|
|
299
|
+
elements?: AnalysisElement[];
|
|
300
|
+
groups: AnalysisGroup[];
|
|
301
|
+
metrics: [AnalysisMetric, ...AnalysisMetric[]];
|
|
302
|
+
having?: AnalysisHavingExpression;
|
|
303
|
+
sort: AnalysisSort[];
|
|
304
|
+
limit: number;
|
|
305
|
+
layout: AnalysisLayout;
|
|
306
|
+
table: AnalysisTableSpec;
|
|
307
|
+
chart: ChartSpec;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* How the result is looked at is not part of the question (D20): the layout
|
|
311
|
+
* and the chart are drawn from the rows that ran, whichever they are, so
|
|
312
|
+
* changing them redraws without asking the source again and counts as no
|
|
313
|
+
* pending edit. They are still saved with the view — a saved chart is the
|
|
314
|
+
* author's — so `dirty` sees them. `table` is not among them: its totals
|
|
315
|
+
* row is a query of its own.
|
|
316
|
+
*/
|
|
317
|
+
export declare const ANALYSIS_PRESENTATION_MEMBERS: readonly ["layout", "chart"];
|
|
318
|
+
/**
|
|
319
|
+
* The members that make up the *question*, which runs again on its own a
|
|
320
|
+
* moment after it changes (「改了就跑」, D20): what is counted, by what, kept
|
|
321
|
+
* by what, in what order and how many. The range (`filter`) is not among
|
|
322
|
+
* them — the conditions wait for Apply, and while they wait nothing else
|
|
323
|
+
* runs either (`runtime/autoApply.ts`). Nor is a presentation member: it
|
|
324
|
+
* never asks the source. `autoRunMembers` in `config.ts` reads this per kind.
|
|
325
|
+
*/
|
|
326
|
+
export declare const ANALYSIS_AUTO_RUN_MEMBERS: readonly ["elements", "groups", "metrics", "having", "sort", "limit", "table"];
|
|
327
|
+
//# sourceMappingURL=analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/model/analysis.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,oBAAoB,EAAE,CAAC;AAC1D,MAAM,MAAM,gBAAgB,GAAG,GAAG,mBAAmB,EAAE,CAAC;AACxD,MAAM,MAAM,gBAAgB,GAAG,GAAG,mBAAmB,EAAE,CAAC;AACxD,MAAM,MAAM,gBAAgB,GAAG,GAAG,mBAAmB,EAAE,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,GAAG,YAAY,EAAE,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,8CAKe,CAAC;AACrD,MAAM,MAAM,0BAA0B,GAAG,GAAG,6BAA6B,EAAE,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,kFASgB,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,0EAKgB,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;CAK0C,CAAC;AAEzE;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,aAAa,GAAG,SAAS,GACpC,gBAAgB,EAAE,CAMpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAc3E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAM5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EACR;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,GACzE,oBAAoB,EAAE,CAMxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GACvC,CACI;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrE;IACE;;;;;OAKG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACD;IACE;;;;;OAKG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CACJ,CAAC;AAEJ,mDAAmD;AACnD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IACE;;;;;OAKG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,oBAAoB,CAAC;CAC5B,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,0BAA0B,CAAC;IACrC,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,kBAAkB,CAAC;CAC3B,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GACxC,CACI;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GACrD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GAClE;IACE;;;;;;;OAOG;IACH,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,kBAAkB,CAAC;IAC/B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,yBAAyB,CAAC;IACtC;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CACJ,CAAC;AAEJ;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,4CAIoB,CAAC;AAEvD,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,8EAOuB,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAclE,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,OAAO,CAC/B,cAAc,EACd;IAAE,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;CAAE,CACnC,CAAC;AAEF,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,IAAI,WAAW,CAE3E;AAED,qEAAqE;AACrE,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AACtE,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAExE,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,CAAC;AAE/C,wEAAwE;AACxE,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,EAAE,CAAC,cAAc,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,8BAGgB,CAAC;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,gFAQoB,CAAC"}
|