wcz-test 6.9.3 → 6.9.5
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.
- package/dist/DialogsHooks-Bi8dZoyu.js +338 -0
- package/dist/DialogsHooks-Bi8dZoyu.js.map +1 -0
- package/dist/{RouterListItemButton-Cx7rXEfm.js → RouterListItemButton-CHS7rofI.js} +4 -4
- package/dist/{RouterListItemButton-Cx7rXEfm.js.map → RouterListItemButton-CHS7rofI.js.map} +1 -1
- package/dist/auth-client-B6cIXYDV.js +1417 -0
- package/dist/auth-client-B6cIXYDV.js.map +1 -0
- package/dist/client.js +1 -1
- package/dist/components.js +65 -66
- package/dist/components.js.map +1 -1
- package/dist/error-BhAKg8LX-X0sdNXNa.js +195 -0
- package/dist/error-BhAKg8LX-X0sdNXNa.js.map +1 -0
- package/dist/hooks.js +31 -31
- package/dist/hooks.js.map +1 -1
- package/dist/index.js +83 -84
- package/dist/index.js.map +1 -1
- package/dist/server-mxQ3s5dx-CC81W42s.js +644 -0
- package/dist/server-mxQ3s5dx-CC81W42s.js.map +1 -0
- package/dist/server.js +8659 -7
- package/dist/server.js.map +1 -1
- package/dist/vite.js +0 -3
- package/dist/vite.js.map +1 -1
- package/package.json +29 -29
- package/dist/DialogsHooks-BlUsVlfv.js +0 -39
- package/dist/DialogsHooks-BlUsVlfv.js.map +0 -1
- package/dist/auth-client-o9U0_qmf.js +0 -79
- package/dist/auth-client-o9U0_qmf.js.map +0 -1
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../src/components/form/FormAutocomplete.tsx","../src/components/form/FormCheckbox.tsx","../src/components/form/FormDatePicker.tsx","../src/components/form/FormDateRangePicker.tsx","../src/components/form/FormTimePicker.tsx","../src/components/form/FormTimeRangePicker.tsx","../src/components/form/FormDateTimePicker.tsx","../src/components/form/FormDateTimeRangePicker.tsx","../src/components/form/FormNumberField.tsx","../src/components/form/FormRadioGroup.tsx","../src/components/form/FormSlider.tsx","../src/components/form/FormSubmitButton.tsx","../src/components/form/FormSwitch.tsx","../src/components/form/FormTextField.tsx","../src/hooks/FormHooks.ts"],"sourcesContent":["import { Autocomplete, TextField } from \"@mui/material\";\r\nimport type { AutocompleteProps, TextFieldProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormAutocompleteProps extends Omit<AutocompleteProps<any, boolean, boolean, boolean>, FormOmittedProps> {\r\n textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;\r\n}\r\n\r\nexport const FormAutocomplete: FC<FormAutocompleteProps> = ({ textFieldProps, ...autocompleteProps }) => {\r\n const field = useFieldContext();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <Autocomplete\r\n value={field.state.value}\r\n onChange={(_, value) => !autocompleteProps.freeSolo && field.handleChange(value)}\r\n onInputChange={(_, value, reason) => reason !== \"reset\" && autocompleteProps.freeSolo && field.handleChange(value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...autocompleteProps}\r\n renderInput={(parameters) =>\r\n <TextField\r\n {...parameters}\r\n name={field.name}\r\n error={isTouched && hasError}\r\n helperText={isTouched && helperText}\r\n {...textFieldProps}\r\n />\r\n }\r\n />\r\n );\r\n};","import { Checkbox, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\r\nimport type { CheckboxProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormCheckbox: FC<FormCheckboxProps> = (props) => {\r\n const field = useFieldContext<boolean | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n <FormControlLabel\r\n control={\r\n <Checkbox\r\n name={field.name}\r\n checked={Boolean(field.state.value)}\r\n onChange={(event) => field.handleChange(event.target.checked)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n }\r\n label={props.label ?? \"\"}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};","import { DatePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { DatePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormDatePickerProps extends Omit<DatePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDatePicker: FC<FormDatePickerProps> = (props) => {\r\n const field = useFieldContext<Dayjs | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DatePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { DateRangePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { DateRangePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormDateRangePickerProps extends Omit<DateRangePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDateRangePicker: FC<FormDateRangePickerProps> = (props) => {\r\n const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DateRangePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { TimePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { TimePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormTimePickerProps extends Omit<TimePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormTimePicker: FC<FormTimePickerProps> = (props) => {\r\n const field = useFieldContext<Dayjs | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <TimePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { TimeRangePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { TimeRangePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormTimeRangePickerProps extends Omit<TimeRangePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormTimeRangePicker: FC<FormTimeRangePickerProps> = (props) => {\r\n const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <TimeRangePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { DateTimePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { DateTimePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormDateTimePickerProps extends Omit<DateTimePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDateTimePicker: FC<FormDateTimePickerProps> = (props) => {\r\n const field = useFieldContext<Dayjs | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DateTimePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps,\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { DateTimeRangePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { DateTimeRangePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormDateTimeRangePickerProps extends Omit<DateTimeRangePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDateTimeRangePicker: FC<FormDateTimeRangePickerProps> = (props) => {\r\n const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DateTimeRangePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { TextField } from \"@mui/material\";\r\nimport { NumericFormat } from \"react-number-format\";\r\nimport type { InputAttributes, NumericFormatProps } from \"react-number-format/types/types\";\r\nimport type { FC } from \"react\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormNumberFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\r\n\tdefaultValue?: number | null;\r\n\toptions?: Omit<NumericFormatProps<InputAttributes>, \"customInput\" | \"onValueChange\" | keyof InputAttributes>;\r\n}\r\n\r\nexport const FormNumberField: FC<FormNumberFieldProps> = ({ options, ...props }) => {\r\n\tconst field = useFieldContext<number | null | undefined>();\r\n\tconst { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n\treturn (\r\n\t\t<NumericFormat\r\n\t\t\tcustomInput={TextField}\r\n\t\t\tname={field.name}\r\n\t\t\tvalue={field.state.value ?? \"\"}\r\n\t\t\tonValueChange={({ floatValue }) => field.handleChange(floatValue)}\r\n\t\t\tonBlur={field.handleBlur}\r\n\t\t\terror={isTouched && hasError}\r\n\t\t\thelperText={isTouched && helperText}\r\n\t\t\taria-label={field.name}\r\n\t\t\t{...props}\r\n\t\t\t{...options}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { FormControl, FormControlLabel, FormHelperText, FormLabel, Radio, RadioGroup } from \"@mui/material\";\r\nimport type { RadioGroupProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\ninterface Option {\r\n label: string;\r\n value: string | number;\r\n}\r\n\r\nexport interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {\r\n label?: string;\r\n options: Array<Option>;\r\n}\r\n\r\nexport const FormRadioGroup: FC<FormRadioGroupProps> = ({ label, options, ...props }) => {\r\n const field = useFieldContext<string | number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n {label && <FormLabel component=\"legend\">{label}</FormLabel>}\r\n <RadioGroup\r\n name={field.name}\r\n value={field.state.value ?? \"\"}\r\n onChange={(event) => field.handleChange(event.target.value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n >\r\n {options.map((option) => (\r\n <FormControlLabel\r\n key={option.value}\r\n value={option.value}\r\n control={<Radio />}\r\n label={option.label}\r\n />\r\n ))}\r\n </RadioGroup>\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n","import { FormControl, FormHelperText, FormLabel, Slider } from \"@mui/material\";\r\nimport type { SliderProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormSlider: FC<FormSliderProps> = ({ label, ...props }) => {\r\n const field = useFieldContext<number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n {label && <FormLabel>{label}</FormLabel>}\r\n <Slider\r\n name={field.name}\r\n value={field.state.value ?? 0}\r\n onChange={(_, value) => field.handleChange(Array.isArray(value) ? value[0] : value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n","import { Button } from \"@mui/material\";\r\nimport type { ButtonProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport { useFormContext } from \"~/hooks/FormHooks\";\r\n\r\nexport type FormSubmitButtonProps = Omit<ButtonProps, \"loading\" | \"disabled\" | \"onClick\" | \"type\">;\r\n\r\nexport const FormSubmitButton: FC<FormSubmitButtonProps> = (props) => {\r\n const form = useFormContext();\r\n\r\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n form.handleSubmit();\r\n };\r\n\r\n return (\r\n <form.Subscribe selector={(state) => [state.canSubmit, state.isSubmitting]}>\r\n {([canSubmit, isSubmitting]) => (\r\n <Button\r\n loading={isSubmitting}\r\n disabled={!canSubmit}\r\n onClick={handleClick}\r\n type=\"submit\"\r\n aria-label=\"submit\"\r\n {...props}\r\n />\r\n )}\r\n </form.Subscribe>\r\n );\r\n};","import { FormControl, FormControlLabel, FormHelperText, Switch } from \"@mui/material\";\r\nimport type { SwitchProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormSwitch: FC<FormSwitchProps> = (props) => {\r\n const field = useFieldContext<boolean | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n <FormControlLabel\r\n control={\r\n <Switch\r\n name={field.name}\r\n checked={Boolean(field.state.value)}\r\n onChange={(event) => field.handleChange(event.target.checked)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n }\r\n label={props.label ?? \"\"}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n","import { TextField } from \"@mui/material\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\r\n type?: \"color\" | \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\"\r\n}\r\n\r\nexport const FormTextField: FC<FormTextFieldProps> = (props) => {\r\n const field = useFieldContext<string | number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <TextField\r\n name={field.name}\r\n value={field.state.value ?? \"\"}\r\n onChange={event => field.handleChange(event.target.value)}\r\n onBlur={field.handleBlur}\r\n error={isTouched && hasError}\r\n helperText={isTouched && helperText}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};","import { createFormHook, createFormHookContexts } from \"@tanstack/react-form\";\r\nimport { FormAutocomplete as Autocomplete } from \"~/components/form/FormAutocomplete\";\r\nimport { FormCheckbox as Checkbox } from \"~/components/form/FormCheckbox\";\r\nimport { FormDatePicker as DatePicker } from \"~/components/form/FormDatePicker\";\r\nimport { FormDateRangePicker as DateRangePicker } from \"~/components/form/FormDateRangePicker\";\r\nimport { FormTimePicker as TimePicker } from \"~/components/form/FormTimePicker\";\r\nimport { FormTimeRangePicker as TimeRangePicker } from \"~/components/form/FormTimeRangePicker\";\r\nimport { FormDateTimePicker as DateTimePicker } from \"~/components/form/FormDateTimePicker\";\r\nimport { FormDateTimeRangePicker as DateTimeRangePicker } from \"~/components/form/FormDateTimeRangePicker\";\r\nimport { FormNumberField as NumberField } from \"~/components/form/FormNumberField\";\r\nimport { FormRadioGroup as RadioGroup } from \"~/components/form/FormRadioGroup\";\r\nimport { FormSlider as Slider } from \"~/components/form/FormSlider\";\r\nimport { FormSubmitButton as SubmitButton } from \"~/components/form/FormSubmitButton\";\r\nimport { FormSwitch as Switch } from \"~/components/form/FormSwitch\";\r\nimport { FormTextField as TextField } from \"~/components/form/FormTextField\";\r\n\r\nexport const { fieldContext, useFieldContext, formContext, useFormContext } = createFormHookContexts();\r\n\r\nexport const { useAppForm: useLayoutForm, withForm: withLayoutForm } =\r\n createFormHook({\r\n fieldComponents: {\r\n TextField,\r\n NumberField,\r\n Autocomplete,\r\n Checkbox,\r\n Switch,\r\n RadioGroup,\r\n Slider,\r\n DatePicker,\r\n DateRangePicker,\r\n TimePicker,\r\n TimeRangePicker,\r\n DateTimePicker,\r\n DateTimeRangePicker,\r\n },\r\n formComponents: {\r\n SubmitButton,\r\n },\r\n fieldContext,\r\n formContext,\r\n });\r\n"],"names":["TextField","NumberField","Autocomplete","Checkbox","Switch","RadioGroup","Slider","DatePicker","DateRangePicker","TimePicker","TimeRangePicker","DateTimePicker","DateTimeRangePicker","SubmitButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../src/components/form/FormAutocomplete.tsx","../src/components/form/FormCheckbox.tsx","../src/components/form/FormDatePicker.tsx","../src/components/form/FormDateRangePicker.tsx","../src/components/form/FormTimePicker.tsx","../src/components/form/FormTimeRangePicker.tsx","../src/components/form/FormDateTimePicker.tsx","../src/components/form/FormDateTimeRangePicker.tsx","../src/components/form/FormNumberField.tsx","../src/components/form/FormRadioGroup.tsx","../src/components/form/FormSlider.tsx","../src/components/form/FormSubmitButton.tsx","../src/components/form/FormSwitch.tsx","../src/components/form/FormTextField.tsx","../src/hooks/FormHooks.ts"],"sourcesContent":["import { Autocomplete, TextField } from \"@mui/material\";\r\nimport type { AutocompleteProps, TextFieldProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormAutocompleteProps extends Omit<AutocompleteProps<any, boolean, boolean, boolean>, FormOmittedProps> {\r\n textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;\r\n}\r\n\r\nexport const FormAutocomplete: FC<FormAutocompleteProps> = ({ textFieldProps, ...autocompleteProps }) => {\r\n const field = useFieldContext();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <Autocomplete\r\n value={field.state.value}\r\n onChange={(_, value) => !autocompleteProps.freeSolo && field.handleChange(value)}\r\n onInputChange={(_, value, reason) => reason !== \"reset\" && autocompleteProps.freeSolo && field.handleChange(value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...autocompleteProps}\r\n renderInput={(parameters) =>\r\n <TextField\r\n {...parameters}\r\n name={field.name}\r\n error={isTouched && hasError}\r\n helperText={isTouched && helperText}\r\n {...textFieldProps}\r\n />\r\n }\r\n />\r\n );\r\n};","import { Checkbox, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\r\nimport type { CheckboxProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormCheckbox: FC<FormCheckboxProps> = (props) => {\r\n const field = useFieldContext<boolean | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n <FormControlLabel\r\n control={\r\n <Checkbox\r\n name={field.name}\r\n checked={Boolean(field.state.value)}\r\n onChange={(event) => field.handleChange(event.target.checked)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n }\r\n label={props.label ?? \"\"}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};","import { DatePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { DatePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormDatePickerProps extends Omit<DatePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDatePicker: FC<FormDatePickerProps> = (props) => {\r\n const field = useFieldContext<Dayjs | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DatePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { DateRangePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { DateRangePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormDateRangePickerProps extends Omit<DateRangePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDateRangePicker: FC<FormDateRangePickerProps> = (props) => {\r\n const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DateRangePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { TimePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { TimePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormTimePickerProps extends Omit<TimePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormTimePicker: FC<FormTimePickerProps> = (props) => {\r\n const field = useFieldContext<Dayjs | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <TimePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { TimeRangePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { TimeRangePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormTimeRangePickerProps extends Omit<TimeRangePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormTimeRangePicker: FC<FormTimeRangePickerProps> = (props) => {\r\n const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <TimeRangePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { DateTimePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { DateTimePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormDateTimePickerProps extends Omit<DateTimePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDateTimePicker: FC<FormDateTimePickerProps> = (props) => {\r\n const field = useFieldContext<Dayjs | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DateTimePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps,\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { DateTimeRangePicker } from \"@mui/x-date-pickers-pro\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { DateTimeRangePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormDateTimeRangePickerProps extends Omit<DateTimeRangePickerProps, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDateTimeRangePicker: FC<FormDateTimeRangePickerProps> = (props) => {\r\n const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DateTimeRangePicker\r\n name={field.name}\r\n value={field.state.value}\r\n onChange={(value) => field.handleChange(value)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { TextField } from \"@mui/material\";\r\nimport { NumericFormat } from \"react-number-format\";\r\nimport type { InputAttributes, NumericFormatProps } from \"react-number-format/types/types\";\r\nimport type { FC } from \"react\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormNumberFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\r\n\tdefaultValue?: number | null;\r\n\toptions?: Omit<NumericFormatProps<InputAttributes>, \"customInput\" | \"onValueChange\" | keyof InputAttributes>;\r\n}\r\n\r\nexport const FormNumberField: FC<FormNumberFieldProps> = ({ options, ...props }) => {\r\n\tconst field = useFieldContext<number | null | undefined>();\r\n\tconst { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n\treturn (\r\n\t\t<NumericFormat\r\n\t\t\tcustomInput={TextField}\r\n\t\t\tname={field.name}\r\n\t\t\tvalue={field.state.value ?? \"\"}\r\n\t\t\tonValueChange={({ floatValue }) => field.handleChange(floatValue)}\r\n\t\t\tonBlur={field.handleBlur}\r\n\t\t\terror={isTouched && hasError}\r\n\t\t\thelperText={isTouched && helperText}\r\n\t\t\taria-label={field.name}\r\n\t\t\t{...props}\r\n\t\t\t{...options}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { FormControl, FormControlLabel, FormHelperText, FormLabel, Radio, RadioGroup } from \"@mui/material\";\r\nimport type { RadioGroupProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\ninterface Option {\r\n label: string;\r\n value: string | number;\r\n}\r\n\r\nexport interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {\r\n label?: string;\r\n options: Array<Option>;\r\n}\r\n\r\nexport const FormRadioGroup: FC<FormRadioGroupProps> = ({ label, options, ...props }) => {\r\n const field = useFieldContext<string | number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n {label && <FormLabel component=\"legend\">{label}</FormLabel>}\r\n <RadioGroup\r\n name={field.name}\r\n value={field.state.value ?? \"\"}\r\n onChange={(event) => field.handleChange(event.target.value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n >\r\n {options.map((option) => (\r\n <FormControlLabel\r\n key={option.value}\r\n value={option.value}\r\n control={<Radio />}\r\n label={option.label}\r\n />\r\n ))}\r\n </RadioGroup>\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n","import { FormControl, FormHelperText, FormLabel, Slider } from \"@mui/material\";\r\nimport type { SliderProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormSlider: FC<FormSliderProps> = ({ label, ...props }) => {\r\n const field = useFieldContext<number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n {label && <FormLabel>{label}</FormLabel>}\r\n <Slider\r\n name={field.name}\r\n value={field.state.value ?? 0}\r\n onChange={(_, value) => field.handleChange(Array.isArray(value) ? value[0] : value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n","import { Button } from \"@mui/material\";\r\nimport type { ButtonProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport { useFormContext } from \"~/hooks/FormHooks\";\r\n\r\nexport type FormSubmitButtonProps = Omit<ButtonProps, \"loading\" | \"disabled\" | \"onClick\" | \"type\">;\r\n\r\nexport const FormSubmitButton: FC<FormSubmitButtonProps> = (props) => {\r\n const form = useFormContext();\r\n\r\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n form.handleSubmit();\r\n };\r\n\r\n return (\r\n <form.Subscribe selector={(state) => [state.canSubmit, state.isSubmitting]}>\r\n {([canSubmit, isSubmitting]) => (\r\n <Button\r\n loading={isSubmitting}\r\n disabled={!canSubmit}\r\n onClick={handleClick}\r\n type=\"submit\"\r\n aria-label=\"submit\"\r\n {...props}\r\n />\r\n )}\r\n </form.Subscribe>\r\n );\r\n};","import { FormControl, FormControlLabel, FormHelperText, Switch } from \"@mui/material\";\r\nimport type { SwitchProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormSwitch: FC<FormSwitchProps> = (props) => {\r\n const field = useFieldContext<boolean | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n <FormControlLabel\r\n control={\r\n <Switch\r\n name={field.name}\r\n checked={Boolean(field.state.value)}\r\n onChange={(event) => field.handleChange(event.target.checked)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n }\r\n label={props.label ?? \"\"}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n","import { TextField } from \"@mui/material\";\r\nimport type { TextFieldProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { FormOmittedProps } from \"~/lib/utils\";\r\nimport { useFieldContext } from \"~/hooks/FormHooks\";\r\nimport { getFieldStatus } from \"~/lib/utils\";\r\n\r\nexport interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\r\n type?: \"color\" | \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\"\r\n}\r\n\r\nexport const FormTextField: FC<FormTextFieldProps> = (props) => {\r\n const field = useFieldContext<string | number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <TextField\r\n name={field.name}\r\n value={field.state.value ?? \"\"}\r\n onChange={event => field.handleChange(event.target.value)}\r\n onBlur={field.handleBlur}\r\n error={isTouched && hasError}\r\n helperText={isTouched && helperText}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};","import { createFormHook, createFormHookContexts } from \"@tanstack/react-form\";\r\nimport { FormAutocomplete as Autocomplete } from \"~/components/form/FormAutocomplete\";\r\nimport { FormCheckbox as Checkbox } from \"~/components/form/FormCheckbox\";\r\nimport { FormDatePicker as DatePicker } from \"~/components/form/FormDatePicker\";\r\nimport { FormDateRangePicker as DateRangePicker } from \"~/components/form/FormDateRangePicker\";\r\nimport { FormTimePicker as TimePicker } from \"~/components/form/FormTimePicker\";\r\nimport { FormTimeRangePicker as TimeRangePicker } from \"~/components/form/FormTimeRangePicker\";\r\nimport { FormDateTimePicker as DateTimePicker } from \"~/components/form/FormDateTimePicker\";\r\nimport { FormDateTimeRangePicker as DateTimeRangePicker } from \"~/components/form/FormDateTimeRangePicker\";\r\nimport { FormNumberField as NumberField } from \"~/components/form/FormNumberField\";\r\nimport { FormRadioGroup as RadioGroup } from \"~/components/form/FormRadioGroup\";\r\nimport { FormSlider as Slider } from \"~/components/form/FormSlider\";\r\nimport { FormSubmitButton as SubmitButton } from \"~/components/form/FormSubmitButton\";\r\nimport { FormSwitch as Switch } from \"~/components/form/FormSwitch\";\r\nimport { FormTextField as TextField } from \"~/components/form/FormTextField\";\r\n\r\nexport const { fieldContext, useFieldContext, formContext, useFormContext } = createFormHookContexts();\r\n\r\nexport const { useAppForm: useLayoutForm, withForm: withLayoutForm } =\r\n createFormHook({\r\n fieldComponents: {\r\n TextField,\r\n NumberField,\r\n Autocomplete,\r\n Checkbox,\r\n Switch,\r\n RadioGroup,\r\n Slider,\r\n DatePicker,\r\n DateRangePicker,\r\n TimePicker,\r\n TimeRangePicker,\r\n DateTimePicker,\r\n DateTimeRangePicker,\r\n },\r\n formComponents: {\r\n SubmitButton,\r\n },\r\n fieldContext,\r\n formContext,\r\n });\r\n"],"names":["jsx","jsxs","TextField","NumberField","Autocomplete","Checkbox","Switch","RadioGroup","Slider","DatePicker","DateRangePicker","TimePicker","TimeRangePicker","DateTimePicker","DateTimeRangePicker","SubmitButton"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { j as jsxRuntimeExports, D as DialogsContext, u as useDialogs } from "./DialogsHooks-Bi8dZoyu.js";
|
|
2
2
|
import { Stack, Typography, Collapse, useMediaQuery, useColorScheme, List as List$1, ListItemButton as ListItemButton$1, ListItemIcon as ListItemIcon$1, ListItemText as ListItemText$1, ListSubheader as ListSubheader$1, IconButton, Avatar as Avatar$1, Menu, Box as Box$1, ListItem as ListItem$1, InitColorSchemeScript, CssBaseline, AppBar, Toolbar, LinearProgress, ThemeProvider } from "@mui/material";
|
|
3
3
|
import { LocalizationProvider } from "@mui/x-date-pickers";
|
|
4
4
|
import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
|
|
@@ -7,13 +7,12 @@ import { getCookie } from "@tanstack/react-start/server";
|
|
|
7
7
|
import dayjs from "dayjs";
|
|
8
8
|
import i18n from "i18next";
|
|
9
9
|
import LanguageDetector from "i18next-browser-languagedetector";
|
|
10
|
-
import { useState, useId, useRef, Fragment
|
|
10
|
+
import { useState, useId, useRef, Fragment, useEffect, useEffectEvent } from "react";
|
|
11
11
|
import { useTranslation, initReactI18next } from "react-i18next";
|
|
12
12
|
import { resources } from "virtual:wcz-layout";
|
|
13
13
|
import z__default from "zod";
|
|
14
14
|
import useEventCallback from "@mui/utils/useEventCallback";
|
|
15
|
-
import {
|
|
16
|
-
import { a as authClient, u as useGetTheme } from "./auth-client-o9U0_qmf.js";
|
|
15
|
+
import { a as authClient, u as useGetTheme } from "./auth-client-B6cIXYDV.js";
|
|
17
16
|
import Menu$1 from "@mui/icons-material/Menu";
|
|
18
17
|
import MenuOpen from "@mui/icons-material/MenuOpen";
|
|
19
18
|
import { styled, useTheme } from "@mui/material/styles";
|
|
@@ -34,7 +33,7 @@ import ListItemText from "@mui/material/ListItemText";
|
|
|
34
33
|
import Paper from "@mui/material/Paper";
|
|
35
34
|
import Popper from "@mui/material/Popper";
|
|
36
35
|
import Typography$1 from "@mui/material/Typography";
|
|
37
|
-
import { R as RouterListItemButton } from "./RouterListItemButton-
|
|
36
|
+
import { R as RouterListItemButton } from "./RouterListItemButton-CHS7rofI.js";
|
|
38
37
|
import "@mui/icons-material/AccountCircle";
|
|
39
38
|
import ArrowBack from "@mui/icons-material/ArrowBack";
|
|
40
39
|
import Brightness4 from "@mui/icons-material/Brightness4";
|
|
@@ -97,9 +96,9 @@ function DialogsProvider({ children, unmountAfter = 1e3 }) {
|
|
|
97
96
|
}
|
|
98
97
|
return dialog;
|
|
99
98
|
});
|
|
100
|
-
return /* @__PURE__ */ jsxs(DialogsContext.Provider, { value: { open: requestDialog, close: closeDialog }, children: [
|
|
99
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogsContext.Provider, { value: { open: requestDialog, close: closeDialog }, children: [
|
|
101
100
|
children,
|
|
102
|
-
stack.map(({ key, open, Component, payload, promise }) => /* @__PURE__ */ jsx(
|
|
101
|
+
stack.map(({ key, open, Component, payload, promise }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
103
102
|
Component,
|
|
104
103
|
{
|
|
105
104
|
payload,
|
|
@@ -113,9 +112,9 @@ function DialogsProvider({ children, unmountAfter = 1e3 }) {
|
|
|
113
112
|
] });
|
|
114
113
|
}
|
|
115
114
|
const AppTitle = () => {
|
|
116
|
-
return /* @__PURE__ */ jsxs(Stack, { direction: "row", alignItems: "center", spacing: 2, flexGrow: 1, children: [
|
|
117
|
-
/* @__PURE__ */ jsx("img", { src: "/favicon-32x32.png", alt: "app-logo", loading: "lazy" }),
|
|
118
|
-
/* @__PURE__ */ jsx(Typography, { variant: "h6", children: clientEnv.VITE_APP_TITLE }),
|
|
115
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Stack, { direction: "row", alignItems: "center", spacing: 2, flexGrow: 1, children: [
|
|
116
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: "/favicon-32x32.png", alt: "app-logo", loading: "lazy" }),
|
|
117
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "h6", children: clientEnv.VITE_APP_TITLE }),
|
|
119
118
|
false
|
|
120
119
|
] });
|
|
121
120
|
};
|
|
@@ -162,12 +161,12 @@ const StyledRouterButton = styled(RouterListItemButton)(({ theme }) => ({
|
|
|
162
161
|
}));
|
|
163
162
|
const IconOrAvatar = ({ item, collapsed }) => {
|
|
164
163
|
if (item.icon || collapsed) {
|
|
165
|
-
return /* @__PURE__ */ jsxs(Box, { sx: collapsed ? { position: "absolute", left: "50%", top: "calc(50% - 6px)", transform: "translate(-50%, -50%)" } : {}, children: [
|
|
166
|
-
/* @__PURE__ */ jsxs(ListItemIcon, { sx: { display: "flex", alignItems: "center", justifyContent: "center", minWidth: ICON_SIZE }, children: [
|
|
164
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { sx: collapsed ? { position: "absolute", left: "50%", top: "calc(50% - 6px)", transform: "translate(-50%, -50%)" } : {}, children: [
|
|
165
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(ListItemIcon, { sx: { display: "flex", alignItems: "center", justifyContent: "center", minWidth: ICON_SIZE }, children: [
|
|
167
166
|
item.icon ?? null,
|
|
168
|
-
!item.icon && collapsed ? /* @__PURE__ */ jsx(Avatar, { sx: { width: ICON_SIZE - 7, height: ICON_SIZE - 7, fontSize: 12 }, children: item.title }) : null
|
|
167
|
+
!item.icon && collapsed ? /* @__PURE__ */ jsxRuntimeExports.jsx(Avatar, { sx: { width: ICON_SIZE - 7, height: ICON_SIZE - 7, fontSize: 12 }, children: item.title }) : null
|
|
169
168
|
] }),
|
|
170
|
-
collapsed ? /* @__PURE__ */ jsx(
|
|
169
|
+
collapsed ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
171
170
|
Typography$1,
|
|
172
171
|
{
|
|
173
172
|
variant: "caption",
|
|
@@ -191,7 +190,7 @@ const IconOrAvatar = ({ item, collapsed }) => {
|
|
|
191
190
|
}
|
|
192
191
|
return null;
|
|
193
192
|
};
|
|
194
|
-
const MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx(
|
|
193
|
+
const MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
195
194
|
Popper,
|
|
196
195
|
{
|
|
197
196
|
open,
|
|
@@ -202,7 +201,7 @@ const MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx(
|
|
|
202
201
|
{ name: "preventOverflow", options: { padding: 8 } },
|
|
203
202
|
{ name: "flip", options: { fallbackPlacements: ["right-end", "left-start"] } }
|
|
204
203
|
],
|
|
205
|
-
children: /* @__PURE__ */ jsx(
|
|
204
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
206
205
|
Paper,
|
|
207
206
|
{
|
|
208
207
|
sx: {
|
|
@@ -244,9 +243,9 @@ const NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSid
|
|
|
244
243
|
disabled,
|
|
245
244
|
sx: { px: 1.4, height: collapsed ? 60 : 48 }
|
|
246
245
|
};
|
|
247
|
-
const buttonContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
248
|
-
/* @__PURE__ */ jsx(IconOrAvatar, { item, collapsed }),
|
|
249
|
-
!collapsed && /* @__PURE__ */ jsx(
|
|
246
|
+
const buttonContent = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
247
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IconOrAvatar, { item, collapsed }),
|
|
248
|
+
!collapsed && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
250
249
|
ListItemText,
|
|
251
250
|
{
|
|
252
251
|
primary: item.title,
|
|
@@ -254,9 +253,9 @@ const NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSid
|
|
|
254
253
|
sx: { ml: 1.2, flex: 1, minWidth: 0, "& .MuiTypography-root": { whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" } }
|
|
255
254
|
}
|
|
256
255
|
),
|
|
257
|
-
item.children ? /* @__PURE__ */ jsx(ExpandMoreIcon, { sx: chevronSx }) : null
|
|
256
|
+
item.children ? /* @__PURE__ */ jsxRuntimeExports.jsx(ExpandMoreIcon, { sx: chevronSx }) : null
|
|
258
257
|
] });
|
|
259
|
-
const listItem = /* @__PURE__ */ jsxs(
|
|
258
|
+
const listItem = /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
260
259
|
ListItem,
|
|
261
260
|
{
|
|
262
261
|
...item.children && collapsed ? {
|
|
@@ -270,7 +269,7 @@ const NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSid
|
|
|
270
269
|
} : {},
|
|
271
270
|
sx: { py: 0, px: 1, overflowX: "hidden" },
|
|
272
271
|
children: [
|
|
273
|
-
shouldJustExpand ? /* @__PURE__ */ jsx(StyledNavButton, { ...buttonProps, onClick: () => onClick?.(item), children: buttonContent }) : /* @__PURE__ */ jsx(
|
|
272
|
+
shouldJustExpand ? /* @__PURE__ */ jsxRuntimeExports.jsx(StyledNavButton, { ...buttonProps, onClick: () => onClick?.(item), children: buttonContent }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
274
273
|
StyledRouterButton,
|
|
275
274
|
{
|
|
276
275
|
...buttonProps,
|
|
@@ -282,13 +281,13 @@ const NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSid
|
|
|
282
281
|
children: buttonContent
|
|
283
282
|
}
|
|
284
283
|
),
|
|
285
|
-
item.children && collapsed ? /* @__PURE__ */ jsx(MiniPopover, { open: item.title === hoveredPopoverItem, anchorEl: anchorElement, children: renderNested?.(item.children) }) : null
|
|
284
|
+
item.children && collapsed ? /* @__PURE__ */ jsxRuntimeExports.jsx(MiniPopover, { open: item.title === hoveredPopoverItem, anchorEl: anchorElement, children: renderNested?.(item.children) }) : null
|
|
286
285
|
]
|
|
287
286
|
}
|
|
288
287
|
);
|
|
289
|
-
return /* @__PURE__ */ jsxs(Fragment
|
|
288
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
|
|
290
289
|
listItem,
|
|
291
|
-
item.children && !collapsed ? /* @__PURE__ */ jsx(Collapse, { in: isOpen, timeout: "auto", unmountOnExit: true, children: renderNested?.(item.children) }) : null
|
|
290
|
+
item.children && !collapsed ? /* @__PURE__ */ jsxRuntimeExports.jsx(Collapse, { in: isOpen, timeout: "auto", unmountOnExit: true, children: renderNested?.(item.children) }) : null
|
|
292
291
|
] }, item.to);
|
|
293
292
|
};
|
|
294
293
|
const isPageItem = (item) => !("kind" in item);
|
|
@@ -300,7 +299,7 @@ const NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSide
|
|
|
300
299
|
if (collapsed) setOpenKeys([]);
|
|
301
300
|
}, [collapsed]);
|
|
302
301
|
const toggleKey = (key) => setOpenKeys((previous) => previous.includes(key) ? previous.filter((k) => k !== key) : [...previous, key]);
|
|
303
|
-
const renderNested = (children) => /* @__PURE__ */ jsx(
|
|
302
|
+
const renderNested = (children) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
304
303
|
NavigationList,
|
|
305
304
|
{
|
|
306
305
|
subNavigation: children,
|
|
@@ -313,7 +312,7 @@ const NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSide
|
|
|
313
312
|
}
|
|
314
313
|
);
|
|
315
314
|
const filteredNavigation = subNavigation.filter((nav) => !nav.hidden);
|
|
316
|
-
return /* @__PURE__ */ jsx(
|
|
315
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
317
316
|
List,
|
|
318
317
|
{
|
|
319
318
|
sx: {
|
|
@@ -326,7 +325,7 @@ const NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSide
|
|
|
326
325
|
},
|
|
327
326
|
children: filteredNavigation.map((navItem, index) => {
|
|
328
327
|
if (isHeader(navItem)) {
|
|
329
|
-
return /* @__PURE__ */ jsx(
|
|
328
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
330
329
|
ListSubheader,
|
|
331
330
|
{
|
|
332
331
|
sx: {
|
|
@@ -349,13 +348,13 @@ const NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSide
|
|
|
349
348
|
}
|
|
350
349
|
if (isDivider(navItem)) {
|
|
351
350
|
const nextItem = filteredNavigation[index + 1];
|
|
352
|
-
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Divider, { sx: { mx: 1, mt: 1, mb: isHeader(nextItem) && !collapsed ? 0 : 1 } }) }, `divider-${depth}-${index}`);
|
|
351
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("li", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Divider, { sx: { mx: 1, mt: 1, mb: isHeader(nextItem) && !collapsed ? 0 : 1 } }) }, `divider-${depth}-${index}`);
|
|
353
352
|
}
|
|
354
353
|
if (!isPageItem(navItem)) return null;
|
|
355
354
|
const key = `item-${depth}-${index}`;
|
|
356
355
|
const uniqueItemKey = `${depth}-${index}-${navItem.title}`;
|
|
357
|
-
if (renderItem) return /* @__PURE__ */ jsx(Fragment
|
|
358
|
-
return /* @__PURE__ */ jsx(
|
|
356
|
+
if (renderItem) return /* @__PURE__ */ jsxRuntimeExports.jsx(Fragment, { children: renderItem(navItem, { collapsed: !!collapsed }) }, key);
|
|
357
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
359
358
|
NavigationListItem,
|
|
360
359
|
{
|
|
361
360
|
item: navItem,
|
|
@@ -382,7 +381,7 @@ const NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
382
381
|
const routerState = useRouterState();
|
|
383
382
|
const theme = useTheme();
|
|
384
383
|
const showPermanent = useMediaQuery(theme.breakpoints.up("sm"));
|
|
385
|
-
const drawerContent = (collapsed) => /* @__PURE__ */ jsx(
|
|
384
|
+
const drawerContent = (collapsed) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
386
385
|
Box,
|
|
387
386
|
{
|
|
388
387
|
component: "nav",
|
|
@@ -396,7 +395,7 @@ const NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
396
395
|
overflowX: "hidden",
|
|
397
396
|
pt: navigation[0] && isHeader(navigation[0]) && !collapsed ? 0 : 2
|
|
398
397
|
},
|
|
399
|
-
children: /* @__PURE__ */ jsx(
|
|
398
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
400
399
|
NavigationList,
|
|
401
400
|
{
|
|
402
401
|
subNavigation: navigation,
|
|
@@ -412,7 +411,7 @@ const NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
412
411
|
}
|
|
413
412
|
);
|
|
414
413
|
if (showPermanent)
|
|
415
|
-
return /* @__PURE__ */ jsx(
|
|
414
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
416
415
|
Drawer,
|
|
417
416
|
{
|
|
418
417
|
variant: "permanent",
|
|
@@ -430,7 +429,7 @@ const NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
430
429
|
children: drawerContent(!expanded)
|
|
431
430
|
}
|
|
432
431
|
);
|
|
433
|
-
return /* @__PURE__ */ jsx(Drawer, { open: expanded, onClose: () => setExpanded(false), children: drawerContent(!expanded) });
|
|
432
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Drawer, { open: expanded, onClose: () => setExpanded(false), children: drawerContent(!expanded) });
|
|
434
433
|
};
|
|
435
434
|
const capitalize = (value) => value && value.charAt(0).toUpperCase() + value.slice(1);
|
|
436
435
|
const ToolbarAccount = () => {
|
|
@@ -463,23 +462,23 @@ const ToolbarAccount = () => {
|
|
|
463
462
|
setTimeout(() => setTab("settings"), 300);
|
|
464
463
|
};
|
|
465
464
|
const changeTab = (newTab) => () => setTab(newTab);
|
|
466
|
-
const settings = /* @__PURE__ */ jsxs(List$1, { component: "nav", subheader: /* @__PURE__ */ jsx(ListSubheader$1, { sx: { backgroundColor: "transparent" }, children: t("Layout.Settings") }), children: [
|
|
467
|
-
/* @__PURE__ */ jsxs(ListItemButton$1, { onClick: changeTab("theme"), sx: { py: 0.3 }, children: [
|
|
468
|
-
/* @__PURE__ */ jsx(ListItemIcon$1, { children: /* @__PURE__ */ jsx(Brightness4, {}) }),
|
|
469
|
-
/* @__PURE__ */ jsx(ListItemText$1, { primary: t("Layout.Appearance"), secondary: colorModes.find((m) => m.mode === mode)?.label }),
|
|
470
|
-
/* @__PURE__ */ jsx(ChevronRight, {})
|
|
465
|
+
const settings = /* @__PURE__ */ jsxRuntimeExports.jsxs(List$1, { component: "nav", subheader: /* @__PURE__ */ jsxRuntimeExports.jsx(ListSubheader$1, { sx: { backgroundColor: "transparent" }, children: t("Layout.Settings") }), children: [
|
|
466
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(ListItemButton$1, { onClick: changeTab("theme"), sx: { py: 0.3 }, children: [
|
|
467
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemIcon$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Brightness4, {}) }),
|
|
468
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemText$1, { primary: t("Layout.Appearance"), secondary: colorModes.find((m) => m.mode === mode)?.label }),
|
|
469
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, {})
|
|
471
470
|
] }),
|
|
472
|
-
/* @__PURE__ */ jsxs(ListItemButton$1, { onClick: changeTab("language"), sx: { py: 0.3 }, children: [
|
|
473
|
-
/* @__PURE__ */ jsx(ListItemIcon$1, { children: /* @__PURE__ */ jsx(Translate, {}) }),
|
|
474
|
-
/* @__PURE__ */ jsx(ListItemText$1, { primary: t("Layout.Language"), secondary: capitalize(languageDisplayNames.of(i18n2.language)) }),
|
|
475
|
-
/* @__PURE__ */ jsx(ChevronRight, {})
|
|
471
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(ListItemButton$1, { onClick: changeTab("language"), sx: { py: 0.3 }, children: [
|
|
472
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemIcon$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Translate, {}) }),
|
|
473
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemText$1, { primary: t("Layout.Language"), secondary: capitalize(languageDisplayNames.of(i18n2.language)) }),
|
|
474
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, {})
|
|
476
475
|
] })
|
|
477
476
|
] });
|
|
478
|
-
const theme = /* @__PURE__ */ jsx(List$1, { subheader: /* @__PURE__ */ jsxs(ListSubheader$1, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
|
|
479
|
-
/* @__PURE__ */ jsx(IconButton, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx(ArrowBack, { fontSize: "small" }) }),
|
|
477
|
+
const theme = /* @__PURE__ */ jsxRuntimeExports.jsx(List$1, { subheader: /* @__PURE__ */ jsxRuntimeExports.jsxs(ListSubheader$1, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
|
|
478
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowBack, { fontSize: "small" }) }),
|
|
480
479
|
" ",
|
|
481
480
|
t("Layout.Appearance")
|
|
482
|
-
] }), children: colorModes.map(({ mode: modeValue, icon: Icon, label }) => /* @__PURE__ */ jsxs(
|
|
481
|
+
] }), children: colorModes.map(({ mode: modeValue, icon: Icon, label }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
483
482
|
ListItemButton$1,
|
|
484
483
|
{
|
|
485
484
|
onClick: () => {
|
|
@@ -488,40 +487,40 @@ const ToolbarAccount = () => {
|
|
|
488
487
|
},
|
|
489
488
|
selected: mode === modeValue,
|
|
490
489
|
children: [
|
|
491
|
-
/* @__PURE__ */ jsx(ListItemIcon$1, { children: /* @__PURE__ */ jsx(Icon, {}) }),
|
|
492
|
-
/* @__PURE__ */ jsx(ListItemText$1, { primary: label })
|
|
490
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemIcon$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, {}) }),
|
|
491
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemText$1, { primary: label })
|
|
493
492
|
]
|
|
494
493
|
},
|
|
495
494
|
modeValue
|
|
496
495
|
)) });
|
|
497
|
-
const language = /* @__PURE__ */ jsx(List$1, { subheader: /* @__PURE__ */ jsxs(ListSubheader$1, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
|
|
498
|
-
/* @__PURE__ */ jsx(IconButton, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx(ArrowBack, { fontSize: "small" }) }),
|
|
496
|
+
const language = /* @__PURE__ */ jsxRuntimeExports.jsx(List$1, { subheader: /* @__PURE__ */ jsxRuntimeExports.jsxs(ListSubheader$1, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
|
|
497
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowBack, { fontSize: "small" }) }),
|
|
499
498
|
" ",
|
|
500
499
|
t("Layout.Language")
|
|
501
500
|
] }), children: supportedLanguages.map(
|
|
502
|
-
(languageCode) => /* @__PURE__ */ jsxs(
|
|
501
|
+
(languageCode) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
503
502
|
ListItemButton$1,
|
|
504
503
|
{
|
|
505
504
|
onClick: () => i18n2.changeLanguage(languageCode).finally(() => closeMenu()),
|
|
506
505
|
selected: i18n2.resolvedLanguage === languageCode,
|
|
507
506
|
children: [
|
|
508
|
-
/* @__PURE__ */ jsx(ListItemIcon$1, { children: i18n2.resolvedLanguage === languageCode && /* @__PURE__ */ jsx(Done, {}) }),
|
|
509
|
-
/* @__PURE__ */ jsx(ListItemText$1, { primary: capitalize(languageDisplayNames.of(languageCode)) })
|
|
507
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemIcon$1, { children: i18n2.resolvedLanguage === languageCode && /* @__PURE__ */ jsxRuntimeExports.jsx(Done, {}) }),
|
|
508
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemText$1, { primary: capitalize(languageDisplayNames.of(languageCode)) })
|
|
510
509
|
]
|
|
511
510
|
},
|
|
512
511
|
languageCode
|
|
513
512
|
)
|
|
514
513
|
) });
|
|
515
|
-
return /* @__PURE__ */ jsxs(Fragment
|
|
516
|
-
/* @__PURE__ */ jsx(IconButton, { size: "small", edge: "end", onClick: openMenu, children: /* @__PURE__ */ jsx(Avatar$1, { sx: { width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 }, bgcolor: "primary.main" }, children: /* @__PURE__ */ jsx(Typography, { variant: "subtitle2", sx: { fontWeight: "bold", lineHeight: 0 }, children: usernameInitials() }) }) }),
|
|
517
|
-
/* @__PURE__ */ jsx(Menu, { anchorEl: anchorElement, open, onClose: closeMenu, children: /* @__PURE__ */ jsxs(Box$1, { sx: { width: 240 }, children: [
|
|
518
|
-
/* @__PURE__ */ jsx(List$1, { children: session ? /* @__PURE__ */ jsxs(Fragment
|
|
519
|
-
/* @__PURE__ */ jsx(ListItem$1, { children: /* @__PURE__ */ jsx(ListItemText$1, { primary: user.name, secondary: /* @__PURE__ */ jsxs("span", { children: [
|
|
520
|
-
/* @__PURE__ */ jsx("span", { children: user.employeeId }),
|
|
521
|
-
/* @__PURE__ */ jsx("br", {}),
|
|
522
|
-
/* @__PURE__ */ jsx("span", { children: user.department })
|
|
514
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
|
|
515
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { size: "small", edge: "end", onClick: openMenu, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Avatar$1, { sx: { width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 }, bgcolor: "primary.main" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "subtitle2", sx: { fontWeight: "bold", lineHeight: 0 }, children: usernameInitials() }) }) }),
|
|
516
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Menu, { anchorEl: anchorElement, open, onClose: closeMenu, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Box$1, { sx: { width: 240 }, children: [
|
|
517
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(List$1, { children: session ? /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
|
|
518
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItem$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ListItemText$1, { primary: user.name, secondary: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
|
|
519
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: user.employeeId }),
|
|
520
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("br", {}),
|
|
521
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: user.department })
|
|
523
522
|
] }) }) }),
|
|
524
|
-
/* @__PURE__ */ jsxs(
|
|
523
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
525
524
|
ListItemButton$1,
|
|
526
525
|
{
|
|
527
526
|
onClick: () => authClient.signOut({}, {
|
|
@@ -529,12 +528,12 @@ const ToolbarAccount = () => {
|
|
|
529
528
|
onError: ({ error }) => alert(error.message)
|
|
530
529
|
}),
|
|
531
530
|
children: [
|
|
532
|
-
/* @__PURE__ */ jsx(ListItemIcon$1, { children: /* @__PURE__ */ jsx(Logout, { color: "error" }) }),
|
|
533
|
-
/* @__PURE__ */ jsx(ListItemText$1, { primary: t("Layout.Logout") })
|
|
531
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemIcon$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Logout, { color: "error" }) }),
|
|
532
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemText$1, { primary: t("Layout.Logout") })
|
|
534
533
|
]
|
|
535
534
|
}
|
|
536
535
|
)
|
|
537
|
-
] }) : /* @__PURE__ */ jsxs(
|
|
536
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
538
537
|
ListItemButton$1,
|
|
539
538
|
{
|
|
540
539
|
onClick: () => authClient.signIn.social({ provider: "microsoft" }, {
|
|
@@ -542,8 +541,8 @@ const ToolbarAccount = () => {
|
|
|
542
541
|
onError: ({ error }) => alert(error.message)
|
|
543
542
|
}),
|
|
544
543
|
children: [
|
|
545
|
-
/* @__PURE__ */ jsx(ListItemIcon$1, { children: /* @__PURE__ */ jsx(Login, { color: "success" }) }),
|
|
546
|
-
/* @__PURE__ */ jsx(ListItemText$1, { primary: t("Layout.LogIn") })
|
|
544
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemIcon$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Login, { color: "success" }) }),
|
|
545
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListItemText$1, { primary: t("Layout.LogIn") })
|
|
547
546
|
]
|
|
548
547
|
}
|
|
549
548
|
) }),
|
|
@@ -572,11 +571,11 @@ const Layout = (props) => {
|
|
|
572
571
|
const [navigationOpen, setNavigationOpen] = useState(getNavigationOpenStatus);
|
|
573
572
|
const isFetching = !!useIsFetching();
|
|
574
573
|
const isMutating = !!useIsMutating();
|
|
575
|
-
return /* @__PURE__ */ jsxs(Fragment
|
|
576
|
-
/* @__PURE__ */ jsx(InitColorSchemeScript, {}),
|
|
577
|
-
/* @__PURE__ */ jsx(CssBaseline, {}),
|
|
578
|
-
/* @__PURE__ */ jsxs(Box$1, { sx: { display: "flex", height: "100dvh", maxHeight: "100dvh", overflow: "hidden", width: "100%" }, children: [
|
|
579
|
-
/* @__PURE__ */ jsx(
|
|
574
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
|
|
575
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(InitColorSchemeScript, {}),
|
|
576
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CssBaseline, {}),
|
|
577
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Box$1, { sx: { display: "flex", height: "100dvh", maxHeight: "100dvh", overflow: "hidden", width: "100%" }, children: [
|
|
578
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
580
579
|
AppBar,
|
|
581
580
|
{
|
|
582
581
|
color: "transparent",
|
|
@@ -586,8 +585,8 @@ const Layout = (props) => {
|
|
|
586
585
|
borderColor: theme.vars?.palette.divider,
|
|
587
586
|
boxShadow: "none"
|
|
588
587
|
}),
|
|
589
|
-
children: /* @__PURE__ */ jsxs(Toolbar, { children: [
|
|
590
|
-
props.navigation && /* @__PURE__ */ jsx(
|
|
588
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Toolbar, { children: [
|
|
589
|
+
props.navigation && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
591
590
|
IconButton,
|
|
592
591
|
{
|
|
593
592
|
onClick: () => {
|
|
@@ -598,15 +597,15 @@ const Layout = (props) => {
|
|
|
598
597
|
});
|
|
599
598
|
},
|
|
600
599
|
sx: { marginRight: 2 },
|
|
601
|
-
children: navigationOpen ? /* @__PURE__ */ jsx(MenuOpen, {}) : /* @__PURE__ */ jsx(Menu$1, {})
|
|
600
|
+
children: navigationOpen ? /* @__PURE__ */ jsxRuntimeExports.jsx(MenuOpen, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(Menu$1, {})
|
|
602
601
|
}
|
|
603
602
|
),
|
|
604
|
-
/* @__PURE__ */ jsx(AppTitle, {}),
|
|
605
|
-
/* @__PURE__ */ jsx(ToolbarAccount, {})
|
|
603
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(AppTitle, {}),
|
|
604
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarAccount, {})
|
|
606
605
|
] })
|
|
607
606
|
}
|
|
608
607
|
),
|
|
609
|
-
props.navigation && /* @__PURE__ */ jsx(
|
|
608
|
+
props.navigation && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
610
609
|
NavigationRail,
|
|
611
610
|
{
|
|
612
611
|
navigation: props.navigation,
|
|
@@ -617,12 +616,12 @@ const Layout = (props) => {
|
|
|
617
616
|
}
|
|
618
617
|
}
|
|
619
618
|
),
|
|
620
|
-
/* @__PURE__ */ jsxs(Box$1, { component: "main", sx: { flexGrow: 1, display: "flex", flexDirection: "column", minWidth: 0, height: "100%", overflow: "hidden" }, children: [
|
|
621
|
-
/* @__PURE__ */ jsx(DrawerHeader, {}),
|
|
622
|
-
/* @__PURE__ */ jsx(Box$1, { sx: { flex: 1, overflow: "auto", position: "relative" }, children: props.children })
|
|
619
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Box$1, { component: "main", sx: { flexGrow: 1, display: "flex", flexDirection: "column", minWidth: 0, height: "100%", overflow: "hidden" }, children: [
|
|
620
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DrawerHeader, {}),
|
|
621
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Box$1, { sx: { flex: 1, overflow: "auto", position: "relative" }, children: props.children })
|
|
623
622
|
] })
|
|
624
623
|
] }),
|
|
625
|
-
(isFetching || isMutating) && /* @__PURE__ */ jsx(LinearProgress, { sx: { position: "fixed", top: { xs: 56, sm: 64 }, left: 0, right: 0 } })
|
|
624
|
+
(isFetching || isMutating) && /* @__PURE__ */ jsxRuntimeExports.jsx(LinearProgress, { sx: { position: "fixed", top: { xs: 56, sm: 64 }, left: 0, right: 0 } })
|
|
626
625
|
] });
|
|
627
626
|
};
|
|
628
627
|
const YEAR_IN_MINUTES = 60 * 24 * 365;
|
|
@@ -649,7 +648,7 @@ const LayoutProvider = ({ navigation, theme, children }) => {
|
|
|
649
648
|
i18n.off("languageChanged", languageChangedHandler);
|
|
650
649
|
};
|
|
651
650
|
}, []);
|
|
652
|
-
return /* @__PURE__ */ jsx(ThemeProvider, { theme: createdTheme, children: /* @__PURE__ */ jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, adapterLocale: i18n.language, children: /* @__PURE__ */ jsx(DialogsProvider, { children: /* @__PURE__ */ jsx(Layout, { navigation, children }) }) }, i18n.language) });
|
|
651
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeProvider, { theme: createdTheme, children: /* @__PURE__ */ jsxRuntimeExports.jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, adapterLocale: i18n.language, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogsProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Layout, { navigation, children }) }) }, i18n.language) });
|
|
653
652
|
};
|
|
654
653
|
const setSSRLanguage = createServerFn().handler(async () => {
|
|
655
654
|
const language = getCookie(i18n.services.languageDetector.options.lookupCookie) || "en";
|