@veltra/sheet 2.4.0 → 2.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.
Files changed (142) hide show
  1. package/dist/index.d.ts +2 -19
  2. package/dist/index.js +2 -15
  3. package/dist/types/index.d.ts +1 -3
  4. package/package.json +2 -3
  5. package/src/index.ts +1 -27
  6. package/src/types/index.ts +0 -2
  7. package/dist/components/report/binding-badge.js +0 -118
  8. package/dist/components/report/designer/cell-coords.js +0 -46
  9. package/dist/components/report/designer/col-widths.js +0 -29
  10. package/dist/components/report/designer/conditional-rules/helpers.js +0 -139
  11. package/dist/components/report/designer/drill-dialog.js +0 -258
  12. package/dist/components/report/designer/drop-highlight-overlay.js +0 -76
  13. package/dist/components/report/designer/float-panel.js +0 -434
  14. package/dist/components/report/designer/role.js +0 -17
  15. package/dist/components/report/designer/rule-preview.js +0 -33
  16. package/dist/components/report/designer/rule-row.js +0 -253
  17. package/dist/components/report/designer/rules-dialog.js +0 -118
  18. package/dist/components/report/designer/topology-overlay.js +0 -122
  19. package/dist/components/report/designer/topology.js +0 -64
  20. package/dist/components/report/designer/use-grid-overlay.js +0 -75
  21. package/dist/components/report/designer-hub.js +0 -177
  22. package/dist/components/report/field-panel-helpers.js +0 -33
  23. package/dist/components/report/field-panel.js +0 -132
  24. package/dist/components/report/filter-bar.js +0 -74
  25. package/dist/components/report/hub-connection-form.js +0 -145
  26. package/dist/components/report/hub-dataset-editor.js +0 -409
  27. package/dist/components/report/preview-grid-size.js +0 -32
  28. package/dist/components/report/print.js +0 -39
  29. package/dist/components/report/report-designer.js +0 -428
  30. package/dist/components/report/report-viewer.js +0 -253
  31. package/dist/components/report/style.d.ts +0 -17
  32. package/dist/components/report/style.js +0 -18
  33. package/dist/components/report/style2.css +0 -965
  34. package/dist/components/report/use-report-designer.js +0 -387
  35. package/dist/components/report/use-report-viewer.js +0 -140
  36. package/dist/report/binding.d.ts +0 -83
  37. package/dist/report/binding.js +0 -334
  38. package/dist/report/connector.d.ts +0 -66
  39. package/dist/report/connector.js +0 -159
  40. package/dist/report/drill.d.ts +0 -48
  41. package/dist/report/drill.js +0 -78
  42. package/dist/report/export-xlsx.d.ts +0 -13
  43. package/dist/report/export-xlsx.js +0 -13
  44. package/dist/report/filter-bar.d.ts +0 -10
  45. package/dist/report/filter-bar.js +0 -31
  46. package/dist/report/index.d.ts +0 -14
  47. package/dist/report/params.d.ts +0 -13
  48. package/dist/report/params.js +0 -61
  49. package/dist/report/print.d.ts +0 -23
  50. package/dist/report/print.js +0 -197
  51. package/dist/report/render/aggregate.js +0 -193
  52. package/dist/report/render/builder.d.ts +0 -12
  53. package/dist/report/render/builder.js +0 -139
  54. package/dist/report/render/coordinate.d.ts +0 -25
  55. package/dist/report/render/coordinate.js +0 -733
  56. package/dist/report/render/index.d.ts +0 -14
  57. package/dist/report/render/index.js +0 -21
  58. package/dist/report/render/style-resolver.js +0 -50
  59. package/dist/report/render/template-index.d.ts +0 -24
  60. package/dist/report/render/template-index.js +0 -137
  61. package/dist/report/rules/evaluate.d.ts +0 -25
  62. package/dist/report/rules/evaluate.js +0 -82
  63. package/dist/report/rules/index.d.ts +0 -2
  64. package/dist/report/template.d.ts +0 -63
  65. package/dist/report/template.js +0 -83
  66. package/dist/report/types.d.ts +0 -103
  67. package/dist/types/report-designer.d.ts +0 -51
  68. package/dist/types/report-viewer.d.ts +0 -57
  69. package/src/components/report/__test__/binding-badge.test.ts +0 -92
  70. package/src/components/report/__test__/conditional-rules-helpers.test.ts +0 -88
  71. package/src/components/report/__test__/field-panel-helpers.test.ts +0 -65
  72. package/src/components/report/__test__/float-panel-position.test.ts +0 -45
  73. package/src/components/report/__test__/preview-grid-size.test.ts +0 -63
  74. package/src/components/report/__test__/report-designer.test.ts +0 -559
  75. package/src/components/report/__test__/report-drill.test.ts +0 -692
  76. package/src/components/report/__test__/report-viewer.test.ts +0 -400
  77. package/src/components/report/__test__/topology.test.ts +0 -143
  78. package/src/components/report/__test__/use-report-designer.test.ts +0 -804
  79. package/src/components/report/binding-badge.ts +0 -122
  80. package/src/components/report/designer/cell-coords.ts +0 -95
  81. package/src/components/report/designer/col-widths.ts +0 -56
  82. package/src/components/report/designer/conditional-rules/helpers.ts +0 -189
  83. package/src/components/report/designer/drill-dialog.vue +0 -245
  84. package/src/components/report/designer/drop-highlight-overlay.vue +0 -75
  85. package/src/components/report/designer/float-panel.vue +0 -444
  86. package/src/components/report/designer/role.ts +0 -32
  87. package/src/components/report/designer/rule-preview.vue +0 -40
  88. package/src/components/report/designer/rule-row.vue +0 -252
  89. package/src/components/report/designer/rules-dialog.vue +0 -110
  90. package/src/components/report/designer/topology-overlay.vue +0 -128
  91. package/src/components/report/designer/topology.ts +0 -124
  92. package/src/components/report/designer/use-grid-overlay.ts +0 -114
  93. package/src/components/report/designer-hub.vue +0 -198
  94. package/src/components/report/field-panel-helpers.ts +0 -44
  95. package/src/components/report/field-panel.vue +0 -136
  96. package/src/components/report/filter-bar.vue +0 -77
  97. package/src/components/report/hub-connection-form.vue +0 -124
  98. package/src/components/report/hub-dataset-editor.vue +0 -387
  99. package/src/components/report/index.ts +0 -2
  100. package/src/components/report/preview-grid-size.ts +0 -33
  101. package/src/components/report/print.ts +0 -44
  102. package/src/components/report/report-designer.vue +0 -454
  103. package/src/components/report/report-viewer.vue +0 -289
  104. package/src/components/report/style-designer.scss +0 -653
  105. package/src/components/report/style-hub.scss +0 -292
  106. package/src/components/report/style-viewer.scss +0 -144
  107. package/src/components/report/style.scss +0 -3
  108. package/src/components/report/style.ts +0 -20
  109. package/src/components/report/use-report-designer.ts +0 -603
  110. package/src/components/report/use-report-viewer.ts +0 -227
  111. package/src/report/__test__/binding.test.ts +0 -320
  112. package/src/report/__test__/connector.test.ts +0 -239
  113. package/src/report/__test__/drill.test.ts +0 -194
  114. package/src/report/__test__/export-xlsx.test.ts +0 -96
  115. package/src/report/__test__/filter-bar.test.ts +0 -58
  116. package/src/report/__test__/params.test.ts +0 -156
  117. package/src/report/__test__/print.test.ts +0 -170
  118. package/src/report/__test__/render.test.ts +0 -856
  119. package/src/report/__test__/rules.test.ts +0 -131
  120. package/src/report/__test__/template.test.ts +0 -366
  121. package/src/report/binding.ts +0 -474
  122. package/src/report/connector.ts +0 -206
  123. package/src/report/drill.ts +0 -112
  124. package/src/report/export-xlsx.ts +0 -15
  125. package/src/report/filter-bar.ts +0 -36
  126. package/src/report/index.ts +0 -16
  127. package/src/report/params.ts +0 -96
  128. package/src/report/print.ts +0 -234
  129. package/src/report/render/__test__/aggregate.test.ts +0 -16
  130. package/src/report/render/__test__/coordinate.test.ts +0 -405
  131. package/src/report/render/aggregate.ts +0 -289
  132. package/src/report/render/builder.ts +0 -211
  133. package/src/report/render/coordinate.ts +0 -1239
  134. package/src/report/render/index.ts +0 -30
  135. package/src/report/render/style-resolver.ts +0 -68
  136. package/src/report/render/template-index.ts +0 -200
  137. package/src/report/rules/evaluate.ts +0 -113
  138. package/src/report/rules/index.ts +0 -7
  139. package/src/report/template.ts +0 -145
  140. package/src/report/types.ts +0 -116
  141. package/src/types/report-designer.ts +0 -55
  142. package/src/types/report-viewer.ts +0 -54
@@ -1,965 +0,0 @@
1
- @charset "UTF-8";
2
- /** flex布局 */
3
- /**
4
- * 设置css变量
5
- * 参数1:变量前缀
6
- * 参数2: 一个由值组成的列表或者由key, value组成的map
7
- * css-var(height, (
8
- * large: 40px
9
- * default: 32px
10
- * small: 24px
11
- * ))
12
- * 生成的css变量:
13
- * --u-height-large: 40px;
14
- * --u-height-default: 32px;
15
- * --u-height-small: 24px;
16
- */
17
- /** 暗色:data-theme 与系统偏好,与 UITheme.injectBuiltInThemes 选择器策略一致 */
18
- .u-report-viewer {
19
- display: flex;
20
- flex-direction: column;
21
- gap: var(--u-gap-small);
22
- min-height: 0;
23
- }
24
- .u-report-viewer__body {
25
- position: relative;
26
- flex: 1;
27
- min-width: 0;
28
- min-height: 0;
29
- display: flex;
30
- flex-direction: column;
31
- gap: var(--u-gap-small);
32
- }
33
- .u-report-viewer {
34
- /* USheet 根为 flex 列,grid 区 flex:1;宿主必须给 .u-sheet 明确高度 */
35
- }
36
- .u-report-viewer__sheet {
37
- flex: 1;
38
- min-height: 0;
39
- min-width: 0;
40
- /* 下钻格可点提示:VTable pointermove 会把容器内联 cursor 重置为 default,需 !important 覆盖 */
41
- }
42
- .u-report-viewer__sheet--drill-hover,
43
- .u-report-viewer__sheet--drill-hover .u-sheet__grid-instance,
44
- .u-report-viewer__sheet--drill-hover .u-sheet__grid-instance canvas,
45
- .u-report-viewer__sheet--drill-hover .u-sheet__grid-instance * {
46
- cursor: pointer !important;
47
- }
48
- .u-report-viewer__drill-bar {
49
- display: flex;
50
- align-items: center;
51
- gap: var(--u-gap-small);
52
- }
53
- .u-report-viewer {
54
- /* 下钻弹框挂在 UDialog 根(Teleport 到 body),给内嵌查看器明确高度 */
55
- }
56
- .u-report-viewer__drill-dialog {
57
- width: min(960px, 92vw);
58
- height: min(80vh, 720px);
59
- }
60
- .u-report-viewer__drill-dialog .u-dialog__body {
61
- flex: 1;
62
- min-height: 0;
63
- display: flex;
64
- flex-direction: column;
65
- }
66
- .u-report-viewer__drill-dialog .u-scroll__container,
67
- .u-report-viewer__drill-dialog .u-scroll__content {
68
- height: 100%;
69
- min-height: 0;
70
- }
71
- .u-report-viewer__drill-dialog .u-report-viewer {
72
- height: 100%;
73
- min-height: 0;
74
- }
75
- .u-report-viewer__loading {
76
- position: absolute;
77
- inset: 0;
78
- z-index: 20;
79
- display: flex;
80
- flex-direction: column;
81
- align-items: center;
82
- justify-content: center;
83
- gap: var(--u-gap-small);
84
- background: color-mix(in srgb, var(--u-bg-color-top) 72%, transparent);
85
- font-size: var(--u-font-size-main-small);
86
- color: var(--u-text-color-second);
87
- }
88
- .u-report-viewer__loading-spinner {
89
- width: 28px;
90
- height: 28px;
91
- border: 3px solid var(--u-border-muted-color);
92
- border-top-color: var(--u-color-primary);
93
- border-radius: 50%;
94
- animation: u-report-viewer-spin 0.8s linear infinite;
95
- }
96
- .u-report-viewer__error {
97
- flex-shrink: 0;
98
- padding: var(--u-gap-small);
99
- border: 1px solid var(--u-color-danger);
100
- border-radius: var(--u-radius-default);
101
- background-color: var(--u-color-danger-light-9);
102
- color: var(--u-color-danger);
103
- font-size: var(--u-font-size-main-small);
104
- }
105
-
106
- @keyframes u-report-viewer-spin {
107
- to {
108
- transform: rotate(360deg);
109
- }
110
- }
111
- .u-report-filter-bar {
112
- display: flex;
113
- flex-wrap: wrap;
114
- align-items: center;
115
- gap: var(--u-gap-small);
116
- padding: var(--u-gap-small);
117
- border: var(--u-border);
118
- border-radius: var(--u-radius-default);
119
- background: var(--u-bg-color-top);
120
- }
121
- .u-report-filter-bar__label {
122
- flex-shrink: 0;
123
- font-size: var(--u-font-size-main-small);
124
- font-weight: 600;
125
- color: var(--u-text-color-second);
126
- }
127
- .u-report-filter-bar__fields {
128
- display: flex;
129
- flex-wrap: wrap;
130
- gap: var(--u-gap-small);
131
- flex: 1;
132
- min-width: 0;
133
- }
134
- .u-report-filter-bar__field {
135
- display: flex;
136
- align-items: center;
137
- gap: var(--u-gap-small);
138
- min-width: 0;
139
- }
140
- .u-report-filter-bar__field-label {
141
- flex-shrink: 0;
142
- font-size: var(--u-font-size-main-small);
143
- color: var(--u-text-color-second);
144
- }
145
-
146
- .u-report-designer {
147
- display: flex;
148
- flex-direction: column;
149
- gap: var(--u-gap-default);
150
- min-height: 0;
151
- height: 100%;
152
- }
153
- .u-report-designer__toolbar {
154
- display: flex;
155
- flex-wrap: wrap;
156
- align-items: center;
157
- gap: var(--u-gap-small);
158
- flex-shrink: 0;
159
- }
160
- .u-report-designer__hint {
161
- font-size: var(--u-font-size-main-small);
162
- color: var(--u-text-color-second);
163
- }
164
- .u-report-designer__body {
165
- display: flex;
166
- flex: 1;
167
- min-height: 0;
168
- gap: var(--u-gap-default);
169
- }
170
- .u-report-designer__mode-toggle {
171
- display: inline-flex;
172
- gap: 4px;
173
- }
174
- .u-report-designer {
175
- /* 预览态:内嵌查看器路径(UReportViewer 撑满) */
176
- }
177
- .u-report-designer__preview {
178
- display: flex;
179
- flex-direction: column;
180
- flex: 1;
181
- min-height: 0;
182
- }
183
- .u-report-designer__preview .u-report-viewer {
184
- flex: 1;
185
- min-height: 0;
186
- }
187
- .u-report-designer__grid {
188
- position: relative;
189
- flex: 1;
190
- min-width: 0;
191
- min-height: 0;
192
- display: flex;
193
- flex-direction: column;
194
- }
195
- .u-report-designer {
196
- /* USheet 根为 flex 列,grid 区 flex:1;宿主必须给 .u-sheet 明确高度 */
197
- }
198
- .u-report-designer__sheet {
199
- flex: 1;
200
- min-height: 0;
201
- min-width: 0;
202
- }
203
- .u-report-designer__pick-hint {
204
- position: absolute;
205
- left: 50%;
206
- bottom: var(--u-gap-small);
207
- z-index: 17;
208
- transform: translateX(-50%);
209
- padding: 4px var(--u-gap-small);
210
- border-radius: var(--u-radius-default);
211
- background: color-mix(in srgb, var(--u-bg-color-top) 92%, transparent);
212
- border: 1px dashed var(--u-color-primary);
213
- font-size: var(--u-font-size-main-small);
214
- color: var(--u-text-color-second);
215
- pointer-events: none;
216
- white-space: nowrap;
217
- }
218
- .u-report-designer {
219
- /* 数据中枢 drawer 面板宽度(class 经 $attrs 落到 .u-drawer 面板;须压过 .u-drawer.is-right 的 320px) */
220
- }
221
- .u-report-designer__hub-drawer.u-drawer {
222
- width: min(960px, 92vw);
223
- max-width: 92vw;
224
- }
225
-
226
- /* 拓扑连线覆层(SVG 弧线,选中绑定格时高亮父子扩展依赖) */
227
- .u-report-topology {
228
- position: absolute;
229
- inset: 0;
230
- z-index: 12;
231
- pointer-events: none;
232
- overflow: visible;
233
- }
234
- .u-report-topology__arc {
235
- fill: none;
236
- stroke-width: 2;
237
- stroke-linecap: round;
238
- opacity: 0.72;
239
- }
240
- .u-report-topology__arc__arc--row {
241
- stroke: var(--u-color-primary);
242
- }
243
- .u-report-topology__arc__arc--col {
244
- stroke: var(--u-color-warning);
245
- stroke-dasharray: 6 4;
246
- }
247
-
248
- /* 字段拖拽落点高亮(虚线框;落空时提示回退当前选区) */
249
- .u-report-drop-highlight {
250
- position: absolute;
251
- z-index: 16;
252
- box-sizing: border-box;
253
- border: 2px dashed var(--u-color-primary);
254
- border-radius: 2px;
255
- background: color-mix(in srgb, var(--u-color-primary) 10%, transparent);
256
- pointer-events: none;
257
- }
258
- .u-report-drop-highlight__fallback {
259
- position: absolute;
260
- left: 50%;
261
- bottom: var(--u-gap-small);
262
- z-index: 16;
263
- transform: translateX(-50%);
264
- padding: 4px var(--u-gap-small);
265
- border-radius: var(--u-radius-default);
266
- background: color-mix(in srgb, var(--u-bg-color-top) 92%, transparent);
267
- border: 1px dashed var(--u-color-primary);
268
- font-size: var(--u-font-size-main-small);
269
- color: var(--u-text-color-second);
270
- pointer-events: none;
271
- white-space: nowrap;
272
- }
273
-
274
- /* Action Pill:选中绑定格上方的悬浮编辑卡(预设 + 互补的展开/聚合 / 条件样式 / 排序 / 清除绑定) */
275
- .u-report-float-panel {
276
- position: absolute;
277
- z-index: 18;
278
- display: flex;
279
- flex-direction: column;
280
- width: max-content;
281
- min-width: 400px;
282
- max-width: min(480px, 100% - 20px);
283
- border: var(--u-border);
284
- border-radius: 10px;
285
- background: var(--u-bg-color-top);
286
- box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
287
- pointer-events: auto;
288
- }
289
- .u-report-float-panel--above {
290
- transform: translate(-50%, -100%);
291
- }
292
- .u-report-float-panel--below {
293
- transform: translate(-50%, 0);
294
- }
295
- .u-report-float-panel__bar {
296
- display: flex;
297
- flex-direction: column;
298
- gap: 6px;
299
- padding: 8px 10px;
300
- }
301
- .u-report-float-panel__summary {
302
- font-size: 12px;
303
- font-weight: 600;
304
- line-height: 1.35;
305
- color: var(--u-color-primary);
306
- white-space: nowrap;
307
- overflow: hidden;
308
- text-overflow: ellipsis;
309
- }
310
- .u-report-float-panel__toolbar {
311
- display: flex;
312
- align-items: center;
313
- gap: 6px;
314
- flex-wrap: wrap;
315
- }
316
- .u-report-float-panel__select {
317
- flex: none;
318
- }
319
- .u-report-float-panel__select__select--role {
320
- width: 84px;
321
- }
322
- .u-report-float-panel__select__select--aggregate {
323
- width: 76px;
324
- }
325
- .u-report-float-panel__expand {
326
- flex: none;
327
- margin-left: auto;
328
- padding-inline: 6px;
329
- }
330
- .u-report-float-panel__body {
331
- display: flex;
332
- flex-direction: column;
333
- gap: 10px;
334
- padding: 10px 12px 12px;
335
- border-top: var(--u-border-muted);
336
- background: var(--u-bg-color-middle);
337
- }
338
- .u-report-float-panel__section {
339
- display: flex;
340
- flex-direction: column;
341
- gap: 6px;
342
- }
343
- .u-report-float-panel__section-label {
344
- font-size: 12px;
345
- font-weight: 600;
346
- color: var(--u-text-color-second);
347
- }
348
- .u-report-float-panel__hint {
349
- margin: 0;
350
- font-size: 12px;
351
- color: var(--u-text-color-second);
352
- }
353
- .u-report-float-panel__parent-actions {
354
- display: flex;
355
- align-items: center;
356
- gap: 6px;
357
- flex-wrap: wrap;
358
- }
359
- .u-report-float-panel__parent-select {
360
- width: 180px;
361
- flex: none;
362
- }
363
- .u-report-float-panel__select--expand {
364
- width: 76px;
365
- }
366
- .u-report-float-panel__footer {
367
- display: flex;
368
- justify-content: flex-end;
369
- padding-top: 4px;
370
- margin-top: 2px;
371
- border-top: var(--u-border-muted);
372
- }
373
-
374
- /* 条件样式规则对话框内容 */
375
- .u-report-rules-dialog {
376
- display: flex;
377
- flex-direction: column;
378
- gap: 10px;
379
- }
380
- .u-report-rules-dialog__hint {
381
- margin: 0;
382
- font-size: 12px;
383
- line-height: 1.5;
384
- color: var(--u-text-color-second);
385
- }
386
- .u-report-rules-dialog__list {
387
- margin: 0;
388
- padding: 0;
389
- list-style: none;
390
- display: flex;
391
- flex-direction: column;
392
- gap: 8px;
393
- max-height: 420px;
394
- overflow: auto;
395
- }
396
- .u-report-rules-dialog__item {
397
- margin: 0;
398
- }
399
- .u-report-rules-dialog__empty {
400
- margin: 0;
401
- font-size: 12px;
402
- color: var(--u-text-color-second);
403
- }
404
-
405
- /* 下钻配置对话框内容 */
406
- .u-report-drill-dialog {
407
- display: flex;
408
- flex-direction: column;
409
- gap: 12px;
410
- }
411
- .u-report-drill-dialog__section {
412
- display: flex;
413
- flex-direction: column;
414
- gap: 6px;
415
- }
416
- .u-report-drill-dialog__label {
417
- font-size: 12px;
418
- font-weight: 600;
419
- color: var(--u-text-color-second);
420
- }
421
- .u-report-drill-dialog__hint {
422
- margin: 0;
423
- font-size: 12px;
424
- line-height: 1.5;
425
- color: var(--u-text-color-second);
426
- }
427
- .u-report-drill-dialog__error {
428
- margin: 0;
429
- font-size: 12px;
430
- line-height: 1.5;
431
- color: var(--u-color-danger);
432
- }
433
- .u-report-drill-dialog__list {
434
- margin: 0;
435
- padding: 0;
436
- list-style: none;
437
- display: flex;
438
- flex-direction: column;
439
- gap: 8px;
440
- max-height: 320px;
441
- overflow: auto;
442
- }
443
- .u-report-drill-dialog__mapping {
444
- display: flex;
445
- align-items: center;
446
- gap: 6px;
447
- }
448
- .u-report-drill-dialog__field {
449
- width: 160px;
450
- flex: none;
451
- }
452
- .u-report-drill-dialog__param {
453
- width: 200px;
454
- flex: none;
455
- }
456
- .u-report-drill-dialog__arrow {
457
- flex: none;
458
- font-size: 12px;
459
- color: var(--u-text-color-second);
460
- }
461
-
462
- .u-report-rule-row {
463
- display: flex;
464
- align-items: flex-start;
465
- gap: 8px;
466
- padding: 10px 10px 10px 6px;
467
- border: var(--u-border-muted);
468
- border-radius: 8px;
469
- background: var(--u-bg-color-middle);
470
- }
471
- .u-report-rule-row__handle {
472
- flex: none;
473
- width: 16px;
474
- margin-top: 6px;
475
- color: var(--u-text-color-placeholder);
476
- font-size: 12px;
477
- letter-spacing: -1px;
478
- line-height: 1;
479
- cursor: grab;
480
- user-select: none;
481
- text-align: center;
482
- }
483
- .u-report-rule-row__handle:active {
484
- cursor: grabbing;
485
- }
486
- .u-report-rule-row__main {
487
- flex: 1;
488
- min-width: 0;
489
- display: flex;
490
- flex-direction: column;
491
- gap: 8px;
492
- }
493
- .u-report-rule-row__when {
494
- display: flex;
495
- align-items: center;
496
- gap: 6px;
497
- flex-wrap: wrap;
498
- }
499
- .u-report-rule-row__then {
500
- display: flex;
501
- align-items: center;
502
- gap: 6px;
503
- flex-wrap: wrap;
504
- }
505
- .u-report-rule-row__lead {
506
- flex: none;
507
- font-size: 12px;
508
- color: var(--u-text-color-second);
509
- }
510
- .u-report-rule-row__field-select {
511
- width: 128px;
512
- flex: none;
513
- }
514
- .u-report-rule-row__operator {
515
- width: 96px;
516
- flex: none;
517
- }
518
- .u-report-rule-row__value {
519
- display: flex;
520
- align-items: center;
521
- gap: 6px;
522
- flex: 0 1 auto;
523
- min-width: 0;
524
- }
525
- .u-report-rule-row__scalar-input {
526
- width: 120px;
527
- flex: none;
528
- }
529
- .u-report-rule-row__between-input {
530
- width: 88px;
531
- flex: none;
532
- }
533
- .u-report-rule-row__between-sep {
534
- font-size: 12px;
535
- color: var(--u-text-color-second);
536
- }
537
- .u-report-rule-row__toggle {
538
- min-width: 28px;
539
- padding-inline: 6px;
540
- }
541
- .u-report-rule-row__preview {
542
- flex: none;
543
- }
544
- .u-report-rule-row__remove {
545
- flex: none;
546
- margin-top: 2px;
547
- }
548
-
549
- .u-report-rule-preview {
550
- display: inline-flex;
551
- align-items: center;
552
- justify-content: center;
553
- min-width: 36px;
554
- height: 28px;
555
- padding: 0 8px;
556
- border: var(--u-border);
557
- border-radius: 4px;
558
- font-size: 13px;
559
- line-height: 1;
560
- box-sizing: border-box;
561
- }
562
- .u-report-rule-preview--row {
563
- min-width: 48px;
564
- font-size: 11px;
565
- }
566
-
567
- .u-report-field-panel {
568
- width: 220px;
569
- flex-shrink: 0;
570
- overflow: auto;
571
- padding: var(--u-gap-default);
572
- border: var(--u-border);
573
- border-radius: var(--u-radius-default);
574
- background: var(--u-bg-color-top);
575
- }
576
- .u-report-field-panel__title {
577
- margin: 0 0 4px;
578
- font-size: var(--u-font-size-title-small);
579
- font-weight: 600;
580
- }
581
- .u-report-field-panel__meta {
582
- display: flex;
583
- align-items: center;
584
- gap: var(--u-gap-small);
585
- margin: 0 0 var(--u-gap-small);
586
- font-size: var(--u-font-size-main-small);
587
- color: var(--u-text-color-second);
588
- }
589
- .u-report-field-panel__search {
590
- margin-bottom: var(--u-gap-small);
591
- }
592
- .u-report-field-panel__hint {
593
- margin: 0 0 var(--u-gap-default);
594
- font-size: var(--u-font-size-assist-small);
595
- line-height: 1.45;
596
- color: var(--u-text-color-second);
597
- }
598
- .u-report-field-panel__empty {
599
- margin: var(--u-gap-small) 0 0;
600
- font-size: var(--u-font-size-main-small);
601
- color: var(--u-text-color-second);
602
- }
603
- .u-report-field-panel__dataset {
604
- margin-bottom: var(--u-gap-default);
605
- }
606
- .u-report-field-panel__dataset-toggle {
607
- display: flex;
608
- align-items: center;
609
- gap: var(--u-gap-small);
610
- width: 100%;
611
- margin: 0 0 var(--u-gap-small);
612
- padding: 0;
613
- justify-content: flex-start;
614
- height: auto;
615
- min-height: 0;
616
- color: inherit;
617
- }
618
- .u-report-field-panel__dataset-chevron {
619
- display: inline-block;
620
- font-size: 11px;
621
- color: var(--u-text-color-second);
622
- transition: transform 0.15s ease;
623
- transform: rotate(0deg);
624
- }
625
- .u-report-field-panel__dataset-chevron.is-expanded {
626
- transform: rotate(90deg);
627
- }
628
- .u-report-field-panel__dataset-name {
629
- flex: 1;
630
- min-width: 0;
631
- font-size: var(--u-font-size-main-small);
632
- font-weight: 500;
633
- overflow: hidden;
634
- text-overflow: ellipsis;
635
- white-space: nowrap;
636
- }
637
- .u-report-field-panel__dataset-count {
638
- flex-shrink: 0;
639
- min-width: 18px;
640
- padding: 0 6px;
641
- border-radius: 999px;
642
- background: var(--u-bg-color-hover);
643
- font-size: 11px;
644
- line-height: 18px;
645
- text-align: center;
646
- color: var(--u-text-color-second);
647
- }
648
- .u-report-field-panel__fields {
649
- display: flex;
650
- flex-wrap: wrap;
651
- gap: var(--u-gap-small);
652
- }
653
- .u-report-field-panel__pill {
654
- display: inline-flex;
655
- align-items: center;
656
- gap: 4px;
657
- flex: 0 0 calc(50% - 3px);
658
- min-width: 0;
659
- max-width: calc(50% - 3px);
660
- height: 24px;
661
- padding: 0 8px 0 4px;
662
- border: var(--u-border-muted);
663
- border-radius: 999px;
664
- background: var(--u-bg-color-top);
665
- cursor: grab;
666
- transition: background 0.15s, border-color 0.15s;
667
- outline: none;
668
- }
669
- .u-report-field-panel__pill:hover {
670
- background: var(--u-bg-color-hover);
671
- border-color: var(--u-color-primary);
672
- }
673
- .u-report-field-panel__pill:active {
674
- cursor: grabbing;
675
- }
676
- .u-report-field-panel__pill.is-bound {
677
- border-color: var(--u-color-success);
678
- }
679
- .u-report-field-panel__pill-icon {
680
- flex-shrink: 0;
681
- display: inline-flex;
682
- align-items: center;
683
- justify-content: center;
684
- width: 16px;
685
- height: 16px;
686
- border-radius: 999px;
687
- font-size: 10px;
688
- font-weight: 700;
689
- line-height: 1;
690
- color: var(--u-color-info);
691
- background: var(--u-color-info-light-9);
692
- }
693
- .u-report-field-panel__pill-icon[data-type=number] {
694
- color: var(--u-color-success);
695
- background: var(--u-color-success-light-9);
696
- }
697
- .u-report-field-panel__pill-icon[data-type=date] {
698
- color: var(--u-color-warning);
699
- background: var(--u-color-warning-light-9);
700
- }
701
- .u-report-field-panel__pill-label {
702
- flex: 1;
703
- min-width: 0;
704
- font-size: 11px;
705
- font-weight: 500;
706
- overflow: hidden;
707
- text-overflow: ellipsis;
708
- white-space: nowrap;
709
- }
710
- .u-report-field-panel__pill-bound {
711
- flex-shrink: 0;
712
- color: var(--u-color-success);
713
- font-size: 11px;
714
- font-weight: 700;
715
- line-height: 1;
716
- }
717
-
718
- .u-report-hub {
719
- display: flex;
720
- flex-direction: column;
721
- gap: var(--u-gap-default);
722
- height: 100%;
723
- min-height: 0;
724
- padding: var(--u-gap-default);
725
- box-sizing: border-box;
726
- }
727
- .u-report-hub__head {
728
- display: flex;
729
- align-items: center;
730
- justify-content: space-between;
731
- gap: var(--u-gap-default);
732
- flex-shrink: 0;
733
- }
734
- .u-report-hub__title {
735
- margin: 0;
736
- font-size: var(--u-font-size-title-default);
737
- font-weight: 600;
738
- }
739
- .u-report-hub__body {
740
- display: flex;
741
- gap: var(--u-gap-large);
742
- flex: 1;
743
- min-height: 0;
744
- }
745
- .u-report-hub__sidebar {
746
- display: flex;
747
- flex-direction: column;
748
- gap: var(--u-gap-default);
749
- width: 240px;
750
- flex-shrink: 0;
751
- min-height: 0;
752
- padding-right: var(--u-gap-default);
753
- border-right: var(--u-border);
754
- }
755
- .u-report-hub__sidebar-head {
756
- display: flex;
757
- align-items: center;
758
- justify-content: space-between;
759
- gap: var(--u-gap-small);
760
- }
761
- .u-report-hub__sidebar-title {
762
- font-size: var(--u-font-size-main-small);
763
- font-weight: 600;
764
- color: var(--u-text-color-second);
765
- }
766
- .u-report-hub__tree {
767
- flex: 1;
768
- min-height: 0;
769
- overflow: auto;
770
- display: flex;
771
- flex-direction: column;
772
- gap: var(--u-gap-default);
773
- }
774
- .u-report-hub__conn {
775
- display: flex;
776
- align-items: center;
777
- justify-content: space-between;
778
- gap: var(--u-gap-small);
779
- padding: var(--u-gap-small) var(--u-gap-default);
780
- border-radius: var(--u-radius-small);
781
- cursor: pointer;
782
- }
783
- .u-report-hub__conn:hover {
784
- background: var(--u-bg-color-hover);
785
- }
786
- .u-report-hub__conn.is-active {
787
- background: var(--u-color-primary-light-9);
788
- color: var(--u-color-primary);
789
- }
790
- .u-report-hub__conn-label {
791
- font-size: var(--u-font-size-main-small);
792
- font-weight: 600;
793
- }
794
- .u-report-hub__dataset-list {
795
- margin: 4px 0 0;
796
- padding: 0 0 0 var(--u-gap-large);
797
- list-style: none;
798
- }
799
- .u-report-hub__dataset-item {
800
- display: flex;
801
- flex-direction: column;
802
- gap: 2px;
803
- padding: var(--u-gap-small) var(--u-gap-default);
804
- margin-bottom: 2px;
805
- border-radius: var(--u-radius-small);
806
- font-size: var(--u-font-size-main-small);
807
- cursor: pointer;
808
- }
809
- .u-report-hub__dataset-item:hover {
810
- background: var(--u-bg-color-hover);
811
- }
812
- .u-report-hub__dataset-item.is-active {
813
- background: var(--u-color-primary-light-9);
814
- color: var(--u-color-primary);
815
- }
816
- .u-report-hub__dataset-id {
817
- font-size: 11px;
818
- font-family: ui-monospace, monospace;
819
- color: var(--u-text-color-second);
820
- }
821
- .u-report-hub__add-dataset {
822
- margin-left: var(--u-gap-small);
823
- }
824
- .u-report-hub__sidebar-empty {
825
- margin: var(--u-gap-small) 0 0;
826
- font-size: var(--u-font-size-main-small);
827
- line-height: 1.5;
828
- color: var(--u-text-color-second);
829
- }
830
- .u-report-hub__main {
831
- flex: 1;
832
- min-width: 0;
833
- min-height: 0;
834
- overflow: auto;
835
- }
836
- .u-report-hub__empty {
837
- display: flex;
838
- align-items: center;
839
- justify-content: center;
840
- height: 100%;
841
- font-size: var(--u-font-size-main-small);
842
- color: var(--u-text-color-second);
843
- text-align: center;
844
- padding: var(--u-gap-large);
845
- }
846
-
847
- .u-report-hub-connection-form {
848
- display: flex;
849
- flex-direction: column;
850
- gap: var(--u-gap-default);
851
- height: 100%;
852
- }
853
- .u-report-hub-connection-form__title {
854
- margin: 0;
855
- font-size: var(--u-font-size-title-small);
856
- font-weight: 600;
857
- }
858
- .u-report-hub-connection-form__grid {
859
- display: grid;
860
- grid-template-columns: repeat(2, minmax(0, 1fr));
861
- gap: var(--u-gap-default) var(--u-gap-large);
862
- }
863
- .u-report-hub-connection-form__field {
864
- display: flex;
865
- flex-direction: column;
866
- gap: 4px;
867
- }
868
- .u-report-hub-connection-form__label {
869
- font-size: var(--u-font-size-main-small);
870
- color: var(--u-text-color-second);
871
- }
872
- .u-report-hub-connection-form__test {
873
- padding: var(--u-gap-small) var(--u-gap-default);
874
- border-radius: var(--u-radius-small);
875
- font-size: var(--u-font-size-main-small);
876
- background: var(--u-color-danger-light-9);
877
- color: var(--u-color-danger);
878
- }
879
- .u-report-hub-connection-form__test.is-ok {
880
- background: var(--u-color-success-light-9);
881
- color: var(--u-color-success);
882
- }
883
- .u-report-hub-connection-form__actions {
884
- display: flex;
885
- flex-wrap: wrap;
886
- gap: var(--u-gap-small);
887
- margin-top: auto;
888
- }
889
-
890
- .u-report-hub-dataset-editor {
891
- display: flex;
892
- flex-direction: column;
893
- gap: var(--u-gap-default);
894
- height: 100%;
895
- min-height: 0;
896
- }
897
- .u-report-hub-dataset-editor__head {
898
- display: flex;
899
- align-items: center;
900
- justify-content: space-between;
901
- gap: var(--u-gap-default);
902
- flex-shrink: 0;
903
- }
904
- .u-report-hub-dataset-editor__rename {
905
- display: flex;
906
- align-items: center;
907
- gap: var(--u-gap-small);
908
- flex: 1;
909
- min-width: 0;
910
- }
911
- .u-report-hub-dataset-editor__label {
912
- margin: 0;
913
- font-size: var(--u-font-size-main-small);
914
- color: var(--u-text-color-second);
915
- flex-shrink: 0;
916
- }
917
- .u-report-hub-dataset-editor__section-title {
918
- margin: 0 0 var(--u-gap-small);
919
- font-size: var(--u-font-size-main-small);
920
- font-weight: 600;
921
- color: var(--u-text-color-second);
922
- flex-shrink: 0;
923
- }
924
- .u-report-hub-dataset-editor__sql {
925
- flex-shrink: 0;
926
- }
927
- .u-report-hub-dataset-editor__sql-error {
928
- margin: var(--u-gap-small) 0 0;
929
- font-size: var(--u-font-size-main-small);
930
- color: var(--u-color-danger);
931
- }
932
- .u-report-hub-dataset-editor__preview-error {
933
- margin: var(--u-gap-small) 0 0;
934
- font-size: var(--u-font-size-main-small);
935
- color: var(--u-color-danger);
936
- }
937
- .u-report-hub-dataset-editor__params {
938
- flex-shrink: 0;
939
- }
940
- .u-report-hub-dataset-editor__param-table {
941
- max-height: 180px;
942
- }
943
- .u-report-hub-dataset-editor__tabs {
944
- flex: 1;
945
- min-height: 0;
946
- display: flex;
947
- flex-direction: column;
948
- }
949
- .u-report-hub-dataset-editor__schema-table {
950
- min-height: 220px;
951
- height: 280px;
952
- }
953
- .u-report-hub-dataset-editor__preview-table {
954
- min-height: 220px;
955
- height: 280px;
956
- }
957
- .u-report-hub-dataset-editor__preview-actions {
958
- display: flex;
959
- justify-content: flex-end;
960
- margin-bottom: var(--u-gap-small);
961
- }
962
- .u-report-hub-dataset-editor__muted {
963
- font-size: var(--u-font-size-main-small);
964
- color: var(--u-text-color-second);
965
- }