@antv/gpt-vis 0.3.4 → 0.4.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.
@@ -8,6 +8,6 @@ export declare function useMapConfig<T extends MapProps>(name: Charts, props: T)
8
8
  mapType: string | undefined;
9
9
  token: string | undefined;
10
10
  } & T;
11
- export declare function useGraphConfig<T extends GraphOptions>(name: Charts, defaultConfig: Partial<T>, props: Partial<T>): {
11
+ export declare function useGraphConfig<T extends Omit<GraphOptions, 'data'>>(name: Charts, defaultConfig: Partial<T>, props: Partial<T>): {
12
12
  [x: string]: any;
13
13
  };
@@ -1,10 +1,19 @@
1
1
  import React from 'react';
2
2
  import type { Options } from 'react-markdown';
3
+ import { useEventPublish } from './hooks/useEvent';
3
4
  export interface GPTVisLiteProps extends Options {
4
- /** 自定义 markdown components样式 */
5
+ /**
6
+ * 自定义 markdown components
7
+ */
5
8
  components?: Options['components'] | {
6
9
  [key: string]: (props: any) => React.ReactNode;
7
10
  };
11
+ /**
12
+ * 🧪 订阅组件事件,实验性属性
13
+ * 用于子组件与容器组件通信
14
+ */
15
+ eventSubs?: Record<string, (data?: any) => void>;
8
16
  }
17
+ export { useEventPublish };
9
18
  declare const _default: React.NamedExoticComponent<GPTVisLiteProps>;
10
19
  export default _default;
@@ -29,21 +29,41 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  // src/GPTVis/Lite.tsx
30
30
  var Lite_exports = {};
31
31
  __export(Lite_exports, {
32
- default: () => Lite_default
32
+ default: () => Lite_default,
33
+ useEventPublish: () => import_useEvent.useEventPublish
33
34
  });
34
35
  module.exports = __toCommonJS(Lite_exports);
36
+ var import_event_emitter = __toESM(require("@antv/event-emitter"));
35
37
  var import_react = __toESM(require("react"));
36
38
  var import_react_markdown = __toESM(require("react-markdown"));
37
39
  var import_rehype_raw = __toESM(require("rehype-raw"));
38
40
  var import_remark_gfm = __toESM(require("remark-gfm"));
41
+ var import_useContext = require("./hooks/useContext");
42
+ var import_useEvent = require("./hooks/useEvent");
39
43
  var GPTVisLite = ({
40
44
  children,
41
45
  components,
42
46
  rehypePlugins,
43
47
  remarkPlugins,
48
+ eventSubs,
44
49
  ...rest
45
50
  }) => {
46
- return /* @__PURE__ */ import_react.default.createElement(
51
+ const eventBus = (0, import_react.useMemo)(() => new import_event_emitter.default(), []);
52
+ const contextValue = (0, import_react.useMemo)(() => ({ eventBus }), [eventBus]);
53
+ (0, import_react.useEffect)(() => {
54
+ if (eventSubs) {
55
+ const events = Object.keys(eventSubs);
56
+ for (const eventName of events) {
57
+ eventBus.on(eventName, eventSubs[eventName]);
58
+ }
59
+ return () => {
60
+ for (const eventName of events) {
61
+ eventBus.off(eventName, eventSubs[eventName]);
62
+ }
63
+ };
64
+ }
65
+ }, [eventBus, eventSubs]);
66
+ return /* @__PURE__ */ import_react.default.createElement(import_useContext.GPTVisContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react.default.createElement(
47
67
  import_react_markdown.default,
48
68
  {
49
69
  components,
@@ -52,6 +72,10 @@ var GPTVisLite = ({
52
72
  ...rest
53
73
  },
54
74
  children
55
- );
75
+ ));
56
76
  };
57
77
  var Lite_default = (0, import_react.memo)(GPTVisLite);
78
+ // Annotate the CommonJS export names for ESM import in node:
79
+ 0 && (module.exports = {
80
+ useEventPublish
81
+ });
@@ -0,0 +1,8 @@
1
+ import type EventEmitter from '@antv/event-emitter';
2
+ import React from 'react';
3
+ type GPTVisContextValue = {
4
+ eventBus: EventEmitter;
5
+ };
6
+ export declare const GPTVisContext: React.Context<GPTVisContextValue>;
7
+ export declare function useGPTVisContext<T = GPTVisContextValue>(): T;
8
+ export {};
@@ -0,0 +1,49 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/GPTVis/hooks/useContext.ts
30
+ var useContext_exports = {};
31
+ __export(useContext_exports, {
32
+ GPTVisContext: () => GPTVisContext,
33
+ useGPTVisContext: () => useGPTVisContext
34
+ });
35
+ module.exports = __toCommonJS(useContext_exports);
36
+ var import_react = __toESM(require("react"));
37
+ var GPTVisContext = import_react.default.createContext(null);
38
+ function useGPTVisContext() {
39
+ const context = import_react.default.useContext(GPTVisContext);
40
+ if (context === void 0 || Object.keys(context).length === 0) {
41
+ throw new Error(`useGPTVisContext must be used within a GPTVisContext.Provider`);
42
+ }
43
+ return context;
44
+ }
45
+ // Annotate the CommonJS export names for ESM import in node:
46
+ 0 && (module.exports = {
47
+ GPTVisContext,
48
+ useGPTVisContext
49
+ });
@@ -0,0 +1 @@
1
+ export declare const useEventPublish: () => (evt: string, ...args: any[]) => void;
@@ -0,0 +1,33 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/GPTVis/hooks/useEvent.ts
20
+ var useEvent_exports = {};
21
+ __export(useEvent_exports, {
22
+ useEventPublish: () => useEventPublish
23
+ });
24
+ module.exports = __toCommonJS(useEvent_exports);
25
+ var import_useContext = require("./useContext");
26
+ var useEventPublish = () => {
27
+ const { eventBus } = (0, import_useContext.useGPTVisContext)();
28
+ return eventBus.emit.bind(eventBus);
29
+ };
30
+ // Annotate the CommonJS export names for ESM import in node:
31
+ 0 && (module.exports = {
32
+ useEventPublish
33
+ });
@@ -7,5 +7,5 @@ export { withChartCode, withDefaultChartCode } from './ChartCodeRender';
7
7
  export type { CodeBlockComponent, WithChartCodeOptions } from './ChartCodeRender/type';
8
8
  export { default as ConfigProvider, type ConfigProviderProps } from './ConfigProvider';
9
9
  export { default as GPTVis, type GPTVisProps } from './GPTVis';
10
- export { default as GPTVisLite, type GPTVisLiteProps } from './GPTVis/Lite';
10
+ export { default as GPTVisLite, useEventPublish, type GPTVisLiteProps } from './GPTVis/Lite';
11
11
  export { default as version } from './version';
package/dist/cjs/index.js CHANGED
@@ -33,6 +33,7 @@ __export(src_exports, {
33
33
  ConfigProvider: () => import_ConfigProvider.default,
34
34
  GPTVis: () => import_GPTVis.default,
35
35
  GPTVisLite: () => import_Lite.default,
36
+ useEventPublish: () => import_Lite.useEventPublish,
36
37
  version: () => import_version.default,
37
38
  withChartCode: () => import_ChartCodeRender.withChartCode,
38
39
  withDefaultChartCode: () => import_ChartCodeRender.withDefaultChartCode
@@ -50,6 +51,7 @@ var import_version = __toESM(require("./version"));
50
51
  ConfigProvider,
51
52
  GPTVis,
52
53
  GPTVisLite,
54
+ useEventPublish,
53
55
  version,
54
56
  withChartCode,
55
57
  withDefaultChartCode,
@@ -1,2 +1,2 @@
1
- declare const _default: "0.3.4";
1
+ declare const _default: "0.4.0";
2
2
  export default _default;
@@ -22,4 +22,4 @@ __export(version_exports, {
22
22
  default: () => version_default
23
23
  });
24
24
  module.exports = __toCommonJS(version_exports);
25
- var version_default = "0.3.4";
25
+ var version_default = "0.4.0";
@@ -8,6 +8,6 @@ export declare function useMapConfig<T extends MapProps>(name: Charts, props: T)
8
8
  mapType: string | undefined;
9
9
  token: string | undefined;
10
10
  } & T;
11
- export declare function useGraphConfig<T extends GraphOptions>(name: Charts, defaultConfig: Partial<T>, props: Partial<T>): {
11
+ export declare function useGraphConfig<T extends Omit<GraphOptions, 'data'>>(name: Charts, defaultConfig: Partial<T>, props: Partial<T>): {
12
12
  [x: string]: any;
13
13
  };
@@ -1,10 +1,19 @@
1
1
  import React from 'react';
2
2
  import type { Options } from 'react-markdown';
3
+ import { useEventPublish } from './hooks/useEvent';
3
4
  export interface GPTVisLiteProps extends Options {
4
- /** 自定义 markdown components样式 */
5
+ /**
6
+ * 自定义 markdown components
7
+ */
5
8
  components?: Options['components'] | {
6
9
  [key: string]: (props: any) => React.ReactNode;
7
10
  };
11
+ /**
12
+ * 🧪 订阅组件事件,实验性属性
13
+ * 用于子组件与容器组件通信
14
+ */
15
+ eventSubs?: Record<string, (data?: any) => void>;
8
16
  }
17
+ export { useEventPublish };
9
18
  declare const _default: React.NamedExoticComponent<GPTVisLiteProps>;
10
19
  export default _default;
@@ -1,21 +1,51 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- var _excluded = ["children", "components", "rehypePlugins", "remarkPlugins"];
5
- import React, { memo } from 'react';
4
+ var _excluded = ["children", "components", "rehypePlugins", "remarkPlugins", "eventSubs"];
5
+ import EventEmitter from '@antv/event-emitter';
6
+ import React, { memo, useEffect, useMemo } from 'react';
6
7
  import Markdown from 'react-markdown';
7
8
  import rehypeRaw from 'rehype-raw';
8
9
  import remarkGfm from 'remark-gfm';
10
+ import { GPTVisContext } from "./hooks/useContext";
11
+ import { useEventPublish } from "./hooks/useEvent";
9
12
  var GPTVisLite = function GPTVisLite(_ref) {
10
13
  var children = _ref.children,
11
14
  components = _ref.components,
12
15
  rehypePlugins = _ref.rehypePlugins,
13
16
  remarkPlugins = _ref.remarkPlugins,
17
+ eventSubs = _ref.eventSubs,
14
18
  rest = _objectWithoutProperties(_ref, _excluded);
15
- return /*#__PURE__*/React.createElement(Markdown, _extends({
19
+ var eventBus = useMemo(function () {
20
+ return new EventEmitter();
21
+ }, []);
22
+ var contextValue = useMemo(function () {
23
+ return {
24
+ eventBus: eventBus
25
+ };
26
+ }, [eventBus]);
27
+ useEffect(function () {
28
+ if (eventSubs) {
29
+ var events = Object.keys(eventSubs);
30
+ for (var _i = 0, _events = events; _i < _events.length; _i++) {
31
+ var eventName = _events[_i];
32
+ eventBus.on(eventName, eventSubs[eventName]);
33
+ }
34
+ return function () {
35
+ for (var _i2 = 0, _events2 = events; _i2 < _events2.length; _i2++) {
36
+ var _eventName = _events2[_i2];
37
+ eventBus.off(_eventName, eventSubs[_eventName]);
38
+ }
39
+ };
40
+ }
41
+ }, [eventBus, eventSubs]);
42
+ return /*#__PURE__*/React.createElement(GPTVisContext.Provider, {
43
+ value: contextValue
44
+ }, /*#__PURE__*/React.createElement(Markdown, _extends({
16
45
  components: components,
17
46
  rehypePlugins: [rehypeRaw].concat(_toConsumableArray(rehypePlugins ? rehypePlugins : [])),
18
47
  remarkPlugins: [remarkGfm].concat(_toConsumableArray(remarkPlugins ? remarkPlugins : []))
19
- }, rest), children);
48
+ }, rest), children));
20
49
  };
50
+ export { useEventPublish };
21
51
  export default /*#__PURE__*/memo(GPTVisLite);
@@ -0,0 +1,8 @@
1
+ import type EventEmitter from '@antv/event-emitter';
2
+ import React from 'react';
3
+ type GPTVisContextValue = {
4
+ eventBus: EventEmitter;
5
+ };
6
+ export declare const GPTVisContext: React.Context<GPTVisContextValue>;
7
+ export declare function useGPTVisContext<T = GPTVisContextValue>(): T;
8
+ export {};
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export var GPTVisContext = /*#__PURE__*/React.createContext(null);
3
+ export function useGPTVisContext() {
4
+ var context = React.useContext(GPTVisContext);
5
+ if (context === undefined || Object.keys(context).length === 0) {
6
+ throw new Error("useGPTVisContext must be used within a GPTVisContext.Provider");
7
+ }
8
+ return context;
9
+ }
@@ -0,0 +1 @@
1
+ export declare const useEventPublish: () => (evt: string, ...args: any[]) => void;
@@ -0,0 +1,6 @@
1
+ import { useGPTVisContext } from "./useContext";
2
+ export var useEventPublish = function useEventPublish() {
3
+ var _useGPTVisContext = useGPTVisContext(),
4
+ eventBus = _useGPTVisContext.eventBus;
5
+ return eventBus.emit.bind(eventBus);
6
+ };
@@ -7,5 +7,5 @@ export { withChartCode, withDefaultChartCode } from './ChartCodeRender';
7
7
  export type { CodeBlockComponent, WithChartCodeOptions } from './ChartCodeRender/type';
8
8
  export { default as ConfigProvider, type ConfigProviderProps } from './ConfigProvider';
9
9
  export { default as GPTVis, type GPTVisProps } from './GPTVis';
10
- export { default as GPTVisLite, type GPTVisLiteProps } from './GPTVis/Lite';
10
+ export { default as GPTVisLite, useEventPublish, type GPTVisLiteProps } from './GPTVis/Lite';
11
11
  export { default as version } from './version';
package/dist/esm/index.js CHANGED
@@ -8,5 +8,5 @@ export * from "./types";
8
8
  export { withChartCode, withDefaultChartCode } from "./ChartCodeRender";
9
9
  export { default as ConfigProvider } from "./ConfigProvider";
10
10
  export { default as GPTVis } from "./GPTVis";
11
- export { default as GPTVisLite } from "./GPTVis/Lite";
11
+ export { default as GPTVisLite, useEventPublish } from "./GPTVis/Lite";
12
12
  export { default as version } from "./version";
@@ -1,2 +1,2 @@
1
- declare const _default: "0.3.4";
1
+ declare const _default: "0.4.0";
2
2
  export default _default;
@@ -1 +1 @@
1
- export default '0.3.4';
1
+ export default '0.4.0';