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