@spiffcommerce/theme-bridge 1.25.4-alpha.3 → 1.27.0
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/configurationTypes-6D808idm.js.map +1 -1
- package/dist/configurationTypes-Bt8NVGKp.cjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +40 -14
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/plugin.cjs +1 -1
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.js +6 -6
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configurationTypes-6D808idm.js","sources":["../src/configurationTypes.ts"],"sourcesContent":["export interface ThemeConfigurationFile {\n /**\n * Information the theme loader needs in order to launch your theme.\n */\n launchData: ThemeConfigurationLaunchData;\n /**\n * An object that describes information that's configurable by a Partner when they install your theme.\n */\n configurationSchema?: ThemeConfigurationSchema;\n}\n\nexport enum ThemeFileType {\n Javascript = \"Javascript\",\n CSS = \"CSS\",\n}\n\nexport interface ThemeConfigurationLaunchData {\n /**\n * Files that will be loaded when launching the theme.\n */\n targetFiles: ThemeConfigurationLaunchDataTargetFile[];\n}\n\ninterface LaunchFileBase {\n /**\n * The local path to the file.\n */\n filename: string;\n /**\n * The MIME type of the file.\n */\n mimeType: string;\n}\n\ninterface GenericLaunchFile extends LaunchFileBase {\n type: ThemeFileType.CSS;\n}\n\ninterface JavascriptLaunchFile extends LaunchFileBase {\n /**\n * When `false`, the file will be loaded immediately. When `true`, the file will instead be pre-loaded.\n * With javascript files, this will insert them into the page as `<link rel=\"modulepreload\" ... >`.\n */\n preload?: boolean;\n type: ThemeFileType.Javascript;\n}\n\nexport type ThemeConfigurationLaunchDataTargetFile = GenericLaunchFile | JavascriptLaunchFile;\n\nexport enum FieldType {\n Asset = \"Asset\",\n Boolean = \"Boolean\",\n Color = \"Color\",\n ConversionConfiguration = \"ConversionConfiguration\",\n Heading = \"Heading\",\n List = \"List\",\n Number = \"Number\",\n Object = \"Object\",\n Select = \"Select\",\n Text = \"Text\",\n DateRange = \"DateRange\",\n ProductCollection = \"ProductCollection\",\n MetafieldConfiguration = \"MetafieldConfiguration\",\n}\n\nexport interface ThemeConfigurationSchema {\n /**\n * An array of fields that a Partner can configure when they install the theme.\n */\n fields: ThemeConfigurationSchemaField[];\n\n /**\n * An array of custom schemas that can be reused anywhere on any field.\n */\n customSchemas?: ThemeConfigurationSchemaCustomSchema[];\n}\n\ninterface FieldBase {\n /**\n * The display name for the field. When `type` is `\"Heading\"`, this is the heading string.\n */\n title: string;\n}\n\n/**\n * Base type for a field that is actually configurable by a user.\n */\ninterface ConfigurableField extends FieldBase {\n /**\n * A locally unique identifier for the field.\n */\n key: string;\n /**\n * Optional: A brief description of what the field might be used for. This is displayed beneath the field in the configuration form.\n */\n description?: string;\n /**\n * Optional: Set to `true` to require a value to be provided in the configuration form.\n */\n required?: boolean;\n}\n\ninterface DefaultValueOption {\n /**\n * Optional: A default value to supply. Values are always supplied as strings.\n * When the `type` is `\"Select\"`, this should be one of the `key` fields in the `options` array.\n */\n defaultValue?: string;\n}\n\ninterface LimitOption {\n /**\n * Optional: A limit to impose on the input.\n * When the `type` is `\"Text\"`, this is a character limit.\n * When the `type` is `\"List\"`, this is a limit to the number of items in the list.\n * When this value is < 1, or not supplied, it is ignored.\n */\n limit?: number;\n}\n\n/**\n * Generic fields which have no extra configuration and can accept default values from the Theme developer.\n */\ninterface GenericField extends ConfigurableField, DefaultValueOption {\n type: FieldType.Boolean | FieldType.Color | FieldType.Number | FieldType.DateRange;\n}\n\nexport enum AssetType {\n Color = \"Color\",\n ColorProfile = \"ColorProfile\",\n Data = \"Data\",\n Environment = \"Environment\",\n Font = \"Font\",\n Frame = \"Frame\",\n Illustration = \"Illustration\",\n Image = \"Image\",\n Material = \"Material\",\n Model = \"Model\",\n Video = \"Video\",\n}\n\ninterface AssetField extends ConfigurableField {\n /**\n * The type of asset, e.g. Image, Model, Font, etc.\n */\n assetType: AssetType;\n type: FieldType.Asset;\n}\n\ninterface ConversionConfigurationField extends ConfigurableField {\n type: FieldType.ConversionConfiguration;\n}\n\ninterface SelectField extends ConfigurableField, DefaultValueOption {\n /**\n * The options available for the Partner to select in the configuration form.\n */\n options: {\n /**\n * A locally unique identifier (within this set of options).\n */\n key: string;\n /**\n * The string that is displayed visually in the menu item.\n */\n value: string;\n }[];\n type: FieldType.Select;\n}\n\ninterface TextField extends ConfigurableField, LimitOption, DefaultValueOption {\n /**\n * Allows the Partner to configure the field in a multi-line text editor.\n */\n multiLine?: boolean;\n type: FieldType.Text;\n}\n\n/**\n * Displays a heading in the Configuration Editor page in Hub.\n */\ninterface HeadingField extends FieldBase {\n type: FieldType.Heading;\n}\n\n/**\n * A list of one specific field type.\n */\ninterface ListField extends ConfigurableField, LimitOption {\n type: FieldType.List;\n /**\n * Defines the configuration schema for the entries in this list.\n */\n items: DistributiveOmit<ThemeConfigurationConfigurableFields, \"key\" | \"title\" | \"description\">;\n}\n\n/**\n * A collection of any number of different fields.\n */\ninterface ObjectField extends ConfigurableField {\n type: FieldType.Object;\n /**\n * Defines the configuration schema for the fields in this object.\n */\n fields: ThemeConfigurationSchemaField[];\n /**\n * The schema to use from the `customSchemas` field. Leave this null when not using a pre-defined schema.\n */\n schema?: null;\n}\n\ninterface CustomObjectField extends Omit<ObjectField, \"fields\" | \"schema\"> {\n schema: string;\n}\n\ninterface ProductCollectionField extends ConfigurableField {\n type: FieldType.ProductCollection;\n}\n\nexport enum MetafieldConfigurationEntityType {\n Asset = \"Asset\",\n Customer = \"Customer\",\n Integration = \"Integration\",\n Option = \"Option\",\n Order = \"Order\",\n Partner = \"Partner\",\n Product = \"Product\",\n ProductCollection = \"ProductCollection\",\n Variant = \"Variant\",\n Workflow = \"Workflow\",\n WorkflowStep = \"WorkflowStep\",\n}\n\ninterface MetafieldConfigurationField extends ConfigurableField {\n type: FieldType.MetafieldConfiguration;\n entityType: MetafieldConfigurationEntityType;\n}\n\n/** https://stackoverflow.com/a/57103940/23523714 */\ntype DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never;\n\n/**\n * All field types that are configurable by a user in Hub.\n */\nexport type ThemeConfigurationConfigurableFields =\n | GenericField\n | AssetField\n | ConversionConfigurationField\n | SelectField\n | TextField\n | ListField\n | ObjectField\n | CustomObjectField\n | ProductCollectionField\n | MetafieldConfigurationField;\n\n/**\n * All field types, including non-configurable ones.\n */\nexport type ThemeConfigurationSchemaField = ThemeConfigurationConfigurableFields | HeadingField;\n\nexport enum CustomSchemaType {\n Object = \"Object\",\n Union = \"Union\",\n}\n\ninterface CustomSchemaBase {\n /**\n * A unique name for the schema.\n */\n name: string;\n}\n\n/**\n * A schema for a reusable custom object. This is effectively the same as an ObjectField.\n */\ninterface ObjectCustomSchema extends CustomSchemaBase {\n type: CustomSchemaType.Object;\n /**\n * The text displayed when selecting this type in the configuration UI (when part of a Union)\n */\n title?: string;\n /**\n * Defines the configuration schema for the fields in this object.\n */\n fields: ThemeConfigurationSchemaField[];\n /**\n * Optional: Allows your schema to extend from other object schemas.\n * Useful when you have a base type and want to create variants.\n */\n extends?: string[];\n}\n\n/**\n * A schema for a reusable union of multiple custom object schemas.\n */\ninterface UnionCustomSchema extends CustomSchemaBase {\n type: CustomSchemaType.Union;\n /**\n * All schemas that can be selected for this union.\n */\n schemas: string[];\n}\n\nexport type ThemeConfigurationSchemaCustomSchema = ObjectCustomSchema | UnionCustomSchema;\n\n// TODO: Absolutely need a way to generate a schema from a typescript type.\n"],"names":["ThemeFileType","FieldType","AssetType","MetafieldConfigurationEntityType","CustomSchemaType"],"mappings":"AAWO,IAAKA,sBAAAA,OACRA,EAAA,aAAa,cACbA,EAAA,MAAM,OAFEA,IAAAA,KAAA,CAAA,CAAA,GAsCAC,sBAAAA,OACRA,EAAA,QAAQ,SACRA,EAAA,UAAU,WACVA,EAAA,QAAQ,SACRA,EAAA,0BAA0B,2BAC1BA,EAAA,UAAU,WACVA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,SAAS,UACTA,EAAA,SAAS,UACTA,EAAA,OAAO,QACPA,EAAA,YAAY,aACZA,EAAA,oBAAoB,qBACpBA,EAAA,yBAAyB,0BAbjBA,IAAAA,KAAA,CAAA,CAAA,GA8EAC,sBAAAA,OACRA,EAAA,QAAQ,SACRA,EAAA,eAAe,gBACfA,EAAA,OAAO,QACPA,EAAA,cAAc,eACdA,EAAA,OAAO,QACPA,EAAA,QAAQ,SACRA,EAAA,eAAe,gBACfA,EAAA,QAAQ,SACRA,EAAA,WAAW,YACXA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SAXAA,IAAAA,KAAA,CAAA,CAAA,GA4FAC,sBAAAA,OACRA,EAAA,QAAQ,SACRA,EAAA,WAAW,YACXA,EAAA,cAAc,eACdA,EAAA,SAAS,UACTA,EAAA,QAAQ,SACRA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,oBAAoB,qBACpBA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,eAAe,gBAXPA,IAAAA,KAAA,CAAA,CAAA,GA0CAC,sBAAAA,OACRA,EAAA,SAAS,UACTA,EAAA,QAAQ,SAFAA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
1
|
+
{"version":3,"file":"configurationTypes-6D808idm.js","sources":["../src/configurationTypes.ts"],"sourcesContent":["export interface ThemeConfigurationFile {\n /**\n * Information the theme loader needs in order to launch your theme.\n */\n launchData: ThemeConfigurationLaunchData;\n /**\n * An object that describes information that's configurable by a Partner when they install your theme.\n */\n configurationSchema?: ThemeConfigurationSchema;\n}\n\nexport enum ThemeFileType {\n Javascript = \"Javascript\",\n CSS = \"CSS\",\n}\n\nexport interface ThemeConfigurationLaunchData {\n /**\n * Files that will be loaded when launching the theme.\n */\n targetFiles: ThemeConfigurationLaunchDataTargetFile[];\n}\n\ninterface LaunchFileBase {\n /**\n * The local path to the file.\n */\n filename: string;\n /**\n * The MIME type of the file.\n */\n mimeType: string;\n}\n\ninterface GenericLaunchFile extends LaunchFileBase {\n type: ThemeFileType.CSS;\n}\n\ninterface JavascriptLaunchFile extends LaunchFileBase {\n /**\n * When `false`, the file will be loaded immediately. When `true`, the file will instead be pre-loaded.\n * With javascript files, this will insert them into the page as `<link rel=\"modulepreload\" ... >`.\n */\n preload?: boolean;\n type: ThemeFileType.Javascript;\n}\n\nexport type ThemeConfigurationLaunchDataTargetFile = GenericLaunchFile | JavascriptLaunchFile;\n\nexport enum FieldType {\n Asset = \"Asset\",\n Boolean = \"Boolean\",\n Color = \"Color\",\n ConversionConfiguration = \"ConversionConfiguration\",\n Heading = \"Heading\",\n List = \"List\",\n Number = \"Number\",\n Object = \"Object\",\n Select = \"Select\",\n Text = \"Text\",\n DateRange = \"DateRange\",\n ProductCollection = \"ProductCollection\",\n MetafieldConfiguration = \"MetafieldConfiguration\",\n}\n\nexport interface ThemeConfigurationSchema {\n /**\n * An array of fields that a Partner can configure when they install the theme.\n */\n fields: ThemeConfigurationSchemaField[];\n\n /**\n * An array of custom schemas that can be reused anywhere on any field.\n */\n customSchemas?: ThemeConfigurationSchemaCustomSchema[];\n}\n\ninterface FieldBase {\n /**\n * The display name for the field. When `type` is `\"Heading\"`, this is the heading string.\n */\n title: string;\n}\n\n/**\n * Base type for a field that is actually configurable by a user.\n */\ninterface ConfigurableField extends FieldBase {\n /**\n * A locally unique identifier for the field.\n */\n key: string;\n /**\n * Optional: A brief description of what the field might be used for. This is displayed beneath the field in the configuration form.\n */\n description?: string;\n}\n\ninterface RequiredOption {\n /**\n * Optional: Set to `true` to require a value to be provided in the configuration form.\n */\n required?: boolean;\n /** Cannot combine required and defaultValue options. */\n readonly defaultValue?: undefined;\n}\n\ntype RequiredOrDefault =\n | RequiredOption\n | {\n /**\n * Optional: A default value to supply. Values are always supplied as strings.\n * When the `type` is `\"Select\"`, this should be one of the `key` fields in the `options` array.\n */\n defaultValue?: string;\n /** Cannot combine required and defaultValue options. */\n readonly required?: undefined;\n };\n\ninterface LimitOption {\n /**\n * Optional: A limit to impose on the input.\n * When the `type` is `\"Text\"`, this is a character limit.\n * When the `type` is `\"List\"`, this is a limit to the number of items in the list.\n * When this value is < 1, or not supplied, it is ignored.\n */\n limit?: number;\n}\n\n/**\n * Generic fields which have no extra configuration and can accept default values from the Theme developer.\n */\ninterface GenericFieldBase extends ConfigurableField {\n type: FieldType.Boolean | FieldType.Color | FieldType.Number | FieldType.DateRange;\n}\n\ntype GenericField = GenericFieldBase & RequiredOrDefault;\n\nexport enum AssetType {\n Color = \"Color\",\n ColorProfile = \"ColorProfile\",\n Data = \"Data\",\n Environment = \"Environment\",\n Font = \"Font\",\n Frame = \"Frame\",\n Illustration = \"Illustration\",\n Image = \"Image\",\n Material = \"Material\",\n Model = \"Model\",\n Video = \"Video\",\n}\n\ninterface AssetField extends ConfigurableField, RequiredOption {\n /**\n * The type of asset, e.g. Image, Model, Font, etc.\n */\n assetType: AssetType;\n type: FieldType.Asset;\n}\n\ninterface ConversionConfigurationField extends ConfigurableField {\n type: FieldType.ConversionConfiguration;\n}\n\ninterface SelectFieldBase extends ConfigurableField {\n /**\n * The options available for the Partner to select in the configuration form.\n */\n options: {\n /**\n * A locally unique identifier (within this set of options).\n */\n key: string;\n /**\n * The string that is displayed visually in the menu item.\n */\n value: string;\n }[];\n type: FieldType.Select;\n}\n\ntype SelectField = SelectFieldBase & RequiredOrDefault;\n\ninterface TextFieldBase extends ConfigurableField, LimitOption {\n /**\n * Allows the Partner to configure the field in a multi-line text editor.\n */\n multiLine?: boolean;\n type: FieldType.Text;\n}\n\ntype TextField = TextFieldBase & RequiredOrDefault;\n\n/**\n * Displays a heading in the Configuration Editor page in Hub.\n */\ninterface HeadingField extends FieldBase {\n type: FieldType.Heading;\n}\n\n/**\n * A list of one specific field type.\n */\ninterface ListField extends ConfigurableField, RequiredOption, LimitOption {\n type: FieldType.List;\n /**\n * Defines the configuration schema for the entries in this list.\n */\n items: DistributiveOmit<ThemeConfigurationConfigurableFields, \"key\" | \"title\" | \"description\">;\n}\n\n/**\n * A collection of any number of different fields.\n */\ninterface ObjectField extends ConfigurableField, RequiredOption {\n type: FieldType.Object;\n /**\n * Defines the configuration schema for the fields in this object.\n */\n fields: ThemeConfigurationSchemaField[];\n /**\n * The schema to use from the `customSchemas` field. Leave this undefined when not using a pre-defined schema.\n */\n schema?: undefined;\n}\n\ninterface CustomObjectField extends Omit<ObjectField, \"fields\" | \"schema\"> {\n schema: string;\n}\n\ninterface ProductCollectionField extends ConfigurableField {\n type: FieldType.ProductCollection;\n}\n\nexport enum MetafieldConfigurationEntityType {\n Asset = \"Asset\",\n Customer = \"Customer\",\n Integration = \"Integration\",\n Option = \"Option\",\n Order = \"Order\",\n Partner = \"Partner\",\n Product = \"Product\",\n ProductCollection = \"ProductCollection\",\n Variant = \"Variant\",\n Workflow = \"Workflow\",\n WorkflowStep = \"WorkflowStep\",\n}\n\ninterface MetafieldConfigurationField extends ConfigurableField {\n type: FieldType.MetafieldConfiguration;\n entityType: MetafieldConfigurationEntityType;\n}\n\n/** https://stackoverflow.com/a/57103940/23523714 */\ntype DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never;\n\n/**\n * All field types that are configurable by a user in Hub.\n */\nexport type ThemeConfigurationConfigurableFields =\n | GenericField\n | AssetField\n | ConversionConfigurationField\n | SelectField\n | TextField\n | ListField\n | ObjectField\n | CustomObjectField\n | ProductCollectionField\n | MetafieldConfigurationField;\n\n/**\n * All field types, including non-configurable ones.\n */\nexport type ThemeConfigurationSchemaField = ThemeConfigurationConfigurableFields | HeadingField;\n\nexport enum CustomSchemaType {\n Object = \"Object\",\n Union = \"Union\",\n}\n\ninterface CustomSchemaBase {\n /**\n * A unique name for the schema.\n */\n name: string;\n}\n\n/**\n * A schema for a reusable custom object. This is effectively the same as an ObjectField.\n */\ninterface ObjectCustomSchema extends CustomSchemaBase {\n type: CustomSchemaType.Object;\n /**\n * The text displayed when selecting this type in the configuration UI (when part of a Union)\n */\n title?: string;\n /**\n * Defines the configuration schema for the fields in this object.\n */\n fields: ThemeConfigurationSchemaField[];\n /**\n * Optional: Allows your schema to extend from other object schemas.\n * Useful when you have a base type and want to create variants.\n */\n extends?: string[];\n}\n\n/**\n * A schema for a reusable union of multiple custom object schemas.\n */\ninterface UnionCustomSchema extends CustomSchemaBase {\n type: CustomSchemaType.Union;\n /**\n * All schemas that can be selected for this union.\n */\n schemas: string[];\n}\n\nexport type ThemeConfigurationSchemaCustomSchema = ObjectCustomSchema | UnionCustomSchema;\n\n// TODO: Absolutely need a way to generate a schema from a typescript type.\n"],"names":["ThemeFileType","FieldType","AssetType","MetafieldConfigurationEntityType","CustomSchemaType"],"mappings":"AAWO,IAAKA,sBAAAA,OACRA,EAAA,aAAa,cACbA,EAAA,MAAM,OAFEA,IAAAA,KAAA,CAAA,CAAA,GAsCAC,sBAAAA,OACRA,EAAA,QAAQ,SACRA,EAAA,UAAU,WACVA,EAAA,QAAQ,SACRA,EAAA,0BAA0B,2BAC1BA,EAAA,UAAU,WACVA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,SAAS,UACTA,EAAA,SAAS,UACTA,EAAA,OAAO,QACPA,EAAA,YAAY,aACZA,EAAA,oBAAoB,qBACpBA,EAAA,yBAAyB,0BAbjBA,IAAAA,KAAA,CAAA,CAAA,GAyFAC,sBAAAA,OACRA,EAAA,QAAQ,SACRA,EAAA,eAAe,gBACfA,EAAA,OAAO,QACPA,EAAA,cAAc,eACdA,EAAA,OAAO,QACPA,EAAA,QAAQ,SACRA,EAAA,eAAe,gBACfA,EAAA,QAAQ,SACRA,EAAA,WAAW,YACXA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SAXAA,IAAAA,KAAA,CAAA,CAAA,GAgGAC,sBAAAA,OACRA,EAAA,QAAQ,SACRA,EAAA,WAAW,YACXA,EAAA,cAAc,eACdA,EAAA,SAAS,UACTA,EAAA,QAAQ,SACRA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,oBAAoB,qBACpBA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,eAAe,gBAXPA,IAAAA,KAAA,CAAA,CAAA,GA0CAC,sBAAAA,OACRA,EAAA,SAAS,UACTA,EAAA,QAAQ,SAFAA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configurationTypes-Bt8NVGKp.cjs","sources":["../src/configurationTypes.ts"],"sourcesContent":["export interface ThemeConfigurationFile {\n /**\n * Information the theme loader needs in order to launch your theme.\n */\n launchData: ThemeConfigurationLaunchData;\n /**\n * An object that describes information that's configurable by a Partner when they install your theme.\n */\n configurationSchema?: ThemeConfigurationSchema;\n}\n\nexport enum ThemeFileType {\n Javascript = \"Javascript\",\n CSS = \"CSS\",\n}\n\nexport interface ThemeConfigurationLaunchData {\n /**\n * Files that will be loaded when launching the theme.\n */\n targetFiles: ThemeConfigurationLaunchDataTargetFile[];\n}\n\ninterface LaunchFileBase {\n /**\n * The local path to the file.\n */\n filename: string;\n /**\n * The MIME type of the file.\n */\n mimeType: string;\n}\n\ninterface GenericLaunchFile extends LaunchFileBase {\n type: ThemeFileType.CSS;\n}\n\ninterface JavascriptLaunchFile extends LaunchFileBase {\n /**\n * When `false`, the file will be loaded immediately. When `true`, the file will instead be pre-loaded.\n * With javascript files, this will insert them into the page as `<link rel=\"modulepreload\" ... >`.\n */\n preload?: boolean;\n type: ThemeFileType.Javascript;\n}\n\nexport type ThemeConfigurationLaunchDataTargetFile = GenericLaunchFile | JavascriptLaunchFile;\n\nexport enum FieldType {\n Asset = \"Asset\",\n Boolean = \"Boolean\",\n Color = \"Color\",\n ConversionConfiguration = \"ConversionConfiguration\",\n Heading = \"Heading\",\n List = \"List\",\n Number = \"Number\",\n Object = \"Object\",\n Select = \"Select\",\n Text = \"Text\",\n DateRange = \"DateRange\",\n ProductCollection = \"ProductCollection\",\n MetafieldConfiguration = \"MetafieldConfiguration\",\n}\n\nexport interface ThemeConfigurationSchema {\n /**\n * An array of fields that a Partner can configure when they install the theme.\n */\n fields: ThemeConfigurationSchemaField[];\n\n /**\n * An array of custom schemas that can be reused anywhere on any field.\n */\n customSchemas?: ThemeConfigurationSchemaCustomSchema[];\n}\n\ninterface FieldBase {\n /**\n * The display name for the field. When `type` is `\"Heading\"`, this is the heading string.\n */\n title: string;\n}\n\n/**\n * Base type for a field that is actually configurable by a user.\n */\ninterface ConfigurableField extends FieldBase {\n /**\n * A locally unique identifier for the field.\n */\n key: string;\n /**\n * Optional: A brief description of what the field might be used for. This is displayed beneath the field in the configuration form.\n */\n description?: string;\n /**\n * Optional: Set to `true` to require a value to be provided in the configuration form.\n */\n required?: boolean;\n}\n\ninterface DefaultValueOption {\n /**\n * Optional: A default value to supply. Values are always supplied as strings.\n * When the `type` is `\"Select\"`, this should be one of the `key` fields in the `options` array.\n */\n defaultValue?: string;\n}\n\ninterface LimitOption {\n /**\n * Optional: A limit to impose on the input.\n * When the `type` is `\"Text\"`, this is a character limit.\n * When the `type` is `\"List\"`, this is a limit to the number of items in the list.\n * When this value is < 1, or not supplied, it is ignored.\n */\n limit?: number;\n}\n\n/**\n * Generic fields which have no extra configuration and can accept default values from the Theme developer.\n */\ninterface GenericField extends ConfigurableField, DefaultValueOption {\n type: FieldType.Boolean | FieldType.Color | FieldType.Number | FieldType.DateRange;\n}\n\nexport enum AssetType {\n Color = \"Color\",\n ColorProfile = \"ColorProfile\",\n Data = \"Data\",\n Environment = \"Environment\",\n Font = \"Font\",\n Frame = \"Frame\",\n Illustration = \"Illustration\",\n Image = \"Image\",\n Material = \"Material\",\n Model = \"Model\",\n Video = \"Video\",\n}\n\ninterface AssetField extends ConfigurableField {\n /**\n * The type of asset, e.g. Image, Model, Font, etc.\n */\n assetType: AssetType;\n type: FieldType.Asset;\n}\n\ninterface ConversionConfigurationField extends ConfigurableField {\n type: FieldType.ConversionConfiguration;\n}\n\ninterface SelectField extends ConfigurableField, DefaultValueOption {\n /**\n * The options available for the Partner to select in the configuration form.\n */\n options: {\n /**\n * A locally unique identifier (within this set of options).\n */\n key: string;\n /**\n * The string that is displayed visually in the menu item.\n */\n value: string;\n }[];\n type: FieldType.Select;\n}\n\ninterface TextField extends ConfigurableField, LimitOption, DefaultValueOption {\n /**\n * Allows the Partner to configure the field in a multi-line text editor.\n */\n multiLine?: boolean;\n type: FieldType.Text;\n}\n\n/**\n * Displays a heading in the Configuration Editor page in Hub.\n */\ninterface HeadingField extends FieldBase {\n type: FieldType.Heading;\n}\n\n/**\n * A list of one specific field type.\n */\ninterface ListField extends ConfigurableField, LimitOption {\n type: FieldType.List;\n /**\n * Defines the configuration schema for the entries in this list.\n */\n items: DistributiveOmit<ThemeConfigurationConfigurableFields, \"key\" | \"title\" | \"description\">;\n}\n\n/**\n * A collection of any number of different fields.\n */\ninterface ObjectField extends ConfigurableField {\n type: FieldType.Object;\n /**\n * Defines the configuration schema for the fields in this object.\n */\n fields: ThemeConfigurationSchemaField[];\n /**\n * The schema to use from the `customSchemas` field. Leave this null when not using a pre-defined schema.\n */\n schema?: null;\n}\n\ninterface CustomObjectField extends Omit<ObjectField, \"fields\" | \"schema\"> {\n schema: string;\n}\n\ninterface ProductCollectionField extends ConfigurableField {\n type: FieldType.ProductCollection;\n}\n\nexport enum MetafieldConfigurationEntityType {\n Asset = \"Asset\",\n Customer = \"Customer\",\n Integration = \"Integration\",\n Option = \"Option\",\n Order = \"Order\",\n Partner = \"Partner\",\n Product = \"Product\",\n ProductCollection = \"ProductCollection\",\n Variant = \"Variant\",\n Workflow = \"Workflow\",\n WorkflowStep = \"WorkflowStep\",\n}\n\ninterface MetafieldConfigurationField extends ConfigurableField {\n type: FieldType.MetafieldConfiguration;\n entityType: MetafieldConfigurationEntityType;\n}\n\n/** https://stackoverflow.com/a/57103940/23523714 */\ntype DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never;\n\n/**\n * All field types that are configurable by a user in Hub.\n */\nexport type ThemeConfigurationConfigurableFields =\n | GenericField\n | AssetField\n | ConversionConfigurationField\n | SelectField\n | TextField\n | ListField\n | ObjectField\n | CustomObjectField\n | ProductCollectionField\n | MetafieldConfigurationField;\n\n/**\n * All field types, including non-configurable ones.\n */\nexport type ThemeConfigurationSchemaField = ThemeConfigurationConfigurableFields | HeadingField;\n\nexport enum CustomSchemaType {\n Object = \"Object\",\n Union = \"Union\",\n}\n\ninterface CustomSchemaBase {\n /**\n * A unique name for the schema.\n */\n name: string;\n}\n\n/**\n * A schema for a reusable custom object. This is effectively the same as an ObjectField.\n */\ninterface ObjectCustomSchema extends CustomSchemaBase {\n type: CustomSchemaType.Object;\n /**\n * The text displayed when selecting this type in the configuration UI (when part of a Union)\n */\n title?: string;\n /**\n * Defines the configuration schema for the fields in this object.\n */\n fields: ThemeConfigurationSchemaField[];\n /**\n * Optional: Allows your schema to extend from other object schemas.\n * Useful when you have a base type and want to create variants.\n */\n extends?: string[];\n}\n\n/**\n * A schema for a reusable union of multiple custom object schemas.\n */\ninterface UnionCustomSchema extends CustomSchemaBase {\n type: CustomSchemaType.Union;\n /**\n * All schemas that can be selected for this union.\n */\n schemas: string[];\n}\n\nexport type ThemeConfigurationSchemaCustomSchema = ObjectCustomSchema | UnionCustomSchema;\n\n// TODO: Absolutely need a way to generate a schema from a typescript type.\n"],"names":["ThemeFileType","FieldType","AssetType","MetafieldConfigurationEntityType","CustomSchemaType"],"mappings":"aAWO,IAAKA,GAAAA,IACRA,EAAA,WAAa,aACbA,EAAA,IAAM,MAFEA,IAAAA,GAAA,CAAA,CAAA,EAsCAC,GAAAA,IACRA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,MAAQ,QACRA,EAAA,wBAA0B,0BAC1BA,EAAA,QAAU,UACVA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,UAAY,YACZA,EAAA,kBAAoB,oBACpBA,EAAA,uBAAyB,yBAbjBA,IAAAA,GAAA,CAAA,CAAA,EA8EAC,GAAAA,IACRA,EAAA,MAAQ,QACRA,EAAA,aAAe,eACfA,EAAA,KAAO,OACPA,EAAA,YAAc,cACdA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,aAAe,eACfA,EAAA,MAAQ,QACRA,EAAA,SAAW,WACXA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QAXAA,IAAAA,GAAA,CAAA,CAAA,EA4FAC,GAAAA,IACRA,EAAA,MAAQ,QACRA,EAAA,SAAW,WACXA,EAAA,YAAc,cACdA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,kBAAoB,oBACpBA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,aAAe,eAXPA,IAAAA,GAAA,CAAA,CAAA,EA0CAC,GAAAA,IACRA,EAAA,OAAS,SACTA,EAAA,MAAQ,QAFAA,IAAAA,GAAA,CAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"configurationTypes-Bt8NVGKp.cjs","sources":["../src/configurationTypes.ts"],"sourcesContent":["export interface ThemeConfigurationFile {\n /**\n * Information the theme loader needs in order to launch your theme.\n */\n launchData: ThemeConfigurationLaunchData;\n /**\n * An object that describes information that's configurable by a Partner when they install your theme.\n */\n configurationSchema?: ThemeConfigurationSchema;\n}\n\nexport enum ThemeFileType {\n Javascript = \"Javascript\",\n CSS = \"CSS\",\n}\n\nexport interface ThemeConfigurationLaunchData {\n /**\n * Files that will be loaded when launching the theme.\n */\n targetFiles: ThemeConfigurationLaunchDataTargetFile[];\n}\n\ninterface LaunchFileBase {\n /**\n * The local path to the file.\n */\n filename: string;\n /**\n * The MIME type of the file.\n */\n mimeType: string;\n}\n\ninterface GenericLaunchFile extends LaunchFileBase {\n type: ThemeFileType.CSS;\n}\n\ninterface JavascriptLaunchFile extends LaunchFileBase {\n /**\n * When `false`, the file will be loaded immediately. When `true`, the file will instead be pre-loaded.\n * With javascript files, this will insert them into the page as `<link rel=\"modulepreload\" ... >`.\n */\n preload?: boolean;\n type: ThemeFileType.Javascript;\n}\n\nexport type ThemeConfigurationLaunchDataTargetFile = GenericLaunchFile | JavascriptLaunchFile;\n\nexport enum FieldType {\n Asset = \"Asset\",\n Boolean = \"Boolean\",\n Color = \"Color\",\n ConversionConfiguration = \"ConversionConfiguration\",\n Heading = \"Heading\",\n List = \"List\",\n Number = \"Number\",\n Object = \"Object\",\n Select = \"Select\",\n Text = \"Text\",\n DateRange = \"DateRange\",\n ProductCollection = \"ProductCollection\",\n MetafieldConfiguration = \"MetafieldConfiguration\",\n}\n\nexport interface ThemeConfigurationSchema {\n /**\n * An array of fields that a Partner can configure when they install the theme.\n */\n fields: ThemeConfigurationSchemaField[];\n\n /**\n * An array of custom schemas that can be reused anywhere on any field.\n */\n customSchemas?: ThemeConfigurationSchemaCustomSchema[];\n}\n\ninterface FieldBase {\n /**\n * The display name for the field. When `type` is `\"Heading\"`, this is the heading string.\n */\n title: string;\n}\n\n/**\n * Base type for a field that is actually configurable by a user.\n */\ninterface ConfigurableField extends FieldBase {\n /**\n * A locally unique identifier for the field.\n */\n key: string;\n /**\n * Optional: A brief description of what the field might be used for. This is displayed beneath the field in the configuration form.\n */\n description?: string;\n}\n\ninterface RequiredOption {\n /**\n * Optional: Set to `true` to require a value to be provided in the configuration form.\n */\n required?: boolean;\n /** Cannot combine required and defaultValue options. */\n readonly defaultValue?: undefined;\n}\n\ntype RequiredOrDefault =\n | RequiredOption\n | {\n /**\n * Optional: A default value to supply. Values are always supplied as strings.\n * When the `type` is `\"Select\"`, this should be one of the `key` fields in the `options` array.\n */\n defaultValue?: string;\n /** Cannot combine required and defaultValue options. */\n readonly required?: undefined;\n };\n\ninterface LimitOption {\n /**\n * Optional: A limit to impose on the input.\n * When the `type` is `\"Text\"`, this is a character limit.\n * When the `type` is `\"List\"`, this is a limit to the number of items in the list.\n * When this value is < 1, or not supplied, it is ignored.\n */\n limit?: number;\n}\n\n/**\n * Generic fields which have no extra configuration and can accept default values from the Theme developer.\n */\ninterface GenericFieldBase extends ConfigurableField {\n type: FieldType.Boolean | FieldType.Color | FieldType.Number | FieldType.DateRange;\n}\n\ntype GenericField = GenericFieldBase & RequiredOrDefault;\n\nexport enum AssetType {\n Color = \"Color\",\n ColorProfile = \"ColorProfile\",\n Data = \"Data\",\n Environment = \"Environment\",\n Font = \"Font\",\n Frame = \"Frame\",\n Illustration = \"Illustration\",\n Image = \"Image\",\n Material = \"Material\",\n Model = \"Model\",\n Video = \"Video\",\n}\n\ninterface AssetField extends ConfigurableField, RequiredOption {\n /**\n * The type of asset, e.g. Image, Model, Font, etc.\n */\n assetType: AssetType;\n type: FieldType.Asset;\n}\n\ninterface ConversionConfigurationField extends ConfigurableField {\n type: FieldType.ConversionConfiguration;\n}\n\ninterface SelectFieldBase extends ConfigurableField {\n /**\n * The options available for the Partner to select in the configuration form.\n */\n options: {\n /**\n * A locally unique identifier (within this set of options).\n */\n key: string;\n /**\n * The string that is displayed visually in the menu item.\n */\n value: string;\n }[];\n type: FieldType.Select;\n}\n\ntype SelectField = SelectFieldBase & RequiredOrDefault;\n\ninterface TextFieldBase extends ConfigurableField, LimitOption {\n /**\n * Allows the Partner to configure the field in a multi-line text editor.\n */\n multiLine?: boolean;\n type: FieldType.Text;\n}\n\ntype TextField = TextFieldBase & RequiredOrDefault;\n\n/**\n * Displays a heading in the Configuration Editor page in Hub.\n */\ninterface HeadingField extends FieldBase {\n type: FieldType.Heading;\n}\n\n/**\n * A list of one specific field type.\n */\ninterface ListField extends ConfigurableField, RequiredOption, LimitOption {\n type: FieldType.List;\n /**\n * Defines the configuration schema for the entries in this list.\n */\n items: DistributiveOmit<ThemeConfigurationConfigurableFields, \"key\" | \"title\" | \"description\">;\n}\n\n/**\n * A collection of any number of different fields.\n */\ninterface ObjectField extends ConfigurableField, RequiredOption {\n type: FieldType.Object;\n /**\n * Defines the configuration schema for the fields in this object.\n */\n fields: ThemeConfigurationSchemaField[];\n /**\n * The schema to use from the `customSchemas` field. Leave this undefined when not using a pre-defined schema.\n */\n schema?: undefined;\n}\n\ninterface CustomObjectField extends Omit<ObjectField, \"fields\" | \"schema\"> {\n schema: string;\n}\n\ninterface ProductCollectionField extends ConfigurableField {\n type: FieldType.ProductCollection;\n}\n\nexport enum MetafieldConfigurationEntityType {\n Asset = \"Asset\",\n Customer = \"Customer\",\n Integration = \"Integration\",\n Option = \"Option\",\n Order = \"Order\",\n Partner = \"Partner\",\n Product = \"Product\",\n ProductCollection = \"ProductCollection\",\n Variant = \"Variant\",\n Workflow = \"Workflow\",\n WorkflowStep = \"WorkflowStep\",\n}\n\ninterface MetafieldConfigurationField extends ConfigurableField {\n type: FieldType.MetafieldConfiguration;\n entityType: MetafieldConfigurationEntityType;\n}\n\n/** https://stackoverflow.com/a/57103940/23523714 */\ntype DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never;\n\n/**\n * All field types that are configurable by a user in Hub.\n */\nexport type ThemeConfigurationConfigurableFields =\n | GenericField\n | AssetField\n | ConversionConfigurationField\n | SelectField\n | TextField\n | ListField\n | ObjectField\n | CustomObjectField\n | ProductCollectionField\n | MetafieldConfigurationField;\n\n/**\n * All field types, including non-configurable ones.\n */\nexport type ThemeConfigurationSchemaField = ThemeConfigurationConfigurableFields | HeadingField;\n\nexport enum CustomSchemaType {\n Object = \"Object\",\n Union = \"Union\",\n}\n\ninterface CustomSchemaBase {\n /**\n * A unique name for the schema.\n */\n name: string;\n}\n\n/**\n * A schema for a reusable custom object. This is effectively the same as an ObjectField.\n */\ninterface ObjectCustomSchema extends CustomSchemaBase {\n type: CustomSchemaType.Object;\n /**\n * The text displayed when selecting this type in the configuration UI (when part of a Union)\n */\n title?: string;\n /**\n * Defines the configuration schema for the fields in this object.\n */\n fields: ThemeConfigurationSchemaField[];\n /**\n * Optional: Allows your schema to extend from other object schemas.\n * Useful when you have a base type and want to create variants.\n */\n extends?: string[];\n}\n\n/**\n * A schema for a reusable union of multiple custom object schemas.\n */\ninterface UnionCustomSchema extends CustomSchemaBase {\n type: CustomSchemaType.Union;\n /**\n * All schemas that can be selected for this union.\n */\n schemas: string[];\n}\n\nexport type ThemeConfigurationSchemaCustomSchema = ObjectCustomSchema | UnionCustomSchema;\n\n// TODO: Absolutely need a way to generate a schema from a typescript type.\n"],"names":["ThemeFileType","FieldType","AssetType","MetafieldConfigurationEntityType","CustomSchemaType"],"mappings":"aAWO,IAAKA,GAAAA,IACRA,EAAA,WAAa,aACbA,EAAA,IAAM,MAFEA,IAAAA,GAAA,CAAA,CAAA,EAsCAC,GAAAA,IACRA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,MAAQ,QACRA,EAAA,wBAA0B,0BAC1BA,EAAA,QAAU,UACVA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,UAAY,YACZA,EAAA,kBAAoB,oBACpBA,EAAA,uBAAyB,yBAbjBA,IAAAA,GAAA,CAAA,CAAA,EAyFAC,GAAAA,IACRA,EAAA,MAAQ,QACRA,EAAA,aAAe,eACfA,EAAA,KAAO,OACPA,EAAA,YAAc,cACdA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,aAAe,eACfA,EAAA,MAAQ,QACRA,EAAA,SAAW,WACXA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QAXAA,IAAAA,GAAA,CAAA,CAAA,EAgGAC,GAAAA,IACRA,EAAA,MAAQ,QACRA,EAAA,SAAW,WACXA,EAAA,YAAc,cACdA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,kBAAoB,oBACpBA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,aAAe,eAXPA,IAAAA,GAAA,CAAA,CAAA,EA0CAC,GAAAA,IACRA,EAAA,OAAS,SACTA,EAAA,MAAQ,QAFAA,IAAAA,GAAA,CAAA,CAAA"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const wr=require("./configurationTypes-Bt8NVGKp.cjs"),rD=require("@spiffcommerce/core");var dR=(M=>(M.Manual="Manual",M.OnStart="OnStart",M.OnQuit="OnQuit",M.OnEnd="OnEnd",M))(dR||{});function yE(M){return Object.assign({},...M.map(j=>{if(j.key)return{[j.key]:pR(j)}}))}function pR(M){switch(M.type){case wr.FieldType.Asset:return M.asset;case wr.FieldType.ConversionConfiguration:return M.conversionConfiguration;case wr.FieldType.ProductCollection:return M.productCollection;case wr.FieldType.MetafieldConfiguration:return M.metafieldConfiguration;case wr.FieldType.DateRange:{const j=M.value?.split(",");if(!j||j.length!==2||!j[0]||!j[1])return;try{return{start:new Date(j[0]),end:new Date(j[1])}}catch{return}}case wr.FieldType.List:return M.listValues?M.listValues.map(pR):void 0;case wr.FieldType.Object:return M.objectValues?{...yE(M.objectValues),schema:M.schema??void 0}:void 0;case wr.FieldType.Number:if(M.value===null||M.value===void 0)return;try{const j=Number.parseFloat(M.value);return Number.isNaN(j)?void 0:j}catch{return}case wr.FieldType.Boolean:return M.value===null||M.value===void 0?void 0:M.value==="true";case wr.FieldType.Text:case wr.FieldType.Color:case wr.FieldType.Select:return M.value;case wr.FieldType.Heading:default:return}}function aD(M){return yE(M)}function iD(M){return yE(M.fields)}function Xm(M,j){const D={...M,items:void 0,fields:void 0};return M.items!==void 0&&M.items!==null&&(D.items=Xm(j[M.items],j)),M.fields!==void 0&&M.fields!==null&&(D.fields=M.fields.map(Be=>Xm(j[Be],j))),D}function vR(M){const j={...M,fields:[],customSchemas:M.customSchemas?.map(Be=>({...Be,fields:Be.fields?.map(ht=>Xm(M.fields[ht],M.fields))}))},D=[];if(M.fields.forEach(Be=>{Be.root&&D.push(Xm(Be,M.fields))}),M.fields.length>0&&D.length===0)throw new Error("Failed to map ThemeVersionConfiguration GraphQL type to Resource type. Please ensure you've selected the `root` field on ThemeConfigurationSchemaField");return j.fields=D,j}function lD(M){return{...M,configurationSchema:vR(M.configurationSchema)}}function mE(M,j){const D={...M,listValues:void 0,objectValues:void 0};return M.listValues!==void 0&&M.listValues!==null&&(D.listValues=M.listValues.map(Be=>mE(j[Be],j))),M.objectValues!==void 0&&M.objectValues!==null&&(D.objectValues=M.objectValues.map(Be=>mE(j[Be],j))),D}function uD(M){const j={...M,name:M.name??"",fields:[]},D=[];if(M.fields.forEach(Be=>{Be.root&&D.push(mE(Be,M.fields))}),M.fields.length>0&&D.length===0)throw new Error("Failed to map ThemeInstallConfiguration GraphQL type to Resource type. Please ensure you've selected the `root` field on ThemeInstallConfigurationField");return j.fields=D,j}var Qm={exports:{}},Kp={},Wm={exports:{}},mt={};var ZT;function oD(){if(ZT)return mt;ZT=1;var M=Symbol.for("react.element"),j=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),Be=Symbol.for("react.strict_mode"),ht=Symbol.for("react.profiler"),_t=Symbol.for("react.provider"),S=Symbol.for("react.context"),Pt=Symbol.for("react.forward_ref"),de=Symbol.for("react.suspense"),ve=Symbol.for("react.memo"),ut=Symbol.for("react.lazy"),ee=Symbol.iterator;function Ce(_){return _===null||typeof _!="object"?null:(_=ee&&_[ee]||_["@@iterator"],typeof _=="function"?_:null)}var ue={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ye=Object.assign,yt={};function dt(_,B,je){this.props=_,this.context=B,this.refs=yt,this.updater=je||ue}dt.prototype.isReactComponent={},dt.prototype.setState=function(_,B){if(typeof _!="object"&&typeof _!="function"&&_!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,_,B,"setState")},dt.prototype.forceUpdate=function(_){this.updater.enqueueForceUpdate(this,_,"forceUpdate")};function cn(){}cn.prototype=dt.prototype;function ft(_,B,je){this.props=_,this.context=B,this.refs=yt,this.updater=je||ue}var Qe=ft.prototype=new cn;Qe.constructor=ft,Ye(Qe,dt.prototype),Qe.isPureReactComponent=!0;var pt=Array.isArray,be=Object.prototype.hasOwnProperty,ot={current:null},Fe={key:!0,ref:!0,__self:!0,__source:!0};function rn(_,B,je){var Ue,rt={},Je=null,Ke=null;if(B!=null)for(Ue in B.ref!==void 0&&(Ke=B.ref),B.key!==void 0&&(Je=""+B.key),B)be.call(B,Ue)&&!Fe.hasOwnProperty(Ue)&&(rt[Ue]=B[Ue]);var et=arguments.length-2;if(et===1)rt.children=je;else if(1<et){for(var at=Array(et),Vt=0;Vt<et;Vt++)at[Vt]=arguments[Vt+2];rt.children=at}if(_&&_.defaultProps)for(Ue in et=_.defaultProps,et)rt[Ue]===void 0&&(rt[Ue]=et[Ue]);return{$$typeof:M,type:_,key:Je,ref:Ke,props:rt,_owner:ot.current}}function Ft(_,B){return{$$typeof:M,type:_.type,key:B,ref:_.ref,props:_.props,_owner:_._owner}}function Kt(_){return typeof _=="object"&&_!==null&&_.$$typeof===M}function an(_){var B={"=":"=0",":":"=2"};return"$"+_.replace(/[=:]/g,function(je){return B[je]})}var wt=/\/+/g;function ke(_,B){return typeof _=="object"&&_!==null&&_.key!=null?an(""+_.key):B.toString(36)}function Ut(_,B,je,Ue,rt){var Je=typeof _;(Je==="undefined"||Je==="boolean")&&(_=null);var Ke=!1;if(_===null)Ke=!0;else switch(Je){case"string":case"number":Ke=!0;break;case"object":switch(_.$$typeof){case M:case j:Ke=!0}}if(Ke)return Ke=_,rt=rt(Ke),_=Ue===""?"."+ke(Ke,0):Ue,pt(rt)?(je="",_!=null&&(je=_.replace(wt,"$&/")+"/"),Ut(rt,B,je,"",function(Vt){return Vt})):rt!=null&&(Kt(rt)&&(rt=Ft(rt,je+(!rt.key||Ke&&Ke.key===rt.key?"":(""+rt.key).replace(wt,"$&/")+"/")+_)),B.push(rt)),1;if(Ke=0,Ue=Ue===""?".":Ue+":",pt(_))for(var et=0;et<_.length;et++){Je=_[et];var at=Ue+ke(Je,et);Ke+=Ut(Je,B,je,at,rt)}else if(at=Ce(_),typeof at=="function")for(_=at.call(_),et=0;!(Je=_.next()).done;)Je=Je.value,at=Ue+ke(Je,et++),Ke+=Ut(Je,B,je,at,rt);else if(Je==="object")throw B=String(_),Error("Objects are not valid as a React child (found: "+(B==="[object Object]"?"object with keys {"+Object.keys(_).join(", ")+"}":B)+"). If you meant to render a collection of children, use an array instead.");return Ke}function xt(_,B,je){if(_==null)return _;var Ue=[],rt=0;return Ut(_,Ue,"","",function(Je){return B.call(je,Je,rt++)}),Ue}function Dt(_){if(_._status===-1){var B=_._result;B=B(),B.then(function(je){(_._status===0||_._status===-1)&&(_._status=1,_._result=je)},function(je){(_._status===0||_._status===-1)&&(_._status=2,_._result=je)}),_._status===-1&&(_._status=0,_._result=B)}if(_._status===1)return _._result.default;throw _._result}var Ee={current:null},Z={transition:null},Te={ReactCurrentDispatcher:Ee,ReactCurrentBatchConfig:Z,ReactCurrentOwner:ot};function ne(){throw Error("act(...) is not supported in production builds of React.")}return mt.Children={map:xt,forEach:function(_,B,je){xt(_,function(){B.apply(this,arguments)},je)},count:function(_){var B=0;return xt(_,function(){B++}),B},toArray:function(_){return xt(_,function(B){return B})||[]},only:function(_){if(!Kt(_))throw Error("React.Children.only expected to receive a single React element child.");return _}},mt.Component=dt,mt.Fragment=D,mt.Profiler=ht,mt.PureComponent=ft,mt.StrictMode=Be,mt.Suspense=de,mt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Te,mt.act=ne,mt.cloneElement=function(_,B,je){if(_==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+_+".");var Ue=Ye({},_.props),rt=_.key,Je=_.ref,Ke=_._owner;if(B!=null){if(B.ref!==void 0&&(Je=B.ref,Ke=ot.current),B.key!==void 0&&(rt=""+B.key),_.type&&_.type.defaultProps)var et=_.type.defaultProps;for(at in B)be.call(B,at)&&!Fe.hasOwnProperty(at)&&(Ue[at]=B[at]===void 0&&et!==void 0?et[at]:B[at])}var at=arguments.length-2;if(at===1)Ue.children=je;else if(1<at){et=Array(at);for(var Vt=0;Vt<at;Vt++)et[Vt]=arguments[Vt+2];Ue.children=et}return{$$typeof:M,type:_.type,key:rt,ref:Je,props:Ue,_owner:Ke}},mt.createContext=function(_){return _={$$typeof:S,_currentValue:_,_currentValue2:_,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},_.Provider={$$typeof:_t,_context:_},_.Consumer=_},mt.createElement=rn,mt.createFactory=function(_){var B=rn.bind(null,_);return B.type=_,B},mt.createRef=function(){return{current:null}},mt.forwardRef=function(_){return{$$typeof:Pt,render:_}},mt.isValidElement=Kt,mt.lazy=function(_){return{$$typeof:ut,_payload:{_status:-1,_result:_},_init:Dt}},mt.memo=function(_,B){return{$$typeof:ve,type:_,compare:B===void 0?null:B}},mt.startTransition=function(_){var B=Z.transition;Z.transition={};try{_()}finally{Z.transition=B}},mt.unstable_act=ne,mt.useCallback=function(_,B){return Ee.current.useCallback(_,B)},mt.useContext=function(_){return Ee.current.useContext(_)},mt.useDebugValue=function(){},mt.useDeferredValue=function(_){return Ee.current.useDeferredValue(_)},mt.useEffect=function(_,B){return Ee.current.useEffect(_,B)},mt.useId=function(){return Ee.current.useId()},mt.useImperativeHandle=function(_,B,je){return Ee.current.useImperativeHandle(_,B,je)},mt.useInsertionEffect=function(_,B){return Ee.current.useInsertionEffect(_,B)},mt.useLayoutEffect=function(_,B){return Ee.current.useLayoutEffect(_,B)},mt.useMemo=function(_,B){return Ee.current.useMemo(_,B)},mt.useReducer=function(_,B,je){return Ee.current.useReducer(_,B,je)},mt.useRef=function(_){return Ee.current.useRef(_)},mt.useState=function(_){return Ee.current.useState(_)},mt.useSyncExternalStore=function(_,B,je){return Ee.current.useSyncExternalStore(_,B,je)},mt.useTransition=function(){return Ee.current.useTransition()},mt.version="18.3.1",mt}var Jp={exports:{}};Jp.exports;var JT;function sD(){return JT||(JT=1,(function(M,j){process.env.NODE_ENV!=="production"&&(function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var D="18.3.1",Be=Symbol.for("react.element"),ht=Symbol.for("react.portal"),_t=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),Pt=Symbol.for("react.profiler"),de=Symbol.for("react.provider"),ve=Symbol.for("react.context"),ut=Symbol.for("react.forward_ref"),ee=Symbol.for("react.suspense"),Ce=Symbol.for("react.suspense_list"),ue=Symbol.for("react.memo"),Ye=Symbol.for("react.lazy"),yt=Symbol.for("react.offscreen"),dt=Symbol.iterator,cn="@@iterator";function ft(h){if(h===null||typeof h!="object")return null;var C=dt&&h[dt]||h[cn];return typeof C=="function"?C:null}var Qe={current:null},pt={transition:null},be={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},ot={current:null},Fe={},rn=null;function Ft(h){rn=h}Fe.setExtraStackFrame=function(h){rn=h},Fe.getCurrentStack=null,Fe.getStackAddendum=function(){var h="";rn&&(h+=rn);var C=Fe.getCurrentStack;return C&&(h+=C()||""),h};var Kt=!1,an=!1,wt=!1,ke=!1,Ut=!1,xt={ReactCurrentDispatcher:Qe,ReactCurrentBatchConfig:pt,ReactCurrentOwner:ot};xt.ReactDebugCurrentFrame=Fe,xt.ReactCurrentActQueue=be;function Dt(h){{for(var C=arguments.length,U=new Array(C>1?C-1:0),H=1;H<C;H++)U[H-1]=arguments[H];Z("warn",h,U)}}function Ee(h){{for(var C=arguments.length,U=new Array(C>1?C-1:0),H=1;H<C;H++)U[H-1]=arguments[H];Z("error",h,U)}}function Z(h,C,U){{var H=xt.ReactDebugCurrentFrame,K=H.getStackAddendum();K!==""&&(C+="%s",U=U.concat([K]));var Oe=U.map(function(re){return String(re)});Oe.unshift("Warning: "+C),Function.prototype.apply.call(console[h],console,Oe)}}var Te={};function ne(h,C){{var U=h.constructor,H=U&&(U.displayName||U.name)||"ReactClass",K=H+"."+C;if(Te[K])return;Ee("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",C,H),Te[K]=!0}}var _={isMounted:function(h){return!1},enqueueForceUpdate:function(h,C,U){ne(h,"forceUpdate")},enqueueReplaceState:function(h,C,U,H){ne(h,"replaceState")},enqueueSetState:function(h,C,U,H){ne(h,"setState")}},B=Object.assign,je={};Object.freeze(je);function Ue(h,C,U){this.props=h,this.context=C,this.refs=je,this.updater=U||_}Ue.prototype.isReactComponent={},Ue.prototype.setState=function(h,C){if(typeof h!="object"&&typeof h!="function"&&h!=null)throw new Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,h,C,"setState")},Ue.prototype.forceUpdate=function(h){this.updater.enqueueForceUpdate(this,h,"forceUpdate")};{var rt={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},Je=function(h,C){Object.defineProperty(Ue.prototype,h,{get:function(){Dt("%s(...) is deprecated in plain JavaScript React classes. %s",C[0],C[1])}})};for(var Ke in rt)rt.hasOwnProperty(Ke)&&Je(Ke,rt[Ke])}function et(){}et.prototype=Ue.prototype;function at(h,C,U){this.props=h,this.context=C,this.refs=je,this.updater=U||_}var Vt=at.prototype=new et;Vt.constructor=at,B(Vt,Ue.prototype),Vt.isPureReactComponent=!0;function kn(){var h={current:null};return Object.seal(h),h}var xr=Array.isArray;function En(h){return xr(h)}function tr(h){{var C=typeof Symbol=="function"&&Symbol.toStringTag,U=C&&h[Symbol.toStringTag]||h.constructor.name||"Object";return U}}function Vn(h){try{return Pn(h),!1}catch{return!0}}function Pn(h){return""+h}function Ir(h){if(Vn(h))return Ee("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",tr(h)),Pn(h)}function si(h,C,U){var H=h.displayName;if(H)return H;var K=C.displayName||C.name||"";return K!==""?U+"("+K+")":U}function oa(h){return h.displayName||"Context"}function Gn(h){if(h==null)return null;if(typeof h.tag=="number"&&Ee("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof h=="function")return h.displayName||h.name||null;if(typeof h=="string")return h;switch(h){case _t:return"Fragment";case ht:return"Portal";case Pt:return"Profiler";case S:return"StrictMode";case ee:return"Suspense";case Ce:return"SuspenseList"}if(typeof h=="object")switch(h.$$typeof){case ve:var C=h;return oa(C)+".Consumer";case de:var U=h;return oa(U._context)+".Provider";case ut:return si(h,h.render,"ForwardRef");case ue:var H=h.displayName||null;return H!==null?H:Gn(h.type)||"Memo";case Ye:{var K=h,Oe=K._payload,re=K._init;try{return Gn(re(Oe))}catch{return null}}}return null}var Cn=Object.prototype.hasOwnProperty,Bn={key:!0,ref:!0,__self:!0,__source:!0},yr,Ia,On;On={};function gr(h){if(Cn.call(h,"ref")){var C=Object.getOwnPropertyDescriptor(h,"ref").get;if(C&&C.isReactWarning)return!1}return h.ref!==void 0}function sa(h){if(Cn.call(h,"key")){var C=Object.getOwnPropertyDescriptor(h,"key").get;if(C&&C.isReactWarning)return!1}return h.key!==void 0}function Ya(h,C){var U=function(){yr||(yr=!0,Ee("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",C))};U.isReactWarning=!0,Object.defineProperty(h,"key",{get:U,configurable:!0})}function ci(h,C){var U=function(){Ia||(Ia=!0,Ee("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",C))};U.isReactWarning=!0,Object.defineProperty(h,"ref",{get:U,configurable:!0})}function J(h){if(typeof h.ref=="string"&&ot.current&&h.__self&&ot.current.stateNode!==h.__self){var C=Gn(ot.current.type);On[C]||(Ee('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',C,h.ref),On[C]=!0)}}var Re=function(h,C,U,H,K,Oe,re){var Ne={$$typeof:Be,type:h,key:C,ref:U,props:re,_owner:Oe};return Ne._store={},Object.defineProperty(Ne._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(Ne,"_self",{configurable:!1,enumerable:!1,writable:!1,value:H}),Object.defineProperty(Ne,"_source",{configurable:!1,enumerable:!1,writable:!1,value:K}),Object.freeze&&(Object.freeze(Ne.props),Object.freeze(Ne)),Ne};function tt(h,C,U){var H,K={},Oe=null,re=null,Ne=null,ct=null;if(C!=null){gr(C)&&(re=C.ref,J(C)),sa(C)&&(Ir(C.key),Oe=""+C.key),Ne=C.__self===void 0?null:C.__self,ct=C.__source===void 0?null:C.__source;for(H in C)Cn.call(C,H)&&!Bn.hasOwnProperty(H)&&(K[H]=C[H])}var Rt=arguments.length-2;if(Rt===1)K.children=U;else if(Rt>1){for(var tn=Array(Rt),Yt=0;Yt<Rt;Yt++)tn[Yt]=arguments[Yt+2];Object.freeze&&Object.freeze(tn),K.children=tn}if(h&&h.defaultProps){var nt=h.defaultProps;for(H in nt)K[H]===void 0&&(K[H]=nt[H])}if(Oe||re){var Qt=typeof h=="function"?h.displayName||h.name||"Unknown":h;Oe&&Ya(K,Qt),re&&ci(K,Qt)}return Re(h,Oe,re,Ne,ct,ot.current,K)}function At(h,C){var U=Re(h.type,C,h.ref,h._self,h._source,h._owner,h.props);return U}function Zt(h,C,U){if(h==null)throw new Error("React.cloneElement(...): The argument must be a React element, but you passed "+h+".");var H,K=B({},h.props),Oe=h.key,re=h.ref,Ne=h._self,ct=h._source,Rt=h._owner;if(C!=null){gr(C)&&(re=C.ref,Rt=ot.current),sa(C)&&(Ir(C.key),Oe=""+C.key);var tn;h.type&&h.type.defaultProps&&(tn=h.type.defaultProps);for(H in C)Cn.call(C,H)&&!Bn.hasOwnProperty(H)&&(C[H]===void 0&&tn!==void 0?K[H]=tn[H]:K[H]=C[H])}var Yt=arguments.length-2;if(Yt===1)K.children=U;else if(Yt>1){for(var nt=Array(Yt),Qt=0;Qt<Yt;Qt++)nt[Qt]=arguments[Qt+2];K.children=nt}return Re(h.type,Oe,re,Ne,ct,Rt,K)}function pn(h){return typeof h=="object"&&h!==null&&h.$$typeof===Be}var ln=".",qn=":";function Jt(h){var C=/[=:]/g,U={"=":"=0",":":"=2"},H=h.replace(C,function(K){return U[K]});return"$"+H}var Bt=!1,$t=/\/+/g;function ca(h){return h.replace($t,"$&/")}function Sr(h,C){return typeof h=="object"&&h!==null&&h.key!=null?(Ir(h.key),Jt(""+h.key)):C.toString(36)}function Ra(h,C,U,H,K){var Oe=typeof h;(Oe==="undefined"||Oe==="boolean")&&(h=null);var re=!1;if(h===null)re=!0;else switch(Oe){case"string":case"number":re=!0;break;case"object":switch(h.$$typeof){case Be:case ht:re=!0}}if(re){var Ne=h,ct=K(Ne),Rt=H===""?ln+Sr(Ne,0):H;if(En(ct)){var tn="";Rt!=null&&(tn=ca(Rt)+"/"),Ra(ct,C,tn,"",function(qf){return qf})}else ct!=null&&(pn(ct)&&(ct.key&&(!Ne||Ne.key!==ct.key)&&Ir(ct.key),ct=At(ct,U+(ct.key&&(!Ne||Ne.key!==ct.key)?ca(""+ct.key)+"/":"")+Rt)),C.push(ct));return 1}var Yt,nt,Qt=0,vn=H===""?ln:H+qn;if(En(h))for(var Cl=0;Cl<h.length;Cl++)Yt=h[Cl],nt=vn+Sr(Yt,Cl),Qt+=Ra(Yt,C,U,nt,K);else{var Go=ft(h);if(typeof Go=="function"){var Pi=h;Go===Pi.entries&&(Bt||Dt("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),Bt=!0);for(var qo=Go.call(Pi),uu,Gf=0;!(uu=qo.next()).done;)Yt=uu.value,nt=vn+Sr(Yt,Gf++),Qt+=Ra(Yt,C,U,nt,K)}else if(Oe==="object"){var uc=String(h);throw new Error("Objects are not valid as a React child (found: "+(uc==="[object Object]"?"object with keys {"+Object.keys(h).join(", ")+"}":uc)+"). If you meant to render a collection of children, use an array instead.")}}return Qt}function ji(h,C,U){if(h==null)return h;var H=[],K=0;return Ra(h,H,"","",function(Oe){return C.call(U,Oe,K++)}),H}function Zl(h){var C=0;return ji(h,function(){C++}),C}function Jl(h,C,U){ji(h,function(){C.apply(this,arguments)},U)}function dl(h){return ji(h,function(C){return C})||[]}function pl(h){if(!pn(h))throw new Error("React.Children.only expected to receive a single React element child.");return h}function eu(h){var C={$$typeof:ve,_currentValue:h,_currentValue2:h,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};C.Provider={$$typeof:de,_context:C};var U=!1,H=!1,K=!1;{var Oe={$$typeof:ve,_context:C};Object.defineProperties(Oe,{Provider:{get:function(){return H||(H=!0,Ee("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?")),C.Provider},set:function(re){C.Provider=re}},_currentValue:{get:function(){return C._currentValue},set:function(re){C._currentValue=re}},_currentValue2:{get:function(){return C._currentValue2},set:function(re){C._currentValue2=re}},_threadCount:{get:function(){return C._threadCount},set:function(re){C._threadCount=re}},Consumer:{get:function(){return U||(U=!0,Ee("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?")),C.Consumer}},displayName:{get:function(){return C.displayName},set:function(re){K||(Dt("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",re),K=!0)}}}),C.Consumer=Oe}return C._currentRenderer=null,C._currentRenderer2=null,C}var br=-1,_r=0,nr=1,fi=2;function Qa(h){if(h._status===br){var C=h._result,U=C();if(U.then(function(Oe){if(h._status===_r||h._status===br){var re=h;re._status=nr,re._result=Oe}},function(Oe){if(h._status===_r||h._status===br){var re=h;re._status=fi,re._result=Oe}}),h._status===br){var H=h;H._status=_r,H._result=U}}if(h._status===nr){var K=h._result;return K===void 0&&Ee(`lazy: Expected the result of a dynamic import() call. Instead received: %s
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const wr=require("./configurationTypes-Bt8NVGKp.cjs"),rD=require("@spiffcommerce/core");var dR=(M=>(M.Manual="Manual",M.OnStart="OnStart",M.OnQuit="OnQuit",M.OnEnd="OnEnd",M))(dR||{});function yE(M){return Object.assign({},...M.map(j=>{if(j.key)return{[j.key]:pR(j)}}))}function pR(M){switch(M.type){case wr.FieldType.Asset:return M.asset;case wr.FieldType.ConversionConfiguration:return M.conversionConfiguration;case wr.FieldType.ProductCollection:return M.productCollection;case wr.FieldType.MetafieldConfiguration:return M.metafieldConfiguration;case wr.FieldType.DateRange:{const j=M.value?.split(",");if(!j||j.length!==2||!j[0]||!j[1])return;try{return{start:new Date(j[0]),end:new Date(j[1])}}catch{return}}case wr.FieldType.List:return M.listValues?M.listValues.map(pR):void 0;case wr.FieldType.Object:return M.objectValues?{...yE(M.objectValues),schema:M.schema??void 0}:void 0;case wr.FieldType.Number:if(M.value===null||M.value===void 0)return;try{const j=Number.parseFloat(M.value);return Number.isNaN(j)?void 0:j}catch{return}case wr.FieldType.Boolean:return M.value===null||M.value===void 0?void 0:M.value==="true";case wr.FieldType.Text:case wr.FieldType.Color:case wr.FieldType.Select:return M.value;case wr.FieldType.Heading:return}}function aD(M){return yE(M)}function iD(M){return yE(M.fields)}function Xm(M,j){const D={...M,items:void 0,fields:void 0};return M.items!==void 0&&M.items!==null&&(D.items=Xm(j[M.items],j)),M.fields!==void 0&&M.fields!==null&&(D.fields=M.fields.map(Be=>Xm(j[Be],j))),D}function vR(M){const j={...M,fields:[],customSchemas:M.customSchemas?.map(Be=>({...Be,fields:Be.fields?.map(ht=>Xm(M.fields[ht],M.fields))}))},D=[];if(M.fields.forEach(Be=>{Be.root&&D.push(Xm(Be,M.fields))}),M.fields.length>0&&D.length===0)throw new Error("Failed to map ThemeVersionConfiguration GraphQL type to Resource type. Please ensure you've selected the `root` field on ThemeConfigurationSchemaField");return j.fields=D,j}function lD(M){return{...M,configurationSchema:vR(M.configurationSchema)}}function mE(M,j){const D={...M,listValues:void 0,objectValues:void 0};return M.listValues!==void 0&&M.listValues!==null&&(D.listValues=M.listValues.map(Be=>mE(j[Be],j))),M.objectValues!==void 0&&M.objectValues!==null&&(D.objectValues=M.objectValues.map(Be=>mE(j[Be],j))),D}function uD(M){const j={...M,name:M.name??"",fields:[]},D=[];if(M.fields.forEach(Be=>{Be.root&&D.push(mE(Be,M.fields))}),M.fields.length>0&&D.length===0)throw new Error("Failed to map ThemeInstallConfiguration GraphQL type to Resource type. Please ensure you've selected the `root` field on ThemeInstallConfigurationField");return j.fields=D,j}var Qm={exports:{}},Kp={},Wm={exports:{}},mt={};var ZT;function oD(){if(ZT)return mt;ZT=1;var M=Symbol.for("react.element"),j=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),Be=Symbol.for("react.strict_mode"),ht=Symbol.for("react.profiler"),_t=Symbol.for("react.provider"),S=Symbol.for("react.context"),Pt=Symbol.for("react.forward_ref"),de=Symbol.for("react.suspense"),ve=Symbol.for("react.memo"),ut=Symbol.for("react.lazy"),ee=Symbol.iterator;function Ce(_){return _===null||typeof _!="object"?null:(_=ee&&_[ee]||_["@@iterator"],typeof _=="function"?_:null)}var ue={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ye=Object.assign,yt={};function dt(_,B,je){this.props=_,this.context=B,this.refs=yt,this.updater=je||ue}dt.prototype.isReactComponent={},dt.prototype.setState=function(_,B){if(typeof _!="object"&&typeof _!="function"&&_!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,_,B,"setState")},dt.prototype.forceUpdate=function(_){this.updater.enqueueForceUpdate(this,_,"forceUpdate")};function cn(){}cn.prototype=dt.prototype;function ft(_,B,je){this.props=_,this.context=B,this.refs=yt,this.updater=je||ue}var Qe=ft.prototype=new cn;Qe.constructor=ft,Ye(Qe,dt.prototype),Qe.isPureReactComponent=!0;var pt=Array.isArray,be=Object.prototype.hasOwnProperty,ot={current:null},Fe={key:!0,ref:!0,__self:!0,__source:!0};function rn(_,B,je){var Ue,rt={},Je=null,Ke=null;if(B!=null)for(Ue in B.ref!==void 0&&(Ke=B.ref),B.key!==void 0&&(Je=""+B.key),B)be.call(B,Ue)&&!Fe.hasOwnProperty(Ue)&&(rt[Ue]=B[Ue]);var et=arguments.length-2;if(et===1)rt.children=je;else if(1<et){for(var at=Array(et),Vt=0;Vt<et;Vt++)at[Vt]=arguments[Vt+2];rt.children=at}if(_&&_.defaultProps)for(Ue in et=_.defaultProps,et)rt[Ue]===void 0&&(rt[Ue]=et[Ue]);return{$$typeof:M,type:_,key:Je,ref:Ke,props:rt,_owner:ot.current}}function Ft(_,B){return{$$typeof:M,type:_.type,key:B,ref:_.ref,props:_.props,_owner:_._owner}}function Kt(_){return typeof _=="object"&&_!==null&&_.$$typeof===M}function an(_){var B={"=":"=0",":":"=2"};return"$"+_.replace(/[=:]/g,function(je){return B[je]})}var wt=/\/+/g;function ke(_,B){return typeof _=="object"&&_!==null&&_.key!=null?an(""+_.key):B.toString(36)}function Ut(_,B,je,Ue,rt){var Je=typeof _;(Je==="undefined"||Je==="boolean")&&(_=null);var Ke=!1;if(_===null)Ke=!0;else switch(Je){case"string":case"number":Ke=!0;break;case"object":switch(_.$$typeof){case M:case j:Ke=!0}}if(Ke)return Ke=_,rt=rt(Ke),_=Ue===""?"."+ke(Ke,0):Ue,pt(rt)?(je="",_!=null&&(je=_.replace(wt,"$&/")+"/"),Ut(rt,B,je,"",function(Vt){return Vt})):rt!=null&&(Kt(rt)&&(rt=Ft(rt,je+(!rt.key||Ke&&Ke.key===rt.key?"":(""+rt.key).replace(wt,"$&/")+"/")+_)),B.push(rt)),1;if(Ke=0,Ue=Ue===""?".":Ue+":",pt(_))for(var et=0;et<_.length;et++){Je=_[et];var at=Ue+ke(Je,et);Ke+=Ut(Je,B,je,at,rt)}else if(at=Ce(_),typeof at=="function")for(_=at.call(_),et=0;!(Je=_.next()).done;)Je=Je.value,at=Ue+ke(Je,et++),Ke+=Ut(Je,B,je,at,rt);else if(Je==="object")throw B=String(_),Error("Objects are not valid as a React child (found: "+(B==="[object Object]"?"object with keys {"+Object.keys(_).join(", ")+"}":B)+"). If you meant to render a collection of children, use an array instead.");return Ke}function xt(_,B,je){if(_==null)return _;var Ue=[],rt=0;return Ut(_,Ue,"","",function(Je){return B.call(je,Je,rt++)}),Ue}function Dt(_){if(_._status===-1){var B=_._result;B=B(),B.then(function(je){(_._status===0||_._status===-1)&&(_._status=1,_._result=je)},function(je){(_._status===0||_._status===-1)&&(_._status=2,_._result=je)}),_._status===-1&&(_._status=0,_._result=B)}if(_._status===1)return _._result.default;throw _._result}var Ee={current:null},Z={transition:null},Te={ReactCurrentDispatcher:Ee,ReactCurrentBatchConfig:Z,ReactCurrentOwner:ot};function ne(){throw Error("act(...) is not supported in production builds of React.")}return mt.Children={map:xt,forEach:function(_,B,je){xt(_,function(){B.apply(this,arguments)},je)},count:function(_){var B=0;return xt(_,function(){B++}),B},toArray:function(_){return xt(_,function(B){return B})||[]},only:function(_){if(!Kt(_))throw Error("React.Children.only expected to receive a single React element child.");return _}},mt.Component=dt,mt.Fragment=D,mt.Profiler=ht,mt.PureComponent=ft,mt.StrictMode=Be,mt.Suspense=de,mt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Te,mt.act=ne,mt.cloneElement=function(_,B,je){if(_==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+_+".");var Ue=Ye({},_.props),rt=_.key,Je=_.ref,Ke=_._owner;if(B!=null){if(B.ref!==void 0&&(Je=B.ref,Ke=ot.current),B.key!==void 0&&(rt=""+B.key),_.type&&_.type.defaultProps)var et=_.type.defaultProps;for(at in B)be.call(B,at)&&!Fe.hasOwnProperty(at)&&(Ue[at]=B[at]===void 0&&et!==void 0?et[at]:B[at])}var at=arguments.length-2;if(at===1)Ue.children=je;else if(1<at){et=Array(at);for(var Vt=0;Vt<at;Vt++)et[Vt]=arguments[Vt+2];Ue.children=et}return{$$typeof:M,type:_.type,key:rt,ref:Je,props:Ue,_owner:Ke}},mt.createContext=function(_){return _={$$typeof:S,_currentValue:_,_currentValue2:_,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},_.Provider={$$typeof:_t,_context:_},_.Consumer=_},mt.createElement=rn,mt.createFactory=function(_){var B=rn.bind(null,_);return B.type=_,B},mt.createRef=function(){return{current:null}},mt.forwardRef=function(_){return{$$typeof:Pt,render:_}},mt.isValidElement=Kt,mt.lazy=function(_){return{$$typeof:ut,_payload:{_status:-1,_result:_},_init:Dt}},mt.memo=function(_,B){return{$$typeof:ve,type:_,compare:B===void 0?null:B}},mt.startTransition=function(_){var B=Z.transition;Z.transition={};try{_()}finally{Z.transition=B}},mt.unstable_act=ne,mt.useCallback=function(_,B){return Ee.current.useCallback(_,B)},mt.useContext=function(_){return Ee.current.useContext(_)},mt.useDebugValue=function(){},mt.useDeferredValue=function(_){return Ee.current.useDeferredValue(_)},mt.useEffect=function(_,B){return Ee.current.useEffect(_,B)},mt.useId=function(){return Ee.current.useId()},mt.useImperativeHandle=function(_,B,je){return Ee.current.useImperativeHandle(_,B,je)},mt.useInsertionEffect=function(_,B){return Ee.current.useInsertionEffect(_,B)},mt.useLayoutEffect=function(_,B){return Ee.current.useLayoutEffect(_,B)},mt.useMemo=function(_,B){return Ee.current.useMemo(_,B)},mt.useReducer=function(_,B,je){return Ee.current.useReducer(_,B,je)},mt.useRef=function(_){return Ee.current.useRef(_)},mt.useState=function(_){return Ee.current.useState(_)},mt.useSyncExternalStore=function(_,B,je){return Ee.current.useSyncExternalStore(_,B,je)},mt.useTransition=function(){return Ee.current.useTransition()},mt.version="18.3.1",mt}var Jp={exports:{}};Jp.exports;var JT;function sD(){return JT||(JT=1,(function(M,j){process.env.NODE_ENV!=="production"&&(function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var D="18.3.1",Be=Symbol.for("react.element"),ht=Symbol.for("react.portal"),_t=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),Pt=Symbol.for("react.profiler"),de=Symbol.for("react.provider"),ve=Symbol.for("react.context"),ut=Symbol.for("react.forward_ref"),ee=Symbol.for("react.suspense"),Ce=Symbol.for("react.suspense_list"),ue=Symbol.for("react.memo"),Ye=Symbol.for("react.lazy"),yt=Symbol.for("react.offscreen"),dt=Symbol.iterator,cn="@@iterator";function ft(h){if(h===null||typeof h!="object")return null;var C=dt&&h[dt]||h[cn];return typeof C=="function"?C:null}var Qe={current:null},pt={transition:null},be={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},ot={current:null},Fe={},rn=null;function Ft(h){rn=h}Fe.setExtraStackFrame=function(h){rn=h},Fe.getCurrentStack=null,Fe.getStackAddendum=function(){var h="";rn&&(h+=rn);var C=Fe.getCurrentStack;return C&&(h+=C()||""),h};var Kt=!1,an=!1,wt=!1,ke=!1,Ut=!1,xt={ReactCurrentDispatcher:Qe,ReactCurrentBatchConfig:pt,ReactCurrentOwner:ot};xt.ReactDebugCurrentFrame=Fe,xt.ReactCurrentActQueue=be;function Dt(h){{for(var C=arguments.length,U=new Array(C>1?C-1:0),H=1;H<C;H++)U[H-1]=arguments[H];Z("warn",h,U)}}function Ee(h){{for(var C=arguments.length,U=new Array(C>1?C-1:0),H=1;H<C;H++)U[H-1]=arguments[H];Z("error",h,U)}}function Z(h,C,U){{var H=xt.ReactDebugCurrentFrame,K=H.getStackAddendum();K!==""&&(C+="%s",U=U.concat([K]));var Oe=U.map(function(re){return String(re)});Oe.unshift("Warning: "+C),Function.prototype.apply.call(console[h],console,Oe)}}var Te={};function ne(h,C){{var U=h.constructor,H=U&&(U.displayName||U.name)||"ReactClass",K=H+"."+C;if(Te[K])return;Ee("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",C,H),Te[K]=!0}}var _={isMounted:function(h){return!1},enqueueForceUpdate:function(h,C,U){ne(h,"forceUpdate")},enqueueReplaceState:function(h,C,U,H){ne(h,"replaceState")},enqueueSetState:function(h,C,U,H){ne(h,"setState")}},B=Object.assign,je={};Object.freeze(je);function Ue(h,C,U){this.props=h,this.context=C,this.refs=je,this.updater=U||_}Ue.prototype.isReactComponent={},Ue.prototype.setState=function(h,C){if(typeof h!="object"&&typeof h!="function"&&h!=null)throw new Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,h,C,"setState")},Ue.prototype.forceUpdate=function(h){this.updater.enqueueForceUpdate(this,h,"forceUpdate")};{var rt={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},Je=function(h,C){Object.defineProperty(Ue.prototype,h,{get:function(){Dt("%s(...) is deprecated in plain JavaScript React classes. %s",C[0],C[1])}})};for(var Ke in rt)rt.hasOwnProperty(Ke)&&Je(Ke,rt[Ke])}function et(){}et.prototype=Ue.prototype;function at(h,C,U){this.props=h,this.context=C,this.refs=je,this.updater=U||_}var Vt=at.prototype=new et;Vt.constructor=at,B(Vt,Ue.prototype),Vt.isPureReactComponent=!0;function kn(){var h={current:null};return Object.seal(h),h}var xr=Array.isArray;function En(h){return xr(h)}function tr(h){{var C=typeof Symbol=="function"&&Symbol.toStringTag,U=C&&h[Symbol.toStringTag]||h.constructor.name||"Object";return U}}function Vn(h){try{return Pn(h),!1}catch{return!0}}function Pn(h){return""+h}function Ir(h){if(Vn(h))return Ee("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",tr(h)),Pn(h)}function si(h,C,U){var H=h.displayName;if(H)return H;var K=C.displayName||C.name||"";return K!==""?U+"("+K+")":U}function oa(h){return h.displayName||"Context"}function Gn(h){if(h==null)return null;if(typeof h.tag=="number"&&Ee("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof h=="function")return h.displayName||h.name||null;if(typeof h=="string")return h;switch(h){case _t:return"Fragment";case ht:return"Portal";case Pt:return"Profiler";case S:return"StrictMode";case ee:return"Suspense";case Ce:return"SuspenseList"}if(typeof h=="object")switch(h.$$typeof){case ve:var C=h;return oa(C)+".Consumer";case de:var U=h;return oa(U._context)+".Provider";case ut:return si(h,h.render,"ForwardRef");case ue:var H=h.displayName||null;return H!==null?H:Gn(h.type)||"Memo";case Ye:{var K=h,Oe=K._payload,re=K._init;try{return Gn(re(Oe))}catch{return null}}}return null}var Cn=Object.prototype.hasOwnProperty,Bn={key:!0,ref:!0,__self:!0,__source:!0},yr,Ia,On;On={};function gr(h){if(Cn.call(h,"ref")){var C=Object.getOwnPropertyDescriptor(h,"ref").get;if(C&&C.isReactWarning)return!1}return h.ref!==void 0}function sa(h){if(Cn.call(h,"key")){var C=Object.getOwnPropertyDescriptor(h,"key").get;if(C&&C.isReactWarning)return!1}return h.key!==void 0}function Ya(h,C){var U=function(){yr||(yr=!0,Ee("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",C))};U.isReactWarning=!0,Object.defineProperty(h,"key",{get:U,configurable:!0})}function ci(h,C){var U=function(){Ia||(Ia=!0,Ee("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",C))};U.isReactWarning=!0,Object.defineProperty(h,"ref",{get:U,configurable:!0})}function J(h){if(typeof h.ref=="string"&&ot.current&&h.__self&&ot.current.stateNode!==h.__self){var C=Gn(ot.current.type);On[C]||(Ee('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',C,h.ref),On[C]=!0)}}var Re=function(h,C,U,H,K,Oe,re){var Ne={$$typeof:Be,type:h,key:C,ref:U,props:re,_owner:Oe};return Ne._store={},Object.defineProperty(Ne._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(Ne,"_self",{configurable:!1,enumerable:!1,writable:!1,value:H}),Object.defineProperty(Ne,"_source",{configurable:!1,enumerable:!1,writable:!1,value:K}),Object.freeze&&(Object.freeze(Ne.props),Object.freeze(Ne)),Ne};function tt(h,C,U){var H,K={},Oe=null,re=null,Ne=null,ct=null;if(C!=null){gr(C)&&(re=C.ref,J(C)),sa(C)&&(Ir(C.key),Oe=""+C.key),Ne=C.__self===void 0?null:C.__self,ct=C.__source===void 0?null:C.__source;for(H in C)Cn.call(C,H)&&!Bn.hasOwnProperty(H)&&(K[H]=C[H])}var Rt=arguments.length-2;if(Rt===1)K.children=U;else if(Rt>1){for(var tn=Array(Rt),Yt=0;Yt<Rt;Yt++)tn[Yt]=arguments[Yt+2];Object.freeze&&Object.freeze(tn),K.children=tn}if(h&&h.defaultProps){var nt=h.defaultProps;for(H in nt)K[H]===void 0&&(K[H]=nt[H])}if(Oe||re){var Qt=typeof h=="function"?h.displayName||h.name||"Unknown":h;Oe&&Ya(K,Qt),re&&ci(K,Qt)}return Re(h,Oe,re,Ne,ct,ot.current,K)}function At(h,C){var U=Re(h.type,C,h.ref,h._self,h._source,h._owner,h.props);return U}function Zt(h,C,U){if(h==null)throw new Error("React.cloneElement(...): The argument must be a React element, but you passed "+h+".");var H,K=B({},h.props),Oe=h.key,re=h.ref,Ne=h._self,ct=h._source,Rt=h._owner;if(C!=null){gr(C)&&(re=C.ref,Rt=ot.current),sa(C)&&(Ir(C.key),Oe=""+C.key);var tn;h.type&&h.type.defaultProps&&(tn=h.type.defaultProps);for(H in C)Cn.call(C,H)&&!Bn.hasOwnProperty(H)&&(C[H]===void 0&&tn!==void 0?K[H]=tn[H]:K[H]=C[H])}var Yt=arguments.length-2;if(Yt===1)K.children=U;else if(Yt>1){for(var nt=Array(Yt),Qt=0;Qt<Yt;Qt++)nt[Qt]=arguments[Qt+2];K.children=nt}return Re(h.type,Oe,re,Ne,ct,Rt,K)}function pn(h){return typeof h=="object"&&h!==null&&h.$$typeof===Be}var ln=".",qn=":";function Jt(h){var C=/[=:]/g,U={"=":"=0",":":"=2"},H=h.replace(C,function(K){return U[K]});return"$"+H}var Bt=!1,$t=/\/+/g;function ca(h){return h.replace($t,"$&/")}function Sr(h,C){return typeof h=="object"&&h!==null&&h.key!=null?(Ir(h.key),Jt(""+h.key)):C.toString(36)}function Ra(h,C,U,H,K){var Oe=typeof h;(Oe==="undefined"||Oe==="boolean")&&(h=null);var re=!1;if(h===null)re=!0;else switch(Oe){case"string":case"number":re=!0;break;case"object":switch(h.$$typeof){case Be:case ht:re=!0}}if(re){var Ne=h,ct=K(Ne),Rt=H===""?ln+Sr(Ne,0):H;if(En(ct)){var tn="";Rt!=null&&(tn=ca(Rt)+"/"),Ra(ct,C,tn,"",function(qf){return qf})}else ct!=null&&(pn(ct)&&(ct.key&&(!Ne||Ne.key!==ct.key)&&Ir(ct.key),ct=At(ct,U+(ct.key&&(!Ne||Ne.key!==ct.key)?ca(""+ct.key)+"/":"")+Rt)),C.push(ct));return 1}var Yt,nt,Qt=0,vn=H===""?ln:H+qn;if(En(h))for(var Cl=0;Cl<h.length;Cl++)Yt=h[Cl],nt=vn+Sr(Yt,Cl),Qt+=Ra(Yt,C,U,nt,K);else{var Go=ft(h);if(typeof Go=="function"){var Pi=h;Go===Pi.entries&&(Bt||Dt("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),Bt=!0);for(var qo=Go.call(Pi),uu,Gf=0;!(uu=qo.next()).done;)Yt=uu.value,nt=vn+Sr(Yt,Gf++),Qt+=Ra(Yt,C,U,nt,K)}else if(Oe==="object"){var uc=String(h);throw new Error("Objects are not valid as a React child (found: "+(uc==="[object Object]"?"object with keys {"+Object.keys(h).join(", ")+"}":uc)+"). If you meant to render a collection of children, use an array instead.")}}return Qt}function ji(h,C,U){if(h==null)return h;var H=[],K=0;return Ra(h,H,"","",function(Oe){return C.call(U,Oe,K++)}),H}function Zl(h){var C=0;return ji(h,function(){C++}),C}function Jl(h,C,U){ji(h,function(){C.apply(this,arguments)},U)}function dl(h){return ji(h,function(C){return C})||[]}function pl(h){if(!pn(h))throw new Error("React.Children.only expected to receive a single React element child.");return h}function eu(h){var C={$$typeof:ve,_currentValue:h,_currentValue2:h,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};C.Provider={$$typeof:de,_context:C};var U=!1,H=!1,K=!1;{var Oe={$$typeof:ve,_context:C};Object.defineProperties(Oe,{Provider:{get:function(){return H||(H=!0,Ee("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?")),C.Provider},set:function(re){C.Provider=re}},_currentValue:{get:function(){return C._currentValue},set:function(re){C._currentValue=re}},_currentValue2:{get:function(){return C._currentValue2},set:function(re){C._currentValue2=re}},_threadCount:{get:function(){return C._threadCount},set:function(re){C._threadCount=re}},Consumer:{get:function(){return U||(U=!0,Ee("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?")),C.Consumer}},displayName:{get:function(){return C.displayName},set:function(re){K||(Dt("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",re),K=!0)}}}),C.Consumer=Oe}return C._currentRenderer=null,C._currentRenderer2=null,C}var br=-1,_r=0,nr=1,fi=2;function Qa(h){if(h._status===br){var C=h._result,U=C();if(U.then(function(Oe){if(h._status===_r||h._status===br){var re=h;re._status=nr,re._result=Oe}},function(Oe){if(h._status===_r||h._status===br){var re=h;re._status=fi,re._result=Oe}}),h._status===br){var H=h;H._status=_r,H._result=U}}if(h._status===nr){var K=h._result;return K===void 0&&Ee(`lazy: Expected the result of a dynamic import() call. Instead received: %s
|
|
2
2
|
|
|
3
3
|
Your code should look like:
|
|
4
4
|
const MyComponent = lazy(() => import('./MyComponent'))
|