diff --git a/jest.config.js b/jest.config.js index 4b7c85a..8a11749 100644 --- a/jest.config.js +++ b/jest.config.js @@ -20,6 +20,9 @@ module.exports = { '/src/**/*.spec.jsx', '/src/**/*.spec.tsx', ], transformIgnorePatterns: ['/node_modules/'], + moduleNameMapper: { + '\\.svg(\\?raw)?$': '/src/__svg_mock.ts' + }, resetMocks: true }; diff --git a/package.json b/package.json index 97718ad..0de2088 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@day1co/fastcomposer", - "version": "2.1.5", + "version": "2.1.6", "author": "fastcampus", "main": "./dist/fastcomposer.js", "exports": { diff --git a/src/__svg_mock.ts b/src/__svg_mock.ts new file mode 100644 index 0000000..61bae3e --- /dev/null +++ b/src/__svg_mock.ts @@ -0,0 +1 @@ +export default '' diff --git a/src/layout/legacy.ts b/src/layout/legacy.ts index d760191..cef9a13 100644 --- a/src/layout/legacy.ts +++ b/src/layout/legacy.ts @@ -52,7 +52,7 @@ export default class LegacyLayout extends LayoutBase { params: Array | Map, template: string, values: any, - meta: any + meta?: any }) { const createdMeta = meta || { description, icon } diff --git a/src/legacy/assets/scss/_pane.scss b/src/legacy/assets/scss/_pane.scss index 53858de..31973f6 100644 --- a/src/legacy/assets/scss/_pane.scss +++ b/src/legacy/assets/scss/_pane.scss @@ -11,14 +11,14 @@ user-select: none; - > .fcc-pane-title { + .fcc-pane-title { display: flex; position: sticky; top: 0; z-index: 999; } - > .fcc-pane-toolbar { + .fcc-pane-toolbar { display: flex; align-items: center; @@ -74,7 +74,7 @@ } } - > .fcc-pane-content { + .fcc-pane-content { min-height: 0; overflow-y: scroll; overscroll-behavior: contain; diff --git a/src/legacy/components/layout-info.vue b/src/legacy/components/layout-info.vue index c65b385..d354948 100644 --- a/src/legacy/components/layout-info.vue +++ b/src/legacy/components/layout-info.vue @@ -2,10 +2,24 @@
- {{ layout.id }} - #{{ index }} + {{ layout.id }} + #{{ index }}
- {{ layout.meta.description }} + {{ label || layout.meta.description }} +
@@ -21,11 +35,36 @@ export default { default() { return {} }, required: true }, - index: Number + index: Number, + label: String + }, + data() { + return { + isEditing: false, + editableText: '' + } }, computed: { icon() { return iconToUri(this.layout.meta.icon) + }, + canEdit() { + return this.label !== null && this.label !== undefined + } + }, + methods: { + startEditing() { + if(!this.canEdit) + return + this.editableText = this.label + this.isEditing = true + this.$nextTick(() => this.$refs.editInput.focus()) + }, + save() { + if(this.isEditing) { + this.isEditing = false + this.$emit('update:label', this.editableText.trim()) + } } } } @@ -40,6 +79,8 @@ export default { display: flex; align-items: center; + flex-grow: 1; + margin: 0; text-align: left; @@ -65,9 +106,14 @@ export default { } } + &__index { + opacity: 0.5; + } &__label { line-height: 2.2rem; - font-size: 1.6rem; + font-size: 1.8rem; + + flex-grow: 1; white-space: nowrap; text-overflow: clip; @@ -76,10 +122,6 @@ export default { > strong, > span { @include readable-font-features; font-variant-numeric: tabular-nums; - font-size: 1.8rem; - } - > span { - opacity: 0.5; } .fcc-composer__simple-layers & { display: flex; @@ -89,13 +131,33 @@ export default { display: none; } } + + &-input { + @include readable-font-features; + font: inherit; + line-height: inherit; + width: 100%; + padding: 0; + margin: 0; + border: none; + outline: none; + } + + &-text { + display: inline; + font-size: 1.4rem; + + &.fcc-is-label { + font-style: italic; + } + } } &.small &__label { line-height: 1.8rem; font-size: 1.4rem; - > strong, > span { - font-size: 1.6rem; + .fcc-layout-info__id, .fcc-layout-info__index { + font-size: 1.5rem; } } } diff --git a/src/legacy/views/changelog.vue b/src/legacy/views/changelog.vue index b3c4102..5ca1cec 100644 --- a/src/legacy/views/changelog.vue +++ b/src/legacy/views/changelog.vue @@ -1,5 +1,18 @@