UNPKG

@progress/kendo-angular-map

Version:
127 lines (126 loc) 5.11 kB
/**----------------------------------------------------------------------------------------- * 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 &mdash; 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 }] } });