@luzmo/analytics-components-kit 1.0.8-beta.6 → 1.0.8-beta.7
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/index.cjs +1 -1
- package/components/index.js +1 -1
- package/components/viz-item-menu/index.cjs +1 -1
- package/components/viz-item-menu/index.js +1 -1
- package/components/viz-item-menu/viz-item-menu.d.ts +3 -0
- package/components/{viz-item-menu-Ht6bklNL.js → viz-item-menu-B7yRaSAU.js} +1 -1
- package/components/{viz-item-menu-XHh4qhtn.cjs → viz-item-menu-hLdU-02Q.cjs} +1 -1
- package/custom-elements.json +14 -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 -98
- package/angular/components/ai-chat.ts +0 -440
- package/angular/components/ai-interaction-textarea.ts +0 -283
- 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 -212
- 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 -198
- 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 -107
- package/angular/components/display-settings.ts +0 -227
- package/angular/components/filter-expression-picker.ts +0 -168
- package/angular/components/filter-item.ts +0 -175
- 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 -209
- 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 -39
- package/angular/esm/components/ai-chat-empty-state.js +0 -99
- package/angular/esm/components/ai-chat.d.ts +0 -147
- package/angular/esm/components/ai-chat.js +0 -455
- package/angular/esm/components/ai-interaction-textarea.d.ts +0 -106
- package/angular/esm/components/ai-interaction-textarea.js +0 -305
- 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 -81
- package/angular/esm/components/data-fields-select.js +0 -227
- 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 -70
- package/angular/esm/components/dataset-selector-row.js +0 -197
- 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 -44
- package/angular/esm/components/display-settings-period-over-period.js +0 -107
- 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 -63
- package/angular/esm/components/filter-item.js +0 -187
- 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 -75
- package/angular/esm/components/filters.js +0 -215
- 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/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/index.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/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/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 -39
- 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/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
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
|
|
2
|
-
import '@luzmo/analytics-components-kit/item-slot-drop-panel';
|
|
3
|
-
import type { LuzmoItemSlotDropPanel as LuzmoItemSlotDropPanelHostElement, SlotConstraintTriggeredEventDetail, SlotsContentsChangedEventDetail } from '@luzmo/analytics-components-kit/item-slot-drop-panel';
|
|
4
|
-
export type { DatasetConstraintTriggeredEventDetail, SlotConstraintTriggeredEventDetail, SlotsContentsChangedEventDetail } from '@luzmo/analytics-components-kit/item-slot-drop-panel';
|
|
5
|
-
import type { Placement } from '@floating-ui/dom';
|
|
6
|
-
import type { SlotConfig, SlotPositioningConfig, VizItemSlot, VizItemType } from '@luzmo/dashboard-contents-types';
|
|
7
|
-
|
|
8
|
-
@Component({
|
|
9
|
-
selector: 'luzmo-item-slot-drop-panel',
|
|
10
|
-
exportAs: 'luzmoItemSlotDropPanel',
|
|
11
|
-
standalone: true,
|
|
12
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13
|
-
template: '<ng-content />'
|
|
14
|
-
})
|
|
15
|
-
/**
|
|
16
|
-
* Angular wrapper component for <luzmo-item-slot-drop-panel>
|
|
17
|
-
*/
|
|
18
|
-
export class LuzmoItemSlotDropPanel implements OnChanges {
|
|
19
|
-
private readonly elementRef = inject<ElementRef<LuzmoItemSlotDropPanelHostElement>>(ElementRef);
|
|
20
|
-
private readonly renderer = inject<Renderer2>(Renderer2);
|
|
21
|
-
private readonly destroyRef = inject<DestroyRef>(DestroyRef);
|
|
22
|
-
private readonly host = this.elementRef.nativeElement;
|
|
23
|
-
private readonly listenerCleanup: Array<() => void> = [];
|
|
24
|
-
|
|
25
|
-
/** The underlying custom element instance. Use to call imperative methods. */
|
|
26
|
-
get nativeElement(): LuzmoItemSlotDropPanelHostElement {
|
|
27
|
-
return this.host;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** The type of the item (e.g., 'bar-chart', 'line-chart', 'area-chart') */
|
|
31
|
-
@Input({ alias: 'itemType' })
|
|
32
|
-
itemType?: VizItemType | string;
|
|
33
|
-
|
|
34
|
-
/** The language to use for locale-aware formatting and labels */
|
|
35
|
-
@Input({ alias: 'contentLanguage' })
|
|
36
|
-
contentLanguage?: string;
|
|
37
|
-
|
|
38
|
-
/** Optional custom slots configuration (overrides loaded config from item-type). Each slot defines what data types it accepts and its behavior. */
|
|
39
|
-
@Input({ alias: 'slotsConfiguration' })
|
|
40
|
-
slotsConfiguration?: SlotConfig[];
|
|
41
|
-
|
|
42
|
-
/** Optional custom positioning configuration for grid layout (overrides loaded config). Only used when `positioned` attribute is true. */
|
|
43
|
-
@Input({ alias: 'positioningConfiguration' })
|
|
44
|
-
positioningConfiguration?: SlotPositioningConfig;
|
|
45
|
-
|
|
46
|
-
/** The contents of all slots. Each entry maps a slot name to its content items. Content items typically contain column/formula references and dataset IDs. */
|
|
47
|
-
@Input({ alias: 'slotsContents' })
|
|
48
|
-
slotsContents?: VizItemSlot[];
|
|
49
|
-
|
|
50
|
-
/** Whether to use grid-based positioning for slots When true, loads the positioning config and renders slots in a CSS grid */
|
|
51
|
-
@Input({ alias: 'positioned', transform: booleanAttribute })
|
|
52
|
-
positioned?: boolean;
|
|
53
|
-
|
|
54
|
-
/** Boundary element selector for drag operations */
|
|
55
|
-
@Input({ alias: 'dragBoundary' })
|
|
56
|
-
dragBoundary?: string;
|
|
57
|
-
|
|
58
|
-
/** Placement of the slot menu popover */
|
|
59
|
-
@Input({ alias: 'slotMenuPlacement' })
|
|
60
|
-
slotMenuPlacement?: Placement;
|
|
61
|
-
|
|
62
|
-
/** Whether to hide the delete button on item slot drop targets */
|
|
63
|
-
@Input({ alias: 'hideDelete', transform: booleanAttribute })
|
|
64
|
-
hideDelete?: boolean;
|
|
65
|
-
|
|
66
|
-
/** Whether to hide the configuration button on item slot drop targets */
|
|
67
|
-
@Input({ alias: 'hideConfiguration', transform: booleanAttribute })
|
|
68
|
-
hideConfiguration?: boolean;
|
|
69
|
-
|
|
70
|
-
/** Whether the item slot drop targets grow to full width */
|
|
71
|
-
@Input({ alias: 'grows', transform: booleanAttribute })
|
|
72
|
-
grows?: boolean;
|
|
73
|
-
|
|
74
|
-
/** Controls how slot constraints are handled - 'auto': Constraints are applied immediately (default) - 'event-only': Emit event with constraint details, let consumer decide */
|
|
75
|
-
@Input({ alias: 'constraintMode' })
|
|
76
|
-
constraintMode?: 'auto' | 'event-only';
|
|
77
|
-
|
|
78
|
-
/** The type of menu interaction for item slot drop targets */
|
|
79
|
-
@Input({ alias: 'slotMenuMode' })
|
|
80
|
-
slotMenuMode?: 'default' | 'draggable' | 'event-only';
|
|
81
|
-
|
|
82
|
-
/** The API URL of the databroker */
|
|
83
|
-
@Input({ alias: 'apiUrl' })
|
|
84
|
-
apiUrl?: string;
|
|
85
|
-
|
|
86
|
-
/** The auth key of the databroker */
|
|
87
|
-
@Input({ alias: 'authKey' })
|
|
88
|
-
authKey?: string;
|
|
89
|
-
|
|
90
|
-
/** The auth token of the databroker */
|
|
91
|
-
@Input({ alias: 'authToken' })
|
|
92
|
-
authToken?: string;
|
|
93
|
-
|
|
94
|
-
/** The main container for all slots */
|
|
95
|
-
@Input({ alias: 'slotsPanel' })
|
|
96
|
-
slotspanel?: string;
|
|
97
|
-
|
|
98
|
-
/** The grid container when positioned mode is enabled */
|
|
99
|
-
@Input({ alias: 'slotsGrid' })
|
|
100
|
-
slotsgrid?: string;
|
|
101
|
-
|
|
102
|
-
/** The grid cell wrapper for each slot when positioned */
|
|
103
|
-
@Input({ alias: 'slotCell' })
|
|
104
|
-
slotcell?: string;
|
|
105
|
-
|
|
106
|
-
/** The item slot drop element */
|
|
107
|
-
@Input({ alias: 'itemSlotDrop' })
|
|
108
|
-
itemslotdrop?: string;
|
|
109
|
-
|
|
110
|
-
/** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
|
|
111
|
-
@Input({ alias: 'language' })
|
|
112
|
-
language?: string;
|
|
113
|
-
|
|
114
|
-
/** The size of the element */
|
|
115
|
-
@Input({ alias: 'size' })
|
|
116
|
-
size?: 's' | 'm' | 'l' | 'xl';
|
|
117
|
-
|
|
118
|
-
/** Emitted when constraint-mode is 'event-only' and a change would trigger constraints */
|
|
119
|
-
readonly luzmoSlotConstraintTriggered = output<CustomEvent<SlotConstraintTriggeredEventDetail>>({ alias: 'luzmoSlotConstraintTriggered' });
|
|
120
|
-
|
|
121
|
-
/** Announces that the slots contents have changed */
|
|
122
|
-
readonly luzmoSlotsContentsChanged = output<CustomEvent<SlotsContentsChangedEventDetail>>({ alias: 'luzmoSlotsContentsChanged' });
|
|
123
|
-
|
|
124
|
-
constructor() {
|
|
125
|
-
this.bindEvents();
|
|
126
|
-
this.destroyRef.onDestroy(() => {
|
|
127
|
-
for (const cleanup of this.listenerCleanup) {
|
|
128
|
-
cleanup();
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
ngOnChanges(changes: SimpleChanges): void {
|
|
134
|
-
for (const key of Object.keys(changes)) {
|
|
135
|
-
switch (key) {
|
|
136
|
-
case 'itemType':
|
|
137
|
-
this.setHostProperty('itemType', changes['itemType'].currentValue);
|
|
138
|
-
break;
|
|
139
|
-
case 'contentLanguage':
|
|
140
|
-
this.setHostProperty('contentLanguage', changes['contentLanguage'].currentValue);
|
|
141
|
-
break;
|
|
142
|
-
case 'slotsConfiguration':
|
|
143
|
-
this.setHostProperty('slotsConfiguration', changes['slotsConfiguration'].currentValue);
|
|
144
|
-
break;
|
|
145
|
-
case 'positioningConfiguration':
|
|
146
|
-
this.setHostProperty('positioningConfiguration', changes['positioningConfiguration'].currentValue);
|
|
147
|
-
break;
|
|
148
|
-
case 'slotsContents':
|
|
149
|
-
this.setHostProperty('slotsContents', changes['slotsContents'].currentValue);
|
|
150
|
-
break;
|
|
151
|
-
case 'positioned':
|
|
152
|
-
this.setHostProperty('positioned', changes['positioned'].currentValue);
|
|
153
|
-
break;
|
|
154
|
-
case 'dragBoundary':
|
|
155
|
-
this.setHostProperty('dragBoundary', changes['dragBoundary'].currentValue);
|
|
156
|
-
break;
|
|
157
|
-
case 'slotMenuPlacement':
|
|
158
|
-
this.setHostProperty('slotMenuPlacement', changes['slotMenuPlacement'].currentValue);
|
|
159
|
-
break;
|
|
160
|
-
case 'hideDelete':
|
|
161
|
-
this.setHostProperty('hideDelete', changes['hideDelete'].currentValue);
|
|
162
|
-
break;
|
|
163
|
-
case 'hideConfiguration':
|
|
164
|
-
this.setHostProperty('hideConfiguration', changes['hideConfiguration'].currentValue);
|
|
165
|
-
break;
|
|
166
|
-
case 'grows':
|
|
167
|
-
this.setHostProperty('grows', changes['grows'].currentValue);
|
|
168
|
-
break;
|
|
169
|
-
case 'constraintMode':
|
|
170
|
-
this.setHostProperty('constraintMode', changes['constraintMode'].currentValue);
|
|
171
|
-
break;
|
|
172
|
-
case 'slotMenuMode':
|
|
173
|
-
this.setHostProperty('slotMenuMode', changes['slotMenuMode'].currentValue);
|
|
174
|
-
break;
|
|
175
|
-
case 'apiUrl':
|
|
176
|
-
this.setHostProperty('apiUrl', changes['apiUrl'].currentValue);
|
|
177
|
-
break;
|
|
178
|
-
case 'authKey':
|
|
179
|
-
this.setHostProperty('authKey', changes['authKey'].currentValue);
|
|
180
|
-
break;
|
|
181
|
-
case 'authToken':
|
|
182
|
-
this.setHostProperty('authToken', changes['authToken'].currentValue);
|
|
183
|
-
break;
|
|
184
|
-
case 'slotspanel':
|
|
185
|
-
this.setHostProperty('slots-panel', changes['slotspanel'].currentValue);
|
|
186
|
-
break;
|
|
187
|
-
case 'slotsgrid':
|
|
188
|
-
this.setHostProperty('slots-grid', changes['slotsgrid'].currentValue);
|
|
189
|
-
break;
|
|
190
|
-
case 'slotcell':
|
|
191
|
-
this.setHostProperty('slot-cell', changes['slotcell'].currentValue);
|
|
192
|
-
break;
|
|
193
|
-
case 'itemslotdrop':
|
|
194
|
-
this.setHostProperty('item-slot-drop', changes['itemslotdrop'].currentValue);
|
|
195
|
-
break;
|
|
196
|
-
case 'language':
|
|
197
|
-
this.setHostProperty('language', changes['language'].currentValue);
|
|
198
|
-
break;
|
|
199
|
-
case 'size':
|
|
200
|
-
this.setHostProperty('size', changes['size'].currentValue);
|
|
201
|
-
break;
|
|
202
|
-
default:
|
|
203
|
-
break;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Forward a wrapper @Input to the underlying host element via Renderer2 so
|
|
210
|
-
* the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
|
|
211
|
-
* Unlike a "skip undefined" guard, this lets consumers reset values back to
|
|
212
|
-
* undefined / null by clearing their bindings.
|
|
213
|
-
*/
|
|
214
|
-
private setHostProperty(key: string, value: unknown): void {
|
|
215
|
-
this.renderer.setProperty(this.host, key, value);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
private bindEvents(): void {
|
|
219
|
-
this.listenerCleanup.push(
|
|
220
|
-
this.renderer.listen(this.host, 'luzmo-slot-constraint-triggered', (event: Event) => {
|
|
221
|
-
const typed = event as CustomEvent<SlotConstraintTriggeredEventDetail>;
|
|
222
|
-
this.luzmoSlotConstraintTriggered.emit(typed);
|
|
223
|
-
})
|
|
224
|
-
);
|
|
225
|
-
|
|
226
|
-
this.listenerCleanup.push(
|
|
227
|
-
this.renderer.listen(this.host, 'luzmo-slots-contents-changed', (event: Event) => {
|
|
228
|
-
const typed = event as CustomEvent<SlotsContentsChangedEventDetail>;
|
|
229
|
-
this.luzmoSlotsContentsChanged.emit(typed);
|
|
230
|
-
})
|
|
231
|
-
);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/** The underlying custom element type for LuzmoItemSlotDropPanel */
|
|
236
|
-
export type LuzmoItemSlotDropPanelElement = LuzmoItemSlotDropPanelHostElement;
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
|
|
2
|
-
import '@luzmo/analytics-components-kit/item-slot-drop';
|
|
3
|
-
import type { LuzmoItemSlotDrop as LuzmoItemSlotDropHostElement, InfoVisibilityChangedEventDetail, SlotConfig, SlotContentsChangedEventDetail, SlotMenuActiveEventDetail, SlotMenuHighlightEventDetail } from '@luzmo/analytics-components-kit/item-slot-drop';
|
|
4
|
-
export type { InfoVisibilityChangedEventDetail, SlotConfig, SlotContentsChangedEventDetail, SlotMenuActiveEventDetail, SlotMenuHighlightEventDetail } from '@luzmo/analytics-components-kit/item-slot-drop';
|
|
5
|
-
import type { SlotName, VizItemSlot, VizItemType } from '@luzmo/dashboard-contents-types';
|
|
6
|
-
import type { Placement } from '@luzmo/lucero';
|
|
7
|
-
|
|
8
|
-
@Component({
|
|
9
|
-
selector: 'luzmo-item-slot-drop',
|
|
10
|
-
exportAs: 'luzmoItemSlotDrop',
|
|
11
|
-
standalone: true,
|
|
12
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13
|
-
template: '<ng-content />'
|
|
14
|
-
})
|
|
15
|
-
/**
|
|
16
|
-
* Angular wrapper component for <luzmo-item-slot-drop>
|
|
17
|
-
*/
|
|
18
|
-
export class LuzmoItemSlotDrop implements OnChanges {
|
|
19
|
-
private readonly elementRef = inject<ElementRef<LuzmoItemSlotDropHostElement>>(ElementRef);
|
|
20
|
-
private readonly renderer = inject<Renderer2>(Renderer2);
|
|
21
|
-
private readonly destroyRef = inject<DestroyRef>(DestroyRef);
|
|
22
|
-
private readonly host = this.elementRef.nativeElement;
|
|
23
|
-
private readonly listenerCleanup: Array<() => void> = [];
|
|
24
|
-
|
|
25
|
-
/** The underlying custom element instance. Use to call imperative methods. */
|
|
26
|
-
get nativeElement(): LuzmoItemSlotDropHostElement {
|
|
27
|
-
return this.host;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** The visualization item type that determines the available slots and their configuration. */
|
|
31
|
-
@Input({ alias: 'itemType' })
|
|
32
|
-
itemType?: VizItemType;
|
|
33
|
-
|
|
34
|
-
/** The name of the slot this drop target represents. */
|
|
35
|
-
@Input({ alias: 'slotName' })
|
|
36
|
-
slotName?: SlotName;
|
|
37
|
-
|
|
38
|
-
/** The configuration for this slot (accepted field types, options, label, etc.). */
|
|
39
|
-
@Input({ alias: 'slotConfiguration' })
|
|
40
|
-
slotConfiguration?: SlotConfig;
|
|
41
|
-
|
|
42
|
-
/** The full set of slot contents for the item; the entry matching `slotName` is rendered here. */
|
|
43
|
-
@Input({ alias: 'slotsContents' })
|
|
44
|
-
slotsContents?: VizItemSlot[];
|
|
45
|
-
|
|
46
|
-
/** Overrides the slot's default label. */
|
|
47
|
-
@Input({ alias: 'label' })
|
|
48
|
-
label?: string;
|
|
49
|
-
|
|
50
|
-
/** The language to use for locale-aware formatting of content labels (e.g. column names). When different from `language`, UI chrome uses `language` while data labels use `contentLanguage`. */
|
|
51
|
-
@Input({ alias: 'contentLanguage' })
|
|
52
|
-
contentLanguage?: string;
|
|
53
|
-
|
|
54
|
-
/** CSS selector for the boundary element that constrains dragging within the slot menu. */
|
|
55
|
-
@Input({ alias: 'dragBoundary' })
|
|
56
|
-
dragBoundary?: string;
|
|
57
|
-
|
|
58
|
-
/** Renders the slot vertically. */
|
|
59
|
-
@Input({ alias: 'rotate', transform: booleanAttribute })
|
|
60
|
-
rotate?: boolean;
|
|
61
|
-
|
|
62
|
-
/** The API URL of the databroker */
|
|
63
|
-
@Input({ alias: 'apiUrl' })
|
|
64
|
-
apiUrl?: string;
|
|
65
|
-
|
|
66
|
-
/** The auth key of the databroker */
|
|
67
|
-
@Input({ alias: 'authKey' })
|
|
68
|
-
authKey?: string;
|
|
69
|
-
|
|
70
|
-
/** The auth token of the databroker */
|
|
71
|
-
@Input({ alias: 'authToken' })
|
|
72
|
-
authToken?: string;
|
|
73
|
-
|
|
74
|
-
/** The type of config interaction */
|
|
75
|
-
@Input({ alias: 'menu' })
|
|
76
|
-
menu?: 'default' | 'draggable' | 'event-only';
|
|
77
|
-
|
|
78
|
-
/** Placement of the slot menu. Only relevant for 'popup' and 'draggable' menu type */
|
|
79
|
-
@Input({ alias: 'placement' })
|
|
80
|
-
placement?: Placement;
|
|
81
|
-
|
|
82
|
-
/** Hides the delete button on filled slots. */
|
|
83
|
-
@Input({ alias: 'hideDelete', transform: booleanAttribute })
|
|
84
|
-
hideDelete?: boolean;
|
|
85
|
-
|
|
86
|
-
/** Hides the edit/configuration button and disables opening the slot menu. */
|
|
87
|
-
@Input({ alias: 'hideConfiguration', transform: booleanAttribute })
|
|
88
|
-
hideConfiguration?: boolean;
|
|
89
|
-
|
|
90
|
-
/** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
|
|
91
|
-
@Input({ alias: 'language' })
|
|
92
|
-
language?: string;
|
|
93
|
-
|
|
94
|
-
/** The size of the element */
|
|
95
|
-
@Input({ alias: 'size' })
|
|
96
|
-
size?: 's' | 'm' | 'l' | 'xl';
|
|
97
|
-
|
|
98
|
-
/** Emitted when the slot menu overlay closes / becomes inactive. */
|
|
99
|
-
readonly luzmoSlotMenuInactive = output<CustomEvent<unknown>>({ alias: 'luzmoSlotMenuInactive' });
|
|
100
|
-
|
|
101
|
-
/** Emitted when the slot menu overlay opens for a slot */
|
|
102
|
-
readonly luzmoSlotMenuActive = output<CustomEvent<SlotMenuActiveEventDetail>>({ alias: 'luzmoSlotMenuActive' });
|
|
103
|
-
|
|
104
|
-
/** Emitted to highlight the active column or formula in the slot menu */
|
|
105
|
-
readonly luzmoSlotMenuHighlight = output<CustomEvent<SlotMenuHighlightEventDetail>>({ alias: 'luzmoSlotMenuHighlight' });
|
|
106
|
-
|
|
107
|
-
/** Event that is fired when the info button is clicked in display-settings, includes the visibility state and ID values */
|
|
108
|
-
readonly luzmoInfoVisibilityChanged = output<CustomEvent<InfoVisibilityChangedEventDetail>>({ alias: 'luzmoInfoVisibilityChanged' });
|
|
109
|
-
|
|
110
|
-
/** Announces that the slot contents has changed */
|
|
111
|
-
readonly luzmoSlotContentsChanged = output<CustomEvent<SlotContentsChangedEventDetail>>({ alias: 'luzmoSlotContentsChanged' });
|
|
112
|
-
|
|
113
|
-
constructor() {
|
|
114
|
-
this.bindEvents();
|
|
115
|
-
this.destroyRef.onDestroy(() => {
|
|
116
|
-
for (const cleanup of this.listenerCleanup) {
|
|
117
|
-
cleanup();
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
ngOnChanges(changes: SimpleChanges): void {
|
|
123
|
-
for (const key of Object.keys(changes)) {
|
|
124
|
-
switch (key) {
|
|
125
|
-
case 'itemType':
|
|
126
|
-
this.setHostProperty('itemType', changes['itemType'].currentValue);
|
|
127
|
-
break;
|
|
128
|
-
case 'slotName':
|
|
129
|
-
this.setHostProperty('slotName', changes['slotName'].currentValue);
|
|
130
|
-
break;
|
|
131
|
-
case 'slotConfiguration':
|
|
132
|
-
this.setHostProperty('slotConfiguration', changes['slotConfiguration'].currentValue);
|
|
133
|
-
break;
|
|
134
|
-
case 'slotsContents':
|
|
135
|
-
this.setHostProperty('slotsContents', changes['slotsContents'].currentValue);
|
|
136
|
-
break;
|
|
137
|
-
case 'label':
|
|
138
|
-
this.setHostProperty('label', changes['label'].currentValue);
|
|
139
|
-
break;
|
|
140
|
-
case 'contentLanguage':
|
|
141
|
-
this.setHostProperty('contentLanguage', changes['contentLanguage'].currentValue);
|
|
142
|
-
break;
|
|
143
|
-
case 'dragBoundary':
|
|
144
|
-
this.setHostProperty('dragBoundary', changes['dragBoundary'].currentValue);
|
|
145
|
-
break;
|
|
146
|
-
case 'rotate':
|
|
147
|
-
this.setHostProperty('rotate', changes['rotate'].currentValue);
|
|
148
|
-
break;
|
|
149
|
-
case 'apiUrl':
|
|
150
|
-
this.setHostProperty('apiUrl', changes['apiUrl'].currentValue);
|
|
151
|
-
break;
|
|
152
|
-
case 'authKey':
|
|
153
|
-
this.setHostProperty('authKey', changes['authKey'].currentValue);
|
|
154
|
-
break;
|
|
155
|
-
case 'authToken':
|
|
156
|
-
this.setHostProperty('authToken', changes['authToken'].currentValue);
|
|
157
|
-
break;
|
|
158
|
-
case 'menu':
|
|
159
|
-
this.setHostProperty('menu', changes['menu'].currentValue);
|
|
160
|
-
break;
|
|
161
|
-
case 'placement':
|
|
162
|
-
this.setHostProperty('placement', changes['placement'].currentValue);
|
|
163
|
-
break;
|
|
164
|
-
case 'hideDelete':
|
|
165
|
-
this.setHostProperty('hideDelete', changes['hideDelete'].currentValue);
|
|
166
|
-
break;
|
|
167
|
-
case 'hideConfiguration':
|
|
168
|
-
this.setHostProperty('hideConfiguration', changes['hideConfiguration'].currentValue);
|
|
169
|
-
break;
|
|
170
|
-
case 'language':
|
|
171
|
-
this.setHostProperty('language', changes['language'].currentValue);
|
|
172
|
-
break;
|
|
173
|
-
case 'size':
|
|
174
|
-
this.setHostProperty('size', changes['size'].currentValue);
|
|
175
|
-
break;
|
|
176
|
-
default:
|
|
177
|
-
break;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Forward a wrapper @Input to the underlying host element via Renderer2 so
|
|
184
|
-
* the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
|
|
185
|
-
* Unlike a "skip undefined" guard, this lets consumers reset values back to
|
|
186
|
-
* undefined / null by clearing their bindings.
|
|
187
|
-
*/
|
|
188
|
-
private setHostProperty(key: string, value: unknown): void {
|
|
189
|
-
this.renderer.setProperty(this.host, key, value);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
private bindEvents(): void {
|
|
193
|
-
this.listenerCleanup.push(
|
|
194
|
-
this.renderer.listen(this.host, 'luzmo-slot-menu-inactive', (event: Event) => {
|
|
195
|
-
const typed = event as CustomEvent<unknown>;
|
|
196
|
-
this.luzmoSlotMenuInactive.emit(typed);
|
|
197
|
-
})
|
|
198
|
-
);
|
|
199
|
-
|
|
200
|
-
this.listenerCleanup.push(
|
|
201
|
-
this.renderer.listen(this.host, 'luzmo-slot-menu-active', (event: Event) => {
|
|
202
|
-
const typed = event as CustomEvent<SlotMenuActiveEventDetail>;
|
|
203
|
-
this.luzmoSlotMenuActive.emit(typed);
|
|
204
|
-
})
|
|
205
|
-
);
|
|
206
|
-
|
|
207
|
-
this.listenerCleanup.push(
|
|
208
|
-
this.renderer.listen(this.host, 'luzmo-slot-menu-highlight', (event: Event) => {
|
|
209
|
-
const typed = event as CustomEvent<SlotMenuHighlightEventDetail>;
|
|
210
|
-
this.luzmoSlotMenuHighlight.emit(typed);
|
|
211
|
-
})
|
|
212
|
-
);
|
|
213
|
-
|
|
214
|
-
this.listenerCleanup.push(
|
|
215
|
-
this.renderer.listen(this.host, 'luzmo-info-visibility-changed', (event: Event) => {
|
|
216
|
-
const typed = event as CustomEvent<InfoVisibilityChangedEventDetail>;
|
|
217
|
-
this.luzmoInfoVisibilityChanged.emit(typed);
|
|
218
|
-
})
|
|
219
|
-
);
|
|
220
|
-
|
|
221
|
-
this.listenerCleanup.push(
|
|
222
|
-
this.renderer.listen(this.host, 'luzmo-slot-contents-changed', (event: Event) => {
|
|
223
|
-
const typed = event as CustomEvent<SlotContentsChangedEventDetail>;
|
|
224
|
-
this.luzmoSlotContentsChanged.emit(typed);
|
|
225
|
-
})
|
|
226
|
-
);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/** The underlying custom element type for LuzmoItemSlotDrop */
|
|
231
|
-
export type LuzmoItemSlotDropElement = LuzmoItemSlotDropHostElement;
|