2022-06-23 11:09:18 +00:00
|
|
|
<script lang="ts">
|
2022-09-21 08:08:25 +00:00
|
|
|
import { IntlString } from '@hcengineering/platform'
|
|
|
|
import { Button } from '@hcengineering/ui'
|
2022-06-23 11:09:18 +00:00
|
|
|
|
|
|
|
export let mode: string
|
2022-10-31 19:08:57 +00:00
|
|
|
export let config: [string, IntlString, object][]
|
2022-06-23 11:09:18 +00:00
|
|
|
export let onChange: (_mode: string) => void
|
|
|
|
|
|
|
|
function getButtonShape (i: number) {
|
|
|
|
if (config.length === 1) return 'round'
|
|
|
|
switch (i) {
|
|
|
|
case 0:
|
|
|
|
return 'rectangle-right'
|
|
|
|
case config.length - 1:
|
|
|
|
return 'rectangle-left'
|
|
|
|
default:
|
|
|
|
return 'rectangle'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<div class="itemsContainer">
|
2023-03-10 00:08:04 +00:00
|
|
|
{#each config as [_mode, label, params], i}
|
|
|
|
<div class="buttonWrapper">
|
|
|
|
<Button
|
|
|
|
{label}
|
|
|
|
labelParams={params}
|
|
|
|
size="small"
|
|
|
|
on:click={() => onChange(_mode)}
|
|
|
|
selected={_mode === mode}
|
|
|
|
shape={getButtonShape(i)}
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
{/each}
|
2022-06-23 11:09:18 +00:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
.itemsContainer {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
padding: 0.65rem 1.35rem 0.65rem 2.25rem;
|
2023-03-10 00:08:04 +00:00
|
|
|
border-top: 1px solid var(--divider-color);
|
2022-06-23 11:09:18 +00:00
|
|
|
}
|
|
|
|
.buttonWrapper {
|
|
|
|
margin-right: 1px;
|
|
|
|
|
|
|
|
&:last-child {
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|