From cd55d605834b8b7d1025a13515c08533ba12b40e Mon Sep 17 00:00:00 2001 From: hastom Date: Fri, 12 Jul 2019 19:25:54 +0300 Subject: [PATCH 1/6] Fixed menu content check --- src/components/MdMenu/MdMenuContent.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/MdMenu/MdMenuContent.vue b/src/components/MdMenu/MdMenuContent.vue index 347a94d07..6da1a64ae 100644 --- a/src/components/MdMenu/MdMenuContent.vue +++ b/src/components/MdMenu/MdMenuContent.vue @@ -208,7 +208,7 @@ this.MdMenu.bodyClickObserver = new MdObserveEvent(document.body, 'click', $event => { $event.stopPropagation() - if (!this.isMenu($event) && (this.MdMenu.closeOnClick || this.isBackdropExpectMenu($event))) { + if (!this.isMenuContentEl($event) && (this.MdMenu.closeOnClick || this.isBackdropExpectMenu($event))) { this.MdMenu.active = false this.MdMenu.bodyClickObserver.destroy() this.MdMenu.windowResizeObserver.destroy() From 7ed22cc8fe1495f0eccd8aae62c1bdc172140ece Mon Sep 17 00:00:00 2001 From: hastom Date: Fri, 12 Jul 2019 19:27:00 +0300 Subject: [PATCH 2/6] Allow icon with md-menu inside md-field --- src/components/MdField/MdField.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/MdField/MdField.vue b/src/components/MdField/MdField.vue index 684e13b71..675adc230 100644 --- a/src/components/MdField/MdField.vue +++ b/src/components/MdField/MdField.vue @@ -304,6 +304,7 @@ left: 36px; } + .md-menu, .md-input, .md-textarea, .md-file { From 4688b7c1c146fce5258139b645c00b840f61b85d Mon Sep 17 00:00:00 2001 From: hastom Date: Fri, 12 Jul 2019 19:27:50 +0300 Subject: [PATCH 3/6] new-component(MdDatepickerInline) --- .../MdDatepicker/MdDatepickerInline.vue | 657 ++++++++++++++++++ src/components/MdDatepicker/index.js | 4 +- src/components/MdDatepicker/mixins.scss | 100 +++ src/components/MdDatepicker/theme.scss | 55 ++ 4 files changed, 815 insertions(+), 1 deletion(-) create mode 100644 src/components/MdDatepicker/MdDatepickerInline.vue create mode 100644 src/components/MdDatepicker/mixins.scss diff --git a/src/components/MdDatepicker/MdDatepickerInline.vue b/src/components/MdDatepicker/MdDatepickerInline.vue new file mode 100644 index 000000000..0566fdcf7 --- /dev/null +++ b/src/components/MdDatepicker/MdDatepickerInline.vue @@ -0,0 +1,657 @@ + + + + + diff --git a/src/components/MdDatepicker/index.js b/src/components/MdDatepicker/index.js index fc11c5e74..7595a87c8 100644 --- a/src/components/MdDatepicker/index.js +++ b/src/components/MdDatepicker/index.js @@ -1,7 +1,9 @@ import material from 'vue-material/material' import MdDatepicker from './MdDatepicker' +import MdDatepickerInline from "./MdDatepickerInline"; export default Vue => { material(Vue) Vue.component(MdDatepicker.name, MdDatepicker) -} \ No newline at end of file + Vue.component(MdDatepickerInline.name, MdDatepickerInline) +} diff --git a/src/components/MdDatepicker/mixins.scss b/src/components/MdDatepicker/mixins.scss new file mode 100644 index 000000000..0cf38a210 --- /dev/null +++ b/src/components/MdDatepicker/mixins.scss @@ -0,0 +1,100 @@ +@import "~components/MdLayout/mixins"; + +$md-calendar-width: 320px; + +@mixin md-vertical-layout { + flex-direction: column; + width: $md-calendar-width; + + .md-datepicker-dayname { + display: inline; + } +} + +@mixin md-landscape-layout { + flex-direction: row; + width: auto; + + .md-datepicker-body { + width: $md-calendar-width; + flex: 0 0 $md-calendar-width; + } + + .md-datepicker-dayname { + display: block; + } +} + +@mixin md-datepicker-layout { + + @include md-landscape-layout; + + &.md-landscape { + @include md-landscape-layout; + } + + &.md-vertical { + @include md-vertical-layout; + } + + &.md-landscape-xsmall { + @include md-layout-xsmall { + @include md-landscape-layout; + } + } + + &.md-landscape-small { + @include md-layout-small { + @include md-landscape-layout; + } + } + + &.md-landscape-medium { + @include md-layout-medium { + @include md-landscape-layout; + } + } + + &.md-landscape-large { + @include md-layout-large { + @include md-landscape-layout; + } + } + + &.md-landscape-xlarge { + @include md-layout-xlarge { + @include md-landscape-layout; + } + } + + &.md-vertical-xsmall { + @include md-layout-xsmall { + @include md-vertical-layout; + } + } + + &.md-vertical-small { + @include md-layout-small { + @include md-vertical-layout; + } + } + + &.md-vertical-medium { + @include md-layout-medium { + @include md-vertical-layout; + } + } + + &.md-vertical-large { + @include md-layout-large { + @include md-vertical-layout; + } + } + + &.md-vertical-xlarge { + @include md-layout-xlarge { + @include md-vertical-layout; + } + } + +} diff --git a/src/components/MdDatepicker/theme.scss b/src/components/MdDatepicker/theme.scss index 1ca143861..f9f880ad8 100644 --- a/src/components/MdDatepicker/theme.scss +++ b/src/components/MdDatepicker/theme.scss @@ -64,3 +64,58 @@ } } } + +.md-datepicker-inline { + @include md-theme-component() { + @include md-theme-property(color, text-primary, background); + + .md-datepicker-header { + @if md-get-theme-mode() == light { + @include md-theme-property(background-color, primary); + @include md-theme-property(color, text-primary, primary); + } @else { + @include md-theme-property(background-color, text-primary, '', .06); + @include md-theme-property(color, text-primary, background); + } + } + + .md-datepicker-week { + @include md-theme-property(color, text-accent, background); + } + + .md-datepicker-disabled { + @include md-theme-property(color, disabled, background); + } + + .md-datepicker-today { + @include md-theme-property(color, primary, background); + } + + .md-datepicker-day-button, + .md-datepicker-month-button, + .md-datepicker-year-button { + &:hover { + @include md-theme-property(background-color, divider); + } + } + + .md-datepicker-day-button { + &.md-datepicker-selected { + @include md-theme-property(background-color, primary); + @include md-theme-property(color, text-primary, primary); + } + } + + .md-datepicker-month-button, + .md-datepicker-year-button { + &.md-datepicker-selected { + @include md-theme-property(color, primary, background); + } + } + + .md-datepicker-year-selector { + @include md-theme-property(border-bottom-color, divider, background); + } + } +} + From 9681c6a1fffb12facf31dcb09f9a319744aedbb1 Mon Sep 17 00:00:00 2001 From: hastom Date: Fri, 12 Jul 2019 19:28:05 +0300 Subject: [PATCH 4/6] Docs --- docs/app/i18n/en-US/pages.js | 3 + .../Components/Datepicker/Datepicker.vue | 3 +- .../DatepickerInline/DatepickerInline.vue | 95 +++++++++++++++++++ .../examples/BasicDatepicker.vue | 57 +++++++++++ .../examples/DisabledDatesDatepicker.vue | 19 ++++ .../examples/InputAndMenuDatepicker.vue | 74 +++++++++++++++ docs/app/routes.js | 5 + docs/app/template/MainNavContent.vue | 1 + 8 files changed, 256 insertions(+), 1 deletion(-) create mode 100644 docs/app/pages/Components/DatepickerInline/DatepickerInline.vue create mode 100644 docs/app/pages/Components/DatepickerInline/examples/BasicDatepicker.vue create mode 100644 docs/app/pages/Components/DatepickerInline/examples/DisabledDatesDatepicker.vue create mode 100644 docs/app/pages/Components/DatepickerInline/examples/InputAndMenuDatepicker.vue diff --git a/docs/app/i18n/en-US/pages.js b/docs/app/i18n/en-US/pages.js index 20236f671..de2472d8a 100644 --- a/docs/app/i18n/en-US/pages.js +++ b/docs/app/i18n/en-US/pages.js @@ -195,6 +195,9 @@ export default { title: 'Datepicker', nav: 'Date' }, + datepickerInline: { + title: 'Datepicker inline', + }, dialog: { title: 'Dialog' }, diff --git a/docs/app/pages/Components/Datepicker/Datepicker.vue b/docs/app/pages/Components/Datepicker/Datepicker.vue index b24886029..cac790e7f 100644 --- a/docs/app/pages/Components/Datepicker/Datepicker.vue +++ b/docs/app/pages/Components/Datepicker/Datepicker.vue @@ -8,7 +8,8 @@