@financial-times/custom-code-component v1.9.9
custom-code-component (<custom-code-component>
)
Web component custom element for instantiating Visual & Data Journalism team projects
Usage:
Instantiate the web component and pass it a URL to a bundled component you wish to render into the component root.
example.jsx
import React from 'react';
import ReactDOM from 'react-dom';
import css from './Component.css?inline';
const App = (props) => <div>{JSON.stringify(props)}</div>;
export default (shadowRoot, props, ...children) => {
const style = document.createElement("style");
const mountPoint = document.createElement("div");
style.innerHTML = css;
mountPoint.id = "component-root";
shadowRoot.appendChild(style);
shadowRoot.appendChild(mountPoint);
ReactDOM.createRoot(mountPoint).render(
<React.StrictMode>
<App {...props}>{children}</App>
</React.StrictMode>
);
};
index.html
<script src="custom-code-component.js" type="module"></script>
<custom-code-component path="ft-interactive/test-project/test-component" version="^1" data-component-props="{}" data-asset-type="custom-code-component">
<img alt="test component" src="https://ig.ft.com/components/ft-interactive/test-project/test-component@^1.png">
</custom-code-component>
Attributes
path
(string)- Component name in the format
[org]/[repo]/[component]
.- If
[org]
isccc-sdk
or ommitted, component will be loaded from Vite local dev server (127.0.0.1:5173). - Otherwise, it will be loaded from the CCCCDN
- If
- Component name in the format
version
(string)- Semantic Versioning range for the component.
data-component-props
(string)- Pass stringified JSON to make it available to children as the
data
prop.
- Pass stringified JSON to make it available to children as the
iframe
(boolean)- Render inside an iframe using
srcdoc
for extra sandboxing (default: false)
- Render inside an iframe using
shadow-open
(boolean)- Sets the shadow root to either open or closed (default: false)
data-asset-type="custom-code-component"
- Part of spec.
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
12 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago