openxiangda 2.0.0-alpha.2 → 2.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/run.js +6 -1
- package/dist/browser/AuthoritativeSelector.d.ts.map +1 -1
- package/dist/browser/AuthoritativeSelector.js +4 -2
- package/dist/browser/AuthoritativeSelector.js.map +1 -1
- package/dist/browser/Shell.d.ts.map +1 -1
- package/dist/browser/Shell.js +213 -56
- package/dist/browser/Shell.js.map +1 -1
- package/dist/browser/admin-contributions.d.ts +66 -0
- package/dist/browser/admin-contributions.d.ts.map +1 -0
- package/dist/browser/admin-contributions.js +196 -0
- package/dist/browser/admin-contributions.js.map +1 -0
- package/dist/browser/application.d.ts +7 -1
- package/dist/browser/application.d.ts.map +1 -1
- package/dist/browser/application.js +68 -23
- package/dist/browser/application.js.map +1 -1
- package/dist/browser/components/platform-fields/SubtableField.js +3 -3
- package/dist/browser/components/platform-fields/SubtableField.js.map +1 -1
- package/dist/browser/components/platform-fields/resource-query.d.ts +0 -1
- package/dist/browser/components/platform-fields/resource-query.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/resource-query.js +7 -8
- package/dist/browser/components/platform-fields/resource-query.js.map +1 -1
- package/dist/browser/components/resource/GeneratedResourceCrud.d.ts.map +1 -1
- package/dist/browser/components/resource/GeneratedResourceCrud.js +134 -46
- package/dist/browser/components/resource/GeneratedResourceCrud.js.map +1 -1
- package/dist/browser/components/resource/StandardResourcePages.d.ts +3 -2
- package/dist/browser/components/resource/StandardResourcePages.d.ts.map +1 -1
- package/dist/browser/components/resource/StandardResourcePages.js +13 -13
- package/dist/browser/components/resource/StandardResourcePages.js.map +1 -1
- package/dist/browser/components/resource/SurfaceFields.d.ts.map +1 -1
- package/dist/browser/components/resource/SurfaceFields.js +6 -2
- package/dist/browser/components/resource/SurfaceFields.js.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +13 -0
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -0
- package/dist/browser/components/workflow/StandardWorkflowPages.js +407 -0
- package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -0
- package/dist/browser/platform-client.d.ts +41 -2
- package/dist/browser/platform-client.d.ts.map +1 -1
- package/dist/browser/platform-client.js +117 -10
- package/dist/browser/platform-client.js.map +1 -1
- package/dist/browser/runtime-meta.d.ts +2 -0
- package/dist/browser/runtime-meta.d.ts.map +1 -1
- package/dist/browser/runtime-meta.js +12 -0
- package/dist/browser/runtime-meta.js.map +1 -1
- package/dist/browser/runtime.d.ts +8 -1
- package/dist/browser/runtime.d.ts.map +1 -1
- package/dist/browser/runtime.js +61 -13
- package/dist/browser/runtime.js.map +1 -1
- package/dist/browser/selector-copy.d.ts +6 -0
- package/dist/browser/selector-copy.d.ts.map +1 -0
- package/dist/browser/selector-copy.js +13 -0
- package/dist/browser/selector-copy.js.map +1 -0
- package/dist/browser/styles.css +449 -15
- package/dist/browser/workflow-definitions.d.ts +25 -0
- package/dist/browser/workflow-definitions.d.ts.map +1 -0
- package/dist/browser/workflow-definitions.js +32 -0
- package/dist/browser/workflow-definitions.js.map +1 -0
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/internal/web-build-verifier.d.ts +8 -0
- package/dist/internal/web-build-verifier.d.ts.map +1 -0
- package/dist/internal/web-build-verifier.js +55 -0
- package/dist/internal/web-build-verifier.js.map +1 -0
- package/dist/nest.d.ts +3 -4
- package/dist/nest.d.ts.map +1 -1
- package/dist/nest.js +2 -3
- package/dist/nest.js.map +1 -1
- package/dist/react.d.ts +3 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +3 -0
- package/dist/react.js.map +1 -1
- package/dist/testing.d.ts +1 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -0
- package/dist/testing.js.map +1 -1
- package/package.json +7 -7
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +18 -14
- package/skills/openxiangda-v2/references/appspec.md +67 -0
- package/skills/openxiangda-v2/references/backend.md +58 -9
- package/skills/openxiangda-v2/references/commands.md +21 -0
- package/skills/openxiangda-v2/references/data-authz.md +39 -5
- package/skills/openxiangda-v2/references/delivery.md +17 -1
- package/skills/openxiangda-v2/references/frontend.md +47 -1
- package/skills/openxiangda-v2/references/testing.md +46 -2
- package/skills/openxiangda-v2/references/{workflow-notification.md → workflow-events.md} +6 -3
- package/skills/openxiangda-v2/references/workspace.md +9 -5
package/dist/browser/styles.css
CHANGED
|
@@ -73,7 +73,9 @@ body {
|
|
|
73
73
|
.oxa-sider .ant-layout-sider-children {
|
|
74
74
|
display: flex;
|
|
75
75
|
flex-direction: column;
|
|
76
|
-
|
|
76
|
+
height: 100%;
|
|
77
|
+
min-height: 0;
|
|
78
|
+
overflow: hidden;
|
|
77
79
|
}
|
|
78
80
|
|
|
79
81
|
.oxa-brand {
|
|
@@ -148,12 +150,17 @@ body {
|
|
|
148
150
|
white-space: nowrap;
|
|
149
151
|
}
|
|
150
152
|
|
|
151
|
-
.oxa-menu {
|
|
153
|
+
.oxa-menu-scroll {
|
|
152
154
|
flex: 1;
|
|
155
|
+
min-height: 0;
|
|
153
156
|
overflow-y: auto;
|
|
157
|
+
overscroll-behavior: contain;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.oxa-menu {
|
|
154
161
|
border-inline-end: 0 !important;
|
|
155
162
|
background: transparent !important;
|
|
156
|
-
padding: 6px 12px
|
|
163
|
+
padding: 6px 12px 12px;
|
|
157
164
|
}
|
|
158
165
|
|
|
159
166
|
.oxa-menu .ant-menu-submenu-title,
|
|
@@ -175,10 +182,8 @@ body {
|
|
|
175
182
|
}
|
|
176
183
|
|
|
177
184
|
.oxa-sider-footer {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
bottom: 16px;
|
|
181
|
-
left: 12px;
|
|
185
|
+
flex: 0 0 auto;
|
|
186
|
+
margin: 0 12px 16px;
|
|
182
187
|
border-top: 1px solid var(--oxa-shell-border, #f0f0f0);
|
|
183
188
|
background: var(--oxa-shell-surface, #fff);
|
|
184
189
|
padding-top: 12px;
|
|
@@ -219,6 +224,304 @@ body {
|
|
|
219
224
|
cursor: pointer;
|
|
220
225
|
}
|
|
221
226
|
|
|
227
|
+
/* Workflow v2 standard surfaces. These pages consume only Workflow Surface
|
|
228
|
+
operations and keep mobile render trees independent from desktop tables. */
|
|
229
|
+
.oxa-workflow-page-heading,
|
|
230
|
+
.oxa-workflow-detail-header {
|
|
231
|
+
display: flex;
|
|
232
|
+
align-items: flex-start;
|
|
233
|
+
justify-content: space-between;
|
|
234
|
+
gap: 24px;
|
|
235
|
+
margin-bottom: 24px;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.oxa-workflow-page-heading .ant-typography,
|
|
239
|
+
.oxa-workflow-detail-header .ant-typography {
|
|
240
|
+
margin: 0;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.oxa-workflow-work-center,
|
|
244
|
+
.oxa-workflow-submission > .ant-card {
|
|
245
|
+
border: 1px solid var(--oxa-shell-border, #f0f0f0);
|
|
246
|
+
border-radius: 12px;
|
|
247
|
+
box-shadow: 0 2px 10px rgb(31 35 41 / 4%);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.oxa-workflow-work-center > .ant-card-body {
|
|
251
|
+
display: grid;
|
|
252
|
+
gap: 22px;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.oxa-workflow-detail {
|
|
256
|
+
position: relative;
|
|
257
|
+
display: grid;
|
|
258
|
+
gap: 18px;
|
|
259
|
+
max-width: 1240px;
|
|
260
|
+
margin: 0 auto;
|
|
261
|
+
padding-bottom: 88px;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.oxa-workflow-detail-grid {
|
|
265
|
+
display: grid;
|
|
266
|
+
grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr);
|
|
267
|
+
gap: 18px;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.oxa-workflow-business,
|
|
271
|
+
.oxa-workflow-timeline-card,
|
|
272
|
+
.oxa-workflow-participants,
|
|
273
|
+
.oxa-workflow-preview {
|
|
274
|
+
border-color: var(--oxa-shell-border, #f0f0f0);
|
|
275
|
+
border-radius: 12px;
|
|
276
|
+
box-shadow: 0 2px 12px rgb(31 35 41 / 5%);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.oxa-workflow-business-grid {
|
|
280
|
+
display: grid;
|
|
281
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
282
|
+
gap: 0 28px;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.oxa-workflow-business-grid > div {
|
|
286
|
+
display: grid;
|
|
287
|
+
min-width: 0;
|
|
288
|
+
grid-template-columns: minmax(92px, 0.65fr) minmax(0, 1.35fr);
|
|
289
|
+
align-items: center;
|
|
290
|
+
gap: 16px;
|
|
291
|
+
border-bottom: 1px solid var(--oxa-shell-border, #f0f0f0);
|
|
292
|
+
padding: 14px 0;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.oxa-workflow-business-grid strong {
|
|
296
|
+
overflow-wrap: anywhere;
|
|
297
|
+
text-align: right;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.oxa-workflow-business-link {
|
|
301
|
+
min-height: 42px;
|
|
302
|
+
margin-top: 18px;
|
|
303
|
+
color: var(--oxa-shell-primary, #1677ff);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.oxa-workflow-timeline {
|
|
307
|
+
display: grid;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.oxa-workflow-timeline > div {
|
|
311
|
+
position: relative;
|
|
312
|
+
display: grid;
|
|
313
|
+
min-height: 64px;
|
|
314
|
+
grid-template-columns: 26px minmax(0, 1fr) auto;
|
|
315
|
+
align-items: start;
|
|
316
|
+
gap: 12px;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
.oxa-workflow-timeline > div:not(:last-child)::before {
|
|
320
|
+
position: absolute;
|
|
321
|
+
top: 22px;
|
|
322
|
+
bottom: -4px;
|
|
323
|
+
left: 9px;
|
|
324
|
+
width: 2px;
|
|
325
|
+
background: #d9d9d9;
|
|
326
|
+
content: "";
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.oxa-workflow-timeline-dot {
|
|
330
|
+
position: relative;
|
|
331
|
+
z-index: 1;
|
|
332
|
+
display: grid;
|
|
333
|
+
width: 20px;
|
|
334
|
+
height: 20px;
|
|
335
|
+
place-items: center;
|
|
336
|
+
border: 2px solid #bfbfbf;
|
|
337
|
+
border-radius: 50%;
|
|
338
|
+
background: var(--oxa-shell-surface, #fff);
|
|
339
|
+
color: #bfbfbf;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.oxa-workflow-timeline .is-completed .oxa-workflow-timeline-dot {
|
|
343
|
+
border-color: #22a559;
|
|
344
|
+
color: #22a559;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.oxa-workflow-timeline .is-active .oxa-workflow-timeline-dot {
|
|
348
|
+
border-color: #1677ff;
|
|
349
|
+
box-shadow: 0 0 0 4px rgb(22 119 255 / 12%);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.oxa-workflow-timeline .is-error .oxa-workflow-timeline-dot {
|
|
353
|
+
border-color: #ff4d4f;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
.oxa-workflow-timeline > div > div {
|
|
357
|
+
display: grid;
|
|
358
|
+
gap: 4px;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.oxa-workflow-timeline > div > span:last-child {
|
|
362
|
+
color: var(--oxa-shell-text-secondary, #595959);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.oxa-workflow-actions {
|
|
366
|
+
position: sticky;
|
|
367
|
+
z-index: 10;
|
|
368
|
+
bottom: 16px;
|
|
369
|
+
display: flex;
|
|
370
|
+
min-height: 64px;
|
|
371
|
+
align-items: center;
|
|
372
|
+
justify-content: flex-end;
|
|
373
|
+
gap: 12px;
|
|
374
|
+
border: 1px solid var(--oxa-shell-border, #f0f0f0);
|
|
375
|
+
border-radius: 12px;
|
|
376
|
+
background: rgb(255 255 255 / 96%);
|
|
377
|
+
padding: 12px 16px;
|
|
378
|
+
box-shadow: 0 10px 32px rgb(31 35 41 / 12%);
|
|
379
|
+
backdrop-filter: blur(12px);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.oxa-workflow-actions .ant-btn {
|
|
383
|
+
min-width: 112px;
|
|
384
|
+
min-height: 40px;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
.oxa-workflow-more-actions {
|
|
388
|
+
position: absolute;
|
|
389
|
+
right: 144px;
|
|
390
|
+
bottom: 58px;
|
|
391
|
+
display: grid;
|
|
392
|
+
min-width: 180px;
|
|
393
|
+
border: 1px solid var(--oxa-shell-border, #f0f0f0);
|
|
394
|
+
border-radius: 10px;
|
|
395
|
+
background: var(--oxa-shell-surface, #fff);
|
|
396
|
+
padding: 8px;
|
|
397
|
+
box-shadow: 0 10px 30px rgb(31 35 41 / 16%);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
.oxa-workflow-more-actions .ant-btn {
|
|
401
|
+
justify-content: flex-start;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
.oxa-workflow-operation-alert,
|
|
405
|
+
.oxa-workflow-submission .ant-alert {
|
|
406
|
+
margin-bottom: 20px;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
.oxa-workflow-submission {
|
|
410
|
+
max-width: 960px;
|
|
411
|
+
margin: 0 auto;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
.oxa-workflow-submission > .ant-card > .ant-card-body {
|
|
415
|
+
display: grid;
|
|
416
|
+
gap: 24px;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.oxa-workflow-mobile-page {
|
|
420
|
+
min-height: 100vh;
|
|
421
|
+
background: linear-gradient(180deg, #fffaf0 0, #f7f8fa 280px);
|
|
422
|
+
padding: 20px 18px 104px;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
.oxa-workflow-work-center-mobile {
|
|
426
|
+
display: grid;
|
|
427
|
+
align-content: start;
|
|
428
|
+
gap: 18px;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
.oxa-workflow-work-center-mobile header .ant-typography {
|
|
432
|
+
margin: 0;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
.oxa-workflow-mobile-tasks {
|
|
436
|
+
display: grid;
|
|
437
|
+
gap: 12px;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
.oxa-workflow-mobile-tasks .ant-card {
|
|
441
|
+
border: 1px solid #f0f0f0;
|
|
442
|
+
border-radius: 14px;
|
|
443
|
+
box-shadow: 0 4px 18px rgb(31 35 41 / 6%);
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
.oxa-workflow-mobile-tasks .ant-card-body {
|
|
447
|
+
display: grid;
|
|
448
|
+
gap: 10px;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
.oxa-workflow-mobile-task-heading {
|
|
452
|
+
display: flex;
|
|
453
|
+
align-items: center;
|
|
454
|
+
justify-content: space-between;
|
|
455
|
+
gap: 12px;
|
|
456
|
+
font-size: 17px;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
.oxa-workflow-detail-mobile {
|
|
460
|
+
gap: 14px;
|
|
461
|
+
padding-bottom: 88px;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
.oxa-workflow-detail-mobile .oxa-workflow-detail-header {
|
|
465
|
+
display: grid;
|
|
466
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
467
|
+
align-items: start;
|
|
468
|
+
gap: 8px;
|
|
469
|
+
margin: 4px -6px 4px;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
.oxa-workflow-detail-mobile .oxa-workflow-detail-header > div {
|
|
473
|
+
padding-top: 4px;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
.oxa-workflow-detail-mobile .oxa-workflow-detail-grid {
|
|
477
|
+
display: grid;
|
|
478
|
+
grid-template-columns: 1fr;
|
|
479
|
+
gap: 14px;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
.oxa-workflow-detail-mobile .ant-card {
|
|
483
|
+
border-radius: 14px;
|
|
484
|
+
box-shadow: 0 4px 18px rgb(31 35 41 / 6%);
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
.oxa-workflow-detail-mobile .oxa-workflow-business-grid {
|
|
488
|
+
grid-template-columns: 1fr;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
.oxa-workflow-detail-mobile .oxa-workflow-actions-mobile {
|
|
492
|
+
position: fixed;
|
|
493
|
+
right: 0;
|
|
494
|
+
bottom: 0;
|
|
495
|
+
left: 0;
|
|
496
|
+
z-index: 40;
|
|
497
|
+
min-height: 76px;
|
|
498
|
+
border-width: 1px 0 0;
|
|
499
|
+
border-radius: 0;
|
|
500
|
+
padding: 12px 18px max(12px, env(safe-area-inset-bottom));
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
.oxa-workflow-actions-mobile .ant-btn {
|
|
504
|
+
flex: 1;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
.oxa-workflow-actions-mobile .oxa-workflow-more-actions {
|
|
508
|
+
right: auto;
|
|
509
|
+
bottom: 68px;
|
|
510
|
+
left: 18px;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
@media (max-width: 980px) {
|
|
514
|
+
.oxa-workflow-detail-grid {
|
|
515
|
+
grid-template-columns: 1fr;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
@media (prefers-reduced-motion: reduce) {
|
|
520
|
+
.oxa-global-request-loading span {
|
|
521
|
+
animation: none;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
|
|
222
525
|
.oxa-current-user {
|
|
223
526
|
display: inline-flex;
|
|
224
527
|
min-width: 0;
|
|
@@ -260,10 +563,10 @@ body {
|
|
|
260
563
|
}
|
|
261
564
|
|
|
262
565
|
.oxa-user-dropdown {
|
|
263
|
-
width:
|
|
566
|
+
width: 400px;
|
|
264
567
|
overflow: hidden;
|
|
265
568
|
border: 1px solid var(--oxa-shell-border, #f0f0f0);
|
|
266
|
-
border-radius:
|
|
569
|
+
border-radius: 12px;
|
|
267
570
|
background: var(--oxa-shell-elevated, #fff);
|
|
268
571
|
box-shadow: var(--oxa-shell-shadow, 0 1px 6px rgb(0 0 0 / 8%));
|
|
269
572
|
padding-top: 4px;
|
|
@@ -272,15 +575,15 @@ body {
|
|
|
272
575
|
.oxa-user-dropdown-profile {
|
|
273
576
|
display: flex;
|
|
274
577
|
align-items: center;
|
|
275
|
-
gap:
|
|
276
|
-
padding:
|
|
578
|
+
gap: 14px;
|
|
579
|
+
padding: 20px 20px 16px;
|
|
277
580
|
}
|
|
278
581
|
|
|
279
|
-
.oxa-user-
|
|
582
|
+
.oxa-user-profile-copy {
|
|
280
583
|
display: grid;
|
|
281
584
|
min-width: 0;
|
|
282
585
|
flex: 1;
|
|
283
|
-
gap:
|
|
586
|
+
gap: 4px;
|
|
284
587
|
}
|
|
285
588
|
|
|
286
589
|
.oxa-user-dropdown-profile strong,
|
|
@@ -291,15 +594,46 @@ body {
|
|
|
291
594
|
white-space: nowrap;
|
|
292
595
|
}
|
|
293
596
|
|
|
597
|
+
.oxa-user-dropdown-profile strong {
|
|
598
|
+
font-size: 18px;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
.oxa-user-avatar-editor {
|
|
602
|
+
position: relative;
|
|
603
|
+
flex: 0 0 auto;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
.oxa-avatar-camera {
|
|
607
|
+
position: absolute !important;
|
|
608
|
+
right: -4px;
|
|
609
|
+
bottom: -2px;
|
|
610
|
+
border-color: var(--oxa-shell-primary, #1677ff) !important;
|
|
611
|
+
color: var(--oxa-shell-primary, #1677ff) !important;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
.oxa-user-role-tags {
|
|
615
|
+
display: flex;
|
|
616
|
+
flex-wrap: wrap;
|
|
617
|
+
gap: 6px;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
.oxa-user-role-tags .ant-tag {
|
|
621
|
+
margin: 0;
|
|
622
|
+
border-radius: 6px;
|
|
623
|
+
padding: 3px 9px;
|
|
624
|
+
}
|
|
625
|
+
|
|
294
626
|
.oxa-user-dropdown-profile span,
|
|
295
627
|
.oxa-user-dropdown-profile small,
|
|
296
628
|
.oxa-user-dropdown-roles > span,
|
|
629
|
+
.oxa-user-dropdown-perspective > span,
|
|
297
630
|
.oxa-user-dropdown-theme > span {
|
|
298
631
|
color: var(--oxa-shell-text-secondary, #595959);
|
|
299
632
|
font-size: 12px;
|
|
300
633
|
}
|
|
301
634
|
|
|
302
635
|
.oxa-user-dropdown-roles,
|
|
636
|
+
.oxa-user-dropdown-perspective,
|
|
303
637
|
.oxa-user-dropdown-theme {
|
|
304
638
|
display: grid;
|
|
305
639
|
gap: 7px;
|
|
@@ -308,6 +642,15 @@ body {
|
|
|
308
642
|
padding: 10px 4px;
|
|
309
643
|
}
|
|
310
644
|
|
|
645
|
+
.oxa-user-dropdown-perspective .ant-select {
|
|
646
|
+
width: 100%;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
.oxa-user-dropdown-perspective .ant-typography {
|
|
650
|
+
font-size: 12px;
|
|
651
|
+
line-height: 1.5;
|
|
652
|
+
}
|
|
653
|
+
|
|
311
654
|
.oxa-user-dropdown > .ant-dropdown-menu {
|
|
312
655
|
border-top: 1px solid var(--oxa-shell-border, #f0f0f0);
|
|
313
656
|
border-radius: 0;
|
|
@@ -523,13 +866,77 @@ body {
|
|
|
523
866
|
|
|
524
867
|
.oxa-search-panel {
|
|
525
868
|
display: grid;
|
|
526
|
-
grid-template-columns: minmax(0, 1fr) auto;
|
|
527
|
-
align-items: start;
|
|
528
869
|
gap: 12px;
|
|
529
870
|
border-bottom: 1px solid var(--oxa-shell-border, #f0f0f0);
|
|
530
871
|
padding: 16px;
|
|
531
872
|
}
|
|
532
873
|
|
|
874
|
+
.oxa-filter-primary-row {
|
|
875
|
+
display: flex;
|
|
876
|
+
min-width: 0;
|
|
877
|
+
align-items: center;
|
|
878
|
+
gap: 12px;
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
.oxa-filter-keyword {
|
|
882
|
+
min-width: 260px;
|
|
883
|
+
flex: 1 1 360px;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
.oxa-filter-primary-item {
|
|
887
|
+
width: 220px;
|
|
888
|
+
min-width: 180px;
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
.oxa-filter-primary-item > .ant-select,
|
|
892
|
+
.oxa-filter-primary-item > .ant-picker,
|
|
893
|
+
.oxa-more-filter-field > .ant-select,
|
|
894
|
+
.oxa-more-filter-field > .ant-picker {
|
|
895
|
+
width: 100%;
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
.oxa-applied-filters {
|
|
899
|
+
display: flex;
|
|
900
|
+
min-width: 0;
|
|
901
|
+
align-items: center;
|
|
902
|
+
gap: 10px;
|
|
903
|
+
color: var(--oxa-shell-text-secondary, #595959);
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
.oxa-applied-filter-tags {
|
|
907
|
+
display: flex;
|
|
908
|
+
min-width: 0;
|
|
909
|
+
flex: 1;
|
|
910
|
+
flex-wrap: wrap;
|
|
911
|
+
gap: 8px;
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
.oxa-applied-filter-tags .ant-tag {
|
|
915
|
+
margin: 0;
|
|
916
|
+
border-radius: 6px;
|
|
917
|
+
padding: 3px 9px;
|
|
918
|
+
color: var(--oxa-shell-primary, #1677ff);
|
|
919
|
+
background: var(--oxa-shell-primary-bg, #e6f4ff);
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
.oxa-more-filter-grid {
|
|
923
|
+
display: grid;
|
|
924
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
925
|
+
gap: 22px 24px;
|
|
926
|
+
padding: 12px 0 8px;
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
.oxa-more-filter-field {
|
|
930
|
+
display: grid;
|
|
931
|
+
min-width: 0;
|
|
932
|
+
gap: 8px;
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
.oxa-more-filter-field > label {
|
|
936
|
+
color: var(--oxa-shell-text, #1f1f1f);
|
|
937
|
+
font-weight: 600;
|
|
938
|
+
}
|
|
939
|
+
|
|
533
940
|
.oxa-filter-grid {
|
|
534
941
|
display: grid;
|
|
535
942
|
grid-template-columns: repeat(4, minmax(170px, 1fr));
|
|
@@ -556,6 +963,8 @@ body {
|
|
|
556
963
|
|
|
557
964
|
.oxa-filter-actions {
|
|
558
965
|
align-items: flex-start;
|
|
966
|
+
flex: 0 0 auto;
|
|
967
|
+
margin-left: auto;
|
|
559
968
|
}
|
|
560
969
|
|
|
561
970
|
.oxa-list-toolbar {
|
|
@@ -1853,6 +2262,14 @@ body {
|
|
|
1853
2262
|
position: static;
|
|
1854
2263
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1855
2264
|
}
|
|
2265
|
+
|
|
2266
|
+
.oxa-filter-primary-row {
|
|
2267
|
+
flex-wrap: wrap;
|
|
2268
|
+
}
|
|
2269
|
+
|
|
2270
|
+
.oxa-filter-actions {
|
|
2271
|
+
margin-left: 0;
|
|
2272
|
+
}
|
|
1856
2273
|
}
|
|
1857
2274
|
|
|
1858
2275
|
@media (max-width: 900px) {
|
|
@@ -1888,6 +2305,23 @@ body {
|
|
|
1888
2305
|
grid-template-columns: 1fr;
|
|
1889
2306
|
}
|
|
1890
2307
|
|
|
2308
|
+
.oxa-filter-primary-row,
|
|
2309
|
+
.oxa-applied-filters {
|
|
2310
|
+
align-items: stretch;
|
|
2311
|
+
flex-direction: column;
|
|
2312
|
+
}
|
|
2313
|
+
|
|
2314
|
+
.oxa-filter-keyword,
|
|
2315
|
+
.oxa-filter-primary-item {
|
|
2316
|
+
width: 100%;
|
|
2317
|
+
min-width: 0;
|
|
2318
|
+
flex: 0 0 auto;
|
|
2319
|
+
}
|
|
2320
|
+
|
|
2321
|
+
.oxa-more-filter-grid {
|
|
2322
|
+
grid-template-columns: 1fr;
|
|
2323
|
+
}
|
|
2324
|
+
|
|
1891
2325
|
.oxa-filter-actions,
|
|
1892
2326
|
.oxa-list-toolbar,
|
|
1893
2327
|
.oxa-batch-bar {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { WorkflowStartInput } from './platform-client';
|
|
3
|
+
export interface WorkflowSubmissionContext {
|
|
4
|
+
workflowCode: string;
|
|
5
|
+
locationState: unknown;
|
|
6
|
+
searchParams: URLSearchParams;
|
|
7
|
+
}
|
|
8
|
+
export interface StandardWorkflowDefinition {
|
|
9
|
+
code: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Persists the business draft and returns the exact immutable revision-bound
|
|
14
|
+
* facts used by prepare/start. The Workflow page never owns business data.
|
|
15
|
+
*/
|
|
16
|
+
saveBusinessRevision?: (context: WorkflowSubmissionContext) => Promise<WorkflowStartInput>;
|
|
17
|
+
}
|
|
18
|
+
export type StandardWorkflowDefinitionsInput = readonly (string | StandardWorkflowDefinition)[];
|
|
19
|
+
export declare function OpenXiangdaWorkflowDefinitionsProvider({ children, definitions, }: {
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
definitions: StandardWorkflowDefinitionsInput;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export declare function useWorkflowDefinitions(): ReadonlyMap<string, StandardWorkflowDefinition>;
|
|
24
|
+
export declare function useWorkflowDefinition(code: string): StandardWorkflowDefinition | undefined;
|
|
25
|
+
//# sourceMappingURL=workflow-definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-definitions.d.ts","sourceRoot":"","sources":["../../src/browser/workflow-definitions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CACrB,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,gCAAgC,GAAG,SAAS,CACpD,MAAM,GACN,0BAA0B,CAC7B,EAAE,CAAC;AA2BJ,wBAAgB,sCAAsC,CAAC,EACrD,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,gCAAgC,CAAC;CAC/C,2CAQA;AAED,wBAAgB,sBAAsB,oDAErC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,0CAEjD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
function normalizeWorkflowDefinitions(input) {
|
|
4
|
+
const definitions = new Map();
|
|
5
|
+
for (const entry of input) {
|
|
6
|
+
const definition = typeof entry === 'string' ? { code: entry } : { ...entry };
|
|
7
|
+
const code = String(definition.code || '').trim();
|
|
8
|
+
if (!/^[a-z][a-z0-9-]{2,63}$/.test(code)) {
|
|
9
|
+
throw new Error(`OPENXIANGDA_WORKFLOW_CODE_INVALID: ${code}`);
|
|
10
|
+
}
|
|
11
|
+
if (definitions.has(code)) {
|
|
12
|
+
throw new Error(`OPENXIANGDA_WORKFLOW_CODE_DUPLICATE: ${code}`);
|
|
13
|
+
}
|
|
14
|
+
definitions.set(code, {
|
|
15
|
+
...definition,
|
|
16
|
+
code,
|
|
17
|
+
title: String(definition.title || code).trim(),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return definitions;
|
|
21
|
+
}
|
|
22
|
+
const WorkflowDefinitionsContext = createContext(new Map());
|
|
23
|
+
export function OpenXiangdaWorkflowDefinitionsProvider({ children, definitions, }) {
|
|
24
|
+
return (_jsx(WorkflowDefinitionsContext.Provider, { value: normalizeWorkflowDefinitions(definitions), children: children }));
|
|
25
|
+
}
|
|
26
|
+
export function useWorkflowDefinitions() {
|
|
27
|
+
return useContext(WorkflowDefinitionsContext);
|
|
28
|
+
}
|
|
29
|
+
export function useWorkflowDefinition(code) {
|
|
30
|
+
return useWorkflowDefinitions().get(code);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=workflow-definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-definitions.js","sourceRoot":"","sources":["../../src/browser/workflow-definitions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AA2BlE,SAAS,4BAA4B,CAAC,KAAuC;IAC3E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsC,CAAC;IAClE,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,UAAU,GACd,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE;YACpB,GAAG,UAAU;YACb,IAAI;YACJ,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,0BAA0B,GAAG,aAAa,CAE9C,IAAI,GAAG,EAAE,CAAC,CAAC;AAEb,MAAM,UAAU,sCAAsC,CAAC,EACrD,QAAQ,EACR,WAAW,GAIZ;IACC,OAAO,CACL,KAAC,0BAA0B,CAAC,QAAQ,IAClC,KAAK,EAAE,4BAA4B,CAAC,WAAW,CAAC,YAE/C,QAAQ,GAC2B,CACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,UAAU,CAAC,0BAA0B,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,sBAAsB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { defineOpenXiangdaApp, currentUserDataPolicy, resourceCapabilityCodes, type AppDataFieldAccessDeclaration, type AppDataFieldDeclaration, type AppDataResourceDeclaration, type OpenXiangdaAppConfig, type OpenXiangdaAppDeclaration, } from 'openxiangda-devkit-core';
|
|
1
|
+
export { defineOpenXiangdaApp, composeAppOperationSchemas, composeJsonSchema, currentUserDataPolicy, resourceRecordSchema, resourceCapabilityCodes, schemaRef, type AppDataFieldAccessDeclaration, type AppDataFieldDeclaration, type AppDataResourceDeclaration, type OpenXiangdaAppConfig, type OpenXiangdaAppDeclaration, type AppOperationSchemasInput, type JsonSchemaDefinitions, type ResourceRecordSchemaOptions, } from 'openxiangda-devkit-core';
|
|
2
2
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,SAAS,EACT,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { defineOpenXiangdaApp, currentUserDataPolicy, resourceCapabilityCodes, } from 'openxiangda-devkit-core';
|
|
1
|
+
export { defineOpenXiangdaApp, composeAppOperationSchemas, composeJsonSchema, currentUserDataPolicy, resourceRecordSchema, resourceCapabilityCodes, schemaRef, } from 'openxiangda-devkit-core';
|
|
2
2
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,SAAS,GASV,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface OpenXiangdaWebBuildVerification {
|
|
2
|
+
assetFiles: number;
|
|
3
|
+
totalBytes: number;
|
|
4
|
+
totalJavaScriptGzipBytes: number;
|
|
5
|
+
initialJavaScriptGzipBytes: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function verifyOpenXiangdaWebBuild(distInput: string | URL): OpenXiangdaWebBuildVerification;
|
|
8
|
+
//# sourceMappingURL=web-build-verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-build-verifier.d.ts","sourceRoot":"","sources":["../../src/internal/web-build-verifier.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,+BAA+B;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB,EAAE,MAAM,CAAC;IACjC,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,GAAG,GAAG,GACtB,+BAA+B,CAgEjC"}
|