@nativescript-community/ui-carto
Version:
NativeScript plugin for CARTO Mobile SDK
136 lines • 5.04 kB
JavaScript
import { nativeCartoImageProperty, nativeColorProperty, nativeProperty } from '..';
import { BasePointVectorElement, BillboardStyleBuilder } from './index.ios';
export class BalloonPopupStyleBuilder extends BillboardStyleBuilder {
createNative(options) {
return NTBalloonPopupStyleBuilder.alloc().init();
}
buildStyle() {
if (!this.mBuildStyle) {
this.mBuildStyle = this.getNative().buildStyle();
}
return this.mBuildStyle;
}
}
__decorate([
nativeColorProperty
], BalloonPopupStyleBuilder.prototype, "color", void 0);
__decorate([
nativeProperty
], BalloonPopupStyleBuilder.prototype, "cornerRadius", void 0);
__decorate([
nativeColorProperty
], BalloonPopupStyleBuilder.prototype, "descriptionColor", void 0);
__decorate([
nativeProperty
], BalloonPopupStyleBuilder.prototype, "descriptionFontName", void 0);
__decorate([
nativeProperty
], BalloonPopupStyleBuilder.prototype, "descriptionFontSize", void 0);
__decorate([
nativeProperty
], BalloonPopupStyleBuilder.prototype, "descriptionWrap", void 0);
__decorate([
nativeColorProperty
], BalloonPopupStyleBuilder.prototype, "leftColor", void 0);
__decorate([
nativeCartoImageProperty
], BalloonPopupStyleBuilder.prototype, "leftImage", void 0);
__decorate([
nativeColorProperty
], BalloonPopupStyleBuilder.prototype, "rightColor", void 0);
__decorate([
nativeCartoImageProperty
], BalloonPopupStyleBuilder.prototype, "rightImage", void 0);
__decorate([
nativeColorProperty
], BalloonPopupStyleBuilder.prototype, "strokeColor", void 0);
__decorate([
nativeProperty
], BalloonPopupStyleBuilder.prototype, "strokeWidth", void 0);
__decorate([
nativeColorProperty
], BalloonPopupStyleBuilder.prototype, "titleColor", void 0);
__decorate([
nativeProperty
], BalloonPopupStyleBuilder.prototype, "titleFontName", void 0);
__decorate([
nativeProperty
], BalloonPopupStyleBuilder.prototype, "titleFontSize", void 0);
__decorate([
nativeProperty
], BalloonPopupStyleBuilder.prototype, "titleWrap", void 0);
__decorate([
nativeProperty
], BalloonPopupStyleBuilder.prototype, "triangleHeight", void 0);
__decorate([
nativeProperty
], BalloonPopupStyleBuilder.prototype, "triangleWidth", void 0);
export class BalloonPopup extends BasePointVectorElement {
createNative(options) {
const style = this.buildStyle();
let result;
if (options.marker) {
result = NTBalloonPopup.alloc().initWithBaseBillboardStyleTitleDesc(options.marker.getNative(), style, options.title, options.description);
}
else {
const nativePos = this.getNativePos(options.position, options.projection);
result = NTBalloonPopup.alloc().initWithPosStyleTitleDesc(nativePos, style, options.title, options.description);
}
// result['owner'] = new WeakRef(this);
return result;
}
buildStyle() {
let style;
const styleBuilder = this.options.styleBuilder;
if (styleBuilder instanceof NTBalloonPopupStyle) {
style = styleBuilder;
}
else if (styleBuilder instanceof BalloonPopupStyleBuilder) {
style = styleBuilder.buildStyle();
}
else if (styleBuilder.hasOwnProperty) {
style = new BalloonPopupStyleBuilder(styleBuilder).buildStyle();
}
return style;
}
get styleBuilder() {
return this.native ? this.native.getStyle() : this.options.styleBuilder;
}
set styleBuilder(value) {
if (this.native && !this.duringInit) {
this.options.styleBuilder = value;
this.native.setStyle(this.buildStyle());
}
}
}
// class BuildingStyleObject<BO extends VectorElementStyleBuilderOptions, OptionsType extends VectorElementOptions, N, SN, E extends BaseVectorElement<N, OptionsType>, B extends BaseVectorElementStyleBuilder<SN, BO>> {
// _styleBuilder: B;
// _builtStyle: SN;
// buildStyle() {
// let style: NTBalloonPopupStyle;
// const styleBuilder = this._styleBuilder;
// if (styleBuilder instanceof NTBalloonPopupStyle) {
// style = styleBuilder;
// } else if (styleBuilder instanceof BalloonPopupStyleBuilder) {
// style = styleBuilder.buildStyle();
// } else if (styleBuilder.hasOwnProperty) {
// style = new BalloonPopupStyleBuilder(styleBuilder).buildStyle();
// }
// return styleBuilder.buildStyle();
// }
// get styleBuilder() {
// return this._styleBuilder;
// }
// set styleBuilder(value: OptionsType | B) {
// if ((value as any).getNative) {
// this._styleBuilder = value as B;
// } else {
// this._styleBuilder = new OptionsType(value);
// }
// this.options.styleBuilder = value as any;
// if (this.native) {
// this.native.setStyle(this.buildStyle());
// }
// }
// }
//# sourceMappingURL=balloonpopup.ios.js.map