PageSourceSearch

https://www.setster.com/docs/assets/js/560f8430.cbabcd11.js

js setster.com collected 2026-10-03 20:24:57 UTC 45,781 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkdeveloper_portal=self.webpackChunkdeveloper_portal||[]).push([[6471],{57931:e=>{e.exports=JSON.parse('{"url":"redocusaurus/oas-spec-1-1-0-alpha.yaml","themeId":"theme-redoc","isSpecFile":true,"spec":{"openapi":"3.1","info":{"version":"2.0","title":"Setster Scheduling API","description":"The Setster API is used to control your account\u2019s data programmatically. The API is organized around REST and standard HTTP verbs. A consistent envelope is used for all responses alongside response codes to indicate the status of the message and any error codes. JSON is returned on all our API responses with a consistent structure for all messages."},"paths":{},"components":{"schemas":{"IEmbedHeight":{"description":"The fixed pixel height you want your embed to be when it\'s embedded into your website.","title":"EmbedHeight","type":"object","properties":{"mobile":{"description":"Embed height on mobile","examples":["480px"],"type":"string"},"tablet":{"description":"Embed height on tablet","examples":["680px"],"type":"string"},"desktop":{"description":"Embed height on desktop","examples":["800px"],"type":"string"}},"propertyOrder":["mobile","tablet","desktop"],"required":["desktop","mobile","tablet"]},"IBreakpoints":{"description":"The fixed pixel maximum width you want your embed to be when it\'s embedded into your website.","title":"EmbedWidth","type":"object","properties":{"mobile":{"description":"Embed width on mobile","examples":[480],"type":"integer"},"tablet":{"description":"Embed width on tablet","type":"integer","examples":[680]},"desktop":{"description":"Embed width on desktop","type":"integer","examples":[800]}},"propertyOrder":["mobile","tablet","desktop"],"required":["desktop","mobile","tablet"]},"AppState.ISteps":{"description":"This is where all content will reside. Each step type provides a distinct user experience with some directly tied to appointment booking.","title":"Steps","type":"object","additionalProperties":{"$ref":"#/components/schemas/AppState.IStep"},"propertyOrder":[],"properties":{}},"AppState.IStep":{"title":"Step","anyOf":[{"$ref":"#/components/schemas/AppState.IStepAppointment"},{"$ref":"#/components/schemas/AppState.IStepThankYou"},{"$ref":"#/components/schemas/AppState.IStepCancel"},{"$ref":"#/components/schemas/AppState.IStepQuestions"},{"$ref":"#/components/schemas/AppState.IStepInfo"},{"$ref":"#/components/schemas/AppState.IStepImageMap"},{"$ref":"#/components/schemas/AppState.IStepLocations"},{"$ref":"#/components/schemas/AppState.IStepServices"},{"$ref":"#/components/schemas/AppState.IStepStaff"},{"$ref":"#/components/schemas/AppState.IStepSingleSelect"},{"$ref":"#/components/schemas/AppState.IStepMultiSelect"},{"$ref":"#/components/schemas/AppState.IStepAvailability"}]},"AppState.IStepAppointment":{"title":"Appointment","examples":[{"submit_form_step":{"title":"Submit your appointment","type":"booking","model":"appointment","callback":"processAppointment"}}],"type":"object","properties":{"model":{"type":"string","const":"appointment"},"callback":{"description":"Allows a custom callback function to be run after the appointment has been submitted. This callback function must be appended to the `window` with the same name provided in the settings file. The app will pass the appointment information to your custom function.","type":"string"},"reschedule_title":{"description":"The main title that appears on the appointment selection step when the user starts the reschedule flow.","examples":["Select New Appointment"],"type":"string"},"reschedule_success_message":{"description":"The success message that appears after an appointment has been successfuly rescheduled.","examples":["Your appointment has been successfully rescheduled"],"type":"string"},"summary":{"description":"Set to a key value of a summary previously configured in in the `summaries` object. Determines if the selected value for the step shows in the appointment summary view before booking an appointment.","examples":["appointment-details"],"type":"string"},"type":{"type":"string","const":"booking"},"dialogue_title":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["Select a date and time","What is your favorite color?","Choose a product type"],"type":"string"},"dialogue_instructions":{"type":"string"},"disable_images":{"description":"Hides images from appointment related lists of options that are pulled from the Setster API automatically.","type":"boolean"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"}
1,"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"},"layout":{"$ref":"#/components/schemas/AppState.ILayout"}},"propertyOrder":["model","callback","reschedule_title","reschedule_success_message","summary","type","dialogue_title","dialogue_instructions","disable_images","title","subtitle","can_skip","class","background_image","layout"],"required":["model","type"]},"AppState.ILayout":{"description":"There are two available layouts for single select steps; cards and list. The cards layout consists of selectable retangular cards that are displayed in a single row grid format. Navigating between card options is handled by a horizontal carousel. <br/>Cards contain text and/or images. The list layout is a list of selectable items with a vertical scroll. List items may also contain text and/or images. The list layout is better suited for smaller images such as icons while the cards layout is better suited to larger images.","title":"Layout","enum":["cards","list"],"type":"string"},"AppState.IStepThankYou":{"description":"The very last step in a logic flow after the appointment is has already been submitted. This step is typically used to thank the user for their submission or to direct them to book another appointment.","title":"ThankYou","examples":[{"finish_step":{"title":"Thank You Step","button":{"text":"Finish Button","show":true},"type":"thank-you"}}],"type":"object","properties":{"type":{"type":"string","const":"thank-you"},"button":{"$ref":"#/components/schemas/AppState.ThankYouButton"},"callback":{"description":"Allows a custom callback function to be run after the thank you step\'s button has been clicked indicating the user has finished the form flow. This callback function must be appended to the `window` with the same name provided in the settings file. The app will pass the user\'s entered information to your custom function.","examples":["processAppointment"],"type":"string"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"},"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"},"layout":{"$ref":"#/components/schemas/AppState.ILayout"}},"propertyOrder":["type","button","callback","title","subtitle","can_skip","class","background_image","layout","summary"],"required":["type"]},"AppState.ThankYouButton":{"title":"ThankYouButton","type":"object","properties":{"text":{"description":"The text that will show on the button in the thank you step","examples":["Book Another Appointment","Finish"],"type":"string"},"show":{"description":"Whether or not to show the button","examples":[false],"type":"boolean"},"redirectUrl":{"description":"Where to redirect the user to after they\'ve submitted the thank you button","type":"string"}},"propertyOrder":["text","show","redirectUrl"],"required":["text"]},"AppState.IStepCancel":{"description":"Used to process appointment cancellations. This step is required for appointment booking embeds so that users can modify their appointments.","examples":[{"cancel_step":{"title":"Cancel appointment","type":"booking","model":"cancel-appointment","callback":"processAppointment"}}],"title":"Cancel","type":"object","properties":{"model":{"type":"string","const":"cancel-appointment"},"button_text":{"description":"The text on the button in the cancel flow","type":"string"},"reason_label":{"description":"The label describing the input field that allows the user to leave a reason as to why they are canceling their appointment.","type":"string"},"reason_placeholder":{"description":"Placeholder text in the cancellation reason input text box.","type":"string"},"success_message":{"description":"The message that is displayed to the user after they\'ve successfully canceled their appointment.","type":"string"},"callback":{"type":"string"},"type":{"type":"string","const":"booking"},"dialogue_title":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["Select a date and time","What is your favorite color?","Choose a product type"],"type":"string"},"dialogue_instructions":{"type":"string"},"disable_images":{"description":"Hides images from appointment related lists of options that are pulled from the Setster API automatically.","type":"boolean"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"}
1,"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"},"layout":{"$ref":"#/components/schemas/AppState.ILayout"}},"propertyOrder":["model","button_text","reason_label","reason_placeholder","success_message","callback","type","dialogue_title","dialogue_instructions","disable_images","title","subtitle","can_skip","class","background_image","layout","summary"],"required":["model","type"]},"AppState.IStepQuestions":{"description":"This is a question step.","examples":[{"questions_step":{"title":"This is a Question Step","dialogue_title":"It\'s used to provide more context to users","type":"questions","inquiries":[{"title":"This is a Title","description":"This is a description"},{"title":"Question Steps Offer Longer Explanations","description":"Question steps allow you to provided textual explainations for better informed user selections."},{"title":"Action Oriented Button Responses","description":"Question steps include buttons with text for a more action oriented response."}],"responses":[{"title":"Go Back","value":"Looks Great!"},{"title":"See All Step Types","value":"All Types"}]}}],"title":"Question","type":"object","properties":{"type":{"type":"string","const":"questions"},"inquiries":{"type":"array","items":{"$ref":"#/components/schemas/AppState.IQuestionsInquiry"}},"responses":{"type":"array","items":{"$ref":"#/components/schemas/AppState.IQuestionsResponse"}},"dialogue_title":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["What is your favorite color?","Choose a product type"],"type":"string"},"dialogue_instructions":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["Select which one you like best","Enter your selection below"],"type":"string"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"},"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"},"layout":{"$ref":"#/components/schemas/AppState.ILayout"}},"propertyOrder":["type","inquiries","responses","dialogue_title","dialogue_instructions","title","subtitle","can_skip","class","background_image","layout","summary"],"required":["type"]},"AppState.IQuestionsInquiry":{"title":"QuestionsInquiry","type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"img":{"type":"string"}},"propertyOrder":["title","description","img"],"required":["title"]},"AppState.IQuestionsResponse":{"title":"QuestionsResponse","type":"object","properties":{"title":{"type":"string"},"value":{"type":["string","number"]}},"propertyOrder":["title","value"],"required":["title","value"]},"AppState.IStepInfo":{"description":"The info step is a transitional step with 
1not answer selection and is solely informationl.","examples":[{"can_skip":true,"class":"My-Info-Step-Custom-Class-Name","description":"Hey there! Welcome to our quiz.","img":"mockup.png","subtitle":"Setster Product Survey","title":"Welcome","type":"info"}],"title":"Info","type":"object","properties":{"type":{"type":"string","const":"info"},"description":{"type":"string"},"img":{"type":"string"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"},"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"},"layout":{"$ref":"#/components/schemas/AppState.ILayout"}},"propertyOrder":["type","description","img","title","subtitle","can_skip","class","background_image","layout","summary"],"required":["type"]},"AppState.IStepImageMap":{"description":"Clickable regions overlaid on an image","examples":[{"image_map":{"title":"Image map step","type":"image-map","mappings":{"img":"https://mir-s3-cdn-cf.behance.net/project_modules/disp/b9596913058655.562705dd8cdb3.jpg","width":600,"imgWidth":600,"strokeColor":"green","areas":[{"_id":1,"name":"parking space 1","shape":"poly","coords":[36,251,36,293,74,282,72,241],"value":"suit","preFillColor":"rgba(212, 238, 159, 0.2)","fillColor":"rgba(88, 42, 114, 0.8)","customData":"Front"},{"_id":2,"name":"parking space 2","shape":"poly","coords":[111,230,147,220,154,261,116,271],"value":"parking space 2","preFillColor":"rgba(212, 238, 159, 0.2)","fillColor":"rgba(88, 42, 114, 0.8)","customData":"Front"},{"_id":3,"name":"parking space 3","shape":"poly","coords":[147,220,154,260,190,250,180,211],"value":"parking space 3","preFillColor":"rgba(212, 238, 159, 0.2)","fillColor":"rgba(88, 42, 114, 0.8)","customData":"Back"},{"_id":4,"name":"parking space 4","shape":"poly","coords":[215,201,227,240,260,230,246,193],"value":"parking space 4","preFillColor":"rgba(212, 238, 159, 0.2)","fillColor":"rgba(88, 42, 114, 0.8)","customData":"Back"},{"_id":5,"name":"parking space 5","shape":"poly","coords":[308,176,336,168,355,203,327,212],"value":"parking space 5","preFillColor":"rgba(212, 238, 159, 0.2)","fillColor":"rgba(88, 42, 114, 0.8)","customData":"Side"}]}}}],"title":"ImageMap","type":"object","properties":{"type":{"type":"string","const":"image-map"},"mappings":{"$ref":"#/components/schemas/AppState.IMappings"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"},"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"},"layout":{"$ref":"#/components/schemas/AppState.ILayout"}},"propertyOrder":["type","message","mappings","title","subtitle","can_skip","class","background_image","layout","summary"],"required":["type"]},"AppState.IMappings":{"title":"Mappings","type":"object","properties":{"img":{"type":"string"},"width":{"type":"number"},"img_width":{"type":"number"},"stroke_color":{"type":"string"},"areas":{"type":"array","items":{"$ref":"#/components/schemas/AppState.IMappingsAreas"}}},"propertyOrder":["img","width","img_width","stroke_color","areas"],"required":["areas","img","width"]},"AppState.IMappingsAreas":{"title":"MappingsAreas","type":"object","properties":{"_id":{"type":"number"},"pre_fill_color":{"type":"string"},"fill_color":{"type":"string"},"custom_data":{"type":"string"},"name":{"type":"string"},"shape":{"enum":["circle","poly","rect"],"type":"string"},"coords":{"type":"array","items":{"type":"number"}},"value":{"type":["string","number"]}},"propertyOrder":["_id","pre_fill_color","fill_color","custom_data","name","shape","coords","value"],"required":["_id","coords","name","shape"]},"AppState.IStepLocations":{"description":"The appointment or meeting location selection step.","examples":[{"locations_step":{"title":"Locations","dialogue_title":"Select a location","type":"booking","model":"locations","layout":"list","style":"classic"}}],"title":"Locations","type":"object","properties":{"model":{"type":"string","const":"locations"},"layout":{"title":"LocationsLayout","type":"string","const":"list"},"style":{"$ref":"#/components/schemas/AppState.IListItemsLayout"},"type":{"type":"string","const":"booking"},"dialogue_title":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["Select a date and time","What is your favorite color?","Choose a product type"],"type":"string"},"dialogue_instructions":{"type":"string"},"disable_images":{"description":"Hides images from appointment related lists of options that are pulled from the Setster API automatically.","type":"boolean"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"}
1,"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"}},"propertyOrder":["model","layout","style","single_sub_item_select","autoselect_single_subitem","type","dialogue_title","dialogue_instructions","disable_images","title","subtitle","can_skip","class","background_image","summary"],"required":["model","type"]},"AppState.IListItemsLayout":{"title":"ListStyle","enum":["classic","modern"],"type":"string"},"AppState.IStepServices":{"description":"The list of services you\'ve created on your Setster account that are available for appointment bookings.","examples":[{"services_step":{"title":"Services Step","dialogue_title":"Step Dialogue Instructions","type":"booking","model":"services","style":"classic"}}],"title":"Services","type":"object","properties":{"model":{"type":"string","const":"services"},"layout":{"title":"ListLayout","type":"string","const":"list"},"style":{"$ref":"#/components/schemas/AppState.IListItemsLayout"},"step_sub_items_subtitle":{"description":"The subtitle that\'s shown below the title for sub-service lists. Only used for the booking services model for services that have sub-services (aka addons).","type":"string"},"step_sub_items_title":{"description":"The main title on sub-service lists. Only used for the booking services model for services that have sub-services (aka addons).","type":"string"},"single_sub_item_select":{"description":"Limits the number of items or subservices users can select from a sublist of services for the services booking model to one.","type":"boolean"},"autoselect_single_subitem":{"description":"Only used for the booking services model. If set to true it will skip the sub-services selection step if there is only one available.","type":"boolean"},"type":{"type":"string","const":"booking"},"dialogue_title":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["Select a date and time","What is your favorite color?","Choose a product type"],"type":"string"},"dialogue_instructions":{"type":"string"},"disable_images":{"description":"Hides images from appointment related lists of options that are pulled from the Setster API automatically.","type":"boolean"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"},"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"}},"propertyOrder":["model","layout","style","step_sub_items_subtitle","step_sub_items_title","single_sub_item_select","autoselect_single_subitem","type","dialogue_title","dialogue_instructions","disable_images","title","subtitle","can_skip","class","background_image","summary"],"required":["model","type"]},"AppState.IStepStaff":{"description":"The employee or staff member selection step for choosing who the user will be meeting with for their appointment.","examples":[{"staff_step":{"title":"Staff Step","dialogue_title":"Step Dialogue Instructions","type":"booking","model":"staff"}}],"title":"Staff","type":"object","properties":{"model":{"type":"string","const":"staff"},"layout":{"title":"ListLayout","type":"string","const":"list"},"style":{"$ref":"#/components/schemas/AppState.IListItemsLayout"},"type":{"type":"string","const":"booking"},"dialogue_title":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["Select a date and time","What is your favorite color?","Choose a product type"],"type":"string"},"dialogue_instructions":{"type":"string"},"disable_images":{"description":"Hides images from appointment related lists of options that are pulled from the Setster API automatically.","type":"boolean"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"}
1,"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"}},"propertyOrder":["model","layout","style","single_sub_item_select","autoselect_single_subitem","type","dialogue_title","dialogue_instructions","disable_images","title","subtitle","can_skip","class","background_image","summary"],"required":["model","type"]},"AppState.IStepSingleSelect":{"description":"The single select step allows users to select a single item as their response.","examples":[{"single_list_classic_step":{"title":"Single-Select List Step","class":"custom-class","dialogue_title":"This is an Classic Items Layout","type":"single-select","layout":"list","style":"classic","can_skip":true,"items":[{"title":"Classic List Item One","description":"Item One Details","img":"mockup1.jpeg","img_hover":"mockup-hover.png","value":"List One Value"},{"title":"Classic List Item Two","description":"Item Two Details","img":"mockup1.jpeg","img_hover":"mockup-hover.png","value":"List Two Value"},{"title":"Classic List Item Three","description":"Item Three Details","img":"mockup1.jpeg","img_hover":"mockup-hover.png","value":"List Three Value"},{"title":"Classic List Item Four","description":"Item Four Details","img":"mockup1.jpeg","img_hover":"mockup-hover.png","value":"List Four Value"},{"title":"Classic List Item Five","description":"Item Five Details","img":"mockup1.jpeg","img_hover":"mockup-hover.png","value":"List Five Value"}]}}],"title":"SingleSelect","type":"object","properties":{"type":{"type":"string","const":"single-select"},"style":{"$ref":"#/components/schemas/AppState.ISelectItemsLayout"},"items":{"type":"array","items":{"$ref":"#/components/schemas/AppState.ISelectItem"}},"cards_to_show":{"description":"The number of cards to show in the carousel. (only applies to the \'cards\' layout)","type":"number"},"cards_to_scroll":{"description":"The number of cards to move on each carousel arrow click","type":"number"},"max_width":{"description":"This overrides the embed wide width maximums (only applies to the \'cards\' layout)","type":"number"},"layout":{"$ref":"#/components/schemas/AppState.ILayout","description":"There are two available layouts for single select steps; cards and list. The cards layout consists of selectable retangular cards that are displayed in a single row grid format. Navigating between card options is handled by a horizontal carousel. <br/>Cards contain text and/or images. The list layout is a list of selectable items with a vertical scroll. List items may also contain text and/or images. The list layout is better suited for smaller images such as icons while the cards layout is better suited to larger images."},"dialogue_title":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["What is your favorite color?","Choose a product type"],"type":"string"},"dialogue_instructions":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["Select which one you like best","Enter your selection below"],"type":"string"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"},"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"}},"propertyOrder":["type","style","items","cards_to_show","cards_to_scroll","max_width","layout","dialogue_title","dialogue_instructions","single_sub_item_select","autoselect_single_subitem","title","subtitle","can_skip","class","background_image","summary"],"required":["items","layout","type"]},"AppState.ISelectItemsLayout":{"title":"SelectStyle","enum":["classic","modern"],"type":"string"},"AppState.ISelectItem":{"title":"SelectItem","type":"object","properties":{"title":{"description":"If there is no image defined for the item the title will be the first content shown on the selectable component.","examples":["Chocolate"],"type":"string"},"description":{"description":"The description is the lowest priority content and will be truncated with an ellipsis if the text is too lengthy.","examples":["Dark"],"type":"string"},"img":{"description":"If provided, the image is the first content to appear on a selectable item. The `img` property is either a relative path to the image asset or a url.","examples":["darkChocolate-light-background.jpeg"],"type":"string"},"img_hover":{"description":"The image the shows on mouse hover that\'s either a relative path to the image asset or a url.","examples":["darkChocolate-dark-backgroun.jpeg"],"type":"string"},"value":{"description":"The `value` property stores hidden data based on user selections. When a user selects an item from the `items`, the selection values can either be sent to the database or used in conditional Flow 
1Logic.","examples":["selected_dark_chocolate"],"type":"string"},"filter_priority":{"description":"If provided, the image is the first content to appear on a selectable component. The `img` property is either a relative image url path to the image asset or a url.","examples":["darkChocolate.jpeg"],"type":"boolean"},"is_reset_item":{"description":"Clears all previously selected values from a multi-select step. This is particularly useful for an \\"All of the Above\\" item.","title":"ResetItem","type":"boolean"}},"propertyOrder":["title","description","img","img_hover","value","filter_priority","service_id","staff_id","location_id","is_reset_item"]},"AppState.IStepMultiSelect":{"description":"The multi select step","examples":[{"multi_card_classic_step":{"title":"Multi-Select Card Step","class":"custom-class","dialogue_title":"This is a Classic Items Layout","type":"multi-select","layout":"cards","style":"classic","can_skip":false,"items":[{"title":"Classic Card One","description":"Card One Details","img":"mockup1.jpeg","img_hover":"mockup-hover.png","value":"Card One Value"},{"title":"Classic Card Two","description":"Card Two Details","img":"mockup1.jpeg","img_hover":"mockup-hover.png","value":"Card Two Value"},{"title":"Classic Card Three","description":"Card Three Details","img":"mockup1.jpeg","img_hover":"mockup-hover.png","value":"Card Three Value"},{"title":"Classic Card Four","description":"Card Four Details","img":"mockup1.jpeg","img_hover":"mockup-hover.png","value":"Card Four Value"},{"title":"Classic Card Five","description":"Card Five Details","img":"mockup1.jpeg","img_hover":"mockup-hover.png","value":"Card Five Value"}]}}],"title":"MultiSelect","type":"object","properties":{"type":{"type":"string","const":"multi-select"},"style":{"$ref":"#/components/schemas/AppState.ISelectItemsLayout"},"items":{"type":"array","items":{"$ref":"#/components/schemas/AppState.ISelectItem"}},"cards_to_show":{"description":"The number of cards to show in the carousel","type":"number"},"cards_to_scroll":{"description":"The number of cards to move on each carousel arrow click","type":"number"},"max_width":{"description":"This overrides the embed wide width maximums","type":"number"},"layout":{"$ref":"#/components/schemas/AppState.ILayout","description":"There are two available layouts for single select steps; cards and list. The cards layout consists of selectable retangular cards that are displayed in a single row grid format. Navigating between card options is handled by a horizontal carousel. <br/>Cards contain text and/or images. The list layout is a list of selectable items with a vertical scroll. List items may also contain text and/or images. The list layout is better suited for smaller images such as icons while the cards layout is better suited to larger images."},"dialogue_title":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["What is your favorite color?","Choose a product type"],"type":"string"},"dialogue_instructions":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["Select which one you like best","Enter your selection below"],"type":"string"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"},"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"}},"propertyOrder":["type","style","items","cards_to_show","cards_to_scroll","max_width","layout","dialogue_title","dialogue_instructions","single_sub_item_select","autoselect_single_subitem","title","subtitle","can_skip","class","background_image","summary"],"required":["items","layout","type"]},"AppState.IStepAvailability":{"description":"The availability step is where the user selects a date and time for their meeting.","examples":[{"title":"Select meeting time","type":"booking","model":"availability","first_day_of_week":"monday","months_in_past_enabled":false}],"title":"Availability","type":"object","properties":{"model":{"type":"string","const":"availability"}
1,"first_day_of_week":{"enum":["friday","monday","saturday","sunday","thursday","tuesday","wednesday"],"type":"string"},"months_in_past_enabled":{"type":"boolean"},"client_timezone_selection":{"enum":["auto","off","on"],"type":"string"},"time_format":{"enum":[12,24],"type":"number"},"type":{"type":"string","const":"booking"},"dialogue_title":{"description":"The dialogue title is the instructions or question text content for a given step.","examples":["Select a date and time","What is your favorite color?","Choose a product type"],"type":"string"},"dialogue_instructions":{"type":"string"},"disable_images":{"description":"Hides images from appointment related lists of options that are pulled from the Setster API automatically.","type":"boolean"},"title":{"description":"The title of the step which is the first text content on the top of the step view. The title should describe the current step in a short and concise way.","examples":["The Current Step Title"],"type":"string"},"can_skip":{"description":"When set to false the step is required to be answered before moving on to the next step. When set to true the user can skip answering the step.","examples":[true],"type":"boolean"},"class":{"description":"Adds a custom CSS class name to the step to allow for easy CSS selection and modifications at the step level.","examples":["color-selection-step"],"type":"string"},"layout":{"$ref":"#/components/schemas/AppState.ILayout"}},"propertyOrder":["model","first_day_of_week","months_in_past_enabled","client_timezone_selection","time_format","type","dialogue_title","dialogue_instructions","disable_images","title","subtitle","can_skip","class","background_image","layout","summary"],"required":["model","type"]},"AppState.IFlow":{"description":"This is the logic for your form steps where you can conditionally jump to other steps based on highly customizable rules.","title":"Flow","type":"object","properties":{"normal":{"$ref":"#/components/schemas/AppState.IFlowItemGroup"},"cancel":{"$ref":"#/components/schemas/AppState.IFlowItemGroup"},"reschedule":{"$ref":"#/components/schemas/AppState.IFlowItemGroup"}},"propertyOrder":["normal","cancel","reschedule"],"required":["normal"]},"AppState.IFlowItemGroup":{"title":"FlowItemGroup","type":"object","additionalProperties":{"$ref":"#/components/schemas/AppState.IFlowItem"},"propertyOrder":[],"properties":{}},"AppState.IFlowItem":{"title":"FlowItem","type":"object","properties":{"actions":{"type":"array","items":{"$ref":"#/components/schemas/AppState.IFlowItemActions"}},"filters":{"title":"FlowItemFilters","type":"object","properties":{"all":{"type":"array","items":{"$ref":"#/components/schemas/AppState.FilterType"}},"any":{"type":"array","items":{"$ref":"#/components/schemas/AppState.FilterType"}}},"propertyOrder":["all","any"]}},"propertyOrder":["actions","filters"],"required":["actions"]},"AppState.IFlowItemActions":{"title":"FlowItemActions","type":"object","properties":{"next":{"type":"string"},"condition":{"$ref":"#/components/schemas/AppState.IFlowItemActionsCondition"}},"propertyOrder":["next","condition"],"required":["next"]},"AppState.IFlowItemActionsCondition":{"title":"FlowItemActionsCondition","type":"object","properties":{"step":{"type":["string","number"]},"op":{"enum":["all_of","any_of"],"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"propertyOrder":["step","op","values"],"required":["op","values"]},"AppState.FilterType":{"title":"FilterType","type":"object","properties":{"where":{"enum":["account_id","id","location_links","name","ord","photo","photo_absolute_url","photo_thumb_absolute_url"],"type":"string"},"contains":{"type":"string"},"equals":{"type":"string"},"when":{"anyOf":[{"$ref":"#/components/schemas/AppState.filterWhen"},{"type":"array","items":{"$ref":"#/components/schemas/AppState.filterWhen"}}]},"all":{"type":"array","items":{"$ref":"#/components/schemas/AppState.IFlowItemFilter<ILocationInterface|IServiceInterface|IStaffInterface>"}},"any":{"type":"array","items":{"$ref":"#/components/schemas/AppState.IFlowItemFilter<ILocationInterface|IServiceInterface|IStaffInterface>"}}},"propertyOrder":["where","contains","equals","when","all","any"],"required":["where"]},"AppState.filterWhen":{"title":"filterWhen","type":"object","additionalProperties":{"type":["string","number"]},"propertyOrder":[],"properties":{}},"AppState.IFlowItemFilter<ILocationInterface|IServiceInterface|IStaffInterface>":{"title":"FlowItemFilter","type":"object","properties":{"where":{"enum":["account_id","id","location_links","name","ord","photo","photo_absolute_url","photo_thumb_absolute_url"],"type":"string"},"contains":{"type":"string"},"equals":{"type":"string"},"when":{"anyOf":[{"$ref":"#/components/schemas/AppState.filterWhen"},{"type":"array","items":{"$ref":"#/components/schemas/AppState.filterWhen"}}]},"all":{"type":"array","items":{"$ref":"#/components/schemas/AppState.IFlowItemFilter<ILocationInterface|IServiceInterface|IStaffInterface>"}},"any":{"type":"array","items":{"$ref":"#/components/schemas/AppState.IFlowItemFilter<ILocationInterface|IServiceInterface|IStaffInterface>"}}},"propertyOrder":["where","contains","equals","when","all","any"],"required":["where"]},"IMeta":{"description":"The input details you would like to save to our database for future retrieval. Input values that are not included in the meta would not be accessible in the future when retrieving a client\'s appointment record and will not be saved.","title":"Meta","examples":[{"normal":{"user_journey":"clicked-promo-email"},"cancel":{"user_journey":"clicked-promo-email"}}],"type":"object","properties":{"normal":{"$ref":"#/components/schemas/IMetaItem","examples":[{"normal":{"support_id":"2384273R908239847"}}]},"cancel":{"$ref":"#/components/schemas/IMetaItem","examples":[{"cancel":{"support_id":"2384273R908239847"}}]},"reschedule":{"$ref":"#/components/schemas/IMetaItem","examples":[{"reschedule":{"support_id":"2384273R908239847"}}]}},"propertyOrder":["normal","cancel","reschedule"],"required":["normal"]},"IMetaItem":{"title":"MetaItem","type":"object","additionalProperties":{"type":"string"},"propertyOrder":[],"properties":{}}
1,"ISummaries":{"description":"Summaries are used to display the values that the user had previously answered in each step throughout the entire form flow. The content of this step will show alongside the appointment booking details form step.","examples":[{"appointment-details":{"title":"Review Your Appointment Details","items":[{"step":"preference","label":"Preference"},{"step":"locations_step","label":"Location","icon":"map-pin","value":"{{name}}"},{"step":"locations_step","label":"Address","icon":"map-pin","value":"Full address: {{street1}}, {{street2}} {{city}}, {{country}}"},{"step":"services_step","label":"What","icon":"package","value":"{{name}}"},{"step":"staff_step","label":"Who","icon":"user","value":"{{name}}"},{"step":"calendar_step","label":"When","icon":"calendar"}]}}],"title":"Summaries","type":"object","additionalProperties":{"$ref":"#/components/schemas/ISummary"},"propertyOrder":[],"properties":{}},"ISummary":{"title":"Summary","type":"object","properties":{"title":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ISummaryItem"}}},"propertyOrder":["title","items"],"required":["items","title"]},"ISummaryItem":{"title":"SummaryItem","type":"object","properties":{"step":{"type":"string"},"label":{"type":"string"},"icon":{"type":"string"},"value":{"type":"string"}},"propertyOrder":["step","label","icon","value"],"required":["label","step"]},"Settings":{"properties":{"embed_id":{"description":"The id of the element the app will be embedded on.","examples":["my-embed-id"],"type":"string"},"settings_version":{"description":"A simple versioning solution that that will update your Studio embed when you release new versions of your settings.json file.","examples":["1.0.0"],"type":"string"},"developer_mode":{"description":"Enabling developer mode resets the app when the page is refreshed. When it is disabled the app will persist user selections to ensure their answers are preserved the next time they visit the form flow.","examples":[true],"type":"boolean"},"base_url":{"description":"The base url is used to tell the app where images and resources are served from. Ensure a trailing slash is added.","examples":["https://www.setster.com/"],"type":"string"},"embed_height":{"$ref":"#/components/schemas/IEmbedHeight"},"breakpoints":{"$ref":"#/components/schemas/IBreakpoints"},"account_id":{"description":"The company id of the Setster account you created. This parameter is used to tell the app what Setster account to use to fetch information from and save appointment information to.","examples":[1234],"type":"integer"},"steps":{"$ref":"#/components/schemas/AppState.ISteps"},"flow":{"$ref":"#/components/schemas/AppState.IFlow"},"meta":{"$ref":"#/components/schemas/IMeta"},"summaries":{"$ref":"#/components/schemas/ISummaries"},"embed_url":{"description":"Where the app is embedded or located which allows the reschedule/cancel links in emails to point to the correct url. Ensure a trailing slash is added","examples":["https://www.setster.com/"],"type":"string"},"enable_link_check":{"description":"This parameter is used to tell the app if it should check for locations/staff/services links that are set up in Setster to only show ones that are associated with previous selections. For example: Only show services that are available at the previously selected location.","examples":[true],"type":"boolean"},"default_location":{"description":"The physical or virtual location id where the appointment or the meeting will take place. Auto-selects an appointment location based on the provided location Id. Allows the user to skip the location selection step since it\'s pre-selected. Especially useful for accounts with only one location.","examples":[1234],"type":"integer"},"default_service":{"description":"Auto-selects an appointment service based on the provided service id. Allows the user to skip the service selection step since it\'s pre-selected. Especially useful for accounts with only one service.","examples":[1234],"type":"integer"},"default_staff":{"description":"The individual staff memeber who is being booked for an appointment. Auto-selects a staff member based on the provided staff Id. Allows the user to skip the staff selection step since it\'s pre-selected. Especially useful for accounts with a single staff member.","examples":[1234],"type":"integer"},"finish_message":{"description":"Once your form is submitted or appointment booked this message will display to the user.","examples":["Thanks for booking an appointment with us. You\'re all set."],"type":"string"}
1,"stripe_public_key":{"description":"This is the public key that you get from Stripe. This is needed if you have services which require payment and you have Setster setup to accept payments through Stripe.","examples":["1234-12341234-12341234"],"type":"string"},"pay_in_person_message":{"description":"The message you\'ll display if the user selects to pay for a particular service in person. The pay in person option can be configured in the services settings in your Setster dashboard.","examples":["We\'ll collect payment in person during your appointment."],"type":"string"}},"propertyOrder":["embed_id","settings_version","developer_mode","base_url","embed_height","breakpoints","account_id","steps","flow","meta","summaries","embed_url","enable_link_check","default_location","default_service","default_staff","finish_message","stripe_public_key","pay_in_person_message","google_map_options"],"required":["account_id","base_url","embed_id","finish_message","flow","settings_version","steps"],"title":"Settings","type":"object"}}}}}')}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.