Merge branch 'main' into v14/feature/block-custom-view-example-with-settings

This commit is contained in:
Niels Lyngsø
2024-08-27 13:05:17 +02:00
committed by GitHub
9 changed files with 119 additions and 11 deletions

View File

@@ -0,0 +1,31 @@
# Bellissima release instructions
## Build
> _See internal documentation on the build/release workflow._
## GitHub Release Notes
To generate release notes on GitHub.
- Go to the [**Releases** area](https://github.com/umbraco/Umbraco.CMS.Backoffice/releases)
- Press the [**"Draft a new release"** button](https://github.com/umbraco/Umbraco.CMS.Backoffice/releases/new)
- In the combobox for "Choose a tag", expand then select or enter the next version number, e.g. `v14.2.0`
- If the tag does not already exist, an option labelled "Create new tag: v14.2.0 on publish" will appear, select that option
- In the combobox for "Target: main", expand then select the release branch for the next version, e.g. `release/14.2`
- In the combobox for "Previous tag: auto":
- If the next release is an RC, then you can leave as `auto`
- Otherwise, select the previous stable version, e.g. `v14.1.1`
- Press the **"Generate release notes"** button, this will populate the main textarea
- Check the details, view in the "Preview" tab
- What type of release is this?
- If it's an RC, then check "Set as a pre-release"
- If it's stable, then check "Set as the latest release"
- Once you're happy with the contents and ready to save...
- If you need more time to review, press the **"Save draft"** button and you can come back to it later
- If you are ready to make the release notes public, then press **"Publish release"** button! :tada:
> If you're curious about how the content is generated, take a look at the `release.yml` configuration:
> https://github.com/umbraco/Umbraco.CMS.Backoffice/blob/main/.github/release.yml

View File

@@ -0,0 +1,5 @@
# UFM Custom Component
This example demonstrates how to write a custom Umbraco-Flavored Markdown (UFM) component.
https://docs.umbraco.com/umbraco-cms/reference/umbraco-flavored-markdown#custom-ufm-components

View File

@@ -0,0 +1,26 @@
import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { UmbUfmComponentBase } from '@umbraco-cms/backoffice/ufm';
import type { UfmToken } from '@umbraco-cms/backoffice/ufm';
export class UmbCustomUfmComponent extends UmbUfmComponentBase {
render(token: UfmToken) {
// You could do further regular expression/text processing,
// then output your custom HTML markup.
return `<ufm-custom-component text="${token.text}"></ufm-custom-component>`;
}
}
// eslint-disable-next-line local-rules/enforce-umb-prefix-on-element-name
@customElement('ufm-custom-component')
export class UmbCustomUfmComponentElement extends UmbLitElement {
@property()
text?: string;
override render() {
return html`<marquee>${this.text}</marquee>`;
}
}
export { UmbCustomUfmComponent as api };
export { UmbCustomUfmComponentElement as element };

View File

@@ -0,0 +1,13 @@
import type { ManifestUfmComponent } from '@umbraco-cms/backoffice/extension-registry';
export const manifests: Array<ManifestUfmComponent> = [
{
type: 'ufmComponent',
alias: 'Umb.CustomUfmComponent',
name: 'Custom UFM Component',
api: () => import('./custom-ufm-component.js'),
meta: {
marker: '%',
},
},
];

View File

@@ -1,12 +1,12 @@
{
"name": "@umbraco-cms/backoffice",
"version": "14.2.0",
"version": "14.3.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@umbraco-cms/backoffice",
"version": "14.2.0",
"version": "14.3.0",
"license": "MIT",
"workspaces": [
"./src/packages/block",

View File

@@ -1,7 +1,7 @@
{
"name": "@umbraco-cms/backoffice",
"license": "MIT",
"version": "14.2.0",
"version": "14.3.0",
"type": "module",
"exports": {
".": null,

View File

@@ -37,3 +37,8 @@ export class UmbSubmitWorkspaceAction extends UmbWorkspaceActionBase<UmbSubmitta
return await workspaceContext.requestSubmit();
}
}
/*
* @deprecated Use UmbSubmitWorkspaceAction instead
*/
export { UmbSubmitWorkspaceAction as UmbSaveWorkspaceAction };

View File

@@ -95,6 +95,20 @@ export class UmbMediaWorkspaceViewInfoElement extends UmbLitElement {
this._updateDate = Array.isArray(variants) ? variants[0].updateDate || 'Unknown' : 'Unknown';
});
}
#openSvg(imagePath: string) {
const popup = window.open('', '_blank');
if (!popup) return;
const html = `<!doctype html>
<body style="background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), linear-gradient(135deg, #ccc 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #ccc 75%), linear-gradient(135deg, transparent 75%, #ccc 75%); background-size:30px 30px; background-position:0 0, 15px 0, 15px -15px, 0px 15px;">
<img src="${imagePath}"/>
<script>history.pushState(null, null, "${window.location.href}");</script>
</body>`;
popup.document.open();
popup.document.write(html);
popup.document.close();
}
override render() {
return html`
@@ -118,18 +132,12 @@ export class UmbMediaWorkspaceViewInfoElement extends UmbLitElement {
}
#renderLinksSection() {
/** TODO Make sure link section is completed */
if (this._urls && this._urls.length) {
return html`
${repeat(
this._urls,
(url) => url.url,
(url) => html`
<a href=${url.url} target="_blank" class="link-item with-href">
<span class="link-content">${url.url}</span>
<uui-icon name="icon-out"></uui-icon>
</a>
`,
(item) => item.url,
(item) => this.#renderLinkItem(item),
)}
`;
} else {
@@ -141,6 +149,25 @@ export class UmbMediaWorkspaceViewInfoElement extends UmbLitElement {
}
}
#renderLinkItem(item: MediaUrlInfoModel) {
const ext = item.url.split(/[#?]/)[0].split('.').pop()?.trim();
if (ext === 'svg') {
return html`
<a href="#" target="_blank" class="link-item with-href" @click=${() => this.#openSvg(item.url)}>
<span class="link-content">${item.url}</span>
<uui-icon name="icon-out"></uui-icon>
</a>
`;
} else {
return html`
<a href=${item.url} target="_blank" class="link-item with-href">
<span class="link-content">${item.url}</span>
<uui-icon name="icon-out"></uui-icon>
</a>
`;
}
}
#renderGeneralSection() {
return html`
<div class="general-item">

View File

@@ -1,2 +1,3 @@
export * from './components/ufm-render/index.js';
export * from './plugins/marked-ufm.plugin.js';
export * from './ufm-components/ufm-component-base.js';