mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-13 03:40:48 +00:00
UBER-473: show icon for department (#3472)
Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me>
This commit is contained in:
parent
a50733a556
commit
090348fc47
@ -16,7 +16,7 @@
|
||||
import { createEventDispatcher, ComponentType } from 'svelte'
|
||||
|
||||
import { Asset, IntlString } from '@hcengineering/platform'
|
||||
import { getPlatformColorDef, getPlatformColorForTextDef, IconWithEmojii, themeStore } from '@hcengineering/ui'
|
||||
import { getPlatformColorDef, getPlatformColorForTextDef, IconWithEmoji, themeStore } from '@hcengineering/ui'
|
||||
import {
|
||||
AnySvelteComponent,
|
||||
Button,
|
||||
@ -56,7 +56,7 @@
|
||||
export let componentProps: any | undefined = undefined
|
||||
export let autoSelect = true
|
||||
export let readonly = false
|
||||
export let iconWithEmojii: AnySvelteComponent | Asset | ComponentType | undefined = undefined
|
||||
export let iconWithEmoji: AnySvelteComponent | Asset | ComponentType | undefined = undefined
|
||||
export let defaultIcon: AnySvelteComponent | Asset | ComponentType = IconFolder
|
||||
|
||||
let selected: (Space & IconProps) | undefined
|
||||
@ -121,8 +121,8 @@
|
||||
{focus}
|
||||
disabled={readonly}
|
||||
{focusIndex}
|
||||
icon={selected?.icon === iconWithEmojii ? IconWithEmojii : selected?.icon ?? defaultIcon}
|
||||
iconProps={selected?.icon === iconWithEmojii
|
||||
icon={selected?.icon === iconWithEmoji && iconWithEmoji ? IconWithEmoji : selected?.icon ?? defaultIcon}
|
||||
iconProps={selected?.icon === iconWithEmoji && iconWithEmoji
|
||||
? { icon: selected?.color }
|
||||
: {
|
||||
fill:
|
||||
|
@ -35,7 +35,7 @@
|
||||
export let component: AnySvelteComponent | undefined = undefined
|
||||
export let componentProps: any | undefined = undefined
|
||||
export let autoSelect = true
|
||||
export let iconWithEmojii: AnySvelteComponent | Asset | ComponentType | undefined = undefined
|
||||
export let iconWithEmoji: AnySvelteComponent | Asset | ComponentType | undefined = undefined
|
||||
export let defaultIcon: AnySvelteComponent | Asset | ComponentType | undefined = undefined
|
||||
|
||||
const dispatch = createEventDispatcher()
|
||||
@ -59,7 +59,7 @@
|
||||
{component}
|
||||
{componentProps}
|
||||
{autoSelect}
|
||||
{iconWithEmojii}
|
||||
{iconWithEmoji}
|
||||
{defaultIcon}
|
||||
bind:value={space}
|
||||
on:change={(evt) => {
|
||||
|
@ -24,50 +24,50 @@
|
||||
} catch (err) {}
|
||||
</script>
|
||||
|
||||
<div class="emojii-{size} flex-row-center emojii">
|
||||
<div class="emoji-{size} flex-row-center emoji">
|
||||
{value}
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
.emojii {
|
||||
.emoji {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: black;
|
||||
}
|
||||
.emojii-inline {
|
||||
.emoji-inline {
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
font-size: 1rem;
|
||||
}
|
||||
.emojii-x-small {
|
||||
.emoji-x-small {
|
||||
width: 0.75rem;
|
||||
height: 0.75rem;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
.emojii-small {
|
||||
.emoji-small {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
.emojii-medium {
|
||||
.emoji-medium {
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
.emojii-large {
|
||||
.emoji-large {
|
||||
width: 1.5rem;
|
||||
height: 1.5rem;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
.semojiivg-full {
|
||||
.semojivg-full {
|
||||
width: inherit;
|
||||
height: inherit;
|
||||
}
|
||||
.emojii-x-small,
|
||||
.emojii-small,
|
||||
.emojii-medium,
|
||||
.emojii-large {
|
||||
.emoji-x-small,
|
||||
.emoji-small,
|
||||
.emoji-medium,
|
||||
.emoji-large {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
</style>
|
@ -184,7 +184,7 @@ export { Notification } from './components/notifications/Notification'
|
||||
export { default as Wizard } from './components/wizard/Wizard.svelte'
|
||||
export { default as StepsDialog } from './components/StepsDialog.svelte'
|
||||
export { default as EmojiPopup } from './components/EmojiPopup.svelte'
|
||||
export { default as IconWithEmojii } from './components/IconWithEmojii.svelte'
|
||||
export { default as IconWithEmoji } from './components/IconWithEmoji.svelte'
|
||||
export { default as ModeSelector } from './components/ModeSelector.svelte'
|
||||
|
||||
export * from './types'
|
||||
|
@ -79,8 +79,10 @@
|
||||
<DateRangePresenter bind:value={date} />
|
||||
</div>
|
||||
<svelte:fragment slot="pool">
|
||||
<Label label={hr.string.Department} />
|
||||
<SpaceSelector _class={hr.class.Department} label={hr.string.ParentDepartmentLabel} bind:space={department} />
|
||||
<div class="flex-row-center flex-grow flex-gap-3">
|
||||
<Label label={hr.string.Department} />
|
||||
<SpaceSelector _class={hr.class.Department} label={hr.string.ParentDepartmentLabel} bind:space={department} />
|
||||
</div>
|
||||
</svelte:fragment>
|
||||
<svelte:fragment slot="buttons">
|
||||
{#if existingHoliday}
|
||||
|
@ -552,7 +552,7 @@
|
||||
kind={'secondary'}
|
||||
size={'small'}
|
||||
component={ProjectPresenter}
|
||||
iconWithEmojii={tracker.component.IconWithEmojii}
|
||||
iconWithEmoji={tracker.component.IconWithEmoji}
|
||||
defaultIcon={tracker.icon.Home}
|
||||
/>
|
||||
<ObjectBox
|
||||
|
@ -58,7 +58,7 @@
|
||||
kind={'secondary'}
|
||||
size={'large'}
|
||||
component={ProjectPresenter}
|
||||
iconWithEmojii={tracker.component.IconWithEmojii}
|
||||
iconWithEmoji={tracker.component.IconWithEmoji}
|
||||
defaultIcon={tracker.icon.Home}
|
||||
/>
|
||||
</svelte:fragment>
|
||||
|
@ -269,7 +269,7 @@
|
||||
kind={'secondary'}
|
||||
size={'small'}
|
||||
component={ProjectPresenter}
|
||||
iconWithEmojii={tracker.component.IconWithEmojii}
|
||||
iconWithEmoji={tracker.component.IconWithEmoji}
|
||||
defaultIcon={tracker.icon.Home}
|
||||
/>
|
||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||
|
@ -62,7 +62,7 @@
|
||||
size={'large'}
|
||||
bind:space
|
||||
component={ProjectPresenter}
|
||||
iconWithEmojii={tracker.component.IconWithEmojii}
|
||||
iconWithEmoji={tracker.component.IconWithEmoji}
|
||||
defaultIcon={tracker.icon.Home}
|
||||
/>
|
||||
</svelte:fragment>
|
||||
|
@ -24,7 +24,7 @@
|
||||
Button,
|
||||
EditBox,
|
||||
IconEdit,
|
||||
IconWithEmojii,
|
||||
IconWithEmoji,
|
||||
Label,
|
||||
Toggle,
|
||||
eventToHTMLElement,
|
||||
@ -270,8 +270,8 @@
|
||||
<Label label={tracker.string.ChooseIcon} />
|
||||
</div>
|
||||
<Button
|
||||
icon={icon === tracker.component.IconWithEmojii ? IconWithEmojii : icon ?? tracker.icon.Home}
|
||||
iconProps={icon === tracker.component.IconWithEmojii
|
||||
icon={icon === tracker.component.IconWithEmoji ? IconWithEmoji : icon ?? tracker.icon.Home}
|
||||
iconProps={icon === tracker.component.IconWithEmoji
|
||||
? { icon: color }
|
||||
: {
|
||||
fill:
|
||||
|
@ -16,7 +16,7 @@
|
||||
import { Ref } from '@hcengineering/core'
|
||||
import { createQuery } from '@hcengineering/presentation'
|
||||
import { Project } from '@hcengineering/tracker'
|
||||
import { Icon, IconWithEmojii, getPlatformColorDef, getPlatformColorForTextDef, themeStore } from '@hcengineering/ui'
|
||||
import { Icon, IconWithEmoji, getPlatformColorDef, getPlatformColorForTextDef, themeStore } from '@hcengineering/ui'
|
||||
import tracker from '../../plugin'
|
||||
|
||||
export let value: [Ref<Project>, Ref<Project>[]][]
|
||||
@ -37,9 +37,9 @@
|
||||
{#each projects as project, i}
|
||||
{#if value && i < MAX_VISIBLE_PROJECTS}
|
||||
{@const icon =
|
||||
project.icon === tracker.component.IconWithEmojii ? IconWithEmojii : project.icon ?? tracker.icon.Home}
|
||||
project.icon === tracker.component.IconWithEmoji ? IconWithEmoji : project.icon ?? tracker.icon.Home}
|
||||
{@const iconProps =
|
||||
project.icon === tracker.component.IconWithEmojii
|
||||
project.icon === tracker.component.IconWithEmoji
|
||||
? { icon: project.color }
|
||||
: {
|
||||
fill:
|
||||
|
@ -55,7 +55,7 @@
|
||||
<div class="float-left-box">
|
||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||
<TabsControl
|
||||
model={[{ label: tracker.string.ProjectIconCategory }, { label: tracker.string.ProjectEmojiiCategory }]}
|
||||
model={[{ label: tracker.string.ProjectIconCategory }, { label: tracker.string.ProjectEmojiCategory }]}
|
||||
>
|
||||
<svelte:fragment slot="content" let:selected>
|
||||
{#if selected === 0}
|
||||
@ -82,7 +82,7 @@
|
||||
<EmojiPopup
|
||||
embedded
|
||||
on:close={(evt) => {
|
||||
dispatch('close', { icon: tracker.component.IconWithEmojii, color: evt.detail.codePointAt(0) })
|
||||
dispatch('close', { icon: tracker.component.IconWithEmoji, color: evt.detail.codePointAt(0) })
|
||||
}}
|
||||
/>
|
||||
{/if}
|
||||
|
@ -14,7 +14,7 @@
|
||||
-->
|
||||
<script lang="ts">
|
||||
import { Project } from '@hcengineering/tracker'
|
||||
import { Icon, IconWithEmojii, getPlatformColorDef, getPlatformColorForTextDef, themeStore } from '@hcengineering/ui'
|
||||
import { Icon, IconWithEmoji, getPlatformColorDef, getPlatformColorForTextDef, themeStore } from '@hcengineering/ui'
|
||||
import tracker from '../../plugin'
|
||||
|
||||
export let value: Project | undefined
|
||||
@ -24,10 +24,10 @@
|
||||
|
||||
{#if value}
|
||||
<div class="flex-presenter cursor-default" class:inline-presenter={inline}>
|
||||
<div class="icon" class:emoji={value.icon === tracker.component.IconWithEmojii}>
|
||||
<div class="icon" class:emoji={value.icon === tracker.component.IconWithEmoji}>
|
||||
<Icon
|
||||
icon={value.icon === tracker.component.IconWithEmojii ? IconWithEmojii : value.icon ?? tracker.icon.Home}
|
||||
iconProps={value.icon === tracker.component.IconWithEmojii
|
||||
icon={value.icon === tracker.component.IconWithEmoji ? IconWithEmoji : value.icon ?? tracker.icon.Home}
|
||||
iconProps={value.icon === tracker.component.IconWithEmoji
|
||||
? { icon: value.color }
|
||||
: {
|
||||
fill:
|
||||
|
@ -16,7 +16,7 @@
|
||||
import { Ref, Space } from '@hcengineering/core'
|
||||
import { Project } from '@hcengineering/tracker'
|
||||
import {
|
||||
IconWithEmojii,
|
||||
IconWithEmoji,
|
||||
getCurrentLocation,
|
||||
getPlatformColorDef,
|
||||
getPlatformColorForTextDef,
|
||||
@ -43,8 +43,8 @@
|
||||
{#if model.specials}
|
||||
<TreeNode
|
||||
{collapsed}
|
||||
icon={space?.icon === tracker.component.IconWithEmojii ? IconWithEmojii : space?.icon ?? model.icon}
|
||||
iconProps={space?.icon === tracker.component.IconWithEmojii
|
||||
icon={space?.icon === tracker.component.IconWithEmoji ? IconWithEmoji : space?.icon ?? model.icon}
|
||||
iconProps={space?.icon === tracker.component.IconWithEmoji
|
||||
? { icon: space.color }
|
||||
: {
|
||||
fill:
|
||||
|
@ -140,7 +140,7 @@
|
||||
kind={'secondary'}
|
||||
size={'large'}
|
||||
component={ProjectPresenter}
|
||||
iconWithEmojii={tracker.component.IconWithEmojii}
|
||||
iconWithEmoji={tracker.component.IconWithEmoji}
|
||||
defaultIcon={tracker.icon.Home}
|
||||
/>
|
||||
</svelte:fragment>
|
||||
|
@ -297,7 +297,7 @@ export default mergeIds(trackerId, tracker, {
|
||||
ProjectColor: '' as IntlString,
|
||||
|
||||
ProjectIconCategory: '' as IntlString,
|
||||
ProjectEmojiiCategory: '' as IntlString,
|
||||
ProjectEmojiCategory: '' as IntlString,
|
||||
|
||||
NoStatusFound: '' as IntlString,
|
||||
CreateMissingStatus: '' as IntlString,
|
||||
@ -364,7 +364,7 @@ export default mergeIds(trackerId, tracker, {
|
||||
IssueTemplates: '' as AnyComponent,
|
||||
IssueTemplatePresenter: '' as AnyComponent,
|
||||
SubIssuesSelector: '' as AnyComponent,
|
||||
IconWithEmojii: '' as Asset
|
||||
IconWithEmoji: '' as Asset
|
||||
},
|
||||
metadata: {
|
||||
CreateIssueDraft: '' as Metadata<IssueDraft>
|
||||
|
Loading…
Reference in New Issue
Block a user