mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-07 16:44:07 +01:00
Kanban: Fix display of resources on card by adding Et2AvatarGroup
This commit is contained in:
parent
95f10b57f3
commit
ffc4fe36a0
@ -120,7 +120,14 @@ export class Et2Avatar extends Et2Widget(SlotMixin(SlAvatar)) implements et2_IDe
|
||||
}
|
||||
if (changedProperties.has("size"))
|
||||
{
|
||||
this.getDOMNode().setAttribute('style', `--size:${this.size}`);
|
||||
if(this.size)
|
||||
{
|
||||
this.getDOMNode().setAttribute('style', `--size:${this.size}`);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.style.removeProperty("--size")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
95
api/js/etemplate/Et2Avatar/Et2AvatarGroup.ts
Normal file
95
api/js/etemplate/Et2Avatar/Et2AvatarGroup.ts
Normal file
@ -0,0 +1,95 @@
|
||||
import {Et2Widget} from "../Et2Widget/Et2Widget";
|
||||
import {css, html, LitElement, repeat} from "@lion/core";
|
||||
import shoelace from "../Styles/shoelace";
|
||||
|
||||
/**
|
||||
* Show multiple avatars
|
||||
*/
|
||||
export class Et2AvatarGroup extends Et2Widget(LitElement)
|
||||
{
|
||||
|
||||
static get styles()
|
||||
{
|
||||
return [
|
||||
...super.styles,
|
||||
shoelace,
|
||||
// TODO: More work on sizing needed to better adapt to available space
|
||||
css`
|
||||
:host {
|
||||
display: flex;
|
||||
}
|
||||
et2-avatar {
|
||||
--size: 1.5rem;
|
||||
flex: 0 0 auto;
|
||||
min-width: 20px;
|
||||
transition-delay: 0s;
|
||||
transition-duration:0.1s;
|
||||
}
|
||||
et2-avatar:not(:first-of-type) {
|
||||
margin-left: -1rem;
|
||||
}
|
||||
et2-avatar::part(base) {
|
||||
border: solid 2px var(--sl-color-neutral-0);
|
||||
}
|
||||
et2-avatar:hover {
|
||||
--size: 2.5rem;
|
||||
overflow: visible;
|
||||
z-index: 11;
|
||||
transition-delay: 1s;
|
||||
transition-suration:0.5s
|
||||
}
|
||||
`
|
||||
];
|
||||
}
|
||||
|
||||
static get properties()
|
||||
{
|
||||
return {
|
||||
...super.properties,
|
||||
/**
|
||||
* List of contact IDs
|
||||
*/
|
||||
value: {
|
||||
type: Array
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
this.value = []
|
||||
}
|
||||
|
||||
set_value(new_value)
|
||||
{
|
||||
if(typeof new_value !== "object")
|
||||
{
|
||||
new_value = new_value.split(",");
|
||||
}
|
||||
this.value = new_value;
|
||||
}
|
||||
|
||||
avatarTemplate(contact : { id : string, label? : string })
|
||||
{
|
||||
if(typeof contact == "string")
|
||||
{
|
||||
contact = {id: contact};
|
||||
}
|
||||
return html`
|
||||
<et2-avatar
|
||||
.contactId="${contact.id}"
|
||||
.label="${contact.label}"
|
||||
${this.shape ? html`shape="${this.shape}"` : ''}
|
||||
size=""
|
||||
></et2-avatar>`;
|
||||
}
|
||||
|
||||
render()
|
||||
{
|
||||
return html`
|
||||
${repeat(this.value, (contact) => contact.id, (contact) => this.avatarTemplate(contact))}`;
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("et2-avatar-group", Et2AvatarGroup);
|
@ -28,6 +28,7 @@ import './Layout/Et2Tabs/Et2Tab';
|
||||
import './Layout/Et2Tabs/Et2Tabs';
|
||||
import './Layout/Et2Tabs/Et2TabPanel';
|
||||
import './Et2Avatar/Et2Avatar';
|
||||
import './Et2Avatar/Et2AvatarGroup';
|
||||
import './Et2Button/Et2Button';
|
||||
import './Et2Button/Et2ButtonTimestamper';
|
||||
import './Et2Checkbox/Et2Checkbox';
|
||||
|
Loading…
Reference in New Issue
Block a user