@sparkelf/dsh-dataops-managed 0.3.24 → 0.3.26
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 +519 -195
- package/lib/client.js.map +1 -1
- package/lib/index.js +567 -10
- package/lib/types/client/DataOpsResourcesTab.d.ts +27 -0
- package/lib/types/client/OpenResourceBridge.d.ts +34 -0
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/collect-api.d.ts +99 -0
- package/lib/types/index.d.ts +8 -0
- package/lib/types/resource-tab.d.ts +63 -0
- package/lib/types/tool-manager.d.ts +3 -1
- package/lib/types/tool-scope.d.ts +13 -0
- package/lib/types/tools.d.ts +2 -1
- package/package.json +2 -1
- package/skills/dataops-collect/SKILL.md +177 -0
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
|
|
740
|
-
const css$5 = ".
|
|
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
|
-
"
|
|
751
|
-
"
|
|
752
|
-
"
|
|
753
|
-
"
|
|
754
|
-
"reviewRows": "
|
|
755
|
-
"
|
|
756
|
-
"title": "
|
|
757
|
-
"
|
|
758
|
-
"
|
|
759
|
-
"
|
|
760
|
-
"
|
|
761
|
-
"
|
|
762
|
-
"
|
|
763
|
-
"
|
|
764
|
-
"
|
|
765
|
-
"
|
|
750
|
+
"reviewActions": "_2dqzjG_reviewActions",
|
|
751
|
+
"card": "_2dqzjG_card",
|
|
752
|
+
"reviewHint": "_2dqzjG_reviewHint",
|
|
753
|
+
"heading": "_2dqzjG_heading",
|
|
754
|
+
"reviewRows": "_2dqzjG_reviewRows",
|
|
755
|
+
"label": "_2dqzjG_label",
|
|
756
|
+
"title": "_2dqzjG_title",
|
|
757
|
+
"reviewRow": "_2dqzjG_reviewRow",
|
|
758
|
+
"refusal": "_2dqzjG_refusal",
|
|
759
|
+
"section": "_2dqzjG_section",
|
|
760
|
+
"row": "_2dqzjG_row",
|
|
761
|
+
"status": "_2dqzjG_status",
|
|
762
|
+
"meta": "_2dqzjG_meta",
|
|
763
|
+
"actions": "_2dqzjG_actions",
|
|
764
|
+
"fields": "_2dqzjG_fields",
|
|
765
|
+
"copy": "_2dqzjG_copy"
|
|
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
|
|
1610
|
-
const css$4 = ".
|
|
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
|
-
"
|
|
1621
|
-
"
|
|
1622
|
-
"
|
|
1623
|
-
"
|
|
1624
|
-
"
|
|
1625
|
-
"
|
|
1626
|
-
"
|
|
1627
|
-
"rowTitle": "
|
|
1628
|
-
"
|
|
1629
|
-
"
|
|
1630
|
-
"
|
|
1631
|
-
"
|
|
1632
|
-
"button": "
|
|
1633
|
-
"
|
|
1634
|
-
"
|
|
1635
|
-
"
|
|
1636
|
-
"
|
|
1637
|
-
"
|
|
1620
|
+
"linkButton": "tE0trG_linkButton",
|
|
1621
|
+
"rowText": "tE0trG_rowText",
|
|
1622
|
+
"demo": "tE0trG_demo",
|
|
1623
|
+
"bell": "tE0trG_bell",
|
|
1624
|
+
"empty": "tE0trG_empty",
|
|
1625
|
+
"dot": "tE0trG_dot",
|
|
1626
|
+
"rowBody": "tE0trG_rowBody",
|
|
1627
|
+
"rowTitle": "tE0trG_rowTitle",
|
|
1628
|
+
"row": "tE0trG_row",
|
|
1629
|
+
"dialog": "tE0trG_dialog",
|
|
1630
|
+
"actions": "tE0trG_actions",
|
|
1631
|
+
"rowMeta": "tE0trG_rowMeta",
|
|
1632
|
+
"button": "tE0trG_button",
|
|
1633
|
+
"badge": "tE0trG_badge",
|
|
1634
|
+
"pager": "tE0trG_pager",
|
|
1635
|
+
"rowTime": "tE0trG_rowTime",
|
|
1636
|
+
"list": "tE0trG_list",
|
|
1637
|
+
"rowIcon": "tE0trG_rowIcon"
|
|
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
|
|
1918
|
-
const css$3 = ".
|
|
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
|
-
"
|
|
1929
|
-
"
|
|
1930
|
-
"
|
|
1931
|
-
"
|
|
1932
|
-
"
|
|
1933
|
-
"
|
|
1934
|
-
"
|
|
1935
|
-
"
|
|
1936
|
-
"
|
|
1937
|
-
"
|
|
1938
|
-
"
|
|
1939
|
-
"
|
|
1940
|
-
"
|
|
1941
|
-
"
|
|
1942
|
-
"
|
|
1943
|
-
"
|
|
1944
|
-
"
|
|
1945
|
-
"
|
|
1946
|
-
"
|
|
1947
|
-
"
|
|
1948
|
-
"
|
|
1949
|
-
"
|
|
1950
|
-
"
|
|
1951
|
-
"
|
|
1952
|
-
"
|
|
1953
|
-
"
|
|
1954
|
-
"
|
|
1955
|
-
"
|
|
1956
|
-
"
|
|
1957
|
-
"
|
|
1958
|
-
"
|
|
1959
|
-
"
|
|
1960
|
-
"
|
|
1961
|
-
"
|
|
1962
|
-
"
|
|
1963
|
-
"
|
|
1964
|
-
"
|
|
1965
|
-
"
|
|
1966
|
-
"
|
|
1967
|
-
"
|
|
1968
|
-
"
|
|
1969
|
-
"
|
|
1970
|
-
"
|
|
1971
|
-
"
|
|
1972
|
-
"
|
|
1973
|
-
"
|
|
1974
|
-
"
|
|
1975
|
-
"
|
|
1976
|
-
"
|
|
1977
|
-
"
|
|
1978
|
-
"
|
|
1979
|
-
"
|
|
1980
|
-
"
|
|
1981
|
-
"
|
|
1982
|
-
"
|
|
1983
|
-
"
|
|
1928
|
+
"demoTag": "_9FdZvq_demoTag",
|
|
1929
|
+
"card": "_9FdZvq_card",
|
|
1930
|
+
"riskEmpty": "_9FdZvq_riskEmpty",
|
|
1931
|
+
"noteField": "_9FdZvq_noteField",
|
|
1932
|
+
"cardEnd": "_9FdZvq_cardEnd",
|
|
1933
|
+
"detailRow": "_9FdZvq_detailRow",
|
|
1934
|
+
"severity": "_9FdZvq_severity",
|
|
1935
|
+
"audit": "_9FdZvq_audit",
|
|
1936
|
+
"tabActive": "_9FdZvq_tabActive",
|
|
1937
|
+
"sharedTag": "_9FdZvq_sharedTag",
|
|
1938
|
+
"tabCount": "_9FdZvq_tabCount",
|
|
1939
|
+
"findingText": "_9FdZvq_findingText",
|
|
1940
|
+
"dialog": "_9FdZvq_dialog",
|
|
1941
|
+
"pendingTag": "_9FdZvq_pendingTag",
|
|
1942
|
+
"auditDialog": "_9FdZvq_auditDialog",
|
|
1943
|
+
"status": "_9FdZvq_status",
|
|
1944
|
+
"mark": "_9FdZvq_mark",
|
|
1945
|
+
"tagTop": "_9FdZvq_tagTop",
|
|
1946
|
+
"headRow": "_9FdZvq_headRow",
|
|
1947
|
+
"departmentSelect": "_9FdZvq_departmentSelect",
|
|
1948
|
+
"departmentBar": "_9FdZvq_departmentBar",
|
|
1949
|
+
"cardTop": "_9FdZvq_cardTop",
|
|
1950
|
+
"detail": "_9FdZvq_detail",
|
|
1951
|
+
"emptyText": "_9FdZvq_emptyText",
|
|
1952
|
+
"riskFailed": "_9FdZvq_riskFailed",
|
|
1953
|
+
"finding": "_9FdZvq_finding",
|
|
1954
|
+
"findingHint": "_9FdZvq_findingHint",
|
|
1955
|
+
"detailLabel": "_9FdZvq_detailLabel",
|
|
1956
|
+
"section": "_9FdZvq_section",
|
|
1957
|
+
"head": "_9FdZvq_head",
|
|
1958
|
+
"cardTitle": "_9FdZvq_cardTitle",
|
|
1959
|
+
"departmentLabel": "_9FdZvq_departmentLabel",
|
|
1960
|
+
"detailValue": "_9FdZvq_detailValue",
|
|
1961
|
+
"mine": "_9FdZvq_mine",
|
|
1962
|
+
"cardIcon": "_9FdZvq_cardIcon",
|
|
1963
|
+
"emptyIcon": "_9FdZvq_emptyIcon",
|
|
1964
|
+
"title": "_9FdZvq_title",
|
|
1965
|
+
"cards": "_9FdZvq_cards",
|
|
1966
|
+
"tabs": "_9FdZvq_tabs",
|
|
1967
|
+
"rejectedTag": "_9FdZvq_rejectedTag",
|
|
1968
|
+
"auditFooter": "_9FdZvq_auditFooter",
|
|
1969
|
+
"risk": "_9FdZvq_risk",
|
|
1970
|
+
"tab": "_9FdZvq_tab",
|
|
1971
|
+
"detailButton": "_9FdZvq_detailButton",
|
|
1972
|
+
"empty": "_9FdZvq_empty",
|
|
1973
|
+
"reviewButton": "_9FdZvq_reviewButton",
|
|
1974
|
+
"notice": "_9FdZvq_notice",
|
|
1975
|
+
"reviewNote": "_9FdZvq_reviewNote",
|
|
1976
|
+
"riskHead": "_9FdZvq_riskHead",
|
|
1977
|
+
"titleCount": "_9FdZvq_titleCount",
|
|
1978
|
+
"cardDesc": "_9FdZvq_cardDesc",
|
|
1979
|
+
"riskSummary": "_9FdZvq_riskSummary",
|
|
1980
|
+
"riskScore": "_9FdZvq_riskScore",
|
|
1981
|
+
"findings": "_9FdZvq_findings",
|
|
1982
|
+
"reviewError": "_9FdZvq_reviewError",
|
|
1983
|
+
"cardMarks": "_9FdZvq_cardMarks"
|
|
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
|
|
2638
|
-
const css$2 = ".
|
|
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
|
-
"
|
|
2649
|
-
"unit-
|
|
2650
|
-
"
|
|
2651
|
-
"
|
|
2652
|
-
"
|
|
2653
|
-
"
|
|
2654
|
-
"
|
|
2655
|
-
"
|
|
2656
|
-
"
|
|
2657
|
-
"
|
|
2658
|
-
"
|
|
2659
|
-
"
|
|
2660
|
-
"
|
|
2648
|
+
"unitLeft": "s0HPxG_unitLeft",
|
|
2649
|
+
"unit-core": "s0HPxG_unit-core",
|
|
2650
|
+
"unit-top": "s0HPxG_unit-top",
|
|
2651
|
+
"unitCore": "s0HPxG_unitCore",
|
|
2652
|
+
"unit-right": "s0HPxG_unit-right",
|
|
2653
|
+
"mark": "s0HPxG_mark",
|
|
2654
|
+
"wordmark": "s0HPxG_wordmark",
|
|
2655
|
+
"unitTop": "s0HPxG_unitTop",
|
|
2656
|
+
"harness": "s0HPxG_harness",
|
|
2657
|
+
"animatedMark": "s0HPxG_animatedMark",
|
|
2658
|
+
"unit-left": "s0HPxG_unit-left",
|
|
2659
|
+
"unitRight": "s0HPxG_unitRight",
|
|
2660
|
+
"sidebarName": "s0HPxG_sidebarName"
|
|
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
|
|
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
|
-
"
|
|
3078
|
-
"
|
|
3079
|
-
"
|
|
3080
|
-
"
|
|
3081
|
-
"
|
|
3082
|
-
"
|
|
3083
|
-
"
|
|
3084
|
-
"
|
|
3085
|
-
"
|
|
3086
|
-
"
|
|
3087
|
-
"
|
|
3088
|
-
"
|
|
3089
|
-
"
|
|
3090
|
-
"
|
|
3091
|
-
"
|
|
3092
|
-
"
|
|
3093
|
-
"
|
|
3094
|
-
"
|
|
3095
|
-
"
|
|
3096
|
-
"
|
|
3097
|
-
"
|
|
3098
|
-
"
|
|
3099
|
-
"
|
|
3100
|
-
"
|
|
3101
|
-
"
|
|
3102
|
-
"
|
|
3103
|
-
"
|
|
3104
|
-
"
|
|
3105
|
-
"
|
|
3106
|
-
"
|
|
3107
|
-
"
|
|
3108
|
-
"
|
|
3109
|
-
"
|
|
3110
|
-
"
|
|
3111
|
-
"
|
|
3112
|
-
"
|
|
3113
|
-
"
|
|
3114
|
-
"
|
|
3115
|
-
"
|
|
3116
|
-
"
|
|
3117
|
-
"
|
|
3118
|
-
"
|
|
3119
|
-
"
|
|
3120
|
-
"
|
|
3121
|
-
"
|
|
3122
|
-
"
|
|
3123
|
-
"
|
|
3124
|
-
"
|
|
3125
|
-
"
|
|
3126
|
-
"
|
|
3127
|
-
"
|
|
3128
|
-
"
|
|
3129
|
-
"
|
|
3130
|
-
"
|
|
3131
|
-
"
|
|
3132
|
-
"
|
|
3133
|
-
"
|
|
3134
|
-
"
|
|
3135
|
-
"
|
|
3136
|
-
"
|
|
3137
|
-
"
|
|
3138
|
-
"
|
|
3139
|
-
"
|
|
3140
|
-
"
|
|
3141
|
-
"
|
|
3142
|
-
"
|
|
3077
|
+
"copied": "PNbOqW_copied",
|
|
3078
|
+
"dialogHint": "PNbOqW_dialogHint",
|
|
3079
|
+
"treeRoot": "PNbOqW_treeRoot",
|
|
3080
|
+
"readOnly": "PNbOqW_readOnly",
|
|
3081
|
+
"comboboxEmpty": "PNbOqW_comboboxEmpty",
|
|
3082
|
+
"panelFoot": "PNbOqW_panelFoot",
|
|
3083
|
+
"rowActions": "PNbOqW_rowActions",
|
|
3084
|
+
"dialogFooter": "PNbOqW_dialogFooter",
|
|
3085
|
+
"subtitle": "PNbOqW_subtitle",
|
|
3086
|
+
"head": "PNbOqW_head",
|
|
3087
|
+
"demo": "PNbOqW_demo",
|
|
3088
|
+
"muted": "PNbOqW_muted",
|
|
3089
|
+
"department": "PNbOqW_department",
|
|
3090
|
+
"comboboxMenu": "PNbOqW_comboboxMenu",
|
|
3091
|
+
"title": "PNbOqW_title",
|
|
3092
|
+
"tabs": "PNbOqW_tabs",
|
|
3093
|
+
"panelHead": "PNbOqW_panelHead",
|
|
3094
|
+
"treeName": "PNbOqW_treeName",
|
|
3095
|
+
"treeToggle": "PNbOqW_treeToggle",
|
|
3096
|
+
"comboboxTrigger": "PNbOqW_comboboxTrigger",
|
|
3097
|
+
"pager": "PNbOqW_pager",
|
|
3098
|
+
"sectionTitle": "PNbOqW_sectionTitle",
|
|
3099
|
+
"combobox": "PNbOqW_combobox",
|
|
3100
|
+
"permCopy": "PNbOqW_permCopy",
|
|
3101
|
+
"candidate": "PNbOqW_candidate",
|
|
3102
|
+
"treeRow": "PNbOqW_treeRow",
|
|
3103
|
+
"protected": "PNbOqW_protected",
|
|
3104
|
+
"table": "PNbOqW_table",
|
|
3105
|
+
"departments": "PNbOqW_departments",
|
|
3106
|
+
"comboboxPlaceholder": "PNbOqW_comboboxPlaceholder",
|
|
3107
|
+
"empty": "PNbOqW_empty",
|
|
3108
|
+
"candidates": "PNbOqW_candidates",
|
|
3109
|
+
"treeActions": "PNbOqW_treeActions",
|
|
3110
|
+
"detailGrid": "PNbOqW_detailGrid",
|
|
3111
|
+
"matrixNote": "PNbOqW_matrixNote",
|
|
3112
|
+
"onlyAdmin": "PNbOqW_onlyAdmin",
|
|
3113
|
+
"treeChildren": "PNbOqW_treeChildren",
|
|
3114
|
+
"error": "PNbOqW_error",
|
|
3115
|
+
"tab": "PNbOqW_tab",
|
|
3116
|
+
"tableScroll": "PNbOqW_tableScroll",
|
|
3117
|
+
"matrixPermission": "PNbOqW_matrixPermission",
|
|
3118
|
+
"comboboxOption": "PNbOqW_comboboxOption",
|
|
3119
|
+
"tabActive": "PNbOqW_tabActive",
|
|
3120
|
+
"comboboxOptionActive": "PNbOqW_comboboxOptionActive",
|
|
3121
|
+
"comboboxHint": "PNbOqW_comboboxHint",
|
|
3122
|
+
"search": "PNbOqW_search",
|
|
3123
|
+
"matrix": "PNbOqW_matrix",
|
|
3124
|
+
"comboboxSearch": "PNbOqW_comboboxSearch",
|
|
3125
|
+
"dialog": "PNbOqW_dialog",
|
|
3126
|
+
"field": "PNbOqW_field",
|
|
3127
|
+
"deptAdmins": "PNbOqW_deptAdmins",
|
|
3128
|
+
"panel": "PNbOqW_panel",
|
|
3129
|
+
"scopeBadge": "PNbOqW_scopeBadge",
|
|
3130
|
+
"waiting": "PNbOqW_waiting",
|
|
3131
|
+
"comboboxCheck": "PNbOqW_comboboxCheck",
|
|
3132
|
+
"dialogBody": "PNbOqW_dialogBody",
|
|
3133
|
+
"adminTag": "PNbOqW_adminTag",
|
|
3134
|
+
"treeSpacer": "PNbOqW_treeSpacer",
|
|
3135
|
+
"permDescription": "PNbOqW_permDescription",
|
|
3136
|
+
"page": "PNbOqW_page",
|
|
3137
|
+
"permission": "PNbOqW_permission",
|
|
3138
|
+
"matrixModule": "PNbOqW_matrixModule",
|
|
3139
|
+
"notice": "PNbOqW_notice",
|
|
3140
|
+
"comboboxList": "PNbOqW_comboboxList",
|
|
3141
|
+
"matrixGroup": "PNbOqW_matrixGroup",
|
|
3142
|
+
"matrixScroll": "PNbOqW_matrixScroll"
|
|
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
|
|
4561
|
-
const css = ".
|
|
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
|
-
"
|
|
4572
|
-
"
|
|
4573
|
-
"
|
|
4574
|
-
"
|
|
4575
|
-
"
|
|
4576
|
-
"
|
|
4577
|
-
"
|
|
4578
|
-
"
|
|
4579
|
-
"
|
|
4580
|
-
"
|
|
4581
|
-
"
|
|
4582
|
-
"
|
|
4571
|
+
"title": "razUfG_title",
|
|
4572
|
+
"sessionTitle": "razUfG_sessionTitle",
|
|
4573
|
+
"error": "razUfG_error",
|
|
4574
|
+
"banner": "razUfG_banner",
|
|
4575
|
+
"sessionRow": "razUfG_sessionRow",
|
|
4576
|
+
"dialogText": "razUfG_dialogText",
|
|
4577
|
+
"sessionPath": "razUfG_sessionPath",
|
|
4578
|
+
"body": "razUfG_body",
|
|
4579
|
+
"copy": "razUfG_copy",
|
|
4580
|
+
"actions": "razUfG_actions",
|
|
4581
|
+
"dialogBody": "razUfG_dialogBody",
|
|
4582
|
+
"sessionList": "razUfG_sessionList"
|
|
4583
4583
|
};
|
|
4584
4584
|
//#endregion
|
|
4585
4585
|
//#region src/client/WorkspaceUpgradePrompt.tsx
|
|
@@ -4755,6 +4755,272 @@ 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({ tab, scope, sendReference }) {
|
|
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
|
+
if (sendReference === void 0) {
|
|
4875
|
+
setNotice("当前会话不可用,无法把资源加入对话");
|
|
4876
|
+
return;
|
|
4877
|
+
}
|
|
4878
|
+
sendReference("引用数据资源:\n\n```resource-ref\n" + JSON.stringify(reference, null, 2) + "\n```\n", scope?.sessionId).then(() => setNotice("已把资源加入当前对话")).catch((sendError) => setNotice("加入对话失败:" + (sendError instanceof Error ? sendError.message : String(sendError))));
|
|
4879
|
+
};
|
|
4880
|
+
window.addEventListener("message", onMessage);
|
|
4881
|
+
return () => window.removeEventListener("message", onMessage);
|
|
4882
|
+
}, [
|
|
4883
|
+
config,
|
|
4884
|
+
sendReference,
|
|
4885
|
+
scope?.sessionId
|
|
4886
|
+
]);
|
|
4887
|
+
(0, react.useEffect)(() => {
|
|
4888
|
+
if (!notice) return void 0;
|
|
4889
|
+
const timer = window.setTimeout(() => setNotice(""), 2400);
|
|
4890
|
+
return () => window.clearTimeout(timer);
|
|
4891
|
+
}, [notice]);
|
|
4892
|
+
if (error) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
4893
|
+
style: stateStyle,
|
|
4894
|
+
role: "alert",
|
|
4895
|
+
children: [error, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4896
|
+
style: { marginTop: 10 },
|
|
4897
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
4898
|
+
type: "button",
|
|
4899
|
+
onClick: () => setReloadKey((value) => value + 1),
|
|
4900
|
+
children: "重试"
|
|
4901
|
+
})
|
|
4902
|
+
})]
|
|
4903
|
+
});
|
|
4904
|
+
if (config === null) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4905
|
+
style: stateStyle,
|
|
4906
|
+
role: "status",
|
|
4907
|
+
children: "正在准备数据资源页…"
|
|
4908
|
+
});
|
|
4909
|
+
let topOrigin = "";
|
|
4910
|
+
try {
|
|
4911
|
+
topOrigin = window.top?.location.origin ?? "";
|
|
4912
|
+
} catch {
|
|
4913
|
+
topOrigin = "";
|
|
4914
|
+
}
|
|
4915
|
+
let embedOrigin = "";
|
|
4916
|
+
try {
|
|
4917
|
+
embedOrigin = new URL(config.embedBaseUrl).origin;
|
|
4918
|
+
} catch {
|
|
4919
|
+
embedOrigin = "";
|
|
4920
|
+
}
|
|
4921
|
+
const frameIsSameOrigin = config.sameOrigin === true || topOrigin !== "" && topOrigin === embedOrigin;
|
|
4922
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
4923
|
+
style: {
|
|
4924
|
+
display: "flex",
|
|
4925
|
+
flexDirection: "column",
|
|
4926
|
+
height: "100%",
|
|
4927
|
+
minHeight: 0
|
|
4928
|
+
},
|
|
4929
|
+
children: [
|
|
4930
|
+
notice ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4931
|
+
style: noticeStyle,
|
|
4932
|
+
role: "status",
|
|
4933
|
+
children: notice
|
|
4934
|
+
}) : null,
|
|
4935
|
+
!frameIsSameOrigin ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4936
|
+
style: {
|
|
4937
|
+
...stateStyle,
|
|
4938
|
+
paddingBottom: 6
|
|
4939
|
+
},
|
|
4940
|
+
children: "当前部署不是同源代理,资源页可能无法复用门户登录态。"
|
|
4941
|
+
}) : null,
|
|
4942
|
+
loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4943
|
+
style: stateStyle,
|
|
4944
|
+
role: "status",
|
|
4945
|
+
children: "正在加载数据资源页…"
|
|
4946
|
+
}) : null,
|
|
4947
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("iframe", {
|
|
4948
|
+
ref: iframeRef,
|
|
4949
|
+
src,
|
|
4950
|
+
title: meta.resourceName ? `${meta.resourceName} · 数据资源` : "数据资源",
|
|
4951
|
+
sandbox: "allow-same-origin allow-scripts allow-forms allow-popups allow-downloads",
|
|
4952
|
+
referrerPolicy: "no-referrer",
|
|
4953
|
+
style: {
|
|
4954
|
+
...frameStyle,
|
|
4955
|
+
display: loading ? "none" : "block"
|
|
4956
|
+
},
|
|
4957
|
+
onLoad: () => setLoading(false),
|
|
4958
|
+
onError: () => {
|
|
4959
|
+
setLoading(false);
|
|
4960
|
+
setError("数据资源页加载失败");
|
|
4961
|
+
}
|
|
4962
|
+
}, `${src}:${reloadKey}`)
|
|
4963
|
+
]
|
|
4964
|
+
});
|
|
4965
|
+
}
|
|
4966
|
+
//#endregion
|
|
4967
|
+
//#region src/client/OpenResourceBridge.tsx
|
|
4968
|
+
/**
|
|
4969
|
+
* Always-mounted host→client bridge for the resource tab.
|
|
4970
|
+
*
|
|
4971
|
+
* The Host tool cannot call the browser's tab API. It broadcasts one SSE event; this
|
|
4972
|
+
* component translates that event into `betterSidebar.openTab` plus `updateTab` so a
|
|
4973
|
+
* second import focuses the existing tab and refreshes its target resource.
|
|
4974
|
+
*
|
|
4975
|
+
* @module client/OpenResourceBridge
|
|
4976
|
+
*/
|
|
4977
|
+
/** Tab id shared with the client registration. */
|
|
4978
|
+
const RESOURCE_TAB_TYPE = "dataops-resources";
|
|
4979
|
+
const EVENTS_PATH = "/integrations/dataops/open-resource/events";
|
|
4980
|
+
const isOpenResourceEvent = (value) => {
|
|
4981
|
+
if (typeof value !== "object" || value === null) return false;
|
|
4982
|
+
const record = value;
|
|
4983
|
+
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");
|
|
4984
|
+
};
|
|
4985
|
+
/** Invisible bridge component; renders nothing. */
|
|
4986
|
+
function OpenResourceBridge({ service, scope }) {
|
|
4987
|
+
(0, react.useEffect)(() => {
|
|
4988
|
+
if (typeof EventSource !== "function") return void 0;
|
|
4989
|
+
const source = new EventSource(EVENTS_PATH);
|
|
4990
|
+
const onEvent = (event) => {
|
|
4991
|
+
let parsed;
|
|
4992
|
+
try {
|
|
4993
|
+
parsed = JSON.parse(String(event.data));
|
|
4994
|
+
} catch {
|
|
4995
|
+
return;
|
|
4996
|
+
}
|
|
4997
|
+
if (!isOpenResourceEvent(parsed)) return;
|
|
4998
|
+
const meta = {
|
|
4999
|
+
resourceId: parsed.resourceId,
|
|
5000
|
+
resourceName: parsed.resourceName,
|
|
5001
|
+
mode: parsed.mode,
|
|
5002
|
+
nonce: parsed.nonce
|
|
5003
|
+
};
|
|
5004
|
+
service.openTab({
|
|
5005
|
+
type: RESOURCE_TAB_TYPE,
|
|
5006
|
+
id: RESOURCE_TAB_TYPE,
|
|
5007
|
+
title: "数据资源",
|
|
5008
|
+
meta
|
|
5009
|
+
}, scope);
|
|
5010
|
+
service.updateTab?.(RESOURCE_TAB_TYPE, {
|
|
5011
|
+
title: "数据资源",
|
|
5012
|
+
meta
|
|
5013
|
+
}, scope?.sessionId);
|
|
5014
|
+
};
|
|
5015
|
+
source.addEventListener("dataops-open-resource", onEvent);
|
|
5016
|
+
return () => {
|
|
5017
|
+
source.removeEventListener("dataops-open-resource", onEvent);
|
|
5018
|
+
source.close();
|
|
5019
|
+
};
|
|
5020
|
+
}, [service, scope]);
|
|
5021
|
+
return null;
|
|
5022
|
+
}
|
|
5023
|
+
//#endregion
|
|
4758
5024
|
//#region src/client/locales.ts
|
|
4759
5025
|
/** English managed DataOps Settings copy. */
|
|
4760
5026
|
const en = {
|
|
@@ -5057,8 +5323,13 @@ window.__ModuleLoader__.load({
|
|
|
5057
5323
|
const MANAGED_AUTH_PATH = "/integrations/dataops/managed-auth";
|
|
5058
5324
|
/** Sidebar entry and main page id for the permission centre. */
|
|
5059
5325
|
const PERMISSION_PANEL_ID = "dataops-permissions";
|
|
5060
|
-
/** Required client services for the managed DataOps Settings section. */
|
|
5061
|
-
const inject = [
|
|
5326
|
+
/** Required client services for the managed DataOps Settings section and the resource tab bridge. */
|
|
5327
|
+
const inject = [
|
|
5328
|
+
"slots",
|
|
5329
|
+
"locale",
|
|
5330
|
+
"conversation",
|
|
5331
|
+
"sessions"
|
|
5332
|
+
];
|
|
5062
5333
|
/**
|
|
5063
5334
|
* Bind the four strings the sign-in prompt needs.
|
|
5064
5335
|
*
|
|
@@ -5214,6 +5485,59 @@ window.__ModuleLoader__.load({
|
|
|
5214
5485
|
* rather than importing this plugin; the bell therefore joins only when both are installed.
|
|
5215
5486
|
*/
|
|
5216
5487
|
ctx.slots.inject("workflow-plaza.actions", () => ctx.slots.register({ name: "workflow-plaza.actions" }, WorkflowPlazaBell));
|
|
5488
|
+
/**
|
|
5489
|
+
* The custom DataOps resource tab and the host→client opening bridge.
|
|
5490
|
+
*
|
|
5491
|
+
* Both are optional on the Better Sidebar service: a profile without it keeps the rest of
|
|
5492
|
+
* the managed surfaces and simply has no sidebar resource page. The registration waits for
|
|
5493
|
+
* the service instead of sampling it once, because plugin load order is not ours to choose.
|
|
5494
|
+
*/
|
|
5495
|
+
ctx.effect(() => {
|
|
5496
|
+
let disposeTab;
|
|
5497
|
+
let disposeBridge;
|
|
5498
|
+
const inject = ctx.inject;
|
|
5499
|
+
inject?.([
|
|
5500
|
+
"betterSidebar",
|
|
5501
|
+
"conversation",
|
|
5502
|
+
"sessions"
|
|
5503
|
+
], (injected) => {
|
|
5504
|
+
const service = injected.betterSidebar;
|
|
5505
|
+
if (service?.registerTab === void 0) return;
|
|
5506
|
+
const conversation = injected.conversation;
|
|
5507
|
+
const sessions = injected.sessions;
|
|
5508
|
+
const sendReference = async (text, sessionId) => {
|
|
5509
|
+
if (!sessionId) throw new Error("no active session");
|
|
5510
|
+
const target = (sessions?.scope?.(sessionId))?.get?.("conversation") ?? conversation;
|
|
5511
|
+
if (target?.send === void 0) throw new Error("conversation service is unavailable");
|
|
5512
|
+
await target.send(text);
|
|
5513
|
+
};
|
|
5514
|
+
disposeTab = service.registerTab({
|
|
5515
|
+
id: RESOURCE_TAB_TYPE,
|
|
5516
|
+
title: "数据资源",
|
|
5517
|
+
description: "DataOps 全量资源、授权与操作记录",
|
|
5518
|
+
order: 60,
|
|
5519
|
+
single: true,
|
|
5520
|
+
component: ((props) => DataOpsResourcesTab({
|
|
5521
|
+
...props,
|
|
5522
|
+
sendReference
|
|
5523
|
+
}))
|
|
5524
|
+
});
|
|
5525
|
+
disposeBridge = ctx.slots.inject("sidebar.footer.action", () => ctx.slots.register({
|
|
5526
|
+
name: "sidebar.footer.action",
|
|
5527
|
+
id: "dataops-resource-bridge",
|
|
5528
|
+
order: 95
|
|
5529
|
+
}, ((props) => OpenResourceBridge({
|
|
5530
|
+
service,
|
|
5531
|
+
scope: props?.scope
|
|
5532
|
+
}))));
|
|
5533
|
+
});
|
|
5534
|
+
return () => {
|
|
5535
|
+
disposeBridge?.();
|
|
5536
|
+
disposeBridge = void 0;
|
|
5537
|
+
disposeTab?.();
|
|
5538
|
+
disposeTab = void 0;
|
|
5539
|
+
};
|
|
5540
|
+
}, "dataops-managed: resource tab and open bridge");
|
|
5217
5541
|
const synchronizeJwt = async () => {
|
|
5218
5542
|
const response = await fetch(new URL(MANAGED_AUTH_PATH, window.location.origin), {
|
|
5219
5543
|
method: "POST",
|