@plasmicpkgs/antd5 0.0.340 → 0.0.341
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/antd.esm.js +25 -29
- package/dist/antd.esm.js.map +1 -1
- package/dist/index.js +25 -29
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/skinny/Form.cjs.js +1 -1
- package/skinny/Form.cjs.js.map +1 -1
- package/skinny/Form.esm.js +1 -1
- package/skinny/Form.esm.js.map +1 -1
- package/skinny/FormItem.cjs.js +2 -2
- package/skinny/FormItem.cjs.js.map +1 -1
- package/skinny/FormItem.esm.js +2 -2
- package/skinny/FormItem.esm.js.map +1 -1
- package/skinny/SchemaForm.cjs.js +2 -2
- package/skinny/SchemaForm.cjs.js.map +1 -1
- package/skinny/SchemaForm.esm.js +2 -2
- package/skinny/SchemaForm.esm.js.map +1 -1
- package/skinny/{react-utils-11b0221a.cjs.js → react-utils-5c964ca3.cjs.js} +2 -2
- package/skinny/{react-utils-11b0221a.cjs.js.map → react-utils-5c964ca3.cjs.js.map} +1 -1
- package/skinny/{react-utils-79d444f6.esm.js → react-utils-d5d2f3f3.esm.js} +2 -2
- package/skinny/{react-utils-79d444f6.esm.js.map → react-utils-d5d2f3f3.esm.js.map} +1 -1
- package/skinny/registerAvatar.cjs.js +1 -1
- package/skinny/registerAvatar.cjs.js.map +1 -1
- package/skinny/registerAvatar.esm.js +1 -1
- package/skinny/registerAvatar.esm.js.map +1 -1
- package/skinny/registerBreadcrumb.cjs.js +2 -3
- package/skinny/registerBreadcrumb.cjs.js.map +1 -1
- package/skinny/registerBreadcrumb.esm.js +2 -3
- package/skinny/registerBreadcrumb.esm.js.map +1 -1
- package/skinny/registerButton.cjs.js +1 -1
- package/skinny/registerButton.esm.js +1 -1
- package/skinny/registerCheckbox.cjs.js +1 -1
- package/skinny/registerCheckbox.esm.js +1 -1
- package/skinny/registerCollapse.cjs.js +1 -1
- package/skinny/registerCollapse.cjs.js.map +1 -1
- package/skinny/registerCollapse.esm.js +1 -1
- package/skinny/registerCollapse.esm.js.map +1 -1
- package/skinny/registerColorPicker.cjs.js +1 -1
- package/skinny/registerColorPicker.esm.js +1 -1
- package/skinny/registerConfigProvider.cjs.js +2 -2
- package/skinny/registerConfigProvider.cjs.js.map +1 -1
- package/skinny/registerConfigProvider.esm.js +2 -2
- package/skinny/registerConfigProvider.esm.js.map +1 -1
- package/skinny/registerDatePicker.cjs.js +1 -1
- package/skinny/registerDatePicker.esm.js +1 -1
- package/skinny/registerDateRangePicker.cjs.js +1 -1
- package/skinny/registerDateRangePicker.cjs.js.map +1 -1
- package/skinny/registerDateRangePicker.esm.js +1 -1
- package/skinny/registerDateRangePicker.esm.js.map +1 -1
- package/skinny/registerDrawer.cjs.js +1 -1
- package/skinny/registerDrawer.cjs.js.map +1 -1
- package/skinny/registerDrawer.esm.js +1 -1
- package/skinny/registerDrawer.esm.js.map +1 -1
- package/skinny/registerDropdown.cjs.js +2 -2
- package/skinny/registerDropdown.cjs.js.map +1 -1
- package/skinny/registerDropdown.esm.js +2 -2
- package/skinny/registerDropdown.esm.js.map +1 -1
- package/skinny/registerForm.cjs.js +2 -2
- package/skinny/registerForm.cjs.js.map +1 -1
- package/skinny/registerForm.esm.js +2 -2
- package/skinny/registerForm.esm.js.map +1 -1
- package/skinny/registerInput.cjs.js +1 -1
- package/skinny/registerInput.esm.js +1 -1
- package/skinny/registerMenu.cjs.js +1 -1
- package/skinny/registerMenu.cjs.js.map +1 -1
- package/skinny/registerMenu.esm.js +1 -1
- package/skinny/registerMenu.esm.js.map +1 -1
- package/skinny/registerModal.cjs.js +4 -7
- package/skinny/registerModal.cjs.js.map +1 -1
- package/skinny/registerModal.esm.js +4 -7
- package/skinny/registerModal.esm.js.map +1 -1
- package/skinny/registerPagination.cjs.js +1 -1
- package/skinny/registerPagination.esm.js +1 -1
- package/skinny/registerPopover.cjs.js +1 -1
- package/skinny/registerPopover.cjs.js.map +1 -1
- package/skinny/registerPopover.esm.js +1 -1
- package/skinny/registerPopover.esm.js.map +1 -1
- package/skinny/registerProgress.cjs.js +3 -5
- package/skinny/registerProgress.cjs.js.map +1 -1
- package/skinny/registerProgress.esm.js +3 -5
- package/skinny/registerProgress.esm.js.map +1 -1
- package/skinny/registerRadio.cjs.js +1 -1
- package/skinny/registerRadio.esm.js +1 -1
- package/skinny/registerRate.cjs.js +1 -1
- package/skinny/registerRate.cjs.js.map +1 -1
- package/skinny/registerRate.esm.js +1 -1
- package/skinny/registerRate.esm.js.map +1 -1
- package/skinny/registerSegmented.cjs.js +1 -1
- package/skinny/registerSegmented.cjs.js.map +1 -1
- package/skinny/registerSegmented.esm.js +1 -1
- package/skinny/registerSegmented.esm.js.map +1 -1
- package/skinny/registerSelect.cjs.js +2 -2
- package/skinny/registerSelect.cjs.js.map +1 -1
- package/skinny/registerSelect.esm.js +2 -2
- package/skinny/registerSelect.esm.js.map +1 -1
- package/skinny/registerSlider.cjs.js +1 -1
- package/skinny/registerSlider.cjs.js.map +1 -1
- package/skinny/registerSlider.esm.js +1 -1
- package/skinny/registerSlider.esm.js.map +1 -1
- package/skinny/registerSteps.cjs.js +1 -1
- package/skinny/registerSteps.esm.js +1 -1
- package/skinny/registerSwitch.cjs.js +1 -1
- package/skinny/registerSwitch.esm.js +1 -1
- package/skinny/registerTable.cjs.js +1 -1
- package/skinny/registerTable.esm.js +1 -1
- package/skinny/registerTabs.cjs.js +2 -3
- package/skinny/registerTabs.cjs.js.map +1 -1
- package/skinny/registerTabs.esm.js +2 -3
- package/skinny/registerTabs.esm.js.map +1 -1
- package/skinny/registerTooltip.cjs.js +1 -1
- package/skinny/registerTooltip.esm.js +1 -1
- package/skinny/registerTree.cjs.js +13 -13
- package/skinny/registerTree.cjs.js.map +1 -1
- package/skinny/registerTree.esm.js +13 -13
- package/skinny/registerTree.esm.js.map +1 -1
- package/skinny/registerUpload.cjs.js +1 -1
- package/skinny/registerUpload.cjs.js.map +1 -1
- package/skinny/registerUpload.esm.js +1 -1
- package/skinny/registerUpload.esm.js.map +1 -1
- package/skinny/{utils-643aac11.esm.js → utils-95007a79.esm.js} +5 -2
- package/skinny/{utils-643aac11.esm.js.map → utils-95007a79.esm.js.map} +1 -1
- package/skinny/{utils-f9a8a256.cjs.js → utils-e792ddf5.cjs.js} +5 -2
- package/skinny/{utils-f9a8a256.cjs.js.map → utils-e792ddf5.cjs.js.map} +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerUpload.esm.js","sources":["../src/registerUpload.tsx"],"sourcesContent":["import { Image, Upload } from \"antd\";\nimport type {\n UploadFile as AntdUploadFile,\n UploadChangeParam,\n UploadProps,\n} from \"antd/es/upload\";\nimport React, { useMemo, useRef, useState } from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\ninterface UploadFile {\n uid: string;\n name: string;\n size?: number;\n type?: string;\n lastModified?: number;\n contents?: string;\n status: AntdUploadFile[\"status\"];\n}\n\ninterface ExtendedUploadProps<T = any> extends UploadProps<T> {\n files?: Array<UploadFile>;\n onFilesChange?: (values: Array<UploadFile>) => void;\n dragAndDropFiles: boolean;\n}\n\nfunction getThumbUrl(file?: UploadFile): string | undefined {\n if (!file?.type?.startsWith(\"image\")) {\n return undefined;\n }\n return `data:${file.type};base64,${file.contents}`;\n}\n\nexport function UploadWrapper(props: ExtendedUploadProps) {\n const { files, dragAndDropFiles, onFilesChange, maxCount, ...rest } = props;\n const filesRef = useRef<Array<UploadFile>>(); // if multiple = true, it facilitates adding multiple files\n\n filesRef.current = files;\n\n const [previewFileId, setPreviewFileId] = useState<string>();\n const [previewOpen, setPreviewOpen] = useState(false);\n\n const handleChange = (info: UploadChangeParam) => {\n const { file } = info;\n\n if (file.status === \"removed\") {\n return;\n }\n\n const metadata = {\n uid: file.uid,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n };\n\n onFilesChange?.([\n ...(filesRef.current ?? []).slice(0, (maxCount || Infinity) - 1),\n {\n ...metadata,\n status: \"uploading\",\n },\n ]);\n\n const reader = new FileReader();\n\n reader.onload = () => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) {\n return;\n }\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n contents: (reader.result as string).replace(\n /^data:[^;]+;base64,/,\n \"\"\n ),\n status: \"done\",\n },\n ]);\n };\n\n reader.onerror = () => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) {\n return;\n }\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n status: \"error\",\n },\n ]);\n };\n\n reader.readAsDataURL(info.file as any);\n };\n\n const handleRemove = (file: UploadFile) => {\n onFilesChange?.((files ?? []).filter((f) => f.uid !== file.uid));\n };\n\n const handlePreview = async (file: AntdUploadFile) => {\n setPreviewFileId(files?.filter((f) => file.uid === f.uid)[0]?.uid);\n setPreviewOpen(true);\n };\n\n const handleCancel = () => setPreviewFileId(undefined);\n\n const previewFile = useMemo(\n () => files?.filter((f) => previewFileId === f.uid)[0],\n [files, previewFileId]\n );\n\n const UploadComponent = useMemo(\n () => (dragAndDropFiles ? Upload.Dragger : Upload),\n [dragAndDropFiles]\n );\n\n return (\n <>\n <UploadComponent\n {...rest}\n fileList={files?.map((f) => ({\n ...f,\n thumbUrl: getThumbUrl(f),\n }))}\n onPreview={handlePreview}\n beforeUpload={() => {\n return false;\n }}\n onChange={(info) => {\n handleChange(info);\n }}\n onRemove={(file) => {\n handleRemove(file as UploadFile);\n }}\n />\n\n {previewFile && (\n <Image\n wrapperStyle={{ display: \"none\" }}\n preview={{\n visible: previewOpen,\n onVisibleChange: (visible) => setPreviewOpen(visible),\n afterOpenChange: (visible) => !visible && handleCancel(),\n }}\n alt={previewFile?.name}\n src={getThumbUrl(previewFile)}\n />\n )}\n </>\n );\n}\n\nUploadWrapper.__plasmicFormFieldMeta = {\n valueProp: \"files\",\n onChangeProp: \"onFilesChange\",\n};\n\nexport function registerUpload(loader?: Registerable) {\n registerComponentHelper(loader, UploadWrapper, {\n name: \"plasmic-antd5-upload\",\n displayName: \"Upload\",\n props: {\n accept: {\n type: \"choice\",\n displayName: \"Allowed types\",\n options: [\n {\n value: \"\",\n label: \"Any kind of file\",\n },\n {\n value: \"image/*\",\n label: \"Image\",\n },\n {\n value: \"video/*\",\n label: \"Video\",\n },\n {\n value: \"audio/*\",\n label: \"Audio\",\n },\n {\n value: \"application/pdf\",\n label: \"PDF\",\n },\n ],\n defaultValue: \"\",\n },\n listType: {\n type: \"choice\",\n options: [\"text\", \"picture\", \"picture-card\", \"picture-circle\"],\n defaultValueHint: \"text\",\n },\n dragAndDropFiles: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.\",\n },\n multiple: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: false,\n description: \"Upload several files at once in modern browsers\",\n },\n files: {\n type: \"object\",\n displayName: \"Files\",\n defaultValue: [],\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Upload\",\n },\n },\n },\n ],\n },\n maxCount: {\n type: \"number\",\n displayName: \"Limit of files\",\n advanced: true,\n },\n onFilesChange: {\n type: \"eventHandler\",\n displayName: \"On file uploaded\",\n argTypes: [\n {\n name: \"files\",\n type: \"array\",\n },\n ],\n },\n showUploadList: {\n type: \"boolean\",\n displayName: \"List files\",\n defaultValue: true,\n },\n },\n states: {\n files: {\n type: \"writable\",\n valueProp: \"files\",\n variableType: \"array\",\n onChangeProp: \"onFilesChange\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerUpload\",\n importName: \"UploadWrapper\",\n });\n}\n"],"names":["_a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerUpload.esm.js","sources":["../src/registerUpload.tsx"],"sourcesContent":["import { Image, Upload } from \"antd\";\nimport type {\n UploadFile as AntdUploadFile,\n UploadChangeParam,\n UploadProps,\n} from \"antd/es/upload\";\nimport React, { useMemo, useRef, useState } from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\ninterface UploadFile {\n uid: string;\n name: string;\n size?: number;\n type?: string;\n lastModified?: number;\n contents?: string;\n status: AntdUploadFile[\"status\"];\n}\n\ninterface ExtendedUploadProps<T = any> extends UploadProps<T> {\n files?: Array<UploadFile>;\n onFilesChange?: (values: Array<UploadFile>) => void;\n dragAndDropFiles: boolean;\n}\n\nfunction getThumbUrl(file?: UploadFile): string | undefined {\n if (!file?.type?.startsWith(\"image\")) {\n return undefined;\n }\n return `data:${file.type};base64,${file.contents}`;\n}\n\nexport function UploadWrapper(props: ExtendedUploadProps) {\n const { files, dragAndDropFiles, onFilesChange, maxCount, ...rest } = props;\n const filesRef = useRef<Array<UploadFile>>(); // if multiple = true, it facilitates adding multiple files\n\n filesRef.current = files;\n\n const [previewFileId, setPreviewFileId] = useState<string>();\n const [previewOpen, setPreviewOpen] = useState(false);\n\n const handleChange = (info: UploadChangeParam) => {\n const { file } = info;\n\n if (file.status === \"removed\") {\n return;\n }\n\n const metadata = {\n uid: file.uid,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n };\n\n onFilesChange?.([\n ...(filesRef.current ?? []).slice(0, (maxCount || Infinity) - 1),\n {\n ...metadata,\n status: \"uploading\",\n },\n ]);\n\n const reader = new FileReader();\n\n reader.onload = () => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) {\n return;\n }\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n contents: (reader.result as string).replace(\n /^data:[^;]+;base64,/,\n \"\"\n ),\n status: \"done\",\n },\n ]);\n };\n\n reader.onerror = () => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) {\n return;\n }\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n status: \"error\",\n },\n ]);\n };\n\n reader.readAsDataURL(info.file as any);\n };\n\n const handleRemove = (file: UploadFile) => {\n onFilesChange?.((files ?? []).filter((f) => f.uid !== file.uid));\n };\n\n const handlePreview = async (file: AntdUploadFile) => {\n setPreviewFileId(files?.filter((f) => file.uid === f.uid)[0]?.uid);\n setPreviewOpen(true);\n };\n\n const handleCancel = () => setPreviewFileId(undefined);\n\n const previewFile = useMemo(\n () => files?.filter((f) => previewFileId === f.uid)[0],\n [files, previewFileId]\n );\n\n const UploadComponent = useMemo(\n () => (dragAndDropFiles ? Upload.Dragger : Upload),\n [dragAndDropFiles]\n );\n\n return (\n <>\n <UploadComponent\n {...rest}\n fileList={files?.map((f) => ({\n ...f,\n thumbUrl: getThumbUrl(f),\n }))}\n onPreview={handlePreview}\n beforeUpload={() => {\n return false;\n }}\n onChange={(info) => {\n handleChange(info);\n }}\n onRemove={(file) => {\n handleRemove(file as UploadFile);\n }}\n />\n\n {previewFile && (\n <Image\n wrapperStyle={{ display: \"none\" }}\n preview={{\n visible: previewOpen,\n onVisibleChange: (visible) => setPreviewOpen(visible),\n afterOpenChange: (visible) => !visible && handleCancel(),\n }}\n alt={previewFile?.name}\n src={getThumbUrl(previewFile)}\n />\n )}\n </>\n );\n}\n\nUploadWrapper.__plasmicFormFieldMeta = {\n valueProp: \"files\",\n onChangeProp: \"onFilesChange\",\n};\n\nexport function registerUpload(loader?: Registerable) {\n registerComponentHelper(loader, UploadWrapper, {\n name: \"plasmic-antd5-upload\",\n displayName: \"Upload\",\n props: {\n accept: {\n type: \"choice\",\n displayName: \"Allowed types\",\n options: [\n {\n value: \"\",\n label: \"Any kind of file\",\n },\n {\n value: \"image/*\",\n label: \"Image\",\n },\n {\n value: \"video/*\",\n label: \"Video\",\n },\n {\n value: \"audio/*\",\n label: \"Audio\",\n },\n {\n value: \"application/pdf\",\n label: \"PDF\",\n },\n ],\n defaultValue: \"\",\n },\n listType: {\n type: \"choice\",\n options: [\"text\", \"picture\", \"picture-card\", \"picture-circle\"],\n defaultValueHint: \"text\",\n },\n dragAndDropFiles: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.\",\n },\n multiple: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: false,\n description: \"Upload several files at once in modern browsers\",\n },\n files: {\n type: \"object\",\n displayName: \"Files\",\n defaultValue: [],\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Upload\",\n },\n },\n },\n ],\n },\n maxCount: {\n type: \"number\",\n displayName: \"Limit of files\",\n advanced: true,\n },\n onFilesChange: {\n type: \"eventHandler\",\n displayName: \"On file uploaded\",\n argTypes: [\n {\n name: \"files\",\n type: \"array\",\n },\n ],\n },\n showUploadList: {\n type: \"boolean\",\n displayName: \"List files\",\n defaultValue: true,\n },\n },\n states: {\n files: {\n type: \"writable\",\n valueProp: \"files\",\n variableType: \"array\",\n onChangeProp: \"onFilesChange\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerUpload\",\n importName: \"UploadWrapper\",\n });\n}\n"],"names":["_a"],"mappings":"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"}
|
|
@@ -3,6 +3,9 @@ import registerGlobalContext from '@plasmicapp/host/registerGlobalContext';
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { Result } from 'antd';
|
|
5
5
|
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
6
9
|
function makeRegisterGlobalContext(component, meta) {
|
|
7
10
|
return function(loader) {
|
|
8
11
|
if (loader) {
|
|
@@ -89,7 +92,7 @@ function arrayEq(xs, ys) {
|
|
|
89
92
|
class ErrorBoundary extends React.Component {
|
|
90
93
|
constructor() {
|
|
91
94
|
super(...arguments);
|
|
92
|
-
this
|
|
95
|
+
__publicField(this, "state", { hasError: false, errorInfo: "" });
|
|
93
96
|
}
|
|
94
97
|
static getDerivedStateFromError(error) {
|
|
95
98
|
return { hasError: true, errorInfo: error.message };
|
|
@@ -165,4 +168,4 @@ function pick(obj, ...paths) {
|
|
|
165
168
|
}
|
|
166
169
|
|
|
167
170
|
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 };
|
|
168
|
-
//# sourceMappingURL=utils-
|
|
171
|
+
//# sourceMappingURL=utils-95007a79.esm.js.map
|
|
@@ -1 +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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"}
|
|
1
|
+
{"version":3,"file":"utils-95007a79.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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"}
|
|
@@ -11,6 +11,9 @@ var registerComponent__default = /*#__PURE__*/_interopDefault(registerComponent)
|
|
|
11
11
|
var registerGlobalContext__default = /*#__PURE__*/_interopDefault(registerGlobalContext);
|
|
12
12
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
13
13
|
|
|
14
|
+
var __defProp = Object.defineProperty;
|
|
15
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
16
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
14
17
|
function makeRegisterGlobalContext(component, meta) {
|
|
15
18
|
return function(loader) {
|
|
16
19
|
if (loader) {
|
|
@@ -97,7 +100,7 @@ function arrayEq(xs, ys) {
|
|
|
97
100
|
class ErrorBoundary extends React__default.default.Component {
|
|
98
101
|
constructor() {
|
|
99
102
|
super(...arguments);
|
|
100
|
-
this
|
|
103
|
+
__publicField(this, "state", { hasError: false, errorInfo: "" });
|
|
101
104
|
}
|
|
102
105
|
static getDerivedStateFromError(error) {
|
|
103
106
|
return { hasError: true, errorInfo: error.message };
|
|
@@ -185,4 +188,4 @@ exports.registerComponentHelper = registerComponentHelper;
|
|
|
185
188
|
exports.setFieldsToUndefined = setFieldsToUndefined;
|
|
186
189
|
exports.traverseReactEltTree = traverseReactEltTree;
|
|
187
190
|
exports.usePrevious = usePrevious;
|
|
188
|
-
//# sourceMappingURL=utils-
|
|
191
|
+
//# sourceMappingURL=utils-e792ddf5.cjs.js.map
|
|
@@ -1 +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":";;;;;;;;;;;;;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,MAAAA,sCAAA,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,IAAAC,kCAAA,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,GAAYC,sBAAM,CAAA,MAAA,CAAsB,KAAS,CAAA,CAAA,CAAA;AAEvD,EAAAA,sBAAA,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,SAAsBA,uBAAM,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,uBAAAA,sBAAA,CAAA,aAAA;AAAA,QAACC,WAAA;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,IAAI,IAAA,WAAA,CAAY,GAAG,CAAG,EAAA;AACpB,MAAA,OAAA;AAAA,KACF;AACA,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
|
+
{"version":3,"file":"utils-e792ddf5.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":";;;;;;;;;;;;;;;;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,MAAAA,sCAAA,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,IAAAC,kCAAA,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,GAAYC,sBAAM,CAAA,MAAA,CAAsB,KAAS,CAAA,CAAA,CAAA;AAEvD,EAAAA,sBAAA,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,SAAsBA,uBAAM,SAGvC,CAAA;AAAA,EAHK,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AAIL,IAAA,aAAA,CAAA,IAAA,EAAA,OAAA,EAAQ,EAAE,QAAA,EAAU,KAAO,EAAA,SAAA,EAAW,EAAG,EAAA,CAAA,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,uBAAAA,sBAAA,CAAA,aAAA;AAAA,QAACC,WAAA;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,IAAI,IAAA,WAAA,CAAY,GAAG,CAAG,EAAA;AACpB,MAAA,OAAA;AAAA,KACF;AACA,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;;;;;;;;;;;;;;;;"}
|