85 lines
2.8 KiB
Plaintext
85 lines
2.8 KiB
Plaintext
const reasonsBaseProperties = {
|
|
hide: {
|
|
type: 'boolean',
|
|
default: false,
|
|
},
|
|
component: {
|
|
type: 'string',
|
|
enum: ['radio', 'checkbox'],
|
|
default: 'checkbox',
|
|
},
|
|
label: { type: 'string' },
|
|
items: { type: 'array', items: { type: 'string' } },
|
|
};
|
|
export const reasonsSettings = {
|
|
type: 'object',
|
|
properties: reasonsBaseProperties,
|
|
additionalProperties: false,
|
|
};
|
|
export const optionalEmailSettings = {
|
|
type: 'object',
|
|
properties: {
|
|
hide: {
|
|
type: 'boolean',
|
|
default: false,
|
|
},
|
|
label: { type: 'string' },
|
|
placeholder: { type: 'string' },
|
|
},
|
|
additionalProperties: false,
|
|
};
|
|
export const feedbackConfigSchema = {
|
|
type: 'object',
|
|
properties: {
|
|
hide: {
|
|
type: 'boolean',
|
|
default: false,
|
|
},
|
|
type: {
|
|
type: 'string',
|
|
enum: ['rating', 'sentiment', 'comment', 'reasons', 'mood', 'scale'],
|
|
default: 'sentiment',
|
|
},
|
|
settings: {
|
|
type: 'object',
|
|
properties: {
|
|
label: { type: 'string' },
|
|
submitText: { type: 'string' },
|
|
buttonText: { type: 'string' },
|
|
component: {
|
|
type: 'string',
|
|
enum: ['radio', 'checkbox'],
|
|
default: 'checkbox',
|
|
},
|
|
items: { type: 'array', items: { type: 'string' }, minItems: 1 },
|
|
leftScaleLabel: { type: 'string' },
|
|
rightScaleLabel: { type: 'string' },
|
|
reasons: {
|
|
type: 'object',
|
|
properties: Object.assign(Object.assign({}, reasonsBaseProperties), { like: reasonsSettings, dislike: reasonsSettings, satisfied: reasonsSettings, neutral: reasonsSettings, dissatisfied: reasonsSettings }),
|
|
additionalProperties: false,
|
|
},
|
|
comment: {
|
|
type: 'object',
|
|
properties: {
|
|
hide: {
|
|
type: 'boolean',
|
|
default: false,
|
|
},
|
|
label: { type: 'string' },
|
|
likeLabel: { type: 'string' },
|
|
dislikeLabel: { type: 'string' },
|
|
satisfiedLabel: { type: 'string' },
|
|
neutralLabel: { type: 'string' },
|
|
dissatisfiedLabel: { type: 'string' },
|
|
},
|
|
additionalProperties: false,
|
|
},
|
|
optionalEmail: optionalEmailSettings,
|
|
},
|
|
additionalProperties: false,
|
|
},
|
|
},
|
|
additionalProperties: false,
|
|
};
|
|
//# sourceMappingURL=feedback-config-schema.js.map |