{"_id":"@alicloud/xconsole-rc-dialog2","name":"@alicloud/xconsole-rc-dialog2","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@alicloud/xconsole-rc-dialog2","version":"1.0.0","description":"Dialog2 - 取缔 Fusion Dialog、Drawer，和以前的 SlidePanel、Confirm 等一切","sideEffects":false,"license":"MIT","main":"build/cjs/index.js","module":"build/esm/index.js","types":"build/types/index.d.ts","author":{"name":"jianchun.wjc","email":"jianchun.wjc@alibaba-inc.com"},"publishConfig":{"access":"public"},"keywords":[],"devDependencies":{"@alicloud/console-toolkit-cli":"^1.2.30","@alicloud/console-toolkit-preset-component":"^1.2.61","@alicloud/console-base-demo-helper-top-nav":"^1.1.8","@alicloud/demo-rc-elements":"^1.11.5","@alicloud/ts-config":"^1.1.2","@types/react":"^17.0.48","@types/react-dom":"^17.0.17","@types/styled-components":"^5.1.26","react":"^17.0.2","react-dom":"^17.0.1","styled-components":"^5.3.8","typescript":"^4.9.5"},"peerDependencies":{"react":">=16.8","react-dom":">=16.8"},"dependencies":{"@alicloud/console-base-rc-dialog":"^1.10.2"},"gitHead":"b5e41ce23c3cdfc3b0cbfeb57fac1e3c736a43bd","scripts":{"start":"breezr start-storybook","test":"breezr test:unit","clean":"rm -rf build","build":"npm run build:esm && npm run build:cjs && npm run build:bundle && npm run build:typings","build:esm":"breezr build --engine babel --es-module","build:cjs":"breezr build --engine babel","build:bundle":"breezr build --engine webpack","build:typings":"tsc --outDir build/types --declaration --emitDeclarationOnly"},"_id":"@alicloud/xconsole-rc-dialog2@1.0.0","_integrity":"sha512-DHVV9uXUYs23SosAoUQyQLXbVKHevuAeFQDtaFyyFAMrntdaD6hwdJmNXZ9czqplnx5MVKnFPg4hWYhTK07yGg==","_resolved":"/private/var/folders/fh/fjnt47r94lz_ctjrvv4cwh3c0000gp/T/4cb3c15336bc21b2cad80bc13d460e38/alicloud-xconsole-rc-dialog2-1.0.0.tgz","_from":"file:alicloud-xconsole-rc-dialog2-1.0.0.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-DHVV9uXUYs23SosAoUQyQLXbVKHevuAeFQDtaFyyFAMrntdaD6hwdJmNXZ9czqplnx5MVKnFPg4hWYhTK07yGg==","shasum":"c84fddfa91b42bc6546ca2fa7914fc8c4fa2f723","tarball":"https://registry.npmjs.org/@alicloud/xconsole-rc-dialog2/-/xconsole-rc-dialog2-1.0.0.tgz","fileCount":8,"unpackedSize":234523,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIClZ+czvy4y3hzSNVHKQTDpyQ617YJ1os3Ri9Hgy20deAiEAvDpdFcdo4E9z8ApF+zwVhozyiV1oKCqR+6F97bBBNRI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBYwQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrPyRAAij41MmzRVzIl4O8yPtpB/Ix82RhqRff5CpsnYLYUXdpBtXbY\r\nhA1dRAvG7Ivgb7PvkKQkQ4+32zum5qewEA4iKlt741LcPTxjTb1CFDE8D3zF\r\nmtRoCkoeELFETNBIpbdIJRval5TilOETPeZtmStBE1DC7PIDvl87PF/FBYJi\r\nb9UtQflIb6e4BFvU8mljteLJGab87vu2Vixpjg7UU17SlbBTyKm5r7qqvt+p\r\nuqzFKbSUzqArzCFZSWOH1jxi0/EipYJcNZ/nLFMxUh3kTGglEzLB2QcyQvey\r\nN/xpK2W4xGTEZkMvvAWUSCvadnlAXJJLFu8xIPCkOBQ3pLc7bLh+36HmVmfa\r\nd81FAmaaP4w30YIDBEtd56tHVd103KKtpIJABjZ7b/XAxqmzhpjMjMSqx4KO\r\nnPOmrmRPkhK+DyFvkwlbVqqF9fiAoOLvUBXJEdCdrbyAYXFxmJDZiembK86E\r\n1tzkt88sv4+QM5PX34imdJShJGuVNxpZt8lQObcYNux6GaA/ysJBFySJ5Lc3\r\npIWkWMlE61MsCwuzPH/8SkTbFv+L73wwzjDLGxKswm1kqeZ8AlBHPBG0A7Aw\r\nI/+3jKkh0rUF7gi9sSZXydiiAJwbE/ihHyU4UDjHngIag3Xez1wqRCGhTCsL\r\nzcpkkdt7yLKYmOEhA0eWJ7Qv7J5IC3777dc=\r\n=0erV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"console-fe","email":"console-fe@alibabacloud.com"},"directories":{},"maintainers":[{"name":"jacksontian","email":"shyvo1987@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"pagecao","email":"cpj1106@gmail.com"},{"name":"aliyunsdkteam","email":"sdk-team@alibabacloud.com"},{"name":"console-fe","email":"console-fe@alibabacloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/xconsole-rc-dialog2_1.0.0_1678085136743_0.9223444297807524"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-06T06:45:36.683Z","1.0.0":"2023-03-06T06:45:36.889Z","modified":"2023-03-06T06:45:37.058Z"},"maintainers":[{"name":"jacksontian","email":"shyvo1987@gmail.com"},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"pagecao","email":"cpj1106@gmail.com"},{"name":"aliyunsdkteam","email":"sdk-team@alibabacloud.com"},{"name":"console-fe","email":"console-fe@alibabacloud.com"}],"description":"Dialog2 - 取缔 Fusion Dialog、Drawer，和以前的 SlidePanel、Confirm 等一切","keywords":[],"author":{"name":"jianchun.wjc","email":"jianchun.wjc@alibaba-inc.com"},"license":"MIT","readme":"# @alicloud/xconsole-rc-dialog2\n\n对 [@alicloud/console-base-rc-dialog] 的 XConsole UI 转接。\n\n有了它，Fusion Dialog、SlidePanel 等都可以不需要了。\n\n绝对好用，任何问题联系 @驳是。\n\n## 简介\n\n### 引入\n\nXConsole 3 的用户，这样使用：\n\n```typescript\nimport {\n  Dialog2\n} from '@alicloud/xconsole';\n```\n\n非 XConsole 的用户，建议直接使用 [@alicloud/console-base-rc-dialog]。\n\n### 输出\n\n总的输出是 Dialog2 组件，它上边挂载了一些静态组件、方法和 hook，如下\n\n```text\n// 默认输出组件\nDialog2\n ├── AltWrap\n ├── openIndirect\n ├── open\n ├── slide\n ├── slideUp\n ├── alert\n ├── confirm\n ├── prompt\n └── useDialog\n// 枚举\nDialog2Mode\nDialog2Size\n// 类型\nDialog2IndirectPromise\nDialog2Props\nDialog2AlertProps\nDialog2ConfirmProps\nDialog2PromptProps\nDialog2ButtonProps\nDialog2AlertExtra\nDialog2ConfirmExtra\nDialog2PromptExtra\n```\n\n## 如何使用\n\n你可以当成组件来使用，但你需要自己控制是否渲染它。通常作为一次性消费品来说，这很不好用。更多的是建议用这边封装好的便捷方法：\n\n* `openIndirect` - 高阶用法，用于将多个 Dialog 合并为一个 Dialog 的场景，比如控制台下的 ErrorPrompt 就是用的它\n* `open` - 打开一个 Dialog，在关闭后返回 Promise，可以指定 Promise 的返回值，也可以用 mode 指定展示模式\n* `slide` - 右侧抽屉\n* `slideUp` - 从页面底部出来的抽屉\n* `alert` - `window.alert` 的替代，返回 `Promise<void>`，比只能传对象的 Fusion 好用\n* `confirm` - `window.confirm` 的替代，返回 `Promise<boolean>`，比只能传对象的 Fusion 好用\n* `prompt` - `window.prompt` 的替代，返回 `Promise<string>`，比只能传对象的 Fusion 好用\n\n### 重点介绍 - `useDialog`\n\n在 Dialog 的内容组件中，可以通过它获得与 Dialog 交互的能力，可以用来做以下事情：\n\n* 锁定、解锁 Dialog，使其可以短期无法被关闭\n* 关闭 Dialog（将解决 Promise）\n* 更新 Dialog 的内容、按钮等\n* 强制更新 Dialog，如更新 data 之后需要让 Dialog 重新渲染\n\n## FAQ\n\n### ok、cancel、onOk、onCancel？\n\n没有，不需要。默认，你只需要写一个 button 的 label 即可，点击后会关掉 Dialog（这解决了你 75% 的工作），你也可以在 `buttons` 的 `onClick` 里处理有关的事情，然后选择是否关闭 Dialog。\n总的来说，Dialog 没有 ok 或 cancel 这一说，对它来说，是 buttons，从而也没有 onOk、onCancel，这样的局限性太大了。\n\n### 可否以组件的形式使用？\n\n当然可以，毫无压力。\n\n### 内容与 Dialog 如何交互？\n\n内容组件以 `props.content` 传递给 Dialog，在内容组件中通过 `useDialog` 可以获得与 Dialog 交互的句柄，`useDialog()` 得到以下对象：\n\n```typescript\nexport interface IContextForContent<R = void, D = TDialogData> {\n  data: D; // 存于 dialog 上的自定义数据\n  focus(): void; // 触发默认的 focus，比如在 content 发生变化后，可以用它来使 conetnt 中的默认元素获得焦点\n  resetScrollTop(): void; // content 发生变化后，可以重置滚动\n  lock: TDispatchLock; // 锁住 Dialog，使其无论如何不可能被关闭，`lock(true)` 可以给默认按钮一个 loading 效果\n  unlock(): void; // 解锁，lock 后必须 unlock\n  update: TDispatchUpdateProps<R, D>; // 更新 Dialog 整体\n  updateData: TDispatchUpdateData<D>; // 更新自定义数据，会触发重新 render\n  forceUpdate(): void; // 强制重新 render，有的时候需要\n  close: TFnCloseWithResult<R>; // 关闭 Dialog，将触发 Promise Resolve\n}\n```\n\n[@alicloud/console-base-rc-dialog]: https://npmjs.com/package/@alicloud/console-base-rc-dialog\n","readmeFilename":"README.md"}