@vue-skuilder/edit-ui 0.1.1 → 0.1.7
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/ViewableDataInputForm/FieldInput.types.d.ts +20 -0
- package/dist/components/ViewableDataInputForm/FieldInput.types.d.ts.map +1 -0
- package/dist/components/ViewableDataInputForm/FieldInputs/OptionsFieldInput.d.ts +35 -0
- package/dist/components/ViewableDataInputForm/FieldInputs/OptionsFieldInput.d.ts.map +1 -0
- package/dist/components/ViewableDataInputForm/FieldInputs/typeValidators.d.ts +4 -0
- package/dist/components/ViewableDataInputForm/FieldInputs/typeValidators.d.ts.map +1 -0
- package/dist/components/index.d.ts +14 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/stores/useDataInputFormStore.d.ts +22 -0
- package/dist/stores/useDataInputFormStore.d.ts.map +1 -0
- package/dist/stores/useFieldInputStore.d.ts +91 -0
- package/dist/stores/useFieldInputStore.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CourseElo, ValidatingFunction, ValidationResult } from '@vue-skuilder/common';
|
|
2
|
+
import { ComponentPublicInstance } from 'vue';
|
|
3
|
+
export interface FieldInputInterface {
|
|
4
|
+
$refs: {
|
|
5
|
+
inputField: HTMLInputElement;
|
|
6
|
+
};
|
|
7
|
+
validationStatus: ValidationResult;
|
|
8
|
+
validators: ValidatingFunction[];
|
|
9
|
+
focus: () => void;
|
|
10
|
+
userInput: () => unknown;
|
|
11
|
+
setData: (data: unknown) => void;
|
|
12
|
+
clearData: () => void;
|
|
13
|
+
vuetifyRules: () => Array<(value: unknown) => boolean | string>;
|
|
14
|
+
generateTags: () => string[];
|
|
15
|
+
generateELO: () => CourseElo | undefined;
|
|
16
|
+
validate: () => ValidationResult;
|
|
17
|
+
}
|
|
18
|
+
export declare function isFieldInput(component: unknown): component is FieldInputInstance;
|
|
19
|
+
export type FieldInputInstance = ComponentPublicInstance & FieldInputInterface;
|
|
20
|
+
//# sourceMappingURL=FieldInput.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldInput.types.d.ts","sourceRoot":"","sources":["../../../src/components/ViewableDataInputForm/FieldInput.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,KAAK,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE;QACL,UAAU,EAAE,gBAAgB,CAAC;KAC9B,CAAC;IACF,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,CAAC,CAAC;IAChE,YAAY,EAAE,MAAM,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC;IACzC,QAAQ,EAAE,MAAM,gBAAgB,CAAC;CAClC;AAGD,wBAAgB,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,kBAAkB,CAShF;AAGD,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ComputedRef, PropType, Ref, WritableComputedRef } from 'vue';
|
|
2
|
+
import { ValidatingFunction, FieldDefinition, ValidationResult, VuetifyRule, CourseElo } from '@vue-skuilder/common';
|
|
3
|
+
import { useFieldInputStore } from '../../../stores/useFieldInputStore';
|
|
4
|
+
export interface FieldInputSetupReturn {
|
|
5
|
+
inputField: Ref<HTMLInputElement | null>;
|
|
6
|
+
fieldStore: ReturnType<typeof useFieldInputStore>;
|
|
7
|
+
modelValue: WritableComputedRef<unknown>;
|
|
8
|
+
validators: ComputedRef<ValidatingFunction[]>;
|
|
9
|
+
focus: () => void;
|
|
10
|
+
userInput: () => unknown;
|
|
11
|
+
clearData: () => void;
|
|
12
|
+
setData: (data: unknown) => void;
|
|
13
|
+
vuetifyRules: () => VuetifyRule[];
|
|
14
|
+
generateTags: () => string[];
|
|
15
|
+
generateELO: () => CourseElo | undefined;
|
|
16
|
+
}
|
|
17
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
18
|
+
autofocus: BooleanConstructor;
|
|
19
|
+
field: {
|
|
20
|
+
type: PropType<FieldDefinition>;
|
|
21
|
+
required: true;
|
|
22
|
+
};
|
|
23
|
+
}>, FieldInputSetupReturn, {
|
|
24
|
+
validationStatus: ValidationResult;
|
|
25
|
+
}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
26
|
+
autofocus: BooleanConstructor;
|
|
27
|
+
field: {
|
|
28
|
+
type: PropType<FieldDefinition>;
|
|
29
|
+
required: true;
|
|
30
|
+
};
|
|
31
|
+
}>> & Readonly<{}>, {
|
|
32
|
+
autofocus: boolean;
|
|
33
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
34
|
+
export default _default;
|
|
35
|
+
//# sourceMappingURL=OptionsFieldInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionsFieldInput.d.ts","sourceRoot":"","sources":["../../../../src/components/ViewableDataInputForm/FieldInputs/OptionsFieldInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEX,QAAQ,EACR,GAAG,EAGH,mBAAmB,EACpB,MAAM,KAAK,CAAC;AACb,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAEhB,WAAW,EAEX,SAAS,EACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACzC,UAAU,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAClD,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACzC,UAAU,EAAE,WAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,WAAW,EAAE,CAAC;IAClC,YAAY,EAAE,MAAM,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC;CAC1C;;;;cAQqB,QAAQ,CAAC,eAAe,CAAC;;;;sBAoHpC,gBAAgB;;;;cApHL,QAAQ,CAAC,eAAe,CAAC;;;;;;AAN/C,wBA6HG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeValidators.d.ts","sourceRoot":"","sources":["../../../../src/components/ViewableDataInputForm/FieldInputs/typeValidators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOxD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAW/D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAehE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { default as CourseEditor } from './CourseEditor.vue';
|
|
2
|
+
export { default as DataInputForm } from './ViewableDataInputForm/DataInputForm.vue';
|
|
3
|
+
export { default as BulkImportView } from './BulkImportView.vue';
|
|
4
|
+
export { default as StringInput } from './ViewableDataInputForm/FieldInputs/StringInput.vue';
|
|
5
|
+
export { default as MarkdownInput } from './ViewableDataInputForm/FieldInputs/MarkdownInput.vue';
|
|
6
|
+
export { default as NumberInput } from './ViewableDataInputForm/FieldInputs/NumberInput.vue';
|
|
7
|
+
export { default as IntegerInput } from './ViewableDataInputForm/FieldInputs/IntegerInput.vue';
|
|
8
|
+
export { default as MediaDragDropUploader } from './ViewableDataInputForm/FieldInputs/MediaDragDropUploader.vue';
|
|
9
|
+
export { default as ChessPuzzleInput } from './ViewableDataInputForm/FieldInputs/ChessPuzzleInput.vue';
|
|
10
|
+
export { default as MidiInput } from './ViewableDataInputForm/FieldInputs/MidiInput.vue';
|
|
11
|
+
export { default as OptionsFieldInput } from './ViewableDataInputForm/FieldInputs/OptionsFieldInput';
|
|
12
|
+
export * from './ViewableDataInputForm/FieldInputs/typeValidators';
|
|
13
|
+
export * from './ViewableDataInputForm/FieldInput.types';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,sDAAsD,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,+DAA+D,CAAC;AACjH,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0DAA0D,CAAC;AACvG,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mDAAmD,CAAC;AAKzF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AACrG,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DataShape } from '@vue-skuilder/common';
|
|
2
|
+
import { CourseConfig } from '@vue-skuilder/common';
|
|
3
|
+
import { FieldInputInstance } from '../components/ViewableDataInputForm/FieldInput.types';
|
|
4
|
+
import { useFieldInputStore } from './useFieldInputStore';
|
|
5
|
+
import { ViewComponent } from '@vue-skuilder/common-ui';
|
|
6
|
+
interface DataInputForm {
|
|
7
|
+
dataShape: DataShape | null;
|
|
8
|
+
course: CourseConfig | null;
|
|
9
|
+
shapeViews: ViewComponent[];
|
|
10
|
+
fields: FieldInputInstance[];
|
|
11
|
+
fieldStore: ReturnType<typeof useFieldInputStore>;
|
|
12
|
+
uploading: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface DataInputFormState {
|
|
15
|
+
dataInputForm: DataInputForm;
|
|
16
|
+
}
|
|
17
|
+
export declare const useDataInputFormStore: import("pinia").StoreDefinition<"dataInputForm", DataInputFormState, {}, {
|
|
18
|
+
setDataShape(ds: DataShape): void;
|
|
19
|
+
setCourse(course: CourseConfig): void;
|
|
20
|
+
}>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=useDataInputFormStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDataInputFormStore.d.ts","sourceRoot":"","sources":["../../src/stores/useDataInputFormStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,UAAU,aAAa;IAErB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAE5B,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAE7B,UAAU,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAElD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,eAAO,MAAM,qBAAqB;qBAcb,SAAS;sBAKR,YAAY;EAKhC,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { DataShape, FieldType } from '@vue-skuilder/common';
|
|
2
|
+
export interface MediaInputs {
|
|
3
|
+
[key: `audio-${number}`]: unknown;
|
|
4
|
+
[key: `image-${number}`]: unknown;
|
|
5
|
+
}
|
|
6
|
+
export interface FieldInputStore {
|
|
7
|
+
/**
|
|
8
|
+
* The
|
|
9
|
+
*/
|
|
10
|
+
dataShape: DataShape | null;
|
|
11
|
+
/**
|
|
12
|
+
* Raw input field values by field name - the user-edited submissions
|
|
13
|
+
*/
|
|
14
|
+
inputs: Record<string, unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* additions from the MediaDragDrop editor.
|
|
17
|
+
*/
|
|
18
|
+
mediaInputs: MediaInputs;
|
|
19
|
+
inputIsValid: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Validation status of each field - all must be true for the form to be valid and the data to be submissable
|
|
22
|
+
*/
|
|
23
|
+
validation: Record<string, boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* Input prepared for sending to the database
|
|
26
|
+
*/
|
|
27
|
+
convertedInput: Record<string, unknown>;
|
|
28
|
+
/**
|
|
29
|
+
* Input prepared for local rendering in a preview
|
|
30
|
+
*/
|
|
31
|
+
previewInput: Record<string, unknown>;
|
|
32
|
+
}
|
|
33
|
+
export declare const useFieldInputStore: import("pinia").StoreDefinition<"fieldStore", FieldInputStore, {
|
|
34
|
+
isValidated(): boolean;
|
|
35
|
+
getPreview: (state: {
|
|
36
|
+
dataShape: {
|
|
37
|
+
name: import("@vue-skuilder/common").DataShapeName;
|
|
38
|
+
fields: {
|
|
39
|
+
name: string;
|
|
40
|
+
type: FieldType;
|
|
41
|
+
validator?: {
|
|
42
|
+
instructions?: string | undefined;
|
|
43
|
+
placeholder?: string | undefined;
|
|
44
|
+
test: import("@vue-skuilder/common").ValidatingFunction;
|
|
45
|
+
} | undefined;
|
|
46
|
+
tagger?: import("@vue-skuilder/common").Tagger | undefined;
|
|
47
|
+
generateELO?: ((x: unknown) => import("@vue-skuilder/common").CourseElo) | undefined;
|
|
48
|
+
}[];
|
|
49
|
+
} | null;
|
|
50
|
+
inputs: Record<string, unknown>;
|
|
51
|
+
mediaInputs: MediaInputs;
|
|
52
|
+
inputIsValid: boolean;
|
|
53
|
+
validation: Record<string, boolean>;
|
|
54
|
+
convertedInput: Record<string, unknown>;
|
|
55
|
+
previewInput: Record<string, unknown>;
|
|
56
|
+
} & import("pinia").PiniaCustomStateProperties<FieldInputStore>) => Record<string, unknown>;
|
|
57
|
+
getConverted: (state: {
|
|
58
|
+
dataShape: {
|
|
59
|
+
name: import("@vue-skuilder/common").DataShapeName;
|
|
60
|
+
fields: {
|
|
61
|
+
name: string;
|
|
62
|
+
type: FieldType;
|
|
63
|
+
validator?: {
|
|
64
|
+
instructions?: string | undefined;
|
|
65
|
+
placeholder?: string | undefined;
|
|
66
|
+
test: import("@vue-skuilder/common").ValidatingFunction;
|
|
67
|
+
} | undefined;
|
|
68
|
+
tagger?: import("@vue-skuilder/common").Tagger | undefined;
|
|
69
|
+
generateELO?: ((x: unknown) => import("@vue-skuilder/common").CourseElo) | undefined;
|
|
70
|
+
}[];
|
|
71
|
+
} | null;
|
|
72
|
+
inputs: Record<string, unknown>;
|
|
73
|
+
mediaInputs: MediaInputs;
|
|
74
|
+
inputIsValid: boolean;
|
|
75
|
+
validation: Record<string, boolean>;
|
|
76
|
+
convertedInput: Record<string, unknown>;
|
|
77
|
+
previewInput: Record<string, unknown>;
|
|
78
|
+
} & import("pinia").PiniaCustomStateProperties<FieldInputStore>) => Record<string, unknown>;
|
|
79
|
+
}, {
|
|
80
|
+
$reset(): void;
|
|
81
|
+
setFieldValue(fieldName: string, value: unknown): void;
|
|
82
|
+
setMedia(fieldName: keyof MediaInputs, media: {
|
|
83
|
+
content_type: string;
|
|
84
|
+
data: Blob;
|
|
85
|
+
}): void;
|
|
86
|
+
validate(): void;
|
|
87
|
+
convert(): void;
|
|
88
|
+
clearMediaEntries(): void;
|
|
89
|
+
clearField(fieldName: string): void;
|
|
90
|
+
}>;
|
|
91
|
+
//# sourceMappingURL=useFieldInputStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFieldInputStore.d.ts","sourceRoot":"","sources":["../../src/stores/useFieldInputStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAA2B,MAAM,sBAAsB,CAAC;AAGrF,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;IAClC,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAO9B;;OAEG;IACH,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAE5B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAGvC;AAED,eAAO,MAAM,kBAAkB;mBAaZ,OAAO;;;;;;;;;;;;;;;;gBAtChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;qBAKlB,WAAW;sBAEV,OAAO;oBAKT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;wBAInB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;sBAIzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;gBApB7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;qBAKlB,WAAW;sBAEV,OAAO;oBAKT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;wBAInB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;sBAIzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;6BAqDV,MAAM,SAAS,OAAO;wBAOlC,MAAM,WAAW,SACrB;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,IAAI,CAAC;KACZ;;;;0BA4EmB,MAAM;EAO9B,CAAC"}
|