realmap 1.1.10 → 1.1.12

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/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { RObject, ROptionable } from '@realgrid/common';
2
+
1
3
  declare const PI: number;
2
4
  declare const PI_2: number;
3
5
  declare const ORG_ANGLE: number;
@@ -316,55 +318,6 @@ type MapPolygon = MapArc[];
316
318
  type MapProps = any;
317
319
  declare function parseCoord(v: any): MapCoord;
318
320
 
319
- /**
320
- * RealReport-Chart 라이브러리 클래스 모델의 최상위 base 클래스.
321
- * <br>
322
- *
323
- * @see concepts.dev_guide 개발 가이드
324
- * @see concepts.about RealTouch 개요
325
- */
326
- declare abstract class RmObject {
327
- private $_hash;
328
- private $_destroyed;
329
- private $_destroying;
330
- constructor(noHash?: boolean);
331
- /**
332
- * 객체가 소유한 참조 등을 해제하고 null을 리턴한다.
333
- *
334
- * ```
335
- * list = lis.destroy();
336
- * ```
337
- *
338
- * @returns null
339
- */
340
- destroy(): null;
341
- protected _doDestory(): void;
342
- get destroying(): boolean;
343
- get orphaned(): boolean;
344
- get hash(): string;
345
- isMe(hash: string): boolean;
346
- toString(): string;
347
- /**
348
- * @private
349
- *
350
- * template param으로부터 생성되는 값은 문자열일 수 있다.
351
- */
352
- toBool(v: any): boolean;
353
- toNum(v: any, def?: number): number;
354
- }
355
- declare abstract class RmEventProvider<T> extends RmObject {
356
- private _listeners;
357
- _addListener(listener: T): void;
358
- _removeListener(listener: T): void;
359
- /**
360
- * event로 지정한 함수가 정의된 모든 리스너에 대해 실행한다.
361
- * 리스너 scope으로 실행하고, 첫번째 매개변수로 이 객체가 전달된다.
362
- * 다만, 리스너들 중 하나라도 undefined가 아닌 값을 리턴하면,
363
- * 그 값을 리턴하면서 멈춘다.
364
- */
365
- protected _fireEvent(event: string, ...args: any[]): any;
366
- }
367
-
368
321
  interface MapInsetDisplay {
369
322
  /**
370
323
  * inset area 확대 비율.<br/>
@@ -620,8 +573,8 @@ declare class BorderItem extends MapSourceItem {
620
573
  polygon: MapPolygon;
621
574
  constructor(id: string, polygon: MapPolygon);
622
575
  }
623
- declare abstract class MapSourceImpl extends RmObject {
624
- static createStockInset(area: string, display?: boolean | MapInsetDisplay): MapInset;
576
+ declare abstract class MapSourceImpl extends RObject {
577
+ static createStockInset(area?: string, display?: boolean | MapInsetDisplay): MapInset;
625
578
  readonly name: string;
626
579
  readonly enabled: boolean;
627
580
  readonly idKey: string;
@@ -648,275 +601,53 @@ declare abstract class MapSourceImpl extends RmObject {
648
601
  }
649
602
 
650
603
  /**
651
- * 어노테이션 배치 기준.<br/>
652
- * [주의]body에 설정된 annoation에는 적용되지 않는다.
653
604
  * @enum
654
605
  */
655
- declare const _AnnotationScope: {
656
- /**
657
- * container에서 padding을 적용한 영역을 기준으로 표시한다.
658
- *
659
- *
660
- */
661
- readonly CHART: "chart";
662
- /**
663
- * container 전체 영역을 기준으로 표시한다.
664
- *
665
- *
666
- */
667
- readonly CONTAINER: "container";
606
+ declare const _ExportType: {
607
+ /** */
608
+ readonly PNG: "png";
609
+ /** */
610
+ readonly JPEG: "jpeg";
611
+ /** */
612
+ readonly SVG: "svg";
613
+ /** */
614
+ readonly PDF: "pdf";
615
+ /** */
616
+ readonly PRINT: "print";
668
617
  };
669
- /** @dummy */
670
- type AnnotationScope = typeof _AnnotationScope[keyof typeof _AnnotationScope];
671
- interface AnnotationAnimationOptions {
672
- type: string;
673
- duration?: number;
674
- }
675
- type AnnotationType = 'image' | 'shape' | 'text' | 'html' | 'chart';
676
- /**
677
- * Annotation 모델.<br/>
678
- *
679
- *
680
- */
681
- interface AnnotationOptions extends PositionableItemOptions {
682
- type?: AnnotationType;
683
- /**
684
- * true로 지정하면 시리즈들 위에 표시된다.<br/>
685
- * 명시적으로 false로 지정해야 시리즈들 아래 표시된다.
686
- *
687
- * @default false
688
- */
689
- front?: boolean;
690
- /**
691
- * 어노테이션 배치 기준이 되는 맵차트 구성 요소.<br/>
692
- * 현재, 같은 영역(body 혹은 chart)에 포함된 다른 어노테이션의 {@link name 이름}을 지정할 수 있다.
693
- *
694
- */
695
- anchor?: string;
696
- /**
697
- * 수평 배치.<br/>
698
- *
699
- * @default 'left' anchor가 지정되면 'center', 아니면 'left'
700
- */
701
- align?: Align;
702
- /**
703
- * {@link align}과 {@link verticalAlign}으로 지정된 위치에서 실제 표시될 위치의 수평 간격.<br/>
704
- * 값이 양수일 때, {@link anchor}가 지정된 경우 anchor 아이템의 밖으로 멀어지고, 아니면 영역 경계 안쪽으로 멀어진다.
705
- * 또, {@link anchor}가 지정된 경우 **'0.5w'** 등으로 이 어노테이션의 너비를 기준으로 한 크기로 지정할 수 있다.
706
- *
707
- * @default 0
708
- */
709
- offsetX?: number | string;
710
- /**
711
- * {@link align}과 {@link verticalAlign}으로 지정된 위치에서 실제 표시될 위치의 수직 간격.<br/>
712
- * 값이 양수일 때, {@link anchor}가 지정된 경우 anchor 아이템의 밖으로 멀어지고, 아니면 영역 경계 안쪽으로 멀어진다.
713
- * 또, {@link anchor}가 지정된 경우 **'0.5h'**처럼 이 어노테이션의 너비를 기준으로 한 크기로 지정할 수 있다.
714
- *
715
- * @default 0
716
- */
717
- offsetY?: number | string;
718
- /**
719
- * 회전 각도.<br/>
720
- * 0 ~ 360 사이의 값으로 지정한다.
721
- *
722
- */
723
- rotation?: number;
724
- /**
725
- * 어노테이션 배치 기준.<br/>
726
- * [주의]body에 설정된 annoation에는 적용되지 않는다.
727
- *
728
- * @default 'chart'
729
- */
730
- scope?: AnnotationScope;
731
- /**
732
- * true로 지정하면 상위 영역을 벗어난 부분도 표시되게 한다.<br/>
733
- * body에 포함된 경우 body 영역,
734
- * chart에 포함되고 scope이 'chart'일 때 chart 영역.
735
- *
736
- */
737
- noClip?: boolean;
738
- }
739
- declare const ImageAnnotationType = "image";
740
- /**
741
- * 이미지 어노테이션.<br/>
742
- * {@link https://realmap.co.kr/docs/api/options/AnnotationOptions#type type}은 'image'이다.<br/>
743
- *
744
- * // TODO #fiddle annotation/image-annotation Image Annotation
745
- * @css 'rm-image-annotation'
746
- */
747
- interface ImageAnnotationOptions extends AnnotationOptions {
748
- /** @dummy */
749
- type?: typeof ImageAnnotationType;
750
- /**
751
- * true로 설정되고 {@link url}이 설정된 경우에만 표시된다.
752
- *
753
- * @default true
754
- */
755
- visible?: boolean;
756
- /**
757
- * 이미지 경로.
758
- *
759
- */
760
- imageUrl?: string;
761
- }
762
- declare const ShapeAnnotationType = "shape";
763
618
  /**
764
- * Shape Annotation 모델.
765
- * {@link https://realmap.co.kr/docs/api/options/AnnotationOptions#type type}은 'shape'이다.<br/>
766
- * {@link shape} 속성에 표시할 도형 모양을 지정하거나,
767
- * {@link path}에 SVG path를 직접 지정할 수 있다.
768
- *
769
- * // TODO #fiddle annotation/shape-annotation Shape Annotation
770
- * @css 'rm-shape-annotation'
619
+ * 내보내기 종류
771
620
  */
772
- interface ShapeAnnotationOptions extends AnnotationOptions {
773
- /** @dummy */
774
- type?: typeof ShapeAnnotationType;
775
- /**
776
- * @default 64
777
- */
778
- width?: number;
779
- /**
780
- * @default 64
781
- */
782
- height?: number;
783
- /**
784
- * Shape 종류.
785
- *
786
- * circle: 원
787
- * diamond: 다아이몬드
788
- * square: 정사각형
789
- * triangle: 삼각형
790
- * star: 별 모양
791
- * itriangle:
792
- * rectangle: 사각형
793
- *
794
- * @default 'square'
795
- */
796
- shape?: 'circle' | 'diamond' | 'square' | 'triangle' | 'star' | 'itriangle' | 'rectangle';
797
- /**
798
- * Shape path.
799
- * 이 속성이 지정되면 {@link shape}는 무시된다.
800
- */
801
- path?: string;
802
- series?: string;
803
- xRange?: number[];
804
- yRange?: number[];
805
- }
806
- declare const TextAnnotationType = "text";
621
+ type ExportType = typeof _ExportType[keyof typeof _ExportType];
807
622
  /**
808
- * 텍스트 어노테이션.<br/>
809
- * {@link https://realmap.co.kr/docs/api/options/AnnotationOptions#type type}은 'text'이다.<br/>
810
- *
811
- * // TODO #fiddle annotation/text-annotation Text Annotation
812
- * @css 'rm-text-annotation'
623
+ * 내보내기 옵션.
813
624
  */
814
- interface TextAnnotationOptions extends AnnotationOptions {
815
- /** @dummy */
816
- type?: typeof TextAnnotationType;
817
- /**
818
- * true로 설정되고 {@link text}가 설정된 경우에만 표시된다.
819
- *
820
- * @default true
821
- */
822
- visible?: boolean;
823
- /**
824
- * 표시할 텍스트.
825
- *
826
- * @default 'Text'
827
- */
828
- text?: string;
829
- /**
830
- * {@link text}에 동적으로 전달되는 값이 숫자일 때 사용되는 표시 형식.
831
- *
832
- */
833
- numberFormat?: string;
834
- /**
835
- * {@link text}에 동적으로 전달되는 값이 Date일 때 사용되는 표시 형식.
836
- *
837
- */
838
- timeFormat?: string;
625
+ interface ExportOptions {
839
626
  /**
840
- * 텍스트를 가로 또는 세로로 배치할지 여부와 블록이 진행되는 방향을 지정한다.
841
- *
627
+ * 내보낸 맵차트에 사용할 확장자.\
628
+ * type을 지정하지 않을 경우 png로 내보내기 된다.\
842
629
  *
630
+ * // @TODO https://github.com/realgrid/realreport-chart/issues/549
843
631
  */
844
- writingMode?: WritingMode;
632
+ type?: ExportType;
845
633
  /**
846
- * 텍스트 문자 방향을 지정한다.
847
- * 세로 모드의 텍스트에만 적용된다.
848
- *
634
+ * 내보낸 맵차트에 사용할 확장자 없는 파일명.
635
+ * fileName을 지정하지 않을 경우 realmap.type으로 다운로드 된다.
849
636
  *
850
637
  */
851
- textOrientation?: TextOrientation;
852
- }
853
- declare const HtmlAnnotationType = "html";
854
- /**
855
- * HTML 어노테이션.<br/>
856
- * {@link https://realmap.co.kr/docs/api/options/AnnotationOptions#type type}은 'html'이다.<br/>
857
- *
858
- * // TODO #fiddle annotation/html-annotation Html Annotation
859
- * @css 'rm-html-annotation'
860
- */
861
- interface HtmlAnnotationOptions extends AnnotationOptions {
862
- /** @dummy */
863
- type?: typeof HtmlAnnotationType;
864
- /**
865
- * true로 설정되고 {@link text}가 설정된 경우에만 표시된다.
866
- *
867
- * @default true
868
- */
869
- visible?: boolean;
870
- /**
871
- * 이 속성으로 지정한 html 내용을 표시한다.<br/>
872
- * '.'나 '#'으로 시작되는 html selector로 지정하면 해당하는 dom의 {@link https://developer.mozilla.org/ko/docs/Web/API/Element/innerHTML innerHTML}을 가져와 표시한다.<br/>
873
- * 예를 들어 id가 'abc'인 dom인 경우 '#abc'로 지정한다.
874
- * 즉, document.{@link https://developer.mozilla.org/ko/docs/Web/API/Document/querySelector querySelector}(htmlFrom)로 리턴되는 dom의 내용을 표시한다.<br/>
875
- * 생성되는 dom의 스타일은 {@link htmlStyle}로 지정한다.
876
- */
877
- html?: string;
878
- /**
879
- * 이 속성으로 지정한 selector에 해당하는 dom의 {@link https://developer.mozilla.org/ko/docs/Web/API/Element/innerHTML innerHTML}을 가져와 표시한다.<br/>
880
- * 예를 들어 id가 'abc'인 dom인 경우 '#abc'로 지정한다.
881
- * 즉, document.{@link https://developer.mozilla.org/ko/docs/Web/API/Document/querySelector querySelector}(htmlFrom)로 리턴되는 dom의 내용을 표시한다.<br/>
882
- * 이 속성이 {@link html}보다 우선한다. 다만, 존재하지 않은 dom을 지정한 경우 {@link html}에 지정한 내용을 대신 표시한다.
883
- * 생성되는 dom의 스타일은 {@link htmlStyle}로 지정한다.
884
- */
885
- htmlFrom?: string;
886
- /**
887
- * {@link html}로 생성되는 최상위 dom에 적용되는 스타일셋.<br/>
888
- */
889
- htmlStyle?: CSSStyleDeclaration;
890
- /**
891
- * @append
892
- * 너비를 반드시 지정해야 한다.<br/>
893
- * 지정하지 않으면 100 픽셀 너비로 표시한다.
894
- * {@link height 높이}를 지정하지 않으면 생성된 dom의 높이에 맞춰진다.
895
- *
896
- * @default 100
897
- */
898
- width?: PercentSize;
899
- /**
900
- * {@link html}로 지정된 html 텍스트에 포함된 param 값을 지정하는 객체나 콜백. #311<br/>
901
- */
902
- params?: {
903
- [key: string]: any;
904
- } | ((param: string) => any);
638
+ fileName?: string;
905
639
  }
906
- declare const ChartAnnotationType = "chart";
907
640
  /**
908
- * Chart 어노테이션.<br/>
909
- * {@link https://realmap.co.kr/docs/api/options/AnnotationOptions#type type}은 'chart'이다.<br/>
910
- *
911
- * @css 'rm-chart-annotation'
641
+ * 외부 모듈로 구현되는 맵차트 내보내기 기능 명세.
912
642
  */
913
- interface ChartAnnotationOptions extends AnnotationOptions {
914
- /** @dummy */
915
- type?: typeof ChartAnnotationType;
916
- config?: any;
643
+ interface ChartExporter {
644
+ exportToImage: (dom: HTMLElement, options: ExportOptions) => void;
645
+ exportToPrint: (dom: HTMLElement, options: ExportOptions) => void;
646
+ isContextMenuVisible: () => boolean;
647
+ toggleContextMenu: () => void;
648
+ contains: (dom: Element) => boolean;
649
+ hideContextMenu: () => void;
917
650
  }
918
- /** @dummy */
919
- type AnnotationOptionsType = ImageAnnotationOptions | ShapeAnnotationOptions | TextAnnotationOptions | HtmlAnnotationOptions | ChartAnnotationOptions;
920
651
 
921
652
  /**
922
653
  * @enum
@@ -1057,6 +788,30 @@ interface ChartGlobalOptions extends ChartItemOptions {
1057
788
  * @default false
1058
789
  */
1059
790
  wheelDisabled?: boolean;
791
+ /**
792
+ * false로 설정하면 차트 애니메이션이 실행되지 않는다.<br/>
793
+ *
794
+ * @default true
795
+ */
796
+ animatable?: boolean;
797
+ /**
798
+ * false로 설정하면 차트에 대한 호버 동작이 비활성화된다.<br/>
799
+ *
800
+ * @default true
801
+ */
802
+ hoverable?: boolean;
803
+ /**
804
+ * false로 설정하면 차트에 대한 클릭 동작이 비활성화된다.<br/>
805
+ *
806
+ * @default true
807
+ */
808
+ clickable?: boolean;
809
+ /**
810
+ * false로 설정하면 차트 드래그 동작이 비활성화된다.<br/>
811
+ *
812
+ * @default true
813
+ */
814
+ draggable?: boolean;
1060
815
  /**
1061
816
  * 마우스 포인터가 클릭됐을 때 호출되는 콜백.<br/>
1062
817
  */
@@ -1607,37 +1362,10 @@ interface BodyOptions extends ChartItemOptions {
1607
1362
  * @expandable
1608
1363
  */
1609
1364
  annotations?: AnnotationOptionsType | AnnotationOptionsType[];
1610
- /**
1611
- * 차트에 표시할 내용이 존재하지 않을 때 표시되는 메시지 view.<br/>
1612
- */
1613
- emptyView?: EmptyViewOptions | boolean;
1614
1365
  }
1615
1366
  interface BackgroundImageOptions extends ChartItemOptions {
1616
1367
  url?: string;
1617
1368
  }
1618
- /**
1619
- * 데이터가 없을 때 표시되는 뷰에 대한 옵션<br/>
1620
- */
1621
- interface EmptyViewOptions extends ChartTextOptions {
1622
- /**
1623
- * @append
1624
- *
1625
- * false로 지정하면 표시돼야할 상황에서도 표시되지 않는다.<br/>
1626
- *
1627
- * @default undefined
1628
- */
1629
- visible?: boolean;
1630
- /**
1631
- * @append
1632
- *
1633
- * 표시할 텍스트.<br/>
1634
- * 지정하지 않으면 '표시할 내용이 없습니다.'가 표시된다.
1635
- * 또, split pane인 경우 지정하지 않으면 먼저 기본 body에 설정된 값으로 표시된다.
1636
- *
1637
- * @default undefined
1638
- */
1639
- text?: string;
1640
- }
1641
1369
 
1642
1370
  interface IPoint$1 {
1643
1371
  x: number;
@@ -1804,9 +1532,9 @@ declare class RmTool<T extends RmControl = RmControl> {
1804
1532
  protected _clearTouchEffects(): void;
1805
1533
  private $_getDistance;
1806
1534
  }
1807
- declare abstract class DragRequest extends RmObject {
1535
+ declare abstract class DragRequest extends RObject {
1808
1536
  }
1809
- declare abstract class DragTracker<T extends RmControl = RmControl> extends RmObject {
1537
+ declare abstract class DragTracker<T extends RmControl = RmControl> extends RObject {
1810
1538
  private _control;
1811
1539
  private _dragging;
1812
1540
  constructor(control: T);
@@ -1840,7 +1568,7 @@ declare abstract class DragTracker<T extends RmControl = RmControl> extends RmOb
1840
1568
  *
1841
1569
  * Control base.
1842
1570
  */
1843
- declare abstract class RmControl extends RmObject {
1571
+ declare abstract class RmControl extends RObject {
1844
1572
  static readonly CLASS_NAME = "rm-control";
1845
1573
  static readonly SHADOW_FILTER = "rm-shadow-filter";
1846
1574
  private _activeTool;
@@ -1878,7 +1606,7 @@ declare abstract class RmControl extends RmObject {
1878
1606
  _padding: ISides;
1879
1607
  _scrolling: boolean;
1880
1608
  constructor(doc: Document, container: string | HTMLDivElement, className?: string);
1881
- protected _doDestory(): void;
1609
+ protected _doDispose(): void;
1882
1610
  isInited(): boolean;
1883
1611
  isTesting(): boolean;
1884
1612
  doc(): Document;
@@ -1975,7 +1703,7 @@ declare abstract class RmControl extends RmObject {
1975
1703
  * RcContainer 구성 요소.
1976
1704
  * SVGElement들로 구현된다.
1977
1705
  */
1978
- declare class RmElement extends RmObject {
1706
+ declare class RmElement extends RObject {
1979
1707
  static TESTING: boolean;
1980
1708
  static DEBUGGING: boolean;
1981
1709
  static ASSET_KEY: string;
@@ -2010,7 +1738,7 @@ declare class RmElement extends RmObject {
2010
1738
  private _saveClass;
2011
1739
  constructor(doc: Document, styleName: string, tag?: string);
2012
1740
  protected _doInitStyles(): void;
2013
- protected _doDestory(): void;
1741
+ protected _doDispose(): void;
2014
1742
  get doc(): Document;
2015
1743
  get dom(): SVGElement;
2016
1744
  get parent(): RmElement;
@@ -2447,7 +2175,7 @@ interface SeriesOptions extends ChartItemOptions {
2447
2175
  * "aaa.bbb" 형식으로 지정한다. 배열 항목은 숫자로 지정한다. "aaa.2.bbb".
2448
2176
  * 지정하지 않으면 최상위 JSON 객체를 그대로 사용한다.
2449
2177
  */
2450
- dataPath?: string;
2178
+ dataPath?: string | number;
2451
2179
  /**
2452
2180
  * {@link data}가 array로 제공되어 datapoint로 생성될 때,
2453
2181
  * array의 각 항목에 해당하는 이름으로 datapoint source의 값을 사용한다.<br/>
@@ -2618,7 +2346,7 @@ interface SparkSeriesOptions extends CoordBaseSeriesOptions {
2618
2346
  * 데이터포인트 값들을 가져올 필드 목록.<br/>
2619
2347
  * 이 속성이 지정되면 {@link valueField}는 무시된다.
2620
2348
  */
2621
- valueFields?: string[];
2349
+ valueFields?: (string | number)[];
2622
2350
  /**
2623
2351
  * true로 지정되고 {@link categories}가 지정되면
2624
2352
  * 맵차트 legend에 category별로 항목이 표시된다.
@@ -5180,134 +4908,324 @@ interface PositionableItemOptions extends ChartItemOptions {
5180
4908
  */
5181
4909
  interface DataPointArgs extends CommonCallbackArgs {
5182
4910
  /**
5183
- * 시리즈 객체.
4911
+ * 시리즈 객체.
4912
+ */
4913
+ series: object;
4914
+ count: number;
4915
+ id: string;
4916
+ index: number;
4917
+ name?: string;
4918
+ color?: string;
4919
+ className?: string;
4920
+ value?: any;
4921
+ labelIndex?: number;
4922
+ coord?: MapCoord;
4923
+ source: any;
4924
+ }
4925
+ interface DataPointListkArgs extends CommonCallbackArgs {
4926
+ /**
4927
+ * 데이터포인트 개수.
4928
+ */
4929
+ count: number;
4930
+ /**
4931
+ * 해당 위치의 데이터포인트 정보를 리턴한다.<br/
4932
+ * 리턴되는 객체는 재사용되므로 보관할 수 없다.
4933
+ */
4934
+ get(index: number): DataPointArgs;
4935
+ }
4936
+ interface AnimationOptions {
4937
+ duration: number;
4938
+ end: () => void;
4939
+ }
4940
+ interface ZoomToAreaOptions {
4941
+ /**
4942
+ * 최소 확대 비율.
4943
+ */
4944
+ minimumZoom?: number;
4945
+ /**
4946
+ * 최대 확대 비율.
4947
+ */
4948
+ maximumZoom?: number;
4949
+ }
4950
+ interface OnSelectionChangedArgs extends CommonCallbackArgs {
4951
+ }
4952
+
4953
+ /**
4954
+ * 어노테이션 배치 기준.<br/>
4955
+ * [주의]body에 설정된 annoation에는 적용되지 않는다.
4956
+ * @enum
4957
+ */
4958
+ declare const _AnnotationScope: {
4959
+ /**
4960
+ * container에서 padding을 적용한 영역을 기준으로 표시한다.
4961
+ *
4962
+ *
4963
+ */
4964
+ readonly CHART: "chart";
4965
+ /**
4966
+ * container 전체 영역을 기준으로 표시한다.
4967
+ *
4968
+ *
4969
+ */
4970
+ readonly CONTAINER: "container";
4971
+ };
4972
+ /** @dummy */
4973
+ type AnnotationScope = typeof _AnnotationScope[keyof typeof _AnnotationScope];
4974
+ interface AnnotationAnimationOptions {
4975
+ type: string;
4976
+ duration?: number;
4977
+ }
4978
+ type AnnotationType = 'image' | 'shape' | 'text' | 'html' | 'chart';
4979
+ /**
4980
+ * Annotation 모델.<br/>
4981
+ *
4982
+ *
4983
+ */
4984
+ interface AnnotationOptions extends PositionableItemOptions {
4985
+ type?: AnnotationType;
4986
+ /**
4987
+ * true로 지정하면 시리즈들 위에 표시된다.<br/>
4988
+ * 명시적으로 false로 지정해야 시리즈들 아래 표시된다.
4989
+ *
4990
+ * @default false
4991
+ */
4992
+ front?: boolean;
4993
+ /**
4994
+ * 어노테이션 배치 기준이 되는 맵차트 구성 요소.<br/>
4995
+ * 현재, 같은 영역(body 혹은 chart)에 포함된 다른 어노테이션의 {@link name 이름}을 지정할 수 있다.
4996
+ *
4997
+ */
4998
+ anchor?: string;
4999
+ /**
5000
+ * 수평 배치.<br/>
5001
+ *
5002
+ * @default 'left' anchor가 지정되면 'center', 아니면 'left'
5003
+ */
5004
+ align?: Align;
5005
+ /**
5006
+ * {@link align}과 {@link verticalAlign}으로 지정된 위치에서 실제 표시될 위치의 수평 간격.<br/>
5007
+ * 값이 양수일 때, {@link anchor}가 지정된 경우 anchor 아이템의 밖으로 멀어지고, 아니면 영역 경계 안쪽으로 멀어진다.
5008
+ * 또, {@link anchor}가 지정된 경우 **'0.5w'** 등으로 이 어노테이션의 너비를 기준으로 한 크기로 지정할 수 있다.
5009
+ *
5010
+ * @default 0
5011
+ */
5012
+ offsetX?: number | string;
5013
+ /**
5014
+ * {@link align}과 {@link verticalAlign}으로 지정된 위치에서 실제 표시될 위치의 수직 간격.<br/>
5015
+ * 값이 양수일 때, {@link anchor}가 지정된 경우 anchor 아이템의 밖으로 멀어지고, 아니면 영역 경계 안쪽으로 멀어진다.
5016
+ * 또, {@link anchor}가 지정된 경우 **'0.5h'**처럼 이 어노테이션의 너비를 기준으로 한 크기로 지정할 수 있다.
5017
+ *
5018
+ * @default 0
5019
+ */
5020
+ offsetY?: number | string;
5021
+ /**
5022
+ * 회전 각도.<br/>
5023
+ * 0 ~ 360 사이의 값으로 지정한다.
5024
+ *
5025
+ */
5026
+ rotation?: number;
5027
+ /**
5028
+ * 어노테이션 배치 기준.<br/>
5029
+ * [주의]body에 설정된 annoation에는 적용되지 않는다.
5030
+ *
5031
+ * @default 'chart'
5032
+ */
5033
+ scope?: AnnotationScope;
5034
+ /**
5035
+ * true로 지정하면 상위 영역을 벗어난 부분도 표시되게 한다.<br/>
5036
+ * body에 포함된 경우 body 영역,
5037
+ * chart에 포함되고 scope이 'chart'일 때 chart 영역.
5038
+ *
5039
+ */
5040
+ noClip?: boolean;
5041
+ }
5042
+ declare const ImageAnnotationType = "image";
5043
+ /**
5044
+ * 이미지 어노테이션.<br/>
5045
+ * {@link https://realmap.co.kr/docs/api/options/AnnotationOptions#type type}은 'image'이다.<br/>
5046
+ *
5047
+ * // TODO #fiddle annotation/image-annotation Image Annotation
5048
+ * @css 'rm-image-annotation'
5049
+ */
5050
+ interface ImageAnnotationOptions extends AnnotationOptions {
5051
+ /** @dummy */
5052
+ type?: typeof ImageAnnotationType;
5053
+ /**
5054
+ * true로 설정되고 {@link url}이 설정된 경우에만 표시된다.
5055
+ *
5056
+ * @default true
5057
+ */
5058
+ visible?: boolean;
5059
+ /**
5060
+ * 이미지 경로.
5061
+ *
5062
+ */
5063
+ imageUrl?: string;
5064
+ }
5065
+ declare const ShapeAnnotationType = "shape";
5066
+ /**
5067
+ * Shape Annotation 모델.
5068
+ * {@link https://realmap.co.kr/docs/api/options/AnnotationOptions#type type}은 'shape'이다.<br/>
5069
+ * {@link shape} 속성에 표시할 도형 모양을 지정하거나,
5070
+ * {@link path}에 SVG path를 직접 지정할 수 있다.
5071
+ *
5072
+ * // TODO #fiddle annotation/shape-annotation Shape Annotation
5073
+ * @css 'rm-shape-annotation'
5074
+ */
5075
+ interface ShapeAnnotationOptions extends AnnotationOptions {
5076
+ /** @dummy */
5077
+ type?: typeof ShapeAnnotationType;
5078
+ /**
5079
+ * @default 64
5080
+ */
5081
+ width?: number;
5082
+ /**
5083
+ * @default 64
5084
+ */
5085
+ height?: number;
5086
+ /**
5087
+ * Shape 종류.
5088
+ *
5089
+ * circle: 원
5090
+ * diamond: 다아이몬드
5091
+ * square: 정사각형
5092
+ * triangle: 삼각형
5093
+ * star: 별 모양
5094
+ * itriangle:
5095
+ * rectangle: 사각형
5096
+ *
5097
+ * @default 'square'
5098
+ */
5099
+ shape?: 'circle' | 'diamond' | 'square' | 'triangle' | 'star' | 'itriangle' | 'rectangle';
5100
+ /**
5101
+ * Shape path.
5102
+ * 이 속성이 지정되면 {@link shape}는 무시된다.
5103
+ */
5104
+ path?: string;
5105
+ series?: string;
5106
+ xRange?: number[];
5107
+ yRange?: number[];
5108
+ }
5109
+ declare const TextAnnotationType = "text";
5110
+ /**
5111
+ * 텍스트 어노테이션.<br/>
5112
+ * {@link https://realmap.co.kr/docs/api/options/AnnotationOptions#type type}은 'text'이다.<br/>
5113
+ *
5114
+ * // TODO #fiddle annotation/text-annotation Text Annotation
5115
+ * @css 'rm-text-annotation'
5116
+ */
5117
+ interface TextAnnotationOptions extends AnnotationOptions {
5118
+ /** @dummy */
5119
+ type?: typeof TextAnnotationType;
5120
+ /**
5121
+ * true로 설정되고 {@link text}가 설정된 경우에만 표시된다.
5122
+ *
5123
+ * @default true
5124
+ */
5125
+ visible?: boolean;
5126
+ /**
5127
+ * 표시할 텍스트.
5128
+ *
5129
+ * @default 'Text'
5184
5130
  */
5185
- series: object;
5186
- count: number;
5187
- id: string;
5188
- index: number;
5189
- name?: string;
5190
- color?: string;
5191
- className?: string;
5192
- value?: any;
5193
- labelIndex?: number;
5194
- coord?: MapCoord;
5195
- source: any;
5196
- }
5197
- interface DataPointListkArgs extends CommonCallbackArgs {
5131
+ text?: string;
5198
5132
  /**
5199
- * 데이터포인트 개수.
5133
+ * {@link text}에 동적으로 전달되는 값이 숫자일 때 사용되는 표시 형식.
5134
+ *
5200
5135
  */
5201
- count: number;
5136
+ numberFormat?: string;
5202
5137
  /**
5203
- * 해당 위치의 데이터포인트 정보를 리턴한다.<br/
5204
- * 리턴되는 객체는 재사용되므로 보관할 수 없다.
5138
+ * {@link text}에 동적으로 전달되는 값이 Date일 때 사용되는 표시 형식.
5139
+ *
5205
5140
  */
5206
- get(index: number): DataPointArgs;
5207
- }
5208
- interface AnimationOptions {
5209
- duration: number;
5210
- end: () => void;
5211
- }
5212
- interface ZoomToAreaOptions {
5141
+ timeFormat?: string;
5213
5142
  /**
5214
- * 최소 확대 비율.
5143
+ * 텍스트를 가로 또는 세로로 배치할지 여부와 블록이 진행되는 방향을 지정한다.
5144
+ *
5145
+ *
5215
5146
  */
5216
- minimumZoom?: number;
5147
+ writingMode?: WritingMode;
5217
5148
  /**
5218
- * 최대 확대 비율.
5149
+ * 텍스트 문자 방향을 지정한다.
5150
+ * 세로 모드의 텍스트에만 적용된다.
5151
+ *
5152
+ *
5219
5153
  */
5220
- maximumZoom?: number;
5221
- }
5222
- interface OnSelectionChangedArgs extends CommonCallbackArgs {
5154
+ textOrientation?: TextOrientation;
5223
5155
  }
5224
-
5156
+ declare const HtmlAnnotationType = "html";
5225
5157
  /**
5226
- * 맵차트 내보내기 설정 모델
5158
+ * HTML 어노테이션.<br/>
5159
+ * {@link https://realmap.co.kr/docs/api/options/AnnotationOptions#type type}은 'html'이다.<br/>
5160
+ *
5161
+ * // TODO #fiddle annotation/html-annotation Html Annotation
5162
+ * @css 'rm-html-annotation'
5227
5163
  */
5228
- interface ExporterOptions extends ChartItemOptions {
5229
- /**
5230
- * 내보내기 버튼 표시 여부 지정
5231
- */
5232
- visible?: boolean;
5164
+ interface HtmlAnnotationOptions extends AnnotationOptions {
5165
+ /** @dummy */
5166
+ type?: typeof HtmlAnnotationType;
5233
5167
  /**
5234
- * 내보내기 버튼을 사용해 내보낸 맵차트에 사용할 확장자 없는 파일 이름.\
5235
- * 'export' 함수를 호출할 때 fileName을 지정하지 않을 경우 이 속성이 적용된다.
5236
- * fileName을 지정하지 않을 경우 realmap.type으로 다운로드 된다.
5168
+ * true로 설정되고 {@link text}가 설정된 경우에만 표시된다.
5237
5169
  *
5170
+ * @default true
5238
5171
  */
5239
- fileName?: string;
5172
+ visible?: boolean;
5240
5173
  /**
5241
- * 내보내기를 라이브러리를 사용하여 진행할지 여부 지정
5174
+ * 속성으로 지정한 html 내용을 표시한다.<br/>
5175
+ * '.'나 '#'으로 시작되는 html selector로 지정하면 해당하는 dom의 {@link https://developer.mozilla.org/ko/docs/Web/API/Element/innerHTML innerHTML}을 가져와 표시한다.<br/>
5176
+ * 예를 들어 id가 'abc'인 dom인 경우 '#abc'로 지정한다.
5177
+ * 즉, document.{@link https://developer.mozilla.org/ko/docs/Web/API/Document/querySelector querySelector}(htmlFrom)로 리턴되는 dom의 내용을 표시한다.<br/>
5178
+ * 생성되는 dom의 스타일은 {@link htmlStyle}로 지정한다.
5242
5179
  */
5243
- useLibrary?: boolean;
5180
+ html?: string;
5244
5181
  /**
5245
- * 내보내기 메뉴에 포함할 export types
5182
+ * 속성으로 지정한 selector에 해당하는 dom의 {@link https://developer.mozilla.org/ko/docs/Web/API/Element/innerHTML innerHTML}을 가져와 표시한다.<br/>
5183
+ * 예를 들어 id가 'abc'인 dom인 경우 '#abc'로 지정한다.
5184
+ * 즉, document.{@link https://developer.mozilla.org/ko/docs/Web/API/Document/querySelector querySelector}(htmlFrom)로 리턴되는 dom의 내용을 표시한다.<br/>
5185
+ * 이 속성이 {@link html}보다 우선한다. 다만, 존재하지 않은 dom을 지정한 경우 {@link html}에 지정한 내용을 대신 표시한다.
5186
+ * 생성되는 dom의 스타일은 {@link htmlStyle}로 지정한다.
5246
5187
  */
5247
- menus?: ExportType[];
5188
+ htmlFrom?: string;
5248
5189
  /**
5249
- * 너비, 지정한 너비에 맞춰 높이가 결정된다.
5190
+ * {@link html}로 생성되는 최상위 dom에 적용되는 스타일셋.<br/>
5250
5191
  */
5251
- width?: number;
5192
+ htmlStyle?: CSSStyleDeclaration;
5252
5193
  /**
5253
- * 이미지의 scale
5194
+ * @append
5195
+ * 너비를 반드시 지정해야 한다.<br/>
5196
+ * 지정하지 않으면 100 픽셀 너비로 표시한다.
5197
+ * {@link height 높이}를 지정하지 않으면 생성된 dom의 높이에 맞춰진다.
5198
+ *
5199
+ * @default 100
5254
5200
  */
5255
- scale?: number;
5201
+ width?: PercentSize;
5256
5202
  /**
5257
- * 내보내기 도중 에러가 발생했을 처리할 서버 URL. <br />
5258
- * 지정하지 않을경우 realmap 서버에서 처리한다.
5203
+ * {@link html}로 지정된 html 텍스트에 포함된 param 값을 지정하는 객체나 콜백. #311<br/>
5259
5204
  */
5260
- url?: string;
5205
+ params?: {
5206
+ [key: string]: any;
5207
+ } | ((param: string) => any);
5261
5208
  }
5262
-
5263
- /**
5264
- * @enum
5265
- */
5266
- declare const _ExportType: {
5267
- /** */
5268
- readonly PNG: "png";
5269
- /** */
5270
- readonly JPEG: "jpeg";
5271
- /** */
5272
- readonly SVG: "svg";
5273
- /** */
5274
- readonly PDF: "pdf";
5275
- /** */
5276
- readonly PRINT: "print";
5277
- };
5278
- /**
5279
- * 내보내기 종류
5280
- */
5281
- type ExportType = typeof _ExportType[keyof typeof _ExportType];
5209
+ declare const ChartAnnotationType = "chart";
5282
5210
  /**
5283
- * 내보내기 옵션.
5211
+ * Chart 어노테이션.<br/>
5212
+ * {@link https://realmap.co.kr/docs/api/options/AnnotationOptions#type type}은 'chart'이다.<br/>
5213
+ *
5214
+ * @css 'rm-chart-annotation'
5284
5215
  */
5285
- interface ExportOptions {
5286
- /**
5287
- * 내보낸 맵차트에 사용할 확장자.\
5288
- * type을 지정하지 않을 경우 png로 내보내기 된다.\
5289
- *
5290
- * // @TODO https://github.com/realgrid/realreport-chart/issues/549
5291
- */
5292
- type?: ExportType;
5216
+ interface ChartAnnotationOptions extends AnnotationOptions {
5217
+ /** @dummy */
5218
+ type?: typeof ChartAnnotationType;
5219
+ config?: any;
5293
5220
  /**
5294
- * 내보낸 맵차트에 사용할 확장자 없는 파일명.
5295
- * fileName을 지정하지 않을 경우 realmap.type으로 다운로드 된다.
5296
- *
5221
+ * false로 설정하면 차트 애니메이션이 실행되지 않는다.<br/>
5222
+ *
5223
+ * @default true
5297
5224
  */
5298
- fileName?: string;
5299
- }
5300
- /**
5301
- * 외부 모듈로 구현되는 맵차트 내보내기 기능 명세.
5302
- */
5303
- interface ChartExporter {
5304
- exportToImage: (dom: HTMLElement, options: ExportOptions, config: ExporterOptions) => void;
5305
- exportToPrint: (dom: HTMLElement, options: ExportOptions) => void;
5306
- isContextMenuVisible: () => boolean;
5307
- toggleContextMenu: () => void;
5308
- contains: (dom: Element) => boolean;
5309
- hideContextMenu: () => void;
5225
+ animatable?: boolean;
5310
5226
  }
5227
+ /** @dummy */
5228
+ type AnnotationOptionsType = ImageAnnotationOptions | ShapeAnnotationOptions | TextAnnotationOptions | HtmlAnnotationOptions | ChartAnnotationOptions;
5311
5229
 
5312
5230
  /** @private */
5313
5231
  declare class Color {
@@ -5766,7 +5684,7 @@ interface MapProjection {
5766
5684
  getScrolledLon(lon: number): number;
5767
5685
  inSecond(lon: number): boolean;
5768
5686
  }
5769
- declare class MapArea extends RmObject implements ISelectionSource {
5687
+ declare class MapArea extends RObject implements ISelectionSource {
5770
5688
  source?: AreaItem;
5771
5689
  inset?: MapInset;
5772
5690
  _insetChilds: number[];
@@ -5833,7 +5751,7 @@ declare class MapArea extends RmObject implements ISelectionSource {
5833
5751
  getCenter(): MapCoord;
5834
5752
  _clone(): MapArea;
5835
5753
  }
5836
- declare class MapBorder extends RmObject {
5754
+ declare class MapBorder extends RObject {
5837
5755
  source: BorderItem;
5838
5756
  private _path;
5839
5757
  constructor(source: BorderItem);
@@ -5853,7 +5771,7 @@ interface IMapOwner {
5853
5771
  *
5854
5772
  * [Note] 'Map'이 javascript 예약어 수준이므로 부득기 'MapModel'로 名한다.
5855
5773
  */
5856
- declare class MapModel extends RmObject {
5774
+ declare class MapModel extends RObject {
5857
5775
  owner: IChart & IMapOwner;
5858
5776
  source: MapSourceImpl | MapModel;
5859
5777
  private _second;
@@ -6025,9 +5943,9 @@ declare class DataPointCallout<OP extends DataPointCalloutOptions = DataPointCal
6025
5943
  get anchorPoint(): DataPointAnchorPoint<CalloutAnchorPointOptions>;
6026
5944
  }
6027
5945
  interface ISeries<T extends DataPoint = DataPoint> {
6028
- options: SeriesOptions;
6029
5946
  chart: IChart;
6030
5947
  color?: Color;
5948
+ getProp(key: string, def?: any): any;
6031
5949
  _idFielder: (src: any) => any;
6032
5950
  _nameFielder?: (src: any) => string;
6033
5951
  _valueFielder?: (src: any) => any;
@@ -6091,6 +6009,7 @@ declare abstract class Series<OP extends SeriesOptions = SeriesOptions> extends
6091
6009
  private _dataLoaded;
6092
6010
  private _needAnimate;
6093
6011
  ani: RmAnimation;
6012
+ getProp(key: string, def?: any): any;
6094
6013
  constructor(chart: IChart);
6095
6014
  protected _doInit(op: SeriesOptions): void;
6096
6015
  protected _createLabel(chart: IChart): DataPointLabel;
@@ -6264,7 +6183,7 @@ declare abstract class Series<OP extends SeriesOptions = SeriesOptions> extends
6264
6183
  protected _createFielders(op: SeriesOptions): void;
6265
6184
  protected _createLegendMarker(doc: Document, size: number): RmElement;
6266
6185
  protected _defaultLoadAnimation(): SeriesLoadAnimation;
6267
- _load(source: any): OP;
6186
+ protected _doLoad(op: OP, source: any): void;
6268
6187
  protected _doLoadData(src: any): any[];
6269
6188
  private $_loadPoints;
6270
6189
  protected _doLoadPoints(src: any): void;
@@ -6284,6 +6203,7 @@ declare abstract class ValuePoint extends DataPoint {
6284
6203
  protected _assignTo(proxy: any): any;
6285
6204
  getValue(): number;
6286
6205
  getBaseValue(): number;
6206
+ protected _valuesChanged(prev: any): boolean;
6287
6207
  }
6288
6208
  /**
6289
6209
  */
@@ -6401,7 +6321,7 @@ interface ISelectionOwner {
6401
6321
  selectionItemRemoved(item: ISelectionSource[]): void;
6402
6322
  selectionCleared(): void;
6403
6323
  }
6404
- declare class MapSelection extends RmObject {
6324
+ declare class MapSelection extends RObject {
6405
6325
  private _owner;
6406
6326
  private _items;
6407
6327
  constructor(owner: ISelectionOwner);
@@ -6719,6 +6639,19 @@ declare class AssetCollection {
6719
6639
  private $_loadItem;
6720
6640
  }
6721
6641
 
6642
+ declare abstract class RmEventProvider<T> extends RObject {
6643
+ private _listeners;
6644
+ _addListener(listener: T): void;
6645
+ _removeListener(listener: T): void;
6646
+ /**
6647
+ * event로 지정한 함수가 정의된 모든 리스너에 대해 실행한다.
6648
+ * 리스너 scope으로 실행하고, 첫번째 매개변수로 이 객체가 전달된다.
6649
+ * 다만, 리스너들 중 하나라도 undefined가 아닌 값을 리턴하면,
6650
+ * 그 값을 리턴하면서 멈춘다.
6651
+ */
6652
+ protected _fireEvent(event: string, ...args: any[]): any;
6653
+ }
6654
+
6722
6655
  /**
6723
6656
  * 맵차트 제작 주체 등을 표시하는 영역에 대한 모델.<br/>
6724
6657
  * 기본적으로 맵차트 오른쪽 아래에 표시되지만, {@link align}, {@link verticalAlign} 등으로 위치를 지정할 수 있다.
@@ -7079,6 +7012,44 @@ declare class MapScale extends ScaleBase<MapScaleOptions> {
7079
7012
  private $_calcScale;
7080
7013
  }
7081
7014
 
7015
+ /**
7016
+ * 맵차트 내보내기 설정 모델
7017
+ */
7018
+ interface ExporterOptions extends ChartItemOptions {
7019
+ /**
7020
+ * 내보내기 버튼 표시 여부 지정
7021
+ */
7022
+ visible?: boolean;
7023
+ /**
7024
+ * 내보내기 버튼을 사용해 내보낸 맵차트에 사용할 확장자 없는 파일 이름.\
7025
+ * 'export' 함수를 호출할 때 fileName을 지정하지 않을 경우 이 속성이 적용된다.
7026
+ * fileName을 지정하지 않을 경우 realmap.type으로 다운로드 된다.
7027
+ *
7028
+ */
7029
+ fileName?: string;
7030
+ /**
7031
+ * 내보내기를 라이브러리를 사용하여 진행할지 여부 지정
7032
+ */
7033
+ useLibrary?: boolean;
7034
+ /**
7035
+ * 내보내기 메뉴에 포함할 export types
7036
+ */
7037
+ menus?: ExportType[];
7038
+ /**
7039
+ * 너비, 지정한 너비에 맞춰 높이가 결정된다.
7040
+ */
7041
+ width?: number;
7042
+ /**
7043
+ * 이미지의 scale
7044
+ */
7045
+ scale?: number;
7046
+ /**
7047
+ * 내보내기 도중 에러가 발생했을 때 처리할 서버 URL. <br />
7048
+ * 지정하지 않을경우 realmap 서버에서 처리한다.
7049
+ */
7050
+ url?: string;
7051
+ }
7052
+
7082
7053
  interface MapRegionTargetOptions extends ChartItemOptions {
7083
7054
  }
7084
7055
  interface MapRegionConnectorOptions extends ChartItemOptions {
@@ -7426,7 +7397,7 @@ declare class Exporter extends ChartItem<ExporterOptions> {
7426
7397
  toggleContextMenu(): void;
7427
7398
  contains(dom: Element): boolean;
7428
7399
  hideContextMenu(): void;
7429
- exportToImage(dom: HTMLElement, options: ExportOptions, exporting: ExporterOptions): void;
7400
+ exportToImage(dom: HTMLElement, options: ExportOptions): void;
7430
7401
  }
7431
7402
 
7432
7403
  /**
@@ -7444,7 +7415,6 @@ declare class MapAxisGrid extends ChartItem<MapAxisGridOptions> {
7444
7415
  private _line;
7445
7416
  private _lonLine;
7446
7417
  private _latLine;
7447
- private _fitTo;
7448
7418
  protected _doInit(op: MapAxisGridOptions): void;
7449
7419
  get line(): MapAxisGridLine;
7450
7420
  get lonLine(): MapAxisGridLine;
@@ -7597,7 +7567,7 @@ declare class MapAxis extends ChartItem<MapAxisOptions> {
7597
7567
  declare abstract class BodyPanel<OP extends BodyPanelOptions = BodyPanelOptions> extends ChartItem<OP> {
7598
7568
  static readonly ITEM_GAP = 4;
7599
7569
  static defaults: BodyPanelOptions;
7600
- getItemGap(): number;
7570
+ getItemGap(): 4 | OP["itemGap"];
7601
7571
  }
7602
7572
  declare class ZoomPanel extends BodyPanel<ZoomPanelOptions> {
7603
7573
  static readonly BUTTON_SIZE = 24;
@@ -7625,9 +7595,7 @@ declare class Title<OP extends TitleOptions = TitleOptions> extends ChartItem<OP
7625
7595
  }
7626
7596
  /**
7627
7597
  * 맵차트 부제목(subtitle) 설정 모델.<br/>
7628
- * 기본적으로 주 제목(title)의 설정을 따르고, 몇가지 속성들이 추가된다.<br/>
7629
- * {@link https://realmap.co.kr/guide/subtitle 부제목 개요} 페이지를 참조한다.
7630
- *
7598
+ * 기본적으로 주 제목(title)의 설정을 따르고, 몇가지 속성들이 추가된다.
7631
7599
  */
7632
7600
  declare class Subtitle extends Title<SubtitleOptions> {
7633
7601
  static defaults: SubtitleOptions;
@@ -7639,7 +7607,6 @@ declare class MapSeriesPoint extends ValuePoint {
7639
7607
  protected _readObject(series: MapSeries, v: any): void;
7640
7608
  getLabel(index: number): string;
7641
7609
  getParam(param: string): any;
7642
- _valuesChanged(prev: any): boolean;
7643
7610
  setSelected(selected: boolean): void;
7644
7611
  }
7645
7612
  declare class MapSeriesDrilldown extends ChartItem<DrilldownOptions> {
@@ -7807,13 +7774,6 @@ declare class MapRegionCollection extends PositionalItemCollection<MapRegion> {
7807
7774
  protected _loadItem(chart: IChart, src: any, index: number, inBody: boolean): MapRegion;
7808
7775
  }
7809
7776
 
7810
- declare class EmptyViewModel extends ChartText<EmptyViewOptions> {
7811
- static readonly DEF_TEXT = "\uD45C\uC2DC\uD560 \uB0B4\uC6A9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.";
7812
- static defaults: EmptyViewOptions;
7813
- protected _doPrepareRender(chart: IChart): void;
7814
- protected _getMessage(): string;
7815
- }
7816
-
7817
7777
  declare class MapBackground extends ChartItem<MapBackgroundOptions> {
7818
7778
  static defaults: MapBackgroundOptions;
7819
7779
  isVisible(): boolean;
@@ -7833,7 +7793,6 @@ declare class Body extends ChartItem<BodyOptions> implements IAnnotationOwner {
7833
7793
  static defaults: BodyOptions;
7834
7794
  private _projection;
7835
7795
  private _mapBackground;
7836
- private _emptyView;
7837
7796
  private _anns;
7838
7797
  _annotations: AnnotationCollection;
7839
7798
  _prj: MapProjection;
@@ -7904,7 +7863,6 @@ declare class Body extends ChartItem<BodyOptions> implements IAnnotationOwner {
7904
7863
  get map(): MapModel;
7905
7864
  get calcedMapWidth(): number;
7906
7865
  isDrilldowned(): boolean;
7907
- get emptyView(): EmptyViewModel;
7908
7866
  private $_calcPan;
7909
7867
  prepare(map: MapModel): void;
7910
7868
  prepareLayout(width: number, height: number): {
@@ -8052,6 +8010,7 @@ declare class ChartObject extends RmEventProvider<IMapChartEvents> implements IC
8052
8010
  constructor(config?: ChartConfiguration, wrapper?: any);
8053
8011
  private _initOptions;
8054
8012
  get wrapper(): any;
8013
+ get exporter(): any;
8055
8014
  get options(): ChartConfiguration;
8056
8015
  get global(): ChartGlobal;
8057
8016
  get isGlobe(): boolean;
@@ -8063,6 +8022,9 @@ declare class ChartObject extends RmEventProvider<IMapChartEvents> implements IC
8063
8022
  _modelChanged(): void;
8064
8023
  _optionChanged(item: ChartItem, tag?: any): void;
8065
8024
  animatable(): boolean;
8025
+ hoverable(): boolean;
8026
+ clickable(): boolean;
8027
+ draggable(): boolean;
8066
8028
  loadAnimatable(): boolean;
8067
8029
  requestShowSeries(series: Series, visible: boolean): void;
8068
8030
  _selectionChanged(series: ISeries, points: DataPoint[]): void;
@@ -8078,7 +8040,7 @@ declare class ChartObject extends RmEventProvider<IMapChartEvents> implements IC
8078
8040
  selectionItemAdded(item: ISelectionSource[]): void;
8079
8041
  selectionItemRemoved(item: ISelectionSource[]): void;
8080
8042
  selectionCleared(): void;
8081
- get type(): "map" | "point" | "line" | "figure" | "image" | "bar" | "pie" | "waffle" | "bubble" | "route" | "feature" | "pin" | "vector" | "heatmap" | "panel" | "gauge" | "clock";
8043
+ get type(): "map" | "figure" | "point" | "line" | "image" | "bar" | "pie" | "waffle" | "bubble" | "route" | "feature" | "pin" | "vector" | "heatmap" | "panel" | "gauge" | "clock";
8082
8044
  get legend(): Legend;
8083
8045
  get credits(): Credits;
8084
8046
  /**
@@ -8186,6 +8148,7 @@ interface IChart {
8186
8148
  axis: MapAxis;
8187
8149
  body: Body;
8188
8150
  _tooltip: Tooltip;
8151
+ _exporter: Exporter;
8189
8152
  _assets: AssetCollection;
8190
8153
  _seriesIndex: number;
8191
8154
  selection: MapSelection;
@@ -8202,6 +8165,8 @@ interface IChart {
8202
8165
  getFirstSeries(type: string): Series;
8203
8166
  findSeries(finder: (series: ISeries) => boolean): Series;
8204
8167
  animatable(): boolean;
8168
+ hoverable(): boolean;
8169
+ clickable(): boolean;
8205
8170
  loadAnimatable(): boolean;
8206
8171
  loadBase(source: any, model: string, type: string): any;
8207
8172
  assignTemplates(target: any): any;
@@ -8238,17 +8203,12 @@ declare const extend: <O extends ChartItemOptions>(base: any, source: O) => O;
8238
8203
  /**
8239
8204
  * 맵차트 구성 요소 모델들의 기반 클래스.<br/>
8240
8205
  */
8241
- declare class ChartItem<OP extends ChartItemOptions = ChartItemOptions> extends RmObject {
8206
+ declare class ChartItem<OP extends ChartItemOptions = ChartItemOptions> extends ROptionable<OP> {
8242
8207
  static readonly REFRESHED = "refreshed";
8243
8208
  static defaults: ChartItemOptions;
8244
8209
  readonly chart: IChart;
8245
- protected _op: OP;
8246
8210
  _style: SVGStyleOrClass;
8247
- private _children;
8248
8211
  constructor(chart: IChart);
8249
- _init(): OP;
8250
- protected _doInit(op: OP): void;
8251
- get options(): OP;
8252
8212
  /**
8253
8213
  * 표시 여부.<br/>
8254
8214
  * options.visible 값을 그대로 return하는 것이 아니라,
@@ -8260,55 +8220,9 @@ declare class ChartItem<OP extends ChartItemOptions = ChartItemOptions> extends
8260
8220
  get visible(): boolean;
8261
8221
  set visible(value: boolean);
8262
8222
  protected _isVisible(): boolean;
8263
- _load(source: any): OP;
8264
- loadOptions(source: any): OP;
8265
- saveOptions(): any;
8266
- /**
8267
- * 모델 설정 값들을 변경한다.<br/>
8268
- *
8269
- * @param source 설정 옵션들이 포함된 json 객체
8270
- * @param render true로 지정하면 옵션 변경 시 맵차트를 다시 그린다. 기본갑 true
8271
- * @returns 모델 객체 자신
8272
- */
8273
- updateOptions(source?: OP, render?: boolean): this;
8274
- /**
8275
- * 하나의 속성 값을 설정한다.<br/>
8276
- * 여러 속성들을 한꺼번에 변경할 때는 {@link updateOptions}를 사용한다.
8277
- * 기본적으로 이전 값과 다른 경우에만 적용된다.
8278
- * 특히, 속성값이 객체인 경우 객체 속성만 바뀐 경우 적용되지 않는다.
8279
- * 바꾸고 싶다면 force 매개변수를 true로 지정해서 호출한다.<br/>
8280
- * 또, prop 매개변수가 하위 모델 이름인 경우 하위 모델의 {@link updateOptions}를 호출한 것과 동일하다.
8281
- *
8282
- * @param prop 설정 항목 이름
8283
- * @param value 설정 값
8284
- * @param render true로 지정하면 옵션 변경 시 맵차트를 다시 그린다. 기본값: true
8285
- * @param force 지정한 값이 이전 값과 동일한 경우에도 적용한다. 기본값: false
8286
- * @returns 모델 객체 자신
8287
- */
8288
- updateOption(prop: keyof OP, value: any, render?: boolean, force?: boolean): this;
8289
- /**
8290
- * boolean 타입의 모델 설정 값을 반대 값으로 변경한다.<br/>
8291
- *
8292
- * @param prop 설정 항목 이름
8293
- * @param render true로 지정하면 옵션 변경 시 맵차트를 다시 그린다. 기본갑 true
8294
- * @returns 모델 객체 자신
8295
- */
8296
- toggleOption(prop: keyof OP, render?: boolean): this;
8297
- /**
8298
- * 명시적으로 설정된 모델 설정 값을 제거해서 모델의 기본 값이 적용되도록 한다.<br/>
8299
- *
8300
- * @param prop 설정 항목 이름
8301
- * @param render true로 지정하면 옵션 변경 시 맵차트를 다시 그린다. 기본갑 true
8302
- * @returns 모델 객체 자신
8303
- */
8304
- removeOption(prop: keyof OP, render?: boolean): this;
8305
- /**
8306
- * 명시적으로 설정된 모든 모델 설정 값들을 제거한다.<br/>
8307
- *
8308
- * @param render true로 지정하면 옵션 변경 시 맵차트를 다시 그린다. 기본갑 true
8309
- * @returns 모델 객체 자신
8310
- */
8311
- clearOptions(render?: boolean): this;
8223
+ protected _doSetSimple(op: OP, src: any): boolean;
8224
+ protected _addChild<T extends ROptionable>(name: string & keyof OP, child: T): T;
8225
+ protected _doLoad(op: OP, source: any): void;
8312
8226
  /**
8313
8227
  * 명시적으로 모델에 설정된 모든 style 값들을 제거한다.<br/>
8314
8228
  *
@@ -8338,15 +8252,11 @@ declare class ChartItem<OP extends ChartItemOptions = ChartItemOptions> extends
8338
8252
  _prepareRender(): void;
8339
8253
  _afterRender(): void;
8340
8254
  _optionChanged(tag?: any): void;
8341
- protected _doLoad(op: OP, source: any): void;
8342
- protected _doSetSimple(op: OP, src: any): boolean;
8343
- /** @private */
8344
8255
  protected _doLoadProp(prop: string, value: any): boolean;
8345
8256
  private $_applyOptions;
8346
- protected _setDim(op: OP, prop: string): void;
8257
+ protected _setDim(_op: OP, prop: string): void;
8347
8258
  protected _setDims(op: OP, ...props: string[]): void;
8348
8259
  protected _doApply(op: OP): void;
8349
- protected _doSave(target: object): void;
8350
8260
  protected _doPrepareRender(chart: IChart, op: OP): void;
8351
8261
  protected _doAfterRender(): void;
8352
8262
  }
@@ -8543,7 +8453,7 @@ declare abstract class Annotation<OP extends AnnotationOptions = AnnotationOptio
8543
8453
  */
8544
8454
  refresh(): void;
8545
8455
  protected _getNamePrefix(): string;
8546
- _load(source: any): OP;
8456
+ protected _doLoad(op: OP, source: any): void;
8547
8457
  protected _doPrepareRender(chart: IChart, op: AnnotationOptions): void;
8548
8458
  protected _getDefaultAlign(): string;
8549
8459
  }
@@ -8552,9 +8462,6 @@ declare abstract class Annotation<OP extends AnnotationOptions = AnnotationOptio
8552
8462
  */
8553
8463
  interface IAnnotationOwner {
8554
8464
  chart: IChart;
8555
- options: {
8556
- annotations?: AnnotationOptions | AnnotationOptions[];
8557
- };
8558
8465
  anchorByName(name: string): ChartItem;
8559
8466
  }
8560
8467
  /**
@@ -8583,9 +8490,6 @@ declare class MapChart {
8583
8490
  _loadCallback: (args: LoadCallbackArgs) => void;
8584
8491
  private _loaded;
8585
8492
  constructor(config?: ChartConfiguration, callback?: (model: ChartObject, oldModel: ChartObject) => void);
8586
- /**
8587
- */
8588
- get options(): ChartConfiguration;
8589
8493
  /**
8590
8494
  *
8591
8495
  * 기본 시리즈 종류.\
@@ -9117,7 +9021,7 @@ declare class ColorScaleView extends MapWidgetView<ColorScale> {
9117
9021
 
9118
9022
  type Visitor<T extends RmElement> = (element: T, index?: number, count?: number) => void;
9119
9023
  /** @private */
9120
- declare class ElementPool<T extends RmElement> extends RmObject {
9024
+ declare class ElementPool<T extends RmElement> extends RObject {
9121
9025
  private _reversed;
9122
9026
  removeDelay: number;
9123
9027
  private _owner;
@@ -9128,7 +9032,7 @@ declare class ElementPool<T extends RmElement> extends RmObject {
9128
9032
  constructor(owner: RmElement, creator: {
9129
9033
  new (doc: Document, styleName?: string): T;
9130
9034
  }, styleName?: string, removeDelay?: number);
9131
- protected _doDestory(): void;
9035
+ protected _doDispose(): void;
9132
9036
  get owner(): RmElement;
9133
9037
  /**
9134
9038
  * reversed.
@@ -9568,7 +9472,6 @@ declare class BodyView extends ChartElement<Body> implements IAnnotationAnchorOw
9568
9472
  private _mousePos;
9569
9473
  private _prevPrj;
9570
9474
  private _zoom;
9571
- private _emptyView;
9572
9475
  constructor(doc: Document, owner: IBodyViewOwner);
9573
9476
  getAnnotationAnchor(model: any): RmElement;
9574
9477
  get firstMap(): MapSeriesView;
@@ -9638,10 +9541,6 @@ declare class BodyView extends ChartElement<Body> implements IAnnotationAnchorOw
9638
9541
  * 프로젝션이 변경된 경우, 클리핑 영역을 갱신한다.
9639
9542
  */
9640
9543
  private $_layoutClip;
9641
- /**
9642
- * EmptyView를 표시할지 여부를 반환한다.
9643
- */
9644
- private $_isEmptyVisible;
9645
9544
  }
9646
9545
 
9647
9546
  declare class TitleView extends BoundableElement<Title> {
@@ -9697,11 +9596,11 @@ declare class CreditsView extends ChartElement<Credits> {
9697
9596
  private _textView;
9698
9597
  constructor(doc: Document);
9699
9598
  click(dom: Element): void;
9700
- locateInner(op: CreditsOptions, rBody: Rectangle): {
9599
+ locateInner(credit: Credits, rBody: Rectangle): {
9701
9600
  x: number;
9702
9601
  y: number;
9703
9602
  };
9704
- locateOuter(op: CreditsOptions, width: number, height: number): {
9603
+ locateOuter(credit: Credits, width: number, height: number): {
9705
9604
  x: number;
9706
9605
  y: number;
9707
9606
  };
@@ -9829,6 +9728,8 @@ declare class BarSeriesPoint extends OrthogonalSparkSeriesPoint {
9829
9728
  * {@link options 설정} 모델은 {@link https://realmap.co.kr/docs/api/options/BarSeriesOptions BarSeriesOptions}이다.
9830
9729
  */
9831
9730
  declare class BarSeries extends OrthogonalSparkSeries<BarSeriesOptions> {
9731
+ private static readonly LABEL_OFFSET_CENTER;
9732
+ private static readonly LABEL_OFFSET_AUTO;
9832
9733
  static type: string;
9833
9734
  static defaults: BarSeriesOptions;
9834
9735
  private _subLabel;
@@ -9842,13 +9743,13 @@ declare class BarSeries extends OrthogonalSparkSeries<BarSeriesOptions> {
9842
9743
  protected _defLabelOff(): number;
9843
9744
  protected _createLegendMarker(doc: Document, size: number): RmElement;
9844
9745
  setCalcedColor(cs: CSSStyleDeclaration, prop: string): void;
9746
+ private $_isLabelCenter;
9845
9747
  }
9846
9748
 
9847
9749
  declare class BubbleSeriesPoint extends MarkerSeriesPoint {
9848
9750
  position: PointViewPosition;
9849
9751
  labelCount(): number;
9850
9752
  protected _readObject(series: ISeries<BubbleSeriesPoint>, v: any): void;
9851
- protected _valuesChanged(prev: any): boolean;
9852
9753
  }
9853
9754
  /**
9854
9755
  * Bubble 시리즈 모델.<br/>
@@ -10387,7 +10288,6 @@ declare class PointSeriesPoint extends MarkerSeriesPoint {
10387
10288
  x: number;
10388
10289
  y: number;
10389
10290
  protected _readObject(series: ISeries<PointSeriesPoint>, v: any): void;
10390
- protected _valuesChanged(prev: any): boolean;
10391
10291
  }
10392
10292
  /**
10393
10293
  * Point 시리즈 모델.<br/>
@@ -10830,7 +10730,7 @@ declare class Utils {
10830
10730
  /**
10831
10731
  * @param path 'aaa.bbb.2.ccc' 형식으로 지정한다. 2는 배열 항목 index.
10832
10732
  */
10833
- static valueAt(data: any, path?: string): any;
10733
+ static valueAt(data: any, path?: string | number): any;
10834
10734
  static normalizeToSteps(arr: number[], n: number): number[];
10835
10735
  }
10836
10736
 
@@ -10926,7 +10826,7 @@ declare class HtmlAnnotationView extends AnnotationView<HtmlAnnotation> {
10926
10826
  constructor(doc: Document);
10927
10827
  protected _doMeasure(doc: Document, model: HtmlAnnotation, hintWidth: number, hintHeight: number): ISize;
10928
10828
  protected _doLayout(p: IPoint$1): void;
10929
- protected _doDestory(): void;
10829
+ protected _doDispose(): void;
10930
10830
  private $_refresh;
10931
10831
  }
10932
10832
 
@@ -10961,15 +10861,18 @@ declare class TextAnnotationView extends AnnotationView<TextAnnotation> {
10961
10861
  declare class BarSeriesView extends OrthogonalSparkSeriesView<BarSeries> {
10962
10862
  private _bars;
10963
10863
  protected _labelInfo: LabelLayoutInfo;
10864
+ private _hoverBar;
10964
10865
  constructor(doc: Document);
10965
10866
  protected _getPointPool(): PointViewPool<PointElement>;
10966
10867
  protected _doPrepeare(doc: Document, model: BarSeries, dataDirty: boolean): void;
10967
10868
  protected _doRender(width: number, height: number): void;
10968
10869
  protected _doReset(): void;
10870
+ protected _doPointerMoved(x: number, y: number, dom: Element): boolean;
10969
10871
  protected _runShowEffect(firstTime: boolean): void;
10970
10872
  protected _doViewRateChanged(rate: number): void;
10971
10873
  private $_prepareBars;
10972
10874
  private $_layoutBars;
10875
+ private $_resolveLabelPosition;
10973
10876
  }
10974
10877
 
10975
10878
  declare class BubbleSeriesPointView extends MarkerSeriesPointView<BubbleSeriesPoint> {