sanity-plugin-aprimo

2.0.192.0.20
~

Modified (2 files)

Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "sanity-plugin-aprimo",
-  "version": "2.0.19",
+  "version": "2.0.20",
   "description": "Aprimo asset selector for Sanity",
   "keywords": [
     "sanity",
     "sanity-plugin"
@@ -33,9 +33,9 @@
     "@sanity/tsconfig": "^2.2.1",
     "@sanity/tsdown-config": "^0.26.0",
     "@types/node": "^24.13.3",
     "@types/react": "^19.2.18",
-    "babel-plugin-react-compiler": "^1.0.0",
+    "oxc-transform-react": "^0.145.0",
     "react": "^19.2.8",
     "sanity": "^6.10.1",
     "styled-components": "^6.5.3",
     "tsdown": "^0.22.14"
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":["openSelector","tenantName","selectType","assetType","selectorOptions","title","description","accept","select","params","encodedOptions","btoa","JSON","stringify","window","open","Box","AprimoCDNAsset","ComponentProps","layout","value","title","AprimoCDNPreview","t0","$","_c","t1","undefined","url","rendition","publicuri","t2","t3","t4","maxWidth","height","t5","Card","Box","Flex","Stack","Text","Label","Button","useCallback","AprimoAsset","AprimoFilePreviewProps","value","tenantName","AprimoFilePreview","t0","$","_c","title","additionalFile","id","assetName","fileName","damUrl","t1","window","open","onClick","t2","Symbol","for","t3","t4","t5","Box","Button","Card","Grid","Text","useEffect","useState","useMemo","PatchEvent","ObjectInputProps","set","unset","AprimoCDNAsset","AprimoAsset","AprimoConfig","openSelector","AprimoCDNPreview","AprimoFilePreview","isAprimoCDNAsset","value","hasOwnProperty","isAprimoAsset","AprimoWidgetProps","pluginConfig","AprimoWidget","props","$","_c","readOnly","onChange","schemaType","t0","tenantName","_key","t1","from","removeValue","isLoading","setIsLoading","t2","t3","setAsset","asset","handleMessageEvent","event","origin","data","result","selection","window","addEventListener","removeEventListener","t4","name","selectType","action","t5","bb0","t6","preview","Symbol","for","t7","gridTemplateColumns","t8","t9","t10","t11","t12","defineType","AprimoAdditionalFileSchema","name","title","type","fields","AprimoWidget","AprimoAssetSchema","type","name","title","fields","components","input","DiffFromTo","SchemaType","AprimoCDNPreview","AprimoDiff","t0","$","_c","diff","schemaType","t1","AprimoDiff","AprimoWidget","AprimoCDNAssetSchema","type","name","title","fields","components","input","diff","preview","select","url","prepare","media","height","width","definePlugin","isObjectInputProps","SchemaType","AprimoWidget","AprimoAdditionalFileSchema","AprimoAssetSchema","AprimoCDNAssetSchema","AprimoCDNAsset","AprimoConfig","aprimoPlugin","config","Partial","reqConfig","tenantName","name","schema","types","form","components","input","props","isType","schemaType","value","renderDefault","type"],"sources":["../src/utils.ts","../src/components/AprimoCDNPreview.tsx","../src/components/AprimoFilePreview.tsx","../src/components/AprimoWidget.tsx","../src/schema/AdditionalFile.ts","../src/schema/AprimoAsset.ts","../src/components/AprimoDiff.tsx","../src/schema/AprimoCDNAsset.tsx","../src/plugin.tsx"],"sourcesContent":["export const openSelector = (tenantName: string, selectType: string): void => {\n  let assetType = 'asset rendition'\n  switch (selectType) {\n    case 'singlefile':\n      assetType = 'asset file'\n      break\n    case 'multiple':\n      assetType = 'asset renditions'\n      break\n    default:\n      assetType = 'asset rendition'\n  }\n\n  const selectorOptions = {\n    title: `Select ${assetType}`,\n    description: `Select the ${assetType} you'd like to bring into this document`,\n    accept: `Use ${assetType}`,\n    select: selectType,\n  }\n\n  const params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,\n  width=1000,height=600,left=100,top=100`\n\n  const encodedOptions = btoa(JSON.stringify(selectorOptions))\n  window.open(\n    `https://${tenantName}.dam.aprimo.com/dam/selectcontent#options=${encodedOptions}`,\n    'selector',\n    params,\n  )\n}\n","import {Box} from '@sanity/ui'\n\nimport type {AprimoCDNAsset} from '../types'\n\ntype ComponentProps = {\n  layout?: 'default' | 'block'\n  value: AprimoCDNAsset\n  title?: string\n}\n\nexport function AprimoCDNPreview({\n  value,\n  layout = 'block',\n}: ComponentProps): React.JSX.Element | null {\n  const url = value?.rendition?.publicuri\n  if (url) {\n    return (\n      <Box>\n        <img\n          alt={`preview for ${value?.title}`}\n          src={url}\n          style={{\n            maxWidth: layout === 'block' ? '80px' : '100%',\n            height: 'auto',\n          }}\n        />\n      </Box>\n    )\n  }\n  return null\n}\n","import {Card, Box, Flex, Stack, Text, Label, Button} from '@sanity/ui'\nimport {useCallback} from 'react'\n\nimport type {AprimoAsset} from '../types'\n\ninterface AprimoFilePreviewProps {\n  value: AprimoAsset\n  tenantName: string\n}\n\nexport function AprimoFilePreview({value, tenantName}: AprimoFilePreviewProps): React.JSX.Element {\n  const {title, additionalFile, id} = value\n  const assetName = additionalFile?.fileName || title || 'No name'\n  const damUrl = `https://${tenantName}.dam.aprimo.com/Assets/Records/${id}`\n  const onClick = useCallback(() => {\n    window.open(damUrl, '_blank')\n  }, [damUrl])\n  return (\n    <Box paddingY={1}>\n      <Card paddingY={3} paddingX={3} radius={1} shadow={1}>\n        <Flex align=\"center\" justify=\"space-between\" gap={1}>\n          <Stack gap={3}>\n            <Label as=\"p\">Aprimo File Asset</Label>\n            <Text as=\"p\">{assetName}</Text>\n          </Stack>\n          <Stack>\n            {/* ADD launch icon */}\n            <Button\n              tone=\"primary\"\n              as={'a'}\n              href={damUrl}\n              target={`_blank`}\n              onClick={onClick}\n              text={'View'}\n            />\n          </Stack>\n        </Flex>\n      </Card>\n    </Box>\n  )\n}\n","import {Box, Button, Card, Grid, Text} from '@sanity/ui'\nimport {useEffect, useState, useMemo} from 'react'\nimport {PatchEvent, type ObjectInputProps, set, unset} from 'sanity'\n\nimport type {AprimoCDNAsset, AprimoAsset, AprimoConfig} from '../types'\nimport {openSelector} from '../utils'\nimport {AprimoCDNPreview} from './AprimoCDNPreview'\nimport {AprimoFilePreview} from './AprimoFilePreview'\n\nconst isAprimoCDNAsset = (value: AprimoCDNAsset | AprimoAsset): value is AprimoCDNAsset => {\n  return value && value.hasOwnProperty('rendition')\n}\n\nconst isAprimoAsset = (value: AprimoCDNAsset | AprimoAsset): value is AprimoAsset => {\n  //the ID is all we need to construct a link back to Aprimo\n  return value && value.hasOwnProperty('id')\n}\n\nexport interface AprimoWidgetProps extends ObjectInputProps<AprimoCDNAsset | AprimoAsset> {\n  pluginConfig: AprimoConfig\n}\n\nexport function AprimoWidget(props: AprimoWidgetProps): React.JSX.Element {\n  const {\n    value,\n    readOnly,\n    onChange,\n    schemaType,\n    pluginConfig: {tenantName},\n  } = props\n\n  const _key = value?._key\n  const removeValue = () => {\n    onChange(PatchEvent.from(unset()))\n  }\n\n  //this keeps track of which component is requesting an asset\n  const [isLoading, setIsLoading] = useState(false)\n\n  useEffect(() => {\n    const setAsset = (asset: Record<string, any>) => {\n      onChange(PatchEvent.from(asset ? set(asset) : unset()))\n    }\n\n    const handleMessageEvent = async (event: MessageEvent) => {\n      // Ensure only messages from the Aprimo Content Selector are handled\n      if (tenantName && event.origin === `https://${tenantName || ''}.dam.aprimo.com`) {\n        //if cancel, get out of fetching state\n        if (event.data.result === 'cancel') {\n          setIsLoading(false)\n        } else if (event.data.selection && event.data.selection[0] && isLoading) {\n          if (_key) {\n            setAsset({...event.data.selection[0], _key})\n          } else {\n            setAsset(event.data.selection[0])\n          }\n          setIsLoading(false)\n        }\n      }\n    }\n\n    window.addEventListener('message', handleMessageEvent)\n    //cleanup\n    return () => window.removeEventListener('message', handleMessageEvent)\n  }, [tenantName, isLoading, _key, onChange])\n\n  const action = () => {\n    const selectType = schemaType.name === 'aprimo.cdnasset' ? 'singlerendition' : 'singlefile'\n    setIsLoading(true)\n    openSelector(tenantName, selectType)\n  }\n\n  const preview = useMemo(() => {\n    if (value && schemaType.name === 'aprimo.cdnasset' && isAprimoCDNAsset(value)) {\n      return <AprimoCDNPreview value={value} layout=\"default\" />\n    } else if (value && schemaType.name === 'aprimo.asset' && isAprimoAsset(value)) {\n      return <AprimoFilePreview value={value} tenantName={tenantName} />\n    }\n    return null\n  }, [tenantName, schemaType, value])\n\n  if (!tenantName) {\n    return (\n      <Box padding={3}>\n        <Card padding={4} radius={2} shadow={1} tone=\"caution\">\n          <Text>\n            The tenant name has not been set in the configuration for the Aprimo plugin. Please add\n            a tenant name.\n          </Text>\n        </Card>\n      </Box>\n    )\n  }\n\n  return (\n    <Box>\n      <Box>{preview}</Box>\n      <Grid gap={1} style={{gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))'}}>\n        <Button disabled={readOnly} mode=\"ghost\" title=\"Select an asset\" onClick={action}>\n          Select…\n        </Button>\n        <Button\n          disabled={readOnly || !value}\n          color=\"danger\"\n          mode=\"ghost\"\n          title=\"Remove asset\"\n          onClick={removeValue}\n        >\n          Remove\n        </Button>\n      </Grid>\n    </Box>\n  )\n}\n","import {defineType} from 'sanity'\n\nexport const AprimoAdditionalFileSchema = defineType({\n  name: 'aprimo.additionalFile',\n  title: 'Aprimo Additional File',\n  type: 'object',\n  fields: [\n    {\n      name: 'additionalFileId',\n      title: 'Additional File ID',\n      type: 'string',\n    },\n    {\n      name: 'fileName',\n      title: 'File Name',\n      type: 'string',\n    },\n    {\n      name: 'label',\n      title: 'Label',\n      type: 'string',\n    },\n    {\n      name: 'type',\n      title: 'Type',\n      type: 'string',\n    },\n  ],\n})\n","import {AprimoWidget} from '../components/AprimoWidget'\n\nexport const AprimoAssetSchema = {\n  type: 'object',\n  name: 'aprimo.asset',\n  title: 'Aprimo Asset',\n  fields: [\n    {\n      type: 'string',\n      name: 'id',\n    },\n    {\n      type: 'string',\n      name: 'title',\n    },\n    {\n      type: 'aprimo.additionalFile',\n      name: 'additionalFile',\n    },\n  ],\n  components: {\n    input: AprimoWidget,\n  },\n}\n","import {DiffFromTo, type SchemaType} from 'sanity'\n\nimport {AprimoCDNPreview} from './AprimoCDNPreview'\n\n//@TODO: HUGE\nexport function AprimoDiff({\n  diff,\n  schemaType,\n}: {\n  diff: any\n  schemaType: SchemaType\n}): React.JSX.Element {\n  return <DiffFromTo diff={diff} schemaType={schemaType} previewComponent={AprimoCDNPreview} />\n}\n","import {AprimoDiff} from '../components/AprimoDiff'\nimport {AprimoWidget} from '../components/AprimoWidget'\n\nexport const AprimoCDNAssetSchema = {\n  type: 'object',\n  name: 'aprimo.cdnasset',\n  title: 'Aprimo CDN Asset',\n  fields: [\n    {\n      type: 'string',\n      name: 'id',\n    },\n    {\n      type: 'string',\n      name: 'title',\n    },\n    {\n      type: 'object',\n      name: 'rendition',\n      fields: [\n        {\n          type: 'string',\n          name: 'publicuri',\n        },\n      ],\n    },\n  ],\n  components: {\n    input: AprimoWidget,\n    diff: AprimoDiff,\n  },\n  preview: {\n    select: {\n      url: 'rendition.publicuri',\n      title: 'title',\n    },\n    prepare({url, title}: {url: string; title: string}) {\n      return {\n        title,\n        media: <img src={url} alt=\"\" style={{height: '100%', width: '100%'}} />,\n      }\n    },\n  },\n}\n","import {definePlugin, isObjectInputProps, type SchemaType} from 'sanity'\n\nimport {AprimoWidget} from './components/AprimoWidget'\nimport {AprimoAdditionalFileSchema} from './schema/AdditionalFile'\nimport {AprimoAssetSchema} from './schema/AprimoAsset'\nimport {AprimoCDNAssetSchema} from './schema/AprimoCDNAsset'\nimport type {AprimoCDNAsset, AprimoConfig} from './types'\n\nexport const aprimoPlugin = definePlugin((config: Partial<AprimoConfig>) => {\n  const reqConfig: AprimoConfig = {\n    tenantName: '',\n    ...config,\n  }\n\n  return {\n    name: 'aprimo-assets',\n    schema: {\n      types: [AprimoCDNAssetSchema, AprimoAdditionalFileSchema, AprimoAssetSchema],\n    },\n    form: {\n      components: {\n        input: (props) => {\n          if (\n            isObjectInputProps(props) &&\n            (isType(props.schemaType, AprimoCDNAssetSchema.name) ||\n              isType(props.schemaType, AprimoAssetSchema.name))\n          ) {\n            return (\n              // @ts-expect-error - TODO: fix this\n              <AprimoWidget\n                {...props}\n                // oxlint-disable-next-line no-unsafe-type-assertion\n                value={props.value as AprimoCDNAsset}\n                pluginConfig={reqConfig}\n              />\n            )\n          }\n          //add array check here to render the widget in array\n          return props.renderDefault(props)\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":["{\n  value,\n  layout = 'block',\n}: ComponentProps","layout = 'block'","{\n            maxWidth: layout === 'block' ? '80px' : '100%',\n            height: 'auto',\n          }","layout === 'block' ? '80px' : '100%'","<Box>\n        <img\n          alt={`preview for ${value?.title}`}\n          src={url}\n          style={{\n            maxWidth: layout === 'block' ? '80px' : '100%',\n            height: 'auto',\n          }}\n        />\n      </Box>","`preview for ${value?.title}`","{value, tenantName}: AprimoFilePreviewProps","() => {\n    window.open(damUrl, '_blank')\n  }","useCallback(() => {\n    window.open(damUrl, '_blank')\n  }, [damUrl])","<Label as=\"p\">Aprimo File Asset</Label>","<Stack gap={3}>\n            <Label as=\"p\">Aprimo File Asset</Label>\n            <Text as=\"p\">{assetName}</Text>\n          </Stack>","<Stack>\n            {/* ADD launch icon */}\n            <Button\n              tone=\"primary\"\n              as={'a'}\n              href={damUrl}\n              target={`_blank`}\n              onClick={onClick}\n              text={'View'}\n            />\n          </Stack>","<Box paddingY={1}>\n      <Card paddingY={3} paddingX={3} radius={1} shadow={1}>\n        <Flex align=\"center\" justify=\"space-between\" gap={1}>\n          <Stack gap={3}>\n            <Label as=\"p\">Aprimo File Asset</Label>\n            <Text as=\"p\">{assetName}</Text>\n          </Stack>\n          <Stack>\n            {/* ADD launch icon */}\n            <Button\n              tone=\"primary\"\n              as={'a'}\n              href={damUrl}\n              target={`_blank`}\n              onClick={onClick}\n              text={'View'}\n            />\n          </Stack>\n        </Flex>\n      </Card>\n    </Box>","{tenantName}","() => {\n    onChange(PatchEvent.from(unset()))\n  }","() => {\n    const setAsset = (asset: Record<string, any>) => {\n      onChange(PatchEvent.from(asset ? set(asset) : unset()))\n    }\n\n    const handleMessageEvent = async (event: MessageEvent) => {\n      // Ensure only messages from the Aprimo Content Selector are handled\n      if (tenantName && event.origin === `https://${tenantName || ''}.dam.aprimo.com`) {\n        //if cancel, get out of fetching state\n        if (event.data.result === 'cancel') {\n          setIsLoading(false)\n        } else if (event.data.selection && event.data.selection[0] && isLoading) {\n          if (_key) {\n            setAsset({...event.data.selection[0], _key})\n          } else {\n            setAsset(event.data.selection[0])\n          }\n          setIsLoading(false)\n        }\n      }\n    }\n\n    window.addEventListener('message', handleMessageEvent)\n    //cleanup\n    return () => window.removeEventListener('message', handleMessageEvent)\n  }","[tenantName, isLoading, _key, onChange]","() => {\n    const selectType = schemaType.name === 'aprimo.cdnasset' ? 'singlerendition' : 'singlefile'\n    setIsLoading(true)\n    openSelector(tenantName, selectType)\n  }","name","useMemo(() => {\n    if (value && schemaType.name === 'aprimo.cdnasset' && isAprimoCDNAsset(value)) {\n      return <AprimoCDNPreview value={value} layout=\"default\" />\n    } else if (value && schemaType.name === 'aprimo.asset' && isAprimoAsset(value)) {\n      return <AprimoFilePreview value={value} tenantName={tenantName} />\n    }\n    return null\n  }, [tenantName, schemaType, value])","<AprimoCDNPreview value={value} layout=\"default\" />","<AprimoFilePreview value={value} tenantName={tenantName} />","<Box padding={3}>\n        <Card padding={4} radius={2} shadow={1} tone=\"caution\">\n          <Text>\n            The tenant name has not been set in the configuration for the Aprimo plugin. Please add\n            a tenant name.\n          </Text>\n        </Card>\n      </Box>","<Box>{preview}</Box>","{gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))'}","<Button disabled={readOnly} mode=\"ghost\" title=\"Select an asset\" onClick={action}>\n          Select…\n        </Button>","<Button\n          disabled={readOnly || !value}\n          color=\"danger\"\n          mode=\"ghost\"\n          title=\"Remove asset\"\n          onClick={removeValue}\n        >\n          Remove\n        </Button>","readOnly || !value","<Grid gap={1} style={{gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))'}}>\n        <Button disabled={readOnly} mode=\"ghost\" title=\"Select an asset\" onClick={action}>\n          Select…\n        </Button>\n        <Button\n          disabled={readOnly || !value}\n          color=\"danger\"\n          mode=\"ghost\"\n          title=\"Remove asset\"\n          onClick={removeValue}\n        >\n          Remove\n        </Button>\n      </Grid>","<Box>\n      <Box>{preview}</Box>\n      <Grid gap={1} style={{gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))'}}>\n        <Button disabled={readOnly} mode=\"ghost\" title=\"Select an asset\" onClick={action}>\n          Select…\n        </Button>\n        <Button\n          disabled={readOnly || !value}\n          color=\"danger\"\n          mode=\"ghost\"\n          title=\"Remove asset\"\n          onClick={removeValue}\n        >\n          Remove\n        </Button>\n      </Grid>\n    </Box>","{\n  diff,\n  schemaType,\n}: {\n  diff: any\n  schemaType: SchemaType\n}","<DiffFromTo diff={diff} schemaType={schemaType} previewComponent={AprimoCDNPreview} />"],"sources":["../src/utils.ts","../src/components/AprimoCDNPreview.tsx","../src/components/AprimoFilePreview.tsx","../src/components/AprimoWidget.tsx","../src/schema/AdditionalFile.ts","../src/schema/AprimoAsset.ts","../src/components/AprimoDiff.tsx","../src/schema/AprimoCDNAsset.tsx","../src/plugin.tsx"],"sourcesContent":["export const openSelector = (tenantName: string, selectType: string): void => {\n  let assetType = 'asset rendition'\n  switch (selectType) {\n    case 'singlefile':\n      assetType = 'asset file'\n      break\n    case 'multiple':\n      assetType = 'asset renditions'\n      break\n    default:\n      assetType = 'asset rendition'\n  }\n\n  const selectorOptions = {\n    title: `Select ${assetType}`,\n    description: `Select the ${assetType} you'd like to bring into this document`,\n    accept: `Use ${assetType}`,\n    select: selectType,\n  }\n\n  const params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,\n  width=1000,height=600,left=100,top=100`\n\n  const encodedOptions = btoa(JSON.stringify(selectorOptions))\n  window.open(\n    `https://${tenantName}.dam.aprimo.com/dam/selectcontent#options=${encodedOptions}`,\n    'selector',\n    params,\n  )\n}\n","import {Box} from '@sanity/ui'\n\nimport type {AprimoCDNAsset} from '../types'\n\ntype ComponentProps = {\n  layout?: 'default' | 'block'\n  value: AprimoCDNAsset\n  title?: string\n}\n\nexport function AprimoCDNPreview({\n  value,\n  layout = 'block',\n}: ComponentProps): React.JSX.Element | null {\n  const url = value?.rendition?.publicuri\n  if (url) {\n    return (\n      <Box>\n        <img\n          alt={`preview for ${value?.title}`}\n          src={url}\n          style={{\n            maxWidth: layout === 'block' ? '80px' : '100%',\n            height: 'auto',\n          }}\n        />\n      </Box>\n    )\n  }\n  return null\n}\n","import {Card, Box, Flex, Stack, Text, Label, Button} from '@sanity/ui'\nimport {useCallback} from 'react'\n\nimport type {AprimoAsset} from '../types'\n\ninterface AprimoFilePreviewProps {\n  value: AprimoAsset\n  tenantName: string\n}\n\nexport function AprimoFilePreview({value, tenantName}: AprimoFilePreviewProps): React.JSX.Element {\n  const {title, additionalFile, id} = value\n  const assetName = additionalFile?.fileName || title || 'No name'\n  const damUrl = `https://${tenantName}.dam.aprimo.com/Assets/Records/${id}`\n  const onClick = useCallback(() => {\n    window.open(damUrl, '_blank')\n  }, [damUrl])\n  return (\n    <Box paddingY={1}>\n      <Card paddingY={3} paddingX={3} radius={1} shadow={1}>\n        <Flex align=\"center\" justify=\"space-between\" gap={1}>\n          <Stack gap={3}>\n            <Label as=\"p\">Aprimo File Asset</Label>\n            <Text as=\"p\">{assetName}</Text>\n          </Stack>\n          <Stack>\n            {/* ADD launch icon */}\n            <Button\n              tone=\"primary\"\n              as={'a'}\n              href={damUrl}\n              target={`_blank`}\n              onClick={onClick}\n              text={'View'}\n            />\n          </Stack>\n        </Flex>\n      </Card>\n    </Box>\n  )\n}\n","import {Box, Button, Card, Grid, Text} from '@sanity/ui'\nimport {useEffect, useState, useMemo} from 'react'\nimport {PatchEvent, type ObjectInputProps, set, unset} from 'sanity'\n\nimport type {AprimoCDNAsset, AprimoAsset, AprimoConfig} from '../types'\nimport {openSelector} from '../utils'\nimport {AprimoCDNPreview} from './AprimoCDNPreview'\nimport {AprimoFilePreview} from './AprimoFilePreview'\n\nconst isAprimoCDNAsset = (value: AprimoCDNAsset | AprimoAsset): value is AprimoCDNAsset => {\n  return value && value.hasOwnProperty('rendition')\n}\n\nconst isAprimoAsset = (value: AprimoCDNAsset | AprimoAsset): value is AprimoAsset => {\n  //the ID is all we need to construct a link back to Aprimo\n  return value && value.hasOwnProperty('id')\n}\n\nexport interface AprimoWidgetProps extends ObjectInputProps<AprimoCDNAsset | AprimoAsset> {\n  pluginConfig: AprimoConfig\n}\n\nexport function AprimoWidget(props: AprimoWidgetProps): React.JSX.Element {\n  const {\n    value,\n    readOnly,\n    onChange,\n    schemaType,\n    pluginConfig: {tenantName},\n  } = props\n\n  const _key = value?._key\n  const removeValue = () => {\n    onChange(PatchEvent.from(unset()))\n  }\n\n  //this keeps track of which component is requesting an asset\n  const [isLoading, setIsLoading] = useState(false)\n\n  useEffect(() => {\n    const setAsset = (asset: Record<string, any>) => {\n      onChange(PatchEvent.from(asset ? set(asset) : unset()))\n    }\n\n    const handleMessageEvent = async (event: MessageEvent) => {\n      // Ensure only messages from the Aprimo Content Selector are handled\n      if (tenantName && event.origin === `https://${tenantName || ''}.dam.aprimo.com`) {\n        //if cancel, get out of fetching state\n        if (event.data.result === 'cancel') {\n          setIsLoading(false)\n        } else if (event.data.selection && event.data.selection[0] && isLoading) {\n          if (_key) {\n            setAsset({...event.data.selection[0], _key})\n          } else {\n            setAsset(event.data.selection[0])\n          }\n          setIsLoading(false)\n        }\n      }\n    }\n\n    window.addEventListener('message', handleMessageEvent)\n    //cleanup\n    return () => window.removeEventListener('message', handleMessageEvent)\n  }, [tenantName, isLoading, _key, onChange])\n\n  const action = () => {\n    const selectType = schemaType.name === 'aprimo.cdnasset' ? 'singlerendition' : 'singlefile'\n    setIsLoading(true)\n    openSelector(tenantName, selectType)\n  }\n\n  const preview = useMemo(() => {\n    if (value && schemaType.name === 'aprimo.cdnasset' && isAprimoCDNAsset(value)) {\n      return <AprimoCDNPreview value={value} layout=\"default\" />\n    } else if (value && schemaType.name === 'aprimo.asset' && isAprimoAsset(value)) {\n      return <AprimoFilePreview value={value} tenantName={tenantName} />\n    }\n    return null\n  }, [tenantName, schemaType, value])\n\n  if (!tenantName) {\n    return (\n      <Box padding={3}>\n        <Card padding={4} radius={2} shadow={1} tone=\"caution\">\n          <Text>\n            The tenant name has not been set in the configuration for the Aprimo plugin. Please add\n            a tenant name.\n          </Text>\n        </Card>\n      </Box>\n    )\n  }\n\n  return (\n    <Box>\n      <Box>{preview}</Box>\n      <Grid gap={1} style={{gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))'}}>\n        <Button disabled={readOnly} mode=\"ghost\" title=\"Select an asset\" onClick={action}>\n          Select…\n        </Button>\n        <Button\n          disabled={readOnly || !value}\n          color=\"danger\"\n          mode=\"ghost\"\n          title=\"Remove asset\"\n          onClick={removeValue}\n        >\n          Remove\n        </Button>\n      </Grid>\n    </Box>\n  )\n}\n","import {defineType} from 'sanity'\n\nexport const AprimoAdditionalFileSchema = defineType({\n  name: 'aprimo.additionalFile',\n  title: 'Aprimo Additional File',\n  type: 'object',\n  fields: [\n    {\n      name: 'additionalFileId',\n      title: 'Additional File ID',\n      type: 'string',\n    },\n    {\n      name: 'fileName',\n      title: 'File Name',\n      type: 'string',\n    },\n    {\n      name: 'label',\n      title: 'Label',\n      type: 'string',\n    },\n    {\n      name: 'type',\n      title: 'Type',\n      type: 'string',\n    },\n  ],\n})\n","import {AprimoWidget} from '../components/AprimoWidget'\n\nexport const AprimoAssetSchema = {\n  type: 'object',\n  name: 'aprimo.asset',\n  title: 'Aprimo Asset',\n  fields: [\n    {\n      type: 'string',\n      name: 'id',\n    },\n    {\n      type: 'string',\n      name: 'title',\n    },\n    {\n      type: 'aprimo.additionalFile',\n      name: 'additionalFile',\n    },\n  ],\n  components: {\n    input: AprimoWidget,\n  },\n}\n","import {DiffFromTo, type SchemaType} from 'sanity'\n\nimport {AprimoCDNPreview} from './AprimoCDNPreview'\n\n//@TODO: HUGE\nexport function AprimoDiff({\n  diff,\n  schemaType,\n}: {\n  diff: any\n  schemaType: SchemaType\n}): React.JSX.Element {\n  return <DiffFromTo diff={diff} schemaType={schemaType} previewComponent={AprimoCDNPreview} />\n}\n","import {AprimoDiff} from '../components/AprimoDiff'\nimport {AprimoWidget} from '../components/AprimoWidget'\n\nexport const AprimoCDNAssetSchema = {\n  type: 'object',\n  name: 'aprimo.cdnasset',\n  title: 'Aprimo CDN Asset',\n  fields: [\n    {\n      type: 'string',\n      name: 'id',\n    },\n    {\n      type: 'string',\n      name: 'title',\n    },\n    {\n      type: 'object',\n      name: 'rendition',\n      fields: [\n        {\n          type: 'string',\n          name: 'publicuri',\n        },\n      ],\n    },\n  ],\n  components: {\n    input: AprimoWidget,\n    diff: AprimoDiff,\n  },\n  preview: {\n    select: {\n      url: 'rendition.publicuri',\n      title: 'title',\n    },\n    prepare({url, title}: {url: string; title: string}) {\n      return {\n        title,\n        media: <img src={url} alt=\"\" style={{height: '100%', width: '100%'}} />,\n      }\n    },\n  },\n}\n","import {definePlugin, isObjectInputProps, type SchemaType} from 'sanity'\n\nimport {AprimoWidget} from './components/AprimoWidget'\nimport {AprimoAdditionalFileSchema} from './schema/AdditionalFile'\nimport {AprimoAssetSchema} from './schema/AprimoAsset'\nimport {AprimoCDNAssetSchema} from './schema/AprimoCDNAsset'\nimport type {AprimoCDNAsset, AprimoConfig} from './types'\n\nexport const aprimoPlugin = definePlugin((config: Partial<AprimoConfig>) => {\n  const reqConfig: AprimoConfig = {\n    tenantName: '',\n    ...config,\n  }\n\n  return {\n    name: 'aprimo-assets',\n    schema: {\n      types: [AprimoCDNAssetSchema, AprimoAdditionalFileSchema, AprimoAssetSchema],\n    },\n    form: {\n      components: {\n        input: (props) => {\n          if (\n            isObjectInputProps(props) &&\n            (isType(props.schemaType, AprimoCDNAssetSchema.name) ||\n              isType(props.schemaType, AprimoAssetSchema.name))\n          ) {\n            return (\n              // @ts-expect-error - TODO: fix this\n              <AprimoWidget\n                {...props}\n                // oxlint-disable-next-line no-unsafe-type-assertion\n                value={props.value as AprimoCDNAsset}\n                pluginConfig={reqConfig}\n              />\n            )\n          }\n          //add array check here to render the widget in array\n          return props.renderDefault(props)\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