@progress/kendo-angular-map
Version:
Kendo UI Map for Angular
127 lines (126 loc) • 5.11 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ChangeDetectionStrategy, Component, forwardRef, Input } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { CollectionService } from '../common/collection.service';
import { ConfigurationService } from '../common/configuration.service';
import { LayerComponent } from './layer.component';
import * as i0 from "@angular/core";
import * as i1 from "../common/configuration.service";
import * as i2 from "../common/collection.service";
import * as i3 from "@angular/platform-browser";
/**
* Represents the Kendo UI BubbleLayer component for Angular. Displays data as bubbles on vector shape layers for bubble maps.
*
* @example
* ```typescript
* @Component({
* selector: 'my-app',
* template: `
* <kendo-map>
* <kendo-map-bubble-layer
* [data]="bubbleData"
* locationField="location"
* valueField="population"
* [maxSize]="50"
* [minSize]="10">
* </kendo-map-bubble-layer>
* </kendo-map>
* `
* })
* export class AppComponent {
* public bubbleData = [
* { location: [40.7128, -74.0060], population: 8000000 }
* ];
* }
* ```
*
* @remarks
* Supported children components are: {@link BubbleTooltipComponent}.
*/
export class BubbleLayerComponent extends LayerComponent {
configurationService;
collectionService;
sanitizer;
/**
* Sets the array of data items for this layer.
*/
data;
/**
* Sets the data item field which contains the symbol location.
* The field should be an array with two numbers — latitude and longitude in decimal degrees.
*/
locationField;
/**
* Sets the value field for the symbols used to determine their relative size.
* The data item field should be a number.
*/
valueField;
/**
* Sets the symbol to use for bubble layers.
*/
symbol;
/**
* Sets the default style for symbols.
*/
style;
/**
* Sets the maximum symbol size for bubble layer symbols.
*
* @default 100
*/
maxSize;
/**
* Sets the minimum symbol size for bubble layer symbols.
* Setting a non-zero value will distort the symbol area to value ratio.
*
* @default 0
*/
minSize;
constructor(configurationService, collectionService, sanitizer) {
super('bubble', configurationService, collectionService, sanitizer);
this.configurationService = configurationService;
this.collectionService = collectionService;
this.sanitizer = sanitizer;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BubbleLayerComponent, deps: [{ token: i1.ConfigurationService }, { token: i2.CollectionService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BubbleLayerComponent, isStandalone: true, selector: "kendo-map-bubble-layer", inputs: { data: "data", locationField: "locationField", valueField: "valueField", symbol: "symbol", style: "style", maxSize: "maxSize", minSize: "minSize" }, providers: [
ConfigurationService,
{
provide: LayerComponent,
useExisting: forwardRef(() => BubbleLayerComponent)
}
], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BubbleLayerComponent, decorators: [{
type: Component,
args: [{
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [
ConfigurationService,
{
provide: LayerComponent,
useExisting: forwardRef(() => BubbleLayerComponent)
}
],
selector: 'kendo-map-bubble-layer',
template: '',
standalone: true
}]
}], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: i2.CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { data: [{
type: Input
}], locationField: [{
type: Input
}], valueField: [{
type: Input
}], symbol: [{
type: Input
}], style: [{
type: Input
}], maxSize: [{
type: Input
}], minSize: [{
type: Input
}] } });