@g1cloud/open-bluesea-core 1.0.0-alpha.6 → 1.0.0-alpha.8

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/dist/index.d.ts CHANGED
@@ -694,6 +694,7 @@ export declare class BSContextMenuPlugin {
694
694
  options: Ref<ContextMenuOptions | undefined, ContextMenuOptions | undefined>;
695
695
  showContextMenu(event: MousePosition, menus: MenuItem[], options?: ContextMenuOptions): void;
696
696
  hideContextMenu(): void;
697
+ install(app: App): void;
697
698
  private markComponentRaw;
698
699
  }
699
700
 
@@ -702,9 +703,9 @@ export declare const BSDateInput: DefineComponent<__VLS_Props_11, {}, {}, {}, {}
702
703
  }, string, PublicProps, Readonly<__VLS_Props_11> & Readonly<{
703
704
  "onUpdate:modelValue"?: ((value?: string | undefined) => any) | undefined;
704
705
  }>, {
706
+ width: string;
705
707
  tabindex: number;
706
708
  resolution: DateResolution;
707
- width: string;
708
709
  }, {}, {}, {}, string, ComponentProvideOptions, false, {
709
710
  root: HTMLDivElement;
710
711
  field: HTMLInputElement;
@@ -728,9 +729,9 @@ export declare const BSDateRange: DefineComponent<__VLS_Props_13, {}, {}, {}, {}
728
729
  "onUpdate:fromValue"?: ((value?: string | undefined) => any) | undefined;
729
730
  "onUpdate:toValue"?: ((value?: string | undefined) => any) | undefined;
730
731
  }>, {
732
+ width: string;
731
733
  tabindex: number;
732
734
  resolution: DateResolution;
733
- width: string;
734
735
  validateDateOrder: boolean;
735
736
  }, {}, {}, {}, string, ComponentProvideOptions, false, {
736
737
  root: HTMLDivElement;
@@ -831,8 +832,8 @@ export declare const BSNumberInput: DefineComponent<__VLS_Props_8, {}, {}, {}, {
831
832
  }, string, PublicProps, Readonly<__VLS_Props_8> & Readonly<{
832
833
  "onUpdate:modelValue"?: ((value?: number | undefined) => any) | undefined;
833
834
  }>, {
834
- tabindex: number;
835
835
  width: string;
836
+ tabindex: number;
836
837
  format: boolean;
837
838
  formatInViewMode: boolean;
838
839
  formatOnBlur: boolean;
@@ -950,8 +951,8 @@ export declare const BSTextArea: DefineComponent<__VLS_Props_9, {}, {}, {}, {},
950
951
  }, string, PublicProps, Readonly<__VLS_Props_9> & Readonly<{
951
952
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
952
953
  }>, {
953
- tabindex: number;
954
954
  width: string;
955
+ tabindex: number;
955
956
  trimValue: boolean;
956
957
  }, {}, {}, {}, string, ComponentProvideOptions, false, {
957
958
  field: HTMLTextAreaElement;
@@ -963,8 +964,8 @@ export declare const BSTextInput: DefineComponent<__VLS_Props_7, {}, {}, {}, {},
963
964
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
964
965
  }>, {
965
966
  name: string;
966
- tabindex: number;
967
967
  width: string;
968
+ tabindex: number;
968
969
  inputType: "text" | "password";
969
970
  trimValue: boolean;
970
971
  }, {}, {}, {}, string, ComponentProvideOptions, false, {
@@ -1676,6 +1676,7 @@
1676
1676
  .bs-date-range .input-area input {
1677
1677
  width: calc(var(--spacing) * 16);
1678
1678
  border-style: var(--tw-border-style);
1679
+ padding-inline: calc(var(--spacing) * 1.5);
1679
1680
  padding-right: calc(var(--spacing) * 0);
1680
1681
  --tw-outline-style: none;
1681
1682
  color: var(--body-text);
@@ -1,4 +1,4 @@
1
- import { inject, ref, markRaw, reactive, defineComponent, withDirectives, createBlock, openBlock, resolveDynamicComponent, normalizeClass, withCtx, createElementBlock, createCommentVNode, createElementVNode, toDisplayString, unref, computed, withModifiers, Fragment, renderList, onMounted, onBeforeUnmount, Teleport, createVNode, Transition, normalizeStyle, renderSlot, watch, nextTick, withKeys, provide, shallowRef, useTemplateRef, mergeProps, isRef, toHandlers, vModelDynamic, vModelText, useSlots, vShow, defineAsyncComponent, TransitionGroup, resolveComponent } from "vue";
1
+ import { inject, ref, markRaw, provide, reactive, defineAsyncComponent, defineComponent, withDirectives, createBlock, openBlock, resolveDynamicComponent, normalizeClass, withCtx, createElementBlock, createCommentVNode, createElementVNode, toDisplayString, unref, computed, withModifiers, Fragment, renderList, onMounted, onBeforeUnmount, Teleport, createVNode, Transition, normalizeStyle, renderSlot, watch, nextTick, withKeys, shallowRef, useTemplateRef, mergeProps, isRef, toHandlers, vModelDynamic, vModelText, useSlots, vShow, TransitionGroup, resolveComponent } from "vue";
2
2
  import dayjs from "dayjs";
3
3
  const ContextMenuPluginKey = Symbol("BlueseaContextMenuPlugin");
4
4
  class BSContextMenuPlugin {
@@ -19,9 +19,9 @@ class BSContextMenuPlugin {
19
19
  this.position.value = void 0;
20
20
  this.options.value = void 0;
21
21
  }
22
- // install(app: AbstractApp) {
23
- // app.provide(contextMenuPluginKey, this)
24
- // }
22
+ install(app) {
23
+ app.provide(ContextMenuPluginKey, this);
24
+ }
25
25
  markComponentRaw(menus) {
26
26
  menus.forEach((menu) => {
27
27
  if (menu.component) menu.component = markRaw(menu.component);
@@ -40,6 +40,110 @@ const useContextMenuOptional = () => {
40
40
  const createContextMenuPlugin = () => {
41
41
  return new BSContextMenuPlugin();
42
42
  };
43
+ const modalPluginKey = "BlueseaModalPlugin";
44
+ const modalHandleKey = "BlueseaModalHandle";
45
+ class ModalHandleImpl {
46
+ constructor(modal, modalId) {
47
+ this.modal = modal;
48
+ this.modalId = modalId;
49
+ }
50
+ maximized = false;
51
+ defaultStyleListener;
52
+ defaultPositionListener;
53
+ close() {
54
+ this.modal.closeModal(this.modalId);
55
+ }
56
+ setDefaultStyle(modalStyle) {
57
+ this.defaultStyleListener?.(modalStyle);
58
+ }
59
+ setDefaultPosition(modalPosition) {
60
+ this.defaultPositionListener?.(modalPosition);
61
+ }
62
+ setDefaultStyleListener(listener) {
63
+ this.defaultStyleListener = listener;
64
+ }
65
+ setDefaultPositionListener(listener) {
66
+ this.defaultPositionListener = listener;
67
+ }
68
+ }
69
+ class BSModal {
70
+ modalItems = reactive([]);
71
+ openModal(modalItem) {
72
+ const modalId = Math.random().toString(36);
73
+ const handle = new ModalHandleImpl(this, modalId);
74
+ const registered = {
75
+ modalId,
76
+ pageId: modalItem.pageId,
77
+ component: markRaw(modalItem.component),
78
+ style: modalItem.style,
79
+ position: modalItem.position,
80
+ bind: modalItem.bind,
81
+ on: modalItem.on,
82
+ slots: modalItem.slots,
83
+ modalHandle: handle
84
+ };
85
+ this.modalItems.push(registered);
86
+ return registered;
87
+ }
88
+ closeModal(modalItem) {
89
+ let index = -1;
90
+ if (typeof modalItem === "string") {
91
+ index = this.modalItems.findIndex((item) => item.modalId === modalItem);
92
+ } else {
93
+ index = this.modalItems.findIndex((item) => item === modalItem);
94
+ }
95
+ if (index >= 0) this.modalItems.splice(index, 1);
96
+ }
97
+ closeAllModals() {
98
+ this.modalItems.splice(0, this.modalItems.length);
99
+ }
100
+ openAlert(title, message, clickHandler) {
101
+ const option = {
102
+ component: defineAsyncComponent(() => import("./BSAlertModal-ZEIUM0ut.js")),
103
+ bind: {
104
+ title,
105
+ message
106
+ },
107
+ on: {
108
+ click: async () => await clickHandler?.()
109
+ }
110
+ };
111
+ return this.openModal(option);
112
+ }
113
+ openYesNo(title, message, yesHandler, noHandler) {
114
+ const option = {
115
+ component: defineAsyncComponent(() => import("./BSYesNoModal-Cs6mgXcP.js")),
116
+ bind: {
117
+ title,
118
+ message
119
+ },
120
+ on: {
121
+ clickYes: async () => await yesHandler?.(),
122
+ clickNo: async () => await noHandler?.()
123
+ }
124
+ };
125
+ return this.openModal(option);
126
+ }
127
+ install(app) {
128
+ app.provide(modalPluginKey, this);
129
+ }
130
+ }
131
+ const useModal = () => {
132
+ const modal = inject(modalPluginKey);
133
+ if (!modal) throw new Error("BSModal is not initialized.");
134
+ return modal;
135
+ };
136
+ const provideModalHandle = (modalHandle) => {
137
+ provide(modalHandleKey, modalHandle);
138
+ };
139
+ const useModalHandle = () => {
140
+ const modalHandle = inject(modalHandleKey);
141
+ if (!modalHandle) throw new Error("ModalHandle not found. Maybe not inside modal component.");
142
+ return modalHandle;
143
+ };
144
+ const createModalPlugin = () => {
145
+ return new BSModal();
146
+ };
43
147
  class BlueseaConfig {
44
148
  dateFormat = "YYYY-MM-DD HH:mm";
45
149
  dateFormatDay = "YYYY-MM-DD";
@@ -78,8 +182,10 @@ const BlueseaPlugin = {
78
182
  install(app, options) {
79
183
  const config = new BlueseaConfig(options);
80
184
  app.provide(BlueseaConfigKey, config);
81
- const contextMenu = new BSContextMenuPlugin();
185
+ const contextMenu = createContextMenuPlugin();
82
186
  app.provide(ContextMenuPluginKey, contextMenu);
187
+ const modal = createModalPlugin();
188
+ app.use(modal);
83
189
  }
84
190
  };
85
191
  const notificationEntries = reactive([]);
@@ -4352,110 +4458,6 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
4352
4458
  };
4353
4459
  }
4354
4460
  });
4355
- const modalPluginKey = "BlueseaModalPlugin";
4356
- const modalHandleKey = "BlueseaModalHandle";
4357
- class ModalHandleImpl {
4358
- constructor(modal, modalId) {
4359
- this.modal = modal;
4360
- this.modalId = modalId;
4361
- }
4362
- maximized = false;
4363
- defaultStyleListener;
4364
- defaultPositionListener;
4365
- close() {
4366
- this.modal.closeModal(this.modalId);
4367
- }
4368
- setDefaultStyle(modalStyle) {
4369
- this.defaultStyleListener?.(modalStyle);
4370
- }
4371
- setDefaultPosition(modalPosition) {
4372
- this.defaultPositionListener?.(modalPosition);
4373
- }
4374
- setDefaultStyleListener(listener) {
4375
- this.defaultStyleListener = listener;
4376
- }
4377
- setDefaultPositionListener(listener) {
4378
- this.defaultPositionListener = listener;
4379
- }
4380
- }
4381
- class BSModal {
4382
- modalItems = reactive([]);
4383
- openModal(modalItem) {
4384
- const modalId = Math.random().toString(36);
4385
- const handle = new ModalHandleImpl(this, modalId);
4386
- const registered = {
4387
- modalId,
4388
- pageId: modalItem.pageId,
4389
- component: markRaw(modalItem.component),
4390
- style: modalItem.style,
4391
- position: modalItem.position,
4392
- bind: modalItem.bind,
4393
- on: modalItem.on,
4394
- slots: modalItem.slots,
4395
- modalHandle: handle
4396
- };
4397
- this.modalItems.push(registered);
4398
- return registered;
4399
- }
4400
- closeModal(modalItem) {
4401
- let index = -1;
4402
- if (typeof modalItem === "string") {
4403
- index = this.modalItems.findIndex((item) => item.modalId === modalItem);
4404
- } else {
4405
- index = this.modalItems.findIndex((item) => item === modalItem);
4406
- }
4407
- if (index >= 0) this.modalItems.splice(index, 1);
4408
- }
4409
- closeAllModals() {
4410
- this.modalItems.splice(0, this.modalItems.length);
4411
- }
4412
- openAlert(title, message, clickHandler) {
4413
- const option = {
4414
- component: defineAsyncComponent(() => import("./BSAlertModal-ZEIUM0ut.js")),
4415
- bind: {
4416
- title,
4417
- message
4418
- },
4419
- on: {
4420
- click: async () => await clickHandler?.()
4421
- }
4422
- };
4423
- return this.openModal(option);
4424
- }
4425
- openYesNo(title, message, yesHandler, noHandler) {
4426
- const option = {
4427
- component: defineAsyncComponent(() => import("./BSYesNoModal-Cs6mgXcP.js")),
4428
- bind: {
4429
- title,
4430
- message
4431
- },
4432
- on: {
4433
- clickYes: async () => await yesHandler?.(),
4434
- clickNo: async () => await noHandler?.()
4435
- }
4436
- };
4437
- return this.openModal(option);
4438
- }
4439
- install(app) {
4440
- app.provide(modalPluginKey, this);
4441
- }
4442
- }
4443
- const useModal = () => {
4444
- const modal = inject(modalPluginKey);
4445
- if (!modal) throw new Error("BSModal is not initialized.");
4446
- return modal;
4447
- };
4448
- const provideModalHandle = (modalHandle) => {
4449
- provide(modalHandleKey, modalHandle);
4450
- };
4451
- const useModalHandle = () => {
4452
- const modalHandle = inject(modalHandleKey);
4453
- if (!modalHandle) throw new Error("ModalHandle not found. Maybe not inside modal component.");
4454
- return modalHandle;
4455
- };
4456
- const createModalPlugin = () => {
4457
- return new BSModal();
4458
- };
4459
4461
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
4460
4462
  __name: "BSModalWrapper",
4461
4463
  props: {
@@ -21,9 +21,9 @@
21
21
  this.position.value = void 0;
22
22
  this.options.value = void 0;
23
23
  }
24
- // install(app: AbstractApp) {
25
- // app.provide(contextMenuPluginKey, this)
26
- // }
24
+ install(app) {
25
+ app.provide(ContextMenuPluginKey, this);
26
+ }
27
27
  markComponentRaw(menus) {
28
28
  menus.forEach((menu) => {
29
29
  if (menu.component) menu.component = vue.markRaw(menu.component);
@@ -42,6 +42,110 @@
42
42
  const createContextMenuPlugin = () => {
43
43
  return new BSContextMenuPlugin();
44
44
  };
45
+ const modalPluginKey = "BlueseaModalPlugin";
46
+ const modalHandleKey = "BlueseaModalHandle";
47
+ class ModalHandleImpl {
48
+ constructor(modal, modalId) {
49
+ this.modal = modal;
50
+ this.modalId = modalId;
51
+ }
52
+ maximized = false;
53
+ defaultStyleListener;
54
+ defaultPositionListener;
55
+ close() {
56
+ this.modal.closeModal(this.modalId);
57
+ }
58
+ setDefaultStyle(modalStyle) {
59
+ this.defaultStyleListener?.(modalStyle);
60
+ }
61
+ setDefaultPosition(modalPosition) {
62
+ this.defaultPositionListener?.(modalPosition);
63
+ }
64
+ setDefaultStyleListener(listener) {
65
+ this.defaultStyleListener = listener;
66
+ }
67
+ setDefaultPositionListener(listener) {
68
+ this.defaultPositionListener = listener;
69
+ }
70
+ }
71
+ class BSModal {
72
+ modalItems = vue.reactive([]);
73
+ openModal(modalItem) {
74
+ const modalId = Math.random().toString(36);
75
+ const handle = new ModalHandleImpl(this, modalId);
76
+ const registered = {
77
+ modalId,
78
+ pageId: modalItem.pageId,
79
+ component: vue.markRaw(modalItem.component),
80
+ style: modalItem.style,
81
+ position: modalItem.position,
82
+ bind: modalItem.bind,
83
+ on: modalItem.on,
84
+ slots: modalItem.slots,
85
+ modalHandle: handle
86
+ };
87
+ this.modalItems.push(registered);
88
+ return registered;
89
+ }
90
+ closeModal(modalItem) {
91
+ let index = -1;
92
+ if (typeof modalItem === "string") {
93
+ index = this.modalItems.findIndex((item) => item.modalId === modalItem);
94
+ } else {
95
+ index = this.modalItems.findIndex((item) => item === modalItem);
96
+ }
97
+ if (index >= 0) this.modalItems.splice(index, 1);
98
+ }
99
+ closeAllModals() {
100
+ this.modalItems.splice(0, this.modalItems.length);
101
+ }
102
+ openAlert(title, message, clickHandler) {
103
+ const option = {
104
+ component: vue.defineAsyncComponent(() => Promise.resolve().then(() => BSAlertModal)),
105
+ bind: {
106
+ title,
107
+ message
108
+ },
109
+ on: {
110
+ click: async () => await clickHandler?.()
111
+ }
112
+ };
113
+ return this.openModal(option);
114
+ }
115
+ openYesNo(title, message, yesHandler, noHandler) {
116
+ const option = {
117
+ component: vue.defineAsyncComponent(() => Promise.resolve().then(() => BSYesNoModal)),
118
+ bind: {
119
+ title,
120
+ message
121
+ },
122
+ on: {
123
+ clickYes: async () => await yesHandler?.(),
124
+ clickNo: async () => await noHandler?.()
125
+ }
126
+ };
127
+ return this.openModal(option);
128
+ }
129
+ install(app) {
130
+ app.provide(modalPluginKey, this);
131
+ }
132
+ }
133
+ const useModal = () => {
134
+ const modal = vue.inject(modalPluginKey);
135
+ if (!modal) throw new Error("BSModal is not initialized.");
136
+ return modal;
137
+ };
138
+ const provideModalHandle = (modalHandle) => {
139
+ vue.provide(modalHandleKey, modalHandle);
140
+ };
141
+ const useModalHandle = () => {
142
+ const modalHandle = vue.inject(modalHandleKey);
143
+ if (!modalHandle) throw new Error("ModalHandle not found. Maybe not inside modal component.");
144
+ return modalHandle;
145
+ };
146
+ const createModalPlugin = () => {
147
+ return new BSModal();
148
+ };
45
149
  class BlueseaConfig {
46
150
  dateFormat = "YYYY-MM-DD HH:mm";
47
151
  dateFormatDay = "YYYY-MM-DD";
@@ -80,8 +184,10 @@
80
184
  install(app, options) {
81
185
  const config = new BlueseaConfig(options);
82
186
  app.provide(BlueseaConfigKey, config);
83
- const contextMenu = new BSContextMenuPlugin();
187
+ const contextMenu = createContextMenuPlugin();
84
188
  app.provide(ContextMenuPluginKey, contextMenu);
189
+ const modal = createModalPlugin();
190
+ app.use(modal);
85
191
  }
86
192
  };
87
193
  const notificationEntries = vue.reactive([]);
@@ -4354,110 +4460,6 @@
4354
4460
  };
4355
4461
  }
4356
4462
  });
4357
- const modalPluginKey = "BlueseaModalPlugin";
4358
- const modalHandleKey = "BlueseaModalHandle";
4359
- class ModalHandleImpl {
4360
- constructor(modal, modalId) {
4361
- this.modal = modal;
4362
- this.modalId = modalId;
4363
- }
4364
- maximized = false;
4365
- defaultStyleListener;
4366
- defaultPositionListener;
4367
- close() {
4368
- this.modal.closeModal(this.modalId);
4369
- }
4370
- setDefaultStyle(modalStyle) {
4371
- this.defaultStyleListener?.(modalStyle);
4372
- }
4373
- setDefaultPosition(modalPosition) {
4374
- this.defaultPositionListener?.(modalPosition);
4375
- }
4376
- setDefaultStyleListener(listener) {
4377
- this.defaultStyleListener = listener;
4378
- }
4379
- setDefaultPositionListener(listener) {
4380
- this.defaultPositionListener = listener;
4381
- }
4382
- }
4383
- class BSModal {
4384
- modalItems = vue.reactive([]);
4385
- openModal(modalItem) {
4386
- const modalId = Math.random().toString(36);
4387
- const handle = new ModalHandleImpl(this, modalId);
4388
- const registered = {
4389
- modalId,
4390
- pageId: modalItem.pageId,
4391
- component: vue.markRaw(modalItem.component),
4392
- style: modalItem.style,
4393
- position: modalItem.position,
4394
- bind: modalItem.bind,
4395
- on: modalItem.on,
4396
- slots: modalItem.slots,
4397
- modalHandle: handle
4398
- };
4399
- this.modalItems.push(registered);
4400
- return registered;
4401
- }
4402
- closeModal(modalItem) {
4403
- let index = -1;
4404
- if (typeof modalItem === "string") {
4405
- index = this.modalItems.findIndex((item) => item.modalId === modalItem);
4406
- } else {
4407
- index = this.modalItems.findIndex((item) => item === modalItem);
4408
- }
4409
- if (index >= 0) this.modalItems.splice(index, 1);
4410
- }
4411
- closeAllModals() {
4412
- this.modalItems.splice(0, this.modalItems.length);
4413
- }
4414
- openAlert(title, message, clickHandler) {
4415
- const option = {
4416
- component: vue.defineAsyncComponent(() => Promise.resolve().then(() => BSAlertModal)),
4417
- bind: {
4418
- title,
4419
- message
4420
- },
4421
- on: {
4422
- click: async () => await clickHandler?.()
4423
- }
4424
- };
4425
- return this.openModal(option);
4426
- }
4427
- openYesNo(title, message, yesHandler, noHandler) {
4428
- const option = {
4429
- component: vue.defineAsyncComponent(() => Promise.resolve().then(() => BSYesNoModal)),
4430
- bind: {
4431
- title,
4432
- message
4433
- },
4434
- on: {
4435
- clickYes: async () => await yesHandler?.(),
4436
- clickNo: async () => await noHandler?.()
4437
- }
4438
- };
4439
- return this.openModal(option);
4440
- }
4441
- install(app) {
4442
- app.provide(modalPluginKey, this);
4443
- }
4444
- }
4445
- const useModal = () => {
4446
- const modal = vue.inject(modalPluginKey);
4447
- if (!modal) throw new Error("BSModal is not initialized.");
4448
- return modal;
4449
- };
4450
- const provideModalHandle = (modalHandle) => {
4451
- vue.provide(modalHandleKey, modalHandle);
4452
- };
4453
- const useModalHandle = () => {
4454
- const modalHandle = vue.inject(modalHandleKey);
4455
- if (!modalHandle) throw new Error("ModalHandle not found. Maybe not inside modal component.");
4456
- return modalHandle;
4457
- };
4458
- const createModalPlugin = () => {
4459
- return new BSModal();
4460
- };
4461
4463
  const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
4462
4464
  __name: "BSModalWrapper",
4463
4465
  props: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Vue UI Library for Management Console.",
4
4
  "license": "Proprietary",
5
5
  "private": false,
6
- "version": "1.0.0-alpha.6",
6
+ "version": "1.0.0-alpha.8",
7
7
  "type": "module",
8
8
  "engines": {
9
9
  "node": ">= 24.3.0"