I am building a Page Builder Custom Content Type that will allow a user to enter in a URL and have the URL content display in an iFrame. Is this possible?
/app/code/Vendor/Module/view/adminhtml/ui_component/pagebuilder_vendor_module_form.xml
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd" extends="pagebuilder_base_form">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="provider" xsi:type="string">pagebuilder_vendor_module_form.pagebuilder_vendor_module_form_data_source</item>
</item>
<item name="label" xsi:type="string" translate="true">Catalog Page View</item>
</argument>
<settings>
<namespace>pagebuilder_vendor_module_form</namespace>
<deps>
<dep>pagebuilder_vendor_module_form.pagebuilder_vendor_module_form_data_source</dep>
</deps>
</settings>
<dataSource name="pagebuilder_vendor_module_form_data_source">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_PageBuilder/js/form/provider</item>
</item>
</argument>
<dataProvider name="pagebuilder_vendor_module_form_data_source" class="MagentoPageBuilderModelContentTypeDataProvider">
<settings>
<requestFieldName/>
<primaryFieldName/>
</settings>
</dataProvider>
</dataSource>
<fieldset name="appearance_fieldset" sortOrder="10" component="Magento_PageBuilder/js/form/element/dependent-fieldset">
<settings>
<label translate="true">Appearance</label>
<additionalClasses>
<class name="admin__fieldset-visual-select-large">true</class>
</additionalClasses>
<collapsible>false</collapsible>
<opened>true</opened>
<imports>
<link name="hideFieldset">${$.name}.appearance:options</link>
<link name="hideLabel">${$.name}.appearance:options</link>
</imports>
</settings>
<field name="appearance" formElement="select" sortOrder="10" component="Magento_PageBuilder/js/form/element/dependent-visual-select">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="default" xsi:type="string">default</item>
</item>
</argument>
<settings>
<additionalClasses>
<class name="admin__field-wide">true</class>
<class name="admin__field-visual-select-container">true</class>
</additionalClasses>
<dataType>text</dataType>
<validation>
<rule name="required-entry" xsi:type="boolean">true</rule>
</validation>
<elementTmpl>Magento_PageBuilder/form/element/visual-select</elementTmpl>
</settings>
<formElements>
<select>
<settings>
<options class="AppearanceSourceCatalogLayout"/>
</settings>
</select>
</formElements>
</field>
</fieldset>
<fieldset name="catalog-one" sortOrder="20">
<settings>
<label translate="true">Catalog One</label>
<collapsible>true</collapsible>
<opened>true</opened>
</settings>
<field name="catalog_one_title" sortOrder="20" formElement="input">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="source" xsi:type="string">page</item>
</item>
</argument>
<settings>
<dataScope>catalog_one_title</dataScope>
<dataType>text</dataType>
<label translate="true">Catalog Title</label>
<validation>
<rule name="validate-string" xsi:type="boolean">false</rule>
</validation>
</settings>
</field>
<urlInput name="catalog_one_link" sortOrder="30">
<settings>
<dataType>text</dataType>
<label translate="true">Issue Link</label>
<dataScope>catalog_one_link</dataScope>
<urlTypes class="MagentoUiModelUrlInputLinksConfigProvider"/>
</settings>
</urlInput>
</fieldset>
</form>
/app/code/Vendor/Module/view/adminhtml/pagebuilder/content_type/vendor_module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_PageBuilder:etc/content_type.xsd">
<type name="vendor_module"
label="Catalog Layout"
menu_section=""
component="Magento_PageBuilder/js/content-type"
preview_component="Vendor_Module/js/content-type/vendor-module/preview"
master_component="Magento_PageBuilder/js/content-type/master"
form="pagebuilder_vendor_module_form"
icon=""
sortOrder="23"
translate="label">
<children default_policy="deny"/>
<parents default_policy="deny">
<parent name="row" policy="allow"/>
<parent name="column" policy="allow"/>
</parents>
<appearances>
<appearance name="default"
default="true"
preview_template="Vendor_Module/content-type/vendor_module/default/preview"
master_template="Vendor_Module/content-type/vendor_module/default/master"
reader="Magento_PageBuilder/js/master-format/read/configurable">
<elements>
<element name="main">
<style name="text_align" source="text_align"/>
<style name="border" source="border_style" converter="Magento_PageBuilder/js/converter/style/border-style"/>
<style name="border_color" source="border_color"/>
<style name="background_color" source="background_color"/>
<style name="background_image" source="background_image" converter="Magento_PageBuilder/js/converter/style/background-image" preview_converter="Magento_PageBuilder/js/converter/style/preview/background-image"/>
<style name="border_width" source="border_width" converter="Magento_PageBuilder/js/converter/style/border-width"/>
<style name="border_radius" source="border_radius" converter="Magento_PageBuilder/js/converter/style/remove-px"/>
<style name="margins" storage_key="margins_and_padding" reader="Magento_PageBuilder/js/property/margins" converter="Magento_PageBuilder/js/converter/style/margins"/>
<style name="padding" storage_key="margins_and_padding" reader="Magento_PageBuilder/js/property/paddings" converter="Magento_PageBuilder/js/converter/style/paddings"/>
<style name="display" source="display" converter="Magento_PageBuilder/js/converter/style/display" preview_converter="Magento_PageBuilder/js/converter/style/preview/display"/>
<attribute name="name" source="data-content-type"/>
<attribute name="appearance" source="data-appearance"/>
<css name="css_classes"/>
</element>
<element name="catalog_one_title">
<html name="catalog_one_title" converter="Magento_PageBuilder/js/converter/html/tag-escaper"/>
</element>
<element name="catalog_one_link">
<style name="text_align" source="text_align"/>
<attribute name="catalog_one_link" reader="Magento_PageBuilder/js/property/link" persistence_mode="read"/>
<attribute name="virtual_link_href" storage_key="catalog_one_link" source="href" converter="Magento_PageBuilder/js/converter/attribute/link-href" persistence_mode="write"/>
<attribute name="virtual_link_target" storage_key="catalog_one_link" source="target" converter="Magento_PageBuilder/js/converter/attribute/link-target" persistence_mode="write"/>
<attribute name="virtual_link_type" storage_key="catalog_one_link" source="data-link-type" converter="Magento_PageBuilder/js/converter/attribute/link-type" persistence_mode="write"/>
</element>
</elements>
</appearance>
</appearances>
</type>
</config>
/app/code/Vendor/Module/view/adminhtml/web/template/content-type/vendor_module/default/master.html
<div attr="data.main.attributes">
<div class="catalog-menu">
<a href="javascript:void(0)" id="cat-title-1" class="catalog-title" data-catid="1">
<span
attr="data.catalog_one_title.attributes"
ko-style="data.catalog_one_title.style"
css="data.catalog_one_title.css"
html="data.catalog_one_title.html">
</span>
</a>
</div>
<div id="catalog-1" class="catalog-view active">
<div style="position:relative;padding-top:max(60%,326px);height:0;width:100%"><iframe allow="clipboard-write" sandbox="allow-top-navigation allow-top-navigation-by-user-activation allow-downloads allow-scripts allow-same-origin allow-popups allow-modals allow-popups-to-escape-sandbox" allowfullscreen="true" style="position:absolute;border:none;width:100%;height:100%;left:0;right:0;top:0;bottom:0;" if="data.catalog_one_link.attributes().href" attr="data.catalog_one_link.attributes" ko-style="data.catalog_one_link.style" css="data.catalog_one_link.css"></iframe></div>
</div>
</div>