nsftx / chameleon-bundle-material

Material Bundle for Chameleon applications
https://chameleon.nsoft.com
6 stars 1 forks source link

Flyout component #283

Open Sneki opened 4 years ago

Sneki commented 4 years ago

https://marvelapp.com/1ja724dg/screen/63729246/layer/106657899

Is your feature request related to a problem? Please describe. Create CFlyout component, that can be used inside any other integrations and builder.

Describe the solution you'd like Render vuetify v-dialog, with base Element component. Component is made of: header, content and footer, template/activator

Header:

Options / Props for header part:

  1. Title - String
  2. showAvatar - Boolean - default true

Events:

  1. Closed - emitted on X click

Footer

Options / props:

  1. ShowActions - Boolean - default true
  2. cancelLabel - String - default value is 'cancel'
  3. submitLabel - String - default value is 'submit' 3.1. Use CButton and expose some of its props (inside builder meta this would be a separate group). As component definition just define all the props that cbutton already has. This two previous labels (2, 3) could also be replaced with CButton prop label, so check what might be better. CFrom action buttons are using similar solution.

Events - on click:

  1. Canceled
  2. Submitted

Activator

Additional context Central part of flyout should be named slot content, and we won't do anything with it for now. Inside builder this content part should be rendered as droppable area with ${this.baseChildrenClass}. Check card createBody method.

Also explore https://vuetifyjs.com/en/components/dialogs#dialogs props and define those you find useful. (Theme, fullscreen, scrollable, width...)

MVucina commented 4 years ago

https://marvelapp.com/5789gjc/screen/60328546