@plasmicpkgs/antd5 0.0.318 → 0.0.320

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.
Files changed (80) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/antd.esm.js +2 -1
  3. package/dist/antd.esm.js.map +1 -1
  4. package/dist/index.js +2 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/utils.d.ts +4 -4
  7. package/package.json +4 -4
  8. package/skinny/Form.cjs.js +1 -1
  9. package/skinny/Form.esm.js +1 -1
  10. package/skinny/FormItem.cjs.js +1 -1
  11. package/skinny/FormItem.esm.js +1 -1
  12. package/skinny/SchemaForm.cjs.js +1 -1
  13. package/skinny/SchemaForm.esm.js +1 -1
  14. package/skinny/registerAvatar.cjs.js +1 -1
  15. package/skinny/registerAvatar.esm.js +1 -1
  16. package/skinny/registerBreadcrumb.cjs.js +1 -1
  17. package/skinny/registerBreadcrumb.esm.js +1 -1
  18. package/skinny/registerButton.cjs.js +1 -1
  19. package/skinny/registerButton.esm.js +1 -1
  20. package/skinny/registerCheckbox.cjs.js +1 -1
  21. package/skinny/registerCheckbox.esm.js +1 -1
  22. package/skinny/registerCollapse.cjs.js +1 -1
  23. package/skinny/registerCollapse.esm.js +1 -1
  24. package/skinny/registerColorPicker.cjs.js +1 -1
  25. package/skinny/registerColorPicker.esm.js +1 -1
  26. package/skinny/registerConfigProvider.cjs.js +1 -1
  27. package/skinny/registerConfigProvider.esm.js +1 -1
  28. package/skinny/registerDatePicker.cjs.js +1 -1
  29. package/skinny/registerDatePicker.esm.js +1 -1
  30. package/skinny/registerDateRangePicker.cjs.js +1 -1
  31. package/skinny/registerDateRangePicker.esm.js +1 -1
  32. package/skinny/registerDrawer.cjs.js +1 -1
  33. package/skinny/registerDrawer.esm.js +1 -1
  34. package/skinny/registerDropdown.cjs.js +1 -1
  35. package/skinny/registerDropdown.esm.js +1 -1
  36. package/skinny/registerForm.cjs.js +1 -1
  37. package/skinny/registerForm.esm.js +1 -1
  38. package/skinny/registerInput.cjs.js +1 -1
  39. package/skinny/registerInput.esm.js +1 -1
  40. package/skinny/registerMenu.cjs.js +1 -1
  41. package/skinny/registerMenu.esm.js +1 -1
  42. package/skinny/registerModal.cjs.js +1 -1
  43. package/skinny/registerModal.esm.js +1 -1
  44. package/skinny/registerPagination.cjs.js +1 -1
  45. package/skinny/registerPagination.esm.js +1 -1
  46. package/skinny/registerPopover.cjs.js +1 -1
  47. package/skinny/registerPopover.esm.js +1 -1
  48. package/skinny/registerProgress.cjs.js +1 -1
  49. package/skinny/registerProgress.esm.js +1 -1
  50. package/skinny/registerRadio.cjs.js +1 -1
  51. package/skinny/registerRadio.esm.js +1 -1
  52. package/skinny/registerRate.cjs.js +1 -1
  53. package/skinny/registerRate.esm.js +1 -1
  54. package/skinny/registerSegmented.cjs.js +1 -1
  55. package/skinny/registerSegmented.esm.js +1 -1
  56. package/skinny/registerSelect.cjs.js +1 -1
  57. package/skinny/registerSelect.esm.js +1 -1
  58. package/skinny/registerSlider.cjs.js +1 -1
  59. package/skinny/registerSlider.esm.js +1 -1
  60. package/skinny/registerSteps.cjs.js +1 -1
  61. package/skinny/registerSteps.esm.js +1 -1
  62. package/skinny/registerSwitch.cjs.js +1 -1
  63. package/skinny/registerSwitch.esm.js +1 -1
  64. package/skinny/registerTable.cjs.js +1 -1
  65. package/skinny/registerTable.esm.js +1 -1
  66. package/skinny/registerTabs.cjs.js +1 -1
  67. package/skinny/registerTabs.esm.js +1 -1
  68. package/skinny/registerTooltip.cjs.js +1 -1
  69. package/skinny/registerTooltip.esm.js +1 -1
  70. package/skinny/registerTree.cjs.js +1 -1
  71. package/skinny/registerTree.esm.js +1 -1
  72. package/skinny/registerUpload.cjs.js +1 -1
  73. package/skinny/registerUpload.esm.js +1 -1
  74. package/skinny/{utils-5ebcaa63.esm.js → utils-643aac11.esm.js} +3 -2
  75. package/skinny/utils-643aac11.esm.js.map +1 -0
  76. package/skinny/{utils-7711f93b.cjs.js → utils-f9a8a256.cjs.js} +3 -2
  77. package/skinny/utils-f9a8a256.cjs.js.map +1 -0
  78. package/skinny/utils.d.ts +4 -4
  79. package/skinny/utils-5ebcaa63.esm.js.map +0 -1
  80. package/skinny/utils-7711f93b.cjs.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  var antd = require('antd');
4
4
  var React = require('react');
5
- var utils = require('./utils-7711f93b.cjs.js');
5
+ var utils = require('./utils-f9a8a256.cjs.js');
6
6
  require('@plasmicapp/host/registerComponent');
7
7
  require('@plasmicapp/host/registerGlobalContext');
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { Table } from 'antd';
2
2
  import React from 'react';
3
- import { b as asArray, r as registerComponentHelper } from './utils-5ebcaa63.esm.js';
3
+ import { b as asArray, r as registerComponentHelper } from './utils-643aac11.esm.js';
4
4
  import '@plasmicapp/host/registerComponent';
5
5
  import '@plasmicapp/host/registerGlobalContext';
6
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var antd = require('antd');
4
4
  var React = require('react');
5
- var utils = require('./utils-7711f93b.cjs.js');
5
+ var utils = require('./utils-f9a8a256.cjs.js');
6
6
  require('@plasmicapp/host/registerComponent');
7
7
  require('@plasmicapp/host/registerGlobalContext');
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { Tabs } from 'antd';
2
2
  import React, { useMemo } from 'react';
3
- import { r as registerComponentHelper, t as traverseReactEltTree } from './utils-5ebcaa63.esm.js';
3
+ import { r as registerComponentHelper, t as traverseReactEltTree } from './utils-643aac11.esm.js';
4
4
  import '@plasmicapp/host/registerComponent';
5
5
  import '@plasmicapp/host/registerGlobalContext';
6
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var antd = require('antd');
5
- var utils = require('./utils-7711f93b.cjs.js');
5
+ var utils = require('./utils-f9a8a256.cjs.js');
6
6
  require('@plasmicapp/host/registerComponent');
7
7
  require('@plasmicapp/host/registerGlobalContext');
8
8
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Tooltip } from 'antd';
3
- import { r as registerComponentHelper } from './utils-5ebcaa63.esm.js';
3
+ import { r as registerComponentHelper } from './utils-643aac11.esm.js';
4
4
  import '@plasmicapp/host/registerComponent';
5
5
  import '@plasmicapp/host/registerGlobalContext';
6
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var antd = require('antd');
4
4
  var React = require('react');
5
- var utils = require('./utils-7711f93b.cjs.js');
5
+ var utils = require('./utils-f9a8a256.cjs.js');
6
6
  require('@plasmicapp/host/registerComponent');
7
7
  require('@plasmicapp/host/registerGlobalContext');
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { Tree } from 'antd';
2
2
  import React, { useState } from 'react';
3
- import { r as registerComponentHelper } from './utils-5ebcaa63.esm.js';
3
+ import { r as registerComponentHelper } from './utils-643aac11.esm.js';
4
4
  import '@plasmicapp/host/registerComponent';
5
5
  import '@plasmicapp/host/registerGlobalContext';
6
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var antd = require('antd');
4
4
  var React = require('react');
5
- var utils = require('./utils-7711f93b.cjs.js');
5
+ var utils = require('./utils-f9a8a256.cjs.js');
6
6
  require('@plasmicapp/host/registerComponent');
7
7
  require('@plasmicapp/host/registerGlobalContext');
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { Upload, Image } from 'antd';
2
2
  import React, { useRef, useState, useMemo } from 'react';
3
- import { r as registerComponentHelper } from './utils-5ebcaa63.esm.js';
3
+ import { r as registerComponentHelper } from './utils-643aac11.esm.js';
4
4
  import '@plasmicapp/host/registerComponent';
5
5
  import '@plasmicapp/host/registerGlobalContext';
6
6
 
@@ -138,8 +138,9 @@ function set(obj, path, value) {
138
138
  let i;
139
139
  for (i = 0; i < keys.length - 1; i++) {
140
140
  const key = keys[i];
141
- if (isUnsafeKey(key))
141
+ if (isUnsafeKey(key)) {
142
142
  return;
143
+ }
143
144
  if (!Object.hasOwn(obj, key)) {
144
145
  if (!isNaN(Number(keys[i + 1]))) {
145
146
  obj[key] = [];
@@ -164,4 +165,4 @@ function pick(obj, ...paths) {
164
165
  }
165
166
 
166
167
  export { ErrorBoundary as E, arrayEq as a, asArray as b, capitalize as c, ensureArray as e, get as g, makeRegisterGlobalContext as m, omit as o, pick as p, registerComponentHelper as r, setFieldsToUndefined as s, traverseReactEltTree as t, usePrevious as u };
167
- //# sourceMappingURL=utils-5ebcaa63.esm.js.map
168
+ //# sourceMappingURL=utils-643aac11.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-643aac11.esm.js","sources":["../src/utils.tsx"],"sourcesContent":["import {\n CodeComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n GlobalContextMeta,\n default as registerGlobalContext,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n\nexport function omit<T extends object>(\n obj: T,\n ...keys: (keyof T)[]\n): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: Partial<T> = {};\n for (const key of Object.keys(obj) as (keyof T)[]) {\n if (!keys.includes(key)) {\n res[key] = obj[key];\n }\n }\n return res;\n}\n\nexport function has<T extends object>(obj: T, keys: (keyof T)[]): boolean {\n if (Object.keys(obj).length === 0) {\n return true;\n }\n for (const key of keys) {\n if (Array.isArray(obj)) {\n const index = parseInt(key as string);\n if (isNaN(index) || index < 0 || index >= obj.length) {\n return false;\n }\n obj = obj[index];\n } else if (typeof obj === \"object\" && obj != null) {\n if (!Object.prototype.hasOwnProperty.call(obj, key) || !(key in obj)) {\n return false;\n }\n obj = obj[key] as T;\n } else {\n return false;\n }\n }\n return true;\n}\n\nexport function usePrevious<T>(value: T | undefined): T | undefined {\n const prevValue = React.useRef<T | undefined>(undefined);\n\n React.useEffect(() => {\n prevValue.current = value;\n\n return () => {\n prevValue.current = undefined;\n };\n });\n\n return prevValue.current;\n}\n\nexport function capitalize(value: string) {\n return value[0].toUpperCase() + value.slice(1);\n}\n\nexport function ensureArray<T>(x: T | T[]): T[] {\n return Array.isArray(x) ? x : [x];\n}\n\nexport function setFieldsToUndefined(obj: any) {\n if (typeof obj === \"object\" && obj !== null) {\n for (const key in obj) {\n if (typeof obj[key] === \"object\") {\n setFieldsToUndefined(obj[key]);\n }\n obj[key] = undefined;\n }\n }\n}\n\nexport function arrayEq(xs: ReadonlyArray<any>, ys: ReadonlyArray<any>) {\n return xs.length === ys.length && xs.every((x, i) => x === ys[i]);\n}\n\n/**\n *\n * Forked from: https://github.com/ant-design/pro-components/blob/master/packages/utils/src/components/ErrorBoundary/index.tsx\n *\n */\nimport { Result } from \"antd\";\nimport type { ErrorInfo } from \"react\";\n\ninterface ErrorBoundaryProps {\n children?: React.ReactNode;\n message?: string;\n canvasEnvId?: number;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n errorInfo: string;\n}\nexport class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n state = { hasError: false, errorInfo: \"\" };\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, errorInfo: error.message };\n }\n\n componentDidCatch(error: any, errorInfo: ErrorInfo) {\n // You can also log the error to an error reporting service\n // eslint-disable-next-line no-console\n console.log(error, errorInfo);\n }\n\n componentDidUpdate(\n prevProps: Readonly<ErrorBoundaryProps>,\n prevState: Readonly<ErrorBoundaryState>\n ) {\n if (\n prevProps.canvasEnvId !== this.props.canvasEnvId &&\n prevState.hasError\n ) {\n this.setState({ hasError: false });\n }\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return (\n <Result\n status=\"error\"\n title={this.props.message ?? \"Something went wrong.\"}\n extra={this.state.errorInfo}\n />\n );\n }\n return this.props.children;\n }\n}\n\n// Forked from https://github.com/acstll/deep-get-set/blob/master/index.js\nfunction isUnsafeKey(key: string | number | symbol) {\n return (\n (Array.isArray(key) && key[0] === \"__proto__\") ||\n key === \"__proto__\" ||\n key === \"constructor\" ||\n key === \"prototype\"\n );\n}\nexport function get(obj: any, path: (string | number | symbol)[] | string) {\n const keys = Array.isArray(path) ? path : path.split(\".\");\n let i;\n for (i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (!obj || !Object.hasOwn(obj, key) || isUnsafeKey(key)) {\n obj = undefined;\n break;\n }\n obj = obj[key];\n }\n return obj;\n}\n\nexport function set(\n obj: any,\n path: (string | number | symbol)[] | string,\n value: any\n) {\n const keys = Array.isArray(path) ? path : path.split(\".\");\n let i;\n for (i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (isUnsafeKey(key)) {\n return;\n }\n if (!Object.hasOwn(obj, key)) {\n if (!isNaN(Number(keys[i + 1]))) {\n obj[key] = [];\n } else {\n obj[key] = {};\n }\n }\n obj = obj[key];\n }\n obj[keys[i]] = value;\n return value;\n}\n\nexport function pick<T extends {}>(\n obj: T,\n ...paths: (string | number | symbol)[][]\n): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: any = {};\n for (const path of paths) {\n set(res, path, get(obj, path));\n }\n return res as Partial<T>;\n}\n"],"names":[],"mappings":"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"}
@@ -146,8 +146,9 @@ function set(obj, path, value) {
146
146
  let i;
147
147
  for (i = 0; i < keys.length - 1; i++) {
148
148
  const key = keys[i];
149
- if (isUnsafeKey(key))
149
+ if (isUnsafeKey(key)) {
150
150
  return;
151
+ }
151
152
  if (!Object.hasOwn(obj, key)) {
152
153
  if (!isNaN(Number(keys[i + 1]))) {
153
154
  obj[key] = [];
@@ -184,4 +185,4 @@ exports.registerComponentHelper = registerComponentHelper;
184
185
  exports.setFieldsToUndefined = setFieldsToUndefined;
185
186
  exports.traverseReactEltTree = traverseReactEltTree;
186
187
  exports.usePrevious = usePrevious;
187
- //# sourceMappingURL=utils-7711f93b.cjs.js.map
188
+ //# sourceMappingURL=utils-f9a8a256.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-f9a8a256.cjs.js","sources":["../src/utils.tsx"],"sourcesContent":["import {\n CodeComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n GlobalContextMeta,\n default as registerGlobalContext,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n\nexport function omit<T extends object>(\n obj: T,\n ...keys: (keyof T)[]\n): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: Partial<T> = {};\n for (const key of Object.keys(obj) as (keyof T)[]) {\n if (!keys.includes(key)) {\n res[key] = obj[key];\n }\n }\n return res;\n}\n\nexport function has<T extends object>(obj: T, keys: (keyof T)[]): boolean {\n if (Object.keys(obj).length === 0) {\n return true;\n }\n for (const key of keys) {\n if (Array.isArray(obj)) {\n const index = parseInt(key as string);\n if (isNaN(index) || index < 0 || index >= obj.length) {\n return false;\n }\n obj = obj[index];\n } else if (typeof obj === \"object\" && obj != null) {\n if (!Object.prototype.hasOwnProperty.call(obj, key) || !(key in obj)) {\n return false;\n }\n obj = obj[key] as T;\n } else {\n return false;\n }\n }\n return true;\n}\n\nexport function usePrevious<T>(value: T | undefined): T | undefined {\n const prevValue = React.useRef<T | undefined>(undefined);\n\n React.useEffect(() => {\n prevValue.current = value;\n\n return () => {\n prevValue.current = undefined;\n };\n });\n\n return prevValue.current;\n}\n\nexport function capitalize(value: string) {\n return value[0].toUpperCase() + value.slice(1);\n}\n\nexport function ensureArray<T>(x: T | T[]): T[] {\n return Array.isArray(x) ? x : [x];\n}\n\nexport function setFieldsToUndefined(obj: any) {\n if (typeof obj === \"object\" && obj !== null) {\n for (const key in obj) {\n if (typeof obj[key] === \"object\") {\n setFieldsToUndefined(obj[key]);\n }\n obj[key] = undefined;\n }\n }\n}\n\nexport function arrayEq(xs: ReadonlyArray<any>, ys: ReadonlyArray<any>) {\n return xs.length === ys.length && xs.every((x, i) => x === ys[i]);\n}\n\n/**\n *\n * Forked from: https://github.com/ant-design/pro-components/blob/master/packages/utils/src/components/ErrorBoundary/index.tsx\n *\n */\nimport { Result } from \"antd\";\nimport type { ErrorInfo } from \"react\";\n\ninterface ErrorBoundaryProps {\n children?: React.ReactNode;\n message?: string;\n canvasEnvId?: number;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n errorInfo: string;\n}\nexport class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n state = { hasError: false, errorInfo: \"\" };\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, errorInfo: error.message };\n }\n\n componentDidCatch(error: any, errorInfo: ErrorInfo) {\n // You can also log the error to an error reporting service\n // eslint-disable-next-line no-console\n console.log(error, errorInfo);\n }\n\n componentDidUpdate(\n prevProps: Readonly<ErrorBoundaryProps>,\n prevState: Readonly<ErrorBoundaryState>\n ) {\n if (\n prevProps.canvasEnvId !== this.props.canvasEnvId &&\n prevState.hasError\n ) {\n this.setState({ hasError: false });\n }\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return (\n <Result\n status=\"error\"\n title={this.props.message ?? \"Something went wrong.\"}\n extra={this.state.errorInfo}\n />\n );\n }\n return this.props.children;\n }\n}\n\n// Forked from https://github.com/acstll/deep-get-set/blob/master/index.js\nfunction isUnsafeKey(key: string | number | symbol) {\n return (\n (Array.isArray(key) && key[0] === \"__proto__\") ||\n key === \"__proto__\" ||\n key === \"constructor\" ||\n key === \"prototype\"\n );\n}\nexport function get(obj: any, path: (string | number | symbol)[] | string) {\n const keys = Array.isArray(path) ? path : path.split(\".\");\n let i;\n for (i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (!obj || !Object.hasOwn(obj, key) || isUnsafeKey(key)) {\n obj = undefined;\n break;\n }\n obj = obj[key];\n }\n return obj;\n}\n\nexport function set(\n obj: any,\n path: (string | number | symbol)[] | string,\n value: any\n) {\n const keys = Array.isArray(path) ? path : path.split(\".\");\n let i;\n for (i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (isUnsafeKey(key)) {\n return;\n }\n if (!Object.hasOwn(obj, key)) {\n if (!isNaN(Number(keys[i + 1]))) {\n obj[key] = [];\n } else {\n obj[key] = {};\n }\n }\n obj = obj[key];\n }\n obj[keys[i]] = value;\n return value;\n}\n\nexport function pick<T extends {}>(\n obj: T,\n ...paths: (string | number | symbol)[][]\n): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: any = {};\n for (const path of paths) {\n set(res, path, get(obj, path));\n }\n return res as Partial<T>;\n}\n"],"names":["registerGlobalContext","registerComponent","React","Result"],"mappings":"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"}
package/skinny/utils.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { ComponentMeta, default as registerComponent } from "@plasmicapp/host/registerComponent";
2
- import { default as registerGlobalContext, GlobalContextMeta } from "@plasmicapp/host/registerGlobalContext";
1
+ import { CodeComponentMeta, default as registerComponent } from "@plasmicapp/host/registerComponent";
2
+ import { GlobalContextMeta, default as registerGlobalContext } from "@plasmicapp/host/registerGlobalContext";
3
3
  import { default as registerToken } from "@plasmicapp/host/registerToken";
4
4
  import React from "react";
5
5
  export type Registerable = {
@@ -7,9 +7,9 @@ export type Registerable = {
7
7
  registerGlobalContext: typeof registerGlobalContext;
8
8
  registerToken: typeof registerToken;
9
9
  };
10
- export declare function makeRegisterComponent<T extends React.ComponentType<any>>(component: T, meta: ComponentMeta<React.ComponentProps<T>>): (loader?: Registerable) => void;
10
+ export declare function makeRegisterComponent<T extends React.ComponentType<any>>(component: T, meta: CodeComponentMeta<React.ComponentProps<T>>): (loader?: Registerable) => void;
11
11
  export declare function makeRegisterGlobalContext<T extends React.ComponentType<any>>(component: T, meta: GlobalContextMeta<React.ComponentProps<T>>): (loader?: Registerable) => void;
12
- export declare function registerComponentHelper<T extends React.ComponentType<any>>(loader: Registerable | undefined, component: T, meta: ComponentMeta<React.ComponentProps<T>>): void;
12
+ export declare function registerComponentHelper<T extends React.ComponentType<any>>(loader: Registerable | undefined, component: T, meta: CodeComponentMeta<React.ComponentProps<T>>): void;
13
13
  type ReactElt = {
14
14
  children: ReactElt | ReactElt[];
15
15
  props: {
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-5ebcaa63.esm.js","sources":["../src/utils.tsx"],"sourcesContent":["import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n\nexport function omit<T extends object>(\n obj: T,\n ...keys: (keyof T)[]\n): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: Partial<T> = {};\n for (const key of Object.keys(obj) as (keyof T)[]) {\n if (!keys.includes(key)) {\n res[key] = obj[key];\n }\n }\n return res;\n}\n\nexport function has<T extends object>(obj: T, keys: (keyof T)[]): boolean {\n if (Object.keys(obj).length === 0) {\n return true;\n }\n for (const key of keys) {\n if (Array.isArray(obj)) {\n const index = parseInt(key as string);\n if (isNaN(index) || index < 0 || index >= obj.length) {\n return false;\n }\n obj = obj[index];\n } else if (typeof obj === \"object\" && obj != null) {\n if (!Object.prototype.hasOwnProperty.call(obj, key) || !(key in obj)) {\n return false;\n }\n obj = obj[key] as T;\n } else {\n return false;\n }\n }\n return true;\n}\n\nexport function usePrevious<T>(value: T | undefined): T | undefined {\n const prevValue = React.useRef<T | undefined>(undefined);\n\n React.useEffect(() => {\n prevValue.current = value;\n\n return () => {\n prevValue.current = undefined;\n };\n });\n\n return prevValue.current;\n}\n\nexport function capitalize(value: string) {\n return value[0].toUpperCase() + value.slice(1);\n}\n\nexport function ensureArray<T>(x: T | T[]): T[] {\n return Array.isArray(x) ? x : [x];\n}\n\nexport function setFieldsToUndefined(obj: any) {\n if (typeof obj === \"object\" && obj !== null) {\n for (const key in obj) {\n if (typeof obj[key] === \"object\") {\n setFieldsToUndefined(obj[key]);\n }\n obj[key] = undefined;\n }\n }\n}\n\nexport function arrayEq(xs: ReadonlyArray<any>, ys: ReadonlyArray<any>) {\n return xs.length === ys.length && xs.every((x, i) => x === ys[i]);\n}\n\n/**\n *\n * Forked from: https://github.com/ant-design/pro-components/blob/master/packages/utils/src/components/ErrorBoundary/index.tsx\n *\n */\nimport { Result } from \"antd\";\nimport type { ErrorInfo } from \"react\";\n\ninterface ErrorBoundaryProps {\n children?: React.ReactNode;\n message?: string;\n canvasEnvId?: number;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n errorInfo: string;\n}\nexport class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n state = { hasError: false, errorInfo: \"\" };\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, errorInfo: error.message };\n }\n\n componentDidCatch(error: any, errorInfo: ErrorInfo) {\n // You can also log the error to an error reporting service\n // eslint-disable-next-line no-console\n console.log(error, errorInfo);\n }\n\n componentDidUpdate(\n prevProps: Readonly<ErrorBoundaryProps>,\n prevState: Readonly<ErrorBoundaryState>\n ) {\n if (\n prevProps.canvasEnvId !== this.props.canvasEnvId &&\n prevState.hasError\n ) {\n this.setState({ hasError: false });\n }\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return (\n <Result\n status=\"error\"\n title={this.props.message ?? \"Something went wrong.\"}\n extra={this.state.errorInfo}\n />\n );\n }\n return this.props.children;\n }\n}\n\n// Forked from https://github.com/acstll/deep-get-set/blob/master/index.js\nfunction isUnsafeKey(key: string | number | symbol) {\n return (\n (Array.isArray(key) && key[0] === \"__proto__\") ||\n key === \"__proto__\" ||\n key === \"constructor\" ||\n key === \"prototype\"\n );\n}\nexport function get(obj: any, path: (string | number | symbol)[] | string) {\n const keys = Array.isArray(path) ? path : path.split(\".\");\n let i;\n for (i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (!obj || !Object.hasOwn(obj, key) || isUnsafeKey(key)) {\n obj = undefined;\n break;\n }\n obj = obj[key];\n }\n return obj;\n}\n\nexport function set(\n obj: any,\n path: (string | number | symbol)[] | string,\n value: any\n) {\n const keys = Array.isArray(path) ? path : path.split(\".\");\n let i;\n for (i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (isUnsafeKey(key)) return;\n if (!Object.hasOwn(obj, key)) {\n if (!isNaN(Number(keys[i + 1]))) {\n obj[key] = [];\n } else {\n obj[key] = {};\n }\n }\n obj = obj[key];\n }\n obj[keys[i]] = value;\n return value;\n}\n\nexport function pick<T extends {}>(\n obj: T,\n ...paths: (string | number | symbol)[][]\n): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: any = {};\n for (const path of paths) {\n set(res, path, get(obj, path));\n }\n return res as Partial<T>;\n}\n"],"names":[],"mappings":";;;;;AA0BgB,SAAA,yBAAA,CACd,WACA,IACA,EAAA;AACA,EAAA,OAAO,SAAU,MAAuB,EAAA;AACtC,IAAA,IAAI,MAAQ,EAAA;AACV,MAAO,MAAA,CAAA,qBAAA,CAAsB,WAAW,IAAI,CAAA,CAAA;AAAA,KACvC,MAAA;AACL,MAAA,qBAAA,CAAsB,WAAW,IAAI,CAAA,CAAA;AAAA,KACvC;AAAA,GACF,CAAA;AACF,CAAA;AAEgB,SAAA,uBAAA,CACd,MACA,EAAA,SAAA,EACA,IACA,EAAA;AACA,EAAA,IAAI,MAAQ,EAAA;AACV,IAAO,MAAA,CAAA,iBAAA,CAAkB,WAAW,IAAI,CAAA,CAAA;AAAA,GACnC,MAAA;AACL,IAAA,iBAAA,CAAkB,WAAW,IAAI,CAAA,CAAA;AAAA,GACnC;AACF,CAAA;AAYgB,SAAA,oBAAA,CACd,UACA,QACA,EAAA;AACA,EAAM,MAAA,GAAA,GAAM,CAAC,IAAuC,KAAA;AAClD,IAAC,CAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CAAI,GAAA,IAAA,GAAO,CAAC,IAAI,CAAA,EAAG,OAAQ,CAAA,CAAC,GAAQ,KAAA;AAlE3D,MAAA,IAAA,EAAA,CAAA;AAmEM,MAAA,IAAI,GAAK,EAAA;AACP,QAAA,QAAA,CAAS,GAAG,CAAA,CAAA;AACZ,QAAA,IAAI,IAAI,QAAU,EAAA;AAChB,UAAA,GAAA,CAAI,IAAI,QAAQ,CAAA,CAAA;AAAA,SAClB;AACA,QAAI,IAAA,CAAA,CAAA,EAAA,GAAA,GAAA,CAAI,UAAJ,IAAW,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,KAAY,IAAI,KAAM,CAAA,QAAA,KAAa,IAAI,QAAU,EAAA;AAC9D,UAAI,GAAA,CAAA,GAAA,CAAI,MAAM,QAAQ,CAAA,CAAA;AAAA,SACxB;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAAA,GACH,CAAA;AACA,EAAA,GAAA,CAAI,QAAe,CAAA,CAAA;AACrB,CAAA;AAEO,SAAS,QAAW,CAA+B,EAAA;AACxD,EAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,CAAG,EAAA;AACpB,IAAO,OAAA,CAAA,CAAA;AAAA,GACT,MAAA,IAAW,KAAK,IAAM,EAAA;AACpB,IAAA,OAAO,EAAC,CAAA;AAAA,GACH,MAAA;AACL,IAAA,OAAO,CAAC,CAAC,CAAA,CAAA;AAAA,GACX;AACF,CAAA;AAEgB,SAAA,IAAA,CACd,QACG,IACS,EAAA;AACZ,EAAA,IAAI,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CAAE,WAAW,CAAG,EAAA;AACjC,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AACA,EAAA,MAAM,MAAkB,EAAC,CAAA;AACzB,EAAA,KAAA,MAAW,GAAO,IAAA,MAAA,CAAO,IAAK,CAAA,GAAG,CAAkB,EAAA;AACjD,IAAA,IAAI,CAAC,IAAA,CAAK,QAAS,CAAA,GAAG,CAAG,EAAA;AACvB,MAAI,GAAA,CAAA,GAAG,CAAI,GAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAAA,KACpB;AAAA,GACF;AACA,EAAO,OAAA,GAAA,CAAA;AACT,CAAA;AAyBO,SAAS,YAAe,KAAqC,EAAA;AAClE,EAAM,MAAA,SAAA,GAAY,KAAM,CAAA,MAAA,CAAsB,KAAS,CAAA,CAAA,CAAA;AAEvD,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,SAAA,CAAU,OAAU,GAAA,KAAA,CAAA;AAEpB,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,CAAU,OAAU,GAAA,KAAA,CAAA,CAAA;AAAA,KACtB,CAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAA,OAAO,SAAU,CAAA,OAAA,CAAA;AACnB,CAAA;AAEO,SAAS,WAAW,KAAe,EAAA;AACxC,EAAA,OAAO,MAAM,CAAC,CAAA,CAAE,aAAgB,GAAA,KAAA,CAAM,MAAM,CAAC,CAAA,CAAA;AAC/C,CAAA;AAEO,SAAS,YAAe,CAAiB,EAAA;AAC9C,EAAA,OAAO,MAAM,OAAQ,CAAA,CAAC,CAAI,GAAA,CAAA,GAAI,CAAC,CAAC,CAAA,CAAA;AAClC,CAAA;AAEO,SAAS,qBAAqB,GAAU,EAAA;AAC7C,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAY,IAAA,GAAA,KAAQ,IAAM,EAAA;AAC3C,IAAA,KAAA,MAAW,OAAO,GAAK,EAAA;AACrB,MAAA,IAAI,OAAO,GAAA,CAAI,GAAG,CAAA,KAAM,QAAU,EAAA;AAChC,QAAqB,oBAAA,CAAA,GAAA,CAAI,GAAG,CAAC,CAAA,CAAA;AAAA,OAC/B;AACA,MAAA,GAAA,CAAI,GAAG,CAAI,GAAA,KAAA,CAAA,CAAA;AAAA,KACb;AAAA,GACF;AACF,CAAA;AAEgB,SAAA,OAAA,CAAQ,IAAwB,EAAwB,EAAA;AACtE,EAAA,OAAO,EAAG,CAAA,MAAA,KAAW,EAAG,CAAA,MAAA,IAAU,EAAG,CAAA,KAAA,CAAM,CAAC,CAAA,EAAG,CAAM,KAAA,CAAA,KAAM,EAAG,CAAA,CAAC,CAAC,CAAA,CAAA;AAClE,CAAA;AAoBa,MAAA,aAAA,SAAsB,MAAM,SAGvC,CAAA;AAAA,EAHK,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AAIL,IAAA,IAAA,CAAA,KAAA,GAAQ,EAAE,QAAA,EAAU,KAAO,EAAA,SAAA,EAAW,EAAG,EAAA,CAAA;AAAA,GAAA;AAAA,EAEzC,OAAO,yBAAyB,KAAc,EAAA;AAC5C,IAAA,OAAO,EAAE,QAAA,EAAU,IAAM,EAAA,SAAA,EAAW,MAAM,OAAQ,EAAA,CAAA;AAAA,GACpD;AAAA,EAEA,iBAAA,CAAkB,OAAY,SAAsB,EAAA;AAGlD,IAAQ,OAAA,CAAA,GAAA,CAAI,OAAO,SAAS,CAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,kBAAA,CACE,WACA,SACA,EAAA;AACA,IAAA,IACE,UAAU,WAAgB,KAAA,IAAA,CAAK,KAAM,CAAA,WAAA,IACrC,UAAU,QACV,EAAA;AACA,MAAA,IAAA,CAAK,QAAS,CAAA,EAAE,QAAU,EAAA,KAAA,EAAO,CAAA,CAAA;AAAA,KACnC;AAAA,GACF;AAAA,EAEA,MAAS,GAAA;AArNX,IAAA,IAAA,EAAA,CAAA;AAsNI,IAAI,IAAA,IAAA,CAAK,MAAM,QAAU,EAAA;AAEvB,MACE,uBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,MAAO,EAAA,OAAA;AAAA,UACP,KAAO,EAAA,CAAA,EAAA,GAAA,IAAA,CAAK,KAAM,CAAA,OAAA,KAAX,IAAsB,GAAA,EAAA,GAAA,uBAAA;AAAA,UAC7B,KAAA,EAAO,KAAK,KAAM,CAAA,SAAA;AAAA,SAAA;AAAA,OACpB,CAAA;AAAA,KAEJ;AACA,IAAA,OAAO,KAAK,KAAM,CAAA,QAAA,CAAA;AAAA,GACpB;AACF,CAAA;AAGA,SAAS,YAAY,GAA+B,EAAA;AAClD,EAAA,OACG,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA,IAAK,GAAI,CAAA,CAAC,CAAM,KAAA,WAAA,IAClC,GAAQ,KAAA,WAAA,IACR,GAAQ,KAAA,aAAA,IACR,GAAQ,KAAA,WAAA,CAAA;AAEZ,CAAA;AACgB,SAAA,GAAA,CAAI,KAAU,IAA6C,EAAA;AACzE,EAAM,MAAA,IAAA,GAAO,MAAM,OAAQ,CAAA,IAAI,IAAI,IAAO,GAAA,IAAA,CAAK,MAAM,GAAG,CAAA,CAAA;AACxD,EAAI,IAAA,CAAA,CAAA;AACJ,EAAA,KAAK,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,IAAA,CAAK,QAAQ,CAAK,EAAA,EAAA;AAChC,IAAM,MAAA,GAAA,GAAM,KAAK,CAAC,CAAA,CAAA;AAClB,IAAI,IAAA,CAAC,GAAO,IAAA,CAAC,MAAO,CAAA,MAAA,CAAO,KAAK,GAAG,CAAA,IAAK,WAAY,CAAA,GAAG,CAAG,EAAA;AACxD,MAAM,GAAA,GAAA,KAAA,CAAA,CAAA;AACN,MAAA,MAAA;AAAA,KACF;AACA,IAAA,GAAA,GAAM,IAAI,GAAG,CAAA,CAAA;AAAA,GACf;AACA,EAAO,OAAA,GAAA,CAAA;AACT,CAAA;AAEgB,SAAA,GAAA,CACd,GACA,EAAA,IAAA,EACA,KACA,EAAA;AACA,EAAM,MAAA,IAAA,GAAO,MAAM,OAAQ,CAAA,IAAI,IAAI,IAAO,GAAA,IAAA,CAAK,MAAM,GAAG,CAAA,CAAA;AACxD,EAAI,IAAA,CAAA,CAAA;AACJ,EAAA,KAAK,IAAI,CAAG,EAAA,CAAA,GAAI,IAAK,CAAA,MAAA,GAAS,GAAG,CAAK,EAAA,EAAA;AACpC,IAAM,MAAA,GAAA,GAAM,KAAK,CAAC,CAAA,CAAA;AAClB,IAAA,IAAI,YAAY,GAAG,CAAA;AAAG,MAAA,OAAA;AACtB,IAAA,IAAI,CAAC,MAAA,CAAO,MAAO,CAAA,GAAA,EAAK,GAAG,CAAG,EAAA;AAC5B,MAAI,IAAA,CAAC,MAAM,MAAO,CAAA,IAAA,CAAK,IAAI,CAAC,CAAC,CAAC,CAAG,EAAA;AAC/B,QAAI,GAAA,CAAA,GAAG,IAAI,EAAC,CAAA;AAAA,OACP,MAAA;AACL,QAAI,GAAA,CAAA,GAAG,IAAI,EAAC,CAAA;AAAA,OACd;AAAA,KACF;AACA,IAAA,GAAA,GAAM,IAAI,GAAG,CAAA,CAAA;AAAA,GACf;AACA,EAAI,GAAA,CAAA,IAAA,CAAK,CAAC,CAAC,CAAI,GAAA,KAAA,CAAA;AACf,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAEgB,SAAA,IAAA,CACd,QACG,KACS,EAAA;AACZ,EAAA,IAAI,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA,CAAE,WAAW,CAAG,EAAA;AACjC,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AACA,EAAA,MAAM,MAAW,EAAC,CAAA;AAClB,EAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,IAAA,GAAA,CAAI,GAAK,EAAA,IAAA,EAAM,GAAI,CAAA,GAAA,EAAK,IAAI,CAAC,CAAA,CAAA;AAAA,GAC/B;AACA,EAAO,OAAA,GAAA,CAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-7711f93b.cjs.js","sources":["../src/utils.tsx"],"sourcesContent":["import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n\nexport function omit<T extends object>(\n obj: T,\n ...keys: (keyof T)[]\n): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: Partial<T> = {};\n for (const key of Object.keys(obj) as (keyof T)[]) {\n if (!keys.includes(key)) {\n res[key] = obj[key];\n }\n }\n return res;\n}\n\nexport function has<T extends object>(obj: T, keys: (keyof T)[]): boolean {\n if (Object.keys(obj).length === 0) {\n return true;\n }\n for (const key of keys) {\n if (Array.isArray(obj)) {\n const index = parseInt(key as string);\n if (isNaN(index) || index < 0 || index >= obj.length) {\n return false;\n }\n obj = obj[index];\n } else if (typeof obj === \"object\" && obj != null) {\n if (!Object.prototype.hasOwnProperty.call(obj, key) || !(key in obj)) {\n return false;\n }\n obj = obj[key] as T;\n } else {\n return false;\n }\n }\n return true;\n}\n\nexport function usePrevious<T>(value: T | undefined): T | undefined {\n const prevValue = React.useRef<T | undefined>(undefined);\n\n React.useEffect(() => {\n prevValue.current = value;\n\n return () => {\n prevValue.current = undefined;\n };\n });\n\n return prevValue.current;\n}\n\nexport function capitalize(value: string) {\n return value[0].toUpperCase() + value.slice(1);\n}\n\nexport function ensureArray<T>(x: T | T[]): T[] {\n return Array.isArray(x) ? x : [x];\n}\n\nexport function setFieldsToUndefined(obj: any) {\n if (typeof obj === \"object\" && obj !== null) {\n for (const key in obj) {\n if (typeof obj[key] === \"object\") {\n setFieldsToUndefined(obj[key]);\n }\n obj[key] = undefined;\n }\n }\n}\n\nexport function arrayEq(xs: ReadonlyArray<any>, ys: ReadonlyArray<any>) {\n return xs.length === ys.length && xs.every((x, i) => x === ys[i]);\n}\n\n/**\n *\n * Forked from: https://github.com/ant-design/pro-components/blob/master/packages/utils/src/components/ErrorBoundary/index.tsx\n *\n */\nimport { Result } from \"antd\";\nimport type { ErrorInfo } from \"react\";\n\ninterface ErrorBoundaryProps {\n children?: React.ReactNode;\n message?: string;\n canvasEnvId?: number;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n errorInfo: string;\n}\nexport class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n state = { hasError: false, errorInfo: \"\" };\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, errorInfo: error.message };\n }\n\n componentDidCatch(error: any, errorInfo: ErrorInfo) {\n // You can also log the error to an error reporting service\n // eslint-disable-next-line no-console\n console.log(error, errorInfo);\n }\n\n componentDidUpdate(\n prevProps: Readonly<ErrorBoundaryProps>,\n prevState: Readonly<ErrorBoundaryState>\n ) {\n if (\n prevProps.canvasEnvId !== this.props.canvasEnvId &&\n prevState.hasError\n ) {\n this.setState({ hasError: false });\n }\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return (\n <Result\n status=\"error\"\n title={this.props.message ?? \"Something went wrong.\"}\n extra={this.state.errorInfo}\n />\n );\n }\n return this.props.children;\n }\n}\n\n// Forked from https://github.com/acstll/deep-get-set/blob/master/index.js\nfunction isUnsafeKey(key: string | number | symbol) {\n return (\n (Array.isArray(key) && key[0] === \"__proto__\") ||\n key === \"__proto__\" ||\n key === \"constructor\" ||\n key === \"prototype\"\n );\n}\nexport function get(obj: any, path: (string | number | symbol)[] | string) {\n const keys = Array.isArray(path) ? path : path.split(\".\");\n let i;\n for (i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (!obj || !Object.hasOwn(obj, key) || isUnsafeKey(key)) {\n obj = undefined;\n break;\n }\n obj = obj[key];\n }\n return obj;\n}\n\nexport function set(\n obj: any,\n path: (string | number | symbol)[] | string,\n value: any\n) {\n const keys = Array.isArray(path) ? path : path.split(\".\");\n let i;\n for (i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (isUnsafeKey(key)) return;\n if (!Object.hasOwn(obj, key)) {\n if (!isNaN(Number(keys[i + 1]))) {\n obj[key] = [];\n } else {\n obj[key] = {};\n }\n }\n obj = obj[key];\n }\n obj[keys[i]] = value;\n return value;\n}\n\nexport function pick<T extends {}>(\n obj: T,\n ...paths: (string | number | symbol)[][]\n): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: any = {};\n for (const path of paths) {\n set(res, path, get(obj, path));\n }\n return res as Partial<T>;\n}\n"],"names":["registerGlobalContext","registerComponent","React","Result"],"mappings":"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"}