sanity-plugin-utils 1.5.0 → 1.6.1

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/lib/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import {CardProps} from '@sanity/ui'
2
2
  import {CardTone} from '@sanity/ui'
3
3
  import type {ImageUrlBuilder} from 'sanity'
4
+ import {ListenQueryOptions} from 'sanity'
5
+ import {ListenQueryParams} from 'sanity'
4
6
  import {PropsWithChildren} from 'react'
5
7
  import {default as React_2} from 'react'
6
8
  import type {SanityImageSource} from '@sanity/asset-utils'
@@ -9,7 +11,7 @@ import type {SourceClientOptions} from 'sanity'
9
11
  export declare function Cell(props: TableCellProps): JSX.Element
10
12
 
11
13
  declare interface Config<V> {
12
- params: Params
14
+ params?: ListenQueryParams
13
15
  options?: ListenQueryOptions
14
16
  initialValue?: null | V
15
17
  }
@@ -45,16 +47,9 @@ declare type Labels = {
45
47
  notFound?: string
46
48
  }
47
49
 
48
- declare interface ListenQueryOptions {
49
- tag?: string
50
- apiVersion?: string
51
- }
52
-
53
- declare type Params = Record<string, string | number | boolean | string[]>
54
-
55
- declare interface Return<V> {
50
+ declare interface Return<V = Value> {
56
51
  loading: boolean
57
- error: boolean
52
+ error: boolean | unknown | ProgressEvent
58
53
  data: null | V
59
54
  initialValue?: Value
60
55
  }
package/lib/index.esm.js CHANGED
@@ -669,7 +669,7 @@ function useImageUrlBuilderImage(source, clientOptions) {
669
669
  }
670
670
  const DEFAULT_PARAMS = {};
671
671
  const DEFAULT_OPTIONS = {
672
- apiVersion: "v2022-05-09"
672
+ apiVersion: "v2023-05-01"
673
673
  };
674
674
  const DEFAULT_INITIAL_VALUE = null;
675
675
  function useListeningQuery(query, _ref) {
@@ -684,24 +684,33 @@ function useListeningQuery(query, _ref) {
684
684
  const subscription = useRef(null);
685
685
  const documentStore = useDocumentStore();
686
686
  useEffect(() => {
687
- if (query) {
688
- subscription.current = documentStore.listenQuery(query, params, options).pipe(distinctUntilChanged(isEqual), catchError(err => {
687
+ if (query && !error) {
688
+ try {
689
+ subscription.current = documentStore.listenQuery(query, params, options).pipe(distinctUntilChanged(isEqual), catchError(err => {
690
+ console.error(err);
691
+ setError(err);
692
+ setLoading(false);
693
+ setData(null);
694
+ return err;
695
+ })).subscribe(documents => {
696
+ setData(current => isEqual(current, documents) ? current : documents);
697
+ setLoading(false);
698
+ setError(false);
699
+ });
700
+ } catch (err) {
689
701
  console.error(err);
690
- setError(err);
691
- setLoading(false);
692
- setData(null);
693
- return err;
694
- })).subscribe(documents => {
695
- setData(current => isEqual(current, documents) ? current : documents);
696
702
  setLoading(false);
697
- setError(false);
698
- });
703
+ setError(err);
704
+ }
705
+ }
706
+ if (error && subscription.current) {
707
+ subscription.current.unsubscribe();
699
708
  }
700
709
  return () => {
701
710
  var _a;
702
711
  return (_a = subscription == null ? void 0 : subscription.current) == null ? void 0 : _a.unsubscribe();
703
712
  };
704
- }, [query, params, options, documentStore]);
713
+ }, [query, error, params, options, documentStore]);
705
714
  return {
706
715
  data,
707
716
  loading,
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../node_modules/@sanity/image-url/lib/node/parseAssetId.js","../node_modules/@sanity/image-url/lib/node/parseSource.js","../node_modules/@sanity/image-url/lib/node/urlForImage.js","../node_modules/@sanity/image-url/lib/node/builder.js","../node_modules/@sanity/image-url/lib/node/index.js","../src/hooks/useImageUrlBuilder.tsx","../src/hooks/useImageUrlBuilderImage.tsx","../src/hooks/useListeningQuery.tsx","../src/hooks/useProjectUsers.tsx","../src/hooks/useOpenInNewPane.tsx","../src/components/Feedback.tsx","../src/components/Table.tsx","../src/components/UserSelectMenu/index.tsx"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar example = 'image-Tb9Ew8CXIwaY6R1kjMvI0uRR-2000x3000-jpg';\nfunction parseAssetId(ref) {\n var _a = ref.split('-'), id = _a[1], dimensionString = _a[2], format = _a[3];\n if (!id || !dimensionString || !format) {\n throw new Error(\"Malformed asset _ref '\".concat(ref, \"'. Expected an id like \\\"\").concat(example, \"\\\".\"));\n }\n var _b = dimensionString.split('x'), imgWidthStr = _b[0], imgHeightStr = _b[1];\n var width = +imgWidthStr;\n var height = +imgHeightStr;\n var isValidAssetId = isFinite(width) && isFinite(height);\n if (!isValidAssetId) {\n throw new Error(\"Malformed asset _ref '\".concat(ref, \"'. Expected an id like \\\"\").concat(example, \"\\\".\"));\n }\n return { id: id, width: width, height: height, format: format };\n}\nexports.default = parseAssetId;\n//# sourceMappingURL=parseAssetId.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isRef = function (src) {\n var source = src;\n return source ? typeof source._ref === 'string' : false;\n};\nvar isAsset = function (src) {\n var source = src;\n return source ? typeof source._id === 'string' : false;\n};\nvar isAssetStub = function (src) {\n var source = src;\n return source && source.asset ? typeof source.asset.url === 'string' : false;\n};\n// Convert an asset-id, asset or image to an image record suitable for processing\n// eslint-disable-next-line complexity\nfunction parseSource(source) {\n if (!source) {\n return null;\n }\n var image;\n if (typeof source === 'string' && isUrl(source)) {\n // Someone passed an existing image url?\n image = {\n asset: { _ref: urlToId(source) },\n };\n }\n else if (typeof source === 'string') {\n // Just an asset id\n image = {\n asset: { _ref: source },\n };\n }\n else if (isRef(source)) {\n // We just got passed an asset directly\n image = {\n asset: source,\n };\n }\n else if (isAsset(source)) {\n // If we were passed an image asset document\n image = {\n asset: {\n _ref: source._id || '',\n },\n };\n }\n else if (isAssetStub(source)) {\n // If we were passed a partial asset (`url`, but no `_id`)\n image = {\n asset: {\n _ref: urlToId(source.asset.url),\n },\n };\n }\n else if (typeof source.asset === 'object') {\n // Probably an actual image with materialized asset\n image = __assign({}, source);\n }\n else {\n // We got something that does not look like an image, or it is an image\n // that currently isn't sporting an asset.\n return null;\n }\n var img = source;\n if (img.crop) {\n image.crop = img.crop;\n }\n if (img.hotspot) {\n image.hotspot = img.hotspot;\n }\n return applyDefaults(image);\n}\nexports.default = parseSource;\nfunction isUrl(url) {\n return /^https?:\\/\\//.test(\"\".concat(url));\n}\nfunction urlToId(url) {\n var parts = url.split('/').slice(-1);\n return \"image-\".concat(parts[0]).replace(/\\.([a-z]+)$/, '-$1');\n}\n// Mock crop and hotspot if image lacks it\nfunction applyDefaults(image) {\n if (image.crop && image.hotspot) {\n return image;\n }\n // We need to pad in default values for crop or hotspot\n var result = __assign({}, image);\n if (!result.crop) {\n result.crop = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n };\n }\n if (!result.hotspot) {\n result.hotspot = {\n x: 0.5,\n y: 0.5,\n height: 1.0,\n width: 1.0,\n };\n }\n return result;\n}\n//# sourceMappingURL=parseSource.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseSource = exports.SPEC_NAME_TO_URL_NAME_MAPPINGS = void 0;\nvar parseAssetId_1 = __importDefault(require(\"./parseAssetId\"));\nvar parseSource_1 = __importDefault(require(\"./parseSource\"));\nexports.parseSource = parseSource_1.default;\nexports.SPEC_NAME_TO_URL_NAME_MAPPINGS = [\n ['width', 'w'],\n ['height', 'h'],\n ['format', 'fm'],\n ['download', 'dl'],\n ['blur', 'blur'],\n ['sharpen', 'sharp'],\n ['invert', 'invert'],\n ['orientation', 'or'],\n ['minHeight', 'min-h'],\n ['maxHeight', 'max-h'],\n ['minWidth', 'min-w'],\n ['maxWidth', 'max-w'],\n ['quality', 'q'],\n ['fit', 'fit'],\n ['crop', 'crop'],\n ['saturation', 'sat'],\n ['auto', 'auto'],\n ['dpr', 'dpr'],\n ['pad', 'pad'],\n];\nfunction urlForImage(options) {\n var spec = __assign({}, (options || {}));\n var source = spec.source;\n delete spec.source;\n var image = (0, parseSource_1.default)(source);\n if (!image) {\n throw new Error(\"Unable to resolve image URL from source (\".concat(JSON.stringify(source), \")\"));\n }\n var id = image.asset._ref || image.asset._id || '';\n var asset = (0, parseAssetId_1.default)(id);\n // Compute crop rect in terms of pixel coordinates in the raw source image\n var cropLeft = Math.round(image.crop.left * asset.width);\n var cropTop = Math.round(image.crop.top * asset.height);\n var crop = {\n left: cropLeft,\n top: cropTop,\n width: Math.round(asset.width - image.crop.right * asset.width - cropLeft),\n height: Math.round(asset.height - image.crop.bottom * asset.height - cropTop),\n };\n // Compute hot spot rect in terms of pixel coordinates\n var hotSpotVerticalRadius = (image.hotspot.height * asset.height) / 2;\n var hotSpotHorizontalRadius = (image.hotspot.width * asset.width) / 2;\n var hotSpotCenterX = image.hotspot.x * asset.width;\n var hotSpotCenterY = image.hotspot.y * asset.height;\n var hotspot = {\n left: hotSpotCenterX - hotSpotHorizontalRadius,\n top: hotSpotCenterY - hotSpotVerticalRadius,\n right: hotSpotCenterX + hotSpotHorizontalRadius,\n bottom: hotSpotCenterY + hotSpotVerticalRadius,\n };\n // If irrelevant, or if we are requested to: don't perform crop/fit based on\n // the crop/hotspot.\n if (!(spec.rect || spec.focalPoint || spec.ignoreImageParams || spec.crop)) {\n spec = __assign(__assign({}, spec), fit({ crop: crop, hotspot: hotspot }, spec));\n }\n return specToImageUrl(__assign(__assign({}, spec), { asset: asset }));\n}\nexports.default = urlForImage;\n// eslint-disable-next-line complexity\nfunction specToImageUrl(spec) {\n var cdnUrl = (spec.baseUrl || 'https://cdn.sanity.io').replace(/\\/+$/, '');\n var filename = \"\".concat(spec.asset.id, \"-\").concat(spec.asset.width, \"x\").concat(spec.asset.height, \".\").concat(spec.asset.format);\n var baseUrl = \"\".concat(cdnUrl, \"/images/\").concat(spec.projectId, \"/\").concat(spec.dataset, \"/\").concat(filename);\n var params = [];\n if (spec.rect) {\n // Only bother url with a crop if it actually crops anything\n var _a = spec.rect, left = _a.left, top_1 = _a.top, width = _a.width, height = _a.height;\n var isEffectiveCrop = left !== 0 || top_1 !== 0 || height !== spec.asset.height || width !== spec.asset.width;\n if (isEffectiveCrop) {\n params.push(\"rect=\".concat(left, \",\").concat(top_1, \",\").concat(width, \",\").concat(height));\n }\n }\n if (spec.bg) {\n params.push(\"bg=\".concat(spec.bg));\n }\n if (spec.focalPoint) {\n params.push(\"fp-x=\".concat(spec.focalPoint.x));\n params.push(\"fp-y=\".concat(spec.focalPoint.y));\n }\n var flip = [spec.flipHorizontal && 'h', spec.flipVertical && 'v'].filter(Boolean).join('');\n if (flip) {\n params.push(\"flip=\".concat(flip));\n }\n // Map from spec name to url param name, and allow using the actual param name as an alternative\n exports.SPEC_NAME_TO_URL_NAME_MAPPINGS.forEach(function (mapping) {\n var specName = mapping[0], param = mapping[1];\n if (typeof spec[specName] !== 'undefined') {\n params.push(\"\".concat(param, \"=\").concat(encodeURIComponent(spec[specName])));\n }\n else if (typeof spec[param] !== 'undefined') {\n params.push(\"\".concat(param, \"=\").concat(encodeURIComponent(spec[param])));\n }\n });\n if (params.length === 0) {\n return baseUrl;\n }\n return \"\".concat(baseUrl, \"?\").concat(params.join('&'));\n}\nfunction fit(source, spec) {\n var cropRect;\n var imgWidth = spec.width;\n var imgHeight = spec.height;\n // If we are not constraining the aspect ratio, we'll just use the whole crop\n if (!(imgWidth && imgHeight)) {\n return { width: imgWidth, height: imgHeight, rect: source.crop };\n }\n var crop = source.crop;\n var hotspot = source.hotspot;\n // If we are here, that means aspect ratio is locked and fitting will be a bit harder\n var desiredAspectRatio = imgWidth / imgHeight;\n var cropAspectRatio = crop.width / crop.height;\n if (cropAspectRatio > desiredAspectRatio) {\n // The crop is wider than the desired aspect ratio. That means we are cutting from the sides\n var height = Math.round(crop.height);\n var width = Math.round(height * desiredAspectRatio);\n var top_2 = Math.max(0, Math.round(crop.top));\n // Center output horizontally over hotspot\n var hotspotXCenter = Math.round((hotspot.right - hotspot.left) / 2 + hotspot.left);\n var left = Math.max(0, Math.round(hotspotXCenter - width / 2));\n // Keep output within crop\n if (left < crop.left) {\n left = crop.left;\n }\n else if (left + width > crop.left + crop.width) {\n left = crop.left + crop.width - width;\n }\n cropRect = { left: left, top: top_2, width: width, height: height };\n }\n else {\n // The crop is taller than the desired ratio, we are cutting from top and bottom\n var width = crop.width;\n var height = Math.round(width / desiredAspectRatio);\n var left = Math.max(0, Math.round(crop.left));\n // Center output vertically over hotspot\n var hotspotYCenter = Math.round((hotspot.bottom - hotspot.top) / 2 + hotspot.top);\n var top_3 = Math.max(0, Math.round(hotspotYCenter - height / 2));\n // Keep output rect within crop\n if (top_3 < crop.top) {\n top_3 = crop.top;\n }\n else if (top_3 + height > crop.top + crop.height) {\n top_3 = crop.top + crop.height - height;\n }\n cropRect = { left: left, top: top_3, width: width, height: height };\n }\n return {\n width: imgWidth,\n height: imgHeight,\n rect: cropRect,\n };\n}\n//# sourceMappingURL=urlForImage.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImageUrlBuilder = void 0;\nvar urlForImage_1 = __importStar(require(\"./urlForImage\"));\nvar validFits = ['clip', 'crop', 'fill', 'fillmax', 'max', 'scale', 'min'];\nvar validCrops = ['top', 'bottom', 'left', 'right', 'center', 'focalpoint', 'entropy'];\nvar validAutoModes = ['format'];\nfunction isSanityModernClientLike(client) {\n return client && 'config' in client ? typeof client.config === 'function' : false;\n}\nfunction isSanityClientLike(client) {\n return client && 'clientConfig' in client ? typeof client.clientConfig === 'object' : false;\n}\nfunction rewriteSpecName(key) {\n var specs = urlForImage_1.SPEC_NAME_TO_URL_NAME_MAPPINGS;\n for (var _i = 0, specs_1 = specs; _i < specs_1.length; _i++) {\n var entry = specs_1[_i];\n var specName = entry[0], param = entry[1];\n if (key === specName || key === param) {\n return specName;\n }\n }\n return key;\n}\nfunction urlBuilder(options) {\n // Did we get a modernish client?\n if (isSanityModernClientLike(options)) {\n // Inherit config from client\n var _a = options.config(), apiUrl = _a.apiHost, projectId = _a.projectId, dataset = _a.dataset;\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset,\n });\n }\n // Did we get a SanityClient?\n var client = options;\n if (isSanityClientLike(client)) {\n // Inherit config from client\n var _b = client.clientConfig, apiUrl = _b.apiHost, projectId = _b.projectId, dataset = _b.dataset;\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset,\n });\n }\n // Or just accept the options as given\n return new ImageUrlBuilder(null, options);\n}\nexports.default = urlBuilder;\nvar ImageUrlBuilder = /** @class */ (function () {\n function ImageUrlBuilder(parent, options) {\n this.options = parent\n ? __assign(__assign({}, (parent.options || {})), (options || {})) : __assign({}, (options || {})); // Copy options\n }\n ImageUrlBuilder.prototype.withOptions = function (options) {\n var baseUrl = options.baseUrl || this.options.baseUrl;\n var newOptions = { baseUrl: baseUrl };\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n var specKey = rewriteSpecName(key);\n newOptions[specKey] = options[key];\n }\n }\n return new ImageUrlBuilder(this, __assign({ baseUrl: baseUrl }, newOptions));\n };\n // The image to be represented. Accepts a Sanity 'image'-document, 'asset'-document or\n // _id of asset. To get the benefit of automatic hot-spot/crop integration with the content\n // studio, the 'image'-document must be provided.\n ImageUrlBuilder.prototype.image = function (source) {\n return this.withOptions({ source: source });\n };\n // Specify the dataset\n ImageUrlBuilder.prototype.dataset = function (dataset) {\n return this.withOptions({ dataset: dataset });\n };\n // Specify the projectId\n ImageUrlBuilder.prototype.projectId = function (projectId) {\n return this.withOptions({ projectId: projectId });\n };\n // Specify background color\n ImageUrlBuilder.prototype.bg = function (bg) {\n return this.withOptions({ bg: bg });\n };\n // Set DPR scaling factor\n ImageUrlBuilder.prototype.dpr = function (dpr) {\n // A DPR of 1 is the default - so only include it if we have a different value\n return this.withOptions(dpr && dpr !== 1 ? { dpr: dpr } : {});\n };\n // Specify the width of the image in pixels\n ImageUrlBuilder.prototype.width = function (width) {\n return this.withOptions({ width: width });\n };\n // Specify the height of the image in pixels\n ImageUrlBuilder.prototype.height = function (height) {\n return this.withOptions({ height: height });\n };\n // Specify focal point in fraction of image dimensions. Each component 0.0-1.0\n ImageUrlBuilder.prototype.focalPoint = function (x, y) {\n return this.withOptions({ focalPoint: { x: x, y: y } });\n };\n ImageUrlBuilder.prototype.maxWidth = function (maxWidth) {\n return this.withOptions({ maxWidth: maxWidth });\n };\n ImageUrlBuilder.prototype.minWidth = function (minWidth) {\n return this.withOptions({ minWidth: minWidth });\n };\n ImageUrlBuilder.prototype.maxHeight = function (maxHeight) {\n return this.withOptions({ maxHeight: maxHeight });\n };\n ImageUrlBuilder.prototype.minHeight = function (minHeight) {\n return this.withOptions({ minHeight: minHeight });\n };\n // Specify width and height in pixels\n ImageUrlBuilder.prototype.size = function (width, height) {\n return this.withOptions({ width: width, height: height });\n };\n // Specify blur between 0 and 100\n ImageUrlBuilder.prototype.blur = function (blur) {\n return this.withOptions({ blur: blur });\n };\n ImageUrlBuilder.prototype.sharpen = function (sharpen) {\n return this.withOptions({ sharpen: sharpen });\n };\n // Specify the desired rectangle of the image\n ImageUrlBuilder.prototype.rect = function (left, top, width, height) {\n return this.withOptions({ rect: { left: left, top: top, width: width, height: height } });\n };\n // Specify the image format of the image. 'jpg', 'pjpg', 'png', 'webp'\n ImageUrlBuilder.prototype.format = function (format) {\n return this.withOptions({ format: format });\n };\n ImageUrlBuilder.prototype.invert = function (invert) {\n return this.withOptions({ invert: invert });\n };\n // Rotation in degrees 0, 90, 180, 270\n ImageUrlBuilder.prototype.orientation = function (orientation) {\n return this.withOptions({ orientation: orientation });\n };\n // Compression quality 0-100\n ImageUrlBuilder.prototype.quality = function (quality) {\n return this.withOptions({ quality: quality });\n };\n // Make it a download link. Parameter is default filename.\n ImageUrlBuilder.prototype.forceDownload = function (download) {\n return this.withOptions({ download: download });\n };\n // Flip image horizontally\n ImageUrlBuilder.prototype.flipHorizontal = function () {\n return this.withOptions({ flipHorizontal: true });\n };\n // Flip image vertically\n ImageUrlBuilder.prototype.flipVertical = function () {\n return this.withOptions({ flipVertical: true });\n };\n // Ignore crop/hotspot from image record, even when present\n ImageUrlBuilder.prototype.ignoreImageParams = function () {\n return this.withOptions({ ignoreImageParams: true });\n };\n ImageUrlBuilder.prototype.fit = function (value) {\n if (validFits.indexOf(value) === -1) {\n throw new Error(\"Invalid fit mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ fit: value });\n };\n ImageUrlBuilder.prototype.crop = function (value) {\n if (validCrops.indexOf(value) === -1) {\n throw new Error(\"Invalid crop mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ crop: value });\n };\n // Saturation\n ImageUrlBuilder.prototype.saturation = function (saturation) {\n return this.withOptions({ saturation: saturation });\n };\n ImageUrlBuilder.prototype.auto = function (value) {\n if (validAutoModes.indexOf(value) === -1) {\n throw new Error(\"Invalid auto mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ auto: value });\n };\n // Specify the number of pixels to pad the image\n ImageUrlBuilder.prototype.pad = function (pad) {\n return this.withOptions({ pad: pad });\n };\n // Gets the url based on the submitted parameters\n ImageUrlBuilder.prototype.url = function () {\n return (0, urlForImage_1.default)(this.options);\n };\n // Alias for url()\n ImageUrlBuilder.prototype.toString = function () {\n return this.url();\n };\n return ImageUrlBuilder;\n}());\nexports.ImageUrlBuilder = ImageUrlBuilder;\n//# sourceMappingURL=builder.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar builder_1 = __importDefault(require(\"./builder\"));\nmodule.exports = builder_1.default;\n//# sourceMappingURL=index.js.map","import createImageUrlBuilder from '@sanity/image-url'\nimport {useMemo} from 'react'\nimport type {ImageUrlBuilder, SourceClientOptions} from 'sanity'\nimport {useClient} from 'sanity'\n\nexport function useImageUrlBuilder(\n clientOptions?: SourceClientOptions\n): ImageUrlBuilder | null {\n const client = useClient(clientOptions)\n const builder = useMemo(() => createImageUrlBuilder(client), [client])\n\n return builder\n}\n","import type {SanityImageSource} from '@sanity/asset-utils'\nimport {useMemo} from 'react'\nimport type {ImageUrlBuilder, SourceClientOptions} from 'sanity'\n\nimport {useImageUrlBuilder} from './useImageUrlBuilder'\n\nexport function useImageUrlBuilderImage(\n source: SanityImageSource,\n clientOptions?: SourceClientOptions\n): ImageUrlBuilder | null {\n const builder = useImageUrlBuilder(clientOptions)\n const image = useMemo(\n () => (source && builder ? builder.image(source) : null),\n [builder, source]\n )\n\n return image\n}\n","import {useEffect, useState, useRef} from 'react'\nimport {catchError, distinctUntilChanged} from 'rxjs/operators'\nimport isEqual from 'react-fast-compare'\nimport {useDocumentStore} from 'sanity'\nimport {Subscription} from 'rxjs'\n\ntype Params = Record<string, string | number | boolean | string[]>\n\ninterface ListenQueryOptions {\n tag?: string\n apiVersion?: string\n}\n\ntype Value = any\n\ninterface Config<V> {\n params: Params\n options?: ListenQueryOptions\n initialValue?: null | V\n}\n\ninterface Return<V> {\n loading: boolean\n error: boolean\n data: null | V\n initialValue?: Value\n}\n\nconst DEFAULT_PARAMS = {}\nconst DEFAULT_OPTIONS = {apiVersion: `v2022-05-09`}\nconst DEFAULT_INITIAL_VALUE = null\n\nexport function useListeningQuery<V>(\n query: string | {fetch: string; listen: string},\n {\n params = DEFAULT_PARAMS,\n options = DEFAULT_OPTIONS,\n initialValue = DEFAULT_INITIAL_VALUE,\n }: Config<V>\n): Return<V> {\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState(false)\n const [data, setData] = useState(initialValue)\n const subscription = useRef<null | Subscription>(null)\n const documentStore = useDocumentStore()\n\n useEffect(() => {\n if (query) {\n subscription.current = documentStore\n .listenQuery(query, params, options)\n .pipe(\n distinctUntilChanged(isEqual),\n catchError((err) => {\n console.error(err)\n setError(err)\n setLoading(false)\n setData(null)\n\n return err\n })\n )\n .subscribe((documents) => {\n setData((current: Value) => (isEqual(current, documents) ? current : documents))\n setLoading(false)\n setError(false)\n })\n }\n\n return () => subscription?.current?.unsubscribe()\n }, [query, params, options, documentStore])\n\n return {data, loading, error}\n}\n","import {useState, useEffect} from 'react'\nimport {useClient, useWorkspace} from 'sanity'\n\nexport type UserExtended = {\n createdAt: string\n displayName: string\n email: string\n familyName: string\n givenName: string\n id: string\n imageUrl: string\n isCurrentUser: boolean\n middleName: string\n projectId: string\n provider: string\n sanityUserId: string\n updatedAt: string\n}\n\ntype UserRole = {\n name: string\n title: string\n}\n\ntype UserResponse = {\n isRobot: boolean\n projectUserId: string\n roles: UserRole[]\n}\n\ntype HookConfig = {\n apiVersion?: string\n}\n\n// Custom hook to fetch user details\n// Built-in hook doesn't fetch all user details\nexport function useProjectUsers({apiVersion}: HookConfig): UserExtended[] {\n const {currentUser} = useWorkspace()\n const client = useClient({apiVersion: apiVersion ?? '2023-01-01'})\n const [users, setUsers] = useState([])\n\n useEffect(() => {\n const {projectId} = client.config()\n\n async function getUser(id: string) {\n const userDetails = await client.request({\n url: `/projects/${projectId}/users/${id}`,\n })\n\n return userDetails\n }\n\n async function getUsersWithRoles() {\n const userRoles = await client\n .request({\n url: `/projects/${projectId}/acl`,\n })\n .then(async (res) =>\n Promise.all(\n res.map(async (user: UserResponse) => ({\n isCurrentUser: user.projectUserId === currentUser?.id,\n ...(await getUser(user.projectUserId)),\n }))\n )\n )\n .catch((err) => err)\n\n setUsers(userRoles)\n }\n\n if (!users.length) {\n getUsersWithRoles()\n }\n }, [client, currentUser?.id, users.length])\n\n return users\n}\n","import React from 'react'\nimport {usePaneRouter} from 'sanity/desk'\nimport {RouterContext} from 'sanity/router'\n\nexport function useOpenInNewPane(id?: string, type?: string) {\n const routerContext = React.useContext(RouterContext)\n const {routerPanesState, groupIndex} = usePaneRouter()\n\n const openInNewPane = React.useCallback(() => {\n if (!routerContext || !id || !type) {\n return\n }\n\n const panes = [...routerPanesState]\n panes.splice(groupIndex + 1, 0, [\n {\n id: id,\n params: {type},\n },\n ])\n\n const href = routerContext.resolvePathFromState({panes})\n routerContext.navigateUrl({path: href})\n }, [id, type, routerContext, routerPanesState, groupIndex])\n\n return openInNewPane\n}\n","import React from 'react'\nimport {Box, Card, CardTone, Flex, Stack, Text} from '@sanity/ui'\n\ntype FeedbackChildren = {\n children?: React.ReactNode\n title?: never\n description?: never\n}\n\ntype FeedbackTextProps = {\n title?: string\n description?: React.ReactNode\n children?: never\n}\n\ntype FeedbackProps = (FeedbackChildren | FeedbackTextProps) & {\n tone?: CardTone\n icon?: React.ReactNode\n}\n\nconst DEFAULT_PROPS: FeedbackProps = {\n tone: 'primary',\n}\n\nexport function Feedback(props: FeedbackProps) {\n const {title, description, icon, tone, children} = {...DEFAULT_PROPS, ...props}\n\n return (\n <Card tone={tone} padding={4} radius={3} border>\n <Flex>\n {icon ? `display icon` : null}\n {children ? (\n children\n ) : (\n <Box flex={1}>\n <Stack space={4}>\n {title ? <Text weight=\"semibold\">{title}</Text> : null}\n {description ? <Text size={2}>{description}</Text> : null}\n </Stack>\n </Box>\n )}\n </Flex>\n </Card>\n )\n}\n","import {PropsWithChildren} from 'react'\nimport styled, {css} from 'styled-components'\nimport {Card, CardProps} from '@sanity/ui'\n\n// Wrappers required because of bug with passing down \"as\" prop\n// https://github.com/styled-components/styled-components/issues/2449\n\n// Table\nconst TableWrapper = (props: CardProps = {}) => {\n return <Card as=\"table\" {...props} />\n}\n\nconst StyledTable = styled(TableWrapper)(\n () =>\n css`\n display: table;\n width: 100%;\n border-collapse: collapse;\n\n &:not([hidden]) {\n display: table;\n border-collapse: collapse;\n }\n `\n)\n\ntype TableProps = PropsWithChildren<CardProps>\n\nexport function Table(props: TableProps) {\n const {children, ...rest} = props\n\n return <StyledTable {...rest}>{children}</StyledTable>\n}\n\n// Row\nconst RowWrapper = (props: CardProps = {}) => {\n return <Card as=\"tr\" {...props} />\n}\n\nconst StyledRow = styled(RowWrapper)(\n () =>\n css`\n display: table-row;\n\n &:not([hidden]) {\n display: table-row;\n }\n `\n)\n\ntype TableRowProps = PropsWithChildren<CardProps>\n\nexport function Row(props: TableRowProps) {\n const {children, ...rest} = props\n\n return <StyledRow {...rest}>{children}</StyledRow>\n}\n\n// Cell\nconst CellWrapper = (props = {}) => {\n return <Card as=\"td\" {...props} />\n}\n\nconst StyledCell = styled(CellWrapper)(\n () =>\n css`\n display: table-cell;\n\n &:not([hidden]) {\n display: table-cell;\n }\n `\n)\n\ntype TableCellProps = PropsWithChildren<\n CardProps & {\n colSpan?: number\n rowSpan?: number\n }\n>\n\nexport function Cell(props: TableCellProps) {\n const {children, ...rest} = props\n\n return <StyledCell {...rest}>{children}</StyledCell>\n}\n","import React, {useRef} from 'react'\nimport {Box, Text, Menu, MenuItem, TextInput, Flex, Badge} from '@sanity/ui'\nimport {AddCircleIcon, RemoveCircleIcon, RestoreIcon} from '@sanity/icons'\nimport {UserAvatar} from 'sanity'\n\nimport {UserExtended} from '../../hooks/useProjectUsers'\n\nfunction searchUsers(\n users: UserExtended[],\n searchString: string\n): UserExtended[] {\n return users.filter((user) => {\n const displayName = (user.displayName || '').toLowerCase()\n if (displayName.startsWith(searchString)) return true\n const givenName = (user.givenName || '').toLowerCase()\n if (givenName.startsWith(searchString)) return true\n const middleName = (user.middleName || '').toLowerCase()\n if (middleName.startsWith(searchString)) return true\n const familyName = (user.familyName || '').toLowerCase()\n if (familyName.startsWith(searchString)) return true\n\n return false\n })\n}\n\ntype Labels = {\n addMe?: string\n removeMe?: string\n clear?: string\n searchPlaceholder?: string\n notFound?: string\n}\n\ntype UserSelectMenuProps = {\n value: string[]\n userList: UserExtended[]\n onAdd: (userId: string) => void\n onRemove: (userId: string) => void\n onClear: () => void\n labels?: Labels\n style?: React.CSSProperties\n}\n\nconst LABELS: Labels = {\n addMe: 'Assign myself',\n removeMe: 'Unassign myself',\n clear: 'Clear assignees',\n searchPlaceholder: 'Search users',\n notFound: 'No users found',\n}\n\nexport function UserSelectMenu(props: UserSelectMenuProps) {\n const {\n value = [],\n userList = [],\n onAdd,\n onRemove,\n onClear,\n style = {},\n } = props\n const labels = props?.labels ? {...LABELS, ...props.labels} : LABELS\n\n const [searchString, setSearchString] = React.useState('')\n const searchResults = searchUsers(userList || [], searchString)\n\n const me = userList.find((u) => u.isCurrentUser)\n const meAssigned = me && value.includes(me.id)\n\n // Focus input on open\n // TODO: Fix focus, it gets immediately taken away\n const input = useRef<HTMLInputElement>(null)\n // useEffect(() => {\n // if (open && input?.current) {\n // input.current.focus()\n // }\n // }, [open])\n\n const handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchString(event.target.value)\n }\n\n const handleSelect = (isChecked: boolean, user: UserExtended) => {\n if (!isChecked) {\n if (onAdd) onAdd(user.id)\n } else if (onRemove) onRemove(user.id)\n }\n\n const handleAssignMyself = () => {\n if (me && onAdd) onAdd(me.id)\n }\n\n const handleUnassignMyself = () => {\n if (me && onRemove) onRemove(me.id)\n }\n\n const handleClearAssigneesClick = () => {\n if (onClear) onClear()\n }\n\n return (\n <Menu style={style}>\n {meAssigned ? (\n <MenuItem\n tone=\"caution\"\n disabled={!me}\n onClick={handleUnassignMyself}\n icon={RemoveCircleIcon}\n text={labels.removeMe}\n />\n ) : (\n <MenuItem\n tone=\"positive\"\n onClick={handleAssignMyself}\n icon={AddCircleIcon}\n text={labels.addMe}\n />\n )}\n\n <MenuItem\n tone=\"critical\"\n disabled={value.length === 0}\n onClick={handleClearAssigneesClick}\n icon={RestoreIcon}\n text={labels.clear}\n />\n\n <Box padding={1}>\n <TextInput\n ref={input}\n onChange={handleSearchChange}\n placeholder={labels.searchPlaceholder}\n value={searchString}\n />\n </Box>\n\n {searchString && searchResults?.length === 0 && (\n <MenuItem disabled text={labels.notFound} />\n )}\n\n {searchResults &&\n searchResults.map((user) => (\n <MenuItem\n key={user.id}\n pressed={value.includes(user.id)}\n onClick={() => handleSelect(value.indexOf(user.id) > -1, user)}\n >\n <Flex align=\"center\">\n <UserAvatar user={user} size={1} />\n <Box paddingX={2} flex={1}>\n <Text>{user.displayName}</Text>\n </Box>\n {user.isCurrentUser && (\n <Badge fontSize={1} tone=\"positive\" mode=\"outline\">\n Me\n </Badge>\n )}\n </Flex>\n </MenuItem>\n ))}\n </Menu>\n )\n}\n"],"names":["Object","defineProperty","parseAssetId_1","value","example","parseAssetId","ref","_a","split","id","dimensionString","format","Error","concat","_b","imgWidthStr","imgHeightStr","width","height","isValidAssetId","isFinite","default","__assign","this","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","parseSource_1","isRef","src","source","_ref","isAsset","_id","isAssetStub","asset","url","parseSource","image","isUrl","urlToId","img","crop","hotspot","applyDefaults","test","parts","slice","replace","result","left","top","bottom","right","x","y","__importDefault","mod","__esModule","exports","SPEC_NAME_TO_URL_NAME_MAPPINGS","require$$0","require$$1","urlForImage","options","spec","JSON","stringify","cropLeft","Math","round","cropTop","hotSpotVerticalRadius","hotSpotHorizontalRadius","hotSpotCenterX","hotSpotCenterY","rect","focalPoint","ignoreImageParams","fit","specToImageUrl","cdnUrl","baseUrl","filename","projectId","dataset","params","top_1","isEffectiveCrop","push","bg","flip","flipHorizontal","flipVertical","filter","Boolean","join","forEach","mapping","specName","param","encodeURIComponent","cropRect","imgWidth","imgHeight","desiredAspectRatio","cropAspectRatio","top_2","max","hotspotXCenter","hotspotYCenter","top_3","__createBinding","create","o","m","k","k2","undefined","enumerable","get","__setModuleDefault","v","__importStar","builder","ImageUrlBuilder","urlForImage_1","validFits","validCrops","validAutoModes","isSanityModernClientLike","client","config","isSanityClientLike","clientConfig","rewriteSpecName","key","specs","_i","specs_1","entry","urlBuilder","apiUrl","apiHost","parent","withOptions","newOptions","specKey","dpr","maxWidth","minWidth","maxHeight","minHeight","size","blur","sharpen","invert","orientation","quality","forceDownload","download","indexOf","saturation","auto","pad","toString","builder_1","node","useImageUrlBuilder","clientOptions","useClient","useMemo","createImageUrlBuilder","useImageUrlBuilderImage","DEFAULT_PARAMS","DEFAULT_OPTIONS","apiVersion","DEFAULT_INITIAL_VALUE","useListeningQuery","query","initialValue","loading","setLoading","useState","error","setError","data","setData","subscription","useRef","documentStore","useDocumentStore","useEffect","current","listenQuery","pipe","distinctUntilChanged","isEqual","catchError","err","console","subscribe","documents","unsubscribe","useProjectUsers","_ref2","currentUser","useWorkspace","users","setUsers","getUser","userDetails","request","getUsersWithRoles","userRoles","then","res","Promise","all","map","user","isCurrentUser","projectUserId","catch","useOpenInNewPane","type","routerContext","React","useContext","RouterContext","routerPanesState","groupIndex","usePaneRouter","openInNewPane","useCallback","panes","splice","href","resolvePathFromState","navigateUrl","path","DEFAULT_PROPS","tone","Feedback","props","title","description","icon","children","jsx","Card","padding","radius","border","jsxs","Flex","Box","flex","Stack","space","Text","weight","TableWrapper","as","StyledTable","styled","css","_templateObject","_taggedTemplateLiteral","Table","rest","RowWrapper","StyledRow","_templateObject2","Row","CellWrapper","StyledCell","_templateObject3","Cell","searchUsers","searchString","displayName","toLowerCase","startsWith","givenName","middleName","familyName","LABELS","addMe","removeMe","clear","searchPlaceholder","notFound","UserSelectMenu","userList","onAdd","onRemove","onClear","style","labels","setSearchString","searchResults","me","find","u","meAssigned","includes","input","handleSearchChange","event","target","handleSelect","isChecked","handleAssignMyself","handleUnassignMyself","handleClearAssigneesClick","Menu","MenuItem","disabled","onClick","RemoveCircleIcon","text","AddCircleIcon","RestoreIcon","TextInput","onChange","placeholder","pressed","align","UserAvatar","paddingX","Badge","fontSize","mode"],"mappings":";;;;;;;;;;;;;;;;AACAA,MAAM,CAACC,cAAc,CAACC,cAAO,EAAE,YAAY,EAAE;EAAEC,KAAK,EAAE;AAAI,CAAE,CAAC;AAC7D,IAAIC,OAAO,GAAG,8CAA8C;AAC5D,SAASC,YAAYA,CAACC,GAAG,EAAE;EACvB,IAAIC,EAAE,GAAGD,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC;IAAEC,EAAE,GAAGF,EAAE,CAAC,CAAC,CAAC;IAAEG,eAAe,GAAGH,EAAE,CAAC,CAAC,CAAC;IAAEI,MAAM,GAAGJ,EAAE,CAAC,CAAC,CAAC;EAC5E,IAAI,CAACE,EAAE,IAAI,CAACC,eAAe,IAAI,CAACC,MAAM,EAAE;IACpC,MAAM,IAAIC,KAAK,CAAC,wBAAwB,CAACC,MAAM,CAACP,GAAG,EAAE,2BAA2B,CAAC,CAACO,MAAM,CAACT,OAAO,EAAE,KAAK,CAAC,CAAC;EAC5G;EACD,IAAIU,EAAE,GAAGJ,eAAe,CAACF,KAAK,CAAC,GAAG,CAAC;IAAEO,WAAW,GAAGD,EAAE,CAAC,CAAC,CAAC;IAAEE,YAAY,GAAGF,EAAE,CAAC,CAAC,CAAC;EAC9E,IAAIG,KAAK,GAAG,CAACF,WAAW;EACxB,IAAIG,MAAM,GAAG,CAACF,YAAY;EAC1B,IAAIG,cAAc,GAAGC,QAAQ,CAACH,KAAK,CAAC,IAAIG,QAAQ,CAACF,MAAM,CAAC;EACxD,IAAI,CAACC,cAAc,EAAE;IACjB,MAAM,IAAIP,KAAK,CAAC,wBAAwB,CAACC,MAAM,CAACP,GAAG,EAAE,2BAA2B,CAAC,CAACO,MAAM,CAACT,OAAO,EAAE,KAAK,CAAC,CAAC;EAC5G;EACD,OAAO;IAAEK,EAAE,EAAEA,EAAE;IAAEQ,KAAK,EAAEA,KAAK;IAAEC,MAAM,EAAEA,MAAM;IAAEP,MAAM,EAAEA;GAAQ;AACnE;AACeT,cAAA,CAAAmB,OAAA,GAAGhB,YAAA;;AChBlB,IAAIiB,UAAQ,GAAIC,cAAI,IAAIA,cAAI,CAACD,QAAQ,IAAK,YAAY;EAClDA,UAAQ,GAAGtB,MAAM,CAACwB,MAAM,IAAI,UAASC,CAAC,EAAE;IACpC,KAAK,IAAIC,CAAC,EAAEC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGC,SAAS,CAACC,MAAM,EAAEH,CAAC,GAAGC,CAAC,EAAED,CAAC,EAAE,EAAE;MACjDD,CAAC,GAAGG,SAAS,CAACF,CAAC,CAAC;MAChB,KAAK,IAAII,CAAC,IAAIL,CAAC,EAAE,IAAI1B,MAAM,CAACgC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACR,CAAC,EAAEK,CAAC,CAAC,EAC3DN,CAAC,CAACM,CAAC,CAAC,GAAGL,CAAC,CAACK,CAAC,CAAC;IAClB;IACD,OAAON,CAAC;EAChB,CAAK;EACD,OAAOH,UAAQ,CAACa,KAAK,CAAC,IAAI,EAAEN,SAAS,CAAC;AAC1C,CAAC;AACD7B,MAAM,CAACC,cAAc,CAACmC,aAAO,EAAE,YAAY,EAAE;EAAEjC,KAAK,EAAE;AAAI,CAAE,CAAC;AAC7D,IAAIkC,KAAK,GAAG,SAAAA,CAAUC,GAAG,EAAE;EACvB,IAAIC,MAAM,GAAGD,GAAG;EAChB,OAAOC,MAAM,GAAG,OAAOA,MAAM,CAACC,IAAI,KAAK,QAAQ,GAAG,KAAK;AAC3D,CAAC;AACD,IAAIC,OAAO,GAAG,SAAAA,CAAUH,GAAG,EAAE;EACzB,IAAIC,MAAM,GAAGD,GAAG;EAChB,OAAOC,MAAM,GAAG,OAAOA,MAAM,CAACG,GAAG,KAAK,QAAQ,GAAG,KAAK;AAC1D,CAAC;AACD,IAAIC,WAAW,GAAG,SAAAA,CAAUL,GAAG,EAAE;EAC7B,IAAIC,MAAM,GAAGD,GAAG;EAChB,OAAOC,MAAM,IAAIA,MAAM,CAACK,KAAK,GAAG,OAAOL,MAAM,CAACK,KAAK,CAACC,GAAG,KAAK,QAAQ,GAAG,KAAK;AAChF,CAAC;AACD;AACA;AACA,SAASC,WAAWA,CAACP,MAAM,EAAE;EACzB,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,IAAI;EACd;EACD,IAAIQ,KAAK;EACT,IAAI,OAAOR,MAAM,KAAK,QAAQ,IAAIS,KAAK,CAACT,MAAM,CAAC,EAAE;IACrD;IACQQ,KAAK,GAAG;MACJH,KAAK,EAAE;QAAEJ,IAAI,EAAES,OAAO,CAACV,MAAM;MAAG;IAC5C,CAAS;EACJ,CAAA,MACI,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IACzC;IACQQ,KAAK,GAAG;MACJH,KAAK,EAAE;QAAEJ,IAAI,EAAED;MAAQ;IACnC,CAAS;EACJ,CAAA,MACI,IAAIF,KAAK,CAACE,MAAM,CAAC,EAAE;IAC5B;IACQQ,KAAK,GAAG;MACJH,KAAK,EAAEL;IACnB,CAAS;EACJ,CAAA,MACI,IAAIE,OAAO,CAACF,MAAM,CAAC,EAAE;IAC9B;IACQQ,KAAK,GAAG;MACJH,KAAK,EAAE;QACHJ,IAAI,EAAED,MAAM,CAACG,GAAG,IAAI;MACvB;IACb,CAAS;EACJ,CAAA,MACI,IAAIC,WAAW,CAACJ,MAAM,CAAC,EAAE;IAClC;IACQQ,KAAK,GAAG;MACJH,KAAK,EAAE;QACHJ,IAAI,EAAES,OAAO,CAACV,MAAM,CAACK,KAAK,CAACC,GAAG;MACjC;IACb,CAAS;EACJ,CAAA,MACI,IAAI,OAAON,MAAM,CAACK,KAAK,KAAK,QAAQ,EAAE;IAC/C;IACQG,KAAK,GAAGzB,UAAQ,CAAC,EAAE,EAAEiB,MAAM,CAAC;EAC/B,CAAA,MACI;IACT;IACA;IACQ,OAAO,IAAI;EACd;EACD,IAAIW,GAAG,GAAGX,MAAM;EAChB,IAAIW,GAAG,CAACC,IAAI,EAAE;IACVJ,KAAK,CAACI,IAAI,GAAGD,GAAG,CAACC,IAAI;EACxB;EACD,IAAID,GAAG,CAACE,OAAO,EAAE;IACbL,KAAK,CAACK,OAAO,GAAGF,GAAG,CAACE,OAAO;EAC9B;EACD,OAAOC,aAAa,CAACN,KAAK,CAAC;AAC/B;AACeX,aAAA,CAAAf,OAAA,GAAGyB,WAAY;AAC9B,SAASE,KAAKA,CAACH,GAAG,EAAE;EAChB,OAAO,cAAc,CAACS,IAAI,CAAC,EAAE,CAACzC,MAAM,CAACgC,GAAG,CAAC,CAAC;AAC9C;AACA,SAASI,OAAOA,CAACJ,GAAG,EAAE;EAClB,IAAIU,KAAK,GAAGV,GAAG,CAACrC,KAAK,CAAC,GAAG,CAAC,CAACgD,KAAK,CAAC,CAAC,CAAC,CAAC;EACpC,OAAO,QAAQ,CAAC3C,MAAM,CAAC0C,KAAK,CAAC,CAAC,CAAC,CAAC,CAACE,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;AAClE;AACA;AACA,SAASJ,aAAaA,CAACN,KAAK,EAAE;EAC1B,IAAIA,KAAK,CAACI,IAAI,IAAIJ,KAAK,CAACK,OAAO,EAAE;IAC7B,OAAOL,KAAK;EACf;EACL;EACI,IAAIW,MAAM,GAAGpC,UAAQ,CAAC,CAAE,CAAA,EAAEyB,KAAK,CAAC;EAChC,IAAI,CAACW,MAAM,CAACP,IAAI,EAAE;IACdO,MAAM,CAACP,IAAI,GAAG;MACVQ,IAAI,EAAE,CAAC;MACPC,GAAG,EAAE,CAAC;MACNC,MAAM,EAAE,CAAC;MACTC,KAAK,EAAE;IACnB,CAAS;EACJ;EACD,IAAI,CAACJ,MAAM,CAACN,OAAO,EAAE;IACjBM,MAAM,CAACN,OAAO,GAAG;MACbW,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACN9C,MAAM,EAAE,GAAG;MACXD,KAAK,EAAE;IACnB,CAAS;EACJ;EACD,OAAOyC,MAAM;AACjB;;ECnHA,IAAIpC,QAAQ,GAAIC,cAAI,IAAIA,cAAI,CAACD,QAAQ,IAAK,YAAY;IAClDA,QAAQ,GAAGtB,MAAM,CAACwB,MAAM,IAAI,UAASC,CAAC,EAAE;MACpC,KAAK,IAAIC,CAAC,EAAEC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGC,SAAS,CAACC,MAAM,EAAEH,CAAC,GAAGC,CAAC,EAAED,CAAC,EAAE,EAAE;QACjDD,CAAC,GAAGG,SAAS,CAACF,CAAC,CAAC;QAChB,KAAK,IAAII,CAAC,IAAIL,CAAC,EAAE,IAAI1B,MAAM,CAACgC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACR,CAAC,EAAEK,CAAC,CAAC,EAC3DN,CAAC,CAACM,CAAC,CAAC,GAAGL,CAAC,CAACK,CAAC,CAAC;MAClB;MACD,OAAON,CAAC;IAChB,CAAK;IACD,OAAOH,QAAQ,CAACa,KAAK,CAAC,IAAI,EAAEN,SAAS,CAAC;EAC1C,CAAC;EACD,IAAIoC,eAAe,GAAI1C,cAAI,IAAIA,cAAI,CAAC0C,eAAe,IAAK,UAAUC,GAAG,EAAE;IACnE,OAAQA,GAAG,IAAIA,GAAG,CAACC,UAAU,GAAID,GAAG,GAAG;MAAE,SAAS,EAAEA;KAAK;EAC7D,CAAC;EACDlE,MAAM,CAACC,cAAc,CAAAmE,OAAA,EAAU,YAAY,EAAE;IAAEjE,KAAK,EAAE;EAAI,CAAE,CAAC;EAC7DiE,OAAsB,CAAAtB,WAAA,GAAAsB,OAAA,CAAAC,8BAAA,GAAyC,KAAK,CAAC;EACrE,IAAInE,cAAc,GAAG+D,eAAe,CAACK,cAAyB,CAAC;EAC/D,IAAIlC,aAAa,GAAG6B,eAAe,CAACM,aAAwB,CAAC;EAC7DH,OAAsB,CAAAtB,WAAA,GAAAV,aAAa,CAACf,OAAO;EAC3C+C,OAAyC,CAAAC,8BAAA,GAAA,CACrC,CAAC,OAAO,EAAE,GAAG,CAAC,EACd,CAAC,QAAQ,EAAE,GAAG,CAAC,EACf,CAAC,QAAQ,EAAE,IAAI,CAAC,EAChB,CAAC,UAAU,EAAE,IAAI,CAAC,EAClB,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,SAAS,EAAE,OAAO,CAAC,EACpB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACpB,CAAC,aAAa,EAAE,IAAI,CAAC,EACrB,CAAC,WAAW,EAAE,OAAO,CAAC,EACtB,CAAC,WAAW,EAAE,OAAO,CAAC,EACtB,CAAC,UAAU,EAAE,OAAO,CAAC,EACrB,CAAC,UAAU,EAAE,OAAO,CAAC,EACrB,CAAC,SAAS,EAAE,GAAG,CAAC,EAChB,CAAC,KAAK,EAAE,KAAK,CAAC,EACd,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,YAAY,EAAE,KAAK,CAAC,EACrB,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,KAAK,EAAE,KAAK,CAAC,EACd,CAAC,KAAK,EAAE,KAAK,CAAC,CACjB;EACD,SAASG,WAAWA,CAACC,OAAO,EAAE;IAC1B,IAAIC,IAAI,GAAGpD,QAAQ,CAAC,CAAE,CAAA,EAAGmD,OAAO,IAAI,CAAE,CAAA,CAAE;IACxC,IAAIlC,MAAM,GAAGmC,IAAI,CAACnC,MAAM;IACxB,OAAOmC,IAAI,CAACnC,MAAM;IAClB,IAAIQ,KAAK,GAAG,CAAI,CAAA,EAAAX,aAAa,CAACf,OAAO,EAAEkB,MAAM,CAAC;IAC9C,IAAI,CAACQ,KAAK,EAAE;MACR,MAAM,IAAInC,KAAK,CAAC,2CAA2C,CAACC,MAAM,CAAC8D,IAAI,CAACC,SAAS,CAACrC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IACnG;IACD,IAAI9B,EAAE,GAAGsC,KAAK,CAACH,KAAK,CAACJ,IAAI,IAAIO,KAAK,CAACH,KAAK,CAACF,GAAG,IAAI,EAAE;IAClD,IAAIE,KAAK,GAAG,CAAI,CAAA,EAAA1C,cAAc,CAACmB,OAAO,EAAEZ,EAAE,CAAC;IAC/C;IACI,IAAIoE,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAChC,KAAK,CAACI,IAAI,CAACQ,IAAI,GAAGf,KAAK,CAAC3B,KAAK,CAAC;IACxD,IAAI+D,OAAO,GAAGF,IAAI,CAACC,KAAK,CAAChC,KAAK,CAACI,IAAI,CAACS,GAAG,GAAGhB,KAAK,CAAC1B,MAAM,CAAC;IACvD,IAAIiC,IAAI,GAAG;MACPQ,IAAI,EAAEkB,QAAQ;MACdjB,GAAG,EAAEoB,OAAO;MACZ/D,KAAK,EAAE6D,IAAI,CAACC,KAAK,CAACnC,KAAK,CAAC3B,KAAK,GAAG8B,KAAK,CAACI,IAAI,CAACW,KAAK,GAAGlB,KAAK,CAAC3B,KAAK,GAAG4D,QAAQ,CAAC;MAC1E3D,MAAM,EAAE4D,IAAI,CAACC,KAAK,CAACnC,KAAK,CAAC1B,MAAM,GAAG6B,KAAK,CAACI,IAAI,CAACU,MAAM,GAAGjB,KAAK,CAAC1B,MAAM,GAAG8D,OAAO;IACpF,CAAK;IACL;IACI,IAAIC,qBAAqB,GAAIlC,KAAK,CAACK,OAAO,CAAClC,MAAM,GAAG0B,KAAK,CAAC1B,MAAM,GAAI,CAAC;IACrE,IAAIgE,uBAAuB,GAAInC,KAAK,CAACK,OAAO,CAACnC,KAAK,GAAG2B,KAAK,CAAC3B,KAAK,GAAI,CAAC;IACrE,IAAIkE,cAAc,GAAGpC,KAAK,CAACK,OAAO,CAACW,CAAC,GAAGnB,KAAK,CAAC3B,KAAK;IAClD,IAAImE,cAAc,GAAGrC,KAAK,CAACK,OAAO,CAACY,CAAC,GAAGpB,KAAK,CAAC1B,MAAM;IACnD,IAAIkC,OAAO,GAAG;MACVO,IAAI,EAAEwB,cAAc,GAAGD,uBAAuB;MAC9CtB,GAAG,EAAEwB,cAAc,GAAGH,qBAAqB;MAC3CnB,KAAK,EAAEqB,cAAc,GAAGD,uBAAuB;MAC/CrB,MAAM,EAAEuB,cAAc,GAAGH;IACjC,CAAK;IACL;IACA;IACI,IAAI,EAAEP,IAAI,CAACW,IAAI,IAAIX,IAAI,CAACY,UAAU,IAAIZ,IAAI,CAACa,iBAAiB,IAAIb,IAAI,CAACvB,IAAI,CAAC,EAAE;MACxEuB,IAAI,GAAGpD,QAAQ,CAACA,QAAQ,CAAC,CAAA,CAAE,EAAEoD,IAAI,CAAC,EAAEc,GAAG,CAAC;QAAErC,IAAI,EAAEA,IAAI;QAAEC,OAAO,EAAEA;MAAO,CAAE,EAAEsB,IAAI,CAAC,CAAC;IACnF;IACD,OAAOe,cAAc,CAACnE,QAAQ,CAACA,QAAQ,CAAC,CAAE,CAAA,EAAEoD,IAAI,CAAC,EAAE;MAAE9B,KAAK,EAAEA;IAAO,CAAA,CAAC,CAAC;EACxE;EACDwB,OAAA,CAAA/C,OAAA,GAAkBmD,WAAW;EAC7B;EACA,SAASiB,cAAcA,CAACf,IAAI,EAAE;IAC1B,IAAIgB,MAAM,GAAG,CAAChB,IAAI,CAACiB,OAAO,IAAI,uBAAuB,EAAElC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1E,IAAImC,QAAQ,GAAG,EAAE,CAAC/E,MAAM,CAAC6D,IAAI,CAAC9B,KAAK,CAACnC,EAAE,EAAE,GAAG,CAAC,CAACI,MAAM,CAAC6D,IAAI,CAAC9B,KAAK,CAAC3B,KAAK,EAAE,GAAG,CAAC,CAACJ,MAAM,CAAC6D,IAAI,CAAC9B,KAAK,CAAC1B,MAAM,EAAE,GAAG,CAAC,CAACL,MAAM,CAAC6D,IAAI,CAAC9B,KAAK,CAACjC,MAAM,CAAC;IACnI,IAAIgF,OAAO,GAAG,EAAE,CAAC9E,MAAM,CAAC6E,MAAM,EAAE,UAAU,CAAC,CAAC7E,MAAM,CAAC6D,IAAI,CAACmB,SAAS,EAAE,GAAG,CAAC,CAAChF,MAAM,CAAC6D,IAAI,CAACoB,OAAO,EAAE,GAAG,CAAC,CAACjF,MAAM,CAAC+E,QAAQ,CAAC;IAClH,IAAIG,MAAM,GAAG,EAAE;IACf,IAAIrB,IAAI,CAACW,IAAI,EAAE;MACnB;MACQ,IAAI9E,EAAE,GAAGmE,IAAI,CAACW,IAAI;QAAE1B,IAAI,GAAGpD,EAAE,CAACoD,IAAI;QAAEqC,KAAK,GAAGzF,EAAE,CAACqD,GAAG;QAAE3C,KAAK,GAAGV,EAAE,CAACU,KAAK;QAAEC,MAAM,GAAGX,EAAE,CAACW,MAAM;MACxF,IAAI+E,eAAe,GAAGtC,IAAI,KAAK,CAAC,IAAIqC,KAAK,KAAK,CAAC,IAAI9E,MAAM,KAAKwD,IAAI,CAAC9B,KAAK,CAAC1B,MAAM,IAAID,KAAK,KAAKyD,IAAI,CAAC9B,KAAK,CAAC3B,KAAK;MAC7G,IAAIgF,eAAe,EAAE;QACjBF,MAAM,CAACG,IAAI,CAAC,OAAO,CAACrF,MAAM,CAAC8C,IAAI,EAAE,GAAG,CAAC,CAAC9C,MAAM,CAACmF,KAAK,EAAE,GAAG,CAAC,CAACnF,MAAM,CAACI,KAAK,EAAE,GAAG,CAAC,CAACJ,MAAM,CAACK,MAAM,CAAC,CAAC;MAC9F;IACJ;IACD,IAAIwD,IAAI,CAACyB,EAAE,EAAE;MACTJ,MAAM,CAACG,IAAI,CAAC,KAAK,CAACrF,MAAM,CAAC6D,IAAI,CAACyB,EAAE,CAAC,CAAC;IACrC;IACD,IAAIzB,IAAI,CAACY,UAAU,EAAE;MACjBS,MAAM,CAACG,IAAI,CAAC,OAAO,CAACrF,MAAM,CAAC6D,IAAI,CAACY,UAAU,CAACvB,CAAC,CAAC,CAAC;MAC9CgC,MAAM,CAACG,IAAI,CAAC,OAAO,CAACrF,MAAM,CAAC6D,IAAI,CAACY,UAAU,CAACtB,CAAC,CAAC,CAAC;IACjD;IACD,IAAIoC,IAAI,GAAG,CAAC1B,IAAI,CAAC2B,cAAc,IAAI,GAAG,EAAE3B,IAAI,CAAC4B,YAAY,IAAI,GAAG,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;IAC1F,IAAIL,IAAI,EAAE;MACNL,MAAM,CAACG,IAAI,CAAC,OAAO,CAACrF,MAAM,CAACuF,IAAI,CAAC,CAAC;IACpC;IACL;IACIhC,OAAO,CAACC,8BAA8B,CAACqC,OAAO,CAAC,UAAUC,OAAO,EAAE;MAC9D,IAAIC,QAAQ,GAAGD,OAAO,CAAC,CAAC,CAAC;QAAEE,KAAK,GAAGF,OAAO,CAAC,CAAC,CAAC;MAC7C,IAAI,OAAOjC,IAAI,CAACkC,QAAQ,CAAC,KAAK,WAAW,EAAE;QACvCb,MAAM,CAACG,IAAI,CAAC,EAAE,CAACrF,MAAM,CAACgG,KAAK,EAAE,GAAG,CAAC,CAAChG,MAAM,CAACiG,kBAAkB,CAACpC,IAAI,CAACkC,QAAQ,CAAC,CAAC,CAAC,CAAC;MAChF,CAAA,MACI,IAAI,OAAOlC,IAAI,CAACmC,KAAK,CAAC,KAAK,WAAW,EAAE;QACzCd,MAAM,CAACG,IAAI,CAAC,EAAE,CAACrF,MAAM,CAACgG,KAAK,EAAE,GAAG,CAAC,CAAChG,MAAM,CAACiG,kBAAkB,CAACpC,IAAI,CAACmC,KAAK,CAAC,CAAC,CAAC,CAAC;MAC7E;IACT,CAAK,CAAC;IACF,IAAId,MAAM,CAACjE,MAAM,KAAK,CAAC,EAAE;MACrB,OAAO6D,OAAO;IACjB;IACD,OAAO,EAAE,CAAC9E,MAAM,CAAC8E,OAAO,EAAE,GAAG,CAAC,CAAC9E,MAAM,CAACkF,MAAM,CAACU,IAAI,CAAC,GAAG,CAAC,CAAC;EAC1D;EACD,SAASjB,GAAGA,CAACjD,MAAM,EAAEmC,IAAI,EAAE;IACvB,IAAIqC,QAAQ;IACZ,IAAIC,QAAQ,GAAGtC,IAAI,CAACzD,KAAK;IACzB,IAAIgG,SAAS,GAAGvC,IAAI,CAACxD,MAAM;IAC/B;IACI,IAAI,EAAE8F,QAAQ,IAAIC,SAAS,CAAC,EAAE;MAC1B,OAAO;QAAEhG,KAAK,EAAE+F,QAAQ;QAAE9F,MAAM,EAAE+F,SAAS;QAAE5B,IAAI,EAAE9C,MAAM,CAACY;OAAM;IACnE;IACD,IAAIA,IAAI,GAAGZ,MAAM,CAACY,IAAI;IACtB,IAAIC,OAAO,GAAGb,MAAM,CAACa,OAAO;IAChC;IACI,IAAI8D,kBAAkB,GAAGF,QAAQ,GAAGC,SAAS;IAC7C,IAAIE,eAAe,GAAGhE,IAAI,CAAClC,KAAK,GAAGkC,IAAI,CAACjC,MAAM;IAC9C,IAAIiG,eAAe,GAAGD,kBAAkB,EAAE;MAC9C;MACQ,IAAIhG,MAAM,GAAG4D,IAAI,CAACC,KAAK,CAAC5B,IAAI,CAACjC,MAAM,CAAC;MACpC,IAAID,KAAK,GAAG6D,IAAI,CAACC,KAAK,CAAC7D,MAAM,GAAGgG,kBAAkB,CAAC;MACnD,IAAIE,KAAK,GAAGtC,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAEvC,IAAI,CAACC,KAAK,CAAC5B,IAAI,CAACS,GAAG,CAAC,CAAC;MACrD;MACQ,IAAI0D,cAAc,GAAGxC,IAAI,CAACC,KAAK,CAAC,CAAC3B,OAAO,CAACU,KAAK,GAAGV,OAAO,CAACO,IAAI,IAAI,CAAC,GAAGP,OAAO,CAACO,IAAI,CAAC;MAClF,IAAIA,IAAI,GAAGmB,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAEvC,IAAI,CAACC,KAAK,CAACuC,cAAc,GAAGrG,KAAK,GAAG,CAAC,CAAC,CAAC;MACtE;MACQ,IAAI0C,IAAI,GAAGR,IAAI,CAACQ,IAAI,EAAE;QAClBA,IAAI,GAAGR,IAAI,CAACQ,IAAI;MACnB,CAAA,MACI,IAAIA,IAAI,GAAG1C,KAAK,GAAGkC,IAAI,CAACQ,IAAI,GAAGR,IAAI,CAAClC,KAAK,EAAE;QAC5C0C,IAAI,GAAGR,IAAI,CAACQ,IAAI,GAAGR,IAAI,CAAClC,KAAK,GAAGA,KAAK;MACxC;MACD8F,QAAQ,GAAG;QAAEpD,IAAI,EAAEA,IAAI;QAAEC,GAAG,EAAEwD,KAAK;QAAEnG,KAAK,EAAEA,KAAK;QAAEC,MAAM,EAAEA;OAAQ;IACtE,CAAA,MACI;MACT;MACQ,IAAID,KAAK,GAAGkC,IAAI,CAAClC,KAAK;MACtB,IAAIC,MAAM,GAAG4D,IAAI,CAACC,KAAK,CAAC9D,KAAK,GAAGiG,kBAAkB,CAAC;MACnD,IAAIvD,IAAI,GAAGmB,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAEvC,IAAI,CAACC,KAAK,CAAC5B,IAAI,CAACQ,IAAI,CAAC,CAAC;MACrD;MACQ,IAAI4D,cAAc,GAAGzC,IAAI,CAACC,KAAK,CAAC,CAAC3B,OAAO,CAACS,MAAM,GAAGT,OAAO,CAACQ,GAAG,IAAI,CAAC,GAAGR,OAAO,CAACQ,GAAG,CAAC;MACjF,IAAI4D,KAAK,GAAG1C,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAEvC,IAAI,CAACC,KAAK,CAACwC,cAAc,GAAGrG,MAAM,GAAG,CAAC,CAAC,CAAC;MACxE;MACQ,IAAIsG,KAAK,GAAGrE,IAAI,CAACS,GAAG,EAAE;QAClB4D,KAAK,GAAGrE,IAAI,CAACS,GAAG;MACnB,CAAA,MACI,IAAI4D,KAAK,GAAGtG,MAAM,GAAGiC,IAAI,CAACS,GAAG,GAAGT,IAAI,CAACjC,MAAM,EAAE;QAC9CsG,KAAK,GAAGrE,IAAI,CAACS,GAAG,GAAGT,IAAI,CAACjC,MAAM,GAAGA,MAAM;MAC1C;MACD6F,QAAQ,GAAG;QAAEpD,IAAI,EAAEA,IAAI;QAAEC,GAAG,EAAE4D,KAAK;QAAEvG,KAAK,EAAEA,KAAK;QAAEC,MAAM,EAAEA;OAAQ;IACtE;IACD,OAAO;MACHD,KAAK,EAAE+F,QAAQ;MACf9F,MAAM,EAAE+F,SAAS;MACjB5B,IAAI,EAAE0B;IACd,CAAK;EACJ;;AC1KD,IAAIzF,QAAQ,GAAIC,cAAI,IAAIA,cAAI,CAACD,QAAQ,IAAK,YAAY;EAClDA,QAAQ,GAAGtB,MAAM,CAACwB,MAAM,IAAI,UAASC,CAAC,EAAE;IACpC,KAAK,IAAIC,CAAC,EAAEC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGC,SAAS,CAACC,MAAM,EAAEH,CAAC,GAAGC,CAAC,EAAED,CAAC,EAAE,EAAE;MACjDD,CAAC,GAAGG,SAAS,CAACF,CAAC,CAAC;MAChB,KAAK,IAAII,CAAC,IAAIL,CAAC,EAAE,IAAI1B,MAAM,CAACgC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACR,CAAC,EAAEK,CAAC,CAAC,EAC3DN,CAAC,CAACM,CAAC,CAAC,GAAGL,CAAC,CAACK,CAAC,CAAC;IAClB;IACD,OAAON,CAAC;EAChB,CAAK;EACD,OAAOH,QAAQ,CAACa,KAAK,CAAC,IAAI,EAAEN,SAAS,CAAC;AAC1C,CAAC;AACD,IAAI4F,eAAe,GAAIlG,cAAI,IAAIA,cAAI,CAACkG,eAAe,KAAMzH,MAAM,CAAC0H,MAAM,GAAI,UAASC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,EAAE,EAAE;EAC5F,IAAIA,EAAE,KAAKC,SAAS,EAAED,EAAE,GAAGD,CAAC;EAC5B7H,MAAM,CAACC,cAAc,CAAC0H,CAAC,EAAEG,EAAE,EAAE;IAAEE,UAAU,EAAE,IAAI;IAAEC,GAAG,EAAE,SAAAA,CAAA,EAAW;MAAE,OAAOL,CAAC,CAACC,CAAC,CAAC;IAAC;EAAI,CAAA,CAAC;AACxF,CAAC,GAAK,UAASF,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,EAAE,EAAE;EACxB,IAAIA,EAAE,KAAKC,SAAS,EAAED,EAAE,GAAGD,CAAC;EAC5BF,CAAC,CAACG,EAAE,CAAC,GAAGF,CAAC,CAACC,CAAC,CAAC;AAChB,CAAE,CAAC;AACH,IAAIK,kBAAkB,GAAI3G,cAAI,IAAIA,cAAI,CAAC2G,kBAAkB,KAAMlI,MAAM,CAAC0H,MAAM,GAAI,UAASC,CAAC,EAAEQ,CAAC,EAAE;EAC3FnI,MAAM,CAACC,cAAc,CAAC0H,CAAC,EAAE,SAAS,EAAE;IAAEK,UAAU,EAAE,IAAI;IAAE7H,KAAK,EAAEgI;EAAC,CAAE,CAAC;AACvE,CAAC,GAAI,UAASR,CAAC,EAAEQ,CAAC,EAAE;EAChBR,CAAC,CAAC,SAAS,CAAC,GAAGQ,CAAC;AACpB,CAAC,CAAC;AACF,IAAIC,YAAY,GAAI7G,cAAI,IAAIA,cAAI,CAAC6G,YAAY,IAAK,UAAUlE,GAAG,EAAE;EAC7D,IAAIA,GAAG,IAAIA,GAAG,CAACC,UAAU,EAAE,OAAOD,GAAG;EACrC,IAAIR,MAAM,GAAG,CAAA,CAAE;EACf,IAAIQ,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI2D,CAAC,IAAI3D,GAAG,EAAE,IAAI2D,CAAC,KAAK,SAAS,IAAI7H,MAAM,CAACgC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACgC,GAAG,EAAE2D,CAAC,CAAC,EAAEJ,eAAe,CAAC/D,MAAM,EAAEQ,GAAG,EAAE2D,CAAC,CAAC;EACxIK,kBAAkB,CAACxE,MAAM,EAAEQ,GAAG,CAAC;EAC/B,OAAOR,MAAM;AACjB,CAAC;AACD1D,MAAM,CAACC,cAAc,CAACoI,OAAO,EAAE,YAAY,EAAE;EAAElI,KAAK,EAAE;AAAI,CAAE,CAAC;AACtCkI,OAAA,CAAAC,eAAA,GAAG,KAAK,CAAE;AACjC,IAAIC,aAAa,GAAGH,YAAY,CAAC9D,WAAwB,CAAC;AAC1D,IAAIkE,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;AAC1E,IAAIC,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC;AACtF,IAAIC,cAAc,GAAG,CAAC,QAAQ,CAAC;AAC/B,SAASC,wBAAwBA,CAACC,MAAM,EAAE;EACtC,OAAOA,MAAM,IAAI,QAAQ,IAAIA,MAAM,GAAG,OAAOA,MAAM,CAACC,MAAM,KAAK,UAAU,GAAG,KAAK;AACrF;AACA,SAASC,kBAAkBA,CAACF,MAAM,EAAE;EAChC,OAAOA,MAAM,IAAI,cAAc,IAAIA,MAAM,GAAG,OAAOA,MAAM,CAACG,YAAY,KAAK,QAAQ,GAAG,KAAK;AAC/F;AACA,SAASC,eAAeA,CAACC,GAAG,EAAE;EAC1B,IAAIC,KAAK,GAAGX,aAAa,CAAClE,8BAA8B;EACxD,KAAK,IAAI8E,EAAE,GAAG,CAAC,EAAEC,OAAO,GAAGF,KAAK,EAAEC,EAAE,GAAGC,OAAO,CAACtH,MAAM,EAAEqH,EAAE,EAAE,EAAE;IACzD,IAAIE,KAAK,GAAGD,OAAO,CAACD,EAAE,CAAC;IACvB,IAAIvC,QAAQ,GAAGyC,KAAK,CAAC,CAAC,CAAC;MAAExC,KAAK,GAAGwC,KAAK,CAAC,CAAC,CAAC;IACzC,IAAIJ,GAAG,KAAKrC,QAAQ,IAAIqC,GAAG,KAAKpC,KAAK,EAAE;MACnC,OAAOD,QAAQ;IAClB;EACJ;EACD,OAAOqC,GAAG;AACd;AACA,SAASK,UAAUA,CAAC7E,OAAO,EAAE;EAC7B;EACI,IAAIkE,wBAAwB,CAAClE,OAAO,CAAC,EAAE;IAC3C;IACQ,IAAIlE,EAAE,GAAGkE,OAAO,CAACoE,MAAM,EAAE;MAAEU,MAAM,GAAGhJ,EAAE,CAACiJ,OAAO;MAAE3D,SAAS,GAAGtF,EAAE,CAACsF,SAAS;MAAEC,OAAO,GAAGvF,EAAE,CAACuF,OAAO;IAC9F,IAAI0D,OAAO,GAAGD,MAAM,IAAI,uBAAuB;IAC/C,OAAO,IAAIjB,eAAe,CAAC,IAAI,EAAE;MAC7B3C,OAAO,EAAE6D,OAAO,CAAC/F,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC;MAC5DoC,SAAS,EAAEA,SAAS;MACpBC,OAAO,EAAEA;IACrB,CAAS,CAAC;EACL;EACL;EACI,IAAI8C,MAAM,GAAGnE,OAAO;EACpB,IAAIqE,kBAAkB,CAACF,MAAM,CAAC,EAAE;IACpC;IACQ,IAAI9H,EAAE,GAAG8H,MAAM,CAACG,YAAY;MAAEQ,MAAM,GAAGzI,EAAE,CAAC0I,OAAO;MAAE3D,SAAS,GAAG/E,EAAE,CAAC+E,SAAS;MAAEC,OAAO,GAAGhF,EAAE,CAACgF,OAAO;IACjG,IAAI0D,OAAO,GAAGD,MAAM,IAAI,uBAAuB;IAC/C,OAAO,IAAIjB,eAAe,CAAC,IAAI,EAAE;MAC7B3C,OAAO,EAAE6D,OAAO,CAAC/F,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC;MAC5DoC,SAAS,EAAEA,SAAS;MACpBC,OAAO,EAAEA;IACrB,CAAS,CAAC;EACL;EACL;EACI,OAAO,IAAIwC,eAAe,CAAC,IAAI,EAAE7D,OAAO,CAAC;AAC7C;AACe4D,OAAA,CAAAhH,OAAA,GAAGiI,UAAW;AAC7B,IAAIhB,eAAe,gBAAkB,YAAY;EAC7C,SAASA,eAAeA,CAACmB,MAAM,EAAEhF,OAAO,EAAE;IACtC,IAAI,CAACA,OAAO,GAAGgF,MAAM,GACfnI,QAAQ,CAACA,QAAQ,CAAC,CAAA,CAAE,EAAGmI,MAAM,CAAChF,OAAO,IAAI,CAAA,CAAE,CAAE,EAAGA,OAAO,IAAI,CAAA,CAAE,CAAE,GAAGnD,QAAQ,CAAC,CAAE,CAAA,EAAGmD,OAAO,IAAI,CAAE,CAAA,CAAE,CAAC,CAAA;EACzG;;EACD6D,eAAe,CAACtG,SAAS,CAAC0H,WAAW,GAAG,UAAUjF,OAAO,EAAE;IACvD,IAAIkB,OAAO,GAAGlB,OAAO,CAACkB,OAAO,IAAI,IAAI,CAAClB,OAAO,CAACkB,OAAO;IACrD,IAAIgE,UAAU,GAAG;MAAEhE,OAAO,EAAEA;KAAS;IACrC,KAAK,IAAIsD,GAAG,IAAIxE,OAAO,EAAE;MACrB,IAAIA,OAAO,CAACxC,cAAc,CAACgH,GAAG,CAAC,EAAE;QAC7B,IAAIW,OAAO,GAAGZ,eAAe,CAACC,GAAG,CAAC;QAClCU,UAAU,CAACC,OAAO,CAAC,GAAGnF,OAAO,CAACwE,GAAG,CAAC;MACrC;IACJ;IACD,OAAO,IAAIX,eAAe,CAAC,IAAI,EAAEhH,QAAQ,CAAC;MAAEqE,OAAO,EAAEA;IAAO,CAAE,EAAEgE,UAAU,CAAC,CAAC;EACpF,CAAK;EACL;EACA;EACA;EACIrB,eAAe,CAACtG,SAAS,CAACe,KAAK,GAAG,UAAUR,MAAM,EAAE;IAChD,OAAO,IAAI,CAACmH,WAAW,CAAC;MAAEnH,MAAM,EAAEA;IAAQ,CAAA,CAAC;EACnD,CAAK;EACL;EACI+F,eAAe,CAACtG,SAAS,CAAC8D,OAAO,GAAG,UAAUA,OAAO,EAAE;IACnD,OAAO,IAAI,CAAC4D,WAAW,CAAC;MAAE5D,OAAO,EAAEA;IAAS,CAAA,CAAC;EACrD,CAAK;EACL;EACIwC,eAAe,CAACtG,SAAS,CAAC6D,SAAS,GAAG,UAAUA,SAAS,EAAE;IACvD,OAAO,IAAI,CAAC6D,WAAW,CAAC;MAAE7D,SAAS,EAAEA;IAAW,CAAA,CAAC;EACzD,CAAK;EACL;EACIyC,eAAe,CAACtG,SAAS,CAACmE,EAAE,GAAG,UAAUA,EAAE,EAAE;IACzC,OAAO,IAAI,CAACuD,WAAW,CAAC;MAAEvD,EAAE,EAAEA;IAAI,CAAA,CAAC;EAC3C,CAAK;EACL;EACImC,eAAe,CAACtG,SAAS,CAAC6H,GAAG,GAAG,UAAUA,GAAG,EAAE;IACnD;IACQ,OAAO,IAAI,CAACH,WAAW,CAACG,GAAG,IAAIA,GAAG,KAAK,CAAC,GAAG;MAAEA,GAAG,EAAEA;KAAK,GAAG,CAAA,CAAE,CAAC;EACrE,CAAK;EACL;EACIvB,eAAe,CAACtG,SAAS,CAACf,KAAK,GAAG,UAAUA,KAAK,EAAE;IAC/C,OAAO,IAAI,CAACyI,WAAW,CAAC;MAAEzI,KAAK,EAAEA;IAAO,CAAA,CAAC;EACjD,CAAK;EACL;EACIqH,eAAe,CAACtG,SAAS,CAACd,MAAM,GAAG,UAAUA,MAAM,EAAE;IACjD,OAAO,IAAI,CAACwI,WAAW,CAAC;MAAExI,MAAM,EAAEA;IAAQ,CAAA,CAAC;EACnD,CAAK;EACL;EACIoH,eAAe,CAACtG,SAAS,CAACsD,UAAU,GAAG,UAAUvB,CAAC,EAAEC,CAAC,EAAE;IACnD,OAAO,IAAI,CAAC0F,WAAW,CAAC;MAAEpE,UAAU,EAAE;QAAEvB,CAAC,EAAEA,CAAC;QAAEC,CAAC,EAAEA;MAAG;IAAA,CAAE,CAAC;EAC/D,CAAK;EACDsE,eAAe,CAACtG,SAAS,CAAC8H,QAAQ,GAAG,UAAUA,QAAQ,EAAE;IACrD,OAAO,IAAI,CAACJ,WAAW,CAAC;MAAEI,QAAQ,EAAEA;IAAU,CAAA,CAAC;EACvD,CAAK;EACDxB,eAAe,CAACtG,SAAS,CAAC+H,QAAQ,GAAG,UAAUA,QAAQ,EAAE;IACrD,OAAO,IAAI,CAACL,WAAW,CAAC;MAAEK,QAAQ,EAAEA;IAAU,CAAA,CAAC;EACvD,CAAK;EACDzB,eAAe,CAACtG,SAAS,CAACgI,SAAS,GAAG,UAAUA,SAAS,EAAE;IACvD,OAAO,IAAI,CAACN,WAAW,CAAC;MAAEM,SAAS,EAAEA;IAAW,CAAA,CAAC;EACzD,CAAK;EACD1B,eAAe,CAACtG,SAAS,CAACiI,SAAS,GAAG,UAAUA,SAAS,EAAE;IACvD,OAAO,IAAI,CAACP,WAAW,CAAC;MAAEO,SAAS,EAAEA;IAAW,CAAA,CAAC;EACzD,CAAK;EACL;EACI3B,eAAe,CAACtG,SAAS,CAACkI,IAAI,GAAG,UAAUjJ,KAAK,EAAEC,MAAM,EAAE;IACtD,OAAO,IAAI,CAACwI,WAAW,CAAC;MAAEzI,KAAK,EAAEA,KAAK;MAAEC,MAAM,EAAEA;IAAM,CAAE,CAAC;EACjE,CAAK;EACL;EACIoH,eAAe,CAACtG,SAAS,CAACmI,IAAI,GAAG,UAAUA,IAAI,EAAE;IAC7C,OAAO,IAAI,CAACT,WAAW,CAAC;MAAES,IAAI,EAAEA;IAAM,CAAA,CAAC;EAC/C,CAAK;EACD7B,eAAe,CAACtG,SAAS,CAACoI,OAAO,GAAG,UAAUA,OAAO,EAAE;IACnD,OAAO,IAAI,CAACV,WAAW,CAAC;MAAEU,OAAO,EAAEA;IAAS,CAAA,CAAC;EACrD,CAAK;EACL;EACI9B,eAAe,CAACtG,SAAS,CAACqD,IAAI,GAAG,UAAU1B,IAAI,EAAEC,GAAG,EAAE3C,KAAK,EAAEC,MAAM,EAAE;IACjE,OAAO,IAAI,CAACwI,WAAW,CAAC;MAAErE,IAAI,EAAE;QAAE1B,IAAI,EAAEA,IAAI;QAAEC,GAAG,EAAEA,GAAG;QAAE3C,KAAK,EAAEA,KAAK;QAAEC,MAAM,EAAEA;MAAM;IAAI,CAAA,CAAC;EACjG,CAAK;EACL;EACIoH,eAAe,CAACtG,SAAS,CAACrB,MAAM,GAAG,UAAUA,MAAM,EAAE;IACjD,OAAO,IAAI,CAAC+I,WAAW,CAAC;MAAE/I,MAAM,EAAEA;IAAQ,CAAA,CAAC;EACnD,CAAK;EACD2H,eAAe,CAACtG,SAAS,CAACqI,MAAM,GAAG,UAAUA,MAAM,EAAE;IACjD,OAAO,IAAI,CAACX,WAAW,CAAC;MAAEW,MAAM,EAAEA;IAAQ,CAAA,CAAC;EACnD,CAAK;EACL;EACI/B,eAAe,CAACtG,SAAS,CAACsI,WAAW,GAAG,UAAUA,WAAW,EAAE;IAC3D,OAAO,IAAI,CAACZ,WAAW,CAAC;MAAEY,WAAW,EAAEA;IAAa,CAAA,CAAC;EAC7D,CAAK;EACL;EACIhC,eAAe,CAACtG,SAAS,CAACuI,OAAO,GAAG,UAAUA,OAAO,EAAE;IACnD,OAAO,IAAI,CAACb,WAAW,CAAC;MAAEa,OAAO,EAAEA;IAAS,CAAA,CAAC;EACrD,CAAK;EACL;EACIjC,eAAe,CAACtG,SAAS,CAACwI,aAAa,GAAG,UAAUC,QAAQ,EAAE;IAC1D,OAAO,IAAI,CAACf,WAAW,CAAC;MAAEe,QAAQ,EAAEA;IAAU,CAAA,CAAC;EACvD,CAAK;EACL;EACInC,eAAe,CAACtG,SAAS,CAACqE,cAAc,GAAG,YAAY;IACnD,OAAO,IAAI,CAACqD,WAAW,CAAC;MAAErD,cAAc,EAAE;IAAM,CAAA,CAAC;EACzD,CAAK;EACL;EACIiC,eAAe,CAACtG,SAAS,CAACsE,YAAY,GAAG,YAAY;IACjD,OAAO,IAAI,CAACoD,WAAW,CAAC;MAAEpD,YAAY,EAAE;IAAM,CAAA,CAAC;EACvD,CAAK;EACL;EACIgC,eAAe,CAACtG,SAAS,CAACuD,iBAAiB,GAAG,YAAY;IACtD,OAAO,IAAI,CAACmE,WAAW,CAAC;MAAEnE,iBAAiB,EAAE;IAAM,CAAA,CAAC;EAC5D,CAAK;EACD+C,eAAe,CAACtG,SAAS,CAACwD,GAAG,GAAG,UAAUrF,KAAK,EAAE;IAC7C,IAAIqI,SAAS,CAACkC,OAAO,CAACvK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;MACjC,MAAM,IAAIS,KAAK,CAAC,qBAAqB,CAACC,MAAM,CAACV,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7D;IACD,OAAO,IAAI,CAACuJ,WAAW,CAAC;MAAElE,GAAG,EAAErF;IAAO,CAAA,CAAC;EAC/C,CAAK;EACDmI,eAAe,CAACtG,SAAS,CAACmB,IAAI,GAAG,UAAUhD,KAAK,EAAE;IAC9C,IAAIsI,UAAU,CAACiC,OAAO,CAACvK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;MAClC,MAAM,IAAIS,KAAK,CAAC,sBAAsB,CAACC,MAAM,CAACV,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9D;IACD,OAAO,IAAI,CAACuJ,WAAW,CAAC;MAAEvG,IAAI,EAAEhD;IAAO,CAAA,CAAC;EAChD,CAAK;EACL;EACImI,eAAe,CAACtG,SAAS,CAAC2I,UAAU,GAAG,UAAUA,UAAU,EAAE;IACzD,OAAO,IAAI,CAACjB,WAAW,CAAC;MAAEiB,UAAU,EAAEA;IAAY,CAAA,CAAC;EAC3D,CAAK;EACDrC,eAAe,CAACtG,SAAS,CAAC4I,IAAI,GAAG,UAAUzK,KAAK,EAAE;IAC9C,IAAIuI,cAAc,CAACgC,OAAO,CAACvK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;MACtC,MAAM,IAAIS,KAAK,CAAC,sBAAsB,CAACC,MAAM,CAACV,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9D;IACD,OAAO,IAAI,CAACuJ,WAAW,CAAC;MAAEkB,IAAI,EAAEzK;IAAO,CAAA,CAAC;EAChD,CAAK;EACL;EACImI,eAAe,CAACtG,SAAS,CAAC6I,GAAG,GAAG,UAAUA,GAAG,EAAE;IAC3C,OAAO,IAAI,CAACnB,WAAW,CAAC;MAAEmB,GAAG,EAAEA;IAAK,CAAA,CAAC;EAC7C,CAAK;EACL;EACIvC,eAAe,CAACtG,SAAS,CAACa,GAAG,GAAG,YAAY;IACxC,OAAO,CAAI,CAAA,EAAA0F,aAAa,CAAClH,OAAO,EAAE,IAAI,CAACoD,OAAO,CAAC;EACvD,CAAK;EACL;EACI6D,eAAe,CAACtG,SAAS,CAAC8I,QAAQ,GAAG,YAAY;IAC7C,OAAO,IAAI,CAACjI,GAAG,EAAE;EACzB,CAAK;EACD,OAAOyF,eAAe;AAC1B,CAAC,EAAG;AACmBD,OAAA,CAAAC,eAAA,GAAGA,eAAe;AClOzC,IAAIrE,eAAe,GAAI1C,cAAI,IAAIA,cAAI,CAAC0C,eAAe,IAAK,UAAUC,GAAG,EAAE;EACnE,OAAQA,GAAG,IAAIA,GAAG,CAACC,UAAU,GAAID,GAAG,GAAG;IAAE,SAAS,EAAEA;GAAK;AAC7D,CAAC;AACD,IAAI6G,SAAS,GAAG9G,eAAe,CAACK,OAAoB,CAAC;AACrD,IAAA0G,IAAc,GAAGD,SAAS,CAAC1J,OAAO;;ACA3B,SAAS4J,mBACdC,aACwB,EAAA;EAClB,MAAAtC,MAAA,GAASuC,UAAUD,aAAa,CAAA;EAChC,MAAA7C,OAAA,GAAU+C,QAAQ,MAAMC,qBAAA,CAAsBzC,MAAM,CAAG,EAAA,CAACA,MAAM,CAAC,CAAA;EAE9D,OAAAP,OAAA;AACT;ACNgB,SAAAiD,uBAAAA,CACd/I,QACA2I,aACwB,EAAA;EAClB,MAAA7C,OAAA,GAAU4C,mBAAmBC,aAAa,CAAA;EAChD,MAAMnI,KAAQ,GAAAqI,OAAA,CACZ,MAAO7I,MAAU,IAAA8F,OAAA,GAAUA,OAAQ,CAAAtF,KAAA,CAAMR,MAAM,CAAI,GAAA,IAAA,EACnD,CAAC8F,SAAS9F,MAAM,CAAA,CAClB;EAEO,OAAAQ,KAAA;AACT;ACWA,MAAMwI,iBAAiB,CAAA,CAAC;AACxB,MAAMC,eAAA,GAAkB;EAACC,UAAA;AAAyB,CAAA;AAClD,MAAMC,qBAAwB,GAAA,IAAA;AAEvB,SAASC,kBACdC,KACA,EAAApJ,IAAA,EAKW;EAAA,IALX;IACEuD,MAAS,GAAAwF,cAAA;IACT9G,OAAU,GAAA+G,eAAA;IACVK,YAAe,GAAAH;EACjB,CACW,GAAAlJ,IAAA;EACX,MAAM,CAACsJ,OAAA,EAASC,UAAU,CAAA,GAAIC,SAAS,IAAI,CAAA;EAC3C,MAAM,CAACC,KAAA,EAAOC,QAAQ,CAAA,GAAIF,SAAS,KAAK,CAAA;EACxC,MAAM,CAACG,IAAA,EAAMC,OAAO,CAAA,GAAIJ,SAASH,YAAY,CAAA;EACvC,MAAAQ,YAAA,GAAeC,OAA4B,IAAI,CAAA;EACrD,MAAMC,gBAAgBC,gBAAiB,EAAA;EAEvCC,SAAA,CAAU,MAAM;IACd,IAAIb,KAAO,EAAA;MACTS,YAAA,CAAaK,UAAUH,aACpB,CAAAI,WAAA,CAAYf,KAAO,EAAA7F,MAAA,EAAQtB,OAAO,CAClC,CAAAmI,IAAA,CACCC,qBAAqBC,OAAO,CAAA,EAC5BC,UAAA,CAAYC,GAAQ,IAAA;QAClBC,OAAA,CAAQhB,MAAMe,GAAG,CAAA;QACjBd,QAAA,CAASc,GAAG,CAAA;QACZjB,UAAA,CAAW,KAAK,CAAA;QAChBK,OAAA,CAAQ,IAAI,CAAA;QAEL,OAAAY,GAAA;MAAA,CACR,CAAA,CACH,CACCE,SAAU,CAACC,SAAc,IAAA;QACxBf,OAAA,CAASM,OAAoB,IAAAI,OAAA,CAAQJ,SAASS,SAAS,CAAA,GAAIT,UAAUS,SAAU,CAAA;QAC/EpB,UAAA,CAAW,KAAK,CAAA;QAChBG,QAAA,CAAS,KAAK,CAAA;MAAA,CACf,CAAA;IACL;IAEA,OAAO,MAAG;MApEd,IAAA3L,EAAA;MAoEiB,OAAA,CAAAA,EAAA,GAAA8L,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,YAAA,CAAcK,YAAd,IAAuB,GAAA,KAAA,CAAA,GAAAnM,EAAA,CAAA6M,WAAA,EAAA;IAAA,CAAA;KACnC,CAACxB,KAAA,EAAO7F,MAAQ,EAAAtB,OAAA,EAAS8H,aAAa,CAAC,CAAA;EAEnC,OAAA;IAACJ,IAAM;IAAAL,OAAA;IAASG;GAAK;AAC9B;ACpCgB,SAAAoB,eAAAA,CAAAC,KAAA,EAA0D;EAAA,IAA1C;IAAC7B;GAAyC,GAAA6B,KAAA;EAClE,MAAA;IAACC;GAAW,GAAIC,YAAa,EAAA;EACnC,MAAM5E,SAASuC,SAAU,CAAA;IAACM,UAAY,EAAAA,UAAA,IAAA,IAAA,GAAAA,UAAA,GAAc;GAAa,CAAA;EACjE,MAAM,CAACgC,KAAO,EAAAC,QAAQ,CAAI,GAAA1B,QAAA,CAAS,EAAE,CAAA;EAErCS,SAAA,CAAU,MAAM;IACd,MAAM;MAAC5G;IAAA,CAAa,GAAA+C,MAAA,CAAOC,MAAO,EAAA;IAElC,eAAe8E,QAAQlN,EAAY,EAAA;MAC3B,MAAAmN,WAAA,GAAc,MAAMhF,MAAA,CAAOiF,OAAQ,CAAA;QACvChL,GAAA,eAAAhC,MAAA,CAAkBgF,SAAmB,aAAAhF,MAAA,CAAAJ,EAAA;MAAA,CACtC,CAAA;MAEM,OAAAmN,WAAA;IACT;IAEA,eAAeE,iBAAoBA,CAAA,EAAA;MAC3B,MAAAC,SAAA,GAAY,MAAMnF,MAAA,CACrBiF,OAAQ,CAAA;QACPhL,yBAAkBgD,SAAA;MACnB,CAAA,CACA,CAAAmI,IAAA,CAAK,MAAOC,OACXC,OAAQ,CAAAC,GAAA,CACNF,GAAA,CAAIG,GAAI,CAAA,MAAOC,IAAwB,KAAA;QACrCC,aAAA,EAAeD,IAAK,CAAAE,aAAA,MAAkBhB,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAA9M,EAAA,CAAA;QACnD,IAAI,MAAMkN,OAAQ,CAAAU,IAAA,CAAKE,aAAa,CAAA;MAAA,CACpC,CAAA,CAAA,CACJ,CAED,CAAAC,KAAA,CAAOxB,GAAA,IAAQA,GAAG,CAAA;MAErBU,QAAA,CAASK,SAAS,CAAA;IACpB;IAEI,IAAA,CAACN,MAAM3L,MAAQ,EAAA;MACCgM,iBAAA,EAAA;IACpB;KACC,CAAClF,MAAA,EAAQ2E,2CAAa9M,EAAI,EAAAgN,KAAA,CAAM3L,MAAM,CAAC,CAAA;EAEnC,OAAA2L,KAAA;AACT;ACxEgB,SAAAgB,gBAAAA,CAAiBhO,IAAaiO,IAAe,EAAA;EACrD,MAAAC,aAAA,GAAgBC,KAAM,CAAAC,UAAA,CAAWC,aAAa,CAAA;EACpD,MAAM;IAACC,gBAAA;IAAkBC;EAAU,CAAA,GAAIC,aAAc,EAAA;EAE/C,MAAAC,aAAA,GAAgBN,KAAM,CAAAO,WAAA,CAAY,MAAM;IAC5C,IAAI,CAACR,aAAA,IAAiB,CAAClO,EAAA,IAAM,CAACiO,IAAM,EAAA;MAClC;IACF;IAEM,MAAAU,KAAA,GAAQ,CAAC,GAAGL,gBAAgB,CAAA;IAC5BK,KAAA,CAAAC,MAAA,CAAOL,UAAa,GAAA,CAAA,EAAG,CAAG,EAAA,CAC9B;MACEvO,EAAA;MACAsF,MAAA,EAAQ;QAAC2I;MAAI;IACf,CAAA,CACD,CAAA;IAED,MAAMY,IAAO,GAAAX,aAAA,CAAcY,oBAAqB,CAAA;MAACH;IAAM,CAAA,CAAA;IACvDT,aAAA,CAAca,WAAY,CAAA;MAACC,IAAM,EAAAH;IAAK,CAAA,CAAA;EAAA,GACrC,CAAC7O,EAAA,EAAIiO,MAAMC,aAAe,EAAAI,gBAAA,EAAkBC,UAAU,CAAC,CAAA;EAEnD,OAAAE,aAAA;AACT;ACNA,MAAMQ,aAA+B,GAAA;EACnCC,IAAM,EAAA;AACR,CAAA;AAEO,SAASC,SAASC,KAAsB,EAAA;EACvC,MAAA;IAACC,KAAO;IAAAC,WAAA;IAAaC,IAAM;IAAAL,IAAA;IAAMM;EAAQ,CAAA,GAAI;IAAC,GAAGP,aAAe;IAAA,GAAGG;GAAK;EAG5E,OAAA,eAAAK,GAAA,CAACC,IAAK,EAAA;IAAAR,IAAA;IAAYS,OAAS,EAAA,CAAA;IAAGC,QAAQ,CAAG;IAAAC,MAAA,EAAM,IAC7C;IAAAL,QAAA,EAAA,eAAAM,IAAA,CAACC,IACE,EAAA;MAAAP,QAAA,EAAA,CAAAD,IAAA,oBAAwB,IAAA,EACxBC,QAAA,GACCA,WAEC,eAAAC,GAAA,CAAAO,GAAA,EAAA;QAAIC,MAAM,CACT;QAAAT,QAAA,EAAA,eAAAM,IAAA,CAACI,KAAM,EAAA;UAAAC,KAAA,EAAO,CACX;UAAAX,QAAA,EAAA,CAAAH,KAAA,GAAS,eAAAI,GAAA,CAAAW,IAAA,EAAA;YAAKC,MAAO,EAAA,UAAA;YAAYb;UAAM,CAAA,CAAU,GAAA,IAAA,EACjDF,cAAe,eAAAG,GAAA,CAAAW,IAAA,EAAA;YAAK3G,IAAM,EAAA,CAAA;YAAI+F;UAAY,CAAA,CAAU,GAAA,IAAA;QAAA,CACvD;MACF,CAAA,CAAA;IAEJ,CAAA;EACF,CAAA,CAAA;AAEJ;ACpCA,MAAMc,YAAe,GAAA,SAAAA,CAAA,EAA2B;EAAA,IAA1BlB,KAAmB,GAAAhO,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkG,SAAA,GAAAlG,SAAA,MAAA,EAAO;EAC9C,OAAQ,eAAAqO,GAAA,CAAAC,IAAA,EAAA;IAAKa,EAAG,EAAA,OAAA;IAAS,GAAGnB;EAAO,CAAA,CAAA;AACrC,CAAA;AAEA,MAAMoB,WAAA,GAAcC,OAAOH,YAAY,CAAA,CACrC,MACEI,GAAA,CAAAC,eAAA,KAAAA,eAAA,GAAAC,sBAAA,4LAAA,CAUJ;AAIO,SAASC,MAAMzB,KAAmB,EAAA;EACvC,MAAM;IAACI,QAAA;IAAU,GAAGsB;EAAA,CAAQ,GAAA1B,KAAA;EAE5B,OAAQ,eAAAK,GAAA,CAAAe,WAAA,EAAA;IAAa,GAAGM,IAAA;IAAOtB;EAAS,CAAA,CAAA;AAC1C;AAGA,MAAMuB,UAAa,GAAA,SAAAA,CAAA,EAA2B;EAAA,IAA1B3B,KAAmB,GAAAhO,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkG,SAAA,GAAAlG,SAAA,MAAA,EAAO;EAC5C,OAAQ,eAAAqO,GAAA,CAAAC,IAAA,EAAA;IAAKa,EAAG,EAAA,IAAA;IAAM,GAAGnB;EAAO,CAAA,CAAA;AAClC,CAAA;AAEA,MAAM4B,SAAA,GAAYP,OAAOM,UAAU,CAAA,CACjC,MACEL,GAAA,CAAAO,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,0GAAA,CAOJ;AAIO,SAASM,IAAI9B,KAAsB,EAAA;EACxC,MAAM;IAACI,QAAA;IAAU,GAAGsB;EAAA,CAAQ,GAAA1B,KAAA;EAE5B,OAAQ,eAAAK,GAAA,CAAAuB,SAAA,EAAA;IAAW,GAAGF,IAAA;IAAOtB;EAAS,CAAA,CAAA;AACxC;AAGA,MAAM2B,WAAc,GAAA,SAAAA,CAAA,EAAgB;EAAA,IAAf/B,KAAQ,GAAAhO,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkG,SAAA,GAAAlG,SAAA,MAAA,EAAO;EAClC,OAAQ,eAAAqO,GAAA,CAAAC,IAAA,EAAA;IAAKa,EAAG,EAAA,IAAA;IAAM,GAAGnB;EAAO,CAAA,CAAA;AAClC,CAAA;AAEA,MAAMgC,UAAA,GAAaX,OAAOU,WAAW,CAAA,CACnC,MACET,GAAA,CAAAW,gBAAA,KAAAA,gBAAA,GAAAT,sBAAA,4GAAA,CAOJ;AASO,SAASU,KAAKlC,KAAuB,EAAA;EAC1C,MAAM;IAACI,QAAA;IAAU,GAAGsB;EAAA,CAAQ,GAAA1B,KAAA;EAE5B,OAAQ,eAAAK,GAAA,CAAA2B,UAAA,EAAA;IAAY,GAAGN,IAAA;IAAOtB;EAAS,CAAA,CAAA;AACzC;AC9EA,SAAS+B,WAAAA,CACPvE,OACAwE,YACgB,EAAA;EACT,OAAAxE,KAAA,CAAMlH,MAAO,CAAC8H,IAAS,IAAA;IAC5B,MAAM6D,WAAe,GAAA,CAAA7D,IAAA,CAAK6D,WAAe,IAAA,EAAA,EAAIC,WAAY,EAAA;IACrD,IAAAD,WAAA,CAAYE,WAAWH,YAAY,CAAA,EAAU,OAAA,IAAA;IACjD,MAAMI,SAAa,GAAA,CAAAhE,IAAA,CAAKgE,SAAa,IAAA,EAAA,EAAIF,WAAY,EAAA;IACjD,IAAAE,SAAA,CAAUD,WAAWH,YAAY,CAAA,EAAU,OAAA,IAAA;IAC/C,MAAMK,UAAc,GAAA,CAAAjE,IAAA,CAAKiE,UAAc,IAAA,EAAA,EAAIH,WAAY,EAAA;IACnD,IAAAG,UAAA,CAAWF,WAAWH,YAAY,CAAA,EAAU,OAAA,IAAA;IAChD,MAAMM,UAAc,GAAA,CAAAlE,IAAA,CAAKkE,UAAc,IAAA,EAAA,EAAIJ,WAAY,EAAA;IACnD,IAAAI,UAAA,CAAWH,WAAWH,YAAY,CAAA,EAAU,OAAA,IAAA;IAEzC,OAAA,KAAA;EAAA,CACR,CAAA;AACH;AAoBA,MAAMO,MAAiB,GAAA;EACrBC,KAAO,EAAA,eAAA;EACPC,QAAU,EAAA,iBAAA;EACVC,KAAO,EAAA,iBAAA;EACPC,iBAAmB,EAAA,cAAA;EACnBC,QAAU,EAAA;AACZ,CAAA;AAEO,SAASC,eAAejD,KAA4B,EAAA;EACnD,MAAA;IACJ1P,QAAQ,EAAC;IACT4S,WAAW,EAAC;IACZC,KAAA;IACAC,QAAA;IACAC,OAAA;IACAC,QAAQ,CAAC;EACP,CAAA,GAAAtD,KAAA;EACE,MAAAuD,MAAA,GAAA,CAASvD,+BAAOuD,MAAS,IAAA;IAAC,GAAGZ,MAAQ;IAAA,GAAG3C,KAAM,CAAAuD;EAAA,CAAU,GAAAZ,MAAA;EAE9D,MAAM,CAACP,YAAc,EAAAoB,eAAe,CAAI,GAAAzE,KAAA,CAAM5C,SAAS,EAAE,CAAA;EACzD,MAAMsH,aAAgB,GAAAtB,WAAA,CAAYe,QAAY,IAAA,IAAId,YAAY,CAAA;EAE9D,MAAMsB,KAAKR,QAAS,CAAAS,IAAA,CAAMC,CAAA,IAAMA,EAAEnF,aAAa,CAAA;EAC/C,MAAMoF,UAAa,GAAAH,EAAA,IAAMpT,KAAM,CAAAwT,QAAA,CAASJ,GAAG9S,EAAE,CAAA;EAIvC,MAAAmT,KAAA,GAAQtH,OAAyB,IAAI,CAAA;EAOrC,MAAAuH,kBAAA,GAAsBC,KAA+C,IAAA;IACzDT,eAAA,CAAAS,KAAA,CAAMC,OAAO5T,KAAK,CAAA;EAAA,CACpC;EAEM,MAAA6T,YAAA,GAAeA,CAACC,SAAA,EAAoB5F,IAAuB,KAAA;IAC/D,IAAI,CAAC4F,SAAW,EAAA;MACV,IAAAjB,KAAA,EAAOA,KAAA,CAAM3E,KAAK5N,EAAE,CAAA;IACf,CAAA,MAAA,IAAAwS,QAAA,EAAUA,QAAA,CAAS5E,KAAK5N,EAAE,CAAA;EAAA,CACvC;EAEA,MAAMyT,qBAAqBA,CAAA,KAAM;IAC/B,IAAIX,EAAM,IAAAP,KAAA,EAAOA,KAAA,CAAMO,GAAG9S,EAAE,CAAA;EAAA,CAC9B;EAEA,MAAM0T,uBAAuBA,CAAA,KAAM;IACjC,IAAIZ,EAAM,IAAAN,QAAA,EAAUA,QAAA,CAASM,GAAG9S,EAAE,CAAA;EAAA,CACpC;EAEA,MAAM2T,4BAA4BA,CAAA,KAAM;IAClC,IAAAlB,OAAA,EAAiBA,OAAA,EAAA;EAAA,CACvB;EAGE,OAAA,eAAA3C,IAAA,CAAC8D;IAAKlB,KACH;IAAAlD,QAAA,EAAA,CACCyD,UAAA,kBAAAxD,GAAA,CAACoE,QAAA,EAAA;MACC3E,IAAK,EAAA,SAAA;MACL4E,UAAU,CAAChB,EAAA;MACXiB,OAAS,EAAAL,oBAAA;MACTnE,IAAM,EAAAyE,gBAAA;MACNC,MAAMtB,MAAO,CAAAV;IAAA,CAAA,CAGf,kBAAAxC,GAAA,CAACoE,QAAA,EAAA;MACC3E,IAAK,EAAA,UAAA;MACL6E,OAAS,EAAAN,kBAAA;MACTlE,IAAM,EAAA2E,aAAA;MACND,MAAMtB,MAAO,CAAAX;IAAA,CAAA,CACf,EAAA,eAGFvC,GAAA,CAACoE,QAAA,EAAA;MACC3E,IAAK,EAAA,UAAA;MACL4E,QAAA,EAAUpU,MAAM2B,MAAW,KAAA,CAAA;MAC3B0S,OAAS,EAAAJ,yBAAA;MACTpE,IAAM,EAAA4E,WAAA;MACNF,MAAMtB,MAAO,CAAAT;IAAA,CAAA,CACf,EAEA,eAAAzC,GAAA,CAACO,GAAI,EAAA;MAAAL,OAAA,EAAS,CACZ;MAAAH,QAAA,EAAA,eAAAC,GAAA,CAAC2E,SAAA,EAAA;QACCvU,GAAK,EAAAsT,KAAA;QACLkB,QAAU,EAAAjB,kBAAA;QACVkB,aAAa3B,MAAO,CAAAR,iBAAA;QACpBzS,KAAO,EAAA8R;MAAA,CAAA;KAEX,CAAA,EAECA,YAAA,IAAA,CAAgBqB,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAAxR,MAAA,MAAW,CACzC,IAAA,eAAAoO,GAAA,CAACoE;MAASC,QAAQ,EAAA,IAAA;MAACG,IAAM,EAAAtB,MAAA,CAAOP;KAAU,CAAA,EAG3CS,aACC,IAAAA,aAAA,CAAclF,GAAI,CAACC,IACjB,IAAA,eAAA6B,GAAA,CAACoE,QAAA,EAAA;MAECU,OAAS,EAAA7U,KAAA,CAAMwT,QAAS,CAAAtF,IAAA,CAAK5N,EAAE,CAAA;MAC/B+T,OAAA,EAASA,CAAA,KAAMR,YAAa,CAAA7T,KAAA,CAAMuK,QAAQ2D,IAAK,CAAA5N,EAAE,CAAI,GAAA,CAAA,CAAA,EAAI4N,IAAI,CAAA;MAE7D4B,QAAA,EAAA,eAAAM,IAAA,CAACC,IAAK,EAAA;QAAAyE,KAAA,EAAM,QACV;QAAAhF,QAAA,EAAA,CAAC,eAAAC,GAAA,CAAAgF,UAAA,EAAA;UAAW7G,IAAY;UAAAnE,IAAA,EAAM;QAAG,CAAA,CAAA,EAAA,eACjCgG,GAAA,CAACO,GAAI,EAAA;UAAA0E,QAAA,EAAU,CAAG;UAAAzE,IAAA,EAAM;UACtBT,QAAC,EAAA,eAAAC,GAAA,CAAAW,IAAA,EAAA;YAAMZ,QAAK,EAAA5B,IAAA,CAAA6D;UAAA,CAAY;QAC1B,CAAA,CAAA,EACC7D,IAAA,CAAKC,aACJ,IAAA,eAAA4B,GAAA,CAACkF,KAAM,EAAA;UAAAC,QAAA,EAAU;UAAG1F,IAAK,EAAA,UAAA;UAAW2F,IAAK,EAAA,SAAA;UAAUrF,QAEnD,EAAA;QAAA,CAAA,CAAA;OAEJ;IAAA,CAAA,EAdK5B,IAAK,CAAA5N,EAAA,CAgBb,CAAA;EACL,CAAA,CAAA;AAEJ;","x_google_ignoreList":[0,1,2,3,4]}
1
+ {"version":3,"file":"index.esm.js","sources":["../node_modules/@sanity/image-url/lib/node/parseAssetId.js","../node_modules/@sanity/image-url/lib/node/parseSource.js","../node_modules/@sanity/image-url/lib/node/urlForImage.js","../node_modules/@sanity/image-url/lib/node/builder.js","../node_modules/@sanity/image-url/lib/node/index.js","../src/hooks/useImageUrlBuilder.tsx","../src/hooks/useImageUrlBuilderImage.tsx","../src/hooks/useListeningQuery.tsx","../src/hooks/useProjectUsers.tsx","../src/hooks/useOpenInNewPane.tsx","../src/components/Feedback.tsx","../src/components/Table.tsx","../src/components/UserSelectMenu/index.tsx"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar example = 'image-Tb9Ew8CXIwaY6R1kjMvI0uRR-2000x3000-jpg';\nfunction parseAssetId(ref) {\n var _a = ref.split('-'), id = _a[1], dimensionString = _a[2], format = _a[3];\n if (!id || !dimensionString || !format) {\n throw new Error(\"Malformed asset _ref '\".concat(ref, \"'. Expected an id like \\\"\").concat(example, \"\\\".\"));\n }\n var _b = dimensionString.split('x'), imgWidthStr = _b[0], imgHeightStr = _b[1];\n var width = +imgWidthStr;\n var height = +imgHeightStr;\n var isValidAssetId = isFinite(width) && isFinite(height);\n if (!isValidAssetId) {\n throw new Error(\"Malformed asset _ref '\".concat(ref, \"'. Expected an id like \\\"\").concat(example, \"\\\".\"));\n }\n return { id: id, width: width, height: height, format: format };\n}\nexports.default = parseAssetId;\n//# sourceMappingURL=parseAssetId.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isRef = function (src) {\n var source = src;\n return source ? typeof source._ref === 'string' : false;\n};\nvar isAsset = function (src) {\n var source = src;\n return source ? typeof source._id === 'string' : false;\n};\nvar isAssetStub = function (src) {\n var source = src;\n return source && source.asset ? typeof source.asset.url === 'string' : false;\n};\n// Convert an asset-id, asset or image to an image record suitable for processing\n// eslint-disable-next-line complexity\nfunction parseSource(source) {\n if (!source) {\n return null;\n }\n var image;\n if (typeof source === 'string' && isUrl(source)) {\n // Someone passed an existing image url?\n image = {\n asset: { _ref: urlToId(source) },\n };\n }\n else if (typeof source === 'string') {\n // Just an asset id\n image = {\n asset: { _ref: source },\n };\n }\n else if (isRef(source)) {\n // We just got passed an asset directly\n image = {\n asset: source,\n };\n }\n else if (isAsset(source)) {\n // If we were passed an image asset document\n image = {\n asset: {\n _ref: source._id || '',\n },\n };\n }\n else if (isAssetStub(source)) {\n // If we were passed a partial asset (`url`, but no `_id`)\n image = {\n asset: {\n _ref: urlToId(source.asset.url),\n },\n };\n }\n else if (typeof source.asset === 'object') {\n // Probably an actual image with materialized asset\n image = __assign({}, source);\n }\n else {\n // We got something that does not look like an image, or it is an image\n // that currently isn't sporting an asset.\n return null;\n }\n var img = source;\n if (img.crop) {\n image.crop = img.crop;\n }\n if (img.hotspot) {\n image.hotspot = img.hotspot;\n }\n return applyDefaults(image);\n}\nexports.default = parseSource;\nfunction isUrl(url) {\n return /^https?:\\/\\//.test(\"\".concat(url));\n}\nfunction urlToId(url) {\n var parts = url.split('/').slice(-1);\n return \"image-\".concat(parts[0]).replace(/\\.([a-z]+)$/, '-$1');\n}\n// Mock crop and hotspot if image lacks it\nfunction applyDefaults(image) {\n if (image.crop && image.hotspot) {\n return image;\n }\n // We need to pad in default values for crop or hotspot\n var result = __assign({}, image);\n if (!result.crop) {\n result.crop = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n };\n }\n if (!result.hotspot) {\n result.hotspot = {\n x: 0.5,\n y: 0.5,\n height: 1.0,\n width: 1.0,\n };\n }\n return result;\n}\n//# sourceMappingURL=parseSource.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseSource = exports.SPEC_NAME_TO_URL_NAME_MAPPINGS = void 0;\nvar parseAssetId_1 = __importDefault(require(\"./parseAssetId\"));\nvar parseSource_1 = __importDefault(require(\"./parseSource\"));\nexports.parseSource = parseSource_1.default;\nexports.SPEC_NAME_TO_URL_NAME_MAPPINGS = [\n ['width', 'w'],\n ['height', 'h'],\n ['format', 'fm'],\n ['download', 'dl'],\n ['blur', 'blur'],\n ['sharpen', 'sharp'],\n ['invert', 'invert'],\n ['orientation', 'or'],\n ['minHeight', 'min-h'],\n ['maxHeight', 'max-h'],\n ['minWidth', 'min-w'],\n ['maxWidth', 'max-w'],\n ['quality', 'q'],\n ['fit', 'fit'],\n ['crop', 'crop'],\n ['saturation', 'sat'],\n ['auto', 'auto'],\n ['dpr', 'dpr'],\n ['pad', 'pad'],\n];\nfunction urlForImage(options) {\n var spec = __assign({}, (options || {}));\n var source = spec.source;\n delete spec.source;\n var image = (0, parseSource_1.default)(source);\n if (!image) {\n throw new Error(\"Unable to resolve image URL from source (\".concat(JSON.stringify(source), \")\"));\n }\n var id = image.asset._ref || image.asset._id || '';\n var asset = (0, parseAssetId_1.default)(id);\n // Compute crop rect in terms of pixel coordinates in the raw source image\n var cropLeft = Math.round(image.crop.left * asset.width);\n var cropTop = Math.round(image.crop.top * asset.height);\n var crop = {\n left: cropLeft,\n top: cropTop,\n width: Math.round(asset.width - image.crop.right * asset.width - cropLeft),\n height: Math.round(asset.height - image.crop.bottom * asset.height - cropTop),\n };\n // Compute hot spot rect in terms of pixel coordinates\n var hotSpotVerticalRadius = (image.hotspot.height * asset.height) / 2;\n var hotSpotHorizontalRadius = (image.hotspot.width * asset.width) / 2;\n var hotSpotCenterX = image.hotspot.x * asset.width;\n var hotSpotCenterY = image.hotspot.y * asset.height;\n var hotspot = {\n left: hotSpotCenterX - hotSpotHorizontalRadius,\n top: hotSpotCenterY - hotSpotVerticalRadius,\n right: hotSpotCenterX + hotSpotHorizontalRadius,\n bottom: hotSpotCenterY + hotSpotVerticalRadius,\n };\n // If irrelevant, or if we are requested to: don't perform crop/fit based on\n // the crop/hotspot.\n if (!(spec.rect || spec.focalPoint || spec.ignoreImageParams || spec.crop)) {\n spec = __assign(__assign({}, spec), fit({ crop: crop, hotspot: hotspot }, spec));\n }\n return specToImageUrl(__assign(__assign({}, spec), { asset: asset }));\n}\nexports.default = urlForImage;\n// eslint-disable-next-line complexity\nfunction specToImageUrl(spec) {\n var cdnUrl = (spec.baseUrl || 'https://cdn.sanity.io').replace(/\\/+$/, '');\n var filename = \"\".concat(spec.asset.id, \"-\").concat(spec.asset.width, \"x\").concat(spec.asset.height, \".\").concat(spec.asset.format);\n var baseUrl = \"\".concat(cdnUrl, \"/images/\").concat(spec.projectId, \"/\").concat(spec.dataset, \"/\").concat(filename);\n var params = [];\n if (spec.rect) {\n // Only bother url with a crop if it actually crops anything\n var _a = spec.rect, left = _a.left, top_1 = _a.top, width = _a.width, height = _a.height;\n var isEffectiveCrop = left !== 0 || top_1 !== 0 || height !== spec.asset.height || width !== spec.asset.width;\n if (isEffectiveCrop) {\n params.push(\"rect=\".concat(left, \",\").concat(top_1, \",\").concat(width, \",\").concat(height));\n }\n }\n if (spec.bg) {\n params.push(\"bg=\".concat(spec.bg));\n }\n if (spec.focalPoint) {\n params.push(\"fp-x=\".concat(spec.focalPoint.x));\n params.push(\"fp-y=\".concat(spec.focalPoint.y));\n }\n var flip = [spec.flipHorizontal && 'h', spec.flipVertical && 'v'].filter(Boolean).join('');\n if (flip) {\n params.push(\"flip=\".concat(flip));\n }\n // Map from spec name to url param name, and allow using the actual param name as an alternative\n exports.SPEC_NAME_TO_URL_NAME_MAPPINGS.forEach(function (mapping) {\n var specName = mapping[0], param = mapping[1];\n if (typeof spec[specName] !== 'undefined') {\n params.push(\"\".concat(param, \"=\").concat(encodeURIComponent(spec[specName])));\n }\n else if (typeof spec[param] !== 'undefined') {\n params.push(\"\".concat(param, \"=\").concat(encodeURIComponent(spec[param])));\n }\n });\n if (params.length === 0) {\n return baseUrl;\n }\n return \"\".concat(baseUrl, \"?\").concat(params.join('&'));\n}\nfunction fit(source, spec) {\n var cropRect;\n var imgWidth = spec.width;\n var imgHeight = spec.height;\n // If we are not constraining the aspect ratio, we'll just use the whole crop\n if (!(imgWidth && imgHeight)) {\n return { width: imgWidth, height: imgHeight, rect: source.crop };\n }\n var crop = source.crop;\n var hotspot = source.hotspot;\n // If we are here, that means aspect ratio is locked and fitting will be a bit harder\n var desiredAspectRatio = imgWidth / imgHeight;\n var cropAspectRatio = crop.width / crop.height;\n if (cropAspectRatio > desiredAspectRatio) {\n // The crop is wider than the desired aspect ratio. That means we are cutting from the sides\n var height = Math.round(crop.height);\n var width = Math.round(height * desiredAspectRatio);\n var top_2 = Math.max(0, Math.round(crop.top));\n // Center output horizontally over hotspot\n var hotspotXCenter = Math.round((hotspot.right - hotspot.left) / 2 + hotspot.left);\n var left = Math.max(0, Math.round(hotspotXCenter - width / 2));\n // Keep output within crop\n if (left < crop.left) {\n left = crop.left;\n }\n else if (left + width > crop.left + crop.width) {\n left = crop.left + crop.width - width;\n }\n cropRect = { left: left, top: top_2, width: width, height: height };\n }\n else {\n // The crop is taller than the desired ratio, we are cutting from top and bottom\n var width = crop.width;\n var height = Math.round(width / desiredAspectRatio);\n var left = Math.max(0, Math.round(crop.left));\n // Center output vertically over hotspot\n var hotspotYCenter = Math.round((hotspot.bottom - hotspot.top) / 2 + hotspot.top);\n var top_3 = Math.max(0, Math.round(hotspotYCenter - height / 2));\n // Keep output rect within crop\n if (top_3 < crop.top) {\n top_3 = crop.top;\n }\n else if (top_3 + height > crop.top + crop.height) {\n top_3 = crop.top + crop.height - height;\n }\n cropRect = { left: left, top: top_3, width: width, height: height };\n }\n return {\n width: imgWidth,\n height: imgHeight,\n rect: cropRect,\n };\n}\n//# sourceMappingURL=urlForImage.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImageUrlBuilder = void 0;\nvar urlForImage_1 = __importStar(require(\"./urlForImage\"));\nvar validFits = ['clip', 'crop', 'fill', 'fillmax', 'max', 'scale', 'min'];\nvar validCrops = ['top', 'bottom', 'left', 'right', 'center', 'focalpoint', 'entropy'];\nvar validAutoModes = ['format'];\nfunction isSanityModernClientLike(client) {\n return client && 'config' in client ? typeof client.config === 'function' : false;\n}\nfunction isSanityClientLike(client) {\n return client && 'clientConfig' in client ? typeof client.clientConfig === 'object' : false;\n}\nfunction rewriteSpecName(key) {\n var specs = urlForImage_1.SPEC_NAME_TO_URL_NAME_MAPPINGS;\n for (var _i = 0, specs_1 = specs; _i < specs_1.length; _i++) {\n var entry = specs_1[_i];\n var specName = entry[0], param = entry[1];\n if (key === specName || key === param) {\n return specName;\n }\n }\n return key;\n}\nfunction urlBuilder(options) {\n // Did we get a modernish client?\n if (isSanityModernClientLike(options)) {\n // Inherit config from client\n var _a = options.config(), apiUrl = _a.apiHost, projectId = _a.projectId, dataset = _a.dataset;\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset,\n });\n }\n // Did we get a SanityClient?\n var client = options;\n if (isSanityClientLike(client)) {\n // Inherit config from client\n var _b = client.clientConfig, apiUrl = _b.apiHost, projectId = _b.projectId, dataset = _b.dataset;\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset,\n });\n }\n // Or just accept the options as given\n return new ImageUrlBuilder(null, options);\n}\nexports.default = urlBuilder;\nvar ImageUrlBuilder = /** @class */ (function () {\n function ImageUrlBuilder(parent, options) {\n this.options = parent\n ? __assign(__assign({}, (parent.options || {})), (options || {})) : __assign({}, (options || {})); // Copy options\n }\n ImageUrlBuilder.prototype.withOptions = function (options) {\n var baseUrl = options.baseUrl || this.options.baseUrl;\n var newOptions = { baseUrl: baseUrl };\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n var specKey = rewriteSpecName(key);\n newOptions[specKey] = options[key];\n }\n }\n return new ImageUrlBuilder(this, __assign({ baseUrl: baseUrl }, newOptions));\n };\n // The image to be represented. Accepts a Sanity 'image'-document, 'asset'-document or\n // _id of asset. To get the benefit of automatic hot-spot/crop integration with the content\n // studio, the 'image'-document must be provided.\n ImageUrlBuilder.prototype.image = function (source) {\n return this.withOptions({ source: source });\n };\n // Specify the dataset\n ImageUrlBuilder.prototype.dataset = function (dataset) {\n return this.withOptions({ dataset: dataset });\n };\n // Specify the projectId\n ImageUrlBuilder.prototype.projectId = function (projectId) {\n return this.withOptions({ projectId: projectId });\n };\n // Specify background color\n ImageUrlBuilder.prototype.bg = function (bg) {\n return this.withOptions({ bg: bg });\n };\n // Set DPR scaling factor\n ImageUrlBuilder.prototype.dpr = function (dpr) {\n // A DPR of 1 is the default - so only include it if we have a different value\n return this.withOptions(dpr && dpr !== 1 ? { dpr: dpr } : {});\n };\n // Specify the width of the image in pixels\n ImageUrlBuilder.prototype.width = function (width) {\n return this.withOptions({ width: width });\n };\n // Specify the height of the image in pixels\n ImageUrlBuilder.prototype.height = function (height) {\n return this.withOptions({ height: height });\n };\n // Specify focal point in fraction of image dimensions. Each component 0.0-1.0\n ImageUrlBuilder.prototype.focalPoint = function (x, y) {\n return this.withOptions({ focalPoint: { x: x, y: y } });\n };\n ImageUrlBuilder.prototype.maxWidth = function (maxWidth) {\n return this.withOptions({ maxWidth: maxWidth });\n };\n ImageUrlBuilder.prototype.minWidth = function (minWidth) {\n return this.withOptions({ minWidth: minWidth });\n };\n ImageUrlBuilder.prototype.maxHeight = function (maxHeight) {\n return this.withOptions({ maxHeight: maxHeight });\n };\n ImageUrlBuilder.prototype.minHeight = function (minHeight) {\n return this.withOptions({ minHeight: minHeight });\n };\n // Specify width and height in pixels\n ImageUrlBuilder.prototype.size = function (width, height) {\n return this.withOptions({ width: width, height: height });\n };\n // Specify blur between 0 and 100\n ImageUrlBuilder.prototype.blur = function (blur) {\n return this.withOptions({ blur: blur });\n };\n ImageUrlBuilder.prototype.sharpen = function (sharpen) {\n return this.withOptions({ sharpen: sharpen });\n };\n // Specify the desired rectangle of the image\n ImageUrlBuilder.prototype.rect = function (left, top, width, height) {\n return this.withOptions({ rect: { left: left, top: top, width: width, height: height } });\n };\n // Specify the image format of the image. 'jpg', 'pjpg', 'png', 'webp'\n ImageUrlBuilder.prototype.format = function (format) {\n return this.withOptions({ format: format });\n };\n ImageUrlBuilder.prototype.invert = function (invert) {\n return this.withOptions({ invert: invert });\n };\n // Rotation in degrees 0, 90, 180, 270\n ImageUrlBuilder.prototype.orientation = function (orientation) {\n return this.withOptions({ orientation: orientation });\n };\n // Compression quality 0-100\n ImageUrlBuilder.prototype.quality = function (quality) {\n return this.withOptions({ quality: quality });\n };\n // Make it a download link. Parameter is default filename.\n ImageUrlBuilder.prototype.forceDownload = function (download) {\n return this.withOptions({ download: download });\n };\n // Flip image horizontally\n ImageUrlBuilder.prototype.flipHorizontal = function () {\n return this.withOptions({ flipHorizontal: true });\n };\n // Flip image vertically\n ImageUrlBuilder.prototype.flipVertical = function () {\n return this.withOptions({ flipVertical: true });\n };\n // Ignore crop/hotspot from image record, even when present\n ImageUrlBuilder.prototype.ignoreImageParams = function () {\n return this.withOptions({ ignoreImageParams: true });\n };\n ImageUrlBuilder.prototype.fit = function (value) {\n if (validFits.indexOf(value) === -1) {\n throw new Error(\"Invalid fit mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ fit: value });\n };\n ImageUrlBuilder.prototype.crop = function (value) {\n if (validCrops.indexOf(value) === -1) {\n throw new Error(\"Invalid crop mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ crop: value });\n };\n // Saturation\n ImageUrlBuilder.prototype.saturation = function (saturation) {\n return this.withOptions({ saturation: saturation });\n };\n ImageUrlBuilder.prototype.auto = function (value) {\n if (validAutoModes.indexOf(value) === -1) {\n throw new Error(\"Invalid auto mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ auto: value });\n };\n // Specify the number of pixels to pad the image\n ImageUrlBuilder.prototype.pad = function (pad) {\n return this.withOptions({ pad: pad });\n };\n // Gets the url based on the submitted parameters\n ImageUrlBuilder.prototype.url = function () {\n return (0, urlForImage_1.default)(this.options);\n };\n // Alias for url()\n ImageUrlBuilder.prototype.toString = function () {\n return this.url();\n };\n return ImageUrlBuilder;\n}());\nexports.ImageUrlBuilder = ImageUrlBuilder;\n//# sourceMappingURL=builder.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar builder_1 = __importDefault(require(\"./builder\"));\nmodule.exports = builder_1.default;\n//# sourceMappingURL=index.js.map","import createImageUrlBuilder from '@sanity/image-url'\nimport {useMemo} from 'react'\nimport type {ImageUrlBuilder, SourceClientOptions} from 'sanity'\nimport {useClient} from 'sanity'\n\nexport function useImageUrlBuilder(\n clientOptions?: SourceClientOptions\n): ImageUrlBuilder | null {\n const client = useClient(clientOptions)\n const builder = useMemo(() => createImageUrlBuilder(client), [client])\n\n return builder\n}\n","import type {SanityImageSource} from '@sanity/asset-utils'\nimport {useMemo} from 'react'\nimport type {ImageUrlBuilder, SourceClientOptions} from 'sanity'\n\nimport {useImageUrlBuilder} from './useImageUrlBuilder'\n\nexport function useImageUrlBuilderImage(\n source: SanityImageSource,\n clientOptions?: SourceClientOptions\n): ImageUrlBuilder | null {\n const builder = useImageUrlBuilder(clientOptions)\n const image = useMemo(\n () => (source && builder ? builder.image(source) : null),\n [builder, source]\n )\n\n return image\n}\n","import {useEffect, useState, useRef} from 'react'\nimport {catchError, distinctUntilChanged} from 'rxjs/operators'\nimport isEqual from 'react-fast-compare'\nimport {ListenQueryOptions, ListenQueryParams, useDocumentStore} from 'sanity'\nimport {Subscription} from 'rxjs'\n\ntype Value = any\n\ninterface Config<V> {\n params?: ListenQueryParams\n options?: ListenQueryOptions\n initialValue?: null | V\n}\n\n// make generic optional\ninterface Return<V = Value> {\n loading: boolean\n error: boolean | unknown | ProgressEvent\n data: null | V\n initialValue?: Value\n}\n\nconst DEFAULT_PARAMS = {}\nconst DEFAULT_OPTIONS = {apiVersion: `v2023-05-01`}\nconst DEFAULT_INITIAL_VALUE = null\n\nexport function useListeningQuery<V>(\n query: string | {fetch: string; listen: string},\n {\n params = DEFAULT_PARAMS,\n options = DEFAULT_OPTIONS,\n initialValue = DEFAULT_INITIAL_VALUE,\n }: Config<V>\n): Return<V> {\n const [loading, setLoading] = useState<Return['loading']>(true)\n const [error, setError] = useState<Return['error']>(false)\n const [data, setData] = useState<Return['data']>(initialValue)\n const subscription = useRef<null | Subscription>(null)\n const documentStore = useDocumentStore()\n\n useEffect(() => {\n if (query && !error) {\n try {\n subscription.current = documentStore\n .listenQuery(query, params, options)\n .pipe(\n distinctUntilChanged(isEqual),\n catchError((err) => {\n console.error(err)\n setError(err)\n setLoading(false)\n setData(null)\n\n return err\n })\n )\n .subscribe((documents) => {\n setData((current: Value) =>\n isEqual(current, documents) ? current : documents\n )\n setLoading(false)\n setError(false)\n })\n } catch (err) {\n console.error(err)\n setLoading(false)\n setError(err)\n }\n }\n\n // Unsubscribe when an error occurs\n if (error && subscription.current) {\n subscription.current.unsubscribe()\n }\n\n return () => subscription?.current?.unsubscribe()\n }, [query, error, params, options, documentStore])\n\n return {data, loading, error}\n}\n","import {useState, useEffect} from 'react'\nimport {useClient, useWorkspace} from 'sanity'\n\nexport type UserExtended = {\n createdAt: string\n displayName: string\n email: string\n familyName: string\n givenName: string\n id: string\n imageUrl: string\n isCurrentUser: boolean\n middleName: string\n projectId: string\n provider: string\n sanityUserId: string\n updatedAt: string\n}\n\ntype UserRole = {\n name: string\n title: string\n}\n\ntype UserResponse = {\n isRobot: boolean\n projectUserId: string\n roles: UserRole[]\n}\n\ntype HookConfig = {\n apiVersion?: string\n}\n\n// Custom hook to fetch user details\n// Built-in hook doesn't fetch all user details\nexport function useProjectUsers({apiVersion}: HookConfig): UserExtended[] {\n const {currentUser} = useWorkspace()\n const client = useClient({apiVersion: apiVersion ?? '2023-01-01'})\n const [users, setUsers] = useState([])\n\n useEffect(() => {\n const {projectId} = client.config()\n\n async function getUser(id: string) {\n const userDetails = await client.request({\n url: `/projects/${projectId}/users/${id}`,\n })\n\n return userDetails\n }\n\n async function getUsersWithRoles() {\n const userRoles = await client\n .request({\n url: `/projects/${projectId}/acl`,\n })\n .then(async (res) =>\n Promise.all(\n res.map(async (user: UserResponse) => ({\n isCurrentUser: user.projectUserId === currentUser?.id,\n ...(await getUser(user.projectUserId)),\n }))\n )\n )\n .catch((err) => err)\n\n setUsers(userRoles)\n }\n\n if (!users.length) {\n getUsersWithRoles()\n }\n }, [client, currentUser?.id, users.length])\n\n return users\n}\n","import React from 'react'\nimport {usePaneRouter} from 'sanity/desk'\nimport {RouterContext} from 'sanity/router'\n\nexport function useOpenInNewPane(id?: string, type?: string) {\n const routerContext = React.useContext(RouterContext)\n const {routerPanesState, groupIndex} = usePaneRouter()\n\n const openInNewPane = React.useCallback(() => {\n if (!routerContext || !id || !type) {\n return\n }\n\n const panes = [...routerPanesState]\n panes.splice(groupIndex + 1, 0, [\n {\n id: id,\n params: {type},\n },\n ])\n\n const href = routerContext.resolvePathFromState({panes})\n routerContext.navigateUrl({path: href})\n }, [id, type, routerContext, routerPanesState, groupIndex])\n\n return openInNewPane\n}\n","import React from 'react'\nimport {Box, Card, CardTone, Flex, Stack, Text} from '@sanity/ui'\n\ntype FeedbackChildren = {\n children?: React.ReactNode\n title?: never\n description?: never\n}\n\ntype FeedbackTextProps = {\n title?: string\n description?: React.ReactNode\n children?: never\n}\n\ntype FeedbackProps = (FeedbackChildren | FeedbackTextProps) & {\n tone?: CardTone\n icon?: React.ReactNode\n}\n\nconst DEFAULT_PROPS: FeedbackProps = {\n tone: 'primary',\n}\n\nexport function Feedback(props: FeedbackProps) {\n const {title, description, icon, tone, children} = {...DEFAULT_PROPS, ...props}\n\n return (\n <Card tone={tone} padding={4} radius={3} border>\n <Flex>\n {icon ? `display icon` : null}\n {children ? (\n children\n ) : (\n <Box flex={1}>\n <Stack space={4}>\n {title ? <Text weight=\"semibold\">{title}</Text> : null}\n {description ? <Text size={2}>{description}</Text> : null}\n </Stack>\n </Box>\n )}\n </Flex>\n </Card>\n )\n}\n","import {PropsWithChildren} from 'react'\nimport styled, {css} from 'styled-components'\nimport {Card, CardProps} from '@sanity/ui'\n\n// Wrappers required because of bug with passing down \"as\" prop\n// https://github.com/styled-components/styled-components/issues/2449\n\n// Table\nconst TableWrapper = (props: CardProps = {}) => {\n return <Card as=\"table\" {...props} />\n}\n\nconst StyledTable = styled(TableWrapper)(\n () =>\n css`\n display: table;\n width: 100%;\n border-collapse: collapse;\n\n &:not([hidden]) {\n display: table;\n border-collapse: collapse;\n }\n `\n)\n\ntype TableProps = PropsWithChildren<CardProps>\n\nexport function Table(props: TableProps) {\n const {children, ...rest} = props\n\n return <StyledTable {...rest}>{children}</StyledTable>\n}\n\n// Row\nconst RowWrapper = (props: CardProps = {}) => {\n return <Card as=\"tr\" {...props} />\n}\n\nconst StyledRow = styled(RowWrapper)(\n () =>\n css`\n display: table-row;\n\n &:not([hidden]) {\n display: table-row;\n }\n `\n)\n\ntype TableRowProps = PropsWithChildren<CardProps>\n\nexport function Row(props: TableRowProps) {\n const {children, ...rest} = props\n\n return <StyledRow {...rest}>{children}</StyledRow>\n}\n\n// Cell\nconst CellWrapper = (props = {}) => {\n return <Card as=\"td\" {...props} />\n}\n\nconst StyledCell = styled(CellWrapper)(\n () =>\n css`\n display: table-cell;\n\n &:not([hidden]) {\n display: table-cell;\n }\n `\n)\n\ntype TableCellProps = PropsWithChildren<\n CardProps & {\n colSpan?: number\n rowSpan?: number\n }\n>\n\nexport function Cell(props: TableCellProps) {\n const {children, ...rest} = props\n\n return <StyledCell {...rest}>{children}</StyledCell>\n}\n","import React, {useRef} from 'react'\nimport {Box, Text, Menu, MenuItem, TextInput, Flex, Badge} from '@sanity/ui'\nimport {AddCircleIcon, RemoveCircleIcon, RestoreIcon} from '@sanity/icons'\nimport {UserAvatar} from 'sanity'\n\nimport {UserExtended} from '../../hooks/useProjectUsers'\n\nfunction searchUsers(\n users: UserExtended[],\n searchString: string\n): UserExtended[] {\n return users.filter((user) => {\n const displayName = (user.displayName || '').toLowerCase()\n if (displayName.startsWith(searchString)) return true\n const givenName = (user.givenName || '').toLowerCase()\n if (givenName.startsWith(searchString)) return true\n const middleName = (user.middleName || '').toLowerCase()\n if (middleName.startsWith(searchString)) return true\n const familyName = (user.familyName || '').toLowerCase()\n if (familyName.startsWith(searchString)) return true\n\n return false\n })\n}\n\ntype Labels = {\n addMe?: string\n removeMe?: string\n clear?: string\n searchPlaceholder?: string\n notFound?: string\n}\n\ntype UserSelectMenuProps = {\n value: string[]\n userList: UserExtended[]\n onAdd: (userId: string) => void\n onRemove: (userId: string) => void\n onClear: () => void\n labels?: Labels\n style?: React.CSSProperties\n}\n\nconst LABELS: Labels = {\n addMe: 'Assign myself',\n removeMe: 'Unassign myself',\n clear: 'Clear assignees',\n searchPlaceholder: 'Search users',\n notFound: 'No users found',\n}\n\nexport function UserSelectMenu(props: UserSelectMenuProps) {\n const {\n value = [],\n userList = [],\n onAdd,\n onRemove,\n onClear,\n style = {},\n } = props\n const labels = props?.labels ? {...LABELS, ...props.labels} : LABELS\n\n const [searchString, setSearchString] = React.useState('')\n const searchResults = searchUsers(userList || [], searchString)\n\n const me = userList.find((u) => u.isCurrentUser)\n const meAssigned = me && value.includes(me.id)\n\n // Focus input on open\n // TODO: Fix focus, it gets immediately taken away\n const input = useRef<HTMLInputElement>(null)\n // useEffect(() => {\n // if (open && input?.current) {\n // input.current.focus()\n // }\n // }, [open])\n\n const handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchString(event.target.value)\n }\n\n const handleSelect = (isChecked: boolean, user: UserExtended) => {\n if (!isChecked) {\n if (onAdd) onAdd(user.id)\n } else if (onRemove) onRemove(user.id)\n }\n\n const handleAssignMyself = () => {\n if (me && onAdd) onAdd(me.id)\n }\n\n const handleUnassignMyself = () => {\n if (me && onRemove) onRemove(me.id)\n }\n\n const handleClearAssigneesClick = () => {\n if (onClear) onClear()\n }\n\n return (\n <Menu style={style}>\n {meAssigned ? (\n <MenuItem\n tone=\"caution\"\n disabled={!me}\n onClick={handleUnassignMyself}\n icon={RemoveCircleIcon}\n text={labels.removeMe}\n />\n ) : (\n <MenuItem\n tone=\"positive\"\n onClick={handleAssignMyself}\n icon={AddCircleIcon}\n text={labels.addMe}\n />\n )}\n\n <MenuItem\n tone=\"critical\"\n disabled={value.length === 0}\n onClick={handleClearAssigneesClick}\n icon={RestoreIcon}\n text={labels.clear}\n />\n\n <Box padding={1}>\n <TextInput\n ref={input}\n onChange={handleSearchChange}\n placeholder={labels.searchPlaceholder}\n value={searchString}\n />\n </Box>\n\n {searchString && searchResults?.length === 0 && (\n <MenuItem disabled text={labels.notFound} />\n )}\n\n {searchResults &&\n searchResults.map((user) => (\n <MenuItem\n key={user.id}\n pressed={value.includes(user.id)}\n onClick={() => handleSelect(value.indexOf(user.id) > -1, user)}\n >\n <Flex align=\"center\">\n <UserAvatar user={user} size={1} />\n <Box paddingX={2} flex={1}>\n <Text>{user.displayName}</Text>\n </Box>\n {user.isCurrentUser && (\n <Badge fontSize={1} tone=\"positive\" mode=\"outline\">\n Me\n </Badge>\n )}\n </Flex>\n </MenuItem>\n ))}\n </Menu>\n )\n}\n"],"names":["Object","defineProperty","parseAssetId_1","value","example","parseAssetId","ref","_a","split","id","dimensionString","format","Error","concat","_b","imgWidthStr","imgHeightStr","width","height","isValidAssetId","isFinite","default","__assign","this","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","parseSource_1","isRef","src","source","_ref","isAsset","_id","isAssetStub","asset","url","parseSource","image","isUrl","urlToId","img","crop","hotspot","applyDefaults","test","parts","slice","replace","result","left","top","bottom","right","x","y","__importDefault","mod","__esModule","exports","SPEC_NAME_TO_URL_NAME_MAPPINGS","require$$0","require$$1","urlForImage","options","spec","JSON","stringify","cropLeft","Math","round","cropTop","hotSpotVerticalRadius","hotSpotHorizontalRadius","hotSpotCenterX","hotSpotCenterY","rect","focalPoint","ignoreImageParams","fit","specToImageUrl","cdnUrl","baseUrl","filename","projectId","dataset","params","top_1","isEffectiveCrop","push","bg","flip","flipHorizontal","flipVertical","filter","Boolean","join","forEach","mapping","specName","param","encodeURIComponent","cropRect","imgWidth","imgHeight","desiredAspectRatio","cropAspectRatio","top_2","max","hotspotXCenter","hotspotYCenter","top_3","__createBinding","create","o","m","k","k2","undefined","enumerable","get","__setModuleDefault","v","__importStar","builder","ImageUrlBuilder","urlForImage_1","validFits","validCrops","validAutoModes","isSanityModernClientLike","client","config","isSanityClientLike","clientConfig","rewriteSpecName","key","specs","_i","specs_1","entry","urlBuilder","apiUrl","apiHost","parent","withOptions","newOptions","specKey","dpr","maxWidth","minWidth","maxHeight","minHeight","size","blur","sharpen","invert","orientation","quality","forceDownload","download","indexOf","saturation","auto","pad","toString","builder_1","node","useImageUrlBuilder","clientOptions","useClient","useMemo","createImageUrlBuilder","useImageUrlBuilderImage","DEFAULT_PARAMS","DEFAULT_OPTIONS","apiVersion","DEFAULT_INITIAL_VALUE","useListeningQuery","query","initialValue","loading","setLoading","useState","error","setError","data","setData","subscription","useRef","documentStore","useDocumentStore","useEffect","current","listenQuery","pipe","distinctUntilChanged","isEqual","catchError","err","console","subscribe","documents","unsubscribe","useProjectUsers","_ref2","currentUser","useWorkspace","users","setUsers","getUser","userDetails","request","getUsersWithRoles","userRoles","then","res","Promise","all","map","user","isCurrentUser","projectUserId","catch","useOpenInNewPane","type","routerContext","React","useContext","RouterContext","routerPanesState","groupIndex","usePaneRouter","openInNewPane","useCallback","panes","splice","href","resolvePathFromState","navigateUrl","path","DEFAULT_PROPS","tone","Feedback","props","title","description","icon","children","jsx","Card","padding","radius","border","jsxs","Flex","Box","flex","Stack","space","Text","weight","TableWrapper","as","StyledTable","styled","css","_templateObject","_taggedTemplateLiteral","Table","rest","RowWrapper","StyledRow","_templateObject2","Row","CellWrapper","StyledCell","_templateObject3","Cell","searchUsers","searchString","displayName","toLowerCase","startsWith","givenName","middleName","familyName","LABELS","addMe","removeMe","clear","searchPlaceholder","notFound","UserSelectMenu","userList","onAdd","onRemove","onClear","style","labels","setSearchString","searchResults","me","find","u","meAssigned","includes","input","handleSearchChange","event","target","handleSelect","isChecked","handleAssignMyself","handleUnassignMyself","handleClearAssigneesClick","Menu","MenuItem","disabled","onClick","RemoveCircleIcon","text","AddCircleIcon","RestoreIcon","TextInput","onChange","placeholder","pressed","align","UserAvatar","paddingX","Badge","fontSize","mode"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
package/lib/index.js CHANGED
@@ -682,7 +682,7 @@ function useImageUrlBuilderImage(source, clientOptions) {
682
682
  }
683
683
  const DEFAULT_PARAMS = {};
684
684
  const DEFAULT_OPTIONS = {
685
- apiVersion: "v2022-05-09"
685
+ apiVersion: "v2023-05-01"
686
686
  };
687
687
  const DEFAULT_INITIAL_VALUE = null;
688
688
  function useListeningQuery(query, _ref) {
@@ -697,24 +697,33 @@ function useListeningQuery(query, _ref) {
697
697
  const subscription = React.useRef(null);
698
698
  const documentStore = sanity.useDocumentStore();
699
699
  React.useEffect(() => {
700
- if (query) {
701
- subscription.current = documentStore.listenQuery(query, params, options).pipe(operators.distinctUntilChanged(isEqual__default.default), operators.catchError(err => {
700
+ if (query && !error) {
701
+ try {
702
+ subscription.current = documentStore.listenQuery(query, params, options).pipe(operators.distinctUntilChanged(isEqual__default.default), operators.catchError(err => {
703
+ console.error(err);
704
+ setError(err);
705
+ setLoading(false);
706
+ setData(null);
707
+ return err;
708
+ })).subscribe(documents => {
709
+ setData(current => isEqual__default.default(current, documents) ? current : documents);
710
+ setLoading(false);
711
+ setError(false);
712
+ });
713
+ } catch (err) {
702
714
  console.error(err);
703
- setError(err);
704
- setLoading(false);
705
- setData(null);
706
- return err;
707
- })).subscribe(documents => {
708
- setData(current => isEqual__default.default(current, documents) ? current : documents);
709
715
  setLoading(false);
710
- setError(false);
711
- });
716
+ setError(err);
717
+ }
718
+ }
719
+ if (error && subscription.current) {
720
+ subscription.current.unsubscribe();
712
721
  }
713
722
  return () => {
714
723
  var _a;
715
724
  return (_a = subscription == null ? void 0 : subscription.current) == null ? void 0 : _a.unsubscribe();
716
725
  };
717
- }, [query, params, options, documentStore]);
726
+ }, [query, error, params, options, documentStore]);
718
727
  return {
719
728
  data,
720
729
  loading,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/@sanity/image-url/lib/node/parseAssetId.js","../node_modules/@sanity/image-url/lib/node/parseSource.js","../node_modules/@sanity/image-url/lib/node/urlForImage.js","../node_modules/@sanity/image-url/lib/node/builder.js","../node_modules/@sanity/image-url/lib/node/index.js","../src/hooks/useImageUrlBuilder.tsx","../src/hooks/useImageUrlBuilderImage.tsx","../src/hooks/useListeningQuery.tsx","../src/hooks/useProjectUsers.tsx","../src/hooks/useOpenInNewPane.tsx","../src/components/Feedback.tsx","../src/components/Table.tsx","../src/components/UserSelectMenu/index.tsx"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar example = 'image-Tb9Ew8CXIwaY6R1kjMvI0uRR-2000x3000-jpg';\nfunction parseAssetId(ref) {\n var _a = ref.split('-'), id = _a[1], dimensionString = _a[2], format = _a[3];\n if (!id || !dimensionString || !format) {\n throw new Error(\"Malformed asset _ref '\".concat(ref, \"'. Expected an id like \\\"\").concat(example, \"\\\".\"));\n }\n var _b = dimensionString.split('x'), imgWidthStr = _b[0], imgHeightStr = _b[1];\n var width = +imgWidthStr;\n var height = +imgHeightStr;\n var isValidAssetId = isFinite(width) && isFinite(height);\n if (!isValidAssetId) {\n throw new Error(\"Malformed asset _ref '\".concat(ref, \"'. Expected an id like \\\"\").concat(example, \"\\\".\"));\n }\n return { id: id, width: width, height: height, format: format };\n}\nexports.default = parseAssetId;\n//# sourceMappingURL=parseAssetId.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isRef = function (src) {\n var source = src;\n return source ? typeof source._ref === 'string' : false;\n};\nvar isAsset = function (src) {\n var source = src;\n return source ? typeof source._id === 'string' : false;\n};\nvar isAssetStub = function (src) {\n var source = src;\n return source && source.asset ? typeof source.asset.url === 'string' : false;\n};\n// Convert an asset-id, asset or image to an image record suitable for processing\n// eslint-disable-next-line complexity\nfunction parseSource(source) {\n if (!source) {\n return null;\n }\n var image;\n if (typeof source === 'string' && isUrl(source)) {\n // Someone passed an existing image url?\n image = {\n asset: { _ref: urlToId(source) },\n };\n }\n else if (typeof source === 'string') {\n // Just an asset id\n image = {\n asset: { _ref: source },\n };\n }\n else if (isRef(source)) {\n // We just got passed an asset directly\n image = {\n asset: source,\n };\n }\n else if (isAsset(source)) {\n // If we were passed an image asset document\n image = {\n asset: {\n _ref: source._id || '',\n },\n };\n }\n else if (isAssetStub(source)) {\n // If we were passed a partial asset (`url`, but no `_id`)\n image = {\n asset: {\n _ref: urlToId(source.asset.url),\n },\n };\n }\n else if (typeof source.asset === 'object') {\n // Probably an actual image with materialized asset\n image = __assign({}, source);\n }\n else {\n // We got something that does not look like an image, or it is an image\n // that currently isn't sporting an asset.\n return null;\n }\n var img = source;\n if (img.crop) {\n image.crop = img.crop;\n }\n if (img.hotspot) {\n image.hotspot = img.hotspot;\n }\n return applyDefaults(image);\n}\nexports.default = parseSource;\nfunction isUrl(url) {\n return /^https?:\\/\\//.test(\"\".concat(url));\n}\nfunction urlToId(url) {\n var parts = url.split('/').slice(-1);\n return \"image-\".concat(parts[0]).replace(/\\.([a-z]+)$/, '-$1');\n}\n// Mock crop and hotspot if image lacks it\nfunction applyDefaults(image) {\n if (image.crop && image.hotspot) {\n return image;\n }\n // We need to pad in default values for crop or hotspot\n var result = __assign({}, image);\n if (!result.crop) {\n result.crop = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n };\n }\n if (!result.hotspot) {\n result.hotspot = {\n x: 0.5,\n y: 0.5,\n height: 1.0,\n width: 1.0,\n };\n }\n return result;\n}\n//# sourceMappingURL=parseSource.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseSource = exports.SPEC_NAME_TO_URL_NAME_MAPPINGS = void 0;\nvar parseAssetId_1 = __importDefault(require(\"./parseAssetId\"));\nvar parseSource_1 = __importDefault(require(\"./parseSource\"));\nexports.parseSource = parseSource_1.default;\nexports.SPEC_NAME_TO_URL_NAME_MAPPINGS = [\n ['width', 'w'],\n ['height', 'h'],\n ['format', 'fm'],\n ['download', 'dl'],\n ['blur', 'blur'],\n ['sharpen', 'sharp'],\n ['invert', 'invert'],\n ['orientation', 'or'],\n ['minHeight', 'min-h'],\n ['maxHeight', 'max-h'],\n ['minWidth', 'min-w'],\n ['maxWidth', 'max-w'],\n ['quality', 'q'],\n ['fit', 'fit'],\n ['crop', 'crop'],\n ['saturation', 'sat'],\n ['auto', 'auto'],\n ['dpr', 'dpr'],\n ['pad', 'pad'],\n];\nfunction urlForImage(options) {\n var spec = __assign({}, (options || {}));\n var source = spec.source;\n delete spec.source;\n var image = (0, parseSource_1.default)(source);\n if (!image) {\n throw new Error(\"Unable to resolve image URL from source (\".concat(JSON.stringify(source), \")\"));\n }\n var id = image.asset._ref || image.asset._id || '';\n var asset = (0, parseAssetId_1.default)(id);\n // Compute crop rect in terms of pixel coordinates in the raw source image\n var cropLeft = Math.round(image.crop.left * asset.width);\n var cropTop = Math.round(image.crop.top * asset.height);\n var crop = {\n left: cropLeft,\n top: cropTop,\n width: Math.round(asset.width - image.crop.right * asset.width - cropLeft),\n height: Math.round(asset.height - image.crop.bottom * asset.height - cropTop),\n };\n // Compute hot spot rect in terms of pixel coordinates\n var hotSpotVerticalRadius = (image.hotspot.height * asset.height) / 2;\n var hotSpotHorizontalRadius = (image.hotspot.width * asset.width) / 2;\n var hotSpotCenterX = image.hotspot.x * asset.width;\n var hotSpotCenterY = image.hotspot.y * asset.height;\n var hotspot = {\n left: hotSpotCenterX - hotSpotHorizontalRadius,\n top: hotSpotCenterY - hotSpotVerticalRadius,\n right: hotSpotCenterX + hotSpotHorizontalRadius,\n bottom: hotSpotCenterY + hotSpotVerticalRadius,\n };\n // If irrelevant, or if we are requested to: don't perform crop/fit based on\n // the crop/hotspot.\n if (!(spec.rect || spec.focalPoint || spec.ignoreImageParams || spec.crop)) {\n spec = __assign(__assign({}, spec), fit({ crop: crop, hotspot: hotspot }, spec));\n }\n return specToImageUrl(__assign(__assign({}, spec), { asset: asset }));\n}\nexports.default = urlForImage;\n// eslint-disable-next-line complexity\nfunction specToImageUrl(spec) {\n var cdnUrl = (spec.baseUrl || 'https://cdn.sanity.io').replace(/\\/+$/, '');\n var filename = \"\".concat(spec.asset.id, \"-\").concat(spec.asset.width, \"x\").concat(spec.asset.height, \".\").concat(spec.asset.format);\n var baseUrl = \"\".concat(cdnUrl, \"/images/\").concat(spec.projectId, \"/\").concat(spec.dataset, \"/\").concat(filename);\n var params = [];\n if (spec.rect) {\n // Only bother url with a crop if it actually crops anything\n var _a = spec.rect, left = _a.left, top_1 = _a.top, width = _a.width, height = _a.height;\n var isEffectiveCrop = left !== 0 || top_1 !== 0 || height !== spec.asset.height || width !== spec.asset.width;\n if (isEffectiveCrop) {\n params.push(\"rect=\".concat(left, \",\").concat(top_1, \",\").concat(width, \",\").concat(height));\n }\n }\n if (spec.bg) {\n params.push(\"bg=\".concat(spec.bg));\n }\n if (spec.focalPoint) {\n params.push(\"fp-x=\".concat(spec.focalPoint.x));\n params.push(\"fp-y=\".concat(spec.focalPoint.y));\n }\n var flip = [spec.flipHorizontal && 'h', spec.flipVertical && 'v'].filter(Boolean).join('');\n if (flip) {\n params.push(\"flip=\".concat(flip));\n }\n // Map from spec name to url param name, and allow using the actual param name as an alternative\n exports.SPEC_NAME_TO_URL_NAME_MAPPINGS.forEach(function (mapping) {\n var specName = mapping[0], param = mapping[1];\n if (typeof spec[specName] !== 'undefined') {\n params.push(\"\".concat(param, \"=\").concat(encodeURIComponent(spec[specName])));\n }\n else if (typeof spec[param] !== 'undefined') {\n params.push(\"\".concat(param, \"=\").concat(encodeURIComponent(spec[param])));\n }\n });\n if (params.length === 0) {\n return baseUrl;\n }\n return \"\".concat(baseUrl, \"?\").concat(params.join('&'));\n}\nfunction fit(source, spec) {\n var cropRect;\n var imgWidth = spec.width;\n var imgHeight = spec.height;\n // If we are not constraining the aspect ratio, we'll just use the whole crop\n if (!(imgWidth && imgHeight)) {\n return { width: imgWidth, height: imgHeight, rect: source.crop };\n }\n var crop = source.crop;\n var hotspot = source.hotspot;\n // If we are here, that means aspect ratio is locked and fitting will be a bit harder\n var desiredAspectRatio = imgWidth / imgHeight;\n var cropAspectRatio = crop.width / crop.height;\n if (cropAspectRatio > desiredAspectRatio) {\n // The crop is wider than the desired aspect ratio. That means we are cutting from the sides\n var height = Math.round(crop.height);\n var width = Math.round(height * desiredAspectRatio);\n var top_2 = Math.max(0, Math.round(crop.top));\n // Center output horizontally over hotspot\n var hotspotXCenter = Math.round((hotspot.right - hotspot.left) / 2 + hotspot.left);\n var left = Math.max(0, Math.round(hotspotXCenter - width / 2));\n // Keep output within crop\n if (left < crop.left) {\n left = crop.left;\n }\n else if (left + width > crop.left + crop.width) {\n left = crop.left + crop.width - width;\n }\n cropRect = { left: left, top: top_2, width: width, height: height };\n }\n else {\n // The crop is taller than the desired ratio, we are cutting from top and bottom\n var width = crop.width;\n var height = Math.round(width / desiredAspectRatio);\n var left = Math.max(0, Math.round(crop.left));\n // Center output vertically over hotspot\n var hotspotYCenter = Math.round((hotspot.bottom - hotspot.top) / 2 + hotspot.top);\n var top_3 = Math.max(0, Math.round(hotspotYCenter - height / 2));\n // Keep output rect within crop\n if (top_3 < crop.top) {\n top_3 = crop.top;\n }\n else if (top_3 + height > crop.top + crop.height) {\n top_3 = crop.top + crop.height - height;\n }\n cropRect = { left: left, top: top_3, width: width, height: height };\n }\n return {\n width: imgWidth,\n height: imgHeight,\n rect: cropRect,\n };\n}\n//# sourceMappingURL=urlForImage.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImageUrlBuilder = void 0;\nvar urlForImage_1 = __importStar(require(\"./urlForImage\"));\nvar validFits = ['clip', 'crop', 'fill', 'fillmax', 'max', 'scale', 'min'];\nvar validCrops = ['top', 'bottom', 'left', 'right', 'center', 'focalpoint', 'entropy'];\nvar validAutoModes = ['format'];\nfunction isSanityModernClientLike(client) {\n return client && 'config' in client ? typeof client.config === 'function' : false;\n}\nfunction isSanityClientLike(client) {\n return client && 'clientConfig' in client ? typeof client.clientConfig === 'object' : false;\n}\nfunction rewriteSpecName(key) {\n var specs = urlForImage_1.SPEC_NAME_TO_URL_NAME_MAPPINGS;\n for (var _i = 0, specs_1 = specs; _i < specs_1.length; _i++) {\n var entry = specs_1[_i];\n var specName = entry[0], param = entry[1];\n if (key === specName || key === param) {\n return specName;\n }\n }\n return key;\n}\nfunction urlBuilder(options) {\n // Did we get a modernish client?\n if (isSanityModernClientLike(options)) {\n // Inherit config from client\n var _a = options.config(), apiUrl = _a.apiHost, projectId = _a.projectId, dataset = _a.dataset;\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset,\n });\n }\n // Did we get a SanityClient?\n var client = options;\n if (isSanityClientLike(client)) {\n // Inherit config from client\n var _b = client.clientConfig, apiUrl = _b.apiHost, projectId = _b.projectId, dataset = _b.dataset;\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset,\n });\n }\n // Or just accept the options as given\n return new ImageUrlBuilder(null, options);\n}\nexports.default = urlBuilder;\nvar ImageUrlBuilder = /** @class */ (function () {\n function ImageUrlBuilder(parent, options) {\n this.options = parent\n ? __assign(__assign({}, (parent.options || {})), (options || {})) : __assign({}, (options || {})); // Copy options\n }\n ImageUrlBuilder.prototype.withOptions = function (options) {\n var baseUrl = options.baseUrl || this.options.baseUrl;\n var newOptions = { baseUrl: baseUrl };\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n var specKey = rewriteSpecName(key);\n newOptions[specKey] = options[key];\n }\n }\n return new ImageUrlBuilder(this, __assign({ baseUrl: baseUrl }, newOptions));\n };\n // The image to be represented. Accepts a Sanity 'image'-document, 'asset'-document or\n // _id of asset. To get the benefit of automatic hot-spot/crop integration with the content\n // studio, the 'image'-document must be provided.\n ImageUrlBuilder.prototype.image = function (source) {\n return this.withOptions({ source: source });\n };\n // Specify the dataset\n ImageUrlBuilder.prototype.dataset = function (dataset) {\n return this.withOptions({ dataset: dataset });\n };\n // Specify the projectId\n ImageUrlBuilder.prototype.projectId = function (projectId) {\n return this.withOptions({ projectId: projectId });\n };\n // Specify background color\n ImageUrlBuilder.prototype.bg = function (bg) {\n return this.withOptions({ bg: bg });\n };\n // Set DPR scaling factor\n ImageUrlBuilder.prototype.dpr = function (dpr) {\n // A DPR of 1 is the default - so only include it if we have a different value\n return this.withOptions(dpr && dpr !== 1 ? { dpr: dpr } : {});\n };\n // Specify the width of the image in pixels\n ImageUrlBuilder.prototype.width = function (width) {\n return this.withOptions({ width: width });\n };\n // Specify the height of the image in pixels\n ImageUrlBuilder.prototype.height = function (height) {\n return this.withOptions({ height: height });\n };\n // Specify focal point in fraction of image dimensions. Each component 0.0-1.0\n ImageUrlBuilder.prototype.focalPoint = function (x, y) {\n return this.withOptions({ focalPoint: { x: x, y: y } });\n };\n ImageUrlBuilder.prototype.maxWidth = function (maxWidth) {\n return this.withOptions({ maxWidth: maxWidth });\n };\n ImageUrlBuilder.prototype.minWidth = function (minWidth) {\n return this.withOptions({ minWidth: minWidth });\n };\n ImageUrlBuilder.prototype.maxHeight = function (maxHeight) {\n return this.withOptions({ maxHeight: maxHeight });\n };\n ImageUrlBuilder.prototype.minHeight = function (minHeight) {\n return this.withOptions({ minHeight: minHeight });\n };\n // Specify width and height in pixels\n ImageUrlBuilder.prototype.size = function (width, height) {\n return this.withOptions({ width: width, height: height });\n };\n // Specify blur between 0 and 100\n ImageUrlBuilder.prototype.blur = function (blur) {\n return this.withOptions({ blur: blur });\n };\n ImageUrlBuilder.prototype.sharpen = function (sharpen) {\n return this.withOptions({ sharpen: sharpen });\n };\n // Specify the desired rectangle of the image\n ImageUrlBuilder.prototype.rect = function (left, top, width, height) {\n return this.withOptions({ rect: { left: left, top: top, width: width, height: height } });\n };\n // Specify the image format of the image. 'jpg', 'pjpg', 'png', 'webp'\n ImageUrlBuilder.prototype.format = function (format) {\n return this.withOptions({ format: format });\n };\n ImageUrlBuilder.prototype.invert = function (invert) {\n return this.withOptions({ invert: invert });\n };\n // Rotation in degrees 0, 90, 180, 270\n ImageUrlBuilder.prototype.orientation = function (orientation) {\n return this.withOptions({ orientation: orientation });\n };\n // Compression quality 0-100\n ImageUrlBuilder.prototype.quality = function (quality) {\n return this.withOptions({ quality: quality });\n };\n // Make it a download link. Parameter is default filename.\n ImageUrlBuilder.prototype.forceDownload = function (download) {\n return this.withOptions({ download: download });\n };\n // Flip image horizontally\n ImageUrlBuilder.prototype.flipHorizontal = function () {\n return this.withOptions({ flipHorizontal: true });\n };\n // Flip image vertically\n ImageUrlBuilder.prototype.flipVertical = function () {\n return this.withOptions({ flipVertical: true });\n };\n // Ignore crop/hotspot from image record, even when present\n ImageUrlBuilder.prototype.ignoreImageParams = function () {\n return this.withOptions({ ignoreImageParams: true });\n };\n ImageUrlBuilder.prototype.fit = function (value) {\n if (validFits.indexOf(value) === -1) {\n throw new Error(\"Invalid fit mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ fit: value });\n };\n ImageUrlBuilder.prototype.crop = function (value) {\n if (validCrops.indexOf(value) === -1) {\n throw new Error(\"Invalid crop mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ crop: value });\n };\n // Saturation\n ImageUrlBuilder.prototype.saturation = function (saturation) {\n return this.withOptions({ saturation: saturation });\n };\n ImageUrlBuilder.prototype.auto = function (value) {\n if (validAutoModes.indexOf(value) === -1) {\n throw new Error(\"Invalid auto mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ auto: value });\n };\n // Specify the number of pixels to pad the image\n ImageUrlBuilder.prototype.pad = function (pad) {\n return this.withOptions({ pad: pad });\n };\n // Gets the url based on the submitted parameters\n ImageUrlBuilder.prototype.url = function () {\n return (0, urlForImage_1.default)(this.options);\n };\n // Alias for url()\n ImageUrlBuilder.prototype.toString = function () {\n return this.url();\n };\n return ImageUrlBuilder;\n}());\nexports.ImageUrlBuilder = ImageUrlBuilder;\n//# sourceMappingURL=builder.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar builder_1 = __importDefault(require(\"./builder\"));\nmodule.exports = builder_1.default;\n//# sourceMappingURL=index.js.map","import createImageUrlBuilder from '@sanity/image-url'\nimport {useMemo} from 'react'\nimport type {ImageUrlBuilder, SourceClientOptions} from 'sanity'\nimport {useClient} from 'sanity'\n\nexport function useImageUrlBuilder(\n clientOptions?: SourceClientOptions\n): ImageUrlBuilder | null {\n const client = useClient(clientOptions)\n const builder = useMemo(() => createImageUrlBuilder(client), [client])\n\n return builder\n}\n","import type {SanityImageSource} from '@sanity/asset-utils'\nimport {useMemo} from 'react'\nimport type {ImageUrlBuilder, SourceClientOptions} from 'sanity'\n\nimport {useImageUrlBuilder} from './useImageUrlBuilder'\n\nexport function useImageUrlBuilderImage(\n source: SanityImageSource,\n clientOptions?: SourceClientOptions\n): ImageUrlBuilder | null {\n const builder = useImageUrlBuilder(clientOptions)\n const image = useMemo(\n () => (source && builder ? builder.image(source) : null),\n [builder, source]\n )\n\n return image\n}\n","import {useEffect, useState, useRef} from 'react'\nimport {catchError, distinctUntilChanged} from 'rxjs/operators'\nimport isEqual from 'react-fast-compare'\nimport {useDocumentStore} from 'sanity'\nimport {Subscription} from 'rxjs'\n\ntype Params = Record<string, string | number | boolean | string[]>\n\ninterface ListenQueryOptions {\n tag?: string\n apiVersion?: string\n}\n\ntype Value = any\n\ninterface Config<V> {\n params: Params\n options?: ListenQueryOptions\n initialValue?: null | V\n}\n\ninterface Return<V> {\n loading: boolean\n error: boolean\n data: null | V\n initialValue?: Value\n}\n\nconst DEFAULT_PARAMS = {}\nconst DEFAULT_OPTIONS = {apiVersion: `v2022-05-09`}\nconst DEFAULT_INITIAL_VALUE = null\n\nexport function useListeningQuery<V>(\n query: string | {fetch: string; listen: string},\n {\n params = DEFAULT_PARAMS,\n options = DEFAULT_OPTIONS,\n initialValue = DEFAULT_INITIAL_VALUE,\n }: Config<V>\n): Return<V> {\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState(false)\n const [data, setData] = useState(initialValue)\n const subscription = useRef<null | Subscription>(null)\n const documentStore = useDocumentStore()\n\n useEffect(() => {\n if (query) {\n subscription.current = documentStore\n .listenQuery(query, params, options)\n .pipe(\n distinctUntilChanged(isEqual),\n catchError((err) => {\n console.error(err)\n setError(err)\n setLoading(false)\n setData(null)\n\n return err\n })\n )\n .subscribe((documents) => {\n setData((current: Value) => (isEqual(current, documents) ? current : documents))\n setLoading(false)\n setError(false)\n })\n }\n\n return () => subscription?.current?.unsubscribe()\n }, [query, params, options, documentStore])\n\n return {data, loading, error}\n}\n","import {useState, useEffect} from 'react'\nimport {useClient, useWorkspace} from 'sanity'\n\nexport type UserExtended = {\n createdAt: string\n displayName: string\n email: string\n familyName: string\n givenName: string\n id: string\n imageUrl: string\n isCurrentUser: boolean\n middleName: string\n projectId: string\n provider: string\n sanityUserId: string\n updatedAt: string\n}\n\ntype UserRole = {\n name: string\n title: string\n}\n\ntype UserResponse = {\n isRobot: boolean\n projectUserId: string\n roles: UserRole[]\n}\n\ntype HookConfig = {\n apiVersion?: string\n}\n\n// Custom hook to fetch user details\n// Built-in hook doesn't fetch all user details\nexport function useProjectUsers({apiVersion}: HookConfig): UserExtended[] {\n const {currentUser} = useWorkspace()\n const client = useClient({apiVersion: apiVersion ?? '2023-01-01'})\n const [users, setUsers] = useState([])\n\n useEffect(() => {\n const {projectId} = client.config()\n\n async function getUser(id: string) {\n const userDetails = await client.request({\n url: `/projects/${projectId}/users/${id}`,\n })\n\n return userDetails\n }\n\n async function getUsersWithRoles() {\n const userRoles = await client\n .request({\n url: `/projects/${projectId}/acl`,\n })\n .then(async (res) =>\n Promise.all(\n res.map(async (user: UserResponse) => ({\n isCurrentUser: user.projectUserId === currentUser?.id,\n ...(await getUser(user.projectUserId)),\n }))\n )\n )\n .catch((err) => err)\n\n setUsers(userRoles)\n }\n\n if (!users.length) {\n getUsersWithRoles()\n }\n }, [client, currentUser?.id, users.length])\n\n return users\n}\n","import React from 'react'\nimport {usePaneRouter} from 'sanity/desk'\nimport {RouterContext} from 'sanity/router'\n\nexport function useOpenInNewPane(id?: string, type?: string) {\n const routerContext = React.useContext(RouterContext)\n const {routerPanesState, groupIndex} = usePaneRouter()\n\n const openInNewPane = React.useCallback(() => {\n if (!routerContext || !id || !type) {\n return\n }\n\n const panes = [...routerPanesState]\n panes.splice(groupIndex + 1, 0, [\n {\n id: id,\n params: {type},\n },\n ])\n\n const href = routerContext.resolvePathFromState({panes})\n routerContext.navigateUrl({path: href})\n }, [id, type, routerContext, routerPanesState, groupIndex])\n\n return openInNewPane\n}\n","import React from 'react'\nimport {Box, Card, CardTone, Flex, Stack, Text} from '@sanity/ui'\n\ntype FeedbackChildren = {\n children?: React.ReactNode\n title?: never\n description?: never\n}\n\ntype FeedbackTextProps = {\n title?: string\n description?: React.ReactNode\n children?: never\n}\n\ntype FeedbackProps = (FeedbackChildren | FeedbackTextProps) & {\n tone?: CardTone\n icon?: React.ReactNode\n}\n\nconst DEFAULT_PROPS: FeedbackProps = {\n tone: 'primary',\n}\n\nexport function Feedback(props: FeedbackProps) {\n const {title, description, icon, tone, children} = {...DEFAULT_PROPS, ...props}\n\n return (\n <Card tone={tone} padding={4} radius={3} border>\n <Flex>\n {icon ? `display icon` : null}\n {children ? (\n children\n ) : (\n <Box flex={1}>\n <Stack space={4}>\n {title ? <Text weight=\"semibold\">{title}</Text> : null}\n {description ? <Text size={2}>{description}</Text> : null}\n </Stack>\n </Box>\n )}\n </Flex>\n </Card>\n )\n}\n","import {PropsWithChildren} from 'react'\nimport styled, {css} from 'styled-components'\nimport {Card, CardProps} from '@sanity/ui'\n\n// Wrappers required because of bug with passing down \"as\" prop\n// https://github.com/styled-components/styled-components/issues/2449\n\n// Table\nconst TableWrapper = (props: CardProps = {}) => {\n return <Card as=\"table\" {...props} />\n}\n\nconst StyledTable = styled(TableWrapper)(\n () =>\n css`\n display: table;\n width: 100%;\n border-collapse: collapse;\n\n &:not([hidden]) {\n display: table;\n border-collapse: collapse;\n }\n `\n)\n\ntype TableProps = PropsWithChildren<CardProps>\n\nexport function Table(props: TableProps) {\n const {children, ...rest} = props\n\n return <StyledTable {...rest}>{children}</StyledTable>\n}\n\n// Row\nconst RowWrapper = (props: CardProps = {}) => {\n return <Card as=\"tr\" {...props} />\n}\n\nconst StyledRow = styled(RowWrapper)(\n () =>\n css`\n display: table-row;\n\n &:not([hidden]) {\n display: table-row;\n }\n `\n)\n\ntype TableRowProps = PropsWithChildren<CardProps>\n\nexport function Row(props: TableRowProps) {\n const {children, ...rest} = props\n\n return <StyledRow {...rest}>{children}</StyledRow>\n}\n\n// Cell\nconst CellWrapper = (props = {}) => {\n return <Card as=\"td\" {...props} />\n}\n\nconst StyledCell = styled(CellWrapper)(\n () =>\n css`\n display: table-cell;\n\n &:not([hidden]) {\n display: table-cell;\n }\n `\n)\n\ntype TableCellProps = PropsWithChildren<\n CardProps & {\n colSpan?: number\n rowSpan?: number\n }\n>\n\nexport function Cell(props: TableCellProps) {\n const {children, ...rest} = props\n\n return <StyledCell {...rest}>{children}</StyledCell>\n}\n","import React, {useRef} from 'react'\nimport {Box, Text, Menu, MenuItem, TextInput, Flex, Badge} from '@sanity/ui'\nimport {AddCircleIcon, RemoveCircleIcon, RestoreIcon} from '@sanity/icons'\nimport {UserAvatar} from 'sanity'\n\nimport {UserExtended} from '../../hooks/useProjectUsers'\n\nfunction searchUsers(\n users: UserExtended[],\n searchString: string\n): UserExtended[] {\n return users.filter((user) => {\n const displayName = (user.displayName || '').toLowerCase()\n if (displayName.startsWith(searchString)) return true\n const givenName = (user.givenName || '').toLowerCase()\n if (givenName.startsWith(searchString)) return true\n const middleName = (user.middleName || '').toLowerCase()\n if (middleName.startsWith(searchString)) return true\n const familyName = (user.familyName || '').toLowerCase()\n if (familyName.startsWith(searchString)) return true\n\n return false\n })\n}\n\ntype Labels = {\n addMe?: string\n removeMe?: string\n clear?: string\n searchPlaceholder?: string\n notFound?: string\n}\n\ntype UserSelectMenuProps = {\n value: string[]\n userList: UserExtended[]\n onAdd: (userId: string) => void\n onRemove: (userId: string) => void\n onClear: () => void\n labels?: Labels\n style?: React.CSSProperties\n}\n\nconst LABELS: Labels = {\n addMe: 'Assign myself',\n removeMe: 'Unassign myself',\n clear: 'Clear assignees',\n searchPlaceholder: 'Search users',\n notFound: 'No users found',\n}\n\nexport function UserSelectMenu(props: UserSelectMenuProps) {\n const {\n value = [],\n userList = [],\n onAdd,\n onRemove,\n onClear,\n style = {},\n } = props\n const labels = props?.labels ? {...LABELS, ...props.labels} : LABELS\n\n const [searchString, setSearchString] = React.useState('')\n const searchResults = searchUsers(userList || [], searchString)\n\n const me = userList.find((u) => u.isCurrentUser)\n const meAssigned = me && value.includes(me.id)\n\n // Focus input on open\n // TODO: Fix focus, it gets immediately taken away\n const input = useRef<HTMLInputElement>(null)\n // useEffect(() => {\n // if (open && input?.current) {\n // input.current.focus()\n // }\n // }, [open])\n\n const handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchString(event.target.value)\n }\n\n const handleSelect = (isChecked: boolean, user: UserExtended) => {\n if (!isChecked) {\n if (onAdd) onAdd(user.id)\n } else if (onRemove) onRemove(user.id)\n }\n\n const handleAssignMyself = () => {\n if (me && onAdd) onAdd(me.id)\n }\n\n const handleUnassignMyself = () => {\n if (me && onRemove) onRemove(me.id)\n }\n\n const handleClearAssigneesClick = () => {\n if (onClear) onClear()\n }\n\n return (\n <Menu style={style}>\n {meAssigned ? (\n <MenuItem\n tone=\"caution\"\n disabled={!me}\n onClick={handleUnassignMyself}\n icon={RemoveCircleIcon}\n text={labels.removeMe}\n />\n ) : (\n <MenuItem\n tone=\"positive\"\n onClick={handleAssignMyself}\n icon={AddCircleIcon}\n text={labels.addMe}\n />\n )}\n\n <MenuItem\n tone=\"critical\"\n disabled={value.length === 0}\n onClick={handleClearAssigneesClick}\n icon={RestoreIcon}\n text={labels.clear}\n />\n\n <Box padding={1}>\n <TextInput\n ref={input}\n onChange={handleSearchChange}\n placeholder={labels.searchPlaceholder}\n value={searchString}\n />\n </Box>\n\n {searchString && searchResults?.length === 0 && (\n <MenuItem disabled text={labels.notFound} />\n )}\n\n {searchResults &&\n searchResults.map((user) => (\n <MenuItem\n key={user.id}\n pressed={value.includes(user.id)}\n onClick={() => handleSelect(value.indexOf(user.id) > -1, user)}\n >\n <Flex align=\"center\">\n <UserAvatar user={user} size={1} />\n <Box paddingX={2} flex={1}>\n <Text>{user.displayName}</Text>\n </Box>\n {user.isCurrentUser && (\n <Badge fontSize={1} tone=\"positive\" mode=\"outline\">\n Me\n </Badge>\n )}\n </Flex>\n </MenuItem>\n ))}\n </Menu>\n )\n}\n"],"names":["Object","defineProperty","parseAssetId_1","value","example","parseAssetId","ref","_a","split","id","dimensionString","format","Error","concat","_b","imgWidthStr","imgHeightStr","width","height","isValidAssetId","isFinite","default","__assign","this","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","parseSource_1","isRef","src","source","_ref","isAsset","_id","isAssetStub","asset","url","parseSource","image","isUrl","urlToId","img","crop","hotspot","applyDefaults","test","parts","slice","replace","result","left","top","bottom","right","x","y","__importDefault","mod","__esModule","exports","SPEC_NAME_TO_URL_NAME_MAPPINGS","require$$0","require$$1","urlForImage","options","spec","JSON","stringify","cropLeft","Math","round","cropTop","hotSpotVerticalRadius","hotSpotHorizontalRadius","hotSpotCenterX","hotSpotCenterY","rect","focalPoint","ignoreImageParams","fit","specToImageUrl","cdnUrl","baseUrl","filename","projectId","dataset","params","top_1","isEffectiveCrop","push","bg","flip","flipHorizontal","flipVertical","filter","Boolean","join","forEach","mapping","specName","param","encodeURIComponent","cropRect","imgWidth","imgHeight","desiredAspectRatio","cropAspectRatio","top_2","max","hotspotXCenter","hotspotYCenter","top_3","__createBinding","create","o","m","k","k2","undefined","enumerable","get","__setModuleDefault","v","__importStar","builder","ImageUrlBuilder","urlForImage_1","validFits","validCrops","validAutoModes","isSanityModernClientLike","client","config","isSanityClientLike","clientConfig","rewriteSpecName","key","specs","_i","specs_1","entry","urlBuilder","apiUrl","apiHost","parent","withOptions","newOptions","specKey","dpr","maxWidth","minWidth","maxHeight","minHeight","size","blur","sharpen","invert","orientation","quality","forceDownload","download","indexOf","saturation","auto","pad","toString","builder_1","node","useImageUrlBuilder","clientOptions","useClient","useMemo","createImageUrlBuilder","useImageUrlBuilderImage","DEFAULT_PARAMS","DEFAULT_OPTIONS","apiVersion","DEFAULT_INITIAL_VALUE","useListeningQuery","query","initialValue","loading","setLoading","useState","error","setError","data","setData","subscription","useRef","documentStore","useDocumentStore","useEffect","current","listenQuery","pipe","distinctUntilChanged","isEqual","catchError","err","console","subscribe","documents","unsubscribe","useProjectUsers","_ref2","currentUser","useWorkspace","users","setUsers","getUser","userDetails","request","getUsersWithRoles","userRoles","then","res","Promise","all","map","user","isCurrentUser","projectUserId","catch","useOpenInNewPane","type","routerContext","React","useContext","RouterContext","routerPanesState","groupIndex","usePaneRouter","openInNewPane","useCallback","panes","splice","href","resolvePathFromState","navigateUrl","path","DEFAULT_PROPS","tone","Feedback","props","title","description","icon","children","jsx","Card","padding","radius","border","jsxs","Flex","Box","flex","Stack","space","Text","weight","TableWrapper","as","StyledTable","styled","css","_templateObject","_taggedTemplateLiteral","Table","rest","RowWrapper","StyledRow","_templateObject2","Row","CellWrapper","StyledCell","_templateObject3","Cell","searchUsers","searchString","displayName","toLowerCase","startsWith","givenName","middleName","familyName","LABELS","addMe","removeMe","clear","searchPlaceholder","notFound","UserSelectMenu","userList","onAdd","onRemove","onClear","style","labels","setSearchString","searchResults","me","find","u","meAssigned","includes","input","handleSearchChange","event","target","handleSelect","isChecked","handleAssignMyself","handleUnassignMyself","handleClearAssigneesClick","Menu","MenuItem","disabled","onClick","RemoveCircleIcon","text","AddCircleIcon","RestoreIcon","TextInput","onChange","placeholder","pressed","align","UserAvatar","paddingX","Badge","fontSize","mode"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/@sanity/image-url/lib/node/parseAssetId.js","../node_modules/@sanity/image-url/lib/node/parseSource.js","../node_modules/@sanity/image-url/lib/node/urlForImage.js","../node_modules/@sanity/image-url/lib/node/builder.js","../node_modules/@sanity/image-url/lib/node/index.js","../src/hooks/useImageUrlBuilder.tsx","../src/hooks/useImageUrlBuilderImage.tsx","../src/hooks/useListeningQuery.tsx","../src/hooks/useProjectUsers.tsx","../src/hooks/useOpenInNewPane.tsx","../src/components/Feedback.tsx","../src/components/Table.tsx","../src/components/UserSelectMenu/index.tsx"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar example = 'image-Tb9Ew8CXIwaY6R1kjMvI0uRR-2000x3000-jpg';\nfunction parseAssetId(ref) {\n var _a = ref.split('-'), id = _a[1], dimensionString = _a[2], format = _a[3];\n if (!id || !dimensionString || !format) {\n throw new Error(\"Malformed asset _ref '\".concat(ref, \"'. Expected an id like \\\"\").concat(example, \"\\\".\"));\n }\n var _b = dimensionString.split('x'), imgWidthStr = _b[0], imgHeightStr = _b[1];\n var width = +imgWidthStr;\n var height = +imgHeightStr;\n var isValidAssetId = isFinite(width) && isFinite(height);\n if (!isValidAssetId) {\n throw new Error(\"Malformed asset _ref '\".concat(ref, \"'. Expected an id like \\\"\").concat(example, \"\\\".\"));\n }\n return { id: id, width: width, height: height, format: format };\n}\nexports.default = parseAssetId;\n//# sourceMappingURL=parseAssetId.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isRef = function (src) {\n var source = src;\n return source ? typeof source._ref === 'string' : false;\n};\nvar isAsset = function (src) {\n var source = src;\n return source ? typeof source._id === 'string' : false;\n};\nvar isAssetStub = function (src) {\n var source = src;\n return source && source.asset ? typeof source.asset.url === 'string' : false;\n};\n// Convert an asset-id, asset or image to an image record suitable for processing\n// eslint-disable-next-line complexity\nfunction parseSource(source) {\n if (!source) {\n return null;\n }\n var image;\n if (typeof source === 'string' && isUrl(source)) {\n // Someone passed an existing image url?\n image = {\n asset: { _ref: urlToId(source) },\n };\n }\n else if (typeof source === 'string') {\n // Just an asset id\n image = {\n asset: { _ref: source },\n };\n }\n else if (isRef(source)) {\n // We just got passed an asset directly\n image = {\n asset: source,\n };\n }\n else if (isAsset(source)) {\n // If we were passed an image asset document\n image = {\n asset: {\n _ref: source._id || '',\n },\n };\n }\n else if (isAssetStub(source)) {\n // If we were passed a partial asset (`url`, but no `_id`)\n image = {\n asset: {\n _ref: urlToId(source.asset.url),\n },\n };\n }\n else if (typeof source.asset === 'object') {\n // Probably an actual image with materialized asset\n image = __assign({}, source);\n }\n else {\n // We got something that does not look like an image, or it is an image\n // that currently isn't sporting an asset.\n return null;\n }\n var img = source;\n if (img.crop) {\n image.crop = img.crop;\n }\n if (img.hotspot) {\n image.hotspot = img.hotspot;\n }\n return applyDefaults(image);\n}\nexports.default = parseSource;\nfunction isUrl(url) {\n return /^https?:\\/\\//.test(\"\".concat(url));\n}\nfunction urlToId(url) {\n var parts = url.split('/').slice(-1);\n return \"image-\".concat(parts[0]).replace(/\\.([a-z]+)$/, '-$1');\n}\n// Mock crop and hotspot if image lacks it\nfunction applyDefaults(image) {\n if (image.crop && image.hotspot) {\n return image;\n }\n // We need to pad in default values for crop or hotspot\n var result = __assign({}, image);\n if (!result.crop) {\n result.crop = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n };\n }\n if (!result.hotspot) {\n result.hotspot = {\n x: 0.5,\n y: 0.5,\n height: 1.0,\n width: 1.0,\n };\n }\n return result;\n}\n//# sourceMappingURL=parseSource.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseSource = exports.SPEC_NAME_TO_URL_NAME_MAPPINGS = void 0;\nvar parseAssetId_1 = __importDefault(require(\"./parseAssetId\"));\nvar parseSource_1 = __importDefault(require(\"./parseSource\"));\nexports.parseSource = parseSource_1.default;\nexports.SPEC_NAME_TO_URL_NAME_MAPPINGS = [\n ['width', 'w'],\n ['height', 'h'],\n ['format', 'fm'],\n ['download', 'dl'],\n ['blur', 'blur'],\n ['sharpen', 'sharp'],\n ['invert', 'invert'],\n ['orientation', 'or'],\n ['minHeight', 'min-h'],\n ['maxHeight', 'max-h'],\n ['minWidth', 'min-w'],\n ['maxWidth', 'max-w'],\n ['quality', 'q'],\n ['fit', 'fit'],\n ['crop', 'crop'],\n ['saturation', 'sat'],\n ['auto', 'auto'],\n ['dpr', 'dpr'],\n ['pad', 'pad'],\n];\nfunction urlForImage(options) {\n var spec = __assign({}, (options || {}));\n var source = spec.source;\n delete spec.source;\n var image = (0, parseSource_1.default)(source);\n if (!image) {\n throw new Error(\"Unable to resolve image URL from source (\".concat(JSON.stringify(source), \")\"));\n }\n var id = image.asset._ref || image.asset._id || '';\n var asset = (0, parseAssetId_1.default)(id);\n // Compute crop rect in terms of pixel coordinates in the raw source image\n var cropLeft = Math.round(image.crop.left * asset.width);\n var cropTop = Math.round(image.crop.top * asset.height);\n var crop = {\n left: cropLeft,\n top: cropTop,\n width: Math.round(asset.width - image.crop.right * asset.width - cropLeft),\n height: Math.round(asset.height - image.crop.bottom * asset.height - cropTop),\n };\n // Compute hot spot rect in terms of pixel coordinates\n var hotSpotVerticalRadius = (image.hotspot.height * asset.height) / 2;\n var hotSpotHorizontalRadius = (image.hotspot.width * asset.width) / 2;\n var hotSpotCenterX = image.hotspot.x * asset.width;\n var hotSpotCenterY = image.hotspot.y * asset.height;\n var hotspot = {\n left: hotSpotCenterX - hotSpotHorizontalRadius,\n top: hotSpotCenterY - hotSpotVerticalRadius,\n right: hotSpotCenterX + hotSpotHorizontalRadius,\n bottom: hotSpotCenterY + hotSpotVerticalRadius,\n };\n // If irrelevant, or if we are requested to: don't perform crop/fit based on\n // the crop/hotspot.\n if (!(spec.rect || spec.focalPoint || spec.ignoreImageParams || spec.crop)) {\n spec = __assign(__assign({}, spec), fit({ crop: crop, hotspot: hotspot }, spec));\n }\n return specToImageUrl(__assign(__assign({}, spec), { asset: asset }));\n}\nexports.default = urlForImage;\n// eslint-disable-next-line complexity\nfunction specToImageUrl(spec) {\n var cdnUrl = (spec.baseUrl || 'https://cdn.sanity.io').replace(/\\/+$/, '');\n var filename = \"\".concat(spec.asset.id, \"-\").concat(spec.asset.width, \"x\").concat(spec.asset.height, \".\").concat(spec.asset.format);\n var baseUrl = \"\".concat(cdnUrl, \"/images/\").concat(spec.projectId, \"/\").concat(spec.dataset, \"/\").concat(filename);\n var params = [];\n if (spec.rect) {\n // Only bother url with a crop if it actually crops anything\n var _a = spec.rect, left = _a.left, top_1 = _a.top, width = _a.width, height = _a.height;\n var isEffectiveCrop = left !== 0 || top_1 !== 0 || height !== spec.asset.height || width !== spec.asset.width;\n if (isEffectiveCrop) {\n params.push(\"rect=\".concat(left, \",\").concat(top_1, \",\").concat(width, \",\").concat(height));\n }\n }\n if (spec.bg) {\n params.push(\"bg=\".concat(spec.bg));\n }\n if (spec.focalPoint) {\n params.push(\"fp-x=\".concat(spec.focalPoint.x));\n params.push(\"fp-y=\".concat(spec.focalPoint.y));\n }\n var flip = [spec.flipHorizontal && 'h', spec.flipVertical && 'v'].filter(Boolean).join('');\n if (flip) {\n params.push(\"flip=\".concat(flip));\n }\n // Map from spec name to url param name, and allow using the actual param name as an alternative\n exports.SPEC_NAME_TO_URL_NAME_MAPPINGS.forEach(function (mapping) {\n var specName = mapping[0], param = mapping[1];\n if (typeof spec[specName] !== 'undefined') {\n params.push(\"\".concat(param, \"=\").concat(encodeURIComponent(spec[specName])));\n }\n else if (typeof spec[param] !== 'undefined') {\n params.push(\"\".concat(param, \"=\").concat(encodeURIComponent(spec[param])));\n }\n });\n if (params.length === 0) {\n return baseUrl;\n }\n return \"\".concat(baseUrl, \"?\").concat(params.join('&'));\n}\nfunction fit(source, spec) {\n var cropRect;\n var imgWidth = spec.width;\n var imgHeight = spec.height;\n // If we are not constraining the aspect ratio, we'll just use the whole crop\n if (!(imgWidth && imgHeight)) {\n return { width: imgWidth, height: imgHeight, rect: source.crop };\n }\n var crop = source.crop;\n var hotspot = source.hotspot;\n // If we are here, that means aspect ratio is locked and fitting will be a bit harder\n var desiredAspectRatio = imgWidth / imgHeight;\n var cropAspectRatio = crop.width / crop.height;\n if (cropAspectRatio > desiredAspectRatio) {\n // The crop is wider than the desired aspect ratio. That means we are cutting from the sides\n var height = Math.round(crop.height);\n var width = Math.round(height * desiredAspectRatio);\n var top_2 = Math.max(0, Math.round(crop.top));\n // Center output horizontally over hotspot\n var hotspotXCenter = Math.round((hotspot.right - hotspot.left) / 2 + hotspot.left);\n var left = Math.max(0, Math.round(hotspotXCenter - width / 2));\n // Keep output within crop\n if (left < crop.left) {\n left = crop.left;\n }\n else if (left + width > crop.left + crop.width) {\n left = crop.left + crop.width - width;\n }\n cropRect = { left: left, top: top_2, width: width, height: height };\n }\n else {\n // The crop is taller than the desired ratio, we are cutting from top and bottom\n var width = crop.width;\n var height = Math.round(width / desiredAspectRatio);\n var left = Math.max(0, Math.round(crop.left));\n // Center output vertically over hotspot\n var hotspotYCenter = Math.round((hotspot.bottom - hotspot.top) / 2 + hotspot.top);\n var top_3 = Math.max(0, Math.round(hotspotYCenter - height / 2));\n // Keep output rect within crop\n if (top_3 < crop.top) {\n top_3 = crop.top;\n }\n else if (top_3 + height > crop.top + crop.height) {\n top_3 = crop.top + crop.height - height;\n }\n cropRect = { left: left, top: top_3, width: width, height: height };\n }\n return {\n width: imgWidth,\n height: imgHeight,\n rect: cropRect,\n };\n}\n//# sourceMappingURL=urlForImage.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImageUrlBuilder = void 0;\nvar urlForImage_1 = __importStar(require(\"./urlForImage\"));\nvar validFits = ['clip', 'crop', 'fill', 'fillmax', 'max', 'scale', 'min'];\nvar validCrops = ['top', 'bottom', 'left', 'right', 'center', 'focalpoint', 'entropy'];\nvar validAutoModes = ['format'];\nfunction isSanityModernClientLike(client) {\n return client && 'config' in client ? typeof client.config === 'function' : false;\n}\nfunction isSanityClientLike(client) {\n return client && 'clientConfig' in client ? typeof client.clientConfig === 'object' : false;\n}\nfunction rewriteSpecName(key) {\n var specs = urlForImage_1.SPEC_NAME_TO_URL_NAME_MAPPINGS;\n for (var _i = 0, specs_1 = specs; _i < specs_1.length; _i++) {\n var entry = specs_1[_i];\n var specName = entry[0], param = entry[1];\n if (key === specName || key === param) {\n return specName;\n }\n }\n return key;\n}\nfunction urlBuilder(options) {\n // Did we get a modernish client?\n if (isSanityModernClientLike(options)) {\n // Inherit config from client\n var _a = options.config(), apiUrl = _a.apiHost, projectId = _a.projectId, dataset = _a.dataset;\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset,\n });\n }\n // Did we get a SanityClient?\n var client = options;\n if (isSanityClientLike(client)) {\n // Inherit config from client\n var _b = client.clientConfig, apiUrl = _b.apiHost, projectId = _b.projectId, dataset = _b.dataset;\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset,\n });\n }\n // Or just accept the options as given\n return new ImageUrlBuilder(null, options);\n}\nexports.default = urlBuilder;\nvar ImageUrlBuilder = /** @class */ (function () {\n function ImageUrlBuilder(parent, options) {\n this.options = parent\n ? __assign(__assign({}, (parent.options || {})), (options || {})) : __assign({}, (options || {})); // Copy options\n }\n ImageUrlBuilder.prototype.withOptions = function (options) {\n var baseUrl = options.baseUrl || this.options.baseUrl;\n var newOptions = { baseUrl: baseUrl };\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n var specKey = rewriteSpecName(key);\n newOptions[specKey] = options[key];\n }\n }\n return new ImageUrlBuilder(this, __assign({ baseUrl: baseUrl }, newOptions));\n };\n // The image to be represented. Accepts a Sanity 'image'-document, 'asset'-document or\n // _id of asset. To get the benefit of automatic hot-spot/crop integration with the content\n // studio, the 'image'-document must be provided.\n ImageUrlBuilder.prototype.image = function (source) {\n return this.withOptions({ source: source });\n };\n // Specify the dataset\n ImageUrlBuilder.prototype.dataset = function (dataset) {\n return this.withOptions({ dataset: dataset });\n };\n // Specify the projectId\n ImageUrlBuilder.prototype.projectId = function (projectId) {\n return this.withOptions({ projectId: projectId });\n };\n // Specify background color\n ImageUrlBuilder.prototype.bg = function (bg) {\n return this.withOptions({ bg: bg });\n };\n // Set DPR scaling factor\n ImageUrlBuilder.prototype.dpr = function (dpr) {\n // A DPR of 1 is the default - so only include it if we have a different value\n return this.withOptions(dpr && dpr !== 1 ? { dpr: dpr } : {});\n };\n // Specify the width of the image in pixels\n ImageUrlBuilder.prototype.width = function (width) {\n return this.withOptions({ width: width });\n };\n // Specify the height of the image in pixels\n ImageUrlBuilder.prototype.height = function (height) {\n return this.withOptions({ height: height });\n };\n // Specify focal point in fraction of image dimensions. Each component 0.0-1.0\n ImageUrlBuilder.prototype.focalPoint = function (x, y) {\n return this.withOptions({ focalPoint: { x: x, y: y } });\n };\n ImageUrlBuilder.prototype.maxWidth = function (maxWidth) {\n return this.withOptions({ maxWidth: maxWidth });\n };\n ImageUrlBuilder.prototype.minWidth = function (minWidth) {\n return this.withOptions({ minWidth: minWidth });\n };\n ImageUrlBuilder.prototype.maxHeight = function (maxHeight) {\n return this.withOptions({ maxHeight: maxHeight });\n };\n ImageUrlBuilder.prototype.minHeight = function (minHeight) {\n return this.withOptions({ minHeight: minHeight });\n };\n // Specify width and height in pixels\n ImageUrlBuilder.prototype.size = function (width, height) {\n return this.withOptions({ width: width, height: height });\n };\n // Specify blur between 0 and 100\n ImageUrlBuilder.prototype.blur = function (blur) {\n return this.withOptions({ blur: blur });\n };\n ImageUrlBuilder.prototype.sharpen = function (sharpen) {\n return this.withOptions({ sharpen: sharpen });\n };\n // Specify the desired rectangle of the image\n ImageUrlBuilder.prototype.rect = function (left, top, width, height) {\n return this.withOptions({ rect: { left: left, top: top, width: width, height: height } });\n };\n // Specify the image format of the image. 'jpg', 'pjpg', 'png', 'webp'\n ImageUrlBuilder.prototype.format = function (format) {\n return this.withOptions({ format: format });\n };\n ImageUrlBuilder.prototype.invert = function (invert) {\n return this.withOptions({ invert: invert });\n };\n // Rotation in degrees 0, 90, 180, 270\n ImageUrlBuilder.prototype.orientation = function (orientation) {\n return this.withOptions({ orientation: orientation });\n };\n // Compression quality 0-100\n ImageUrlBuilder.prototype.quality = function (quality) {\n return this.withOptions({ quality: quality });\n };\n // Make it a download link. Parameter is default filename.\n ImageUrlBuilder.prototype.forceDownload = function (download) {\n return this.withOptions({ download: download });\n };\n // Flip image horizontally\n ImageUrlBuilder.prototype.flipHorizontal = function () {\n return this.withOptions({ flipHorizontal: true });\n };\n // Flip image vertically\n ImageUrlBuilder.prototype.flipVertical = function () {\n return this.withOptions({ flipVertical: true });\n };\n // Ignore crop/hotspot from image record, even when present\n ImageUrlBuilder.prototype.ignoreImageParams = function () {\n return this.withOptions({ ignoreImageParams: true });\n };\n ImageUrlBuilder.prototype.fit = function (value) {\n if (validFits.indexOf(value) === -1) {\n throw new Error(\"Invalid fit mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ fit: value });\n };\n ImageUrlBuilder.prototype.crop = function (value) {\n if (validCrops.indexOf(value) === -1) {\n throw new Error(\"Invalid crop mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ crop: value });\n };\n // Saturation\n ImageUrlBuilder.prototype.saturation = function (saturation) {\n return this.withOptions({ saturation: saturation });\n };\n ImageUrlBuilder.prototype.auto = function (value) {\n if (validAutoModes.indexOf(value) === -1) {\n throw new Error(\"Invalid auto mode \\\"\".concat(value, \"\\\"\"));\n }\n return this.withOptions({ auto: value });\n };\n // Specify the number of pixels to pad the image\n ImageUrlBuilder.prototype.pad = function (pad) {\n return this.withOptions({ pad: pad });\n };\n // Gets the url based on the submitted parameters\n ImageUrlBuilder.prototype.url = function () {\n return (0, urlForImage_1.default)(this.options);\n };\n // Alias for url()\n ImageUrlBuilder.prototype.toString = function () {\n return this.url();\n };\n return ImageUrlBuilder;\n}());\nexports.ImageUrlBuilder = ImageUrlBuilder;\n//# sourceMappingURL=builder.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar builder_1 = __importDefault(require(\"./builder\"));\nmodule.exports = builder_1.default;\n//# sourceMappingURL=index.js.map","import createImageUrlBuilder from '@sanity/image-url'\nimport {useMemo} from 'react'\nimport type {ImageUrlBuilder, SourceClientOptions} from 'sanity'\nimport {useClient} from 'sanity'\n\nexport function useImageUrlBuilder(\n clientOptions?: SourceClientOptions\n): ImageUrlBuilder | null {\n const client = useClient(clientOptions)\n const builder = useMemo(() => createImageUrlBuilder(client), [client])\n\n return builder\n}\n","import type {SanityImageSource} from '@sanity/asset-utils'\nimport {useMemo} from 'react'\nimport type {ImageUrlBuilder, SourceClientOptions} from 'sanity'\n\nimport {useImageUrlBuilder} from './useImageUrlBuilder'\n\nexport function useImageUrlBuilderImage(\n source: SanityImageSource,\n clientOptions?: SourceClientOptions\n): ImageUrlBuilder | null {\n const builder = useImageUrlBuilder(clientOptions)\n const image = useMemo(\n () => (source && builder ? builder.image(source) : null),\n [builder, source]\n )\n\n return image\n}\n","import {useEffect, useState, useRef} from 'react'\nimport {catchError, distinctUntilChanged} from 'rxjs/operators'\nimport isEqual from 'react-fast-compare'\nimport {ListenQueryOptions, ListenQueryParams, useDocumentStore} from 'sanity'\nimport {Subscription} from 'rxjs'\n\ntype Value = any\n\ninterface Config<V> {\n params?: ListenQueryParams\n options?: ListenQueryOptions\n initialValue?: null | V\n}\n\n// make generic optional\ninterface Return<V = Value> {\n loading: boolean\n error: boolean | unknown | ProgressEvent\n data: null | V\n initialValue?: Value\n}\n\nconst DEFAULT_PARAMS = {}\nconst DEFAULT_OPTIONS = {apiVersion: `v2023-05-01`}\nconst DEFAULT_INITIAL_VALUE = null\n\nexport function useListeningQuery<V>(\n query: string | {fetch: string; listen: string},\n {\n params = DEFAULT_PARAMS,\n options = DEFAULT_OPTIONS,\n initialValue = DEFAULT_INITIAL_VALUE,\n }: Config<V>\n): Return<V> {\n const [loading, setLoading] = useState<Return['loading']>(true)\n const [error, setError] = useState<Return['error']>(false)\n const [data, setData] = useState<Return['data']>(initialValue)\n const subscription = useRef<null | Subscription>(null)\n const documentStore = useDocumentStore()\n\n useEffect(() => {\n if (query && !error) {\n try {\n subscription.current = documentStore\n .listenQuery(query, params, options)\n .pipe(\n distinctUntilChanged(isEqual),\n catchError((err) => {\n console.error(err)\n setError(err)\n setLoading(false)\n setData(null)\n\n return err\n })\n )\n .subscribe((documents) => {\n setData((current: Value) =>\n isEqual(current, documents) ? current : documents\n )\n setLoading(false)\n setError(false)\n })\n } catch (err) {\n console.error(err)\n setLoading(false)\n setError(err)\n }\n }\n\n // Unsubscribe when an error occurs\n if (error && subscription.current) {\n subscription.current.unsubscribe()\n }\n\n return () => subscription?.current?.unsubscribe()\n }, [query, error, params, options, documentStore])\n\n return {data, loading, error}\n}\n","import {useState, useEffect} from 'react'\nimport {useClient, useWorkspace} from 'sanity'\n\nexport type UserExtended = {\n createdAt: string\n displayName: string\n email: string\n familyName: string\n givenName: string\n id: string\n imageUrl: string\n isCurrentUser: boolean\n middleName: string\n projectId: string\n provider: string\n sanityUserId: string\n updatedAt: string\n}\n\ntype UserRole = {\n name: string\n title: string\n}\n\ntype UserResponse = {\n isRobot: boolean\n projectUserId: string\n roles: UserRole[]\n}\n\ntype HookConfig = {\n apiVersion?: string\n}\n\n// Custom hook to fetch user details\n// Built-in hook doesn't fetch all user details\nexport function useProjectUsers({apiVersion}: HookConfig): UserExtended[] {\n const {currentUser} = useWorkspace()\n const client = useClient({apiVersion: apiVersion ?? '2023-01-01'})\n const [users, setUsers] = useState([])\n\n useEffect(() => {\n const {projectId} = client.config()\n\n async function getUser(id: string) {\n const userDetails = await client.request({\n url: `/projects/${projectId}/users/${id}`,\n })\n\n return userDetails\n }\n\n async function getUsersWithRoles() {\n const userRoles = await client\n .request({\n url: `/projects/${projectId}/acl`,\n })\n .then(async (res) =>\n Promise.all(\n res.map(async (user: UserResponse) => ({\n isCurrentUser: user.projectUserId === currentUser?.id,\n ...(await getUser(user.projectUserId)),\n }))\n )\n )\n .catch((err) => err)\n\n setUsers(userRoles)\n }\n\n if (!users.length) {\n getUsersWithRoles()\n }\n }, [client, currentUser?.id, users.length])\n\n return users\n}\n","import React from 'react'\nimport {usePaneRouter} from 'sanity/desk'\nimport {RouterContext} from 'sanity/router'\n\nexport function useOpenInNewPane(id?: string, type?: string) {\n const routerContext = React.useContext(RouterContext)\n const {routerPanesState, groupIndex} = usePaneRouter()\n\n const openInNewPane = React.useCallback(() => {\n if (!routerContext || !id || !type) {\n return\n }\n\n const panes = [...routerPanesState]\n panes.splice(groupIndex + 1, 0, [\n {\n id: id,\n params: {type},\n },\n ])\n\n const href = routerContext.resolvePathFromState({panes})\n routerContext.navigateUrl({path: href})\n }, [id, type, routerContext, routerPanesState, groupIndex])\n\n return openInNewPane\n}\n","import React from 'react'\nimport {Box, Card, CardTone, Flex, Stack, Text} from '@sanity/ui'\n\ntype FeedbackChildren = {\n children?: React.ReactNode\n title?: never\n description?: never\n}\n\ntype FeedbackTextProps = {\n title?: string\n description?: React.ReactNode\n children?: never\n}\n\ntype FeedbackProps = (FeedbackChildren | FeedbackTextProps) & {\n tone?: CardTone\n icon?: React.ReactNode\n}\n\nconst DEFAULT_PROPS: FeedbackProps = {\n tone: 'primary',\n}\n\nexport function Feedback(props: FeedbackProps) {\n const {title, description, icon, tone, children} = {...DEFAULT_PROPS, ...props}\n\n return (\n <Card tone={tone} padding={4} radius={3} border>\n <Flex>\n {icon ? `display icon` : null}\n {children ? (\n children\n ) : (\n <Box flex={1}>\n <Stack space={4}>\n {title ? <Text weight=\"semibold\">{title}</Text> : null}\n {description ? <Text size={2}>{description}</Text> : null}\n </Stack>\n </Box>\n )}\n </Flex>\n </Card>\n )\n}\n","import {PropsWithChildren} from 'react'\nimport styled, {css} from 'styled-components'\nimport {Card, CardProps} from '@sanity/ui'\n\n// Wrappers required because of bug with passing down \"as\" prop\n// https://github.com/styled-components/styled-components/issues/2449\n\n// Table\nconst TableWrapper = (props: CardProps = {}) => {\n return <Card as=\"table\" {...props} />\n}\n\nconst StyledTable = styled(TableWrapper)(\n () =>\n css`\n display: table;\n width: 100%;\n border-collapse: collapse;\n\n &:not([hidden]) {\n display: table;\n border-collapse: collapse;\n }\n `\n)\n\ntype TableProps = PropsWithChildren<CardProps>\n\nexport function Table(props: TableProps) {\n const {children, ...rest} = props\n\n return <StyledTable {...rest}>{children}</StyledTable>\n}\n\n// Row\nconst RowWrapper = (props: CardProps = {}) => {\n return <Card as=\"tr\" {...props} />\n}\n\nconst StyledRow = styled(RowWrapper)(\n () =>\n css`\n display: table-row;\n\n &:not([hidden]) {\n display: table-row;\n }\n `\n)\n\ntype TableRowProps = PropsWithChildren<CardProps>\n\nexport function Row(props: TableRowProps) {\n const {children, ...rest} = props\n\n return <StyledRow {...rest}>{children}</StyledRow>\n}\n\n// Cell\nconst CellWrapper = (props = {}) => {\n return <Card as=\"td\" {...props} />\n}\n\nconst StyledCell = styled(CellWrapper)(\n () =>\n css`\n display: table-cell;\n\n &:not([hidden]) {\n display: table-cell;\n }\n `\n)\n\ntype TableCellProps = PropsWithChildren<\n CardProps & {\n colSpan?: number\n rowSpan?: number\n }\n>\n\nexport function Cell(props: TableCellProps) {\n const {children, ...rest} = props\n\n return <StyledCell {...rest}>{children}</StyledCell>\n}\n","import React, {useRef} from 'react'\nimport {Box, Text, Menu, MenuItem, TextInput, Flex, Badge} from '@sanity/ui'\nimport {AddCircleIcon, RemoveCircleIcon, RestoreIcon} from '@sanity/icons'\nimport {UserAvatar} from 'sanity'\n\nimport {UserExtended} from '../../hooks/useProjectUsers'\n\nfunction searchUsers(\n users: UserExtended[],\n searchString: string\n): UserExtended[] {\n return users.filter((user) => {\n const displayName = (user.displayName || '').toLowerCase()\n if (displayName.startsWith(searchString)) return true\n const givenName = (user.givenName || '').toLowerCase()\n if (givenName.startsWith(searchString)) return true\n const middleName = (user.middleName || '').toLowerCase()\n if (middleName.startsWith(searchString)) return true\n const familyName = (user.familyName || '').toLowerCase()\n if (familyName.startsWith(searchString)) return true\n\n return false\n })\n}\n\ntype Labels = {\n addMe?: string\n removeMe?: string\n clear?: string\n searchPlaceholder?: string\n notFound?: string\n}\n\ntype UserSelectMenuProps = {\n value: string[]\n userList: UserExtended[]\n onAdd: (userId: string) => void\n onRemove: (userId: string) => void\n onClear: () => void\n labels?: Labels\n style?: React.CSSProperties\n}\n\nconst LABELS: Labels = {\n addMe: 'Assign myself',\n removeMe: 'Unassign myself',\n clear: 'Clear assignees',\n searchPlaceholder: 'Search users',\n notFound: 'No users found',\n}\n\nexport function UserSelectMenu(props: UserSelectMenuProps) {\n const {\n value = [],\n userList = [],\n onAdd,\n onRemove,\n onClear,\n style = {},\n } = props\n const labels = props?.labels ? {...LABELS, ...props.labels} : LABELS\n\n const [searchString, setSearchString] = React.useState('')\n const searchResults = searchUsers(userList || [], searchString)\n\n const me = userList.find((u) => u.isCurrentUser)\n const meAssigned = me && value.includes(me.id)\n\n // Focus input on open\n // TODO: Fix focus, it gets immediately taken away\n const input = useRef<HTMLInputElement>(null)\n // useEffect(() => {\n // if (open && input?.current) {\n // input.current.focus()\n // }\n // }, [open])\n\n const handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchString(event.target.value)\n }\n\n const handleSelect = (isChecked: boolean, user: UserExtended) => {\n if (!isChecked) {\n if (onAdd) onAdd(user.id)\n } else if (onRemove) onRemove(user.id)\n }\n\n const handleAssignMyself = () => {\n if (me && onAdd) onAdd(me.id)\n }\n\n const handleUnassignMyself = () => {\n if (me && onRemove) onRemove(me.id)\n }\n\n const handleClearAssigneesClick = () => {\n if (onClear) onClear()\n }\n\n return (\n <Menu style={style}>\n {meAssigned ? (\n <MenuItem\n tone=\"caution\"\n disabled={!me}\n onClick={handleUnassignMyself}\n icon={RemoveCircleIcon}\n text={labels.removeMe}\n />\n ) : (\n <MenuItem\n tone=\"positive\"\n onClick={handleAssignMyself}\n icon={AddCircleIcon}\n text={labels.addMe}\n />\n )}\n\n <MenuItem\n tone=\"critical\"\n disabled={value.length === 0}\n onClick={handleClearAssigneesClick}\n icon={RestoreIcon}\n text={labels.clear}\n />\n\n <Box padding={1}>\n <TextInput\n ref={input}\n onChange={handleSearchChange}\n placeholder={labels.searchPlaceholder}\n value={searchString}\n />\n </Box>\n\n {searchString && searchResults?.length === 0 && (\n <MenuItem disabled text={labels.notFound} />\n )}\n\n {searchResults &&\n searchResults.map((user) => (\n <MenuItem\n key={user.id}\n pressed={value.includes(user.id)}\n onClick={() => handleSelect(value.indexOf(user.id) > -1, user)}\n >\n <Flex align=\"center\">\n <UserAvatar user={user} size={1} />\n <Box paddingX={2} flex={1}>\n <Text>{user.displayName}</Text>\n </Box>\n {user.isCurrentUser && (\n <Badge fontSize={1} tone=\"positive\" mode=\"outline\">\n Me\n </Badge>\n )}\n </Flex>\n </MenuItem>\n ))}\n </Menu>\n )\n}\n"],"names":["Object","defineProperty","parseAssetId_1","value","example","parseAssetId","ref","_a","split","id","dimensionString","format","Error","concat","_b","imgWidthStr","imgHeightStr","width","height","isValidAssetId","isFinite","default","__assign","this","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","parseSource_1","isRef","src","source","_ref","isAsset","_id","isAssetStub","asset","url","parseSource","image","isUrl","urlToId","img","crop","hotspot","applyDefaults","test","parts","slice","replace","result","left","top","bottom","right","x","y","__importDefault","mod","__esModule","exports","SPEC_NAME_TO_URL_NAME_MAPPINGS","require$$0","require$$1","urlForImage","options","spec","JSON","stringify","cropLeft","Math","round","cropTop","hotSpotVerticalRadius","hotSpotHorizontalRadius","hotSpotCenterX","hotSpotCenterY","rect","focalPoint","ignoreImageParams","fit","specToImageUrl","cdnUrl","baseUrl","filename","projectId","dataset","params","top_1","isEffectiveCrop","push","bg","flip","flipHorizontal","flipVertical","filter","Boolean","join","forEach","mapping","specName","param","encodeURIComponent","cropRect","imgWidth","imgHeight","desiredAspectRatio","cropAspectRatio","top_2","max","hotspotXCenter","hotspotYCenter","top_3","__createBinding","create","o","m","k","k2","undefined","enumerable","get","__setModuleDefault","v","__importStar","builder","ImageUrlBuilder","urlForImage_1","validFits","validCrops","validAutoModes","isSanityModernClientLike","client","config","isSanityClientLike","clientConfig","rewriteSpecName","key","specs","_i","specs_1","entry","urlBuilder","apiUrl","apiHost","parent","withOptions","newOptions","specKey","dpr","maxWidth","minWidth","maxHeight","minHeight","size","blur","sharpen","invert","orientation","quality","forceDownload","download","indexOf","saturation","auto","pad","toString","builder_1","node","useImageUrlBuilder","clientOptions","useClient","useMemo","createImageUrlBuilder","useImageUrlBuilderImage","DEFAULT_PARAMS","DEFAULT_OPTIONS","apiVersion","DEFAULT_INITIAL_VALUE","useListeningQuery","query","initialValue","loading","setLoading","useState","error","setError","data","setData","subscription","useRef","documentStore","useDocumentStore","useEffect","current","listenQuery","pipe","distinctUntilChanged","isEqual","catchError","err","console","subscribe","documents","unsubscribe","useProjectUsers","_ref2","currentUser","useWorkspace","users","setUsers","getUser","userDetails","request","getUsersWithRoles","userRoles","then","res","Promise","all","map","user","isCurrentUser","projectUserId","catch","useOpenInNewPane","type","routerContext","React","useContext","RouterContext","routerPanesState","groupIndex","usePaneRouter","openInNewPane","useCallback","panes","splice","href","resolvePathFromState","navigateUrl","path","DEFAULT_PROPS","tone","Feedback","props","title","description","icon","children","jsx","Card","padding","radius","border","jsxs","Flex","Box","flex","Stack","space","Text","weight","TableWrapper","as","StyledTable","styled","css","_templateObject","_taggedTemplateLiteral","Table","rest","RowWrapper","StyledRow","_templateObject2","Row","CellWrapper","StyledCell","_templateObject3","Cell","searchUsers","searchString","displayName","toLowerCase","startsWith","givenName","middleName","familyName","LABELS","addMe","removeMe","clear","searchPlaceholder","notFound","UserSelectMenu","userList","onAdd","onRemove","onClear","style","labels","setSearchString","searchResults","me","find","u","meAssigned","includes","input","handleSearchChange","event","target","handleSelect","isChecked","handleAssignMyself","handleUnassignMyself","handleClearAssigneesClick","Menu","MenuItem","disabled","onClick","RemoveCircleIcon","text","AddCircleIcon","RestoreIcon","TextInput","onChange","placeholder","pressed","align","UserAvatar","paddingX","Badge","fontSize","mode"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sanity-plugin-utils",
3
3
  "description": "Handy hooks and clever components for Sanity Studio v3",
4
- "version": "1.5.0",
4
+ "version": "1.6.1",
5
5
  "keywords": [
6
6
  "sanity",
7
7
  "sanity-plugin"
@@ -1,33 +1,27 @@
1
1
  import {useEffect, useState, useRef} from 'react'
2
2
  import {catchError, distinctUntilChanged} from 'rxjs/operators'
3
3
  import isEqual from 'react-fast-compare'
4
- import {useDocumentStore} from 'sanity'
4
+ import {ListenQueryOptions, ListenQueryParams, useDocumentStore} from 'sanity'
5
5
  import {Subscription} from 'rxjs'
6
6
 
7
- type Params = Record<string, string | number | boolean | string[]>
8
-
9
- interface ListenQueryOptions {
10
- tag?: string
11
- apiVersion?: string
12
- }
13
-
14
7
  type Value = any
15
8
 
16
9
  interface Config<V> {
17
- params: Params
10
+ params?: ListenQueryParams
18
11
  options?: ListenQueryOptions
19
12
  initialValue?: null | V
20
13
  }
21
14
 
22
- interface Return<V> {
15
+ // make generic optional
16
+ interface Return<V = Value> {
23
17
  loading: boolean
24
- error: boolean
18
+ error: boolean | unknown | ProgressEvent
25
19
  data: null | V
26
20
  initialValue?: Value
27
21
  }
28
22
 
29
23
  const DEFAULT_PARAMS = {}
30
- const DEFAULT_OPTIONS = {apiVersion: `v2022-05-09`}
24
+ const DEFAULT_OPTIONS = {apiVersion: `v2023-05-01`}
31
25
  const DEFAULT_INITIAL_VALUE = null
32
26
 
33
27
  export function useListeningQuery<V>(
@@ -38,36 +32,49 @@ export function useListeningQuery<V>(
38
32
  initialValue = DEFAULT_INITIAL_VALUE,
39
33
  }: Config<V>
40
34
  ): Return<V> {
41
- const [loading, setLoading] = useState(true)
42
- const [error, setError] = useState(false)
43
- const [data, setData] = useState(initialValue)
35
+ const [loading, setLoading] = useState<Return['loading']>(true)
36
+ const [error, setError] = useState<Return['error']>(false)
37
+ const [data, setData] = useState<Return['data']>(initialValue)
44
38
  const subscription = useRef<null | Subscription>(null)
45
39
  const documentStore = useDocumentStore()
46
40
 
47
41
  useEffect(() => {
48
- if (query) {
49
- subscription.current = documentStore
50
- .listenQuery(query, params, options)
51
- .pipe(
52
- distinctUntilChanged(isEqual),
53
- catchError((err) => {
54
- console.error(err)
55
- setError(err)
56
- setLoading(false)
57
- setData(null)
42
+ if (query && !error) {
43
+ try {
44
+ subscription.current = documentStore
45
+ .listenQuery(query, params, options)
46
+ .pipe(
47
+ distinctUntilChanged(isEqual),
48
+ catchError((err) => {
49
+ console.error(err)
50
+ setError(err)
51
+ setLoading(false)
52
+ setData(null)
58
53
 
59
- return err
54
+ return err
55
+ })
56
+ )
57
+ .subscribe((documents) => {
58
+ setData((current: Value) =>
59
+ isEqual(current, documents) ? current : documents
60
+ )
61
+ setLoading(false)
62
+ setError(false)
60
63
  })
61
- )
62
- .subscribe((documents) => {
63
- setData((current: Value) => (isEqual(current, documents) ? current : documents))
64
- setLoading(false)
65
- setError(false)
66
- })
64
+ } catch (err) {
65
+ console.error(err)
66
+ setLoading(false)
67
+ setError(err)
68
+ }
69
+ }
70
+
71
+ // Unsubscribe when an error occurs
72
+ if (error && subscription.current) {
73
+ subscription.current.unsubscribe()
67
74
  }
68
75
 
69
76
  return () => subscription?.current?.unsubscribe()
70
- }, [query, params, options, documentStore])
77
+ }, [query, error, params, options, documentStore])
71
78
 
72
79
  return {data, loading, error}
73
80
  }