@furo/ui5
Version:
SAP UI5 Web Components data bindings for furo-web
120 lines (108 loc) • 2.51 kB
JavaScript
import { LitElement, html, css } from 'lit';
import { FBP } from '@furo/fbp';
/**
* `DialogManageViewsDeletebutton` is a helper component
*
*
* @summary Helper component
* @customElement
* @appliesMixin FBP
*/
export class DialogManageViewsDeletebutton extends FBP(LitElement) {
bindData(fn) {
this.row = fn;
if (this.row.is_standard._value === true) {
setTimeout(() => {
this.row.is_standard._value = true;
}, 500);
}
fn.is_standard.addEventListener('field-value-changed', () => {
if (this.row.is_standard._value === true) {
this.row.is_favorite._value = true;
this._FBPTriggerWire('|--notDeletable', null);
} else if (fn.editable._value) {
this._FBPTriggerWire('|--deletable', null);
}
});
if (fn.editable._value && !fn.is_standard._value) {
this._FBPTriggerWire('|--deletable', null);
}
if (!fn.editable._value) {
this._FBPTriggerWire('|--undeletable', null);
}
}
/**
* @private
* @return {Object}
*/
static get properties() {
return {
/**
* Description
*/
myBool: { type: Boolean },
};
}
/**
* flow is ready lifecycle method
*/
_FBPReady() {
super._FBPReady();
// this._FBPTraceWires()
/**
* Register hook on wire --deleteRowClicked to
* delete a row
*/
this._FBPAddWireHook('--deleteRowClicked', () => {
if (this.row.is_standard._value === true) {
/**
* @event standard-deleted
* Fired when a item which was standard was deleted
*/
this.dispatchEvent(
new Event('standard-deleted', { composed: true, bubbles: true })
);
}
this.row.deleteNode();
});
}
/**
* Themable Styles
* @private
* @return {CSSResult}
*/
static get styles() {
// language=CSS
return css`
:host {
display: block;
}
:host([hidden]) {
display: none;
}
`;
}
/**
* @private
* @returns {TemplateResult}
* @private
*/
render() {
// language=HTML
return html`
<furo-ui5-button
fn-disable="|--notDeletable"
fn-hide="|--undeletable"
fn-enable="|--deletable"
at-click="--deleteRowClicked"
disabled=""
design="Transparent"
icon="delete"
></furo-ui5-button>
`;
}
}
window.customElements.define(
'dialog-manage-views-deletebutton',
DialogManageViewsDeletebutton
);