@g1cloud/bluesea 5.0.0-beta.2 → 5.0.0-beta.20

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.
Files changed (77) hide show
  1. package/css/bluesea.css +171 -35
  2. package/dist/{BSAlertModal-BixCrZDD.js → BSAlertModal-bXdRoQ4g.js} +1 -1
  3. package/dist/{BSGridColumnSettingModal-CVVenSnr.js → BSGridColumnSettingModal-CnqefrIo.js} +1 -1
  4. package/dist/{BSRichTextMaximizedModal-BqzE5__U.js → BSRichTextMaximizedModal-Dc9sFpvh.js} +1 -1
  5. package/dist/{BSYesNoModal-B5lERw_k.js → BSYesNoModal-nTiw15vA.js} +1 -1
  6. package/dist/{BSYoutubeInputModal-eRBqHjeW.js → BSYoutubeInputModal-DN55K-10.js} +1 -1
  7. package/dist/{ImageInsertModal-DvKLXL1n.js → ImageInsertModal-999e_ass.js} +2 -2
  8. package/dist/{ImageProperties.vue_vue_type_script_setup_true_lang-DVUZuLfG.js → ImageProperties.vue_vue_type_script_setup_true_lang-Dk8Skxl0.js} +1 -1
  9. package/dist/{ImagePropertiesModal-Dsg6BS63.js → ImagePropertiesModal-D6g2ZYpb.js} +2 -2
  10. package/dist/{LinkPropertiesModal-Ct0ykD4j.js → LinkPropertiesModal-DUAsPJ5g.js} +1 -1
  11. package/dist/{TableInsertModal-BhyzkcTU.js → TableInsertModal-DuK1nGxQ.js} +1 -1
  12. package/dist/TablePropertiesModal-Dn_ozHTt.js +353 -0
  13. package/dist/{VideoInsertModal-BAwRYBzU.js → VideoInsertModal-CjB8Vfny.js} +2 -2
  14. package/dist/{VideoProperties.vue_vue_type_script_setup_true_lang-BfwBHyER.js → VideoProperties.vue_vue_type_script_setup_true_lang-C41jIi69.js} +1 -1
  15. package/dist/{VideoPropertiesModal-B2FeEw4W.js → VideoPropertiesModal-CZyluT1C.js} +2 -2
  16. package/dist/{YoutubeInsertModal-EU6G-021.js → YoutubeInsertModal-C3VKZ3MM.js} +3 -3
  17. package/dist/{YoutubeProperties.vue_vue_type_script_setup_true_lang-Ci3ndkZR.js → YoutubeProperties.vue_vue_type_script_setup_true_lang-D5zcnp25.js} +1 -1
  18. package/dist/{YoutubePropertiesModal-CRy6zJwZ.js → YoutubePropertiesModal-VGbyMXuR.js} +2 -2
  19. package/dist/bluesea.css +143 -32
  20. package/dist/bluesea.js +211 -204
  21. package/dist/bluesea.umd.cjs +2281 -1273
  22. package/dist/component/grid/BSGrid.vue.d.ts +3 -3
  23. package/dist/component/grid/BSGridLookup.vue.d.ts +3 -1
  24. package/dist/component/grid/DateFilterModel.d.ts +15 -0
  25. package/dist/component/grid/GridLib.d.ts +2 -1
  26. package/dist/component/grid/GridModel.d.ts +8 -0
  27. package/dist/component/input/BSCheckboxGroup.vue.d.ts +3 -0
  28. package/dist/component/input/BSColorInput.vue.d.ts +2 -0
  29. package/dist/component/input/BSDateInput.vue.d.ts +2 -0
  30. package/dist/component/input/BSDateRange.vue.d.ts +2 -0
  31. package/dist/component/input/BSDateRangePresets.vue.d.ts +2 -2
  32. package/dist/component/input/BSFileUpload.vue.d.ts +76 -0
  33. package/dist/component/input/BSImageUpload.vue.d.ts +2 -0
  34. package/dist/component/input/BSMultiSelect.vue.d.ts +12 -6
  35. package/dist/component/input/BSNumberInput.vue.d.ts +7 -0
  36. package/dist/component/input/BSPercentInput.vue.d.ts +166 -0
  37. package/dist/component/input/BSPopupSelect.vue.d.ts +3 -3
  38. package/dist/component/input/BSPriceInput.vue.d.ts +7 -0
  39. package/dist/component/input/BSRadioButton.vue.d.ts +3 -3
  40. package/dist/component/input/BSRadioButtonGroup.vue.d.ts +3 -0
  41. package/dist/component/input/BSSelect.vue.d.ts +15 -6
  42. package/dist/component/input/BSSelectPopup.vue.d.ts +6 -6
  43. package/dist/component/input/BSTextArea.vue.d.ts +2 -0
  44. package/dist/component/input/BSTextInput.vue.d.ts +2 -0
  45. package/dist/component/input/BSTreeMultiSelect.vue.d.ts +12 -6
  46. package/dist/component/input/BSTreeSelect.vue.d.ts +12 -6
  47. package/dist/component/input/BSYesNoGroup.vue.d.ts +4 -0
  48. package/dist/component/input/BSYesNoSelect.vue.d.ts +4 -0
  49. package/dist/component/input/DateRangePresetModel.d.ts +2 -0
  50. package/dist/component/layout/BSCardLayout.vue.d.ts +6 -10
  51. package/dist/component/layout/BSListLayout.vue.d.ts +3 -0
  52. package/dist/component/layout/BSListLayoutItem.vue.d.ts +3 -0
  53. package/dist/component/multilang/BSMultiLangTextArea.vue.d.ts +2 -0
  54. package/dist/component/multilang/BSMultiLangTextInput.vue.d.ts +2 -0
  55. package/dist/component/richtext/RichTextModel.d.ts +1 -0
  56. package/dist/component/richtext/richTextUtil.d.ts +1 -1
  57. package/dist/component/richtext/table/RichTextTableCell.d.ts +1 -0
  58. package/dist/component/richtext/table/RichTextTableLib.d.ts +7 -1
  59. package/dist/component/tree/BSTree.vue.d.ts +9 -3
  60. package/dist/component/tree/BSTreeRow.vue.d.ts +9 -6
  61. package/dist/component/tree/TreeLib.d.ts +20 -0
  62. package/dist/component/tree/TreeModel.d.ts +33 -1
  63. package/dist/config/config.d.ts +14 -6
  64. package/dist/directive/vT.d.ts +6 -0
  65. package/dist/frame/default/DefaultFrameModel.d.ts +2 -0
  66. package/dist/{index-CDwzpZX0.js → index-uI4FYMrx.js} +2167 -1328
  67. package/dist/index.d.ts +4 -1
  68. package/dist/model/CommonTypes.d.ts +1 -1
  69. package/dist/util/formatUtil.d.ts +4 -4
  70. package/dist/validator/FormValidator.d.ts +5 -0
  71. package/package.json +3 -3
  72. package/text/bluesea_text_en.json +20 -0
  73. package/text/bluesea_text_fr.json +20 -0
  74. package/text/bluesea_text_ja.json +20 -0
  75. package/text/bluesea_text_ko.json +20 -0
  76. package/text/bluesea_text_zh.json +20 -0
  77. package/dist/TablePropertiesModal-BAxcByTD.js +0 -184
@@ -8,14 +8,15 @@ declare const _default: <T>(__VLS_props: {
8
8
  childrenProvider: TreeChildrenProvider<T>;
9
9
  labelProvider?: LabelProvider<T> | undefined;
10
10
  enableDragAndDrop?: boolean | DragAndDropPolicy | undefined;
11
- showCheckbox?: boolean | undefined;
11
+ siblings: T[];
12
12
  iconProvider?: IconProvider<T> | undefined;
13
+ showCheckbox?: boolean | undefined;
13
14
  readonly onToggleRow?: ((row: T, expanded: boolean) => any) | undefined;
14
15
  readonly onSelectRow?: ((event: TreeRowSelectEvent<T>) => any) | undefined;
15
16
  readonly onMoveRow?: ((row: T, siblings: T[], destRow: T | undefined, destSiblings: T[] | undefined, destIndex: number) => any) | undefined;
16
17
  parentRow: T | undefined;
17
- siblings: T[];
18
18
  disabledProvider?: ((item: T) => boolean) | undefined;
19
+ displayProvider?: ((item: T) => boolean) | undefined;
19
20
  multiSelect?: boolean | undefined;
20
21
  showMoveButton?: boolean | undefined;
21
22
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, __VLS_ctx?: {
@@ -33,14 +34,15 @@ declare const _default: <T>(__VLS_props: {
33
34
  childrenProvider: TreeChildrenProvider<T>;
34
35
  labelProvider?: LabelProvider<T> | undefined;
35
36
  enableDragAndDrop?: boolean | DragAndDropPolicy | undefined;
36
- showCheckbox?: boolean | undefined;
37
+ siblings: T[];
37
38
  iconProvider?: IconProvider<T> | undefined;
39
+ showCheckbox?: boolean | undefined;
38
40
  readonly onToggleRow?: ((row: T, expanded: boolean) => any) | undefined;
39
41
  readonly onSelectRow?: ((event: TreeRowSelectEvent<T>) => any) | undefined;
40
42
  readonly onMoveRow?: ((row: T, siblings: T[], destRow: T | undefined, destSiblings: T[] | undefined, destIndex: number) => any) | undefined;
41
43
  parentRow: T | undefined;
42
- siblings: T[];
43
44
  disabledProvider?: ((item: T) => boolean) | undefined;
45
+ displayProvider?: ((item: T) => boolean) | undefined;
44
46
  multiSelect?: boolean | undefined;
45
47
  showMoveButton?: boolean | undefined;
46
48
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
@@ -62,14 +64,15 @@ declare const _default: <T>(__VLS_props: {
62
64
  childrenProvider: TreeChildrenProvider<T>;
63
65
  labelProvider?: LabelProvider<T> | undefined;
64
66
  enableDragAndDrop?: boolean | DragAndDropPolicy | undefined;
65
- showCheckbox?: boolean | undefined;
67
+ siblings: T[];
66
68
  iconProvider?: IconProvider<T> | undefined;
69
+ showCheckbox?: boolean | undefined;
67
70
  readonly onToggleRow?: ((row: T, expanded: boolean) => any) | undefined;
68
71
  readonly onSelectRow?: ((event: TreeRowSelectEvent<T>) => any) | undefined;
69
72
  readonly onMoveRow?: ((row: T, siblings: T[], destRow: T | undefined, destSiblings: T[] | undefined, destIndex: number) => any) | undefined;
70
73
  parentRow: T | undefined;
71
- siblings: T[];
72
74
  disabledProvider?: ((item: T) => boolean) | undefined;
75
+ displayProvider?: ((item: T) => boolean) | undefined;
73
76
  multiSelect?: boolean | undefined;
74
77
  showMoveButton?: boolean | undefined;
75
78
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
@@ -1,7 +1,11 @@
1
+ import { KeyProvider } from '../../model/CommonTypes.ts';
2
+ import { TreeChildrenProvider } from './TreeModel.ts';
3
+
1
4
  export declare const defaultTreeChildrenProvider: <T>(item: T) => (T[] | undefined);
2
5
  export declare class TreeRowStatuses<T> {
3
6
  expanded: Set<string>;
4
7
  selected: Set<T>;
8
+ focused?: T;
5
9
  }
6
10
  export type TreeRowSelectEvent<T> = {
7
11
  row: T;
@@ -9,3 +13,19 @@ export type TreeRowSelectEvent<T> = {
9
13
  multiSelect: boolean;
10
14
  veto?: boolean;
11
15
  };
16
+ export declare class TreeKeyboardHandler<T> {
17
+ private dataProvider;
18
+ private treeRowStatuses;
19
+ private keyProvider;
20
+ private childrenProvider;
21
+ private isMultiSelect;
22
+ private selectRow;
23
+ constructor(dataProvider: () => T[], treeRowStatuses: TreeRowStatuses<T>, keyProvider: KeyProvider<T>, childrenProvider: TreeChildrenProvider<T>, isMultiSelect: () => boolean, selectRow: (event: TreeRowSelectEvent<T>) => void);
24
+ handleKeyDown(event: KeyboardEvent): void;
25
+ moveFocused(item: T): void;
26
+ clearFocus(): void;
27
+ private getCurrentItem;
28
+ private findTreeItemContext;
29
+ private findNextSiblingOfParent;
30
+ private findExpandedLastDescendant;
31
+ }
@@ -35,9 +35,28 @@ export interface TreeHandler<T> {
35
35
  treeEventListener: TreeEventListener<T>;
36
36
  control: UnwrapNestedRefs<TreeControlBinding<T>>;
37
37
  controlEventListener: TreeControlEventListener;
38
+ /**
39
+ * Tree 에 data 를 넣는다.
40
+ * @param data
41
+ * @param keepSelection true 이면 현재 선택된 항목이 유지된다.
42
+ * @param keepExpanded true 이면 현재 expanded 인 항목이 유지된다.
43
+ * @param waitTime 이 값이 0보다 크면 이 시간동안 tree 를 비웠다가 다시 채운다. refresh 효과를 위해 사용한다. millisecond 단위.
44
+ */
38
45
  setTreeData(data: T[], keepSelection?: boolean, keepExpanded?: boolean, waitTime?: number): Promise<void>;
46
+ /**
47
+ * 항목을 선택한다.
48
+ * @param item
49
+ */
39
50
  selectItem(item: T | T[] | undefined): void;
51
+ /**
52
+ * `item` 의 parent 를 리턴한다.
53
+ * @param item
54
+ */
40
55
  getParent(item: T | undefined): T | undefined;
56
+ /**
57
+ * `item` 을 교체한다. item 이 변경된 경우, 변경된 객체를 tree 에 다시 표시할 때 사용한다.
58
+ * @param newItem
59
+ */
41
60
  replaceCurrentItem(newItem: T): void;
42
61
  /**
43
62
  * Tree 이 모든 항목을 순회하며 visitor 함수를 호출한다. visitor 함수가
@@ -63,7 +82,16 @@ export interface TreeHandler<T> {
63
82
  * @param index 추가할 위치. 0 보다 작으면 제일 마지막에 추가한다. 디폴트는 -1.
64
83
  */
65
84
  addChildItem(parent: T, index: number): void;
85
+ /**
86
+ * `items` 를 삭제한다.
87
+ * @param items
88
+ */
66
89
  removeItems(items: T[]): void;
90
+ /**
91
+ * Tree 전체를 펼치거나 접는다.
92
+ * @param expandOrDepth true 이면 전체를 펼치고, false 이면 접는다. 숫자이면 해당 depth 까지 표시되도록 펼친다.
93
+ */
94
+ expandAll(expandOrDepth: boolean | number): void;
67
95
  }
68
96
  export type TreeBinding<T> = {
69
97
  data: T[];
@@ -120,7 +148,7 @@ export type TreeHandlerOption<T> = {
120
148
  */
121
149
  canChangeSelection?: (prev: T | undefined, next: T | undefined) => boolean;
122
150
  /**
123
- * 현재 선택된 항목으 변경되었는지 여부를 리턴한다.
151
+ * 현재 선택된 항목이 변경되었는지 여부를 리턴한다.
124
152
  */
125
153
  currentItemModified?: () => boolean;
126
154
  /**
@@ -141,6 +169,10 @@ export type TreeHandlerOption<T> = {
141
169
  * TreeHandler 에서 신규 항목 추가가 필요할 때 호출된다.
142
170
  * 이 함수가 리턴한 신규 항목이 Tree 에 추가된다.
143
171
  * undefined 를 리턴하면 항목이 추가되지 않는다.
172
+ *
173
+ * 새로 생성된 항목의 parent 를 설정하는 것과 parent 에 이 항목을 추가하는 등의 작업이
174
+ * 이 함수 안에서 모두 이루어져야 한다. TreeHandler 가 이 작업을 대신해주지 않는다.
175
+ *
144
176
  * @param parent 생성할 항목의 부모. 최상위 항목이면 undefined 이다.
145
177
  * @param index 생성 위치.
146
178
  */
@@ -1,6 +1,6 @@
1
- import { Address, AddressCountry, CurrencyCode, DateResolution, DisplayDateResolution, LocaleName, MultiLangText, Tel, TelCountry, TimeZone } from '../model/CommonTypes';
1
+ import { Address, AddressCountry, CurrencyCode, DateResolution, DisplayDateResolution, LocaleName, Money, MultiLangText, Tel, TelCountry, TimeZone } from '../model/CommonTypes';
2
2
  import { Component } from 'vue';
3
- import { GridPreferenceStore } from '../component/grid/GridModel.ts';
3
+ import { Column, GridPreferenceStore } from '../component/grid/GridModel.ts';
4
4
  import { DateRangePreset } from '../component/input/DateRangePresetModel.ts';
5
5
  import { ToolButton } from '../component/richtext/RichTextModel.ts';
6
6
 
@@ -48,6 +48,9 @@ export type AddressCountryConfig = {
48
48
  export declare const ADDRESS_COUNTRY_CONFIGS: Record<string, AddressCountryConfig>;
49
49
  export declare const ADDRESS_COUNTRY_CONFIG_DEFAULT: AddressCountryConfig;
50
50
  export declare const defaultAddressInputComponentConfig: AddressInputComponentConfig;
51
+ export type GridComponentConfig = {
52
+ defaultCellFormatter?: <T>(column: Column, value: T) => string | T | null | undefined;
53
+ };
51
54
  export type GridLookupComponentConfig = {
52
55
  dateRangePresets?: DateRangePreset[];
53
56
  dateFilterDateFormat?: string;
@@ -78,6 +81,7 @@ export type ComponentConfig = {
78
81
  telInput?: TelInputComponentConfig;
79
82
  nameInput?: NameInputComponentConfig;
80
83
  addressInput?: AddressInputComponentConfig;
84
+ grid?: GridComponentConfig;
81
85
  gridLookup?: GridLookupComponentConfig;
82
86
  richText?: RichTextComponentConfig;
83
87
  upload?: UploadComponentConfig;
@@ -88,12 +92,14 @@ export type TimeZoneNameProvider = (tzId: string) => string;
88
92
  export type FileUrlResolver = (fileUrl?: string) => string | undefined;
89
93
  export type TelSerializer = (tel?: Tel, showCountryNo?: boolean) => string;
90
94
  export type AddressSerializer = (address?: Address) => string;
95
+ export type MoneySerializer = (value?: Money) => string;
91
96
  declare class BlueseaConfig {
92
97
  locales: LocaleName[];
93
98
  defaultLocale: LocaleName;
94
99
  currentLocale: LocaleName;
95
100
  dataLocales: LocaleName[];
96
101
  currentDataLocale: LocaleName;
102
+ defaultDataLocale: LocaleName;
97
103
  timeZone: TimeZone;
98
104
  displayTimeZones: TimeZone[];
99
105
  allTimeZones: TimeZone[];
@@ -113,11 +119,12 @@ declare class BlueseaConfig {
113
119
  componentConfig: ComponentConfig;
114
120
  telSerializer?: TelSerializer;
115
121
  addressSerializer?: AddressSerializer;
122
+ moneySerializer?: MoneySerializer;
116
123
  constructor();
117
124
  configure(options: BlueseaConfigRaw): void;
118
125
  setLocales(locales: LocaleName[], defaultLocale: LocaleName, currentLocale: LocaleName): void;
119
126
  setCurrentLocale(locale?: LocaleName): void;
120
- setDataLocales(dataLocales: LocaleName[], currentDataLocale: LocaleName): void;
127
+ setDataLocales(dataLocales: LocaleName[], currentDataLocale: LocaleName, defaultDataLocale?: LocaleName): void;
121
128
  setCurrentDataLocale(locale?: LocaleName): void;
122
129
  getValidDisplayTimeZones(): TimeZone[];
123
130
  resolveDisplayDateFormat(format?: string | DisplayDateResolution): string;
@@ -127,8 +134,8 @@ export type BlueseaConfigRaw = {
127
134
  defaultLocale?: LocaleName;
128
135
  currentLocale?: LocaleName;
129
136
  dataLocales?: LocaleName[];
130
- defaultDataLocale?: LocaleName;
131
137
  currentDataLocale?: LocaleName;
138
+ defaultDataLocale?: LocaleName;
132
139
  timeZone?: TimeZone;
133
140
  displayTimeZones?: TimeZone[];
134
141
  allTimeZones?: TimeZone[];
@@ -146,8 +153,9 @@ export type BlueseaConfigRaw = {
146
153
  blankImageUrl?: string;
147
154
  gridPreferenceStore?: GridPreferenceStore;
148
155
  componentConfig?: ComponentConfig;
149
- telSerializer?: (tel?: Tel) => string;
150
- addressSerializer?: (address?: Address) => string;
156
+ telSerializer?: TelSerializer;
157
+ addressSerializer?: AddressSerializer;
158
+ moneySerializer?: MoneySerializer;
151
159
  };
152
160
  export declare const blueseaConfig: BlueseaConfig;
153
161
  export declare const configureBluesea: (options: BlueseaConfigRaw) => void;
@@ -5,6 +5,12 @@ import { MultiLangText } from '../model/CommonTypes';
5
5
  * MultiLangText 를 해석해 표시할 string 을 만든다.
6
6
  * currentDataLocale 을 사용하는 경우, currentDataLocale 이 변경되어도 텍스트가 변경되지 않는다.
7
7
  */
8
+ export declare const t: (text?: MultiLangText, locale?: string) => string;
9
+ /**
10
+ * MultiLangText 를 해석해 표시할 string 을 만든다.
11
+ * currentDataLocale 을 사용하는 경우, currentDataLocale 이 변경되어도 텍스트가 변경되지 않는다.
12
+ * @deprecated use t() function instead.
13
+ */
8
14
  export declare const interpretMultiLangText: (text?: MultiLangText, locale?: string) => string;
9
15
  declare const vT: ObjectDirective;
10
16
  export default vT;
@@ -2,6 +2,7 @@ import { RawData } from '../../util/typeUtil';
2
2
  import { RouteLocation, Router } from 'vue-router';
3
3
  import { FavoriteMenuHandler, FrameContext, Menu, MenuCaptionProvider, Page, PageInstance, PageTitleProvider, PageTitleRenderer } from '../FrameModel';
4
4
  import { ShortcutKeyHandler } from '../ShortcutKeyHandler.ts';
5
+ import { MultiLangText } from '../../model/CommonTypes.ts';
5
6
 
6
7
  export type DefaultFrameConfig = {
7
8
  router: Router;
@@ -29,6 +30,7 @@ export declare class DefaultFrameContext implements FrameContext {
29
30
  syncCurrentPath(route: RouteLocation): Promise<void>;
30
31
  closeActivePage(): Promise<void>;
31
32
  getPageByRoute(route: RouteLocation): PageInstance | undefined;
33
+ setPageTitle(route: RouteLocation, title?: MultiLangText): void;
32
34
  setPageSubtitle(route: RouteLocation, subtitle?: string): void;
33
35
  /**
34
36
  * pagePath 에 해당하는 화면 URL 로 이동한다.