xladmin 0.3.7 → 0.5.0

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.
@@ -1,30 +1,46 @@
1
1
  export type AdminLocale = 'ru' | 'en';
2
- export type AdminFieldInputKind = 'text' | 'textarea' | 'password' | 'number' | 'decimal' | 'boolean' | 'date' | 'datetime' | 'json' | 'relation' | 'relation-multiple';
2
+ export type AdminFieldInputKind = 'text' | 'textarea' | 'password' | 'number' | 'decimal' | 'boolean' | 'date' | 'datetime' | 'json' | 'select' | 'select-multiple' | 'relation' | 'relation-multiple';
3
3
  export type AdminFieldDisplayKind = 'text' | 'image';
4
4
  export type AdminListFilterInputKind = 'text' | 'select' | 'select-multiple' | 'boolean';
5
- export type AdminFieldMeta = {
5
+ export type AdminFieldOptionMeta = {
6
+ value: string | number | boolean;
7
+ label: string;
8
+ };
9
+ export type AdminEditableFieldMeta = {
6
10
  name: string;
7
11
  label: string;
8
12
  help_text: string | null;
13
+ required: boolean;
14
+ placeholder?: string | null;
15
+ nullable: boolean;
16
+ read_only: boolean;
17
+ type: string;
18
+ input_kind: AdminFieldInputKind;
19
+ has_choices: boolean;
20
+ is_relation_many: boolean;
21
+ options?: AdminFieldOptionMeta[];
22
+ auto_now?: boolean;
23
+ };
24
+ export type AdminFieldMeta = AdminEditableFieldMeta & {
9
25
  width_px?: number | null;
10
26
  display_kind: AdminFieldDisplayKind;
11
27
  image_url_prefix?: string | null;
12
- nullable: boolean;
13
- read_only: boolean;
14
28
  hidden_in_list: boolean;
15
29
  hidden_in_detail: boolean;
16
30
  hidden_in_form: boolean;
17
31
  hidden_in_create: boolean;
18
32
  hidden_in_update: boolean;
19
- type: string;
20
- input_kind: AdminFieldInputKind;
21
33
  is_primary_key: boolean;
22
34
  is_virtual: boolean;
23
- has_choices: boolean;
24
35
  is_relation: boolean;
25
- is_relation_many: boolean;
26
36
  is_sortable: boolean;
27
37
  };
38
+ export type AdminCreateFormFieldMeta = AdminEditableFieldMeta & {
39
+ placeholder: string | null;
40
+ options: AdminFieldOptionMeta[];
41
+ auto_now: boolean;
42
+ };
43
+ export type AdminFormFieldMeta = AdminCreateFormFieldMeta;
28
44
  export type AdminListFilterOptionMeta = {
29
45
  value: string;
30
46
  label: string;
@@ -43,10 +59,12 @@ export type AdminListFilterMeta = {
43
59
  export type AdminBulkActionMeta = {
44
60
  slug: string;
45
61
  label: string;
62
+ form: AdminFormFieldMeta[] | null;
46
63
  };
47
64
  export type AdminObjectActionMeta = {
48
65
  slug: string;
49
66
  label: string;
67
+ form: AdminFormFieldMeta[] | null;
50
68
  };
51
69
  export type AdminModelMeta = {
52
70
  locale: AdminLocale;
@@ -60,6 +78,7 @@ export type AdminModelMeta = {
60
78
  list_fields: string[];
61
79
  detail_fields: string[];
62
80
  create_fields: string[];
81
+ create_form: AdminCreateFormFieldMeta[] | null;
63
82
  update_fields: string[];
64
83
  bulk_actions: AdminBulkActionMeta[];
65
84
  object_actions: AdminObjectActionMeta[];
@@ -1,9 +1,10 @@
1
- import type { AdminFieldMeta, AdminLocale } from '@xladmin-core/types';
1
+ import type { AdminEditableFieldMeta, AdminFieldMeta, AdminLocale } from '@xladmin-core/types';
2
2
  /**
3
3
  * Готовит payload для create/patch так, чтобы nullable-поля можно было очищать,
4
4
  * а служебные пустые поля вроде пароля не улетали в API без необходимости.
5
5
  */
6
- export declare function buildAdminPayload(values: Record<string, unknown>, fields: AdminFieldMeta[]): Record<string, unknown>;
6
+ export declare function buildAdminPayload(values: Record<string, unknown>, fields: AdminEditableFieldMeta[]): Record<string, unknown>;
7
+ export declare function buildAdminFormInitialValues(fields: AdminEditableFieldMeta[], initialValues?: Record<string, unknown>): Record<string, unknown>;
7
8
  type FormatAdminValueOptions = {
8
9
  locale?: AdminLocale;
9
10
  field?: Pick<AdminFieldMeta, 'input_kind' | 'type'>;
@@ -0,0 +1,148 @@
1
+ import type { AdminLocale } from '../types';
2
+ export declare function getMuiPickersLocaleText(locale: AdminLocale): {
3
+ previousMonth?: string | undefined;
4
+ nextMonth?: string | undefined;
5
+ calendarWeekNumberHeaderLabel?: string | undefined;
6
+ calendarWeekNumberHeaderText?: string | undefined;
7
+ calendarWeekNumberAriaLabelText?: ((weekNumber: number) => string) | undefined;
8
+ calendarWeekNumberText?: ((weekNumber: number) => string) | undefined;
9
+ openPreviousView?: string | undefined;
10
+ openNextView?: string | undefined;
11
+ calendarViewSwitchingButtonAriaLabel?: ((currentView: import("@mui/x-date-pickers").DateView) => string) | undefined;
12
+ start?: string | undefined;
13
+ end?: string | undefined;
14
+ startDate?: string | undefined;
15
+ startTime?: string | undefined;
16
+ endDate?: string | undefined;
17
+ endTime?: string | undefined;
18
+ cancelButtonLabel?: string | undefined;
19
+ clearButtonLabel?: string | undefined;
20
+ okButtonLabel?: string | undefined;
21
+ todayButtonLabel?: string | undefined;
22
+ nextStepButtonLabel?: string | undefined;
23
+ clockLabelText?: ((view: import("@mui/x-date-pickers").TimeView, formattedTime: string | null) => string) | undefined;
24
+ hoursClockNumberText?: ((hours: string) => string) | undefined;
25
+ minutesClockNumberText?: ((minutes: string) => string) | undefined;
26
+ secondsClockNumberText?: ((seconds: string) => string) | undefined;
27
+ selectViewText?: ((view: import("@mui/x-date-pickers/internals").TimeViewWithMeridiem) => string) | undefined;
28
+ openDatePickerDialogue?: ((formattedDate: string | null) => string) | undefined;
29
+ openTimePickerDialogue?: ((formattedTime: string | null) => string) | undefined;
30
+ openRangePickerDialogue?: ((formattedRange: string | null) => string) | undefined;
31
+ fieldClearLabel?: string | undefined;
32
+ timeTableLabel?: string | undefined;
33
+ dateTableLabel?: string | undefined;
34
+ fieldYearPlaceholder?: ((params: {
35
+ digitAmount: number;
36
+ format: string;
37
+ }) => string) | undefined;
38
+ fieldMonthPlaceholder?: ((params: {
39
+ contentType: import("@mui/x-date-pickers").FieldSectionContentType;
40
+ format: string;
41
+ }) => string) | undefined;
42
+ fieldDayPlaceholder?: ((params: {
43
+ format: string;
44
+ }) => string) | undefined;
45
+ fieldWeekDayPlaceholder?: ((params: {
46
+ contentType: import("@mui/x-date-pickers").FieldSectionContentType;
47
+ format: string;
48
+ }) => string) | undefined;
49
+ fieldHoursPlaceholder?: ((params: {
50
+ format: string;
51
+ }) => string) | undefined;
52
+ fieldMinutesPlaceholder?: ((params: {
53
+ format: string;
54
+ }) => string) | undefined;
55
+ fieldSecondsPlaceholder?: ((params: {
56
+ format: string;
57
+ }) => string) | undefined;
58
+ fieldMeridiemPlaceholder?: ((params: {
59
+ format: string;
60
+ }) => string) | undefined;
61
+ year?: string | undefined;
62
+ month?: string | undefined;
63
+ day?: string | undefined;
64
+ weekDay?: string | undefined;
65
+ hours?: string | undefined;
66
+ minutes?: string | undefined;
67
+ seconds?: string | undefined;
68
+ meridiem?: string | undefined;
69
+ empty?: string | undefined;
70
+ datePickerToolbarTitle?: string | undefined;
71
+ timePickerToolbarTitle?: string | undefined;
72
+ dateTimePickerToolbarTitle?: string | undefined;
73
+ dateRangePickerToolbarTitle?: string | undefined;
74
+ timeRangePickerToolbarTitle?: string | undefined;
75
+ } | {
76
+ previousMonth?: string | undefined;
77
+ nextMonth?: string | undefined;
78
+ calendarWeekNumberHeaderLabel?: string | undefined;
79
+ calendarWeekNumberHeaderText?: string | undefined;
80
+ calendarWeekNumberAriaLabelText?: ((weekNumber: number) => string) | undefined;
81
+ calendarWeekNumberText?: ((weekNumber: number) => string) | undefined;
82
+ openPreviousView?: string | undefined;
83
+ openNextView?: string | undefined;
84
+ calendarViewSwitchingButtonAriaLabel?: ((currentView: import("@mui/x-date-pickers").DateView) => string) | undefined;
85
+ start?: string | undefined;
86
+ end?: string | undefined;
87
+ startDate?: string | undefined;
88
+ startTime?: string | undefined;
89
+ endDate?: string | undefined;
90
+ endTime?: string | undefined;
91
+ cancelButtonLabel?: string | undefined;
92
+ clearButtonLabel?: string | undefined;
93
+ okButtonLabel?: string | undefined;
94
+ todayButtonLabel?: string | undefined;
95
+ nextStepButtonLabel?: string | undefined;
96
+ clockLabelText?: ((view: import("@mui/x-date-pickers").TimeView, formattedTime: string | null) => string) | undefined;
97
+ hoursClockNumberText?: ((hours: string) => string) | undefined;
98
+ minutesClockNumberText?: ((minutes: string) => string) | undefined;
99
+ secondsClockNumberText?: ((seconds: string) => string) | undefined;
100
+ selectViewText?: ((view: import("@mui/x-date-pickers/internals").TimeViewWithMeridiem) => string) | undefined;
101
+ openDatePickerDialogue?: ((formattedDate: string | null) => string) | undefined;
102
+ openTimePickerDialogue?: ((formattedTime: string | null) => string) | undefined;
103
+ openRangePickerDialogue?: ((formattedRange: string | null) => string) | undefined;
104
+ fieldClearLabel?: string | undefined;
105
+ timeTableLabel?: string | undefined;
106
+ dateTableLabel?: string | undefined;
107
+ fieldYearPlaceholder?: ((params: {
108
+ digitAmount: number;
109
+ format: string;
110
+ }) => string) | undefined;
111
+ fieldMonthPlaceholder?: ((params: {
112
+ contentType: import("@mui/x-date-pickers").FieldSectionContentType;
113
+ format: string;
114
+ }) => string) | undefined;
115
+ fieldDayPlaceholder?: ((params: {
116
+ format: string;
117
+ }) => string) | undefined;
118
+ fieldWeekDayPlaceholder?: ((params: {
119
+ contentType: import("@mui/x-date-pickers").FieldSectionContentType;
120
+ format: string;
121
+ }) => string) | undefined;
122
+ fieldHoursPlaceholder?: ((params: {
123
+ format: string;
124
+ }) => string) | undefined;
125
+ fieldMinutesPlaceholder?: ((params: {
126
+ format: string;
127
+ }) => string) | undefined;
128
+ fieldSecondsPlaceholder?: ((params: {
129
+ format: string;
130
+ }) => string) | undefined;
131
+ fieldMeridiemPlaceholder?: ((params: {
132
+ format: string;
133
+ }) => string) | undefined;
134
+ year?: string | undefined;
135
+ month?: string | undefined;
136
+ day?: string | undefined;
137
+ weekDay?: string | undefined;
138
+ hours?: string | undefined;
139
+ minutes?: string | undefined;
140
+ seconds?: string | undefined;
141
+ meridiem?: string | undefined;
142
+ empty?: string | undefined;
143
+ datePickerToolbarTitle?: string | undefined;
144
+ timePickerToolbarTitle?: string | undefined;
145
+ dateTimePickerToolbarTitle?: string | undefined;
146
+ dateRangePickerToolbarTitle?: string | undefined;
147
+ timeRangePickerToolbarTitle?: string | undefined;
148
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xladmin",
3
- "version": "0.3.7",
3
+ "version": "0.5.0",
4
4
  "description": "Framework-agnostic React + MUI admin frontend for xladmin.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -38,9 +38,9 @@
38
38
  "peerDependencies": {
39
39
  "@emotion/react": ">=11.14.0 <12.0.0",
40
40
  "@emotion/styled": ">=11.14.0 <12.0.0",
41
- "@mui/icons-material": ">=7.0.0 <8.0.0",
42
- "@mui/material": ">=7.0.0 <8.0.0",
43
- "@mui/x-date-pickers": ">=8.0.0 <9.0.0",
41
+ "@mui/icons-material": ">=9.0.0 <10.0.0",
42
+ "@mui/material": ">=9.0.0 <10.0.0",
43
+ "@mui/x-date-pickers": ">=9.0.0 <10.0.0",
44
44
  "axios": ">=1.0.0 <2.0.0",
45
45
  "dayjs": ">=1.11.0 <2.0.0",
46
46
  "react": ">=19.0.0 <20.0.0",