@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.
@@ -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,4 @@
1
+ import { ValidationResult } from '@vue-skuilder/common';
2
+ export declare function numberValidator(value: string): ValidationResult;
3
+ export declare function integerValidator(value: string): ValidationResult;
4
+ //# sourceMappingURL=typeValidators.d.ts.map
@@ -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"}
@@ -0,0 +1,4 @@
1
+ export * from './components';
2
+ export { useDataInputFormStore } from './stores/useDataInputFormStore';
3
+ export { useFieldInputStore } from './stores/useFieldInputStore';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.1.1",
6
+ "version": "0.1.7",
7
7
  "main": "./dist/edit-ui.umd.js",
8
8
  "module": "./dist/edit-ui.es.js",
9
9
  "types": "./dist/index.d.ts",