@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 +501 -195
- package/lib/client.js.map +1 -1
- package/lib/index.js +567 -10
- package/lib/types/client/DataOpsResourcesTab.d.ts +26 -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
|
-
"
|
|
755
|
-
"
|
|
756
|
-
"
|
|
757
|
-
"
|
|
758
|
-
"
|
|
759
|
-
"
|
|
760
|
-
"
|
|
761
|
-
"
|
|
762
|
-
"
|
|
763
|
-
"
|
|
764
|
-
"
|
|
765
|
-
"
|
|
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
|
|
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
|
-
"
|
|
1628
|
-
"
|
|
1629
|
-
"
|
|
1630
|
-
"
|
|
1631
|
-
"
|
|
1632
|
-
"
|
|
1633
|
-
"
|
|
1634
|
-
"
|
|
1635
|
-
"
|
|
1636
|
-
"
|
|
1637
|
-
"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
|
|
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
|
-
"title": "
|
|
1983
|
-
"
|
|
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
|
|
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
|
-
"unit-
|
|
2660
|
-
"
|
|
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
|
|
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
|
-
"panel": "
|
|
3081
|
-
"
|
|
3082
|
-
"
|
|
3083
|
-
"
|
|
3084
|
-
"
|
|
3085
|
-
"
|
|
3086
|
-
"
|
|
3087
|
-
"
|
|
3088
|
-
"
|
|
3089
|
-
"
|
|
3090
|
-
"
|
|
3091
|
-
"
|
|
3092
|
-
"
|
|
3093
|
-
"
|
|
3094
|
-
"
|
|
3095
|
-
"
|
|
3096
|
-
"
|
|
3097
|
-
"
|
|
3098
|
-
"
|
|
3099
|
-
"
|
|
3100
|
-
"
|
|
3101
|
-
"treeRoot": "
|
|
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
|
-
"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
|
|
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
|
-
"actions": "
|
|
4579
|
-
"
|
|
4580
|
-
"
|
|
4581
|
-
"
|
|
4582
|
-
"
|
|
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 = [
|
|
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",
|