From 29cc7129f99754cfd10ffd2878c2af6422814f04 Mon Sep 17 00:00:00 2001 From: Pooja Patil Date: Wed, 30 Jun 2021 11:11:05 -0700 Subject: [PATCH 01/22] VMO-4138 Title Component --- .../block-editors/TitleEditor.vue | 74 +++++++++++++++++++ .../MobilePrimitives_MessageBlock.vue | 3 + 2 files changed, 77 insertions(+) create mode 100644 src/components/interaction-designer/block-editors/TitleEditor.vue diff --git a/src/components/interaction-designer/block-editors/TitleEditor.vue b/src/components/interaction-designer/block-editors/TitleEditor.vue new file mode 100644 index 000000000..f26164a6d --- /dev/null +++ b/src/components/interaction-designer/block-editors/TitleEditor.vue @@ -0,0 +1,74 @@ + + + + + + diff --git a/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue b/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue index e87c150b2..c139c7192 100644 --- a/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue +++ b/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue @@ -5,6 +5,7 @@
+ @@ -36,6 +37,7 @@ import {createDefaultBlockTypeInstallerFor} from '@/store/builder' import {mixins} from 'vue-class-component' import ResourceEditor from '../resource-editors/ResourceEditor.vue' import BlockNameEditor from '../block-editors/NameEditor.vue' +import TitleEditor from '../block-editors/TitleEditor.vue' import BlockLabelEditor from '../block-editors/LabelEditor.vue' import BlockSemanticLabelEditor from '../block-editors/SemanticLabelEditor.vue' import FirstBlockEditorButton from '../flow-editors/FirstBlockEditorButton.vue' @@ -52,6 +54,7 @@ const builderVuexNamespace = namespace('builder') BlockSemanticLabelEditor, FirstBlockEditorButton, BlockId, + TitleEditor, }, }) class MobilePrimitives_MessageBlock extends mixins(Lang) { From 1b0c54de29fe73c73689994ed8bfd17c3546412f Mon Sep 17 00:00:00 2001 From: Pooja Patil Date: Wed, 30 Jun 2021 23:12:42 -0700 Subject: [PATCH 02/22] VMO-4138 Fixed some issues on title editor --- .../block-editors/TitleEditor.vue | 86 +++++++++++++------ src/store/flow/block.ts | 11 +++ 2 files changed, 70 insertions(+), 27 deletions(-) diff --git a/src/components/interaction-designer/block-editors/TitleEditor.vue b/src/components/interaction-designer/block-editors/TitleEditor.vue index f26164a6d..917f4a0a7 100644 --- a/src/components/interaction-designer/block-editors/TitleEditor.vue +++ b/src/components/interaction-designer/block-editors/TitleEditor.vue @@ -1,26 +1,47 @@ @@ -43,24 +64,33 @@ const flowVuexNamespace = namespace('flow') }, }) class TitleEditor extends mixins(Lang) { - autoCode = '' - editCode = false + editBlockName = false @Prop() readonly block!: IBlock - snakeCase = (value: string) => value.trim() - .split(' ') - .map((word) => word.toLowerCase()) - .join('_') + get blockLabel(): string { + return this.block.label ?? '' + } + + set blockLabel(value: string) { + this.block_setLabel({blockId: this.block.uuid, value}) + } - get name(): string { + get blockName(): string { return this.block.name } - set name(value: string) { + + set blockName(value: string) { this.block_setName({blockId: this.block.uuid, value}) - this.autoCode = this.snakeCase(value) } + filterName(e: KeyboardEvent): void { + if (e.key.match(/\W+|Enter/g)) { + e.preventDefault() + } + } + + @flowVuexNamespace.Action block_setLabel!: ({blockId, value}: {blockId: string, value: string}) => void @flowVuexNamespace.Mutation block_setName!: ({blockId, value}: {blockId: string, value: string}) => void } export default TitleEditor @@ -70,5 +100,7 @@ export default TitleEditor .title { color: #531944; } +.block-code { + word-wrap: break-word; +} - diff --git a/src/store/flow/block.ts b/src/store/flow/block.ts index cf2cb287f..11b24bd32 100644 --- a/src/store/flow/block.ts +++ b/src/store/flow/block.ts @@ -73,6 +73,17 @@ export const mutations: MutationTree = { } export const actions: ActionTree = { + block_setLabel({commit}, {blockId, value}) { + const snakeCase = (value: string) => value?.trim() + .replace(/[^\w\s]+/g, '') + .split(' ') + .map((word) => word.toLowerCase()) + .join('_') + + commit('block_setLabel', {blockId, value}) + commit('block_setName', {blockId, value: snakeCase(value)}) + }, + async block_createBlockDefaultExitWith( {dispatch}, {props}: { props: { uuid: string } & Partial }, From d7cd50b62f0b0b35ccbaf872e48a5c187e076127 Mon Sep 17 00:00:00 2001 From: Pooja Patil Date: Tue, 6 Jul 2021 12:32:36 -0700 Subject: [PATCH 03/22] VMO-4138 Updated Resource editor --- .../resource-editors/ResourceEditor.vue | 163 ++++++++++-------- 1 file changed, 88 insertions(+), 75 deletions(-) diff --git a/src/components/interaction-designer/resource-editors/ResourceEditor.vue b/src/components/interaction-designer/resource-editors/ResourceEditor.vue index 41b87a379..55d9d7173 100644 --- a/src/components/interaction-designer/resource-editors/ResourceEditor.vue +++ b/src/components/interaction-designer/resource-editors/ResourceEditor.vue @@ -6,87 +6,90 @@ {{ label }} - + + From 32e4715d29d62cda97e6747070b21a7498659ee6 Mon Sep 17 00:00:00 2001 From: Pooja Patil Date: Wed, 7 Jul 2021 10:27:13 -0700 Subject: [PATCH 04/22] VMO-4138 Overrode primary color of bootstrap --- .../block-types/MobilePrimitives_MessageBlock.vue | 3 --- src/scss/custom_variables.scss | 4 ++++ src/scss/main.scss | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 src/scss/custom_variables.scss diff --git a/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue b/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue index c139c7192..00f89f751 100644 --- a/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue +++ b/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue @@ -6,9 +6,6 @@
- - - Date: Wed, 7 Jul 2021 10:27:47 -0700 Subject: [PATCH 05/22] VMO-4138 Component for custom SVG Icons --- package.json | 1 + src/App.vue | 11 +++++ src/assets/icons/check.svg | 3 ++ src/assets/icons/settings.svg | 3 ++ src/components/common/SvgIcon.vue | 42 +++++++++++++++++++ src/components/common/SvgSprite.vue | 27 ++++++++++++ .../block-editors/TitleEditor.vue | 10 +++-- yarn.lock | 14 +++++++ 8 files changed, 107 insertions(+), 4 deletions(-) create mode 100644 src/assets/icons/check.svg create mode 100644 src/assets/icons/settings.svg create mode 100644 src/components/common/SvgIcon.vue create mode 100644 src/components/common/SvgSprite.vue diff --git a/package.json b/package.json index 45888ed86..8cb65d860 100644 --- a/package.json +++ b/package.json @@ -95,6 +95,7 @@ "node-sass": "^4.14.1", "sass-loader": "^8.0.2", "storybook-vue-router": "^1.0.7", + "svg-inline-loader": "^0.8.2", "ts-jest": "^27.0.3", "ts-vue-plugin": "^0.1.3", "typescript": "~4.3.4", diff --git a/src/App.vue b/src/App.vue index d3e2cd892..4d2a7f9d6 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,5 +1,16 @@ + + diff --git a/src/assets/icons/check.svg b/src/assets/icons/check.svg new file mode 100644 index 000000000..c9d03928d --- /dev/null +++ b/src/assets/icons/check.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/settings.svg b/src/assets/icons/settings.svg new file mode 100644 index 000000000..4befbf35a --- /dev/null +++ b/src/assets/icons/settings.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/common/SvgIcon.vue b/src/components/common/SvgIcon.vue new file mode 100644 index 000000000..dc086914b --- /dev/null +++ b/src/components/common/SvgIcon.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/components/common/SvgSprite.vue b/src/components/common/SvgSprite.vue new file mode 100644 index 000000000..0e979dce0 --- /dev/null +++ b/src/components/common/SvgSprite.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/components/interaction-designer/block-editors/TitleEditor.vue b/src/components/interaction-designer/block-editors/TitleEditor.vue index 917f4a0a7..6b659f71d 100644 --- a/src/components/interaction-designer/block-editors/TitleEditor.vue +++ b/src/components/interaction-designer/block-editors/TitleEditor.vue @@ -11,9 +11,9 @@ class="form-control w-100" :class="{ 'is-invalid': isLabelValid === false }"> - + @@ -31,9 +31,9 @@ :class="{ 'is-invalid': isNameValid === false }" @keydown="filterName"> - + @@ -54,6 +54,7 @@ import {mixins} from 'vue-class-component' import Lang from '@/lib/filters/lang' import {IBlock} from '@floip/flow-runner' import {namespace} from 'vuex-class' +import SvgIcon from '@/components/common/SvgIcon.vue' const flowVuexNamespace = namespace('flow') @@ -61,6 +62,7 @@ const flowVuexNamespace = namespace('flow') components: { TextEditor, ValidationMessage, + SvgIcon, }, }) class TitleEditor extends mixins(Lang) { diff --git a/yarn.lock b/yarn.lock index 2673c22c8..fd1923e74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16591,6 +16591,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +simple-html-tokenizer@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.1.1.tgz#05c2eec579ffffe145a030ac26cfea61b980fabe" + integrity sha1-BcLuxXn//+FFoDCsJs/qYbmA+r4= + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -17279,6 +17284,15 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" +svg-inline-loader@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/svg-inline-loader/-/svg-inline-loader-0.8.2.tgz#9872414f9e4141601e04eb80cda748c9a50dae71" + integrity sha512-kbrcEh5n5JkypaSC152eGfGcnT4lkR0eSfvefaUJkLqgGjRQJyKDvvEE/CCv5aTSdfXuc+N98w16iAojhShI3g== + dependencies: + loader-utils "^1.1.0" + object-assign "^4.0.1" + simple-html-tokenizer "^0.1.1" + svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" From 999ec5dea0bfa9c51096c697fefcfc9f3fafd260 Mon Sep 17 00:00:00 2001 From: Pooja Patil Date: Wed, 7 Jul 2021 18:06:38 -0700 Subject: [PATCH 06/22] VMO-4138 Updated Set as First Block button --- src/assets/icons/enter.svg | 3 +++ .../block-types/MobilePrimitives_MessageBlock.vue | 2 +- .../flow-editors/FirstBlockEditorButton.vue | 10 ++++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 src/assets/icons/enter.svg diff --git a/src/assets/icons/enter.svg b/src/assets/icons/enter.svg new file mode 100644 index 000000000..b0a42aae1 --- /dev/null +++ b/src/assets/icons/enter.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue b/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue index 00f89f751..9b0306836 100644 --- a/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue +++ b/src/components/interaction-designer/block-types/MobilePrimitives_MessageBlock.vue @@ -1,6 +1,6 @@