@neogrup/nc-doc
Version:
Polymer component to display document
169 lines (159 loc) • 4.89 kB
JavaScript
import { PolymerElement, html } from '@polymer/polymer/polymer-element.js';
import '@polymer/polymer/lib/elements/dom-if.js';
import './nc-doc-header.js';
import './nc-doc-lines.js';
import './nc-doc-footer.js';
class NcDoc extends PolymerElement {
static get template() {
return html`
<style>
:host{
@apply --layout-vertical;
height: 100%;
width: 100%;
font-size: var(--nc-doc-font-size);
}
</style>
<template is="dom-if" if="{{showDocHeader}}">
<div id="doc-header">
<nc-doc-header
language="{{language}}"
data="[[data.data]]"
show-type-header="[[showTypeHeader]]"
preview-mode="[[previewMode]]">
</nc-doc-header>
</div>
</template>
<template is="dom-if" if="{{showDocLines}}">
<div id="doc-lines" style="height: 100%;overflow: auto;">
<nc-doc-lines
language="{{language}}"
editor-mode="[[editorMode]]"
data="[[data.data.lines]]"
symbol="[[data.data.fiscal.currency.symbol]]"
delivered-products="[[data.data.stats.deliveredProducts]]"
data-ticket-lines-actions="[[dataTicketLinesActions]]"
preview-mode="[[previewMode]]"
show-canceled-lines="[[showCanceledLines]]"
line-actions-enabled="[[lineActionsEnabled]]"
hide-line-actions-multi-level="[[hideLineActionsMultiLevel]]"
show-line-delivery-order="[[showLineDeliveryOrder]]"
show-line-group-info="[[showLineGroupInfo]]"
show-line-production-status="[[showLineProductionStatus]]"
show-amounts-including-taxes="[[showAmountsIncludingTaxes]]"
show-line-pack-mandatory="[[showLinePackMandatory]]"
show-packs-reduced="[[showPacksReduced]]"
hide-packs-multi-level="[[hidePacksMultiLevel]]">
</nc-doc-lines>
</div>
</template>
<template is="dom-if" if="{{showDocFooter}}">
<div id="doc-footer">
<nc-doc-footer
language="{{language}}"
data="[[data.data]]"
show-change-in-dialog="[[showChangeInDialog]]"
show-amounts-including-taxes="[[showAmountsIncludingTaxes]]"
hide-change-and-delivered-amount="[[hideChangeAndDeliveredAmount]]">
</nc-doc-footer>
</div>
</template>
`;
}
static get properties() {
return {
language: String,
data: Object,
dataTicketLinesActions: Array,
editorMode: {
type: Boolean,
value: false,
notify: true
},
showDocHeader: {
type: Boolean,
value: false
},
showDocLines: {
type: Boolean,
value: false
},
showDocFooter: {
type: Boolean,
value: false
},
lineActionsEnabled: {
type: Boolean,
value: false
},
hideLineActionsMultiLevel: {
type: Boolean,
value: false
},
showLineDeliveryOrder: {
type: Boolean,
value: false
},
showLineGroupInfo: {
type: Boolean,
value: false
},
showLineProductionStatus: {
type: Boolean,
value: false
},
showTypeHeader: {
type: Boolean,
value: false
},
showCanceledLines: {
type: Boolean,
value: false
},
showChangeInDialog: {
type: Boolean,
value: false
},
previewMode: {
type: Boolean,
value: false
},
showAmountsIncludingTaxes: {
type: Boolean,
value: false
},
showLinePackMandatory: {
type: Boolean,
value: false
},
showPacksReduced: {
type: Boolean,
value: false
},
hidePacksMultiLevel: {
type: Boolean,
value: false
},
hideChangeAndDeliveredAmount: {
type: Boolean,
value: false
}
}
}
scrollLinesToBottom(){
if (this.shadowRoot.querySelector('nc-doc-lines')){
this.shadowRoot.querySelector('nc-doc-lines')._scrollLinesToBottom();
}
}
animateLine(lineId){
if (this.shadowRoot.querySelector('nc-doc-lines')){
this.shadowRoot.querySelector('nc-doc-lines')._animateLine(lineId);
}
}
lineActionSelectedPrev(element){
if (this.shadowRoot.querySelector('nc-doc-lines')){
this.shadowRoot.querySelector('nc-doc-lines')._lineActionSelectedPrev(element);
}
}
}
window.customElements.define('nc-doc', NcDoc);