Allow HTML Injection into ft-icon-button component
This commit is contained in:
parent
72784a684b
commit
12272cf49f
|
@ -78,7 +78,7 @@
|
||||||
color: var(--secondary-text-color);
|
color: var(--secondary-text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconDropdown p {
|
.iconDropdown .dropdownItem {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
@ -88,21 +88,21 @@
|
||||||
transition: background 0.2s ease-out;
|
transition: background 0.2s ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconDropdown p:hover {
|
.iconDropdown .dropdownItem:hover {
|
||||||
background-color: var(--side-nav-hover-color);
|
background-color: var(--side-nav-hover-color);
|
||||||
-moz-transition: background 0.2s ease-in;
|
-moz-transition: background 0.2s ease-in;
|
||||||
-o-transition: background 0.2s ease-in;
|
-o-transition: background 0.2s ease-in;
|
||||||
transition: background 0.2s ease-in;
|
transition: background 0.2s ease-in;
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconDropdown p:active {
|
.iconDropdown .dropdownItem:active {
|
||||||
background-color: var(--side-nav-active-color);
|
background-color: var(--side-nav-active-color);
|
||||||
-moz-transition: background 0.1s ease-in;
|
-moz-transition: background 0.1s ease-in;
|
||||||
-o-transition: background 0.1s ease-in;
|
-o-transition: background 0.1s ease-in;
|
||||||
transition: background 0.1s ease-in;
|
transition: background 0.1s ease-in;
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconDropdown p a {
|
.iconDropdown .dropdownItem a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
@ -114,3 +114,8 @@
|
||||||
.right {
|
.right {
|
||||||
left: 50%;
|
left: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.top {
|
||||||
|
margin-top: 0px;
|
||||||
|
bottom: 60px;
|
||||||
|
}
|
||||||
|
|
|
@ -19,10 +19,18 @@ export default Vue.extend({
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
dropdownPosition: {
|
forceDropdown: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
dropdownPositionX: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'center'
|
default: 'center'
|
||||||
},
|
},
|
||||||
|
dropdownPositionY: {
|
||||||
|
type: String,
|
||||||
|
default: 'bottom'
|
||||||
|
},
|
||||||
dropdownNames: {
|
dropdownNames: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => { return [] }
|
default: () => { return [] }
|
||||||
|
@ -43,7 +51,7 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
handleIconClick: function () {
|
handleIconClick: function () {
|
||||||
if (this.dropdownNames.length > 0 && this.dropdownValues.length > 0) {
|
if (this.forceDropdown || (this.dropdownNames.length > 0 && this.dropdownValues.length > 0)) {
|
||||||
this.toggleDropdown()
|
this.toggleDropdown()
|
||||||
} else {
|
} else {
|
||||||
this.$emit('click')
|
this.$emit('click')
|
||||||
|
|
|
@ -13,22 +13,31 @@
|
||||||
@click="handleIconClick"
|
@click="handleIconClick"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
v-if="dropdownNames.length > 0 && showDropdown"
|
v-if="showDropdown"
|
||||||
class="iconDropdown"
|
class="iconDropdown"
|
||||||
:class="{
|
:class="{
|
||||||
left: dropdownPosition === 'left',
|
left: dropdownPositionX === 'left',
|
||||||
right: dropdownPosition === 'right',
|
right: dropdownPositionX === 'right',
|
||||||
center: dropdownPosition === 'center'
|
center: dropdownPositionX === 'center',
|
||||||
|
bottom: dropdownPositionY === 'bottom',
|
||||||
|
top: dropdownPositionY === 'top'
|
||||||
}"
|
}"
|
||||||
|
>
|
||||||
|
<slot>
|
||||||
|
<div
|
||||||
|
v-if="dropdownNames.length > 0"
|
||||||
>
|
>
|
||||||
<p
|
<p
|
||||||
v-for="(label, index) in dropdownNames"
|
v-for="(label, index) in dropdownNames"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
class="dropdownItem
|
||||||
@click="handleDropdownClick(index)"
|
@click="handleDropdownClick(index)"
|
||||||
>
|
>
|
||||||
{{ label }}
|
{{ label }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
</slot>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
title="More Options"
|
title="More Options"
|
||||||
theme="base"
|
theme="base"
|
||||||
:use-shadow="false"
|
:use-shadow="false"
|
||||||
dropdown-position="left"
|
dropdown-position-x="left"
|
||||||
:dropdown-names="optionsNames"
|
:dropdown-names="optionsNames"
|
||||||
:dropdown-values="optionsValues"
|
:dropdown-values="optionsValues"
|
||||||
@click="handleOptionsClick"
|
@click="handleOptionsClick"
|
||||||
|
|
Loading…
Reference in New Issue