@sparkelf/dsh-dataops-managed 0.3.24 → 0.3.25

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/lib/client.js CHANGED
@@ -736,8 +736,8 @@ window.__ModuleLoader__.load({
736
736
  }
737
737
  }
738
738
  //#endregion
739
- //#region \0dsh-css:/root/projects/.dm-clean-build/packages/dataops-managed/src/client/ManagedDataOpsSection.module.css.mjs
740
- const css$5 = ".w9JlYq_section{max-width:720px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}.w9JlYq_title{margin:0;font-size:18px;font-weight:600;line-height:28px}.w9JlYq_status{color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;font-size:13px;line-height:22px;display:flex}.w9JlYq_card{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-settings-card-fill);flex-direction:column;gap:12px;padding:12px 16px;display:flex}.w9JlYq_heading{margin:0;font-size:13px;font-weight:600;line-height:22px}.w9JlYq_row{justify-content:space-between;align-items:center;gap:16px;display:flex}.w9JlYq_copy{flex-direction:column;min-width:0;display:flex}.w9JlYq_label{font-size:13px;line-height:22px}.w9JlYq_meta{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.w9JlYq_fields{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:0 16px;display:grid}.w9JlYq_fields>div{min-width:0}.w9JlYq_fields input{font-variant-numeric:tabular-nums;min-width:0}.w9JlYq_actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.w9JlYq_refusal{color:var(--dsw-alias-state-error-primary);align-items:flex-start;gap:6px;margin-right:auto;font-size:12px;line-height:18px;display:flex}.w9JlYq_reviewHint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px;line-height:17px}.w9JlYq_reviewRows{flex-direction:column;gap:2px;display:flex}.w9JlYq_reviewRow{justify-content:space-between;align-items:center;gap:12px;min-height:30px;display:flex}.w9JlYq_reviewActions{justify-content:flex-end;display:flex}";
739
+ //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/dataops-managed/src/client/ManagedDataOpsSection.module.css.mjs
740
+ const css$5 = "._2dqzjG_section{max-width:720px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}._2dqzjG_title{margin:0;font-size:18px;font-weight:600;line-height:28px}._2dqzjG_status{color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;font-size:13px;line-height:22px;display:flex}._2dqzjG_card{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-settings-card-fill);flex-direction:column;gap:12px;padding:12px 16px;display:flex}._2dqzjG_heading{margin:0;font-size:13px;font-weight:600;line-height:22px}._2dqzjG_row{justify-content:space-between;align-items:center;gap:16px;display:flex}._2dqzjG_copy{flex-direction:column;min-width:0;display:flex}._2dqzjG_label{font-size:13px;line-height:22px}._2dqzjG_meta{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._2dqzjG_fields{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:0 16px;display:grid}._2dqzjG_fields>div{min-width:0}._2dqzjG_fields input{font-variant-numeric:tabular-nums;min-width:0}._2dqzjG_actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}._2dqzjG_refusal{color:var(--dsw-alias-state-error-primary);align-items:flex-start;gap:6px;margin-right:auto;font-size:12px;line-height:18px;display:flex}._2dqzjG_reviewHint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px;line-height:17px}._2dqzjG_reviewRows{flex-direction:column;gap:2px;display:flex}._2dqzjG_reviewRow{justify-content:space-between;align-items:center;gap:12px;min-height:30px;display:flex}._2dqzjG_reviewActions{justify-content:flex-end;display:flex}";
741
741
  const tagId$5 = "@sparkelf/dsh-dataops-managed/ManagedDataOpsSection.module.css";
742
742
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
743
743
  const tag = document.createElement("style");
@@ -747,22 +747,22 @@ window.__ModuleLoader__.load({
747
747
  document.head.appendChild(tag);
748
748
  }
749
749
  var ManagedDataOpsSection_module_css_default = {
750
- "refusal": "w9JlYq_refusal",
751
- "row": "w9JlYq_row",
752
- "label": "w9JlYq_label",
753
- "section": "w9JlYq_section",
754
- "reviewRows": "w9JlYq_reviewRows",
755
- "heading": "w9JlYq_heading",
756
- "title": "w9JlYq_title",
757
- "reviewHint": "w9JlYq_reviewHint",
758
- "reviewRow": "w9JlYq_reviewRow",
759
- "card": "w9JlYq_card",
760
- "fields": "w9JlYq_fields",
761
- "reviewActions": "w9JlYq_reviewActions",
762
- "status": "w9JlYq_status",
763
- "copy": "w9JlYq_copy",
764
- "meta": "w9JlYq_meta",
765
- "actions": "w9JlYq_actions"
750
+ "reviewRow": "_2dqzjG_reviewRow",
751
+ "section": "_2dqzjG_section",
752
+ "status": "_2dqzjG_status",
753
+ "copy": "_2dqzjG_copy",
754
+ "actions": "_2dqzjG_actions",
755
+ "reviewActions": "_2dqzjG_reviewActions",
756
+ "heading": "_2dqzjG_heading",
757
+ "label": "_2dqzjG_label",
758
+ "row": "_2dqzjG_row",
759
+ "reviewHint": "_2dqzjG_reviewHint",
760
+ "refusal": "_2dqzjG_refusal",
761
+ "title": "_2dqzjG_title",
762
+ "card": "_2dqzjG_card",
763
+ "reviewRows": "_2dqzjG_reviewRows",
764
+ "fields": "_2dqzjG_fields",
765
+ "meta": "_2dqzjG_meta"
766
766
  };
767
767
  //#endregion
768
768
  //#region src/client/ReviewSettingsCard.tsx
@@ -1606,8 +1606,8 @@ window.__ModuleLoader__.load({
1606
1606
  }
1607
1607
  }
1608
1608
  //#endregion
1609
- //#region \0dsh-css:/root/projects/.dm-clean-build/packages/dataops-managed/src/client/NotificationBell.module.css.mjs
1610
- const css$4 = ".cwNcNq_bell{width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.cwNcNq_bell:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.cwNcNq_bell:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.cwNcNq_badge{background:var(--dsw-alias-state-error-primary);color:#fff;text-align:center;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:600;line-height:14px;position:absolute;top:0;right:-2px}.cwNcNq_dialog{flex-direction:column;width:min(520px,100vw - 32px);height:70vh;max-height:70vh;display:flex;overflow:hidden}.cwNcNq_demo{background:var(--dsw-alias-state-warn-secondary);color:var(--dsw-alias-state-warn-primary);border-radius:4px;margin:0 0 8px;padding:5px 8px;font-size:11px}.cwNcNq_empty{color:var(--dsw-alias-label-tertiary);text-align:center;margin:0;padding:18px 0;font-size:12px;line-height:18px}.cwNcNq_list{flex-direction:column;flex:none;gap:6px;max-height:calc(70vh - 210px);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.cwNcNq_row{width:100%;color:var(--dsw-alias-label-secondary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0;align-items:flex-start;gap:9px;padding:4px 2px;display:flex}.cwNcNq_row:hover .cwNcNq_rowTitle{color:var(--dsw-alias-state-business-primary)}.cwNcNq_rowIcon{width:18px;height:18px;color:var(--dsw-alias-label-secondary);flex:none;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.cwNcNq_rowIcon[data-tone=success]{color:var(--dsw-alias-state-success-primary)}.cwNcNq_rowIcon[data-tone=danger]{color:var(--dsw-alias-state-error-primary)}.cwNcNq_rowIcon[data-tone=warn]{color:var(--dsw-alias-state-warn-primary)}.cwNcNq_rowIcon[data-tone=info]{color:var(--dsw-alias-state-business-primary)}.cwNcNq_dot{background:var(--dsw-alias-state-business-primary);border-radius:50%;flex:none;width:6px;height:6px}.cwNcNq_rowBody{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cwNcNq_rowTitle{color:var(--dsw-alias-label-primary);font-size:12px;font-weight:500;line-height:18px}.cwNcNq_rowText{color:var(--dsw-alias-label-secondary);font-size:11px;line-height:16px}.cwNcNq_rowMeta{flex:none;align-items:center;gap:6px;margin-top:2px;display:flex}.cwNcNq_rowTime{color:var(--dsw-alias-label-tertiary);flex:none;font-size:10px;line-height:16px}.cwNcNq_actions{justify-content:flex-end;gap:6px;display:flex}.cwNcNq_button,.cwNcNq_linkButton{cursor:pointer;border-radius:5px;height:28px;padding:0 10px;font-size:12px}.cwNcNq_button{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:0 0}.cwNcNq_linkButton{color:var(--dsw-alias-state-business-primary);background:0 0;border:0}.cwNcNq_pager{color:var(--dsw-alias-label-secondary);justify-content:flex-end;align-items:center;gap:8px;padding-top:8px;font-size:11px;display:flex}.cwNcNq_pager button{border:1px solid var(--dsw-alias-border-l2);height:24px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:0 8px;font-size:11px}.cwNcNq_pager button:disabled{opacity:.4;cursor:default}";
1609
+ //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/dataops-managed/src/client/NotificationBell.module.css.mjs
1610
+ const css$4 = ".tE0trG_bell{width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.tE0trG_bell:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.tE0trG_bell:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.tE0trG_badge{background:var(--dsw-alias-state-error-primary);color:#fff;text-align:center;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:600;line-height:14px;position:absolute;top:0;right:-2px}.tE0trG_dialog{flex-direction:column;width:min(520px,100vw - 32px);height:70vh;max-height:70vh;display:flex;overflow:hidden}.tE0trG_demo{background:var(--dsw-alias-state-warn-secondary);color:var(--dsw-alias-state-warn-primary);border-radius:4px;margin:0 0 8px;padding:5px 8px;font-size:11px}.tE0trG_empty{color:var(--dsw-alias-label-tertiary);text-align:center;margin:0;padding:18px 0;font-size:12px;line-height:18px}.tE0trG_list{flex-direction:column;flex:none;gap:6px;max-height:calc(70vh - 210px);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.tE0trG_row{width:100%;color:var(--dsw-alias-label-secondary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0;align-items:flex-start;gap:9px;padding:4px 2px;display:flex}.tE0trG_row:hover .tE0trG_rowTitle{color:var(--dsw-alias-state-business-primary)}.tE0trG_rowIcon{width:18px;height:18px;color:var(--dsw-alias-label-secondary);flex:none;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.tE0trG_rowIcon[data-tone=success]{color:var(--dsw-alias-state-success-primary)}.tE0trG_rowIcon[data-tone=danger]{color:var(--dsw-alias-state-error-primary)}.tE0trG_rowIcon[data-tone=warn]{color:var(--dsw-alias-state-warn-primary)}.tE0trG_rowIcon[data-tone=info]{color:var(--dsw-alias-state-business-primary)}.tE0trG_dot{background:var(--dsw-alias-state-business-primary);border-radius:50%;flex:none;width:6px;height:6px}.tE0trG_rowBody{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tE0trG_rowTitle{color:var(--dsw-alias-label-primary);font-size:12px;font-weight:500;line-height:18px}.tE0trG_rowText{color:var(--dsw-alias-label-secondary);font-size:11px;line-height:16px}.tE0trG_rowMeta{flex:none;align-items:center;gap:6px;margin-top:2px;display:flex}.tE0trG_rowTime{color:var(--dsw-alias-label-tertiary);flex:none;font-size:10px;line-height:16px}.tE0trG_actions{justify-content:flex-end;gap:6px;display:flex}.tE0trG_button,.tE0trG_linkButton{cursor:pointer;border-radius:5px;height:28px;padding:0 10px;font-size:12px}.tE0trG_button{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:0 0}.tE0trG_linkButton{color:var(--dsw-alias-state-business-primary);background:0 0;border:0}.tE0trG_pager{color:var(--dsw-alias-label-secondary);justify-content:flex-end;align-items:center;gap:8px;padding-top:8px;font-size:11px;display:flex}.tE0trG_pager button{border:1px solid var(--dsw-alias-border-l2);height:24px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:0 8px;font-size:11px}.tE0trG_pager button:disabled{opacity:.4;cursor:default}";
1611
1611
  const tagId$4 = "@sparkelf/dsh-dataops-managed/NotificationBell.module.css";
1612
1612
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
1613
1613
  const tag = document.createElement("style");
@@ -1617,24 +1617,24 @@ window.__ModuleLoader__.load({
1617
1617
  document.head.appendChild(tag);
1618
1618
  }
1619
1619
  var NotificationBell_module_css_default = {
1620
- "dialog": "cwNcNq_dialog",
1621
- "rowMeta": "cwNcNq_rowMeta",
1622
- "row": "cwNcNq_row",
1623
- "rowTime": "cwNcNq_rowTime",
1624
- "linkButton": "cwNcNq_linkButton",
1625
- "rowBody": "cwNcNq_rowBody",
1626
- "actions": "cwNcNq_actions",
1627
- "rowTitle": "cwNcNq_rowTitle",
1628
- "empty": "cwNcNq_empty",
1629
- "demo": "cwNcNq_demo",
1630
- "dot": "cwNcNq_dot",
1631
- "badge": "cwNcNq_badge",
1632
- "button": "cwNcNq_button",
1633
- "bell": "cwNcNq_bell",
1634
- "rowText": "cwNcNq_rowText",
1635
- "list": "cwNcNq_list",
1636
- "rowIcon": "cwNcNq_rowIcon",
1637
- "pager": "cwNcNq_pager"
1620
+ "bell": "tE0trG_bell",
1621
+ "linkButton": "tE0trG_linkButton",
1622
+ "button": "tE0trG_button",
1623
+ "dialog": "tE0trG_dialog",
1624
+ "rowTime": "tE0trG_rowTime",
1625
+ "empty": "tE0trG_empty",
1626
+ "badge": "tE0trG_badge",
1627
+ "demo": "tE0trG_demo",
1628
+ "rowBody": "tE0trG_rowBody",
1629
+ "list": "tE0trG_list",
1630
+ "rowIcon": "tE0trG_rowIcon",
1631
+ "rowMeta": "tE0trG_rowMeta",
1632
+ "actions": "tE0trG_actions",
1633
+ "rowText": "tE0trG_rowText",
1634
+ "rowTitle": "tE0trG_rowTitle",
1635
+ "dot": "tE0trG_dot",
1636
+ "row": "tE0trG_row",
1637
+ "pager": "tE0trG_pager"
1638
1638
  };
1639
1639
  //#endregion
1640
1640
  //#region src/client/NotificationBell.tsx
@@ -1914,8 +1914,8 @@ window.__ModuleLoader__.load({
1914
1914
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NotificationBell, { label: "自动化任务通知" });
1915
1915
  }
1916
1916
  //#endregion
1917
- //#region \0dsh-css:/root/projects/.dm-clean-build/packages/dataops-managed/src/client/SkillPlazaSection.module.css.mjs
1918
- const css$3 = ".YW7M9G_section{box-sizing:border-box;flex-direction:column;width:100%;max-width:960px;margin:0 auto;display:flex}.YW7M9G_head{flex-direction:column;margin-bottom:8px;display:flex}.YW7M9G_title{color:var(--dsw-alias-label-primary);align-items:baseline;gap:8px;margin:0;font-size:14px;font-weight:500;line-height:20px;display:flex}.YW7M9G_titleCount{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400}.YW7M9G_status{text-align:center;color:var(--dsw-alias-label-tertiary);margin:0;padding:20px 0;font-size:13px;line-height:20px}.YW7M9G_departmentBar{align-items:center;gap:8px;margin-bottom:10px;display:inline-flex}.YW7M9G_departmentLabel{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}.YW7M9G_departmentSelect{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);height:28px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:8px;padding:0 8px;font-size:12px;line-height:18px}.YW7M9G_departmentSelect:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.YW7M9G_notice{color:var(--dsw-alias-state-business-primary);margin:4px 0 0;font-size:12px;line-height:18px}.YW7M9G_cards{grid-template-columns:repeat(auto-fill,minmax(272px,1fr));grid-auto-rows:max-content;align-content:start;align-items:stretch;gap:12px;margin:0;padding:0;list-style:none;display:grid}.YW7M9G_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:10px;flex-direction:column;align-self:stretch;gap:10px;min-width:0;height:auto;padding:12px;display:flex}.YW7M9G_cardTop{justify-content:space-between;align-items:center;gap:10px;min-height:28px;display:flex}.YW7M9G_cardIcon{background:var(--dsw-alias-bg-layer-2);width:28px;height:28px;color:var(--dsw-alias-label-secondary);border-radius:50%;flex:none;place-items:center;display:grid}.YW7M9G_cardTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:600;line-height:20px;overflow:hidden}.YW7M9G_mine{flex:none}.YW7M9G_cardDesc{min-height:36px;color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:18px;display:-webkit-box;overflow:hidden}.YW7M9G_cardMarks{flex-wrap:wrap;align-content:flex-start;gap:6px;min-height:20px;display:flex}.YW7M9G_mark{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-state-business-primary);white-space:nowrap;border:0;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:500;line-height:16px}.YW7M9G_cardEnd{flex:none;align-items:center;gap:4px;margin-top:auto;padding-top:4px;display:flex}.YW7M9G_detailButton{margin-left:auto}.YW7M9G_detail{flex-direction:column;gap:12px;margin:0;display:flex}.YW7M9G_dialog{width:min(560px,100%)}.YW7M9G_detailRow{flex-direction:column;gap:2px;display:flex}.YW7M9G_detailLabel{color:var(--dsw-alias-label-caption);font-size:11px;line-height:16px}.YW7M9G_detailValue{max-height:160px;color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px;overflow:auto}.YW7M9G_empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:28px 16px 32px;display:flex}.YW7M9G_emptyIcon{border:.5px solid var(--dsw-alias-border-l3);width:56px;height:56px;color:var(--dsw-alias-label-tertiary);border-radius:14px;justify-content:center;align-items:center;display:inline-flex}.YW7M9G_emptyText{color:var(--dsw-alias-label-tertiary);margin:0;font-size:13px;line-height:20px}.YW7M9G_headRow{align-items:center;gap:6px;display:flex}.YW7M9G_headRow .YW7M9G_title{flex:none}.YW7M9G_demoTag{background:var(--dsw-alias-state-warn-secondary);color:var(--dsw-alias-state-warn-primary);border-radius:4px;padding:1px 6px;font-size:10px;line-height:16px}.YW7M9G_tabs{border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:2px;margin-bottom:8px;display:flex}.YW7M9G_tab{height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:5px;padding:0 9px;font-size:12px;display:inline-flex}.YW7M9G_tab:hover{color:var(--dsw-alias-label-primary)}.YW7M9G_tabActive{color:var(--dsw-alias-state-business-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:500}.YW7M9G_tabCount{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);border-radius:7px;padding:0 4px;font-size:10px;line-height:14px}.YW7M9G_tagTop{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--dsw-alias-border-l2);max-width:40%;color:var(--dsw-alias-label-secondary);border-radius:4px;flex:none;padding:1px 6px;font-size:10px;line-height:16px;overflow:hidden}.YW7M9G_sharedTag{color:#fff;background:#0e6b3a;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600;line-height:16px}.YW7M9G_pendingTag{color:#fff;background:#7a4a00;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600;line-height:16px}.YW7M9G_rejectedTag{color:#fff;background:#a8231b;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600;line-height:16px}.YW7M9G_reviewButton{margin-left:auto}.YW7M9G_reviewNote{border-left:3px solid var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 10%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-label-primary);margin:0;padding:6px 8px;font-size:11px;line-height:16px}.YW7M9G_auditDialog{width:min(640px,100vw - 32px)}.YW7M9G_audit{flex-direction:column;gap:14px;display:flex}.YW7M9G_auditFooter{justify-content:flex-end;gap:6px;display:flex}.YW7M9G_risk{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;flex-direction:column;gap:8px;padding:10px;display:flex}.YW7M9G_riskHead{justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.YW7M9G_riskEmpty,.YW7M9G_riskFailed{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px;line-height:16px}.YW7M9G_riskFailed{color:var(--dsw-alias-state-error-primary)}.YW7M9G_riskSummary{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;line-height:18px;display:flex}.YW7M9G_riskScore{color:var(--dsw-alias-label-primary);font-weight:600}.YW7M9G_severity{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);text-transform:uppercase;border-radius:3px;padding:0 5px;font-size:10px;line-height:16px}.YW7M9G_severity[data-severity=high],.YW7M9G_severity[data-severity=critical]{background:var(--dsw-alias-state-error-secondary);color:var(--dsw-alias-state-error-primary)}.YW7M9G_severity[data-severity=medium]{background:var(--dsw-alias-state-warn-secondary);color:var(--dsw-alias-state-warn-primary)}.YW7M9G_findings{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.YW7M9G_finding{flex-wrap:wrap;align-items:baseline;gap:5px;font-size:11px;line-height:16px;display:flex}.YW7M9G_findingText{color:var(--dsw-alias-label-secondary);flex-basis:100%}.YW7M9G_findingHint{color:var(--dsw-alias-label-tertiary);flex-basis:100%}.YW7M9G_noteField{color:var(--dsw-alias-label-secondary);flex-direction:column;gap:5px;font-size:12px;display:flex}.YW7M9G_noteField textarea{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);min-height:64px;color:var(--dsw-alias-label-primary);font:inherit;resize:vertical;border-radius:5px;padding:7px 9px}.YW7M9G_reviewError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:11px}";
1917
+ //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/dataops-managed/src/client/SkillPlazaSection.module.css.mjs
1918
+ const css$3 = "._9FdZvq_section{box-sizing:border-box;flex-direction:column;width:100%;max-width:960px;margin:0 auto;display:flex}._9FdZvq_head{flex-direction:column;margin-bottom:8px;display:flex}._9FdZvq_title{color:var(--dsw-alias-label-primary);align-items:baseline;gap:8px;margin:0;font-size:14px;font-weight:500;line-height:20px;display:flex}._9FdZvq_titleCount{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400}._9FdZvq_status{text-align:center;color:var(--dsw-alias-label-tertiary);margin:0;padding:20px 0;font-size:13px;line-height:20px}._9FdZvq_departmentBar{align-items:center;gap:8px;margin-bottom:10px;display:inline-flex}._9FdZvq_departmentLabel{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}._9FdZvq_departmentSelect{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);height:28px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:8px;padding:0 8px;font-size:12px;line-height:18px}._9FdZvq_departmentSelect:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}._9FdZvq_notice{color:var(--dsw-alias-state-business-primary);margin:4px 0 0;font-size:12px;line-height:18px}._9FdZvq_cards{grid-template-columns:repeat(auto-fill,minmax(272px,1fr));grid-auto-rows:max-content;align-content:start;align-items:stretch;gap:12px;margin:0;padding:0;list-style:none;display:grid}._9FdZvq_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:10px;flex-direction:column;align-self:stretch;gap:10px;min-width:0;height:auto;padding:12px;display:flex}._9FdZvq_cardTop{justify-content:space-between;align-items:center;gap:10px;min-height:28px;display:flex}._9FdZvq_cardIcon{background:var(--dsw-alias-bg-layer-2);width:28px;height:28px;color:var(--dsw-alias-label-secondary);border-radius:50%;flex:none;place-items:center;display:grid}._9FdZvq_cardTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:600;line-height:20px;overflow:hidden}._9FdZvq_mine{flex:none}._9FdZvq_cardDesc{min-height:36px;color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:18px;display:-webkit-box;overflow:hidden}._9FdZvq_cardMarks{flex-wrap:wrap;align-content:flex-start;gap:6px;min-height:20px;display:flex}._9FdZvq_mark{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-state-business-primary);white-space:nowrap;border:0;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:500;line-height:16px}._9FdZvq_cardEnd{flex:none;align-items:center;gap:4px;margin-top:auto;padding-top:4px;display:flex}._9FdZvq_detailButton{margin-left:auto}._9FdZvq_detail{flex-direction:column;gap:12px;margin:0;display:flex}._9FdZvq_dialog{width:min(560px,100%)}._9FdZvq_detailRow{flex-direction:column;gap:2px;display:flex}._9FdZvq_detailLabel{color:var(--dsw-alias-label-caption);font-size:11px;line-height:16px}._9FdZvq_detailValue{max-height:160px;color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px;overflow:auto}._9FdZvq_empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:28px 16px 32px;display:flex}._9FdZvq_emptyIcon{border:.5px solid var(--dsw-alias-border-l3);width:56px;height:56px;color:var(--dsw-alias-label-tertiary);border-radius:14px;justify-content:center;align-items:center;display:inline-flex}._9FdZvq_emptyText{color:var(--dsw-alias-label-tertiary);margin:0;font-size:13px;line-height:20px}._9FdZvq_headRow{align-items:center;gap:6px;display:flex}._9FdZvq_headRow ._9FdZvq_title{flex:none}._9FdZvq_demoTag{background:var(--dsw-alias-state-warn-secondary);color:var(--dsw-alias-state-warn-primary);border-radius:4px;padding:1px 6px;font-size:10px;line-height:16px}._9FdZvq_tabs{border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:2px;margin-bottom:8px;display:flex}._9FdZvq_tab{height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:5px;padding:0 9px;font-size:12px;display:inline-flex}._9FdZvq_tab:hover{color:var(--dsw-alias-label-primary)}._9FdZvq_tabActive{color:var(--dsw-alias-state-business-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:500}._9FdZvq_tabCount{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);border-radius:7px;padding:0 4px;font-size:10px;line-height:14px}._9FdZvq_tagTop{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--dsw-alias-border-l2);max-width:40%;color:var(--dsw-alias-label-secondary);border-radius:4px;flex:none;padding:1px 6px;font-size:10px;line-height:16px;overflow:hidden}._9FdZvq_sharedTag{color:#fff;background:#0e6b3a;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600;line-height:16px}._9FdZvq_pendingTag{color:#fff;background:#7a4a00;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600;line-height:16px}._9FdZvq_rejectedTag{color:#fff;background:#a8231b;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600;line-height:16px}._9FdZvq_reviewButton{margin-left:auto}._9FdZvq_reviewNote{border-left:3px solid var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 10%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-label-primary);margin:0;padding:6px 8px;font-size:11px;line-height:16px}._9FdZvq_auditDialog{width:min(640px,100vw - 32px)}._9FdZvq_audit{flex-direction:column;gap:14px;display:flex}._9FdZvq_auditFooter{justify-content:flex-end;gap:6px;display:flex}._9FdZvq_risk{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;flex-direction:column;gap:8px;padding:10px;display:flex}._9FdZvq_riskHead{justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}._9FdZvq_riskEmpty,._9FdZvq_riskFailed{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px;line-height:16px}._9FdZvq_riskFailed{color:var(--dsw-alias-state-error-primary)}._9FdZvq_riskSummary{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;line-height:18px;display:flex}._9FdZvq_riskScore{color:var(--dsw-alias-label-primary);font-weight:600}._9FdZvq_severity{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);text-transform:uppercase;border-radius:3px;padding:0 5px;font-size:10px;line-height:16px}._9FdZvq_severity[data-severity=high],._9FdZvq_severity[data-severity=critical]{background:var(--dsw-alias-state-error-secondary);color:var(--dsw-alias-state-error-primary)}._9FdZvq_severity[data-severity=medium]{background:var(--dsw-alias-state-warn-secondary);color:var(--dsw-alias-state-warn-primary)}._9FdZvq_findings{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}._9FdZvq_finding{flex-wrap:wrap;align-items:baseline;gap:5px;font-size:11px;line-height:16px;display:flex}._9FdZvq_findingText{color:var(--dsw-alias-label-secondary);flex-basis:100%}._9FdZvq_findingHint{color:var(--dsw-alias-label-tertiary);flex-basis:100%}._9FdZvq_noteField{color:var(--dsw-alias-label-secondary);flex-direction:column;gap:5px;font-size:12px;display:flex}._9FdZvq_noteField textarea{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);min-height:64px;color:var(--dsw-alias-label-primary);font:inherit;resize:vertical;border-radius:5px;padding:7px 9px}._9FdZvq_reviewError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:11px}";
1919
1919
  const tagId$3 = "@sparkelf/dsh-dataops-managed/SkillPlazaSection.module.css";
1920
1920
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
1921
1921
  const tag = document.createElement("style");
@@ -1925,62 +1925,62 @@ window.__ModuleLoader__.load({
1925
1925
  document.head.appendChild(tag);
1926
1926
  }
1927
1927
  var SkillPlazaSection_module_css_default = {
1928
- "cardEnd": "YW7M9G_cardEnd",
1929
- "demoTag": "YW7M9G_demoTag",
1930
- "riskScore": "YW7M9G_riskScore",
1931
- "departmentLabel": "YW7M9G_departmentLabel",
1932
- "rejectedTag": "YW7M9G_rejectedTag",
1933
- "reviewButton": "YW7M9G_reviewButton",
1934
- "riskSummary": "YW7M9G_riskSummary",
1935
- "severity": "YW7M9G_severity",
1936
- "findingText": "YW7M9G_findingText",
1937
- "titleCount": "YW7M9G_titleCount",
1938
- "mine": "YW7M9G_mine",
1939
- "cardTop": "YW7M9G_cardTop",
1940
- "empty": "YW7M9G_empty",
1941
- "cardMarks": "YW7M9G_cardMarks",
1942
- "emptyIcon": "YW7M9G_emptyIcon",
1943
- "tagTop": "YW7M9G_tagTop",
1944
- "riskEmpty": "YW7M9G_riskEmpty",
1945
- "auditFooter": "YW7M9G_auditFooter",
1946
- "risk": "YW7M9G_risk",
1947
- "tabs": "YW7M9G_tabs",
1948
- "detailLabel": "YW7M9G_detailLabel",
1949
- "cardIcon": "YW7M9G_cardIcon",
1950
- "sharedTag": "YW7M9G_sharedTag",
1951
- "status": "YW7M9G_status",
1952
- "findings": "YW7M9G_findings",
1953
- "reviewNote": "YW7M9G_reviewNote",
1954
- "dialog": "YW7M9G_dialog",
1955
- "noteField": "YW7M9G_noteField",
1956
- "reviewError": "YW7M9G_reviewError",
1957
- "detail": "YW7M9G_detail",
1958
- "departmentSelect": "YW7M9G_departmentSelect",
1959
- "cardTitle": "YW7M9G_cardTitle",
1960
- "headRow": "YW7M9G_headRow",
1961
- "tab": "YW7M9G_tab",
1962
- "pendingTag": "YW7M9G_pendingTag",
1963
- "audit": "YW7M9G_audit",
1964
- "cards": "YW7M9G_cards",
1965
- "finding": "YW7M9G_finding",
1966
- "head": "YW7M9G_head",
1967
- "emptyText": "YW7M9G_emptyText",
1968
- "findingHint": "YW7M9G_findingHint",
1969
- "tabActive": "YW7M9G_tabActive",
1970
- "mark": "YW7M9G_mark",
1971
- "section": "YW7M9G_section",
1972
- "notice": "YW7M9G_notice",
1973
- "auditDialog": "YW7M9G_auditDialog",
1974
- "riskFailed": "YW7M9G_riskFailed",
1975
- "card": "YW7M9G_card",
1976
- "detailRow": "YW7M9G_detailRow",
1977
- "detailValue": "YW7M9G_detailValue",
1978
- "riskHead": "YW7M9G_riskHead",
1979
- "detailButton": "YW7M9G_detailButton",
1980
- "departmentBar": "YW7M9G_departmentBar",
1981
- "cardDesc": "YW7M9G_cardDesc",
1982
- "title": "YW7M9G_title",
1983
- "tabCount": "YW7M9G_tabCount"
1928
+ "detailLabel": "_9FdZvq_detailLabel",
1929
+ "tabActive": "_9FdZvq_tabActive",
1930
+ "noteField": "_9FdZvq_noteField",
1931
+ "cardEnd": "_9FdZvq_cardEnd",
1932
+ "titleCount": "_9FdZvq_titleCount",
1933
+ "empty": "_9FdZvq_empty",
1934
+ "tagTop": "_9FdZvq_tagTop",
1935
+ "notice": "_9FdZvq_notice",
1936
+ "emptyText": "_9FdZvq_emptyText",
1937
+ "demoTag": "_9FdZvq_demoTag",
1938
+ "severity": "_9FdZvq_severity",
1939
+ "mine": "_9FdZvq_mine",
1940
+ "rejectedTag": "_9FdZvq_rejectedTag",
1941
+ "detailButton": "_9FdZvq_detailButton",
1942
+ "cardTop": "_9FdZvq_cardTop",
1943
+ "cardIcon": "_9FdZvq_cardIcon",
1944
+ "cardDesc": "_9FdZvq_cardDesc",
1945
+ "detailRow": "_9FdZvq_detailRow",
1946
+ "emptyIcon": "_9FdZvq_emptyIcon",
1947
+ "status": "_9FdZvq_status",
1948
+ "cards": "_9FdZvq_cards",
1949
+ "sharedTag": "_9FdZvq_sharedTag",
1950
+ "risk": "_9FdZvq_risk",
1951
+ "riskHead": "_9FdZvq_riskHead",
1952
+ "headRow": "_9FdZvq_headRow",
1953
+ "detail": "_9FdZvq_detail",
1954
+ "tabs": "_9FdZvq_tabs",
1955
+ "reviewButton": "_9FdZvq_reviewButton",
1956
+ "tabCount": "_9FdZvq_tabCount",
1957
+ "card": "_9FdZvq_card",
1958
+ "reviewNote": "_9FdZvq_reviewNote",
1959
+ "riskScore": "_9FdZvq_riskScore",
1960
+ "riskSummary": "_9FdZvq_riskSummary",
1961
+ "finding": "_9FdZvq_finding",
1962
+ "cardTitle": "_9FdZvq_cardTitle",
1963
+ "findingText": "_9FdZvq_findingText",
1964
+ "riskEmpty": "_9FdZvq_riskEmpty",
1965
+ "section": "_9FdZvq_section",
1966
+ "departmentLabel": "_9FdZvq_departmentLabel",
1967
+ "auditFooter": "_9FdZvq_auditFooter",
1968
+ "pendingTag": "_9FdZvq_pendingTag",
1969
+ "departmentSelect": "_9FdZvq_departmentSelect",
1970
+ "riskFailed": "_9FdZvq_riskFailed",
1971
+ "findingHint": "_9FdZvq_findingHint",
1972
+ "detailValue": "_9FdZvq_detailValue",
1973
+ "mark": "_9FdZvq_mark",
1974
+ "reviewError": "_9FdZvq_reviewError",
1975
+ "dialog": "_9FdZvq_dialog",
1976
+ "findings": "_9FdZvq_findings",
1977
+ "head": "_9FdZvq_head",
1978
+ "audit": "_9FdZvq_audit",
1979
+ "auditDialog": "_9FdZvq_auditDialog",
1980
+ "cardMarks": "_9FdZvq_cardMarks",
1981
+ "departmentBar": "_9FdZvq_departmentBar",
1982
+ "title": "_9FdZvq_title",
1983
+ "tab": "_9FdZvq_tab"
1984
1984
  };
1985
1985
  //#endregion
1986
1986
  //#region src/client/SkillPlazaSection.tsx
@@ -2634,8 +2634,8 @@ window.__ModuleLoader__.load({
2634
2634
  });
2635
2635
  }
2636
2636
  //#endregion
2637
- //#region \0dsh-css:/root/projects/.dm-clean-build/packages/dataops-managed/src/client/WanxiangBrand.module.css.mjs
2638
- const css$2 = ".Ko_cOa_mark{color:inherit;flex:none;display:block;overflow:visible}.Ko_cOa_animatedMark{cursor:pointer}.Ko_cOa_mark g{transform-box:fill-box;transform-origin:50%}.Ko_cOa_sidebarName{min-width:0;height:24px;color:inherit;align-items:center;gap:6px;display:inline-flex}.Ko_cOa_sidebarName>:first-child{flex:0 auto;min-width:0;max-width:102px}.Ko_cOa_wordmark{letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-family:PingFang SC,HarmonyOS Sans SC,Microsoft YaHei,Noto Sans CJK SC,Source Han Sans SC,sans-serif;font-weight:600;line-height:1;display:block;overflow:hidden}.Ko_cOa_harness{flex:none;display:block;overflow:visible}@keyframes Ko_cOa_unit-top{0%,to{transform:translate(0)}50%{transform:translateY(-2px)}}@keyframes Ko_cOa_unit-left{0%,to{transform:translate(0)}50%{transform:translate(-2px,1px)}}@keyframes Ko_cOa_unit-right{0%,to{transform:translate(0)}50%{transform:translate(2px,1px)}}@keyframes Ko_cOa_unit-core{0%,to{transform:translate(0)}50%{transform:translateY(2px)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.Ko_cOa_animatedMark:hover .Ko_cOa_unitTop{animation:1.6s ease-in-out infinite Ko_cOa_unit-top}.Ko_cOa_animatedMark:hover .Ko_cOa_unitLeft{animation:1.6s ease-in-out infinite Ko_cOa_unit-left}.Ko_cOa_animatedMark:hover .Ko_cOa_unitRight{animation:1.6s ease-in-out infinite Ko_cOa_unit-right}.Ko_cOa_animatedMark:hover .Ko_cOa_unitCore{animation:1.6s ease-in-out infinite Ko_cOa_unit-core}}@media (prefers-reduced-motion:reduce){.Ko_cOa_animatedMark,.Ko_cOa_animatedMark g{animation:none!important;transform:none!important}}";
2637
+ //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/dataops-managed/src/client/WanxiangBrand.module.css.mjs
2638
+ const css$2 = ".s0HPxG_mark{color:inherit;flex:none;display:block;overflow:visible}.s0HPxG_animatedMark{cursor:pointer}.s0HPxG_mark g{transform-box:fill-box;transform-origin:50%}.s0HPxG_sidebarName{min-width:0;height:24px;color:inherit;align-items:center;gap:6px;display:inline-flex}.s0HPxG_sidebarName>:first-child{flex:0 auto;min-width:0;max-width:102px}.s0HPxG_wordmark{letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-family:PingFang SC,HarmonyOS Sans SC,Microsoft YaHei,Noto Sans CJK SC,Source Han Sans SC,sans-serif;font-weight:600;line-height:1;display:block;overflow:hidden}.s0HPxG_harness{flex:none;display:block;overflow:visible}@keyframes s0HPxG_unit-top{0%,to{transform:translate(0)}50%{transform:translateY(-2px)}}@keyframes s0HPxG_unit-left{0%,to{transform:translate(0)}50%{transform:translate(-2px,1px)}}@keyframes s0HPxG_unit-right{0%,to{transform:translate(0)}50%{transform:translate(2px,1px)}}@keyframes s0HPxG_unit-core{0%,to{transform:translate(0)}50%{transform:translateY(2px)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.s0HPxG_animatedMark:hover .s0HPxG_unitTop{animation:1.6s ease-in-out infinite s0HPxG_unit-top}.s0HPxG_animatedMark:hover .s0HPxG_unitLeft{animation:1.6s ease-in-out infinite s0HPxG_unit-left}.s0HPxG_animatedMark:hover .s0HPxG_unitRight{animation:1.6s ease-in-out infinite s0HPxG_unit-right}.s0HPxG_animatedMark:hover .s0HPxG_unitCore{animation:1.6s ease-in-out infinite s0HPxG_unit-core}}@media (prefers-reduced-motion:reduce){.s0HPxG_animatedMark,.s0HPxG_animatedMark g{animation:none!important;transform:none!important}}";
2639
2639
  const tagId$2 = "@sparkelf/dsh-dataops-managed/WanxiangBrand.module.css";
2640
2640
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
2641
2641
  const tag = document.createElement("style");
@@ -2645,19 +2645,19 @@ window.__ModuleLoader__.load({
2645
2645
  document.head.appendChild(tag);
2646
2646
  }
2647
2647
  var WanxiangBrand_module_css_default = {
2648
- "mark": "Ko_cOa_mark",
2649
- "unit-right": "Ko_cOa_unit-right",
2650
- "unitTop": "Ko_cOa_unitTop",
2651
- "unitLeft": "Ko_cOa_unitLeft",
2652
- "harness": "Ko_cOa_harness",
2653
- "unit-left": "Ko_cOa_unit-left",
2654
- "animatedMark": "Ko_cOa_animatedMark",
2655
- "unitRight": "Ko_cOa_unitRight",
2656
- "sidebarName": "Ko_cOa_sidebarName",
2657
- "wordmark": "Ko_cOa_wordmark",
2658
- "unitCore": "Ko_cOa_unitCore",
2659
- "unit-core": "Ko_cOa_unit-core",
2660
- "unit-top": "Ko_cOa_unit-top"
2648
+ "unit-core": "s0HPxG_unit-core",
2649
+ "unit-left": "s0HPxG_unit-left",
2650
+ "unitRight": "s0HPxG_unitRight",
2651
+ "sidebarName": "s0HPxG_sidebarName",
2652
+ "unitTop": "s0HPxG_unitTop",
2653
+ "animatedMark": "s0HPxG_animatedMark",
2654
+ "unitCore": "s0HPxG_unitCore",
2655
+ "mark": "s0HPxG_mark",
2656
+ "wordmark": "s0HPxG_wordmark",
2657
+ "harness": "s0HPxG_harness",
2658
+ "unit-top": "s0HPxG_unit-top",
2659
+ "unit-right": "s0HPxG_unit-right",
2660
+ "unitLeft": "s0HPxG_unitLeft"
2661
2661
  };
2662
2662
  //#endregion
2663
2663
  //#region src/client/WanxiangBrand.tsx
@@ -3063,8 +3063,8 @@ window.__ModuleLoader__.load({
3063
3063
  };
3064
3064
  }
3065
3065
  //#endregion
3066
- //#region \0dsh-css:/root/projects/.dm-clean-build/packages/dataops-managed/src/client/PermissionCenterSection.module.css.mjs
3067
- const css$1 = ".mevgpq_page{box-sizing:border-box;flex-direction:column;gap:14px;width:100%;max-width:clamp(1000px,60vw,1200px);min-height:0;margin:0 auto;padding:24px;display:flex}.mevgpq_head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.mevgpq_title{color:var(--dsw-alias-label-primary);margin:0;font-size:18px;font-weight:600;line-height:26px}.mevgpq_subtitle{color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;margin:3px 0 0;font-size:12px;display:flex}.mevgpq_demo{color:#9a5b00;background:#fff3e0;border-radius:4px;padding:1px 6px;font-size:10px;line-height:16px}.mevgpq_tabs{border-bottom:1px solid var(--dsw-alias-border-l1);gap:2px;display:flex}.mevgpq_tab{height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 12px;font-size:13px}.mevgpq_tabActive{color:var(--dsw-alias-state-business-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:500}.mevgpq_notice,.mevgpq_waiting{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-secondary);border-radius:5px;margin:0;padding:8px 10px;font-size:12px}.mevgpq_waiting{border:1px dashed var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary)}.mevgpq_panel{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:8px;flex-direction:column;gap:10px;min-height:0;padding:14px;display:flex}.mevgpq_sectionTitle{margin:0;font-size:13px;font-weight:600}.mevgpq_matrixScroll,.mevgpq_tableScroll{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:clamp(280px,100dvh - 340px,520px);overflow:auto}.mevgpq_matrix,.mevgpq_table{border-collapse:collapse;width:100%;font-size:12px}.mevgpq_matrix th,.mevgpq_matrix td,.mevgpq_table th,.mevgpq_table td{border-bottom:1px solid var(--dsw-alias-border-l1);text-align:left;vertical-align:top;padding:7px 9px}.mevgpq_matrix th,.mevgpq_table th{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);white-space:nowrap;font-weight:600}.mevgpq_permission{white-space:nowrap;color:var(--dsw-alias-label-secondary);align-items:center;gap:5px;font-size:11px;line-height:20px;display:flex}.mevgpq_panelFoot{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.mevgpq_readOnly{color:var(--dsw-alias-label-tertiary);margin-right:auto;font-size:11px}.mevgpq_muted{color:var(--dsw-alias-label-tertiary);font-size:11px}.mevgpq_departments{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.mevgpq_department{border-bottom:1px solid var(--dsw-alias-border-l1);justify-content:space-between;align-items:center;gap:12px;padding:9px 8px;font-size:12px;display:flex}.mevgpq_deptAdmins{align-items:center;gap:5px;display:flex}.mevgpq_adminTag{color:var(--dsw-alias-state-business-primary);background:#ecf1fc;border-radius:4px;padding:1px 6px;font-size:11px}.mevgpq_empty{text-align:center;color:var(--dsw-alias-label-tertiary);margin:0;padding:40px 0}.mevgpq_matrixScroll{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:clamp(280px,100dvh - 340px,520px);overflow:auto}.mevgpq_matrix thead th{z-index:2;position:sticky;top:0}.mevgpq_matrix thead th:first-child,.mevgpq_matrix tbody th{background:var(--dsw-alias-bg-layer-2);min-width:132px;position:sticky;left:0}.mevgpq_matrix thead th:first-child{z-index:3}.mevgpq_matrix tbody th{z-index:1;background:var(--dsw-alias-bg-layer-1)}.mevgpq_protected{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);white-space:nowrap;border-radius:3px;margin-left:5px;padding:0 5px;font-size:10px;font-weight:500;line-height:16px;display:inline-block}tr[data-locked=true] td{opacity:.62}.mevgpq_pager{justify-content:flex-end;align-items:center;gap:8px;padding-top:8px;display:flex}.mevgpq_dialog{width:min(560px,100vw - 32px)}.mevgpq_dialogBody{flex-direction:column;gap:10px;display:flex}.mevgpq_dialogHint{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:18px}.mevgpq_search{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);width:100%;height:30px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);border-radius:5px;padding:0 9px}.mevgpq_candidates{flex-direction:column;gap:2px;max-height:260px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.mevgpq_candidate{cursor:pointer;border-radius:5px;align-items:center;gap:7px;padding:6px 7px;font-size:12px;display:flex}.mevgpq_candidate:hover{background:var(--dsw-alias-interactive-bg-hover)}.mevgpq_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:11px;line-height:16px}.mevgpq_dialogFooter{justify-content:flex-end;gap:6px;display:flex}.mevgpq_matrixNote{color:var(--dsw-alias-label-tertiary);margin:6px 0 0;font-size:11px;line-height:16px}.mevgpq_panelHead{justify-content:space-between;align-items:center;gap:10px;display:flex}.mevgpq_treeRoot,.mevgpq_treeChildren{margin:0;padding:0;list-style:none}.mevgpq_treeChildren{border-left:1px solid var(--dsw-alias-border-l1);margin-left:18px}.mevgpq_treeRow{border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:7px;min-height:34px;font-size:12px;display:flex}.mevgpq_treeToggle,.mevgpq_treeSpacer{flex:none;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.mevgpq_treeToggle{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:3px;font-size:11px}.mevgpq_treeToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.mevgpq_treeName{color:var(--dsw-alias-label-primary);white-space:nowrap;font-weight:600}.mevgpq_treeActions{align-items:center;gap:2px;margin-left:auto;display:flex}.mevgpq_field{color:var(--dsw-alias-label-secondary);flex-direction:column;gap:5px;font-size:12px;display:flex}.mevgpq_field input,.mevgpq_field select{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);width:100%;height:30px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);border-radius:5px;padding:0 9px}.mevgpq_field input:disabled{opacity:.65}.mevgpq_matrixModule{vertical-align:top;background:var(--dsw-alias-bg-layer-2);min-width:96px;color:var(--dsw-alias-label-secondary);text-align:left;border-right:1px solid var(--dsw-alias-border-l1);padding:10px 9px;font-size:12px;font-weight:600}.mevgpq_matrixGroup th{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);text-align:left;padding:7px 9px;font-size:12px;font-weight:600}.mevgpq_matrixPermission{white-space:nowrap;min-width:230px}.mevgpq_scopeBadge{border-radius:3px;margin-left:6px;padding:0 5px;font-size:10px;font-weight:500;line-height:16px;display:inline-block}.mevgpq_scopeBadge[data-scope=department]{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-state-business-primary)}.mevgpq_scopeBadge[data-scope=global]{background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 16%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-state-warn-primary)}.mevgpq_onlyAdmin{color:var(--dsw-alias-label-tertiary);white-space:nowrap;margin-left:4px;font-size:10px}.mevgpq_permCopy{max-width:100%;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;padding:0;display:inline-flex}.mevgpq_permCopy:hover span:first-child{color:var(--dsw-alias-state-business-primary);text-decoration:underline dotted}.mevgpq_permDescription{color:var(--dsw-alias-label-tertiary);white-space:normal;margin-top:2px;font-size:10px;font-weight:400;line-height:15px;display:block}.mevgpq_copied{color:var(--dsw-alias-state-success-primary);margin-left:4px;font-size:10px}.mevgpq_combobox{min-width:132px;position:relative}.mevgpq_comboboxTrigger{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);width:100%;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);text-align:left;cursor:pointer;border-radius:5px;justify-content:space-between;align-items:center;gap:8px;padding:0 8px;display:flex}.mevgpq_comboboxTrigger:hover:not(:disabled){border-color:var(--dsw-alias-state-business-primary)}.mevgpq_comboboxTrigger:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:1px}.mevgpq_comboboxTrigger:disabled{opacity:.55;cursor:default}.mevgpq_comboboxPlaceholder{color:var(--dsw-alias-label-tertiary)}.mevgpq_comboboxMenu{z-index:30;box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:7px;width:max(100%,220px);padding:5px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #00000038}.mevgpq_comboboxSearch{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:100%;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);border-radius:4px;padding:0 7px}.mevgpq_comboboxList{max-height:210px;margin:4px 0 0;padding:0;list-style:none;overflow:auto}.mevgpq_comboboxOption{width:100%;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:5px;padding:6px;font-size:12px;line-height:18px;display:flex}.mevgpq_comboboxOptionActive,.mevgpq_comboboxOption:hover{background:var(--dsw-alias-interactive-bg-hover)}.mevgpq_comboboxCheck{width:13px;color:var(--dsw-alias-state-business-primary);flex:none;font-size:11px}.mevgpq_comboboxHint{color:var(--dsw-alias-label-tertiary);margin-left:auto;font-size:10px}.mevgpq_comboboxEmpty{color:var(--dsw-alias-label-tertiary);padding:9px 7px;font-size:11px}.mevgpq_rowActions{white-space:nowrap;align-items:center;gap:4px;display:flex}.mevgpq_detailGrid{grid-template-columns:92px minmax(0,1fr);gap:8px 12px;margin:0;font-size:12px;line-height:18px;display:grid}.mevgpq_detailGrid dt{color:var(--dsw-alias-label-tertiary)}.mevgpq_detailGrid dd{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;margin:0}";
3066
+ //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/dataops-managed/src/client/PermissionCenterSection.module.css.mjs
3067
+ const css$1 = ".PNbOqW_page{box-sizing:border-box;flex-direction:column;gap:14px;width:100%;max-width:clamp(1000px,60vw,1200px);min-height:0;margin:0 auto;padding:24px;display:flex}.PNbOqW_head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.PNbOqW_title{color:var(--dsw-alias-label-primary);margin:0;font-size:18px;font-weight:600;line-height:26px}.PNbOqW_subtitle{color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;margin:3px 0 0;font-size:12px;display:flex}.PNbOqW_demo{color:#9a5b00;background:#fff3e0;border-radius:4px;padding:1px 6px;font-size:10px;line-height:16px}.PNbOqW_tabs{border-bottom:1px solid var(--dsw-alias-border-l1);gap:2px;display:flex}.PNbOqW_tab{height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 12px;font-size:13px}.PNbOqW_tabActive{color:var(--dsw-alias-state-business-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:500}.PNbOqW_notice,.PNbOqW_waiting{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-secondary);border-radius:5px;margin:0;padding:8px 10px;font-size:12px}.PNbOqW_waiting{border:1px dashed var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary)}.PNbOqW_panel{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:8px;flex-direction:column;gap:10px;min-height:0;padding:14px;display:flex}.PNbOqW_sectionTitle{margin:0;font-size:13px;font-weight:600}.PNbOqW_matrixScroll,.PNbOqW_tableScroll{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:clamp(280px,100dvh - 340px,520px);overflow:auto}.PNbOqW_matrix,.PNbOqW_table{border-collapse:collapse;width:100%;font-size:12px}.PNbOqW_matrix th,.PNbOqW_matrix td,.PNbOqW_table th,.PNbOqW_table td{border-bottom:1px solid var(--dsw-alias-border-l1);text-align:left;vertical-align:top;padding:7px 9px}.PNbOqW_matrix th,.PNbOqW_table th{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);white-space:nowrap;font-weight:600}.PNbOqW_permission{white-space:nowrap;color:var(--dsw-alias-label-secondary);align-items:center;gap:5px;font-size:11px;line-height:20px;display:flex}.PNbOqW_panelFoot{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.PNbOqW_readOnly{color:var(--dsw-alias-label-tertiary);margin-right:auto;font-size:11px}.PNbOqW_muted{color:var(--dsw-alias-label-tertiary);font-size:11px}.PNbOqW_departments{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.PNbOqW_department{border-bottom:1px solid var(--dsw-alias-border-l1);justify-content:space-between;align-items:center;gap:12px;padding:9px 8px;font-size:12px;display:flex}.PNbOqW_deptAdmins{align-items:center;gap:5px;display:flex}.PNbOqW_adminTag{color:var(--dsw-alias-state-business-primary);background:#ecf1fc;border-radius:4px;padding:1px 6px;font-size:11px}.PNbOqW_empty{text-align:center;color:var(--dsw-alias-label-tertiary);margin:0;padding:40px 0}.PNbOqW_matrixScroll{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:clamp(280px,100dvh - 340px,520px);overflow:auto}.PNbOqW_matrix thead th{z-index:2;position:sticky;top:0}.PNbOqW_matrix thead th:first-child,.PNbOqW_matrix tbody th{background:var(--dsw-alias-bg-layer-2);min-width:132px;position:sticky;left:0}.PNbOqW_matrix thead th:first-child{z-index:3}.PNbOqW_matrix tbody th{z-index:1;background:var(--dsw-alias-bg-layer-1)}.PNbOqW_protected{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);white-space:nowrap;border-radius:3px;margin-left:5px;padding:0 5px;font-size:10px;font-weight:500;line-height:16px;display:inline-block}tr[data-locked=true] td{opacity:.62}.PNbOqW_pager{justify-content:flex-end;align-items:center;gap:8px;padding-top:8px;display:flex}.PNbOqW_dialog{width:min(560px,100vw - 32px)}.PNbOqW_dialogBody{flex-direction:column;gap:10px;display:flex}.PNbOqW_dialogHint{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:18px}.PNbOqW_search{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);width:100%;height:30px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);border-radius:5px;padding:0 9px}.PNbOqW_candidates{flex-direction:column;gap:2px;max-height:260px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.PNbOqW_candidate{cursor:pointer;border-radius:5px;align-items:center;gap:7px;padding:6px 7px;font-size:12px;display:flex}.PNbOqW_candidate:hover{background:var(--dsw-alias-interactive-bg-hover)}.PNbOqW_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:11px;line-height:16px}.PNbOqW_dialogFooter{justify-content:flex-end;gap:6px;display:flex}.PNbOqW_matrixNote{color:var(--dsw-alias-label-tertiary);margin:6px 0 0;font-size:11px;line-height:16px}.PNbOqW_panelHead{justify-content:space-between;align-items:center;gap:10px;display:flex}.PNbOqW_treeRoot,.PNbOqW_treeChildren{margin:0;padding:0;list-style:none}.PNbOqW_treeChildren{border-left:1px solid var(--dsw-alias-border-l1);margin-left:18px}.PNbOqW_treeRow{border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:7px;min-height:34px;font-size:12px;display:flex}.PNbOqW_treeToggle,.PNbOqW_treeSpacer{flex:none;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.PNbOqW_treeToggle{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:3px;font-size:11px}.PNbOqW_treeToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.PNbOqW_treeName{color:var(--dsw-alias-label-primary);white-space:nowrap;font-weight:600}.PNbOqW_treeActions{align-items:center;gap:2px;margin-left:auto;display:flex}.PNbOqW_field{color:var(--dsw-alias-label-secondary);flex-direction:column;gap:5px;font-size:12px;display:flex}.PNbOqW_field input,.PNbOqW_field select{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);width:100%;height:30px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);border-radius:5px;padding:0 9px}.PNbOqW_field input:disabled{opacity:.65}.PNbOqW_matrixModule{vertical-align:top;background:var(--dsw-alias-bg-layer-2);min-width:96px;color:var(--dsw-alias-label-secondary);text-align:left;border-right:1px solid var(--dsw-alias-border-l1);padding:10px 9px;font-size:12px;font-weight:600}.PNbOqW_matrixGroup th{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);text-align:left;padding:7px 9px;font-size:12px;font-weight:600}.PNbOqW_matrixPermission{white-space:nowrap;min-width:230px}.PNbOqW_scopeBadge{border-radius:3px;margin-left:6px;padding:0 5px;font-size:10px;font-weight:500;line-height:16px;display:inline-block}.PNbOqW_scopeBadge[data-scope=department]{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-state-business-primary)}.PNbOqW_scopeBadge[data-scope=global]{background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 16%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-state-warn-primary)}.PNbOqW_onlyAdmin{color:var(--dsw-alias-label-tertiary);white-space:nowrap;margin-left:4px;font-size:10px}.PNbOqW_permCopy{max-width:100%;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;padding:0;display:inline-flex}.PNbOqW_permCopy:hover span:first-child{color:var(--dsw-alias-state-business-primary);text-decoration:underline dotted}.PNbOqW_permDescription{color:var(--dsw-alias-label-tertiary);white-space:normal;margin-top:2px;font-size:10px;font-weight:400;line-height:15px;display:block}.PNbOqW_copied{color:var(--dsw-alias-state-success-primary);margin-left:4px;font-size:10px}.PNbOqW_combobox{min-width:132px;position:relative}.PNbOqW_comboboxTrigger{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);width:100%;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);text-align:left;cursor:pointer;border-radius:5px;justify-content:space-between;align-items:center;gap:8px;padding:0 8px;display:flex}.PNbOqW_comboboxTrigger:hover:not(:disabled){border-color:var(--dsw-alias-state-business-primary)}.PNbOqW_comboboxTrigger:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:1px}.PNbOqW_comboboxTrigger:disabled{opacity:.55;cursor:default}.PNbOqW_comboboxPlaceholder{color:var(--dsw-alias-label-tertiary)}.PNbOqW_comboboxMenu{z-index:30;box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:7px;width:max(100%,220px);padding:5px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #00000038}.PNbOqW_comboboxSearch{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:100%;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);border-radius:4px;padding:0 7px}.PNbOqW_comboboxList{max-height:210px;margin:4px 0 0;padding:0;list-style:none;overflow:auto}.PNbOqW_comboboxOption{width:100%;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:5px;padding:6px;font-size:12px;line-height:18px;display:flex}.PNbOqW_comboboxOptionActive,.PNbOqW_comboboxOption:hover{background:var(--dsw-alias-interactive-bg-hover)}.PNbOqW_comboboxCheck{width:13px;color:var(--dsw-alias-state-business-primary);flex:none;font-size:11px}.PNbOqW_comboboxHint{color:var(--dsw-alias-label-tertiary);margin-left:auto;font-size:10px}.PNbOqW_comboboxEmpty{color:var(--dsw-alias-label-tertiary);padding:9px 7px;font-size:11px}.PNbOqW_rowActions{white-space:nowrap;align-items:center;gap:4px;display:flex}.PNbOqW_detailGrid{grid-template-columns:92px minmax(0,1fr);gap:8px 12px;margin:0;font-size:12px;line-height:18px;display:grid}.PNbOqW_detailGrid dt{color:var(--dsw-alias-label-tertiary)}.PNbOqW_detailGrid dd{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;margin:0}";
3068
3068
  const tagId$1 = "@sparkelf/dsh-dataops-managed/PermissionCenterSection.module.css";
3069
3069
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
3070
3070
  const tag = document.createElement("style");
@@ -3074,72 +3074,72 @@ window.__ModuleLoader__.load({
3074
3074
  document.head.appendChild(tag);
3075
3075
  }
3076
3076
  var PermissionCenterSection_module_css_default = {
3077
- "treeSpacer": "mevgpq_treeSpacer",
3078
- "comboboxCheck": "mevgpq_comboboxCheck",
3079
- "subtitle": "mevgpq_subtitle",
3080
- "panel": "mevgpq_panel",
3081
- "matrixModule": "mevgpq_matrixModule",
3082
- "head": "mevgpq_head",
3083
- "scopeBadge": "mevgpq_scopeBadge",
3084
- "rowActions": "mevgpq_rowActions",
3085
- "matrix": "mevgpq_matrix",
3086
- "muted": "mevgpq_muted",
3087
- "empty": "mevgpq_empty",
3088
- "treeActions": "mevgpq_treeActions",
3089
- "matrixGroup": "mevgpq_matrixGroup",
3090
- "tabActive": "mevgpq_tabActive",
3091
- "treeChildren": "mevgpq_treeChildren",
3092
- "matrixNote": "mevgpq_matrixNote",
3093
- "candidate": "mevgpq_candidate",
3094
- "onlyAdmin": "mevgpq_onlyAdmin",
3095
- "notice": "mevgpq_notice",
3096
- "dialogHint": "mevgpq_dialogHint",
3097
- "comboboxMenu": "mevgpq_comboboxMenu",
3098
- "department": "mevgpq_department",
3099
- "detailGrid": "mevgpq_detailGrid",
3100
- "comboboxOptionActive": "mevgpq_comboboxOptionActive",
3101
- "treeRoot": "mevgpq_treeRoot",
3102
- "comboboxEmpty": "mevgpq_comboboxEmpty",
3103
- "candidates": "mevgpq_candidates",
3104
- "tabs": "mevgpq_tabs",
3105
- "comboboxPlaceholder": "mevgpq_comboboxPlaceholder",
3106
- "comboboxTrigger": "mevgpq_comboboxTrigger",
3107
- "permission": "mevgpq_permission",
3108
- "treeName": "mevgpq_treeName",
3109
- "combobox": "mevgpq_combobox",
3110
- "comboboxOption": "mevgpq_comboboxOption",
3111
- "panelFoot": "mevgpq_panelFoot",
3112
- "treeToggle": "mevgpq_treeToggle",
3113
- "dialog": "mevgpq_dialog",
3114
- "sectionTitle": "mevgpq_sectionTitle",
3115
- "waiting": "mevgpq_waiting",
3116
- "tab": "mevgpq_tab",
3117
- "panelHead": "mevgpq_panelHead",
3118
- "comboboxList": "mevgpq_comboboxList",
3119
- "permDescription": "mevgpq_permDescription",
3120
- "dialogBody": "mevgpq_dialogBody",
3121
- "copied": "mevgpq_copied",
3122
- "matrixPermission": "mevgpq_matrixPermission",
3123
- "treeRow": "mevgpq_treeRow",
3124
- "protected": "mevgpq_protected",
3125
- "permCopy": "mevgpq_permCopy",
3126
- "demo": "mevgpq_demo",
3127
- "dialogFooter": "mevgpq_dialogFooter",
3128
- "departments": "mevgpq_departments",
3129
- "table": "mevgpq_table",
3130
- "title": "mevgpq_title",
3131
- "page": "mevgpq_page",
3132
- "deptAdmins": "mevgpq_deptAdmins",
3133
- "field": "mevgpq_field",
3134
- "comboboxHint": "mevgpq_comboboxHint",
3135
- "matrixScroll": "mevgpq_matrixScroll",
3136
- "readOnly": "mevgpq_readOnly",
3137
- "pager": "mevgpq_pager",
3138
- "adminTag": "mevgpq_adminTag",
3139
- "tableScroll": "mevgpq_tableScroll",
3140
- "comboboxSearch": "mevgpq_comboboxSearch",
3141
- "search": "mevgpq_search",
3142
- "error": "mevgpq_error"
3077
+ "search": "PNbOqW_search",
3078
+ "adminTag": "PNbOqW_adminTag",
3079
+ "treeActions": "PNbOqW_treeActions",
3080
+ "panel": "PNbOqW_panel",
3081
+ "matrix": "PNbOqW_matrix",
3082
+ "comboboxSearch": "PNbOqW_comboboxSearch",
3083
+ "comboboxHint": "PNbOqW_comboboxHint",
3084
+ "page": "PNbOqW_page",
3085
+ "waiting": "PNbOqW_waiting",
3086
+ "field": "PNbOqW_field",
3087
+ "title": "PNbOqW_title",
3088
+ "demo": "PNbOqW_demo",
3089
+ "protected": "PNbOqW_protected",
3090
+ "candidate": "PNbOqW_candidate",
3091
+ "notice": "PNbOqW_notice",
3092
+ "matrixModule": "PNbOqW_matrixModule",
3093
+ "comboboxList": "PNbOqW_comboboxList",
3094
+ "tableScroll": "PNbOqW_tableScroll",
3095
+ "table": "PNbOqW_table",
3096
+ "muted": "PNbOqW_muted",
3097
+ "departments": "PNbOqW_departments",
3098
+ "comboboxTrigger": "PNbOqW_comboboxTrigger",
3099
+ "treeRow": "PNbOqW_treeRow",
3100
+ "subtitle": "PNbOqW_subtitle",
3101
+ "treeRoot": "PNbOqW_treeRoot",
3102
+ "sectionTitle": "PNbOqW_sectionTitle",
3103
+ "permDescription": "PNbOqW_permDescription",
3104
+ "dialogHint": "PNbOqW_dialogHint",
3105
+ "rowActions": "PNbOqW_rowActions",
3106
+ "panelHead": "PNbOqW_panelHead",
3107
+ "treeSpacer": "PNbOqW_treeSpacer",
3108
+ "permCopy": "PNbOqW_permCopy",
3109
+ "tabActive": "PNbOqW_tabActive",
3110
+ "onlyAdmin": "PNbOqW_onlyAdmin",
3111
+ "matrixNote": "PNbOqW_matrixNote",
3112
+ "dialogBody": "PNbOqW_dialogBody",
3113
+ "treeToggle": "PNbOqW_treeToggle",
3114
+ "matrixScroll": "PNbOqW_matrixScroll",
3115
+ "comboboxOptionActive": "PNbOqW_comboboxOptionActive",
3116
+ "head": "PNbOqW_head",
3117
+ "dialogFooter": "PNbOqW_dialogFooter",
3118
+ "matrixGroup": "PNbOqW_matrixGroup",
3119
+ "comboboxEmpty": "PNbOqW_comboboxEmpty",
3120
+ "panelFoot": "PNbOqW_panelFoot",
3121
+ "treeChildren": "PNbOqW_treeChildren",
3122
+ "comboboxMenu": "PNbOqW_comboboxMenu",
3123
+ "comboboxCheck": "PNbOqW_comboboxCheck",
3124
+ "tabs": "PNbOqW_tabs",
3125
+ "combobox": "PNbOqW_combobox",
3126
+ "tab": "PNbOqW_tab",
3127
+ "empty": "PNbOqW_empty",
3128
+ "deptAdmins": "PNbOqW_deptAdmins",
3129
+ "matrixPermission": "PNbOqW_matrixPermission",
3130
+ "pager": "PNbOqW_pager",
3131
+ "detailGrid": "PNbOqW_detailGrid",
3132
+ "permission": "PNbOqW_permission",
3133
+ "copied": "PNbOqW_copied",
3134
+ "readOnly": "PNbOqW_readOnly",
3135
+ "comboboxOption": "PNbOqW_comboboxOption",
3136
+ "candidates": "PNbOqW_candidates",
3137
+ "department": "PNbOqW_department",
3138
+ "comboboxPlaceholder": "PNbOqW_comboboxPlaceholder",
3139
+ "scopeBadge": "PNbOqW_scopeBadge",
3140
+ "dialog": "PNbOqW_dialog",
3141
+ "treeName": "PNbOqW_treeName",
3142
+ "error": "PNbOqW_error"
3143
3143
  };
3144
3144
  //#endregion
3145
3145
  //#region src/client/combobox.ts
@@ -4557,8 +4557,8 @@ window.__ModuleLoader__.load({
4557
4557
  };
4558
4558
  }
4559
4559
  //#endregion
4560
- //#region \0dsh-css:/root/projects/.dm-clean-build/packages/dataops-managed/src/client/WorkspaceUpgradePrompt.module.css.mjs
4561
- const css = ".CdBy_G_banner{z-index:40;border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-settings-card-fill);width:min(680px,100vw - 32px);color:var(--dsw-alias-label-primary);justify-content:space-between;align-items:center;gap:20px;padding:10px 12px 10px 16px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #0000001f}.CdBy_G_copy{flex-direction:column;gap:2px;min-width:0;display:flex}.CdBy_G_title{font-size:13px;font-weight:600;line-height:22px}.CdBy_G_body{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}.CdBy_G_actions{flex:none;align-items:center;gap:4px;display:flex}.CdBy_G_dialogBody{flex-direction:column;gap:12px;min-width:min(420px,70vw);display:flex}.CdBy_G_dialogText{color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;line-height:22px}.CdBy_G_sessionList{border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-layer-1);flex-direction:column;gap:4px;max-height:220px;margin:0;padding:8px 10px;list-style:none;display:flex;overflow:auto}.CdBy_G_sessionRow{flex-direction:column;gap:1px;min-width:0;display:flex}.CdBy_G_sessionTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.CdBy_G_sessionPath{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.CdBy_G_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:18px}";
4560
+ //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/dataops-managed/src/client/WorkspaceUpgradePrompt.module.css.mjs
4561
+ const css = ".razUfG_banner{z-index:40;border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-settings-card-fill);width:min(680px,100vw - 32px);color:var(--dsw-alias-label-primary);justify-content:space-between;align-items:center;gap:20px;padding:10px 12px 10px 16px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #0000001f}.razUfG_copy{flex-direction:column;gap:2px;min-width:0;display:flex}.razUfG_title{font-size:13px;font-weight:600;line-height:22px}.razUfG_body{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}.razUfG_actions{flex:none;align-items:center;gap:4px;display:flex}.razUfG_dialogBody{flex-direction:column;gap:12px;min-width:min(420px,70vw);display:flex}.razUfG_dialogText{color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;line-height:22px}.razUfG_sessionList{border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-layer-1);flex-direction:column;gap:4px;max-height:220px;margin:0;padding:8px 10px;list-style:none;display:flex;overflow:auto}.razUfG_sessionRow{flex-direction:column;gap:1px;min-width:0;display:flex}.razUfG_sessionTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.razUfG_sessionPath{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.razUfG_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:18px}";
4562
4562
  const tagId = "@sparkelf/dsh-dataops-managed/WorkspaceUpgradePrompt.module.css";
4563
4563
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
4564
4564
  const tag = document.createElement("style");
@@ -4568,18 +4568,18 @@ window.__ModuleLoader__.load({
4568
4568
  document.head.appendChild(tag);
4569
4569
  }
4570
4570
  var WorkspaceUpgradePrompt_module_css_default = {
4571
- "sessionTitle": "CdBy_G_sessionTitle",
4572
- "title": "CdBy_G_title",
4573
- "dialogText": "CdBy_G_dialogText",
4574
- "error": "CdBy_G_error",
4575
- "dialogBody": "CdBy_G_dialogBody",
4576
- "sessionList": "CdBy_G_sessionList",
4577
- "sessionRow": "CdBy_G_sessionRow",
4578
- "actions": "CdBy_G_actions",
4579
- "body": "CdBy_G_body",
4580
- "sessionPath": "CdBy_G_sessionPath",
4581
- "banner": "CdBy_G_banner",
4582
- "copy": "CdBy_G_copy"
4571
+ "sessionRow": "razUfG_sessionRow",
4572
+ "error": "razUfG_error",
4573
+ "title": "razUfG_title",
4574
+ "body": "razUfG_body",
4575
+ "dialogText": "razUfG_dialogText",
4576
+ "dialogBody": "razUfG_dialogBody",
4577
+ "banner": "razUfG_banner",
4578
+ "actions": "razUfG_actions",
4579
+ "sessionPath": "razUfG_sessionPath",
4580
+ "copy": "razUfG_copy",
4581
+ "sessionList": "razUfG_sessionList",
4582
+ "sessionTitle": "razUfG_sessionTitle"
4583
4583
  };
4584
4584
  //#endregion
4585
4585
  //#region src/client/WorkspaceUpgradePrompt.tsx
@@ -4755,6 +4755,270 @@ window.__ModuleLoader__.load({
4755
4755
  })] });
4756
4756
  }
4757
4757
  //#endregion
4758
+ //#region src/client/DataOpsResourcesTab.tsx
4759
+ /**
4760
+ * The custom `dataops-resources` sidebar tab.
4761
+ *
4762
+ * It renders the DataOps embed page in a same-origin iframe. The iframe is deliberately not
4763
+ * a generic URL tab: the generic tab sandbox is an opaque origin and cannot use the portal's
4764
+ * sessionStorage. The only parent-child messages are navigation and "add to conversation";
4765
+ * every authorization decision still happens in DataOps.
4766
+ *
4767
+ * @module client/DataOpsResourcesTab
4768
+ */
4769
+ const readMeta = (value) => {
4770
+ if (typeof value !== "object" || value === null || Array.isArray(value)) return {};
4771
+ const record = value;
4772
+ return {
4773
+ resourceId: typeof record.resourceId === "number" && Number.isSafeInteger(record.resourceId) ? record.resourceId : void 0,
4774
+ resourceName: typeof record.resourceName === "string" ? record.resourceName : void 0,
4775
+ mode: typeof record.mode === "string" ? record.mode : void 0,
4776
+ nonce: typeof record.nonce === "string" ? record.nonce : void 0
4777
+ };
4778
+ };
4779
+ const buildEmbedUrl = (config, meta) => {
4780
+ const base = config.embedBaseUrl.replace(/\/+$/u, "");
4781
+ const params = new URLSearchParams();
4782
+ if (meta.resourceId !== void 0) params.set("resourceId", String(meta.resourceId));
4783
+ if (meta.mode === "detail" || meta.mode === "audit") {
4784
+ params.set("tab", meta.mode === "audit" ? "audit" : "overview");
4785
+ const suffix = params.toString();
4786
+ return `${base}/embed/resource-detail${suffix ? "?" + suffix : ""}`;
4787
+ }
4788
+ params.set("mode", meta.mode ?? "focus");
4789
+ if (meta.nonce) params.set("nonce", meta.nonce);
4790
+ const suffix = params.toString();
4791
+ return `${base}/embed/resources${suffix ? "?" + suffix : ""}`;
4792
+ };
4793
+ const frameStyle = {
4794
+ width: "100%",
4795
+ height: "100%",
4796
+ border: "0",
4797
+ display: "block",
4798
+ background: "var(--dsh-sidebar-bg, #f6f7f9)"
4799
+ };
4800
+ const stateStyle = {
4801
+ padding: "24px 16px",
4802
+ fontSize: "12px",
4803
+ color: "var(--dsh-text-secondary, #6b7280)",
4804
+ textAlign: "center"
4805
+ };
4806
+ const noticeStyle = {
4807
+ margin: "0 10px 8px",
4808
+ padding: "7px 10px",
4809
+ borderRadius: "7px",
4810
+ background: "rgba(22, 163, 74, 0.10)",
4811
+ color: "#15803d",
4812
+ fontSize: "11px"
4813
+ };
4814
+ /** Render the embedded DataOps resource page and translate its parent messages. */
4815
+ function DataOpsResourcesTab({ ctx, tab }) {
4816
+ const [config, setConfig] = (0, react.useState)(null);
4817
+ const [error, setError] = (0, react.useState)("");
4818
+ const [loading, setLoading] = (0, react.useState)(true);
4819
+ const [notice, setNotice] = (0, react.useState)("");
4820
+ const [reloadKey, setReloadKey] = (0, react.useState)(0);
4821
+ const iframeRef = (0, react.useRef)(null);
4822
+ const meta = readMeta(tab.meta);
4823
+ const src = (0, react.useMemo)(() => config === null ? "" : buildEmbedUrl(config, meta), [
4824
+ config,
4825
+ meta.resourceId,
4826
+ meta.mode,
4827
+ meta.nonce,
4828
+ reloadKey
4829
+ ]);
4830
+ (0, react.useEffect)(() => {
4831
+ let live = true;
4832
+ const load = async () => {
4833
+ try {
4834
+ const response = await fetch("/integrations/dataops/resource-tab/config", { cache: "no-store" });
4835
+ if (!response.ok) throw new Error("HTTP " + response.status.toString());
4836
+ const body = await response.json();
4837
+ if (!live) return;
4838
+ setConfig({
4839
+ embedBaseUrl: body.embedBaseUrl,
4840
+ sameOrigin: body.sameOrigin === true,
4841
+ tabType: body.tabType
4842
+ });
4843
+ } catch (loadError) {
4844
+ if (!live) return;
4845
+ setError("资源页配置加载失败:" + (loadError instanceof Error ? loadError.message : String(loadError)));
4846
+ }
4847
+ };
4848
+ load();
4849
+ return () => {
4850
+ live = false;
4851
+ };
4852
+ }, []);
4853
+ (0, react.useEffect)(() => {
4854
+ setLoading(true);
4855
+ }, [src, reloadKey]);
4856
+ (0, react.useEffect)(() => {
4857
+ if (config === null) return void 0;
4858
+ let expectedOrigin = "";
4859
+ try {
4860
+ expectedOrigin = new URL(config.embedBaseUrl).origin;
4861
+ } catch {
4862
+ expectedOrigin = "";
4863
+ }
4864
+ const onMessage = (event) => {
4865
+ if (expectedOrigin && event.origin !== expectedOrigin) return;
4866
+ const payload = event.data;
4867
+ if (payload?.type !== "dataops:add-to-conversation") return;
4868
+ const reference = payload.reference ?? {
4869
+ kind: "dataops-resource",
4870
+ resourceId: payload.resource?.id,
4871
+ name: payload.resource?.name,
4872
+ table: payload.resource?.table
4873
+ };
4874
+ const conversation = ctx?.conversation;
4875
+ if (conversation?.send === void 0) {
4876
+ setNotice("当前会话不可用,无法把资源加入对话");
4877
+ return;
4878
+ }
4879
+ const text = "引用数据资源:\n\n```resource-ref\n" + JSON.stringify(reference, null, 2) + "\n```\n";
4880
+ conversation.send(text).then(() => setNotice("已把资源加入当前对话")).catch((sendError) => setNotice("加入对话失败:" + (sendError instanceof Error ? sendError.message : String(sendError))));
4881
+ };
4882
+ window.addEventListener("message", onMessage);
4883
+ return () => window.removeEventListener("message", onMessage);
4884
+ }, [config, ctx]);
4885
+ (0, react.useEffect)(() => {
4886
+ if (!notice) return void 0;
4887
+ const timer = window.setTimeout(() => setNotice(""), 2400);
4888
+ return () => window.clearTimeout(timer);
4889
+ }, [notice]);
4890
+ if (error) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4891
+ style: stateStyle,
4892
+ role: "alert",
4893
+ children: [error, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4894
+ style: { marginTop: 10 },
4895
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
4896
+ type: "button",
4897
+ onClick: () => setReloadKey((value) => value + 1),
4898
+ children: "重试"
4899
+ })
4900
+ })]
4901
+ });
4902
+ if (config === null) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4903
+ style: stateStyle,
4904
+ role: "status",
4905
+ children: "正在准备数据资源页…"
4906
+ });
4907
+ let topOrigin = "";
4908
+ try {
4909
+ topOrigin = window.top?.location.origin ?? "";
4910
+ } catch {
4911
+ topOrigin = "";
4912
+ }
4913
+ let embedOrigin = "";
4914
+ try {
4915
+ embedOrigin = new URL(config.embedBaseUrl).origin;
4916
+ } catch {
4917
+ embedOrigin = "";
4918
+ }
4919
+ const frameIsSameOrigin = config.sameOrigin === true || topOrigin !== "" && topOrigin === embedOrigin;
4920
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4921
+ style: {
4922
+ display: "flex",
4923
+ flexDirection: "column",
4924
+ height: "100%",
4925
+ minHeight: 0
4926
+ },
4927
+ children: [
4928
+ notice ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4929
+ style: noticeStyle,
4930
+ role: "status",
4931
+ children: notice
4932
+ }) : null,
4933
+ !frameIsSameOrigin ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4934
+ style: {
4935
+ ...stateStyle,
4936
+ paddingBottom: 6
4937
+ },
4938
+ children: "当前部署不是同源代理,资源页可能无法复用门户登录态。"
4939
+ }) : null,
4940
+ loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4941
+ style: stateStyle,
4942
+ role: "status",
4943
+ children: "正在加载数据资源页…"
4944
+ }) : null,
4945
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("iframe", {
4946
+ ref: iframeRef,
4947
+ src,
4948
+ title: meta.resourceName ? `${meta.resourceName} · 数据资源` : "数据资源",
4949
+ sandbox: "allow-same-origin allow-scripts allow-forms allow-popups allow-downloads",
4950
+ referrerPolicy: "no-referrer",
4951
+ style: {
4952
+ ...frameStyle,
4953
+ display: loading ? "none" : "block"
4954
+ },
4955
+ onLoad: () => setLoading(false),
4956
+ onError: () => {
4957
+ setLoading(false);
4958
+ setError("数据资源页加载失败");
4959
+ }
4960
+ }, `${src}:${reloadKey}`)
4961
+ ]
4962
+ });
4963
+ }
4964
+ //#endregion
4965
+ //#region src/client/OpenResourceBridge.tsx
4966
+ /**
4967
+ * Always-mounted host→client bridge for the resource tab.
4968
+ *
4969
+ * The Host tool cannot call the browser's tab API. It broadcasts one SSE event; this
4970
+ * component translates that event into `betterSidebar.openTab` plus `updateTab` so a
4971
+ * second import focuses the existing tab and refreshes its target resource.
4972
+ *
4973
+ * @module client/OpenResourceBridge
4974
+ */
4975
+ /** Tab id shared with the client registration. */
4976
+ const RESOURCE_TAB_TYPE = "dataops-resources";
4977
+ const EVENTS_PATH = "/integrations/dataops/open-resource/events";
4978
+ const isOpenResourceEvent = (value) => {
4979
+ if (typeof value !== "object" || value === null) return false;
4980
+ const record = value;
4981
+ return record.type === "open_resource" && typeof record.resourceId === "number" && Number.isSafeInteger(record.resourceId) && (record.mode === "focus" || record.mode === "grant" || record.mode === "detail" || record.mode === "audit");
4982
+ };
4983
+ /** Invisible bridge component; renders nothing. */
4984
+ function OpenResourceBridge({ service, scope }) {
4985
+ (0, react.useEffect)(() => {
4986
+ if (typeof EventSource !== "function") return void 0;
4987
+ const source = new EventSource(EVENTS_PATH);
4988
+ const onEvent = (event) => {
4989
+ let parsed;
4990
+ try {
4991
+ parsed = JSON.parse(String(event.data));
4992
+ } catch {
4993
+ return;
4994
+ }
4995
+ if (!isOpenResourceEvent(parsed)) return;
4996
+ const meta = {
4997
+ resourceId: parsed.resourceId,
4998
+ resourceName: parsed.resourceName,
4999
+ mode: parsed.mode,
5000
+ nonce: parsed.nonce
5001
+ };
5002
+ service.openTab({
5003
+ type: RESOURCE_TAB_TYPE,
5004
+ id: RESOURCE_TAB_TYPE,
5005
+ title: "数据资源",
5006
+ meta
5007
+ }, scope);
5008
+ service.updateTab?.(RESOURCE_TAB_TYPE, {
5009
+ title: "数据资源",
5010
+ meta
5011
+ }, scope?.sessionId);
5012
+ };
5013
+ source.addEventListener("dataops-open-resource", onEvent);
5014
+ return () => {
5015
+ source.removeEventListener("dataops-open-resource", onEvent);
5016
+ source.close();
5017
+ };
5018
+ }, [service, scope]);
5019
+ return null;
5020
+ }
5021
+ //#endregion
4758
5022
  //#region src/client/locales.ts
4759
5023
  /** English managed DataOps Settings copy. */
4760
5024
  const en = {
@@ -5057,8 +5321,12 @@ window.__ModuleLoader__.load({
5057
5321
  const MANAGED_AUTH_PATH = "/integrations/dataops/managed-auth";
5058
5322
  /** Sidebar entry and main page id for the permission centre. */
5059
5323
  const PERMISSION_PANEL_ID = "dataops-permissions";
5060
- /** Required client services for the managed DataOps Settings section. */
5061
- const inject = ["slots", "locale"];
5324
+ /** Required client services for the managed DataOps Settings section and the resource tab bridge. */
5325
+ const inject = [
5326
+ "slots",
5327
+ "locale",
5328
+ "conversation"
5329
+ ];
5062
5330
  /**
5063
5331
  * Bind the four strings the sign-in prompt needs.
5064
5332
  *
@@ -5214,6 +5482,44 @@ window.__ModuleLoader__.load({
5214
5482
  * rather than importing this plugin; the bell therefore joins only when both are installed.
5215
5483
  */
5216
5484
  ctx.slots.inject("workflow-plaza.actions", () => ctx.slots.register({ name: "workflow-plaza.actions" }, WorkflowPlazaBell));
5485
+ /**
5486
+ * The custom DataOps resource tab and the host→client opening bridge.
5487
+ *
5488
+ * Both are optional on the Better Sidebar service: a profile without it keeps the rest of
5489
+ * the managed surfaces and simply has no sidebar resource page. The registration waits for
5490
+ * the service instead of sampling it once, because plugin load order is not ours to choose.
5491
+ */
5492
+ ctx.effect(() => {
5493
+ let disposeTab;
5494
+ let disposeBridge;
5495
+ const inject = ctx.inject;
5496
+ inject?.(["betterSidebar"], (injected) => {
5497
+ const service = injected.betterSidebar;
5498
+ if (service?.registerTab === void 0) return;
5499
+ disposeTab = service.registerTab({
5500
+ id: RESOURCE_TAB_TYPE,
5501
+ title: "数据资源",
5502
+ description: "DataOps 全量资源、授权与操作记录",
5503
+ order: 60,
5504
+ single: true,
5505
+ component: DataOpsResourcesTab
5506
+ });
5507
+ disposeBridge = ctx.slots.inject("sidebar.footer.action", () => ctx.slots.register({
5508
+ name: "sidebar.footer.action",
5509
+ id: "dataops-resource-bridge",
5510
+ order: 95
5511
+ }, ((props) => OpenResourceBridge({
5512
+ service,
5513
+ scope: props?.scope
5514
+ }))));
5515
+ });
5516
+ return () => {
5517
+ disposeBridge?.();
5518
+ disposeBridge = void 0;
5519
+ disposeTab?.();
5520
+ disposeTab = void 0;
5521
+ };
5522
+ }, "dataops-managed: resource tab and open bridge");
5217
5523
  const synchronizeJwt = async () => {
5218
5524
  const response = await fetch(new URL(MANAGED_AUTH_PATH, window.location.origin), {
5219
5525
  method: "POST",