sanity-plugin-bynder-input
5.0.25.0.3
dist/index.js.map~
dist/index.js.mapModified+1−1
Index: package/dist/index.js.map
===================================================================
--- package/dist/index.js.map
+++ package/dist/index.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.js","names":["CompactViewProps","PortalConfig","AdditionalInfo","Box","Button","Flex","useState","lazy","useTransition","ObjectInputProps","PatchEvent","set","unset","BynderAssetOptions","BynderAssetValue","VideoPlayer","BynderModalLayout","BynderConfig","portalConfig","compactViewOptions","Omit","persistRawFields","BynderInputProps","pluginConfig","getPreviewUrl","asset","Record","addInfo","url","getVideoUrl","original","getAspectRatio","dimensions","width","height","getVideoAspectRatio","previewImageUrl","Promise","resolve","reject","img","Image","onload","onerror","err","src","BynderInput","props","$","_c","value","readOnly","schemaType","onChange","isOpen","setIsOpen","fieldOptions","options","t0","assetTypes","map","_temp","t1","assetFilter","t2","t3","from","removeValue","t4","name","_key","assets","webImage","files","aspectRatio","undefined","mediaData","_type","id","databaseId","type","description","previewUrl","previewImg","datUrl","transformBaseUrl","videoUrl","selectedUrl","selectedFile","then","ratio","catch","console","error","onSuccess","preview","t5","t6","t7","Symbol","for","maxHeight","loading","startTransition","shouldLoad","setShouldLoad","openCompactView","closeCompactView","cursor","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t","toUpperCase","Flex","DiffFromTo","SchemaType","ComponentProps","value","Component","t0","$","_c","previewUrl","previewImg","t1","t2","Symbol","for","objectFit","margin","maxWidth","maxHeight","t3","DiffProps","diff","schemaType","BynderDiff","defineType","ObjectDefinition","ObjectOptions","BynderDiff","bynderAssetSchemaName","BynderAssetType","BynderAssetFilterJson","assetType_in","collectionId","metapropertyOptionId_in","searchTerm","tagNames_in","isLimitedUse","showToolbar","BynderAssetOptions","assetTypes","assetFilter","persistRawFields","BynderAssetDefinition","Omit","type","options","IntrinsicDefinitions","BynderAssetValue","_type","_key","id","name","databaseId","previewUrl","previewImg","datUrl","description","aspectRatio","videoUrl","selectedUrl","width","height","key","bynderAssetSchema","title","fields","components","diff","definePlugin","Plugin","isObjectInputProps","SchemaType","BynderInput","BynderConfig","bynderAssetSchema","BynderAssetValue","bynderInputPlugin","Partial","config","reqConfig","portalConfig","url","compactViewOptions","language","persistRawFields","name","schema","types","form","components","input","props","isType","schemaType","value","renderDefault","type"],"sources":["../src/components/BynderInput.tsx","../src/components/BynderDiff.tsx","../src/schema/bynder.asset.ts","../src/plugin.tsx"],"sourcesContent":["import type {CompactViewProps, PortalConfig, AdditionalInfo} from '@bynder/compact-view'\nimport {Box, Button, Flex} from '@sanity/ui'\nimport {useState, lazy, useTransition} from 'react'\nimport {type ObjectInputProps, PatchEvent, set, unset} from 'sanity'\n\nimport type {BynderAssetOptions, BynderAssetValue} from '../schema/bynder.asset'\n\nimport './BynderInput.css'\n\nconst VideoPlayer = lazy(() => import('./VideoPlayer'))\nconst BynderModalLayout = lazy(() => import('./BynderModalLayout'))\n\nexport interface BynderConfig {\n portalConfig: PortalConfig\n compactViewOptions: Omit<CompactViewProps, 'onSuccess'>\n /**\n * Studio-wide default for whether the full raw Bynder asset payload is\n * persisted onto documents (in addition to the canonical schema fields).\n * Field-level `persistRawFields` in `BynderAssetOptions` overrides this.\n * Defaults to `true` to preserve existing behavior.\n */\n persistRawFields?: boolean\n}\n\nexport interface BynderInputProps extends ObjectInputProps<BynderAssetValue> {\n pluginConfig: BynderConfig\n}\n\nconst getPreviewUrl = (asset: Record<string, any>, addInfo: Record<string, any>) => {\n switch (asset['type']) {\n case 'VIDEO':\n return asset['previewUrls'][0]\n default:\n return addInfo['selectedFile'] ? addInfo['selectedFile']?.url : asset['webImage'].url\n }\n}\n\nconst getVideoUrl = (asset: Record<string, any>) => {\n if (asset['type'] === 'VIDEO') {\n // if original asset is available (public videos only) use that if not fall back to the preview url\n return asset['files']?.original?.url ?? asset['previewUrls'][0]\n }\n return null\n}\n\nconst getAspectRatio = (dimensions: {width: number; height: number}): number =>\n dimensions.height / dimensions.width\n\nconst getVideoAspectRatio = (previewImageUrl: string) =>\n new Promise((resolve, reject) => {\n const img = new Image()\n\n // oxlint-disable-next-line prefer-add-event-listener\n img.onload = () => {\n resolve(\n getAspectRatio({\n width: img.width,\n height: img.height,\n }),\n )\n }\n // oxlint-disable-next-line prefer-add-event-listener\n img.onerror = (err) => reject(err)\n\n img.src = previewImageUrl\n })\n\nexport function BynderInput(props: BynderInputProps): React.JSX.Element {\n const {value, readOnly, schemaType, pluginConfig, onChange} = props\n const [isOpen, setIsOpen] = useState(false)\n\n // Merge field-level options with global plugin config\n // oxlint-disable-next-line no-unsafe-type-assertion\n const fieldOptions = schemaType.options as BynderAssetOptions | undefined\n const compactViewOptions = {\n ...pluginConfig.compactViewOptions,\n ...(fieldOptions?.assetTypes && {\n // oxlint-disable-next-line no-unsafe-type-assertion\n assetTypes: fieldOptions.assetTypes.map((t) => t.toUpperCase()) as (\n | 'IMAGE'\n | 'VIDEO'\n | 'AUDIO'\n )[],\n }),\n ...(fieldOptions?.assetFilter && {assetFilter: fieldOptions.assetFilter}),\n }\n\n const removeValue = () => {\n onChange(PatchEvent.from([unset()]))\n }\n\n const onSuccess = (assets: unknown[], addInfo: AdditionalInfo) => {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const asset = assets[0] as Record<string, any>\n const webImage = asset['files']?.['webImage']\n\n const aspectRatio = webImage\n ? getAspectRatio({\n width: webImage.width,\n height: webImage.height,\n })\n : undefined\n\n const persistRawFields = fieldOptions?.persistRawFields ?? pluginConfig.persistRawFields ?? true\n\n const mediaData = {\n // When `persistRawFields` is true (the default), spread the full raw Bynder\n // asset payload first; explicit fields below then override with the\n // canonical, computed, or mapped values declared in the schema.\n ...(persistRawFields ? asset : {}),\n\n _key: value?._key,\n _type: schemaType.name,\n\n id: asset['id'],\n name: asset['name'],\n databaseId: asset['databaseId'],\n type: asset['type'],\n description: asset['description'],\n\n previewUrl: getPreviewUrl(asset, addInfo),\n previewImg: webImage?.url,\n datUrl: asset['files']?.['transformBaseUrl']?.url,\n videoUrl: getVideoUrl(asset),\n aspectRatio,\n selectedUrl: addInfo.selectedFile?.url,\n width: webImage?.width,\n height: webImage?.height,\n }\n\n if (asset['type'] === 'VIDEO') {\n getVideoAspectRatio(webImage?.url ?? '')\n // oxlint-disable-next-line always-return\n .then((ratio) => {\n onChange(PatchEvent.from([set({...mediaData, aspectRatio: ratio})]))\n setIsOpen(false)\n })\n .catch((err) => {\n // video aspect ratio couldn't be set, but should still set the rest of the data\n console.error('Error setting video aspect ratio:', err)\n onChange(PatchEvent.from([set(mediaData)]))\n setIsOpen(false)\n })\n } else {\n onChange(PatchEvent.from([set(mediaData)]))\n setIsOpen(false)\n }\n }\n\n let preview\n if (value) {\n if (value.type === 'VIDEO') {\n preview = (\n <VideoPlayer controls poster={value.previewImg} sources={[{src: value.previewUrl ?? ''}]} />\n )\n }\n if (value.type === 'IMAGE' || value.type === 'DOCUMENT') {\n preview = (\n <img\n alt=\"preview\"\n src={value.previewUrl}\n style={{width: 'auto', height: '100%', maxHeight: '20rem'}}\n />\n )\n // TODO: Add preview for audio types and empty state\n }\n }\n\n const [loading, startTransition] = useTransition()\n const [shouldLoad, setShouldLoad] = useState(false)\n const openCompactView = () => {\n // We want the button to show a loading state if it takes a while to lazy load the modal\n startTransition(() => setShouldLoad(true))\n // Opening the modal should never trigger a loading state\n setIsOpen(true)\n }\n const closeCompactView = () => setIsOpen(false)\n\n return (\n <>\n <Flex\n justify=\"center\"\n align=\"center\"\n marginBottom={2}\n onClick={openCompactView}\n style={{cursor: 'pointer'}}\n >\n {preview}\n </Flex>\n <Flex gap={2} style={{width: '100%'}}>\n <Box flex={1}>\n <Button\n style={{width: '100%'}}\n loading={loading}\n disabled={readOnly}\n mode=\"ghost\"\n text={value ? 'Replace' : 'Browse'}\n title=\"Select an asset\"\n onClick={openCompactView}\n />\n </Box>\n <Box flex={1}>\n <Button\n style={{width: '100%'}}\n disabled={readOnly || !value}\n tone=\"critical\"\n mode=\"ghost\"\n text={'Remove'}\n title=\"Remove asset\"\n onClick={removeValue}\n />\n </Box>\n </Flex>\n {shouldLoad && isOpen && (\n <BynderModalLayout\n isOpen={isOpen}\n onClose={closeCompactView}\n portalConfig={pluginConfig.portalConfig}\n compactViewOptions={compactViewOptions}\n onSuccess={onSuccess}\n />\n )}\n </>\n )\n}\n","import {Flex} from '@sanity/ui'\nimport {DiffFromTo, type SchemaType} from 'sanity'\n\ntype ComponentProps = {\n value: any\n}\n\nfunction Component({value}: ComponentProps) {\n if (value?.previewUrl || value?.previewImg) {\n return (\n <Flex justify=\"center\" align=\"center\" height=\"fill\">\n <img\n alt=\"preview\"\n src={value?.previewImg ?? value?.previewUrl}\n style={{\n objectFit: 'contain',\n margin: 'auto',\n maxWidth: '100%',\n maxHeight: '100%',\n }}\n />\n </Flex>\n )\n }\n\n return (\n <Flex justify=\"center\" align=\"center\" height=\"fill\">\n <div>(no image)</div>\n </Flex>\n )\n}\n\ntype DiffProps = {\n diff: any\n schemaType: SchemaType\n}\n\nexport function BynderDiff({diff, schemaType}: DiffProps): React.JSX.Element {\n return (\n <DiffFromTo diff={diff} schemaType={schemaType} previewComponent={Component} layout={'grid'} />\n )\n}\n","import {defineType, type ObjectDefinition, type ObjectOptions} from 'sanity'\n\nimport {BynderDiff} from '../components/BynderDiff'\n\nconst bynderAssetSchemaName = 'bynder.asset'\n\ntype BynderAssetType = 'AUDIO' | 'DOCUMENT' | 'IMAGE' | 'VIDEO'\n\ntype BynderAssetFilterJson = {\n assetType_in?: BynderAssetType[] //predefined asset types\n collectionId?: string //predefined collection id\n metapropertyOptionId_in?: string[] //predefined metaproperty IDs\n searchTerm?: string //predefined search term\n tagNames_in?: string[] //predefined tags\n isLimitedUse?: boolean //whether or not this asset is marked as Limited Use\n showToolbar?: boolean //show toolbar for predefined filters (false by default)\n}\n\nexport interface BynderAssetOptions extends ObjectOptions {\n assetTypes?: ('image' | 'video' | 'audio' | (string & {}))[]\n assetFilter?: BynderAssetFilterJson\n /**\n * When `true` (the default) the full raw Bynder asset payload is spread onto\n * the persisted document alongside the canonical fields declared in the\n * `bynder.asset` schema. Set to `false` to persist only the canonical subset\n * (the fields enumerated in `BynderAssetValue` / the schema definition).\n */\n persistRawFields?: boolean\n}\n\n/**\n * @public\n */\nexport interface BynderAssetDefinition extends Omit<\n ObjectDefinition,\n 'type' | 'fields' | 'options'\n> {\n type: typeof bynderAssetSchemaName\n options?: BynderAssetOptions\n}\n\ndeclare module 'sanity' {\n // makes type: 'bynder.asset' narrow correctly when using defineType/defineField/defineArrayMember\n export interface IntrinsicDefinitions {\n 'bynder.asset': BynderAssetDefinition\n }\n}\n\nexport interface BynderAssetValue {\n _type: typeof bynderAssetSchemaName\n _key?: string\n id?: string\n name?: string\n databaseId?: string\n type?: string\n previewUrl?: string\n previewImg?: string\n datUrl?: string\n description?: string\n aspectRatio?: number\n videoUrl?: string\n selectedUrl?: string\n width?: number\n height?: number\n /** Index signature to allow any additional Bynder asset fields */\n [key: string]: unknown\n}\n\nexport const bynderAssetSchema: ObjectDefinition = defineType({\n name: bynderAssetSchemaName,\n type: 'object',\n title: 'Bynder Asset',\n fields: [\n {\n type: 'string',\n name: 'id',\n },\n {\n type: 'string',\n name: 'name',\n },\n {\n type: 'string',\n name: 'databaseId',\n },\n {\n type: 'string',\n name: 'type',\n },\n {\n type: 'string',\n name: 'previewUrl',\n },\n {\n type: 'string',\n name: 'previewImg',\n },\n {\n type: 'string',\n name: 'datUrl',\n },\n {\n type: 'string',\n name: 'description',\n },\n {\n type: 'number',\n name: 'aspectRatio',\n },\n {\n type: 'number',\n name: 'width',\n },\n {\n type: 'number',\n name: 'height',\n },\n {\n type: 'string',\n name: 'videoUrl',\n },\n {\n type: 'string',\n name: 'selectedUrl',\n },\n ],\n components: {\n diff: BynderDiff,\n },\n})\n","import {definePlugin, type Plugin, isObjectInputProps, type SchemaType} from 'sanity'\n\nimport {BynderInput, type BynderConfig} from './components/BynderInput'\nimport {bynderAssetSchema, type BynderAssetValue} from './schema/bynder.asset'\n\nexport const bynderInputPlugin: Plugin<Partial<BynderConfig>> = definePlugin(\n (config: Partial<BynderConfig>) => {\n const reqConfig: BynderConfig = {\n portalConfig: {\n url: '',\n ...config?.portalConfig,\n },\n compactViewOptions: {\n language: 'en_US',\n ...config?.compactViewOptions,\n },\n persistRawFields: config?.persistRawFields,\n }\n\n return {\n name: 'bynder-assets',\n schema: {\n types: [bynderAssetSchema],\n },\n form: {\n components: {\n input: (props) => {\n if (isObjectInputProps(props) && isType(props.schemaType, bynderAssetSchema.name)) {\n return (\n // @ts-expect-error - TODO: fix this\n <BynderInput\n {...props}\n // oxlint-disable-next-line no-unsafe-type-assertion\n value={props.value as BynderAssetValue}\n pluginConfig={reqConfig}\n />\n )\n }\n return props.renderDefault(props)\n },\n },\n },\n }\n },\n)\n\nfunction isType(schemaType: SchemaType, name: string): boolean {\n if (schemaType.name === name) {\n return true\n }\n if (schemaType.type) {\n return isType(schemaType.type, name)\n }\n return false\n}\n"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","names":["CompactViewProps","PortalConfig","AdditionalInfo","Box","Button","Flex","useState","lazy","useTransition","ObjectInputProps","PatchEvent","set","unset","BynderAssetOptions","BynderAssetValue","VideoPlayer","BynderModalLayout","BynderConfig","portalConfig","compactViewOptions","Omit","persistRawFields","BynderInputProps","pluginConfig","getPreviewUrl","asset","Record","addInfo","url","getVideoUrl","original","getAspectRatio","dimensions","width","height","getVideoAspectRatio","previewImageUrl","Promise","resolve","reject","img","Image","onload","onerror","err","src","BynderInput","props","$","_c","value","readOnly","schemaType","onChange","isOpen","setIsOpen","fieldOptions","options","t0","assetTypes","map","_temp","t1","assetFilter","t2","t3","from","removeValue","t4","name","_key","assets","webImage","files","aspectRatio","undefined","mediaData","_type","id","databaseId","type","description","previewUrl","previewImg","datUrl","transformBaseUrl","videoUrl","selectedUrl","selectedFile","then","ratio","catch","console","error","onSuccess","preview","t5","t6","t7","Symbol","for","maxHeight","loading","startTransition","shouldLoad","setShouldLoad","openCompactView","closeCompactView","cursor","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t","toUpperCase","Flex","DiffFromTo","SchemaType","ComponentProps","value","Component","t0","$","_c","previewUrl","previewImg","t1","t2","Symbol","for","objectFit","margin","maxWidth","maxHeight","t3","DiffProps","diff","schemaType","BynderDiff","defineType","ObjectDefinition","ObjectOptions","BynderDiff","bynderAssetSchemaName","BynderAssetType","BynderAssetFilterJson","assetType_in","collectionId","metapropertyOptionId_in","searchTerm","tagNames_in","isLimitedUse","showToolbar","BynderAssetOptions","assetTypes","assetFilter","persistRawFields","BynderAssetDefinition","Omit","type","options","IntrinsicDefinitions","BynderAssetValue","_type","_key","id","name","databaseId","previewUrl","previewImg","datUrl","description","aspectRatio","videoUrl","selectedUrl","width","height","key","bynderAssetSchema","title","fields","components","diff","definePlugin","Plugin","isObjectInputProps","SchemaType","BynderInput","BynderConfig","bynderAssetSchema","BynderAssetValue","bynderInputPlugin","Partial","config","reqConfig","portalConfig","url","compactViewOptions","language","persistRawFields","name","schema","types","form","components","input","props","isType","schemaType","value","renderDefault","type"],"sources":["../src/components/BynderInput.tsx","../src/components/BynderDiff.tsx","../src/schema/bynder.asset.ts","../src/plugin.tsx"],"sourcesContent":["import type {CompactViewProps, PortalConfig, AdditionalInfo} from '@bynder/compact-view'\nimport {Box, Button, Flex} from '@sanity/ui'\nimport {useState, lazy, useTransition} from 'react'\nimport {type ObjectInputProps, PatchEvent, set, unset} from 'sanity'\n\nimport type {BynderAssetOptions, BynderAssetValue} from '../schema/bynder.asset'\n\nimport './BynderInput.css'\n\nconst VideoPlayer = lazy(() => import('./VideoPlayer'))\nconst BynderModalLayout = lazy(() => import('./BynderModalLayout'))\n\nexport interface BynderConfig {\n portalConfig: PortalConfig\n compactViewOptions: Omit<CompactViewProps, 'onSuccess'>\n /**\n * Studio-wide default for whether the full raw Bynder asset payload is\n * persisted onto documents (in addition to the canonical schema fields).\n * Field-level `persistRawFields` in `BynderAssetOptions` overrides this.\n * Defaults to `true` to preserve existing behavior.\n */\n persistRawFields?: boolean\n}\n\nexport interface BynderInputProps extends ObjectInputProps<BynderAssetValue> {\n pluginConfig: BynderConfig\n}\n\nconst getPreviewUrl = (asset: Record<string, any>, addInfo: Record<string, any>) => {\n switch (asset['type']) {\n case 'VIDEO':\n return asset['previewUrls'][0]\n default:\n return addInfo['selectedFile'] ? addInfo['selectedFile']?.url : asset['webImage'].url\n }\n}\n\nconst getVideoUrl = (asset: Record<string, any>) => {\n if (asset['type'] === 'VIDEO') {\n // if original asset is available (public videos only) use that if not fall back to the preview url\n return asset['files']?.original?.url ?? asset['previewUrls'][0]\n }\n return null\n}\n\nconst getAspectRatio = (dimensions: {width: number; height: number}): number =>\n dimensions.height / dimensions.width\n\nconst getVideoAspectRatio = (previewImageUrl: string) =>\n new Promise((resolve, reject) => {\n const img = new Image()\n\n // oxlint-disable-next-line prefer-add-event-listener\n img.onload = () => {\n resolve(\n getAspectRatio({\n width: img.width,\n height: img.height,\n }),\n )\n }\n // oxlint-disable-next-line prefer-add-event-listener\n img.onerror = (err) => reject(err)\n\n img.src = previewImageUrl\n })\n\nexport function BynderInput(props: BynderInputProps): React.JSX.Element {\n const {value, readOnly, schemaType, pluginConfig, onChange} = props\n const [isOpen, setIsOpen] = useState(false)\n\n // Merge field-level options with global plugin config\n // oxlint-disable-next-line no-unsafe-type-assertion\n const fieldOptions = schemaType.options as BynderAssetOptions | undefined\n const compactViewOptions = {\n ...pluginConfig.compactViewOptions,\n ...(fieldOptions?.assetTypes && {\n // oxlint-disable-next-line no-unsafe-type-assertion\n assetTypes: fieldOptions.assetTypes.map((t) => t.toUpperCase()) as (\n | 'IMAGE'\n | 'VIDEO'\n | 'AUDIO'\n )[],\n }),\n ...(fieldOptions?.assetFilter && {assetFilter: fieldOptions.assetFilter}),\n }\n\n const removeValue = () => {\n onChange(PatchEvent.from([unset()]))\n }\n\n const onSuccess = (assets: unknown[], addInfo: AdditionalInfo) => {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const asset = assets[0] as Record<string, any>\n const webImage = asset['files']?.['webImage']\n\n const aspectRatio = webImage\n ? getAspectRatio({\n width: webImage.width,\n height: webImage.height,\n })\n : undefined\n\n const persistRawFields = fieldOptions?.persistRawFields ?? pluginConfig.persistRawFields ?? true\n\n const mediaData = {\n // When `persistRawFields` is true (the default), spread the full raw Bynder\n // asset payload first; explicit fields below then override with the\n // canonical, computed, or mapped values declared in the schema.\n ...(persistRawFields ? asset : {}),\n\n _key: value?._key,\n _type: schemaType.name,\n\n id: asset['id'],\n name: asset['name'],\n databaseId: asset['databaseId'],\n type: asset['type'],\n description: asset['description'],\n\n previewUrl: getPreviewUrl(asset, addInfo),\n previewImg: webImage?.url,\n datUrl: asset['files']?.['transformBaseUrl']?.url,\n videoUrl: getVideoUrl(asset),\n aspectRatio,\n selectedUrl: addInfo.selectedFile?.url,\n width: webImage?.width,\n height: webImage?.height,\n }\n\n if (asset['type'] === 'VIDEO') {\n getVideoAspectRatio(webImage?.url ?? '')\n // oxlint-disable-next-line always-return\n .then((ratio) => {\n onChange(PatchEvent.from([set({...mediaData, aspectRatio: ratio})]))\n setIsOpen(false)\n })\n .catch((err) => {\n // video aspect ratio couldn't be set, but should still set the rest of the data\n console.error('Error setting video aspect ratio:', err)\n onChange(PatchEvent.from([set(mediaData)]))\n setIsOpen(false)\n })\n } else {\n onChange(PatchEvent.from([set(mediaData)]))\n setIsOpen(false)\n }\n }\n\n let preview\n if (value) {\n if (value.type === 'VIDEO') {\n preview = (\n <VideoPlayer controls poster={value.previewImg} sources={[{src: value.previewUrl ?? ''}]} />\n )\n }\n if (value.type === 'IMAGE' || value.type === 'DOCUMENT') {\n preview = (\n <img\n alt=\"preview\"\n src={value.previewUrl}\n style={{width: 'auto', height: '100%', maxHeight: '20rem'}}\n />\n )\n // TODO: Add preview for audio types and empty state\n }\n }\n\n const [loading, startTransition] = useTransition()\n const [shouldLoad, setShouldLoad] = useState(false)\n const openCompactView = () => {\n // We want the button to show a loading state if it takes a while to lazy load the modal\n startTransition(() => setShouldLoad(true))\n // Opening the modal should never trigger a loading state\n setIsOpen(true)\n }\n const closeCompactView = () => setIsOpen(false)\n\n return (\n <>\n <Flex\n justify=\"center\"\n align=\"center\"\n marginBottom={2}\n onClick={openCompactView}\n style={{cursor: 'pointer'}}\n >\n {preview}\n </Flex>\n <Flex gap={2} style={{width: '100%'}}>\n <Box flex={1}>\n <Button\n style={{width: '100%'}}\n loading={loading}\n disabled={readOnly}\n mode=\"ghost\"\n text={value ? 'Replace' : 'Browse'}\n title=\"Select an asset\"\n onClick={openCompactView}\n />\n </Box>\n <Box flex={1}>\n <Button\n style={{width: '100%'}}\n disabled={readOnly || !value}\n tone=\"critical\"\n mode=\"ghost\"\n text={'Remove'}\n title=\"Remove asset\"\n onClick={removeValue}\n />\n </Box>\n </Flex>\n {shouldLoad && isOpen && (\n <BynderModalLayout\n isOpen={isOpen}\n onClose={closeCompactView}\n portalConfig={pluginConfig.portalConfig}\n compactViewOptions={compactViewOptions}\n onSuccess={onSuccess}\n />\n )}\n </>\n )\n}\n","import {Flex} from '@sanity/ui'\nimport {DiffFromTo, type SchemaType} from 'sanity'\n\ntype ComponentProps = {\n value: any\n}\n\nfunction Component({value}: ComponentProps) {\n if (value?.previewUrl || value?.previewImg) {\n return (\n <Flex justify=\"center\" align=\"center\" height=\"fill\">\n <img\n alt=\"preview\"\n src={value?.previewImg ?? value?.previewUrl}\n style={{\n objectFit: 'contain',\n margin: 'auto',\n maxWidth: '100%',\n maxHeight: '100%',\n }}\n />\n </Flex>\n )\n }\n\n return (\n <Flex justify=\"center\" align=\"center\" height=\"fill\">\n <div>(no image)</div>\n </Flex>\n )\n}\n\ntype DiffProps = {\n diff: any\n schemaType: SchemaType\n}\n\nexport function BynderDiff({diff, schemaType}: DiffProps): React.JSX.Element {\n return (\n <DiffFromTo diff={diff} schemaType={schemaType} previewComponent={Component} layout={'grid'} />\n )\n}\n","import {defineType, type ObjectDefinition, type ObjectOptions} from 'sanity'\n\nimport {BynderDiff} from '../components/BynderDiff'\n\nconst bynderAssetSchemaName = 'bynder.asset'\n\ntype BynderAssetType = 'AUDIO' | 'DOCUMENT' | 'IMAGE' | 'VIDEO'\n\ntype BynderAssetFilterJson = {\n assetType_in?: BynderAssetType[] //predefined asset types\n collectionId?: string //predefined collection id\n metapropertyOptionId_in?: string[] //predefined metaproperty IDs\n searchTerm?: string //predefined search term\n tagNames_in?: string[] //predefined tags\n isLimitedUse?: boolean //whether or not this asset is marked as Limited Use\n showToolbar?: boolean //show toolbar for predefined filters (false by default)\n}\n\nexport interface BynderAssetOptions extends ObjectOptions {\n assetTypes?: ('image' | 'video' | 'audio' | (string & {}))[]\n assetFilter?: BynderAssetFilterJson\n /**\n * When `true` (the default) the full raw Bynder asset payload is spread onto\n * the persisted document alongside the canonical fields declared in the\n * `bynder.asset` schema. Set to `false` to persist only the canonical subset\n * (the fields enumerated in `BynderAssetValue` / the schema definition).\n */\n persistRawFields?: boolean\n}\n\n/**\n * @public\n */\nexport interface BynderAssetDefinition extends Omit<\n ObjectDefinition,\n 'type' | 'fields' | 'options'\n> {\n type: typeof bynderAssetSchemaName\n options?: BynderAssetOptions\n}\n\ndeclare module 'sanity' {\n // makes type: 'bynder.asset' narrow correctly when using defineType/defineField/defineArrayMember\n export interface IntrinsicDefinitions {\n 'bynder.asset': BynderAssetDefinition\n }\n}\n\nexport interface BynderAssetValue {\n _type: typeof bynderAssetSchemaName\n _key?: string\n id?: string\n name?: string\n databaseId?: string\n type?: string\n previewUrl?: string\n previewImg?: string\n datUrl?: string\n description?: string\n aspectRatio?: number\n videoUrl?: string\n selectedUrl?: string\n width?: number\n height?: number\n /** Index signature to allow any additional Bynder asset fields */\n [key: string]: unknown\n}\n\nexport const bynderAssetSchema: ObjectDefinition = defineType({\n name: bynderAssetSchemaName,\n type: 'object',\n title: 'Bynder Asset',\n fields: [\n {\n type: 'string',\n name: 'id',\n },\n {\n type: 'string',\n name: 'name',\n },\n {\n type: 'string',\n name: 'databaseId',\n },\n {\n type: 'string',\n name: 'type',\n },\n {\n type: 'string',\n name: 'previewUrl',\n },\n {\n type: 'string',\n name: 'previewImg',\n },\n {\n type: 'string',\n name: 'datUrl',\n },\n {\n type: 'string',\n name: 'description',\n },\n {\n type: 'number',\n name: 'aspectRatio',\n },\n {\n type: 'number',\n name: 'width',\n },\n {\n type: 'number',\n name: 'height',\n },\n {\n type: 'string',\n name: 'videoUrl',\n },\n {\n type: 'string',\n name: 'selectedUrl',\n },\n ],\n components: {\n diff: BynderDiff,\n },\n})\n","import {definePlugin, type Plugin, isObjectInputProps, type SchemaType} from 'sanity'\n\nimport {BynderInput, type BynderConfig} from './components/BynderInput'\nimport {bynderAssetSchema, type BynderAssetValue} from './schema/bynder.asset'\n\nexport const bynderInputPlugin: Plugin<Partial<BynderConfig>> = definePlugin(\n (config: Partial<BynderConfig>) => {\n const reqConfig: BynderConfig = {\n portalConfig: {\n url: '',\n ...config?.portalConfig,\n },\n compactViewOptions: {\n language: 'en_US',\n ...config?.compactViewOptions,\n },\n persistRawFields: config?.persistRawFields,\n }\n\n return {\n name: 'bynder-assets',\n schema: {\n types: [bynderAssetSchema],\n },\n form: {\n components: {\n input: (props) => {\n if (isObjectInputProps(props) && isType(props.schemaType, bynderAssetSchema.name)) {\n return (\n // @ts-expect-error - TODO: fix this\n <BynderInput\n {...props}\n // oxlint-disable-next-line no-unsafe-type-assertion\n value={props.value as BynderAssetValue}\n pluginConfig={reqConfig}\n />\n )\n }\n return props.renderDefault(props)\n },\n },\n },\n }\n },\n)\n\nfunction isType(schemaType: SchemaType, name: string): boolean {\n if (schemaType.name === name) {\n return true\n }\n if (schemaType.type) {\n return isType(schemaType.type, name)\n }\n return false\n}\n"],"mappings":";;;;;;;AASA,MAAA,cAAA,WAAA,OAAA,4BAAA,GACA,oBAAA,WAAA,OAAA,kCAAA,GAkBA,iBAAA,OAAA,YAAA;CACE,QAAA,MAAA,MAAA;EACE,KAAA,SAAA,OAAA,MAAA,YAAA;EAEA,SAAA,OAAA,QAAA,eAAA,QAAA,cAAA,MAAA,MAAA,SAAA;CAEF;AACF,GAEA,eAAA,UACE,MAAA,SAAA,UAAA,MAAA,OAAA,UAAA,OAAA,MAAA,YAAA,KAIA,MAGF,kBAAA,eAAA,WAAA,SAAA,WAAA,OAGA,uBAAA,oBAAA,IAAA,SAAA,SAAA,WAAA;CAEI,IAAA,MAAA,IAAA,MAAA;CAcAwC,AAXAA,IAAAA,eAAAA;EACEF,QAAAA,eAAAA;GAEIL,OAAAA,IAAAA;GACAC,QAAAA,IAAAA;EACF,CAAA,CAAA;CAEJ,GAEAM,IAAAA,WAAAA,QAAAA,OAAAA,GAAAA,GAEAA,IAAAA,MAAAA;AACF,CAAA;AAEF,SAAA,YAAA,OAAA;CAAO,IAAA,IAAA,EAAA,EAAA,GACL,EAAA,OAAA,UAAA,YAAA,cAAA,aAAA,OACA,CAAA,QAAA,aAAA,SAAA,EAAA,GAIA,eAAA,WAAA,SAAyE;CAAA,AAAA,EAAA,OAAA,eAUtE,KAAA,EAAA,MAPGkB,KAAAA,cAAAA,cAAAA,EAAAA,YAAAA,aAAAA,WAAAA,IAAAA,KAAAA,EAAAA,GAOHV,EAAAA,KAAAA,cAAAA,EAAAA,KAAAA;CAAA,IAAA;CAAA,AAAA,EAAA,OAAA,eACuE,KAAA,EAAA,MAApEc,KAAAA,cAAAA,eAAAA,EAAAA,aAAAA,aAAAA,YAAAA,GAAoEd,EAAAA,KAAAA,cAAAA,EAAAA,KAAAA;CAAA,IAAA;CAAA,AAAA,EAAA,OAAA,aAAA,sBAAA,EAAA,OAAA,MAAA,EAAA,OAAA,MAV/CgB,KAAAA;EAAA,GAAA,aAAA;EACS,GAAA;EAQjC,GAAA;CAEH,GAAChB,EAAAA,KAAAA,aAAAA,oBAAAA,EAAAA,KAAAA,IAAAA,EAAAA,KAAAA,IAAAA,EAAAA,KAAAA,MAAA,KAAA,EAAA;CAXD,IAAA,qBAAA,IAWC;CAAA,AAAA,EAAA,OAAA,WAIA,KAAA,EAAA,MAFmBiB,WAAAA;EAClBZ,SAAAA,WAAAA,KAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;CAAoC,GACrCL,EAAAA,KAAAA,UAAAA,EAAAA,KAAAA;CAFD,IAAA,cAAA,IAEC;CAAA,AAAA,EAAA,QAAA,cAAA,oBAAA,EAAA,QAAA,YAAA,EAAA,QAAA,aAAA,oBAAA,EAAA,QAAA,WAAA,QAAA,EAAA,QAAA,OAAA,QAEiBoB,MAAAA,QAAAA,YAAAA;EAEhB,IAAA,QAAA,OAAA,IACA,WAAA,MAAA,OAAA,UAEA,cAAA,WAAA,eAAA;GACmBnC,OAAAA,SAAAA;GACQC,QAAAA,SAAAA;EAEvB,CAAA,IAAA,KAAA,GAKJ,YAAA;GAAkB,GAAA,cAAA,oBAAA,aAAA,oBAAA,KAAA,QAAA,CAAA;GAIiBoC,MAAAA,OAAAA;GAEhBO,OAAAA,WAAAA;GACKC,IAAAA,MAAAA;GAEPT,MAAAA,MAAAA;GACIU,YAAAA,MAAAA;GACYC,MAAAA,MAAAA;GACZC,aAAAA,MAAAA;GACcC,YAAAA,cAAAA,OAAAA,OAAAA;GAEQC,YAAAA,UAAAA;GAChBC,QAAAA,MAAAA,OAAAA,kBAAAA;GACwBE,UAAAA,YAAAA,KAAAA;GACrBZ;GAAAa,aAAAA,QAAAA,cAAAA;GAEUtD,OAAAA,UAAAA;GAChBC,QAAAA,UAAAA;EAExB;EAEA,AAAA,MAAA,SAAA,UAAA,oBAAA,UAAA,OAAA,EAAA,CAAA,CAAA,MAAA,UAAA;GAKMqB,AADAF,SAAAA,WAAAA,KAAAA,CAAAA,IAAAA;IAA8B,GAAA;IAAaqB,aAAAA;GAAoB,CAAA,CAAA,CAAA,CAAA,GAC/DnB,UAAAA,EAAAA;EAAgB,CAAA,CAAA,CAAA,OAAA,QAAA;GAMhBA,AAFAqC,QAAAA,MAAAA,qCAAAA,GAAAA,GACAvC,SAAAA,WAAAA,KAAAA,CAAAA,IAAAA,SAAAA,CAAAA,CAAAA,CAAAA,GACAE,UAAAA,EAAAA;EAAgB,CAAA,KAGpBF,SAAAA,WAAAA,KAAAA,CAAAA,IAAAA,SAAAA,CAAAA,CAAAA,CAAAA,GACAE,UAAAA,EAAAA;CACD,GACFP,EAAAA,MAAAA,cAAAA,kBAAAA,EAAAA,MAAAA,UAAAA,EAAAA,MAAAA,aAAAA,kBAAAA,EAAAA,MAAAA,WAAAA,MAAAA,EAAAA,MAAAA,OAAAA,MAAAA,EAAAA,MAAAA,MAAA,KAAA,EAAA;CAxDD,IAAA,YAAA,IA0DI+C;CACJ,IAAA,OAAA;EACE,IAAA,MAAA,SAAA,SAAA;GAEoE,IAAA,KAAA,MAAA,cAAA,IAAsB;GAAA,AAAA,EAAA,QAAA,KAAE,KAAA,EAAA,OAA/BE,KAAAA,CAAAA,EAAAA,KAAAA,GAAAA,CAAAA,GAA+BjD,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA;GAAA,IAAA;GAD1F+C,AAC0F,EAAA,QAAA,MAAA,EAAA,QAAA,MAAA,cAAxFG,KAAAA,oBAAAA,aAAAA;IAAa,UAAA;IAAiB,QAAA,MAAA;IAA2B,SAAA;GAA+B,CAAA,GAAIlD,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,MAAAA,YAAAA,EAAAA,MAAAA,MAAA,KAAA,EAAA,KAD9F+C,UAAAA;EAAO;EAIT,IAAA,MAAA,SAAA,WAAA,MAAA,SAAA,YAAA;GAAuD,IAAA;GAAA,AAAA,EAAA,QAAA,OAAA,IAAA,2BAAA,KAK1CC,KAAAA;IAAA/D,OAAAA;IAAcC,QAAAA;IAAgBmE,WAAAA;GAAoB,GAACrD,EAAAA,MAAAA,MAAA,KAAA,EAAA;GAAA,IAAA;GAJ9D+C,AAI8D,EAAA,QAAA,MAAA,aAC1D,KAAA,EAAA,OAJFE,KAAAA,oBAAAA,OAAAA;IACM,KAAA;IACC,KAAA,MAAA;IACE,OAAA;GAAmD,CAAA,GAC1DjD,EAAAA,MAAAA,MAAAA,YAAAA,EAAAA,MAAAA,KALJ+C,UAAAA;EAAO;CAQR;CAGH,IAAA,CAAA,SAAA,mBAAA,cAAA,GACA,CAAA,YAAA,iBAAA,SAAA,EAAA,GAAmD;CAAA,AAAA,EAAA,QAAA,OAAA,IAAA,2BAAA,KAC3BC,WAAAA;EAItBzC,AAFAgD,sBAAAA,cAAAA,EAAAA,CAAAA,GAEAhD,UAAAA,EAAAA;CAAe,GAChBP,EAAAA,MAAAA,MAAA,KAAA,EAAA;CALD,IAAA,kBAAA,IAKC;CAAA,AAAA,EAAA,QAAA,OAAA,IAAA,2BAAA,KACwBiD,WAAAA,UAAAA,EAAAA,GAAsBjD,EAAAA,MAAAA,MAAA,KAAA,EAAA;CAA/C,IAAA,mBAAA,IAA+C;CAAA,AAAA,EAAA,QAAA,OAAA,IAAA,2BAAA,KASlCkD,KAAAA,EAAAA,QAAAA,UAAAA,GAAmBlD,EAAAA,MAAAA,MAAA,KAAA,EAAA;CAAA,IAAA;CAAA,AAAA,EAAA,QAAA,UAGrB,KAAA,EAAA,OARP6D,KAAAA,oBAAAA,MAAAA;EACU,SAAA;EACF,OAAA;EACQ,cAAA;EACLH,SAAAA;EACF,OAAA;EAENX,UAAAA;CAPE,CAAA,GAQE/C,EAAAA,MAAAA,SAAAA,EAAAA,MAAAA;CAAA,IAAA;CAAA,AAAA,EAAA,QAAA,OAAA,IAAA,2BAAA,KACc8D,KAAAA,EAAAA,OAAAA,OAAAA,GAAe9D,EAAAA,MAAAA,MAAA,KAAA,EAAA;CAAA,IAAA;CAAA,AAAA,EAAA,QAAA,OAAA,IAAA,2BAAA,KAGvB+D,MAAAA,EAAAA,OAAAA,OAAAA,GAAe/D,EAAAA,MAAAA,OAAA,MAAA,EAAA;CAIhB,IAAA,MAAA,QAAA,YAAA,UAA4B;CAAA,AAAA,EAAA,QAAA,WAAA,EAAA,QAAA,YAAA,EAAA,QAAA,OANtCiE,MAAAA,oBAAAA,KAAAA;EAAW,MAAA;EACT,UAAA,oBAAA,QAAA;GACS,OAAA;GACEX;GACCnD,UAAAA;GACL,MAAA;GACC,MAAA;GACA,OAAA;GACGuD,SAAAA;EAAe,CAAA;CARxB,CAAA,GAUE1D,EAAAA,MAAAA,SAAAA,EAAAA,MAAAA,UAAAA,EAAAA,MAAAA,KAAAA,EAAAA,MAAAA,OAAA,MAAA,EAAA;CAAA,IAAA;CAAA,AAAA,EAAA,QAAA,OAAA,IAAA,2BAAA,KAGKkE,MAAAA,EAAAA,OAAAA,OAAAA,GAAelE,EAAAA,MAAAA,OAAA,MAAA,EAAA;CACZ,IAAA,MAAA,YAAA,CAAA,OAAkB;CAAA,AAAA,EAAA,QAAA,eAAA,EAAA,QAAA,OAHhCoE,MAAAA,oBAAAA,KAAAA;EAAW,MAAA;EACT,UAAA,oBAAA,QAAA;GACS,OAAA;GACG,UAAA;GACL,MAAA;GACA,MAAA;GACC,MAAA;GACA,OAAA;GACGjD,SAAAA;EAAW,CAAA;CARpB,CAAA,GAUEnB,EAAAA,MAAAA,aAAAA,EAAAA,MAAAA,KAAAA,EAAAA,MAAAA,OAAA,MAAA,EAAA;CAAA,IAAA;CAAA,AAAA,EAAA,QAAA,OAAA,EAAA,QAAA,OAtBRqE,MAAAA,qBAAAA,MAAAA;EAAW,KAAA;EAAU,OAAA;EAArB,UAAA,CAAA,KAAA,GAAA;KAuBOrE,EAAAA,MAAAA,KAAAA,EAAAA,MAAAA,KAAAA,EAAAA,MAAAA,OAAA,MAAA,EAAA;CAAA,IAAA;CAAA,AAAA,EAAA,QAAA,sBAAA,EAAA,QAAA,UAAA,EAAA,QAAA,aAAA,EAAA,QAAA,aAAA,gBAAA,EAAA,QAAA,cACNsE,MAAAA,cAAAA,UAAAA,oBAAAA,mBAAAA;EAEWhE;EACCqD,SAAAA;EACK,cAAA,aAAA;EACMxF;EACT2E;CAAS,CAAA,GAEvB9C,EAAAA,MAAAA,oBAAAA,EAAAA,MAAAA,QAAAA,EAAAA,MAAAA,WAAAA,EAAAA,MAAAA,aAAAA,cAAAA,EAAAA,MAAAA,YAAAA,EAAAA,MAAAA,OAAA,MAAA,EAAA;CAAA,IAAA;CACA,OADA,EAAA,QAAA,OAAA,EAAA,QAAA,OAAA,EAAA,QAAA,MA1CHuE,MAAAA,qBAAAA,UAAAA,EAAAA,UAAAA;EACEV;EASAQ;EAwBCC;CAQA,EAAA,CAAA,GACAtE,EAAAA,MAAAA,KAAAA,EAAAA,MAAAA,KAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,OAAA,MAAA,EAAA,KAAA;AAAA;AA3JA,SAAA,MAAA,GAAA;CAAA,OAAA,EAAA,YAAA;AAW6D;ACvEpE,SAAA,UAAA,IAAA;CAAA,IAAA,IAAA,EAAA,CAAA,GAAmB,EAAA,UAAA;CACjB,IAAA,OAAA,cAAA,OAAA,YAAA;EAKa,IAAA,KAAA,OAAA,cAAA,OAAA,YAAsC;EAAA,AAAA,EAAA,OAAA,OAAA,IAAA,2BAAA,KACpCsF,KAAAA;GAAAG,WAAAA;GACeC,QAAAA;GACNC,UAAAA;GACEC,WAAAA;EAElB,GAACX,EAAAA,KAAAA,MAAA,KAAA,EAAA;EAAA,IAAA;EAEE,OAFF,EAAA,OAAA,KAEE,KAAA,EAAA,MAXPY,KAAAA,oBAAAA,MAAAA;GAAc,SAAA;GAAe,OAAA;GAAgB,QAAA;GAC3C,UAAA,oBAAA,OAAA;IACM,KAAA;IACC,KAAA;IACE,OAAA;GAKN,CAAA;EATA,CAAA,GAWEZ,EAAAA,KAAAA,IAAAA,EAAAA,KAAAA,KAAA;CAAA;CAEV,IAAA;CAKQ,OALR,EAAA,OAAA,OAAA,IAAA,2BAAA,KAGCI,KAAAA,oBAAAA,MAAAA;EAAc,SAAA;EAAe,OAAA;EAAgB,QAAA;EAC3C,UAAA,oBAAA,OAAA,EAAA,UAAA,aAAA,CAAA;CADG,CAAA,GAEEJ,EAAAA,KAAAA,MAAA,KAAA,EAAA,IAAA;AAAA;AASX,SAAA,WAAA,IAAA;CAAO,IAAA,IAAA,EAAA,CAAA,GAAoB,EAAA,MAAA,eAAA,IAA6B;CAE2C,OAF3C,EAAA,OAAA,QAAA,EAAA,OAAA,cAEpDI,KAAAA,oBAAAA,YAAAA;EAAkBU;EAAkBC;EAA8BjB,kBAAAA;EAAmB,QAAA;CAAM,CAAA,GAAIE,EAAAA,KAAAA,MAAAA,EAAAA,KAAAA,YAAAA,EAAAA,KAAAA,MAAA,KAAA,EAAA,IAAA;AAAA;ACnCnG,MAgEA,oBAAA,WAAA;CACE4C,MAAAA;CACAP,MAAAA;CACAoB,OAAAA;CACAC,QAAAA;EACE;GACErB,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;EACA;GACEP,MAAAA;GACAO,MAAAA;EACF;CAAC;CAEHe,YAAAA,EAAAA,MAAAA,WAAAA;AAGF,CAAA,GC5HA,oBAAA,cAAA,WAAA;CAEI,IAAA,YAAA;EACEc,cAAAA;GACEC,KAAAA;GACA,GAAA,QAAA;EACF;EACAC,oBAAAA;GACEC,UAAAA;GACA,GAAA,QAAA;EACF;EACAC,kBAAAA,QAAAA;CACF;CAEA,OAAA;EACEC,MAAAA;EACAC,QAAAA,EAAAA,OAAAA,CAAAA,iBAAAA,EAAAA;EAGAE,MAAAA,EAAAA,YAAAA,EAAAA,QAAAA,UAGM,mBAAA,KAAA,KAAA,OAAA,MAAA,YAAA,kBAAA,IAAA,IAAA,oBAAA,aAAA;GAIM,GAAA;GAEA,OAAA,MAAA;GACA,cAAA;EAAwB,CAAA,IAI9B,MAAA,cAAA,KAAA,EACF,EAAA;CAGN;AACF,CAAA;AAGF,SAAA,OAAA,YAAA,MAAA;CAOE,OANA,WAAA,SAAA,OAAA,KAGA,WAAA,OAAA,OAAA,WAAA,MAAA,IAAA,IAGA;AACF"}
\ No newline at end of file