@luzmo/analytics-components-kit 1.0.9-beta.7 → 1.0.9-beta.8
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/components/ai-chat/ai-chat-events.d.ts +139 -0
- package/components/ai-chat/ai-chat-request.d.ts +25 -0
- package/components/ai-chat/ai-chat.d.ts +356 -0
- package/components/ai-chat/ai-prompt-types.d.ts +133 -0
- package/components/ai-chat/empty-state/ai-chat-empty-state.d.ts +53 -0
- package/components/ai-chat/empty-state/index.d.ts +8 -0
- package/components/ai-chat/empty-state/types.d.ts +14 -0
- package/components/ai-chat/helpers/agent-config.d.ts +12 -0
- package/components/ai-chat/helpers/elicitation-template.d.ts +20 -0
- package/components/ai-chat/index.d.ts +24 -0
- package/components/ai-chat/session/ai-chat-session-controller.d.ts +60 -0
- package/components/ai-chat/session/ai-chat-session-types.d.ts +119 -0
- package/components/ai-chat/session/ai-chat-session.d.ts +119 -0
- package/components/ai-chat/session/index.d.ts +2 -0
- package/components/ai-chat/stream/chunk-extractors.d.ts +29 -0
- package/components/ai-chat/stream/index.d.ts +53 -0
- package/components/ai-chat/stream/progress.d.ts +3 -0
- package/components/ai-chat/stream/registry.d.ts +6 -0
- package/components/ai-chat/stream/stream-processor.d.ts +2 -0
- package/components/ai-chat/stream/transport.d.ts +26 -0
- package/components/ai-chat/stream/types.d.ts +59 -0
- package/components/ai-chat/types.d.ts +24 -0
- package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +239 -0
- package/components/ai-interaction-textarea/index.d.ts +10 -0
- package/components/ai-interaction-textarea/types.d.ts +12 -0
- package/components/data-field/data-field.d.ts +31 -0
- package/components/data-field/index.d.ts +9 -0
- package/components/data-field/types.d.ts +4 -0
- package/components/data-field-level/data-field-level.d.ts +40 -0
- package/components/data-field-level/helpers/generate-preview.d.ts +9 -0
- package/components/data-field-level/index.d.ts +8 -0
- package/components/data-field-panel/data-field-panel.d.ts +231 -0
- package/components/data-field-panel/index.d.ts +9 -0
- package/components/data-field-panel/types.d.ts +27 -0
- package/components/data-fields-select/data-fields-select.d.ts +137 -0
- package/components/data-fields-select/index.d.ts +9 -0
- package/components/data-fields-select/types.d.ts +4 -0
- package/components/dataset-icon/dataset-icon.d.ts +45 -0
- package/components/dataset-icon/index.d.ts +8 -0
- package/components/dataset-icon/types.d.ts +11 -0
- package/components/dataset-selector-list/dataset-selector-list.d.ts +106 -0
- package/components/dataset-selector-list/index.d.ts +8 -0
- package/components/dataset-selector-row/dataset-selector-row.d.ts +144 -0
- package/components/dataset-selector-row/index.d.ts +9 -0
- package/components/display-settings/display-settings.d.ts +117 -0
- package/components/display-settings/index.d.ts +8 -0
- package/components/display-settings/types.d.ts +9 -0
- package/components/display-settings-binning/display-settings-binning.d.ts +32 -0
- package/components/display-settings-binning/index.d.ts +8 -0
- package/components/display-settings-datetime/display-settings-datetime.d.ts +86 -0
- package/components/display-settings-datetime/index.d.ts +8 -0
- package/components/display-settings-grand-totals/display-settings-grand-totals.d.ts +29 -0
- package/components/display-settings-grand-totals/index.d.ts +8 -0
- package/components/display-settings-numeric/display-settings-numeric.d.ts +82 -0
- package/components/display-settings-numeric/helpers/constants.d.ts +19 -0
- package/components/display-settings-numeric/index.d.ts +8 -0
- package/components/display-settings-period-over-period/display-settings-period-over-period.d.ts +76 -0
- package/components/display-settings-period-over-period/helpers/constants.d.ts +44 -0
- package/components/display-settings-period-over-period/index.d.ts +8 -0
- package/components/filter-expression-picker/filter-expression-picker.d.ts +77 -0
- package/components/filter-expression-picker/index.d.ts +7 -0
- package/components/filter-item/filter-item.d.ts +142 -0
- package/components/filter-item/index.d.ts +8 -0
- package/components/filter-parameter-picker/filter-parameter-picker.d.ts +91 -0
- package/components/filter-parameter-picker/filter-parameter-picker.helpers.d.ts +8 -0
- package/components/filter-parameter-picker/index.d.ts +9 -0
- package/components/filter-parameter-picker/types.d.ts +4 -0
- package/components/filter-value-picker/filter-value-picker.d.ts +72 -0
- package/components/filter-value-picker/index.d.ts +7 -0
- package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +51 -0
- package/components/filter-value-picker-datetime/index.d.ts +7 -0
- package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +105 -0
- package/components/filter-value-picker-hierarchy/index.d.ts +7 -0
- package/components/filter-value-picker-numeric/filter-value-picker-numeric.d.ts +89 -0
- package/components/filter-value-picker-numeric/index.d.ts +7 -0
- package/components/filters/filters.d.ts +182 -0
- package/components/filters/index.d.ts +12 -0
- package/components/filters/transformations/clean-filters.d.ts +37 -0
- package/components/filters/transformations/filter-format.d.ts +54 -0
- package/components/filters/transformations/transform-filters.d.ts +52 -0
- package/components/filters/types.d.ts +65 -0
- package/components/formula/formula.d.ts +66 -0
- package/components/formula/index.d.ts +7 -0
- package/components/formula-codemirror/formula-codemirror.d.ts +79 -0
- package/components/formula-codemirror/index.d.ts +7 -0
- package/components/formula-codemirror/pills/formula-aggregation/formula-aggregation.d.ts +125 -0
- package/components/formula-codemirror/pills/formula-aggregation/index.d.ts +7 -0
- package/components/formula-codemirror/pills/formula-empty-argument-pill/formula-empty-argument-pill.d.ts +28 -0
- package/components/formula-codemirror/pills/formula-empty-argument-pill/index.d.ts +7 -0
- package/components/formula-codemirror/pills/formula-include-exclude-panel.d.ts +38 -0
- package/components/formula-draggable-field/formula-draggable-field.d.ts +53 -0
- package/components/formula-draggable-field/index.d.ts +8 -0
- package/components/formula-draggable-field/types.d.ts +24 -0
- package/components/formula-editor/formula-aggregations-list.d.ts +21 -0
- package/components/formula-editor/formula-datasets-list.d.ts +37 -0
- package/components/formula-editor/formula-description.d.ts +17 -0
- package/components/formula-editor/formula-editor.d.ts +85 -0
- package/components/formula-editor/formula-functions-list.d.ts +28 -0
- package/components/formula-editor/index.d.ts +12 -0
- package/components/formula-field/formula-field.d.ts +20 -0
- package/components/formula-field/index.d.ts +7 -0
- package/components/interactive-viz-item/helpers/chart-helpers.d.ts +7 -0
- package/components/interactive-viz-item/index.d.ts +10 -0
- package/components/interactive-viz-item/interactive-viz-item.d.ts +97 -0
- package/components/interactive-viz-item/load-config-panel.d.ts +2 -0
- package/components/interactive-viz-item/types.d.ts +117 -0
- package/components/item-grid/actions.d.ts +3 -0
- package/components/item-grid/helpers/grid-effects.d.ts +1 -0
- package/components/item-grid/helpers/grid-events.d.ts +56 -0
- package/components/item-grid/helpers/grid-interactions.d.ts +88 -0
- package/components/item-grid/helpers/grid-item-management.d.ts +30 -0
- package/components/item-grid/helpers/grid-item-popover.d.ts +21 -0
- package/components/item-grid/helpers/grid-items.d.ts +9 -0
- package/components/item-grid/helpers/grid-keyboard-updates.d.ts +18 -0
- package/components/item-grid/helpers/grid-keydown-event.d.ts +18 -0
- package/components/item-grid/helpers/grid-popover-cleanup.d.ts +4 -0
- package/components/item-grid/helpers/grid-rendering.d.ts +69 -0
- package/components/item-grid/helpers/grid-stack-lifecycle.d.ts +26 -0
- package/components/item-grid/helpers/grid-theme.d.ts +16 -0
- package/components/item-grid/helpers/grid-update-cycle.d.ts +22 -0
- package/components/item-grid/index.d.ts +12 -0
- package/components/item-grid/item-grid-item-actions-menu.d.ts +35 -0
- package/components/item-grid/item-grid.d.ts +251 -0
- package/components/item-grid/types.d.ts +57 -0
- package/components/item-menu/item-list/item-list.d.ts +37 -0
- package/components/item-option/helpers/control-markup.d.ts +14 -0
- package/components/item-option/helpers/control-templates/action-button-group-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/color-palette-picker-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/color-picker-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/color-range-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/guidelines-template.d.ts +3 -0
- package/components/item-option/helpers/control-templates/multi-language-field-template.d.ts +8 -0
- package/components/item-option/helpers/control-templates/number-field-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/picker-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/position-picker-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/positions-number-field-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/radio-button-group.d.ts +2 -0
- package/components/item-option/helpers/control-templates/slider-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/switch-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/text-field-template.d.ts +7 -0
- package/components/item-option/helpers/enum-values.d.ts +7 -0
- package/components/item-option/helpers/generate-callback.d.ts +1 -0
- package/components/item-option/helpers/get-control-by-key.d.ts +1 -0
- package/components/item-option/helpers/get-default-value.d.ts +1 -0
- package/components/item-option/helpers/get-enum-values.d.ts +1 -0
- package/components/item-option/helpers/get-extra-label-values.d.ts +7 -0
- package/components/item-option/helpers/get-value-by-key.d.ts +1 -0
- package/components/item-option/index.d.ts +8 -0
- package/components/item-option/item-option.d.ts +59 -0
- package/components/item-option/types.d.ts +8 -0
- package/components/item-option-action-button-group/index.d.ts +8 -0
- package/components/item-option-action-button-group/item-option-action-button-group.d.ts +36 -0
- package/components/item-option-base/item-option-base.d.ts +23 -0
- package/components/item-option-color-palette-picker/index.d.ts +8 -0
- package/components/item-option-color-palette-picker/item-option-color-palette-picker.d.ts +46 -0
- package/components/item-option-color-picker/index.d.ts +8 -0
- package/components/item-option-color-picker/item-option-color-picker.d.ts +33 -0
- package/components/item-option-color-range/index.d.ts +8 -0
- package/components/item-option-color-range/item-option-color-range.d.ts +99 -0
- package/components/item-option-guidelines/helpers/guidelines-value.d.ts +12 -0
- package/components/item-option-guidelines/index.d.ts +10 -0
- package/components/item-option-guidelines/item-option-guidelines.d.ts +74 -0
- package/components/item-option-guidelines/types.d.ts +25 -0
- package/components/item-option-multi-language-field/index.d.ts +8 -0
- package/components/item-option-multi-language-field/item-option-multi-language-field.d.ts +30 -0
- package/components/item-option-number-field/index.d.ts +8 -0
- package/components/item-option-number-field/item-option-number-field.d.ts +38 -0
- package/components/item-option-panel/index.d.ts +8 -0
- package/components/item-option-panel/item-option-panel.d.ts +77 -0
- package/components/item-option-picker/index.d.ts +8 -0
- package/components/item-option-picker/item-option-picker.d.ts +29 -0
- package/components/item-option-position-picker/index.d.ts +8 -0
- package/components/item-option-position-picker/item-option-position-picker.d.ts +22 -0
- package/components/item-option-positions-number-field/index.d.ts +8 -0
- package/components/item-option-positions-number-field/item-option-positions-number-field.d.ts +44 -0
- package/components/item-option-radio-button-group/index.d.ts +8 -0
- package/components/item-option-radio-button-group/item-option-radio-button-group.d.ts +29 -0
- package/components/item-option-slider/index.d.ts +8 -0
- package/components/item-option-slider/item-option-slider.d.ts +33 -0
- package/components/item-option-switch/index.d.ts +8 -0
- package/components/item-option-switch/item-option-switch.d.ts +19 -0
- package/components/item-option-text-field/index.d.ts +8 -0
- package/components/item-option-text-field/item-option-text-field.d.ts +25 -0
- package/components/item-slot-drop/index.d.ts +11 -0
- package/components/item-slot-drop/item-slot-drop.d.ts +113 -0
- package/components/item-slot-drop/types.d.ts +5 -0
- package/components/item-slot-drop-panel/index.d.ts +8 -0
- package/components/item-slot-drop-panel/item-slot-drop-panel.d.ts +180 -0
- package/components/item-slot-picker/index.d.ts +8 -0
- package/components/item-slot-picker/item-slot-picker.d.ts +149 -0
- package/components/item-slot-picker-panel/index.d.ts +9 -0
- package/components/item-slot-picker-panel/item-slot-picker-panel.d.ts +230 -0
- package/components/slot-menu/index.d.ts +10 -0
- package/components/slot-menu/slot-menu.d.ts +148 -0
- package/components/slot-menu/types.d.ts +24 -0
- package/components/slot-menu-list/index.d.ts +8 -0
- package/components/slot-menu-list/slot-menu-list.d.ts +47 -0
- package/components/viz-item-menu/index.d.ts +8 -0
- package/components/viz-item-menu/types.d.ts +9 -0
- package/components/viz-item-menu/viz-item-menu.d.ts +85 -0
- package/package.json +1 -1
- package/react/package.json +2 -2
- package/angular/README.md +0 -40
- package/angular/components/ai-chat-empty-state.ts +0 -105
- package/angular/components/ai-chat.ts +0 -447
- package/angular/components/ai-interaction-textarea.ts +0 -290
- package/angular/components/data-field-level.ts +0 -130
- package/angular/components/data-field-panel.ts +0 -256
- package/angular/components/data-field.ts +0 -130
- package/angular/components/data-fields-select.ts +0 -226
- package/angular/components/dataset-icon.ts +0 -83
- package/angular/components/dataset-selector-list.ts +0 -147
- package/angular/components/dataset-selector-row.ts +0 -205
- package/angular/components/display-settings-binning.ts +0 -92
- package/angular/components/display-settings-datetime.ts +0 -100
- package/angular/components/display-settings-grand-totals.ts +0 -92
- package/angular/components/display-settings-numeric.ts +0 -113
- package/angular/components/display-settings-period-over-period.ts +0 -121
- package/angular/components/display-settings.ts +0 -227
- package/angular/components/filter-expression-picker.ts +0 -168
- package/angular/components/filter-item.ts +0 -207
- package/angular/components/filter-parameter-picker.ts +0 -155
- package/angular/components/filter-value-picker-datetime.ts +0 -125
- package/angular/components/filter-value-picker-hierarchy.ts +0 -146
- package/angular/components/filter-value-picker-numeric.ts +0 -146
- package/angular/components/filter-value-picker.ts +0 -160
- package/angular/components/filters.ts +0 -241
- package/angular/components/formula-editor.ts +0 -229
- package/angular/components/formula-field.ts +0 -198
- package/angular/components/formula.ts +0 -170
- package/angular/components/interactive-viz-item.ts +0 -186
- package/angular/components/item-grid-item-actions-menu.ts +0 -113
- package/angular/components/item-grid.ts +0 -242
- package/angular/components/item-option-action-button-group.ts +0 -105
- package/angular/components/item-option-color-palette-picker.ts +0 -126
- package/angular/components/item-option-color-picker.ts +0 -134
- package/angular/components/item-option-color-range.ts +0 -168
- package/angular/components/item-option-guidelines.ts +0 -84
- package/angular/components/item-option-multi-language-field.ts +0 -133
- package/angular/components/item-option-number-field.ts +0 -161
- package/angular/components/item-option-panel.ts +0 -149
- package/angular/components/item-option-picker.ts +0 -120
- package/angular/components/item-option-position-picker.ts +0 -98
- package/angular/components/item-option-positions-number-field.ts +0 -140
- package/angular/components/item-option-radio-button-group.ts +0 -119
- package/angular/components/item-option-slider.ts +0 -126
- package/angular/components/item-option-switch.ts +0 -98
- package/angular/components/item-option-text-field.ts +0 -112
- package/angular/components/item-option.ts +0 -163
- package/angular/components/item-slot-drop-panel.ts +0 -236
- package/angular/components/item-slot-drop.ts +0 -231
- package/angular/components/item-slot-picker-panel.ts +0 -299
- package/angular/components/item-slot-picker.ts +0 -241
- package/angular/components/slot-menu-list.ts +0 -121
- package/angular/components/slot-menu.ts +0 -304
- package/angular/components/viz-item-menu.ts +0 -118
- package/angular/esm/components/ai-chat-empty-state.d.ts +0 -41
- package/angular/esm/components/ai-chat-empty-state.js +0 -107
- package/angular/esm/components/ai-chat.d.ts +0 -149
- package/angular/esm/components/ai-chat.js +0 -463
- package/angular/esm/components/ai-interaction-textarea.d.ts +0 -108
- package/angular/esm/components/ai-interaction-textarea.js +0 -313
- package/angular/esm/components/data-field-level.d.ts +0 -50
- package/angular/esm/components/data-field-level.js +0 -129
- package/angular/esm/components/data-field-panel.d.ts +0 -86
- package/angular/esm/components/data-field-panel.js +0 -268
- package/angular/esm/components/data-field.d.ts +0 -50
- package/angular/esm/components/data-field.js +0 -129
- package/angular/esm/components/data-fields-select.d.ts +0 -87
- package/angular/esm/components/data-fields-select.js +0 -243
- package/angular/esm/components/dataset-icon.d.ts +0 -34
- package/angular/esm/components/dataset-icon.js +0 -86
- package/angular/esm/components/dataset-selector-list.d.ts +0 -56
- package/angular/esm/components/dataset-selector-list.js +0 -155
- package/angular/esm/components/dataset-selector-row.d.ts +0 -72
- package/angular/esm/components/dataset-selector-row.js +0 -205
- package/angular/esm/components/display-settings-binning.d.ts +0 -37
- package/angular/esm/components/display-settings-binning.js +0 -91
- package/angular/esm/components/display-settings-datetime.d.ts +0 -40
- package/angular/esm/components/display-settings-datetime.js +0 -99
- package/angular/esm/components/display-settings-grand-totals.d.ts +0 -37
- package/angular/esm/components/display-settings-grand-totals.js +0 -91
- package/angular/esm/components/display-settings-numeric.d.ts +0 -45
- package/angular/esm/components/display-settings-numeric.js +0 -115
- package/angular/esm/components/display-settings-period-over-period.d.ts +0 -50
- package/angular/esm/components/display-settings-period-over-period.js +0 -123
- package/angular/esm/components/display-settings.d.ts +0 -83
- package/angular/esm/components/display-settings.js +0 -231
- package/angular/esm/components/filter-expression-picker.d.ts +0 -64
- package/angular/esm/components/filter-expression-picker.js +0 -179
- package/angular/esm/components/filter-item.d.ts +0 -74
- package/angular/esm/components/filter-item.js +0 -222
- package/angular/esm/components/filter-parameter-picker.d.ts +0 -56
- package/angular/esm/components/filter-parameter-picker.js +0 -151
- package/angular/esm/components/filter-value-picker-datetime.d.ts +0 -47
- package/angular/esm/components/filter-value-picker-datetime.js +0 -131
- package/angular/esm/components/filter-value-picker-hierarchy.d.ts +0 -53
- package/angular/esm/components/filter-value-picker-hierarchy.js +0 -155
- package/angular/esm/components/filter-value-picker-numeric.d.ts +0 -53
- package/angular/esm/components/filter-value-picker-numeric.js +0 -155
- package/angular/esm/components/filter-value-picker.d.ts +0 -57
- package/angular/esm/components/filter-value-picker.js +0 -171
- package/angular/esm/components/filters.d.ts +0 -85
- package/angular/esm/components/filters.js +0 -251
- package/angular/esm/components/formula-editor.d.ts +0 -78
- package/angular/esm/components/formula-editor.js +0 -236
- package/angular/esm/components/formula-field.d.ts +0 -70
- package/angular/esm/components/formula-field.js +0 -209
- package/angular/esm/components/formula.d.ts +0 -60
- package/angular/esm/components/formula.js +0 -177
- package/angular/esm/components/interactive-viz-item.d.ts +0 -63
- package/angular/esm/components/interactive-viz-item.js +0 -188
- package/angular/esm/components/item-grid-item-actions-menu.d.ts +0 -45
- package/angular/esm/components/item-grid-item-actions-menu.js +0 -115
- package/angular/esm/components/item-grid.d.ts +0 -80
- package/angular/esm/components/item-grid.js +0 -245
- package/angular/esm/components/item-option-action-button-group.d.ts +0 -41
- package/angular/esm/components/item-option-action-button-group.js +0 -107
- package/angular/esm/components/item-option-color-palette-picker.d.ts +0 -48
- package/angular/esm/components/item-option-color-palette-picker.js +0 -131
- package/angular/esm/components/item-option-color-picker.d.ts +0 -51
- package/angular/esm/components/item-option-color-picker.js +0 -139
- package/angular/esm/components/item-option-color-range.d.ts +0 -66
- package/angular/esm/components/item-option-color-range.js +0 -179
- package/angular/esm/components/item-option-guidelines.d.ts +0 -34
- package/angular/esm/components/item-option-guidelines.js +0 -83
- package/angular/esm/components/item-option-multi-language-field.d.ts +0 -50
- package/angular/esm/components/item-option-multi-language-field.js +0 -139
- package/angular/esm/components/item-option-number-field.d.ts +0 -58
- package/angular/esm/components/item-option-number-field.js +0 -171
- package/angular/esm/components/item-option-panel.d.ts +0 -54
- package/angular/esm/components/item-option-panel.js +0 -155
- package/angular/esm/components/item-option-picker.d.ts +0 -46
- package/angular/esm/components/item-option-picker.js +0 -123
- package/angular/esm/components/item-option-position-picker.d.ts +0 -39
- package/angular/esm/components/item-option-position-picker.js +0 -99
- package/angular/esm/components/item-option-positions-number-field.d.ts +0 -54
- package/angular/esm/components/item-option-positions-number-field.js +0 -147
- package/angular/esm/components/item-option-radio-button-group.d.ts +0 -45
- package/angular/esm/components/item-option-radio-button-group.js +0 -123
- package/angular/esm/components/item-option-slider.d.ts +0 -46
- package/angular/esm/components/item-option-slider.js +0 -131
- package/angular/esm/components/item-option-switch.d.ts +0 -40
- package/angular/esm/components/item-option-switch.js +0 -99
- package/angular/esm/components/item-option-text-field.d.ts +0 -44
- package/angular/esm/components/item-option-text-field.js +0 -115
- package/angular/esm/components/item-option.d.ts +0 -58
- package/angular/esm/components/item-option.js +0 -171
- package/angular/esm/components/item-slot-drop-panel.d.ts +0 -82
- package/angular/esm/components/item-slot-drop-panel.js +0 -249
- package/angular/esm/components/item-slot-drop.d.ts +0 -77
- package/angular/esm/components/item-slot-drop.js +0 -227
- package/angular/esm/components/item-slot-picker-panel.d.ts +0 -97
- package/angular/esm/components/item-slot-picker-panel.js +0 -309
- package/angular/esm/components/item-slot-picker.d.ts +0 -86
- package/angular/esm/components/item-slot-picker.js +0 -259
- package/angular/esm/components/slot-menu-list.d.ts +0 -46
- package/angular/esm/components/slot-menu-list.js +0 -123
- package/angular/esm/components/slot-menu.d.ts +0 -104
- package/angular/esm/components/slot-menu.js +0 -300
- package/angular/esm/components/viz-item-menu.d.ts +0 -42
- package/angular/esm/components/viz-item-menu.js +0 -111
- package/angular/esm/index.d.ts +0 -109
- package/angular/esm/index.js +0 -217
- package/angular/index.ts +0 -223
- package/angular/package.json +0 -40
- package/angular/tsconfig.json +0 -36
- package/angular/type-fallbacks.d.ts +0 -0
- package/angular/utils/ai-prompt/attachments.d.ts +0 -10
- package/angular/utils/ai-prompt/dictation.d.ts +0 -50
- package/angular/utils/ai-prompt/image-upload.d.ts +0 -12
- package/angular/utils/ai-prompt/index.d.ts +0 -6
- package/angular/utils/ai-prompt/tests/attachments.test.d.ts +0 -1
- package/angular/utils/ai-prompt/tests/dictation.test.d.ts +0 -1
- package/angular/utils/ai-prompt/tests/image-upload.test.d.ts +0 -1
- package/angular/utils/base/base.d.ts +0 -16
- package/angular/utils/base/focus-visible.d.ts +0 -29
- package/angular/utils/base/focusable.d.ts +0 -58
- package/angular/utils/base/index.d.ts +0 -5
- package/angular/utils/base/localized-mixin.d.ts +0 -22
- package/angular/utils/base/sized-mixin.d.ts +0 -17
- package/angular/utils/color/color-palettes.d.ts +0 -17
- package/angular/utils/color/extrapolate-color.d.ts +0 -1
- package/angular/utils/create-lazy-loader.d.ts +0 -5
- package/angular/utils/data/load-data-fields-for-datasets.d.ts +0 -22
- package/angular/utils/data-broker/index.d.ts +0 -263
- package/angular/utils/data-field-types/calculate-data-field-icon.d.ts +0 -12
- package/angular/utils/data-field-types/default-acceptable-data-field-types.d.ts +0 -1
- package/angular/utils/data-field-types/tests/calculate-data-field-icon.test.d.ts +0 -1
- package/angular/utils/drag/draggable.d.ts +0 -13
- package/angular/utils/drag/pragmatic-element-adapter.d.ts +0 -2
- package/angular/utils/drag/tests/pragmatic-element-adapter.first-import.test.d.ts +0 -1
- package/angular/utils/drag/tests/pragmatic-element-adapter.test.d.ts +0 -1
- package/angular/utils/filters/expressions.d.ts +0 -15
- package/angular/utils/filters/filter-text.d.ts +0 -64
- package/angular/utils/filters/index.d.ts +0 -2
- package/angular/utils/filters/presentation.d.ts +0 -4
- package/angular/utils/filters/tests/filter-text.test.d.ts +0 -1
- package/angular/utils/formatter/calculate-duration.d.ts +0 -2
- package/angular/utils/formatter/decompose-numeric-format.d.ts +0 -11
- package/angular/utils/formatter/default-local-formats.d.ts +0 -20
- package/angular/utils/formatter/formats/cs.d.ts +0 -20
- package/angular/utils/formatter/formats/da.d.ts +0 -20
- package/angular/utils/formatter/formats/de.d.ts +0 -21
- package/angular/utils/formatter/formats/en-GB.d.ts +0 -21
- package/angular/utils/formatter/formats/en-US.d.ts +0 -1
- package/angular/utils/formatter/formats/en.d.ts +0 -1
- package/angular/utils/formatter/formats/es.d.ts +0 -54
- package/angular/utils/formatter/formats/fi.d.ts +0 -20
- package/angular/utils/formatter/formats/fr.d.ts +0 -54
- package/angular/utils/formatter/formats/he.d.ts +0 -20
- package/angular/utils/formatter/formats/hu.d.ts +0 -20
- package/angular/utils/formatter/formats/it.d.ts +0 -54
- package/angular/utils/formatter/formats/ja.d.ts +0 -20
- package/angular/utils/formatter/formats/ko.d.ts +0 -20
- package/angular/utils/formatter/formats/mk.d.ts +0 -20
- package/angular/utils/formatter/formats/nl.d.ts +0 -21
- package/angular/utils/formatter/formats/no.d.ts +0 -21
- package/angular/utils/formatter/formats/pl.d.ts +0 -20
- package/angular/utils/formatter/formats/pt.d.ts +0 -20
- package/angular/utils/formatter/formats/ru.d.ts +0 -20
- package/angular/utils/formatter/formats/sv.d.ts +0 -20
- package/angular/utils/formatter/formats/tr.d.ts +0 -21
- package/angular/utils/formatter/formats/zh-CN.d.ts +0 -20
- package/angular/utils/formatter/formats/zh-TW.d.ts +0 -20
- package/angular/utils/formatter/formatter.d.ts +0 -9
- package/angular/utils/formatter/get-dataset-name.d.ts +0 -2
- package/angular/utils/formatter/get-localized-name.d.ts +0 -4
- package/angular/utils/formatter/localize.d.ts +0 -3
- package/angular/utils/formatter/localized-template.d.ts +0 -4
- package/angular/utils/formatter/smart-datetime-formats.const.d.ts +0 -36
- package/angular/utils/formatter/tests/calculate-duration.test.d.ts +0 -1
- package/angular/utils/formatter/tests/decompose-numeric-format.test.d.ts +0 -1
- package/angular/utils/formatter/tests/default-local-formats.test.d.ts +0 -1
- package/angular/utils/formatter/tests/formatter.test.d.ts +0 -1
- package/angular/utils/formatter/tests/get-localized-name.test.d.ts +0 -1
- package/angular/utils/formatter/tests/localize.test.d.ts +0 -1
- package/angular/utils/formatter/tests/localized-template.test.d.ts +0 -1
- package/angular/utils/formula/base/formula-base.d.ts +0 -117
- package/angular/utils/formula/base/formula-input-base.d.ts +0 -62
- package/angular/utils/formula/codemirror/actions.d.ts +0 -47
- package/angular/utils/formula/codemirror/drop-cursor.d.ts +0 -15
- package/angular/utils/formula/codemirror/icon-element.d.ts +0 -7
- package/angular/utils/formula/codemirror/parser.d.ts +0 -16
- package/angular/utils/formula/codemirror/tests/actions.test.d.ts +0 -1
- package/angular/utils/formula/codemirror/theme.d.ts +0 -20
- package/angular/utils/formula/codemirror/widget.d.ts +0 -18
- package/angular/utils/formula/config/aggregations.d.ts +0 -9
- package/angular/utils/formula/config/build-datasets.d.ts +0 -10
- package/angular/utils/formula/config/expression-helpers.d.ts +0 -42
- package/angular/utils/formula/config/functions.d.ts +0 -3
- package/angular/utils/formula/config/groupings.d.ts +0 -9
- package/angular/utils/formula/config/regex.d.ts +0 -39
- package/angular/utils/formula/config/resolve-column-presentation.d.ts +0 -19
- package/angular/utils/formula/config/tests/build-datasets.test.d.ts +0 -1
- package/angular/utils/formula/config/validate-expression.d.ts +0 -19
- package/angular/utils/formula/load-formula-codemirror.d.ts +0 -4
- package/angular/utils/formula/render-explanation-tooltip.d.ts +0 -7
- package/angular/utils/formula/store/formula-display-store.d.ts +0 -93
- package/angular/utils/formula/store/formula-editor-context.d.ts +0 -8
- package/angular/utils/formula/store/formula-editor-store.d.ts +0 -46
- package/angular/utils/formula/store/tests/formula-editor-store.test.d.ts +0 -1
- package/angular/utils/formula/tests/validate-expression.test.d.ts +0 -1
- package/angular/utils/get-css-variable.d.ts +0 -1
- package/angular/utils/index.d.ts +0 -10
- package/angular/utils/localize/set-locale.d.ts +0 -7
- package/angular/utils/map-tile-providers/index.d.ts +0 -93
- package/angular/utils/set-nested-value.d.ts +0 -6
- package/angular/utils/slot-content/ad-hoc-slot-content.d.ts +0 -7
- package/angular/utils/slot-content/render-calculation-label.d.ts +0 -7
- package/angular/utils/slot-content/tests/ad-hoc-slot-content.test.d.ts +0 -1
- package/angular/utils/slot-state/slot-context.d.ts +0 -4
- package/angular/utils/slot-state/slot-store.d.ts +0 -43
- package/angular/utils/slot-state/tests/slot-store.test.d.ts +0 -1
- package/angular/utils/store/base-store.d.ts +0 -158
- package/angular/utils/store/dashboard-store.d.ts +0 -49
- package/angular/utils/store/index.d.ts +0 -135
- package/angular/utils/store/item-store.d.ts +0 -33
- package/angular/utils/store/store-registry.d.ts +0 -170
- package/angular/utils/store/tests/dashboard-store.test.d.ts +0 -1
- package/angular/utils/store/tests/item-store.test.d.ts +0 -1
- package/angular/utils/store/tests/store-registry.test.d.ts +0 -1
- package/angular/utils/store/types.d.ts +0 -270
- package/angular/utils/switch-item/index.d.ts +0 -34
- package/angular/utils/switch-item/slot-role-classification.d.ts +0 -31
- package/angular/utils/switch-item/stories/switch-item.stories.d.ts +0 -17
- package/angular/utils/switch-item/tests/slot-role-classification.test.d.ts +0 -1
- package/angular/utils/switch-item/tests/switch-item.test.d.ts +0 -1
- package/angular/utils/tests/create-lazy-loader.test.d.ts +0 -1
- package/angular/utils/tests/set-nested-value.test.d.ts +0 -1
- package/angular/utils/themes/bliss.d.ts +0 -2
- package/angular/utils/themes/classic-dark.d.ts +0 -2
- package/angular/utils/themes/classic.d.ts +0 -2
- package/angular/utils/themes/default-dark.d.ts +0 -2
- package/angular/utils/themes/default.d.ts +0 -2
- package/angular/utils/themes/index.d.ts +0 -4
- package/angular/utils/themes/orion.d.ts +0 -2
- package/angular/utils/themes/pinky.d.ts +0 -2
- package/angular/utils/themes/radiant.d.ts +0 -2
- package/angular/utils/themes/royale.d.ts +0 -2
- package/angular/utils/themes/seasonal.d.ts +0 -2
- package/angular/utils/themes/urban.d.ts +0 -2
- package/angular/utils/themes/vivid.d.ts +0 -2
- package/angular/utils/time/formats.const.d.ts +0 -4
- package/angular/utils/time/period-over-period-condition.const.d.ts +0 -8
- package/angular/utils/time/periods.const.d.ts +0 -15
- package/angular/utils/timezone/datetime-timezone.d.ts +0 -25
- package/angular/utils/timezone/tests/datetime-timezone.test.d.ts +0 -1
- package/angular/utils/transformations/convert-data-field-to-slot-content.d.ts +0 -9
- package/angular/utils/transformations/convert-datasets-to-data-fields.d.ts +0 -30
- package/angular/utils/transformations/tests/convert-data-field-to-slot-content.test.d.ts +0 -1
- package/angular/utils/transformations/tests/convert-datasets-to-data-fields.test.d.ts +0 -1
- package/angular/utils/types/tests/type-check.test.d.ts +0 -1
- package/angular/utils/types/type-check.d.ts +0 -28
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { CleanFilter, CleanFilterClauseGroup, FilterClause, FilterCondition, FilterGroup as EditFilterGroup } from '../types';
|
|
2
|
+
type UnknownRecord = Record<string, unknown>;
|
|
3
|
+
/**
|
|
4
|
+
* A value that names a column rather than holding a literal. Mirrors the shared
|
|
5
|
+
* `isFilterColumnParam`: a named source stands on its own, while a bare
|
|
6
|
+
* `expression` needs a dataset to be a reference rather than a value. A reference
|
|
7
|
+
* missing its dataset still matches, so that clean emit rejects it instead of
|
|
8
|
+
* passing the raw canonical object through as a value.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isFilterReference(value: unknown): value is UnknownRecord;
|
|
11
|
+
/**
|
|
12
|
+
* Clean reference -> canonical `parameters[0]`. `columnId` wins over an ad-hoc
|
|
13
|
+
* expression, and `columnExpression` becomes the canonical reference `expression`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function cleanReferenceToCanonical(reference: UnknownRecord, allowExpressionAlias?: boolean): UnknownRecord;
|
|
16
|
+
/**
|
|
17
|
+
* Canonical `parameters[0]` -> clean inlined reference. Nested references inside
|
|
18
|
+
* `discretization.over` and `aggregation` are converted too, `lowestLevel` and
|
|
19
|
+
* null-valued optional members are dropped, and a reference that cannot be
|
|
20
|
+
* expressed publicly throws rather than leaking canonical keys into clean output.
|
|
21
|
+
*/
|
|
22
|
+
export declare function canonicalReferenceToClean(reference: UnknownRecord): UnknownRecord;
|
|
23
|
+
/** Clean leaf -> editor condition, restoring the canonical `parameters` tuple. */
|
|
24
|
+
export declare function cleanLeafToCondition(leaf: UnknownRecord, inheritedClause?: FilterClause): FilterCondition;
|
|
25
|
+
/**
|
|
26
|
+
* Editor condition -> clean leaf. Returns `null` only for a leaf with no
|
|
27
|
+
* expression, matching the canonical exporter's drop rule. Anything else that
|
|
28
|
+
* cannot be expressed cleanly throws, the way the shared normalizer does:
|
|
29
|
+
* dropping a live predicate would silently widen the rows the host applies.
|
|
30
|
+
*/
|
|
31
|
+
export declare function conditionToCleanLeaf(condition: FilterCondition): CleanFilter | null;
|
|
32
|
+
/**
|
|
33
|
+
* Editor group -> clean clause groups. A group holding both clauses becomes one
|
|
34
|
+
* `where` group and one `having` group; neither reuses the original group id.
|
|
35
|
+
*/
|
|
36
|
+
export declare function editGroupToCleanGroups(group: EditFilterGroup): CleanFilterClauseGroup[];
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime recognition of the two filter encodings ACK accepts.
|
|
3
|
+
*
|
|
4
|
+
* Groups look the same in both: a lowercase `and` / `or` condition plus a
|
|
5
|
+
* `filters` array. Only the leaves differ, so detection is per leaf rather than
|
|
6
|
+
* per array, and a payload that mixes the two converts leaf by leaf.
|
|
7
|
+
*/
|
|
8
|
+
/** Shared nesting limit, matching the platform-wide filter depth guard. */
|
|
9
|
+
export declare const MAX_FILTER_NESTING_DEPTH = 20;
|
|
10
|
+
/** Raised when a filter tree cannot be represented in the requested encoding. */
|
|
11
|
+
export declare class FilterUnrepresentableError extends Error {
|
|
12
|
+
constructor(message: string);
|
|
13
|
+
}
|
|
14
|
+
/** Format label for a filter payload. Diagnostics only; conversion never depends on it. */
|
|
15
|
+
export type DetectedFiltersFormat = 'empty' | 'canonical' | 'clean' | 'mixed' | 'unknown';
|
|
16
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
17
|
+
/**
|
|
18
|
+
* A group in either encoding, including a leftover uppercase condition. A group
|
|
19
|
+
* may omit `condition` entirely, which `toLogicalCondition` resolves to `and`;
|
|
20
|
+
* a condition that is present but not `and` / `or` is not a group.
|
|
21
|
+
*/
|
|
22
|
+
export declare function isFilterGroupLike(value: unknown): value is Record<string, unknown>;
|
|
23
|
+
/** A leaf in either encoding. Groups are excluded by their `condition`. */
|
|
24
|
+
export declare function isFilterLeafLike(value: unknown): value is Record<string, unknown>;
|
|
25
|
+
export declare function hasCleanEncodingMarker(leaf: Record<string, unknown>): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Clean references name exactly one source. `columnExpression` is an alias that
|
|
28
|
+
* loses to `columnId` rather than competing with it, so the two together are one
|
|
29
|
+
* source; `columnId` with `formulaId` is genuinely ambiguous and is rejected.
|
|
30
|
+
*
|
|
31
|
+
* `allowExpressionAlias` covers a standalone reference object, where a bare
|
|
32
|
+
* `expression` is the ad-hoc column. On a flattened leaf `expression` is the
|
|
33
|
+
* filter operator instead, so callers there must leave it off.
|
|
34
|
+
*/
|
|
35
|
+
export declare function hasExactlyOneReferenceSource(reference: Record<string, unknown>, allowExpressionAlias?: boolean): boolean;
|
|
36
|
+
/** A flattened leaf: a dataset, exactly one reference source, and no `parameters`. */
|
|
37
|
+
export declare function isCleanFilterLeaf(value: unknown): value is Record<string, unknown>;
|
|
38
|
+
/** A canonical leaf: an ordered `parameters` tuple and no clean inline key. */
|
|
39
|
+
export declare function isCanonicalFilterLeaf(value: unknown): value is Record<string, unknown>;
|
|
40
|
+
/**
|
|
41
|
+
* A leaf carrying both encodings is ambiguous about which operand is the
|
|
42
|
+
* predicate, so it is rejected rather than guessed.
|
|
43
|
+
*/
|
|
44
|
+
export declare function assertLeafEncodingNotMixed(leaf: Record<string, unknown>): void;
|
|
45
|
+
/**
|
|
46
|
+
* A leaf that is clean-encoded but not a valid clean leaf. Called only once
|
|
47
|
+
* `isCleanFilterLeaf` has rejected it, so that an incomplete reference is
|
|
48
|
+
* reported rather than silently reinterpreted as an empty canonical leaf.
|
|
49
|
+
*/
|
|
50
|
+
export declare function assertCleanLeafIsComplete(leaf: Record<string, unknown>): void;
|
|
51
|
+
export declare function isFilterClause(value: unknown): value is 'where' | 'having';
|
|
52
|
+
export declare function assertFilterNestingDepth(depth: number): void;
|
|
53
|
+
/** Classifies a filter payload for diagnostics. Never throws. */
|
|
54
|
+
export declare function detectFiltersFormat(input: unknown): DetectedFiltersFormat;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { ItemFilterGroup } from '@luzmo/dashboard-contents-types';
|
|
2
|
+
import type { CleanFilterClauseGroup, FilterGroup as EditFilterGroup, FiltersFormat, FiltersInput, FiltersOutput } from '../types';
|
|
3
|
+
export { detectFiltersFormat, FilterUnrepresentableError, MAX_FILTER_NESTING_DEPTH } from './filter-format';
|
|
4
|
+
export type { DetectedFiltersFormat } from './filter-format';
|
|
5
|
+
export interface TransformFiltersOptions {
|
|
6
|
+
/** `canonical` (default) emits `ItemFilterGroup[]`; `clean` emits `CleanFilterClauseGroup[]`. */
|
|
7
|
+
format?: FiltersFormat;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Normalize a group condition to the lowercase `'and' | 'or'` contract.
|
|
11
|
+
* Accepts legacy uppercase `'AND' | 'OR'` values.
|
|
12
|
+
*/
|
|
13
|
+
export declare function toLogicalCondition(condition: string | undefined): ItemFilterGroup['condition'];
|
|
14
|
+
/**
|
|
15
|
+
* Transform EditFilterGroup from filters component into the format
|
|
16
|
+
* expected by luzmo-embed-viz-item (ItemFilterGroup[]), or into the clean
|
|
17
|
+
* clause groups published as `ItemFilterOutput` / `DashboardFilterOutput`.
|
|
18
|
+
*
|
|
19
|
+
* @param filters - Filter group in the internal/legacy filters format
|
|
20
|
+
* @param options - `format: 'clean'` opts into clean clause-group output
|
|
21
|
+
* @returns Filter groups in the requested public format
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const vizItemFilters = transformFilters(legacyFiltersGroup);
|
|
26
|
+
* vizItem.filters = vizItemFilters;
|
|
27
|
+
*
|
|
28
|
+
* const cleanFilters = transformFilters(legacyFiltersGroup, { format: 'clean' });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function transformFilters(filters: EditFilterGroup | null | undefined): ItemFilterGroup[];
|
|
32
|
+
export declare function transformFilters(filters: EditFilterGroup | null | undefined, options: {
|
|
33
|
+
format: 'clean';
|
|
34
|
+
}): CleanFilterClauseGroup[];
|
|
35
|
+
export declare function transformFilters(filters: EditFilterGroup | null | undefined, options: {
|
|
36
|
+
format?: 'canonical';
|
|
37
|
+
}): ItemFilterGroup[];
|
|
38
|
+
export declare function transformFilters(filters: EditFilterGroup | null | undefined, options?: TransformFiltersOptions): FiltersOutput;
|
|
39
|
+
/**
|
|
40
|
+
* Transform filter groups from luzmo-embed-viz-item format into the format
|
|
41
|
+
* used internally by luzmo-filters.
|
|
42
|
+
*
|
|
43
|
+
* Accepts both halves of the public `ItemFilterOutput` / `DashboardFilterOutput`
|
|
44
|
+
* unions: canonical `ItemFilterGroup[]` and clean clause groups with flattened
|
|
45
|
+
* leaves. Nested `and` / `or` groups are preserved, never flattened.
|
|
46
|
+
*
|
|
47
|
+
* @param filters - Filter groups from viz-item filters property or getFilters()
|
|
48
|
+
* @returns FilterGroup array in the internal filters format
|
|
49
|
+
* @throws FilterUnrepresentableError when a leaf mixes both encodings, matches
|
|
50
|
+
* neither a complete clean nor a complete canonical encoding, or nesting is too deep
|
|
51
|
+
*/
|
|
52
|
+
export declare function reverseTransformFilters(filters: FiltersInput | null | undefined): EditFilterGroup[];
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { ItemFilterGroup, ItemFilterParameterDefinition, ItemFilterProperties } from '@luzmo/dashboard-contents-types';
|
|
2
|
+
import type { CleanFilter, CleanFilterClauseGroup, CleanFilterGroup, CleanRetrievedFilterGroup, DashboardFilterOutput, ItemFilterOutput } from '@luzmo/embed';
|
|
3
|
+
export type FilterParameterType = 'numeric' | 'datetime' | 'hierarchy' | 'array[numeric]' | 'array[datetime]' | 'array[hierarchy]';
|
|
4
|
+
export type FilterParameter = Omit<ItemFilterParameterDefinition, 'type'> & {
|
|
5
|
+
type: FilterParameterType;
|
|
6
|
+
};
|
|
7
|
+
export interface FilterParameterEventDetail {
|
|
8
|
+
parameter: FilterParameter;
|
|
9
|
+
}
|
|
10
|
+
export type { CleanFilter, CleanFilterClauseGroup, CleanFilterGroup, CleanRetrievedFilterGroup, DashboardFilterOutput, ItemFilterOutput };
|
|
11
|
+
/** Clause owned by a top-level clean filter group. Nested groups inherit it. */
|
|
12
|
+
export type FilterClause = 'where' | 'having';
|
|
13
|
+
/** Output format for `luzmo-filters-changed` and `transformFilters`. */
|
|
14
|
+
export type FiltersFormat = 'canonical' | 'clean';
|
|
15
|
+
/** Presentation of `luzmo-filters`. `rich` is the editor; `text` and `outline` are read-only views. */
|
|
16
|
+
export type FiltersDisplay = 'rich' | 'text' | 'outline';
|
|
17
|
+
/**
|
|
18
|
+
* Every filter array `luzmo-filters` and `reverseTransformFilters` accept: both
|
|
19
|
+
* halves of the public `ItemFilterOutput` / `DashboardFilterOutput` unions.
|
|
20
|
+
*/
|
|
21
|
+
export type FiltersInput = ItemFilterOutput | DashboardFilterOutput;
|
|
22
|
+
/** Every filter array `luzmo-filters` and `transformFilters` can produce. */
|
|
23
|
+
export type FiltersOutput = ItemFilterGroup[] | CleanFilterClauseGroup[];
|
|
24
|
+
/**
|
|
25
|
+
* Detail of `luzmo-filters-changed`, discriminated by `format` so a consumer
|
|
26
|
+
* that never opts into clean output keeps the narrow `ItemFilterGroup[]` type.
|
|
27
|
+
*/
|
|
28
|
+
export type FiltersChangedEventDetail = {
|
|
29
|
+
format: 'canonical';
|
|
30
|
+
filters: ItemFilterGroup[];
|
|
31
|
+
} | {
|
|
32
|
+
format: 'clean';
|
|
33
|
+
filters: CleanFilterClauseGroup[];
|
|
34
|
+
};
|
|
35
|
+
export interface FilterCondition {
|
|
36
|
+
expression?: string;
|
|
37
|
+
parameters?: unknown[];
|
|
38
|
+
/**
|
|
39
|
+
* Canonical leaf metadata, preserved across ingest, edit, and export so that
|
|
40
|
+
* `properties.type` (clause), `properties.ignore` (`ignoredItemIds`), and
|
|
41
|
+
* `properties.id` survive a round trip. Never part of clean output.
|
|
42
|
+
*/
|
|
43
|
+
properties?: ItemFilterProperties;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Nested filter group used by the `luzmo-filters` editor.
|
|
47
|
+
*
|
|
48
|
+
* `condition` uses the same lowercase `'and' | 'or'` values as `ItemFilterGroup`.
|
|
49
|
+
* Nested groups live in `filters`; the public `ItemFilterGroup` shape uses `subGroups`.
|
|
50
|
+
*
|
|
51
|
+
* Every member below `filters` is optional metadata carried through from the
|
|
52
|
+
* ingested group. Only `id` and `clause` reach clean output; the rest stay internal.
|
|
53
|
+
*/
|
|
54
|
+
export interface FilterGroup {
|
|
55
|
+
condition: ItemFilterGroup['condition'];
|
|
56
|
+
filters: (FilterCondition | FilterGroup)[];
|
|
57
|
+
id?: string;
|
|
58
|
+
clause?: FilterClause;
|
|
59
|
+
origin?: ItemFilterGroup['origin'];
|
|
60
|
+
datasetId?: string;
|
|
61
|
+
vizId?: string;
|
|
62
|
+
itemId?: string;
|
|
63
|
+
isDrilldown?: boolean;
|
|
64
|
+
type?: 'injected';
|
|
65
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import '@luzmo/lucero/icon';
|
|
2
|
+
import '@luzmo/lucero/progress-circle';
|
|
3
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
4
|
+
import { LuzmoFormulaBase } from '../../utils/formula/base/formula-base';
|
|
5
|
+
import { FormulaDisplayStore } from '../../utils/formula/store/formula-display-store';
|
|
6
|
+
/**
|
|
7
|
+
* @customElement luzmo-formula
|
|
8
|
+
* @description A read-only display of a formula. The default `display="rich"`
|
|
9
|
+
* renders the expression as inline column / aggregation pills (no CodeMirror);
|
|
10
|
+
* `display="text"` renders it as plain text with an inline column-type icon per
|
|
11
|
+
* column reference. Column references resolve to their names from the datasets
|
|
12
|
+
* provided via `datasetsDataFields` or fetched from the Luzmo API via
|
|
13
|
+
* `dataset-ids` (+ auth). To edit a formula use `luzmo-formula-field` (a single
|
|
14
|
+
* field) or `luzmo-formula-editor` (the full builder with lists).
|
|
15
|
+
*
|
|
16
|
+
* @fires {CustomEvent<ExpressionChangedEventDetail>} luzmo-expression-changed - Fired (debounced) when the formula expression changes; `detail.expression` holds the new expression.
|
|
17
|
+
* @fires {CustomEvent<DatasetsErrorEventDetail>} luzmo-datasets-error - Fired when fetching datasets by id fails.
|
|
18
|
+
*/
|
|
19
|
+
export declare class LuzmoFormula extends LuzmoFormulaBase {
|
|
20
|
+
static styles: import("lit").CSSResult;
|
|
21
|
+
/**
|
|
22
|
+
* Rendering mode. `rich` (default) renders read-only column / aggregation
|
|
23
|
+
* pills; `text` renders plain text with an inline type icon per column. Both
|
|
24
|
+
* are always read-only.
|
|
25
|
+
*/
|
|
26
|
+
display: 'rich' | 'text';
|
|
27
|
+
private readonly _groupingDataMap;
|
|
28
|
+
/** A display uses the lightweight, CodeMirror-free store. */
|
|
29
|
+
protected _createStore(): FormulaDisplayStore;
|
|
30
|
+
/** A display never loads (or needs) the CodeMirror input. */
|
|
31
|
+
protected _shouldLoadInput(): boolean;
|
|
32
|
+
/** A display is read-only and never emits expression changes. */
|
|
33
|
+
protected _canEmitExpression(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Parses the expression into aggregation widgets for the `rich` mode so the
|
|
36
|
+
* recursive renderer can resolve nested content. The `text` mode renders the
|
|
37
|
+
* raw expression directly, so it needs no store transform.
|
|
38
|
+
*/
|
|
39
|
+
protected _applyExternalExpression(): void;
|
|
40
|
+
protected willUpdate(changedProperties: PropertyValues): void;
|
|
41
|
+
protected render(): TemplateResult;
|
|
42
|
+
private _renderPillFormula;
|
|
43
|
+
/**
|
|
44
|
+
* Recursively renders an aggregation-widget-syntax string: column references
|
|
45
|
+
* become column pills, aggregation placeholders become read-only aggregation
|
|
46
|
+
* pills (with their nested content rendered recursively) and everything else
|
|
47
|
+
* (operators, parentheses, literals) renders as plain text.
|
|
48
|
+
*/
|
|
49
|
+
private _renderPillNodes;
|
|
50
|
+
private _renderOperatorText;
|
|
51
|
+
/**
|
|
52
|
+
* Renders a column reference as an inline column pill (data-type icon +
|
|
53
|
+
* localized label). The markup + styles are duplicated here and in the
|
|
54
|
+
* CodeMirror column-pill widget; only the icon/label resolution is shared (via
|
|
55
|
+
* `resolveColumnPresentation`). While datasets are still loading and the column
|
|
56
|
+
* is unresolved, a spinner is shown instead of the (raw column id) label.
|
|
57
|
+
*/
|
|
58
|
+
private _renderColumnPill;
|
|
59
|
+
private _renderAggregationPill;
|
|
60
|
+
/**
|
|
61
|
+
* Renders the expression as plain text, replacing every `{datasetId:columnId}`
|
|
62
|
+
* reference with an inline type icon + column name.
|
|
63
|
+
*/
|
|
64
|
+
private _renderTextFormula;
|
|
65
|
+
private _renderColumnReference;
|
|
66
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type Completion } from '@codemirror/autocomplete';
|
|
2
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
import { LuzmoElement } from '../../utils/base';
|
|
4
|
+
import type { FormulaEditorStore } from '../../utils/formula/store/formula-editor-store';
|
|
5
|
+
import type { FormulaEditorDataset } from '../../types/formula.types';
|
|
6
|
+
import '@luzmo/lucero/progress-circle';
|
|
7
|
+
import './pills/formula-empty-argument-pill';
|
|
8
|
+
import './pills/formula-aggregation';
|
|
9
|
+
declare const LuzmoFormulaCodeMirror_base: (new (...args: any[]) => {
|
|
10
|
+
language: string;
|
|
11
|
+
}) & typeof LuzmoElement;
|
|
12
|
+
/**
|
|
13
|
+
* @customElement luzmo-formula-codemirror
|
|
14
|
+
* @description Internal CodeMirror-backed expression engine for the formula
|
|
15
|
+
* family. Renders columns, empty arguments and aggregation widgets as inline pills,
|
|
16
|
+
* supports drag-to-insert at the cursor and autocompletion. Used as the editing
|
|
17
|
+
* surface of `luzmo-formula-field` and `luzmo-formula-editor`, and inside nested
|
|
18
|
+
* aggregation widgets. Not part of the public API - prefer `luzmo-formula-field`
|
|
19
|
+
* / `luzmo-formula-editor`, which wire its store + autocompletion for you.
|
|
20
|
+
*
|
|
21
|
+
* @fires {CustomEvent<{ content: string }>} luzmo-input-content-changed - Fired when the editor content changes.
|
|
22
|
+
* @fires {CustomEvent<void>} luzmo-input-focused - Fired when the editor gains focus.
|
|
23
|
+
*/
|
|
24
|
+
export declare class LuzmoFormulaCodeMirror extends LuzmoFormulaCodeMirror_base {
|
|
25
|
+
static styles: import("lit").CSSResult;
|
|
26
|
+
/** The shared formula editor store. */
|
|
27
|
+
store?: FormulaEditorStore;
|
|
28
|
+
/** Id of the aggregation widget this input belongs to, or null for the root editor. */
|
|
29
|
+
aggregationWidgetId: string | null;
|
|
30
|
+
/** Datasets used to render column pills. */
|
|
31
|
+
datasets: FormulaEditorDataset[];
|
|
32
|
+
contentLanguage: string;
|
|
33
|
+
placeholder: string;
|
|
34
|
+
readonly: boolean;
|
|
35
|
+
singleLine: boolean;
|
|
36
|
+
hasError: boolean;
|
|
37
|
+
editorHeight?: string;
|
|
38
|
+
/** Number of text lines the input is sized to start with. Defaults to 3. */
|
|
39
|
+
rows: number;
|
|
40
|
+
/** Maximum number of text lines before a scrollbar appears (only when `grows`). */
|
|
41
|
+
maxRows?: number;
|
|
42
|
+
/** Whether the input grows in height with its content (up to `maxRows` if set). */
|
|
43
|
+
grows: boolean;
|
|
44
|
+
/** The autocompletion options to offer. */
|
|
45
|
+
autoCompletionList: Completion[];
|
|
46
|
+
private _view?;
|
|
47
|
+
private _pendingContent;
|
|
48
|
+
private readonly _themeCompartment;
|
|
49
|
+
private readonly _readonlyCompartment;
|
|
50
|
+
get content(): string;
|
|
51
|
+
/** Replaces the whole editor content. */
|
|
52
|
+
setContent(content: string): void;
|
|
53
|
+
focusEditor(): void;
|
|
54
|
+
/** Forces the inline pill decorations to be recomputed. */
|
|
55
|
+
refresh(): void;
|
|
56
|
+
disconnectedCallback(): void;
|
|
57
|
+
/** Rebuilds pill decorations when the store signals a refresh (e.g. loading state changed). */
|
|
58
|
+
private _handleStoreRefresh;
|
|
59
|
+
protected firstUpdated(_changedProperties: PropertyValues): void;
|
|
60
|
+
protected updated(changedProperties: PropertyValues): void;
|
|
61
|
+
/**
|
|
62
|
+
* Read-only extensions, kept in a compartment so toggling `readonly` after the
|
|
63
|
+
* view is created can reconfigure them. `readOnly` blocks edits but the view
|
|
64
|
+
* stays focusable and keeps painting a blinking caret; `editable.of(false)`
|
|
65
|
+
* also drops the caret (and the contenteditable), which is what a read-only
|
|
66
|
+
* rendering should show.
|
|
67
|
+
*/
|
|
68
|
+
private _readonlyExtensions;
|
|
69
|
+
private _buildDynamicTheme;
|
|
70
|
+
private _buildExtensions;
|
|
71
|
+
private _buildDecorations;
|
|
72
|
+
private _autoComplete;
|
|
73
|
+
private _cleanupDroppable;
|
|
74
|
+
private _attachDroppable;
|
|
75
|
+
private _canDrop;
|
|
76
|
+
private _handleDrop;
|
|
77
|
+
protected render(): TemplateResult;
|
|
78
|
+
}
|
|
79
|
+
export {};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import '@luzmo/lucero/icon';
|
|
2
|
+
import '@luzmo/lucero/overlay';
|
|
3
|
+
import '@luzmo/lucero/popover';
|
|
4
|
+
import '@luzmo/lucero/select';
|
|
5
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
6
|
+
import { LuzmoElement } from '../../../../utils/base';
|
|
7
|
+
import type { FormulaEditorStore } from '../../../../utils/formula/store/formula-editor-store';
|
|
8
|
+
import { type AggregationWidgetConfig } from '../../../../types/formula.types';
|
|
9
|
+
declare const LuzmoFormulaAggregation_base: (new (...args: any[]) => {
|
|
10
|
+
language: string;
|
|
11
|
+
}) & typeof LuzmoElement;
|
|
12
|
+
/**
|
|
13
|
+
* @customElement luzmo-formula-aggregation
|
|
14
|
+
* @description A nested aggregation widget rendered inline inside the formula
|
|
15
|
+
* editor: an aggregation-function selector, a grouping-scope selector, a nested
|
|
16
|
+
* expression input and (for `GROUPINEX`) an include / exclude column panel.
|
|
17
|
+
*/
|
|
18
|
+
export declare class LuzmoFormulaAggregation extends LuzmoFormulaAggregation_base {
|
|
19
|
+
static styles: import("lit").CSSResult;
|
|
20
|
+
/** Configuration for this aggregation widget (set by the CodeMirror widget). */
|
|
21
|
+
config: AggregationWidgetConfig['data'];
|
|
22
|
+
/** The shared formula editor store (set by the CodeMirror widget). */
|
|
23
|
+
store?: FormulaEditorStore;
|
|
24
|
+
private _nestedCodeMirror?;
|
|
25
|
+
private _groupingOverlay?;
|
|
26
|
+
private _functionSelect?;
|
|
27
|
+
/** The element the focus/blur listeners are currently bound to, for clean teardown. */
|
|
28
|
+
private _functionFocusTarget?;
|
|
29
|
+
/**
|
|
30
|
+
* Explicit page override for the grouping popover. When `null` the page is
|
|
31
|
+
* derived from the current grouping (include/exclude scope -> the detail page,
|
|
32
|
+
* any other scope -> the scope chooser). Deriving the page - rather than
|
|
33
|
+
* resetting a stored page on open/close - keeps the (still hidden) popover on
|
|
34
|
+
* the correct page, so reopening a configured include/exclude pill no longer
|
|
35
|
+
* flashes the scope chooser for a frame.
|
|
36
|
+
*/
|
|
37
|
+
private _groupingPageOverride;
|
|
38
|
+
/** Autocompletion options offered while typing inside this aggregation's nested input. */
|
|
39
|
+
private _autoCompletionList;
|
|
40
|
+
/** Whether the CodeMirror-backed nested input module has finished loading. */
|
|
41
|
+
private _codeMirrorLoaded;
|
|
42
|
+
/**
|
|
43
|
+
* Whether the aggregation-function select currently holds keyboard-driven focus.
|
|
44
|
+
* The select's focusable button lives in its shadow DOM, so a pure CSS
|
|
45
|
+
* `:focus-visible` can't reach it from here; instead we read the browser's own
|
|
46
|
+
* `:focus-visible` verdict off the focused element so the focus ring only shows
|
|
47
|
+
* for keyboard users (not after a mouse switch).
|
|
48
|
+
*/
|
|
49
|
+
private _functionKeyboardFocus;
|
|
50
|
+
private readonly _groupingTriggerId;
|
|
51
|
+
private readonly _aggregationDataMap;
|
|
52
|
+
private readonly _groupingDataMap;
|
|
53
|
+
connectedCallback(): void;
|
|
54
|
+
disconnectedCallback(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Binds the keyboard-focus tracking to the `.function-select` element (not the
|
|
57
|
+
* host). The select swallows the bubbling focusin/focusout, so we use the
|
|
58
|
+
* capturing focus/blur events; and they must be bound to `.function-select`
|
|
59
|
+
* rather than the host so focus moving *within* the pill (e.g. Shift+Tab from
|
|
60
|
+
* the nested value input into the select) still crosses into the listener's
|
|
61
|
+
* subtree and is detected. Idempotent and safe to call before first render.
|
|
62
|
+
*/
|
|
63
|
+
private _bindFunctionFocusListeners;
|
|
64
|
+
private _unbindFunctionFocusListeners;
|
|
65
|
+
private _handleFunctionFocus;
|
|
66
|
+
private _handleFunctionBlur;
|
|
67
|
+
private _handleWidgetsChanged;
|
|
68
|
+
/**
|
|
69
|
+
* Datasets reach the pill once (via `config.linkedDatasets`) when the widget
|
|
70
|
+
* is created. When the editor loads its datasets asynchronously the store is
|
|
71
|
+
* updated later, so this re-resolves the nested column labels and completions.
|
|
72
|
+
*/
|
|
73
|
+
private _handleDatasetsRefresh;
|
|
74
|
+
/** The datasets to use for the nested input: the freshly loaded store ones take precedence. */
|
|
75
|
+
private get _linkedDatasets();
|
|
76
|
+
private _recomputeAutoCompletion;
|
|
77
|
+
private get _widget();
|
|
78
|
+
/** The grouping popover page: an explicit override (e.g. after pressing back), else derived from the grouping scope. */
|
|
79
|
+
private get _groupingPage();
|
|
80
|
+
protected willUpdate(changedProperties: PropertyValues): void;
|
|
81
|
+
/** Lazily loads the CodeMirror-backed input used for this aggregation's nested expression. */
|
|
82
|
+
private _ensureCodeMirrorLoaded;
|
|
83
|
+
protected firstUpdated(): void;
|
|
84
|
+
protected updated(_changedProperties: PropertyValues): void;
|
|
85
|
+
/**
|
|
86
|
+
* When this pill was just created via a list insert / autocomplete, move the
|
|
87
|
+
* cursor into its nested input so the user can immediately keep typing.
|
|
88
|
+
*/
|
|
89
|
+
private _focusNestedIfPending;
|
|
90
|
+
private _updateWidget;
|
|
91
|
+
private _handleFunctionChange;
|
|
92
|
+
private _handleGroupingOptionClick;
|
|
93
|
+
private _handleGroupingBack;
|
|
94
|
+
private _handleGroupingMenuOpened;
|
|
95
|
+
private _handleGroupingMenuClosed;
|
|
96
|
+
/**
|
|
97
|
+
* Dismiss the grouping overlay on an outside pointerdown.
|
|
98
|
+
*
|
|
99
|
+
* The overlay is a `type="manual"` popover (see render) so the browser's native
|
|
100
|
+
* Popover-API light-dismiss never collapses it when a nested include / exclude
|
|
101
|
+
* select opens its own `auto` popover - the bug this works around. Manual
|
|
102
|
+
* overlays also opt out of the overlay stack's outside-pointer dismissal, so we
|
|
103
|
+
* reinstate it here. Clicks inside the popover - which include the DOM-nested
|
|
104
|
+
* include / exclude selects and their dropdowns - keep it open; a pointerdown on
|
|
105
|
+
* the trigger closes it (the click controller suppresses its own toggle while
|
|
106
|
+
* the overlay is already open). Escape still closes it through the stack's
|
|
107
|
+
* keydown handler, which does dismiss manual overlays.
|
|
108
|
+
*/
|
|
109
|
+
private _handleDocumentPointerdown;
|
|
110
|
+
/**
|
|
111
|
+
* Whether a pointerdown landed inside the grouping popover content. The popover
|
|
112
|
+
* content is promoted to the top layer (native popover) but stays in the DOM
|
|
113
|
+
* tree, so we match the popover / panel by class along the composed path:
|
|
114
|
+
* after a nested select opens (and re-renders) an element reference can stop
|
|
115
|
+
* resolving, but the elements are still present in the click's composed path.
|
|
116
|
+
*/
|
|
117
|
+
private _isPointerInsidePopover;
|
|
118
|
+
private _closeGroupingMenu;
|
|
119
|
+
private _handleNestedContentChanged;
|
|
120
|
+
private _handleIncludeExcludeChange;
|
|
121
|
+
private _renderGroupingTypesPage;
|
|
122
|
+
private _renderIncludeExcludePage;
|
|
123
|
+
protected render(): TemplateResult;
|
|
124
|
+
}
|
|
125
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
2
|
+
import { LuzmoElement } from '../../../../utils/base';
|
|
3
|
+
import type { FormulaEditorStore } from '../../../../utils/formula/store/formula-editor-store';
|
|
4
|
+
declare const LuzmoFormulaEmptyArgumentPill_base: (new (...args: any[]) => {
|
|
5
|
+
language: string;
|
|
6
|
+
}) & typeof LuzmoElement;
|
|
7
|
+
/**
|
|
8
|
+
* @customElement luzmo-formula-empty-argument-pill
|
|
9
|
+
* @description An empty argument rendered inline inside the formula editor. Accepts
|
|
10
|
+
* dropped columns / functions / aggregations and lets the user type a literal value.
|
|
11
|
+
*/
|
|
12
|
+
export declare class LuzmoFormulaEmptyArgumentPill extends LuzmoFormulaEmptyArgumentPill_base {
|
|
13
|
+
static styles: import("lit").CSSResult;
|
|
14
|
+
emptyArgumentId: string;
|
|
15
|
+
parentAggregationWidgetId: string | null;
|
|
16
|
+
store?: FormulaEditorStore;
|
|
17
|
+
private _cleanupDroppable;
|
|
18
|
+
connectedCallback(): void;
|
|
19
|
+
disconnectedCallback(): void;
|
|
20
|
+
protected firstUpdated(_changedProperties: PropertyValues): void;
|
|
21
|
+
private _attachDroppable;
|
|
22
|
+
private _canDrop;
|
|
23
|
+
private _handleDrop;
|
|
24
|
+
private _handleFocus;
|
|
25
|
+
private _handleInput;
|
|
26
|
+
protected render(): TemplateResult;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { LuzmoFormulaEmptyArgumentPill } from './formula-empty-argument-pill';
|
|
2
|
+
declare global {
|
|
3
|
+
interface HTMLElementTagNameMap {
|
|
4
|
+
'luzmo-formula-empty-argument-pill': LuzmoFormulaEmptyArgumentPill;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export { LuzmoFormulaEmptyArgumentPill } from './formula-empty-argument-pill';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import '@luzmo/lucero/action-button';
|
|
2
|
+
import '@luzmo/lucero/field-label';
|
|
3
|
+
import '@luzmo/lucero/icon';
|
|
4
|
+
import '@luzmo/lucero/select';
|
|
5
|
+
import '@luzmo/lucero/tooltip';
|
|
6
|
+
import { type TemplateResult } from 'lit';
|
|
7
|
+
import { type ElementSize } from '../../../utils/base';
|
|
8
|
+
import type { FormulaEditorDataset } from '../../../types/formula.types';
|
|
9
|
+
export interface IncludeExcludePanelParams {
|
|
10
|
+
/** The linked datasets whose columns can be included / excluded. */
|
|
11
|
+
datasets: FormulaEditorDataset[];
|
|
12
|
+
/** Columns to always group by, as full `datasetId:columnId` references. */
|
|
13
|
+
includedColumns: string[];
|
|
14
|
+
/** Columns to never group by, as full `datasetId:columnId` references. */
|
|
15
|
+
excludedColumns: string[];
|
|
16
|
+
/** Language used to localize column names. */
|
|
17
|
+
contentLanguage: string;
|
|
18
|
+
/** Size of the surrounding editor. */
|
|
19
|
+
size?: ElementSize;
|
|
20
|
+
/** Renders the picker read-only (no adding, removing or moving). */
|
|
21
|
+
readonly?: boolean;
|
|
22
|
+
/** Shows a back button in the header to return to the grouping scope chooser. */
|
|
23
|
+
showBack?: boolean;
|
|
24
|
+
/** Called with the next included / excluded selection whenever it changes. */
|
|
25
|
+
onChange: (includedColumns: string[], excludedColumns: string[]) => void;
|
|
26
|
+
/** Called when the back button is activated. */
|
|
27
|
+
onBack: () => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Renders the included / excluded column picker for a `GROUPINEX` aggregation
|
|
31
|
+
* grouping. Replaces the former `luzmo-formula-include-exclude-panel` element:
|
|
32
|
+
* stateless markup driven by the aggregation pill, which owns the widget update.
|
|
33
|
+
*
|
|
34
|
+
* The root carries the `include-exclude-panel` class so the aggregation pill can
|
|
35
|
+
* detect pointerdowns inside the (DOM-nested) panel and keep its grouping
|
|
36
|
+
* popover open.
|
|
37
|
+
*/
|
|
38
|
+
export declare function renderIncludeExcludePanel(params: IncludeExcludePanelParams): TemplateResult;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Placement } from '@luzmo/lucero';
|
|
2
|
+
import '@luzmo/lucero/icon';
|
|
3
|
+
import '@luzmo/lucero/tooltip';
|
|
4
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
5
|
+
import { LuzmoElement } from '../../utils/base';
|
|
6
|
+
declare const LuzmoFormulaDraggableField_base: typeof LuzmoElement & {
|
|
7
|
+
new (...args: any[]): import("../../utils/base/sized-mixin").SizedElementInterface;
|
|
8
|
+
prototype: import("../../utils/base/sized-mixin").SizedElementInterface;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* @customElement luzmo-formula-draggable-field
|
|
12
|
+
* @description A draggable field that can be dragged onto a drop target or
|
|
13
|
+
* activated (double-click / keyboard) to insert its value. An optional icon can
|
|
14
|
+
* be slotted (slot name `icon`) after the drag handle. A tooltip is shown on
|
|
15
|
+
* hover / focus when either the `description` property is set or rich content is
|
|
16
|
+
* provided via the `tooltip` slot (the slot takes precedence); its position is
|
|
17
|
+
* controlled by `tooltip-placement`. The `highlight` variant background can be
|
|
18
|
+
* themed via `--luzmo-formula-draggable-field-background`.
|
|
19
|
+
*
|
|
20
|
+
* Slots: `icon` (optional icon after the drag handle), `tooltip` (optional rich
|
|
21
|
+
* tooltip content shown on hover / focus).
|
|
22
|
+
*
|
|
23
|
+
* @fires {CustomEvent<FormulaDraggableFieldActivateEventDetail>} luzmo-formula-draggable-field-activate - Fired on double-click or keyboard activation.
|
|
24
|
+
* @fires {CustomEvent<FormulaDraggableFieldDescribeEventDetail>} luzmo-formula-draggable-field-describe - Fired on hover / focus.
|
|
25
|
+
*/
|
|
26
|
+
export declare class LuzmoFormulaDraggableField extends LuzmoFormulaDraggableField_base {
|
|
27
|
+
static styles: import("lit").CSSResult;
|
|
28
|
+
/** Free-form, consumer-defined category carried in the drag payload and events. */
|
|
29
|
+
kind: string;
|
|
30
|
+
/** Identifier carried in the drag payload and events. */
|
|
31
|
+
value: string;
|
|
32
|
+
label: string;
|
|
33
|
+
/** Optional explanation shown as a hover / focus tooltip on the field. */
|
|
34
|
+
description: string;
|
|
35
|
+
/** Placement of the hover / focus tooltip relative to the field. */
|
|
36
|
+
tooltipPlacement: Placement;
|
|
37
|
+
/** Visual variant: `default` (transparent) or `highlight` (filled background). */
|
|
38
|
+
variant: 'default' | 'highlight';
|
|
39
|
+
disabled: boolean;
|
|
40
|
+
private _hasIcon;
|
|
41
|
+
private _hasTooltipSlot;
|
|
42
|
+
private _cleanupDraggable;
|
|
43
|
+
private _handleIconSlotChange;
|
|
44
|
+
private _handleTooltipSlotChange;
|
|
45
|
+
disconnectedCallback(): void;
|
|
46
|
+
protected firstUpdated(_changedProperties: PropertyValues): void;
|
|
47
|
+
private _buildDragPreview;
|
|
48
|
+
private _handleClick;
|
|
49
|
+
private _activate;
|
|
50
|
+
private _describe;
|
|
51
|
+
protected render(): TemplateResult;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LuzmoFormulaDraggableField } from './formula-draggable-field';
|
|
2
|
+
declare global {
|
|
3
|
+
interface HTMLElementTagNameMap {
|
|
4
|
+
'luzmo-formula-draggable-field': LuzmoFormulaDraggableField;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export { LuzmoFormulaDraggableField } from './formula-draggable-field';
|
|
8
|
+
export type { FormulaDraggableFieldPayload, FormulaDraggableFieldActivateEventDetail, FormulaDraggableFieldDescribeEventDetail } from './types';
|