2020-04-09 19:35:57 +02:00
|
|
|
<template>
|
|
|
|
|
<p class="ui-message" :class="messageClasses">
|
2021-08-30 12:02:30 +02:00
|
|
|
<ui-icon v-if="iconClass" class="ui-message-icon" :symbol="iconClass" />
|
2020-04-09 19:35:57 +02:00
|
|
|
<span class="ui-message-text" v-localize:html="text"></span>
|
|
|
|
|
</p>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2020-04-09 21:57:57 +02:00
|
|
|
const TYPE_ICONS = {
|
2020-06-03 12:57:29 +02:00
|
|
|
neutral: 'fth-info',
|
2020-04-09 21:57:57 +02:00
|
|
|
info: 'fth-info',
|
2020-09-02 12:20:28 +02:00
|
|
|
primary: 'fth-info',
|
2020-04-09 21:57:57 +02:00
|
|
|
warn: 'fth-alert-circle',
|
|
|
|
|
error: 'fth-alert-circle',
|
|
|
|
|
success: 'fth-check-circle'
|
|
|
|
|
};
|
|
|
|
|
|
2020-04-09 19:35:57 +02:00
|
|
|
export default {
|
2020-06-03 12:57:29 +02:00
|
|
|
name: 'uiMessage',
|
2020-04-09 19:35:57 +02:00
|
|
|
|
|
|
|
|
props: {
|
|
|
|
|
type: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: 'info'
|
|
|
|
|
},
|
|
|
|
|
text: {
|
|
|
|
|
type: String,
|
|
|
|
|
required: true
|
|
|
|
|
},
|
|
|
|
|
icon: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: '-1'
|
|
|
|
|
},
|
|
|
|
|
block: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
computed: {
|
|
|
|
|
iconClass()
|
|
|
|
|
{
|
2020-04-09 21:57:57 +02:00
|
|
|
return this.icon !== '-1' ? this.icon : TYPE_ICONS[this.type];
|
2020-04-09 19:35:57 +02:00
|
|
|
},
|
|
|
|
|
messageClasses()
|
|
|
|
|
{
|
|
|
|
|
return [
|
|
|
|
|
'type-' + this.type,
|
|
|
|
|
(this.block ? 'block' : null)
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
mounted ()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
.ui-message
|
|
|
|
|
{
|
2020-04-28 15:45:26 +02:00
|
|
|
font-size: var(--font-size-s);
|
2020-04-09 19:35:57 +02:00
|
|
|
background: var(--color-accent-info-bg);
|
|
|
|
|
color: var(--color-accent-info);
|
|
|
|
|
display: inline-grid;
|
2021-12-17 00:26:06 +01:00
|
|
|
padding: 12px 12px 11px 12px;
|
2020-04-09 19:35:57 +02:00
|
|
|
grid-template-columns: auto 1fr;
|
2020-08-31 11:48:05 +02:00
|
|
|
gap: 12px;
|
2021-09-23 10:58:14 +02:00
|
|
|
border-radius: var(--radius-inner);
|
2020-04-09 19:35:57 +02:00
|
|
|
position: relative;
|
|
|
|
|
line-height: 20px;
|
2020-04-23 15:35:15 +02:00
|
|
|
text-align: left;
|
2020-04-09 19:35:57 +02:00
|
|
|
|
|
|
|
|
&.type-warn
|
|
|
|
|
{
|
|
|
|
|
background: var(--color-accent-warn-bg);
|
|
|
|
|
color: var(--color-accent-warn);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.type-error
|
|
|
|
|
{
|
|
|
|
|
background: var(--color-accent-error-bg);
|
|
|
|
|
color: var(--color-accent-error);
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-09 21:57:57 +02:00
|
|
|
&.type-success
|
|
|
|
|
{
|
|
|
|
|
background: var(--color-accent-success-bg);
|
|
|
|
|
color: var(--color-accent-success);
|
|
|
|
|
}
|
|
|
|
|
|
2020-06-03 12:57:29 +02:00
|
|
|
&.type-neutral
|
|
|
|
|
{
|
2020-09-07 14:55:05 +02:00
|
|
|
background: var(--color-box-nested);
|
|
|
|
|
color: var(--color-text);
|
2020-06-03 12:57:29 +02:00
|
|
|
}
|
|
|
|
|
|
2020-09-02 12:20:28 +02:00
|
|
|
&.type-primary
|
|
|
|
|
{
|
|
|
|
|
background: var(--color-primary-low);
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-09 19:35:57 +02:00
|
|
|
&.block
|
|
|
|
|
{
|
|
|
|
|
display: grid;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ui-message-icon
|
|
|
|
|
{
|
2020-04-09 21:57:57 +02:00
|
|
|
font-size: 1.3em;
|
2020-04-09 19:35:57 +02:00
|
|
|
position: relative;
|
|
|
|
|
top: 1px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ui-message-text
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
</style>
|