@antelopejs/interface-dms 0.7.4 → 0.9.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.
Files changed (239) hide show
  1. package/CHANGELOG.md +176 -0
  2. package/dist/auth/index.d.ts +3 -3
  3. package/dist/auth/index.js +11 -9
  4. package/dist/auth/index.js.map +1 -1
  5. package/dist/auth/internal/jwt-auth-decorator.d.ts +20 -0
  6. package/dist/auth/internal/jwt-auth-decorator.js +51 -0
  7. package/dist/auth/internal/jwt-auth-decorator.js.map +1 -0
  8. package/dist/auth/internal/request-authenticators.d.ts +12 -0
  9. package/dist/auth/internal/request-authenticators.js +22 -0
  10. package/dist/auth/internal/request-authenticators.js.map +1 -1
  11. package/dist/base/activity-feed.d.ts +6 -6
  12. package/dist/base/block-registry/types.d.ts +16 -0
  13. package/dist/base/block-types.d.ts +1 -0
  14. package/dist/base/block-types.js +1 -0
  15. package/dist/base/block-types.js.map +1 -1
  16. package/dist/base/chart-card.d.ts +15 -0
  17. package/dist/base/chart-card.js +4 -0
  18. package/dist/base/chart-card.js.map +1 -1
  19. package/dist/base/chart-schemas.d.ts +26 -26
  20. package/dist/base/code-block.d.ts +3 -3
  21. package/dist/base/data-types/compare-types.js +19 -13
  22. package/dist/base/data-types/compare-types.js.map +1 -1
  23. package/dist/base/data-types/core.d.ts +11 -0
  24. package/dist/base/data-types/core.js +14 -1
  25. package/dist/base/data-types/core.js.map +1 -1
  26. package/dist/base/data-types/default-types.d.ts +112 -2
  27. package/dist/base/data-types/default-types.js +90 -19
  28. package/dist/base/data-types/default-types.js.map +1 -1
  29. package/dist/base/data-types/field-types.d.ts +10 -4
  30. package/dist/base/data-types/field-types.js +12 -2
  31. package/dist/base/data-types/field-types.js.map +1 -1
  32. package/dist/base/data-types/internal/compare-types.d.ts +3 -0
  33. package/dist/base/data-types/internal/compare-types.js +7 -0
  34. package/dist/base/data-types/internal/compare-types.js.map +1 -1
  35. package/dist/base/empty-state.d.ts +4 -4
  36. package/dist/base/form-block-schema.d.ts +59 -3
  37. package/dist/base/form-block-schema.js +12 -2
  38. package/dist/base/form-block-schema.js.map +1 -1
  39. package/dist/base/form-schema.d.ts +57 -5
  40. package/dist/base/form-schema.js +22 -0
  41. package/dist/base/form-schema.js.map +1 -1
  42. package/dist/base/form-types.d.ts +82 -13
  43. package/dist/base/form-types.js +12 -4
  44. package/dist/base/form-types.js.map +1 -1
  45. package/dist/base/guard.d.ts +6 -6
  46. package/dist/base/helpers/archive-mode-helpers.js +6 -2
  47. package/dist/base/helpers/archive-mode-helpers.js.map +1 -1
  48. package/dist/base/index.d.ts +1 -0
  49. package/dist/base/index.js +1 -0
  50. package/dist/base/index.js.map +1 -1
  51. package/dist/base/internal/form-schema.js +5 -0
  52. package/dist/base/internal/form-schema.js.map +1 -1
  53. package/dist/base/internal/layouts.d.ts +15 -3
  54. package/dist/base/key-value-list.d.ts +12 -9
  55. package/dist/base/key-value-list.js +1 -1
  56. package/dist/base/key-value-list.js.map +1 -1
  57. package/dist/base/kpi-card.d.ts +39 -5
  58. package/dist/base/kpi-card.js +18 -6
  59. package/dist/base/kpi-card.js.map +1 -1
  60. package/dist/base/layouts.d.ts +24 -1
  61. package/dist/base/layouts.js.map +1 -1
  62. package/dist/base/live-toggle.d.ts +11 -0
  63. package/dist/base/live-toggle.js +8 -1
  64. package/dist/base/live-toggle.js.map +1 -1
  65. package/dist/base/page-toolbar.d.ts +158 -0
  66. package/dist/base/page-toolbar.js +198 -0
  67. package/dist/base/page-toolbar.js.map +1 -0
  68. package/dist/base/period-selector.d.ts +9 -2
  69. package/dist/base/period-selector.js.map +1 -1
  70. package/dist/base/placeholder.d.ts +2 -2
  71. package/dist/base/section.d.ts +2 -2
  72. package/dist/base/stack.d.ts +2 -2
  73. package/dist/base/stat-group.d.ts +18 -6
  74. package/dist/base/stat-group.js +9 -0
  75. package/dist/base/stat-group.js.map +1 -1
  76. package/dist/base/table-view/column-display.d.ts +9 -5
  77. package/dist/base/table-view/column-display.js +1 -1
  78. package/dist/base/table-view/column-display.js.map +1 -1
  79. package/dist/base/table-view/data-functions.d.ts +26 -7
  80. package/dist/base/table-view/data-functions.js +10 -6
  81. package/dist/base/table-view/data-functions.js.map +1 -1
  82. package/dist/base/table-view/factory.js +24 -13
  83. package/dist/base/table-view/factory.js.map +1 -1
  84. package/dist/base/table-view/internal/auth.d.ts +2 -0
  85. package/dist/base/table-view/internal/auth.js +3 -1
  86. package/dist/base/table-view/internal/auth.js.map +1 -1
  87. package/dist/base/table-view/internal/column-conditions.d.ts +15 -0
  88. package/dist/base/table-view/internal/column-conditions.js +94 -0
  89. package/dist/base/table-view/internal/column-conditions.js.map +1 -0
  90. package/dist/base/table-view/internal/factory-helpers.d.ts +5 -0
  91. package/dist/base/table-view/internal/factory-helpers.js +55 -11
  92. package/dist/base/table-view/internal/factory-helpers.js.map +1 -1
  93. package/dist/base/table-view/internal/guards.js +19 -2
  94. package/dist/base/table-view/internal/guards.js.map +1 -1
  95. package/dist/base/table-view/internal/realtime.js +17 -0
  96. package/dist/base/table-view/internal/realtime.js.map +1 -1
  97. package/dist/base/table-view/internal/resource-form.js +1 -0
  98. package/dist/base/table-view/internal/resource-form.js.map +1 -1
  99. package/dist/base/table-view/internal/row-actions-schema.d.ts +296 -0
  100. package/dist/base/table-view/internal/row-actions-schema.js +62 -0
  101. package/dist/base/table-view/internal/row-actions-schema.js.map +1 -0
  102. package/dist/base/table-view/internal/validation.d.ts +22 -3
  103. package/dist/base/table-view/internal/validation.js +92 -2
  104. package/dist/base/table-view/internal/validation.js.map +1 -1
  105. package/dist/base/table-view/meta.d.ts +25 -1
  106. package/dist/base/table-view/meta.js +36 -4
  107. package/dist/base/table-view/meta.js.map +1 -1
  108. package/dist/base/table-view/options.d.ts +92 -16
  109. package/dist/base/table-view/options.js.map +1 -1
  110. package/dist/base/table-view/realtime.d.ts +8 -0
  111. package/dist/base/table-view/realtime.js.map +1 -1
  112. package/dist/base/table-view/routes.js +8 -4
  113. package/dist/base/table-view/routes.js.map +1 -1
  114. package/dist/base/table-view/schema.d.ts +36 -30
  115. package/dist/base/table-view/schema.js +11 -57
  116. package/dist/base/table-view/schema.js.map +1 -1
  117. package/dist/base/table-view/source.d.ts +1 -1
  118. package/dist/base/table-view/source.js +4 -1
  119. package/dist/base/table-view/source.js.map +1 -1
  120. package/dist/base/table-view.d.ts +2 -2
  121. package/dist/base/table-view.js.map +1 -1
  122. package/dist/base/top-list-card.d.ts +5 -5
  123. package/dist/base/types/action-target.d.ts +77 -20
  124. package/dist/base/types/confirm-dialog.d.ts +5 -1
  125. package/dist/base/types/custom-button.d.ts +5 -3
  126. package/dist/base/types/field-config.d.ts +4 -4
  127. package/dist/base/types/guards.d.ts +10 -0
  128. package/dist/base/types/row-action.d.ts +6 -1
  129. package/dist/base/types/size.d.ts +3 -1
  130. package/dist/client-ip.d.ts +6 -2
  131. package/dist/client-ip.js +4 -2
  132. package/dist/client-ip.js.map +1 -1
  133. package/dist/component.d.ts +14 -0
  134. package/dist/component.js.map +1 -1
  135. package/dist/data-controllers/members.d.ts +0 -3
  136. package/dist/data-controllers/members.js +30 -8
  137. package/dist/data-controllers/members.js.map +1 -1
  138. package/dist/db/internal/tenantLifecycle.model.js +5 -2
  139. package/dist/db/internal/tenantLifecycle.model.js.map +1 -1
  140. package/dist/guards.js +2 -3
  141. package/dist/guards.js.map +1 -1
  142. package/dist/hooks.d.ts +54 -10
  143. package/dist/hooks.js +12 -4
  144. package/dist/hooks.js.map +1 -1
  145. package/dist/index.d.ts +3 -3
  146. package/dist/index.js +3 -2
  147. package/dist/index.js.map +1 -1
  148. package/dist/internal/invite-membership.d.ts +9 -0
  149. package/dist/internal/invite-membership.js +25 -7
  150. package/dist/internal/invite-membership.js.map +1 -1
  151. package/dist/internal/member-changes.d.ts +24 -0
  152. package/dist/internal/member-changes.js +66 -0
  153. package/dist/internal/member-changes.js.map +1 -0
  154. package/dist/internal/tenant-ownership.d.ts +4 -1
  155. package/dist/internal/tenant-ownership.js +4 -10
  156. package/dist/internal/tenant-ownership.js.map +1 -1
  157. package/dist/invite-extensions/internal/form-slot.js +1 -1
  158. package/dist/invite-extensions/internal/form-slot.js.map +1 -1
  159. package/dist/invite-extensions.d.ts +0 -9
  160. package/dist/invite-extensions.js +1 -36
  161. package/dist/invite-extensions.js.map +1 -1
  162. package/dist/invite-resolution.js +6 -2
  163. package/dist/invite-resolution.js.map +1 -1
  164. package/dist/invites.js +36 -22
  165. package/dist/invites.js.map +1 -1
  166. package/dist/layout-banners.d.ts +40 -4
  167. package/dist/layout-banners.js +25 -3
  168. package/dist/layout-banners.js.map +1 -1
  169. package/dist/notifications/internal.d.ts +2 -2
  170. package/dist/notifications/internal.js.map +1 -1
  171. package/dist/notifications/sendable.d.ts +3 -2
  172. package/dist/notifications/sendable.js +2 -1
  173. package/dist/notifications/sendable.js.map +1 -1
  174. package/dist/notifications/types.d.ts +9 -0
  175. package/dist/page/controllers.d.ts +44 -0
  176. package/dist/page/controllers.js +14 -1
  177. package/dist/page/controllers.js.map +1 -1
  178. package/dist/page/internal/layout-filter.d.ts +10 -4
  179. package/dist/page/internal/layout-filter.js +27 -14
  180. package/dist/page/internal/layout-filter.js.map +1 -1
  181. package/dist/page/internal/metadata-helpers.d.ts +7 -0
  182. package/dist/page/internal/metadata-helpers.js +13 -2
  183. package/dist/page/internal/metadata-helpers.js.map +1 -1
  184. package/dist/page/internal/page-record.d.ts +34 -0
  185. package/dist/page/internal/page-record.js +87 -0
  186. package/dist/page/internal/page-record.js.map +1 -0
  187. package/dist/page/internal/page-registration.d.ts +2 -0
  188. package/dist/page/internal/page-registration.js.map +1 -1
  189. package/dist/page/layout-filter.js +31 -10
  190. package/dist/page/layout-filter.js.map +1 -1
  191. package/dist/page/metadata.js +36 -26
  192. package/dist/page/metadata.js.map +1 -1
  193. package/dist/page/types.d.ts +39 -4
  194. package/dist/page/types.js.map +1 -1
  195. package/dist/page.d.ts +1 -1
  196. package/dist/page.js +2 -1
  197. package/dist/page.js.map +1 -1
  198. package/dist/permissions-resolver.d.ts +26 -3
  199. package/dist/permissions-resolver.js +2 -1
  200. package/dist/permissions-resolver.js.map +1 -1
  201. package/dist/permissions.d.ts +7 -3
  202. package/dist/permissions.js +8 -6
  203. package/dist/permissions.js.map +1 -1
  204. package/dist/realtime.d.ts +24 -1
  205. package/dist/realtime.js +7 -1
  206. package/dist/realtime.js.map +1 -1
  207. package/dist/request-tenant.d.ts +17 -13
  208. package/dist/request-tenant.js +54 -42
  209. package/dist/request-tenant.js.map +1 -1
  210. package/dist/tenant-members.d.ts +26 -0
  211. package/dist/tenant-members.js +29 -0
  212. package/dist/tenant-members.js.map +1 -0
  213. package/dist/tenant-ownership.d.ts +4 -1
  214. package/dist/tenant-ownership.js +12 -17
  215. package/dist/tenant-ownership.js.map +1 -1
  216. package/dist/tenant-provisioning.d.ts +15 -0
  217. package/dist/tenant-provisioning.js +27 -0
  218. package/dist/tenant-provisioning.js.map +1 -0
  219. package/dist/tenant-scoped-model.d.ts +2 -1
  220. package/dist/tenant-scoped-model.js +4 -3
  221. package/dist/tenant-scoped-model.js.map +1 -1
  222. package/docs/1.core/10.layout-banners.md +57 -2
  223. package/docs/1.core/2.pages-and-modules.md +20 -11
  224. package/docs/1.core/4.permissions.md +34 -1
  225. package/docs/1.core/5.tenancy.md +37 -6
  226. package/docs/1.core/7.hooks.md +24 -4
  227. package/docs/1.core/8.realtime.md +24 -3
  228. package/docs/2.auth/2.authentication.md +3 -3
  229. package/docs/3.base/1.introduction.md +1 -0
  230. package/docs/3.base/10.display-blocks.md +20 -2
  231. package/docs/3.base/2.types.md +7 -5
  232. package/docs/3.base/3.forms.md +28 -8
  233. package/docs/3.base/4.tables.md +27 -9
  234. package/docs/3.base/5.charts-and-widgets.md +8 -4
  235. package/docs/3.base/6.layout.md +47 -1
  236. package/docs/3.base/8.data-types.md +16 -9
  237. package/docs/4.notifications/3.sending.md +4 -3
  238. package/docs/5.html-render/1.introduction.md +5 -7
  239. package/package.json +7 -11
@@ -0,0 +1,296 @@
1
+ import { z } from "zod";
2
+ import type { CustomRowAction, RowActionRule } from "../../types/row-action";
3
+ /** @internal The builder schema of a table view's `rowActions`. */
4
+ export declare const rowActionsSchema: z.ZodObject<{
5
+ add: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
6
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
7
+ isVisible: z.ZodOptional<z.ZodBoolean>;
8
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ isEnabled?: boolean | undefined;
11
+ isVisible?: boolean | undefined;
12
+ rule?: RowActionRule | undefined;
13
+ }, {
14
+ isEnabled?: boolean | undefined;
15
+ isVisible?: boolean | undefined;
16
+ rule?: RowActionRule | undefined;
17
+ }>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
18
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
19
+ isVisible: z.ZodOptional<z.ZodBoolean>;
20
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ isEnabled?: boolean | undefined;
23
+ isVisible?: boolean | undefined;
24
+ rule?: RowActionRule | undefined;
25
+ }, {
26
+ isEnabled?: boolean | undefined;
27
+ isVisible?: boolean | undefined;
28
+ rule?: RowActionRule | undefined;
29
+ }>]>>;
30
+ edit: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
31
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
32
+ isVisible: z.ZodOptional<z.ZodBoolean>;
33
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ isEnabled?: boolean | undefined;
36
+ isVisible?: boolean | undefined;
37
+ rule?: RowActionRule | undefined;
38
+ }, {
39
+ isEnabled?: boolean | undefined;
40
+ isVisible?: boolean | undefined;
41
+ rule?: RowActionRule | undefined;
42
+ }>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
43
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
44
+ isVisible: z.ZodOptional<z.ZodBoolean>;
45
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
46
+ }, "strip", z.ZodTypeAny, {
47
+ isEnabled?: boolean | undefined;
48
+ isVisible?: boolean | undefined;
49
+ rule?: RowActionRule | undefined;
50
+ }, {
51
+ isEnabled?: boolean | undefined;
52
+ isVisible?: boolean | undefined;
53
+ rule?: RowActionRule | undefined;
54
+ }>]>>;
55
+ delete: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
56
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
57
+ isVisible: z.ZodOptional<z.ZodBoolean>;
58
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
59
+ }, "strip", z.ZodTypeAny, {
60
+ isEnabled?: boolean | undefined;
61
+ isVisible?: boolean | undefined;
62
+ rule?: RowActionRule | undefined;
63
+ }, {
64
+ isEnabled?: boolean | undefined;
65
+ isVisible?: boolean | undefined;
66
+ rule?: RowActionRule | undefined;
67
+ }>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
68
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
69
+ isVisible: z.ZodOptional<z.ZodBoolean>;
70
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ isEnabled?: boolean | undefined;
73
+ isVisible?: boolean | undefined;
74
+ rule?: RowActionRule | undefined;
75
+ }, {
76
+ isEnabled?: boolean | undefined;
77
+ isVisible?: boolean | undefined;
78
+ rule?: RowActionRule | undefined;
79
+ }>]>>;
80
+ details: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
81
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
82
+ isVisible: z.ZodOptional<z.ZodBoolean>;
83
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
84
+ }, "strip", z.ZodTypeAny, {
85
+ isEnabled?: boolean | undefined;
86
+ isVisible?: boolean | undefined;
87
+ rule?: RowActionRule | undefined;
88
+ }, {
89
+ isEnabled?: boolean | undefined;
90
+ isVisible?: boolean | undefined;
91
+ rule?: RowActionRule | undefined;
92
+ }>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
93
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
94
+ isVisible: z.ZodOptional<z.ZodBoolean>;
95
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
96
+ }, "strip", z.ZodTypeAny, {
97
+ isEnabled?: boolean | undefined;
98
+ isVisible?: boolean | undefined;
99
+ rule?: RowActionRule | undefined;
100
+ }, {
101
+ isEnabled?: boolean | undefined;
102
+ isVisible?: boolean | undefined;
103
+ rule?: RowActionRule | undefined;
104
+ }>]>>;
105
+ duplicate: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
106
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
107
+ isVisible: z.ZodOptional<z.ZodBoolean>;
108
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
109
+ }, "strip", z.ZodTypeAny, {
110
+ isEnabled?: boolean | undefined;
111
+ isVisible?: boolean | undefined;
112
+ rule?: RowActionRule | undefined;
113
+ }, {
114
+ isEnabled?: boolean | undefined;
115
+ isVisible?: boolean | undefined;
116
+ rule?: RowActionRule | undefined;
117
+ }>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
118
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
119
+ isVisible: z.ZodOptional<z.ZodBoolean>;
120
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
121
+ }, "strip", z.ZodTypeAny, {
122
+ isEnabled?: boolean | undefined;
123
+ isVisible?: boolean | undefined;
124
+ rule?: RowActionRule | undefined;
125
+ }, {
126
+ isEnabled?: boolean | undefined;
127
+ isVisible?: boolean | undefined;
128
+ rule?: RowActionRule | undefined;
129
+ }>]>>;
130
+ archive: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
131
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
132
+ isVisible: z.ZodOptional<z.ZodBoolean>;
133
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
134
+ }, "strip", z.ZodTypeAny, {
135
+ isEnabled?: boolean | undefined;
136
+ isVisible?: boolean | undefined;
137
+ rule?: RowActionRule | undefined;
138
+ }, {
139
+ isEnabled?: boolean | undefined;
140
+ isVisible?: boolean | undefined;
141
+ rule?: RowActionRule | undefined;
142
+ }>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
143
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
144
+ isVisible: z.ZodOptional<z.ZodBoolean>;
145
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
146
+ }, "strip", z.ZodTypeAny, {
147
+ isEnabled?: boolean | undefined;
148
+ isVisible?: boolean | undefined;
149
+ rule?: RowActionRule | undefined;
150
+ }, {
151
+ isEnabled?: boolean | undefined;
152
+ isVisible?: boolean | undefined;
153
+ rule?: RowActionRule | undefined;
154
+ }>]>>;
155
+ restore: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
156
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
157
+ isVisible: z.ZodOptional<z.ZodBoolean>;
158
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
159
+ }, "strip", z.ZodTypeAny, {
160
+ isEnabled?: boolean | undefined;
161
+ isVisible?: boolean | undefined;
162
+ rule?: RowActionRule | undefined;
163
+ }, {
164
+ isEnabled?: boolean | undefined;
165
+ isVisible?: boolean | undefined;
166
+ rule?: RowActionRule | undefined;
167
+ }>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
168
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
169
+ isVisible: z.ZodOptional<z.ZodBoolean>;
170
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
171
+ }, "strip", z.ZodTypeAny, {
172
+ isEnabled?: boolean | undefined;
173
+ isVisible?: boolean | undefined;
174
+ rule?: RowActionRule | undefined;
175
+ }, {
176
+ isEnabled?: boolean | undefined;
177
+ isVisible?: boolean | undefined;
178
+ rule?: RowActionRule | undefined;
179
+ }>]>>;
180
+ copyLink: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
181
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
182
+ isVisible: z.ZodOptional<z.ZodBoolean>;
183
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
184
+ }, "strip", z.ZodTypeAny, {
185
+ isEnabled?: boolean | undefined;
186
+ isVisible?: boolean | undefined;
187
+ rule?: RowActionRule | undefined;
188
+ }, {
189
+ isEnabled?: boolean | undefined;
190
+ isVisible?: boolean | undefined;
191
+ rule?: RowActionRule | undefined;
192
+ }>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
193
+ isEnabled: z.ZodOptional<z.ZodBoolean>;
194
+ isVisible: z.ZodOptional<z.ZodBoolean>;
195
+ rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
196
+ }, "strip", z.ZodTypeAny, {
197
+ isEnabled?: boolean | undefined;
198
+ isVisible?: boolean | undefined;
199
+ rule?: RowActionRule | undefined;
200
+ }, {
201
+ isEnabled?: boolean | undefined;
202
+ isVisible?: boolean | undefined;
203
+ rule?: RowActionRule | undefined;
204
+ }>]>>;
205
+ hasSelection: z.ZodOptional<z.ZodBoolean>;
206
+ custom: z.ZodOptional<z.ZodType<CustomRowAction<Record<string, unknown>>[], z.ZodTypeDef, CustomRowAction<Record<string, unknown>>[]>>;
207
+ menuLabel: z.ZodOptional<z.ZodString>;
208
+ }, "strip", z.ZodTypeAny, {
209
+ delete?: boolean | {
210
+ isEnabled?: boolean | undefined;
211
+ isVisible?: boolean | undefined;
212
+ rule?: RowActionRule | undefined;
213
+ } | undefined;
214
+ custom?: CustomRowAction<Record<string, unknown>>[] | undefined;
215
+ edit?: boolean | {
216
+ isEnabled?: boolean | undefined;
217
+ isVisible?: boolean | undefined;
218
+ rule?: RowActionRule | undefined;
219
+ } | undefined;
220
+ add?: boolean | {
221
+ isEnabled?: boolean | undefined;
222
+ isVisible?: boolean | undefined;
223
+ rule?: RowActionRule | undefined;
224
+ } | undefined;
225
+ archive?: boolean | {
226
+ isEnabled?: boolean | undefined;
227
+ isVisible?: boolean | undefined;
228
+ rule?: RowActionRule | undefined;
229
+ } | undefined;
230
+ restore?: boolean | {
231
+ isEnabled?: boolean | undefined;
232
+ isVisible?: boolean | undefined;
233
+ rule?: RowActionRule | undefined;
234
+ } | undefined;
235
+ details?: boolean | {
236
+ isEnabled?: boolean | undefined;
237
+ isVisible?: boolean | undefined;
238
+ rule?: RowActionRule | undefined;
239
+ } | undefined;
240
+ duplicate?: boolean | {
241
+ isEnabled?: boolean | undefined;
242
+ isVisible?: boolean | undefined;
243
+ rule?: RowActionRule | undefined;
244
+ } | undefined;
245
+ copyLink?: boolean | {
246
+ isEnabled?: boolean | undefined;
247
+ isVisible?: boolean | undefined;
248
+ rule?: RowActionRule | undefined;
249
+ } | undefined;
250
+ hasSelection?: boolean | undefined;
251
+ menuLabel?: string | undefined;
252
+ }, {
253
+ delete?: boolean | {
254
+ isEnabled?: boolean | undefined;
255
+ isVisible?: boolean | undefined;
256
+ rule?: RowActionRule | undefined;
257
+ } | undefined;
258
+ custom?: CustomRowAction<Record<string, unknown>>[] | undefined;
259
+ edit?: boolean | {
260
+ isEnabled?: boolean | undefined;
261
+ isVisible?: boolean | undefined;
262
+ rule?: RowActionRule | undefined;
263
+ } | undefined;
264
+ add?: boolean | {
265
+ isEnabled?: boolean | undefined;
266
+ isVisible?: boolean | undefined;
267
+ rule?: RowActionRule | undefined;
268
+ } | undefined;
269
+ archive?: boolean | {
270
+ isEnabled?: boolean | undefined;
271
+ isVisible?: boolean | undefined;
272
+ rule?: RowActionRule | undefined;
273
+ } | undefined;
274
+ restore?: boolean | {
275
+ isEnabled?: boolean | undefined;
276
+ isVisible?: boolean | undefined;
277
+ rule?: RowActionRule | undefined;
278
+ } | undefined;
279
+ details?: boolean | {
280
+ isEnabled?: boolean | undefined;
281
+ isVisible?: boolean | undefined;
282
+ rule?: RowActionRule | undefined;
283
+ } | undefined;
284
+ duplicate?: boolean | {
285
+ isEnabled?: boolean | undefined;
286
+ isVisible?: boolean | undefined;
287
+ rule?: RowActionRule | undefined;
288
+ } | undefined;
289
+ copyLink?: boolean | {
290
+ isEnabled?: boolean | undefined;
291
+ isVisible?: boolean | undefined;
292
+ rule?: RowActionRule | undefined;
293
+ } | undefined;
294
+ hasSelection?: boolean | undefined;
295
+ menuLabel?: string | undefined;
296
+ }>;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ // The builder schema of a table view's row actions, each a switch that may
3
+ // carry a rule.
4
+ //
5
+ // Split out of table-view/schema.ts.
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.rowActionsSchema = void 0;
8
+ const zod_1 = require("zod");
9
+ const block_registry_1 = require("../../block-registry");
10
+ const rowActionConfigSchema = zod_1.z.object({
11
+ isEnabled: zod_1.z.boolean().optional(),
12
+ isVisible: zod_1.z.boolean().optional(),
13
+ rule: (0, block_registry_1.ui)((0, block_registry_1.opaqueOption)().optional(), {
14
+ label: "Rule",
15
+ widget: "json",
16
+ }),
17
+ });
18
+ const rowActionOption = (label, order, { offered = true, note } = {}) => {
19
+ const action = zod_1.z.union([zod_1.z.boolean(), rowActionConfigSchema]);
20
+ const described = note ? action.describe(note) : action;
21
+ return (0, block_registry_1.ui)(offered ? described.default(true) : described.optional(), {
22
+ label,
23
+ order,
24
+ group: "features",
25
+ widget: "switch",
26
+ });
27
+ };
28
+ /** @internal The builder schema of a table view's `rowActions`. */
29
+ exports.rowActionsSchema = zod_1.z.object({
30
+ add: rowActionOption("Adding data", 1),
31
+ edit: rowActionOption("Editing data", 2),
32
+ delete: rowActionOption("Deleting data", 3),
33
+ // Turned off whenever editing is on without a rule: editing opens the row
34
+ // already, so the factory drops the second way in.
35
+ details: rowActionOption("View details", 6, {
36
+ offered: false,
37
+ note: "Offered while editing is off: editing already opens the row.",
38
+ }),
39
+ duplicate: rowActionOption("Duplicate", 7),
40
+ archive: rowActionOption("Archive", 8, {
41
+ note: "Offered while ghost delete is on.",
42
+ }),
43
+ restore: rowActionOption("Restore", 9, {
44
+ note: "Offered while ghost delete is on.",
45
+ }),
46
+ copyLink: rowActionOption("Copy link", 10),
47
+ hasSelection: (0, block_registry_1.ui)(zod_1.z.boolean().optional(), {
48
+ label: "Row selection",
49
+ order: 11,
50
+ group: "features",
51
+ widget: "switch",
52
+ }),
53
+ custom: (0, block_registry_1.ui)((0, block_registry_1.opaqueOption)().optional(), {
54
+ label: "Custom actions",
55
+ hidden: true,
56
+ }),
57
+ menuLabel: (0, block_registry_1.ui)(zod_1.z
58
+ .string()
59
+ .optional()
60
+ .describe("Accessible name of a row's ⋯ menu, e.g. Actions for {name}."), { label: "Row menu label", order: 12, group: "features", advanced: true }),
61
+ });
62
+ //# sourceMappingURL=row-actions-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-actions-schema.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/row-actions-schema.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,gBAAgB;AAChB,EAAE;AACF,qCAAqC;;;AAErC,6BAAwB;AACxB,yDAA8E;AAI9E,MAAM,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAAiB,CAAC,QAAQ,EAAE,EAAE;QACjD,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACf,CAAC;CACH,CAAC,CAAC;AAaH,MAAM,eAAe,GAAG,CACtB,KAAa,EACb,KAAa,EACb,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,KAAwB,EAAE,EAChD,EAAE;IACF,MAAM,MAAM,GAAG,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxD,OAAO,IAAA,mBAAE,EAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;QAClE,KAAK;QACL,KAAK;QACL,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,mEAAmE;AACtD,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,GAAG,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3C,0EAA0E;IAC1E,mDAAmD;IACnD,OAAO,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,EAAE;QAC1C,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,8DAA8D;KACrE,CAAC;IACF,SAAS,EAAE,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE;QACrC,IAAI,EAAE,mCAAmC;KAC1C,CAAC;IACF,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE;QACrC,IAAI,EAAE,mCAAmC;KAC1C,CAAC;IACF,QAAQ,EAAE,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;IAC1C,YAAY,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACvC,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,MAAM,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAAqB,CAAC,QAAQ,EAAE,EAAE;QACvD,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,IAAI;KACb,CAAC;IACF,SAAS,EAAE,IAAA,mBAAE,EACX,OAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6DAA6D,CAAC,EAC1E,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAC1E;CACF,CAAsD,CAAC"}
@@ -1,5 +1,12 @@
1
- import { TableViewMeta } from "../meta";
1
+ import { type ColumnOptions, TableViewMeta } from "../meta";
2
2
  import { type FormContainerPages, type GroupedOptions, type KanbanOptions, type TableViewDisplayOption, type TableViewOptions, type TableViewQuickFilter, type TableViewTab, type TableViewViewsOptions } from "../options";
3
+ /**
4
+ * A column's `visibleWhen` and `disabledWhen` name another column of the
5
+ * controller and at least one value.
6
+ *
7
+ * @internal
8
+ */
9
+ export declare function validateColumnConditions(controllerName: string, meta: Pick<TableViewMeta, "columns">): void;
3
10
  /**
4
11
  * `pageSize` is a whole number of rows, from 1 up to {@link MAX_TABLE_PAGE_SIZE}.
5
12
  *
@@ -12,8 +19,18 @@ export declare function validatePageSize(controllerName: string, pageSize: numbe
12
19
  * @internal
13
20
  */
14
21
  export declare function assertKnownColumns(controllerName: string, meta: Pick<TableViewMeta, "columns">, option: string, keys: string[]): void;
22
+ /**
23
+ * Warns, once per table and field, about a quick filter whose column offers
24
+ * nothing to pick — a free-text string, a number, a date, a select without
25
+ * items: the browser leaves it out of the toolbar. Not thrown, so that an
26
+ * application already declaring one keeps starting.
27
+ *
28
+ * @internal
29
+ */
30
+ export declare function warnIfQuickFiltersLackValues(controllerName: string, columns: Record<string, Pick<ColumnOptions, "type"> | undefined>, quickFilters: TableViewQuickFilter[] | undefined): void;
15
31
  /**
16
32
  * Quick filters must name filterable columns: they filter with `filter_<field>`.
33
+ * One on a column with no values to pick is only warned about.
17
34
  *
18
35
  * @internal
19
36
  */
@@ -54,13 +71,15 @@ export declare function offeredDisplays(options: DisplayDeclarations): TableView
54
71
  */
55
72
  export declare function offeredDisplayIds(options: DisplayDeclarations): Set<string>;
56
73
  /**
57
- * A table view offers at least one display, and its default display is one
58
- * of them. Left out, the default is the first display offered.
74
+ * A table view offers at least one display, and its default display and its
75
+ * display on phones are among them. Left out, the default is the first
76
+ * display offered.
59
77
  *
60
78
  * @internal
61
79
  */
62
80
  export declare function validateDefaultDisplay(controllerName: string, options: DisplayDeclarations & {
63
81
  defaultDisplay?: string;
82
+ mobileDisplay?: string;
64
83
  }): void;
65
84
  /**
66
85
  * The grouped display sorts on its column, which must therefore be a sortable
@@ -5,8 +5,10 @@
5
5
  //
6
6
  // Split out of factory-helpers.ts.
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.validateColumnConditions = validateColumnConditions;
8
9
  exports.validatePageSize = validatePageSize;
9
10
  exports.assertKnownColumns = assertKnownColumns;
11
+ exports.warnIfQuickFiltersLackValues = warnIfQuickFiltersLackValues;
10
12
  exports.validateQuickFilters = validateQuickFilters;
11
13
  exports.validateKanbanOptions = validateKanbanOptions;
12
14
  exports.validateDisplayIds = validateDisplayIds;
@@ -20,9 +22,30 @@ exports.assertRowScopedFormSlugs = assertRowScopedFormSlugs;
20
22
  exports.assertTabTargets = assertTabTargets;
21
23
  exports.validateTableViewOptions = validateTableViewOptions;
22
24
  const interface_core_1 = require("@antelopejs/interface-core");
25
+ const logging_1 = require("@antelopejs/interface-core/logging");
23
26
  const metadata_1 = require("@antelopejs/interface-data-api/metadata");
24
27
  const data_types_1 = require("../../data-types");
25
28
  const options_1 = require("../options");
29
+ /**
30
+ * A column's `visibleWhen` and `disabledWhen` name another column of the
31
+ * controller and at least one value.
32
+ *
33
+ * @internal
34
+ */
35
+ function validateColumnConditions(controllerName, meta) {
36
+ for (const [key, column] of Object.entries(meta.columns)) {
37
+ for (const option of ["visibleWhen", "disabledWhen"]) {
38
+ const condition = column[option];
39
+ if (!condition)
40
+ continue;
41
+ const where = `${option} of column "${key}"`;
42
+ assertKnownColumns(controllerName, meta, where, [condition.field]);
43
+ if (condition.field === key || condition.in.length === 0) {
44
+ throw new Error(`TableView ${where} on ${controllerName} must name another column and at least one value`);
45
+ }
46
+ }
47
+ }
48
+ }
26
49
  /**
27
50
  * `pageSize` is a whole number of rows, from 1 up to {@link MAX_TABLE_PAGE_SIZE}.
28
51
  *
@@ -49,8 +72,62 @@ function assertKnownColumns(controllerName, meta, option, keys) {
49
72
  }
50
73
  }
51
74
  }
75
+ // Types whose quick filter values are known whatever their input: the two
76
+ // labels of a boolean or a status, the rows a relation's `select` endpoint
77
+ // lists. Their input is not built here: a relation's reads the metadata of
78
+ // the controller it points to, which may not be declared yet.
79
+ const QUICK_FILTER_VALUED_TYPES = new Set([
80
+ "boolean",
81
+ "status",
82
+ "relation",
83
+ "cascader_relation",
84
+ ]);
85
+ /**
86
+ * Whether the toolbar can list values for a quick filter on a column of this
87
+ * type, by the rule the browser applies: a boolean or a status, the `items`
88
+ * or `suggestions` of its input (a select, a tags column), or the endpoint
89
+ * its input searches (a relation).
90
+ * A type whose input cannot be built here is given the benefit of the doubt.
91
+ */
92
+ function offersQuickFilterValues(type) {
93
+ const typeId = (0, data_types_1.getDataTypeId)(type);
94
+ if (typeId && QUICK_FILTER_VALUED_TYPES.has(typeId))
95
+ return true;
96
+ try {
97
+ const options = (type.inputComponent().options ??
98
+ {});
99
+ return ((options.items?.length ?? 0) > 0 ||
100
+ (options.suggestions?.length ?? 0) > 0 ||
101
+ !!options.searchUrl);
102
+ }
103
+ catch {
104
+ return true;
105
+ }
106
+ }
107
+ const warnedValuelessQuickFilters = new Set();
108
+ /**
109
+ * Warns, once per table and field, about a quick filter whose column offers
110
+ * nothing to pick — a free-text string, a number, a date, a select without
111
+ * items: the browser leaves it out of the toolbar. Not thrown, so that an
112
+ * application already declaring one keeps starting.
113
+ *
114
+ * @internal
115
+ */
116
+ function warnIfQuickFiltersLackValues(controllerName, columns, quickFilters) {
117
+ for (const { field } of quickFilters ?? []) {
118
+ const column = columns[field];
119
+ if (!column || offersQuickFilterValues(column.type))
120
+ continue;
121
+ const key = `${controllerName} ${field}`;
122
+ if (warnedValuelessQuickFilters.has(key))
123
+ continue;
124
+ warnedValuelessQuickFilters.add(key);
125
+ logging_1.Logging.Warn(`[DMS] TableView quickFilters on ${controllerName}: column "${field}" (${(0, data_types_1.getDataTypeId)(column.type) ?? "custom type"}) has no values to pick, so the toolbar leaves it out. A quick filter needs a select with items, a boolean, a status or a relation column; filter a free-text column from the filters row or the search instead.`);
126
+ }
127
+ }
52
128
  /**
53
129
  * Quick filters must name filterable columns: they filter with `filter_<field>`.
130
+ * One on a column with no values to pick is only warned about.
54
131
  *
55
132
  * @internal
56
133
  */
@@ -64,6 +141,7 @@ function validateQuickFilters(controllerName, meta, quickFilters) {
64
141
  throw new Error(`TableView quickFilters on ${controllerName}: column "${field}" must be filterable`);
65
142
  }
66
143
  }
144
+ warnIfQuickFiltersLackValues(controllerName, meta.columns, quickFilters);
67
145
  }
68
146
  const KANBAN_GROUP_TYPE_ELIGIBILITY = {
69
147
  select: (type) => !type.options?.multiple,
@@ -157,8 +235,9 @@ function offeredDisplayIds(options) {
157
235
  return new Set(offeredDisplays(options).map((display) => display.id));
158
236
  }
159
237
  /**
160
- * A table view offers at least one display, and its default display is one
161
- * of them. Left out, the default is the first display offered.
238
+ * A table view offers at least one display, and its default display and its
239
+ * display on phones are among them. Left out, the default is the first
240
+ * display offered.
162
241
  *
163
242
  * @internal
164
243
  */
@@ -171,6 +250,10 @@ function validateDefaultDisplay(controllerName, options) {
171
250
  if (defaultDisplay && !offered.has(defaultDisplay)) {
172
251
  throw new Error(`TableView on ${controllerName} defaults to display "${defaultDisplay}" which is not declared in displays`);
173
252
  }
253
+ const { mobileDisplay } = options;
254
+ if (mobileDisplay && !offered.has(mobileDisplay)) {
255
+ throw new Error(`TableView on ${controllerName} opens phones on display "${mobileDisplay}" which is not declared in displays`);
256
+ }
174
257
  }
175
258
  function isSortableColumn(meta, key) {
176
259
  const fields = (0, interface_core_1.GetMetadata)(meta.target, metadata_1.DataAPIMeta).fields;
@@ -198,6 +281,12 @@ function validateGroupedOptions(controllerName, meta, grouped) {
198
281
  if (by && by !== "value" && typeId !== DAY_GROUPING_TYPE_ID) {
199
282
  throw new Error(`TableView grouped on ${controllerName} groups "${groupByField}" by ${by}, which needs a DateType column (got "${typeId}")`);
200
283
  }
284
+ // A group is counted with `filter_<column>`, which the count route ignores
285
+ // on a column without a filter: every header would read the whole total.
286
+ const filters = (0, interface_core_1.GetMetadata)(meta.target, metadata_1.DataAPIMeta).filters;
287
+ if (grouped.count && !filters[groupByField]) {
288
+ logging_1.Logging.Warn(`[DMS] TableView grouped on ${controllerName} counts its groups, but "${groupByField}" is not filterable: every group would count every row. Declare the column \`filterable: true\`.`);
289
+ }
201
290
  }
202
291
  const NUMBER_TYPE_ID = "number";
203
292
  /**
@@ -311,6 +400,7 @@ function assertTabTargets(controllerName, tabs) {
311
400
  */
312
401
  function validateTableViewOptions(controllerName, meta, options) {
313
402
  validateKanbanOptions(controllerName, meta, options.kanban);
403
+ validateColumnConditions(controllerName, meta);
314
404
  assertKnownColumns(controllerName, meta, "card fields", options.card?.fields ?? []);
315
405
  assertKnownColumns(controllerName, meta, "columns.hidden", options.columns?.hidden ?? []);
316
406
  validateGroupedOptions(controllerName, meta, options.grouped);
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/validation.ts"],"names":[],"mappings":"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"}