1import{C as a,P as s}from"./polyfazer-app-DumDTOPg.js";import{h as o}from"./polymer-utils-B8xivS0d.js";import"./select-partner-input-CNOjp5np.js";import"./currency-dropdown-Dp2jq3YD.js";import"./select-order-series-input-DSIQwVOC.js";import"./multi-language-BU3FLD2d.js";import{m as i}from"./membership-services-BIplDPJ9.js";import{a9 as r,aa as m}from"./main-BEpca-0G.js";import"./select-connector-standard-Do4iIj-0.js";import{P as n}from"./page-toolbar-C-8EZufE.js";import"./number-input-1Ysiylry.js";import"./dropdown-input-B-nqSpts.js";import"./BetterHTML-BN6nzApa.js";import"./BetterTemplateHandling-CTXk4mRb.js";import"./dialog-input-behavior-DcN20D9O.js";import"./input-mixin-CrUPo4TG.js";import"./language-service-Y7DWP4JL.js";import"./location-services-B-Yo7g_g.js";import"./image-frame-DZbP5vtK.js";import"./paper-shrink-menu-C7LnALvz.js";import"./question-tag-C9ym_uv9.js";import"./diamond-icon-button-AIbsxFeD.js";import"./BetterPolymerElement-Dg3wVY7D.js";import"./tippy-tooltip-BFt4tVnx.js";import"./event-listeners-mixin-CmUvl9h8.js";import"./input-mixin-B41Xo3VN.js";import"./translation-mixin-DzuKWY5M.js";class l extends a(s){static get template(){return o` 2 ${super.template} 3 <style> 4 :host { 5 position: relative; 6 width: 100%; 7 height: 100%; 8 margin: 0 auto; 9 display: block; 10 } 11 12 .membership-form { 13 padding: 15px; 14 min-height: 200px; 15 } 16 17 h2 { 18 margin-top: 25px; 19 } 20 21 label.fancy { 22 margin-top: 1rem; 23 } 24 25 .content-wrap { 26 padding-bottom: 55px; 27 } 28 29 select-connector-standard { 30 width: 100%; 31 border: 1px solid #ccc; 32 position: relative; 33 display: block; 34 border-radius: var(--block-border-radius); 35 overflow: hidden; 36 } 37 38 .membership-form > * { 39 padding: 0 10px; 40 } 41 42 .price { 43 margin-right: 5px; 44 } 45 46 .monthly-payment-configuration[disabled] .configuration, 47 .group-payment-configuration[disabled] .configuration { 48 display: none; 49 } 50 51 @media screen and (max-width: 1100px) { 52 .membership-form { 53 flex-direction: column; 54 } 55 } 56 </style> 57 58 <page-toolbar 59 pending="[[or(loading, sending)]]" 60 error="[[error]]" 61 return-href="[[getBackRoute(membershipID, '/memberships', '/memberships/%{membershipID}%')]]" 62 > 63 <paper-shrink-menu slot="action-buttons" show-labels> 64 <template is="dom-if" if="[[membershipID]]"> 65 ${n.ACTION_BUTTON.delete({action:"deleteMembership"})} 66 </template> 67 ${n.ACTION_BUTTON.save({action:"saveChanges"})} 68 </paper-shrink-menu> 69 </page-toolbar> 70 71 <div class="content-wrap"> 72 <paper-material class="form"> 73 <diamond-section-overlay loading="[[loading]]" error="[[error]]" on-retry="refresh"></diamond-section-overlay> 74 75 <div class="membership-form flex-row" hidden$="[[loading]]"> 76 <div class="column"> 77 <select-partner-input value="{{membership.partner}}"></select-partner-input> 78 <div> 79 <multi-language label="[[_lang('title')]]*" textarea translations="{{membership.titles}}" required></multi-language> 80 </div> 81 <div> 82 <multi-language label="[[_lang('description')]]" translations="{{membership.descriptions}}"></multi-language> 83 </div> 84 </div> 85 <div class="column"> 86 <h2>[[_lang('allowedConnectors')]]</h2> 87 <select-connector-standard values="{{membership.enabledConnectors}}" multi></select-connector-standard> 88 89 <div class="monthly-payment-configuration" disabled$="[[!membership.monthlyPaymentConfiguration]]"> 90 <div class="flex-row space-between"> 91 <h2>[[_lang('monthlyFee')]]</h2> 92 <div class="flex-row vertical-center"> 93 <paper-toggle-button checked="[[isset(membership.monthlyPaymentConfiguration)]]" on-checked-changed="_onMonthlyPaymentChanged"></paper-toggle-button> 94 </div> 95 </div> 96 <div class="configuration"> 97 <div class="flex-row"> 98 <paper-input class="column price" label="[[_lang('price')]]" value="{{membership.monthlyPaymentConfiguration.cost}}"></paper-input> 99 <currency-dropdown selected="{{membership.monthlyPaymentConfiguration.currency}}" auto-init></currency-dropdown> 100 </div> 101 <number-input min="0" max="100" label="[[_lang('taxPercent')]]" value="{{membership.monthlyPaymentConfiguration.taxPercent}}"></number-input> 102 103 <multi-language label="[[_lang('additionalInvoiceText')]]" translations="{{membership.monthlyPaymentConfiguration.additionalInvoiceText}}"></multi-language> 104 105 <select-order-series-input value="{{membership.monthlyPaymentConfiguration.orderSeries}}"></select-order-series-input> 106 </div> 107 </div> 108
109 <div class="group-payment-configuration" disabled$="[[!membership.groupPaymentConfiguration]]"> 110 <div class="flex-row space-between"> 111 <h2>[[_lang('groupPaymentConfiguration')]]</h2> 112 <div class="flex-row vertical-center"> 113 <paper-toggle-button checked="[[isset(membership.groupPaymentConfiguration)]]" on-checked-changed="_onGroupPaymentConfigurationChanged"></paper-toggle-button> 114 </div> 115 </div> 116 117 <div class="configuration"> 118 <multi-language label="[[_lang('additionalInvoiceText')]]" translations="{{membership.groupPaymentConfiguration.additionalInvoiceText}}"></multi-language> 119 <currency-dropdown selected="{{membership.groupPaymentConfiguration.currency}}" auto-init></currency-dropdown> 120 <number-input min="0" max="100" label="[[_lang('taxPercent')]]" value="{{membership.groupPaymentConfiguration.taxPercent}}"></number-input> 121 <number-input label="[[_lang('dueDateDays')]]" type="int" min="0" value="{{membership.groupPaymentConfiguration.dueDateDays}}"></number-input> 122 <select-order-series-input label="[[_lang('summaryInvoiceOrderSeries')]]" value="{{membership.groupPaymentConfiguration.orderSeries}}"></select-order-series-input> 123 <select-order-series-input label="[[_lang('endUserDocumentsOrderSeries')]]" value="{{membership.groupPaymentConfiguration.endUserOrderSeries}}"></select-order-series-input> 124 <select-partner-input label="[[_lang('payee')]]" value="{{membership.groupPaymentConfiguration.payee}}"></select-partner-input> 125 <select-partner-input label="[[_lang('payer')]]" value="{{membership.groupPaymentConfiguration.payer}}"></select-partner-input> 126 127 <h2>[[_lang('chargingLimit')]]</h2> 128 <label class="fancy">[[_lang('chargingLimitHint')]]</label> 129 <number-input min="0" label="[[_lang('chargingLimitKwh')]]" value="{{membership.groupPaymentConfiguration.chargingLimitKwh}}"></number-input> 130 <dropdown-input label="[[_lang('chargingLimitPeriod')]]" options="${r}" option-lang-prefix="chargingLimitPeriod_" value="{{membership.groupPaymentConfiguration.chargingLimitPeriod}}" no-deselect></dropdown-input> 131 <div class="flex-row vertical-center space-between"> 132 <label>[[_lang('stopRunningSessionsOnLimit')]]</label> 133 <paper-toggle-button checked="{{membership.groupPaymentConfiguration.stopRunningSessionsOnLimit}}"></paper-toggle-button> 134 </div> 135 </div> 136 </div> 137 </div> 138 </div> 139 </paper-material> 140 </div> 141 `}static get properties(){return{membership:Object,editState:Boolean,selectedStandards:{type:Array,value:()=>[]}}}onPageEnter(){window.membershipEdit=this,this.setRoleAndPermissionData()}init(e){this.set("membershipID",e.membershipID),e.membershipID==0?(this.updateRoute("membership-creation"),this.set("membership",this.clone(m)),this.set("editState",!1),this.set("disabled",!1),this.resetFields()):(this.set("editState",!0),this.refresh())}refresh(){this.set("loading",!0),this.clearErrorFromResponse(),i.getItemForEdit(this.membershipID).then(e=>this._handleData(e),e=>this.setErrorFromResponse(e)).finally(()=>{this.set("loading",!1)})}_handleData(e){this.set("membership",e),this.set("disabled",!1),e.groupPaymentConfiguration&&!e.groupPaymentConfiguration.chargingLimitPeriod&&this.set("membership.groupPaymentConfiguration.chargingLimitPeriod",r.MONTH),this.updatePageTitleWithValue(this.findLocalTitle(e.titles))}saveChanges(){this.checkMandatoryFields()||(this.editState?this.wrapWith("update",i.updateItem(this.membership)).then(this._membershipActionsSuccess.bind(this),this._membershipActionsError.bind(this)):this.wrapWith("create",i.createItem(this.membership)).then(this._membershipActionsSuccess.bind(this),this._membershipActionsError.bind(this)))}_membershipActionsSuccess(e){e.update?(window.toaster.show(this._lang("entityUpdatedSuccess")),page.back("/memberships/"+e.update.id)):e.create?(window.toaster.show(this._lang("entityCreatedSuccess")),page("/memberships/"+e.create.id)):e.delete&&(window.toaster.show(this._lang("entityDeletedSuccess")),page.redirect("/memberships")),this.dispatchEvent(new CustomEvent("invalidate-listing-data",{bubbles:!0,detail:{listing:"membership-listing"}}))}_membershipActionsError(e){e.update?(window.toaster.show(this._lang("entityUpdatedError")),e.update.error=="VALIDATION_ERROR"&&this._handleValidationErrors(e.update.validationErrors)):e.create?(window.toaster.show(this._lang("entityCreatedError")),e.create.error=="VALIDATION_ERROR"&&this._handleValidationErrors(e.create.validationErrors)):e.delete&&window.toaster.show(this._lang("entityDeletedError"))}deleteMembership(e){window.confirmDialog({title:this._lang("deleteMembership"),message:this._lang("deleteMembershipMessage"),entity:this.findLocalTitle(this.membership.title)}).then(()=>{this.wrapWith("delete",i.deleteItem(this.membershipID)).then(this._membershipActionsSuccess.bind(this),this._membershipActionsError.bind(this))})}_getConnectors(e){return e}_onMonthlyPaymentChanged(e,t){t.value===!1?this.set("membership.monthlyPaymentConfiguration",null):this.set("membership.monthlyPaymentConfiguration",{})}_onGroupPaymentConfigurationChanged(e,t){t.value===!1?this.set("membership.groupPaymentConfiguration",null):this.set("membership.groupPaymentConfiguration",{chargingLimitPeriod:r.MONTH})}}window.customElements.define("membership-edit",l); 142//# sourceMappingURL=membership-edit-C3c2x2dX.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.