UNPKG

survey-core

Version:

survey.js is a JavaScript Survey Library. It is a modern way to add a survey to your website. It uses JSON for survey metadata and results.

381 lines (380 loc) 14.8 kB
import { Base } from "./base"; import { ILoadFromJSONOptions, ISaveToJSONOptions } from "./base-interfaces"; export interface IPropertyDecoratorOptions<T = any> { defaultValue?: T; defaultSource?: string; getDefaultValue?: (objectInstance?: any) => T; localizable?: { name?: string; onGetTextCallback?: (str: string) => string; defaultStr?: string; } | boolean; onSet?: (val: T, objectInstance: any, prevVal?: T) => void; } export declare function property(options?: IPropertyDecoratorOptions): (target: any, key: string) => void; export interface IArrayPropertyDecoratorOptions { onPush?: any; onRemove?: any; onSet?: (val: any, target: any) => void; } export declare function propertyArray(options?: IArrayPropertyDecoratorOptions): (target: any, key: string) => void; export interface IObject { [key: string]: any; } export interface IJsonPropertyInfo { name: string; type?: string; className?: string; classNamePart?: string; baseClassName?: string; isRequired?: boolean; isUnique?: boolean; uniqueProperty?: string; choices?: any; visible?: boolean; alternativeName?: string; oldName?: string; version?: string; dataList?: Array<string>; isLocalizable?: boolean; isSerializable?: boolean; isSerializableFunc?: (obj: any) => boolean; isLightSerializable?: boolean; readOnly?: boolean; availableInMatrixColumn?: boolean; serializationProperty?: string; dependsOn?: Array<string> | string; isBindable?: boolean; isArray?: boolean; layout?: string; default?: any; defaultFunc?: (obj: Base) => any; baseValue?: any; onSerializeValue?: (obj: any) => any; onGetValue?: (obj: any) => any; onSettingValue?: (obj: any, value: any) => any; onSetValue?: (obj: any, value: any, jsonConv: JsonObject) => any; visibleIf?: (obj: any) => boolean; enableIf?: (obj: any) => boolean; onExecuteExpression?: (obj: any, res: any) => any; onPropertyEditorUpdate?: (obj: any, propEditor: any) => any; displayName?: string; category?: string; categoryIndex?: number; visibleIndex?: number; nextToProperty?: string; overridingProperty?: string; showMode?: string; locationInTable?: string; maxLength?: number; maxValue?: any; minValue?: any; } /** * Contains information about a property of a survey element (page, panel, questions, and etc). * @see addProperty * @see removeProperty * @see [Add Properties](https://surveyjs.io/Documentation/Survey-Creator#addproperties) * @see [Remove Properties](https://surveyjs.io/Documentation/Survey-Creator#removeproperties) */ export declare class JsonObjectProperty implements IObject, IJsonPropertyInfo { name: string; static getItemValuesDefaultValue: (val: any, type: string) => any; [key: string]: any; private static Index; private static mergableValues; private idValue; private classInfoValue; private typeValue; private choicesValue; baseValue: any; private isRequiredValue; private isUniqueValue; private uniquePropertyValue; private readOnlyValue; private visibleValue; private isLocalizableValue; private choicesfunc; private dependedProperties; isSerializable: boolean; isSerializableFunc: (obj: any) => boolean; isLightSerializable: boolean; isCustom: boolean; isDynamicChoices: boolean; isBindable: boolean; className: string; alternativeName: string; oldName: string; classNamePart: string; baseClassName: string; defaultValueValue: any; defaultValueFunc: (obj: Base) => any; serializationProperty: string; displayName: string; category: string; categoryIndex: number; visibleIndex: number; nextToProperty: string; overridingProperty: string; availableInMatrixColumn: boolean; maxLength: number; maxValue: any; minValue: any; private dataListValue; private locationInTableValue; layout: string; version: string; onSerializeValue: (obj: any) => any; onGetValue: (obj: any) => any; onSettingValue: (obj: any, value: any) => any; onSetValue: (obj: any, value: any, jsonConv: JsonObject) => any; visibleIf: (obj: any) => boolean; enableIf: (obj: any) => boolean; onExecuteExpression: (obj: any, res: any) => any; onPropertyEditorUpdate: (obj: any, propEditor: any) => any; constructor(classInfo: JsonMetadataClass, name: string, isRequired?: boolean); uniqueProperty?: string; dependsOn?: string | Array<string>; default?: any; defaultFunc?: (obj: Base) => any; get id(): number; get classInfo(): JsonMetadataClass; get type(): string; set type(value: string); get locationInTable(): string; set locationInTable(val: string); get showMode(): string; set showMode(val: string); isArray: boolean; get isRequired(): boolean; set isRequired(val: boolean); get isUnique(): boolean; set isUnique(val: boolean); get uniquePropertyName(): string; set uniquePropertyName(val: string); isPropertySerializable(obj: any): boolean; getDefaultValue(obj: Base): any; get defaultValue(): any; set defaultValue(newValue: any); isDefaultValue(value: any): boolean; isDefaultValueByObj(obj: Base, value: any): boolean; getSerializableValue(obj: any, storeDefaults?: boolean): any; getValue(obj: any): any; getPropertyValue(obj: any): any; get hasToUseSetValue(): string | ((obj: any, value: any, jsonConv: JsonObject) => any); settingValue(obj: any, value: any): any; setValue(obj: any, value: any, jsonConv: JsonObject): void; validateValue(value: any): boolean; getObjType(objType: string): string; /** * Depricated, please use getChoices */ get choices(): Array<any>; get hasChoices(): boolean; getChoices(obj: any, choicesCallback?: any): Array<any>; setChoices(value: Array<any>, valueFunc?: (obj: any) => Array<any>): void; getBaseValue(): string; setBaseValue(val: any): void; get readOnly(): boolean; set readOnly(val: boolean); isEnable(obj: any): boolean; isVisible(layout: string, obj?: any): boolean; private getOriginalObj; get visible(): boolean; set visible(val: boolean); isAvailableInVersion(ver: string): boolean; getSerializedName(ver: string): string; getSerializedProperty(obj: any, ver: string): JsonObjectProperty; private isAvailableInVersionCore; get isLocalizable(): boolean; set isLocalizable(val: boolean); get dataList(): Array<string>; set dataList(val: Array<string>); mergeWith(prop: JsonObjectProperty): void; addDependedProperty(name: string): void; getDependedProperties(): Array<string>; schemaType(): string; schemaRef(): string; private mergeValue; } export declare class CustomPropertiesCollection { private static properties; private static parentClasses; static addProperty(className: string, property: any): void; static removeProperty(className: string, propertyName: string): void; static removeAllProperties(className: string): void; static addClass(className: string, parentClassName: string): void; static getProperties(className: string): Array<any>; static createProperties(obj: any): void; private static createPropertiesCore; private static createPropertiesInObj; private static createPropertyInObj; private static checkIsPropertyExists; } export declare class JsonMetadataClass { name: string; creator: (json?: any) => any; parentName: string; static requiredSymbol: string; static typeSymbol: string; properties: Array<JsonObjectProperty>; private isCustomValue; private allProperties; private requiredProperties; private hashProperties; constructor(name: string, properties: Array<any>, creator?: (json?: any) => any, parentName?: string); find(name: string): JsonObjectProperty; findProperty(name: string): JsonObjectProperty; getAllProperties(): Array<JsonObjectProperty>; getRequiredProperties(): Array<JsonObjectProperty>; resetAllProperties(): void; get isCustom(): boolean; private fillAllProperties; private addPropCore; private isOverridedProp; private hasRegularChildClass; private makeParentRegularClass; createProperty(propInfo: any, isCustom?: boolean): JsonObjectProperty; private addDependsOnProperties; private addDependsOnProperty; private getIsPropertyNameRequired; private getPropertyName; } /** * The metadata object. It contains object properties' runtime information and allows you to modify it. */ export declare class JsonMetadata { private classes; private alternativeNames; private childrenClasses; private dynamicPropsCache; onSerializingProperty: ((obj: Base, prop: JsonObjectProperty, value: any, json: any) => boolean) | undefined; getObjPropertyValue(obj: any, name: string): any; setObjPropertyValue(obj: any, name: string, val: any): void; private getObjPropertyValueCore; private isObjWrapper; private isNeedUseObjWrapper; addClass(name: string, properties: Array<IJsonPropertyInfo | string>, creator?: (json?: any) => any, parentName?: string): JsonMetadataClass; removeClass(name: string): void; overrideClassCreatore(name: string, creator: () => any): void; overrideClassCreator(name: string, creator: () => any): void; getProperties(className: string): Array<JsonObjectProperty>; getPropertiesByObj(obj: any): Array<JsonObjectProperty>; addDynamicPropertiesIntoObj(dest: any, src: any, props: Array<JsonObjectProperty>): void; private addDynamicPropertyIntoObj; getDynamicPropertiesByObj(obj: any, dynamicType?: string): Array<JsonObjectProperty>; getDynamicPropertiesByTypes(objType: string, dynamicType: string, invalidNames?: Array<string>): Array<JsonObjectProperty>; private canAddDybamicProp; hasOriginalProperty(obj: Base, propName: string): boolean; getOriginalProperty(obj: Base, propName: string): JsonObjectProperty; getProperty(className: string, propertyName: string): JsonObjectProperty; findProperty(className: string, propertyName: string): JsonObjectProperty; findProperties(className: string, propertyNames: Array<string>): Array<JsonObjectProperty>; getAllPropertiesByName(propertyName: string): Array<JsonObjectProperty>; getAllClasses(): Array<string>; createClass(name: string, json?: any): any; private createCustomType; getChildrenClasses(name: string, canBeCreated?: boolean): Array<JsonMetadataClass>; getRequiredProperties(name: string): Array<string>; addProperties(className: string, propertiesInfos: Array<IJsonPropertyInfo | string>): void; addProperty(className: string, propertyInfo: IJsonPropertyInfo | string): JsonObjectProperty; private addCustomPropertyCore; removeProperty(className: string, propertyName: string): boolean; private clearDynamicPropsCache; private removePropertyFromClass; private fillChildrenClasses; findClass(name: string): JsonMetadataClass; isDescendantOf(className: string, ancestorClassName: string): boolean; addAlterNativeClassName(name: string, alternativeName: string): void; generateSchema(className?: string): any; private generateLocStrClass; private generateSchemaProperties; private generateSchemaProperty; private getChemeRefName; private generateChemaClass; private getChoicesValues; } export declare class JsonError { type: string; message: string; description: string; at: number; end: number; jsonObj: any; element: Base; constructor(type: string, message: string); getFullDescription(): string; } export declare class JsonUnknownPropertyError extends JsonError { propertyName: string; className: string; constructor(propertyName: string, className: string); } export declare class JsonMissingTypeErrorBase extends JsonError { baseClassName: string; type: string; message: string; constructor(baseClassName: string, type: string, message: string); } export declare class JsonMissingTypeError extends JsonMissingTypeErrorBase { propertyName: string; baseClassName: string; constructor(propertyName: string, baseClassName: string); } export declare class JsonIncorrectTypeError extends JsonMissingTypeErrorBase { propertyName: string; baseClassName: string; constructor(propertyName: string, baseClassName: string); } export declare class JsonRequiredPropertyError extends JsonError { propertyName: string; className: string; constructor(propertyName: string, className: string); } export declare class JsonRequiredArrayPropertyError extends JsonError { propertyName: string; className: string; constructor(propertyName: string, className: string); } export declare class JsonIncorrectPropertyValueError extends JsonError { property: JsonObjectProperty; value: any; constructor(property: JsonObjectProperty, value: any); } export declare class JsonObject { private static typePropertyName; private static positionPropertyName; private static metaDataValue; static get metaData(): JsonMetadata; errors: JsonError[]; lightSerializing: boolean; options: ILoadFromJSONOptions; toJsonObject(obj: any, options?: ISaveToJSONOptions | boolean): any; toObject(jsonObj: any, obj: any, options?: ILoadFromJSONOptions): void; toObjectCore(jsonObj: any, obj: any, options?: ILoadFromJSONOptions): void; private setPropertyValueToObj; toJsonObjectCore(obj: any, property: JsonObjectProperty, options?: ISaveToJSONOptions | boolean): any; private getDynamicProperties; private addDynamicProperties; private propertiesToJson; valueToJson(obj: any, result: any, prop: JsonObjectProperty, options?: ISaveToJSONOptions): void; private valueToJsonCore; valueToObj(value: any, obj: any, property: JsonObjectProperty, jsonObj?: any, options?: ILoadFromJSONOptions): void; private removePosOnValueToJson; private removePos; private removePosFromObj; private isValueArray; private createNewObj; private getClassNameForNewObj; private checkNewObjectOnErrors; private getRequiredError; private addNewError; private valueToArray; private addValuesIntoArray; private findProperty; } /** * An alias for the metadata object. It contains object properties' runtime information and allows you to modify it. * @see JsonMetadata */ export declare var Serializer: JsonMetadata;