From 6f7e0889d4f59b5fbd8cf67d538ea8b2cd562d96 Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Tue, 9 Jun 2020 16:57:57 +0200 Subject: [PATCH] ui-pick (first draft) --- zero.Core/Entities/SelectModel.cs | 4 + .../App/components/overlays/dropdown.vue | 2 + .../App/components/pickers/pick/pick.vue | 376 ++++++++++++++++++ zero.Web.UI/App/directives/clickoutside.js | 6 +- zero.Web.UI/Sass/Modules/Buttons/_button.scss | 6 +- .../Resources/Localization/zero.en-us.json | 8 +- 6 files changed, 397 insertions(+), 5 deletions(-) create mode 100644 zero.Web.UI/App/components/pickers/pick/pick.vue diff --git a/zero.Core/Entities/SelectModel.cs b/zero.Core/Entities/SelectModel.cs index 80872200..bfdb3196 100644 --- a/zero.Core/Entities/SelectModel.cs +++ b/zero.Core/Entities/SelectModel.cs @@ -5,5 +5,9 @@ public string Id { get; set; } public string Name { get; set; } + + public bool IsActive { get; set; } + + public bool IsShared { get; set; } } } diff --git a/zero.Web.UI/App/components/overlays/dropdown.vue b/zero.Web.UI/App/components/overlays/dropdown.vue index 9bb6e71d..787ad956 100644 --- a/zero.Web.UI/App/components/overlays/dropdown.vue +++ b/zero.Web.UI/App/components/overlays/dropdown.vue @@ -37,6 +37,7 @@ open: false }), + methods: { toggle() @@ -84,6 +85,7 @@ z-index: 8; top: calc(100% + 5px); padding: 5px; + color: var(--color-fg); &.align-right { diff --git a/zero.Web.UI/App/components/pickers/pick/pick.vue b/zero.Web.UI/App/components/pickers/pick/pick.vue new file mode 100644 index 00000000..b40794c5 --- /dev/null +++ b/zero.Web.UI/App/components/pickers/pick/pick.vue @@ -0,0 +1,376 @@ + + + + + + \ No newline at end of file diff --git a/zero.Web.UI/App/directives/clickoutside.js b/zero.Web.UI/App/directives/clickoutside.js index aae6e51e..27361c3b 100644 --- a/zero.Web.UI/App/directives/clickoutside.js +++ b/zero.Web.UI/App/directives/clickoutside.js @@ -29,7 +29,11 @@ Vue.directive('click-outside', { handler: handler, callback: binding.value }; - !Helpers.isServer(vNode) && document.addEventListener('click', handler); + + setTimeout(() => + { + !Helpers.isServer(vNode) && document.addEventListener('click', handler); + }, 200); }, update(el, binding) diff --git a/zero.Web.UI/Sass/Modules/Buttons/_button.scss b/zero.Web.UI/Sass/Modules/Buttons/_button.scss index b69c3335..d70d77ca 100644 --- a/zero.Web.UI/Sass/Modules/Buttons/_button.scss +++ b/zero.Web.UI/Sass/Modules/Buttons/_button.scss @@ -287,9 +287,9 @@ button::-moz-focus-inner .ui-select-button-icon { - width: 50px; - height: 50px; - line-height: 50px !important; + width: 42px; + height: 42px; + line-height: 42px !important; border-radius: var(--radius); background: var(--color-bg-mid); color: var(--color-fg); diff --git a/zero.Web/Resources/Localization/zero.en-us.json b/zero.Web/Resources/Localization/zero.en-us.json index ac0373a3..5b1ece26 100644 --- a/zero.Web/Resources/Localization/zero.en-us.json +++ b/zero.Web/Resources/Localization/zero.en-us.json @@ -32,7 +32,13 @@ "select": "Select", "icon": "Icon", "icon_select": "Select an icon", - "tab_general": "General" + "tab_general": "General", + "pick": { + "title": "Choose one", + "title_multiple": "Choose", + "title_autocomplete": "Enter a value", + "max": "max. {count}" + } }, "errors": {