@makeswift/runtime 0.0.0-1faafb3 → 0.0.0-3ead317
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/api.js +1 -0
- package/box-model.js +1 -0
- package/builder.js +1 -0
- package/components.js +1 -0
- package/dist/actions.cjs.js +121 -17
- package/dist/actions.cjs.js.map +1 -1
- package/dist/actions.es.js +106 -16
- package/dist/actions.es.js.map +1 -1
- package/dist/api.cjs.js +5 -0
- package/dist/api.cjs.js.map +1 -0
- package/dist/api.es.js +2 -0
- package/dist/api.es.js.map +1 -0
- package/dist/box-model.cjs.js +2 -2
- package/dist/box-model.es.js +1 -0
- package/dist/box-model.es.js.map +1 -1
- package/dist/box-models.cjs.js +28 -156
- package/dist/box-models.cjs.js.map +1 -1
- package/dist/box-models.es.js +31 -159
- package/dist/box-models.es.js.map +1 -1
- package/dist/builder.cjs.js +9 -0
- package/dist/builder.cjs.js.map +1 -0
- package/dist/builder.es.js +3 -0
- package/dist/builder.es.js.map +1 -0
- package/dist/components.cjs.js +66 -6900
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +28 -6866
- package/dist/components.es.js.map +1 -1
- package/dist/constants.cjs.js +241 -0
- package/dist/constants.cjs.js.map +1 -0
- package/dist/constants.es.js +240 -0
- package/dist/constants.es.js.map +1 -0
- package/dist/control-serialization.cjs.js +147 -0
- package/dist/control-serialization.cjs.js.map +1 -0
- package/dist/control-serialization.es.js +143 -0
- package/dist/control-serialization.es.js.map +1 -0
- package/dist/descriptors.cjs.js +222 -0
- package/dist/descriptors.cjs.js.map +1 -0
- package/dist/descriptors.es.js +188 -0
- package/dist/descriptors.es.js.map +1 -0
- package/dist/instances.cjs.js +106 -0
- package/dist/instances.cjs.js.map +1 -0
- package/dist/instances.es.js +103 -0
- package/dist/instances.es.js.map +1 -0
- package/dist/main.cjs.js +14 -2
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +5 -1
- package/dist/main.es.js.map +1 -1
- package/dist/next.cjs.js +171 -0
- package/dist/next.cjs.js.map +1 -0
- package/dist/next.es.js +161 -0
- package/dist/next.es.js.map +1 -0
- package/dist/prop-controllers.cjs.js +6 -175
- package/dist/prop-controllers.cjs.js.map +1 -1
- package/dist/prop-controllers.es.js +2 -173
- package/dist/prop-controllers.es.js.map +1 -1
- package/dist/react-builder-preview.cjs.js +274 -4130
- package/dist/react-builder-preview.cjs.js.map +1 -1
- package/dist/react-builder-preview.es.js +267 -4127
- package/dist/react-builder-preview.es.js.map +1 -1
- package/dist/react-page.cjs.js +262 -0
- package/dist/react-page.cjs.js.map +1 -0
- package/dist/react-page.es.js +241 -0
- package/dist/react-page.es.js.map +1 -0
- package/dist/react.cjs.js +31 -3
- package/dist/react.cjs.js.map +1 -1
- package/dist/react.cjs2.js +7587 -683
- package/dist/react.cjs2.js.map +1 -1
- package/dist/react.es.js +27 -1
- package/dist/react.es.js.map +1 -1
- package/dist/react.es2.js +7498 -649
- package/dist/react.es2.js.map +1 -1
- package/dist/types/api/constants.d.ts +4 -0
- package/dist/types/api/constants.d.ts.map +1 -0
- package/dist/types/api/generated/graphql.d.ts +120 -0
- package/dist/types/api/generated/graphql.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +3 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/react.d.ts +8 -0
- package/dist/types/api/react.d.ts.map +1 -0
- package/dist/types/api/types.d.ts +4 -0
- package/dist/types/api/types.d.ts.map +1 -0
- package/dist/types/builder/index.d.ts +2 -0
- package/dist/types/builder/index.d.ts.map +1 -0
- package/dist/types/builder/serialization/control-serialization.d.ts +78 -0
- package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -0
- package/dist/types/builder/serialization/function-serialization.d.ts +11 -0
- package/dist/types/builder/serialization/function-serialization.d.ts.map +1 -0
- package/dist/types/builder/serialization/index.d.ts +3 -0
- package/dist/types/builder/serialization/index.d.ts.map +1 -0
- package/dist/types/components/{Box → builtin/Box}/Box.d.ts +10 -4
- package/dist/types/components/builtin/Box/Box.d.ts.map +1 -0
- package/dist/types/components/{Box → builtin/Box}/animations.d.ts +2 -2
- package/dist/types/components/builtin/Box/animations.d.ts.map +1 -0
- package/dist/types/components/{Box → builtin/Box}/components/Placeholder/index.d.ts +0 -0
- package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -0
- package/dist/types/components/{Box → builtin/Box}/index.d.ts +1 -1
- package/dist/types/components/builtin/Box/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/Button.d.ts +118 -0
- package/dist/types/components/builtin/Button/Button.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/index.d.ts +2 -0
- package/dist/types/components/builtin/Button/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Carousel/Carousel.d.ts +28 -0
- package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -0
- package/dist/types/components/builtin/Carousel/index.d.ts +2 -0
- package/dist/types/components/builtin/Carousel/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Countdown/Countdown.d.ts +27 -0
- package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -0
- package/dist/types/components/builtin/Countdown/index.d.ts +2 -0
- package/dist/types/components/builtin/Countdown/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Divider/Divider.d.ts +17 -0
- package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -0
- package/dist/types/components/builtin/Divider/index.d.ts +2 -0
- package/dist/types/components/builtin/Divider/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Embed/Embed.d.ts +14 -0
- package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -0
- package/dist/types/components/builtin/Embed/index.d.ts +2 -0
- package/dist/types/components/builtin/Embed/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/Form.d.ts +41 -0
- package/dist/types/components/builtin/Form/Form.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +15 -0
- package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +15 -0
- package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +11 -0
- package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts +14 -0
- package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts +16 -0
- package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +10 -0
- package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts +23 -0
- package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +11 -0
- package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +11 -0
- package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +3 -0
- package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +17 -0
- package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +11 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts +23 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +19 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts +24 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts +13 -0
- package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +11 -0
- package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/index.d.ts +19 -0
- package/dist/types/components/builtin/Form/components/Field/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts +11 -0
- package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts +9 -0
- package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Spinner/index.d.ts +3 -0
- package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/context/FormContext.d.ts +32 -0
- package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/index.d.ts +2 -0
- package/dist/types/components/builtin/Form/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Image/Image.d.ts +29 -0
- package/dist/types/components/builtin/Image/Image.d.ts.map +1 -0
- package/dist/types/components/builtin/Image/index.d.ts +2 -0
- package/dist/types/components/builtin/Image/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/Navigation.d.ts +26 -0
- package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts +100 -0
- package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +8 -0
- package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +101 -0
- package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +13 -0
- package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/index.d.ts +2 -0
- package/dist/types/components/builtin/Navigation/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Root/Root.d.ts +14 -0
- package/dist/types/components/builtin/Root/Root.d.ts.map +1 -0
- package/dist/types/components/{Root → builtin/Root}/components/Placeholder/index.d.ts +0 -0
- package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Root/index.d.ts +2 -0
- package/dist/types/components/builtin/Root/index.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +21 -0
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +8 -0
- package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/index.d.ts +2 -0
- package/dist/types/components/builtin/SocialLinks/index.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/options.d.ts +113 -0
- package/dist/types/components/builtin/SocialLinks/options.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/Text.d.ts +19 -0
- package/dist/types/components/builtin/Text/Text.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +24 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +25 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +13 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts +5 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +3 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +3 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/index.d.ts +2 -0
- package/dist/types/components/builtin/Text/index.d.ts.map +1 -0
- package/dist/types/components/builtin/index.d.ts +16 -0
- package/dist/types/components/builtin/index.d.ts.map +1 -0
- package/dist/types/components/hooks/index.d.ts +7 -0
- package/dist/types/components/hooks/index.d.ts.map +1 -1
- package/dist/types/components/hooks/useBackgrounds.d.ts +59 -0
- package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -0
- package/dist/types/components/hooks/useBorder.d.ts +19 -0
- package/dist/types/components/hooks/useBorder.d.ts.map +1 -0
- package/dist/types/components/hooks/useBoxShadow.d.ts +19 -0
- package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -0
- package/dist/types/components/hooks/useColor.d.ts +7 -0
- package/dist/types/components/hooks/useColor.d.ts.map +1 -0
- package/dist/types/components/hooks/useFile.d.ts +13 -0
- package/dist/types/components/hooks/useFile.d.ts.map +1 -0
- package/dist/types/components/hooks/usePage.d.ts +7 -0
- package/dist/types/components/hooks/usePage.d.ts.map +1 -0
- package/dist/types/components/hooks/useTable.d.ts +66 -0
- package/dist/types/components/hooks/useTable.d.ts.map +1 -0
- package/dist/types/components/hooks/useTableFormFieldRefs.d.ts +8 -0
- package/dist/types/components/hooks/useTableFormFieldRefs.d.ts.map +1 -0
- package/dist/types/components/hooks/useTypography.d.ts +24 -0
- package/dist/types/components/hooks/useTypography.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +3 -3
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +11 -0
- package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +8 -0
- package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts +11 -0
- package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/index.d.ts +11 -0
- package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -0
- package/dist/types/components/shared/GutterContainer/index.d.ts +8 -0
- package/dist/types/components/shared/GutterContainer/index.d.ts.map +1 -0
- package/dist/types/components/shared/Link/index.d.ts +9 -0
- package/dist/types/components/shared/Link/index.d.ts.map +1 -0
- package/dist/types/components/utils/colorToString.d.ts +3 -0
- package/dist/types/components/utils/colorToString.d.ts.map +1 -0
- package/dist/types/components/utils/cssMediaRules.d.ts +23 -1
- package/dist/types/components/utils/cssMediaRules.d.ts.map +1 -1
- package/dist/types/components/utils/devices.d.ts +1 -0
- package/dist/types/components/utils/devices.d.ts.map +1 -1
- package/dist/types/components/utils/isNonNullable.d.ts +2 -0
- package/dist/types/components/utils/isNonNullable.d.ts.map +1 -0
- package/dist/types/components/utils/placeholders.d.ts +10 -0
- package/dist/types/components/utils/placeholders.d.ts.map +1 -0
- package/dist/types/components/utils/queries.d.ts +8 -0
- package/dist/types/components/utils/queries.d.ts.map +1 -0
- package/dist/types/components/utils/types.d.ts +10 -0
- package/dist/types/components/utils/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/next.d.ts +21 -0
- package/dist/types/next.d.ts.map +1 -0
- package/dist/types/prop-controllers/descriptors.d.ts +59 -4
- package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
- package/dist/types/prop-controllers/index.d.ts +3 -1
- package/dist/types/prop-controllers/index.d.ts.map +1 -1
- package/dist/types/prop-controllers/instances.d.ts +101 -0
- package/dist/types/prop-controllers/instances.d.ts.map +1 -0
- package/dist/types/prop-controllers/introspection.d.ts +5 -0
- package/dist/types/prop-controllers/introspection.d.ts.map +1 -0
- package/dist/types/react.d.ts +1 -1
- package/dist/types/react.d.ts.map +1 -1
- package/dist/types/runtimes/react.d.ts +27 -12
- package/dist/types/runtimes/react.d.ts.map +1 -1
- package/dist/types/state/actions.d.ts +161 -13
- package/dist/types/state/actions.d.ts.map +1 -1
- package/dist/types/state/modules/box-models.d.ts +5 -5
- package/dist/types/state/modules/box-models.d.ts.map +1 -1
- package/dist/types/state/modules/prop-controller-handles.d.ts +16 -0
- package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -0
- package/dist/types/state/modules/prop-controllers.d.ts +1 -0
- package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
- package/dist/types/state/modules/read-only-documents.d.ts +8 -4
- package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
- package/dist/types/state/modules/read-write-documents.d.ts +1 -1
- package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
- package/dist/types/state/react-builder-preview.d.ts +16 -11
- package/dist/types/state/react-builder-preview.d.ts.map +1 -1
- package/dist/types/state/react-page.d.ts +8 -3
- package/dist/types/state/react-page.d.ts.map +1 -1
- package/dist/types/utils/clamp.d.ts +3 -0
- package/dist/types/utils/clamp.d.ts.map +1 -0
- package/dist/types/utils/coalesce.d.ts +3 -0
- package/dist/types/utils/coalesce.d.ts.map +1 -0
- package/dist/types/utils/constants.d.ts +6 -0
- package/dist/types/utils/constants.d.ts.map +1 -0
- package/dist/types/utils/deepEqual.d.ts.map +1 -1
- package/dist/types/utils/intersection.d.ts +4 -0
- package/dist/types/utils/intersection.d.ts.map +1 -0
- package/dist/types/utils/keys.d.ts +5 -0
- package/dist/types/utils/keys.d.ts.map +1 -0
- package/dist/types/utils/shallowEqual.d.ts.map +1 -1
- package/dist/types/utils/shallowMerge.d.ts +2 -0
- package/dist/types/utils/shallowMerge.d.ts.map +1 -0
- package/next.js +1 -0
- package/package.json +72 -15
- package/prop-controllers.js +1 -0
- package/react.js +1 -0
- package/dist/types/components/Box/Box.d.ts.map +0 -1
- package/dist/types/components/Box/animations.d.ts.map +0 -1
- package/dist/types/components/Box/components/Placeholder/index.d.ts.map +0 -1
- package/dist/types/components/Box/index.d.ts.map +0 -1
- package/dist/types/components/Root/Root.d.ts +0 -11
- package/dist/types/components/Root/Root.d.ts.map +0 -1
- package/dist/types/components/Root/components/Placeholder/index.d.ts.map +0 -1
- package/dist/types/components/Root/index.d.ts +0 -2
- package/dist/types/components/Root/index.d.ts.map +0 -1
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __spreadValues = (a, b) => {
|
|
10
|
+
for (var prop in b || (b = {}))
|
|
11
|
+
if (__hasOwnProp.call(b, prop))
|
|
12
|
+
__defNormalProp(a, prop, b[prop]);
|
|
13
|
+
if (__getOwnPropSymbols)
|
|
14
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
+
if (__propIsEnum.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
}
|
|
18
|
+
return a;
|
|
19
|
+
};
|
|
20
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
+
var descriptors = require("./descriptors.cjs.js");
|
|
22
|
+
function serializeFunction(func) {
|
|
23
|
+
const messageChannel = new MessageChannel();
|
|
24
|
+
messageChannel.port1.onmessage = ({ data: [callId, args] }) => {
|
|
25
|
+
Promise.resolve().then(() => func.apply(null, args)).then((result) => messageChannel.port1.postMessage([callId, result]));
|
|
26
|
+
};
|
|
27
|
+
return messageChannel.port2;
|
|
28
|
+
}
|
|
29
|
+
function deserializeFunction(serializedFunction) {
|
|
30
|
+
let nextCallId = 0;
|
|
31
|
+
const calls = /* @__PURE__ */ new Map();
|
|
32
|
+
serializedFunction.onmessage = ({ data: [callId, result] }) => {
|
|
33
|
+
var _a;
|
|
34
|
+
(_a = calls.get(callId)) == null ? void 0 : _a(result);
|
|
35
|
+
calls.delete(callId);
|
|
36
|
+
};
|
|
37
|
+
return function deserializedFunction(...args) {
|
|
38
|
+
return new Promise((resolve) => {
|
|
39
|
+
const callId = nextCallId++;
|
|
40
|
+
calls.set(callId, resolve);
|
|
41
|
+
serializedFunction.postMessage([callId, args]);
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function serializeShapeControl(control) {
|
|
46
|
+
const { type } = control.options;
|
|
47
|
+
const transferables = [];
|
|
48
|
+
const serializedType = {};
|
|
49
|
+
Object.entries(type).forEach(([key, control2]) => {
|
|
50
|
+
const [serializedControl, serializedControlTransferables] = serializeControl(control2);
|
|
51
|
+
serializedType[key] = serializedControl;
|
|
52
|
+
transferables.push(...serializedControlTransferables);
|
|
53
|
+
});
|
|
54
|
+
return [__spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { type: serializedType }) }), transferables];
|
|
55
|
+
}
|
|
56
|
+
function deserializeShapeControl(control) {
|
|
57
|
+
const { type } = control.options;
|
|
58
|
+
const deserializedType = {};
|
|
59
|
+
Object.entries(type).forEach(([key, control2]) => {
|
|
60
|
+
deserializedType[key] = deserializeControl(control2);
|
|
61
|
+
});
|
|
62
|
+
return __spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { type: deserializedType }) });
|
|
63
|
+
}
|
|
64
|
+
function serializeListControl(control) {
|
|
65
|
+
const { type, getItemLabel } = control.options;
|
|
66
|
+
const transferables = [];
|
|
67
|
+
const [serializedType, serializedTypeTransferables] = serializeControl(type);
|
|
68
|
+
const serializedGetItemLabel = getItemLabel && serializeFunction(getItemLabel);
|
|
69
|
+
transferables.push(...serializedTypeTransferables);
|
|
70
|
+
if (serializedGetItemLabel != null)
|
|
71
|
+
transferables.push(serializedGetItemLabel);
|
|
72
|
+
return [
|
|
73
|
+
__spreadProps(__spreadValues({}, control), {
|
|
74
|
+
options: __spreadProps(__spreadValues({}, control.options), {
|
|
75
|
+
type: serializedType,
|
|
76
|
+
getItemLabel: serializedGetItemLabel
|
|
77
|
+
})
|
|
78
|
+
}),
|
|
79
|
+
transferables
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
function deserializeListControl(serializedControl) {
|
|
83
|
+
const { type, getItemLabel } = serializedControl.options;
|
|
84
|
+
const deserializedType = deserializeControl(type);
|
|
85
|
+
const deserializedGetItemLabel = getItemLabel && deserializeFunction(getItemLabel);
|
|
86
|
+
return __spreadProps(__spreadValues({}, serializedControl), {
|
|
87
|
+
options: __spreadProps(__spreadValues({}, serializedControl.options), {
|
|
88
|
+
type: deserializedType,
|
|
89
|
+
getItemLabel: deserializedGetItemLabel
|
|
90
|
+
})
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function serializeTypeaheadControl(control) {
|
|
94
|
+
const { getItems } = control.options;
|
|
95
|
+
const serializedGetItems = getItems && serializeFunction(getItems);
|
|
96
|
+
return [
|
|
97
|
+
__spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { getItems: serializedGetItems }) }),
|
|
98
|
+
serializedGetItems == null ? [] : [serializedGetItems]
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
function deserializeTypeaheadControl(serializedControl) {
|
|
102
|
+
const { getItems } = serializedControl.options;
|
|
103
|
+
const deserializedGetItems = getItems && deserializeFunction(getItems);
|
|
104
|
+
return __spreadProps(__spreadValues({}, serializedControl), {
|
|
105
|
+
options: __spreadProps(__spreadValues({}, serializedControl.options), { getItems: deserializedGetItems })
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function serializeControl(control) {
|
|
109
|
+
switch (control.type) {
|
|
110
|
+
case descriptors.Types.List:
|
|
111
|
+
return serializeListControl(control);
|
|
112
|
+
case descriptors.Types.Shape:
|
|
113
|
+
return serializeShapeControl(control);
|
|
114
|
+
case descriptors.Types.Typeahead:
|
|
115
|
+
return serializeTypeaheadControl(control);
|
|
116
|
+
default:
|
|
117
|
+
return [control, []];
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function deserializeControl(serializedControl) {
|
|
121
|
+
switch (serializedControl.type) {
|
|
122
|
+
case descriptors.Types.List:
|
|
123
|
+
return deserializeListControl(serializedControl);
|
|
124
|
+
case descriptors.Types.Shape:
|
|
125
|
+
return deserializeShapeControl(serializedControl);
|
|
126
|
+
case descriptors.Types.Typeahead:
|
|
127
|
+
return deserializeTypeaheadControl(serializedControl);
|
|
128
|
+
default:
|
|
129
|
+
return serializedControl;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function serializeControls(controls) {
|
|
133
|
+
return Object.entries(controls).reduce(([accControls, accTransferables], [key, control]) => {
|
|
134
|
+
const [serializedControl, transferables] = serializeControl(control);
|
|
135
|
+
return [__spreadProps(__spreadValues({}, accControls), { [key]: serializedControl }), [...accTransferables, ...transferables]];
|
|
136
|
+
}, [{}, []]);
|
|
137
|
+
}
|
|
138
|
+
function deserializeControls(serializedControls) {
|
|
139
|
+
return Object.entries(serializedControls).reduce((deserializedControls, [key, serializedControl]) => {
|
|
140
|
+
return __spreadProps(__spreadValues({}, deserializedControls), { [key]: deserializeControl(serializedControl) });
|
|
141
|
+
}, {});
|
|
142
|
+
}
|
|
143
|
+
exports.deserializeControls = deserializeControls;
|
|
144
|
+
exports.deserializeFunction = deserializeFunction;
|
|
145
|
+
exports.serializeControls = serializeControls;
|
|
146
|
+
exports.serializeFunction = serializeFunction;
|
|
147
|
+
//# sourceMappingURL=control-serialization.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-serialization.cjs.js","sources":["../src/builder/serialization/function-serialization.ts","../src/builder/serialization/control-serialization.ts"],"sourcesContent":["declare const SerializedFunctionTag: unique symbol\n\ntype AnyFunction = (...args: any) => any\n\nexport type SerializedFunction<T extends AnyFunction> = MessagePort & {\n readonly [SerializedFunctionTag]: T\n}\n\ntype SerializedFunctionReturnType<T extends AnyFunction> = Awaited<ReturnType<T>>\n\nexport type DeserializedFunction<T extends AnyFunction> = (\n ...args: Parameters<T>\n) => Promise<SerializedFunctionReturnType<T>>\n\ntype CallID = number\n\nexport function serializeFunction<T extends AnyFunction>(func: T): SerializedFunction<T> {\n type CallMessageEvent = MessageEvent<[CallID, Parameters<T>]>\n\n const messageChannel = new MessageChannel()\n\n messageChannel.port1.onmessage = ({ data: [callId, args] }: CallMessageEvent) => {\n Promise.resolve()\n .then(() => func.apply(null, args))\n .then(result => messageChannel.port1.postMessage([callId, result]))\n }\n\n return messageChannel.port2 as SerializedFunction<T>\n}\n\nexport function deserializeFunction<T extends AnyFunction>(\n serializedFunction: SerializedFunction<T>,\n): DeserializedFunction<T> {\n type Result = SerializedFunctionReturnType<T>\n type ResultMessageEvent = MessageEvent<[CallID, Result]>\n type ResolveCallPromise = (value: Result | PromiseLike<Result>) => void\n\n let nextCallId = 0\n const calls = new Map<CallID, ResolveCallPromise>()\n\n serializedFunction.onmessage = ({ data: [callId, result] }: ResultMessageEvent) => {\n calls.get(callId)?.(result)\n\n calls.delete(callId)\n }\n\n return function deserializedFunction(...args) {\n return new Promise(resolve => {\n const callId = nextCallId++\n\n calls.set(callId, resolve)\n\n serializedFunction.postMessage([callId, args])\n })\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('serializeFunction & deserializeFunction', () => {\n test('simple call', async () => {\n // Arrange\n const add = deserializeFunction(serializeFunction((a, b) => a + b))\n\n // Act\n const result = await add(2, 2)\n\n // Assert\n expect(result).toBe(4)\n })\n\n test('multiple synchronous calls', async () => {\n // Arrange\n const add = deserializeFunction(serializeFunction((a, b) => a + b))\n\n // Act\n const results = await Promise.all(Array.from({ length: 5 }, (_, i) => add(1, i)))\n\n // Assert\n expect(results).toEqual([1, 2, 3, 4, 5])\n })\n })\n}\n","import {\n Data,\n ListDescriptor as ListControl,\n ListOptions as ListControlConfig,\n ListValue as ListControlValue,\n ShapeDescriptor as ShapeControl,\n ShapeValue as ShapeControlValue,\n TypeaheadDescriptor as TypeaheadControl,\n TypeaheadOptions as TypeaheadControlConfig,\n TypeaheadValue as TypeaheadControlValue,\n PanelDescriptor as PanelControl,\n PanelDescriptorType as PanelControlType,\n PanelDescriptorValueType as PanelControlValueType,\n PropControllerDescriptor as Control,\n Props as Controls,\n} from '../../prop-controllers'\nimport {\n DeserializedFunction,\n deserializeFunction,\n SerializedFunction,\n serializeFunction,\n} from './function-serialization'\n\ntype SerializedShapeControlConfig<T extends Record<string, SerializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: SerializedPanelControlValueType<T[K]> }\n}\n\ntype SerializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n> = {\n type: typeof Controls.Types.Shape\n options: SerializedShapeControlConfig<U>\n}\n\nfunction serializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, PanelControl>,\n>(\n control: ShapeControl<T, U>,\n): [\n SerializedShapeControl<\n T,\n { [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>> }\n >,\n Transferable[],\n] {\n const { type } = control.options\n const transferables: Transferable[] = []\n const serializedType = {} as {\n [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n const [serializedControl, serializedControlTransferables] = serializeControl(control)\n\n serializedType[key as keyof typeof type] = serializedControl as SerializedPanelControl\n transferables.push(...serializedControlTransferables)\n })\n\n // @ts-expect-error: preset types are incompatible\n return [{ ...control, options: { ...control.options, type: serializedType } }, transferables]\n}\n\ntype DeserializedShapeControlConfig<T extends Record<string, DeserializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: DeserializedPanelControlValueType<T[K]> }\n}\n\ntype DeserializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, DeserializedPanelControl>,\n> = {\n type: typeof Controls.Types.Shape\n options: DeserializedShapeControlConfig<U>\n}\n\nfunction deserializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n>(\n control: SerializedShapeControl<T, U>,\n): DeserializedShapeControl<\n T,\n { [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>> }\n> {\n const { type } = control.options\n const deserializedType = {} as {\n [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n deserializedType[key as keyof typeof type] = deserializeControl(\n control,\n ) as DeserializedPanelControl\n })\n\n // @ts-expect-error: preset types are incompatible\n return { ...control, options: { ...control.options, type: deserializedType } }\n}\n\ntype SerializedListControlConfig<T extends Data> = {\n type: SerializedPanelControl<T>\n label?: string\n getItemLabel?: SerializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype SerializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof Controls.Types.List\n options: SerializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction serializeListControl<T extends Data>(\n control: ListControl<ListControlValue<T>>,\n): [SerializedListControl<ListControlValue<T>>, Transferable[]] {\n const { type, getItemLabel } = control.options\n const transferables: Transferable[] = []\n\n const [serializedType, serializedTypeTransferables] = serializeControl(type)\n const serializedGetItemLabel = getItemLabel && serializeFunction(getItemLabel)\n\n transferables.push(...serializedTypeTransferables)\n if (serializedGetItemLabel != null) transferables.push(serializedGetItemLabel)\n\n return [\n {\n ...control,\n options: {\n ...control.options,\n type: serializedType as SerializedPanelControl,\n getItemLabel: serializedGetItemLabel,\n },\n },\n transferables,\n ]\n}\n\ntype DeserializedListControlConfig<T extends Data> = {\n type: DeserializedPanelControl<T>\n label?: string\n getItemLabel?: DeserializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype DeserializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof Controls.Types.List\n options: DeserializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction deserializeListControl<T extends Data>(\n serializedControl: SerializedListControl<ListControlValue<T>>,\n): DeserializedListControl<ListControlValue<T>> {\n const { type, getItemLabel } = serializedControl.options\n\n const deserializedType = deserializeControl(type) as DeserializedPanelControl\n const deserializedGetItemLabel = getItemLabel && deserializeFunction(getItemLabel)\n\n return {\n ...serializedControl,\n options: {\n ...serializedControl.options,\n type: deserializedType,\n getItemLabel: deserializedGetItemLabel,\n },\n }\n}\n\ntype SerializedTypeaheadControlConfig<T extends Data> = {\n getItems: SerializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype SerializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof Controls.Types.Typeahead\n options: SerializedTypeaheadControlConfig<T['value']>\n}\n\nfunction serializeTypeaheadControl<T extends Data>(\n control: TypeaheadControl<TypeaheadControlValue<T>>,\n): [SerializedTypeaheadControl<TypeaheadControlValue<T>>, Transferable[]] {\n const { getItems } = control.options\n\n const serializedGetItems = getItems && serializeFunction(getItems)\n\n return [\n { ...control, options: { ...control.options, getItems: serializedGetItems } },\n serializedGetItems == null ? [] : [serializedGetItems],\n ]\n}\n\ntype DeserializedTypeaheadControlConfig<T extends Data> = {\n getItems: DeserializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype DeserializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof Controls.Types.Typeahead\n options: DeserializedTypeaheadControlConfig<T['value']>\n}\n\nfunction deserializeTypeaheadControl<T extends Data>(\n serializedControl: SerializedTypeaheadControl<TypeaheadControlValue<T>>,\n): DeserializedTypeaheadControl<TypeaheadControlValue<T>> {\n const { getItems } = serializedControl.options\n\n const deserializedGetItems = getItems && deserializeFunction(getItems)\n\n return {\n ...serializedControl,\n options: { ...serializedControl.options, getItems: deserializedGetItems },\n }\n}\n\nexport type SerializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n >\n | SerializedListControl<T extends ListControlValue ? T : ListControlValue>\n | SerializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | SerializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n\ntype SerializedPanelControl<T extends Data = Data> = Extract<\n SerializedControl<T>,\n { type: PanelControlType }\n>\n\ntype SerializedPanelControlValueType<T extends SerializedPanelControl> =\n T extends SerializedPanelControl<infer U> ? U : never\n\nexport type DeserializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n >\n | DeserializedListControl<T extends ListControlValue ? T : ListControlValue>\n | DeserializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | DeserializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n\ntype DeserializedPanelControl<T extends Data = Data> = Extract<\n DeserializedControl<T>,\n { type: PanelControlType }\n>\n\ntype DeserializedPanelControlValueType<T extends DeserializedPanelControl> =\n T extends DeserializedPanelControl<infer U> ? U : never\n\nfunction serializeControl<T extends Data>(\n control: Control<T>,\n): [SerializedControl<T>, Transferable[]] {\n switch (control.type) {\n case Controls.Types.List:\n return serializeListControl(control)\n\n case Controls.Types.Shape:\n return serializeShapeControl(control)\n\n case Controls.Types.Typeahead:\n return serializeTypeaheadControl(control)\n\n default:\n return [control, []]\n }\n}\n\nfunction deserializeControl<T extends Data>(\n serializedControl: SerializedControl<T>,\n): DeserializedControl<T> {\n switch (serializedControl.type) {\n case Controls.Types.List:\n return deserializeListControl(serializedControl)\n\n case Controls.Types.Shape:\n return deserializeShapeControl(serializedControl)\n\n case Controls.Types.Typeahead:\n return deserializeTypeaheadControl(serializedControl)\n\n default:\n return serializedControl\n }\n}\n\nexport function serializeControls(\n controls: Record<string, Control>,\n): [Record<string, SerializedControl>, Transferable[]] {\n return Object.entries(controls).reduce(\n ([accControls, accTransferables], [key, control]) => {\n const [serializedControl, transferables] = serializeControl(control)\n\n return [{ ...accControls, [key]: serializedControl }, [...accTransferables, ...transferables]]\n },\n [{}, []] as [Record<string, SerializedControl>, Transferable[]],\n )\n}\n\nexport function deserializeControls(\n serializedControls: Record<string, SerializedControl>,\n): Record<string, DeserializedControl> {\n return Object.entries(serializedControls).reduce(\n (deserializedControls, [key, serializedControl]) => {\n return { ...deserializedControls, [key]: deserializeControl(serializedControl) }\n },\n {} as Record<string, DeserializedControl>,\n )\n}\n"],"names":["Controls.Types"],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
import { T as Types } from "./descriptors.es.js";
|
|
21
|
+
function serializeFunction(func) {
|
|
22
|
+
const messageChannel = new MessageChannel();
|
|
23
|
+
messageChannel.port1.onmessage = ({ data: [callId, args] }) => {
|
|
24
|
+
Promise.resolve().then(() => func.apply(null, args)).then((result) => messageChannel.port1.postMessage([callId, result]));
|
|
25
|
+
};
|
|
26
|
+
return messageChannel.port2;
|
|
27
|
+
}
|
|
28
|
+
function deserializeFunction(serializedFunction) {
|
|
29
|
+
let nextCallId = 0;
|
|
30
|
+
const calls = /* @__PURE__ */ new Map();
|
|
31
|
+
serializedFunction.onmessage = ({ data: [callId, result] }) => {
|
|
32
|
+
var _a;
|
|
33
|
+
(_a = calls.get(callId)) == null ? void 0 : _a(result);
|
|
34
|
+
calls.delete(callId);
|
|
35
|
+
};
|
|
36
|
+
return function deserializedFunction(...args) {
|
|
37
|
+
return new Promise((resolve) => {
|
|
38
|
+
const callId = nextCallId++;
|
|
39
|
+
calls.set(callId, resolve);
|
|
40
|
+
serializedFunction.postMessage([callId, args]);
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function serializeShapeControl(control) {
|
|
45
|
+
const { type } = control.options;
|
|
46
|
+
const transferables = [];
|
|
47
|
+
const serializedType = {};
|
|
48
|
+
Object.entries(type).forEach(([key, control2]) => {
|
|
49
|
+
const [serializedControl, serializedControlTransferables] = serializeControl(control2);
|
|
50
|
+
serializedType[key] = serializedControl;
|
|
51
|
+
transferables.push(...serializedControlTransferables);
|
|
52
|
+
});
|
|
53
|
+
return [__spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { type: serializedType }) }), transferables];
|
|
54
|
+
}
|
|
55
|
+
function deserializeShapeControl(control) {
|
|
56
|
+
const { type } = control.options;
|
|
57
|
+
const deserializedType = {};
|
|
58
|
+
Object.entries(type).forEach(([key, control2]) => {
|
|
59
|
+
deserializedType[key] = deserializeControl(control2);
|
|
60
|
+
});
|
|
61
|
+
return __spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { type: deserializedType }) });
|
|
62
|
+
}
|
|
63
|
+
function serializeListControl(control) {
|
|
64
|
+
const { type, getItemLabel } = control.options;
|
|
65
|
+
const transferables = [];
|
|
66
|
+
const [serializedType, serializedTypeTransferables] = serializeControl(type);
|
|
67
|
+
const serializedGetItemLabel = getItemLabel && serializeFunction(getItemLabel);
|
|
68
|
+
transferables.push(...serializedTypeTransferables);
|
|
69
|
+
if (serializedGetItemLabel != null)
|
|
70
|
+
transferables.push(serializedGetItemLabel);
|
|
71
|
+
return [
|
|
72
|
+
__spreadProps(__spreadValues({}, control), {
|
|
73
|
+
options: __spreadProps(__spreadValues({}, control.options), {
|
|
74
|
+
type: serializedType,
|
|
75
|
+
getItemLabel: serializedGetItemLabel
|
|
76
|
+
})
|
|
77
|
+
}),
|
|
78
|
+
transferables
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
function deserializeListControl(serializedControl) {
|
|
82
|
+
const { type, getItemLabel } = serializedControl.options;
|
|
83
|
+
const deserializedType = deserializeControl(type);
|
|
84
|
+
const deserializedGetItemLabel = getItemLabel && deserializeFunction(getItemLabel);
|
|
85
|
+
return __spreadProps(__spreadValues({}, serializedControl), {
|
|
86
|
+
options: __spreadProps(__spreadValues({}, serializedControl.options), {
|
|
87
|
+
type: deserializedType,
|
|
88
|
+
getItemLabel: deserializedGetItemLabel
|
|
89
|
+
})
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
function serializeTypeaheadControl(control) {
|
|
93
|
+
const { getItems } = control.options;
|
|
94
|
+
const serializedGetItems = getItems && serializeFunction(getItems);
|
|
95
|
+
return [
|
|
96
|
+
__spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { getItems: serializedGetItems }) }),
|
|
97
|
+
serializedGetItems == null ? [] : [serializedGetItems]
|
|
98
|
+
];
|
|
99
|
+
}
|
|
100
|
+
function deserializeTypeaheadControl(serializedControl) {
|
|
101
|
+
const { getItems } = serializedControl.options;
|
|
102
|
+
const deserializedGetItems = getItems && deserializeFunction(getItems);
|
|
103
|
+
return __spreadProps(__spreadValues({}, serializedControl), {
|
|
104
|
+
options: __spreadProps(__spreadValues({}, serializedControl.options), { getItems: deserializedGetItems })
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function serializeControl(control) {
|
|
108
|
+
switch (control.type) {
|
|
109
|
+
case Types.List:
|
|
110
|
+
return serializeListControl(control);
|
|
111
|
+
case Types.Shape:
|
|
112
|
+
return serializeShapeControl(control);
|
|
113
|
+
case Types.Typeahead:
|
|
114
|
+
return serializeTypeaheadControl(control);
|
|
115
|
+
default:
|
|
116
|
+
return [control, []];
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function deserializeControl(serializedControl) {
|
|
120
|
+
switch (serializedControl.type) {
|
|
121
|
+
case Types.List:
|
|
122
|
+
return deserializeListControl(serializedControl);
|
|
123
|
+
case Types.Shape:
|
|
124
|
+
return deserializeShapeControl(serializedControl);
|
|
125
|
+
case Types.Typeahead:
|
|
126
|
+
return deserializeTypeaheadControl(serializedControl);
|
|
127
|
+
default:
|
|
128
|
+
return serializedControl;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function serializeControls(controls) {
|
|
132
|
+
return Object.entries(controls).reduce(([accControls, accTransferables], [key, control]) => {
|
|
133
|
+
const [serializedControl, transferables] = serializeControl(control);
|
|
134
|
+
return [__spreadProps(__spreadValues({}, accControls), { [key]: serializedControl }), [...accTransferables, ...transferables]];
|
|
135
|
+
}, [{}, []]);
|
|
136
|
+
}
|
|
137
|
+
function deserializeControls(serializedControls) {
|
|
138
|
+
return Object.entries(serializedControls).reduce((deserializedControls, [key, serializedControl]) => {
|
|
139
|
+
return __spreadProps(__spreadValues({}, deserializedControls), { [key]: deserializeControl(serializedControl) });
|
|
140
|
+
}, {});
|
|
141
|
+
}
|
|
142
|
+
export { serializeFunction as a, deserializeFunction as b, deserializeControls as d, serializeControls as s };
|
|
143
|
+
//# sourceMappingURL=control-serialization.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-serialization.es.js","sources":["../src/builder/serialization/function-serialization.ts","../src/builder/serialization/control-serialization.ts"],"sourcesContent":["declare const SerializedFunctionTag: unique symbol\n\ntype AnyFunction = (...args: any) => any\n\nexport type SerializedFunction<T extends AnyFunction> = MessagePort & {\n readonly [SerializedFunctionTag]: T\n}\n\ntype SerializedFunctionReturnType<T extends AnyFunction> = Awaited<ReturnType<T>>\n\nexport type DeserializedFunction<T extends AnyFunction> = (\n ...args: Parameters<T>\n) => Promise<SerializedFunctionReturnType<T>>\n\ntype CallID = number\n\nexport function serializeFunction<T extends AnyFunction>(func: T): SerializedFunction<T> {\n type CallMessageEvent = MessageEvent<[CallID, Parameters<T>]>\n\n const messageChannel = new MessageChannel()\n\n messageChannel.port1.onmessage = ({ data: [callId, args] }: CallMessageEvent) => {\n Promise.resolve()\n .then(() => func.apply(null, args))\n .then(result => messageChannel.port1.postMessage([callId, result]))\n }\n\n return messageChannel.port2 as SerializedFunction<T>\n}\n\nexport function deserializeFunction<T extends AnyFunction>(\n serializedFunction: SerializedFunction<T>,\n): DeserializedFunction<T> {\n type Result = SerializedFunctionReturnType<T>\n type ResultMessageEvent = MessageEvent<[CallID, Result]>\n type ResolveCallPromise = (value: Result | PromiseLike<Result>) => void\n\n let nextCallId = 0\n const calls = new Map<CallID, ResolveCallPromise>()\n\n serializedFunction.onmessage = ({ data: [callId, result] }: ResultMessageEvent) => {\n calls.get(callId)?.(result)\n\n calls.delete(callId)\n }\n\n return function deserializedFunction(...args) {\n return new Promise(resolve => {\n const callId = nextCallId++\n\n calls.set(callId, resolve)\n\n serializedFunction.postMessage([callId, args])\n })\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('serializeFunction & deserializeFunction', () => {\n test('simple call', async () => {\n // Arrange\n const add = deserializeFunction(serializeFunction((a, b) => a + b))\n\n // Act\n const result = await add(2, 2)\n\n // Assert\n expect(result).toBe(4)\n })\n\n test('multiple synchronous calls', async () => {\n // Arrange\n const add = deserializeFunction(serializeFunction((a, b) => a + b))\n\n // Act\n const results = await Promise.all(Array.from({ length: 5 }, (_, i) => add(1, i)))\n\n // Assert\n expect(results).toEqual([1, 2, 3, 4, 5])\n })\n })\n}\n","import {\n Data,\n ListDescriptor as ListControl,\n ListOptions as ListControlConfig,\n ListValue as ListControlValue,\n ShapeDescriptor as ShapeControl,\n ShapeValue as ShapeControlValue,\n TypeaheadDescriptor as TypeaheadControl,\n TypeaheadOptions as TypeaheadControlConfig,\n TypeaheadValue as TypeaheadControlValue,\n PanelDescriptor as PanelControl,\n PanelDescriptorType as PanelControlType,\n PanelDescriptorValueType as PanelControlValueType,\n PropControllerDescriptor as Control,\n Props as Controls,\n} from '../../prop-controllers'\nimport {\n DeserializedFunction,\n deserializeFunction,\n SerializedFunction,\n serializeFunction,\n} from './function-serialization'\n\ntype SerializedShapeControlConfig<T extends Record<string, SerializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: SerializedPanelControlValueType<T[K]> }\n}\n\ntype SerializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n> = {\n type: typeof Controls.Types.Shape\n options: SerializedShapeControlConfig<U>\n}\n\nfunction serializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, PanelControl>,\n>(\n control: ShapeControl<T, U>,\n): [\n SerializedShapeControl<\n T,\n { [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>> }\n >,\n Transferable[],\n] {\n const { type } = control.options\n const transferables: Transferable[] = []\n const serializedType = {} as {\n [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n const [serializedControl, serializedControlTransferables] = serializeControl(control)\n\n serializedType[key as keyof typeof type] = serializedControl as SerializedPanelControl\n transferables.push(...serializedControlTransferables)\n })\n\n // @ts-expect-error: preset types are incompatible\n return [{ ...control, options: { ...control.options, type: serializedType } }, transferables]\n}\n\ntype DeserializedShapeControlConfig<T extends Record<string, DeserializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: DeserializedPanelControlValueType<T[K]> }\n}\n\ntype DeserializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, DeserializedPanelControl>,\n> = {\n type: typeof Controls.Types.Shape\n options: DeserializedShapeControlConfig<U>\n}\n\nfunction deserializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n>(\n control: SerializedShapeControl<T, U>,\n): DeserializedShapeControl<\n T,\n { [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>> }\n> {\n const { type } = control.options\n const deserializedType = {} as {\n [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n deserializedType[key as keyof typeof type] = deserializeControl(\n control,\n ) as DeserializedPanelControl\n })\n\n // @ts-expect-error: preset types are incompatible\n return { ...control, options: { ...control.options, type: deserializedType } }\n}\n\ntype SerializedListControlConfig<T extends Data> = {\n type: SerializedPanelControl<T>\n label?: string\n getItemLabel?: SerializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype SerializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof Controls.Types.List\n options: SerializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction serializeListControl<T extends Data>(\n control: ListControl<ListControlValue<T>>,\n): [SerializedListControl<ListControlValue<T>>, Transferable[]] {\n const { type, getItemLabel } = control.options\n const transferables: Transferable[] = []\n\n const [serializedType, serializedTypeTransferables] = serializeControl(type)\n const serializedGetItemLabel = getItemLabel && serializeFunction(getItemLabel)\n\n transferables.push(...serializedTypeTransferables)\n if (serializedGetItemLabel != null) transferables.push(serializedGetItemLabel)\n\n return [\n {\n ...control,\n options: {\n ...control.options,\n type: serializedType as SerializedPanelControl,\n getItemLabel: serializedGetItemLabel,\n },\n },\n transferables,\n ]\n}\n\ntype DeserializedListControlConfig<T extends Data> = {\n type: DeserializedPanelControl<T>\n label?: string\n getItemLabel?: DeserializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype DeserializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof Controls.Types.List\n options: DeserializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction deserializeListControl<T extends Data>(\n serializedControl: SerializedListControl<ListControlValue<T>>,\n): DeserializedListControl<ListControlValue<T>> {\n const { type, getItemLabel } = serializedControl.options\n\n const deserializedType = deserializeControl(type) as DeserializedPanelControl\n const deserializedGetItemLabel = getItemLabel && deserializeFunction(getItemLabel)\n\n return {\n ...serializedControl,\n options: {\n ...serializedControl.options,\n type: deserializedType,\n getItemLabel: deserializedGetItemLabel,\n },\n }\n}\n\ntype SerializedTypeaheadControlConfig<T extends Data> = {\n getItems: SerializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype SerializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof Controls.Types.Typeahead\n options: SerializedTypeaheadControlConfig<T['value']>\n}\n\nfunction serializeTypeaheadControl<T extends Data>(\n control: TypeaheadControl<TypeaheadControlValue<T>>,\n): [SerializedTypeaheadControl<TypeaheadControlValue<T>>, Transferable[]] {\n const { getItems } = control.options\n\n const serializedGetItems = getItems && serializeFunction(getItems)\n\n return [\n { ...control, options: { ...control.options, getItems: serializedGetItems } },\n serializedGetItems == null ? [] : [serializedGetItems],\n ]\n}\n\ntype DeserializedTypeaheadControlConfig<T extends Data> = {\n getItems: DeserializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype DeserializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof Controls.Types.Typeahead\n options: DeserializedTypeaheadControlConfig<T['value']>\n}\n\nfunction deserializeTypeaheadControl<T extends Data>(\n serializedControl: SerializedTypeaheadControl<TypeaheadControlValue<T>>,\n): DeserializedTypeaheadControl<TypeaheadControlValue<T>> {\n const { getItems } = serializedControl.options\n\n const deserializedGetItems = getItems && deserializeFunction(getItems)\n\n return {\n ...serializedControl,\n options: { ...serializedControl.options, getItems: deserializedGetItems },\n }\n}\n\nexport type SerializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n >\n | SerializedListControl<T extends ListControlValue ? T : ListControlValue>\n | SerializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | SerializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n\ntype SerializedPanelControl<T extends Data = Data> = Extract<\n SerializedControl<T>,\n { type: PanelControlType }\n>\n\ntype SerializedPanelControlValueType<T extends SerializedPanelControl> =\n T extends SerializedPanelControl<infer U> ? U : never\n\nexport type DeserializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n >\n | DeserializedListControl<T extends ListControlValue ? T : ListControlValue>\n | DeserializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | DeserializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n\ntype DeserializedPanelControl<T extends Data = Data> = Extract<\n DeserializedControl<T>,\n { type: PanelControlType }\n>\n\ntype DeserializedPanelControlValueType<T extends DeserializedPanelControl> =\n T extends DeserializedPanelControl<infer U> ? U : never\n\nfunction serializeControl<T extends Data>(\n control: Control<T>,\n): [SerializedControl<T>, Transferable[]] {\n switch (control.type) {\n case Controls.Types.List:\n return serializeListControl(control)\n\n case Controls.Types.Shape:\n return serializeShapeControl(control)\n\n case Controls.Types.Typeahead:\n return serializeTypeaheadControl(control)\n\n default:\n return [control, []]\n }\n}\n\nfunction deserializeControl<T extends Data>(\n serializedControl: SerializedControl<T>,\n): DeserializedControl<T> {\n switch (serializedControl.type) {\n case Controls.Types.List:\n return deserializeListControl(serializedControl)\n\n case Controls.Types.Shape:\n return deserializeShapeControl(serializedControl)\n\n case Controls.Types.Typeahead:\n return deserializeTypeaheadControl(serializedControl)\n\n default:\n return serializedControl\n }\n}\n\nexport function serializeControls(\n controls: Record<string, Control>,\n): [Record<string, SerializedControl>, Transferable[]] {\n return Object.entries(controls).reduce(\n ([accControls, accTransferables], [key, control]) => {\n const [serializedControl, transferables] = serializeControl(control)\n\n return [{ ...accControls, [key]: serializedControl }, [...accTransferables, ...transferables]]\n },\n [{}, []] as [Record<string, SerializedControl>, Transferable[]],\n )\n}\n\nexport function deserializeControls(\n serializedControls: Record<string, SerializedControl>,\n): Record<string, DeserializedControl> {\n return Object.entries(serializedControls).reduce(\n (deserializedControls, [key, serializedControl]) => {\n return { ...deserializedControls, [key]: deserializeControl(serializedControl) }\n },\n {} as Record<string, DeserializedControl>,\n )\n}\n"],"names":["Controls.Types"],"mappings":"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"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const Types = {
|
|
3
|
+
Backgrounds: "Backgrounds",
|
|
4
|
+
Border: "Border",
|
|
5
|
+
BorderRadius: "BorderRadius",
|
|
6
|
+
Checkbox: "Checkbox",
|
|
7
|
+
Date: "Date",
|
|
8
|
+
ElementID: "ElementID",
|
|
9
|
+
Font: "Font",
|
|
10
|
+
GapX: "GapX",
|
|
11
|
+
GapY: "GapY",
|
|
12
|
+
Grid: "Grid",
|
|
13
|
+
Image: "Image",
|
|
14
|
+
Images: "Images",
|
|
15
|
+
Link: "Link",
|
|
16
|
+
List: "List",
|
|
17
|
+
Margin: "Margin",
|
|
18
|
+
NavigationLinks: "NavigationLinks",
|
|
19
|
+
Number: "Number",
|
|
20
|
+
Padding: "Padding",
|
|
21
|
+
ResponsiveColor: "ResponsiveColor",
|
|
22
|
+
ResponsiveIconRadioGroup: "ResponsiveIconRadioGroup",
|
|
23
|
+
ResponsiveLength: "ResponsiveLength",
|
|
24
|
+
ResponsiveNumber: "ResponsiveNumber",
|
|
25
|
+
ResponsiveOpacity: "ResponsiveOpacity",
|
|
26
|
+
ResponsiveSelect: "ResponsiveSelect",
|
|
27
|
+
RichText: "RichText",
|
|
28
|
+
Shadows: "Shadows",
|
|
29
|
+
Shape: "Shape",
|
|
30
|
+
SocialLinks: "SocialLinks",
|
|
31
|
+
Table: "Table",
|
|
32
|
+
TableFormFields: "TableFormFields",
|
|
33
|
+
Typeahead: "Typeahead",
|
|
34
|
+
TextArea: "TextArea",
|
|
35
|
+
TextInput: "TextInput",
|
|
36
|
+
TextStyle: "TextStyle",
|
|
37
|
+
Video: "Video",
|
|
38
|
+
Width: "Width"
|
|
39
|
+
};
|
|
40
|
+
function Backgrounds(options = {}) {
|
|
41
|
+
return { type: Types.Backgrounds, options };
|
|
42
|
+
}
|
|
43
|
+
function Border(options = {}) {
|
|
44
|
+
return { type: Types.Border, options };
|
|
45
|
+
}
|
|
46
|
+
function BorderRadius(options = {}) {
|
|
47
|
+
return { type: Types.BorderRadius, options };
|
|
48
|
+
}
|
|
49
|
+
function Checkbox(options) {
|
|
50
|
+
return { type: Types.Checkbox, options };
|
|
51
|
+
}
|
|
52
|
+
function Date(options = {}) {
|
|
53
|
+
return { type: Types.Date, options };
|
|
54
|
+
}
|
|
55
|
+
function ElementID(options = {}) {
|
|
56
|
+
return { type: Types.ElementID, options };
|
|
57
|
+
}
|
|
58
|
+
function Font(options = {}) {
|
|
59
|
+
return { type: Types.Font, options };
|
|
60
|
+
}
|
|
61
|
+
function GapX(options = {}) {
|
|
62
|
+
return { type: Types.GapX, options };
|
|
63
|
+
}
|
|
64
|
+
function GapY(options = {}) {
|
|
65
|
+
return { type: Types.GapY, options };
|
|
66
|
+
}
|
|
67
|
+
function Grid(options = {}) {
|
|
68
|
+
return { type: Types.Grid, options };
|
|
69
|
+
}
|
|
70
|
+
function Image(options = {}) {
|
|
71
|
+
return { type: Types.Image, options };
|
|
72
|
+
}
|
|
73
|
+
function Images(options = {}) {
|
|
74
|
+
return { type: Types.Images, options };
|
|
75
|
+
}
|
|
76
|
+
function Link(options = {}) {
|
|
77
|
+
return { type: Types.Link, options };
|
|
78
|
+
}
|
|
79
|
+
function List(options) {
|
|
80
|
+
return { type: Types.List, options };
|
|
81
|
+
}
|
|
82
|
+
function Margin(options = {}) {
|
|
83
|
+
return { type: Types.Margin, options };
|
|
84
|
+
}
|
|
85
|
+
function NavigationLinks(options = {}) {
|
|
86
|
+
return { type: Types.NavigationLinks, options };
|
|
87
|
+
}
|
|
88
|
+
function Number(options = {}) {
|
|
89
|
+
return { type: Types.Number, options };
|
|
90
|
+
}
|
|
91
|
+
function Padding(options = {}) {
|
|
92
|
+
return { type: Types.Padding, options };
|
|
93
|
+
}
|
|
94
|
+
function ResponsiveColor(options = {}) {
|
|
95
|
+
return { type: Types.ResponsiveColor, options };
|
|
96
|
+
}
|
|
97
|
+
function ResponsiveIconRadioGroup(options) {
|
|
98
|
+
return { type: Types.ResponsiveIconRadioGroup, options };
|
|
99
|
+
}
|
|
100
|
+
function ResponsiveLength(options = {}) {
|
|
101
|
+
return { type: Types.ResponsiveLength, options };
|
|
102
|
+
}
|
|
103
|
+
function ResponsiveNumber(options = {}) {
|
|
104
|
+
return { type: Types.ResponsiveNumber, options };
|
|
105
|
+
}
|
|
106
|
+
function ResponsiveOpacity(options = {}) {
|
|
107
|
+
return { type: Types.ResponsiveOpacity, options };
|
|
108
|
+
}
|
|
109
|
+
function ResponsiveSelect(options) {
|
|
110
|
+
return { type: Types.ResponsiveSelect, options };
|
|
111
|
+
}
|
|
112
|
+
function RichText(options = {}) {
|
|
113
|
+
return { type: Types.RichText, options };
|
|
114
|
+
}
|
|
115
|
+
function Shadows(options = {}) {
|
|
116
|
+
return { type: Types.Shadows, options };
|
|
117
|
+
}
|
|
118
|
+
function Shape(options) {
|
|
119
|
+
return { type: Types.Shape, options };
|
|
120
|
+
}
|
|
121
|
+
function SocialLinks(options = {}) {
|
|
122
|
+
return { type: Types.SocialLinks, options };
|
|
123
|
+
}
|
|
124
|
+
function Table(options = {}) {
|
|
125
|
+
return { type: Types.Table, options };
|
|
126
|
+
}
|
|
127
|
+
function TableFormFields(options = {}) {
|
|
128
|
+
return { type: Types.TableFormFields, options };
|
|
129
|
+
}
|
|
130
|
+
function Typeahead(options) {
|
|
131
|
+
return { type: Types.Typeahead, options };
|
|
132
|
+
}
|
|
133
|
+
function TextArea(options = {}) {
|
|
134
|
+
return { type: Types.TextArea, options };
|
|
135
|
+
}
|
|
136
|
+
function TextInput(options = {}) {
|
|
137
|
+
return { type: Types.TextInput, options };
|
|
138
|
+
}
|
|
139
|
+
function TextStyle(options = {}) {
|
|
140
|
+
return { type: Types.TextStyle, options };
|
|
141
|
+
}
|
|
142
|
+
function Video(options = {}) {
|
|
143
|
+
return { type: Types.Video, options };
|
|
144
|
+
}
|
|
145
|
+
function Width(options = {}) {
|
|
146
|
+
return { type: Types.Width, options };
|
|
147
|
+
}
|
|
148
|
+
var descriptors = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
149
|
+
__proto__: null,
|
|
150
|
+
Types,
|
|
151
|
+
Backgrounds,
|
|
152
|
+
Border,
|
|
153
|
+
BorderRadius,
|
|
154
|
+
Checkbox,
|
|
155
|
+
Date,
|
|
156
|
+
ElementID,
|
|
157
|
+
Font,
|
|
158
|
+
GapX,
|
|
159
|
+
GapY,
|
|
160
|
+
Grid,
|
|
161
|
+
Image,
|
|
162
|
+
Images,
|
|
163
|
+
Link,
|
|
164
|
+
List,
|
|
165
|
+
Margin,
|
|
166
|
+
NavigationLinks,
|
|
167
|
+
Number,
|
|
168
|
+
Padding,
|
|
169
|
+
ResponsiveColor,
|
|
170
|
+
ResponsiveIconRadioGroup,
|
|
171
|
+
ResponsiveLength,
|
|
172
|
+
ResponsiveNumber,
|
|
173
|
+
ResponsiveOpacity,
|
|
174
|
+
ResponsiveSelect,
|
|
175
|
+
RichText,
|
|
176
|
+
Shadows,
|
|
177
|
+
Shape,
|
|
178
|
+
SocialLinks,
|
|
179
|
+
Table,
|
|
180
|
+
TableFormFields,
|
|
181
|
+
Typeahead,
|
|
182
|
+
TextArea,
|
|
183
|
+
TextInput,
|
|
184
|
+
TextStyle,
|
|
185
|
+
Video,
|
|
186
|
+
Width
|
|
187
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
188
|
+
exports.Backgrounds = Backgrounds;
|
|
189
|
+
exports.Border = Border;
|
|
190
|
+
exports.BorderRadius = BorderRadius;
|
|
191
|
+
exports.Checkbox = Checkbox;
|
|
192
|
+
exports.Date = Date;
|
|
193
|
+
exports.ElementID = ElementID;
|
|
194
|
+
exports.Font = Font;
|
|
195
|
+
exports.GapX = GapX;
|
|
196
|
+
exports.GapY = GapY;
|
|
197
|
+
exports.Grid = Grid;
|
|
198
|
+
exports.Image = Image;
|
|
199
|
+
exports.Images = Images;
|
|
200
|
+
exports.Link = Link;
|
|
201
|
+
exports.Margin = Margin;
|
|
202
|
+
exports.NavigationLinks = NavigationLinks;
|
|
203
|
+
exports.Number = Number;
|
|
204
|
+
exports.Padding = Padding;
|
|
205
|
+
exports.ResponsiveColor = ResponsiveColor;
|
|
206
|
+
exports.ResponsiveIconRadioGroup = ResponsiveIconRadioGroup;
|
|
207
|
+
exports.ResponsiveLength = ResponsiveLength;
|
|
208
|
+
exports.ResponsiveNumber = ResponsiveNumber;
|
|
209
|
+
exports.ResponsiveOpacity = ResponsiveOpacity;
|
|
210
|
+
exports.ResponsiveSelect = ResponsiveSelect;
|
|
211
|
+
exports.RichText = RichText;
|
|
212
|
+
exports.Shadows = Shadows;
|
|
213
|
+
exports.SocialLinks = SocialLinks;
|
|
214
|
+
exports.Table = Table;
|
|
215
|
+
exports.TableFormFields = TableFormFields;
|
|
216
|
+
exports.TextArea = TextArea;
|
|
217
|
+
exports.TextInput = TextInput;
|
|
218
|
+
exports.TextStyle = TextStyle;
|
|
219
|
+
exports.Types = Types;
|
|
220
|
+
exports.Width = Width;
|
|
221
|
+
exports.descriptors = descriptors;
|
|
222
|
+
//# sourceMappingURL=descriptors.cjs.js.map
|