@agendize/vue-settings
Version:
Vue agendize's settings component
85 lines (84 loc) • 3.16 kB
TypeScript
import { AccountEntity, CalendarApi, CompanyEntity, Logger, ServiceEntity, StaffEntity } from "@agendize/js-calendar-api";
import { Locale } from "@agendize/az-i18n";
import { ComputedRef, Ref } from "vue";
import { Router } from "vue-router";
import { PageWithTabsAndPanelOptions, Mandatory } from "@agendize/design-system";
export declare function ServiceDetailsViewModel(api: CalendarApi, organisation: AccountEntity, locale: Locale, companyId: string, serviceId?: string, logger?: Logger, newService?: boolean, cloneService?: boolean, router?: Router): ServiceDetailsViewModelType;
interface ServiceDetailsViewModelType {
company: Ref<CompanyEntity>;
service: Ref<ServiceEntity | undefined>;
pageTitle: () => string;
loading: Ref<boolean>;
validatedField: (item: string, isValid: boolean | {
isValid: boolean;
values: any;
id: string;
}) => void;
submitReady: ComputedRef<boolean>;
serviceName: Ref<string>;
serviceDescription: Ref<string>;
serviceLogo: Ref<string>;
serviceLogoFile: Ref<File | undefined>;
serviceLogoFileData: Ref<string | undefined>;
onServiceLogoUpdated: (item: File | undefined) => void;
serviceQuantity: Ref<number>;
serviceColor: Ref<string[]>;
serviceVisibility: Ref<string[]>;
serviceWidgetUrl: Ref<string | undefined>;
serviceActif: Ref<boolean>;
serviceDuration: Ref<number>;
serviceLocations: Ref<string[][]>;
servicePrice: Ref<number | undefined>;
serviceGroups: Ref<string[]>;
serviceGroupValues: Ref<{
label: string;
value: string;
}[]>;
serviceStaffs: Ref<StaffEntity[]>;
servicePreparationDuration: Ref<string[]>;
serviceBufferAfterDuration: Ref<string[]>;
serviceValidation: Ref<string[]>;
serviceExternalId: Ref<string>;
validations: Ref<{
label: string;
value: string;
}[]>;
locations: ComputedRef<{
label: string;
value: string;
}[][]>;
colors: Ref<{
label: string;
value: string;
}[]>;
durations: Ref<{
label: string;
value: string;
}[]>;
visibilities: Ref<{
label: string;
value: string;
}[]>;
onSave: () => void;
back: () => void;
pageOptions: Ref<PageWithTabsAndPanelOptions>;
addLocation: () => void;
sliceLocation: (location: string, index: number) => void;
allPossibleLocation: {
value: string;
label: string;
}[];
customLoc: Ref<string>;
changeStaffs: (staffs: StaffEntity[]) => void;
serviceCancellationDelayEnable: Ref<boolean>;
serviceCancellationDelayValue: Ref<number | undefined>;
serviceCancellationDelayHelper: Ref<string | undefined>;
serviceCancellationDelayMandatory: Ref<Mandatory>;
minAppointmentValue: Ref<number>;
minAppointmentUnit: Ref<string>;
maxAppointmentValue: Ref<number>;
maxAppointmentUnit: Ref<string>;
changeInterval: (minV: number, minU: string, maxV: number, maxU: string) => void;
hasIntervalByService: Ref<boolean>;
}
export {};