dsh-plugin-core 0.20.8 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -86,8 +86,9 @@ export interface PickWorkspaceFileOptions {
86
86
  * | `right-start` / `right-end` | 按钮右侧,顶边 / 底边齐平 |
87
87
  * | `left-start` / `left-end` | 按钮左侧,顶边 / 底边齐平 |
88
88
  *
89
- * **指定方位后不再自动翻边**(说往左就往左),只在真的超出视口时夹紧——按钮贴着
90
- * 定宽区右边界时传 `bottom-end` / `left-start` 之类,面板就不会向右溢出。
89
+ * 方位是**优先**而非焊死(用户 2026-11-03):该侧放得下就照它(按钮贴定宽区右边界时传
90
+ * `bottom-end` / `left-start`,面板不会向右溢出);该侧放不下、对侧放得下 ⇒ **自动翻边**
91
+ * (bottom↔top、left↔right,对齐轴不变);两侧都放不下 ⇒ 守原方位再夹紧进视口。
91
92
  */
92
93
  placement?: PickPlacement;
93
94
  /** 过滤:exts = 只要这些扩展名(小写无点);dirs = 只要文件夹;不传 = 不限。 */
@@ -1 +1 @@
1
- {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../src/explorer/open.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../src/explorer/open.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/explorer/open.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/explorer/open.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,EAAE;AACF,2DAA2D;AAC3D,4DAA4D;AAC5D,mCAAmC;AACnC,EAAE;AACF,yDAAyD;AACzD,+DAA+D;AAC/D,oCAAoC;AACpC,EAAE;AACF,mEAAmE;AACnE,gFAAgF;AAChF,2DAA2D;AAC3D,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,QAAQ,EAAsC,MAAM,OAAO,CAAA;AACxF,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAsB,MAAM,uBAAuB,CAAA;AACnG,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE1E,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAI7C;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAgB,EAAE,SAAkB;IACjF,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAA;IAC1B,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,SAAS,KAAK,SAAS;QACnC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;IACpG,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,IAAI,CAAA;IACjF,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACnC,OAAO,aAAa,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;AAC5E,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,OAAgB,EAAE,SAAkB;IACpE,OAAO,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI;WACtC,CAAC,SAAS,KAAK,SAAS;YACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC;WAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,IAAI,CAAA;AAC5D,CAAC;AAED,SAAS,YAAY,CAAC,GAA4C,EAAE,YAAqB;IACvF,OAAO,CAAC,IAAI,CACV,8BAA8B,GAAG,IAAI;UACnC,CAAC,YAAY;YACb,CAAC,CAAC,uDAAuD;YACzD,CAAC,CAAC,4CAA4C,CAAC;UAC/C,WAAW,CACd,CAAA;AACH,CAAC;AA0DD,oCAAoC;AACpC,MAAM,eAAe,GAAG,yBAAyB,CAAA;AACjD,uCAAuC;AACvC,MAAM,gBAAgB,GAAG,cAAc,CAAA;AACvC;;;GAGG;AACH,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAUzC,IAAI,aAAa,GAAyB,IAAI,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,CAAA;IAC5C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAA;IACzB,MAAM,OAAO,GAAY,OAAO,CAAC,gBAAgB,IAAI,aAAa,CAAC,WAAW,EAAE,CAAA;IAChF,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5F,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9B,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,gDAAgD;IAChD,MAAM,IAAI,GAA2B;QACnC,GAAG,OAAO;QACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;KAClF,CAAA;IAED,uDAAuD;IACvD,iDAAiD;IACjD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,aAAa,CAAC,SAAS,EAAE,CAAA;QACzB,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;QACrC,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAA;IAC9D,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC/C,SAAS,CAAC,EAAE,GAAG,eAAe,CAAA;IAC9B,SAAS,CAAC,YAAY,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAA;IACrD,mEAAmE;IACnE,+CAA+C;IAC/C,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAAA;IAE5C,0DAA0D;IAC1D,IAAI,MAAM,GAAuB,IAAI,CAAA;IACrC,IAAI,eAAe,GAAG,EAAE,CAAA;IACxB,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,IAAI,MAAM,KAAK,IAAI;YAAE,OAAM;QAC3B,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,YAAY;YAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;QAC3D,MAAM,GAAG,IAAI,CAAA;IACf,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,CAAC,IAAiB,EAAQ,EAAE;QACxC,IAAI,IAAI,KAAK,MAAM;YAAE,OAAM;QAC3B,WAAW,EAAE,CAAA;QACb,oCAAoC;QACpC,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CACV,kFAAkF;kBAChF,gCAAgC,CACnC,CAAA;QACH,CAAC;QACD,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAA;QACpC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;QACvD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QACnC,MAAM,OAAO,GAAG,OAAO,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5F,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,aAAa;YAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;QAChF,2CAA2C;QAC3C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC3B,MAAM,GAAG,IAAI,CAAA;IACf,CAAC,CAAA;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAEpB,MAAM,IAAI,GAAG,eAAe,CAAC;QAC3B,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG;QACjC,4CAA4C;QAC5C,gDAAgD;QAChD,OAAO,EAAE,GAAG,EAAE;YACZ,KAAK,EAAE,CAAA;QACT,CAAC;KACF,CAAC,CAAA;IACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAE3B,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,MAAM,IAAI,GAAS,UAAU,CAAC,SAAS,CAAC,CAAA;IACxC,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,MAAM;YAAE,OAAM;QAClB,MAAM,GAAG,IAAI,CAAA;QACb,IAAI,aAAa,EAAE,KAAK,KAAK,KAAK;YAAE,aAAa,GAAG,IAAI,CAAA;QACxD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,SAAS,CAAC,MAAM,EAAE,CAAA;QAClB,kCAAkC;QAClC,WAAW,EAAE,CAAA;QACb,OAAO,CAAC,OAAO,EAAE,EAAE,CAAA;IACrB,CAAC,CAAA;IACD,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAQ,EAAE;QAC/C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE,KAAK,EAAE,CAAA;IACrC,CAAC,CAAA;IACD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAE7C,qBAAqB,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAA;IAClE,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAA;IAC9D,2CAA2C;IAC3C,oCAAoC;IACpC,IAAI,WAAW,GAAkB,IAAI,CAAA;IACrC,MAAM,SAAS,GAAG,GAAS,EAAE;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAc,oBAAoB,CAAC,CAAA;QACxE,IAAI,KAAK,KAAK,IAAI;YAAE,OAAM;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAA;QAC7D,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;YAAE,OAAM;QAC7C,WAAW,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;IACxC,CAAC,CAAA;IACD,8CAA8C;IAC9C,mDAAmD;IACnD,sDAAsD;IACtD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,MAAM,IAAI,GAAG,CAAC,CAAyB,EAAE,KAAa,EAAQ,EAAE;QAC9D,0DAA0D;QAC1D,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACrE,MAAM,QAAQ,GAAG,EAAE,OAAO,CAAA;QAC1B,IAAI,CAAC,MAAM,CACT,CAAC,CACC,KAAK;QACL,wDAAwD;QACxD,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,gBAA0B,CAAC,EAAE,MAAM,EAAE,EAAE,EACxE,CAAC,CACC,SAAS,EACT,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,EACrE,CAAC,CACC,SAAS,EACT;YACE,EAAE,EAAE,gBAAgB;YACpB,iDAAiD;YACjD,MAAM,EAAE,IAAI;YACZ,2CAA2C;YAC3C,uDAAuD;YACvD,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE,CAAC,CAAC,KAAK;YAClB,qCAAqC;YACrC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG;YACpC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,GAAG;YAC3B,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,EACD,CAAC,CAAC,OAAO,KAAK,SAAS;YACrB,uCAAuC;YACvC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,UAAU,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACzD,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBACb,KAAK,EAAE,SAAS,EAAG;gBACnB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;gBAChC,IAAI,EAAE,KAAK;gBACb,QAAQ;gBACR,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;gBACpC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;gBACtC,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,yDAAyD;gBACzD,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;aACxC,CAAC,CACP,CACF,CACF,CACF,CAAA;IACH,CAAC,CAAA;IACD,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;IACvB,aAAa,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACjD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAA;AACzC,CAAC;AAmDD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiC;IACjE,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;QAChD,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAA;YACb,OAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,EAAE,CAAA;QACzB,MAAM,OAAO,GAAY,aAAa,CAAC,WAAW,EAAE,CAAA;QACpD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;YACvC,OAAO,CAAC,IAAI,CAAC,CAAA;YACb,OAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAC9E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,YAAY,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;YACxC,OAAO,CAAC,IAAI,CAAC,CAAA;YACb,OAAM;QACR,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,6DAA6D;QAC7D,6DAA6D;QAC7D,gEAAgE;QAChE,MAAM,UAAU,GAAkB;YAChC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;SACxB,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAA;QACrC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,0DAA0D;YAC1D,MAAM,GAAG,GAAG,WAAW,CACrB,MAAM,CAAC,qBAAqB,EAAE,EAC9B,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,EACxD,OAAO,CAAC,SAAS,IAAI,MAAM,CAC5B,CAAA;YACD,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;YAC1B,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;YACxB,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;YAC5B,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,KAAK,GAAG,OAAO,YAAY,wBAAwB,CAAA;YAC9D,UAAU,CAAC,MAAM,GAAG,YAAY,CAAA;QAClC,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAyB,EAAQ,EAAE;YACjD,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAChD,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,KAAK,CAAC,MAAM,EAAE,CAAA;YACd,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAA;YACzC,OAAO,CAAC,MAAM,CAAC,CAAA;QACjB,CAAC,CAAA;QACD,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC/C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1C,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC3C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAChC,qBAAqB,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAA;QAClE,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAA;QAC9D,MAAM,IAAI,GAAS,UAAU,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,CAAC,MAAM,CACT,CAAC,CACC,WAAW,EACX,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,4BAA4B,EAAE,EAAE,EAAE,EAAE;QAC9G,yEAAyE;QACzE,CAAC,CACC,YAAY,EACZ;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE,yBAAyB,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;YAC9D,KAAK,EAAE,UAAU;YACjB,eAAe,EAAE,IAAI;SACtB,EACD,CAAC,CAAC,WAAW,EAAE;YACb,KAAK;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YACxC,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;YACvD,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,CAAC,MAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;SACtE,CAAc,CAChB,CACF,CACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -15,8 +15,12 @@
15
15
  * | `left-end` | 按钮左侧,底边齐平(向左展开、底部对齐) |
16
16
  * | `auto` | 旧行为:优先下方,下方不够翻上方,横向夹紧 |
17
17
  *
18
- * 关键口径:**指定方位后不再自动翻边**。用户要的是「说往左就往左」——按钮贴在定宽区
19
- * 最右边时传 `bottom-end` / `left-start`,面板就不会再向右溢出;只有真的超出视口才夹紧。
18
+ * 关键口径(用户 2026-11-03 两轮拍板):
19
+ *
20
+ * 1. 指定方位 = **优先方位**。该侧放得下就照它(按钮贴定宽区右边界时传 `bottom-end` /
21
+ * `left-start`,面板不会再向右溢出);
22
+ * 2. 该侧放不下、**对侧放得下 ⇒ 自动翻边**(bottom↔top、left↔right,对齐轴保持 start/end 不变);
23
+ * 3. 两侧都放不下 ⇒ 仍按所给方位落位,再**夹紧进视口**(绝不溢出)。
20
24
  */
21
25
  /** 展开方位。 */
22
26
  export type PickPlacement = 'auto' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'right-start' | 'right-end' | 'left-start' | 'left-end';
@@ -1 +1 @@
1
- {"version":3,"file":"picker-placement.d.ts","sourceRoot":"","sources":["../../src/explorer/picker-placement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,YAAY;AACZ,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,cAAc,GAAG,YAAY,GAC7B,WAAW,GAAG,SAAS,GACvB,aAAa,GAAG,WAAW,GAC3B,YAAY,GAAG,UAAU,CAAA;AAE7B,6CAA6C;AAC7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wCAAwC;AACxC,eAAO,MAAM,YAAY,MAAM,CAAA;AAC/B,qDAAqD;AACrD,eAAO,MAAM,YAAY,MAAM,CAAA;AAC/B,2CAA2C;AAC3C,eAAO,MAAM,YAAY,MAAM,CAAA;AAC/B,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC,iCAAiC;AACjC,eAAO,MAAM,YAAY,MAAM,CAAA;AAC/B,kBAAkB;AAClB,eAAO,MAAM,UAAU,KAAK,CAAA;AAC5B,oBAAoB;AACpB,eAAO,MAAM,aAAa,KAAK,CAAA;AAO/B;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,aAAsB,GAChC,SAAS,CA8CX"}
1
+ {"version":3,"file":"picker-placement.d.ts","sourceRoot":"","sources":["../../src/explorer/picker-placement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,YAAY;AACZ,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,cAAc,GAAG,YAAY,GAC7B,WAAW,GAAG,SAAS,GACvB,aAAa,GAAG,WAAW,GAC3B,YAAY,GAAG,UAAU,CAAA;AAE7B,6CAA6C;AAC7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wCAAwC;AACxC,eAAO,MAAM,YAAY,MAAM,CAAA;AAC/B,qDAAqD;AACrD,eAAO,MAAM,YAAY,MAAM,CAAA;AAC/B,2CAA2C;AAC3C,eAAO,MAAM,YAAY,MAAM,CAAA;AAC/B,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC,iCAAiC;AACjC,eAAO,MAAM,YAAY,MAAM,CAAA;AAC/B,kBAAkB;AAClB,eAAO,MAAM,UAAU,KAAK,CAAA;AAC5B,oBAAoB;AACpB,eAAO,MAAM,aAAa,KAAK,CAAA;AAqB/B;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,aAAsB,GAChC,SAAS,CA6DX"}
@@ -15,8 +15,12 @@
15
15
  * | `left-end` | 按钮左侧,底边齐平(向左展开、底部对齐) |
16
16
  * | `auto` | 旧行为:优先下方,下方不够翻上方,横向夹紧 |
17
17
  *
18
- * 关键口径:**指定方位后不再自动翻边**。用户要的是「说往左就往左」——按钮贴在定宽区
19
- * 最右边时传 `bottom-end` / `left-start`,面板就不会再向右溢出;只有真的超出视口才夹紧。
18
+ * 关键口径(用户 2026-11-03 两轮拍板):
19
+ *
20
+ * 1. 指定方位 = **优先方位**。该侧放得下就照它(按钮贴定宽区右边界时传 `bottom-end` /
21
+ * `left-start`,面板不会再向右溢出);
22
+ * 2. 该侧放不下、**对侧放得下 ⇒ 自动翻边**(bottom↔top、left↔right,对齐轴保持 start/end 不变);
23
+ * 3. 两侧都放不下 ⇒ 仍按所给方位落位,再**夹紧进视口**(绝不溢出)。
20
24
  */
21
25
  /** 弹窗宽度(源实现 480,用户 2026-09-29 微调定值)。 */
22
26
  export const PICKER_WIDTH = 480;
@@ -36,6 +40,20 @@ function clamp(value, low, high) {
36
40
  // high 可能小于 low(视口比面板还小时):以 low 为准,宁可贴边也不反向。
37
41
  return Math.min(Math.max(value, low), Math.max(low, high));
38
42
  }
43
+ /**
44
+ * 决定最终落在哪一侧:优先侧够用就守,够不上但对侧更宽敞就翻过去,两边都窄就守原侧交给夹紧。
45
+ *
46
+ * @param preferred 是否落在「正方向」(下方 / 右侧)。
47
+ * @param own 优先那侧的可用空间。
48
+ * @param other 对侧的可用空间。
49
+ * @param min 该侧「够用」的门槛(竖向是 `PICKER_MIN_H`,横向是 `PICKER_MIN_W`)。
50
+ * @returns 最终是否落在正方向。
51
+ */
52
+ function flipSide(preferred, own, other, min) {
53
+ if (own >= min)
54
+ return preferred;
55
+ return other > own ? !preferred : preferred;
56
+ }
39
57
  /**
40
58
  * 算面板盒子。
41
59
  *
@@ -54,7 +72,7 @@ export function placePicker(anchor, viewport, placement = 'auto') {
54
72
  // 旧行为逐字保留:先量上下剩余空间决定展向,高度跟着所选那侧走,横向夹紧。
55
73
  const availBelow = vh - EDGE - (anchor.bottom + GAP);
56
74
  const availAbove = anchor.top - GAP - EDGE;
57
- const below = availBelow >= PICKER_MIN_H || availBelow >= availAbove;
75
+ const below = flipSide(true, availBelow, availAbove, PICKER_MIN_H);
58
76
  const height = Math.max(Math.min(PICKER_MAX_H, below ? availBelow : availAbove), PICKER_MIN_FLOOR);
59
77
  const left = clamp(anchor.left, EDGE, vw - EDGE - fullWidth);
60
78
  const top = below
@@ -64,11 +82,13 @@ export function placePicker(anchor, viewport, placement = 'auto') {
64
82
  }
65
83
  const vertical = placement.startsWith('bottom') || placement.startsWith('top');
66
84
  if (vertical) {
67
- const below = placement.startsWith('bottom');
85
+ const belowAvail = vh - EDGE - (anchor.bottom + GAP);
86
+ const aboveAvail = anchor.top - GAP - EDGE;
68
87
  const startAligned = placement.endsWith('start');
69
- const avail = below
70
- ? vh - EDGE - (anchor.bottom + GAP)
71
- : anchor.top - GAP - EDGE;
88
+ // 优先方位放不下、对侧放得下 ⇒ 翻边;两侧都窄就守住原方位,交给下面的夹紧兜底。
89
+ const prefersBelow = placement.startsWith('bottom');
90
+ const below = flipSide(prefersBelow, prefersBelow ? belowAvail : aboveAvail, prefersBelow ? aboveAvail : belowAvail, PICKER_MIN_H);
91
+ const avail = below ? belowAvail : aboveAvail;
72
92
  const height = Math.max(Math.min(PICKER_MAX_H, avail), PICKER_MIN_FLOOR);
73
93
  const rawLeft = startAligned ? anchor.left : anchor.right - fullWidth;
74
94
  const left = clamp(rawLeft, EDGE, vw - EDGE - fullWidth);
@@ -77,9 +97,12 @@ export function placePicker(anchor, viewport, placement = 'auto') {
77
97
  return round({ left, top, width: fullWidth, height });
78
98
  }
79
99
  // 左右展开:宽度跟着那一侧的实际空间走,高度取视口高度(上下各留 EDGE)。
80
- const toRight = placement.startsWith('right');
81
100
  const startAligned = placement.endsWith('start');
82
- const availW = toRight ? vw - EDGE - (anchor.right + GAP) : anchor.left - GAP - EDGE;
101
+ const rightAvail = vw - EDGE - (anchor.right + GAP);
102
+ const leftAvail = anchor.left - GAP - EDGE;
103
+ const prefersRight = placement.startsWith('right');
104
+ const toRight = flipSide(prefersRight, prefersRight ? rightAvail : leftAvail, prefersRight ? leftAvail : rightAvail, PICKER_MIN_W);
105
+ const availW = toRight ? rightAvail : leftAvail;
83
106
  const width = Math.max(Math.min(PICKER_WIDTH, availW), Math.min(PICKER_MIN_W, Math.max(vw - 2 * EDGE, 0)));
84
107
  const height = Math.min(PICKER_MAX_H, Math.max(vh - 2 * EDGE, 0));
85
108
  const rawLeft = toRight ? anchor.right + GAP : anchor.left - GAP - width;
@@ -1 +1 @@
1
- {"version":3,"file":"picker-placement.js","sourceRoot":"","sources":["../../src/explorer/picker-placement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"picker-placement.js","sourceRoot":"","sources":["../../src/explorer/picker-placement.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ export interface AlertModalProps {
14
14
  confirmText?: string;
15
15
  /** 点遮罩是否关闭(默认 true)。 */
16
16
  closeOnMask?: boolean;
17
+ /** 确认钮加载中(消费方在做异步处理):转圈 + 禁用,并锁死遮罩 / Esc 关闭。 */
18
+ confirmLoading?: boolean;
17
19
  /** 尺寸档(默认 sm 确认框宽度)。 */
18
20
  size?: ModalSize;
19
21
  /** 点击确认 / 遮罩 / Esc 的统一出口(单按钮弹窗,关闭即确认)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"AlertModal.d.ts","sourceRoot":"","sources":["../../src/ui/AlertModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAElD,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAIpD,2CAA2C;AAC3C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AASpE,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wBAAwB;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,wBAAwB;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAkBvE"}
1
+ {"version":3,"file":"AlertModal.d.ts","sourceRoot":"","sources":["../../src/ui/AlertModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAElD,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAIpD,2CAA2C;AAC3C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AASpE,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wBAAwB;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,wBAAwB;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAmBvE"}
@@ -24,9 +24,10 @@ export function AlertModal(props) {
24
24
  size: props.size ?? 'sm',
25
25
  hideHeader: props.title === undefined,
26
26
  closable: false,
27
- closeOnMask: props.closeOnMask,
28
- onClose: props.onConfirm,
29
- footer: h(Button, { variant: 'primary', onClick: () => props.onConfirm?.() }, props.confirmText ?? tt('dialogOk')),
27
+ closeOnMask: props.confirmLoading === true ? false : props.closeOnMask,
28
+ // 加载中锁死关闭路径(遮罩 / Esc 都走 onClose)。
29
+ onClose: props.confirmLoading === true ? undefined : props.onConfirm,
30
+ footer: h(Button, { variant: 'primary', loading: props.confirmLoading === true, onClick: () => props.onConfirm?.() }, props.confirmText ?? tt('dialogOk')),
30
31
  }, props.message ?? null);
31
32
  }
32
33
  //# sourceMappingURL=AlertModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AlertModal.js","sourceRoot":"","sources":["../../src/ui/AlertModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAkB,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAkB,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,CAAC,EAAkB,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAKhD,MAAM,cAAc,GAAkC;IACpD,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;CACX,CAAA;AAoBD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,qBAAqB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IAC/C,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;IAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAA;IACzC,OAAO,CAAC,CACN,KAAK,EACL;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,oCAAoC,QAAQ,EAAE,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxG,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QACxB,UAAU,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS;QACrC,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,SAAS;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC;KACnH,EACD,KAAK,CAAC,OAAO,IAAI,IAAI,CACtB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"AlertModal.js","sourceRoot":"","sources":["../../src/ui/AlertModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAkB,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAkB,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,CAAC,EAAkB,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAKhD,MAAM,cAAc,GAAkC;IACpD,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;CACX,CAAA;AAsBD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,qBAAqB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IAC/C,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;IAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAA;IACzC,OAAO,CAAC,CACN,KAAK,EACL;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,oCAAoC,QAAQ,EAAE,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxG,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QACxB,UAAU,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS;QACrC,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;QACtE,kCAAkC;QAClC,OAAO,EAAE,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;QACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,KAAK,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC;KAC3J,EACD,KAAK,CAAC,OAAO,IAAI,IAAI,CACtB,CAAA;AACH,CAAC"}
@@ -15,6 +15,10 @@ export interface ConfirmModalProps {
15
15
  cancelText?: string;
16
16
  /** 点遮罩是否关闭(默认 true;点了 = 取消)。 */
17
17
  closeOnMask?: boolean;
18
+ /** 确认钮加载中(消费方在做异步处理):转圈 + 禁用。任一钮加载中,整框都不许关。 */
19
+ confirmLoading?: boolean;
20
+ /** 取消钮加载中:同上。 */
21
+ cancelLoading?: boolean;
18
22
  size?: ModalSize;
19
23
  /** 确认回调。 */
20
24
  onConfirm?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmModal.d.ts","sourceRoot":"","sources":["../../src/ui/ConfirmModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAElD,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEpD,uBAAuB;AACvB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE1D,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAsB3E"}
1
+ {"version":3,"file":"ConfirmModal.d.ts","sourceRoot":"","sources":["../../src/ui/ConfirmModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAElD,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEpD,uBAAuB;AACvB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE1D,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAwB3E"}
@@ -10,14 +10,16 @@ export function ConfirmModal(props) {
10
10
  const tt = props.translate ?? t;
11
11
  const tone = props.tone ?? 'primary';
12
12
  const confirmVariant = tone === 'danger' ? 'danger' : tone === 'warning' ? 'warning' : 'primary';
13
+ // 加载中整框锁死:遮罩 / Esc 都走 onClose,置空即封死(✕ 本来就没有)。
14
+ const busy = props.confirmLoading === true || props.cancelLoading === true;
13
15
  return h(Modal, {
14
16
  title: props.title,
15
17
  size: props.size ?? 'sm',
16
18
  hideHeader: props.title === undefined,
17
19
  closable: false,
18
- closeOnMask: props.closeOnMask,
19
- onClose: props.onCancel,
20
- footer: h('div', { style: { display: 'flex', gap: '8px', justifyContent: 'flex-end' } }, h(Button, { variant: 'outline', onClick: () => props.onCancel?.() }, props.cancelText ?? tt('cancel')), h(Button, { variant: confirmVariant, onClick: () => props.onConfirm?.() }, props.confirmText ?? tt('confirm'))),
20
+ closeOnMask: busy ? false : props.closeOnMask,
21
+ onClose: busy ? undefined : props.onCancel,
22
+ footer: h('div', { style: { display: 'flex', gap: '8px', justifyContent: 'flex-end' } }, h(Button, { variant: 'outline', loading: props.cancelLoading === true, onClick: () => props.onCancel?.() }, props.cancelText ?? tt('cancel')), h(Button, { variant: confirmVariant, loading: props.confirmLoading === true, onClick: () => props.onConfirm?.() }, props.confirmText ?? tt('confirm'))),
21
23
  }, props.message ?? null);
22
24
  }
23
25
  //# sourceMappingURL=ConfirmModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmModal.js","sourceRoot":"","sources":["../../src/ui/ConfirmModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAkB,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAkB,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,CAAC,EAAkB,MAAM,kBAAkB,CAAA;AAyBpD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAA;IACpC,MAAM,cAAc,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAChG,OAAO,CAAC,CACN,KAAK,EACL;QACE,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QACxB,UAAU,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS;QACrC,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,QAAQ;QACvB,MAAM,EAAE,CAAC,CACP,KAAK,EACL,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EACtE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EACtG,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAC/G;KACF,EACD,KAAK,CAAC,OAAO,IAAI,IAAI,CACtB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"ConfirmModal.js","sourceRoot":"","sources":["../../src/ui/ConfirmModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAkB,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAkB,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,CAAC,EAAkB,MAAM,kBAAkB,CAAA;AA6BpD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAA;IACpC,MAAM,cAAc,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAChG,8CAA8C;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,KAAK,IAAI,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,CAAA;IAC1E,OAAO,CAAC,CACN,KAAK,EACL;QACE,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QACxB,UAAU,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS;QACrC,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;QAC7C,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;QAC1C,MAAM,EAAE,CAAC,CACP,KAAK,EACL,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EACtE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAC7I,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,KAAK,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CACvJ;KACF,EACD,KAAK,CAAC,OAAO,IAAI,IAAI,CACtB,CAAA;AACH,CAAC"}
@@ -17,14 +17,29 @@ export interface HostDialogHandlers {
17
17
  alert: (opts: HostAlertArgs) => Promise<void>;
18
18
  }
19
19
  export declare function registerHostDialog(handlers: HostDialogHandlers): void;
20
- export type ConfirmOptions = Omit<ConfirmModalProps, 'onConfirm' | 'onCancel'> & {
20
+ /** 点按钮的回调:返回 thenable 即视为「消费方要做异步处理」,弹窗转 loading 并锁死关闭,settle 后再收尾。 */
21
+ type DialogHandler = () => unknown;
22
+ export type ConfirmOptions = Omit<ConfirmModalProps, 'onConfirm' | 'onCancel' | 'confirmLoading' | 'cancelLoading'> & {
21
23
  skin?: 'core' | 'host';
24
+ /** 确认回调;异步期间确认钮转圈、整框不可关,resolve 后按 `true` 关闭,reject 后恢复可点。 */
25
+ onConfirm?: DialogHandler;
26
+ /** 取消 / 遮罩 / Esc 回调;异步语义同 `onConfirm`,resolve 后按 `false` 关闭。 */
27
+ onCancel?: DialogHandler;
22
28
  };
23
- export type AlertOptions = Omit<AlertModalProps, 'onConfirm'> & {
29
+ export type AlertOptions = Omit<AlertModalProps, 'onConfirm' | 'confirmLoading'> & {
24
30
  skin?: 'core' | 'host';
31
+ /** 确认回调(遮罩 / Esc 同一个出口);异步期间转圈并锁死关闭,resolve 后才关。 */
32
+ onConfirm?: DialogHandler;
25
33
  };
26
- /** 命令式确认框:Promise 形式,`true`=确定 / `false`=取消(或点遮罩 / Esc)。`skin:"host"` 走宿主原生 Modal。 */
34
+ /**
35
+ * 命令式确认框:Promise 形式,`true`=确定 / `false`=取消(或点遮罩 / Esc)。`skin:"host"` 走宿主原生 Modal。
36
+ * 回调返回 Promise 时进入 loading(按钮转圈 + 遮罩 / Esc 锁死),settle 后才真正关闭。
37
+ */
27
38
  export declare function confirmModal(opts: ConfirmOptions): Promise<boolean>;
28
- /** 命令式警告框:Promise 在关闭时 resolve(单按钮,关闭即确认)。`skin:"host"` 走宿主原生 Modal。 */
39
+ /**
40
+ * 命令式警告框:Promise 在关闭时 resolve(单按钮,关闭即确认)。`skin:"host"` 走宿主原生 Modal。
41
+ * 回调返回 Promise 时进入 loading(按钮转圈 + 遮罩 / Esc 锁死),settle 后才真正关闭。
42
+ */
29
43
  export declare function alertModal(opts: AlertOptions): Promise<void>;
44
+ export {};
30
45
  //# sourceMappingURL=modal-host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal-host.d.ts","sourceRoot":"","sources":["../../src/ui/modal-host.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAmDxE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AACD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACpD,KAAK,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9C;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAErE;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAC3G,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAE1F,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BnE;AAED,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB5D"}
1
+ {"version":3,"file":"modal-host.d.ts","sourceRoot":"","sources":["../../src/ui/modal-host.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAmDxE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AACD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACpD,KAAK,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9C;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAErE;AAED,uEAAuE;AACvE,KAAK,aAAa,GAAG,MAAM,OAAO,CAAA;AAElC,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,UAAU,GAAG,gBAAgB,GAAG,eAAe,CAAC,GAAG;IACpH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,aAAa,CAAA;CACzB,CAAA;AACD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,gBAAgB,CAAC,GAAG;IACjF,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,oDAAoD;IACpD,SAAS,CAAC,EAAE,aAAa,CAAA;CAC1B,CAAA;AAOD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CA2DnE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD5D"}
@@ -45,7 +45,15 @@ let hostHandlers = null;
45
45
  export function registerHostDialog(handlers) {
46
46
  hostHandlers = handlers;
47
47
  }
48
- /** 命令式确认框:Promise 形式,`true`=确定 / `false`=取消(或点遮罩 / Esc)。`skin:"host"` 走宿主原生 Modal。 */
48
+ function isThenable(value) {
49
+ if (value === null || value === undefined)
50
+ return false;
51
+ return typeof value.then === 'function';
52
+ }
53
+ /**
54
+ * 命令式确认框:Promise 形式,`true`=确定 / `false`=取消(或点遮罩 / Esc)。`skin:"host"` 走宿主原生 Modal。
55
+ * 回调返回 Promise 时进入 loading(按钮转圈 + 遮罩 / Esc 锁死),settle 后才真正关闭。
56
+ */
49
57
  export function confirmModal(opts) {
50
58
  if (opts.skin === 'host') {
51
59
  if (hostHandlers !== null) {
@@ -59,22 +67,59 @@ export function confirmModal(opts) {
59
67
  }
60
68
  console.warn('[dsh-plugin-core] confirmModal skin:"host" 需先引入官方适配层 official.js,已回落到 core 皮肤');
61
69
  }
62
- const { skin: _skin, ...core } = opts;
70
+ const { skin: _skin, onConfirm, onCancel, ...core } = opts;
63
71
  void _skin;
64
72
  return new Promise((resolve) => {
65
73
  const id = ++idSeq;
74
+ const entry = { id, node: null };
75
+ let busy = null;
76
+ let closed = false;
77
+ const draw = () => {
78
+ entry.node = h(ConfirmModal, {
79
+ ...core,
80
+ confirmLoading: busy === 'confirm',
81
+ cancelLoading: busy === 'cancel',
82
+ onConfirm: () => void run('confirm'),
83
+ onCancel: () => void run('cancel'),
84
+ });
85
+ flush();
86
+ };
66
87
  const close = (result) => {
88
+ closed = true;
67
89
  dismiss(id);
68
90
  resolve(result);
69
91
  };
70
- entries.push({
71
- id,
72
- node: h(ConfirmModal, { ...core, onConfirm: () => close(true), onCancel: () => close(false) }),
73
- });
74
- flush();
92
+ const run = async (which) => {
93
+ if (closed || busy !== null)
94
+ return;
95
+ const out = (which === 'confirm' ? onConfirm : onCancel)?.();
96
+ if (!isThenable(out)) {
97
+ close(which === 'confirm');
98
+ return;
99
+ }
100
+ busy = which;
101
+ draw();
102
+ try {
103
+ await out;
104
+ }
105
+ catch (err) {
106
+ // 失败:撤回 loading,框留着让人重试 / 取消;错误照常暴露出来,不吞。
107
+ busy = null;
108
+ draw();
109
+ console.error('[dsh-plugin-core] confirmModal 回调失败,弹窗已恢复可操作:', err);
110
+ return;
111
+ }
112
+ busy = null;
113
+ close(which === 'confirm');
114
+ };
115
+ entries.push(entry);
116
+ draw();
75
117
  });
76
118
  }
77
- /** 命令式警告框:Promise 在关闭时 resolve(单按钮,关闭即确认)。`skin:"host"` 走宿主原生 Modal。 */
119
+ /**
120
+ * 命令式警告框:Promise 在关闭时 resolve(单按钮,关闭即确认)。`skin:"host"` 走宿主原生 Modal。
121
+ * 回调返回 Promise 时进入 loading(按钮转圈 + 遮罩 / Esc 锁死),settle 后才真正关闭。
122
+ */
78
123
  export function alertModal(opts) {
79
124
  if (opts.skin === 'host') {
80
125
  if (hostHandlers !== null) {
@@ -86,16 +131,44 @@ export function alertModal(opts) {
86
131
  }
87
132
  console.warn('[dsh-plugin-core] alertModal skin:"host" 需先引入官方适配层 official.js,已回落到 core 皮肤');
88
133
  }
89
- const { skin: _skin, ...core } = opts;
134
+ const { skin: _skin, onConfirm, ...core } = opts;
90
135
  void _skin;
91
136
  return new Promise((resolve) => {
92
137
  const id = ++idSeq;
138
+ const entry = { id, node: null };
139
+ let busy = false;
140
+ const draw = () => {
141
+ entry.node = h(AlertModal, { ...core, confirmLoading: busy, onConfirm: () => void run() });
142
+ flush();
143
+ };
93
144
  const close = () => {
94
145
  dismiss(id);
95
146
  resolve();
96
147
  };
97
- entries.push({ id, node: h(AlertModal, { ...core, onConfirm: close }) });
98
- flush();
148
+ const run = async () => {
149
+ if (busy)
150
+ return;
151
+ const out = onConfirm?.();
152
+ if (!isThenable(out)) {
153
+ close();
154
+ return;
155
+ }
156
+ busy = true;
157
+ draw();
158
+ try {
159
+ await out;
160
+ }
161
+ catch (err) {
162
+ busy = false;
163
+ draw();
164
+ console.error('[dsh-plugin-core] alertModal 回调失败,弹窗已恢复可操作:', err);
165
+ return;
166
+ }
167
+ busy = false;
168
+ close();
169
+ };
170
+ entries.push(entry);
171
+ draw();
99
172
  });
100
173
  }
101
174
  //# sourceMappingURL=modal-host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal-host.js","sourceRoot":"","sources":["../../src/ui/modal-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modal-host.js","sourceRoot":"","sources":["../../src/ui/modal-host.ts"],"names":[],"mappings":"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"}
@@ -159,8 +159,8 @@ const doc: DocTopic = {
159
159
  type: 'PickPlacement',
160
160
  def: `'auto'`,
161
161
  desc: {
162
- zh: '展开方位八档:`bottom-start` / `bottom-end`(下方,左缘 / 右缘对齐)、`top-start` / `top-end`(上方)、`right-start` / `right-end`(右侧,顶边 / 底边齐平)、`left-start` / `left-end`(左侧);`auto` = 旧行为(下方优先、下方不够翻上方、横向夹紧)。**指定方位后不再自动翻边**,只在超出视口时夹紧——按钮贴着定宽区右边界时用 `bottom-end` / `left-start`',
163
- en: 'Expansion side, eight values: `bottom-start` / `bottom-end` (below, left / right edge aligned), `top-start` / `top-end` (above), `right-start` / `right-end` (right of the trigger, top / bottom edge aligned), `left-start` / `left-end` (left of the trigger); `auto` = old behaviour (below first, flip above when short, clamp horizontally). An explicit side **never auto-flips** — it is only clamped into the viewport, so use `bottom-end` / `left-start` when the trigger sits at the right edge of a fixed-width area',
162
+ zh: '展开方位八档:`bottom-start` / `bottom-end`(下方,左缘 / 右缘对齐)、`top-start` / `top-end`(上方)、`right-start` / `right-end`(右侧,顶边 / 底边齐平)、`left-start` / `left-end`(左侧);`auto` = 旧行为(下方优先、下方不够翻上方、横向夹紧)。方位是**优先**:该侧放得下就照它;放不下而对侧够 ⇒ **自动翻边**(bottom↔top、left↔right,对齐轴不变);两侧都不够才夹紧进视口——按钮贴着定宽区右边界时用 `bottom-end` / `left-start`',
163
+ en: 'Expansion side, eight values: `bottom-start` / `bottom-end` (below, left / right edge aligned), `top-start` / `top-end` (above), `right-start` / `right-end` (right of the trigger, top / bottom edge aligned), `left-start` / `left-end` (left of the trigger); `auto` = old behaviour (below first, flip above when short, clamp horizontally). The side is a **preference**: used when it fits; if it does not fit but the opposite side does, the panel **flips** (bottom↔top, left↔right, same start/end alignment); only when neither fits is it clamped into the viewport — use `bottom-end` / `left-start` when the trigger sits at the right edge of a fixed-width area',
164
164
  },
165
165
  },
166
166
  ],
@@ -84,4 +84,4 @@ await pickWorkspaceFile({ anchor, placement: 'left-start' }) // 左侧、顶
84
84
  | `pickWorkspaceFile(opts)` | `PickWorkspaceFileOptions => Promise<PickedPath \| null>` | — | — | 锚定按钮弹出模态选文件,解析出 `{ path, isDir, workspaceRel?, workspace? }`;`path` 是**绝对路径** | Anchored modal picker resolving `{ path, isDir, workspaceRel?, workspace? }`; `path` is **absolute** |
85
85
  | `opts.anchor` | `HTMLElement` | 是 | — | 模态贴着它弹 | The modal anchors next to it |
86
86
  | `opts.filter` | `PickFilter` | — | — | `exts` 只要这些扩展名(目录仍可展开导航);`dirs: true` 只允许选文件夹(文件不渲染) | `exts` limits files (folders still expand); `dirs: true` picks folders only (files hidden, plus a “Select this folder” action in the crumb bar) |
87
- | `opts.placement` | `PickPlacement` | — | 'auto' | 展开方位八档:`bottom-start` / `bottom-end`(下方,左缘 / 右缘对齐)、`top-start` / `top-end`(上方)、`right-start` / `right-end`(右侧,顶边 / 底边齐平)、`left-start` / `left-end`(左侧);`auto` = 旧行为(下方优先、下方不够翻上方、横向夹紧)。**指定方位后不再自动翻边**,只在超出视口时夹紧——按钮贴着定宽区右边界时用 `bottom-end` / `left-start` | Expansion side, eight values: `bottom-start` / `bottom-end` (below, left / right edge aligned), `top-start` / `top-end` (above), `right-start` / `right-end` (right of the trigger, top / bottom edge aligned), `left-start` / `left-end` (left of the trigger); `auto` = old behaviour (below first, flip above when short, clamp horizontally). An explicit side **never auto-flips** — it is only clamped into the viewport, so use `bottom-end` / `left-start` when the trigger sits at the right edge of a fixed-width area |
87
+ | `opts.placement` | `PickPlacement` | — | 'auto' | 展开方位八档:`bottom-start` / `bottom-end`(下方,左缘 / 右缘对齐)、`top-start` / `top-end`(上方)、`right-start` / `right-end`(右侧,顶边 / 底边齐平)、`left-start` / `left-end`(左侧);`auto` = 旧行为(下方优先、下方不够翻上方、横向夹紧)。方位是**优先**:该侧放得下就照它;放不下而对侧够 ⇒ **自动翻边**(bottom↔top、left↔right,对齐轴不变);两侧都不够才夹紧进视口——按钮贴着定宽区右边界时用 `bottom-end` / `left-start` | Expansion side, eight values: `bottom-start` / `bottom-end` (below, left / right edge aligned), `top-start` / `top-end` (above), `right-start` / `right-end` (right of the trigger, top / bottom edge aligned), `left-start` / `left-end` (left of the trigger); `auto` = old behaviour (below first, flip above when short, clamp horizontally). The side is a **preference**: used when it fits; if it does not fit but the opposite side does, the panel **flips** (bottom↔top, left↔right, same start/end alignment); only when neither fits is it clamped into the viewport — use `bottom-end` / `left-start` when the trigger sits at the right edge of a fixed-width area |
@@ -759,7 +759,7 @@ const doc: DocTopic = {
759
759
  {
760
760
  id: 'ui-feedback',
761
761
  rows: [
762
- { name: 'showToast(message, opts?)', type: '', def: '', desc: { zh: '官方 Sonner 原生(对比 / demo 用)。opts: `{ variant?, durationMs?, color?, onDismiss?, position? }`,6 向定位,明暗跟随宿主', en: 'Raw official Sonner (comparison / demo). opts `{ variant?, durationMs?, color?, onDismiss?, position? }`, 6-way placement, theme follows host' } },
762
+ { name: 'showToast(message, opts?)', type: '', def: '', desc: { zh: '官方 Sonner 原味(轻量原生观感;demo 统一用 notify)。opts: `{ variant?, durationMs?, color?, onDismiss?, position? }`,6 向定位,明暗跟随宿主', en: 'Raw official Sonner flavour (lightweight, native look; the demo standardises on notify). opts `{ variant?, durationMs?, color?, onDismiss?, position? }`, 6-way placement, theme follows host' } },
763
763
  { name: 'notify(message, opts?)', type: '', def: '', desc: { zh: '默认用这个。opts: `{ variant?, description?, durationMs?, position?, actions? }`,actions 用自带 Button(1–2 个)', en: 'Use this by default. opts `{ variant?, description?, durationMs?, position?, actions? }`, actions use our own Button (1–2)' } },
764
764
  { name: 'showHostToast(message, opts?)', type: '', def: '', desc: { zh: '宿主原生 Toast,走 `dsh-plugin-core/ui/host` 子路径。opts: `{ tone?, holdMs?, actions?, onDismiss? }`', en: 'Host-native Toast from the `dsh-plugin-core/ui/host` subpath. opts `{ tone?, holdMs?, actions?, onDismiss? }`' } },
765
765
  { name: 'showLoading(opts?)', type: '', def: '', desc: { zh: '全局加载提示(全局唯一一处),返回 `{ close() }`。opts: `{ text?, variant?: \'toast\' | \'block\', position?, mask?, maskOpacity?, translate? }`;position 默认 bottom-center', en: 'Global loading hint (one spot globally) returning `{ close() }`. opts `{ text?, variant?: \'toast\' | \'block\', position?, mask?, maskOpacity?, translate? }`; position defaults to bottom-center' } },
package/docs/help/ui.md CHANGED
@@ -633,7 +633,7 @@ Modal 是自绘 overlay,不走 react-dom portal。
633
633
 
634
634
  | 参数 | 类型 | 默认 | 说明(zh) | 说明(en) |
635
635
  |---|---|---|---|---|
636
- | `showToast(message, opts?)` | `` | | 官方 Sonner 原生(对比 / demo 用)。opts: `{ variant?, durationMs?, color?, onDismiss?, position? }`,6 向定位,明暗跟随宿主 | Raw official Sonner (comparison / demo). opts `{ variant?, durationMs?, color?, onDismiss?, position? }`, 6-way placement, theme follows host |
636
+ | `showToast(message, opts?)` | `` | | 官方 Sonner 原味(轻量原生观感;demo 统一用 notify)。opts: `{ variant?, durationMs?, color?, onDismiss?, position? }`,6 向定位,明暗跟随宿主 | Raw official Sonner flavour (lightweight, native look; the demo standardises on notify). opts `{ variant?, durationMs?, color?, onDismiss?, position? }`, 6-way placement, theme follows host |
637
637
  | `notify(message, opts?)` | `` | | 默认用这个。opts: `{ variant?, description?, durationMs?, position?, actions? }`,actions 用自带 Button(1–2 个) | Use this by default. opts `{ variant?, description?, durationMs?, position?, actions? }`, actions use our own Button (1–2) |
638
638
  | `showHostToast(message, opts?)` | `` | | 宿主原生 Toast,走 `dsh-plugin-core/ui/host` 子路径。opts: `{ tone?, holdMs?, actions?, onDismiss? }` | Host-native Toast from the `dsh-plugin-core/ui/host` subpath. opts `{ tone?, holdMs?, actions?, onDismiss? }` |
639
639
  | `showLoading(opts?)` | `` | | 全局加载提示(全局唯一一处),返回 `{ close() }`。opts: `{ text?, variant?: 'toast' \| 'block', position?, mask?, maskOpacity?, translate? }`;position 默认 bottom-center | Global loading hint (one spot globally) returning `{ close() }`. opts `{ text?, variant?: 'toast' \| 'block', position?, mask?, maskOpacity?, translate? }`; position defaults to bottom-center |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-plugin-core",
3
- "version": "0.20.8",
3
+ "version": "0.21.0",
4
4
  "packageManager": "pnpm@12.3.4",
5
5
  "description": "Shared base for DSH plugins: design tokens, UI controls, utils, workspace explorer, session preview",
6
6
  "keywords": [