@bagelink/vue 1.4.136 → 1.4.141
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/components/form/inputs/RichText/components/EditorToolbar.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/composables/useCommands.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/composables/useEditor.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/composables/useEditorKeyboard.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/config.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/index.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/richTextTypes.d.ts +1 -1
- package/dist/components/form/inputs/RichText/richTextTypes.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/utils/commands.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/utils/formatting.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/utils/selection.d.ts.map +1 -1
- package/dist/composables/useSchemaField.d.ts.map +1 -1
- package/dist/index.cjs +10 -10
- package/dist/index.mjs +10 -10
- package/dist/style.css +1 -1
- package/dist/types/BagelForm.d.ts +13 -5
- package/dist/types/BagelForm.d.ts.map +1 -1
- package/dist/utils/BagelFormUtils.d.ts +28 -6
- package/dist/utils/BagelFormUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/dataTable/DataTable.vue +1 -1
- package/src/components/form/inputs/RadioGroup.vue +4 -4
- package/src/components/form/inputs/RichText/components/EditorToolbar.vue +14 -0
- package/src/components/form/inputs/RichText/composables/useCommands.ts +42 -0
- package/src/components/form/inputs/RichText/composables/useEditor.ts +8 -5
- package/src/components/form/inputs/RichText/composables/useEditorKeyboard.ts +2 -128
- package/src/components/form/inputs/RichText/config.ts +18 -4
- package/src/components/form/inputs/RichText/index.vue +275 -73
- package/src/components/form/inputs/RichText/richTextTypes.ts +5 -0
- package/src/components/form/inputs/RichText/utils/commands.ts +614 -82
- package/src/components/form/inputs/RichText/utils/formatting.ts +17 -15
- package/src/components/form/inputs/RichText/utils/selection.ts +32 -11
- package/src/composables/useSchemaField.ts +31 -17
- package/src/types/BagelForm.ts +26 -12
- package/src/utils/BagelFormUtils.ts +97 -7
- package/src/utils/index.ts +1 -1
|
@@ -30,9 +30,14 @@ export type _Path<T, PO extends PathsOptions = DefaultPathsOptions> = ToString<P
|
|
|
30
30
|
export type OpenEndedPath<T> = keyof T extends infer K ? K extends keyof T ? T[K] extends {
|
|
31
31
|
[key: string]: any;
|
|
32
32
|
} ? `${K & string}.${string}` : never : never : never;
|
|
33
|
-
|
|
34
|
-
[
|
|
35
|
-
|
|
33
|
+
type IndexSignaturePaths<T> = {
|
|
34
|
+
[K in keyof T]: T[K] extends {
|
|
35
|
+
[key: string]: any;
|
|
36
|
+
} ? T[K] extends {
|
|
37
|
+
[key: string]: infer V;
|
|
38
|
+
} ? `${K & string}.${string}` : never : never;
|
|
39
|
+
}[keyof T];
|
|
40
|
+
export type Path<T, PO extends PathsOptions = DefaultPathsOptions> = FieldVal<T, _Path<T, PO>> extends Array<any> ? LiteralStringUnion<_Path<T, PO>> : _Path<T, PO> | IndexSignaturePaths<T> | `${keyof T & string}.more_info.${string}`;
|
|
36
41
|
export type SmartFieldVal<T, P extends Path<T>> = P extends string ? P extends keyof T ? T[P] : any : FieldVal<T, P>;
|
|
37
42
|
export type SmartBagelFieldOptions<T, P extends Path<T>> = string | ({
|
|
38
43
|
label?: string;
|
|
@@ -64,9 +69,12 @@ export interface ElementField<T, PO extends PathsOptions = DefaultPathsOptions>
|
|
|
64
69
|
transform?: (val?: any, rowData?: T) => any;
|
|
65
70
|
children?: ElementField<T, PO>[];
|
|
66
71
|
}
|
|
67
|
-
|
|
72
|
+
type ValidBaseBagelField<T, PO extends PathsOptions = DefaultPathsOptions> = {
|
|
73
|
+
[P in Path<T, PO>]: BaseBagelField<T, P, PO>;
|
|
74
|
+
}[Path<T, PO>];
|
|
75
|
+
export type SchemaChild<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions> = Field<T, PO> | ElementField<T, PO> | VNode | VNodeFn<T, P> | string | ValidBaseBagelField<T, PO>;
|
|
68
76
|
export interface BaseBagelField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions> {
|
|
69
|
-
'$el'?: any;
|
|
77
|
+
'$el'?: string | any;
|
|
70
78
|
'id'?: P;
|
|
71
79
|
'label'?: string;
|
|
72
80
|
'placeholder'?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"AACA,KAAK,UAAU,GAAG,GAAG,CAAA;AACrB,UAAU,MAAM;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,CAAA;AAEhC,MAAM,MAAM,cAAc,GACvB,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAA;AAEzB,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAC/C,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,GAAG,CAAC,EAAE,CAAC,KACH,cAAc,CAAA;AAEnB,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CACjD;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAC/C,MAAM,GACN,CACC;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB,GACC,MAAM,GACN,MAAM,GACN,OAAO,GACP;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CACxB,EAAE,GACD,CAAC,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAC/F,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAEjF,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IACrC,MAAM,GACN,OAAO,GACP,CAAC,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAA;AAExD,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAChD,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE,CAAC,KACP,MAAM,GAAG,SAAS,CAAA;AAEvB,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACxD,iBAAiB,EAAE,CAAC,CAAA;CACpB;AAED,MAAM,MAAM,KAAK,CAChB,CAAC,EACD,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAG9C,MAAM,MAAM,aAAa,CAAC,CAAC,IACzB,MAAM,CAAC,SAAS,MAAM,CAAC,GACtB,CAAC,SAAS,MAAM,CAAC,GAChB,CAAC,CAAC,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAC/B,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,GAC1B,KAAK,GACN,KAAK,GACN,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DefaultPathsOptions, PathsOptions } from 'type-fest/source/paths';
|
|
2
|
-
import { Path, BaseBagelField, InputBagelField, SelectBagelField, ArrayBagelField, ArrayFieldVal, Attributes, BglFormSchemaT, FieldByP,
|
|
2
|
+
import { Path, BaseBagelField, InputBagelField, SelectBagelField, ArrayBagelField, ArrayFieldVal, Attributes, BglFormSchemaT, FieldByP, ShallowBglFormSchemaT, UploadInputProps } from '../types/BagelForm';
|
|
3
3
|
interface IconType {
|
|
4
4
|
name: string;
|
|
5
5
|
}
|
|
@@ -50,6 +50,10 @@ export interface NumFieldOptions<T, K extends Path<T>> extends InputOptions<T, K
|
|
|
50
50
|
export interface RichTextOptions<T, P extends Path<T>> extends InputOptions<T, P> {
|
|
51
51
|
height?: number | string;
|
|
52
52
|
}
|
|
53
|
+
export interface TelInputOptions<T, P extends Path<T>> extends InputOptions<T, P> {
|
|
54
|
+
pattern?: string;
|
|
55
|
+
autocomplete?: AutoFillField;
|
|
56
|
+
}
|
|
53
57
|
export declare function getBaseField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions>(id?: P, labelOrRest?: string | Partial<BaseBagelField<T, P>>, rest?: Partial<BaseBagelField<T, P>>): BaseBagelField<T, P, PO>;
|
|
54
58
|
export declare function richText<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions>(id?: P, label?: string, options?: RichTextOptions<T, P>): BaseBagelField<T, P, PO>;
|
|
55
59
|
export declare function txtField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions>(id?: P, label?: string, options?: TextInputOptions<T, P>): InputBagelField<T, P, PO>;
|
|
@@ -69,10 +73,10 @@ interface EmailInputOptions<T, P extends Path<T>> extends InputOptions<T, P> {
|
|
|
69
73
|
export declare function emailField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions>(id?: P, label?: string, options?: EmailInputOptions<T, P>): BaseBagelField<T, P, PO>;
|
|
70
74
|
export declare function dateField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions>(id?: P, label?: string, options?: DateOptions<T, P>): BaseBagelField<T, P, PO>;
|
|
71
75
|
export declare function numField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions>(id?: P, label?: string, options?: NumFieldOptions<T, P>): BaseBagelField<T, P, PO>;
|
|
72
|
-
export declare function frmRow<T, PO extends PathsOptions = DefaultPathsOptions>(...children:
|
|
76
|
+
export declare function frmRow<T, PO extends PathsOptions = DefaultPathsOptions>(...children: Array<BaseBagelField<T, any, PO>>): {
|
|
73
77
|
$el: string;
|
|
74
78
|
class: string;
|
|
75
|
-
children:
|
|
79
|
+
children: Array<BaseBagelField<T, any, PO>>;
|
|
76
80
|
};
|
|
77
81
|
export interface UploadOptions<T, K extends Path<T>> extends Omit<UploadInputProps, 'id'>, InputOptions<T, K> {
|
|
78
82
|
}
|
|
@@ -99,9 +103,7 @@ export declare function bglForm<T>(idOrField?: string | FieldByP<T, Path<T>>, ..
|
|
|
99
103
|
};
|
|
100
104
|
id?: undefined;
|
|
101
105
|
};
|
|
102
|
-
export declare function telField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions>(id?: P, label?: string, options?:
|
|
103
|
-
[key: string]: any;
|
|
104
|
-
}): BaseBagelField<T, P, PO>;
|
|
106
|
+
export declare function telField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions>(id?: P, label?: string, options?: TelInputOptions<T, P>): BaseBagelField<T, P, PO>;
|
|
105
107
|
export declare function colorField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions>(id?: P, label?: string, options?: {
|
|
106
108
|
[key: string]: any;
|
|
107
109
|
}): BaseBagelField<T, P, PO>;
|
|
@@ -116,6 +118,25 @@ export interface ArrayFieldOptions<T, K extends Path<T>> extends InputOptions<T,
|
|
|
116
118
|
}
|
|
117
119
|
export type ArrayType = 'number' | 'text';
|
|
118
120
|
export declare function arrField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions>(id: P, label: string, schemaOrType: BglFormSchemaT<ArrayFieldVal<T, P>> | ArrayType, options?: ArrayFieldOptions<T, P>): ArrayBagelField<T, P, PO>;
|
|
121
|
+
export declare function createSchema<T, PO extends PathsOptions = DefaultPathsOptions>(): {
|
|
122
|
+
txtField: <P extends Path<T, PO>>(id?: P, label?: string, options?: TextInputOptions<T, P>) => InputBagelField<T, P, PO>;
|
|
123
|
+
selectField: <P extends Path<T, PO>>(id?: P, label?: string, options?: any, fieldOptions?: SlctInputOptions<T, P>) => SelectBagelField<T, P, PO>;
|
|
124
|
+
dateField: <P extends Path<T, PO>>(id?: P, label?: string, options?: DateOptions<T, P>) => BaseBagelField<T, P, PO>;
|
|
125
|
+
telField: <P extends Path<T, PO>>(id?: P, label?: string, options?: TelInputOptions<T, P>) => BaseBagelField<T, P, PO>;
|
|
126
|
+
frmRow: (...children: Array<BaseBagelField<T, any, PO>>) => {
|
|
127
|
+
$el: string;
|
|
128
|
+
class: string;
|
|
129
|
+
children: BaseBagelField<T, any, PO>[];
|
|
130
|
+
};
|
|
131
|
+
numField: <P extends Path<T, PO>>(id?: P, label?: string, options?: NumFieldOptions<T, P>) => BaseBagelField<T, P, PO>;
|
|
132
|
+
checkField: <P extends Path<T, PO>>(id?: P, label?: string, options?: CheckInputOptions<T, P>) => BaseBagelField<T, P, PO>;
|
|
133
|
+
emailField: <P extends Path<T, PO>>(id?: P, label?: string, options?: EmailInputOptions<T, P>) => BaseBagelField<T, P, PO>;
|
|
134
|
+
uploadField: <P extends Path<T, PO>>(id?: P, label?: string, options?: UploadOptions<T, P>) => BaseBagelField<T, P, PO>;
|
|
135
|
+
rangeField: <P extends Path<T, PO>>(id?: P, label?: string, options?: RangeOptions<T, P>) => BaseBagelField<T, P, PO>;
|
|
136
|
+
colorField: <P extends Path<T, PO>>(id?: P, label?: string, options?: {
|
|
137
|
+
[key: string]: any;
|
|
138
|
+
}) => BaseBagelField<T, P, PO>;
|
|
139
|
+
};
|
|
119
140
|
export declare function useForm(): {
|
|
120
141
|
txtField: typeof txtField;
|
|
121
142
|
selectField: typeof selectField;
|
|
@@ -133,6 +154,7 @@ export declare function useForm(): {
|
|
|
133
154
|
richText: typeof richText;
|
|
134
155
|
findBglFieldById: typeof findBglFieldById;
|
|
135
156
|
getBaseField: typeof getBaseField;
|
|
157
|
+
createSchema: typeof createSchema;
|
|
136
158
|
};
|
|
137
159
|
export {};
|
|
138
160
|
//# sourceMappingURL=BagelFormUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAG/E,OAAO,KAAK,EACX,IAAI,EACJ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,UAAU,EACV,cAAc,EACd,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -127,7 +127,7 @@ const showLoading = computed(() => loading.value)
|
|
|
127
127
|
@click="toggleSort(field?.id || '')"
|
|
128
128
|
>
|
|
129
129
|
<div class="flex">
|
|
130
|
-
{{ field.label || keyToLabel(field?.id) }}
|
|
130
|
+
{{ field.label || field.attrs?.label || keyToLabel(field?.id) }}
|
|
131
131
|
<div class="list-arrows" :class="{ sorted: sortField === field?.id }">
|
|
132
132
|
<Icon :class="{ desc: sortDirection === 'DESC' }" icon="keyboard_arrow_up" />
|
|
133
133
|
</div>
|
|
@@ -87,9 +87,9 @@ function handleChange() {
|
|
|
87
87
|
<div :class="containerClasses">
|
|
88
88
|
<label
|
|
89
89
|
v-for="(opt, index) in visibleOptions" :key="opt.id || `${name}-${index}`"
|
|
90
|
-
class="border rounded flex
|
|
90
|
+
class="border rounded flex active-list-item hover"
|
|
91
91
|
:for="opt.id || `${name}-${index}`"
|
|
92
|
-
:class="{ 'p-05 gap-025': thin, 'py-1 gap-075': !thin, 'bg-gray-light': !flat, 'align-items-start': align === 'start' || align === 'top', 'align-items-center': align === 'center', 'align-items-end': align === 'end' || align === 'bottom', invertedActive }"
|
|
92
|
+
:class="{ 'p-05 gap-025': thin, 'ps-05 py-1 gap-075': !thin, 'bg-gray-light': !flat, 'align-items-start': align === 'start' || align === 'top', 'align-items-center': align === 'center', 'align-items-end': align === 'end' || align === 'bottom', invertedActive }"
|
|
93
93
|
>
|
|
94
94
|
<input
|
|
95
95
|
:id="opt.id || `${name}-${index}`" v-model="selectedOption" :disabled class="radio-input-list"
|
|
@@ -106,8 +106,8 @@ function handleChange() {
|
|
|
106
106
|
:alt="opt.imgAlt"
|
|
107
107
|
>
|
|
108
108
|
<div class="">
|
|
109
|
-
<p v-if="opt.label" class="m-0 m_txt-14 line-height-14
|
|
110
|
-
<p v-if="opt.subLabel" class="txt-gray txt-12 m-0">{{ opt.subLabel }}</p>
|
|
109
|
+
<p v-if="opt.label" class="m-0 m_txt-14 line-height-14">{{ opt.label }}</p>
|
|
110
|
+
<p v-if="opt.subLabel" class="txt-gray txt-12 m-0 pt-025">{{ opt.subLabel }}</p>
|
|
111
111
|
</div>
|
|
112
112
|
<slot name="radioItem" v-bind="opt" />
|
|
113
113
|
</div>
|
|
@@ -30,6 +30,17 @@ function runAction(name: ToolbarConfigOption, value?: string) {
|
|
|
30
30
|
/>
|
|
31
31
|
</template>
|
|
32
32
|
</Dropdown>
|
|
33
|
+
<Btn
|
|
34
|
+
v-else-if="action.name === 'textDirection'"
|
|
35
|
+
v-tooltip="action.label"
|
|
36
|
+
:icon="selectedStyles.has('textDirection') ? 'format_textdirection_l_to_r' : 'format_textdirection_r_to_l'"
|
|
37
|
+
thin flat
|
|
38
|
+
:aria-label="action.name"
|
|
39
|
+
:class="[action.class, { active: selectedStyles.has('textDirection') }]"
|
|
40
|
+
class=""
|
|
41
|
+
tabindex="-1"
|
|
42
|
+
@click="runAction(action.name)"
|
|
43
|
+
/>
|
|
33
44
|
<Btn
|
|
34
45
|
v-else-if="action.name !== 'separator'" v-tooltip="action.label" :icon="action.icon" thin flat
|
|
35
46
|
:aria-label="action.name" :class="[action.class, { active: selectedStyles.has(action.name) }]"
|
|
@@ -47,6 +58,9 @@ function runAction(name: ToolbarConfigOption, value?: string) {
|
|
|
47
58
|
background: var(--bgl-primary);
|
|
48
59
|
color: white;
|
|
49
60
|
}
|
|
61
|
+
.toolbar :deep(.active):hover {
|
|
62
|
+
color: var(--bgl-black);
|
|
63
|
+
}
|
|
50
64
|
</style>
|
|
51
65
|
|
|
52
66
|
<style scoped></style>
|
|
@@ -1,10 +1,46 @@
|
|
|
1
1
|
import type { EditorState } from '../richTextTypes'
|
|
2
2
|
import { createCommandExecutor, createCommandRegistry } from '../utils/commands'
|
|
3
|
+
import { isStyleActive } from '../utils/selection'
|
|
3
4
|
|
|
4
5
|
export function useCommands(state: EditorState, debug?: { logCommand: (command: string, value?: string) => void }) {
|
|
5
6
|
const commands = createCommandRegistry(state)
|
|
6
7
|
const executor = createCommandExecutor(state, commands)
|
|
7
8
|
|
|
9
|
+
// Function to immediately update styles
|
|
10
|
+
const updateStylesImmediately = () => {
|
|
11
|
+
if (!state.doc) return
|
|
12
|
+
|
|
13
|
+
const styles = new Set<string>()
|
|
14
|
+
const styleTypes = [
|
|
15
|
+
'bold',
|
|
16
|
+
'italic',
|
|
17
|
+
'underline',
|
|
18
|
+
'h1',
|
|
19
|
+
'h2',
|
|
20
|
+
'h3',
|
|
21
|
+
'h4',
|
|
22
|
+
'h5',
|
|
23
|
+
'h6',
|
|
24
|
+
'blockquote',
|
|
25
|
+
'p',
|
|
26
|
+
'orderedList',
|
|
27
|
+
'unorderedList',
|
|
28
|
+
'alignLeft',
|
|
29
|
+
'alignCenter',
|
|
30
|
+
'alignRight',
|
|
31
|
+
'alignJustify',
|
|
32
|
+
'textDirection'
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
styleTypes.forEach((style) => {
|
|
36
|
+
if (isStyleActive(style, state.doc!)) {
|
|
37
|
+
styles.add(style)
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
state.selectedStyles = styles
|
|
42
|
+
}
|
|
43
|
+
|
|
8
44
|
return {
|
|
9
45
|
execute: (command: string, value?: string) => {
|
|
10
46
|
if (!state.doc) {
|
|
@@ -48,6 +84,12 @@ export function useCommands(state: EditorState, debug?: { logCommand: (command:
|
|
|
48
84
|
// Execute the command
|
|
49
85
|
try {
|
|
50
86
|
executor.execute(command, value)
|
|
87
|
+
|
|
88
|
+
// Update styles immediately after command execution for all commands except view state
|
|
89
|
+
const viewCommands = ['splitView', 'codeView', 'fullScreen']
|
|
90
|
+
if (!viewCommands.includes(command)) {
|
|
91
|
+
updateStylesImmediately()
|
|
92
|
+
}
|
|
51
93
|
} catch (e) {
|
|
52
94
|
console.error('[useCommands] Error during command execution:', e)
|
|
53
95
|
}
|
|
@@ -72,7 +72,12 @@ export function useEditor() {
|
|
|
72
72
|
'blockquote',
|
|
73
73
|
'p',
|
|
74
74
|
'orderedList',
|
|
75
|
-
'unorderedList'
|
|
75
|
+
'unorderedList',
|
|
76
|
+
'alignLeft',
|
|
77
|
+
'alignCenter',
|
|
78
|
+
'alignRight',
|
|
79
|
+
'alignJustify',
|
|
80
|
+
'textDirection'
|
|
76
81
|
]
|
|
77
82
|
styleTypes.forEach((style) => {
|
|
78
83
|
if (state.doc && isStyleActive(style, state.doc)) {
|
|
@@ -151,10 +156,8 @@ export function useEditor() {
|
|
|
151
156
|
state.range = newSelection.getRangeAt(0).cloneRange()
|
|
152
157
|
}
|
|
153
158
|
|
|
154
|
-
// Update styles
|
|
155
|
-
|
|
156
|
-
updateState.styles()
|
|
157
|
-
})
|
|
159
|
+
// Update styles immediately for better responsiveness
|
|
160
|
+
updateState.styles()
|
|
158
161
|
}
|
|
159
162
|
} catch (e) {
|
|
160
163
|
state.selection = null
|
|
@@ -31,105 +31,8 @@ const shortcuts: KeyboardShortcut[] = [
|
|
|
31
31
|
export function useEditorKeyboard(doc: Document, executor: CommandExecutor): void {
|
|
32
32
|
// Handle keyboard shortcuts
|
|
33
33
|
doc.addEventListener('keydown', (e) => {
|
|
34
|
-
//
|
|
35
|
-
|
|
36
|
-
const selection = doc.getSelection()
|
|
37
|
-
if (!selection || !selection.rangeCount) return
|
|
38
|
-
|
|
39
|
-
const range = selection.getRangeAt(0)
|
|
40
|
-
const container = range.commonAncestorContainer
|
|
41
|
-
const listItem = (container.nodeType === 3 ? container.parentElement : container as Element)?.closest('li')
|
|
42
|
-
|
|
43
|
-
if (listItem) {
|
|
44
|
-
// If we're at the end of a list item
|
|
45
|
-
if (range.collapsed && isAtEndOfNode(listItem, range)) {
|
|
46
|
-
// If the list item is empty, break out of the list
|
|
47
|
-
if (isNodeEmpty(listItem)) {
|
|
48
|
-
e.preventDefault()
|
|
49
|
-
// Create a new paragraph after the list
|
|
50
|
-
const list = listItem.parentElement
|
|
51
|
-
if (!list) return
|
|
52
|
-
|
|
53
|
-
// Remove the empty list item
|
|
54
|
-
listItem.remove()
|
|
55
|
-
|
|
56
|
-
// If the list is now empty, remove it
|
|
57
|
-
if (!list.querySelector('li')) {
|
|
58
|
-
const p = doc.createElement('p')
|
|
59
|
-
p.innerHTML = ''
|
|
60
|
-
list.parentNode?.replaceChild(p, list)
|
|
61
|
-
|
|
62
|
-
// Set cursor in the new paragraph
|
|
63
|
-
range.selectNodeContents(p)
|
|
64
|
-
range.collapse(true)
|
|
65
|
-
selection.removeAllRanges()
|
|
66
|
-
selection.addRange(range)
|
|
67
|
-
}
|
|
68
|
-
} else {
|
|
69
|
-
// Create a new list item
|
|
70
|
-
e.preventDefault()
|
|
71
|
-
const newLi = doc.createElement('li')
|
|
72
|
-
newLi.innerHTML = '' // Start with empty list item
|
|
73
|
-
listItem.insertAdjacentElement('afterend', newLi)
|
|
74
|
-
|
|
75
|
-
// Move cursor to new list item
|
|
76
|
-
range.selectNodeContents(newLi)
|
|
77
|
-
range.collapse(true)
|
|
78
|
-
selection.removeAllRanges()
|
|
79
|
-
selection.addRange(range)
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
} else {
|
|
83
|
-
// Handle Enter in regular content - create new paragraph
|
|
84
|
-
const blockElement = (container.nodeType === 3 ? container.parentElement : container as Element)?.closest('p,h1,h2,h3,h4,h5,h6,blockquote,div')
|
|
85
|
-
|
|
86
|
-
if (blockElement && range.collapsed) {
|
|
87
|
-
// If we're at the end of a block element, create a new paragraph
|
|
88
|
-
if (isAtEndOfNode(blockElement, range)) {
|
|
89
|
-
e.preventDefault()
|
|
90
|
-
const newP = doc.createElement('p')
|
|
91
|
-
newP.innerHTML = ''
|
|
92
|
-
blockElement.insertAdjacentElement('afterend', newP)
|
|
93
|
-
|
|
94
|
-
// Move cursor to new paragraph
|
|
95
|
-
range.selectNodeContents(newP)
|
|
96
|
-
range.collapse(true)
|
|
97
|
-
selection.removeAllRanges()
|
|
98
|
-
selection.addRange(range)
|
|
99
|
-
}
|
|
100
|
-
} else if (!blockElement && doc.body.textContent?.trim()) {
|
|
101
|
-
// If we're typing directly in the body and press Enter, wrap in paragraphs
|
|
102
|
-
e.preventDefault()
|
|
103
|
-
|
|
104
|
-
// Split content at cursor position
|
|
105
|
-
const textContent = doc.body.textContent || ''
|
|
106
|
-
const cursorPos = range.startOffset
|
|
107
|
-
const beforeText = textContent.substring(0, cursorPos).trim()
|
|
108
|
-
const afterText = textContent.substring(cursorPos).trim()
|
|
109
|
-
|
|
110
|
-
// Clear body
|
|
111
|
-
doc.body.innerHTML = ''
|
|
112
|
-
|
|
113
|
-
// Create first paragraph with before text
|
|
114
|
-
if (beforeText) {
|
|
115
|
-
const p1 = doc.createElement('p')
|
|
116
|
-
p1.textContent = beforeText
|
|
117
|
-
doc.body.appendChild(p1)
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Create second paragraph for after text
|
|
121
|
-
const p2 = doc.createElement('p')
|
|
122
|
-
p2.textContent = afterText
|
|
123
|
-
doc.body.appendChild(p2)
|
|
124
|
-
|
|
125
|
-
// Set cursor at beginning of second paragraph
|
|
126
|
-
range.selectNodeContents(p2)
|
|
127
|
-
range.collapse(true)
|
|
128
|
-
selection.removeAllRanges()
|
|
129
|
-
selection.addRange(range)
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
34
|
+
// Remove Enter key handling from here - it's handled in setupAutoWrapping in index.vue
|
|
35
|
+
// This was causing conflicts with the main Enter key handler
|
|
133
36
|
|
|
134
37
|
// Handle other keyboard shortcuts
|
|
135
38
|
if (!e.ctrlKey && !e.metaKey) return
|
|
@@ -150,32 +53,3 @@ export function useEditorKeyboard(doc: Document, executor: CommandExecutor): voi
|
|
|
150
53
|
}
|
|
151
54
|
})
|
|
152
55
|
}
|
|
153
|
-
|
|
154
|
-
// Helper function to check if we're at the end of a node
|
|
155
|
-
function isAtEndOfNode(node: Node, range: Range): boolean {
|
|
156
|
-
if (node.nodeType === 3) { // Text node
|
|
157
|
-
return range.startOffset === (node as Text).length
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
const { lastChild } = node
|
|
161
|
-
if (!lastChild) return true
|
|
162
|
-
|
|
163
|
-
if (lastChild.nodeType === 3) { // Text node
|
|
164
|
-
return range.startContainer === lastChild && range.startOffset === lastChild.textContent?.length
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return range.startContainer === node && range.startOffset === node.childNodes.length
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// Helper function to check if a node is empty (contains only whitespace or <br> or )
|
|
171
|
-
function isNodeEmpty(node: Node): boolean {
|
|
172
|
-
const text = node.textContent?.replace(/\s/g, '') || '' // Remove non-breaking spaces and whitespace
|
|
173
|
-
if (text) return false
|
|
174
|
-
|
|
175
|
-
// Check for <br> tags
|
|
176
|
-
const brElements = (node as Element).getElementsByTagName('br')
|
|
177
|
-
if (brElements.length === 0) return true
|
|
178
|
-
|
|
179
|
-
// If there's only one <br> and it's the only content (besides potential ), consider it empty
|
|
180
|
-
return brElements.length === 1 && node.childNodes.length <= 2 // Allow for + <br>
|
|
181
|
-
}
|
|
@@ -9,14 +9,15 @@ export const tableTools: ToolbarConfig = [
|
|
|
9
9
|
'insertColumnLeft',
|
|
10
10
|
'insertColumnRight',
|
|
11
11
|
'deleteColumn',
|
|
12
|
-
'
|
|
13
|
-
'
|
|
14
|
-
'
|
|
15
|
-
'
|
|
12
|
+
'tableAlignLeft',
|
|
13
|
+
'tableAlignCenter',
|
|
14
|
+
'tableAlignRight',
|
|
15
|
+
'tableAlignJustify',
|
|
16
16
|
'deleteTable'
|
|
17
17
|
]
|
|
18
18
|
|
|
19
19
|
export const basicToolbarConfig: ToolbarConfig = [
|
|
20
|
+
'h1',
|
|
20
21
|
'h2',
|
|
21
22
|
'h3',
|
|
22
23
|
'h4',
|
|
@@ -32,6 +33,12 @@ export const basicToolbarConfig: ToolbarConfig = [
|
|
|
32
33
|
'italic',
|
|
33
34
|
'underline',
|
|
34
35
|
'separator',
|
|
36
|
+
'alignLeft',
|
|
37
|
+
'alignCenter',
|
|
38
|
+
'alignRight',
|
|
39
|
+
'alignJustify',
|
|
40
|
+
'textDirection',
|
|
41
|
+
'separator',
|
|
35
42
|
'link',
|
|
36
43
|
'image',
|
|
37
44
|
'embed',
|
|
@@ -41,6 +48,7 @@ export const basicToolbarConfig: ToolbarConfig = [
|
|
|
41
48
|
]
|
|
42
49
|
|
|
43
50
|
export const fullToolbarConfig: ToolbarConfig = [
|
|
51
|
+
'h1',
|
|
44
52
|
'h2',
|
|
45
53
|
'h3',
|
|
46
54
|
'h4',
|
|
@@ -76,6 +84,7 @@ export const fullToolbarConfig: ToolbarConfig = [
|
|
|
76
84
|
]
|
|
77
85
|
|
|
78
86
|
export const toolbarOptions: ToolbarOption[] = [
|
|
87
|
+
{ name: 'h1', label: 'h1', icon: 'format_h1' },
|
|
79
88
|
{ name: 'h2', label: 'h2', icon: 'format_h2' },
|
|
80
89
|
{ name: 'h3', label: 'h3', icon: 'format_h3' },
|
|
81
90
|
{ name: 'h4', label: 'h4', icon: 'format_h4' },
|
|
@@ -97,6 +106,10 @@ export const toolbarOptions: ToolbarOption[] = [
|
|
|
97
106
|
{ name: 'alignCenter', label: 'Align Center', icon: 'format_align_center' },
|
|
98
107
|
{ name: 'alignRight', label: 'Align Right', icon: 'format_align_right' },
|
|
99
108
|
{ name: 'alignJustify', label: 'Align Justify', icon: 'format_align_justify' },
|
|
109
|
+
{ name: 'tableAlignLeft', label: 'Table Align Left', icon: 'format_align_left' },
|
|
110
|
+
{ name: 'tableAlignCenter', label: 'Table Align Center', icon: 'format_align_center' },
|
|
111
|
+
{ name: 'tableAlignRight', label: 'Table Align Right', icon: 'format_align_right' },
|
|
112
|
+
{ name: 'tableAlignJustify', label: 'Table Align Justify', icon: 'format_align_justify' },
|
|
100
113
|
{ name: 'indent', label: 'Indent', icon: 'format_indent_increase' },
|
|
101
114
|
{ name: 'outdent', label: 'Outdent', icon: 'format_indent_decrease' },
|
|
102
115
|
{ name: 'fontColor', label: 'Font Color', icon: 'format_color_text' },
|
|
@@ -116,4 +129,5 @@ export const toolbarOptions: ToolbarOption[] = [
|
|
|
116
129
|
{ name: 'redo', label: 'Redo', icon: 'redo' },
|
|
117
130
|
{ name: 'separator' },
|
|
118
131
|
{ name: 'fullScreen', label: 'Full Screen', icon: 'fullscreen', class: 'ms-auto' },
|
|
132
|
+
{ name: 'textDirection', label: 'Text Direction (RTL/LTR)', icon: 'format_textdirection_r_to_l' },
|
|
119
133
|
]
|