sanity-plugin-cloudinary 0.2.2 → 1.0.0-v3-studio.2
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/LICENSE +1 -1
- package/README.md +160 -66
- package/lib/cjs/index.js +708 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/esm/index.js +697 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/types/index.d.ts +22 -0
- package/lib/types/index.d.ts.map +1 -0
- package/package.json +66 -41
- package/sanity.json +3 -15
- package/src/arrayFunctions.tsx +71 -0
- package/src/components/AssetDiff.tsx +44 -0
- package/src/components/AssetPreview.tsx +41 -0
- package/src/components/CloudinaryInput.tsx +61 -0
- package/src/components/SecretsConfigView.tsx +39 -0
- package/src/components/VideoPlayer.tsx +62 -0
- package/src/components/WidgetInput.tsx +66 -0
- package/src/components/asset-source/CloudinaryAssetSource.tsx +155 -0
- package/src/components/asset-source/Icon.tsx +93 -0
- package/src/index.ts +30 -0
- package/src/schema/cloudinaryAsset.ts +99 -0
- package/src/schema/cloudinaryAssetDerived.ts +26 -0
- package/src/typings.d.ts +74 -0
- package/src/utils.ts +115 -0
- package/v2-incompatible.js +11 -0
- package/dist/arrayFunctions.js +0 -82
- package/dist/arrayFunctions.js.map +0 -1
- package/dist/components/AssetDiff.js +0 -62
- package/dist/components/AssetDiff.js.map +0 -1
- package/dist/components/AssetPreview.js +0 -46
- package/dist/components/AssetPreview.js.map +0 -1
- package/dist/components/CloudinaryInput.js +0 -90
- package/dist/components/CloudinaryInput.js.map +0 -1
- package/dist/components/SecretsConfigView.js +0 -37
- package/dist/components/SecretsConfigView.js.map +0 -1
- package/dist/components/VideoPlayer.js +0 -70
- package/dist/components/VideoPlayer.js.map +0 -1
- package/dist/components/WidgetInput.js +0 -87
- package/dist/components/WidgetInput.js.map +0 -1
- package/dist/index.js +0 -24
- package/dist/index.js.map +0 -1
- package/dist/schema/cloudinary.js +0 -19
- package/dist/schema/cloudinary.js.map +0 -1
- package/dist/schema/cloudinaryAsset.js +0 -100
- package/dist/schema/cloudinaryAsset.js.map +0 -1
- package/dist/schema/cloudinaryAssetDerived.js +0 -22
- package/dist/schema/cloudinaryAssetDerived.js.map +0 -1
- package/dist/typings.d.js +0 -8
- package/dist/typings.d.js.map +0 -1
- package/dist/utils.js +0 -92
- package/dist/utils.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["src/index.ts","src/schema/cloudinaryAsset.ts","src/components/CloudinaryInput.tsx","src/components/WidgetInput.tsx","src/components/AssetPreview.tsx","src/components/VideoPlayer.tsx","src/utils.ts","src/components/SecretsConfigView.tsx","src/components/AssetDiff.tsx","src/schema/cloudinaryAssetDerived.ts","src/components/asset-source/Icon.tsx","src/components/asset-source/CloudinaryAssetSource.tsx"],"sourcesContent":["import {cloudinaryAssetSchema} from './schema/cloudinaryAsset'\nimport {cloudinaryAssetDerivedSchema} from './schema/cloudinaryAssetDerived'\nimport {createPlugin, AssetSource} from 'sanity'\nimport {CloudinaryIcon} from './components/asset-source/Icon'\nimport {CloudinaryAssetSource} from './components/asset-source/CloudinaryAssetSource'\n\nexport {cloudinaryAssetSchema, cloudinaryAssetDerivedSchema}\n\nexport const cloudinarySchemaPlugin = createPlugin({\n name: 'cloudinary-schema',\n schema: {\n types: [cloudinaryAssetSchema, cloudinaryAssetDerivedSchema],\n },\n})\n\nexport const cloudinaryImageSource: AssetSource = {\n name: 'cloudinary-image',\n title: 'Cloudinary',\n icon: CloudinaryIcon,\n component: CloudinaryAssetSource,\n}\n\nexport const cloudinaryAssetSourcePlugin = createPlugin({\n name: 'cloudinart-asset-source',\n form: {\n image: {\n assetSources: [cloudinaryImageSource],\n },\n },\n})\n","/* eslint-disable */\nimport CloudinaryInput from '../components/CloudinaryInput'\nimport AssetDiff from '../components/AssetDiff'\nimport AssetPreview from '../components/AssetPreview'\nimport {defineType} from 'sanity'\n\nexport const cloudinaryAssetSchema = defineType({\n type: 'object',\n name: 'cloudinary.asset',\n fields: [\n {\n type: 'string',\n name: 'public_id',\n },\n {\n type: 'string',\n name: 'resource_type',\n // \"image\", \"?\"\n },\n {\n type: 'string',\n name: 'type',\n // \"upload\", \"?\"\n },\n {\n type: 'string',\n name: 'format',\n // \"jpg\"\n },\n {\n type: 'number',\n name: 'version',\n },\n {\n type: 'url',\n name: 'url',\n },\n {\n type: 'url',\n name: 'secure_url',\n },\n {\n type: 'number',\n name: 'width',\n },\n {\n type: 'number',\n name: 'height',\n },\n {\n type: 'number',\n name: 'bytes',\n },\n {\n type: 'number',\n name: 'duration',\n // can be null\n },\n {\n type: 'array',\n name: 'tags',\n of: [{type: 'string'}],\n },\n {\n type: 'datetime',\n name: 'created_at',\n },\n {\n type: 'array',\n name: 'derived',\n of: [{type: 'cloudinary.assetDerived'}],\n },\n {\n type: 'string',\n name: 'access_mode',\n },\n // context array of unknown content\n // metadata array of unknown content\n ],\n components: {\n input: CloudinaryInput,\n diff: AssetDiff,\n preview: AssetPreview,\n },\n preview: {\n select: {\n url: 'url',\n resource_type: 'resource_type',\n derived: 'derived.0.url',\n },\n prepare({url, derived, resource_type}) {\n return {\n title: url,\n resource_type,\n url: derived || url,\n }\n },\n },\n})\n","import React, {useCallback, useState} from 'react'\nimport WidgetInput from './WidgetInput'\nimport {nanoid} from 'nanoid'\nimport {ObjectInputProps, PatchEvent, set} from 'sanity'\nimport {CloudinaryAsset} from '../typings'\nimport {useSecrets} from '@sanity/studio-secrets'\nimport {InsertHandlerParams} from '../typings'\nimport {openMediaSelector} from '../utils'\nimport SecretsConfigView, {namespace, Secrets} from './SecretsConfigView'\n\nconst CloudinaryInput = (props: ObjectInputProps) => {\n const [showSettings, setShowSettings] = useState(false)\n const {secrets} = useSecrets<Secrets>(namespace)\n const {onChange, schemaType: type} = props\n const value = (props.value as CloudinaryAsset) || undefined\n\n const handleSelect = useCallback(\n (payload: InsertHandlerParams) => {\n const [asset] = payload.assets\n if (!asset) {\n return\n }\n\n onChange(\n PatchEvent.from([\n set(\n Object.assign(\n {\n _type: type.name,\n _version: 1,\n ...(value?._key ? {_key: value._key} : {_key: nanoid()}),\n },\n asset\n )\n ),\n ])\n )\n },\n [onChange, type, value?._key]\n )\n\n const action = secrets\n ? () =>\n openMediaSelector(\n secrets.cloudName,\n secrets.apiKey,\n false, // single selection\n handleSelect,\n value\n )\n : () => setShowSettings(true)\n\n return (\n <>\n {showSettings && <SecretsConfigView onClose={() => setShowSettings(false)} />}\n <WidgetInput onSetup={() => setShowSettings(true)} openMediaSelector={action} {...props} />\n </>\n )\n}\n\nexport default CloudinaryInput\n","import React, {useCallback} from 'react'\nimport {ObjectInputProps, PatchEvent, unset} from 'sanity'\nimport {Button, Flex, Grid, Stack} from '@sanity/ui'\nimport {PlugIcon} from '@sanity/icons'\nimport styled from 'styled-components'\nimport AssetPreview from './AssetPreview'\nimport {CloudinaryAsset} from '../typings'\n\nconst SetupButtonContainer = styled.div`\n position: relative;\n display: block;\n font-size: 0.8em;\n transform: translate(0%, -10%);\n`\n\ntype WidgetInputProps = ObjectInputProps & {openMediaSelector: () => void; onSetup: () => void}\n\nconst WidgetInput = (props: WidgetInputProps) => {\n const {onChange, readOnly, value, openMediaSelector} = props\n\n const removeValue = useCallback(() => {\n onChange(PatchEvent.from([unset()]))\n }, [onChange])\n\n return (\n <Stack>\n <SetupButtonContainer>\n <Flex flex={1} justify=\"flex-end\">\n <Button\n color=\"primary\"\n icon={PlugIcon}\n mode=\"bleed\"\n title=\"Configure\"\n onClick={props.onSetup}\n tabIndex={1}\n />\n </Flex>\n </SetupButtonContainer>\n\n <Flex style={{textAlign: 'center'}} marginBottom={2}>\n <AssetPreview value={value as CloudinaryAsset} />\n </Flex>\n\n <Grid gap={1} style={{gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))'}}>\n <Button\n disabled={readOnly}\n mode=\"ghost\"\n title=\"Select an asset\"\n tone=\"default\"\n onClick={openMediaSelector}\n text=\"Select…\"\n />\n <Button\n disabled={readOnly || !value}\n tone=\"critical\"\n mode=\"ghost\"\n title=\"Remove asset\"\n text=\"Remove\"\n onClick={removeValue}\n />\n </Grid>\n </Stack>\n )\n}\n\nexport default WidgetInput\n","import React from 'react'\nimport VideoPlayer from './VideoPlayer'\nimport {assetUrl} from '../utils'\nimport {Box} from '@sanity/ui'\nimport {CloudinaryAsset} from '../typings'\n\ntype ComponentProps = {\n layout?: 'default' | 'block'\n value: CloudinaryAsset | undefined\n}\n\nconst AssetPreview = ({value, layout}: ComponentProps) => {\n const url = value && assetUrl(value)\n if (!value || !url) {\n return null\n }\n\n switch (value.resource_type) {\n case 'video':\n return (\n <Box>\n <VideoPlayer src={url} kind=\"player\" />\n </Box>\n )\n default:\n return (\n <Box>\n <img\n alt=\"preview\"\n src={url}\n style={{\n maxWidth: layout === 'default' ? '80px' : '100%',\n height: 'auto',\n }}\n />\n </Box>\n )\n }\n}\n\nexport default AssetPreview\n","import React, { CSSProperties } from 'react';\nimport videojs, { VideoJsPlayer } from 'video.js';\n\ntype PlayerKind = 'player' | 'diff';\n\nexport type VideoPlayerProps = {\n src: string;\n kind: PlayerKind;\n};\n\nexport default class VideoPlayer extends React.Component<\n VideoPlayerProps,\n any\n> {\n videoNode?: HTMLVideoElement;\n player?: VideoJsPlayer;\n\n componentDidMount() {\n const { src } = this.props;\n this.player = videojs(this.videoNode, {\n sources: [{ src }],\n controls: true,\n });\n }\n\n componentWillUnmount() {\n if (this.player) {\n this.player.dispose();\n }\n }\n\n render() {\n const { kind } = this.props;\n const className: Record<PlayerKind, string> = {\n player: 'video-js vjs-16-9 vjs-big-play-centered',\n diff: 'video-js vjs-layout-tiny vjs-fluid',\n };\n\n const style: CSSProperties = { position: 'relative' };\n\n return (\n <div>\n <link\n href=\"https://vjs.zencdn.net/7.8.4/video-js.css\"\n rel=\"stylesheet\"\n />\n <div data-vjs-player>\n <video\n onClick={event => event.stopPropagation()}\n style={kind === 'diff' ? style : {}}\n className={className[kind]}\n ref={node => {\n if (node) {\n this.videoNode = node;\n }\n }}\n ></video>\n </div>\n </div>\n );\n }\n}\n","/* eslint-disable camelcase */\nimport {\n CloudinaryAsset,\n CloudinaryAssetResponse,\n CloudinaryMediaLibrary,\n InsertHandlerParams,\n} from './typings'\n\nconst widgetSrc = 'https://media-library.cloudinary.com/global/all.js'\n\nexport function assetUrl(asset: CloudinaryAsset) {\n if (asset.derived && asset.derived.length > 0) {\n const [derived] = asset.derived\n if (derived.secure_url) {\n return derived.secure_url\n }\n return derived.url\n }\n if (asset.secure_url) {\n return asset.secure_url\n }\n return asset.url\n}\n\nexport const openMediaSelector = (\n cloudName: string,\n apiKey: string,\n multiple: boolean,\n insertHandler: (params: InsertHandlerParams) => void,\n selectedAsset?: CloudinaryAsset\n) => {\n loadJS(widgetSrc, () => {\n const options: Record<string, any> = {\n cloud_name: cloudName,\n api_key: apiKey,\n insert_caption: 'Select',\n multiple,\n }\n\n if (selectedAsset) {\n options.asset = {\n public_id: selectedAsset.public_id,\n type: selectedAsset.type,\n resource_type: selectedAsset.resource_type,\n }\n }\n\n window.cloudinary.openMediaLibrary(options, {insertHandler})\n })\n}\n\nexport const createMediaLibrary = ({\n cloudName,\n apiKey,\n inlineContainer,\n libraryCreated,\n insertHandler,\n}: {\n cloudName: string\n apiKey: string\n inlineContainer: string\n libraryCreated: (library: CloudinaryMediaLibrary) => void\n insertHandler: (params: InsertHandlerParams) => void\n}) => {\n loadJS(widgetSrc, () => {\n const options: Record<string, any> = {\n cloud_name: cloudName,\n api_key: apiKey,\n insert_caption: 'Select',\n inline_container: inlineContainer,\n remove_header: true,\n }\n\n libraryCreated(window.cloudinary.createMediaLibrary(options, {insertHandler}))\n })\n}\n\nexport function loadJS(url: string, callback: () => void) {\n const existingScript = document.getElementById('damWidget')\n if (!existingScript) {\n const script = document.createElement('script')\n script.src = url\n script.id = 'damWidget'\n document.body.appendChild(script)\n script.onload = () => {\n if (callback) {\n return callback()\n }\n return true\n }\n }\n if (existingScript && callback) {\n return callback()\n }\n return true\n}\n\nexport function encodeSourceId(asset: CloudinaryAssetResponse): string {\n const {resource_type, public_id, type} = asset\n return btoa(JSON.stringify({public_id, resource_type, type})) // Sort keys alphabetically!\n}\n\nexport function encodeFilename(asset: CloudinaryAssetResponse) {\n return `${asset.public_id.split('/').slice(-1)[0]}.${asset.format}`\n}\n\nexport function decodeSourceId(sourceId: string): CloudinaryAssetResponse | undefined {\n let sourceIdDecoded: any\n try {\n sourceIdDecoded = JSON.parse(atob(sourceId))\n } catch (err) {\n // Do nothing\n }\n return sourceIdDecoded\n}\n","import React from 'react'\nimport {SettingsView} from '@sanity/studio-secrets'\n\nexport type Secrets = {\n cloudName: string\n apiKey: string\n}\n\nconst pluginConfigKeys = [\n {\n key: 'cloudName',\n title: 'Cloud name',\n description: '',\n },\n {\n key: 'apiKey',\n title: 'API key',\n description: '',\n },\n]\n\nexport const namespace = 'cloudinary'\n\ntype Props = {\n onClose: () => void\n}\n\nconst SecretsConfigView = (props: Props) => {\n return (\n <SettingsView\n title=\"Cloudinary config\"\n namespace={namespace}\n keys={pluginConfigKeys}\n onClose={props.onClose}\n />\n )\n}\n\nexport default SecretsConfigView\n","import React from 'react'\nimport {DiffFromTo} from 'sanity'\nimport VideoPlayer from './VideoPlayer'\nimport {assetUrl} from '../utils'\nimport {CloudinaryAsset} from '../typings'\n\ntype Props = {\n value: CloudinaryAsset | undefined\n}\n\nconst CloudinaryDiffPreview = ({value}: Props) => {\n if (!value) {\n return null\n }\n\n const url = assetUrl(value)\n\n if (value.resource_type === 'video') {\n return (\n <section\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n }}\n >\n <VideoPlayer src={url} kind=\"diff\" />\n </section>\n )\n }\n\n return <img alt=\"preview\" src={url} style={{maxWidth: '100%', height: 'auto'}} />\n}\n\ntype DiffProps = {\n diff: any\n schemaType: any\n}\n\nconst AssetDiff = ({diff, schemaType}: DiffProps) => {\n return <DiffFromTo diff={diff} schemaType={schemaType} previewComponent={CloudinaryDiffPreview} />\n}\n\nexport default AssetDiff\n","import {defineType} from 'sanity'\n\nexport type CloudinaryAssetDerived = {\n raw_transformation: string\n url: string\n secure_url: string\n}\n\nexport const cloudinaryAssetDerivedSchema = defineType({\n type: 'object',\n name: 'cloudinary.assetDerived',\n fields: [\n {\n type: 'string',\n name: 'raw_transformation',\n },\n {\n type: 'url',\n name: 'url',\n },\n {\n type: 'url',\n name: 'secure_url',\n },\n ],\n})\n","import React from 'react'\n\nexport function CloudinaryIcon() {\n return (\n <svg\n version=\"1.1\"\n id=\"Layer_1\"\n x=\"0px\"\n y=\"0px\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 141.732 141.747\"\n enableBackground=\"new 0 0 141.732 141.747\"\n >\n <g>\n <path\n fill=\"#0071CE\"\n d=\"M115.585,109.242c-1.609,0-3.107-1.024-3.635-2.637c-0.657-2.008,0.438-4.169,2.447-4.826\n c7.278-2.382,11.98-8.761,11.98-16.252c0-9.487-7.718-17.206-17.205-17.206c-0.659,0-1.368,0.052-2.231,0.164l-3.741,0.485\n l-0.537-3.735c-2.299-16.016-16.251-28.094-32.454-28.094c-13.395,0-25.32,8.019-30.377,20.43l-0.952,2.335l-2.52,0.046\n c-11.581,0.213-21.003,9.804-21.003,21.379c0,8.45,4.906,16.156,12.498,19.631c1.921,0.88,2.766,3.15,1.886,5.071\n c-0.88,1.921-3.149,2.764-5.07,1.887C14.363,103.202,7.703,92.766,7.703,81.331c0-14.88,11.465-27.345,26.028-28.876\n c6.71-14.03,20.773-22.965,36.477-22.965c18.796,0,35.135,13.178,39.372,31.184c13.519,0.219,24.45,11.284,24.45,24.854\n c0,10.693-6.934,20.146-17.253,23.523C116.382,109.18,115.98,109.242,115.585,109.242z\"\n />\n <path\n fill=\"#DC8327\"\n d=\"M57.12,111.02c-0.001-0.001-0.001-0.001-0.002-0.001c-0.001,0-0.002-0.001-0.003-0.001h-0.001\n c0,0-0.001-0.001-0.001-0.001l-0.001-0.001c0,0-0.001,0-0.001-0.001h-0.001l-0.001-0.001c0.001-0.001-0.001-0.001-0.001-0.001\n l-0.001-0.001c0,0-0.001,0-0.001,0l-0.001-0.001c0.001,0.001-0.001-0.001-0.001-0.001s-0.002-0.001-0.003-0.001l-0.001-0.001H57.1\n c-0.001-0.001-0.001-0.001-0.001-0.001l-0.001-0.001c-0.003-0.001-0.002-0.001-0.003-0.001c-0.001,0.001-0.001-0.001-0.002-0.001\n l-0.001-0.001c0,0-0.001-0.001-0.002-0.001l-0.001-0.001c-0.001-0.001-0.003-0.001-0.004-0.001s-0.003-0.001-0.004-0.001\n c-0.001-0.001-0.001-0.001-0.002-0.001h-0.001c-0.001-0.001-0.002-0.001-0.003-0.001c-0.001-0.001-0.003-0.001-0.003-0.001\n c-0.001,0-0.001,0-0.001,0l-0.002-0.001c-0.001,0-0.001-0.001-0.001-0.001h-0.001c-0.059-0.021-0.122-0.034-0.188-0.037h-0.002\n h-0.002c-0.001,0-0.001,0-0.002,0c0,0,0,0-0.001,0c0,0-0.001,0-0.001,0h-0.001c-0.001-0.001-0.001-0.001-0.001-0.001\n c-0.001,0-0.002,0-0.002,0c-0.001,0-0.002,0-0.002,0h-0.001h-0.001h-0.001c-0.001,0-0.002,0-0.002,0h-0.001H56.86h-0.001h-0.001\n c-0.001,0-0.001,0-0.001,0h-0.001h-0.001h-0.001h-0.001c-0.001,0-0.001,0-0.001,0c-1.656,0-3.011-1.348-3.021-3V74.29h2.567\n c0.004,0,0.009,0,0.013,0c0.393,0.017,0.661-0.285,0.661-0.648c0-0.271-0.166-0.503-0.402-0.6l-12.379-8.544\n c-0.222-0.153-0.515-0.153-0.737,0l-12.476,8.611c-0.234,0.161-0.335,0.456-0.251,0.727c0.085,0.271,0.335,0.455,0.619,0.455h2.58\n l0.002,33.674c0.013,2.328,1.883,4.228,4.262,4.288c0.027,0.003,0.053,0.005,0.08,0.005h18.481c0.004,0,0.007,0,0.011,0\n c0.17-0.003,0.324-0.071,0.438-0.18c0,0,0,0,0.001-0.001c0.002-0.002,0.004-0.004,0.005-0.005c0.001-0.001,0.002-0.001,0.003-0.003\n c0,0,0.001-0.001,0.001-0.001l0.001-0.001l0.001-0.001l0.001-0.001l0.001-0.001c0.001-0.001,0.001-0.001,0.001-0.001\n c0.002-0.001,0.001-0.001,0.002-0.002c0,0,0,0,0.001-0.001l0.001-0.001c0,0,0,0,0.001-0.001c0.112-0.116,0.182-0.273,0.183-0.447\n v-0.002v-0.001v-0.001v-0.001v-0.001v-0.001v-0.001v-0.002C57.498,111.345,57.343,111.121,57.12,111.02z\"\n />\n <path\n fill=\"#F4B21B\"\n d=\"M83.889,111.02c0,0-0.001-0.001-0.002-0.001c-0.001,0-0.002-0.001-0.003-0.001h-0.001\n c-0.001-0.001-0.001-0.001-0.001-0.001l-0.001-0.001h-0.001c0,0-0.001-0.001-0.001-0.001c0,0-0.001-0.001-0.001-0.001\n c0.001-0.001-0.001-0.001-0.002-0.001l-0.001-0.001h-0.001c-0.001,0-0.001-0.001-0.001-0.001c-0.002,0.001-0.002-0.001-0.002-0.001\n l-0.002-0.001l-0.001-0.001h-0.001c0,0-0.001-0.001-0.001-0.001l-0.001-0.001c-0.001-0.001-0.002-0.001-0.002-0.001\n c-0.001,0.001-0.001-0.001-0.003-0.001l-0.001-0.001l-0.001-0.001c0,0-0.001,0-0.002-0.001c-0.001-0.001-0.003-0.001-0.004-0.001\n s-0.003-0.001-0.004-0.001c-0.001-0.001-0.001-0.001-0.002-0.001c-0.001,0-0.001,0-0.002-0.001c0,0-0.001,0-0.002-0.001\n c-0.003-0.001-0.001-0.001-0.002-0.001c-0.003,0-0.001,0-0.002-0.001c0,0-0.001-0.001-0.002-0.001l-0.001-0.001h-0.001\n c-0.059-0.021-0.122-0.034-0.188-0.037h-0.002c-0.001,0-0.001,0-0.001,0c-0.001,0-0.002,0-0.002,0s-0.001,0-0.001,0h-0.001h-0.001\n l-0.001-0.001c-0.001,0-0.002,0-0.002,0c-0.001,0-0.002,0-0.002,0h-0.001c-0.001,0-0.001,0-0.001,0h-0.001\n c-0.001,0-0.002,0-0.002,0s-0.001,0-0.002,0h-0.001c0,0-0.001,0-0.001,0h-0.001c-0.001,0-0.001,0-0.001,0h-0.001h-0.001h-0.001\n h-0.001c-0.001,0-0.001,0-0.001,0c-1.655,0-3.01-1.348-3.02-3V81.829h2.579c0.009-0.001,0.016-0.001,0.026,0\n c0.358,0,0.648-0.29,0.648-0.648c0-0.271-0.166-0.503-0.402-0.6l-12.38-8.544c-0.222-0.153-0.515-0.153-0.737,0L57.86,80.647\n c-0.234,0.161-0.335,0.456-0.251,0.727c0.085,0.271,0.335,0.455,0.619,0.455h2.568l0.002,26.135\n c0.011,2.329,1.884,4.23,4.264,4.289c0.026,0.003,0.052,0.004,0.078,0.004h18.481c0.004,0,0.007,0,0.011,0\n c0.17-0.003,0.324-0.071,0.438-0.18c0,0,0,0,0.001-0.001c0.002-0.002,0.006-0.004,0.005-0.005c0.001-0.001,0.002-0.001,0.003-0.003\n c0.001-0.001,0.001-0.001,0.001-0.001l0.001-0.001l0.001-0.001c0,0,0.001,0,0.001-0.001l0.001-0.001\n c0.001,0,0.001-0.001,0.001-0.001c0.003-0.001,0.002-0.001,0.002-0.002c0,0,0,0,0.001-0.001c0,0,0,0,0.001-0.001\n c0,0,0,0,0.001-0.001c0.112-0.116,0.182-0.273,0.183-0.447v-0.002v-0.001v-0.001v-0.001v-0.001v-0.001v-0.001v-0.002\n C84.267,111.345,84.112,111.121,83.889,111.02z\"\n />\n <path\n fill=\"#F2D864\"\n d=\"M110.667,111.02l-0.002-0.001c-0.001,0-0.002-0.001-0.003-0.001h-0.001\n c-0.001-0.001-0.001-0.001-0.001-0.001l-0.001-0.001c-0.001,0-0.001,0-0.001-0.001h-0.001l-0.001-0.001\n c-0.001-0.001-0.001-0.001-0.001-0.001s-0.001,0-0.001-0.001h-0.001c0,0-0.001-0.001-0.001-0.001\n c-0.001,0.001-0.001-0.001-0.002-0.001c0.001-0.001-0.001-0.001-0.002-0.001l-0.001-0.001c-0.001,0-0.001,0-0.001,0\n c-0.001-0.001-0.001-0.001-0.001-0.001l-0.001-0.001c-0.003-0.001-0.002-0.001-0.002-0.001c-0.001,0.001-0.001-0.001-0.003-0.001\n l-0.001-0.001c0.001-0.001-0.001-0.001-0.002-0.001c0,0-0.001,0-0.001-0.001c-0.001-0.001-0.003-0.001-0.004-0.001\n s-0.003-0.001-0.004-0.001l-0.002-0.001c0,0-0.001,0-0.002-0.001l-0.002-0.001c-0.003-0.001-0.003-0.001-0.002-0.001\n c-0.003,0-0.003,0-0.002-0.001c-0.001,0-0.001-0.001-0.001-0.001c-0.001,0-0.002-0.001-0.002-0.001h-0.001\n c-0.059-0.021-0.122-0.034-0.188-0.037h-0.001c-0.001,0-0.002,0-0.002,0c-0.001,0-0.002,0-0.003,0h-0.001h-0.001h-0.001\n c-0.001-0.001-0.001-0.001-0.002-0.001c0,0-0.001,0-0.002,0c0,0-0.001,0-0.002,0h-0.001c0,0-0.001,0-0.001,0h-0.001\n c-0.001,0-0.002,0-0.002,0h-0.002c0,0,0,0-0.001,0c0,0-0.001,0-0.001,0h-0.001c0,0-0.001,0-0.001,0h-0.001h-0.001h-0.001H110.4\n c0,0-0.001,0-0.001,0c-1.655,0-3.01-1.348-3.02-3V89.365h2.573c0.004,0,0.009,0,0.013,0c0.365-0.009,0.661-0.285,0.661-0.648\n c0-0.271-0.166-0.503-0.402-0.6l-12.38-8.544c-0.221-0.153-0.515-0.153-0.737,0l-12.476,8.61c-0.234,0.161-0.335,0.456-0.251,0.727\n c0.085,0.271,0.335,0.455,0.619,0.455h2.573l0.002,18.599c0.013,2.329,1.885,4.231,4.264,4.289\n c0.026,0.003,0.052,0.004,0.078,0.004h18.481c0.004,0,0.007,0,0.011,0c0.17-0.003,0.324-0.071,0.438-0.18l0.001-0.001\n c0.002-0.002,0.005-0.004,0.005-0.005c0.001-0.001,0.002-0.001,0.003-0.003c0,0,0.001-0.001,0.001-0.001l0.001-0.001l0.001-0.001\n l0.001-0.001l0.001-0.001l0.001-0.001c0.003-0.001,0.001-0.001,0.002-0.002c0,0,0,0,0.001-0.001l0.001-0.001c0,0,0,0,0.001-0.001\n c0.112-0.116,0.182-0.273,0.183-0.447v-0.002v-0.001v-0.001v-0.001v-0.001v-0.001v-0.001v-0.002\n C111.045,111.345,110.889,111.121,110.667,111.02z\"\n />\n </g>\n </svg>\n )\n}\n","/* eslint-disable camelcase */\nimport React, {useCallback, useEffect, useRef, useState} from 'react'\nimport {Box, Button, Dialog, Flex, Spinner, Stack, Text} from '@sanity/ui'\nimport {CloudinaryMediaLibrary, InsertHandlerParams} from '../../typings'\nimport {createMediaLibrary, decodeSourceId, encodeFilename, encodeSourceId} from '../../utils'\nimport styled from 'styled-components'\nimport {useSecrets} from '@sanity/studio-secrets'\nimport SecretsConfigView, {namespace, Secrets} from '../SecretsConfigView'\nimport {AssetSourceComponentProps, ImageAsset} from 'sanity'\nimport {PlugIcon} from '@sanity/icons'\n\nexport const Widget = styled.div`\n height: 70vh;\n`\n\nexport function CloudinaryAssetSource(props: AssetSourceComponentProps) {\n const {onClose} = props\n\n const [loadingMessage, setLoadingMessage] = useState<string | undefined>(\n 'Loading Cloudinary Media Libary'\n )\n const library = useRef<CloudinaryMediaLibrary | undefined>()\n const contentRef = useRef<HTMLDivElement | null>(null)\n const {secrets} = useSecrets<Secrets>(namespace)\n const cloudName = secrets?.cloudName\n const apiKey = secrets?.apiKey\n const [widgetId] = useState(() => `cloundinaryWidget-${Date.now()}`)\n const [showSettings, setShowSettings] = useState(false)\n\n const propsRef = useRef(props)\n\n useEffect(() => {\n // because we have to access props after loading js in a callback,\n // we cannot pass props as dependecnies as that will cause infinite updates\n // this takes a snapshot of props, so we can access them later\n propsRef.current = props\n }, [props])\n\n const handleClose = useCallback(() => {\n if (library.current) {\n library.current.hide()\n }\n onClose()\n }, [onClose, library])\n\n useEffect(() => {\n if (!cloudName || !apiKey) {\n return\n }\n\n createMediaLibrary({\n cloudName,\n apiKey,\n inlineContainer: `#${widgetId}`,\n libraryCreated: (lib: CloudinaryMediaLibrary) => {\n library.current = lib\n const selectedAssets = propsRef.current.selectedAssets\n const firstSelectedAsset = selectedAssets ? selectedAssets[0] : null\n\n // eslint-disable-next-line no-undef\n const iframe: ChildNode | null | undefined =\n contentRef.current && contentRef.current.firstChild\n if (iframe && iframe instanceof HTMLIFrameElement) {\n setLoadingMessage(undefined)\n let asset\n if (\n propsRef.current.selectionType === 'single' &&\n firstSelectedAsset &&\n firstSelectedAsset.source &&\n firstSelectedAsset.source.id\n ) {\n asset = decodeSourceId(firstSelectedAsset.source.id)\n }\n const folder = asset\n ? {\n path: asset.public_id.split('/').slice(0, -1).join('/'),\n resource_type: 'image',\n }\n : {path: '', resource_type: 'image'}\n if (lib && contentRef.current) {\n lib.show({folder, asset})\n contentRef.current.style.visibility = 'visible'\n }\n }\n },\n insertHandler: ({assets}: InsertHandlerParams) => {\n if (!library.current) {\n return\n }\n const imageAssets = assets.filter((asset) => asset.resource_type === 'image')\n if (imageAssets.length === 0) {\n throw new Error('The selection did not contain any images.')\n }\n library.current.hide()\n propsRef.current.onSelect(\n imageAssets.map((asset) => {\n const url =\n asset.derived && asset.derived[0] ? asset.derived[0].secure_url : asset.secure_url\n return {\n kind: 'url',\n value: url,\n assetDocumentProps: {\n _type: 'sanity.imageAsset',\n originalFilename: encodeFilename(asset),\n source: {\n id: encodeSourceId(asset),\n name: `cloudinary:${cloudName}`,\n },\n } as ImageAsset,\n }\n })\n )\n },\n })\n }, [cloudName, apiKey, widgetId])\n\n const hasConfig = apiKey && cloudName\n return (\n <Dialog\n id=\"cloudinary-asset-source\"\n header=\"Select image from Cloudinary\"\n onClose={handleClose}\n open\n width={4}\n >\n <Box padding={4}>\n {showSettings && <SecretsConfigView onClose={() => setShowSettings(false)} />}\n <Flex flex={1} justify=\"flex-end\">\n <Button\n color=\"primary\"\n icon={PlugIcon}\n mode=\"bleed\"\n title=\"Configure\"\n onClick={() => setShowSettings(true)}\n tabIndex={1}\n text={hasConfig ? undefined : 'Configure Cloudinary plugin'}\n />\n </Flex>\n\n {hasConfig && loadingMessage && (\n <Stack space={3}>\n <Flex align=\"center\" justify=\"center\">\n <Spinner muted />\n </Flex>\n <Text size={1} muted align=\"center\">\n {loadingMessage}\n </Text>\n </Stack>\n )}\n\n <Widget style={{visibility: 'hidden'}} ref={contentRef} id={widgetId} />\n </Box>\n </Dialog>\n )\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../"}
|