From b77d2ae315a37cc55f796ac4fc0d540f36eb86e1 Mon Sep 17 00:00:00 2001 From: Stefan Popov Date: Tue, 28 Jul 2020 23:37:03 +0400 Subject: [PATCH 1/4] Implement dialog component --- src/components/Dialog/SDialog.vue | 173 ++++++++++++++++++++++++++++++ src/components/Dialog/index.ts | 3 + src/components/Input/SInput.vue | 4 +- src/components/index.ts | 2 + src/index.ts | 3 + src/types/components.ts | 1 + 6 files changed, 184 insertions(+), 2 deletions(-) create mode 100644 src/components/Dialog/SDialog.vue create mode 100644 src/components/Dialog/index.ts diff --git a/src/components/Dialog/SDialog.vue b/src/components/Dialog/SDialog.vue new file mode 100644 index 00000000..c0d7fca0 --- /dev/null +++ b/src/components/Dialog/SDialog.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/components/Dialog/index.ts b/src/components/Dialog/index.ts new file mode 100644 index 00000000..452d701a --- /dev/null +++ b/src/components/Dialog/index.ts @@ -0,0 +1,3 @@ +import SDialog from './SDialog.vue' + +export { SDialog } diff --git a/src/components/Input/SInput.vue b/src/components/Input/SInput.vue index 8c6d2e0c..17a652ec 100644 --- a/src/components/Input/SInput.vue +++ b/src/components/Input/SInput.vue @@ -122,12 +122,12 @@ export default class SInput extends Vue { focused = false model = this.value - @Watch('value', { deep: true }) + @Watch('value') private handlePropChange (value: string | number): void { this.model = value } - @Watch('model', { deep: true }) + @Watch('model') private handleValueChange (value: string | number): void { this.$emit('change', value) } diff --git a/src/components/index.ts b/src/components/index.ts index f87d6fbb..4aee2ca3 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -9,6 +9,7 @@ import { SCheckbox } from './Checkbox' import { SCol } from './Layout/Col' import { SCollapse, SCollapseItem } from './Collapse' import { SContainer } from './Layout/Container' +import { SDialog } from './Dialog' import { SDropdown, SDropdownItem } from './Dropdown' import { SFooter } from './Layout/Footer' import { SForm, SFormItem } from './Form' @@ -31,6 +32,7 @@ export { SCollapse, SCollapseItem, SContainer, + SDialog, SDropdown, SDropdownItem, SFooter, diff --git a/src/index.ts b/src/index.ts index a26da146..8c1a1f5f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,6 +11,7 @@ import { SCollapse, SCollapseItem, SContainer, + SDialog, SDropdown, SDropdownItem, SFooter, @@ -42,6 +43,7 @@ const elements = [ { component: SCollapse, name: Components.SCollapse }, { component: SCollapseItem, name: Components.SCollapseItem }, { component: SContainer, name: Components.SContainer }, + { component: SDialog, name: Components.SDialog }, { component: SDropdown, name: Components.SDropdown }, { component: SDropdownItem, name: Components.SDropdownItem }, { component: SFooter, name: Components.SFooter }, @@ -82,6 +84,7 @@ export { SCollapse, SCollapseItem, SContainer, + SDialog, SDropdown, SDropdownItem, SFooter, diff --git a/src/types/components.ts b/src/types/components.ts index 660cbfe4..5e18f4a3 100644 --- a/src/types/components.ts +++ b/src/types/components.ts @@ -9,6 +9,7 @@ export enum Components { SCollapse = 'SCollapse', SCollapseItem = 'SCollapseItem', SContainer = 'SContainer', + SDialog = 'SDialog', SDropdown = 'SDropdown', SDropdownItem = 'SDropdownItem', SFooter = 'SFooter', From 555e85bda661f1d65763cfa7648dcaab1389349f Mon Sep 17 00:00:00 2001 From: Stefan Popov Date: Tue, 28 Jul 2020 23:37:39 +0400 Subject: [PATCH 2/4] Add story for dialog component --- src/stories/SDialog.stories.ts | 79 ++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/stories/SDialog.stories.ts diff --git a/src/stories/SDialog.stories.ts b/src/stories/SDialog.stories.ts new file mode 100644 index 00000000..57b11157 --- /dev/null +++ b/src/stories/SDialog.stories.ts @@ -0,0 +1,79 @@ +import { text, withKnobs, boolean } from '@storybook/addon-knobs' + +import { SDialog, SRow, SButton } from '../components' + +export default { + component: SDialog, + title: 'Design System/Dialog', + decorators: [withKnobs] +} + +export const configurable = () => ({ + components: { SDialog, SRow, SButton }, + template: ` + Open Dialog + + Default content + + + `, + data: () => ({ + visible: false + }), + props: { + modal: { + default: boolean('Modal', true) + }, + title: { + default: text('Title', 'Default title') + }, + fullscreen: { + default: boolean('fullscreen', false) + }, + showClose: { + default: boolean('Show close', true) + }, + closeOnClickModal: { + default: boolean('Close on click modal', true) + }, + closeOnEsc: { + default: boolean('Close on Esc', true) + }, + center: { + default: boolean('Center', false) + }, + width: { + default: text('Width', '50%') + }, + top: { + default: text('Top', '30vh') + } + }, + methods: { + handleOpen: () => console.log('open'), + handleClose: () => console.log('close'), + handleAfterOpened: () => console.log('opened'), + handleAfterClosed: () => console.log('closed') + } +}) From ccf2db901d95bc18f5b372db6376bc115ecfc869 Mon Sep 17 00:00:00 2001 From: Stefan Popov Date: Tue, 28 Jul 2020 23:39:07 +0400 Subject: [PATCH 3/4] Remove unused import --- src/components/Dialog/SDialog.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/Dialog/SDialog.vue b/src/components/Dialog/SDialog.vue index c0d7fca0..4c933ba3 100644 --- a/src/components/Dialog/SDialog.vue +++ b/src/components/Dialog/SDialog.vue @@ -28,7 +28,6 @@