chore/remove-plop-extension-generator

This commit is contained in:
Mads Rasmussen
2024-02-23 14:58:29 +01:00
parent 641dbbbe04
commit 395063c8fa
6 changed files with 0 additions and 1236 deletions

View File

@@ -1,63 +0,0 @@
import { kebabCase, camelCase, startCase } from 'lodash-es';
const pascalCase = (str) => startCase(str).replace(/ /g, '');
const tagNamePrefix = 'umb-';
const classNamePrefix = 'Umb';
const extensions = [
{
type: 'propertyEditorUi',
path: '../../src/backoffice/shared/property-editors/uis',
templatePath: './templates/property-editor-ui',
},
];
export default function (plop) {
plop.setHelper('className', (type, name) => classNamePrefix + pascalCase(type) + pascalCase(name) + 'Element');
plop.setHelper('displayName', (name) => startCase(camelCase(name)));
plop.setHelper('extensionPath', (type, name) => extensions.find((e) => e.type === type).path + '/' + name);
plop.setHelper('extensionTemplatePath', (type) => extensions.find((e) => e.type === type).templatePath);
plop.setHelper('extensionFilename', (type, name) => kebabCase(type) + '-' + kebabCase(name));
plop.setHelper('extensionTagName', (type, name) => tagNamePrefix + kebabCase(type) + '-' + kebabCase(name));
plop.setGenerator('component', {
description: 'application controller logic',
prompts: [
{
type: 'list',
name: 'extensionType',
message: 'Select extension type',
choices: extensions.map((e) => e.type),
},
{
type: 'input',
name: 'name',
message: 'Enter extension name (i.e. color-picker)',
validate: (answer) => {
if (answer.length < 1) {
return 'Please enter a name for the extension';
} else return true;
},
// Convert the input into kebab case if not provided as such and strip prefix
filter: (response) => kebabCase(response.replace(/^umb-/, '')),
},
],
actions: [
{
type: 'add',
path: '{{ extensionPath extensionType name }}/{{extensionFilename extensionType name }}.element.ts',
templateFile: '{{extensionTemplatePath extensionType}}/element.ts.hbs',
},
{
type: 'add',
path: '{{ extensionPath extensionType name }}/{{ extensionFilename extensionType name }}.test.ts',
templateFile: '{{extensionTemplatePath extensionType}}/test.ts.hbs',
},
{
type: 'add',
path: '{{ extensionPath extensionType name }}/{{ extensionFilename extensionType name }}.stories.ts',
templateFile: '{{extensionTemplatePath extensionType}}/stories.ts.hbs',
},
],
});
}

View File

@@ -1,31 +0,0 @@
import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry';
import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit';
import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
import { UmbLitElement } from '@umbraco-cms/element';
/**
* @element {{ extensionTagName extensionType name }}
*/
@customElement('{{ extensionTagName extensionType name }}')
export class {{className extensionType name }} extends UmbLitElement implements UmbPropertyEditorUiElement {
static styles = [UmbTextStyles];
@property()
value = '';
@property({ type: Array, attribute: false })
public config?: UmbPropertyEditorConfigCollection;
render() {
return html`<div>{{ extensionTagName extensionType name }}</div>`;
}
}
export default {{className extensionType name}};
declare global {
interface HTMLElementTagNameMap {
'{{extensionTagName extensionType name }}': {{className extensionType name}};
}
}

View File

@@ -1,15 +0,0 @@
import { Meta, Story } from '@storybook/web-components';
import { html } from 'lit';
import type { {{className extensionType name}} } from './{{ extensionFilename extensionType name }}.element';
import './{{ extensionFilename extensionType name }}.element';
export default {
title: 'Property Editor UIs/{{ displayName name }}',
component: '{{ extensionTagName extensionType name }}',
id: '{{extensionTagName extensionType name }}',
} as Meta;
export const AAAOverview: Story<{{className extensionType name}}> = () =>
html`<{{ extensionTagName extensionType name }}></{{ extensionTagName extensionType name }}>`;
AAAOverview.storyName = 'Overview';

View File

@@ -1,21 +0,0 @@
import { expect, fixture, html } from '@open-wc/testing';
import { {{ className extensionType name }} } from './{{ extensionFilename extensionType name }}.element';
import { defaultA11yConfig } from '@umbraco-cms/test-utils';
describe('{{className extensionType name}}', () => {
let element: {{className extensionType name}};
beforeEach(async () => {
element = await fixture(
html` <{{ extensionTagName extensionType name }}></{{ extensionTagName extensionType name }}> `
);
});
it('is defined with its own instance', () => {
expect(element).to.be.instanceOf({{ className extensionType name }});
});
it('passes the a11y audit', async () => {
await expect(element).shadowDom.to.be.accessible(defaultA11yConfig);
});
});