@makeswift/prop-controllers 0.0.0-snapshot-20250609214929 → 0.0.0-snapshot-20250609222912
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/backgrounds/backgrounds.js +3 -6
- package/dist/cjs/backgrounds/backgrounds.js.map +1 -1
- package/dist/cjs/border/border.js +1 -2
- package/dist/cjs/border/border.js.map +1 -1
- package/dist/cjs/element-id/element-id.js +3 -6
- package/dist/cjs/element-id/element-id.js.map +1 -1
- package/dist/cjs/grid/grid.js +1 -2
- package/dist/cjs/grid/grid.js.map +1 -1
- package/dist/cjs/image/image.js +1 -2
- package/dist/cjs/image/image.js.map +1 -1
- package/dist/cjs/images/images.js +2 -4
- package/dist/cjs/images/images.js.map +1 -1
- package/dist/cjs/index.js +12 -12
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/link/link.js +5 -10
- package/dist/cjs/link/link.js.map +1 -1
- package/dist/cjs/navigation-links/navigation-links.js +4 -8
- package/dist/cjs/navigation-links/navigation-links.js.map +1 -1
- package/dist/cjs/responsive-color/responsive-color.js +1 -2
- package/dist/cjs/responsive-color/responsive-color.js.map +1 -1
- package/dist/cjs/shadows/shadows.js +1 -2
- package/dist/cjs/shadows/shadows.js.map +1 -1
- package/dist/cjs/table/table.js +1 -2
- package/dist/cjs/table/table.js.map +1 -1
- package/dist/cjs/table-form-fields/table-form-fields.js +1 -2
- package/dist/cjs/table-form-fields/table-form-fields.js.map +1 -1
- package/dist/esm/backgrounds/backgrounds.js +3 -6
- package/dist/esm/backgrounds/backgrounds.js.map +1 -1
- package/dist/esm/border/border.js +1 -2
- package/dist/esm/border/border.js.map +1 -1
- package/dist/esm/element-id/element-id.js +3 -6
- package/dist/esm/element-id/element-id.js.map +1 -1
- package/dist/esm/grid/grid.js +1 -2
- package/dist/esm/grid/grid.js.map +1 -1
- package/dist/esm/image/image.js +1 -2
- package/dist/esm/image/image.js.map +1 -1
- package/dist/esm/images/images.js +2 -4
- package/dist/esm/images/images.js.map +1 -1
- package/dist/esm/link/link.js +5 -10
- package/dist/esm/link/link.js.map +1 -1
- package/dist/esm/navigation-links/navigation-links.js +4 -8
- package/dist/esm/navigation-links/navigation-links.js.map +1 -1
- package/dist/esm/responsive-color/responsive-color.js +1 -2
- package/dist/esm/responsive-color/responsive-color.js.map +1 -1
- package/dist/esm/shadows/shadows.js +1 -2
- package/dist/esm/shadows/shadows.js.map +1 -1
- package/dist/esm/table/table.js +1 -2
- package/dist/esm/table/table.js.map +1 -1
- package/dist/esm/table-form-fields/table-form-fields.js +1 -2
- package/dist/esm/table-form-fields/table-form-fields.js.map +1 -1
- package/dist/types/backgrounds/backgrounds.d.ts +164 -164
- package/dist/types/backgrounds/backgrounds.d.ts.map +1 -1
- package/dist/types/border/border.d.ts.map +1 -1
- package/dist/types/border-radius/border-radius.d.ts.map +1 -1
- package/dist/types/data.d.ts.map +1 -1
- package/dist/types/font/font.d.ts.map +1 -1
- package/dist/types/gap-x/gap-x.d.ts +46 -66
- package/dist/types/gap-x/gap-x.d.ts.map +1 -1
- package/dist/types/gap-y/gap-y.d.ts.map +1 -1
- package/dist/types/grid/grid.d.ts +466 -466
- package/dist/types/grid/grid.d.ts.map +1 -1
- package/dist/types/image/image.d.ts +4 -84
- package/dist/types/image/image.d.ts.map +1 -1
- package/dist/types/images/images.d.ts.map +1 -1
- package/dist/types/link/link.d.ts.map +1 -1
- package/dist/types/margin/margin.d.ts.map +1 -1
- package/dist/types/navigation-links/navigation-links.d.ts +1143 -1143
- package/dist/types/navigation-links/navigation-links.d.ts.map +1 -1
- package/dist/types/padding/padding.d.ts.map +1 -1
- package/dist/types/responsive-color/responsive-color.d.ts.map +1 -1
- package/dist/types/responsive-icon-radio-group/responsive-icon-radio-group.d.ts +3 -3
- package/dist/types/responsive-length.d.ts.map +1 -1
- package/dist/types/responsive-number/responsive-number.d.ts +52 -52
- package/dist/types/responsive-number/responsive-number.d.ts.map +1 -1
- package/dist/types/responsive-opacity/responsive-opacity.d.ts +3 -3
- package/dist/types/responsive-opacity/responsive-opacity.d.ts.map +1 -1
- package/dist/types/responsive-select/responsive-select.d.ts +3 -3
- package/dist/types/shadows/shadows.d.ts.map +1 -1
- package/dist/types/social-links/social-links.d.ts +8 -80
- package/dist/types/social-links/social-links.d.ts.map +1 -1
- package/dist/types/table-form-fields/table-form-fields.d.ts +72 -72
- package/dist/types/table-form-fields/table-form-fields.d.ts.map +1 -1
- package/dist/types/text-style/text-style.d.ts.map +1 -1
- package/dist/types/versioned.d.ts +68 -68
- package/dist/types/versioned.d.ts.map +1 -1
- package/dist/types/width/width.d.ts.map +1 -1
- package/package.json +2 -2
@@ -36,8 +36,7 @@ var import_prop_controllers = require("../prop-controllers");
|
|
36
36
|
var import_ts_pattern = require("ts-pattern");
|
37
37
|
var import_data = require("../data");
|
38
38
|
function copyColorData(data, context) {
|
39
|
-
if (data == null)
|
40
|
-
return data;
|
39
|
+
if (data == null) return data;
|
41
40
|
if ((0, import_controls.shouldRemoveResource)(import_controls.ContextResource.Swatch, data.swatchId, context)) {
|
42
41
|
return null;
|
43
42
|
}
|
@@ -206,8 +205,7 @@ function getBackgroundsPropControllerSwatchIds(data) {
|
|
206
205
|
}) ?? [];
|
207
206
|
}
|
208
207
|
function copyResponsiveBackgroundsData(descriptor, data, ctx) {
|
209
|
-
if (data == null)
|
210
|
-
return data;
|
208
|
+
if (data == null) return data;
|
211
209
|
return data.map((override) => ({
|
212
210
|
...override,
|
213
211
|
value: override.value.flatMap((backgroundItem) => {
|
@@ -290,8 +288,7 @@ function copyBackgroundsPropControllerData(descriptor, data, context) {
|
|
290
288
|
v1.value,
|
291
289
|
context
|
292
290
|
);
|
293
|
-
if (value == null)
|
294
|
-
return void 0;
|
291
|
+
if (value == null) return void 0;
|
295
292
|
return {
|
296
293
|
[import_prop_controllers.ControlDataTypeKey]: BackgroundsPropControllerDataV2Type,
|
297
294
|
value
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/backgrounds/backgrounds.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\n\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\nimport {\n ColorData,\n colorDataSchema,\n imageDataV0Schema,\n imageDataV1Schema,\n} from '../data'\n\nfunction copyColorData(\n data: ColorData | null,\n context: CopyContext,\n): ColorData | null {\n if (data == null) return data\n if (shouldRemoveResource(ContextResource.Swatch, data.swatchId, context)) {\n return null\n }\n return {\n ...data,\n swatchId: replaceResourceIfNeeded(\n ContextResource.Swatch,\n data.swatchId,\n context,\n ),\n }\n}\n\nconst colorBackgroundDataSchema = z.object({\n type: z.literal('color'),\n id: z.string(),\n payload: colorDataSchema.nullable(),\n})\n\nconst gradientStopDataSchema = z.object({\n id: z.string(),\n location: z.number(),\n color: colorDataSchema.nullable(),\n})\n\nconst gradientDataSchema = z.object({\n angle: z.number().optional(),\n isRadial: z.boolean().optional(),\n stops: z.array(gradientStopDataSchema),\n})\n\nconst gradientBackgroundDataSchema = z.object({\n type: z.literal('gradient'),\n id: z.string(),\n payload: gradientDataSchema,\n})\n\nconst backgroundImagePositionDataSchema = z.object({\n x: z.number(),\n y: z.number(),\n})\n\nconst backgroundSizeDataSchema = z.union([\n z.literal('cover'),\n z.literal('contain'),\n z.literal('auto'),\n])\n\nconst backgroundImageRepeatDataSchema = z.union([\n z.literal('no-repeat'),\n z.literal('repeat-x'),\n z.literal('repeat-y'),\n z.literal('repeat'),\n])\n\nconst backgroundImageV0DataSchema = z.object({\n imageId: imageDataV0Schema,\n position: backgroundImagePositionDataSchema,\n size: backgroundSizeDataSchema.optional(),\n repeat: backgroundImageRepeatDataSchema.optional(),\n opacity: z.number().optional(),\n parallax: z.number().optional(),\n priority: z.boolean().optional(),\n})\n\nconst backgroundImageV1DataSchema = z.object({\n version: z.literal(1),\n image: imageDataV1Schema,\n position: backgroundImagePositionDataSchema,\n size: backgroundSizeDataSchema.optional(),\n repeat: backgroundImageRepeatDataSchema.optional(),\n opacity: z.number().optional(),\n parallax: z.number().optional(),\n priority: z.boolean().optional(),\n})\n\nexport const backgroundImageDataSchema = z.union([\n backgroundImageV0DataSchema,\n backgroundImageV1DataSchema,\n])\n\nexport type BackgroundImageData = z.infer<typeof backgroundImageDataSchema>\n\nconst imageBackgroundV0DataSchema = z.object({\n type: z.literal('image'),\n id: z.string(),\n payload: backgroundImageV0DataSchema,\n})\n\nconst imageBackgroundV1DataSchema = z.object({\n type: z.literal('image-v1'),\n id: z.string(),\n payload: backgroundImageV1DataSchema,\n})\n\nexport const imageBackgroundDataSchema = z.union([\n imageBackgroundV0DataSchema,\n imageBackgroundV1DataSchema,\n])\n\nexport type ImageBackgroundData = z.infer<typeof imageBackgroundDataSchema>\n\nconst backgroundVideoAspectRatioDataSchema = z.union([\n z.literal('wide'),\n z.literal('standard'),\n])\n\nconst backgroundVideoDataSchema = z.object({\n url: z.string().optional(),\n maskColor: colorDataSchema.nullable().optional(),\n opacity: z.number().optional(),\n zoom: z.number().optional(),\n aspectRatio: backgroundVideoAspectRatioDataSchema.optional(),\n parallax: z.number().optional(),\n})\n\nconst videoBackgroundDataSchema = z.object({\n type: z.literal('video'),\n id: z.string(),\n payload: backgroundVideoDataSchema,\n})\n\nconst backgroundDataSchema = z.union([\n colorBackgroundDataSchema,\n gradientBackgroundDataSchema,\n imageBackgroundDataSchema,\n videoBackgroundDataSchema,\n])\n\nexport type BackgroundData = z.infer<typeof backgroundDataSchema>\n\nconst responsiveBackgroundsDataSchema = Schema.responsiveValue(\n z.array(backgroundDataSchema),\n)\n\nexport type ResponsiveBackgroundsData = z.infer<\n typeof responsiveBackgroundsDataSchema\n>\n\nconst backgroundsPropControllerDataV1Schema = responsiveBackgroundsDataSchema\n\nexport type BackgroundsPropControllerDataV1 = z.infer<\n typeof backgroundsPropControllerDataV1Schema\n>\n\nexport const BackgroundsPropControllerDataV2Type =\n 'prop-controllers::backgrounds::v2'\n\nconst backgroundsPropControllerDataV2Schema = z.object({\n [ControlDataTypeKey]: z.literal(BackgroundsPropControllerDataV2Type),\n value: responsiveBackgroundsDataSchema,\n})\n\nexport type BackgroundsPropControllerDataV2 = z.infer<\n typeof backgroundsPropControllerDataV2Schema\n>\n\nexport const backgroundsPropControllerDataSchema = z.union([\n backgroundsPropControllerDataV1Schema,\n backgroundsPropControllerDataV2Schema,\n])\n\nexport type BackgroundsPropControllerData = z.infer<\n typeof backgroundsPropControllerDataSchema\n>\n\nexport type BackgroundsOptions = Options<Record<string, never>>\n\ntype BackgroundsDescriptorV1<_T = BackgroundsPropControllerDataV1> = {\n type: typeof Types.Backgrounds\n version?: 1\n options: BackgroundsOptions\n}\n\ntype BackgroundsDescriptorV2<_T = BackgroundsPropControllerData> = {\n type: typeof Types.Backgrounds\n version: 2\n options: BackgroundsOptions\n}\n\nexport type BackgroundsDescriptor<_T = BackgroundsPropControllerData> =\n | BackgroundsDescriptorV1\n | BackgroundsDescriptorV2\n\nexport type ResolveBackgroundsPropControllerValue<\n T extends BackgroundsDescriptor,\n> = T extends BackgroundsDescriptor\n ? ResponsiveBackgroundsData | undefined\n : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Backgrounds(\n options: BackgroundsOptions = {},\n): BackgroundsDescriptorV2 {\n return { type: Types.Backgrounds, version: 2, options }\n}\n\nexport function getBackgroundsPropControllerDataResponsiveBackgroundsData(\n data: BackgroundsPropControllerData | undefined,\n): ResponsiveBackgroundsData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type },\n (v2) => v2.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createBackgroundsPropControllerDataFromResponsiveBackgroundsData(\n data: ResponsiveBackgroundsData,\n definition: BackgroundsDescriptor,\n): BackgroundsPropControllerData {\n return match(definition)\n .with(\n { version: 2 },\n () =>\n ({\n [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type,\n value: data,\n }) as const,\n )\n .otherwise(() => data)\n}\n\nexport function getBackgroundsPropControllerFileIds(\n data: BackgroundsPropControllerData | undefined,\n): string[] {\n const value = getBackgroundsPropControllerDataResponsiveBackgroundsData(data)\n\n return (\n value\n ?.flatMap((override) => override.value)\n .flatMap((backgroundItem) => {\n return match(backgroundItem)\n .with(\n {\n type: 'image-v1',\n payload: { image: { type: 'makeswift-file' } },\n },\n (item) => [item.payload.image.id],\n )\n .with({ type: 'image', payload: { imageId: P.string } }, (item) => [\n item.payload.imageId,\n ])\n .otherwise(() => [])\n }) ?? []\n )\n}\n\nexport function getBackgroundsPropControllerSwatchIds(\n data: BackgroundsPropControllerData | undefined,\n): string[] {\n const value = getBackgroundsPropControllerDataResponsiveBackgroundsData(data)\n\n return (\n value\n ?.flatMap((override) => override.value)\n .flatMap((backgroundItem) => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null\n ? []\n : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap((stop) =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nfunction copyResponsiveBackgroundsData(\n descriptor: BackgroundsDescriptor,\n data: ResponsiveBackgroundsData | undefined,\n ctx: CopyContext,\n): ResponsiveBackgroundsData | undefined {\n if (data == null) return data\n\n return data.map((override) => ({\n ...override,\n value: override.value.flatMap((backgroundItem) => {\n return match([descriptor, backgroundItem])\n .with([P.any, { type: 'color' }], ([, item]) => {\n return { ...item, payload: copyColorData(item.payload, ctx) }\n })\n .with([P.any, { type: 'gradient' }], ([, item]) => {\n return {\n ...item,\n payload: {\n ...item.payload,\n stops: item.payload.stops.map((stop) => ({\n ...stop,\n color: copyColorData(stop.color, ctx),\n })),\n },\n }\n })\n .with(\n [\n { version: P.when((v) => v && v >= 1) },\n {\n type: 'image-v1',\n payload: { version: 1, image: { type: 'makeswift-file' } },\n },\n ],\n ([, item]) => {\n if (\n shouldRemoveResource(\n ContextResource.File,\n item.payload.image.id,\n ctx,\n )\n ) {\n return []\n }\n\n return {\n ...item,\n payload: {\n ...item.payload,\n image: {\n ...item.payload.image,\n id:\n replaceResourceIfNeeded(\n ContextResource.File,\n item.payload.image.id,\n ctx,\n ) ?? item.payload.image.id,\n },\n },\n }\n },\n )\n .with(\n [P.any, { type: 'image', payload: { imageId: P.string } }],\n ([, item]) => {\n if (\n shouldRemoveResource(\n ContextResource.File,\n item.payload.imageId,\n ctx,\n )\n ) {\n return []\n }\n\n return {\n ...item,\n payload: {\n ...item.payload,\n imageId:\n replaceResourceIfNeeded(\n ContextResource.File,\n item.payload.imageId,\n ctx,\n ) ?? item.payload.imageId,\n },\n }\n },\n )\n .otherwise(() => backgroundItem)\n }),\n }))\n}\n\nexport function copyBackgroundsPropControllerData(\n descriptor: BackgroundsDescriptor,\n data: BackgroundsPropControllerData | undefined,\n context: CopyContext,\n): BackgroundsPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type },\n (v1) => {\n const value = copyResponsiveBackgroundsData(\n descriptor,\n v1.value,\n context,\n )\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type,\n value,\n } as const\n },\n )\n .otherwise((v0) => copyResponsiveBackgroundsData(descriptor, v0, context))\n}\n"],"mappings":"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","names":[]}
|
1
|
+
{"version":3,"sources":["../../../src/backgrounds/backgrounds.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\n\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\nimport {\n ColorData,\n colorDataSchema,\n imageDataV0Schema,\n imageDataV1Schema,\n} from '../data'\n\nfunction copyColorData(\n data: ColorData | null,\n context: CopyContext,\n): ColorData | null {\n if (data == null) return data\n if (shouldRemoveResource(ContextResource.Swatch, data.swatchId, context)) {\n return null\n }\n return {\n ...data,\n swatchId: replaceResourceIfNeeded(\n ContextResource.Swatch,\n data.swatchId,\n context,\n ),\n }\n}\n\nconst colorBackgroundDataSchema = z.object({\n type: z.literal('color'),\n id: z.string(),\n payload: colorDataSchema.nullable(),\n})\n\nconst gradientStopDataSchema = z.object({\n id: z.string(),\n location: z.number(),\n color: colorDataSchema.nullable(),\n})\n\nconst gradientDataSchema = z.object({\n angle: z.number().optional(),\n isRadial: z.boolean().optional(),\n stops: z.array(gradientStopDataSchema),\n})\n\nconst gradientBackgroundDataSchema = z.object({\n type: z.literal('gradient'),\n id: z.string(),\n payload: gradientDataSchema,\n})\n\nconst backgroundImagePositionDataSchema = z.object({\n x: z.number(),\n y: z.number(),\n})\n\nconst backgroundSizeDataSchema = z.union([\n z.literal('cover'),\n z.literal('contain'),\n z.literal('auto'),\n])\n\nconst backgroundImageRepeatDataSchema = z.union([\n z.literal('no-repeat'),\n z.literal('repeat-x'),\n z.literal('repeat-y'),\n z.literal('repeat'),\n])\n\nconst backgroundImageV0DataSchema = z.object({\n imageId: imageDataV0Schema,\n position: backgroundImagePositionDataSchema,\n size: backgroundSizeDataSchema.optional(),\n repeat: backgroundImageRepeatDataSchema.optional(),\n opacity: z.number().optional(),\n parallax: z.number().optional(),\n priority: z.boolean().optional(),\n})\n\nconst backgroundImageV1DataSchema = z.object({\n version: z.literal(1),\n image: imageDataV1Schema,\n position: backgroundImagePositionDataSchema,\n size: backgroundSizeDataSchema.optional(),\n repeat: backgroundImageRepeatDataSchema.optional(),\n opacity: z.number().optional(),\n parallax: z.number().optional(),\n priority: z.boolean().optional(),\n})\n\nexport const backgroundImageDataSchema = z.union([\n backgroundImageV0DataSchema,\n backgroundImageV1DataSchema,\n])\n\nexport type BackgroundImageData = z.infer<typeof backgroundImageDataSchema>\n\nconst imageBackgroundV0DataSchema = z.object({\n type: z.literal('image'),\n id: z.string(),\n payload: backgroundImageV0DataSchema,\n})\n\nconst imageBackgroundV1DataSchema = z.object({\n type: z.literal('image-v1'),\n id: z.string(),\n payload: backgroundImageV1DataSchema,\n})\n\nexport const imageBackgroundDataSchema = z.union([\n imageBackgroundV0DataSchema,\n imageBackgroundV1DataSchema,\n])\n\nexport type ImageBackgroundData = z.infer<typeof imageBackgroundDataSchema>\n\nconst backgroundVideoAspectRatioDataSchema = z.union([\n z.literal('wide'),\n z.literal('standard'),\n])\n\nconst backgroundVideoDataSchema = z.object({\n url: z.string().optional(),\n maskColor: colorDataSchema.nullable().optional(),\n opacity: z.number().optional(),\n zoom: z.number().optional(),\n aspectRatio: backgroundVideoAspectRatioDataSchema.optional(),\n parallax: z.number().optional(),\n})\n\nconst videoBackgroundDataSchema = z.object({\n type: z.literal('video'),\n id: z.string(),\n payload: backgroundVideoDataSchema,\n})\n\nconst backgroundDataSchema = z.union([\n colorBackgroundDataSchema,\n gradientBackgroundDataSchema,\n imageBackgroundDataSchema,\n videoBackgroundDataSchema,\n])\n\nexport type BackgroundData = z.infer<typeof backgroundDataSchema>\n\nconst responsiveBackgroundsDataSchema = Schema.responsiveValue(\n z.array(backgroundDataSchema),\n)\n\nexport type ResponsiveBackgroundsData = z.infer<\n typeof responsiveBackgroundsDataSchema\n>\n\nconst backgroundsPropControllerDataV1Schema = responsiveBackgroundsDataSchema\n\nexport type BackgroundsPropControllerDataV1 = z.infer<\n typeof backgroundsPropControllerDataV1Schema\n>\n\nexport const BackgroundsPropControllerDataV2Type =\n 'prop-controllers::backgrounds::v2'\n\nconst backgroundsPropControllerDataV2Schema = z.object({\n [ControlDataTypeKey]: z.literal(BackgroundsPropControllerDataV2Type),\n value: responsiveBackgroundsDataSchema,\n})\n\nexport type BackgroundsPropControllerDataV2 = z.infer<\n typeof backgroundsPropControllerDataV2Schema\n>\n\nexport const backgroundsPropControllerDataSchema = z.union([\n backgroundsPropControllerDataV1Schema,\n backgroundsPropControllerDataV2Schema,\n])\n\nexport type BackgroundsPropControllerData = z.infer<\n typeof backgroundsPropControllerDataSchema\n>\n\nexport type BackgroundsOptions = Options<Record<string, never>>\n\ntype BackgroundsDescriptorV1<_T = BackgroundsPropControllerDataV1> = {\n type: typeof Types.Backgrounds\n version?: 1\n options: BackgroundsOptions\n}\n\ntype BackgroundsDescriptorV2<_T = BackgroundsPropControllerData> = {\n type: typeof Types.Backgrounds\n version: 2\n options: BackgroundsOptions\n}\n\nexport type BackgroundsDescriptor<_T = BackgroundsPropControllerData> =\n | BackgroundsDescriptorV1\n | BackgroundsDescriptorV2\n\nexport type ResolveBackgroundsPropControllerValue<\n T extends BackgroundsDescriptor,\n> = T extends BackgroundsDescriptor\n ? ResponsiveBackgroundsData | undefined\n : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Backgrounds(\n options: BackgroundsOptions = {},\n): BackgroundsDescriptorV2 {\n return { type: Types.Backgrounds, version: 2, options }\n}\n\nexport function getBackgroundsPropControllerDataResponsiveBackgroundsData(\n data: BackgroundsPropControllerData | undefined,\n): ResponsiveBackgroundsData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type },\n (v2) => v2.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createBackgroundsPropControllerDataFromResponsiveBackgroundsData(\n data: ResponsiveBackgroundsData,\n definition: BackgroundsDescriptor,\n): BackgroundsPropControllerData {\n return match(definition)\n .with(\n { version: 2 },\n () =>\n ({\n [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type,\n value: data,\n }) as const,\n )\n .otherwise(() => data)\n}\n\nexport function getBackgroundsPropControllerFileIds(\n data: BackgroundsPropControllerData | undefined,\n): string[] {\n const value = getBackgroundsPropControllerDataResponsiveBackgroundsData(data)\n\n return (\n value\n ?.flatMap((override) => override.value)\n .flatMap((backgroundItem) => {\n return match(backgroundItem)\n .with(\n {\n type: 'image-v1',\n payload: { image: { type: 'makeswift-file' } },\n },\n (item) => [item.payload.image.id],\n )\n .with({ type: 'image', payload: { imageId: P.string } }, (item) => [\n item.payload.imageId,\n ])\n .otherwise(() => [])\n }) ?? []\n )\n}\n\nexport function getBackgroundsPropControllerSwatchIds(\n data: BackgroundsPropControllerData | undefined,\n): string[] {\n const value = getBackgroundsPropControllerDataResponsiveBackgroundsData(data)\n\n return (\n value\n ?.flatMap((override) => override.value)\n .flatMap((backgroundItem) => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null\n ? []\n : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap((stop) =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nfunction copyResponsiveBackgroundsData(\n descriptor: BackgroundsDescriptor,\n data: ResponsiveBackgroundsData | undefined,\n ctx: CopyContext,\n): ResponsiveBackgroundsData | undefined {\n if (data == null) return data\n\n return data.map((override) => ({\n ...override,\n value: override.value.flatMap((backgroundItem) => {\n return match([descriptor, backgroundItem])\n .with([P.any, { type: 'color' }], ([, item]) => {\n return { ...item, payload: copyColorData(item.payload, ctx) }\n })\n .with([P.any, { type: 'gradient' }], ([, item]) => {\n return {\n ...item,\n payload: {\n ...item.payload,\n stops: item.payload.stops.map((stop) => ({\n ...stop,\n color: copyColorData(stop.color, ctx),\n })),\n },\n }\n })\n .with(\n [\n { version: P.when((v) => v && v >= 1) },\n {\n type: 'image-v1',\n payload: { version: 1, image: { type: 'makeswift-file' } },\n },\n ],\n ([, item]) => {\n if (\n shouldRemoveResource(\n ContextResource.File,\n item.payload.image.id,\n ctx,\n )\n ) {\n return []\n }\n\n return {\n ...item,\n payload: {\n ...item.payload,\n image: {\n ...item.payload.image,\n id:\n replaceResourceIfNeeded(\n ContextResource.File,\n item.payload.image.id,\n ctx,\n ) ?? item.payload.image.id,\n },\n },\n }\n },\n )\n .with(\n [P.any, { type: 'image', payload: { imageId: P.string } }],\n ([, item]) => {\n if (\n shouldRemoveResource(\n ContextResource.File,\n item.payload.imageId,\n ctx,\n )\n ) {\n return []\n }\n\n return {\n ...item,\n payload: {\n ...item.payload,\n imageId:\n replaceResourceIfNeeded(\n ContextResource.File,\n item.payload.imageId,\n ctx,\n ) ?? item.payload.imageId,\n },\n }\n },\n )\n .otherwise(() => backgroundItem)\n }),\n }))\n}\n\nexport function copyBackgroundsPropControllerData(\n descriptor: BackgroundsDescriptor,\n data: BackgroundsPropControllerData | undefined,\n context: CopyContext,\n): BackgroundsPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type },\n (v1) => {\n const value = copyResponsiveBackgroundsData(\n descriptor,\n v1.value,\n context,\n )\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type,\n value,\n } as const\n },\n )\n .otherwise((v0) => copyResponsiveBackgroundsData(descriptor, v0, context))\n}\n"],"mappings":"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","names":[]}
|
@@ -98,8 +98,7 @@ function copyResponsiveBorderData(data, context) {
|
|
98
98
|
}
|
99
99
|
function copyBorderSide(borderSide) {
|
100
100
|
const { color } = borderSide;
|
101
|
-
if (color == null)
|
102
|
-
return borderSide;
|
101
|
+
if (color == null) return borderSide;
|
103
102
|
if ((0, import_controls.shouldRemoveResource)(import_controls.ContextResource.Swatch, color.swatchId, context)) {
|
104
103
|
return void 0;
|
105
104
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/border/border.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n BorderData,\n BorderSideData,\n StyleSchema,\n shouldRemoveResource,\n replaceResourceIfNeeded,\n ContextResource,\n} from '@makeswift/controls'\n\nimport {\n ControlDataTypeKey,\n CopyContext,\n ResolveOptions,\n Types,\n Schema,\n} from '../prop-controllers'\n\nimport { z } from 'zod'\n\nconst responsiveBorderDataSchema = Schema.responsiveValue(StyleSchema.border)\n\nexport type ResponsiveBorderData = z.infer<typeof responsiveBorderDataSchema>\n\nconst borderPropControllerDataV0Schema = responsiveBorderDataSchema\n\nexport type BorderPropControllerDataV0 = z.infer<\n typeof borderPropControllerDataV0Schema\n>\n\nexport const BorderPropControllerDataV1Type = 'prop-controllers::border::v1'\n\nconst borderPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(BorderPropControllerDataV1Type),\n value: responsiveBorderDataSchema,\n})\n\nexport type BorderPropControllerDataV1 = z.infer<\n typeof borderPropControllerDataV1Schema\n>\n\nexport const borderPropControllerDataSchema = z.union([\n borderPropControllerDataV0Schema,\n borderPropControllerDataV1Schema,\n])\n\nexport type BorderPropControllerData = z.infer<\n typeof borderPropControllerDataSchema\n>\n\nexport const BorderPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::border::format::class-name',\n ResponsiveValue:\n 'makeswift::prop-controllers::border::format::responsive-value',\n} as const\n\nexport type BorderPropControllerFormat =\n (typeof BorderPropControllerFormat)[keyof typeof BorderPropControllerFormat]\n\ntype BorderOptions = { format?: BorderPropControllerFormat }\n\ntype BorderDescriptorV0<\n _T = BorderPropControllerDataV0,\n U extends BorderOptions = BorderOptions,\n> = {\n type: typeof Types.Border\n options: U\n}\n\ntype BorderDescriptorV1<\n _T = BorderPropControllerData,\n U extends BorderOptions = BorderOptions,\n> = {\n type: typeof Types.Border\n version: 1\n options: U\n}\n\nexport type BorderDescriptor<\n _T = BorderPropControllerData,\n U extends BorderOptions = BorderOptions,\n> = BorderDescriptorV0<_T, U> | BorderDescriptorV1<_T, U>\n\nexport type ResolveBorderPropControllerValue<T extends BorderDescriptor> =\n T extends BorderDescriptor\n ? undefined extends ResolveOptions<T['options']>['format']\n ? ResponsiveBorderData | undefined\n : ResolveOptions<\n T['options']\n >['format'] extends typeof BorderPropControllerFormat.ClassName\n ? string\n : ResolveOptions<\n T['options']\n >['format'] extends typeof BorderPropControllerFormat.ResponsiveValue\n ? ResponsiveBorderData | undefined\n : never\n : never\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function Border<T extends BorderOptions>(\n options: T & BorderOptions = {} as T,\n): BorderDescriptor<BorderPropControllerData, T> {\n return { type: Types.Border, version: 1, options }\n}\n\nBorder.Format = BorderPropControllerFormat\n\nexport function getBorderPropControllerDataResponsiveBorderData(\n data: BorderPropControllerData | undefined,\n): ResponsiveBorderData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: BorderPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createBorderPropControllerDataFromResponsiveBorderData(\n definition: BorderDescriptor,\n responsiveBorderData: ResponsiveBorderData,\n): BorderPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n () =>\n ({\n [ControlDataTypeKey]: BorderPropControllerDataV1Type,\n value: responsiveBorderData,\n }) as const,\n )\n .otherwise(() => responsiveBorderData)\n}\n\nexport function getBorderPropControllerDataSwatchIds(\n data: BorderPropControllerData | undefined,\n): string[] {\n return (\n getBorderPropControllerDataResponsiveBorderData(data)\n ?.flatMap((override) => override.value)\n .flatMap((borderValue) => {\n return [\n borderValue.borderTop?.color?.swatchId,\n borderValue.borderRight?.color?.swatchId,\n borderValue.borderBottom?.color?.swatchId,\n borderValue.borderLeft?.color?.swatchId,\n ].filter(\n (swatchId): swatchId is NonNullable<typeof swatchId> =>\n swatchId != null,\n )\n }) ?? []\n )\n}\n\nfunction copyResponsiveBorderData(\n data: ResponsiveBorderData,\n context: CopyContext,\n): ResponsiveBorderData {\n return data.map((override) => ({\n ...override,\n value: copyBorderValue(override.value),\n }))\n\n function copyBorderValue({\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n }: BorderData): BorderData {\n return {\n borderTop: borderTop && copyBorderSide(borderTop),\n borderRight: borderRight && copyBorderSide(borderRight),\n borderBottom: borderBottom && copyBorderSide(borderBottom),\n borderLeft: borderLeft && copyBorderSide(borderLeft),\n }\n }\n\n function copyBorderSide(\n borderSide: BorderSideData,\n ): BorderSideData | undefined {\n const { color } = borderSide\n\n if (color == null) return borderSide\n if (shouldRemoveResource(ContextResource.Swatch, color.swatchId, context)) {\n return undefined\n }\n\n return {\n ...borderSide,\n color: {\n ...color,\n swatchId: replaceResourceIfNeeded(\n ContextResource.Swatch,\n color.swatchId,\n context,\n ),\n },\n }\n }\n}\n\nexport function copyBorderPropControllerData(\n data: BorderPropControllerData | undefined,\n context: CopyContext,\n): BorderPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: BorderPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: BorderPropControllerDataV1Type,\n value: copyResponsiveBorderData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => copyResponsiveBorderData(v0, context))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAsB;AACtB,sBAOO;AAEP,8BAMO;AAEP,iBAAkB;AAElB,MAAM,6BAA6B,+BAAO,gBAAgB,4BAAY,MAAM;AAI5E,MAAM,mCAAmC;AAMlC,MAAM,iCAAiC;AAE9C,MAAM,mCAAmC,aAAE,OAAO;AAAA,EAChD,CAAC,0CAAkB,GAAG,aAAE,QAAQ,8BAA8B;AAAA,EAC9D,OAAO;AACT,CAAC;AAMM,MAAM,iCAAiC,aAAE,MAAM;AAAA,EACpD;AAAA,EACA;AACF,CAAC;AAMM,MAAM,6BAA6B;AAAA,EACxC,WAAW;AAAA,EACX,iBACE;AACJ;AAgDO,SAAS,OACd,UAA6B,CAAC,GACiB;AAC/C,SAAO,EAAE,MAAM,8BAAM,QAAQ,SAAS,GAAG,QAAQ;AACnD;AAEA,OAAO,SAAS;AAET,SAAS,gDACd,MACkC;AAClC,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,+BAA+B;AAAA,IACvD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,uDACd,YACA,sBAC0B;AAC1B,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACJ,EACC,UAAU,MAAM,oBAAoB;AACzC;AAEO,SAAS,qCACd,MACU;AACV,SACE,gDAAgD,IAAI,GAChD,QAAQ,CAAC,aAAa,SAAS,KAAK,EACrC,QAAQ,CAAC,gBAAgB;AACxB,WAAO;AAAA,MACL,YAAY,WAAW,OAAO;AAAA,MAC9B,YAAY,aAAa,OAAO;AAAA,MAChC,YAAY,cAAc,OAAO;AAAA,MACjC,YAAY,YAAY,OAAO;AAAA,IACjC,EAAE;AAAA,MACA,CAAC,aACC,YAAY;AAAA,IAChB;AAAA,EACF,CAAC,KAAK,CAAC;AAEb;AAEA,SAAS,yBACP,MACA,SACsB;AACtB,SAAO,KAAK,IAAI,CAAC,cAAc;AAAA,IAC7B,GAAG;AAAA,IACH,OAAO,gBAAgB,SAAS,KAAK;AAAA,EACvC,EAAE;AAEF,WAAS,gBAAgB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAA2B;AACzB,WAAO;AAAA,MACL,WAAW,aAAa,eAAe,SAAS;AAAA,MAChD,aAAa,eAAe,eAAe,WAAW;AAAA,MACtD,cAAc,gBAAgB,eAAe,YAAY;AAAA,MACzD,YAAY,cAAc,eAAe,UAAU;AAAA,IACrD;AAAA,EACF;AAEA,WAAS,eACP,YAC4B;AAC5B,UAAM,EAAE,MAAM,IAAI;AAElB,QAAI,SAAS
|
1
|
+
{"version":3,"sources":["../../../src/border/border.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n BorderData,\n BorderSideData,\n StyleSchema,\n shouldRemoveResource,\n replaceResourceIfNeeded,\n ContextResource,\n} from '@makeswift/controls'\n\nimport {\n ControlDataTypeKey,\n CopyContext,\n ResolveOptions,\n Types,\n Schema,\n} from '../prop-controllers'\n\nimport { z } from 'zod'\n\nconst responsiveBorderDataSchema = Schema.responsiveValue(StyleSchema.border)\n\nexport type ResponsiveBorderData = z.infer<typeof responsiveBorderDataSchema>\n\nconst borderPropControllerDataV0Schema = responsiveBorderDataSchema\n\nexport type BorderPropControllerDataV0 = z.infer<\n typeof borderPropControllerDataV0Schema\n>\n\nexport const BorderPropControllerDataV1Type = 'prop-controllers::border::v1'\n\nconst borderPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(BorderPropControllerDataV1Type),\n value: responsiveBorderDataSchema,\n})\n\nexport type BorderPropControllerDataV1 = z.infer<\n typeof borderPropControllerDataV1Schema\n>\n\nexport const borderPropControllerDataSchema = z.union([\n borderPropControllerDataV0Schema,\n borderPropControllerDataV1Schema,\n])\n\nexport type BorderPropControllerData = z.infer<\n typeof borderPropControllerDataSchema\n>\n\nexport const BorderPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::border::format::class-name',\n ResponsiveValue:\n 'makeswift::prop-controllers::border::format::responsive-value',\n} as const\n\nexport type BorderPropControllerFormat =\n (typeof BorderPropControllerFormat)[keyof typeof BorderPropControllerFormat]\n\ntype BorderOptions = { format?: BorderPropControllerFormat }\n\ntype BorderDescriptorV0<\n _T = BorderPropControllerDataV0,\n U extends BorderOptions = BorderOptions,\n> = {\n type: typeof Types.Border\n options: U\n}\n\ntype BorderDescriptorV1<\n _T = BorderPropControllerData,\n U extends BorderOptions = BorderOptions,\n> = {\n type: typeof Types.Border\n version: 1\n options: U\n}\n\nexport type BorderDescriptor<\n _T = BorderPropControllerData,\n U extends BorderOptions = BorderOptions,\n> = BorderDescriptorV0<_T, U> | BorderDescriptorV1<_T, U>\n\nexport type ResolveBorderPropControllerValue<T extends BorderDescriptor> =\n T extends BorderDescriptor\n ? undefined extends ResolveOptions<T['options']>['format']\n ? ResponsiveBorderData | undefined\n : ResolveOptions<\n T['options']\n >['format'] extends typeof BorderPropControllerFormat.ClassName\n ? string\n : ResolveOptions<\n T['options']\n >['format'] extends typeof BorderPropControllerFormat.ResponsiveValue\n ? ResponsiveBorderData | undefined\n : never\n : never\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function Border<T extends BorderOptions>(\n options: T & BorderOptions = {} as T,\n): BorderDescriptor<BorderPropControllerData, T> {\n return { type: Types.Border, version: 1, options }\n}\n\nBorder.Format = BorderPropControllerFormat\n\nexport function getBorderPropControllerDataResponsiveBorderData(\n data: BorderPropControllerData | undefined,\n): ResponsiveBorderData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: BorderPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createBorderPropControllerDataFromResponsiveBorderData(\n definition: BorderDescriptor,\n responsiveBorderData: ResponsiveBorderData,\n): BorderPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n () =>\n ({\n [ControlDataTypeKey]: BorderPropControllerDataV1Type,\n value: responsiveBorderData,\n }) as const,\n )\n .otherwise(() => responsiveBorderData)\n}\n\nexport function getBorderPropControllerDataSwatchIds(\n data: BorderPropControllerData | undefined,\n): string[] {\n return (\n getBorderPropControllerDataResponsiveBorderData(data)\n ?.flatMap((override) => override.value)\n .flatMap((borderValue) => {\n return [\n borderValue.borderTop?.color?.swatchId,\n borderValue.borderRight?.color?.swatchId,\n borderValue.borderBottom?.color?.swatchId,\n borderValue.borderLeft?.color?.swatchId,\n ].filter(\n (swatchId): swatchId is NonNullable<typeof swatchId> =>\n swatchId != null,\n )\n }) ?? []\n )\n}\n\nfunction copyResponsiveBorderData(\n data: ResponsiveBorderData,\n context: CopyContext,\n): ResponsiveBorderData {\n return data.map((override) => ({\n ...override,\n value: copyBorderValue(override.value),\n }))\n\n function copyBorderValue({\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n }: BorderData): BorderData {\n return {\n borderTop: borderTop && copyBorderSide(borderTop),\n borderRight: borderRight && copyBorderSide(borderRight),\n borderBottom: borderBottom && copyBorderSide(borderBottom),\n borderLeft: borderLeft && copyBorderSide(borderLeft),\n }\n }\n\n function copyBorderSide(\n borderSide: BorderSideData,\n ): BorderSideData | undefined {\n const { color } = borderSide\n\n if (color == null) return borderSide\n if (shouldRemoveResource(ContextResource.Swatch, color.swatchId, context)) {\n return undefined\n }\n\n return {\n ...borderSide,\n color: {\n ...color,\n swatchId: replaceResourceIfNeeded(\n ContextResource.Swatch,\n color.swatchId,\n context,\n ),\n },\n }\n }\n}\n\nexport function copyBorderPropControllerData(\n data: BorderPropControllerData | undefined,\n context: CopyContext,\n): BorderPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: BorderPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: BorderPropControllerDataV1Type,\n value: copyResponsiveBorderData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => copyResponsiveBorderData(v0, context))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAsB;AACtB,sBAOO;AAEP,8BAMO;AAEP,iBAAkB;AAElB,MAAM,6BAA6B,+BAAO,gBAAgB,4BAAY,MAAM;AAI5E,MAAM,mCAAmC;AAMlC,MAAM,iCAAiC;AAE9C,MAAM,mCAAmC,aAAE,OAAO;AAAA,EAChD,CAAC,0CAAkB,GAAG,aAAE,QAAQ,8BAA8B;AAAA,EAC9D,OAAO;AACT,CAAC;AAMM,MAAM,iCAAiC,aAAE,MAAM;AAAA,EACpD;AAAA,EACA;AACF,CAAC;AAMM,MAAM,6BAA6B;AAAA,EACxC,WAAW;AAAA,EACX,iBACE;AACJ;AAgDO,SAAS,OACd,UAA6B,CAAC,GACiB;AAC/C,SAAO,EAAE,MAAM,8BAAM,QAAQ,SAAS,GAAG,QAAQ;AACnD;AAEA,OAAO,SAAS;AAET,SAAS,gDACd,MACkC;AAClC,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,+BAA+B;AAAA,IACvD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,uDACd,YACA,sBAC0B;AAC1B,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACJ,EACC,UAAU,MAAM,oBAAoB;AACzC;AAEO,SAAS,qCACd,MACU;AACV,SACE,gDAAgD,IAAI,GAChD,QAAQ,CAAC,aAAa,SAAS,KAAK,EACrC,QAAQ,CAAC,gBAAgB;AACxB,WAAO;AAAA,MACL,YAAY,WAAW,OAAO;AAAA,MAC9B,YAAY,aAAa,OAAO;AAAA,MAChC,YAAY,cAAc,OAAO;AAAA,MACjC,YAAY,YAAY,OAAO;AAAA,IACjC,EAAE;AAAA,MACA,CAAC,aACC,YAAY;AAAA,IAChB;AAAA,EACF,CAAC,KAAK,CAAC;AAEb;AAEA,SAAS,yBACP,MACA,SACsB;AACtB,SAAO,KAAK,IAAI,CAAC,cAAc;AAAA,IAC7B,GAAG;AAAA,IACH,OAAO,gBAAgB,SAAS,KAAK;AAAA,EACvC,EAAE;AAEF,WAAS,gBAAgB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAA2B;AACzB,WAAO;AAAA,MACL,WAAW,aAAa,eAAe,SAAS;AAAA,MAChD,aAAa,eAAe,eAAe,WAAW;AAAA,MACtD,cAAc,gBAAgB,eAAe,YAAY;AAAA,MACzD,YAAY,cAAc,eAAe,UAAU;AAAA,IACrD;AAAA,EACF;AAEA,WAAS,eACP,YAC4B;AAC5B,UAAM,EAAE,MAAM,IAAI;AAElB,QAAI,SAAS,KAAM,QAAO;AAC1B,YAAI,sCAAqB,gCAAgB,QAAQ,MAAM,UAAU,OAAO,GAAG;AACzE,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,MACL,GAAG;AAAA,MACH,OAAO;AAAA,QACL,GAAG;AAAA,QACH,cAAU;AAAA,UACR,gCAAgB;AAAA,UAChB,MAAM;AAAA,UACN;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,6BACd,MACA,SACsC;AACtC,aAAO,yBAAM,IAAI,EACd,KAAK,QAAW,MAAM,MAAS,EAC/B;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,+BAA+B;AAAA,IACvD,CAAC,QACE;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO,yBAAyB,GAAG,OAAO,OAAO;AAAA,IACnD;AAAA,EACJ,EACC,UAAU,CAAC,OAAO,yBAAyB,IAAI,OAAO,CAAC;AAC5D;","names":[]}
|
@@ -60,18 +60,15 @@ function createElementIDPropControllerDataFromElementID(value, definition) {
|
|
60
60
|
).otherwise(() => value);
|
61
61
|
}
|
62
62
|
function copyElementID(data, context) {
|
63
|
-
if (data == null)
|
64
|
-
|
65
|
-
if (context.replacementContext.elementHtmlIds.has(data))
|
66
|
-
return void 0;
|
63
|
+
if (data == null) return data;
|
64
|
+
if (context.replacementContext.elementHtmlIds.has(data)) return void 0;
|
67
65
|
context.replacementContext.elementHtmlIds.add(data);
|
68
66
|
return data;
|
69
67
|
}
|
70
68
|
function copyElementIDPropControllerData(data, context) {
|
71
69
|
return (0, import_ts_pattern.match)(data).with(void 0, () => void 0).with({ [import_prop_controllers.ControlDataTypeKey]: ElementIDPropControllerDataV1Type }, (v1) => {
|
72
70
|
const value = copyElementID(v1.value, context);
|
73
|
-
if (value == null)
|
74
|
-
return void 0;
|
71
|
+
if (value == null) return void 0;
|
75
72
|
return {
|
76
73
|
[import_prop_controllers.ControlDataTypeKey]: ElementIDPropControllerDataV1Type,
|
77
74
|
value
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/element-id/element-id.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\n\nconst elementIDSchema = z.string()\n\ntype ElementID = z.infer<typeof elementIDSchema>\n\nconst elementIDPropControllerDataV0Schema = elementIDSchema\n\nexport type ElementIDPropControllerDataV0 = z.infer<\n typeof elementIDPropControllerDataV0Schema\n>\n\nexport const ElementIDPropControllerDataV1Type =\n 'prop-controllers::element-id::v1'\n\nconst elementIDPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(ElementIDPropControllerDataV1Type),\n value: elementIDSchema,\n})\n\nexport type ElementIDPropControllerDataV1 = z.infer<\n typeof elementIDPropControllerDataV1Schema\n>\n\nexport const elementIDPropControllerDataSchema = z.union([\n elementIDPropControllerDataV0Schema,\n elementIDPropControllerDataV1Schema,\n])\n\nexport type ElementIDPropControllerData = z.infer<\n typeof elementIDPropControllerDataSchema\n>\n\nexport type ElementIDOptions = Options<Record<string, never>>\n\ntype ElementIDDescriptorV0<_T = ElementIDPropControllerDataV0> = {\n type: typeof Types.ElementID\n options: ElementIDOptions\n}\n\ntype ElementIDDescriptorV1<\n _T = ElementIDPropControllerData,\n U extends ElementIDOptions = ElementIDOptions,\n> = {\n type: typeof Types.ElementID\n version: 1\n options: U\n}\n\nexport type ElementIDDescriptor<_T = ElementIDPropControllerData> =\n | ElementIDDescriptorV0\n | ElementIDDescriptorV1\n\nexport type ResolveElementIDPropControllerValue<T extends ElementIDDescriptor> =\n T extends ElementIDDescriptor ? ElementID | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function ElementID(\n options: ElementIDOptions = {},\n): ElementIDDescriptorV1 {\n return { type: Types.ElementID, version: 1, options }\n}\n\nexport function getElementIDPropControllerDataElementID(\n data: ElementIDPropControllerData | undefined,\n): ElementID | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: ElementIDPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createElementIDPropControllerDataFromElementID(\n value: ElementID,\n definition: ElementIDDescriptor,\n): ElementIDPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: ElementIDPropControllerDataV1Type,\n value,\n } as const),\n )\n .otherwise(() => value)\n}\n\nfunction copyElementID(\n data: ElementID | undefined,\n context: CopyContext,\n): ElementID | undefined {\n if (data == null) return data\n\n if (context.replacementContext.elementHtmlIds.has(data)) return undefined\n\n context.replacementContext.elementHtmlIds.add(data)\n\n return data\n}\n\nexport function copyElementIDPropControllerData(\n data: ElementIDPropControllerData | undefined,\n context: CopyContext,\n): ElementIDPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with({ [ControlDataTypeKey]: ElementIDPropControllerDataV1Type }, (v1) => {\n const value = copyElementID(v1.value, context)\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: ElementIDPropControllerDataV1Type,\n value,\n } as const\n })\n .otherwise((v0) => copyElementID(v0, context))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAClB,8BAKO;AACP,wBAAyB;AAEzB,MAAM,kBAAkB,aAAE,OAAO;AAIjC,MAAM,sCAAsC;AAMrC,MAAM,oCACX;AAEF,MAAM,sCAAsC,aAAE,OAAO;AAAA,EACnD,CAAC,0CAAkB,GAAG,aAAE,QAAQ,iCAAiC;AAAA,EACjE,OAAO;AACT,CAAC;AAMM,MAAM,oCAAoC,aAAE,MAAM;AAAA,EACvD;AAAA,EACA;AACF,CAAC;AAiCM,SAAS,UACd,UAA4B,CAAC,GACN;AACvB,SAAO,EAAE,MAAM,8BAAM,WAAW,SAAS,GAAG,QAAQ;AACtD;AAEO,SAAS,wCACd,MACuB;AACvB,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,kCAAkC;AAAA,IAC1D,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,+CACd,OACA,YAC6B;AAC7B,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,oBAAE;AAAA,IACF,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,EACJ,EACC,UAAU,MAAM,KAAK;AAC1B;AAEA,SAAS,cACP,MACA,SACuB;AACvB,MAAI,QAAQ
|
1
|
+
{"version":3,"sources":["../../../src/element-id/element-id.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\n\nconst elementIDSchema = z.string()\n\ntype ElementID = z.infer<typeof elementIDSchema>\n\nconst elementIDPropControllerDataV0Schema = elementIDSchema\n\nexport type ElementIDPropControllerDataV0 = z.infer<\n typeof elementIDPropControllerDataV0Schema\n>\n\nexport const ElementIDPropControllerDataV1Type =\n 'prop-controllers::element-id::v1'\n\nconst elementIDPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(ElementIDPropControllerDataV1Type),\n value: elementIDSchema,\n})\n\nexport type ElementIDPropControllerDataV1 = z.infer<\n typeof elementIDPropControllerDataV1Schema\n>\n\nexport const elementIDPropControllerDataSchema = z.union([\n elementIDPropControllerDataV0Schema,\n elementIDPropControllerDataV1Schema,\n])\n\nexport type ElementIDPropControllerData = z.infer<\n typeof elementIDPropControllerDataSchema\n>\n\nexport type ElementIDOptions = Options<Record<string, never>>\n\ntype ElementIDDescriptorV0<_T = ElementIDPropControllerDataV0> = {\n type: typeof Types.ElementID\n options: ElementIDOptions\n}\n\ntype ElementIDDescriptorV1<\n _T = ElementIDPropControllerData,\n U extends ElementIDOptions = ElementIDOptions,\n> = {\n type: typeof Types.ElementID\n version: 1\n options: U\n}\n\nexport type ElementIDDescriptor<_T = ElementIDPropControllerData> =\n | ElementIDDescriptorV0\n | ElementIDDescriptorV1\n\nexport type ResolveElementIDPropControllerValue<T extends ElementIDDescriptor> =\n T extends ElementIDDescriptor ? ElementID | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function ElementID(\n options: ElementIDOptions = {},\n): ElementIDDescriptorV1 {\n return { type: Types.ElementID, version: 1, options }\n}\n\nexport function getElementIDPropControllerDataElementID(\n data: ElementIDPropControllerData | undefined,\n): ElementID | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: ElementIDPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createElementIDPropControllerDataFromElementID(\n value: ElementID,\n definition: ElementIDDescriptor,\n): ElementIDPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: ElementIDPropControllerDataV1Type,\n value,\n } as const),\n )\n .otherwise(() => value)\n}\n\nfunction copyElementID(\n data: ElementID | undefined,\n context: CopyContext,\n): ElementID | undefined {\n if (data == null) return data\n\n if (context.replacementContext.elementHtmlIds.has(data)) return undefined\n\n context.replacementContext.elementHtmlIds.add(data)\n\n return data\n}\n\nexport function copyElementIDPropControllerData(\n data: ElementIDPropControllerData | undefined,\n context: CopyContext,\n): ElementIDPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with({ [ControlDataTypeKey]: ElementIDPropControllerDataV1Type }, (v1) => {\n const value = copyElementID(v1.value, context)\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: ElementIDPropControllerDataV1Type,\n value,\n } as const\n })\n .otherwise((v0) => copyElementID(v0, context))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAClB,8BAKO;AACP,wBAAyB;AAEzB,MAAM,kBAAkB,aAAE,OAAO;AAIjC,MAAM,sCAAsC;AAMrC,MAAM,oCACX;AAEF,MAAM,sCAAsC,aAAE,OAAO;AAAA,EACnD,CAAC,0CAAkB,GAAG,aAAE,QAAQ,iCAAiC;AAAA,EACjE,OAAO;AACT,CAAC;AAMM,MAAM,oCAAoC,aAAE,MAAM;AAAA,EACvD;AAAA,EACA;AACF,CAAC;AAiCM,SAAS,UACd,UAA4B,CAAC,GACN;AACvB,SAAO,EAAE,MAAM,8BAAM,WAAW,SAAS,GAAG,QAAQ;AACtD;AAEO,SAAS,wCACd,MACuB;AACvB,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,kCAAkC;AAAA,IAC1D,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,+CACd,OACA,YAC6B;AAC7B,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,oBAAE;AAAA,IACF,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,EACJ,EACC,UAAU,MAAM,KAAK;AAC1B;AAEA,SAAS,cACP,MACA,SACuB;AACvB,MAAI,QAAQ,KAAM,QAAO;AAEzB,MAAI,QAAQ,mBAAmB,eAAe,IAAI,IAAI,EAAG,QAAO;AAEhE,UAAQ,mBAAmB,eAAe,IAAI,IAAI;AAElD,SAAO;AACT;AAEO,SAAS,gCACd,MACA,SACyC;AACzC,aAAO,yBAAM,IAAI,EACd,KAAK,QAAW,MAAM,MAAS,EAC/B,KAAK,EAAE,CAAC,0CAAkB,GAAG,kCAAkC,GAAG,CAAC,OAAO;AACzE,UAAM,QAAQ,cAAc,GAAG,OAAO,OAAO;AAE7C,QAAI,SAAS,KAAM,QAAO;AAE1B,WAAO;AAAA,MACL,CAAC,0CAAkB,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,EACF,CAAC,EACA,UAAU,CAAC,OAAO,cAAc,IAAI,OAAO,CAAC;AACjD;","names":[]}
|
package/dist/cjs/grid/grid.js
CHANGED
@@ -114,8 +114,7 @@ function copyGridPropControllerData(data, context) {
|
|
114
114
|
function getGridPropControllerGetElementPath(data, elementKey) {
|
115
115
|
const value = getGridPropControllerDataGridData(data);
|
116
116
|
const idx = value?.elements.findIndex((element) => element.key === elementKey) ?? -1;
|
117
|
-
if (idx === -1)
|
118
|
-
return null;
|
117
|
+
if (idx === -1) return null;
|
119
118
|
return (0, import_ts_pattern.match)(data).with({ [import_prop_controllers.ControlDataTypeKey]: GridPropControllerDataV1Type }, (_v1) => [
|
120
119
|
"value",
|
121
120
|
"elements",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/grid/grid.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Element,\n MergeTranslatableDataContext,\n Options,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\nimport {\n isElementReference,\n ContextResource,\n shouldRemoveResource,\n} from '@makeswift/controls'\n\nconst gridColumnSchema = z.object({\n count: z.number(),\n spans: z.array(z.array(z.number())),\n})\n\nconst gridDataSchema = z.object({\n elements: z.array(Schema.element),\n columns: Schema.responsiveValue(gridColumnSchema),\n})\n\nexport type GridData = z.infer<typeof gridDataSchema>\n\nconst gridPropControllerDataV0Schema = gridDataSchema\n\nexport type GridPropControllerDataV0 = z.infer<\n typeof gridPropControllerDataV0Schema\n>\n\nexport const GridPropControllerDataV1Type = 'prop-controllers::grid::v1'\n\nconst gridPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(GridPropControllerDataV1Type),\n value: gridDataSchema,\n})\n\nexport type GridPropControllerDataV1 = z.infer<\n typeof gridPropControllerDataV1Schema\n>\n\nexport const gridPropControllerDataSchema = z.union([\n gridPropControllerDataV0Schema,\n gridPropControllerDataV1Schema,\n])\n\nexport type GridPropControllerData = z.infer<\n typeof gridPropControllerDataSchema\n>\n\nexport type GridOptions = Options<Record<string, never>>\n\ntype GridDescriptorV0<_T = GridPropControllerDataV0> = {\n type: typeof Types.Grid\n options: GridOptions\n}\n\ntype GridDescriptorV1<\n _T = GridPropControllerData,\n U extends GridOptions = GridOptions,\n> = {\n type: typeof Types.Grid\n version: 1\n options: U\n}\n\nexport type GridDescriptor<_T = GridPropControllerData> =\n | GridDescriptorV0\n | GridDescriptorV1\n\nexport type ResolveGridPropControllerValue<T extends GridDescriptor> =\n T extends GridDescriptor ? GridData | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Grid(options: GridOptions = {}): GridDescriptorV1 {\n return { type: Types.Grid, version: 1, options }\n}\n\nexport function getGridPropControllerDataGridData(\n data: GridPropControllerData | undefined,\n): GridData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: GridPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createGridPropControllerDataFromGridData(\n value: GridData,\n definition: GridDescriptor,\n): GridPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: GridPropControllerDataV1Type,\n value,\n }) as const,\n )\n .otherwise(() => value)\n}\n\nfunction mergeGridDataTranslatedData(\n data: GridData,\n context: MergeTranslatableDataContext,\n): GridData {\n return {\n ...data,\n elements: data.elements.map((element) =>\n context.mergeTranslatedData(element),\n ),\n }\n}\n\nexport function mergeGridPropControllerTranslatedData(\n data: GridPropControllerData,\n context: MergeTranslatableDataContext,\n): GridPropControllerData {\n return match(data)\n .with(\n { [ControlDataTypeKey]: GridPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: GridPropControllerDataV1Type,\n value: mergeGridDataTranslatedData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => mergeGridDataTranslatedData(v0, context))\n}\n\nexport function getGridPropControllerElementChildren(\n data: GridPropControllerData | undefined,\n): Element[] {\n return getGridPropControllerDataGridData(data)?.elements ?? []\n}\n\nfunction copyGridData(data: GridData, context: CopyContext): GridData {\n return {\n ...data,\n elements: data.elements\n .filter(\n (el) =>\n !(\n isElementReference(el) &&\n shouldRemoveResource(\n ContextResource.GlobalElement,\n el.value,\n context,\n )\n ),\n )\n .map((el) => context.copyElement(el)),\n }\n}\n\nexport function copyGridPropControllerData(\n data: GridPropControllerData | undefined,\n context: CopyContext,\n): GridPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: GridPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: GridPropControllerDataV1Type,\n value: copyGridData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => copyGridData(v0, context))\n}\n\ntype Path = ReadonlyArray<string | number>\n\nexport function getGridPropControllerGetElementPath(\n data: GridPropControllerData | undefined,\n elementKey: string,\n): Path | null {\n const value = getGridPropControllerDataGridData(data)\n\n const idx =\n value?.elements.findIndex((element) => element.key === elementKey) ?? -1\n\n if (idx === -1) return null\n\n return match(data)\n .with({ [ControlDataTypeKey]: GridPropControllerDataV1Type }, (_v1) => [\n 'value',\n 'elements',\n idx,\n ])\n .otherwise((_v0) => ['elements', idx])\n}\n"],"mappings":"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
|
1
|
+
{"version":3,"sources":["../../../src/grid/grid.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Element,\n MergeTranslatableDataContext,\n Options,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\nimport {\n isElementReference,\n ContextResource,\n shouldRemoveResource,\n} from '@makeswift/controls'\n\nconst gridColumnSchema = z.object({\n count: z.number(),\n spans: z.array(z.array(z.number())),\n})\n\nconst gridDataSchema = z.object({\n elements: z.array(Schema.element),\n columns: Schema.responsiveValue(gridColumnSchema),\n})\n\nexport type GridData = z.infer<typeof gridDataSchema>\n\nconst gridPropControllerDataV0Schema = gridDataSchema\n\nexport type GridPropControllerDataV0 = z.infer<\n typeof gridPropControllerDataV0Schema\n>\n\nexport const GridPropControllerDataV1Type = 'prop-controllers::grid::v1'\n\nconst gridPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(GridPropControllerDataV1Type),\n value: gridDataSchema,\n})\n\nexport type GridPropControllerDataV1 = z.infer<\n typeof gridPropControllerDataV1Schema\n>\n\nexport const gridPropControllerDataSchema = z.union([\n gridPropControllerDataV0Schema,\n gridPropControllerDataV1Schema,\n])\n\nexport type GridPropControllerData = z.infer<\n typeof gridPropControllerDataSchema\n>\n\nexport type GridOptions = Options<Record<string, never>>\n\ntype GridDescriptorV0<_T = GridPropControllerDataV0> = {\n type: typeof Types.Grid\n options: GridOptions\n}\n\ntype GridDescriptorV1<\n _T = GridPropControllerData,\n U extends GridOptions = GridOptions,\n> = {\n type: typeof Types.Grid\n version: 1\n options: U\n}\n\nexport type GridDescriptor<_T = GridPropControllerData> =\n | GridDescriptorV0\n | GridDescriptorV1\n\nexport type ResolveGridPropControllerValue<T extends GridDescriptor> =\n T extends GridDescriptor ? GridData | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Grid(options: GridOptions = {}): GridDescriptorV1 {\n return { type: Types.Grid, version: 1, options }\n}\n\nexport function getGridPropControllerDataGridData(\n data: GridPropControllerData | undefined,\n): GridData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: GridPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createGridPropControllerDataFromGridData(\n value: GridData,\n definition: GridDescriptor,\n): GridPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: GridPropControllerDataV1Type,\n value,\n }) as const,\n )\n .otherwise(() => value)\n}\n\nfunction mergeGridDataTranslatedData(\n data: GridData,\n context: MergeTranslatableDataContext,\n): GridData {\n return {\n ...data,\n elements: data.elements.map((element) =>\n context.mergeTranslatedData(element),\n ),\n }\n}\n\nexport function mergeGridPropControllerTranslatedData(\n data: GridPropControllerData,\n context: MergeTranslatableDataContext,\n): GridPropControllerData {\n return match(data)\n .with(\n { [ControlDataTypeKey]: GridPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: GridPropControllerDataV1Type,\n value: mergeGridDataTranslatedData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => mergeGridDataTranslatedData(v0, context))\n}\n\nexport function getGridPropControllerElementChildren(\n data: GridPropControllerData | undefined,\n): Element[] {\n return getGridPropControllerDataGridData(data)?.elements ?? []\n}\n\nfunction copyGridData(data: GridData, context: CopyContext): GridData {\n return {\n ...data,\n elements: data.elements\n .filter(\n (el) =>\n !(\n isElementReference(el) &&\n shouldRemoveResource(\n ContextResource.GlobalElement,\n el.value,\n context,\n )\n ),\n )\n .map((el) => context.copyElement(el)),\n }\n}\n\nexport function copyGridPropControllerData(\n data: GridPropControllerData | undefined,\n context: CopyContext,\n): GridPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: GridPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: GridPropControllerDataV1Type,\n value: copyGridData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => copyGridData(v0, context))\n}\n\ntype Path = ReadonlyArray<string | number>\n\nexport function getGridPropControllerGetElementPath(\n data: GridPropControllerData | undefined,\n elementKey: string,\n): Path | null {\n const value = getGridPropControllerDataGridData(data)\n\n const idx =\n value?.elements.findIndex((element) => element.key === elementKey) ?? -1\n\n if (idx === -1) return null\n\n return match(data)\n .with({ [ControlDataTypeKey]: GridPropControllerDataV1Type }, (_v1) => [\n 'value',\n 'elements',\n idx,\n ])\n .otherwise((_v0) => ['elements', idx])\n}\n"],"mappings":"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","names":[]}
|
package/dist/cjs/image/image.js
CHANGED
@@ -82,8 +82,7 @@ function copyImageData(data, ctx) {
|
|
82
82
|
function copyImagePropControllerData(data, context) {
|
83
83
|
return (0, import_ts_pattern.match)(data).with(void 0, () => void 0).with({ [import_prop_controllers.ControlDataTypeKey]: ImagePropControllerDataV2Type }, (v1) => {
|
84
84
|
const value = copyImageData(v1.value, context);
|
85
|
-
if (value == null)
|
86
|
-
return void 0;
|
85
|
+
if (value == null) return void 0;
|
87
86
|
return {
|
88
87
|
[import_prop_controllers.ControlDataTypeKey]: ImagePropControllerDataV2Type,
|
89
88
|
value
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/image/image.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\nimport {\n ImageData,\n ImageDataV0,\n imageDataSchema,\n imageDataV0Schema,\n} from '../data'\n\nconst imagePropControllerDataV0Schema = imageDataV0Schema\n\nconst imagePropControllerDataV1Schema = imageDataSchema\n\nexport const ImagePropControllerDataV2Type = 'prop-controllers::image::v2'\n\nconst imagePropControllerDataV2Schema = z.object({\n [ControlDataTypeKey]: z.literal(ImagePropControllerDataV2Type),\n value: imagePropControllerDataV1Schema,\n})\n\nexport type ImagePropControllerDataV2 = z.infer<\n typeof imagePropControllerDataV2Schema\n>\n\nexport const imagePropControllerDataSchema = z.union([\n imagePropControllerDataV0Schema,\n imagePropControllerDataV1Schema,\n imagePropControllerDataV2Schema,\n])\n\nexport type ImagePropControllerData = z.infer<\n typeof imagePropControllerDataSchema\n>\n\nexport type ImageOptions = Options<{ label?: string; hidden?: boolean }>\n\ntype ImageDescriptorV0<_T = ImageDataV0> = {\n type: typeof Types.Image\n options: ImageOptions\n}\n\ntype ImageDescriptorV1<_T = ImageData> = {\n type: typeof Types.Image\n version: 1\n options: ImageOptions\n}\n\ntype ImageDescriptorV2<_T = ImagePropControllerData> = {\n type: typeof Types.Image\n version: 2\n options: ImageOptions\n}\n\nexport type ImageDescriptor<_T = ImagePropControllerData> =\n | ImageDescriptorV0\n | ImageDescriptorV1\n | ImageDescriptorV2\n\nexport type ResolveImagePropControllerValue<T extends ImageDescriptor> =\n T extends ImageDescriptor ? ImageData | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Image(options: ImageOptions = {}): ImageDescriptorV2 {\n return { type: Types.Image, version: 2, options }\n}\n\nexport function getImagePropControllerDataImageData(\n data: ImagePropControllerData | undefined,\n): ImageData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: ImagePropControllerDataV2Type },\n (v2) => v2.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createImagePropControllerDataFromImageData(\n data: ImageData,\n definition: ImageDescriptor,\n): ImagePropControllerData {\n return match(definition)\n .with(\n { version: 2 },\n () =>\n ({\n [ControlDataTypeKey]: ImagePropControllerDataV2Type,\n value: data,\n }) as const,\n )\n .otherwise(() => data)\n}\n\nexport function getImagePropControllerFileIds(\n data: ImagePropControllerData | undefined,\n): string[] {\n const value = getImagePropControllerDataImageData(data)\n\n return match(value)\n .with(undefined, () => [])\n .with(P.string, (v) => [v])\n .with({ type: 'makeswift-file', version: 1 }, (v) => [v.id])\n .with({ type: 'external-file', version: 1 }, () => [])\n .exhaustive()\n}\n\nfunction copyImageData(\n data: ImageData | undefined,\n ctx: CopyContext,\n): ImageData | undefined {\n const existingFileId = match(data)\n .with(P.string, (v) => v)\n .with({ type: 'makeswift-file', version: 1 }, (v) => v.id)\n .otherwise(() => undefined)\n\n if (\n existingFileId != null &&\n shouldRemoveResource(ContextResource.File, existingFileId, ctx)\n ) {\n return undefined\n }\n\n return match(data)\n .with(P.string, (v) =>\n replaceResourceIfNeeded(ContextResource.File, v, ctx),\n )\n .with({ type: 'makeswift-file', version: 1 }, (v) => ({\n ...v,\n id: replaceResourceIfNeeded(ContextResource.File, v.id, ctx),\n }))\n .otherwise((v) => v)\n}\n\nexport function copyImagePropControllerData(\n data: ImagePropControllerData | undefined,\n context: CopyContext,\n): ImagePropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with({ [ControlDataTypeKey]: ImagePropControllerDataV2Type }, (v1) => {\n const value = copyImageData(v1.value, context)\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: ImagePropControllerDataV2Type,\n value,\n } as const\n })\n .otherwise((v0) => copyImageData(v0, context))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAClB,sBAIO;AACP,8BAKO;AACP,wBAAyB;AACzB,kBAKO;AAEP,MAAM,kCAAkC;AAExC,MAAM,kCAAkC;AAEjC,MAAM,gCAAgC;AAE7C,MAAM,kCAAkC,aAAE,OAAO;AAAA,EAC/C,CAAC,0CAAkB,GAAG,aAAE,QAAQ,6BAA6B;AAAA,EAC7D,OAAO;AACT,CAAC;AAMM,MAAM,gCAAgC,aAAE,MAAM;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAqCM,SAAS,MAAM,UAAwB,CAAC,GAAsB;AACnE,SAAO,EAAE,MAAM,8BAAM,OAAO,SAAS,GAAG,QAAQ;AAClD;AAEO,SAAS,oCACd,MACuB;AACvB,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,8BAA8B;AAAA,IACtD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,2CACd,MACA,YACyB;AACzB,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACJ,EACC,UAAU,MAAM,IAAI;AACzB;AAEO,SAAS,8BACd,MACU;AACV,QAAM,QAAQ,oCAAoC,IAAI;AAEtD,aAAO,yBAAM,KAAK,EACf,KAAK,QAAW,MAAM,CAAC,CAAC,EACxB,KAAK,oBAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EACzB,KAAK,EAAE,MAAM,kBAAkB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAC1D,KAAK,EAAE,MAAM,iBAAiB,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,EACpD,WAAW;AAChB;AAEA,SAAS,cACP,MACA,KACuB;AACvB,QAAM,qBAAiB,yBAAM,IAAI,EAC9B,KAAK,oBAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,kBAAkB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EACxD,UAAU,MAAM,MAAS;AAE5B,MACE,kBAAkB,YAClB,sCAAqB,gCAAgB,MAAM,gBAAgB,GAAG,GAC9D;AACA,WAAO;AAAA,EACT;AAEA,aAAO,yBAAM,IAAI,EACd;AAAA,IAAK,oBAAE;AAAA,IAAQ,CAAC,UACf,yCAAwB,gCAAgB,MAAM,GAAG,GAAG;AAAA,EACtD,EACC,KAAK,EAAE,MAAM,kBAAkB,SAAS,EAAE,GAAG,CAAC,OAAO;AAAA,IACpD,GAAG;AAAA,IACH,QAAI,yCAAwB,gCAAgB,MAAM,EAAE,IAAI,GAAG;AAAA,EAC7D,EAAE,EACD,UAAU,CAAC,MAAM,CAAC;AACvB;AAEO,SAAS,4BACd,MACA,SACqC;AACrC,aAAO,yBAAM,IAAI,EACd,KAAK,QAAW,MAAM,MAAS,EAC/B,KAAK,EAAE,CAAC,0CAAkB,GAAG,8BAA8B,GAAG,CAAC,OAAO;AACrE,UAAM,QAAQ,cAAc,GAAG,OAAO,OAAO;AAE7C,QAAI,SAAS
|
1
|
+
{"version":3,"sources":["../../../src/image/image.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\nimport {\n ImageData,\n ImageDataV0,\n imageDataSchema,\n imageDataV0Schema,\n} from '../data'\n\nconst imagePropControllerDataV0Schema = imageDataV0Schema\n\nconst imagePropControllerDataV1Schema = imageDataSchema\n\nexport const ImagePropControllerDataV2Type = 'prop-controllers::image::v2'\n\nconst imagePropControllerDataV2Schema = z.object({\n [ControlDataTypeKey]: z.literal(ImagePropControllerDataV2Type),\n value: imagePropControllerDataV1Schema,\n})\n\nexport type ImagePropControllerDataV2 = z.infer<\n typeof imagePropControllerDataV2Schema\n>\n\nexport const imagePropControllerDataSchema = z.union([\n imagePropControllerDataV0Schema,\n imagePropControllerDataV1Schema,\n imagePropControllerDataV2Schema,\n])\n\nexport type ImagePropControllerData = z.infer<\n typeof imagePropControllerDataSchema\n>\n\nexport type ImageOptions = Options<{ label?: string; hidden?: boolean }>\n\ntype ImageDescriptorV0<_T = ImageDataV0> = {\n type: typeof Types.Image\n options: ImageOptions\n}\n\ntype ImageDescriptorV1<_T = ImageData> = {\n type: typeof Types.Image\n version: 1\n options: ImageOptions\n}\n\ntype ImageDescriptorV2<_T = ImagePropControllerData> = {\n type: typeof Types.Image\n version: 2\n options: ImageOptions\n}\n\nexport type ImageDescriptor<_T = ImagePropControllerData> =\n | ImageDescriptorV0\n | ImageDescriptorV1\n | ImageDescriptorV2\n\nexport type ResolveImagePropControllerValue<T extends ImageDescriptor> =\n T extends ImageDescriptor ? ImageData | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Image(options: ImageOptions = {}): ImageDescriptorV2 {\n return { type: Types.Image, version: 2, options }\n}\n\nexport function getImagePropControllerDataImageData(\n data: ImagePropControllerData | undefined,\n): ImageData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: ImagePropControllerDataV2Type },\n (v2) => v2.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createImagePropControllerDataFromImageData(\n data: ImageData,\n definition: ImageDescriptor,\n): ImagePropControllerData {\n return match(definition)\n .with(\n { version: 2 },\n () =>\n ({\n [ControlDataTypeKey]: ImagePropControllerDataV2Type,\n value: data,\n }) as const,\n )\n .otherwise(() => data)\n}\n\nexport function getImagePropControllerFileIds(\n data: ImagePropControllerData | undefined,\n): string[] {\n const value = getImagePropControllerDataImageData(data)\n\n return match(value)\n .with(undefined, () => [])\n .with(P.string, (v) => [v])\n .with({ type: 'makeswift-file', version: 1 }, (v) => [v.id])\n .with({ type: 'external-file', version: 1 }, () => [])\n .exhaustive()\n}\n\nfunction copyImageData(\n data: ImageData | undefined,\n ctx: CopyContext,\n): ImageData | undefined {\n const existingFileId = match(data)\n .with(P.string, (v) => v)\n .with({ type: 'makeswift-file', version: 1 }, (v) => v.id)\n .otherwise(() => undefined)\n\n if (\n existingFileId != null &&\n shouldRemoveResource(ContextResource.File, existingFileId, ctx)\n ) {\n return undefined\n }\n\n return match(data)\n .with(P.string, (v) =>\n replaceResourceIfNeeded(ContextResource.File, v, ctx),\n )\n .with({ type: 'makeswift-file', version: 1 }, (v) => ({\n ...v,\n id: replaceResourceIfNeeded(ContextResource.File, v.id, ctx),\n }))\n .otherwise((v) => v)\n}\n\nexport function copyImagePropControllerData(\n data: ImagePropControllerData | undefined,\n context: CopyContext,\n): ImagePropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with({ [ControlDataTypeKey]: ImagePropControllerDataV2Type }, (v1) => {\n const value = copyImageData(v1.value, context)\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: ImagePropControllerDataV2Type,\n value,\n } as const\n })\n .otherwise((v0) => copyImageData(v0, context))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAClB,sBAIO;AACP,8BAKO;AACP,wBAAyB;AACzB,kBAKO;AAEP,MAAM,kCAAkC;AAExC,MAAM,kCAAkC;AAEjC,MAAM,gCAAgC;AAE7C,MAAM,kCAAkC,aAAE,OAAO;AAAA,EAC/C,CAAC,0CAAkB,GAAG,aAAE,QAAQ,6BAA6B;AAAA,EAC7D,OAAO;AACT,CAAC;AAMM,MAAM,gCAAgC,aAAE,MAAM;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAqCM,SAAS,MAAM,UAAwB,CAAC,GAAsB;AACnE,SAAO,EAAE,MAAM,8BAAM,OAAO,SAAS,GAAG,QAAQ;AAClD;AAEO,SAAS,oCACd,MACuB;AACvB,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,8BAA8B;AAAA,IACtD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,2CACd,MACA,YACyB;AACzB,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACJ,EACC,UAAU,MAAM,IAAI;AACzB;AAEO,SAAS,8BACd,MACU;AACV,QAAM,QAAQ,oCAAoC,IAAI;AAEtD,aAAO,yBAAM,KAAK,EACf,KAAK,QAAW,MAAM,CAAC,CAAC,EACxB,KAAK,oBAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EACzB,KAAK,EAAE,MAAM,kBAAkB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAC1D,KAAK,EAAE,MAAM,iBAAiB,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,EACpD,WAAW;AAChB;AAEA,SAAS,cACP,MACA,KACuB;AACvB,QAAM,qBAAiB,yBAAM,IAAI,EAC9B,KAAK,oBAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,kBAAkB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EACxD,UAAU,MAAM,MAAS;AAE5B,MACE,kBAAkB,YAClB,sCAAqB,gCAAgB,MAAM,gBAAgB,GAAG,GAC9D;AACA,WAAO;AAAA,EACT;AAEA,aAAO,yBAAM,IAAI,EACd;AAAA,IAAK,oBAAE;AAAA,IAAQ,CAAC,UACf,yCAAwB,gCAAgB,MAAM,GAAG,GAAG;AAAA,EACtD,EACC,KAAK,EAAE,MAAM,kBAAkB,SAAS,EAAE,GAAG,CAAC,OAAO;AAAA,IACpD,GAAG;AAAA,IACH,QAAI,yCAAwB,gCAAgB,MAAM,EAAE,IAAI,GAAG;AAAA,EAC7D,EAAE,EACD,UAAU,CAAC,MAAM,CAAC;AACvB;AAEO,SAAS,4BACd,MACA,SACqC;AACrC,aAAO,yBAAM,IAAI,EACd,KAAK,QAAW,MAAM,MAAS,EAC/B,KAAK,EAAE,CAAC,0CAAkB,GAAG,8BAA8B,GAAG,CAAC,OAAO;AACrE,UAAM,QAAQ,cAAc,GAAG,OAAO,OAAO;AAE7C,QAAI,SAAS,KAAM,QAAO;AAE1B,WAAO;AAAA,MACL,CAAC,0CAAkB,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,EACF,CAAC,EACA,UAAU,CAAC,OAAO,cAAc,IAAI,OAAO,CAAC;AACjD;","names":[]}
|
@@ -94,8 +94,7 @@ function getImagesPropControllerFileIds(data) {
|
|
94
94
|
) ?? [];
|
95
95
|
}
|
96
96
|
function copyImagesData(data, context) {
|
97
|
-
if (data == null)
|
98
|
-
return data;
|
97
|
+
if (data == null) return data;
|
99
98
|
return data.map(copyImagesPanelItem);
|
100
99
|
function copyImagesPanelItem(imagesPanelItem) {
|
101
100
|
if ("version" in imagesPanelItem) {
|
@@ -137,8 +136,7 @@ function copyImagesData(data, context) {
|
|
137
136
|
function copyImagesPropControllerData(data, context) {
|
138
137
|
return (0, import_ts_pattern.match)(data).with(void 0, () => void 0).with({ [import_prop_controllers.ControlDataTypeKey]: ImagesPropControllerDataV2Type }, (v1) => {
|
139
138
|
const value = copyImagesData(v1.value, context);
|
140
|
-
if (value == null)
|
141
|
-
return void 0;
|
139
|
+
if (value == null) return void 0;
|
142
140
|
return {
|
143
141
|
[import_prop_controllers.ControlDataTypeKey]: ImagesPropControllerDataV2Type,
|
144
142
|
value
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/images/images.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\nimport {\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\nimport { P, match } from 'ts-pattern'\nimport { imageDataV0Schema, imageDataV1Schema } from '../data'\nimport { linkDataSchema } from '../link'\n\nconst imagesDataV0ItemSchema = z.object({\n key: z.string(),\n props: z.object({\n link: linkDataSchema.optional(),\n file: imageDataV0Schema.optional(),\n altText: z.string().optional(),\n }),\n})\n\nexport type ImagesDataV0Item = z.infer<typeof imagesDataV0ItemSchema>\n\nconst imagesDataV0Schema = z.array(imagesDataV0ItemSchema)\n\nexport type ImagesDataV0 = z.infer<typeof imagesDataV0Schema>\n\nconst imagesDataV1ItemSchema = z.object({\n key: z.string(),\n version: z.literal(1),\n props: z.object({\n link: linkDataSchema.optional(),\n file: imageDataV1Schema.optional(),\n altText: z.string().optional(),\n }),\n})\n\nexport type ImagesDataV1Item = z.infer<typeof imagesDataV1ItemSchema>\n\nconst imagesDataItemSchema = z.union([\n imagesDataV0ItemSchema,\n imagesDataV1ItemSchema,\n])\n\nexport type ImagesDataItem = z.infer<typeof imagesDataItemSchema>\n\nexport const imagesDataSchema = z.array(imagesDataItemSchema)\n\nexport type ImagesData = z.infer<typeof imagesDataSchema>\n\nconst imagesPropControllerDataV0Schema = z.array(imagesDataV0ItemSchema)\n\nconst imagesPropControllerDataV1Schema = imagesDataSchema\n\nexport const ImagesPropControllerDataV2Type = 'prop-controllers::images::v2'\n\nconst imagesPropControllerDataV2Schema = z.object({\n [ControlDataTypeKey]: z.literal(ImagesPropControllerDataV2Type),\n value: imagesPropControllerDataV1Schema,\n})\n\nexport type ImagesPropControllerDataV2 = z.infer<\n typeof imagesPropControllerDataV2Schema\n>\n\nexport const imagesPropControllerDataSchema = z.union([\n imagesPropControllerDataV0Schema,\n imagesPropControllerDataV1Schema,\n imagesPropControllerDataV2Schema,\n])\n\nexport type ImagesPropControllerData = z.infer<\n typeof imagesPropControllerDataSchema\n>\n\nexport type ImagesOptions = Options<{ preset?: ImagesPropControllerData }>\n\ntype ImagesDescriptorV0<_T = ImagesDataV0> = {\n type: typeof Types.Images\n options: ImagesOptions\n}\n\ntype ImagesDescriptorV1<_T = ImagesData> = {\n type: typeof Types.Images\n version: 1\n options: ImagesOptions\n}\n\ntype ImagesDescriptorV2<_T = ImagesPropControllerData> = {\n type: typeof Types.Images\n version: 2\n options: ImagesOptions\n}\n\nexport type ImagesDescriptor<_T = ImagesPropControllerData> =\n | ImagesDescriptorV0\n | ImagesDescriptorV1\n | ImagesDescriptorV2\n\nexport type ResolveImagesPropControllerValue<T extends ImagesDescriptor> =\n T extends ImagesDescriptor ? ImagesData | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Images(options: ImagesOptions = {}): ImagesDescriptorV2 {\n return { type: Types.Images, version: 2, options }\n}\n\nexport function getImagesPropControllerDataImagesData(\n data: ImagesPropControllerData | undefined,\n): ImagesData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: ImagesPropControllerDataV2Type },\n (v2) => v2.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createImagesPropControllerDataFromImagesData(\n data: ImagesData,\n definition: ImagesDescriptor,\n): ImagesPropControllerData {\n return match(definition)\n .with(\n { version: 2 },\n () =>\n ({\n [ControlDataTypeKey]: ImagesPropControllerDataV2Type,\n value: data,\n }) as const,\n )\n .otherwise(() => data)\n}\n\nexport function getImagesPropControllerFileIds(\n data: ImagesPropControllerData | undefined,\n): string[] {\n const value = getImagesPropControllerDataImagesData(data)\n\n return (\n value?.flatMap((item) =>\n match(item.props.file)\n .with(P.string, (f) => [f])\n .with({ type: 'makeswift-file', version: 1 }, (f) => [f.id])\n .with({ type: 'external-file', version: 1 }, () => [])\n .with(P.nullish, () => [])\n .otherwise(() => []),\n ) ?? []\n )\n}\n\nfunction copyImagesData(\n data: ImagesData | undefined,\n context: CopyContext,\n): ImagesData | undefined {\n if (data == null) return data\n\n return data.map(copyImagesPanelItem)\n\n function copyImagesPanelItem(\n imagesPanelItem: ImagesDataItem,\n ): ImagesDataItem {\n if ('version' in imagesPanelItem) {\n return {\n ...imagesPanelItem,\n props: {\n ...imagesPanelItem.props,\n file: match(imagesPanelItem.props.file)\n .with({ type: 'makeswift-file', version: 1 }, (f) => {\n if (shouldRemoveResource(ContextResource.File, f.id, context)) {\n return undefined\n }\n return {\n ...f,\n id: replaceResourceIfNeeded(\n ContextResource.File,\n f.id,\n context,\n ),\n }\n })\n .otherwise((f) => f),\n },\n }\n } else {\n return {\n ...imagesPanelItem,\n props: {\n ...imagesPanelItem.props,\n file: match(imagesPanelItem.props.file)\n .with(P.string, (f) => {\n if (shouldRemoveResource(ContextResource.File, f, context)) {\n return undefined\n }\n return replaceResourceIfNeeded(ContextResource.File, f, context)\n })\n .otherwise((f) => f),\n },\n }\n }\n }\n}\n\nexport function copyImagesPropControllerData(\n data: ImagesPropControllerData | undefined,\n context: CopyContext,\n): ImagesPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with({ [ControlDataTypeKey]: ImagesPropControllerDataV2Type }, (v1) => {\n const value = copyImagesData(v1.value, context)\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: ImagesPropControllerDataV2Type,\n value,\n } as const\n })\n .otherwise((v0) => copyImagesData(v0, context))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAClB,8BAKO;AACP,sBAIO;AACP,wBAAyB;AACzB,kBAAqD;AACrD,kBAA+B;AAE/B,MAAM,yBAAyB,aAAE,OAAO;AAAA,EACtC,KAAK,aAAE,OAAO;AAAA,EACd,OAAO,aAAE,OAAO;AAAA,IACd,MAAM,2BAAe,SAAS;AAAA,IAC9B,MAAM,8BAAkB,SAAS;AAAA,IACjC,SAAS,aAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,CAAC;AACH,CAAC;AAID,MAAM,qBAAqB,aAAE,MAAM,sBAAsB;AAIzD,MAAM,yBAAyB,aAAE,OAAO;AAAA,EACtC,KAAK,aAAE,OAAO;AAAA,EACd,SAAS,aAAE,QAAQ,CAAC;AAAA,EACpB,OAAO,aAAE,OAAO;AAAA,IACd,MAAM,2BAAe,SAAS;AAAA,IAC9B,MAAM,8BAAkB,SAAS;AAAA,IACjC,SAAS,aAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,CAAC;AACH,CAAC;AAID,MAAM,uBAAuB,aAAE,MAAM;AAAA,EACnC;AAAA,EACA;AACF,CAAC;AAIM,MAAM,mBAAmB,aAAE,MAAM,oBAAoB;AAI5D,MAAM,mCAAmC,aAAE,MAAM,sBAAsB;AAEvE,MAAM,mCAAmC;AAElC,MAAM,iCAAiC;AAE9C,MAAM,mCAAmC,aAAE,OAAO;AAAA,EAChD,CAAC,0CAAkB,GAAG,aAAE,QAAQ,8BAA8B;AAAA,EAC9D,OAAO;AACT,CAAC;AAMM,MAAM,iCAAiC,aAAE,MAAM;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAqCM,SAAS,OAAO,UAAyB,CAAC,GAAuB;AACtE,SAAO,EAAE,MAAM,8BAAM,QAAQ,SAAS,GAAG,QAAQ;AACnD;AAEO,SAAS,sCACd,MACwB;AACxB,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,+BAA+B;AAAA,IACvD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,6CACd,MACA,YAC0B;AAC1B,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACJ,EACC,UAAU,MAAM,IAAI;AACzB;AAEO,SAAS,+BACd,MACU;AACV,QAAM,QAAQ,sCAAsC,IAAI;AAExD,SACE,OAAO;AAAA,IAAQ,CAAC,aACd,yBAAM,KAAK,MAAM,IAAI,EAClB,KAAK,oBAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EACzB,KAAK,EAAE,MAAM,kBAAkB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAC1D,KAAK,EAAE,MAAM,iBAAiB,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,EACpD,KAAK,oBAAE,SAAS,MAAM,CAAC,CAAC,EACxB,UAAU,MAAM,CAAC,CAAC;AAAA,EACvB,KAAK,CAAC;AAEV;AAEA,SAAS,eACP,MACA,SACwB;AACxB,MAAI,QAAQ
|
1
|
+
{"version":3,"sources":["../../../src/images/images.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\nimport {\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\nimport { P, match } from 'ts-pattern'\nimport { imageDataV0Schema, imageDataV1Schema } from '../data'\nimport { linkDataSchema } from '../link'\n\nconst imagesDataV0ItemSchema = z.object({\n key: z.string(),\n props: z.object({\n link: linkDataSchema.optional(),\n file: imageDataV0Schema.optional(),\n altText: z.string().optional(),\n }),\n})\n\nexport type ImagesDataV0Item = z.infer<typeof imagesDataV0ItemSchema>\n\nconst imagesDataV0Schema = z.array(imagesDataV0ItemSchema)\n\nexport type ImagesDataV0 = z.infer<typeof imagesDataV0Schema>\n\nconst imagesDataV1ItemSchema = z.object({\n key: z.string(),\n version: z.literal(1),\n props: z.object({\n link: linkDataSchema.optional(),\n file: imageDataV1Schema.optional(),\n altText: z.string().optional(),\n }),\n})\n\nexport type ImagesDataV1Item = z.infer<typeof imagesDataV1ItemSchema>\n\nconst imagesDataItemSchema = z.union([\n imagesDataV0ItemSchema,\n imagesDataV1ItemSchema,\n])\n\nexport type ImagesDataItem = z.infer<typeof imagesDataItemSchema>\n\nexport const imagesDataSchema = z.array(imagesDataItemSchema)\n\nexport type ImagesData = z.infer<typeof imagesDataSchema>\n\nconst imagesPropControllerDataV0Schema = z.array(imagesDataV0ItemSchema)\n\nconst imagesPropControllerDataV1Schema = imagesDataSchema\n\nexport const ImagesPropControllerDataV2Type = 'prop-controllers::images::v2'\n\nconst imagesPropControllerDataV2Schema = z.object({\n [ControlDataTypeKey]: z.literal(ImagesPropControllerDataV2Type),\n value: imagesPropControllerDataV1Schema,\n})\n\nexport type ImagesPropControllerDataV2 = z.infer<\n typeof imagesPropControllerDataV2Schema\n>\n\nexport const imagesPropControllerDataSchema = z.union([\n imagesPropControllerDataV0Schema,\n imagesPropControllerDataV1Schema,\n imagesPropControllerDataV2Schema,\n])\n\nexport type ImagesPropControllerData = z.infer<\n typeof imagesPropControllerDataSchema\n>\n\nexport type ImagesOptions = Options<{ preset?: ImagesPropControllerData }>\n\ntype ImagesDescriptorV0<_T = ImagesDataV0> = {\n type: typeof Types.Images\n options: ImagesOptions\n}\n\ntype ImagesDescriptorV1<_T = ImagesData> = {\n type: typeof Types.Images\n version: 1\n options: ImagesOptions\n}\n\ntype ImagesDescriptorV2<_T = ImagesPropControllerData> = {\n type: typeof Types.Images\n version: 2\n options: ImagesOptions\n}\n\nexport type ImagesDescriptor<_T = ImagesPropControllerData> =\n | ImagesDescriptorV0\n | ImagesDescriptorV1\n | ImagesDescriptorV2\n\nexport type ResolveImagesPropControllerValue<T extends ImagesDescriptor> =\n T extends ImagesDescriptor ? ImagesData | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Images(options: ImagesOptions = {}): ImagesDescriptorV2 {\n return { type: Types.Images, version: 2, options }\n}\n\nexport function getImagesPropControllerDataImagesData(\n data: ImagesPropControllerData | undefined,\n): ImagesData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: ImagesPropControllerDataV2Type },\n (v2) => v2.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createImagesPropControllerDataFromImagesData(\n data: ImagesData,\n definition: ImagesDescriptor,\n): ImagesPropControllerData {\n return match(definition)\n .with(\n { version: 2 },\n () =>\n ({\n [ControlDataTypeKey]: ImagesPropControllerDataV2Type,\n value: data,\n }) as const,\n )\n .otherwise(() => data)\n}\n\nexport function getImagesPropControllerFileIds(\n data: ImagesPropControllerData | undefined,\n): string[] {\n const value = getImagesPropControllerDataImagesData(data)\n\n return (\n value?.flatMap((item) =>\n match(item.props.file)\n .with(P.string, (f) => [f])\n .with({ type: 'makeswift-file', version: 1 }, (f) => [f.id])\n .with({ type: 'external-file', version: 1 }, () => [])\n .with(P.nullish, () => [])\n .otherwise(() => []),\n ) ?? []\n )\n}\n\nfunction copyImagesData(\n data: ImagesData | undefined,\n context: CopyContext,\n): ImagesData | undefined {\n if (data == null) return data\n\n return data.map(copyImagesPanelItem)\n\n function copyImagesPanelItem(\n imagesPanelItem: ImagesDataItem,\n ): ImagesDataItem {\n if ('version' in imagesPanelItem) {\n return {\n ...imagesPanelItem,\n props: {\n ...imagesPanelItem.props,\n file: match(imagesPanelItem.props.file)\n .with({ type: 'makeswift-file', version: 1 }, (f) => {\n if (shouldRemoveResource(ContextResource.File, f.id, context)) {\n return undefined\n }\n return {\n ...f,\n id: replaceResourceIfNeeded(\n ContextResource.File,\n f.id,\n context,\n ),\n }\n })\n .otherwise((f) => f),\n },\n }\n } else {\n return {\n ...imagesPanelItem,\n props: {\n ...imagesPanelItem.props,\n file: match(imagesPanelItem.props.file)\n .with(P.string, (f) => {\n if (shouldRemoveResource(ContextResource.File, f, context)) {\n return undefined\n }\n return replaceResourceIfNeeded(ContextResource.File, f, context)\n })\n .otherwise((f) => f),\n },\n }\n }\n }\n}\n\nexport function copyImagesPropControllerData(\n data: ImagesPropControllerData | undefined,\n context: CopyContext,\n): ImagesPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with({ [ControlDataTypeKey]: ImagesPropControllerDataV2Type }, (v1) => {\n const value = copyImagesData(v1.value, context)\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: ImagesPropControllerDataV2Type,\n value,\n } as const\n })\n .otherwise((v0) => copyImagesData(v0, context))\n}\n"],"mappings":"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","names":[]}
|
package/dist/cjs/index.js
CHANGED
@@ -17,8 +17,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
17
17
|
};
|
18
18
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
19
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
20
|
-
var
|
21
|
-
__export(
|
20
|
+
var index_exports = {};
|
21
|
+
__export(index_exports, {
|
22
22
|
Border: () => import_border.Border,
|
23
23
|
BorderPropControllerFormat: () => import_border.BorderPropControllerFormat,
|
24
24
|
BorderRadius: () => import_border_radius.BorderRadius,
|
@@ -156,16 +156,16 @@ __export(src_exports, {
|
|
156
156
|
videoPropControllerDataSchema: () => import_video.videoPropControllerDataSchema,
|
157
157
|
widthPropControllerDataSchema: () => import_width.widthPropControllerDataSchema
|
158
158
|
});
|
159
|
-
module.exports = __toCommonJS(
|
160
|
-
__reExport(
|
161
|
-
__reExport(
|
162
|
-
__reExport(
|
163
|
-
__reExport(
|
164
|
-
__reExport(
|
165
|
-
__reExport(
|
166
|
-
__reExport(
|
167
|
-
__reExport(
|
168
|
-
__reExport(
|
159
|
+
module.exports = __toCommonJS(index_exports);
|
160
|
+
__reExport(index_exports, require("./data"), module.exports);
|
161
|
+
__reExport(index_exports, require("./versioned"), module.exports);
|
162
|
+
__reExport(index_exports, require("./prop-controllers"), module.exports);
|
163
|
+
__reExport(index_exports, require("./gap-x"), module.exports);
|
164
|
+
__reExport(index_exports, require("./responsive-icon-radio-group"), module.exports);
|
165
|
+
__reExport(index_exports, require("./responsive-number"), module.exports);
|
166
|
+
__reExport(index_exports, require("./responsive-opacity"), module.exports);
|
167
|
+
__reExport(index_exports, require("./responsive-select"), module.exports);
|
168
|
+
__reExport(index_exports, require("./backgrounds"), module.exports);
|
169
169
|
var import_border = require("./border");
|
170
170
|
var import_border_radius = require("./border-radius");
|
171
171
|
var import_checkbox = require("./checkbox");
|
package/dist/cjs/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * from './data'\nexport * from './versioned'\nexport * from './prop-controllers'\nexport * from './gap-x'\nexport * from './responsive-icon-radio-group'\nexport * from './responsive-number'\nexport * from './responsive-opacity'\nexport * from './responsive-select'\nexport * from './backgrounds'\n\nexport {\n Border,\n BorderPropControllerFormat,\n borderPropControllerDataSchema,\n getBorderPropControllerDataResponsiveBorderData,\n getBorderPropControllerDataSwatchIds,\n createBorderPropControllerDataFromResponsiveBorderData,\n copyBorderPropControllerData,\n} from './border'\nexport type {\n ResolveBorderPropControllerValue,\n ResponsiveBorderData,\n BorderData,\n BorderSideData,\n BorderDescriptor,\n BorderPropControllerData,\n} from './border'\nexport {\n BorderRadius,\n BorderRadiusPropControllerFormat,\n borderRadiusPropControllerDataSchema,\n getBorderRadiusPropControllerDataResponsiveBorderRadiusData,\n createBorderRadiusPropControllerDataFromResponsiveBorderRadiusData,\n} from './border-radius'\nexport type {\n BorderRadiusPropControllerData,\n ResponsiveBorderRadiusData,\n ResolveBorderRadiusPropControllerValue,\n BorderRadiusDescriptor,\n} from './border-radius'\nexport {\n Checkbox,\n checkboxPropControllerDataSchema,\n getCheckboxPropControllerDataBoolean,\n createCheckboxPropControllerDataFromBoolean,\n} from './checkbox'\nexport type {\n CheckboxDescriptor,\n CheckboxOptions,\n CheckboxPropControllerData,\n ResolveCheckboxPropControllerValue,\n} from './checkbox'\nexport {\n Date,\n datePropControllerDataSchema,\n getDatePropControllerDataString,\n createDatePropControllerDataFromString,\n} from './date'\nexport type {\n DateDescriptor,\n DateOptions,\n DatePropControllerData,\n ResolveDatePropControllerValue,\n} from './date'\nexport {\n ElementID,\n elementIDPropControllerDataSchema,\n getElementIDPropControllerDataElementID,\n createElementIDPropControllerDataFromElementID,\n copyElementIDPropControllerData,\n} from './element-id'\nexport type {\n ElementIDDescriptor,\n ElementIDOptions,\n ElementIDPropControllerData,\n ResolveElementIDPropControllerValue,\n} from './element-id'\nexport {\n Font,\n fontPropControllerDataSchema,\n getFontPropControllerDataResponsiveFontData,\n createFontPropControllerDataFromResponsiveFontData,\n} from './font'\nexport type {\n ResolveFontPropControllerValue,\n ResponsiveFontData,\n FontDescriptor,\n FontPropControllerData,\n} from './font'\nexport {\n GapY,\n gapYPropControllerDataSchema,\n getGapYPropControllerDataResponsiveGapData,\n createGapYPropControllerDataFromResponsiveGapData,\n} from './gap-y'\nexport type {\n ResolveGapYPropControllerValue,\n GapYDescriptor,\n GapYPropControllerData,\n} from './gap-y'\nexport {\n Grid,\n gridPropControllerDataSchema,\n getGridPropControllerDataGridData,\n createGridPropControllerDataFromGridData,\n mergeGridPropControllerTranslatedData,\n getGridPropControllerElementChildren,\n copyGridPropControllerData,\n getGridPropControllerGetElementPath,\n} from './grid'\nexport type {\n GridData,\n GridDescriptor,\n GridOptions,\n GridPropControllerData,\n ResolveGridPropControllerValue,\n} from './grid'\nexport {\n Image,\n imagePropControllerDataSchema,\n getImagePropControllerDataImageData,\n createImagePropControllerDataFromImageData,\n getImagePropControllerFileIds,\n copyImagePropControllerData,\n} from './image'\nexport type {\n ImageDescriptor,\n ImageOptions,\n ImagePropControllerData,\n ResolveImagePropControllerValue,\n} from './image'\nexport {\n Images,\n imagesPropControllerDataSchema,\n getImagesPropControllerDataImagesData,\n createImagesPropControllerDataFromImagesData,\n getImagesPropControllerFileIds,\n copyImagesPropControllerData,\n} from './images'\nexport type {\n ImagesData,\n ImagesDataItem,\n ImagesDescriptor,\n ImagesOptions,\n ImagesPropControllerData,\n ResolveImagesPropControllerValue,\n} from './images'\nexport {\n Link,\n linkDataSchema,\n linkPropControllerDataSchema,\n getLinkPropControllerDataLinkData,\n createLinkPropControllerDataFromLinkData,\n getLinkPropControllerPageIds,\n copyLinkPropControllerData,\n} from './link'\nexport type {\n LinkData,\n LinkDescriptor,\n LinkPropControllerData,\n ResolveLinkPropControllerValue,\n} from './link'\nexport {\n Margin,\n MarginPropControllerFormat,\n marginPropControllerDataSchema,\n getMarginPropControllerDataResponsiveMarginData,\n createMarginPropControllerDataFromResponsiveMarginData,\n} from './margin'\nexport type {\n ResolveMarginPropControllerValue,\n ResponsiveMarginData,\n MarginSideData,\n MarginDescriptor,\n MarginPropControllerData,\n} from './margin'\nexport {\n NavigationLinks,\n navigationLinksPropControllerDataSchema,\n getNavigationLinksPropControllerDataNavigationLinksData,\n createNavigationLinksPropControllerDataFromNavigationLinksData,\n getNavigationLinksPropControllerPageIds,\n getNavigationLinksPropControllerSwatchIds,\n copyNavigationLinksPropControllerData,\n} from './navigation-links'\nexport type {\n NavigationButtonData,\n NavigationDropdownData,\n NavigationLinksData,\n ResolveNavigationLinksPropControllerValue,\n NavigationLinksDescriptor,\n NavigationLinksPropControllerData,\n} from './navigation-links'\nexport {\n Number,\n createNumberPropControllerDataFromNumber,\n getNumberPropControllerDataNumber,\n numberPropControllerDataSchema,\n} from './number'\nexport type {\n NumberDescriptor,\n NumberOptions,\n NumberPropControllerData,\n ResolveNumberPropControllerValue,\n} from './number'\nexport {\n Padding,\n PaddingPropControllerFormat,\n paddingPropControllerDataSchema,\n getPaddingPropControllerDataResponsivePaddingData,\n createPaddingPropControllerDataFromResponsivePaddingData,\n} from './padding'\nexport type {\n ResolvePaddingPropControllerValue,\n ResponsivePaddingData,\n PaddingSideData,\n PaddingDescriptor,\n PaddingPropControllerData,\n} from './padding'\nexport {\n ResponsiveColor,\n copyResponsiveColorPropControllerData,\n createResponsiveColorPropControllerDataFromResponsiveColorData,\n getResponsiveColorDataSwatchIds,\n getResponsiveColorPropControllerDataResponsiveColorData,\n getResponsiveColorPropControllerDataSwatchIds,\n responsiveColorPropControllerDataSchema,\n} from './responsive-color'\nexport type {\n ResponsiveColorData,\n ResponsiveColorDescriptor,\n ResponsiveColorOptions,\n ResponsiveColorPropControllerData,\n} from './responsive-color'\nexport {\n ResponsiveLength,\n ResponsiveLengthPropControllerDataV1Type,\n createResponsiveLengthPropControllerDataFromResponsiveLengthData,\n getResponsiveLengthPropControllerDataResponsiveLengthData,\n responsiveLengthPropControllerDataSchema,\n} from './responsive-length'\nexport type {\n ResolveResponsiveLengthPropControllerValue,\n ResponsiveLengthData,\n ResponsiveLengthDescriptor,\n ResponsiveLengthOptions,\n ResponsiveLengthPropControllerData,\n} from './responsive-length'\nexport {\n SocialLinks,\n socialLinksPropControllerDataSchema,\n getSocialLinkTypes,\n getSocialLinksPropControllerDataSocialLinksData,\n createSocialLinksPropControllerDataFromSocialLinksData,\n} from './social-links'\nexport type {\n SocialLinksData,\n ResolveSocialLinksPropControllerValue,\n SocialLinksDescriptor,\n SocialLinksPropControllerData,\n} from './social-links'\nexport {\n Shadows,\n copyShadowsPropControllerData,\n createShadowsPropControllerDataFromResponsiveShadowsData,\n getShadowsPropControllerDataResponsiveShadowsData,\n getShadowsPropControllerDataSwatchIds,\n shadowsPropControllerDataSchema,\n} from './shadows'\nexport type {\n ResolveShadowsPropControllerValue,\n ShadowData,\n ShadowsData,\n ShadowsDescriptor,\n ShadowsPropControllerData,\n} from './shadows'\nexport {\n Table,\n tablePropControllerDataSchema,\n getTablePropControllerDataTableId,\n createTablePropControllerDataFromTableId,\n copyTablePropControllerData,\n getTablePropControllerDataTableIds,\n} from './table'\nexport type {\n TableDescriptor,\n TableOptions,\n TablePropControllerData,\n ResolveTablePropControllerValue,\n} from './table'\nexport {\n TableFormFields,\n tableFormFieldsPropControllerDataSchema,\n getTableFormFieldsPropControllerDataTableFormFieldsData,\n createTableFormFieldsPropControllerDataFromTableFormFieldsData,\n copyTableFormFieldsPropControllerData,\n} from './table-form-fields'\nexport type {\n TableFormFieldsData,\n TableFormFieldsDescriptor,\n TableFormFieldsOptions,\n TableFormFieldsPropControllerData,\n ResolveTableFormFieldsPropControllerValue,\n} from './table-form-fields'\nexport {\n TextArea,\n textAreaPropControllerDataSchema,\n getTextAreaPropControllerDataString,\n createTextAreaPropControllerDataFromString,\n} from './text-area'\nexport type {\n TextAreaDescriptor,\n TextAreaOptions,\n TextAreaPropControllerData,\n ResolveTextAreaPropControllerValue,\n} from './text-area'\nexport {\n TextInput,\n textInputPropControllerDataSchema,\n getTextInputPropControllerDataString,\n createTextInputPropControllerDataFromString,\n} from './text-input'\nexport type {\n TextInputDescriptor,\n TextInputOptions,\n TextInputPropControllerData,\n ResolveTextInputPropControllerValue,\n} from './text-input'\nexport {\n TextStyle,\n textStylePropControllerDataSchema,\n getTextStylePropControllerDataResponsiveTextStyleData,\n createTextStylePropControllerDataFromResponsiveTextStyleData,\n} from './text-style'\nexport type {\n TextStyleData,\n ResolveTextStylePropControllerValue,\n ResponsiveTextStyleData,\n TextStyleDescriptor,\n TextStylePropControllerData,\n} from './text-style'\nexport {\n Width,\n WidthPropControllerFormat,\n widthPropControllerDataSchema,\n getWidthPropControllerDataResponsiveLengthData,\n createWidthPropControllerDataFromResponsiveLengthData,\n} from './width'\nexport type {\n ResolveWidthPropControllerValue,\n WidthDescriptor,\n WidthPropControllerData,\n} from './width'\nexport {\n Video,\n videoPropControllerDataSchema,\n getVideoPropControllerDataVideoData,\n createVideoPropControllerDataFromVideoData,\n} from './video'\nexport type {\n ResolveVideoPropControllerValue,\n VideoData,\n VideoDescriptor,\n VideoPropControllerData,\n} from './video'\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAc,mBAAd;AACA,wBAAc,wBADd;AAEA,wBAAc,+BAFd;AAGA,wBAAc,oBAHd;AAIA,wBAAc,0CAJd;AAKA,wBAAc,gCALd;AAMA,wBAAc,iCANd;AAOA,wBAAc,gCAPd;AAQA,wBAAc,0BARd;AAUA,oBAQO;AASP,2BAMO;AAOP,sBAKO;AAOP,kBAKO;AAOP,wBAMO;AAOP,kBAKO;AAOP,mBAKO;AAMP,kBASO;AAQP,mBAOO;AAOP,oBAOO;AASP,kBAQO;AAOP,oBAMO;AAQP,8BAQO;AASP,oBAKO;AAOP,qBAMO;AAQP,8BAQO;AAOP,+BAMO;AAQP,0BAMO;AAOP,qBAOO;AAQP,mBAOO;AAOP,+BAMO;AAQP,uBAKO;AAOP,wBAKO;AAOP,wBAKO;AAQP,mBAMO;AAMP,mBAKO;","names":[]}
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * from './data'\nexport * from './versioned'\nexport * from './prop-controllers'\nexport * from './gap-x'\nexport * from './responsive-icon-radio-group'\nexport * from './responsive-number'\nexport * from './responsive-opacity'\nexport * from './responsive-select'\nexport * from './backgrounds'\n\nexport {\n Border,\n BorderPropControllerFormat,\n borderPropControllerDataSchema,\n getBorderPropControllerDataResponsiveBorderData,\n getBorderPropControllerDataSwatchIds,\n createBorderPropControllerDataFromResponsiveBorderData,\n copyBorderPropControllerData,\n} from './border'\nexport type {\n ResolveBorderPropControllerValue,\n ResponsiveBorderData,\n BorderData,\n BorderSideData,\n BorderDescriptor,\n BorderPropControllerData,\n} from './border'\nexport {\n BorderRadius,\n BorderRadiusPropControllerFormat,\n borderRadiusPropControllerDataSchema,\n getBorderRadiusPropControllerDataResponsiveBorderRadiusData,\n createBorderRadiusPropControllerDataFromResponsiveBorderRadiusData,\n} from './border-radius'\nexport type {\n BorderRadiusPropControllerData,\n ResponsiveBorderRadiusData,\n ResolveBorderRadiusPropControllerValue,\n BorderRadiusDescriptor,\n} from './border-radius'\nexport {\n Checkbox,\n checkboxPropControllerDataSchema,\n getCheckboxPropControllerDataBoolean,\n createCheckboxPropControllerDataFromBoolean,\n} from './checkbox'\nexport type {\n CheckboxDescriptor,\n CheckboxOptions,\n CheckboxPropControllerData,\n ResolveCheckboxPropControllerValue,\n} from './checkbox'\nexport {\n Date,\n datePropControllerDataSchema,\n getDatePropControllerDataString,\n createDatePropControllerDataFromString,\n} from './date'\nexport type {\n DateDescriptor,\n DateOptions,\n DatePropControllerData,\n ResolveDatePropControllerValue,\n} from './date'\nexport {\n ElementID,\n elementIDPropControllerDataSchema,\n getElementIDPropControllerDataElementID,\n createElementIDPropControllerDataFromElementID,\n copyElementIDPropControllerData,\n} from './element-id'\nexport type {\n ElementIDDescriptor,\n ElementIDOptions,\n ElementIDPropControllerData,\n ResolveElementIDPropControllerValue,\n} from './element-id'\nexport {\n Font,\n fontPropControllerDataSchema,\n getFontPropControllerDataResponsiveFontData,\n createFontPropControllerDataFromResponsiveFontData,\n} from './font'\nexport type {\n ResolveFontPropControllerValue,\n ResponsiveFontData,\n FontDescriptor,\n FontPropControllerData,\n} from './font'\nexport {\n GapY,\n gapYPropControllerDataSchema,\n getGapYPropControllerDataResponsiveGapData,\n createGapYPropControllerDataFromResponsiveGapData,\n} from './gap-y'\nexport type {\n ResolveGapYPropControllerValue,\n GapYDescriptor,\n GapYPropControllerData,\n} from './gap-y'\nexport {\n Grid,\n gridPropControllerDataSchema,\n getGridPropControllerDataGridData,\n createGridPropControllerDataFromGridData,\n mergeGridPropControllerTranslatedData,\n getGridPropControllerElementChildren,\n copyGridPropControllerData,\n getGridPropControllerGetElementPath,\n} from './grid'\nexport type {\n GridData,\n GridDescriptor,\n GridOptions,\n GridPropControllerData,\n ResolveGridPropControllerValue,\n} from './grid'\nexport {\n Image,\n imagePropControllerDataSchema,\n getImagePropControllerDataImageData,\n createImagePropControllerDataFromImageData,\n getImagePropControllerFileIds,\n copyImagePropControllerData,\n} from './image'\nexport type {\n ImageDescriptor,\n ImageOptions,\n ImagePropControllerData,\n ResolveImagePropControllerValue,\n} from './image'\nexport {\n Images,\n imagesPropControllerDataSchema,\n getImagesPropControllerDataImagesData,\n createImagesPropControllerDataFromImagesData,\n getImagesPropControllerFileIds,\n copyImagesPropControllerData,\n} from './images'\nexport type {\n ImagesData,\n ImagesDataItem,\n ImagesDescriptor,\n ImagesOptions,\n ImagesPropControllerData,\n ResolveImagesPropControllerValue,\n} from './images'\nexport {\n Link,\n linkDataSchema,\n linkPropControllerDataSchema,\n getLinkPropControllerDataLinkData,\n createLinkPropControllerDataFromLinkData,\n getLinkPropControllerPageIds,\n copyLinkPropControllerData,\n} from './link'\nexport type {\n LinkData,\n LinkDescriptor,\n LinkPropControllerData,\n ResolveLinkPropControllerValue,\n} from './link'\nexport {\n Margin,\n MarginPropControllerFormat,\n marginPropControllerDataSchema,\n getMarginPropControllerDataResponsiveMarginData,\n createMarginPropControllerDataFromResponsiveMarginData,\n} from './margin'\nexport type {\n ResolveMarginPropControllerValue,\n ResponsiveMarginData,\n MarginSideData,\n MarginDescriptor,\n MarginPropControllerData,\n} from './margin'\nexport {\n NavigationLinks,\n navigationLinksPropControllerDataSchema,\n getNavigationLinksPropControllerDataNavigationLinksData,\n createNavigationLinksPropControllerDataFromNavigationLinksData,\n getNavigationLinksPropControllerPageIds,\n getNavigationLinksPropControllerSwatchIds,\n copyNavigationLinksPropControllerData,\n} from './navigation-links'\nexport type {\n NavigationButtonData,\n NavigationDropdownData,\n NavigationLinksData,\n ResolveNavigationLinksPropControllerValue,\n NavigationLinksDescriptor,\n NavigationLinksPropControllerData,\n} from './navigation-links'\nexport {\n Number,\n createNumberPropControllerDataFromNumber,\n getNumberPropControllerDataNumber,\n numberPropControllerDataSchema,\n} from './number'\nexport type {\n NumberDescriptor,\n NumberOptions,\n NumberPropControllerData,\n ResolveNumberPropControllerValue,\n} from './number'\nexport {\n Padding,\n PaddingPropControllerFormat,\n paddingPropControllerDataSchema,\n getPaddingPropControllerDataResponsivePaddingData,\n createPaddingPropControllerDataFromResponsivePaddingData,\n} from './padding'\nexport type {\n ResolvePaddingPropControllerValue,\n ResponsivePaddingData,\n PaddingSideData,\n PaddingDescriptor,\n PaddingPropControllerData,\n} from './padding'\nexport {\n ResponsiveColor,\n copyResponsiveColorPropControllerData,\n createResponsiveColorPropControllerDataFromResponsiveColorData,\n getResponsiveColorDataSwatchIds,\n getResponsiveColorPropControllerDataResponsiveColorData,\n getResponsiveColorPropControllerDataSwatchIds,\n responsiveColorPropControllerDataSchema,\n} from './responsive-color'\nexport type {\n ResponsiveColorData,\n ResponsiveColorDescriptor,\n ResponsiveColorOptions,\n ResponsiveColorPropControllerData,\n} from './responsive-color'\nexport {\n ResponsiveLength,\n ResponsiveLengthPropControllerDataV1Type,\n createResponsiveLengthPropControllerDataFromResponsiveLengthData,\n getResponsiveLengthPropControllerDataResponsiveLengthData,\n responsiveLengthPropControllerDataSchema,\n} from './responsive-length'\nexport type {\n ResolveResponsiveLengthPropControllerValue,\n ResponsiveLengthData,\n ResponsiveLengthDescriptor,\n ResponsiveLengthOptions,\n ResponsiveLengthPropControllerData,\n} from './responsive-length'\nexport {\n SocialLinks,\n socialLinksPropControllerDataSchema,\n getSocialLinkTypes,\n getSocialLinksPropControllerDataSocialLinksData,\n createSocialLinksPropControllerDataFromSocialLinksData,\n} from './social-links'\nexport type {\n SocialLinksData,\n ResolveSocialLinksPropControllerValue,\n SocialLinksDescriptor,\n SocialLinksPropControllerData,\n} from './social-links'\nexport {\n Shadows,\n copyShadowsPropControllerData,\n createShadowsPropControllerDataFromResponsiveShadowsData,\n getShadowsPropControllerDataResponsiveShadowsData,\n getShadowsPropControllerDataSwatchIds,\n shadowsPropControllerDataSchema,\n} from './shadows'\nexport type {\n ResolveShadowsPropControllerValue,\n ShadowData,\n ShadowsData,\n ShadowsDescriptor,\n ShadowsPropControllerData,\n} from './shadows'\nexport {\n Table,\n tablePropControllerDataSchema,\n getTablePropControllerDataTableId,\n createTablePropControllerDataFromTableId,\n copyTablePropControllerData,\n getTablePropControllerDataTableIds,\n} from './table'\nexport type {\n TableDescriptor,\n TableOptions,\n TablePropControllerData,\n ResolveTablePropControllerValue,\n} from './table'\nexport {\n TableFormFields,\n tableFormFieldsPropControllerDataSchema,\n getTableFormFieldsPropControllerDataTableFormFieldsData,\n createTableFormFieldsPropControllerDataFromTableFormFieldsData,\n copyTableFormFieldsPropControllerData,\n} from './table-form-fields'\nexport type {\n TableFormFieldsData,\n TableFormFieldsDescriptor,\n TableFormFieldsOptions,\n TableFormFieldsPropControllerData,\n ResolveTableFormFieldsPropControllerValue,\n} from './table-form-fields'\nexport {\n TextArea,\n textAreaPropControllerDataSchema,\n getTextAreaPropControllerDataString,\n createTextAreaPropControllerDataFromString,\n} from './text-area'\nexport type {\n TextAreaDescriptor,\n TextAreaOptions,\n TextAreaPropControllerData,\n ResolveTextAreaPropControllerValue,\n} from './text-area'\nexport {\n TextInput,\n textInputPropControllerDataSchema,\n getTextInputPropControllerDataString,\n createTextInputPropControllerDataFromString,\n} from './text-input'\nexport type {\n TextInputDescriptor,\n TextInputOptions,\n TextInputPropControllerData,\n ResolveTextInputPropControllerValue,\n} from './text-input'\nexport {\n TextStyle,\n textStylePropControllerDataSchema,\n getTextStylePropControllerDataResponsiveTextStyleData,\n createTextStylePropControllerDataFromResponsiveTextStyleData,\n} from './text-style'\nexport type {\n TextStyleData,\n ResolveTextStylePropControllerValue,\n ResponsiveTextStyleData,\n TextStyleDescriptor,\n TextStylePropControllerData,\n} from './text-style'\nexport {\n Width,\n WidthPropControllerFormat,\n widthPropControllerDataSchema,\n getWidthPropControllerDataResponsiveLengthData,\n createWidthPropControllerDataFromResponsiveLengthData,\n} from './width'\nexport type {\n ResolveWidthPropControllerValue,\n WidthDescriptor,\n WidthPropControllerData,\n} from './width'\nexport {\n Video,\n videoPropControllerDataSchema,\n getVideoPropControllerDataVideoData,\n createVideoPropControllerDataFromVideoData,\n} from './video'\nexport type {\n ResolveVideoPropControllerValue,\n VideoData,\n VideoDescriptor,\n VideoPropControllerData,\n} from './video'\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAc,mBAAd;AACA,0BAAc,wBADd;AAEA,0BAAc,+BAFd;AAGA,0BAAc,oBAHd;AAIA,0BAAc,0CAJd;AAKA,0BAAc,gCALd;AAMA,0BAAc,iCANd;AAOA,0BAAc,gCAPd;AAQA,0BAAc,0BARd;AAUA,oBAQO;AASP,2BAMO;AAOP,sBAKO;AAOP,kBAKO;AAOP,wBAMO;AAOP,kBAKO;AAOP,mBAKO;AAMP,kBASO;AAQP,mBAOO;AAOP,oBAOO;AASP,kBAQO;AAOP,oBAMO;AAQP,8BAQO;AASP,oBAKO;AAOP,qBAMO;AAQP,8BAQO;AAOP,+BAMO;AAQP,0BAMO;AAOP,qBAOO;AAQP,mBAOO;AAOP,+BAMO;AAQP,uBAKO;AAOP,wBAKO;AAOP,wBAKO;AAQP,mBAMO;AAMP,mBAKO;","names":[]}
|
package/dist/cjs/link/link.js
CHANGED
@@ -63,8 +63,7 @@ function createLinkPropControllerDataFromLinkData(value, definition) {
|
|
63
63
|
).otherwise(() => value);
|
64
64
|
}
|
65
65
|
function getLinkPropControllerPageIds(linkData) {
|
66
|
-
if (linkData == null)
|
67
|
-
return [];
|
66
|
+
if (linkData == null) return [];
|
68
67
|
const link = getLinkPropControllerDataLinkData(linkData);
|
69
68
|
switch (link.type) {
|
70
69
|
case "OPEN_PAGE":
|
@@ -85,8 +84,7 @@ function copyLinkData(data, ctx) {
|
|
85
84
|
case "OPEN_PAGE":
|
86
85
|
{
|
87
86
|
const pageId = value.payload.pageId;
|
88
|
-
if (pageId == null)
|
89
|
-
return value;
|
87
|
+
if (pageId == null) return value;
|
90
88
|
value = {
|
91
89
|
...value,
|
92
90
|
payload: { ...value.payload, pageId: replacePageId(pageId) }
|
@@ -95,8 +93,7 @@ function copyLinkData(data, ctx) {
|
|
95
93
|
break;
|
96
94
|
case "SCROLL_TO_ELEMENT": {
|
97
95
|
const elementIdConfig = value.payload.elementIdConfig;
|
98
|
-
if (elementIdConfig == null)
|
99
|
-
return value;
|
96
|
+
if (elementIdConfig == null) return value;
|
100
97
|
value = {
|
101
98
|
...value,
|
102
99
|
payload: {
|
@@ -115,11 +112,9 @@ function copyLinkData(data, ctx) {
|
|
115
112
|
return value;
|
116
113
|
}
|
117
114
|
function copyLinkPropControllerData(data, context) {
|
118
|
-
if (data == null)
|
119
|
-
return data;
|
115
|
+
if (data == null) return data;
|
120
116
|
const value = copyLinkData(getLinkPropControllerDataLinkData(data), context);
|
121
|
-
if (value == null)
|
122
|
-
return value;
|
117
|
+
if (value == null) return value;
|
123
118
|
return (0, import_ts_pattern.match)(data).with({ [import_prop_controllers.ControlDataTypeKey]: LinkPropControllerDataV1Type }, (v1) => ({
|
124
119
|
...v1,
|
125
120
|
value
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/link/link.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\n\nimport {\n LinkDefinition,\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\n\nimport { z } from 'zod'\n\nexport const linkDataSchema = LinkDefinition.schema.link\n\nexport type LinkData = z.infer<typeof linkDataSchema>\n\nconst linkPropControllerDataV0Schema = linkDataSchema\n\nexport type LinkPropControllerDataV0 = z.infer<\n typeof linkPropControllerDataV0Schema\n>\n\nexport const LinkPropControllerDataV1Type = 'prop-controllers::link::v1'\nconst linkPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(LinkPropControllerDataV1Type),\n value: linkDataSchema,\n})\n\nexport type LinkPropControllerDataV1 = z.infer<\n typeof linkPropControllerDataV1Schema\n>\n\nexport const linkPropControllerDataSchema = z.union([\n linkPropControllerDataV0Schema,\n linkPropControllerDataV1Schema,\n])\n\nexport type LinkPropControllerData = z.infer<\n typeof linkPropControllerDataSchema\n>\n\ntype LinkOptions = Options<{\n preset?: LinkPropControllerData\n label?: string\n defaultValue?: LinkData\n options?: { value: LinkData['type']; label: string }[]\n hidden?: boolean\n}>\n\ntype LinkDescriptorV0<\n _T = LinkPropControllerDataV0,\n U extends LinkOptions = LinkOptions,\n> = {\n type: typeof Types.Link\n options: U\n}\n\ntype LinkDescriptorV1<\n _T = LinkPropControllerData,\n U extends LinkOptions = LinkOptions,\n> = {\n type: typeof Types.Link\n version: 1\n options: U\n}\n\nexport type LinkDescriptor<\n _T = LinkPropControllerData,\n U extends LinkOptions = LinkOptions,\n> = LinkDescriptorV0<_T, U> | LinkDescriptorV1<_T, U>\n\nexport type ResolveLinkPropControllerValue<T extends LinkDescriptor> =\n T extends LinkDescriptor ? LinkData | undefined : never\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function Link(options: LinkOptions = {}): LinkDescriptor {\n return { type: Types.Link, version: 1, options }\n}\n\nexport function getLinkPropControllerDataLinkData(\n data: LinkPropControllerData,\n): LinkData {\n return match(data)\n .with(\n { [ControlDataTypeKey]: LinkPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createLinkPropControllerDataFromLinkData(\n value: LinkData,\n definition: LinkDescriptor,\n): LinkPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n () =>\n ({\n [ControlDataTypeKey]: LinkPropControllerDataV1Type,\n value,\n }) as const,\n )\n .otherwise(() => value)\n}\n\nexport function getLinkPropControllerPageIds(\n linkData: LinkPropControllerData | null | undefined,\n): string[] {\n if (linkData == null) return []\n\n const link = getLinkPropControllerDataLinkData(linkData)\n\n switch (link.type) {\n case 'OPEN_PAGE':\n return link.payload.pageId == null ? [] : [link.payload.pageId]\n\n default:\n return []\n }\n}\n\nexport function copyLinkData(\n data: LinkData | undefined,\n ctx: CopyContext,\n): LinkData | undefined {\n let value = data\n\n function replacePageId(pageId: string): string | undefined {\n if (shouldRemoveResource(ContextResource.Page, pageId, ctx)) {\n return undefined\n }\n return replaceResourceIfNeeded(ContextResource.Page, pageId, ctx)\n }\n\n switch (value?.type) {\n case 'OPEN_PAGE':\n {\n const pageId = value.payload.pageId\n\n if (pageId == null) return value\n\n value = {\n ...value,\n payload: { ...value.payload, pageId: replacePageId(pageId) },\n }\n }\n break\n\n case 'SCROLL_TO_ELEMENT': {\n const elementIdConfig = value.payload.elementIdConfig\n\n if (elementIdConfig == null) return value\n\n value = {\n ...value,\n payload: {\n ...value.payload,\n elementIdConfig: {\n ...elementIdConfig,\n elementKey:\n ctx.replacementContext.elementKeys.get(\n elementIdConfig.elementKey,\n ) ?? elementIdConfig.elementKey,\n },\n },\n }\n break\n }\n }\n\n return value\n}\n\nexport function copyLinkPropControllerData(\n data: LinkPropControllerData | undefined,\n context: CopyContext,\n): LinkPropControllerData | undefined {\n if (data == null) return data\n\n const value = copyLinkData(getLinkPropControllerDataLinkData(data), context)\n\n if (value == null) return value\n\n return match(data)\n .with({ [ControlDataTypeKey]: LinkPropControllerDataV1Type }, (v1) => ({\n ...v1,\n value,\n }))\n .otherwise((_) => value)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAsB;AACtB,8BAKO;AAEP,sBAKO;AAEP,iBAAkB;AAEX,MAAM,iBAAiB,+BAAe,OAAO;AAIpD,MAAM,iCAAiC;AAMhC,MAAM,+BAA+B;AAC5C,MAAM,iCAAiC,aAAE,OAAO;AAAA,EAC9C,CAAC,0CAAkB,GAAG,aAAE,QAAQ,4BAA4B;AAAA,EAC5D,OAAO;AACT,CAAC;AAMM,MAAM,+BAA+B,aAAE,MAAM;AAAA,EAClD;AAAA,EACA;AACF,CAAC;AA2CM,SAAS,KAAK,UAAuB,CAAC,GAAmB;AAC9D,SAAO,EAAE,MAAM,8BAAM,MAAM,SAAS,GAAG,QAAQ;AACjD;AAEO,SAAS,kCACd,MACU;AACV,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,6BAA6B;AAAA,IACrD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,yCACd,OACA,YACwB;AACxB,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,EACJ,EACC,UAAU,MAAM,KAAK;AAC1B;AAEO,SAAS,6BACd,UACU;AACV,MAAI,YAAY
|
1
|
+
{"version":3,"sources":["../../../src/link/link.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\n\nimport {\n LinkDefinition,\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\n\nimport { z } from 'zod'\n\nexport const linkDataSchema = LinkDefinition.schema.link\n\nexport type LinkData = z.infer<typeof linkDataSchema>\n\nconst linkPropControllerDataV0Schema = linkDataSchema\n\nexport type LinkPropControllerDataV0 = z.infer<\n typeof linkPropControllerDataV0Schema\n>\n\nexport const LinkPropControllerDataV1Type = 'prop-controllers::link::v1'\nconst linkPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(LinkPropControllerDataV1Type),\n value: linkDataSchema,\n})\n\nexport type LinkPropControllerDataV1 = z.infer<\n typeof linkPropControllerDataV1Schema\n>\n\nexport const linkPropControllerDataSchema = z.union([\n linkPropControllerDataV0Schema,\n linkPropControllerDataV1Schema,\n])\n\nexport type LinkPropControllerData = z.infer<\n typeof linkPropControllerDataSchema\n>\n\ntype LinkOptions = Options<{\n preset?: LinkPropControllerData\n label?: string\n defaultValue?: LinkData\n options?: { value: LinkData['type']; label: string }[]\n hidden?: boolean\n}>\n\ntype LinkDescriptorV0<\n _T = LinkPropControllerDataV0,\n U extends LinkOptions = LinkOptions,\n> = {\n type: typeof Types.Link\n options: U\n}\n\ntype LinkDescriptorV1<\n _T = LinkPropControllerData,\n U extends LinkOptions = LinkOptions,\n> = {\n type: typeof Types.Link\n version: 1\n options: U\n}\n\nexport type LinkDescriptor<\n _T = LinkPropControllerData,\n U extends LinkOptions = LinkOptions,\n> = LinkDescriptorV0<_T, U> | LinkDescriptorV1<_T, U>\n\nexport type ResolveLinkPropControllerValue<T extends LinkDescriptor> =\n T extends LinkDescriptor ? LinkData | undefined : never\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function Link(options: LinkOptions = {}): LinkDescriptor {\n return { type: Types.Link, version: 1, options }\n}\n\nexport function getLinkPropControllerDataLinkData(\n data: LinkPropControllerData,\n): LinkData {\n return match(data)\n .with(\n { [ControlDataTypeKey]: LinkPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createLinkPropControllerDataFromLinkData(\n value: LinkData,\n definition: LinkDescriptor,\n): LinkPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n () =>\n ({\n [ControlDataTypeKey]: LinkPropControllerDataV1Type,\n value,\n }) as const,\n )\n .otherwise(() => value)\n}\n\nexport function getLinkPropControllerPageIds(\n linkData: LinkPropControllerData | null | undefined,\n): string[] {\n if (linkData == null) return []\n\n const link = getLinkPropControllerDataLinkData(linkData)\n\n switch (link.type) {\n case 'OPEN_PAGE':\n return link.payload.pageId == null ? [] : [link.payload.pageId]\n\n default:\n return []\n }\n}\n\nexport function copyLinkData(\n data: LinkData | undefined,\n ctx: CopyContext,\n): LinkData | undefined {\n let value = data\n\n function replacePageId(pageId: string): string | undefined {\n if (shouldRemoveResource(ContextResource.Page, pageId, ctx)) {\n return undefined\n }\n return replaceResourceIfNeeded(ContextResource.Page, pageId, ctx)\n }\n\n switch (value?.type) {\n case 'OPEN_PAGE':\n {\n const pageId = value.payload.pageId\n\n if (pageId == null) return value\n\n value = {\n ...value,\n payload: { ...value.payload, pageId: replacePageId(pageId) },\n }\n }\n break\n\n case 'SCROLL_TO_ELEMENT': {\n const elementIdConfig = value.payload.elementIdConfig\n\n if (elementIdConfig == null) return value\n\n value = {\n ...value,\n payload: {\n ...value.payload,\n elementIdConfig: {\n ...elementIdConfig,\n elementKey:\n ctx.replacementContext.elementKeys.get(\n elementIdConfig.elementKey,\n ) ?? elementIdConfig.elementKey,\n },\n },\n }\n break\n }\n }\n\n return value\n}\n\nexport function copyLinkPropControllerData(\n data: LinkPropControllerData | undefined,\n context: CopyContext,\n): LinkPropControllerData | undefined {\n if (data == null) return data\n\n const value = copyLinkData(getLinkPropControllerDataLinkData(data), context)\n\n if (value == null) return value\n\n return match(data)\n .with({ [ControlDataTypeKey]: LinkPropControllerDataV1Type }, (v1) => ({\n ...v1,\n value,\n }))\n .otherwise((_) => value)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAsB;AACtB,8BAKO;AAEP,sBAKO;AAEP,iBAAkB;AAEX,MAAM,iBAAiB,+BAAe,OAAO;AAIpD,MAAM,iCAAiC;AAMhC,MAAM,+BAA+B;AAC5C,MAAM,iCAAiC,aAAE,OAAO;AAAA,EAC9C,CAAC,0CAAkB,GAAG,aAAE,QAAQ,4BAA4B;AAAA,EAC5D,OAAO;AACT,CAAC;AAMM,MAAM,+BAA+B,aAAE,MAAM;AAAA,EAClD;AAAA,EACA;AACF,CAAC;AA2CM,SAAS,KAAK,UAAuB,CAAC,GAAmB;AAC9D,SAAO,EAAE,MAAM,8BAAM,MAAM,SAAS,GAAG,QAAQ;AACjD;AAEO,SAAS,kCACd,MACU;AACV,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,6BAA6B;AAAA,IACrD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,yCACd,OACA,YACwB;AACxB,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,EACJ,EACC,UAAU,MAAM,KAAK;AAC1B;AAEO,SAAS,6BACd,UACU;AACV,MAAI,YAAY,KAAM,QAAO,CAAC;AAE9B,QAAM,OAAO,kCAAkC,QAAQ;AAEvD,UAAQ,KAAK,MAAM;AAAA,IACjB,KAAK;AACH,aAAO,KAAK,QAAQ,UAAU,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,MAAM;AAAA,IAEhE;AACE,aAAO,CAAC;AAAA,EACZ;AACF;AAEO,SAAS,aACd,MACA,KACsB;AACtB,MAAI,QAAQ;AAEZ,WAAS,cAAc,QAAoC;AACzD,YAAI,sCAAqB,gCAAgB,MAAM,QAAQ,GAAG,GAAG;AAC3D,aAAO;AAAA,IACT;AACA,eAAO,yCAAwB,gCAAgB,MAAM,QAAQ,GAAG;AAAA,EAClE;AAEA,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AACH;AACE,cAAM,SAAS,MAAM,QAAQ;AAE7B,YAAI,UAAU,KAAM,QAAO;AAE3B,gBAAQ;AAAA,UACN,GAAG;AAAA,UACH,SAAS,EAAE,GAAG,MAAM,SAAS,QAAQ,cAAc,MAAM,EAAE;AAAA,QAC7D;AAAA,MACF;AACA;AAAA,IAEF,KAAK,qBAAqB;AACxB,YAAM,kBAAkB,MAAM,QAAQ;AAEtC,UAAI,mBAAmB,KAAM,QAAO;AAEpC,cAAQ;AAAA,QACN,GAAG;AAAA,QACH,SAAS;AAAA,UACP,GAAG,MAAM;AAAA,UACT,iBAAiB;AAAA,YACf,GAAG;AAAA,YACH,YACE,IAAI,mBAAmB,YAAY;AAAA,cACjC,gBAAgB;AAAA,YAClB,KAAK,gBAAgB;AAAA,UACzB;AAAA,QACF;AAAA,MACF;AACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,2BACd,MACA,SACoC;AACpC,MAAI,QAAQ,KAAM,QAAO;AAEzB,QAAM,QAAQ,aAAa,kCAAkC,IAAI,GAAG,OAAO;AAE3E,MAAI,SAAS,KAAM,QAAO;AAE1B,aAAO,yBAAM,IAAI,EACd,KAAK,EAAE,CAAC,0CAAkB,GAAG,6BAA6B,GAAG,CAAC,QAAQ;AAAA,IACrE,GAAG;AAAA,IACH;AAAA,EACF,EAAE,EACD,UAAU,CAAC,MAAM,KAAK;AAC3B;","names":[]}
|
@@ -122,14 +122,12 @@ function createNavigationLinksPropControllerDataFromNavigationLinksData(navigati
|
|
122
122
|
).otherwise(() => navigationLinksData);
|
123
123
|
}
|
124
124
|
function getNavigationLinksPropControllerPageIds(data) {
|
125
|
-
if (data == null)
|
126
|
-
return [];
|
125
|
+
if (data == null) return [];
|
127
126
|
const value = getNavigationLinksPropControllerDataNavigationLinksData(data);
|
128
127
|
return value?.flatMap((item) => {
|
129
128
|
switch (item.type) {
|
130
129
|
case "button": {
|
131
|
-
if (item.payload.link == null)
|
132
|
-
return [];
|
130
|
+
if (item.payload.link == null) return [];
|
133
131
|
switch (item.payload.link.type) {
|
134
132
|
case "OPEN_PAGE":
|
135
133
|
return item.payload.link.payload.pageId == null ? [] : [item.payload.link.payload.pageId];
|
@@ -139,8 +137,7 @@ function getNavigationLinksPropControllerPageIds(data) {
|
|
139
137
|
}
|
140
138
|
case "dropdown": {
|
141
139
|
return item.payload.links?.flatMap((link) => {
|
142
|
-
if (link.payload.link == null)
|
143
|
-
return [];
|
140
|
+
if (link.payload.link == null) return [];
|
144
141
|
switch (link.payload.link.type) {
|
145
142
|
case "OPEN_PAGE":
|
146
143
|
return link.payload.link.payload.pageId == null ? [] : [link.payload.link.payload.pageId];
|
@@ -153,8 +150,7 @@ function getNavigationLinksPropControllerPageIds(data) {
|
|
153
150
|
}) ?? [];
|
154
151
|
}
|
155
152
|
function getNavigationLinksPropControllerSwatchIds(data) {
|
156
|
-
if (data == null)
|
157
|
-
return [];
|
153
|
+
if (data == null) return [];
|
158
154
|
const value = getNavigationLinksPropControllerDataNavigationLinksData(data);
|
159
155
|
return value?.flatMap((item) => {
|
160
156
|
switch (item.type) {
|