realreport 1.11.29 → 1.11.30

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.
@@ -1,6 +1,6 @@
1
1
  /**
2
- * RealReport v1.11.29
3
- * commit 089b77a
2
+ * RealReport v1.11.30
3
+ * commit 4bbbdd1
4
4
 
5
5
  * {@link https://real-report.com}
6
6
  * Copyright (C) 2013-2026 WooriTech Inc.
@@ -8,10 +8,10 @@
8
8
  */
9
9
 
10
10
  /**
11
- * RealReport Core v1.11.29
11
+ * RealReport Core v1.11.30
12
12
  * Copyright (C) 2013-2026 WooriTech Inc.
13
13
  * All Rights Reserved.
14
- * commit 1b840042a94a4543a42dcb6197c59bda1cdc5959
14
+ * commit 88edcd3d8d4b3d9b29e2a6d346b0efc3e445566d
15
15
  */
16
16
  type ConfigObject$2 = {
17
17
  [key: string]: any;
@@ -1283,6 +1283,7 @@ interface IPropertySource {
1283
1283
  canPropAdoptDragSource(prop: IPropInfo, source: any): boolean;
1284
1284
  adoptPropDragSource(prop: IPropInfo, source: any): IDropResult;
1285
1285
  getCollapsedPropCategories?: () => string[];
1286
+ getPropertyCategoryLabel?: (category: string) => string;
1286
1287
  isCollectionProp(): boolean;
1287
1288
  isEditableCollection(): boolean;
1288
1289
  isCollectionItem(): boolean;
@@ -1334,6 +1335,7 @@ declare enum PropCategory {
1334
1335
  MARKER = "marker",
1335
1336
  LEGEND = "legend",
1336
1337
  SHEET = "sheet",
1338
+ COLUMN_HEADER = "columnHeader",
1337
1339
  GRID = "grid",
1338
1340
  LINE = "line",
1339
1341
  TICK = "tick",
@@ -2686,6 +2688,177 @@ declare abstract class TableColumnCollectionBase<T extends ReportGroupItem, C ex
2686
2688
  private $_columnChanged;
2687
2689
  }
2688
2690
 
2691
+ declare class TableBandRowGroupCollection extends ReportItemCollection<TableBandRowGroup> {
2692
+ static readonly $_ctor: string;
2693
+ private _band;
2694
+ private _groups;
2695
+ constructor(band?: TableBand);
2696
+ get outlineParent(): IOutlineSource;
2697
+ get outlineLabel(): string;
2698
+ get outlineExpandable(): boolean;
2699
+ get outlineItems(): IOutlineSource[];
2700
+ getSaveType(): string;
2701
+ get owner(): ReportItem;
2702
+ /** band */
2703
+ get band(): TableBand;
2704
+ /** count */
2705
+ get count(): number;
2706
+ get items(): ReportPageItem[];
2707
+ get visibleCount(): number;
2708
+ /** groups */
2709
+ get groups(): TableBandRowGroup[];
2710
+ load(loader: IReportLoader, src: any): void;
2711
+ save(target: any): void;
2712
+ get(index: number): TableBandRowGroup;
2713
+ indexOf(group: TableBandRowGroup): number;
2714
+ add(group: TableBandRowGroup | ConfigObject$2, index?: number): TableBandRowGroup;
2715
+ addAll(groups: (TableBandRowGroup | ConfigObject$2)[], index?: number): boolean;
2716
+ removeAt(index: number): boolean;
2717
+ remove(group: TableBandRowGroup): boolean;
2718
+ clear(): boolean;
2719
+ getValidGroups(data: IBandData): TableBandRowGroup[];
2720
+ removeCols(index: number, count: number): void;
2721
+ resetCells(): void;
2722
+ get page(): ReportPageBase;
2723
+ get displayPath(): string;
2724
+ get level(): number;
2725
+ isAncestorOf(item: ReportPageItem): boolean;
2726
+ protected _doMoveItem(from: number, to: number): boolean;
2727
+ private $_add;
2728
+ private $_invalidateGroups;
2729
+ private $_groupChanged;
2730
+ }
2731
+
2732
+ /**
2733
+ * 특정 속성 카테고리에서 자식 스타일 정보를 하위로 생성해야할 때 사용
2734
+ */
2735
+ declare abstract class ReportItemObject<T extends ReportItem> extends ReportPageItem implements ReportObject {
2736
+ static readonly PROPINFOS: IPropInfo[];
2737
+ static readonly STYLE_PROPS: any[];
2738
+ private _item;
2739
+ private _styles;
2740
+ constructor(item: T);
2741
+ get outlineParent(): IOutlineSource;
2742
+ get outlineExpandable(): boolean;
2743
+ get outlineLabel(): string;
2744
+ getSaveType(): string;
2745
+ canRemoveFrom(): boolean;
2746
+ abstract getSaveLabel(): string;
2747
+ getEditProps(): IPropInfo[];
2748
+ getStyleProps(): IPropInfo[];
2749
+ getSubStyleProps(prop: string): IPropInfo[];
2750
+ getPlaceHolder(prop: IPropInfo): string;
2751
+ getPropDomain(prop: IPropInfo): any[];
2752
+ setItemsProperty(sources: IPropertySource[], prop: string, value: any): void;
2753
+ getStyle(style: string): string;
2754
+ setStyle(style: string, value: string): void;
2755
+ getStyleProperty(prop: string): any;
2756
+ setStyleProperty(prop: string, value: any): void;
2757
+ isChildProp(prop: string): boolean;
2758
+ getSubStyleProperty(prop: string, style: string): any;
2759
+ setSubStyleProperty(prop: string, style: string, value: any): void;
2760
+ setItemsSubStyleProperty(sources: IPropertySource[], prop: string, style: string, value: any): void;
2761
+ canPropAdoptDragSource(prop: IPropInfo, source: any): boolean;
2762
+ adoptPropDragSource(prop: IPropInfo, source: any): IDropResult;
2763
+ get item(): T;
2764
+ get page(): ReportPageBase;
2765
+ get report(): ReportBase;
2766
+ get styles(): Styles;
2767
+ set styles(value: Styles);
2768
+ defaultInit(): void;
2769
+ load(loader: IReportLoader, source: ReportSource): void;
2770
+ save(target: ReportTarget): boolean;
2771
+ isCollection(): boolean;
2772
+ protected _doDefaultInit(): void;
2773
+ protected _doLoad(loader: IReportLoader, source: ReportSource): void;
2774
+ protected _doSave(target: ReportTarget): void;
2775
+ protected _getEditProps(): IPropInfo[];
2776
+ protected _getStyleProps(): string[];
2777
+ protected _getSubStyle(prop: string, style: string): any;
2778
+ protected _setSubStyle(prop: string, style: string, value: any): void;
2779
+ protected _changed(prop: string, newValue: unknown, oldValue: unknown): void;
2780
+ }
2781
+
2782
+ declare class GroupRowColumnHeaderObject<T extends ReportGroupItem> extends ReportItemObject<T> {
2783
+ static readonly PROP_WIDTH = "width";
2784
+ static readonly PROP_TEXT = "text";
2785
+ static readonly PROPINFOS: IPropInfo[];
2786
+ private static readonly STYLES;
2787
+ private _text;
2788
+ constructor(groupRow: T);
2789
+ get pathLabel(): string;
2790
+ get displayPath(): string;
2791
+ get text(): string | undefined;
2792
+ set text(value: string | undefined);
2793
+ get level(): number;
2794
+ getSaveLabel(): string;
2795
+ protected _doLoad(loader: IReportLoader, source: ReportSource): void;
2796
+ protected _doSave(target: ReportTarget): void;
2797
+ _getEditProps(): IPropInfo[];
2798
+ _getStyleProps(): string[];
2799
+ getPropDomain(prop: IPropInfo): any[];
2800
+ }
2801
+
2802
+ declare class TableBandRowGroupRow extends ReportGroupItem {
2803
+ static readonly $_ctor: string;
2804
+ static readonly PROPINFOS: IPropInfo[];
2805
+ static readonly STYLE_PROPS: string[];
2806
+ private _group;
2807
+ private _columnHeader;
2808
+ constructor(group: TableBandRowGroup);
2809
+ /** columnHeader */
2810
+ get columnHeader(): GroupRowColumnHeaderObject<TableBandRowGroupRow>;
2811
+ isEmpty(): boolean;
2812
+ get outlineLabel(): string;
2813
+ get pathLabel(): string;
2814
+ canDelete(): boolean;
2815
+ protected _getEditProps(): IPropInfo[];
2816
+ protected _getStyleProps(): string[];
2817
+ canResize(dir: ResizeDirection): boolean;
2818
+ getDesignText(): string;
2819
+ protected _doLoad(loader: IReportLoader, src: any): void;
2820
+ protected _doSave(target: object): void;
2821
+ }
2822
+
2823
+ declare class TableBandRowGroup extends DataBandRowGroup {
2824
+ static readonly PROPINFOS: IPropInfo[];
2825
+ private _merged;
2826
+ private _collection;
2827
+ private _header;
2828
+ private _row;
2829
+ private _footer;
2830
+ constructor(collection: TableBandRowGroupCollection);
2831
+ get outlineParent(): IOutlineSource;
2832
+ get marqueeParent(): ReportItem;
2833
+ getEditProps(): IPropInfo[];
2834
+ getCollectionLabel(): string;
2835
+ /** header */
2836
+ get header(): TableBandRowGroupHeader;
2837
+ /** rowGroup – 그룹 데이터 행 영역 (rowGroupMerged 활성화 시 렌더링) */
2838
+ get rowGroup(): TableBandRowGroupRow;
2839
+ /** footer */
2840
+ get footer(): TableBandRowGroupFooter;
2841
+ /** band */
2842
+ get band(): TableBand;
2843
+ getWidth(domain: number): number;
2844
+ get page(): ReportPageBase;
2845
+ get report(): ReportBase;
2846
+ get collection(): TableBandRowGroupCollection;
2847
+ get dataParent(): ReportGroupItem;
2848
+ get outlineLabel(): string;
2849
+ get displayPath(): string;
2850
+ protected _ignoreItems(): boolean;
2851
+ protected _doLoad(loader: IReportLoader, src: any): void;
2852
+ protected _doSave(target: object): void;
2853
+ /**
2854
+ * 그룹 섹션(header / rowGroup / footer)을 로드한다.
2855
+ * 키가 없는 구 JSON과의 역호환: load가 호출되지 않더라도
2856
+ * cells 그리드는 반드시 초기화해야 렌더러 접근 시 오류가 발생하지 않는다.
2857
+ */
2858
+ private $_loadGroupSection;
2859
+ protected _changed(prop: string, newValue: any, oldValue: any): void;
2860
+ }
2861
+
2689
2862
  declare class TableBandColumn extends TableColumnBase {
2690
2863
  constructor(collection: TableBandColumnCollection, src?: any);
2691
2864
  getCollectionLabel(): string;
@@ -2841,75 +3014,6 @@ declare class TableBandRowGroupFooter extends TableBandRowGroupSection {
2841
3014
  protected _doLoad(loader: IReportLoader, src: any): void;
2842
3015
  protected _doSave(target: object): void;
2843
3016
  }
2844
- declare class TableBandRowGroup extends DataBandRowGroup {
2845
- static readonly PROPINFOS: IPropInfo[];
2846
- private _merged;
2847
- private _collection;
2848
- private _header;
2849
- private _footer;
2850
- constructor(collection: TableBandRowGroupCollection);
2851
- get outlineParent(): IOutlineSource;
2852
- get marqueeParent(): ReportItem;
2853
- getEditProps(): IPropInfo[];
2854
- getCollectionLabel(): string;
2855
- /** header */
2856
- get header(): TableBandRowGroupHeader;
2857
- /** footer */
2858
- get footer(): TableBandRowGroupFooter;
2859
- /** band */
2860
- get band(): TableBand;
2861
- get page(): ReportPageBase;
2862
- get report(): ReportBase;
2863
- get collection(): TableBandRowGroupCollection;
2864
- get dataParent(): ReportGroupItem;
2865
- get outlineLabel(): string;
2866
- get displayPath(): string;
2867
- protected _ignoreItems(): boolean;
2868
- protected _doLoad(loader: IReportLoader, src: any): void;
2869
- protected _doSave(target: object): void;
2870
- protected _getStyleProps(): string[];
2871
- protected _changed(prop: string, newValue: any, oldValue: any): void;
2872
- }
2873
- declare class TableBandRowGroupCollection extends ReportItemCollection<TableBandRowGroup> {
2874
- static readonly $_ctor: string;
2875
- private _band;
2876
- private _groups;
2877
- constructor(band?: TableBand);
2878
- get outlineParent(): IOutlineSource;
2879
- get outlineLabel(): string;
2880
- get outlineExpandable(): boolean;
2881
- get outlineItems(): IOutlineSource[];
2882
- getSaveType(): string;
2883
- get owner(): ReportItem;
2884
- /** band */
2885
- get band(): TableBand;
2886
- /** count */
2887
- get count(): number;
2888
- get items(): ReportPageItem[];
2889
- get visibleCount(): number;
2890
- /** groups */
2891
- get groups(): TableBandRowGroup[];
2892
- load(loader: IReportLoader, src: any): void;
2893
- save(target: any): void;
2894
- get(index: number): TableBandRowGroup;
2895
- indexOf(group: TableBandRowGroup): number;
2896
- add(group: TableBandRowGroup | ConfigObject$2, index?: number): TableBandRowGroup;
2897
- addAll(groups: (TableBandRowGroup | ConfigObject$2)[], index?: number): boolean;
2898
- removeAt(index: number): boolean;
2899
- remove(group: TableBandRowGroup): boolean;
2900
- clear(): boolean;
2901
- getValidGroups(data: IBandData): TableBandRowGroup[];
2902
- removeCols(index: number, count: number): void;
2903
- resetCells(): void;
2904
- get page(): ReportPageBase;
2905
- get displayPath(): string;
2906
- get level(): number;
2907
- isAncestorOf(item: ReportPageItem): boolean;
2908
- protected _doMoveItem(from: number, to: number): boolean;
2909
- private $_add;
2910
- private $_invalidateGroups;
2911
- private $_groupChanged;
2912
- }
2913
3017
  /**
2914
3018
  * 페이지를 넘어갈 수 있다.
2915
3019
  * 한 row는 페이지를 넘어갈 수 없다.
@@ -2924,6 +3028,7 @@ declare class TableBand extends TableLikeBand {
2924
3028
  static readonly PROP_COLUMNS = "columns";
2925
3029
  static readonly PROP_GROUPS = "groups";
2926
3030
  static readonly PROP_END_ROW_MERGED = "endRowMerged";
3031
+ static readonly PROP_ROW_GROUP_MERGED = "rowGroupMerged";
2927
3032
  static readonly PROPINFOS: IPropInfo[];
2928
3033
  static readonly STYLE_PROPS: string[];
2929
3034
  static readonly DEFAULT_COL_COUNT = 5;
@@ -2931,6 +3036,7 @@ declare class TableBand extends TableLikeBand {
2931
3036
  static readonly ITEM_TYPE: string;
2932
3037
  private _colCount;
2933
3038
  private _endRowMerged;
3039
+ private _rowGroupMerged;
2934
3040
  private _columns;
2935
3041
  private _groups;
2936
3042
  private _header;
@@ -2957,6 +3063,8 @@ declare class TableBand extends TableLikeBand {
2957
3063
  */
2958
3064
  get fixed(): boolean;
2959
3065
  set fixed(value: boolean);
3066
+ get rowGroupMerged(): boolean;
3067
+ set rowGroupMerged(value: boolean);
2960
3068
  /** columns */
2961
3069
  get columns(): TableBandColumnCollection;
2962
3070
  /** groups */
@@ -5730,56 +5838,6 @@ declare class PageItemContainer extends BoundedContainer {
5730
5838
  protected _getEditProps(): IPropInfo[];
5731
5839
  }
5732
5840
 
5733
- /**
5734
- * 특정 속성 카테고리에서 자식 스타일 정보를 하위로 생성해야할 때 사용
5735
- */
5736
- declare abstract class ReportItemObject<T extends ReportItem> extends ReportPageItem implements ReportObject {
5737
- static readonly PROPINFOS: IPropInfo[];
5738
- static readonly STYLE_PROPS: any[];
5739
- private _item;
5740
- private _styles;
5741
- constructor(item: T);
5742
- get outlineParent(): IOutlineSource;
5743
- get outlineExpandable(): boolean;
5744
- get outlineLabel(): string;
5745
- getSaveType(): string;
5746
- canRemoveFrom(): boolean;
5747
- abstract getSaveLabel(): string;
5748
- getEditProps(): IPropInfo[];
5749
- getStyleProps(): IPropInfo[];
5750
- getSubStyleProps(prop: string): IPropInfo[];
5751
- getPlaceHolder(prop: IPropInfo): string;
5752
- getPropDomain(prop: IPropInfo): any[];
5753
- setItemsProperty(sources: IPropertySource[], prop: string, value: any): void;
5754
- getStyle(style: string): string;
5755
- setStyle(style: string, value: string): void;
5756
- getStyleProperty(prop: string): any;
5757
- setStyleProperty(prop: string, value: any): void;
5758
- isChildProp(prop: string): boolean;
5759
- getSubStyleProperty(prop: string, style: string): any;
5760
- setSubStyleProperty(prop: string, style: string, value: any): void;
5761
- setItemsSubStyleProperty(sources: IPropertySource[], prop: string, style: string, value: any): void;
5762
- canPropAdoptDragSource(prop: IPropInfo, source: any): boolean;
5763
- adoptPropDragSource(prop: IPropInfo, source: any): IDropResult;
5764
- get item(): T;
5765
- get page(): ReportPageBase;
5766
- get report(): ReportBase;
5767
- get styles(): Styles;
5768
- set styles(value: Styles);
5769
- defaultInit(): void;
5770
- load(loader: IReportLoader, source: ReportSource): void;
5771
- save(target: ReportTarget): boolean;
5772
- isCollection(): boolean;
5773
- protected _doDefaultInit(): void;
5774
- protected _doLoad(loader: IReportLoader, source: ReportSource): void;
5775
- protected _doSave(target: ReportTarget): void;
5776
- protected _getEditProps(): IPropInfo[];
5777
- protected _getStyleProps(): string[];
5778
- protected _getSubStyle(prop: string, style: string): any;
5779
- protected _setSubStyle(prop: string, style: string, value: any): void;
5780
- protected _changed(prop: string, newValue: unknown, oldValue: unknown): void;
5781
- }
5782
-
5783
5841
  /**
5784
5842
  * 다국어 관련 속성 구현
5785
5843
  */
@@ -9438,10 +9496,104 @@ interface ITableMarquee {
9438
9496
  hideSizeFeedbacks(): void;
9439
9497
  }
9440
9498
 
9499
+ /** @internal */
9500
+ declare class TableBandCellElement extends TableCellElementBase {
9501
+ constructor(doc: Document, table: TableElement<TableBase>, model: TableCellItem);
9502
+ }
9503
+
9504
+ declare class TableBandGroupSectionElement<T extends TableBandRowGroupSection> extends TableElement<T> {
9505
+ constructor(doc: Document, model: T);
9506
+ applyGroupStyles(tr: HTMLTableRowElement): void;
9507
+ protected _needDesignBox(): boolean;
9508
+ protected _createCellElement(doc: Document, cell: TableCellItem): TableCellElementBase;
9509
+ protected _doMeasure(ctx: PrintContext$1, dom: HTMLElement, hintWidth: number, hintHeight: number): Size$1;
9510
+ protected _doAfterMeasure(ctx: PrintContext$1, dom: HTMLElement, hintWidth: number, hintHeight: number, sz: Size$1): void;
9511
+ }
9512
+
9513
+ /** @internal */
9514
+ declare class TableBandGroupElement extends ReportGroupItemElement<TableBandRowGroup> {
9515
+ private _masterView;
9516
+ private _header;
9517
+ private _row;
9518
+ private _footer;
9519
+ private _headerHead;
9520
+ private _rowHead;
9521
+ private _footerHead;
9522
+ headIndent: number;
9523
+ constructor(doc: Document, model: TableBandRowGroup);
9524
+ get header(): TableBandGroupHeaderElement;
9525
+ get row(): TableBandGroupRowElement;
9526
+ get footer(): TableBandGroupFooterElement;
9527
+ protected _getCssSelector(): string;
9528
+ protected _needDesignBox(): boolean;
9529
+ protected _doSetStyles(model: ReportItem, dom: HTMLElement): void;
9530
+ protected _doMeasure(ctx: PrintContext$1, dom: HTMLElement, hintWidth: number, hintHeight: number): Size$1;
9531
+ protected _doAfterMeasure(ctx: PrintContext$1, dom: HTMLElement, hintWidth: number, hintHeight: number, sz: Size$1): void;
9532
+ protected _doLayoutContent(ctx: PrintContext$1): void;
9533
+ $_setMasterView(view: TableElement<any>): void;
9534
+ }
9535
+ declare class TableBandGroupHeaderElement extends TableBandGroupSectionElement<TableBandRowGroupHeader> {
9536
+ constructor(doc: Document, model: TableBandRowGroupHeader);
9537
+ protected _getCssSelector(): string;
9538
+ protected _setTableStyles(table: HTMLTableElement): void;
9539
+ }
9540
+ declare class TableBandGroupFooterElement extends TableBandGroupSectionElement<TableBandRowGroupFooter> {
9541
+ constructor(doc: Document, model: TableBandRowGroupFooter);
9542
+ protected _getCssSelector(): string;
9543
+ protected _setTableStyles(table: HTMLTableElement): void;
9544
+ }
9545
+ /**
9546
+ * rowGroupMerged 행 병합 그룹핑이 적용될 시 행병합된 셀의 스타일을 설정하고 표현하기 위해 따로 작성
9547
+ */
9548
+ declare class TableBandGroupRowElement<T extends TableBandRowGroupRow = TableBandRowGroupRow> extends ReportGroupItemElement<T> {
9549
+ static readonly GROUP_ROW_CLASS = "rr-tableband-group-row";
9550
+ private _view;
9551
+ constructor(doc: Document, model: T);
9552
+ protected _getCssSelector(): string;
9553
+ /**
9554
+ * _view는 addDom()으로 추가된 raw DOM이라 VisualElement children에 등록되지 않는다.
9555
+ * containsDom()으로 _view 영역 클릭도 자기 자신으로 인식하도록 override한다.
9556
+ */
9557
+ findElementOf(dom: HTMLElement): ReportGroupItemElement<T>;
9558
+ protected _doMeasure(ctx: PrintContextBase, dom: HTMLElement, hintWidth: number, hintHeight: number): Size$1;
9559
+ protected _doLayoutContent(ctx: PrintContextBase): void;
9560
+ }
9561
+
9562
+ /** 행 타입 구분 ('data' | 'groupHeader' | 'groupFooter') */
9563
+ type GroupRowType = 'data' | 'groupHeader' | 'groupFooter';
9564
+ /**
9565
+ * RowGroupMerger의 핵심 행위들을 추상화한 인터페이스.
9566
+ * rowGroupMerged 모드가 활성 상태(RowGroupMerger)이거나 비활성 상태(NullRowGroupMerger)일 때
9567
+ * 동일한 방식으로 호출할 수 있도록 정의합니다.
9568
+ */
9569
+ interface IRowGroupMerger {
9570
+ /** 그룹 뷰 개수 */
9571
+ readonly groupCount: number;
9572
+ /** 그룹 열들의 총 너비 (px) */
9573
+ readonly totalWidth: number;
9574
+ /** 새 테이블 시작 시 병합 상태를 초기화한다. */
9575
+ resetState(): void;
9576
+ /** 데이터/그룹헤더/푸터 행에 그룹 레벨별 td를 삽입하고 병합(rowspan)을 처리한다. */
9577
+ applyGroupTds(doc: Document, trs: HTMLTableRowElement[], rowType: GroupRowType, group: IBandRowGroup | null): void;
9578
+ /** 그룹 헤더/푸터의 콘텐츠 측정 너비를 계산하여 반환한다. */
9579
+ getContentWidth(pageWidth: number, group: IBandRowGroup | null): number;
9580
+ /** 밴드 헤더 행 앞에 그룹 열 헤더 td를 삽입한다. */
9581
+ applyBandHeaderTds(doc: Document, tbody: HTMLTableSectionElement, rowsBefore: number): void;
9582
+ /** 밴드 푸터 행 앞에 그룹 열 td를 삽입한다. */
9583
+ applyBandFooterTds(doc: Document, tbody: HTMLTableSectionElement, rowsBefore: number): void;
9584
+ /** 그룹 열을 포함한 colGroup 요소를 생성한다. */
9585
+ createColGroup(doc: Document, width: number, dataColGroupCreator: (doc: Document, width: number) => HTMLTableColElement): HTMLTableColElement;
9586
+ /** 그룹 헤더 처리 후 그룹 정보를 보관한다. (페이지 복원에 사용) */
9587
+ savePrevGroupHeader(group: IBandRowGroup): void;
9588
+ /** 새 페이지 시작 시 이전 페이지의 그룹 헤더 상태를 복원한다. */
9589
+ restorePrevGroupHeader(doc: Document, trs: HTMLTableRowElement[]): void;
9590
+ }
9591
+
9441
9592
  /** @internal */
9442
9593
  declare class TableBodyLine {
9443
9594
  protected _rows: HTMLTableRowElement[];
9444
9595
  private _height;
9596
+ static readonly GLC_FIXED_HEIGHT_KEY = "$_glcFixedHeight";
9445
9597
  constructor(trows: HTMLTableRowElement[], row: number, nRow: number);
9446
9598
  get count(): number;
9447
9599
  get height(): number;
@@ -9465,10 +9617,6 @@ declare class TableBodyLine {
9465
9617
  fitHeight(src: TableBodyLine): void;
9466
9618
  }
9467
9619
  /** @internal */
9468
- declare class TableBandCellElement extends TableCellElementBase {
9469
- constructor(doc: Document, table: TableElement<TableBase>, model: TableCellItem);
9470
- }
9471
- /** @internal */
9472
9620
  declare abstract class TableBandSectionElement<T extends TableBandSection> extends TableElement<T> {
9473
9621
  constructor(doc: Document, model: T, styleName: string);
9474
9622
  get debugLabel(): string;
@@ -9489,52 +9637,76 @@ declare class TableBandFooterElement extends TableBandSectionElement<TableBandFo
9489
9637
  declare class TableBandDataRowElement extends TableBandSectionElement<TableBandDataRow> {
9490
9638
  private _styles;
9491
9639
  private _cellStyles;
9640
+ /**
9641
+ * border-collapse 테이블의 셀 콘텐츠 주정 너비를 계산한다.
9642
+ *
9643
+ * [border-collapse 에서의 getBoundingClientRect() 특성]
9644
+ * td.getBoundingClientRect().width = content + padding + (borderLeft + borderRight) / 2
9645
+ * 단, 첫번째/마지막 셀 위치에 관계없이 항상 border/2 이다.
9646
+ *
9647
+ * rr-table-cell div는 td content area 안에 위치하므로 padding을 항상 제거해야 한다.
9648
+ * Math.floor는 중간 계산이 아닌 최종 결과에만 적용하여 소수점 정밀도 손실를 방지한다.
9649
+ *
9650
+ * @param tdWidth td의 실제 렌더링 너비 (px, 호입자가 별도로 결정)
9651
+ * @param td border/padding 스타일 읽기용 td 요소. 없으면 1px 보정만 적용
9652
+ * @returns 측정에 사용할 너비 (px, 소수점 버림)
9653
+ */
9654
+ private static _calcCellContentWidth;
9492
9655
  applyCellStyles(ctx: PrintContext$1, band: TableBand, tr: HTMLTableRowElement, trow: number, dynRowStyles: any): void;
9493
9656
  $_refreshRowCells(ctx: PrintContext$1, hintWidth: number, hintHeight: number, force?: boolean, tableRows?: HTMLTableRowElement[]): void;
9494
9657
  protected _setTableStyles(table: HTMLTableElement): void;
9495
9658
  protected _setRowStyles(tr: HTMLTableRowElement, row: number): void;
9496
9659
  private $_getCellStyleCallback;
9497
9660
  }
9498
- declare class TableBandGroupSectionElement<T extends TableBandRowGroupSection> extends TableElement<T> {
9499
- constructor(doc: Document, model: T);
9500
- applyGroupStyles(tr: HTMLTableRowElement): void;
9501
- protected _needDesignBox(): boolean;
9502
- protected _createCellElement(doc: Document, cell: TableCellItem): TableCellElementBase;
9503
- protected _doMeasure(ctx: PrintContext$1, dom: HTMLElement, hintWidth: number, hintHeight: number): Size$1;
9504
- protected _doAfterMeasure(ctx: PrintContext$1, dom: HTMLElement, hintWidth: number, hintHeight: number, sz: Size$1): void;
9505
- }
9506
- declare class TableBandGroupHeaderElement extends TableBandGroupSectionElement<TableBandRowGroupHeader> {
9507
- constructor(doc: Document, model: TableBandRowGroupHeader);
9508
- protected _getCssSelector(): string;
9509
- protected _setTableStyles(table: HTMLTableElement): void;
9510
- }
9511
- declare class TableBandGroupFooterElement extends TableBandGroupSectionElement<TableBandRowGroupFooter> {
9512
- constructor(doc: Document, model: TableBandRowGroupFooter);
9513
- protected _getCssSelector(): string;
9514
- protected _setTableStyles(table: HTMLTableElement): void;
9515
- }
9516
- /** @internal */
9517
- declare class TableBandGroupElement extends ReportGroupItemElement<TableBandRowGroup> {
9518
- private _masterView;
9519
- private _header;
9520
- private _footer;
9521
- private _headerHead;
9522
- private _footerHead;
9523
- headIndent: number;
9524
- constructor(doc: Document, model: TableBandRowGroup);
9525
- get header(): TableBandGroupHeaderElement;
9526
- get footer(): TableBandGroupFooterElement;
9527
- protected _getCssSelector(): string;
9528
- protected _needDesignBox(): boolean;
9529
- protected _doMeasure(ctx: PrintContext$1, dom: HTMLElement, hintWidth: number, hintHeight: number): Size$1;
9530
- protected _doLayoutContent(ctx: PrintContext$1): void;
9531
- $_setMasterView(view: TableElement<any>): void;
9532
- }
9533
9661
  interface ITableGroupPrintInfo extends IGroupPrintInfo {
9534
- view: TableBandGroupSectionElement<TableBandRowGroupHeader | TableBandRowGroupFooter>;
9662
+ view: TableBandGroupSectionElement<TableBandRowGroupHeader | TableBandRowGroupFooter> | null;
9535
9663
  needNextPage: boolean;
9536
9664
  }
9537
9665
  type TableBandPrintRow = BandPrintRow | ITableGroupPrintInfo;
9666
+ /**
9667
+ * ParagraphFlow 모드의 상태 정보.
9668
+ * 페이지 분할 시 텍스트 라인, 병합 상태, 이미지 정보 등을 추적한다.
9669
+ */
9670
+ interface ParagraphFlowState {
9671
+ /** 현재 처리 중인 row의 텍스트 라인들 [컬럼인덱스][라인인덱스] */
9672
+ currentRowColumnTextLines: {
9673
+ r: IRect;
9674
+ line: string;
9675
+ }[][];
9676
+ /** 현재 처리 중인 DataRow 내 행 인덱스 (Row Count가 2이상인 경우) */
9677
+ rowIndex: number;
9678
+ /** 모든 row의 텍스트 라인들 [행인덱스][컬럼인덱스][라인인덱스] */
9679
+ allRowColumnTextLines: {
9680
+ r: IRect;
9681
+ line: string;
9682
+ }[][][];
9683
+ /** 각 행의 각 컬럼별 원본 텍스트 (repeat 속성용) [행인덱스][컬럼인덱스] */
9684
+ originalTexts: string[][];
9685
+ /** 각 행의 각 컬럼별 한 페이지 출력 가능 여부 (repeat 적용 조건) [행인덱스][컬럼인덱스] */
9686
+ canRepeat: boolean[][];
9687
+ /** 각 행의 각 컬럼별 상하 패딩 합 [행인덱스][컬럼인덱스] */
9688
+ columnPaddings: number[][];
9689
+ /** 각 행의 각 컬럼별 rich 텍스트 여부 [행인덱스][컬럼인덱스] */
9690
+ isRichCell: boolean[][];
9691
+ /** 각 행의 각 컬럼별 image 아이템 여부 [행인덱스][컬럼인덱스] */
9692
+ isImageCell: boolean[][];
9693
+ /** 각 행의 image 셀 중 최대 높이 [행인덱스] */
9694
+ maxImageHeights: number[];
9695
+ /** 각 행의 image 출력 여부 [행인덱스] */
9696
+ imageRendered: boolean[];
9697
+ /** 각 행의 각 컬럼별 rowspan에 의해 hidden된 셀 여부 [행인덱스][컬럼인덱스] */
9698
+ rowspanHidden: boolean[][];
9699
+ /** rowspan hidden 셀의 원본 셀 스타일 (td.style.cssText) [행인덱스][컬럼인덱스] */
9700
+ rowspanOriginStyles: string[][];
9701
+ /** rowspan hidden 셀의 원본 셀 innerHTML [행인덱스][컬럼인덱스] */
9702
+ rowspanOriginInnerHTML: string[][];
9703
+ /**
9704
+ * 현재 페이지(tbody)에서 rowspan 복원된 셀 추적.
9705
+ * 같은 rowspan 그룹 내 후속 행은 이 셀의 rowSpan을 연장하고 hidden을 유지한다.
9706
+ * 키: 컬럼 인덱스, 값: 복원된 td 요소
9707
+ */
9708
+ rowspanRestoredCells: Map<number, HTMLTableCellElement>;
9709
+ }
9538
9710
  declare class TableBandPrintInfo extends BandPrintInfo<TableBand> {
9539
9711
  bandView: TableBandElement;
9540
9712
  headerView: TableBandHeaderElement;
@@ -9554,46 +9726,42 @@ declare class TableBandPrintInfo extends BandPrintInfo<TableBand> {
9554
9726
  detailRows: number[];
9555
9727
  };
9556
9728
  prevGroupPageBreak: PageBreakMode;
9729
+ /** rowGroupMerged 모드에서 그룹 열 병합을 전담하는 헬퍼 (비활성 시 NullRowGroupMerger) */
9730
+ groupMerger: IRowGroupMerger;
9557
9731
  /** paragraphFlow 모드 상태 */
9558
- paragraphFlowState: {
9559
- /** 현재 처리 중인 row의 텍스트 라인들 [컬럼인덱스][라인인덱스] */
9560
- currentRowColumnTextLines: {
9561
- r: IRect;
9562
- line: string;
9563
- }[][];
9564
- /** 현재 처리 중인 DataRow 내 행 인덱스 (Row Count가 2이상인 경우) */
9565
- rowIndex: number;
9566
- /** 모든 row의 텍스트 라인들 [행인덱스][컬럼인덱스][라인인덱스] */
9567
- allRowColumnTextLines: {
9568
- r: IRect;
9569
- line: string;
9570
- }[][][];
9571
- /** 각 행의 각 컬럼별 원본 텍스트 (repeat 속성용) [행인덱스][컬럼인덱스] */
9572
- originalTexts: string[][];
9573
- /** 각 행의 각 컬럼별 한 페이지 출력 가능 여부 (repeat 적용 조건) [행인덱스][컬럼인덱스] */
9574
- canRepeat: boolean[][];
9575
- /** 각 행의 각 컬럼별 상하 패딩 합 [행인덱스][컬럼인덱스] */
9576
- columnPaddings: number[][];
9577
- /** 각 행의 각 컬럼별 rich 텍스트 여부 [행인덱스][컬럼인덱스] */
9578
- isRichCell: boolean[][];
9579
- /** 각 행의 각 컬럼별 image 아이템 여부 [행인덱스][컬럼인덱스] */
9580
- isImageCell: boolean[][];
9581
- /** 각 행의 image 셀 중 최대 높이 [행인덱스] */
9582
- maxImageHeights: number[];
9583
- /** 각 행의 image 출력 여부 [행인덱스] */
9584
- imageRendered: boolean[];
9585
- /** 각 행의 각 컬럼별 rowspan에 의해 hidden된 셀 여부 [행인덱스][컬럼인덱스] */
9586
- rowspanHidden: boolean[][];
9587
- /** rowspan hidden 셀의 원본 셀 스타일 (td.style.cssText) [행인덱스][컬럼인덱스] */
9588
- rowspanOriginStyles: string[][];
9589
- /** rowspan hidden 셀의 원본 셀 innerHTML [행인덱스][컬럼인덱스] */
9590
- rowspanOriginInnerHTML: string[][];
9591
- } | null;
9732
+ paragraphFlowState: ParagraphFlowState | null;
9592
9733
  isEnded(): boolean;
9593
9734
  getRows(): any[];
9594
9735
  resetRowIndex(): void;
9595
9736
  rollback(page: HTMLDivElement): void;
9596
9737
  getNextPage(doc: Document, ctx: PrintContext$1, pageWidth: number, parent: HTMLDivElement): HTMLDivElement | null;
9738
+ /**
9739
+ * ParagraphFlow에서 rowspan 병합 상태를 복원한다.
9740
+ *
9741
+ * ParagraphFlow는 한 행(tr)씩 출력하므로, 원본 테이블의 rowspan 구조가
9742
+ * 페이지 분할 시 깨질 수 있다. 이 메서드는 세 가지 케이스를 처리한다:
9743
+ *
9744
+ * 1) 같은 페이지에서 이미 복원된 셀이 있는 경우 → rowSpan만 연장
9745
+ * 2) hidden 셀을 새로 복원해야 하는 경우 → visible로 전환 후 추적 등록
9746
+ * 3) 원본 rowspan 시작 셀(hidden이 아닌 셀) → rowSpan=1로 리셋 후 추적 등록
9747
+ *
9748
+ * @param trs 현재 출력할 행 배열
9749
+ * @param tbody 현재 페이지의 tbody 요소
9750
+ * @param state ParagraphFlow 상태
9751
+ * @param rowIndex 현재 행 인덱스
9752
+ */
9753
+ private $_restoreParagraphFlowRowspan;
9754
+ /**
9755
+ * rowspan에 의해 hidden된 셀을 복원하거나, 기존 복원 셀의 rowSpan을 연장한다.
9756
+ *
9757
+ * 우선순위:
9758
+ * 1) rowspanRestoredCells에 이미 복원된 셀이 있으면 → rowSpan만 연장
9759
+ * (주의: originInTbody보다 먼저 체크해야 한다.
9760
+ * 복원 셀의 rowSpan이 2 이상이면 originInTbody에서 원본 시작 셀로 오인하기 때문)
9761
+ * 2) 원본 rowspan 시작 행이 현재 tbody에 있으면 → 복원 불필요 (스킵)
9762
+ * 3) 위 조건에 해당하지 않으면 → hidden 셀을 visible로 전환하고 추적 등록
9763
+ */
9764
+ private $_restoreHiddenRowspanCell;
9597
9765
  /**
9598
9766
  * paragraphFlowLines에서 현재 페이지에 맞는 라인들을 추출하여 trs에 적용
9599
9767
  * @returns 출력된 경우 { itemHeight, linesRemaining }, 출력할 라인이 없으면 null
@@ -10199,6 +10367,7 @@ declare class BandGroupMarquee extends EditMarquee<BandGroupElement> {
10199
10367
  private static readonly STYLE_NAME;
10200
10368
  private static readonly W_ITEM;
10201
10369
  private static readonly H_ITEM;
10370
+ private static readonly H_GROUP_LABEL;
10202
10371
  static $_isContainer(dom: HTMLElement): boolean;
10203
10372
  static getTarget(target: ReportItem, dom: HTMLElement): IEditMarqueeTarget;
10204
10373
  private _tableItem;
@@ -13051,6 +13220,7 @@ declare class PageBodyItems extends ColumnBoxContainer {
13051
13220
  protected _getStyleProps(): string[];
13052
13221
  canAdoptDragSource(source: any): boolean;
13053
13222
  adoptDragSource(source: any): IDropResult;
13223
+ protected _getEditProps(): IPropInfo[];
13054
13224
  }
13055
13225
  /**
13056
13226
  * Report header/footer, Page header/footer를 제외한 리포트 페이지 영역.
@@ -13220,6 +13390,7 @@ declare class PageBodyElement extends ReportElement {
13220
13390
  */
13221
13391
  getLine(index: number): ReportItemView;
13222
13392
  getLines(): ReportItemView[];
13393
+ isPrintable(ctx: PrintContext$1): boolean;
13223
13394
  prepareAsync(doc: Document, ctx: PrintContext$1): PrintLine[];
13224
13395
  itemOfDom(dom: Element): ReportItem;
13225
13396
  protected _getCssSelector(): string;
@@ -50104,16 +50275,21 @@ interface GridReportOptions$1 extends ReportOptions {
50104
50275
  layout?: GridReportLayout;
50105
50276
  }
50106
50277
  /**
50107
- * GridreportViewer
50278
+ * GridReportViewer
50279
+ *
50280
+ * RealGrid 그리드 뷰의 데이터를 리포트로 변환하여
50281
+ * 미리보기, 인쇄, 내보내기를 제공한다.
50282
+ *
50283
+ * 내부 구성 (Composition):
50284
+ * - {@link GridReportTableBuilder}: TableBand 구성
50285
+ * - {@link GridReportGroupBuilder}: mergeMode 행 그룹 병합
50286
+ * - {@link GridReportStyleApplier}: 스타일 적용
50108
50287
  */
50109
50288
  declare class GridReportViewer extends ReportViewer {
50110
- static readonly HEADER_ITEM_STYLES: string[];
50111
- static readonly HEADER_STYLES: string[];
50112
- static readonly CELL_STYLES: string[];
50113
50289
  static readonly PAPER_SIZES: string[];
50114
50290
  private _grid;
50291
+ private _gridCore;
50115
50292
  private _gridValues;
50116
- private _gridTable;
50117
50293
  protected _options: GridReportOptions$1;
50118
50294
  constructor(container: string | HTMLDivElement, grid: GridView, options?: GridReportOptions$1);
50119
50295
  /**
@@ -50122,7 +50298,7 @@ declare class GridReportViewer extends ReportViewer {
50122
50298
  get startColIdx(): number;
50123
50299
  set options(options: GridReportOptions$1);
50124
50300
  /**
50125
- * 컨테이너에 미리보기 랜더링
50301
+ * 컨테이너에 미리보기 렌더링
50126
50302
  */
50127
50303
  preview(options?: PreviewOptions): Promise<void>;
50128
50304
  /**
@@ -50137,72 +50313,95 @@ declare class GridReportViewer extends ReportViewer {
50137
50313
  private $_initReport;
50138
50314
  /**
50139
50315
  * 타이틀 또는 서브 타이틀 추가
50140
- * @param title GridReportTitle 객체
50141
- * @returns
50142
50316
  */
50143
- private _addTitle;
50317
+ private $_addTitle;
50144
50318
  /**
50145
50319
  * 그리드 윗쪽 헤더 추가
50146
- * @param header GridReportHeader 객체
50147
- * @returns
50148
50320
  */
50149
- private _addGridHeader;
50321
+ private $_addGridHeader;
50150
50322
  /**
50151
- * 페이지 헤더 추가.
50152
- * @param header PageHeader 객체
50153
- * @returns
50323
+ * 페이지 헤더 추가
50154
50324
  */
50155
- private _addPageHeader;
50325
+ private $_addPageHeader;
50156
50326
  /**
50157
50327
  * 페이지 푸터 추가
50158
- * @param footer PageFooter 객체
50159
- * @returns
50160
50328
  */
50161
- private _addPageFooter;
50329
+ private $_addPageFooter;
50330
+ /**
50331
+ * 그리드 테이블 밴드를 구성하여 리포트에 추가한다.
50332
+ *
50333
+ * {@link GridReportTableBuilder}에게 테이블 구성을 위임하고,
50334
+ * mergeMode 그룹핑이 활성화된 경우 {@link GridReportGroupBuilder}에게 그룹 구성을 위임한다.
50335
+ */
50336
+ private $_addGridTable;
50162
50337
  /**
50163
- * Layout 정보
50164
- * - visibleCount: number
50165
- * - getDataColumns(): DataColumn[]
50166
- * - headerRows: number
50338
+ * 미리보기/인쇄 전 리포트 항목들을 구성한다.
50167
50339
  */
50168
- private _addGridTable;
50169
- private _prepare;
50340
+ private $_prepare;
50170
50341
  /**
50171
50342
  * 강제로 그리드 뷰 렌더링
50172
- * @param grid GridView
50173
50343
  */
50174
50344
  private $_forceGridViewRender;
50175
50345
  /**
50176
- * 리얼리포트 테이블밴드 헤더 영역 스타일을 지정한다.
50177
- * 리얼그리드 특성상 로우 인디케이터 영역이 따로 존재하기 때문에 해당 영역은 추가로 따로 설정할 수 있다.
50346
+ * 그리드 헤더 DOM에서 기본 셀 스타일(padding, color, fontSize, fontWeight, textAlign, verticalAlign)을 추출한다.
50347
+ * 그룹 헤더/푸터/rowGroup columnHeader 병합된 rowGroup 행에 그리드와 일관된 스타일을 반영하기 위해 사용된다.
50348
+ *
50349
+ * 패딩 값이 없거나 0px인 경우 좌우 4px를 기본값으로 적용한다.
50178
50350
  */
50179
- private $_applyHeaderSectionStyles;
50351
+ private $_extractGridCellStyles;
50180
50352
  /**
50181
- * 헤더 섹션 아이템들에 대한 스타일 적용 처리
50353
+ * 컬럼의 groupFooter 스타일을 숨겨진 더미 DOM 방식으로 추출한다.
50354
+ *
50355
+ * 리얼그리드는 내부적으로 `.rg-rowgroup-footer-cell` 클래스에
50356
+ * 컬럼의 `styleName`을 합성하여 렌더링한다.
50357
+ * 우리도 동일한 방식으로 더미 div를 만들어
50358
+ * computedStyle로 스타일을 추출한 다 즉시 제거한다.
50359
+ *
50360
+ * 우선순위: groupFooter.styleName → column.styleName
50361
+ *
50362
+ * @param dataColumns visible한 DataColumn 목록
50363
+ * @returns fieldName → GridExtractedCellStyle 맵
50182
50364
  */
50183
- private $_applyHeaderItemStyles;
50365
+ private $_extractGroupFooterCellStyles;
50184
50366
  /**
50185
- * 테이블영역에 스타일 지정
50186
- * @param table
50187
- * @param cell
50188
- * @param styles
50189
- * @returns
50367
+ * 숨겨진 더미 DOM에서 그리드 스타일을 추출한다.
50368
+ *
50369
+ * 리얼그리드의 실제 렌더링 구조(`<td class="baseClass styleName"><div>텍스트</div></td>`)를
50370
+ * 재현하기 위해 부모(baseClass + styleName) + 자식(div) 2단 구조의 더미 DOM을 생성한다.
50371
+ * 이를 통해 `.styleName > div { text-align: right }` 같은 자식 셀렉터 기반 CSS도
50372
+ * 정확히 매칭되어 computedStyle로 추출할 수 있다.
50373
+ *
50374
+ * 추출 후 DOM에서 즉시 제거하여 부작용을 방지한다.
50375
+ *
50376
+ * 사용 예시:
50377
+ * - 그룹 푸터 셀: baseClass='rg-rowgroup-footer-cell'
50378
+ * - 데이터 셀: baseClass='rg-data-cell'
50379
+ *
50380
+ * @param mountTarget 더미 DOM을 붙일 부모 요소 (그리드 body DOM 권장)
50381
+ * @param baseClass 리얼그리드 기본 셀 CSS 클래스명
50382
+ * @param styleName 적용할 추가 CSS 클래스명 (column.styleName). 비어있으면 baseClass만 적용.
50383
+ * @returns 추출된 스타일 객체. 모두 기본값이면 undefined 반환.
50190
50384
  */
50191
- private $_applyCellItemStyles;
50192
- private $_applyItemStyles;
50385
+ private $_extractStyleFromDummyDom;
50193
50386
  /**
50194
- * 옵션으로 지정한 CellStyleCallback을 지정한다.
50195
- * @param cell 데이터 로우 셀 영역
50387
+ * 컬럼의 데이터 셀 스타일을 숨겨진 더미 DOM 방식으로 추출한다.
50388
+ *
50389
+ * 리얼그리드는 데이터 셀에 `.rg-data-cell` 클래스를 기본으로 적용하고,
50390
+ * 컬럼의 `styleName`을 합성하여 렌더링한다.
50391
+ * styleName이 없는 컬럼도 `.rg-data-cell` 기본 클래스로
50392
+ * textAlign / verticalAlign 정렬값을 추출하여 데이터 행 정렬을 정확히 반영한다.
50393
+ *
50394
+ * @returns fieldName → GridExtractedCellStyle 맵 (모두 기본값인 컬럼은 제외)
50196
50395
  */
50197
- private $_applyCellStyleCallback;
50198
- private $_getMathcedColumn;
50199
- private $_applyColumnHeaderOptions;
50396
+ private $_extractDataCellStyles;
50200
50397
  /**
50201
- * 컬럼 옵션 스타일을 적용한다.
50398
+ * CSS 텍스트 정렬값을 리얼리포트가 지원하는 물리값으로 정규화한다.
50399
+ * 브라우저는 getComputedStyle().textAlign에서 start/end를 반환할 수 있다.
50400
+ * start → left, end → right로 변환하며, 그 외 지원하지 않는 값은 undefined를 반환한다.
50202
50401
  */
50203
- private $_applyColumnOptions;
50402
+ private $_normalizeTextAlign;
50204
50403
  /**
50205
- *
50404
+ * 종이 크기 문자열을 PaperSize 타입으로 변환한다.
50206
50405
  */
50207
50406
  private $_getPaperSize;
50208
50407
  }