Plugin Directory

Changeset 3016777

Timestamp:
01/03/2024 06:32:29 AM (7 months ago)
Author:
them.es
Message:

updated trunk

Location:
billy
Files:
727 added
9 edited

Legend:

Unmodified
Added
Removed
  • billy/trunk/assets/admin/css/style-editor.css

    r3008883 r3016777  
    77}
    88
    9 body.block-editor-page[class*="post-type-billy-"]
    10     .wp-block-post-content
    11     > .wp-block {
    12     margin-block-start: 1.5rem;
     9body.block-editor-page[class*="post-type-billy-"] .wp-block-group {
     10    margin-block-start: 1.5rem !important;
    1311}
    1412
     
    259257    background-color: #f8d7da;
    260258}
    261 
    262 /* [PRO] */
    263 
    264 [data-type$="invoice-paymentinformation"] .media {
    265     display: -webkit-box;
    266     display: -ms-flexbox;
    267     display: flex;
    268     -webkit-box-align: start;
    269     -ms-flex-align: start;
    270     align-items: flex-start;
    271 }
    272 [data-type$="invoice-paymentinformation"] .media-body {
    273     -webkit-box-flex: 1;
    274     -ms-flex: 1;
    275     flex: 1;
    276 }
  • billy/trunk/billy.php

    r3008883 r3016777  
    44 * Plugin URI: https://wordpress.org/plugins/billy
    55 * Description: A business-oriented billing suite powered by WordPress.
    6  * Version: 1.6.6
     6 * Version: 1.
    77 * Author: them.es
    88 * Author URI: https://them.es/plugins/billy
  • billy/trunk/blocks/build/index.asset.php

    r2995687 r3016777  
    1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-plugins', 'wp-server-side-render'), 'version' => '54fa6bd2948401330900');
     1<?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-plugins', 'wp-server-side-render'), 'version' => '');
  • billy/trunk/blocks/build/index.js

    r2995687 r3016777  
    1 !function(){"use strict";var e={n:function(t){var l=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(l,{a:l}),l},d:function(t,l){for(var a in l)e.o(l,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:l[a]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t=window.wp.element,l=window.wp.blocks,a=window.wp.i18n,n=window.wp.blockEditor,s=window.wp.components,r=window.wp.serverSideRender,c=e.n(r);(0,l.registerBlockType)("billy-blocks/header",{title:(0,a.__)("Header","billy"),icon:"editor-table",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},getEditWrapperProps(){return{"data-align":"wide"}},edit:e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Info","billy")},(0,t.createElement)("div",{className:"components-notice"},(0,t.createElement)("div",{className:"components-notice__content"},(0,t.createElement)("a",{href:globalDataBilly.wpAdmin+"edit.php?post_type=wp_block"},(0,a.sprintf)((0,a.__)("Edit the %s layout","billy"),(0,a.__)("Header","billy"))))),(0,t.createElement)("div",{className:"components-notice"},(0,t.createElement)("div",{className:"components-notice__content"},(0,a.sprintf)((0,a.__)("The %s values can be modified in the Theme Customizer.","billy"),(0,a.__)("Header","billy")))))),(0,t.createElement)(s.Disabled,null,(0,t.createElement)(c(),{block:"billy-blocks/header"}))),save:e=>null});var i=window.wp.data;(0,l.registerBlockType)("billy-blocks/invoice-actions",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Invoice","billy"),(0,a.__)("Actions","billy")),icon:"menu-alt",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},getEditWrapperProps(){return{"data-align":"wide"}},edit:(0,i.withSelect)((e=>({postModifiedDate:e("core/editor").getEditedPostAttribute("modified")})))((e=>{const{postModifiedDate:l}=e;return(0,t.createElement)("div",{className:"components-placeholder",style:{minHeight:"auto"}},(0,t.createElement)("small",null,(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Last modified","billy"),new Date(l).toLocaleString())))})),save:e=>null}),(0,l.registerBlockType)("billy-blocks/invoice-meta",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Invoice","billy"),(0,a.__)("Meta","billy")),icon:"editor-textcolor",category:"billy-blocks",attributes:{label:{type:"string",default:""},text:{type:"string",default:""}},supports:{inserter:!1,reusable:!1,html:!1},edit:e=>{const{className:l,attributes:{label:r,text:c},setAttributes:i}=e;return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Label","billy")},(0,t.createElement)(s.TextControl,{type:"text",className:"label",value:r,onChange:e=>{i({label:e})}})),(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Text","billy")},(0,t.createElement)(s.TextControl,{type:"text",className:"text",value:c,onChange:e=>{i({text:e})}}))),(0,t.createElement)(t.RawHTML,null,(0,a.sprintf)((0,a.__)('<div class="label">%1$s</div> <div class="text">%2$s</div>',"billy"),r||"",c||(0,a.__)("N/A","billy"))))},save:e=>{const{className:l,attributes:{label:n,text:s}}=e;return s&&(0,t.createElement)(t.RawHTML,null,(0,a.sprintf)((0,a.__)('<div class="label">%1$s</div> <div class="text">%2$s</div>',"billy"),n||"",s||(0,a.__)("N/A","billy")))},deprecated:[{attributes:{label:{type:"string",default:""},text:{type:"string",default:""}},save:e=>{const{className:l,attributes:{label:n,text:s}}=e;return s&&(0,t.createElement)("p",null,(0,t.createElement)(t.RawHTML,null,(0,a.sprintf)("<p>"+(0,a.__)("<strong>%1$s</strong> <span>%2$s</span>","billy")+"</p>",n||"",s||(0,a.__)("N/A","billy"))))}}]}),(0,l.registerBlockType)("billy-blocks/invoice-date",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Invoice","billy"),(0,a.__)("Date","billy")),icon:"calendar-alt",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},edit:e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Info","billy")},(0,t.createElement)("div",{className:"components-notice is-warning"},(0,t.createElement)("div",{className:"components-notice__content"},(0,a.sprintf)((0,a.__)("Due to legal requirements in some countries, autogenerated data like %s can't be modified anymore after an invoice has been created in the system!","billy"),(0,a.__)("Date","billy")))))),(0,t.createElement)(s.Disabled,null,(0,t.createElement)(c(),{block:"billy-blocks/invoice-date"}))),save:e=>null}),(0,l.registerBlockType)("billy-blocks/invoice-duedate",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Invoice","billy"),(0,a.__)("Due Date","billy")),icon:"calendar-alt",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},edit:e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Info","billy")},(0,t.createElement)("div",{className:"components-notice"},(0,t.createElement)("div",{className:"components-notice__content"},(0,a.sprintf)((0,a.__)("The %s values can be modified in the Theme Customizer.","billy"),(0,a.__)("Payment due days","billy")))))),(0,t.createElement)(s.Disabled,null,(0,t.createElement)(c(),{block:"billy-blocks/invoice-duedate"}))),save:e=>null}),(0,l.registerBlockType)("billy-blocks/invoice-number",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Invoice","billy"),(0,a.__)("Number","billy")),icon:"editor-ol",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},edit:e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Info","billy")},(0,t.createElement)("div",{className:"components-notice"},(0,t.createElement)("div",{className:"components-notice__content"},(0,a.sprintf)((0,a.__)("The %s values can be modified in the Theme Customizer.","billy"),(0,a.__)("Invoice number: Prefix","billy")))),(0,t.createElement)("div",{className:"components-notice is-warning"},(0,t.createElement)("div",{className:"components-notice__content"},(0,a.sprintf)((0,a.__)("Due to legal requirements in some countries, autogenerated data like %s can't be modified anymore after an invoice has been created in the system!","billy"),(0,a.__)("Invoice number","billy")))))),(0,t.createElement)(s.Disabled,null,(0,t.createElement)(c(),{block:"billy-blocks/invoice-number"}))),save:e=>null}),(0,l.registerBlockType)("billy-blocks/invoice-paymentinformation",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Invoice","billy"),(0,a.__)("Payment Information","billy")),icon:"info",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},edit:e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Info","billy")},(0,t.createElement)("div",{className:"components-notice"},(0,t.createElement)("div",{className:"components-notice__content"},(0,a.sprintf)((0,a.__)("The %s values can be modified in the Theme Customizer.","billy"),(0,a.__)("Payment Information","billy")))))),(0,t.createElement)(s.Disabled,null,(0,t.createElement)(c(),{block:"billy-blocks/invoice-paymentinformation"}))),save:e=>null});const o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return e.toLocaleString(t,{minimumFractionDigits:2,maximumFractionDigits:2})},m=e=>parseFloat(e)/100,u=e=>(e=new Date(e)||new Date,[1,2,3,4][Math.floor(e.getMonth()/3)]);var b,p=[{attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountSubtotal:{type:"number",default:""},amountTotal:{type:"number",default:""},taxRates:{type:"string",default:""},taxRatesTotal:{type:"number",default:""}},save:e=>{const{className:l,attributes:{currency:s,locale:r,amountSubtotal:c,amountTotal:i,taxRates:u,taxRatesTotal:b}}=e;return(0,t.createElement)("div",{className:"invoicetable-block alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Amount","billy")),u&&b>0&&(0,t.createElement)("th",{scope:"col"},(0,a.__)("Tax","billy")))),(0,t.createElement)("tbody",null,(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,c>0&&(0,t.createElement)("tr",{className:"subtotal"},(0,t.createElement)("td",{colSpan:"2",className:"align-right"},i>c?(0,a.__)("Subtotal","billy"):(0,a.__)("Total","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r)))),u&&b>0&&(0,t.createElement)("tr",{className:"taxrates"},(0,t.createElement)("td",{colSpan:"2",className:"align-right"},(0,a.__)("Tax","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},JSON.parse(u).sort(((e,t)=>m(e.taxRate)-m(t.taxRate))).map(((e,l)=>{if(e.amount>0)return(0,t.createElement)(t.RawHTML,{key:l},(0,a.sprintf)((0,a.__)("%1$s %2$s %3$s","billy"),s,o(e.amount,r),"<small>("+e.taxRate+")</small><br>"))})))),i>c&&(0,t.createElement)("tr",{className:"total"},(0,t.createElement)("td",{colSpan:"2",className:"align-right"},(0,a.__)("Total","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))))))}},{attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountSubtotal:{type:"number",default:""},amountTotal:{type:"number",default:""},taxRates:{type:"string",default:""},taxRatesTotal:{type:"number",default:""}},save:e=>{const{className:l,attributes:{currency:s,locale:r,amountSubtotal:c,amountTotal:i,taxRates:u,taxRatesTotal:b}}=e;return(0,t.createElement)("div",{className:"invoicetable-block alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Amount","billy")),u&&b>0&&(0,t.createElement)("th",{scope:"col"},(0,a.__)("Tax","billy")))),(0,t.createElement)("tbody",null,(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,c>0&&(0,t.createElement)("tr",{className:"subtotal"},(0,t.createElement)("td",{colSpan:"2",align:"right"},i>c?(0,a.__)("Subtotal","billy"):(0,a.__)("Total","billy")),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r)))),u&&b>0&&(0,t.createElement)("tr",{className:"taxrates"},(0,t.createElement)("td",{colSpan:"2",align:"right"},(0,a.__)("Tax","billy")),(0,t.createElement)("td",null,JSON.parse(u).sort(((e,t)=>m(e.taxRate)-m(t.taxRate))).map(((e,l)=>{if(e.amount>0)return(0,t.createElement)(t.RawHTML,{key:l},(0,a.sprintf)((0,a.__)("%1$s %2$s %3$s","billy"),s,o(e.amount,r),"<small>("+e.taxRate+")</small><br>"))})))),i>c&&(0,t.createElement)("tr",{className:"total"},(0,t.createElement)("td",{colSpan:"2",align:"right"},(0,a.__)("Total","billy")),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))))))}}],d=[{attributes:{index:{type:"number",default:"0"},currency:{type:"string",default:""},locale:{type:"string",default:""},description:{type:"string",default:""},taxRate:{type:"string",default:""},amount:{type:"number",default:""},amountIncl:{type:"number",default:""},quantity:{type:"number",default:""},quantityRate:{type:"number",default:""}},save:e=>{const{className:l,attributes:{index:n,locale:s,description:r,taxRate:c,amount:i}}=e;return(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"row"},n&&n),(0,t.createElement)("td",null,r&&(0,t.createElement)(t.RawHTML,null,r)),(0,t.createElement)("td",null,i&&o(i,s)),c&&m(c)*i>0&&(0,t.createElement)("td",null,(0,t.createElement)(t.RawHTML,null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),o(m(c)*i,s),"<small>("+c+")</small>"))))}}];(0,l.registerBlockType)("billy-blocks/invoice-table",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Invoice","billy"),(0,a.__)("Table","billy")),icon:"menu-alt",category:"billy-blocks",attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountSubtotal:{type:"number",default:""},amountTotal:{type:"number",default:""},taxRates:{type:"string",default:""},taxRatesTotal:{type:"number",default:""}},supports:{inserter:!1,reusable:!1,html:!1},getEditWrapperProps(){return{"data-align":"wide"}},edit:(0,i.withSelect)(((e,t)=>{let{clientId:l}=t;const{getBlocksByClientId:a}=e("core/block-editor");return{childBlocks:a(l)[0].innerBlocks}}))((e=>{const{className:l,childBlocks:s,attributes:{currency:r,locale:c,amountSubtotal:i,amountTotal:u,taxRates:p,taxRatesTotal:d},setAttributes:y}=e;return b=()=>{var e=0,t=0,l=0,a=[],n=[];y({currency:globalDataBilly.currency}),y({locale:globalDataBilly.locale}),s&&s.length>0&&(s.map(((l,n)=>{e+=Number(l.attributes.amount),t+=Number(l.attributes.amount)+m(l.attributes.taxRate)*Number(l.attributes.amount),a.push({taxRate:l.attributes.taxRate,amount:m(l.attributes.taxRate)*Number(l.attributes.amount)})})),a.length>0&&(l=a.reduce((function(e,t){return e+t.amount}),0),l=Number(l.toFixed(2)),a.reduce((function(e,t){return e[t.taxRate]||(e[t.taxRate]={taxRate:t.taxRate,amount:0},n.push(e[t.taxRate])),e[t.taxRate].amount+=t.amount,e}),{})),y({taxRatesTotal:l}),y({taxRates:JSON.stringify(n)}),y({amountSubtotal:e}),y({amountTotal:t}))},(0,t.useEffect)((()=>{b()})),(0,t.createElement)("div",{className:"invoicetable-block"+(l?" "+l:"")},(0,t.createElement)(n.InnerBlocks,{templateLock:!1,template:[["billy-blocks/invoice-tablerow",{}]],allowedBlocks:["billy-blocks/invoice-tablerow"]}),i>0&&(0,t.createElement)("table",{className:"totals"},(0,t.createElement)("tbody",null,i>0&&(0,t.createElement)("tr",{className:"subtotal"},(0,t.createElement)("th",{style:{width:"50%"}},u>i?(0,a.__)("Subtotal","billy"):(0,a.__)("Total","billy")),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),r,o(i,c)))),p&&d>0&&(0,t.createElement)("tr",{className:"taxRates"},(0,t.createElement)("th",{style:{width:"50%"}},(0,a.__)("Tax","billy")),(0,t.createElement)("td",null,JSON.parse(p).sort(((e,t)=>m(e.taxRate)-m(t.taxRate))).map(((e,l)=>{if(e.amount>0)return(0,t.createElement)(t.RawHTML,{key:l},(0,a.sprintf)((0,a.__)("%1$s %2$s %3$s","billy"),r,o(e.amount,c),"<small>("+e.taxRate+")</small><br>"))})))),u>i&&(0,t.createElement)("tr",{className:"total"},(0,t.createElement)("th",{style:{width:"50%"}},(0,a.__)("Total","billy")),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),r,o(u,c)))))),(0,t.createElement)("button",{id:"updatetotals",className:"components-button is-secondary is-button",onClick:b,style:{display:i>0?"block":"none"}},(0,a.__)("Update Totals","billy")))})),save:e=>{const{className:l,attributes:{currency:s,locale:r,amountSubtotal:c,amountTotal:i,taxRates:u,taxRatesTotal:b}}=e;return(0,t.createElement)("div",{className:"invoicetable-block alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Amount","billy")),u&&b>0&&(0,t.createElement)("th",{scope:"col"},(0,a.__)("Tax","billy")))),(0,t.createElement)("tbody",null,(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,c>0&&(0,t.createElement)("tr",{className:"subtotal"},(0,t.createElement)("th",{colSpan:"2"},i>c?(0,a.__)("Subtotal","billy"):(0,a.__)("Total","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r)))),u&&b>0&&(0,t.createElement)("tr",{className:"taxrates"},(0,t.createElement)("th",{colSpan:"2"},(0,a.__)("Tax","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},JSON.parse(u).sort(((e,t)=>m(e.taxRate)-m(t.taxRate))).map(((e,l)=>{if(e.amount>0)return(0,t.createElement)(t.RawHTML,{key:l},(0,a.sprintf)((0,a.__)("%1$s %2$s %3$s","billy"),s,o(e.amount,r),"<small>("+e.taxRate+")</small><br>"))})))),i>c&&(0,t.createElement)("tr",{className:"total"},(0,t.createElement)("th",{colSpan:"2"},(0,a.__)("Total","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))))))},deprecated:p}),(0,l.registerBlockType)("billy-blocks/invoice-tablerow",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Invoice","billy"),(0,a.__)("Table Row","billy")),icon:"menu-alt",category:"billy-blocks",parent:["billy-blocks/invoice-table"],attributes:{index:{type:"number",default:"0"},currency:{type:"string",default:""},locale:{type:"string",default:""},taxRate:{type:"string",default:""},amount:{type:"number",default:""},amountIncl:{type:"number",default:""},quantity:{type:"number",default:""},quantityRate:{type:"number",default:""}},getEditWrapperProps(){return{"data-align":"wide"}},edit:(0,i.withSelect)(((e,t)=>{let{clientId:l}=t;const{getBlockRootClientId:a,getBlockIndex:n}=e("core/block-editor");return{i:n(l,a(l))+1}}))((e=>{const{className:l,i:r,attributes:{index:c,currency:i,locale:o,description:u,taxRate:p,amount:d,amountIncl:y,quantity:_,quantityRate:E},setAttributes:g}=e;(0,t.useEffect)((()=>{g({index:r}),g({currency:globalDataBilly.currency}),g({locale:globalDataBilly.locale}),""===p&&g({taxRate:0===globalDataBilly.taxOptions.length?"0%":globalDataBilly.taxOptions[0].value})}));const f=e=>{g({amountIncl:e>0?Number(e):""}),b()},x=e=>{g({amount:e>0?Number(e):""}),f(Number(e)+Number(e)*m(p))};return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Quantity/Rate Calculator","billy")},(0,t.createElement)(s.TextControl,{type:"number",label:(0,a.__)("Quantity","billy"),placeholder:(0,a.__)("0","billy"),value:_,onChange:e=>{g({quantity:e>0?Number(e):""}),x(Number(e)*Number(E))}}),(0,t.createElement)(s.TextControl,{type:"number",label:(0,a.sprintf)((0,a.__)("%1$s in %2$s","billy"),(0,a.__)("Rate","billy"),i),placeholder:(0,a.__)("0","billy"),value:E,onChange:e=>{g({quantityRate:e>0?Number(e):""}),x(Number(_)*Number(e))}}))),(0,t.createElement)("table",null,(0,t.createElement)("tbody",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{className:"index"},c&&c),(0,t.createElement)("td",{style:{width:"30vw",minWidth:"200px"}},(0,t.createElement)(n.InnerBlocks,{template:[["core/paragraph",{placeholder:(0,a.__)("Add content","billy"),content:u||""}]],allowedBlocks:["core/heading","core/paragraph","core/list","core/html"]})),(0,t.createElement)("td",null,(0,t.createElement)(s.TextControl,{type:"number",label:(0,a.sprintf)((0,a.__)("%1$s in %2$s","billy"),(0,a.__)("Amount","billy"),i),className:"amount",placeholder:(0,a.__)("0","billy"),value:d,onChange:x})),(0,t.createElement)("td",null,(0,t.createElement)(s.SelectControl,{className:"taxrate",label:(0,a.sprintf)((0,a.__)("%1$s in %2$s","billy"),(0,a.__)("Tax","billy"),"%"),value:p,options:0!==globalDataBilly.taxOptions.length?globalDataBilly.taxOptions:"0%"!==p&&0===globalDataBilly.taxOptions.length?[{label:p,value:p},{label:"0%",value:"0%"}]:"",onChange:e=>{g({taxRate:e}),f(Number(d)+Number(d)*m(e))}})),(0,t.createElement)("td",null,(0,t.createElement)(s.TextControl,{type:"number",disabled:"disabled",label:i,className:"amount-tax",placeholder:(0,a.__)("0","billy"),value:y}))))))})),save:e=>{const{className:l,attributes:{index:s,locale:r,taxRate:c,amount:i}}=e;return(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"row"},s&&s),(0,t.createElement)("td",null,(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("td",null,i&&o(i,r)),c&&m(c)*i>0&&(0,t.createElement)("td",null,(0,t.createElement)(t.RawHTML,null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),o(m(c)*i,r),"<small>("+c+")</small>"))))},deprecated:d}),(0,l.registerBlockType)("billy-blocks/quote-actions",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Quote","billy"),(0,a.__)("Actions","billy")),icon:"menu-alt",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},getEditWrapperProps(){return{"data-align":"wide"}},edit:(0,i.withSelect)((e=>({postModifiedDate:e("core/editor").getEditedPostAttribute("modified")})))((e=>{const{postModifiedDate:l}=e;return(0,t.createElement)("div",{className:"components-placeholder",style:{minHeight:"auto"}},(0,t.createElement)("small",null,(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Last modified","billy"),new Date(l).toLocaleString())))})),save:e=>null}),(0,l.registerBlockType)("billy-blocks/quote-meta",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Quote","billy"),(0,a.__)("Meta","billy")),icon:"editor-textcolor",category:"billy-blocks",attributes:{label:{type:"string",default:""},text:{type:"string",default:""}},supports:{inserter:!1,reusable:!1,html:!1},edit:e=>{const{className:l,attributes:{label:r,text:c},setAttributes:i}=e;return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Label","billy")},(0,t.createElement)(s.TextControl,{type:"text",className:"label",value:r,onChange:e=>{i({label:e})}})),(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Text","billy")},(0,t.createElement)(s.TextControl,{type:"text",className:"text",value:c,onChange:e=>{i({text:e})}}))),(0,t.createElement)(t.RawHTML,null,(0,a.sprintf)((0,a.__)('<div class="label">%1$s</div> <div class="text">%2$s</div>',"billy"),r||"",c||(0,a.__)("N/A","billy"))))},save:e=>{const{className:l,attributes:{label:n,text:s}}=e;return s&&(0,t.createElement)(t.RawHTML,null,(0,a.sprintf)((0,a.__)('<div class="label">%1$s</div> <div class="text">%2$s</div>',"billy"),n||"",s||(0,a.__)("N/A","billy")))},deprecated:[{attributes:{label:{type:"string",default:""},text:{type:"string",default:""}},save:e=>{const{className:l,attributes:{label:n,text:s}}=e;return s&&(0,t.createElement)("p",null,(0,t.createElement)(t.RawHTML,null,(0,a.sprintf)("<p>"+(0,a.__)("<strong>%1$s</strong> <span>%2$s</span>","billy")+"</p>",n||"",s||(0,a.__)("N/A","billy"))))}}]}),(0,l.registerBlockType)("billy-blocks/quote-date",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Quote","billy"),(0,a.__)("Date","billy")),icon:"calendar-alt",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},edit:e=>(0,t.createElement)(c(),{block:"billy-blocks/quote-date"}),save:e=>null}),(0,l.registerBlockType)("billy-blocks/quote-information",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Quote","billy"),(0,a.__)("Information","billy")),icon:"info",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},edit:e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Info","billy")},(0,t.createElement)("div",{className:"components-notice"},(0,t.createElement)("div",{className:"components-notice__content"},(0,a.sprintf)((0,a.__)("The %s values can be modified in the Theme Customizer.","billy"),(0,a.__)("Quote Information","billy")))))),(0,t.createElement)(c(),{block:"billy-blocks/quote-information"})),save:e=>null});var y,_=[{attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountSubtotal:{type:"number",default:""},amountTotal:{type:"number",default:""},taxRates:{type:"string",default:""},taxRatesTotal:{type:"number",default:""}},save:e=>{const{className:l,attributes:{currency:s,locale:r,amountSubtotal:c,amountTotal:i,taxRates:u,taxRatesTotal:b}}=e;return(0,t.createElement)("div",{className:"quotetable-block alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Amount","billy")),u&&b>0&&(0,t.createElement)("th",{scope:"col"},(0,a.__)("Tax","billy")))),(0,t.createElement)("tbody",null,(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,c>0&&(0,t.createElement)("tr",{className:"subtotal"},(0,t.createElement)("td",{colSpan:"2",className:"align-right"},i>c?(0,a.__)("Subtotal","billy"):(0,a.__)("Total","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r)))),u&&b>0&&(0,t.createElement)("tr",{className:"taxrates"},(0,t.createElement)("td",{colSpan:"2",className:"align-right"},(0,a.__)("Tax","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},JSON.parse(u).sort(((e,t)=>m(e.taxRate)-m(t.taxRate))).map(((e,l)=>{if(e.amount>0)return(0,t.createElement)(t.RawHTML,{key:l},(0,a.sprintf)((0,a.__)("%1$s %2$s %3$s","billy"),s,o(e.amount,r),"<small>("+e.taxRate+")</small><br>"))})))),i>c&&(0,t.createElement)("tr",{className:"total"},(0,t.createElement)("td",{colSpan:"2",className:"align-right"},(0,a.__)("Total","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))))))}},{attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountSubtotal:{type:"number",default:""},amountTotal:{type:"number",default:""},taxRates:{type:"string",default:""},taxRatesTotal:{type:"number",default:""}},save:e=>{const{className:l,attributes:{currency:s,locale:r,amountSubtotal:c,amountTotal:i,taxRates:u,taxRatesTotal:b}}=e;return(0,t.createElement)("div",{className:"quotetable-block alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Amount","billy")),u&&b>0&&(0,t.createElement)("th",{scope:"col"},(0,a.__)("Tax","billy")))),(0,t.createElement)("tbody",null,(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,c>0&&(0,t.createElement)("tr",{className:"subtotal"},(0,t.createElement)("td",{colSpan:"2",align:"right"},i>c?(0,a.__)("Subtotal","billy"):(0,a.__)("Total","billy")),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r)))),u&&b>0&&(0,t.createElement)("tr",{className:"taxrates"},(0,t.createElement)("td",{colSpan:"2",align:"right"},(0,a.__)("Tax","billy")),(0,t.createElement)("td",null,JSON.parse(u).sort(((e,t)=>m(e.taxRate)-m(t.taxRate))).map(((e,l)=>{if(e.amount>0)return(0,t.createElement)(t.RawHTML,{key:l},(0,a.sprintf)((0,a.__)("%1$s %2$s %3$s","billy"),s,o(e.amount,r),"<small>("+e.taxRate+")</small><br>"))})))),i>c&&(0,t.createElement)("tr",{className:"total"},(0,t.createElement)("td",{colSpan:"2",align:"right"},(0,a.__)("Total","billy")),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))))))}}],E=[{attributes:{index:{type:"number",default:"0"},currency:{type:"string",default:""},locale:{type:"string",default:""},description:{type:"string",default:""},taxRate:{type:"string",default:""},amount:{type:"number",default:""},amountIncl:{type:"number",default:""},quantity:{type:"number",default:""},quantityRate:{type:"number",default:""}},save:e=>{const{className:l,attributes:{index:n,locale:s,description:r,taxRate:c,amount:i}}=e;return(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"row"},n&&n),(0,t.createElement)("td",null,r&&(0,t.createElement)(t.RawHTML,null,r)),(0,t.createElement)("td",null,i&&o(i,s)),c&&m(c)*i>0&&(0,t.createElement)("td",null,(0,t.createElement)(t.RawHTML,null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),o(m(c)*i,s),"<small>("+c+")</small>"))))}}];(0,l.registerBlockType)("billy-blocks/quote-table",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Quote","billy"),(0,a.__)("Table","billy")),icon:"menu-alt",category:"billy-blocks",attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountSubtotal:{type:"number",default:""},amountTotal:{type:"number",default:""},taxRates:{type:"string",default:""},taxRatesTotal:{type:"number",default:""}},supports:{inserter:!1,reusable:!1,html:!1},getEditWrapperProps(){return{"data-align":"wide"}},edit:(0,i.withSelect)(((e,t)=>{let{clientId:l}=t;const{getBlocksByClientId:a}=e("core/block-editor");return{childBlocks:a(l)[0].innerBlocks}}))((e=>{const{className:l,childBlocks:s,attributes:{currency:r,locale:c,amountSubtotal:i,amountTotal:u,taxRates:b,taxRatesTotal:p},setAttributes:d}=e;return y=()=>{var e=0,t=0,l=0,a=[],n=[];d({currency:globalDataBilly.currency}),d({locale:globalDataBilly.locale}),s&&s.length>0&&(s.map(((l,n)=>{e+=Number(l.attributes.amount),t+=Number(l.attributes.amount)+m(l.attributes.taxRate)*Number(l.attributes.amount),a.push({taxRate:l.attributes.taxRate,amount:m(l.attributes.taxRate)*Number(l.attributes.amount)})})),a.length>0&&(l=a.reduce((function(e,t){return e+t.amount}),0),l=Number(l.toFixed(2)),a.reduce((function(e,t){return e[t.taxRate]||(e[t.taxRate]={taxRate:t.taxRate,amount:0},n.push(e[t.taxRate])),e[t.taxRate].amount+=t.amount,e}),{})),d({taxRatesTotal:l}),d({taxRates:JSON.stringify(n)}),d({amountSubtotal:e}),d({amountTotal:t}))},(0,t.useEffect)((()=>{y()})),(0,t.createElement)("div",{className:"quotetable-block"+(l?" "+l:"")},(0,t.createElement)(n.InnerBlocks,{templateLock:!1,template:[["billy-blocks/quote-tablerow",{}]],allowedBlocks:["billy-blocks/quote-tablerow"]}),i>0&&(0,t.createElement)("table",{className:"totals"},(0,t.createElement)("tbody",null,i>0&&(0,t.createElement)("tr",{className:"subtotal"},(0,t.createElement)("th",{style:{width:"50%"}},u>i?(0,a.__)("Subtotal","billy"):(0,a.__)("Total","billy")),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),r,o(i,c)))),b&&p>0&&(0,t.createElement)("tr",{className:"taxRates"},(0,t.createElement)("th",{style:{width:"50%"}},(0,a.__)("Tax","billy")),(0,t.createElement)("td",null,JSON.parse(b).sort(((e,t)=>m(e.taxRate)-m(t.taxRate))).map(((e,l)=>{if(e.amount>0)return(0,t.createElement)(t.RawHTML,{key:l},(0,a.sprintf)((0,a.__)("%1$s %2$s %3$s","billy"),r,o(e.amount,c),"<small>("+e.taxRate+")</small><br>"))})))),u>i&&(0,t.createElement)("tr",{className:"total"},(0,t.createElement)("th",{style:{width:"50%"}},(0,a.__)("Total","billy")),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),r,o(u,c)))))),(0,t.createElement)("button",{id:"updatetotals",className:"components-button is-secondary is-button",onClick:y,style:{display:i>0?"block":"none"}},(0,a.__)("Update Totals","billy")))})),save:e=>{const{className:l,attributes:{currency:s,locale:r,amountSubtotal:c,amountTotal:i,taxRates:u,taxRatesTotal:b}}=e;return(0,t.createElement)("div",{className:"quotetable-block alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col"},(0,a.__)("Amount","billy")),u&&b>0&&(0,t.createElement)("th",{scope:"col"},(0,a.__)("Tax","billy")))),(0,t.createElement)("tbody",null,(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,c>0&&(0,t.createElement)("tr",{className:"subtotal"},(0,t.createElement)("th",{colSpan:"2"},i>c?(0,a.__)("Subtotal","billy"):(0,a.__)("Total","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r)))),u&&b>0&&(0,t.createElement)("tr",{className:"taxrates"},(0,t.createElement)("th",{colSpan:"2"},(0,a.__)("Tax","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},JSON.parse(u).sort(((e,t)=>m(e.taxRate)-m(t.taxRate))).map(((e,l)=>{if(e.amount>0)return(0,t.createElement)(t.RawHTML,{key:l},(0,a.sprintf)((0,a.__)("%1$s %2$s %3$s","billy"),s,o(e.amount,r),"<small>("+e.taxRate+")</small><br>"))})))),i>c&&(0,t.createElement)("tr",{className:"total"},(0,t.createElement)("th",{colSpan:"2"},(0,a.__)("Total","billy")),(0,t.createElement)("td",{colSpan:u&&b>0?"2":null},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))))))},deprecated:_}),(0,l.registerBlockType)("billy-blocks/quote-tablerow",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Quote","billy"),(0,a.__)("Table Row","billy")),icon:"menu-alt",category:"billy-blocks",parent:["billy-blocks/quote-table"],attributes:{index:{type:"number",default:"0"},currency:{type:"string",default:""},locale:{type:"string",default:""},taxRate:{type:"string",default:""},amount:{type:"number",default:""},amountIncl:{type:"number",default:""},quantity:{type:"number",default:""},quantityRate:{type:"number",default:""}},getEditWrapperProps(){return{"data-align":"wide"}},edit:(0,i.withSelect)(((e,t)=>{let{clientId:l}=t;const{getBlockRootClientId:a,getBlockIndex:n}=e("core/block-editor");return{i:n(l,a(l))+1}}))((e=>{const{className:l,i:r,attributes:{index:c,currency:i,locale:o,description:u,taxRate:b,amount:p,amountIncl:d,quantity:_,quantityRate:E},setAttributes:g}=e;(0,t.useEffect)((()=>{g({index:r}),g({currency:globalDataBilly.currency}),g({locale:globalDataBilly.locale}),""===b&&g({taxRate:0===globalDataBilly.taxOptions.length?"0%":globalDataBilly.taxOptions[0].value})}));const f=e=>{g({amountIncl:e>0?Number(e):""}),y()},x=e=>{g({amount:e>0?Number(e):""}),f(Number(e)+Number(e)*m(b))};return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Quantity/Rate Calculator","billy")},(0,t.createElement)(s.TextControl,{type:"number",label:(0,a.__)("Quantity","billy"),placeholder:(0,a.__)("0","billy"),value:_,onChange:e=>{g({quantity:e>0?Number(e):""}),x(Number(e)*Number(E))}}),(0,t.createElement)(s.TextControl,{type:"number",label:(0,a.sprintf)((0,a.__)("%1$s in %2$s","billy"),(0,a.__)("Rate","billy"),i),placeholder:(0,a.__)("0","billy"),value:E,onChange:e=>{g({quantityRate:e>0?Number(e):""}),x(Number(_)*Number(e))}}))),(0,t.createElement)("table",null,(0,t.createElement)("tbody",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{className:"index"},c&&c),(0,t.createElement)("td",{style:{width:"30vw",minWidth:"200px"}},(0,t.createElement)(n.InnerBlocks,{template:[["core/paragraph",{placeholder:(0,a.__)("Add content","billy"),content:u||""}]],allowedBlocks:["core/heading","core/paragraph","core/list","core/html"]})),(0,t.createElement)("td",null,(0,t.createElement)(s.TextControl,{type:"number",label:(0,a.sprintf)((0,a.__)("%1$s in %2$s","billy"),(0,a.__)("Amount","billy"),i),className:"amount",placeholder:(0,a.__)("0","billy"),value:p,onChange:x})),(0,t.createElement)("td",null,(0,t.createElement)(s.SelectControl,{className:"taxrate",label:(0,a.sprintf)((0,a.__)("%1$s in %2$s","billy"),(0,a.__)("Tax","billy"),"%"),value:b,options:0!==globalDataBilly.taxOptions.length?globalDataBilly.taxOptions:"0%"!==b&&0===globalDataBilly.taxOptions.length?[{label:b,value:b},{label:"0%",value:"0%"}]:"",onChange:e=>{g({taxRate:e}),f(Number(p)+Number(p)*m(e))}})),(0,t.createElement)("td",null,(0,t.createElement)(s.TextControl,{type:"number",disabled:"disabled",label:i,className:"amount-tax",placeholder:(0,a.__)("0","billy"),value:d}))))))})),save:e=>{const{className:l,attributes:{index:s,locale:r,taxRate:c,amount:i}}=e;return(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"row"},s&&s),(0,t.createElement)("td",null,(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("td",null,i&&o(i,r)),c&&m(c)*i>0&&(0,t.createElement)("td",null,(0,t.createElement)(t.RawHTML,null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),o(m(c)*i,r),"<small>("+c+")</small>"))))},deprecated:E}),(0,l.registerBlockType)("billy-blocks/quote-validuntildate",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Quote","billy"),(0,a.__)("Valid Until","billy")),icon:"calendar-alt",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},edit:e=>(0,t.createElement)(c(),{block:"billy-blocks/quote-validuntildate"}),save:e=>null});var g,f=[{attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountTotalEarnings:{type:"number",default:""},amountTotalExpenses:{type:"number",default:""},amountTaxEarnings:{type:"number",default:""},amountTaxExpenses:{type:"number",default:""}},save:e=>{const{className:l,attributes:{currency:s,locale:r,amountTotalEarnings:c,amountTotalExpenses:i,amountTaxEarnings:m,amountTaxExpenses:u}}=e;return(0,t.createElement)("div",{className:"alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"index"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"date"},(0,a.__)("Date","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"description"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"reference"},(0,a.__)("Reference","billy")),(0,t.createElement)("th",{scope:"col",className:"sort earnings","data-sort":"earning"},(0,a.__)("Earnings","billy")),(0,t.createElement)("th",{scope:"col",className:"sort expenses","data-sort":"expense"},(0,a.__)("Expenses","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"tax"},(0,a.__)("Taxes","billy")))),(0,t.createElement)("tbody",{className:"list"},(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,(c>0||i>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("th",{colSpan:"5"},(0,a.sprintf)((0,a.__)("%1$s / %2$s","billy"),(0,a.__)("Earnings","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",{className:"sum earnings"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r))),(0,t.createElement)("td",{className:"sum expenses"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))),(c>0||i>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("th",{colSpan:"5"},(0,a.__)("Profit","billy")),(0,t.createElement)("td",{colSpan:"2",className:"profit"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c-i,r)))),(m>0||u>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("th",{colSpan:"5"},(0,a.sprintf)((0,a.__)("%1$s (%2$s / %3$s)","billy"),(0,a.__)("Taxes","billy"),(0,a.__)("Earnings","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",{className:"sum tax-earnings"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(m,r))),(0,t.createElement)("td",{className:"sum tax-expenses"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(u,r)))))))}},{attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountTotalEarnings:{type:"number",default:""},amountTotalExpenses:{type:"number",default:""},amountTaxEarnings:{type:"number",default:""},amountTaxExpenses:{type:"number",default:""}},save:e=>{const{className:l,attributes:{currency:s,locale:r,amountTotalEarnings:c,amountTotalExpenses:i,amountTaxEarnings:m,amountTaxExpenses:u}}=e;return(0,t.createElement)("div",{className:"alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"index"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"date"},(0,a.__)("Date","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"description"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"reference"},(0,a.__)("Reference","billy")),(0,t.createElement)("th",{scope:"col",className:"sort earnings","data-sort":"earning"},(0,a.__)("Earnings","billy")),(0,t.createElement)("th",{scope:"col",className:"sort expenses","data-sort":"expense"},(0,a.__)("Expenses","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"tax"},(0,a.__)("Taxes","billy")))),(0,t.createElement)("tbody",{className:"list"},(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,(c>0||i>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"5",className:"alignright"},(0,a.sprintf)((0,a.__)("%1$s / %2$s","billy"),(0,a.__)("Earnings","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",{className:"sum earnings"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r))),(0,t.createElement)("td",{className:"sum expenses"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))),(c>0||i>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"5",className:"alignright"},(0,a.__)("Profit","billy")),(0,t.createElement)("td",{colSpan:"2",className:"profit"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c-i,r)))),(m>0||u>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"5",className:"alignright"},(0,a.sprintf)((0,a.__)("%1$s (%2$s / %3$s)","billy"),(0,a.__)("Taxes","billy"),(0,a.__)("Earnings","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",{className:"sum tax-earnings"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(m,r))),(0,t.createElement)("td",{className:"sum tax-expenses"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(u,r)))))))}},{attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountTotalEarnings:{type:"number",default:""},amountTotalExpenses:{type:"number",default:""},amountTaxEarnings:{type:"number",default:""},amountTaxExpenses:{type:"number",default:""}},save:e=>{const{className:l,attributes:{currency:s,locale:r,amountTotalEarnings:c,amountTotalExpenses:i,amountTaxEarnings:m,amountTaxExpenses:u}}=e;return(0,t.createElement)("div",{className:"alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"index"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"date"},(0,a.__)("Date","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"description"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"reference"},(0,a.__)("Reference","billy")),(0,t.createElement)("th",{scope:"col",className:"sort earnings","data-sort":"earning"},(0,a.__)("Earnings","billy")),(0,t.createElement)("th",{scope:"col",className:"sort expenses","data-sort":"expense"},(0,a.__)("Expenses","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"tax"},(0,a.__)("Tax","billy")))),(0,t.createElement)("tbody",{className:"list"},(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,(c>0||i>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"4",align:"right"},(0,a.sprintf)((0,a.__)("%1$s / %2$s","billy"),(0,a.__)("Earnings","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",{className:"sum earnings"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r))),(0,t.createElement)("td",{className:"sum expenses"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))),(c>0||i>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"4",align:"right"},(0,a.__)("Profit","billy")),(0,t.createElement)("td",{colSpan:"2",className:"profit"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c-i,r)))),(m>0||u>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"4",align:"right"},(0,a.sprintf)((0,a.__)("%1$s (%2$s / %3$s)","billy"),(0,a.__)("Taxes","billy"),(0,a.__)("Earnings","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",{className:"sum tax-earnings"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(m,r))),(0,t.createElement)("td",{className:"sum tax-expenses"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(u,r)))))))}},{attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountTotalEarnings:{type:"number",default:""},amountTotalExpenses:{type:"number",default:""},amountTaxEarnings:{type:"number",default:""},amountTaxExpenses:{type:"number",default:""}},save:e=>{const{className:l,attributes:{currency:s,locale:r,amountTotalEarnings:c,amountTotalExpenses:i,amountTaxEarnings:m,amountTaxExpenses:u}}=e;return(0,t.createElement)("div",{className:"alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"index"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"date"},(0,a.__)("Date","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"description"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"reference"},(0,a.__)("Reference","billy")),(0,t.createElement)("th",{scope:"col",className:"sort earnings","data-sort":"earning"},(0,a.__)("Earning","billy")),(0,t.createElement)("th",{scope:"col",className:"sort expenses","data-sort":"expense"},(0,a.__)("Expense","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"tax"},(0,a.__)("Tax","billy")))),(0,t.createElement)("tbody",{className:"list"},(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,(c>0||i>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"4",align:"right"},(0,a.sprintf)((0,a.__)("%1$s / %2$s","billy"),(0,a.__)("Earnings","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",{className:"sum earnings"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r))),(0,t.createElement)("td",{className:"sum expenses"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))),(c>0||i>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"4",align:"right"},(0,a.__)("Profit","billy")),(0,t.createElement)("td",{colSpan:"2",className:"profit"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c-i,r)))),(m>0||u>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"4",align:"right"},(0,a.sprintf)((0,a.__)("%1$s (%2$s / %3$s)","billy"),(0,a.__)("Taxes","billy"),(0,a.__)("Earnings","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",{className:"sum tax-earnings"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(m,r))),(0,t.createElement)("td",{className:"sum tax-expenses"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(u,r)))))))}}],x=[{attributes:{index:{type:"number",default:"0"},currency:{type:"string",default:""},locale:{type:"string",default:""},date:{type:"string",default:""},quarter:{type:"number",default:""},reference:{type:"string",default:""},earning:{type:"number",default:""},expense:{type:"number",default:""},tax:{type:"number",default:""},postUUID:{type:"string",default:""},postTitle:{type:"string",default:""},postLink:{type:"string",default:""},postType:{type:"string",default:""}},save:e=>{const{className:l,attributes:{index:s,locale:r,date:c,quarter:i,earning:m,expense:u,tax:b,reference:p,postLink:d}}=e;return(0,t.createElement)("tr",{"data-date":c&&new Date(c).toISOString().substring(0,10),"data-quarter":i&&(0,a.sprintf)((0,a.__)("Q%s","billy"),i),"data-reference":p&&p,"data-earning":m>0?m:null,"data-expense":u>0?u:null,"data-tax":b>0?b:null},(0,t.createElement)("th",{className:"index",scope:"row"},s&&s),(0,t.createElement)("td",{className:"date","data-value":c&&new Date(c).toISOString().substring(0,10)},c&&new Date(c).toISOString().substring(0,10),(0,t.createElement)("sub",null,i&&(0,a.sprintf)((0,a.__)("Q%s","billy"),i))),(0,t.createElement)("td",{className:"description"},(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("td",{className:"reference"},p&&!d&&p,p&&d&&(0,t.createElement)("a",{href:d},p)),(0,t.createElement)("td",{className:"amount earning","data-value":m>0?m:null},m&&m>0&&o(m,r)),(0,t.createElement)("td",{className:"amount expense","data-value":u>0?u:null},u&&u>0&&o(u,r)),(0,t.createElement)("td",{className:"amount tax","data-value":b>0?b:null},b&&b>0&&o(b,r)))}},{attributes:{index:{type:"number",default:"0"},currency:{type:"string",default:""},locale:{type:"string",default:""},date:{type:"string",default:""},quarter:{type:"number",default:""},reference:{type:"string",default:""},description:{type:"string",default:""},earning:{type:"number",default:""},expense:{type:"number",default:""},tax:{type:"number",default:""},postUUID:{type:"string",default:""},postTitle:{type:"string",default:""},postLink:{type:"string",default:""},postType:{type:"string",default:""}},save:e=>{const{className:l,attributes:{index:n,locale:s,date:r,quarter:c,description:i,earning:m,expense:u,tax:b,reference:p,postLink:d}}=e;return(0,t.createElement)("tr",{"data-date":r&&new Date(r).toISOString().substring(0,10),"data-quarter":c&&(0,a.sprintf)((0,a.__)("Q%s","billy"),c),"data-reference":p&&p,"data-earning":m>0?m:null,"data-expense":u>0?u:null,"data-tax":b>0?b:null},(0,t.createElement)("th",{className:"index",scope:"row"},n&&n),(0,t.createElement)("td",{className:"date","data-value":r&&new Date(r).toISOString().substring(0,10)},r&&new Date(r).toISOString().substring(0,10),(0,t.createElement)("sub",null,c&&(0,a.sprintf)((0,a.__)("Q%s","billy"),c))),(0,t.createElement)("td",{className:"description"},i&&i),(0,t.createElement)("td",{className:"reference"},p&&!d&&p,p&&d&&(0,t.createElement)("a",{href:d},p)),(0,t.createElement)("td",{className:"amount earning","data-value":m>0?m:null},m&&m>0&&o(m,s)),(0,t.createElement)("td",{className:"amount expense","data-value":u>0?u:null},u&&u>0&&o(u,s)),(0,t.createElement)("td",{className:"amount tax","data-value":b>0?b:null},b&&b>0&&o(b,s)))}}];(0,l.registerBlockType)("billy-blocks/accounting-table",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Accounting","billy"),(0,a.__)("Table","billy")),icon:"menu-alt",category:"billy-blocks",attributes:{currency:{type:"string",default:""},locale:{type:"string",default:""},amountTotalEarnings:{type:"number",default:""},amountTotalExpenses:{type:"number",default:""},amountTaxEarnings:{type:"number",default:""},amountTaxExpenses:{type:"number",default:""}},supports:{inserter:!1,reusable:!1,html:!1},getEditWrapperProps(){return{"data-align":"wide"}},edit:(0,i.withSelect)(((e,t)=>{let{clientId:l}=t;const{getBlocksByClientId:a}=e("core/block-editor"),n=a(l)[0].innerBlocks;return n.sort(((e,t)=>new Date(e.attributes.date)-new Date(t.attributes.date))),{childBlocks:n}}))((e=>{const{className:l,childBlocks:r,attributes:{currency:c,locale:i,amountTotalEarnings:m,amountTotalExpenses:u,amountTaxEarnings:b,amountTaxExpenses:p},setAttributes:d}=e;return g=()=>{var e=0,t=0,l=0,a=0;d({currency:globalDataBilly.currency}),d({locale:globalDataBilly.locale}),r&&r.length>0&&r.forEach((n=>{e+=Number(n.attributes.earning),t+=Number(n.attributes.expense),n.attributes.earning&&(l+=Number(n.attributes.tax)),n.attributes.expense&&(a+=Number(n.attributes.tax))})),d({amountTotalEarnings:e}),d({amountTotalExpenses:t}),d({amountTaxEarnings:l}),d({amountTaxExpenses:a})},(0,t.useEffect)((()=>{g()})),(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Actions","billy")},(0,t.createElement)("button",{id:"updatetotals",className:"components-button is-secondary is-button",onClick:g},(0,a.__)("Update Totals","billy")))),(0,t.createElement)("div",{className:"accountingtable-block"+(l?" "+l:"")},(0,t.createElement)(n.InnerBlocks,{templateLock:!1,template:[["billy-blocks/accounting-tablerow",{}]],allowedBlocks:["billy-blocks/accounting-tablerow"]}),(0,t.createElement)("table",{className:"totals"},(0,t.createElement)("tbody",null,m>0&&(0,t.createElement)("tr",{className:"earnings"},(0,t.createElement)("th",{style:{width:"50%"}},(0,a.__)("Earnings","billy")),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),c,o(m,i)))),u>0&&(0,t.createElement)("tr",{className:"expenses"},(0,t.createElement)("th",{style:{width:"50%"}},(0,a.__)("Expenses","billy")),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),c,o(u,i)))),(m>0||u>0)&&(0,t.createElement)("tr",{className:"profit"},(0,t.createElement)("th",{style:{width:"50%"}},(0,a.__)("Profit","billy")),(0,t.createElement)("td",{style:{borderTop:"2px solid"}},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),c,o(m-u,i)))),(0,t.createElement)(t.Fragment,null,(0,t.createElement)("tr",{className:"taxes-earnings"},(0,t.createElement)("th",{style:{width:"50%"}},(0,a.sprintf)((0,a.__)("Taxes (%s)","billy"),(0,a.__)("Earnings","billy"))),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),c,o(b,i)))),(0,t.createElement)("tr",{className:"taxes-expenses"},(0,t.createElement)("th",{style:{width:"50%"}},(0,a.sprintf)((0,a.__)("Taxes (%s)","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",null,(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),c,o(p,i)))))))))})),save:e=>{const{className:l,attributes:{currency:s,locale:r,amountTotalEarnings:c,amountTotalExpenses:i,amountTaxEarnings:m,amountTaxExpenses:u}}=e;return(0,t.createElement)("div",{className:"alignwide"+(l?" "+l:"")},(0,t.createElement)("table",{className:"table wp-block-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"index"},(0,a.__)("#","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"date"},(0,a.__)("Date","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"description"},(0,a.__)("Description","billy")),(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"reference"},(0,a.__)("Reference","billy")),(0,t.createElement)("th",{scope:"col",className:"sort earnings","data-sort":"earning"},(0,a.__)("Earnings","billy")),(0,t.createElement)("th",{scope:"col",className:"sort expenses","data-sort":"expense"},(0,a.__)("Expenses","billy")),(m>0||u>0)&&(0,t.createElement)("th",{scope:"col",className:"sort","data-sort":"tax"},(0,a.__)("Taxes","billy")))),(0,t.createElement)("tbody",{className:"list"},(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("tfoot",null,(c>0||i>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("th",{colSpan:"4"},(0,a.sprintf)((0,a.__)("%1$s / %2$s","billy"),(0,a.__)("Earnings","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",{className:"sum earnings"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c,r))),(0,t.createElement)("td",{className:"sum expenses"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(i,r)))),(c>0||i>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("th",{colSpan:"4"},(0,a.__)("Profit","billy")),(0,t.createElement)("td",{colSpan:"2",className:"profit"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(c-i,r)))),(m>0||u>0)&&(0,t.createElement)("tr",null,(0,t.createElement)("th",{colSpan:"4"},(0,a.sprintf)((0,a.__)("%1$s (%2$s / %3$s)","billy"),(0,a.__)("Taxes","billy"),(0,a.__)("Earnings","billy"),(0,a.__)("Expenses","billy"))),(0,t.createElement)("td",{className:"sum tax-earnings"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(m,r))),(0,t.createElement)("td",{className:"sum tax-expenses"},(0,a.sprintf)((0,a.__)("%1$s %2$s","billy"),s,o(u,r)))))))},deprecated:f}),(0,l.registerBlockType)("billy-blocks/accounting-tablerow",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Accounting","billy"),(0,a.__)("Table Row","billy")),icon:"menu-alt",category:"billy-blocks",parent:["billy-blocks/accounting-table"],attributes:{index:{type:"number",default:"0"},currency:{type:"string",default:""},locale:{type:"string",default:""},date:{type:"string",default:""},quarter:{type:"number",default:""},reference:{type:"string",default:""},earning:{type:"number",default:""},expense:{type:"number",default:""},tax:{type:"number",default:""},postUUID:{type:"string",default:""},postTitle:{type:"string",default:""},postLink:{type:"string",default:""},postType:{type:"string",default:""}},getEditWrapperProps(){return{"data-align":"wide"}},edit:(0,i.withSelect)(((e,t)=>{let{clientId:l}=t;const{getBlockRootClientId:a,getBlockIndex:n}=e("core/block-editor");return{clientId:l,rootClientId:a(l),i:n(l,a(l))+1}}))((e=>{const{className:l,clientId:r,rootClientId:c,i:o,attributes:{index:m,currency:b,locale:p,description:d,date:y,quarter:_,earning:E,expense:f,tax:x,reference:h,postUUID:N,postTitle:$,postLink:T,postType:k},setAttributes:v}=e;return(0,t.useEffect)((()=>{v({index:o}),v({currency:globalDataBilly.currency}),v({locale:globalDataBilly.locale}),""===y&&(v({date:(new Date).toISOString().substring(0,10)}),v({quarter:u((new Date).toISOString().substring(0,10))}))})),(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,!N&&(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Date","billy")},(0,t.createElement)(s.DatePicker,{currentDate:y,onChange:e=>{v({date:e}),(e=>{v({quarter:Number(u(e))})})(e),(0,i.dispatch)("core/block-editor").moveBlockToPosition(r,c,c,o)}})),N&&T&&(0,t.createElement)(s.PanelBody,{title:(0,a.sprintf)((0,a.__)("Reference: %s","billy"),k?k.charAt(0).toUpperCase()+k.substring(1):(0,a.__)("Post","billy"))},(0,t.createElement)("p",null,(0,t.createElement)("a",{href:T},$||T)))),(0,t.createElement)("table",null,(0,t.createElement)("tbody",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",{className:"index"},m&&m),(0,t.createElement)("td",{className:"date"},y&&new Date(y).toISOString().substring(0,10),(0,t.createElement)("sub",null,_&&(0,a.sprintf)((0,a.__)("Q%s","billy"),_))),(0,t.createElement)("td",{className:"description",style:{minWidth:"200px"}},(0,t.createElement)(n.InnerBlocks,{template:[["core/paragraph",{placeholder:(0,a.__)("Add content","billy"),content:d||""}]],allowedBlocks:["core/heading","core/paragraph","core/list","core/html"]})),(0,t.createElement)("td",{className:"reference"},(0,t.createElement)(s.TextControl,{type:"text",label:(0,a.__)("Reference","billy"),placeholder:"",value:h,onChange:e=>{v({reference:e})}})),(0,t.createElement)("td",{className:"amount earning"},(0,t.createElement)(s.TextControl,{type:"number",label:(0,a.sprintf)((0,a.__)("%1$s in %2$s","billy"),(0,a.__)("Earning","billy"),b),placeholder:(0,a.__)("0","billy"),value:E,onChange:e=>{v({expense:""}),v({earning:e>0?Number(e):""}),g()}})),(0,t.createElement)("td",{className:"amount expense"},(0,t.createElement)(s.TextControl,{type:"number",label:(0,a.sprintf)((0,a.__)("%1$s in %2$s","billy"),(0,a.__)("Expense","billy"),b),placeholder:(0,a.__)("0","billy"),value:f,onChange:e=>{v({earning:""}),v({expense:e>0?Number(e):""}),g()}})),(0,t.createElement)("td",{className:"amount tax"},(0,t.createElement)(s.TextControl,{type:"number",label:(0,a.sprintf)((0,a.__)("%1$s in %2$s","billy"),(0,a.__)("Tax","billy"),b),placeholder:(0,a.__)("0","billy"),value:x,onChange:e=>{v({tax:e>0?Number(e):""}),g()}}))))))})),save:e=>{const{className:l,attributes:{index:s,locale:r,date:c,quarter:i,earning:m,expense:u,tax:b,reference:p,postLink:d}}=e;return(0,t.createElement)("tr",{"data-date":c&&new Date(c).toISOString().substring(0,10),"data-quarter":i&&(0,a.sprintf)((0,a.__)("Q%s","billy"),i),"data-reference":p&&p,"data-earning":m>0?m:null,"data-expense":u>0?u:null,"data-tax":b>0?b:null},(0,t.createElement)("th",{className:"index",scope:"row"},s&&s),(0,t.createElement)("td",{className:"date","data-value":c&&new Date(c).toISOString().substring(0,10)},c&&new Date(c).toISOString().substring(0,10),(0,t.createElement)("sub",null,i&&(0,a.sprintf)((0,a.__)("Q%s","billy"),i))),(0,t.createElement)("td",{className:"description"},(0,t.createElement)(n.InnerBlocks.Content,null)),(0,t.createElement)("td",{className:"reference"},p&&!d&&p,p&&d&&(0,t.createElement)("a",{href:d},p)),(0,t.createElement)("td",{className:"amount earning","data-value":m>0?m:null},m&&m>0&&o(m,r)),(0,t.createElement)("td",{className:"amount expense","data-value":u>0?u:null},u&&u>0&&o(u,r)),b&&b>0&&(0,t.createElement)("td",{className:"amount tax","data-value":b},o(b,r)))},deprecated:x}),(0,l.registerBlockType)("billy-blocks/accounting-actions",{title:(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Accounting","billy"),(0,a.__)("Actions","billy")),icon:"menu-alt",category:"billy-blocks",supports:{inserter:!1,reusable:!1,html:!1},getEditWrapperProps(){return{"data-align":"wide"}},edit:(0,i.withSelect)((e=>({postModifiedDate:e("core/editor").getEditedPostAttribute("modified")})))((e=>{const{postModifiedDate:l}=e;return(0,t.createElement)("div",{className:"components-placeholder",style:{minHeight:"auto"}},(0,t.createElement)("small",null,(0,a.sprintf)((0,a.__)("%1$s: %2$s","billy"),(0,a.__)("Last modified","billy"),new Date(l).toLocaleString())))})),save:e=>null});var h=window.React,N=window.wp.plugins,$=window.wp.editPost;(0,N.registerPlugin)("billy-setup",{render:()=>(0,h.createElement)($.PluginDocumentSettingPanel,{name:"billy-setup",title:(0,a.__)("Billy Setup","billy"),className:"my-document-setting-plugin"},(0,h.createElement)("p",null,(0,h.createElement)("a",{href:globalDataBilly.wpAdmin+"customize.php?autofocus[panel]=billy_setup_panel"},(0,a.__)("Settings (Theme Customizer)","billy"))),(0,h.createElement)("ul",{className:"ul code"},(0,h.createElement)("li",{title:(0,a.__)("Invoice number","billy")},(0,h.createElement)(c(),{block:"billy-blocks/invoice-number"})),(0,h.createElement)("li",{title:(0,a.__)("Name","billy")},(0,h.createElement)(c(),{block:"billy-blocks/theme-mod",attributes:{themeMod:"name"}})),(0,h.createElement)("li",{title:(0,a.__)("Address","billy")},(0,h.createElement)(c(),{block:"billy-blocks/theme-mod",attributes:{themeMod:"address"}})),(0,h.createElement)("li",{title:(0,a.__)("VAT","billy")},(0,h.createElement)(c(),{block:"billy-blocks/theme-mod",attributes:{themeMod:"vat"}})),(0,h.createElement)("li",{title:(0,a.__)("Currency","billy")},(0,h.createElement)(c(),{block:"billy-blocks/theme-mod",attributes:{themeMod:"currency"}})),(0,h.createElement)("li",{title:(0,a.__)("Taxes","billy")},(0,h.createElement)(c(),{block:"billy-blocks/theme-mod",attributes:{themeMod:"taxrates"}}))))}),(0,l.registerBlockType)("billy-blocks/theme-mod",{title:(0,a.__)("Theme Mod","billy"),icon:"admin-generic",category:"billy-blocks",attributes:{themeMod:{type:"string",default:""}},supports:{inserter:!1,reusable:!1,html:!1},edit:e=>{const{className:l,attributes:{themeMod:r},setAttributes:i}=e;return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(s.PanelBody,{title:(0,a.__)("Theme Mod","billy")},(0,t.createElement)(s.SelectControl,{label:(0,a.__)("Setting","billy"),help:(0,a.__)("Modify the value in the Theme Customizer.","billy"),options:globalDataBilly.themeModOptions,value:r,onChange:e=>{i({themeMod:e})}}))),(0,t.createElement)(s.Disabled,null,(0,t.createElement)(c(),{block:"billy-blocks/theme-mod",attributes:e.attributes})))},save:e=>null})}();
     1();
  • billy/trunk/blocks/build/index.js.map

    r2887333 r3016777  
    1 {"version":3,"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAI2B;AAKF;AAGA;AAGzBA,oEAAiB,CAAE,iCAAiC,EAAE;EACrDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,CAAE;EACpGK,IAAI,EAAE,UAAU;EAAE;EAClBC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDC,mBAAmB,GAAG;IACrB,OAAO;MAAE,YAAY,EAAE;IAAO,CAAC;EAChC,CAAC;EAEDC,IAAI,EAAET,2DAAU,CAAIU,MAAM,IAAM;IAC/B,OAAO;MACNC,gBAAgB,EAAED,MAAM,CAAE,aAAa,CAAE,CAACE,sBAAsB,CAAE,UAAU;IAC7E,CAAC;EACF,CAAC,CAAE,CAAEC,KAAK,IAAI;IACb,MAAM;MACLF;IACD,CAAC,GAAGE,KAAK;;IAET;IACA,OACC;MAAK,SAAS,EAAC,wBAAwB;MAAC,KAAK,EAAG;QAAEC,SAAS,EAAE;MAAO;IAAG,GACtE,iFAEEf,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,eAAe,EAAE,OAAO,CAAE,EAAE,IAAIkB,IAAI,CAAEJ,gBAAgB,CAAE,CAACK,cAAc,EAAE,CAAE,CAE/G,CACH;EAER,CAAC,CAAE;EAEHC,IAAI,EAAEJ,KAAK,IAAI;IACd,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;AC5DH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAKyB;;AAGzB;AACA;AACA;;AAKyB;AAGzB,MAAMO,yBAAyB,GAAG;AACjC;AACA;EACCC,UAAU,EAAE;IACXC,KAAK,EAAE;MACNC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDC,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDG,IAAI,EAAE;MACLJ,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDI,OAAO,EAAE;MACRL,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDK,SAAS,EAAE;MACVN,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDM,WAAW,EAAE;MACZP,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDO,OAAO,EAAE;MACRR,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDQ,OAAO,EAAE;MACRT,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDS,GAAG,EAAE;MACJV,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDU,QAAQ,EAAE;MACTX,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDW,SAAS,EAAE;MACVZ,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDY,QAAQ,EAAE;MACTb,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDa,QAAQ,EAAE;MACTd,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDP,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXC,KAAK;QACLI,MAAM;QACNC,IAAI;QACJC,OAAO;QACPE,WAAW;QACXC,OAAO;QACPC,OAAO;QACPC,GAAG;QACHJ,SAAS;QACTO;MACD;IACD,CAAC,GAAGvB,KAAK;IAET,OACC;MAAI,aAAYc,IAAI,IAAI,IAAIZ,IAAI,CAAEY,IAAI,CAAE,CAACY,WAAW,EAAE,CAACC,SAAS,CAAE,CAAC,EAAE,EAAE,CAAI;MAAC,gBAAeZ,OAAO,IAAI7B,wDAAO,CAAEF,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,EAAE+B,OAAO,CAAI;MAAC,kBAAiBC,SAAS,IAAIA,SAAW;MAAC,gBAAeE,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG,IAAM;MAAC,gBAAeC,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG,IAAM;MAAC,YAAWC,GAAG,GAAG,CAAC,GAAGA,GAAG,GAAG;IAAM,GACvT;MAAI,SAAS,EAAC,OAAO;MAAC,KAAK,EAAC;IAAK,GAE/BX,KAAK,IACJA,KAAK,CAEH,EACL;MAAI,SAAS,EAAC,MAAM;MAAC,cAAaK,IAAI,IAAI,IAAIZ,IAAI,CAAEY,IAAI,CAAE,CAACY,WAAW,EAAE,CAACC,SAAS,CAAE,CAAC,EAAE,EAAE;IAAI,GAE3Fb,IAAI,IACH,IAAIZ,IAAI,CAAEY,IAAI,CAAE,CAACY,WAAW,EAAE,CAACC,SAAS,CAAE,CAAC,EAAE,EAAE,CAAE,EAEnD,+EAEEZ,OAAO,IACN7B,wDAAO,CAAEF,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,EAAE+B,OAAO,CAAE,CAErC,CACF,EACL;MAAI,SAAS,EAAC;IAAa,GAEzBE,WAAW,IACVA,WAAW,CAET,EACL;MAAI,SAAS,EAAC;IAAW,GAEvBD,SAAS,IAAI,CAACO,QAAQ,IACrBP,SAAS,EAGVA,SAAS,IAAIO,QAAQ,IACpB;MAAG,IAAI,EAAGA;IAAU,GAAGP,SAAS,CAAM,CAEpC,EACL;MAAI,SAAS,EAAC,gBAAgB;MAAC,cAAaE,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG;IAAM,GAExEA,OAAO,IAAIA,OAAO,GAAG,CAAC,IAEpBb,wDAAY,CAAEa,OAAO,EAAEL,MAAM,CAC7B,CAEC,EACL;MAAI,SAAS,EAAC,gBAAgB;MAAC,cAAaM,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG;IAAM,GAExEA,OAAO,IAAIA,OAAO,GAAG,CAAC,IAEpBd,wDAAY,CAAEc,OAAO,EAAEN,MAAM,CAC7B,CAEC,EACL;MAAI,SAAS,EAAC,YAAY;MAAC,cAAaO,GAAG,GAAG,CAAC,GAAGA,GAAG,GAAG;IAAM,GAE5DA,GAAG,IAAIA,GAAG,GAAG,CAAC,IAEZf,wDAAY,CAAEe,GAAG,EAAEP,MAAM,CACzB,CAEC,CACD;EAGP;AACD,CAAC,CACD;AAED,iEAAeN,yBAAyB;;;;;;;;;;;;;;;;;;;;;;AC3KxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAKyB;AAGO;;AAGhC;AACA;AACA;;AAKyB;AAGzB,MAAMsB,yBAAyB,GAAG;AACjC;AACA;EACCrB,UAAU,EAAE;IACXI,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDmB,mBAAmB,EAAE;MACpBpB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDoB,mBAAmB,EAAE;MACpBrB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDqB,iBAAiB,EAAE;MAClBtB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDsB,iBAAiB,EAAE;MAClBvB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDP,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNiB,mBAAmB;QACnBC,mBAAmB;QACnBC,iBAAiB;QACjBC;MACD;IACD,CAAC,GAAGjC,KAAK;IAET,OACC;MAAK,SAAS,EAAG,WAAW,IAAKyB,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GACpE;MAAO,SAAS,EAAC;IAAsB,GACtC,iFACC,8EACC;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAO,GAC/CzC,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAE,CAChB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAM,GAC9CA,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE,CACnB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAa,GACrDA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAC1B,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAW,GACnDA,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,CACxB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,eAAe;MAAC,aAAU;IAAS,GAC1DA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CACvB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,eAAe;MAAC,aAAU;IAAS,GAC1DA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CACvB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAK,GAC7CA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CACpB,CACD,CACE,EACR;MAAO,SAAS,EAAC;IAAM,GACtB,kEAAC,uEAAmB,OAAG,CAChB,EACR,iFAEE,CAAE8C,mBAAmB,GAAG,CAAC,IAAIC,mBAAmB,GAAG,CAAC,KAElD,8EACC;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAY,GACnC7C,wDAAO,CAAEF,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE,CAC3F,EACL;MAAI,SAAS,EAAC;IAAc,GAE1BE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEyB,mBAAmB,EAAEjB,MAAM,CAAE,CAAE,CAEzF,EACL;MAAI,SAAS,EAAC;IAAc,GAE1B3B,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE0B,mBAAmB,EAAElB,MAAM,CAAE,CAAE,CAEzF,CAEN,EAGF,CAAEiB,mBAAmB,GAAG,CAAC,IAAIC,mBAAmB,GAAG,CAAC,KAElD,8EACC;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAY,GACnC/C,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EACL;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAQ,GAEhCE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAIyB,mBAAmB,GAAGC,mBAAmB,EAAIlB,MAAM,CAAE,CAAE,CAEnH,CAEN,EAGF,CAAEmB,iBAAiB,GAAG,CAAC,IAAIC,iBAAiB,GAAG,CAAC,KAE9C,8EACC;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAY,GACnC/C,wDAAO,CAAEF,mDAAE,CAAE,oBAAoB,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAGA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE,CAC3H,EACL;MAAI,SAAS,EAAC;IAAkB,GAE9BE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE2B,iBAAiB,EAAEnB,MAAM,CAAE,CAAE,CAEvF,EACL;MAAI,SAAS,EAAC;IAAkB,GAE9B3B,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4B,iBAAiB,EAAEpB,MAAM,CAAE,CAAE,CAEvF,CAEN,CAEI,CACD,CACH;EAER;AACD,CAAC;AACD;AACA;EACCL,UAAU,EAAE;IACXI,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDmB,mBAAmB,EAAE;MACpBpB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDoB,mBAAmB,EAAE;MACpBrB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDqB,iBAAiB,EAAE;MAClBtB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDsB,iBAAiB,EAAE;MAClBvB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDP,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNiB,mBAAmB;QACnBC,mBAAmB;QACnBC,iBAAiB;QACjBC;MACD;IACD,CAAC,GAAGjC,KAAK;IAET,OACC;MAAK,SAAS,EAAG,WAAW,IAAKyB,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GACpE;MAAO,SAAS,EAAC;IAAsB,GACtC,iFACC,8EACC;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAO,GAC/CzC,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAE,CAChB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAM,GAC9CA,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE,CACnB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAa,GACrDA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAC1B,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAW,GACnDA,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,CACxB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,eAAe;MAAC,aAAU;IAAS,GAC1DA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CACvB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,eAAe;MAAC,aAAU;IAAS,GAC1DA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CACvB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAK,GAC7CA,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAClB,CACD,CACE,EACR;MAAO,SAAS,EAAC;IAAM,GACtB,kEAAC,uEAAmB,OAAG,CAChB,EACR,iFAEE,CAAE8C,mBAAmB,GAAG,CAAC,IAAIC,mBAAmB,GAAG,CAAC,KAElD,8EACC;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAC1B7C,wDAAO,CAAEF,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE,CAC3F,EACL;MAAI,SAAS,EAAC;IAAc,GAE1BE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEyB,mBAAmB,EAAEjB,MAAM,CAAE,CAAE,CAEzF,EACL;MAAI,SAAS,EAAC;IAAc,GAE1B3B,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE0B,mBAAmB,EAAElB,MAAM,CAAE,CAAE,CAEzF,CAEN,EAGF,CAAEiB,mBAAmB,GAAG,CAAC,IAAIC,mBAAmB,GAAG,CAAC,KAElD,8EACC;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAC1B/C,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EACL;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAQ,GAEhCE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAIyB,mBAAmB,GAAGC,mBAAmB,EAAIlB,MAAM,CAAE,CAAE,CAEnH,CAEN,EAGF,CAAEmB,iBAAiB,GAAG,CAAC,IAAIC,iBAAiB,GAAG,CAAC,KAE9C,8EACC;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAC1B/C,wDAAO,CAAEF,mDAAE,CAAE,oBAAoB,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAGA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE,CAC3H,EACL;MAAI,SAAS,EAAC;IAAkB,GAE9BE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE2B,iBAAiB,EAAEnB,MAAM,CAAE,CAAE,CAEvF,EACL;MAAI,SAAS,EAAC;IAAkB,GAE9B3B,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4B,iBAAiB,EAAEpB,MAAM,CAAE,CAAE,CAEvF,CAEN,CAEI,CACD,CACH;EAER;AACD,CAAC;AACD;AACA;EACCL,UAAU,EAAE;IACXI,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDmB,mBAAmB,EAAE;MACpBpB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDoB,mBAAmB,EAAE;MACpBrB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDqB,iBAAiB,EAAE;MAClBtB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDsB,iBAAiB,EAAE;MAClBvB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDP,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNiB,mBAAmB;QACnBC,mBAAmB;QACnBC,iBAAiB;QACjBC;MACD;IACD,CAAC,GAAGjC,KAAK;IAET,OACC;MAAK,SAAS,EAAG,WAAW,IAAKyB,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GACpE;MAAO,SAAS,EAAC;IAAsB,GACtC,iFACC,8EACC;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAO,GAC/CzC,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAE,CAChB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAM,GAC9CA,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE,CACnB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAa,GACrDA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAC1B,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAW,GACnDA,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,CACxB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,eAAe;MAAC,aAAU;IAAS,GAC1DA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,CACtB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,eAAe;MAAC,aAAU;IAAS,GAC1DA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,CACtB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAK,GAC7CA,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAClB,CACD,CACE,EACR;MAAO,SAAS,EAAC;IAAM,GACtB,kEAAC,uEAAmB,OAAG,CAChB,EACR,iFAEE,CAAE8C,mBAAmB,GAAG,CAAC,IAAIC,mBAAmB,GAAG,CAAC,KAElD,8EACC;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAC1B7C,wDAAO,CAAEF,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE,CAC3F,EACL;MAAI,SAAS,EAAC;IAAc,GAE1BE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEyB,mBAAmB,EAAEjB,MAAM,CAAE,CAAE,CAEzF,EACL;MAAI,SAAS,EAAC;IAAc,GAE1B3B,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE0B,mBAAmB,EAAElB,MAAM,CAAE,CAAE,CAEzF,CAEN,EAGF,CAAEiB,mBAAmB,GAAG,CAAC,IAAIC,mBAAmB,GAAG,CAAC,KAElD,8EACC;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAC1B/C,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EACL;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAQ,GAEhCE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAIyB,mBAAmB,GAAGC,mBAAmB,EAAIlB,MAAM,CAAE,CAAE,CAEnH,CAEN,EAGF,CAAEmB,iBAAiB,GAAG,CAAC,IAAIC,iBAAiB,GAAG,CAAC,KAE9C,8EACC;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAC1B/C,wDAAO,CAAEF,mDAAE,CAAE,oBAAoB,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAGA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE,CAC3H,EACL;MAAI,SAAS,EAAC;IAAkB,GAE9BE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE2B,iBAAiB,EAAEnB,MAAM,CAAE,CAAE,CAEvF,EACL;MAAI,SAAS,EAAC;IAAkB,GAE9B3B,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4B,iBAAiB,EAAEpB,MAAM,CAAE,CAAE,CAEvF,CAEN,CAEI,CACD,CACH;EAER;AACD,CAAC,CACD;AAED,iEAAegB,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpbxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAI2B;AAKF;AAIQ;AAKF;AAIN;;AAEzB;AACA;AACA;;AAKyB;AAEiC;AACA;AAE1D,IAAIW,YAAY;;AAGhB;AACA;AACA;;AAEAzD,oEAAiB,CAAE,+BAA+B,EAAE;EACnDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAAE;EAClGK,IAAI,EAAE,UAAU;EAAE;EAClBC,QAAQ,EAAE,cAAc;EAAE;EAC1BkB,UAAU,EAAE;IACXI,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDmB,mBAAmB,EAAE;MACpBpB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDoB,mBAAmB,EAAE;MACpBrB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDqB,iBAAiB,EAAE;MAClBtB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDsB,iBAAiB,EAAE;MAClBvB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EACDpB,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDC,mBAAmB,GAAG;IACrB,OAAO;MAAE,YAAY,EAAE;IAAO,CAAC;EAChC,CAAC;EAEDC,IAAI,EAAET,2DAAU,CAAE,CAAEU,MAAM,WAAoB;IAAA,IAAlB;MAAE4C;IAAS,CAAC;IACvC,MAAM;MAAEC;IAAoB,CAAC,GAAG7C,MAAM,CAAE,mBAAmB,CAAE;IAE7D8C,eAAe,CAACF,QAAQ,GAAGA,QAAQ;;IAEnC;IACA,MAAMG,WAAW,GAAGF,mBAAmB,CAAED,QAAQ,CAAE,CAAE,CAAC,CAAE,CAACI,WAAW;;IAEpE;IACAD,WAAW,CAACE,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAM;MAC7B,OAAO,IAAI9C,IAAI,CAAE6C,CAAC,CAACvC,UAAU,CAACM,IAAI,CAAE,GAAG,IAAIZ,IAAI,CAAE8C,CAAC,CAACxC,UAAU,CAACM,IAAI,CAAE;IACrE,CAAC,CAAE;IAEH,OAAO;MACN8B,WAAW,EAAEA;IACd,CAAC;EACF,CAAC,CAAE,CAAE5C,KAAK,IAAI;IACb,MAAM;MACLyB,SAAS;MACTmB,WAAW;MACXpC,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNiB,mBAAmB;QACnBC,mBAAmB;QACnBC,iBAAiB;QACjBC;MACD,CAAC;MACDgB;IACD,CAAC,GAAGjD,KAAK;;IAET;IACAiD,aAAa,CAAE;MAAErC,QAAQ,EAAE+B,eAAe,CAAC/B;IAAS,CAAC,CAAE;IACvDqC,aAAa,CAAE;MAAEpC,MAAM,EAAE8B,eAAe,CAAC9B;IAAO,CAAC,CAAE;;IAEnD;IACA2B,YAAY,GAAG,MAAM;MACpB,IAAIU,iBAAiB,GAAG,CAAC;QACxBC,iBAAiB,GAAG,CAAC;QACrBC,oBAAoB,GAAG,CAAC;QACxBC,oBAAoB,GAAG,CAAC;MAEzB,IAAKT,WAAW,IAAIA,WAAW,CAACU,MAAM,GAAG,CAAC,EAAG;QAC5CV,WAAW,CAACW,OAAO,CAAIC,UAAU,IAAM;UACtCN,iBAAiB,IAAIO,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACU,OAAO,CAAE;UAC5DiC,iBAAiB,IAAIM,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACW,OAAO,CAAE;UAE5D,IAAKqC,UAAU,CAAChD,UAAU,CAACU,OAAO,EAAG;YACpCkC,oBAAoB,IAAIK,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACY,GAAG,CAAE;UAC5D;UACA,IAAKoC,UAAU,CAAChD,UAAU,CAACW,OAAO,EAAG;YACpCkC,oBAAoB,IAAII,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACY,GAAG,CAAE;UAC5D;QACD,CAAC,CAAE;MACJ;MAEA6B,aAAa,CAAE;QAAEnB,mBAAmB,EAAEoB;MAAkB,CAAC,CAAE;MAC3DD,aAAa,CAAE;QAAElB,mBAAmB,EAAEoB;MAAkB,CAAC,CAAE;MAE3DF,aAAa,CAAE;QAAEjB,iBAAiB,EAAEoB;MAAqB,CAAC,CAAE;MAC5DH,aAAa,CAAE;QAAEhB,iBAAiB,EAAEoB;MAAqB,CAAC,CAAE;IAC7D,CAAC;IACDb,YAAY,EAAE;;IAEd;IACA,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGxD,mDAAE,CAAE,SAAS,EAAE,OAAO;IAAI,GAC5C;MAAQ,EAAE,EAAC,cAAc;MAAC,SAAS,EAAC,0CAA0C;MAAC,OAAO,EAAGwD;IAAc,GAErGxD,mDAAE,CAAE,eAAe,EAAE,OAAO,CAAE,CAEvB,CACE,CACO,EAEpB;MAAK,SAAS,EAAG,uBAAuB,IAAKyC,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GAChF,kEAAC,gEAAW;MACX,YAAY,EAAG,KAAO;MACtB,QAAQ,EAAG,CACV,CAAE,kCAAkC,EAAE;QACrC;MAAA,CACA,CAAE,CACD;MACH,aAAa,EAAG,CACf,kCAAkC;IAChC,EACF,EAEF;MAAO,SAAS,EAAC;IAAQ,GACxB,iFAEEK,mBAAmB,GAAG,CAAC,IAErB;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,KAAK,EAAG;QAAE4B,KAAK,EAAE;MAAM;IAAG,GAC3B1E,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CACvB,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEyB,mBAAmB,EAAEjB,MAAM,CAAE,CAAE,CAEzF,CAEN,EAGFkB,mBAAmB,GAAG,CAAC,IAErB;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,KAAK,EAAG;QAAE2B,KAAK,EAAE;MAAM;IAAG,GAC3B1E,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CACvB,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE0B,mBAAmB,EAAElB,MAAM,CAAE,CAAE,CAEzF,CAEN,EAGF,CAAEiB,mBAAmB,GAAG,CAAC,IAAIC,mBAAmB,GAAG,CAAC,KAElD;MAAI,SAAS,EAAC;IAAQ,GACrB;MAAI,KAAK,EAAG;QAAE2B,KAAK,EAAE;MAAM;IAAG,GAC3B1E,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EACL;MAAI,KAAK,EAAG;QAAE2E,SAAS,EAAE;MAAY;IAAG,GAEtCzE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAIyB,mBAAmB,GAAGC,mBAAmB,EAAIlB,MAAM,CAAE,CAAE,CAEnH,CAEN,EAGF,CAAEmB,iBAAiB,GAAG,CAAC,IAAIC,iBAAiB,GAAG,CAAC,KAE9C,kIACC;MAAI,SAAS,EAAC;IAAgB,GAC7B;MAAI,KAAK,EAAG;QAAEyB,KAAK,EAAE;MAAM;IAAG,GAC3BxE,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE,CAC/D,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE2B,iBAAiB,EAAEnB,MAAM,CAAE,CAAE,CAEvF,CACD,EACL;MAAI,SAAS,EAAC;IAAgB,GAC7B;MAAI,KAAK,EAAG;QAAE6C,KAAK,EAAE;MAAM;IAAG,GAC3BxE,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE,CAC/D,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4B,iBAAiB,EAAEpB,MAAM,CAAE,CAAE,CAEvF,CACD,CAEN,CAEI,CACD,CACH,CACJ;EAEL,CAAC,CAAE;EAEHT,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNiB,mBAAmB;QACnBC,mBAAmB;QACnBC,iBAAiB;QACjBC;MACD;IACD,CAAC,GAAGjC,KAAK;IAET,OACC;MAAK,SAAS,EAAG,WAAW,IAAKyB,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GACpE;MAAO,SAAS,EAAC;IAAsB,GACtC,iFACC,8EACC;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAO,GAC/CzC,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAE,CAChB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAM,GAC9CA,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE,CACnB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAa,GACrDA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAC1B,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAW,GACnDA,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,CACxB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,eAAe;MAAC,aAAU;IAAS,GAC1DA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CACvB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,eAAe;MAAC,aAAU;IAAS,GAC1DA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CACvB,EACL;MAAI,KAAK,EAAC,KAAK;MAAC,SAAS,EAAC,MAAM;MAAC,aAAU;IAAK,GAC7CA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CACpB,CACD,CACE,EACR;MAAO,SAAS,EAAC;IAAM,GACtB,kEAAC,wEAAmB,OAAG,CAChB,EACR,iFAEE,CAAE8C,mBAAmB,GAAG,CAAC,IAAIC,mBAAmB,GAAG,CAAC,KAElD,8EACC;MAAI,OAAO,EAAC;IAAG,GACZ7C,wDAAO,CAAEF,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE,CAC3F,EACL;MAAI,SAAS,EAAC;IAAc,GAE1BE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEyB,mBAAmB,EAAEjB,MAAM,CAAE,CAAE,CAEzF,EACL;MAAI,SAAS,EAAC;IAAc,GAE1B3B,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE0B,mBAAmB,EAAElB,MAAM,CAAE,CAAE,CAEzF,CAEN,EAGF,CAAEiB,mBAAmB,GAAG,CAAC,IAAIC,mBAAmB,GAAG,CAAC,KAElD,8EACC;MAAI,OAAO,EAAC;IAAG,GACZ/C,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EACL;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAQ,GAEhCE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAIyB,mBAAmB,GAAGC,mBAAmB,EAAIlB,MAAM,CAAE,CAAE,CAEnH,CAEN,EAGF,CAAEmB,iBAAiB,GAAG,CAAC,IAAIC,iBAAiB,GAAG,CAAC,KAE9C,8EACC;MAAI,OAAO,EAAC;IAAG,GACZ/C,wDAAO,CAAEF,mDAAE,CAAE,oBAAoB,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAGA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE,CAC3H,EACL;MAAI,SAAS,EAAC;IAAkB,GAE9BE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE2B,iBAAiB,EAAEnB,MAAM,CAAE,CAAE,CAEvF,EACL;MAAI,SAAS,EAAC;IAAkB,GAE9B3B,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4B,iBAAiB,EAAEpB,MAAM,CAAE,CAAE,CAEvF,CAEN,CAEI,CACD,CACH;EAER,CAAC;EAED+C,UAAU,EAAE/B,wDAAyBA;AACtC,CAAC,CAAE;;AAGH;AACA;AACA;;AAEA9C,oEAAiB,CAAE,kCAAkC,EAAE;EACtDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,CAAE;EACtGK,IAAI,EAAE,UAAU;EAAE;EAClBC,QAAQ,EAAE,cAAc;EAAE;EAC1BuE,MAAM,EAAE,CAAE,+BAA+B,CAAE;EAAE;EAC7CrD,UAAU,EAAE;IACXC,KAAK,EAAE;MACNC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDC,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDG,IAAI,EAAE;MACLJ,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDI,OAAO,EAAE;MACRL,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDK,SAAS,EAAE;MACVN,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDO,OAAO,EAAE;MACRR,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDQ,OAAO,EAAE;MACRT,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDS,GAAG,EAAE;MACJV,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDU,QAAQ,EAAE;MACTX,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDW,SAAS,EAAE;MACVZ,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDY,QAAQ,EAAE;MACTb,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDa,QAAQ,EAAE;MACTd,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDhB,mBAAmB,GAAG;IACrB,OAAO;MAAE,YAAY,EAAE;IAAO,CAAC;EAChC,CAAC;EAEDC,IAAI,EAAET,2DAAU,CAAE,CAAEU,MAAM,YAAoB;IAAA,IAAlB;MAAE4C;IAAS,CAAC;IACvC,MAAM;MACLqB,oBAAoB;MACpBC;IACD,CAAC,GAAGlE,MAAM,CAAE,mBAAmB,CAAE;IAEjC,OAAO;MACN4C,QAAQ,EAAEA,QAAQ;MAClBuB,YAAY,EAAEF,oBAAoB,CAAErB,QAAQ,CAAE;MAC9CwB,CAAC,EAAEF,aAAa,CAAEtB,QAAQ,EAAEqB,oBAAoB,CAAErB,QAAQ,CAAE,CAAE,GAAG;IAClE,CAAC;EACF,CAAC,CAAE,CAAEzC,KAAK,IAAI;IACb,MAAM;MACLyB,SAAS;MACTgB,QAAQ;MACRuB,YAAY;MACZC,CAAC;MACDzD,UAAU,EAAE;QACXC,KAAK;QACLG,QAAQ;QACRC,MAAM;QACNI,WAAW;QAAE;QACbH,IAAI;QACJC,OAAO;QACPG,OAAO;QACPC,OAAO;QACPC,GAAG;QACHJ,SAAS;QACTK,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC;MACD,CAAC;MACDyB;IACD,CAAC,GAAGjD,KAAK;IAETiD,aAAa,CAAE;MAAExC,KAAK,EAAEwD;IAAE,CAAC,CAAE;IAC7BhB,aAAa,CAAE;MAAErC,QAAQ,EAAE+B,eAAe,CAAC/B;IAAS,CAAC,CAAE;IACvDqC,aAAa,CAAE;MAAEpC,MAAM,EAAE8B,eAAe,CAAC9B;IAAO,CAAC,CAAE;IAEnD,IAAK,EAAE,KAAKC,IAAI,EAAG;MAClBmC,aAAa,CAAE;QAAEnC,IAAI,EAAE,IAAIZ,IAAI,EAAE,CAACwB,WAAW,EAAE,CAACC,SAAS,CAAE,CAAC,EAAE,EAAE;MAAG,CAAC,CAAE,CAAC,CAAC;MACxEsB,aAAa,CAAE;QAAElC,OAAO,EAAEwB,sDAAU,CAAE,IAAIrC,IAAI,EAAE,CAACwB,WAAW,EAAE,CAACC,SAAS,CAAE,CAAC,EAAE,EAAE,CAAE;MAAG,CAAC,CAAE,CAAC,CAAC;IAC1F;;IAEA,MAAMuC,OAAO,GAAG,MAAM;MACrB;MACA5B,yDAAQ,CAAE,mBAAmB,CAAE,CAAC6B,mBAAmB,CAAE1B,QAAQ,EAAEuB,YAAY,EAAEA,YAAY,EAAEC,CAAC,CAAE;IAC/F,CAAC;IAED,MAAMG,aAAa,GAAGC,GAAG,IAAI;MAC5B;MACApB,aAAa,CAAE;QAAElC,OAAO,EAAE0C,MAAM,CAAElB,sDAAU,CAAE8B,GAAG,CAAE;MAAG,CAAC,CAAE;IAC1D,CAAC;IAED,MAAMC,UAAU,GAAGD,GAAG,IAAI;MACzB;MACApB,aAAa,CAAE;QAAEnC,IAAI,EAAEuD;MAAI,CAAC,CAAE;;MAE9B;MACAD,aAAa,CAAEC,GAAG,CAAE;MAEpBH,OAAO,EAAE;IACV,CAAC;IAED,MAAMK,eAAe,GAAGF,GAAG,IAAI;MAC9BpB,aAAa,CAAE;QAAEjC,SAAS,EAAEqD;MAAI,CAAC,CAAE;IACpC,CAAC;IAED,MAAMG,aAAa,GAAGH,GAAG,IAAI;MAC5BpB,aAAa,CAAE;QAAE9B,OAAO,EAAE;MAAG,CAAC,CAAE,CAAC,CAAC;;MAElC8B,aAAa,CAAE;QAAE/B,OAAO,EAAImD,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;MAE9D7B,YAAY,EAAE;IACf,CAAC;IAED,MAAMiC,aAAa,GAAGJ,GAAG,IAAI;MAC5BpB,aAAa,CAAE;QAAE/B,OAAO,EAAE;MAAG,CAAC,CAAE,CAAC,CAAC;;MAElC+B,aAAa,CAAE;QAAE9B,OAAO,EAAIkD,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;MAE9D7B,YAAY,EAAE;IACf,CAAC;IAED,MAAMkC,SAAS,GAAGL,GAAG,IAAI;MACxBpB,aAAa,CAAE;QAAE7B,GAAG,EAAIiD,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;MAE1D7B,YAAY,EAAE;IACf,CAAC;;IAED;IACA,OACC,kIACC,kEAAC,sEAAiB,QAEhB,CAACnB,QAAQ,IAEP,kEAAC,4DAAS;MAAC,KAAK,EAAGrC,mDAAE,CAAE,MAAM,EAAE,OAAO;IAAI,GACzC,kEAAC,6DAAU;MACV,WAAW,EAAG8B,IAAM;MACpB,QAAQ,EAAGwD;IAAY,EACtB,CAEH,EAGFjD,QAAQ,IAAIE,QAAQ,IAElB,kEAAC,4DAAS;MAAC,KAAK,EAAGrC,wDAAO,CAAEF,mDAAE,CAAE,eAAe,EAAE,OAAO,CAAE,EAAIwC,QAAQ,GAAGA,QAAQ,CAACmD,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGpD,QAAQ,CAACG,SAAS,CAAC,CAAC,CAAC,GAAG3C,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE;IAAM,GAC9J,6EAAG;MAAG,IAAI,EAAGuC;IAAU,GAAKD,SAAS,GAAGA,SAAS,GAAGC,QAAQ,CAAQ,CAAI,CAEzE,CAEgB,EAEpB,iFACC,iFACC,8EACC;MAAI,SAAS,EAAC;IAAO,GAEnBd,KAAK,IACJA,KAAK,CAEH,EACL;MAAI,SAAS,EAAC;IAAM,GAElBK,IAAI,IACH,IAAIZ,IAAI,CAAEY,IAAI,CAAE,CAACY,WAAW,EAAE,CAACC,SAAS,CAAE,CAAC,EAAE,EAAE,CAAE,EAEnD,+EAEEZ,OAAO,IACN7B,wDAAO,CAAEF,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,EAAE+B,OAAO,CAAE,CAErC,CACF,EACL;MAAI,SAAS,EAAC,aAAa;MAAC,KAAK,EAAG;QAAE8D,QAAQ,EAAE;MAAQ;IAAG,GAC1D,kEAAC,gEAAW;MACX,QAAQ,EAAG,CACV,CAAE,gBAAgB,EAAE;QACnBC,WAAW,EAAE9F,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE;QACzC+F,OAAO,EAAI9D,WAAW,GAAGA,WAAW,GAAG,EAAI,CAAE;MAC9C,CAAC,CAAE,CACD;;MACH,aAAa,EAAG,CACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,WAAW;IACT,EACF,CACE,EACL;MAAI,SAAS,EAAC;IAAW,GACxB,kEAAC,8DAAW;MACX,IAAI,EAAC,MAAM;MACX,KAAK,EAAGjC,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAI;MACpC,WAAW,EAAC,EAAE;MACd,KAAK,EAAGgC,SAAW;MACnB,QAAQ,EAAGuD;IAAiB,EAC3B,CACE,EACL;MAAI,SAAS,EAAC;IAAgB,GAC7B,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,KAAK,EAAGrF,wDAAO,CAAEF,mDAAE,CAAE,cAAc,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,EAAE4B,QAAQ,CAAI;MACtF,WAAW,EAAG5B,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAGkC,OAAS;MACjB,QAAQ,EAAGsD;IAAe,EACzB,CACE,EACL;MAAI,SAAS,EAAC;IAAgB,GAC7B,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,KAAK,EAAGtF,wDAAO,CAAEF,mDAAE,CAAE,cAAc,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,EAAE4B,QAAQ,CAAI;MACtF,WAAW,EAAG5B,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAGmC,OAAS;MACjB,QAAQ,EAAGsD;IAAe,EACzB,CACE,EACL;MAAI,SAAS,EAAC;IAAY,GACzB,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,KAAK,EAAGvF,wDAAO,CAAEF,mDAAE,CAAE,cAAc,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,EAAE4B,QAAQ,CAAI;MAClF,WAAW,EAAG5B,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAGoC,GAAK;MACb,QAAQ,EAAGsD;IAAW,EACrB,CACE,CACD,CACE,CACD,CACN;EAEL,CAAC,CAAE;EAEHtE,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXC,KAAK;QACLI,MAAM;QACNC,IAAI;QACJC,OAAO;QACPG,OAAO;QACPC,OAAO;QACPC,GAAG;QACHJ,SAAS;QACTO;MACD;IACD,CAAC,GAAGvB,KAAK;IAET,OACC;MAAI,aAAYc,IAAI,IAAI,IAAIZ,IAAI,CAAEY,IAAI,CAAE,CAACY,WAAW,EAAE,CAACC,SAAS,CAAE,CAAC,EAAE,EAAE,CAAI;MAAC,gBAAeZ,OAAO,IAAI7B,wDAAO,CAAEF,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,EAAE+B,OAAO,CAAI;MAAC,kBAAiBC,SAAS,IAAIA,SAAW;MAAC,gBAAeE,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG,IAAM;MAAC,gBAAeC,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG,IAAM;MAAC,YAAWC,GAAG,GAAG,CAAC,GAAGA,GAAG,GAAG;IAAM,GACvT;MAAI,SAAS,EAAC,OAAO;MAAC,KAAK,EAAC;IAAK,GAE/BX,KAAK,IACJA,KAAK,CAEH,EACL;MAAI,SAAS,EAAC,MAAM;MAAC,cAAaK,IAAI,IAAI,IAAIZ,IAAI,CAAEY,IAAI,CAAE,CAACY,WAAW,EAAE,CAACC,SAAS,CAAE,CAAC,EAAE,EAAE;IAAI,GAE3Fb,IAAI,IACH,IAAIZ,IAAI,CAAEY,IAAI,CAAE,CAACY,WAAW,EAAE,CAACC,SAAS,CAAE,CAAC,EAAE,EAAE,CAAE,EAEnD,+EAEEZ,OAAO,IACN7B,wDAAO,CAAEF,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,EAAE+B,OAAO,CAAE,CAErC,CACF,EACL;MAAI,SAAS,EAAC;IAAa,GAC1B,kEAAC,wEAAmB,OAAG,CACnB,EACL;MAAI,SAAS,EAAC;IAAW,GAEvBC,SAAS,IAAI,CAACO,QAAQ,IACrBP,SAAS,EAGVA,SAAS,IAAIO,QAAQ,IACpB;MAAG,IAAI,EAAGA;IAAU,GAAGP,SAAS,CAAM,CAEpC,EACL;MAAI,SAAS,EAAC,gBAAgB;MAAC,cAAaE,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG;IAAM,GAExEA,OAAO,IAAIA,OAAO,GAAG,CAAC,IAEpBb,wDAAY,CAAEa,OAAO,EAAEL,MAAM,CAC7B,CAEC,EACL;MAAI,SAAS,EAAC,gBAAgB;MAAC,cAAaM,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG;IAAM,GAExEA,OAAO,IAAIA,OAAO,GAAG,CAAC,IAEpBd,wDAAY,CAAEc,OAAO,EAAEN,MAAM,CAC7B,CAEC,EACL;MAAI,SAAS,EAAC,YAAY;MAAC,cAAaO,GAAG,GAAG,CAAC,GAAGA,GAAG,GAAG;IAAM,GAE5DA,GAAG,IAAIA,GAAG,GAAG,CAAC,IAEZf,wDAAY,CAAEe,GAAG,EAAEP,MAAM,CACzB,CAEC,CACD;EAEP,CAAC;EAED+C,UAAU,EAAErD,wDAAyBA;AACtC,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;;;;;ACzsBH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AACmC;AAI7B;AAC8B;AAG7DxB,oEAAiB,CAAE,qBAAqB,EAAE;EACzCK,KAAK,EAAEJ,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE;EAC9BK,IAAI,EAAE,cAAc;EAAE;EACtBC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDC,mBAAmB,GAAG;IACrB,OAAO;MAAE,YAAY,EAAE;IAAO,CAAC;EAChC,CAAC;EAEDC,IAAI,EAAEI,KAAK,IAAI;IACd,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGhB,mDAAE,CAAE,MAAM,EAAE,OAAO;IAAI,GACzC;MAAK,SAAS,EAAC;IAAmB,GACjC;MAAK,SAAS,EAAC;IAA4B,GAC1C;MAAG,IAAI,EAAG2D,eAAe,CAACuC,OAAO,GAAG;IAA+B,GAEjEhG,wDAAO,CAAEF,mDAAE,CAAE,oBAAoB,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CAAE,CAErE,CACC,CACD,EACN;MAAK,SAAS,EAAC;IAAmB,GACjC;MAAK,SAAS,EAAC;IAA4B,GAEzCE,wDAAO,CAAEF,mDAAE,CAAE,wDAAwD,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CAAE,CAEvG,CACD,CACK,CACO,EAEpB,kEAAC,2DAAQ,QACR,kEAAC,sEAAgB;MAAC,KAAK,EAAC;IAAqB,EAAG,CACtC,CACT;EAEL,CAAC;EAEDoB,IAAI,EAAEJ,KAAK,IAAI;IACd;IACA,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;ACvEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAI2B;AAKF;AAGA;AAGzBjB,oEAAiB,CAAE,8BAA8B,EAAE;EAClDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,CAAE;EACjGK,IAAI,EAAE,UAAU;EAAE;EAClBC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDC,mBAAmB,GAAG;IACrB,OAAO;MAAE,YAAY,EAAE;IAAO,CAAC;EAChC,CAAC;EAEDC,IAAI,EAAET,2DAAU,CAAIU,MAAM,IAAM;IAC/B,OAAO;MACNC,gBAAgB,EAAED,MAAM,CAAE,aAAa,CAAE,CAACE,sBAAsB,CAAE,UAAU;IAC7E,CAAC;EACF,CAAC,CAAE,CAAEC,KAAK,IAAI;IACb,MAAM;MACLF;IACD,CAAC,GAAGE,KAAK;;IAET;IACA,OACC;MAAK,SAAS,EAAC,wBAAwB;MAAC,KAAK,EAAG;QAAEC,SAAS,EAAE;MAAO;IAAG,GACtE,iFAEEf,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,eAAe,EAAE,OAAO,CAAE,EAAE,IAAIkB,IAAI,CAAEJ,gBAAgB,CAAE,CAACK,cAAc,EAAE,CAAE,CAE/G,CACH;EAER,CAAC,CAAE;EAEHC,IAAI,EAAEJ,KAAK,IAAI;IACd,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;;;;;AC5DH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AACmC;AAI7B;AAC8B;AAG7DjB,oEAAiB,CAAE,2BAA2B,EAAE;EAC/CK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE,CAAE;EAC9FK,IAAI,EAAE,cAAc;EAAE;EACtBC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDE,IAAI,EAAEI,KAAK,IAAI;IACd;IACA,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGhB,mDAAE,CAAE,MAAM,EAAE,OAAO;IAAI,GACzC;MAAK,SAAS,EAAC;IAA8B,GAC5C;MAAK,SAAS,EAAC;IAA4B,GAEzCE,wDAAO,CAAEF,mDAAE,CAAE,qJAAqJ,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE,CAAE,CAElM,CACD,CACK,CACO,EAEpB,kEAAC,2DAAQ,QACR,kEAAC,sEAAgB;MAAC,KAAK,EAAC;IAA2B,EAAG,CAC5C,CACT;EAEL,CAAC;EAEDoB,IAAI,EAAEJ,KAAK,IAAI;IACd;IACA,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;;;;;AC3DH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AACmC;AAI7B;AAC8B;AAG7DjB,oEAAiB,CAAE,8BAA8B,EAAE;EAClDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,CAAE;EAClGK,IAAI,EAAE,cAAc;EAAE;EACtBC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDE,IAAI,EAAEI,KAAK,IAAI;IACd;IACA,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGhB,mDAAE,CAAE,MAAM,EAAE,OAAO;IAAI,GACzC;MAAK,SAAS,EAAC;IAAmB,GACjC;MAAK,SAAS,EAAC;IAA4B,GAEzCE,wDAAO,CAAEF,mDAAE,CAAE,wDAAwD,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,kBAAkB,EAAE,OAAO,CAAE,CAAE,CAEjH,CACD,CACK,CACO,EAEpB,kEAAC,2DAAQ,QACR,kEAAC,sEAAgB;MAAC,KAAK,EAAC;IAA8B,EAAG,CAC/C,CACT;EAEL,CAAC;EAEDoB,IAAI,EAAEJ,KAAK,IAAI;IACd;IACA,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;;;;;AC3DH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AACmC;AAI7B;AAC8B;AAG7DjB,oEAAiB,CAAE,6BAA6B,EAAE;EACjDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CAAE;EAChGK,IAAI,EAAE,WAAW;EAAE;EACnBC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDE,IAAI,EAAEI,KAAK,IAAI;IACd;IACA,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGhB,mDAAE,CAAE,MAAM,EAAE,OAAO;IAAI,GACzC;MAAK,SAAS,EAAC;IAAmB,GACjC;MAAK,SAAS,EAAC;IAA4B,GAEzCE,wDAAO,CAAEF,mDAAE,CAAE,wDAAwD,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,wBAAwB,EAAE,OAAO,CAAE,CAAE,CAEvH,CACD,EACN;MAAK,SAAS,EAAC;IAA8B,GAC5C;MAAK,SAAS,EAAC;IAA4B,GAEzCE,wDAAO,CAAEF,mDAAE,CAAE,qJAAqJ,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,gBAAgB,EAAE,OAAO,CAAE,CAAE,CAE5M,CACD,CACK,CACO,EAEpB,kEAAC,2DAAQ,QACR,kEAAC,sEAAgB;MAAC,KAAK,EAAC;IAA6B,EAAG,CAC9C,CACT;EAEL,CAAC;EAEDoB,IAAI,EAAEJ,KAAK,IAAI;IACd;IACA,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;;;AClEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AACR;AACc;AACG;AAClB;AAE7CjB,oEAAiB,CAAC,2BAA2B,EAAE;EAC9CK,KAAK,EAAEF,wDAAO,CAACF,mDAAE,CAAC,YAAY,EAAE,OAAO,CAAC,EAAEA,mDAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAEA,mDAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EACtFK,IAAI,EAAE,kBAAkB;EAAE;EAC1BC,QAAQ,EAAE,cAAc;EAAE;EAC1BkB,UAAU,EAAE;IACX4E,KAAK,EAAE;MACN1E,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACD0E,IAAI,EAAE;MACL3E,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EACDpB,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDE,IAAI,EAAGI,KAAK,IAAK;IAChB,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QAAE4E,KAAK;QAAEC;MAAK,CAAC;MAC3BpC;IACD,CAAC,GAAGjD,KAAK;IAET,MAAMsF,WAAW,GAAIjB,GAAG,IAAK;MAC5BpB,aAAa,CAAC;QAAEmC,KAAK,EAAEf;MAAI,CAAC,CAAC;IAC9B,CAAC;IAED,MAAMkB,WAAW,GAAIlB,GAAG,IAAK;MAC5BmB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAEC,SAAS,EAAE;QAC3CxE,WAAW,EAAEoD;MACd,CAAC,CAAC;IACH,CAAC;;IAED;IACA,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAErF,mDAAE,CAAC,OAAO,EAAE,OAAO;IAAE,GACtC,kEAAC,8DAAW;MAAC,IAAI,EAAC,MAAM;MAAC,SAAS,EAAC,OAAO;MAAC,KAAK,EAAEoG,KAAM;MAAC,QAAQ,EAAEE;IAAY,EAAG,CACvE,EACZ,kEAAC,4DAAS;MAAC,KAAK,EAAEtG,mDAAE,CAAC,MAAM,EAAE,OAAO;IAAE,GACrC,kEAAC,8DAAW;MAAC,IAAI,EAAC,MAAM;MAAC,SAAS,EAAC,MAAM;MAAC,KAAK,EAAEqG,IAAK;MAAC,QAAQ,EAAEE;IAAY,EAAG,CACrE,CACO,EAEpB,kEAAC,uDAAO,QACNrG,wDAAO,CACPF,mDAAE,CAAC,4DAA4D,EAAE,OAAO,CAAC,EACzEoG,KAAK,GAAGA,KAAK,GAAG,EAAE,EAClBC,IAAI,GAAGA,IAAI,GAAGrG,mDAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAChC,CACQ,CACR;EAEL,CAAC;EAEDoB,IAAI,EAAGJ,KAAK,IAAK;IAChB,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QAAE4E,KAAK;QAAEC;MAAK;IAC3B,CAAC,GAAGrF,KAAK;IAET,OACCqF,IAAI,IACH,kEAAC,uDAAO,QACNnG,wDAAO,CACPF,mDAAE,CAAC,4DAA4D,EAAE,OAAO,CAAC,EACzEoG,KAAK,GAAGA,KAAK,GAAG,EAAE,EAClBC,IAAI,GAAGA,IAAI,GAAGrG,mDAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAChC,CAEF;EAEH,CAAC;EAED4E,UAAU,EAAE;EACX;EACA;IACCpD,UAAU,EAAE;MACX4E,KAAK,EAAE;QACN1E,IAAI,EAAE,QAAQ;QACdC,OAAO,EAAE;MACV,CAAC;MACD0E,IAAI,EAAE;QACL3E,IAAI,EAAE,QAAQ;QACdC,OAAO,EAAE;MACV;IACD,CAAC;IAEDP,IAAI,EAAGJ,KAAK,IAAK;MAChB,MAAM;QACLyB,SAAS;QACTjB,UAAU,EAAE;UAAE4E,KAAK;UAAEC;QAAK;MAC3B,CAAC,GAAGrF,KAAK;MAET,OACCqF,IAAI,IACH,6EACC,kEAAC,uDAAO,QACNnG,wDAAO,CACP,KAAK,GAAGF,mDAAE,CAAC,yCAAyC,EAAE,OAAO,CAAC,GAAG,MAAM,EACvEoG,KAAK,GAAGA,KAAK,GAAG,EAAE,EAClBC,IAAI,GAAGA,IAAI,GAAGrG,mDAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAChC,CACQ,CAEX;IAEH;EACD,CAAC;AAEH,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AClIF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AACmC;AAI7B;AAC8B;AAG7DD,oEAAiB,CAAE,yCAAyC,EAAE;EAC7DK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,qBAAqB,EAAE,OAAO,CAAE,CAAE;EAC7GK,IAAI,EAAE,MAAM;EAAE;EACdC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDE,IAAI,EAAEI,KAAK,IAAI;IACd;IACA,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGhB,mDAAE,CAAE,MAAM,EAAE,OAAO;IAAI,GACzC;MAAK,SAAS,EAAC;IAAmB,GACjC;MAAK,SAAS,EAAC;IAA4B,GAEzCE,wDAAO,CAAEF,mDAAE,CAAE,wDAAwD,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,qBAAqB,EAAE,OAAO,CAAE,CAAE,CAEpH,CACD,CACK,CACO,EAEpB,kEAAC,2DAAQ,QACR,kEAAC,sEAAgB;MAAC,KAAK,EAAC;IAAyC,EAAG,CAC1D,CACT;EAEL,CAAC;EAEDoB,IAAI,EAAEJ,KAAK,IAAI;IACd;IACA,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;AC3DH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAKyB;AAGG;;AAG5B;AACA;AACA;;AAKyB;AAGzB,MAAM0F,sBAAsB,GAAG;AAC9B;AACA;EACClF,UAAU,EAAE;IACXC,KAAK,EAAE;MACNC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDC,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDM,WAAW,EAAE;MACZP,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDgF,OAAO,EAAE;MACRjF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDiF,MAAM,EAAE;MACPlF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDkF,UAAU,EAAE;MACXnF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDmF,QAAQ,EAAE;MACTpF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDoF,YAAY,EAAE;MACbrF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDP,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXC,KAAK;QACLI,MAAM;QACNI,WAAW;QACX0E,OAAO;QACPC;MACD;IACD,CAAC,GAAG5F,KAAK;IAET,OACC,8EACC;MAAI,KAAK,EAAC;IAAK,GAEbS,KAAK,IACJA,KAAK,CAEH,EACL,8EAEEQ,WAAW,IAET,kEAAC,uDAAO,QAAGA,WAAW,CACtB,CAEC,EACL,8EAEE2E,MAAM,IAEJvF,wDAAY,CAAEuF,MAAM,EAAE/E,MAAM,CAC5B,CAEC,EAEJ8E,OAAO,IAAMrF,4DAAgB,CAAEqF,OAAO,CAAE,GAAGC,MAAM,GAAK,CAAC,IAErD,8EACC,kEAAC,uDAAO,QAEN1G,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAEqB,wDAAY,CAAIC,4DAAgB,CAAEqF,OAAO,CAAE,GAAGC,MAAM,EAAI/E,MAAM,CAAE,EAAE,UAAU,GAAG8E,OAAO,GAAG,WAAW,CAAE,CAEnI,CAEX,CAEC;EAGP;AACD,CAAC,CACD;AAED,iEAAeD,sBAAsB;;;;;;;;;;;;;;;;;;;;;;AC7HrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAKyB;AAGO;AAGJ;;AAG5B;AACA;AACA;;AAKyB;AAGzB,MAAMM,sBAAsB,GAAG;AAC9B;AACA;EACCxF,UAAU,EAAE;IACXI,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDsF,cAAc,EAAE;MACfvF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDuF,WAAW,EAAE;MACZxF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDwF,QAAQ,EAAE;MACTzF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDyF,aAAa,EAAE;MACd1F,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDP,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNoF,cAAc;QACdC,WAAW;QACXC,QAAQ;QACRC;MACD;IACD,CAAC,GAAGpG,KAAK;IAET,OACC;MAAK,SAAS,EAAG,8BAA8B,IAAKyB,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GAEvF;MAAO,SAAS,EAAC;IAAsB,GACtC,iFACC,8EACC;MAAI,KAAK,EAAC;IAAK,GACZzC,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAE,CAChB,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAC1B,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EAEJmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,KAAK,EAAC;IAAK,GACZpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAEvB,CAEC,CACE,EACR,iFACC,kEAAC,uEAAmB,OAAG,CAChB,EACR,iFAEEiH,cAAc,GAAG,CAAC,IAEhB;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAa,GAErCC,WAAW,GAAGD,cAAc,GAAGjH,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,GAAGA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAE9E,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ,GAE5DlH,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4F,cAAc,EAAEpF,MAAM,CAAE,CAAE,CAEpF,CAEN,EAGFsF,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAa,GACpCpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAClB,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ;IAE5D;IACAC,IAAI,CAACC,KAAK,CAAEH,QAAQ,CAAE,CAACrD,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAQ1C,4DAAgB,CAAEyC,CAAC,CAAC4C,OAAO,CAAE,GAAGrF,4DAAgB,CAAE0C,CAAC,CAAC2C,OAAO,CAAI,CAAE,CAACY,GAAG,CAAE,CAAEC,KAAK,EAAEvC,CAAC,KAAM;MACjI,IAAKuC,KAAK,CAACZ,MAAM,GAAG,CAAC,EAAG;QACvB,OACC,kEAAC,uDAAO;UAAC,GAAG,EAAG3B;QAAG,GAEhB/E,wDAAO,CAAEF,mDAAE,CAAE,gBAAgB,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEmG,KAAK,CAACZ,MAAM,EAAE/E,MAAM,CAAE,EAAE,UAAU,GAAG2F,KAAK,CAACb,OAAO,GAAG,WAAW,GAAG,MAAM,CAAE,CAErI;MAEZ;IACD,CAAC,CAAE,CAEA,CAEN,EAGFO,WAAW,GAAGD,cAAc,IAE1B;MAAI,SAAS,EAAC;IAAO,GACpB;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAa,GACpCjH,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CACpB,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ,GAE5DlH,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE6F,WAAW,EAAErF,MAAM,CAAE,CAAE,CAEjF,CAEN,CAEI,CACD,CAEH;EAGR;AACD,CAAC;AACD;AACA;EACCL,UAAU,EAAE;IACXI,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDsF,cAAc,EAAE;MACfvF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDuF,WAAW,EAAE;MACZxF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDwF,QAAQ,EAAE;MACTzF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDyF,aAAa,EAAE;MACd1F,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDP,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNoF,cAAc;QACdC,WAAW;QACXC,QAAQ;QACRC;MACD;IACD,CAAC,GAAGpG,KAAK;IAET,OACC;MAAK,SAAS,EAAG,8BAA8B,IAAKyB,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GAEvF;MAAO,SAAS,EAAC;IAAsB,GACtC,iFACC,8EACC;MAAI,KAAK,EAAC;IAAK,GACZzC,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAE,CAChB,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAC1B,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EAEJmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE5B;MAAI,KAAK,EAAC;IAAK,GACZpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAEvB,CAEE,CACE,EACR,iFACC,kEAAC,uEAAmB,OAAG,CAChB,EACR,iFAEEiH,cAAc,GAAG,CAAC,IAEjB;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAE3BC,WAAW,GAAGD,cAAc,GAAGjH,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,GAAGA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAE9E,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4F,cAAc,EAAEpF,MAAM,CAAE,CAAE,CAEpF,CAEN,EAGDsF,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE5B;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAC1BpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAClB,EACL;IAEE;IACAqH,IAAI,CAACC,KAAK,CAAEH,QAAQ,CAAE,CAACrD,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAQ1C,4DAAgB,CAAEyC,CAAC,CAAC4C,OAAO,CAAE,GAAGrF,4DAAgB,CAAE0C,CAAC,CAAC2C,OAAO,CAAI,CAAE,CAACY,GAAG,CAAE,CAAEC,KAAK,EAAEvC,CAAC,KAAM;MACjI,IAAKuC,KAAK,CAACZ,MAAM,GAAG,CAAC,EAAG;QACvB,OACC,kEAAC,uDAAO;UAAC,GAAG,EAAG3B;QAAG,GAEhB/E,wDAAO,CAAEF,mDAAE,CAAE,gBAAgB,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEmG,KAAK,CAACZ,MAAM,EAAE/E,MAAM,CAAE,EAAE,UAAU,GAAG2F,KAAK,CAACb,OAAO,GAAG,WAAW,GAAG,MAAM,CAAE,CAErI;MAEZ;IACD,CAAC,CAAE,CAEA,CAEN,EAGDO,WAAW,GAAGD,cAAc,IAE3B;MAAI,SAAS,EAAC;IAAO,GACpB;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAC1BjH,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CACpB,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE6F,WAAW,EAAErF,MAAM,CAAE,CAAE,CAEjF,CAEN,CAEK,CACD,CAEH;EAGR;AACD,CAAC,CACD;AAED,iEAAemF,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpTrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AAIQ;AAKF;AAGN;AAGG;;AAE5B;AACA;AACA;;AAKyB;AAE8B;AACA;;AAGvD;AACA;AACA;;AAEAjH,oEAAiB,CAAE,4BAA4B,EAAE;EAChDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAAE;EAC/FK,IAAI,EAAE,UAAU;EAAE;EAClBC,QAAQ,EAAE,cAAc;EAAE;EAC1BkB,UAAU,EAAE;IACXI,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDsF,cAAc,EAAE;MACfvF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDuF,WAAW,EAAE;MACZxF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDwF,QAAQ,EAAE;MACTzF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDyF,aAAa,EAAE;MACd1F,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EACDpB,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDC,mBAAmB,GAAG;IACrB,OAAO;MAAE,YAAY,EAAE;IAAO,CAAC;EAChC,CAAC;EAEDC,IAAI,EAAET,2DAAU,CAAE,CAAEU,MAAM,WAAoB;IAAA,IAAlB;MAAE4C;IAAS,CAAC;IACvC,MAAM;MAAEC;IAAoB,CAAC,GAAG7C,MAAM,CAAE,mBAAmB,CAAE;IAE7D8C,eAAe,CAACF,QAAQ,GAAGA,QAAQ;;IAEnC;IACA,MAAMG,WAAW,GAAK,IAAI,KAAKF,mBAAmB,CAAEC,eAAe,CAACF,QAAQ,CAAE,CAAE,CAAC,CAAE,GAAGC,mBAAmB,CAAEC,eAAe,CAACF,QAAQ,CAAE,CAAE,CAAC,CAAE,CAACI,WAAW,GAAG,IAAM;IAE/J,OAAO;MACND,WAAW,EAAEA;IACd,CAAC;EACF,CAAC,CAAE,CAAE5C,KAAK,IAAI;IACb,MAAM;MACLyB,SAAS;MACTmB,WAAW;MACXpC,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNoF,cAAc;QACdC,WAAW;QACXC,QAAQ;QACRC;MACD,CAAC;MACDnD;IACD,CAAC,GAAGjD,KAAK;;IAET;IACAiD,aAAa,CAAE;MAAErC,QAAQ,EAAE+B,eAAe,CAAC/B;IAAS,CAAC,CAAE;IACvDqC,aAAa,CAAE;MAAEpC,MAAM,EAAE8B,eAAe,CAAC9B;IAAO,CAAC,CAAE;;IAEnD;IACA,MAAM2B,YAAY,GAAG,MAAM;MAC1B,IAAIkE,iBAAiB,GAAG,CAAC;QACxBC,cAAc,GAAG,CAAC;QAClBC,gBAAgB,GAAG,CAAC;QACpBC,oBAAoB,GAAG,EAAE;QACzBC,oBAAoB,GAAG,EAAE;;MAE1B;MACA,IAAKlE,WAAW,IAAIA,WAAW,CAACU,MAAM,GAAG,CAAC,EAAG;QAC5CV,WAAW,CAAC2D,GAAG,CAAE,CAAE/C,UAAU,EAAES,CAAC,KAAM;UACrC;UACAyC,iBAAiB,IAAIjD,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACoF,MAAM,CAAE;;UAE3D;UACAe,cAAc,IAAIlD,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACoF,MAAM,CAAE,GAAKtF,4DAAgB,CAAEkD,UAAU,CAAChD,UAAU,CAACmF,OAAO,CAAE,GAAGlC,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACoF,MAAM,CAAI;;UAEzJ;UACAiB,oBAAoB,CAACE,IAAI,CAAE;YAAEpB,OAAO,EAAEnC,UAAU,CAAChD,UAAU,CAACmF,OAAO;YAAEC,MAAM,EAAItF,4DAAgB,CAAEkD,UAAU,CAAChD,UAAU,CAACmF,OAAO,CAAE,GAAGlC,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACoF,MAAM;UAAK,CAAC,CAAE;QAChL,CAAC,CAAE;QAEH,IAAKiB,oBAAoB,CAACvD,MAAM,GAAG,CAAC,EAAG;UACtC;UACAsD,gBAAgB,GAAGC,oBAAoB,CAACG,MAAM,CAAE,UAAWC,GAAG,EAAEC,KAAK,EAAG;YACvE,OAAOD,GAAG,GAAGC,KAAK,CAACtB,MAAM;UAC1B,CAAC,EAAE,CAAC,CAAE;UACNgB,gBAAgB,GAAGnD,MAAM,CAAEmD,gBAAgB,CAACO,OAAO,CAAE,CAAC,CAAE,CAAE;;UAE1D;UACAN,oBAAoB,CAACG,MAAM,CAAE,UAAWC,GAAG,EAAEC,KAAK,EAAG;YACpD,IAAK,CAACD,GAAG,CAAEC,KAAK,CAACvB,OAAO,CAAE,EAAG;cAC5BsB,GAAG,CAAEC,KAAK,CAACvB,OAAO,CAAE,GAAG;gBAAEA,OAAO,EAAEuB,KAAK,CAACvB,OAAO;gBAAEC,MAAM,EAAE;cAAE,CAAC;cAC5DkB,oBAAoB,CAACC,IAAI,CAAEE,GAAG,CAAEC,KAAK,CAACvB,OAAO,CAAE,CAAE;YAClD;YACAsB,GAAG,CAAEC,KAAK,CAACvB,OAAO,CAAE,CAACC,MAAM,IAAIsB,KAAK,CAACtB,MAAM;YAC3C,OAAOqB,GAAG;UACX,CAAC,EAAE,CAAC,CAAC,CAAE;QACR;QAEAhE,aAAa,CAAE;UAAEmD,aAAa,EAAEQ;QAAiB,CAAC,CAAE;QACpD3D,aAAa,CAAE;UAAEkD,QAAQ,EAAEE,IAAI,CAACe,SAAS,CAAEN,oBAAoB;QAAG,CAAC,CAAE;QAErE7D,aAAa,CAAE;UAAEgD,cAAc,EAAES;QAAkB,CAAC,CAAE;QACtDzD,aAAa,CAAE;UAAEiD,WAAW,EAAES;QAAe,CAAC,CAAE;MACjD;IACD,CAAC;IACDnE,YAAY,EAAE;;IAEd;IACA,OACC;MAAK,SAAS,EAAG,oBAAoB,IAAKf,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GAC7E,kEAAC,gEAAW;MACX,YAAY,EAAG,KAAO;MACtB,QAAQ,EAAG,CACV,CAAE,+BAA+B,EAAE;QAClC;MAAA,CACA,CAAE,CACD;MACH,aAAa,EAAG,CACf,+BAA+B;IAC7B,EACF,EAGDwE,cAAc,GAAG,CAAC,IAEhB;MAAO,SAAS,EAAC;IAAQ,GACxB,iFAEEA,cAAc,GAAG,CAAC,IAEhB;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,KAAK,EAAG;QAAEvC,KAAK,EAAE;MAAM;IAAG,GAE5BwC,WAAW,GAAGD,cAAc,GAAGjH,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,GAAGA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAE9E,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4F,cAAc,EAAEpF,MAAM,CAAE,CAAE,CAEpF,CAEN,EAGFsF,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,KAAK,EAAG;QAAE1C,KAAK,EAAE;MAAM;IAAG,GAC3B1E,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAClB,EACL;IAEE;IACAqH,IAAI,CAACC,KAAK,CAAEH,QAAQ,CAAE,CAACrD,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAQ1C,4DAAgB,CAAEyC,CAAC,CAAC4C,OAAO,CAAE,GAAGrF,4DAAgB,CAAE0C,CAAC,CAAC2C,OAAO,CAAI,CAAE,CAACY,GAAG,CAAE,CAAEC,KAAK,EAAEvC,CAAC,KAAM;MACjI,IAAKuC,KAAK,CAACZ,MAAM,GAAG,CAAC,EAAG;QACvB,OACC,kEAAC,uDAAO;UAAC,GAAG,EAAG3B;QAAG,GAEhB/E,wDAAO,CAAEF,mDAAE,CAAE,gBAAgB,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEmG,KAAK,CAACZ,MAAM,EAAE/E,MAAM,CAAE,EAAE,UAAU,GAAG2F,KAAK,CAACb,OAAO,GAAG,WAAW,GAAG,MAAM,CAAE,CAErI;MAEZ;IACD,CAAC,CAAE,CAEA,CAEN,EAGFO,WAAW,GAAGD,cAAc,IAE1B;MAAI,SAAS,EAAC;IAAO,GACpB;MAAI,KAAK,EAAG;QAAEvC,KAAK,EAAE;MAAM;IAAG,GAC3B1E,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CACpB,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE6F,WAAW,EAAErF,MAAM,CAAE,CAAE,CAEjF,CAEN,CAEI,CAET,EAGH;MAAQ,EAAE,EAAC,cAAc;MAAC,SAAS,EAAC,0CAA0C;MAAC,OAAO,EAAG2B,YAAc;MAAC,KAAK,EAAG;QAAE6E,OAAO,EAAIpB,cAAc,GAAG,CAAC,GAAG,OAAO,GAAG;MAAS;IAAG,GAEtKjH,mDAAE,CAAE,eAAe,EAAE,OAAO,CAAE,CAEvB,CACJ;EAER,CAAC,CAAE;EAEHoB,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNoF,cAAc;QACdC,WAAW;QACXC,QAAQ;QACRC;MACD;IACD,CAAC,GAAGpG,KAAK;IAET,OACC;MAAK,SAAS,EAAG,8BAA8B,IAAKyB,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GAEvF;MAAO,SAAS,EAAC;IAAsB,GACtC,iFACC,8EACC;MAAI,KAAK,EAAC;IAAK,GACZzC,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAE,CAChB,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAC1B,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EAEJmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,KAAK,EAAC;IAAK,GACZpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAEvB,CAEC,CACE,EACR,iFACC,kEAAC,wEAAmB,OAAG,CAChB,EACR,iFAEEiH,cAAc,GAAG,CAAC,IAEhB;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC;IAAG,GAEbC,WAAW,GAAGD,cAAc,GAAGjH,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,GAAGA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAE9E,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ,GAE5DlH,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4F,cAAc,EAAEpF,MAAM,CAAE,CAAE,CAEpF,CAEN,EAGFsF,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC;IAAG,GACZpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAClB,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ;IAE5D;IACAC,IAAI,CAACC,KAAK,CAAEH,QAAQ,CAAE,CAACrD,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAQ1C,4DAAgB,CAAEyC,CAAC,CAAC4C,OAAO,CAAE,GAAGrF,4DAAgB,CAAE0C,CAAC,CAAC2C,OAAO,CAAI,CAAE,CAACY,GAAG,CAAE,CAAEC,KAAK,EAAEvC,CAAC,KAAM;MACjI,IAAKuC,KAAK,CAACZ,MAAM,GAAG,CAAC,EAAG;QACvB,OACC,kEAAC,uDAAO;UAAC,GAAG,EAAG3B;QAAG,GAEhB/E,wDAAO,CAAEF,mDAAE,CAAE,gBAAgB,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEmG,KAAK,CAACZ,MAAM,EAAE/E,MAAM,CAAE,EAAE,UAAU,GAAG2F,KAAK,CAACb,OAAO,GAAG,WAAW,GAAG,MAAM,CAAE,CAErI;MAEZ;IACD,CAAC,CAAE,CAEA,CAEN,EAGFO,WAAW,GAAGD,cAAc,IAE1B;MAAI,SAAS,EAAC;IAAO,GACpB;MAAI,OAAO,EAAC;IAAG,GACZjH,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CACpB,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ,GAE5DlH,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE6F,WAAW,EAAErF,MAAM,CAAE,CAAE,CAEjF,CAEN,CAEI,CACD,CAEH;EAER,CAAC;EAED+C,UAAU,EAAEoC,wDAAsBA;AACnC,CAAC,CAAE;;AAGH;AACA;AACA;;AAEAjH,oEAAiB,CAAE,+BAA+B,EAAE;EACnDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,CAAE;EACnGK,IAAI,EAAE,UAAU;EAAE;EAClBC,QAAQ,EAAE,cAAc;EAAE;EAC1BuE,MAAM,EAAE,CAAE,4BAA4B,CAAE;EAAE;EAC1CrD,UAAU,EAAE;IACXC,KAAK,EAAE;MACNC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDC,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDgF,OAAO,EAAE;MACRjF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDiF,MAAM,EAAE;MACPlF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDkF,UAAU,EAAE;MACXnF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDmF,QAAQ,EAAE;MACTpF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDoF,YAAY,EAAE;MACbrF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDhB,mBAAmB,GAAG;IACrB,OAAO;MAAE,YAAY,EAAE;IAAO,CAAC;EAChC,CAAC;EAEDC,IAAI,EAAET,2DAAU,CAAE,CAAEU,MAAM,YAAoB;IAAA,IAAlB;MAAE4C;IAAS,CAAC;IACvC,MAAM;MACLqB,oBAAoB;MACpBC;IACD,CAAC,GAAGlE,MAAM,CAAE,mBAAmB,CAAE;IAEjC,OAAO;MACNoE,CAAC,EAAEF,aAAa,CAAEtB,QAAQ,EAAEqB,oBAAoB,CAAErB,QAAQ,CAAE,CAAE,GAAG;IAClE,CAAC;EACF,CAAC,CAAE,CAAEzC,KAAK,IAAI;IACb,MAAM;MACLyB,SAAS;MACTwC,CAAC;MACDzD,UAAU,EAAE;QACXC,KAAK;QACLG,QAAQ;QACRC,MAAM;QACNI,WAAW;QAAE;QACb0E,OAAO;QACPC,MAAM;QACNC,UAAU;QACVC,QAAQ;QACRC;MACD,CAAC;MACD9C;IACD,CAAC,GAAGjD,KAAK;IAETiD,aAAa,CAAE;MAAExC,KAAK,EAAEwD;IAAE,CAAC,CAAE;IAC7BhB,aAAa,CAAE;MAAErC,QAAQ,EAAE+B,eAAe,CAAC/B;IAAS,CAAC,CAAE;IACvDqC,aAAa,CAAE;MAAEpC,MAAM,EAAE8B,eAAe,CAAC9B;IAAO,CAAC,CAAE;IAEnD,IAAK,EAAE,KAAK8E,OAAO,EAAG;MACrB1C,aAAa,CAAE;QAAE0C,OAAO,EAAI,CAAC,KAAKhD,eAAe,CAAC2E,UAAU,CAAChE,MAAM,GAAG,IAAI,GAAGX,eAAe,CAAC2E,UAAU,CAAE,CAAC,CAAE,CAACJ;MAAQ,CAAC,CAAE;IACzH;IAEA,MAAMK,gBAAgB,GAAGlD,GAAG,IAAI;MAC/BpB,aAAa,CAAE;QAAE4C,UAAU,EAAIxB,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;;MAEjE;MACAmD,UAAU,CAAE,MAAM;QACjBC,QAAQ,CAACC,cAAc,CAAE,cAAc,CAAE,CAACC,KAAK,EAAE;MAClD,CAAC,EAAE,CAAC,CAAE;IACP,CAAC;IAED,MAAMC,aAAa,GAAGvD,GAAG,IAAI;MAC5BpB,aAAa,CAAE;QAAE0C,OAAO,EAAEtB;MAAI,CAAC,CAAE;MAEjCkD,gBAAgB,CAAE9D,MAAM,CAAEmC,MAAM,CAAE,GAAKnC,MAAM,CAAEmC,MAAM,CAAE,GAAGtF,4DAAgB,CAAE+D,GAAG,CAAI,CAAE;IACtF,CAAC;IAED,MAAMwD,YAAY,GAAGxD,GAAG,IAAI;MAC3BpB,aAAa,CAAE;QAAE2C,MAAM,EAAIvB,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;MAE7DkD,gBAAgB,CAAE9D,MAAM,CAAEY,GAAG,CAAE,GAAKZ,MAAM,CAAEY,GAAG,CAAE,GAAG/D,4DAAgB,CAAEqF,OAAO,CAAI,CAAE;IACpF,CAAC;IAED,MAAMmC,cAAc,GAAGzD,GAAG,IAAI;MAC7BpB,aAAa,CAAE;QAAE6C,QAAQ,EAAIzB,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;MAE/DwD,YAAY,CAAEpE,MAAM,CAAEY,GAAG,CAAE,GAAGZ,MAAM,CAAEsC,YAAY,CAAE,CAAE;IACvD,CAAC;IAED,MAAMgC,kBAAkB,GAAG1D,GAAG,IAAI;MACjCpB,aAAa,CAAE;QAAE8C,YAAY,EAAI1B,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;MAEnEwD,YAAY,CAAEpE,MAAM,CAAEqC,QAAQ,CAAE,GAAGrC,MAAM,CAAEY,GAAG,CAAE,CAAE;IACnD,CAAC;;IAED;IACA,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGrF,mDAAE,CAAE,0BAA0B,EAAE,OAAO;IAAI,GAC7D,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,KAAK,EAAGA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAI;MACnC,WAAW,EAAGA,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAG8G,QAAU;MAClB,QAAQ,EAAGgC;IAAgB,EAC1B,EAEF,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,KAAK,EAAG5I,wDAAO,CAAEF,mDAAE,CAAE,cAAc,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE,EAAE4B,QAAQ,CAAI;MACnF,WAAW,EAAG5B,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAG+G,YAAc;MACtB,QAAQ,EAAGgC;IAAoB,EAC9B,CACS,CACO,EAEpB,iFACC,iFACC,8EACC;MAAI,SAAS,EAAC;IAAO,GAEnBtH,KAAK,IACJA,KAAK,CAEH,EACL;MAAI,KAAK,EAAG;QAAEiD,KAAK,EAAE,MAAM;QAAEmB,QAAQ,EAAE;MAAQ;IAAG,GACjD,kEAAC,gEAAW;MACX,QAAQ,EAAG,CACV,CAAE,gBAAgB,EAAE;QACnBC,WAAW,EAAE9F,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE;QACzC+F,OAAO,EAAI9D,WAAW,GAAGA,WAAW,GAAG,EAAI,CAAE;MAC9C,CAAC,CAAE,CACD;;MACH,aAAa,EAAG,CACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,WAAW;IACT,EACF,CACE,EACL,8EACC,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,KAAK,EAAG/B,wDAAO,CAAEF,mDAAE,CAAE,cAAc,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,EAAE4B,QAAQ,CAAI;MACrF,SAAS,EAAC,QAAQ;MAClB,WAAW,EAAG5B,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAG4G,MAAQ;MAChB,QAAQ,EAAGiC;IAAc,EACxB,CACE,EACL,8EACC,kEAAC,gEAAa;MACb,SAAS,EAAC,SAAS;MACnB,KAAK,EAAG3I,wDAAO,CAAEF,mDAAE,CAAE,cAAc,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,EAAE,GAAG,CAAI;MAC7E,KAAK,EAAG2G,OAAS;MACjB,OAAO,EAAK,CAAC,KAAKhD,eAAe,CAAC2E,UAAU,CAAChE,MAAM,GAAGX,eAAe,CAAC2E,UAAU,GAAK,IAAI,KAAK3B,OAAO,IAAI,CAAC,KAAKhD,eAAe,CAAC2E,UAAU,CAAChE,MAAM,GAAG,CAAE;QAAE8B,KAAK,EAAEO,OAAO;QAAEuB,KAAK,EAAEvB;MAAQ,CAAC,EAAE;QAAEP,KAAK,EAAE,IAAI;QAAE8B,KAAK,EAAE;MAAK,CAAC,CAAE,GAAG,EAAQ;MAClO,QAAQ,EAAGU;IAAe,EACzB,CACE,EACL,8EACC,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,QAAQ,EAAC,UAAU;MACnB,KAAK,EAAGhH,QAAU;MAClB,SAAS,EAAC,YAAY;MACtB,WAAW,EAAG5B,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAG6G;IAAY,EACnB,CACE,CACD,CACE,CACD,CACN;EAEL,CAAC,CAAE;EAEHzF,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXC,KAAK;QACLI,MAAM;QACN8E,OAAO;QACPC;MACD;IACD,CAAC,GAAG5F,KAAK;IAET,OACC,8EACC;MAAI,KAAK,EAAC;IAAK,GAEbS,KAAK,IACJA,KAAK,CAEH,EACL,8EACC,kEAAC,wEAAmB,OAAG,CACnB,EACL,8EAEEmF,MAAM,IAEJvF,wDAAY,CAAEuF,MAAM,EAAE/E,MAAM,CAC5B,CAEC,EAEJ8E,OAAO,IAAMrF,4DAAgB,CAAEqF,OAAO,CAAE,GAAGC,MAAM,GAAK,CAAC,IAErD,8EACC,kEAAC,uDAAO,QAEN1G,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAEqB,wDAAY,CAAIC,4DAAgB,CAAEqF,OAAO,CAAE,GAAGC,MAAM,EAAI/E,MAAM,CAAE,EAAE,UAAU,GAAG8E,OAAO,GAAG,WAAW,CAAE,CAEnI,CAEX,CAEC;EAEP,CAAC;EAED/B,UAAU,EAAE8B,wDAAsBA;AACnC,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;ACvmBH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAI2B;AAKF;AAGA;AAGzB3G,oEAAiB,CAAE,4BAA4B,EAAE;EAChDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAE,CAAE;EAC/FK,IAAI,EAAE,UAAU;EAAE;EAClBC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDC,mBAAmB,GAAG;IACrB,OAAO;MAAE,YAAY,EAAE;IAAO,CAAC;EAChC,CAAC;EAEDC,IAAI,EAAET,2DAAU,CAAIU,MAAM,IAAM;IAC/B,OAAO;MACNC,gBAAgB,EAAED,MAAM,CAAE,aAAa,CAAE,CAACE,sBAAsB,CAAE,UAAU;IAC7E,CAAC;EACF,CAAC,CAAE,CAAEC,KAAK,IAAI;IACb,MAAM;MACLF;IACD,CAAC,GAAGE,KAAK;;IAET;IACA,OACC;MAAK,SAAS,EAAC,wBAAwB;MAAC,KAAK,EAAG;QAAEC,SAAS,EAAE;MAAO;IAAG,GACtE,iFAEEf,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,eAAe,EAAE,OAAO,CAAE,EAAE,IAAIkB,IAAI,CAAEJ,gBAAgB,CAAE,CAACK,cAAc,EAAE,CAAE,CAE/G,CACH;EAER,CAAC,CAAE;EAEHC,IAAI,EAAEJ,KAAK,IAAI;IACd,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;AC5DH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AACoC;AAG7DjB,oEAAiB,CAAE,yBAAyB,EAAE;EAC7CK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE,CAAE;EAC5FK,IAAI,EAAE,cAAc;EAAE;EACtBC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDE,IAAI,EAAEI,KAAK,IAAI;IACd;IACA,OACC,kEAAC,sEAAgB;MAAC,KAAK,EAAC;IAAyB,EAAG;EAEtD,CAAC;EAEDI,IAAI,EAAEJ,KAAK,IAAI;IACd;IACA,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;;;;;ACtCH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AACmC;AACV;AACW;AAG7DjB,oEAAiB,CAAE,gCAAgC,EAAE;EACpDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAAE;EACnGK,IAAI,EAAE,MAAM;EAAE;EACdC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDE,IAAI,EAAEI,KAAK,IAAI;IACd;IACA,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGhB,mDAAE,CAAE,MAAM,EAAE,OAAO;IAAI,GACzC;MAAK,SAAS,EAAC;IAAmB,GACjC;MAAK,SAAS,EAAC;IAA4B,GAEzCE,wDAAO,CAAEF,mDAAE,CAAE,wDAAwD,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,mBAAmB,EAAE,OAAO,CAAE,CAAE,CAElH,CACD,CACK,CACO,EAEpB,kEAAC,sEAAgB;MAAC,KAAK,EAAC;IAAgC,EAAG,CACzD;EAEL,CAAC;EAEDoB,IAAI,EAAEJ,KAAK,IAAI;IACd;IACA,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;;;ACtDH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AACmC;AAI7B;AAGH;AAG5BjB,oEAAiB,CAAE,yBAAyB,EAAE;EAC7CK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE,CAAE;EAC5FK,IAAI,EAAE,kBAAkB;EAAE;EAC1BC,QAAQ,EAAE,cAAc;EAAE;EAC1BkB,UAAU,EAAE;IACX4E,KAAK,EAAE;MACN1E,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACD0E,IAAI,EAAE;MACL3E,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EACDpB,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDE,IAAI,EAAEI,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACX4E,KAAK;QACLC;MACD,CAAC;MACDpC;IACD,CAAC,GAAGjD,KAAK;IAET,MAAMsF,WAAW,GAAGjB,GAAG,IAAI;MAC1BpB,aAAa,CAAE;QAAEmC,KAAK,EAAEf;MAAI,CAAC,CAAE;IAChC,CAAC;IAED,MAAMkB,WAAW,GAAGlB,GAAG,IAAI;MAC1BpB,aAAa,CAAE;QAAEoC,IAAI,EAAEhB;MAAI,CAAC,CAAE;IAC/B,CAAC;;IAED;IACA,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGrF,mDAAE,CAAE,OAAO,EAAE,OAAO;IAAI,GAC1C,kEAAC,8DAAW;MACX,IAAI,EAAC,MAAM;MACX,SAAS,EAAC,OAAO;MACjB,KAAK,EAAGoG,KAAO;MACf,QAAQ,EAAGE;IAAa,EACvB,CACS,EACZ,kEAAC,4DAAS;MAAC,KAAK,EAAGtG,mDAAE,CAAE,MAAM,EAAE,OAAO;IAAI,GACzC,kEAAC,8DAAW;MACX,IAAI,EAAC,MAAM;MACX,SAAS,EAAC,MAAM;MAChB,KAAK,EAAGqG,IAAM;MACd,QAAQ,EAAGE;IAAa,EACvB,CACS,CACO,EAEpB,kEAAC,uDAAO,QAENrG,wDAAO,CAAEF,mDAAE,CAAE,4DAA4D,EAAE,OAAO,CAAE,EAAIoG,KAAK,GAAGA,KAAK,GAAG,EAAE,EAAMC,IAAI,GAAGA,IAAI,GAAGrG,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAAI,CAE9I,CACR;EAEL,CAAC;EAEDoB,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACX4E,KAAK;QACLC;MACD;IACD,CAAC,GAAGrF,KAAK;IAET,OACCqF,IAAI,IACH,kEAAC,uDAAO,QAENnG,wDAAO,CAAEF,mDAAE,CAAE,4DAA4D,EAAE,OAAO,CAAE,EAAIoG,KAAK,GAAGA,KAAK,GAAG,EAAE,EAAMC,IAAI,GAAGA,IAAI,GAAGrG,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAAI,CAGxJ;EAEH,CAAC;EAED4E,UAAU,EAAE;EACX;EACA;IACCpD,UAAU,EAAE;MACX4E,KAAK,EAAE;QACN1E,IAAI,EAAE,QAAQ;QACdC,OAAO,EAAE;MACV,CAAC;MACD0E,IAAI,EAAE;QACL3E,IAAI,EAAE,QAAQ;QACdC,OAAO,EAAE;MACV;IACD,CAAC;IAEDP,IAAI,EAAEJ,KAAK,IAAI;MACd,MAAM;QACLyB,SAAS;QACTjB,UAAU,EAAE;UACX4E,KAAK;UACLC;QACD;MACD,CAAC,GAAGrF,KAAK;MAET,OACCqF,IAAI,IACH,6EACC,kEAAC,uDAAO,QAENnG,wDAAO,CAAE,KAAK,GAAGF,mDAAE,CAAE,yCAAyC,EAAE,OAAO,CAAE,GAAG,MAAM,EAAIoG,KAAK,GAAGA,KAAK,GAAG,EAAE,EAAMC,IAAI,GAAGA,IAAI,GAAGrG,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAAI,CAE5I,CAEX;IAEH;EACD,CAAC;AAEH,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;ACtJH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAKyB;AAGG;;AAG5B;AACA;AACA;;AAKyB;AAGzB,MAAMgJ,oBAAoB,GAAG;AAC5B;AACA;EACCxH,UAAU,EAAE;IACXC,KAAK,EAAE;MACNC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDC,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDM,WAAW,EAAE;MACZP,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDgF,OAAO,EAAE;MACRjF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDiF,MAAM,EAAE;MACPlF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDkF,UAAU,EAAE;MACXnF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDmF,QAAQ,EAAE;MACTpF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDoF,YAAY,EAAE;MACbrF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDP,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXC,KAAK;QACLI,MAAM;QACNI,WAAW;QACX0E,OAAO;QACPC;MACD;IACD,CAAC,GAAG5F,KAAK;IAET,OACC,8EACC;MAAI,KAAK,EAAC;IAAK,GAEbS,KAAK,IACJA,KAAK,CAEH,EACL,8EAEEQ,WAAW,IAET,kEAAC,uDAAO,QAAGA,WAAW,CACtB,CAEC,EACL,8EAEE2E,MAAM,IAEJvF,wDAAY,CAAEuF,MAAM,EAAE/E,MAAM,CAC5B,CAEC,EAEJ8E,OAAO,IAAMrF,4DAAgB,CAAEqF,OAAO,CAAE,GAAGC,MAAM,GAAK,CAAC,IAErD,8EACC,kEAAC,uDAAO,QAEN1G,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAEqB,wDAAY,CAAIC,4DAAgB,CAAEqF,OAAO,CAAE,GAAGC,MAAM,EAAI/E,MAAM,CAAE,EAAE,UAAU,GAAG8E,OAAO,GAAG,WAAW,CAAE,CAEnI,CAEX,CAEC;EAGP;AACD,CAAC,CACD;AAED,iEAAeqC,oBAAoB;;;;;;;;;;;;;;;;;;;;;;AC7HnC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAKyB;AAGO;AAGJ;;AAG5B;AACA;AACA;;AAKyB;AAGzB,MAAMC,oBAAoB,GAAG;AAC5B;AACA;EACCzH,UAAU,EAAE;IACXI,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDsF,cAAc,EAAE;MACfvF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDuF,WAAW,EAAE;MACZxF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDwF,QAAQ,EAAE;MACTzF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDyF,aAAa,EAAE;MACd1F,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDP,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNoF,cAAc;QACdC,WAAW;QACXC,QAAQ;QACRC;MACD;IACD,CAAC,GAAGpG,KAAK;IAET,OACC;MAAK,SAAS,EAAG,4BAA4B,IAAKyB,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GAErF;MAAO,SAAS,EAAC;IAAsB,GACtC,iFACC,8EACC;MAAI,KAAK,EAAC;IAAK,GACZzC,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAE,CAChB,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAC1B,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EAEJmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,KAAK,EAAC;IAAK,GACZpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAEvB,CAEC,CACE,EACR,iFACC,kEAAC,uEAAmB,OAAG,CAChB,EACR,iFAEEiH,cAAc,GAAG,CAAC,IAEhB;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAa,GAErCC,WAAW,GAAGD,cAAc,GAAGjH,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,GAAGA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAE9E,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ,GAE5DlH,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4F,cAAc,EAAEpF,MAAM,CAAE,CAAE,CAEpF,CAEN,EAGFsF,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAa,GACpCpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAClB,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ;IAE5D;IACAC,IAAI,CAACC,KAAK,CAAEH,QAAQ,CAAE,CAACrD,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAQ1C,4DAAgB,CAAEyC,CAAC,CAAC4C,OAAO,CAAE,GAAGrF,4DAAgB,CAAE0C,CAAC,CAAC2C,OAAO,CAAI,CAAE,CAACY,GAAG,CAAE,CAAEC,KAAK,EAAEvC,CAAC,KAAM;MACjI,IAAKuC,KAAK,CAACZ,MAAM,GAAG,CAAC,EAAG;QACvB,OACC,kEAAC,uDAAO;UAAC,GAAG,EAAG3B;QAAG,GAEhB/E,wDAAO,CAAEF,mDAAE,CAAE,gBAAgB,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEmG,KAAK,CAACZ,MAAM,EAAE/E,MAAM,CAAE,EAAE,UAAU,GAAG2F,KAAK,CAACb,OAAO,GAAG,WAAW,GAAG,MAAM,CAAE,CAErI;MAEZ;IACD,CAAC,CAAE,CAEA,CAEN,EAGFO,WAAW,GAAGD,cAAc,IAE1B;MAAI,SAAS,EAAC;IAAO,GACpB;MAAI,OAAO,EAAC,GAAG;MAAC,SAAS,EAAC;IAAa,GACpCjH,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CACpB,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ,GAE5DlH,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE6F,WAAW,EAAErF,MAAM,CAAE,CAAE,CAEjF,CAEN,CAEI,CACD,CAEH;EAER;AACD,CAAC;AACD;AACA;EACCL,UAAU,EAAE;IACXI,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDsF,cAAc,EAAE;MACfvF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDuF,WAAW,EAAE;MACZxF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDwF,QAAQ,EAAE;MACTzF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDyF,aAAa,EAAE;MACd1F,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDP,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNoF,cAAc;QACdC,WAAW;QACXC,QAAQ;QACRC;MACD;IACD,CAAC,GAAGpG,KAAK;IAET,OACC;MAAK,SAAS,EAAG,4BAA4B,IAAKyB,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GAErF;MAAO,SAAS,EAAC;IAAsB,GACtC,iFACC,8EACC;MAAI,KAAK,EAAC;IAAK,GACZzC,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAE,CAChB,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAC1B,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EAEJmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,KAAK,EAAC;IAAK,GACZpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAEvB,CAEC,CACE,EACR,iFACC,kEAAC,uEAAmB,OAAG,CAChB,EACR,iFAEEiH,cAAc,GAAG,CAAC,IAEhB;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAE3BC,WAAW,GAAGD,cAAc,GAAGjH,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,GAAGA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAE9E,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4F,cAAc,EAAEpF,MAAM,CAAE,CAAE,CAEpF,CAEN,EAGFsF,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAC1BpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAClB,EACL;IAEE;IACAqH,IAAI,CAACC,KAAK,CAAEH,QAAQ,CAAE,CAACrD,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAQ1C,4DAAgB,CAAEyC,CAAC,CAAC4C,OAAO,CAAE,GAAGrF,4DAAgB,CAAE0C,CAAC,CAAC2C,OAAO,CAAI,CAAE,CAACY,GAAG,CAAE,CAAEC,KAAK,EAAEvC,CAAC,KAAM;MACjI,IAAKuC,KAAK,CAACZ,MAAM,GAAG,CAAC,EAAG;QACvB,OACC,kEAAC,uDAAO;UAAC,GAAG,EAAG3B;QAAG,GAEhB/E,wDAAO,CAAEF,mDAAE,CAAE,gBAAgB,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEmG,KAAK,CAACZ,MAAM,EAAE/E,MAAM,CAAE,EAAE,UAAU,GAAG2F,KAAK,CAACb,OAAO,GAAG,WAAW,GAAG,MAAM,CAAE,CAErI;MAEZ;IACD,CAAC,CAAE,CAEA,CAEN,EAGFO,WAAW,GAAGD,cAAc,IAE1B;MAAI,SAAS,EAAC;IAAO,GACpB;MAAI,OAAO,EAAC,GAAG;MAAC,KAAK,EAAC;IAAO,GAC1BjH,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CACpB,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE6F,WAAW,EAAErF,MAAM,CAAE,CAAE,CAEjF,CAEN,CAEI,CACD,CAEH;EAGR;AACD,CAAC,CACD;AAED,iEAAeoH,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnTnC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AAIQ;AAKF;AAGN;AAGG;;AAE5B;AACA;AACA;;AAKyB;AAE4B;AACA;;AAGrD;AACA;AACA;;AAEAlJ,oEAAiB,CAAE,0BAA0B,EAAE;EAC9CK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAAE;EAC7FK,IAAI,EAAE,UAAU;EAAE;EAClBC,QAAQ,EAAE,cAAc;EAAE;EAC1BkB,UAAU,EAAE;IACXI,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDsF,cAAc,EAAE;MACfvF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDuF,WAAW,EAAE;MACZxF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDwF,QAAQ,EAAE;MACTzF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDyF,aAAa,EAAE;MACd1F,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EACDpB,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDC,mBAAmB,GAAG;IACrB,OAAO;MAAE,YAAY,EAAE;IAAO,CAAC;EAChC,CAAC;EAEDC,IAAI,EAAET,2DAAU,CAAE,CAAEU,MAAM,WAAoB;IAAA,IAAlB;MAAE4C;IAAS,CAAC;IACvC,MAAM;MAAEC;IAAoB,CAAC,GAAG7C,MAAM,CAAE,mBAAmB,CAAE;IAE7D8C,eAAe,CAACF,QAAQ,GAAGA,QAAQ;;IAEnC;IACA,MAAMG,WAAW,GAAK,IAAI,KAAKF,mBAAmB,CAAEC,eAAe,CAACF,QAAQ,CAAE,CAAE,CAAC,CAAE,GAAGC,mBAAmB,CAAEC,eAAe,CAACF,QAAQ,CAAE,CAAE,CAAC,CAAE,CAACI,WAAW,GAAG,IAAM;IAE/J,OAAO;MACND,WAAW,EAAEA;IACd,CAAC;EACF,CAAC,CAAE,CAAE5C,KAAK,IAAI;IACb,MAAM;MACLyB,SAAS;MACTmB,WAAW;MACXpC,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNoF,cAAc;QACdC,WAAW;QACXC,QAAQ;QACRC;MACD,CAAC;MACDnD;IACD,CAAC,GAAGjD,KAAK;;IAET;IACAiD,aAAa,CAAE;MAAErC,QAAQ,EAAE+B,eAAe,CAAC/B;IAAS,CAAC,CAAE;IACvDqC,aAAa,CAAE;MAAEpC,MAAM,EAAE8B,eAAe,CAAC9B;IAAO,CAAC,CAAE;;IAEnD;IACA,MAAM2B,YAAY,GAAG,MAAM;MAC1B,IAAIkE,iBAAiB,GAAG,CAAC;QACxBC,cAAc,GAAG,CAAC;QAClBC,gBAAgB,GAAG,CAAC;QACpBC,oBAAoB,GAAG,EAAE;QACzBC,oBAAoB,GAAG,EAAE;;MAE1B;MACA,IAAKlE,WAAW,IAAIA,WAAW,CAACU,MAAM,GAAG,CAAC,EAAG;QAC5CV,WAAW,CAAC2D,GAAG,CAAE,CAAE/C,UAAU,EAAES,CAAC,KAAM;UACrC;UACAyC,iBAAiB,IAAIjD,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACoF,MAAM,CAAE;;UAE3D;UACAe,cAAc,IAAIlD,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACoF,MAAM,CAAE,GAAKtF,4DAAgB,CAAEkD,UAAU,CAAChD,UAAU,CAACmF,OAAO,CAAE,GAAGlC,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACoF,MAAM,CAAI;;UAEzJ;UACAiB,oBAAoB,CAACE,IAAI,CAAE;YAAEpB,OAAO,EAAEnC,UAAU,CAAChD,UAAU,CAACmF,OAAO;YAAEC,MAAM,EAAItF,4DAAgB,CAAEkD,UAAU,CAAChD,UAAU,CAACmF,OAAO,CAAE,GAAGlC,MAAM,CAAED,UAAU,CAAChD,UAAU,CAACoF,MAAM;UAAK,CAAC,CAAE;QAChL,CAAC,CAAE;QAEH,IAAKiB,oBAAoB,CAACvD,MAAM,GAAG,CAAC,EAAG;UACtC;UACAsD,gBAAgB,GAAGC,oBAAoB,CAACG,MAAM,CAAE,UAAWC,GAAG,EAAEC,KAAK,EAAG;YACvE,OAAOD,GAAG,GAAGC,KAAK,CAACtB,MAAM;UAC1B,CAAC,EAAE,CAAC,CAAE;UACNgB,gBAAgB,GAAGnD,MAAM,CAAEmD,gBAAgB,CAACO,OAAO,CAAE,CAAC,CAAE,CAAE;;UAE1D;UACAN,oBAAoB,CAACG,MAAM,CAAE,UAAWC,GAAG,EAAEC,KAAK,EAAG;YACpD,IAAK,CAACD,GAAG,CAAEC,KAAK,CAACvB,OAAO,CAAE,EAAG;cAC5BsB,GAAG,CAAEC,KAAK,CAACvB,OAAO,CAAE,GAAG;gBAAEA,OAAO,EAAEuB,KAAK,CAACvB,OAAO;gBAAEC,MAAM,EAAE;cAAE,CAAC;cAC5DkB,oBAAoB,CAACC,IAAI,CAAEE,GAAG,CAAEC,KAAK,CAACvB,OAAO,CAAE,CAAE;YAClD;YACAsB,GAAG,CAAEC,KAAK,CAACvB,OAAO,CAAE,CAACC,MAAM,IAAIsB,KAAK,CAACtB,MAAM;YAC3C,OAAOqB,GAAG;UACX,CAAC,EAAE,CAAC,CAAC,CAAE;QACR;QAEAhE,aAAa,CAAE;UAAEmD,aAAa,EAAEQ;QAAiB,CAAC,CAAE;QACpD3D,aAAa,CAAE;UAAEkD,QAAQ,EAAEE,IAAI,CAACe,SAAS,CAAEN,oBAAoB;QAAG,CAAC,CAAE;QAErE7D,aAAa,CAAE;UAAEgD,cAAc,EAAES;QAAkB,CAAC,CAAE;QACtDzD,aAAa,CAAE;UAAEiD,WAAW,EAAES;QAAe,CAAC,CAAE;MACjD;IACD,CAAC;IACDnE,YAAY,EAAE;;IAEd;IACA,OACC;MAAK,SAAS,EAAG,kBAAkB,IAAKf,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GAC3E,kEAAC,gEAAW;MACX,YAAY,EAAG,KAAO;MACtB,QAAQ,EAAG,CACV,CAAE,6BAA6B,EAAE;QAChC;MAAA,CACA,CAAE,CACD;MACH,aAAa,EAAG,CACf,6BAA6B;IAC3B,EACF,EAGDwE,cAAc,GAAG,CAAC,IAEhB;MAAO,SAAS,EAAC;IAAQ,GACxB,iFAEEA,cAAc,GAAG,CAAC,IAEhB;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,KAAK,EAAG;QAAEvC,KAAK,EAAE;MAAM;IAAG,GAE5BwC,WAAW,GAAGD,cAAc,GAAGjH,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,GAAGA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAE9E,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4F,cAAc,EAAEpF,MAAM,CAAE,CAAE,CAEpF,CAEN,EAGFsF,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,KAAK,EAAG;QAAE1C,KAAK,EAAE;MAAM;IAAG,GAC3B1E,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAClB,EACL;IAEE;IACAqH,IAAI,CAACC,KAAK,CAAEH,QAAQ,CAAE,CAACrD,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAQ1C,4DAAgB,CAAEyC,CAAC,CAAC4C,OAAO,CAAE,GAAGrF,4DAAgB,CAAE0C,CAAC,CAAC2C,OAAO,CAAI,CAAE,CAACY,GAAG,CAAE,CAAEC,KAAK,EAAEvC,CAAC,KAAM;MACjI,IAAKuC,KAAK,CAACZ,MAAM,GAAG,CAAC,EAAG;QACvB,OACC,kEAAC,uDAAO;UAAC,GAAG,EAAG3B;QAAG,GAEhB/E,wDAAO,CAAEF,mDAAE,CAAE,gBAAgB,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEmG,KAAK,CAACZ,MAAM,EAAE/E,MAAM,CAAE,EAAE,UAAU,GAAG2F,KAAK,CAACb,OAAO,GAAG,WAAW,GAAG,MAAM,CAAE,CAErI;MAEZ;IACD,CAAC,CAAE,CAEA,CAEN,EAGFO,WAAW,GAAGD,cAAc,IAE1B;MAAI,SAAS,EAAC;IAAO,GACpB;MAAI,KAAK,EAAG;QAAEvC,KAAK,EAAE;MAAM;IAAG,GAC3B1E,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CACpB,EACL,8EAEEE,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE6F,WAAW,EAAErF,MAAM,CAAE,CAAE,CAEjF,CAEN,CAEI,CAET,EAGH;MAAQ,EAAE,EAAC,cAAc;MAAC,SAAS,EAAC,0CAA0C;MAAC,OAAO,EAAG2B,YAAc;MAAC,KAAK,EAAG;QAAE6E,OAAO,EAAIpB,cAAc,GAAG,CAAC,GAAG,OAAO,GAAG;MAAS;IAAG,GAEtKjH,mDAAE,CAAE,eAAe,EAAE,OAAO,CAAE,CAEvB,CACJ;EAER,CAAC,CAAE;EAEHoB,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXI,QAAQ;QACRC,MAAM;QACNoF,cAAc;QACdC,WAAW;QACXC,QAAQ;QACRC;MACD;IACD,CAAC,GAAGpG,KAAK;IAET,OACC;MAAK,SAAS,EAAG,4BAA4B,IAAKyB,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,EAAE;IAAI,GAErF;MAAO,SAAS,EAAC;IAAsB,GACtC,iFACC,8EACC;MAAI,KAAK,EAAC;IAAK,GACZzC,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAE,CAChB,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAC1B,EACL;MAAI,KAAK,EAAC;IAAK,GACZA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,CACrB,EAEJmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,KAAK,EAAC;IAAK,GACZpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAEvB,CAEC,CACE,EACR,iFACC,kEAAC,wEAAmB,OAAG,CAChB,EACR,iFAEEiH,cAAc,GAAG,CAAC,IAEhB;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC;IAAG,GAEbC,WAAW,GAAGD,cAAc,GAAGjH,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAE,GAAGA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAE9E,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ,GAE5DlH,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE4F,cAAc,EAAEpF,MAAM,CAAE,CAAE,CAEpF,CAEN,EAGFsF,QAAQ,IAAIC,aAAa,GAAG,CAAC,IAE3B;MAAI,SAAS,EAAC;IAAU,GACvB;MAAI,OAAO,EAAC;IAAG,GACZpH,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAClB,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ;IAE5D;IACAC,IAAI,CAACC,KAAK,CAAEH,QAAQ,CAAE,CAACrD,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAQ1C,4DAAgB,CAAEyC,CAAC,CAAC4C,OAAO,CAAE,GAAGrF,4DAAgB,CAAE0C,CAAC,CAAC2C,OAAO,CAAI,CAAE,CAACY,GAAG,CAAE,CAAEC,KAAK,EAAEvC,CAAC,KAAM;MACjI,IAAKuC,KAAK,CAACZ,MAAM,GAAG,CAAC,EAAG;QACvB,OACC,kEAAC,uDAAO;UAAC,GAAG,EAAG3B;QAAG,GAEhB/E,wDAAO,CAAEF,mDAAE,CAAE,gBAAgB,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAEmG,KAAK,CAACZ,MAAM,EAAE/E,MAAM,CAAE,EAAE,UAAU,GAAG2F,KAAK,CAACb,OAAO,GAAG,WAAW,GAAG,MAAM,CAAE,CAErI;MAEZ;IACD,CAAC,CAAE,CAEA,CAEN,EAGFO,WAAW,GAAGD,cAAc,IAE1B;MAAI,SAAS,EAAC;IAAO,GACpB;MAAI,OAAO,EAAC;IAAG,GACZjH,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CACpB,EACL;MAAI,OAAO,EAAKmH,QAAQ,IAAIC,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG;IAAQ,GAE5DlH,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAE4B,QAAQ,EAAEP,wDAAY,CAAE6F,WAAW,EAAErF,MAAM,CAAE,CAAE,CAEjF,CAEN,CAEI,CACD,CAEH;EAER,CAAC;EAED+C,UAAU,EAAEqE,wDAAoBA;AACjC,CAAC,CAAE;;AAGH;AACA;AACA;;AAEAlJ,oEAAiB,CAAE,6BAA6B,EAAE;EACjDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,CAAE;EACjGK,IAAI,EAAE,UAAU;EAAE;EAClBC,QAAQ,EAAE,cAAc;EAAE;EAC1BuE,MAAM,EAAE,CAAE,0BAA0B,CAAE;EAAE;EACxCrD,UAAU,EAAE;IACXC,KAAK,EAAE;MACNC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDC,QAAQ,EAAE;MACTF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDE,MAAM,EAAE;MACPH,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDgF,OAAO,EAAE;MACRjF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDiF,MAAM,EAAE;MACPlF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDkF,UAAU,EAAE;MACXnF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDmF,QAAQ,EAAE;MACTpF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV,CAAC;IACDoF,YAAY,EAAE;MACbrF,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EAEDhB,mBAAmB,GAAG;IACrB,OAAO;MAAE,YAAY,EAAE;IAAO,CAAC;EAChC,CAAC;EAEDC,IAAI,EAAET,2DAAU,CAAE,CAAEU,MAAM,YAAoB;IAAA,IAAlB;MAAE4C;IAAS,CAAC;IACvC,MAAM;MACLqB,oBAAoB;MACpBC;IACD,CAAC,GAAGlE,MAAM,CAAE,mBAAmB,CAAE;IAEjC,OAAO;MACNoE,CAAC,EAAEF,aAAa,CAAEtB,QAAQ,EAAEqB,oBAAoB,CAAErB,QAAQ,CAAE,CAAE,GAAG;IAClE,CAAC;EACF,CAAC,CAAE,CAAEzC,KAAK,IAAI;IACb,MAAM;MACLyB,SAAS;MACTwC,CAAC;MACDzD,UAAU,EAAE;QACXC,KAAK;QACLG,QAAQ;QACRC,MAAM;QACNI,WAAW;QAAE;QACb0E,OAAO;QACPC,MAAM;QACNC,UAAU;QACVC,QAAQ;QACRC;MACD,CAAC;MACD9C;IACD,CAAC,GAAGjD,KAAK;IAETiD,aAAa,CAAE;MAAExC,KAAK,EAAEwD;IAAE,CAAC,CAAE;IAC7BhB,aAAa,CAAE;MAAErC,QAAQ,EAAE+B,eAAe,CAAC/B;IAAS,CAAC,CAAE;IACvDqC,aAAa,CAAE;MAAEpC,MAAM,EAAE8B,eAAe,CAAC9B;IAAO,CAAC,CAAE;IAEnD,IAAK,EAAE,KAAK8E,OAAO,EAAG;MACrB1C,aAAa,CAAE;QAAE0C,OAAO,EAAI,CAAC,KAAKhD,eAAe,CAAC2E,UAAU,CAAChE,MAAM,GAAG,IAAI,GAAGX,eAAe,CAAC2E,UAAU,CAAE,CAAC,CAAE,CAACJ;MAAQ,CAAC,CAAE;IACzH;IAEA,MAAMK,gBAAgB,GAAGlD,GAAG,IAAI;MAC/BpB,aAAa,CAAE;QAAE4C,UAAU,EAAIxB,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;;MAEjE;MACAmD,UAAU,CAAE,MAAM;QACjBC,QAAQ,CAACC,cAAc,CAAE,cAAc,CAAE,CAACC,KAAK,EAAE;MAClD,CAAC,EAAE,CAAC,CAAE;IACP,CAAC;IAED,MAAMC,aAAa,GAAGvD,GAAG,IAAI;MAC5BpB,aAAa,CAAE;QAAE0C,OAAO,EAAEtB;MAAI,CAAC,CAAE;MAEjCkD,gBAAgB,CAAE9D,MAAM,CAAEmC,MAAM,CAAE,GAAKnC,MAAM,CAAEmC,MAAM,CAAE,GAAGtF,4DAAgB,CAAE+D,GAAG,CAAI,CAAE;IACtF,CAAC;IAED,MAAMwD,YAAY,GAAGxD,GAAG,IAAI;MAC3BpB,aAAa,CAAE;QAAE2C,MAAM,EAAIvB,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;MAE7DkD,gBAAgB,CAAE9D,MAAM,CAAEY,GAAG,CAAE,GAAKZ,MAAM,CAAEY,GAAG,CAAE,GAAG/D,4DAAgB,CAAEqF,OAAO,CAAI,CAAE;IACpF,CAAC;IAED,MAAMmC,cAAc,GAAGzD,GAAG,IAAI;MAC7BpB,aAAa,CAAE;QAAE6C,QAAQ,EAAIzB,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;MAE/DwD,YAAY,CAAEpE,MAAM,CAAEY,GAAG,CAAE,GAAGZ,MAAM,CAAEsC,YAAY,CAAE,CAAE;IACvD,CAAC;IAED,MAAMgC,kBAAkB,GAAG1D,GAAG,IAAI;MACjCpB,aAAa,CAAE;QAAE8C,YAAY,EAAI1B,GAAG,GAAG,CAAC,GAAGZ,MAAM,CAAEY,GAAG,CAAE,GAAG;MAAK,CAAC,CAAE;MAEnEwD,YAAY,CAAEpE,MAAM,CAAEqC,QAAQ,CAAE,GAAGrC,MAAM,CAAEY,GAAG,CAAE,CAAE;IACnD,CAAC;;IAED;IACA,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGrF,mDAAE,CAAE,0BAA0B,EAAE,OAAO;IAAI,GAC7D,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,KAAK,EAAGA,mDAAE,CAAE,UAAU,EAAE,OAAO,CAAI;MACnC,WAAW,EAAGA,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAG8G,QAAU;MAClB,QAAQ,EAAGgC;IAAgB,EAC1B,EAEF,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,KAAK,EAAG5I,wDAAO,CAAEF,mDAAE,CAAE,cAAc,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,MAAM,EAAE,OAAO,CAAE,EAAE4B,QAAQ,CAAI;MACnF,WAAW,EAAG5B,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAG+G,YAAc;MACtB,QAAQ,EAAGgC;IAAoB,EAC9B,CACS,CACO,EAEpB,iFACC,iFACC,8EACC;MAAI,SAAS,EAAC;IAAO,GAEnBtH,KAAK,IACJA,KAAK,CAEH,EACL;MAAI,KAAK,EAAG;QAAEiD,KAAK,EAAE,MAAM;QAAEmB,QAAQ,EAAE;MAAQ;IAAG,GACjD,kEAAC,gEAAW;MACX,QAAQ,EAAG,CACV,CAAE,gBAAgB,EAAE;QACnBC,WAAW,EAAE9F,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE;QACzC+F,OAAO,EAAI9D,WAAW,GAAGA,WAAW,GAAG,EAAI,CAAE;MAC9C,CAAC,CAAE,CACD;;MACH,aAAa,EAAG,CACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,WAAW;IACT,EACF,CACE,EACL,8EACC,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,KAAK,EAAG/B,wDAAO,CAAEF,mDAAE,CAAE,cAAc,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,QAAQ,EAAE,OAAO,CAAE,EAAE4B,QAAQ,CAAI;MACrF,SAAS,EAAC,QAAQ;MAClB,WAAW,EAAG5B,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAG4G,MAAQ;MAChB,QAAQ,EAAGiC;IAAc,EACxB,CACE,EACL,8EACC,kEAAC,gEAAa;MACb,SAAS,EAAC,SAAS;MACnB,KAAK,EAAG3I,wDAAO,CAAEF,mDAAE,CAAE,cAAc,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,KAAK,EAAE,OAAO,CAAE,EAAE,GAAG,CAAI;MAC7E,KAAK,EAAG2G,OAAS;MACjB,OAAO,EAAK,CAAC,KAAKhD,eAAe,CAAC2E,UAAU,CAAChE,MAAM,GAAGX,eAAe,CAAC2E,UAAU,GAAK,IAAI,KAAK3B,OAAO,IAAI,CAAC,KAAKhD,eAAe,CAAC2E,UAAU,CAAChE,MAAM,GAAG,CAAE;QAAE8B,KAAK,EAAEO,OAAO;QAAEuB,KAAK,EAAEvB;MAAQ,CAAC,EAAE;QAAEP,KAAK,EAAE,IAAI;QAAE8B,KAAK,EAAE;MAAK,CAAC,CAAE,GAAG,EAAQ;MAClO,QAAQ,EAAGU;IAAe,EACzB,CACE,EACL,8EACC,kEAAC,8DAAW;MACX,IAAI,EAAC,QAAQ;MACb,QAAQ,EAAC,UAAU;MACnB,KAAK,EAAGhH,QAAU;MAClB,SAAS,EAAC,YAAY;MACtB,WAAW,EAAG5B,mDAAE,CAAE,GAAG,EAAE,OAAO,CAAI;MAClC,KAAK,EAAG6G;IAAY,EACnB,CACE,CACD,CACE,CACD,CACN;EAEL,CAAC,CAAE;EAEHzF,IAAI,EAAEJ,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACXC,KAAK;QACLI,MAAM;QACN8E,OAAO;QACPC;MACD;IACD,CAAC,GAAG5F,KAAK;IAET,OACC,8EACC;MAAI,KAAK,EAAC;IAAK,GAEbS,KAAK,IACJA,KAAK,CAEH,EACL,8EACC,kEAAC,wEAAmB,OAAG,CACnB,EACL,8EAEEmF,MAAM,IAEJvF,wDAAY,CAAEuF,MAAM,EAAE/E,MAAM,CAC5B,CAEC,EAEJ8E,OAAO,IAAMrF,4DAAgB,CAAEqF,OAAO,CAAE,GAAGC,MAAM,GAAK,CAAC,IAErD,8EACC,kEAAC,uDAAO,QAEN1G,wDAAO,CAAEF,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE,EAAEqB,wDAAY,CAAIC,4DAAgB,CAAEqF,OAAO,CAAE,GAAGC,MAAM,EAAI/E,MAAM,CAAE,EAAE,UAAU,GAAG8E,OAAO,GAAG,WAAW,CAAE,CAEnI,CAEX,CAEC;EAEP,CAAC;EAED/B,UAAU,EAAEoE,wDAAoBA;AACjC,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;ACvmBH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AAI7B;AACoC;AAG7DjJ,oEAAiB,CAAE,mCAAmC,EAAE;EACvDK,KAAK,EAAEF,wDAAO,CAAEF,mDAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,OAAO,EAAE,OAAO,CAAE,EAAEA,mDAAE,CAAE,aAAa,EAAE,OAAO,CAAE,CAAE;EACnGK,IAAI,EAAE,cAAc;EAAE;EACtBC,QAAQ,EAAE,cAAc;EAAE;EAC1BC,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDE,IAAI,EAAEI,KAAK,IAAI;IACd;IACA,OACC,kEAAC,sEAAgB;MAAC,KAAK,EAAC;IAAmC,EAAG;EAEhE,CAAC;EAEDI,IAAI,EAAEJ,KAAK,IAAI;IACd;IACA,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;;;;;;ACtCH;;AAEoD;AACf;AAC6B;AACL;AAE7D,MAAMoI,UAAU,GAAG,MAClB,kEAAC,4EAA0B;EAC1B,SAAS,EAAC,4BAA4B;EACtC,KAAK,EAAEpJ,mDAAE,CAAC,aAAa,EAAE,OAAO;AAAE,GAElC,6EACC;EACC,IAAI,EACH2D,eAAe,CAACuC,OAAO,GACvB;AACA,GAEAlG,mDAAE,CAAC,6BAA6B,EAAE,OAAO,CAAC,CACxC,CACD,EACJ;EAAI,SAAS,EAAC;AAAS,GACtB;EAAI,KAAK,EAAEA,mDAAE,CAAC,gBAAgB,EAAE,OAAO;AAAE,GACxC,kEAAC,sEAAgB;EAAC,KAAK,EAAC;AAA6B,EAAG,CACpD,EACL;EAAI,KAAK,EAAEA,mDAAE,CAAC,MAAM,EAAE,OAAO;AAAE,GAC9B,kEAAC,sEAAgB;EAChB,KAAK,EAAC,wBAAwB;EAC9B,UAAU,EAAE;IAAEqJ,QAAQ,EAAE;EAAO;AAAE,EAChC,CACE,EACL;EAAI,KAAK,EAAErJ,mDAAE,CAAC,SAAS,EAAE,OAAO;AAAE,GACjC,kEAAC,sEAAgB;EAChB,KAAK,EAAC,wBAAwB;EAC9B,UAAU,EAAE;IAAEqJ,QAAQ,EAAE;EAAU;AAAE,EACnC,CACE,EACL;EAAI,KAAK,EAAErJ,mDAAE,CAAC,KAAK,EAAE,OAAO;AAAE,GAC7B,kEAAC,sEAAgB;EAChB,KAAK,EAAC,wBAAwB;EAC9B,UAAU,EAAE;IAAEqJ,QAAQ,EAAE;EAAM;AAAE,EAC/B,CACE,EACL;EAAI,KAAK,EAAErJ,mDAAE,CAAC,UAAU,EAAE,OAAO;AAAE,GAClC,kEAAC,sEAAgB;EAChB,KAAK,EAAC,wBAAwB;EAC9B,UAAU,EAAE;IAAEqJ,QAAQ,EAAE;EAAW;AAAE,EACpC,CACE,EACL;EAAI,KAAK,EAAErJ,mDAAE,CAAC,OAAO,EAAE,OAAO;AAAE,GAC/B,kEAAC,sEAAgB;EAChB,KAAK,EAAC,wBAAwB;EAC9B,UAAU,EAAE;IAAEqJ,QAAQ,EAAE;EAAW;AAAE,EACpC,CACE,CACD,CAEN;AACDH,kEAAc,CAAC,aAAa,EAAE;EAAEI,MAAM,EAAEF;AAAW,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC3DrD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEsD;AACjB;AACuB;AAK7B;AAC8B;AAG7DrJ,oEAAiB,CAAE,wBAAwB,EAAE;EAC5CK,KAAK,EAAEJ,mDAAE,CAAE,WAAW,EAAE,OAAO,CAAE;EACjCK,IAAI,EAAE,eAAe;EAAE;EACvBC,QAAQ,EAAE,cAAc;EAAE;EAC1BkB,UAAU,EAAE;IACX6H,QAAQ,EAAE;MACT3H,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACV;EACD,CAAC;EACDpB,QAAQ,EAAE;IACTC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE;EACP,CAAC;EAEDE,IAAI,EAAEI,KAAK,IAAI;IACd,MAAM;MACLyB,SAAS;MACTjB,UAAU,EAAE;QACX6H;MACD,CAAC;MACDpF;IACD,CAAC,GAAGjD,KAAK;IAET,MAAMuI,cAAc,GAAGlE,GAAG,IAAI;MAC7BpB,aAAa,CAAE;QAAEoF,QAAQ,EAAEhE;MAAI,CAAC,CAAE;IACnC,CAAC;IAED,OACC,kIACC,kEAAC,sEAAiB,QACjB,kEAAC,4DAAS;MAAC,KAAK,EAAGrF,mDAAE,CAAE,WAAW,EAAE,OAAO;IAAI,GAC9C,kEAAC,gEAAa;MACb,KAAK,EAAGA,mDAAE,CAAE,SAAS,EAAE,OAAO,CAAI;MAClC,IAAI,EAAGA,mDAAE,CAAE,2CAA2C,EAAE,OAAO,CAAI;MACnE,OAAO,EAAG2D,eAAe,CAAC6F,eAAiB;MAC3C,KAAK,EAAGH,QAAU;MAClB,QAAQ,EAAGE;IAAgB,EAC1B,CACS,CACO,EAEpB,kEAAC,2DAAQ,QACR,kEAAC,sEAAgB;MAAC,KAAK,EAAC,wBAAwB;MAAC,UAAU,EAAGvI,KAAK,CAACQ;IAAY,EAAG,CACzE,CACT;EAEL,CAAC;EAEDJ,IAAI,EAAEJ,KAAK,IAAI;IACd;IACA,OAAO,IAAI;EACZ;AACD,CAAC,CAAE;;;;;;;;;;;;;;;;;AC1EI,MAAMyI,WAAW,GAAG,MAAM;EAChC,OAAO9F,eAAe,CAAC/B,QAAQ;AAChC,CAAC;AAEM,MAAMP,YAAY,GAAG,UAAEgE,GAAG,EAAqB;EAAA,IAAnBqE,CAAC,uEAAGjD,SAAS;EAC/C,OAAOpB,GAAG,CAAClE,cAAc,CAAEuI,CAAC,EAAE;IAAE,uBAAuB,EAAE,CAAC;IAAE,uBAAuB,EAAE;EAAE,CAAC,CAAE;AAC3F,CAAC;AAEM,MAAMpI,gBAAgB,GAAG+D,GAAG,IAAI;EACtC,OAAOsE,UAAU,CAAEtE,GAAG,CAAE,GAAG,GAAG;AAC/B,CAAC;AAEM,MAAM9B,UAAU,GAAGqG,CAAC,IAAI;EAC9BA,CAAC,GAAG,IAAI1I,IAAI,CAAE0I,CAAC,CAAE,IAAI,IAAI1I,IAAI,EAAE;EAC/B,IAAI2I,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;EACtB,OAAOA,CAAC,CAAEC,IAAI,CAACC,KAAK,CAAEH,CAAC,CAACI,QAAQ,EAAE,GAAG,CAAC,CAAE,CAAE;AAC3C,CAAC;;;;;;;;;;AChBD;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;;AAEoC;AAEF;AACH;AACA;AACG;AACO;AACI;AACb;AAEA;AACH;AACA;AACO;AACN;AACS;AAEJ;AACE;AAEJ","sources":["webpack://wordpress-blocks-boilerplate/./src/_accounting/actions/index.js","webpack://wordpress-blocks-boilerplate/./src/_accounting/table/deprecatedInner.js","webpack://wordpress-blocks-boilerplate/./src/_accounting/table/deprecatedOuter.js","webpack://wordpress-blocks-boilerplate/./src/_accounting/table/index.js","webpack://wordpress-blocks-boilerplate/./src/_deprecated/header/index.js","webpack://wordpress-blocks-boilerplate/./src/_invoice/actions/index.js","webpack://wordpress-blocks-boilerplate/./src/_invoice/date/index.js","webpack://wordpress-blocks-boilerplate/./src/_invoice/duedate/index.js","webpack://wordpress-blocks-boilerplate/./src/_invoice/invoice-number/index.js","webpack://wordpress-blocks-boilerplate/./src/_invoice/meta/index.js","webpack://wordpress-blocks-boilerplate/./src/_invoice/paymentinformation/index.js","webpack://wordpress-blocks-boilerplate/./src/_invoice/table/deprecatedInner.js","webpack://wordpress-blocks-boilerplate/./src/_invoice/table/deprecatedOuter.js","webpack://wordpress-blocks-boilerplate/./src/_invoice/table/index.js","webpack://wordpress-blocks-boilerplate/./src/_quote/actions/index.js","webpack://wordpress-blocks-boilerplate/./src/_quote/date/index.js","webpack://wordpress-blocks-boilerplate/./src/_quote/information/index.js","webpack://wordpress-blocks-boilerplate/./src/_quote/meta/index.js","webpack://wordpress-blocks-boilerplate/./src/_quote/table/deprecatedInner.js","webpack://wordpress-blocks-boilerplate/./src/_quote/table/deprecatedOuter.js","webpack://wordpress-blocks-boilerplate/./src/_quote/table/index.js","webpack://wordpress-blocks-boilerplate/./src/_quote/validuntildate/index.js","webpack://wordpress-blocks-boilerplate/./src/_settings/panel/index.js","webpack://wordpress-blocks-boilerplate/./src/_settings/theme-mod/index.js","webpack://wordpress-blocks-boilerplate/./src/functions.js","webpack://wordpress-blocks-boilerplate/external window [\"wp\",\"blockEditor\"]","webpack://wordpress-blocks-boilerplate/external window [\"wp\",\"blocks\"]","webpack://wordpress-blocks-boilerplate/external window [\"wp\",\"components\"]","webpack://wordpress-blocks-boilerplate/external window [\"wp\",\"data\"]","webpack://wordpress-blocks-boilerplate/external window [\"wp\",\"editPost\"]","webpack://wordpress-blocks-boilerplate/external window [\"wp\",\"element\"]","webpack://wordpress-blocks-boilerplate/external window [\"wp\",\"i18n\"]","webpack://wordpress-blocks-boilerplate/external window [\"wp\",\"plugins\"]","webpack://wordpress-blocks-boilerplate/external window [\"wp\",\"serverSideRender\"]","webpack://wordpress-blocks-boilerplate/webpack/bootstrap","webpack://wordpress-blocks-boilerplate/webpack/runtime/compat get default export","webpack://wordpress-blocks-boilerplate/webpack/runtime/define property getters","webpack://wordpress-blocks-boilerplate/webpack/runtime/hasOwnProperty shorthand","webpack://wordpress-blocks-boilerplate/webpack/runtime/make namespace object","webpack://wordpress-blocks-boilerplate/./src/index.js"],"sourcesContent":["/**\n * Accounting Actions\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport {\n\tregisterBlockType,\n} from '@wordpress/blocks';\nimport {\n\t__,\n\t_n,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\twithSelect,\n} from '@wordpress/data';\n\n\nregisterBlockType( 'billy-blocks/accounting-actions', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Accounting', 'billy' ), __( 'Actions', 'billy' ) ),\n\ticon: 'menu-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps() {\n\t\treturn { 'data-align': 'wide' };\n\t},\n\n\tedit: withSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostModifiedDate: select( 'core/editor' ).getEditedPostAttribute( 'modified' ),\n\t\t};\n\t} )( props => {\n\t\tconst {\n\t\t\tpostModifiedDate,\n\t\t} = props;\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<div className=\"components-placeholder\" style={ { minHeight: 'auto' } }>\n\t\t\t\t<small>\n\t\t\t\t\t{\n\t\t\t\t\t\tsprintf( __( '%1$s: %2$s', 'billy' ), __( 'Last modified', 'billy' ), new Date( postModifiedDate ).toLocaleString() )\n\t\t\t\t\t}\n\t\t\t\t</small>\n\t\t\t</div>\n\t\t);\n\t} ),\n\n\tsave: props => {\n\t\treturn null;\n\t},\n} );\n","/**\n * Accounting Table (Inner): Deprecated\n * https://developer.wordpress.org/block-editor/developers/block-api/block-deprecation\n */\n\n/**\n * WordPress dependencies\n */\n\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\n\n\n/**\n * Internal dependencies\n */\n\nimport {\n\tformatNumber,\n\tpercentToDecimal,\n} from '../../functions';\n\n\nconst deprecatedAccountingInner = [\n\t// < v1.2.0 (20200824)\n\t{\n\t\tattributes: {\n\t\t\tindex: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '0',\n\t\t\t},\n\t\t\tcurrency: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tlocale: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tdate: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tquarter: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\treference: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tdescription: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tearning: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\texpense: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttax: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tpostUUID: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tpostTitle: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tpostLink: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tpostType: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\t\n\t\tsave: props => {\n\t\t\tconst {\n\t\t\t\tclassName,\n\t\t\t\tattributes: {\n\t\t\t\t\tindex,\n\t\t\t\t\tlocale,\n\t\t\t\t\tdate,\n\t\t\t\t\tquarter,\n\t\t\t\t\tdescription,\n\t\t\t\t\tearning,\n\t\t\t\t\texpense,\n\t\t\t\t\ttax,\n\t\t\t\t\treference,\n\t\t\t\t\tpostLink,\n\t\t\t\t},\n\t\t\t} = props;\n\t\n\t\t\treturn (\n\t\t\t\t<tr data-date={ date && new Date( date ).toISOString().substring( 0, 10 ) } data-quarter={ quarter && sprintf( __( 'Q%s', 'billy' ), quarter ) } data-reference={ reference && reference } data-earning={ earning > 0 ? earning : null } data-expense={ expense > 0 ? expense : null } data-tax={ tax > 0 ? tax : null }>\n\t\t\t\t\t<th className=\"index\" scope=\"row\">\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tindex &&\n\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t}\n\t\t\t\t\t</th>\n\t\t\t\t\t<td className=\"date\" data-value={ date && new Date( date ).toISOString().substring( 0, 10 ) }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdate &&\n\t\t\t\t\t\t\t\tnew Date( date ).toISOString().substring( 0, 10 )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<sub>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tquarter &&\n\t\t\t\t\t\t\t\t\tsprintf( __( 'Q%s', 'billy' ), quarter )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</sub>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td className=\"description\">\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription &&\n\t\t\t\t\t\t\t\tdescription\n\t\t\t\t\t\t}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td className=\"reference\">\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treference && !postLink &&\n\t\t\t\t\t\t\t\treference\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treference && postLink &&\n\t\t\t\t\t\t\t\t<a href={ postLink }>{ reference }</a>\n\t\t\t\t\t\t}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td className=\"amount earning\" data-value={ earning > 0 ? earning : null }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tearning && earning > 0 &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tformatNumber( earning, locale )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td className=\"amount expense\" data-value={ expense > 0 ? expense : null }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\texpense && expense > 0 &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tformatNumber( expense, locale )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td className=\"amount tax\" data-value={ tax > 0 ? tax : null }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttax && tax > 0 &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tformatNumber( tax, locale )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t);\n\t\n\t\t},\n\t}\n];\n\nexport default deprecatedAccountingInner;","/**\n * Accounting Table (Outer): Deprecated\n * https://developer.wordpress.org/block-editor/developers/block-api/block-deprecation\n */\n\n/**\n * WordPress dependencies\n */\n\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\tInnerBlocks,\n} from '@wordpress/blockEditor';\n\n\n/**\n * Internal dependencies\n */\n\nimport {\n\tformatNumber,\n\tpercentToDecimal,\n} from '../../functions';\n\n\nconst deprecatedAccountingOuter = [\n\t// < v1.5.1 (202210)\n\t{\n\t\tattributes: {\n\t\t\tcurrency: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tlocale: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTotalEarnings: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTotalExpenses: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTaxEarnings: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTaxExpenses: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\t\n\t\tsave: props => {\n\t\t\tconst {\n\t\t\t\tclassName,\n\t\t\t\tattributes: {\n\t\t\t\t\tcurrency,\n\t\t\t\t\tlocale,\n\t\t\t\t\tamountTotalEarnings,\n\t\t\t\t\tamountTotalExpenses,\n\t\t\t\t\tamountTaxEarnings,\n\t\t\t\t\tamountTaxExpenses,\n\t\t\t\t},\n\t\t\t} = props;\n\t\n\t\t\treturn (\n\t\t\t\t<div className={ 'alignwide' + ( className ? ' ' + className : '' ) }>\n\t\t\t\t\t<table className=\"table wp-block-table\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"index\">\n\t\t\t\t\t\t\t\t\t{ __( '#', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"date\">\n\t\t\t\t\t\t\t\t\t{ __( 'Date', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"description\">\n\t\t\t\t\t\t\t\t\t{ __( 'Description', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"reference\">\n\t\t\t\t\t\t\t\t\t{ __( 'Reference', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort earnings\" data-sort=\"earning\">\n\t\t\t\t\t\t\t\t\t{ __( 'Earnings', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort expenses\" data-sort=\"expense\">\n\t\t\t\t\t\t\t\t\t{ __( 'Expenses', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"tax\">\n\t\t\t\t\t\t\t\t\t{ __( 'Taxes', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody className=\"list\">\n\t\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t<tfoot>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTotalEarnings > 0 || amountTotalExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"5\" className=\"alignright\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ sprintf( __( '%1$s / %2$s', 'billy' ), __( 'Earnings', 'billy' ), __( 'Expenses', 'billy' ) ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum earnings\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotalEarnings, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum expenses\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotalExpenses, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTotalEarnings > 0 || amountTotalExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"5\" className=\"alignright\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Profit', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" className=\"profit\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( ( amountTotalEarnings - amountTotalExpenses ), locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTaxEarnings > 0 || amountTaxExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"5\" className=\"alignright\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ sprintf( __( '%1$s (%2$s / %3$s)', 'billy' ), __( 'Taxes', 'billy' ) , __( 'Earnings', 'billy' ), __( 'Expenses', 'billy' ) ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum tax-earnings\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTaxEarnings, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum tax-expenses\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTaxExpenses, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tfoot>\n\t\t\t\t\t</table>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t// < v1.3 (202102)\n\t{\n\t\tattributes: {\n\t\t\tcurrency: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tlocale: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTotalEarnings: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTotalExpenses: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTaxEarnings: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTaxExpenses: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\t\n\t\tsave: props => {\n\t\t\tconst {\n\t\t\t\tclassName,\n\t\t\t\tattributes: {\n\t\t\t\t\tcurrency,\n\t\t\t\t\tlocale,\n\t\t\t\t\tamountTotalEarnings,\n\t\t\t\t\tamountTotalExpenses,\n\t\t\t\t\tamountTaxEarnings,\n\t\t\t\t\tamountTaxExpenses,\n\t\t\t\t},\n\t\t\t} = props;\n\t\n\t\t\treturn (\n\t\t\t\t<div className={ 'alignwide' + ( className ? ' ' + className : '' ) }>\n\t\t\t\t\t<table className=\"table wp-block-table\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"index\">\n\t\t\t\t\t\t\t\t\t{ __( '#', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"date\">\n\t\t\t\t\t\t\t\t\t{ __( 'Date', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"description\">\n\t\t\t\t\t\t\t\t\t{ __( 'Description', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"reference\">\n\t\t\t\t\t\t\t\t\t{ __( 'Reference', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort earnings\" data-sort=\"earning\">\n\t\t\t\t\t\t\t\t\t{ __( 'Earnings', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort expenses\" data-sort=\"expense\">\n\t\t\t\t\t\t\t\t\t{ __( 'Expenses', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"tax\">\n\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody className=\"list\">\n\t\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t<tfoot>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTotalEarnings > 0 || amountTotalExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"4\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ sprintf( __( '%1$s / %2$s', 'billy' ), __( 'Earnings', 'billy' ), __( 'Expenses', 'billy' ) ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum earnings\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotalEarnings, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum expenses\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotalExpenses, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTotalEarnings > 0 || amountTotalExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"4\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Profit', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" className=\"profit\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( ( amountTotalEarnings - amountTotalExpenses ), locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTaxEarnings > 0 || amountTaxExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"4\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ sprintf( __( '%1$s (%2$s / %3$s)', 'billy' ), __( 'Taxes', 'billy' ) , __( 'Earnings', 'billy' ), __( 'Expenses', 'billy' ) ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum tax-earnings\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTaxEarnings, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum tax-expenses\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTaxExpenses, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tfoot>\n\t\t\t\t\t</table>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t// < v1.2.4 (202012)\n\t{\n\t\tattributes: {\n\t\t\tcurrency: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tlocale: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTotalEarnings: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTotalExpenses: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTaxEarnings: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTaxExpenses: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\t\n\t\tsave: props => {\n\t\t\tconst {\n\t\t\t\tclassName,\n\t\t\t\tattributes: {\n\t\t\t\t\tcurrency,\n\t\t\t\t\tlocale,\n\t\t\t\t\tamountTotalEarnings,\n\t\t\t\t\tamountTotalExpenses,\n\t\t\t\t\tamountTaxEarnings,\n\t\t\t\t\tamountTaxExpenses,\n\t\t\t\t},\n\t\t\t} = props;\n\t\n\t\t\treturn (\n\t\t\t\t<div className={ 'alignwide' + ( className ? ' ' + className : '' ) }>\n\t\t\t\t\t<table className=\"table wp-block-table\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"index\">\n\t\t\t\t\t\t\t\t\t{ __( '#', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"date\">\n\t\t\t\t\t\t\t\t\t{ __( 'Date', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"description\">\n\t\t\t\t\t\t\t\t\t{ __( 'Description', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"reference\">\n\t\t\t\t\t\t\t\t\t{ __( 'Reference', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort earnings\" data-sort=\"earning\">\n\t\t\t\t\t\t\t\t\t{ __( 'Earning', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort expenses\" data-sort=\"expense\">\n\t\t\t\t\t\t\t\t\t{ __( 'Expense', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"tax\">\n\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody className=\"list\">\n\t\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t<tfoot>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTotalEarnings > 0 || amountTotalExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"4\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ sprintf( __( '%1$s / %2$s', 'billy' ), __( 'Earnings', 'billy' ), __( 'Expenses', 'billy' ) ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum earnings\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotalEarnings, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum expenses\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotalExpenses, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTotalEarnings > 0 || amountTotalExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"4\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Profit', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" className=\"profit\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( ( amountTotalEarnings - amountTotalExpenses ), locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTaxEarnings > 0 || amountTaxExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"4\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ sprintf( __( '%1$s (%2$s / %3$s)', 'billy' ), __( 'Taxes', 'billy' ) , __( 'Earnings', 'billy' ), __( 'Expenses', 'billy' ) ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum tax-earnings\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTaxEarnings, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className=\"sum tax-expenses\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTaxExpenses, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tfoot>\n\t\t\t\t\t</table>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t}\n];\n\nexport default deprecatedAccountingOuter;","/**\n * Accounting Table\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport {\n\tregisterBlockType,\n} from '@wordpress/blocks';\nimport {\n\t__,\n\t_n,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tInnerBlocks,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tTextControl,\n\tDatePicker, // https://developer.wordpress.org/block-editor/components/date-time\n} from '@wordpress/components';\nimport {\n\tdispatch,\n\twithSelect,\n} from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\n\nimport {\n\tgetQuarter,\n\tformatNumber,\n} from '../../functions';\n\nimport deprecatedAccountingOuter from './deprecatedOuter';\nimport deprecatedAccountingInner from './deprecatedInner';\n\nvar updateTotals;\n\n\n/**\n * 1. Outer Block\n */\n\nregisterBlockType( 'billy-blocks/accounting-table', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Accounting', 'billy' ), __( 'Table', 'billy' ) ),\n\ticon: 'menu-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tattributes: {\n\t\tcurrency: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tlocale: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tamountTotalEarnings: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tamountTotalExpenses: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tamountTaxEarnings: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tamountTaxExpenses: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps() {\n\t\treturn { 'data-align': 'wide' };\n\t},\n\n\tedit: withSelect( ( select, { clientId } ) => {\n\t\tconst { getBlocksByClientId } = select( 'core/block-editor' );\n\n\t\tglobalDataBilly.clientId = clientId;\n\n\t\t// Get child blocks\n\t\tconst childBlocks = getBlocksByClientId( clientId )[ 0 ].innerBlocks;\n\n\t\t// Sort array based on date attribute\n\t\tchildBlocks.sort( ( a, b ) => {\n\t\t\treturn new Date( a.attributes.date ) - new Date( b.attributes.date )\n\t\t} );\n\n\t\treturn {\n\t\t\tchildBlocks: childBlocks,\n\t\t};\n\t} )( props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tchildBlocks,\n\t\t\tattributes: {\n\t\t\t\tcurrency,\n\t\t\t\tlocale,\n\t\t\t\tamountTotalEarnings,\n\t\t\t\tamountTotalExpenses,\n\t\t\t\tamountTaxEarnings,\n\t\t\t\tamountTaxExpenses,\n\t\t\t},\n\t\t\tsetAttributes,\n\t\t} = props;\n\n\t\t//console.log(childBlocks);\n\t\tsetAttributes( { currency: globalDataBilly.currency } );\n\t\tsetAttributes( { locale: globalDataBilly.locale } );\n\n\t\t// Calculate values and update attributes\n\t\tupdateTotals = () => {\n\t\t\tvar amountEarningsSum = 0,\n\t\t\t\tamountExpensesSum = 0,\n\t\t\t\tamountTaxEarningsSum = 0,\n\t\t\t\tamountTaxExpensesSum = 0;\n\n\t\t\tif ( childBlocks && childBlocks.length > 0 ) {\n\t\t\t\tchildBlocks.forEach( ( childBlock ) => {\n\t\t\t\t\tamountEarningsSum += Number( childBlock.attributes.earning );\n\t\t\t\t\tamountExpensesSum += Number( childBlock.attributes.expense );\n\n\t\t\t\t\tif ( childBlock.attributes.earning ) {\n\t\t\t\t\t\tamountTaxEarningsSum += Number( childBlock.attributes.tax );\n\t\t\t\t\t}\n\t\t\t\t\tif ( childBlock.attributes.expense ) {\n\t\t\t\t\t\tamountTaxExpensesSum += Number( childBlock.attributes.tax );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tsetAttributes( { amountTotalEarnings: amountEarningsSum } );\n\t\t\tsetAttributes( { amountTotalExpenses: amountExpensesSum } );\n\n\t\t\tsetAttributes( { amountTaxEarnings: amountTaxEarningsSum } );\n\t\t\tsetAttributes( { amountTaxExpenses: amountTaxExpensesSum } );\n\t\t}\n\t\tupdateTotals();\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Actions', 'billy' ) }>\n\t\t\t\t\t\t<button id=\"updatetotals\" className=\"components-button is-secondary is-button\" onClick={ updateTotals }>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t__( 'Update Totals', 'billy' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t\n\t\t\t\t<div className={ 'accountingtable-block' + ( className ? ' ' + className : '' ) }>\n\t\t\t\t\t<InnerBlocks\n\t\t\t\t\t\ttemplateLock={ false }\n\t\t\t\t\t\ttemplate={ [\n\t\t\t\t\t\t\t[ 'billy-blocks/accounting-tablerow', {\n\t\t\t\t\t\t\t\t//placeholder: 'Enter content…',\n\t\t\t\t\t\t\t} ],\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tallowedBlocks={ [\n\t\t\t\t\t\t\t'billy-blocks/accounting-tablerow',\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\n\t\t\t\t\t<table className=\"totals\">\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tamountTotalEarnings > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"earnings\">\n\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Earnings', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotalEarnings, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tamountTotalExpenses > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"expenses\">\n\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Expenses', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotalExpenses, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTotalEarnings > 0 || amountTotalExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"profit\">\n\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Profit', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t<td style={ { borderTop: '2px solid' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( ( amountTotalEarnings - amountTotalExpenses ), locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t( amountTaxEarnings > 0 || amountTaxExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<tr className=\"taxes-earnings\">\n\t\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ sprintf( __( 'Taxes (%s)', 'billy' ), __( 'Earnings', 'billy' ) ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTaxEarnings, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t<tr className=\"taxes-expenses\">\n\t\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ sprintf( __( 'Taxes (%s)', 'billy' ), __( 'Expenses', 'billy' ) ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTaxExpenses, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t} ),\n\n\tsave: props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: {\n\t\t\t\tcurrency,\n\t\t\t\tlocale,\n\t\t\t\tamountTotalEarnings,\n\t\t\t\tamountTotalExpenses,\n\t\t\t\tamountTaxEarnings,\n\t\t\t\tamountTaxExpenses,\n\t\t\t},\n\t\t} = props;\n\n\t\treturn (\n\t\t\t<div className={ 'alignwide' + ( className ? ' ' + className : '' ) }>\n\t\t\t\t<table className=\"table wp-block-table\">\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"index\">\n\t\t\t\t\t\t\t\t{ __( '#', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"date\">\n\t\t\t\t\t\t\t\t{ __( 'Date', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"description\">\n\t\t\t\t\t\t\t\t{ __( 'Description', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"reference\">\n\t\t\t\t\t\t\t\t{ __( 'Reference', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort earnings\" data-sort=\"earning\">\n\t\t\t\t\t\t\t\t{ __( 'Earnings', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort expenses\" data-sort=\"expense\">\n\t\t\t\t\t\t\t\t{ __( 'Expenses', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope=\"col\" className=\"sort\" data-sort=\"tax\">\n\t\t\t\t\t\t\t\t{ __( 'Taxes', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody className=\"list\">\n\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t</tbody>\n\t\t\t\t\t<tfoot>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t( amountTotalEarnings > 0 || amountTotalExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th colSpan=\"5\">\n\t\t\t\t\t\t\t\t\t\t\t{ sprintf( __( '%1$s / %2$s', 'billy' ), __( 'Earnings', 'billy' ), __( 'Expenses', 'billy' ) ) }\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t<td className=\"sum earnings\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotalEarnings, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td className=\"sum expenses\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotalExpenses, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t( amountTotalEarnings > 0 || amountTotalExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th colSpan=\"5\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Profit', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" className=\"profit\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( ( amountTotalEarnings - amountTotalExpenses ), locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t( amountTaxEarnings > 0 || amountTaxExpenses > 0 ) &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th colSpan=\"5\">\n\t\t\t\t\t\t\t\t\t\t\t{ sprintf( __( '%1$s (%2$s / %3$s)', 'billy' ), __( 'Taxes', 'billy' ) , __( 'Earnings', 'billy' ), __( 'Expenses', 'billy' ) ) }\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t<td className=\"sum tax-earnings\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTaxEarnings, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td className=\"sum tax-expenses\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTaxExpenses, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</tfoot>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t);\n\t},\n\n\tdeprecated: deprecatedAccountingOuter,\n} );\n\n\n/**\n * 2. Inner Block\n */\n\nregisterBlockType( 'billy-blocks/accounting-tablerow', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Accounting', 'billy' ), __( 'Table Row', 'billy' ) ),\n\ticon: 'menu-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tparent: [ 'billy-blocks/accounting-table' ], // Only allow in outer block\n\tattributes: {\n\t\tindex: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '0',\n\t\t},\n\t\tcurrency: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tlocale: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tdate: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tquarter: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\treference: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tearning: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\texpense: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\ttax: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tpostUUID: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tpostTitle: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tpostLink: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tpostType: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tgetEditWrapperProps() {\n\t\treturn { 'data-align': 'wide' };\n\t},\n\n\tedit: withSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockIndex,\n\t\t} = select( 'core/block-editor' );\n\n\t\treturn {\n\t\t\tclientId: clientId,\n\t\t\trootClientId: getBlockRootClientId( clientId ),\n\t\t\ti: getBlockIndex( clientId, getBlockRootClientId( clientId ) ) + 1,\n\t\t}\n\t} )( props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tclientId,\n\t\t\trootClientId,\n\t\t\ti,\n\t\t\tattributes: {\n\t\t\t\tindex,\n\t\t\t\tcurrency,\n\t\t\t\tlocale,\n\t\t\t\tdescription, // < v1.2.0\n\t\t\t\tdate,\n\t\t\t\tquarter,\n\t\t\t\tearning,\n\t\t\t\texpense,\n\t\t\t\ttax,\n\t\t\t\treference,\n\t\t\t\tpostUUID,\n\t\t\t\tpostTitle,\n\t\t\t\tpostLink,\n\t\t\t\tpostType,\n\t\t\t},\n\t\t\tsetAttributes,\n\t\t} = props;\n\n\t\tsetAttributes( { index: i } );\n\t\tsetAttributes( { currency: globalDataBilly.currency } );\n\t\tsetAttributes( { locale: globalDataBilly.locale } );\n\n\t\tif ( '' === date ) {\n\t\t\tsetAttributes( { date: new Date().toISOString().substring( 0, 10 ) } ); // Current date\n\t\t\tsetAttributes( { quarter: getQuarter( new Date().toISOString().substring( 0, 10 ) ) } ); // Current date\n\t\t}\n\n\t\tconst reOrder = () => {\n\t\t\t// Reorder by date (move up/down): see \"childBlocks.sort()\"\n\t\t\tdispatch( 'core/block-editor' ).moveBlockToPosition( clientId, rootClientId, rootClientId, i );\n\t\t}\n\n\t\tconst updateQuarter = val => {\n\t\t\t// Get quarter from datestring\n\t\t\tsetAttributes( { quarter: Number( getQuarter( val ) ) } );\n\t\t};\n\n\t\tconst updateDate = val => {\n\t\t\t//console.log( val );\n\t\t\tsetAttributes( { date: val } );\n\n\t\t\t// Get quarter from datestring\n\t\t\tupdateQuarter( val );\n\n\t\t\treOrder();\n\t\t};\n\n\t\tconst updateReference = val => {\n\t\t\tsetAttributes( { reference: val } );\n\t\t}\n\n\t\tconst updateEarning = val => {\n\t\t\tsetAttributes( { expense: '' } ); // Clear value\n\n\t\t\tsetAttributes( { earning: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\tupdateTotals();\n\t\t}\n\n\t\tconst updateExpense = val => {\n\t\t\tsetAttributes( { earning: '' } ); // Clear value\n\n\t\t\tsetAttributes( { expense: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\tupdateTotals();\n\t\t}\n\n\t\tconst updateTax = val => {\n\t\t\tsetAttributes( { tax: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\tupdateTotals();\n\t\t}\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t{\n\t\t\t\t\t\t!postUUID &&\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t<PanelBody title={ __( 'Date', 'billy' ) }>\n\t\t\t\t\t\t\t\t\t<DatePicker\n\t\t\t\t\t\t\t\t\t\tcurrentDate={ date }\n\t\t\t\t\t\t\t\t\t\tonChange={ updateDate }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tpostUUID && postLink &&\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t<PanelBody title={ sprintf( __( 'Reference: %s', 'billy' ), ( postType ? postType.charAt(0).toUpperCase() + postType.substring(1) : __( 'Post', 'billy' ) ) ) }>\n\t\t\t\t\t\t\t\t\t<p><a href={ postLink }>{ ( postTitle ? postTitle : postLink ) }</a></p>\n\t\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<table>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th className=\"index\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tindex &&\n\t\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<td className=\"date\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdate &&\n\t\t\t\t\t\t\t\t\t\tnew Date( date ).toISOString().substring( 0, 10 )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<sub>\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tquarter &&\n\t\t\t\t\t\t\t\t\t\t\tsprintf( __( 'Q%s', 'billy' ), quarter )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</sub>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td className=\"description\" style={ { minWidth: '200px' } }>\n\t\t\t\t\t\t\t\t<InnerBlocks\n\t\t\t\t\t\t\t\t\ttemplate={ [\n\t\t\t\t\t\t\t\t\t\t[ 'core/paragraph', {\n\t\t\t\t\t\t\t\t\t\t\tplaceholder: __( 'Add content', 'billy' ),\n\t\t\t\t\t\t\t\t\t\t\tcontent: ( description ? description : '' ), // < v1.2.0\n\t\t\t\t\t\t\t\t\t\t} ],\n\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\tallowedBlocks={ [\n\t\t\t\t\t\t\t\t\t\t'core/heading',\n\t\t\t\t\t\t\t\t\t\t'core/paragraph',\n\t\t\t\t\t\t\t\t\t\t'core/list',\n\t\t\t\t\t\t\t\t\t\t'core/html',\n\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td className=\"reference\">\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Reference', 'billy' ) }\n\t\t\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\t\t\tvalue={ reference }\n\t\t\t\t\t\t\t\t\tonChange={ updateReference }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td className=\"amount earning\">\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tlabel={ sprintf( __( '%1$s in %2$s', 'billy' ), __( 'Earning', 'billy' ), currency ) }\n\t\t\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\t\t\tvalue={ earning }\n\t\t\t\t\t\t\t\t\tonChange={ updateEarning }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td className=\"amount expense\">\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tlabel={ sprintf( __( '%1$s in %2$s', 'billy' ), __( 'Expense', 'billy' ), currency ) }\n\t\t\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\t\t\tvalue={ expense }\n\t\t\t\t\t\t\t\t\tonChange={ updateExpense }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td className=\"amount tax\">\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tlabel={ sprintf( __( '%1$s in %2$s', 'billy' ), __( 'Tax', 'billy' ), currency ) }\n\t\t\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\t\t\tvalue={ tax }\n\t\t\t\t\t\t\t\t\tonChange={ updateTax }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</>\n\t\t);\n\t} ),\n\n\tsave: props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: {\n\t\t\t\tindex,\n\t\t\t\tlocale,\n\t\t\t\tdate,\n\t\t\t\tquarter,\n\t\t\t\tearning,\n\t\t\t\texpense,\n\t\t\t\ttax,\n\t\t\t\treference,\n\t\t\t\tpostLink,\n\t\t\t},\n\t\t} = props;\n\n\t\treturn (\n\t\t\t<tr data-date={ date && new Date( date ).toISOString().substring( 0, 10 ) } data-quarter={ quarter && sprintf( __( 'Q%s', 'billy' ), quarter ) } data-reference={ reference && reference } data-earning={ earning > 0 ? earning : null } data-expense={ expense > 0 ? expense : null } data-tax={ tax > 0 ? tax : null }>\n\t\t\t\t<th className=\"index\" scope=\"row\">\n\t\t\t\t\t{\n\t\t\t\t\t\tindex &&\n\t\t\t\t\t\t\tindex\n\t\t\t\t\t}\n\t\t\t\t</th>\n\t\t\t\t<td className=\"date\" data-value={ date && new Date( date ).toISOString().substring( 0, 10 ) }>\n\t\t\t\t\t{\n\t\t\t\t\t\tdate &&\n\t\t\t\t\t\t\tnew Date( date ).toISOString().substring( 0, 10 )\n\t\t\t\t\t}\n\t\t\t\t\t<sub>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tquarter &&\n\t\t\t\t\t\t\t\tsprintf( __( 'Q%s', 'billy' ), quarter )\n\t\t\t\t\t\t}\n\t\t\t\t\t</sub>\n\t\t\t\t</td>\n\t\t\t\t<td className=\"description\">\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</td>\n\t\t\t\t<td className=\"reference\">\n\t\t\t\t\t{\n\t\t\t\t\t\treference && !postLink &&\n\t\t\t\t\t\t\treference\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\treference && postLink &&\n\t\t\t\t\t\t\t<a href={ postLink }>{ reference }</a>\n\t\t\t\t\t}\n\t\t\t\t</td>\n\t\t\t\t<td className=\"amount earning\" data-value={ earning > 0 ? earning : null }>\n\t\t\t\t\t{\n\t\t\t\t\t\tearning && earning > 0 &&\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tformatNumber( earning, locale )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</td>\n\t\t\t\t<td className=\"amount expense\" data-value={ expense > 0 ? expense : null }>\n\t\t\t\t\t{\n\t\t\t\t\t\texpense && expense > 0 &&\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tformatNumber( expense, locale )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</td>\n\t\t\t\t<td className=\"amount tax\" data-value={ tax > 0 ? tax : null }>\n\t\t\t\t\t{\n\t\t\t\t\t\ttax && tax > 0 &&\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tformatNumber( tax, locale )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t);\n\t},\n\n\tdeprecated: deprecatedAccountingInner,\n} );\n","/**\n * Header [Deprecated 2022-09; Block is still needed for backwards compatibility]\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tDisabled,\n} from '@wordpress/components';\nimport ServerSideRender from '@wordpress/server-side-render';\n\n\nregisterBlockType( 'billy-blocks/header', {\n\ttitle: __( 'Header', 'billy' ),\n\ticon: 'editor-table', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps() {\n\t\treturn { 'data-align': 'wide' };\n\t},\n\n\tedit: props => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Info', 'billy' ) }>\n\t\t\t\t\t\t<div className=\"components-notice\">\n\t\t\t\t\t\t\t<div className=\"components-notice__content\">\n\t\t\t\t\t\t\t\t<a href={ globalDataBilly.wpAdmin + 'edit.php?post_type=wp_block' }>\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tsprintf( __( 'Edit the %s layout', 'billy' ), __( 'Header', 'billy' ) )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"components-notice\">\n\t\t\t\t\t\t\t<div className=\"components-notice__content\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsprintf( __( 'The %s values can be modified in the Theme Customizer.', 'billy' ), __( 'Header', 'billy' ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender block=\"billy-blocks/header\" />\n\t\t\t\t</Disabled>\n\t\t\t</>\n\t\t);\n\t},\n\n\tsave: props => {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n} );\n","/**\n * Invoice Actions\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport {\n\tregisterBlockType,\n} from '@wordpress/blocks';\nimport {\n\t__,\n\t_n,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\twithSelect,\n} from '@wordpress/data';\n\n\nregisterBlockType( 'billy-blocks/invoice-actions', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Invoice', 'billy' ), __( 'Actions', 'billy' ) ),\n\ticon: 'menu-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps() {\n\t\treturn { 'data-align': 'wide' };\n\t},\n\n\tedit: withSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostModifiedDate: select( 'core/editor' ).getEditedPostAttribute( 'modified' ),\n\t\t};\n\t} )( props => {\n\t\tconst {\n\t\t\tpostModifiedDate,\n\t\t} = props;\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<div className=\"components-placeholder\" style={ { minHeight: 'auto' } }>\n\t\t\t\t<small>\n\t\t\t\t\t{\n\t\t\t\t\t\tsprintf( __( '%1$s: %2$s', 'billy' ), __( 'Last modified', 'billy' ), new Date( postModifiedDate ).toLocaleString() )\n\t\t\t\t\t}\n\t\t\t\t</small>\n\t\t\t</div>\n\t\t);\n\t} ),\n\n\tsave: props => {\n\t\treturn null;\n\t},\n} );\n","/**\n * Invoice Date\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tDisabled,\n} from '@wordpress/components';\nimport ServerSideRender from '@wordpress/server-side-render';\n\n\nregisterBlockType( 'billy-blocks/invoice-date', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Invoice', 'billy' ), __( 'Date', 'billy' ) ),\n\ticon: 'calendar-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tedit: props => {\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Info', 'billy' ) }>\n\t\t\t\t\t\t<div className=\"components-notice is-warning\">\n\t\t\t\t\t\t\t<div className=\"components-notice__content\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsprintf( __( 'Due to legal requirements in some countries, autogenerated data like %s can\\'t be modified anymore after an invoice has been created in the system!', 'billy' ), __( 'Date', 'billy' ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender block=\"billy-blocks/invoice-date\" />\n\t\t\t\t</Disabled>\n\t\t\t</>\n\t\t);\n\t},\n\n\tsave: props => {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n} );\n","/**\n * Due Date\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tDisabled,\n} from '@wordpress/components';\nimport ServerSideRender from '@wordpress/server-side-render';\n\n\nregisterBlockType( 'billy-blocks/invoice-duedate', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Invoice', 'billy' ), __( 'Due Date', 'billy' ) ),\n\ticon: 'calendar-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tedit: props => {\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Info', 'billy' ) }>\n\t\t\t\t\t\t<div className=\"components-notice\">\n\t\t\t\t\t\t\t<div className=\"components-notice__content\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsprintf( __( 'The %s values can be modified in the Theme Customizer.', 'billy' ), __( 'Payment due days', 'billy' ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender block=\"billy-blocks/invoice-duedate\" />\n\t\t\t\t</Disabled>\n\t\t\t</>\n\t\t);\n\t},\n\n\tsave: props => {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n} );\n","/**\n * Invoice Number\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tDisabled,\n} from '@wordpress/components';\nimport ServerSideRender from '@wordpress/server-side-render';\n\n\nregisterBlockType( 'billy-blocks/invoice-number', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Invoice', 'billy' ), __( 'Number', 'billy' ) ),\n\ticon: 'editor-ol', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tedit: props => {\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Info', 'billy' ) }>\n\t\t\t\t\t\t<div className=\"components-notice\">\n\t\t\t\t\t\t\t<div className=\"components-notice__content\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsprintf( __( 'The %s values can be modified in the Theme Customizer.', 'billy' ), __( 'Invoice number: Prefix', 'billy' ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"components-notice is-warning\">\n\t\t\t\t\t\t\t<div className=\"components-notice__content\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsprintf( __( 'Due to legal requirements in some countries, autogenerated data like %s can\\'t be modified anymore after an invoice has been created in the system!', 'billy' ), __( 'Invoice number', 'billy' ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender block=\"billy-blocks/invoice-number\" />\n\t\t\t\t</Disabled>\n\t\t\t</>\n\t\t);\n\t},\n\n\tsave: props => {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n} );\n","/**\n * Meta Field\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { TextControl, PanelBody } from '@wordpress/components';\nimport { RawHTML } from '@wordpress/element';\n\nregisterBlockType('billy-blocks/invoice-meta', {\n\ttitle: sprintf(__('%1$s: %2$s', 'billy'), __('Invoice', 'billy'), __('Meta', 'billy')),\n\ticon: 'editor-textcolor', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tattributes: {\n\t\tlabel: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\ttext: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tedit: (props) => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: { label, text },\n\t\t\tsetAttributes,\n\t\t} = props;\n\n\t\tconst updateLabel = (val) => {\n\t\t\tsetAttributes({ label: val });\n\t\t};\n\n\t\tconst updateInput = (val) => {\n\t\t\teditEntityRecord('root', 'site', undefined, {\n\t\t\t\tdescription: val,\n\t\t\t});\n\t\t};\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={__('Label', 'billy')}>\n\t\t\t\t\t\t<TextControl type=\"text\" className=\"label\" value={label} onChange={updateLabel} />\n\t\t\t\t\t</PanelBody>\n\t\t\t\t\t<PanelBody title={__('Text', 'billy')}>\n\t\t\t\t\t\t<TextControl type=\"text\" className=\"text\" value={text} onChange={updateInput} />\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<RawHTML>\n\t\t\t\t\t{sprintf(\n\t\t\t\t\t\t__('<div class=\"label\">%1$s</div> <div class=\"text\">%2$s</div>', 'billy'),\n\t\t\t\t\t\tlabel ? label : '',\n\t\t\t\t\t\ttext ? text : __('N/A', 'billy')\n\t\t\t\t\t)}\n\t\t\t\t</RawHTML>\n\t\t\t</>\n\t\t);\n\t},\n\n\tsave: (props) => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: { label, text },\n\t\t} = props;\n\n\t\treturn (\n\t\t\ttext && (\n\t\t\t\t<RawHTML>\n\t\t\t\t\t{sprintf(\n\t\t\t\t\t\t__('<div class=\"label\">%1$s</div> <div class=\"text\">%2$s</div>', 'billy'),\n\t\t\t\t\t\tlabel ? label : '',\n\t\t\t\t\t\ttext ? text : __('N/A', 'billy')\n\t\t\t\t\t)}\n\t\t\t\t</RawHTML>\n\t\t\t)\n\t\t);\n\t},\n\n\tdeprecated: [\n\t\t// < v1.2.3 (202012)\n\t\t{\n\t\t\tattributes: {\n\t\t\t\tlabel: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t\ttext: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tsave: (props) => {\n\t\t\t\tconst {\n\t\t\t\t\tclassName,\n\t\t\t\t\tattributes: { label, text },\n\t\t\t\t} = props;\n\n\t\t\t\treturn (\n\t\t\t\t\ttext && (\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<RawHTML>\n\t\t\t\t\t\t\t\t{sprintf(\n\t\t\t\t\t\t\t\t\t'<p>' + __('<strong>%1$s</strong> <span>%2$s</span>', 'billy') + '</p>',\n\t\t\t\t\t\t\t\t\tlabel ? label : '',\n\t\t\t\t\t\t\t\t\ttext ? text : __('N/A', 'billy')\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n});\n","/**\n * Invoice Information\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tDisabled,\n} from '@wordpress/components';\nimport ServerSideRender from '@wordpress/server-side-render';\n\n\nregisterBlockType( 'billy-blocks/invoice-paymentinformation', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Invoice', 'billy' ), __( 'Payment Information', 'billy' ) ),\n\ticon: 'info', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tedit: props => {\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Info', 'billy' ) }>\n\t\t\t\t\t\t<div className=\"components-notice\">\n\t\t\t\t\t\t\t<div className=\"components-notice__content\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsprintf( __( 'The %s values can be modified in the Theme Customizer.', 'billy' ), __( 'Payment Information', 'billy' ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender block=\"billy-blocks/invoice-paymentinformation\" />\n\t\t\t\t</Disabled>\n\t\t\t</>\n\t\t);\n\t},\n\n\tsave: props => {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n} );\n","/**\n * Invoice Table (Inner): Deprecated\n * https://developer.wordpress.org/block-editor/developers/block-api/block-deprecation\n */\n\n/**\n * WordPress dependencies\n */\n\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\tRawHTML,\n} from '@wordpress/element';\n\n\n/**\n * Internal dependencies\n */\n\nimport {\n\tformatNumber,\n\tpercentToDecimal,\n} from '../../functions';\n\n\nconst deprecatedInvoiceInner = [\n\t// < v1.2.0 (202008)\n\t{\n\t\tattributes: {\n\t\t\tindex: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '0',\n\t\t\t},\n\t\t\tcurrency: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tlocale: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tdescription: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttaxRate: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamount: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountIncl: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tquantity: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tquantityRate: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\t\t\n\t\tsave: props => {\n\t\t\tconst {\n\t\t\t\tclassName,\n\t\t\t\tattributes: {\n\t\t\t\t\tindex,\n\t\t\t\t\tlocale,\n\t\t\t\t\tdescription,\n\t\t\t\t\ttaxRate,\n\t\t\t\t\tamount,\n\t\t\t\t},\n\t\t\t} = props;\n\t\n\t\t\treturn (\n\t\t\t\t<tr>\n\t\t\t\t\t<th scope=\"row\">\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tindex &&\n\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t}\n\t\t\t\t\t</th>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<RawHTML>{ description }</RawHTML>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tamount &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tformatNumber( amount, locale )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</td>\n\t\t\t\t\t{\n\t\t\t\t\t\ttaxRate && ( percentToDecimal( taxRate ) * amount ) > 0 &&\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<RawHTML>\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), formatNumber( ( percentToDecimal( taxRate ) * amount ), locale ), '<small>(' + taxRate + ')</small>' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t);\n\t\n\t\t},\n\t}\n];\n\nexport default deprecatedInvoiceInner;","/**\n * Invoice Table (Outer): Deprecated\n * https://developer.wordpress.org/block-editor/developers/block-api/block-deprecation\n */\n\n/**\n * WordPress dependencies\n */\n\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\tInnerBlocks,\n} from '@wordpress/blockEditor';\nimport {\n\tRawHTML,\n} from '@wordpress/element';\n\n\n/**\n * Internal dependencies\n */\n\nimport {\n\tformatNumber,\n\tpercentToDecimal,\n} from '../../functions';\n\n\nconst deprecatedInvoiceOuter = [\n\t// < v1.5.1 (202210)\n\t{\n\t\tattributes: {\n\t\t\tcurrency: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tlocale: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountSubtotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttaxRates: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttaxRatesTotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\n\t\tsave: props => {\n\t\t\tconst {\n\t\t\t\tclassName,\n\t\t\t\tattributes: {\n\t\t\t\t\tcurrency,\n\t\t\t\t\tlocale,\n\t\t\t\t\tamountSubtotal,\n\t\t\t\t\tamountTotal,\n\t\t\t\t\ttaxRates,\n\t\t\t\t\ttaxRatesTotal,\n\t\t\t\t},\n\t\t\t} = props;\n\n\t\t\treturn (\n\t\t\t\t<div className={ 'invoicetable-block alignwide' + ( className ? ' ' + className : '' ) }>\n\t\n\t\t\t\t\t<table className=\"table wp-block-table\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( '#', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( 'Description', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( 'Amount', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t<tfoot>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tamountSubtotal > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"subtotal\">\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" className=\"align-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tamountTotal > amountSubtotal ? __( 'Subtotal', 'billy' ) : __( 'Total', 'billy' )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountSubtotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"taxrates\">\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" className=\"align-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Sort by Taxrate\n\t\t\t\t\t\t\t\t\t\t\t\t\tJSON.parse( taxRates ).sort( ( a, b ) => ( percentToDecimal( a.taxRate ) - percentToDecimal( b.taxRate ) ) ).map( ( total, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( total.amount > 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<RawHTML key={ i }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s %3$s', 'billy' ), currency, formatNumber( total.amount, locale ), '<small>(' + total.taxRate + ')</small>' + '<br>' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tamountTotal > amountSubtotal &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"total\">\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" className=\"align-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Total', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tfoot>\n\t\t\t\t\t</table>\n\t\n\t\t\t\t</div>\n\t\t\t);\n\n\t\t},\n\t},\n\t// < v1.3.0 (202102)\n\t{\n\t\tattributes: {\n\t\t\tcurrency: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tlocale: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountSubtotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttaxRates: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttaxRatesTotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\n\t\tsave: props => {\n\t\t\tconst {\n\t\t\t\tclassName,\n\t\t\t\tattributes: {\n\t\t\t\t\tcurrency,\n\t\t\t\t\tlocale,\n\t\t\t\t\tamountSubtotal,\n\t\t\t\t\tamountTotal,\n\t\t\t\t\ttaxRates,\n\t\t\t\t\ttaxRatesTotal,\n\t\t\t\t},\n\t\t\t} = props;\n\n\t\t\treturn (\n\t\t\t\t<div className={ 'invoicetable-block alignwide' + ( className ? ' ' + className : '' ) }>\n\n\t\t\t\t\t<table className=\"table wp-block-table\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( '#', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( 'Description', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( 'Amount', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t<tfoot>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tamountSubtotal > 0 &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr className=\"subtotal\">\n\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tamountTotal > amountSubtotal ? __( 'Subtotal', 'billy' ) : __( 'Total', 'billy' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountSubtotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr className=\"taxrates\">\n\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t// Sort by Taxrate\n\t\t\t\t\t\t\t\t\t\t\t\tJSON.parse( taxRates ).sort( ( a, b ) => ( percentToDecimal( a.taxRate ) - percentToDecimal( b.taxRate ) ) ).map( ( total, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( total.amount > 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<RawHTML key={ i }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s %3$s', 'billy' ), currency, formatNumber( total.amount, locale ), '<small>(' + total.taxRate + ')</small>' + '<br>' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tamountTotal > amountSubtotal &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr className=\"total\">\n\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Total', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tfoot>\n\t\t\t\t\t</table>\n\n\t\t\t\t</div>\n\t\t\t);\n\n\t\t},\n\t}\n];\n\nexport default deprecatedInvoiceOuter;","/**\n * Invoice Table\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tInnerBlocks,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tTextControl,\n\tSelectControl,\n} from '@wordpress/components';\nimport {\n\twithSelect,\n} from '@wordpress/data';\nimport {\n\tRawHTML,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport {\n\tformatNumber,\n\tpercentToDecimal,\n} from '../../functions';\n\nimport deprecatedInvoiceOuter from './deprecatedOuter';\nimport deprecatedInvoiceInner from './deprecatedInner';\n\n\n/**\n * 1. Outer Block\n */\n\nregisterBlockType( 'billy-blocks/invoice-table', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Invoice', 'billy' ), __( 'Table', 'billy' ) ),\n\ticon: 'menu-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tattributes: {\n\t\tcurrency: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tlocale: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tamountSubtotal: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tamountTotal: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\ttaxRates: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\ttaxRatesTotal: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps() {\n\t\treturn { 'data-align': 'wide' };\n\t},\n\n\tedit: withSelect( ( select, { clientId } ) => {\n\t\tconst { getBlocksByClientId } = select( 'core/block-editor' );\n\n\t\tglobalDataBilly.clientId = clientId;\n\n\t\t// Get child blocks.\n\t\tconst childBlocks = ( null !== getBlocksByClientId( globalDataBilly.clientId )[ 0 ] ? getBlocksByClientId( globalDataBilly.clientId )[ 0 ].innerBlocks : null );\n\n\t\treturn {\n\t\t\tchildBlocks: childBlocks,\n\t\t};\n\t} )( props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tchildBlocks,\n\t\t\tattributes: {\n\t\t\t\tcurrency,\n\t\t\t\tlocale,\n\t\t\t\tamountSubtotal,\n\t\t\t\tamountTotal,\n\t\t\t\ttaxRates,\n\t\t\t\ttaxRatesTotal,\n\t\t\t},\n\t\t\tsetAttributes,\n\t\t} = props;\n\t\t\n\t\t//console.log(childBlocks);\n\t\tsetAttributes( { currency: globalDataBilly.currency } );\n\t\tsetAttributes( { locale: globalDataBilly.locale } );\n\n\t\t// Onload \"once\": Calculate values and update attributes\n\t\tconst updateTotals = () => {\n\t\t\tvar amountSubtotalSum = 0,\n\t\t\t\tamountTotalSum = 0,\n\t\t\t\ttaxRatesTotalSum = 0,\n\t\t\t\ttaxRatesHolderOutput = [],\n\t\t\t\ttaxRatesMergedOutput = [];\n\t\t\t\n\t\t\t// Create values-array of child block attributes\n\t\t\tif ( childBlocks && childBlocks.length > 0 ) {\n\t\t\t\tchildBlocks.map( ( childBlock, i ) => {\n\t\t\t\t\t// 1. Sum of Subtotals\n\t\t\t\t\tamountSubtotalSum += Number( childBlock.attributes.amount );\n\t\t\t\t\t\n\t\t\t\t\t// 2. Sum of Totals\n\t\t\t\t\tamountTotalSum += Number( childBlock.attributes.amount ) + ( percentToDecimal( childBlock.attributes.taxRate ) * Number( childBlock.attributes.amount ) );\n\n\t\t\t\t\t// 3. Sum of Taxrates\n\t\t\t\t\ttaxRatesHolderOutput.push( { taxRate: childBlock.attributes.taxRate, amount: ( percentToDecimal( childBlock.attributes.taxRate ) * Number( childBlock.attributes.amount ) ) } );\n\t\t\t\t} );\n\n\t\t\t\tif ( taxRatesHolderOutput.length > 0 ) {\n\t\t\t\t\t// Sum up Tax amount\n\t\t\t\t\ttaxRatesTotalSum = taxRatesHolderOutput.reduce( function ( res, value ) {\n\t\t\t\t\t\treturn res + value.amount;\n\t\t\t\t\t}, 0 );\n\t\t\t\t\ttaxRatesTotalSum = Number( taxRatesTotalSum.toFixed( 2 ) );\n\n\t\t\t\t\t// Merge same Taxrates\n\t\t\t\t\ttaxRatesHolderOutput.reduce( function ( res, value ) {\n\t\t\t\t\t\tif ( !res[ value.taxRate ] ) {\n\t\t\t\t\t\t\tres[ value.taxRate ] = { taxRate: value.taxRate, amount: 0 };\n\t\t\t\t\t\t\ttaxRatesMergedOutput.push( res[ value.taxRate ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tres[ value.taxRate ].amount += value.amount;\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t}, {} );\n\t\t\t\t}\n\n\t\t\t\tsetAttributes( { taxRatesTotal: taxRatesTotalSum } );\n\t\t\t\tsetAttributes( { taxRates: JSON.stringify( taxRatesMergedOutput ) } );\n\n\t\t\t\tsetAttributes( { amountSubtotal: amountSubtotalSum } );\n\t\t\t\tsetAttributes( { amountTotal: amountTotalSum } );\n\t\t\t}\n\t\t}\n\t\tupdateTotals();\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<div className={ 'invoicetable-block' + ( className ? ' ' + className : '' ) }>\n\t\t\t\t<InnerBlocks\n\t\t\t\t\ttemplateLock={ false }\n\t\t\t\t\ttemplate={ [\n\t\t\t\t\t\t[ 'billy-blocks/invoice-tablerow', {\n\t\t\t\t\t\t\t//placeholder: 'Enter content…',\n\t\t\t\t\t\t} ],\n\t\t\t\t\t] }\n\t\t\t\t\tallowedBlocks={ [\n\t\t\t\t\t\t'billy-blocks/invoice-tablerow',\n\t\t\t\t\t] }\n\t\t\t\t/>\n\n\t\t\t\t{\n\t\t\t\t\tamountSubtotal > 0 &&\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t<table className=\"totals\">\n\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tamountSubtotal > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t<tr className=\"subtotal\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tamountTotal > amountSubtotal ? __( 'Subtotal', 'billy' ) : __( 'Total', 'billy' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountSubtotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t<tr className=\"taxRates\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Sort by Taxrate\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tJSON.parse( taxRates ).sort( ( a, b ) => ( percentToDecimal( a.taxRate ) - percentToDecimal( b.taxRate ) ) ).map( ( total, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( total.amount > 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<RawHTML key={ i }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s %3$s', 'billy' ), currency, formatNumber( total.amount, locale ), '<small>(' + total.taxRate + ')</small>' + '<br>' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tamountTotal > amountSubtotal &&\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t<tr className=\"total\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Total', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t<button id=\"updatetotals\" className=\"components-button is-secondary is-button\" onClick={ updateTotals } style={ { display: ( amountSubtotal > 0 ? 'block' : 'none' ) } }>\n\t\t\t\t\t{\n\t\t\t\t\t\t__( 'Update Totals', 'billy' )\n\t\t\t\t\t}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t);\n\t} ),\n\n\tsave: props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: {\n\t\t\t\tcurrency,\n\t\t\t\tlocale,\n\t\t\t\tamountSubtotal,\n\t\t\t\tamountTotal,\n\t\t\t\ttaxRates,\n\t\t\t\ttaxRatesTotal,\n\t\t\t},\n\t\t} = props;\n\n\t\treturn (\n\t\t\t<div className={ 'invoicetable-block alignwide' + ( className ? ' ' + className : '' ) }>\n\n\t\t\t\t<table className=\"table wp-block-table\">\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t{ __( '#', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t{ __( 'Description', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t{ __( 'Amount', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t</tbody>\n\t\t\t\t\t<tfoot>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tamountSubtotal > 0 &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr className=\"subtotal\">\n\t\t\t\t\t\t\t\t\t\t<th colSpan=\"2\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tamountTotal > amountSubtotal ? __( 'Subtotal', 'billy' ) : __( 'Total', 'billy' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountSubtotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr className=\"taxrates\">\n\t\t\t\t\t\t\t\t\t\t<th colSpan=\"2\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t// Sort by Taxrate\n\t\t\t\t\t\t\t\t\t\t\t\tJSON.parse( taxRates ).sort( ( a, b ) => ( percentToDecimal( a.taxRate ) - percentToDecimal( b.taxRate ) ) ).map( ( total, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( total.amount > 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<RawHTML key={ i }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s %3$s', 'billy' ), currency, formatNumber( total.amount, locale ), '<small>(' + total.taxRate + ')</small>' + '<br>' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tamountTotal > amountSubtotal &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr className=\"total\">\n\t\t\t\t\t\t\t\t\t\t<th colSpan=\"2\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Total', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</tfoot>\n\t\t\t\t</table>\n\n\t\t\t</div>\n\t\t);\n\t},\n\n\tdeprecated: deprecatedInvoiceOuter,\n} );\n\n\n/**\n * 2. Inner Block\n */\n\nregisterBlockType( 'billy-blocks/invoice-tablerow', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Invoice', 'billy' ), __( 'Table Row', 'billy' ) ),\n\ticon: 'menu-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tparent: [ 'billy-blocks/invoice-table' ], // Only allow in outer block\n\tattributes: {\n\t\tindex: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '0',\n\t\t},\n\t\tcurrency: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tlocale: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\ttaxRate: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tamount: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tamountIncl: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tquantity: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tquantityRate: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tgetEditWrapperProps() {\n\t\treturn { 'data-align': 'wide' };\n\t},\n\n\tedit: withSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockIndex,\n\t\t} = select( 'core/block-editor' );\n\n\t\treturn {\n\t\t\ti: getBlockIndex( clientId, getBlockRootClientId( clientId ) ) + 1,\n\t\t}\n\t} )( props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\ti,\n\t\t\tattributes: {\n\t\t\t\tindex,\n\t\t\t\tcurrency,\n\t\t\t\tlocale,\n\t\t\t\tdescription, // < v1.2.0\n\t\t\t\ttaxRate,\n\t\t\t\tamount,\n\t\t\t\tamountIncl,\n\t\t\t\tquantity,\n\t\t\t\tquantityRate,\n\t\t\t},\n\t\t\tsetAttributes,\n\t\t} = props;\n\n\t\tsetAttributes( { index: i } );\n\t\tsetAttributes( { currency: globalDataBilly.currency } );\n\t\tsetAttributes( { locale: globalDataBilly.locale } );\n\n\t\tif ( '' === taxRate ) {\n\t\t\tsetAttributes( { taxRate: ( 0 === globalDataBilly.taxOptions.length ? '0%' : globalDataBilly.taxOptions[ 0 ].value ) } );\n\t\t}\n\n\t\tconst updateAmountIncl = val => {\n\t\t\tsetAttributes( { amountIncl: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\t// Recalculate totals on edit\n\t\t\tsetTimeout( () => {\n\t\t\t\tdocument.getElementById( \"updatetotals\" ).click();\n\t\t\t}, 1 );\n\t\t}\n\n\t\tconst updateTaxRate = val => {\n\t\t\tsetAttributes( { taxRate: val } );\n\n\t\t\tupdateAmountIncl( Number( amount ) + ( Number( amount ) * percentToDecimal( val ) ) );\n\t\t}\n\n\t\tconst updateAmount = val => {\n\t\t\tsetAttributes( { amount: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\tupdateAmountIncl( Number( val ) + ( Number( val ) * percentToDecimal( taxRate ) ) );\n\t\t}\n\n\t\tconst updateQuantity = val => {\n\t\t\tsetAttributes( { quantity: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\tupdateAmount( Number( val ) * Number( quantityRate ) );\n\t\t}\n\n\t\tconst updateQuantityRate = val => {\n\t\t\tsetAttributes( { quantityRate: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\tupdateAmount( Number( quantity ) * Number( val ) );\n\t\t}\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Quantity/Rate Calculator', 'billy' ) }>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Quantity', 'billy' ) }\n\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\tvalue={ quantity }\n\t\t\t\t\t\t\tonChange={ updateQuantity }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ sprintf( __( '%1$s in %2$s', 'billy' ), __( 'Rate', 'billy' ), currency ) }\n\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\tvalue={ quantityRate }\n\t\t\t\t\t\t\tonChange={ updateQuantityRate }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<table>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th className=\"index\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tindex &&\n\t\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<td style={ { width: '30vw', minWidth: '200px' } }>\n\t\t\t\t\t\t\t\t<InnerBlocks\n\t\t\t\t\t\t\t\t\ttemplate={ [\n\t\t\t\t\t\t\t\t\t\t[ 'core/paragraph', {\n\t\t\t\t\t\t\t\t\t\t\tplaceholder: __( 'Add content', 'billy' ),\n\t\t\t\t\t\t\t\t\t\t\tcontent: ( description ? description : '' ), // < v1.2.0\n\t\t\t\t\t\t\t\t\t\t} ],\n\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\tallowedBlocks={ [\n\t\t\t\t\t\t\t\t\t\t'core/heading',\n\t\t\t\t\t\t\t\t\t\t'core/paragraph',\n\t\t\t\t\t\t\t\t\t\t'core/list',\n\t\t\t\t\t\t\t\t\t\t'core/html',\n\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tlabel={ sprintf( __( '%1$s in %2$s', 'billy' ), __( 'Amount', 'billy' ), currency ) }\n\t\t\t\t\t\t\t\t\tclassName=\"amount\"\n\t\t\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\t\t\tvalue={ amount }\n\t\t\t\t\t\t\t\t\tonChange={ updateAmount }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\tclassName=\"taxrate\"\n\t\t\t\t\t\t\t\t\tlabel={ sprintf( __( '%1$s in %2$s', 'billy' ), __( 'Tax', 'billy' ), '%' ) }\n\t\t\t\t\t\t\t\t\tvalue={ taxRate }\n\t\t\t\t\t\t\t\t\toptions={ ( 0 !== globalDataBilly.taxOptions.length ? globalDataBilly.taxOptions : ( '0%' !== taxRate && 0 === globalDataBilly.taxOptions.length ? [ { label: taxRate, value: taxRate }, { label: '0%', value: '0%' } ] : '' ) ) }\n\t\t\t\t\t\t\t\t\tonChange={ updateTaxRate }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tdisabled=\"disabled\"\n\t\t\t\t\t\t\t\t\tlabel={ currency }\n\t\t\t\t\t\t\t\t\tclassName=\"amount-tax\"\n\t\t\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\t\t\tvalue={ amountIncl }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</>\n\t\t);\n\t} ),\n\n\tsave: props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: {\n\t\t\t\tindex,\n\t\t\t\tlocale,\n\t\t\t\ttaxRate,\n\t\t\t\tamount,\n\t\t\t},\n\t\t} = props;\n\n\t\treturn (\n\t\t\t<tr>\n\t\t\t\t<th scope=\"row\">\n\t\t\t\t\t{\n\t\t\t\t\t\tindex &&\n\t\t\t\t\t\t\tindex\n\t\t\t\t\t}\n\t\t\t\t</th>\n\t\t\t\t<td>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t{\n\t\t\t\t\t\tamount &&\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tformatNumber( amount, locale )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</td>\n\t\t\t\t{\n\t\t\t\t\ttaxRate && ( percentToDecimal( taxRate ) * amount ) > 0 &&\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<RawHTML>\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), formatNumber( ( percentToDecimal( taxRate ) * amount ), locale ), '<small>(' + taxRate + ')</small>' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</tr>\n\t\t);\n\t},\n\n\tdeprecated: deprecatedInvoiceInner,\n} );\n","/**\n * Quote Actions\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport {\n\tregisterBlockType,\n} from '@wordpress/blocks';\nimport {\n\t__,\n\t_n,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\twithSelect,\n} from '@wordpress/data';\n\n\nregisterBlockType( 'billy-blocks/quote-actions', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Quote', 'billy' ), __( 'Actions', 'billy' ) ),\n\ticon: 'menu-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps() {\n\t\treturn { 'data-align': 'wide' };\n\t},\n\n\tedit: withSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostModifiedDate: select( 'core/editor' ).getEditedPostAttribute( 'modified' ),\n\t\t};\n\t} )( props => {\n\t\tconst {\n\t\t\tpostModifiedDate,\n\t\t} = props;\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<div className=\"components-placeholder\" style={ { minHeight: 'auto' } }>\n\t\t\t\t<small>\n\t\t\t\t\t{\n\t\t\t\t\t\tsprintf( __( '%1$s: %2$s', 'billy' ), __( 'Last modified', 'billy' ), new Date( postModifiedDate ).toLocaleString() )\n\t\t\t\t\t}\n\t\t\t\t</small>\n\t\t\t</div>\n\t\t);\n\t} ),\n\n\tsave: props => {\n\t\treturn null;\n\t},\n} );\n","/**\n * Quote Date\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport ServerSideRender from '@wordpress/server-side-render';\n\n\nregisterBlockType( 'billy-blocks/quote-date', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Quote', 'billy' ), __( 'Date', 'billy' ) ),\n\ticon: 'calendar-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tedit: props => {\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<ServerSideRender block=\"billy-blocks/quote-date\" />\n\t\t);\n\t},\n\n\tsave: props => {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n} );\n","/**\n * Quote Information\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { PanelBody } from '@wordpress/components';\nimport ServerSideRender from '@wordpress/server-side-render';\n\n\nregisterBlockType( 'billy-blocks/quote-information', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Quote', 'billy' ), __( 'Information', 'billy' ) ),\n\ticon: 'info', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tedit: props => {\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Info', 'billy' ) }>\n\t\t\t\t\t\t<div className=\"components-notice\">\n\t\t\t\t\t\t\t<div className=\"components-notice__content\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsprintf( __( 'The %s values can be modified in the Theme Customizer.', 'billy' ), __( 'Quote Information', 'billy' ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t\n\t\t\t\t<ServerSideRender block=\"billy-blocks/quote-information\" />\n\t\t\t</>\n\t\t);\n\t},\n\n\tsave: props => {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n} );\n","/**\n * Meta Field\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport {\n\tRawHTML,\n} from '@wordpress/element';\n\n\nregisterBlockType( 'billy-blocks/quote-meta', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Quote', 'billy' ), __( 'Meta', 'billy' ) ),\n\ticon: 'editor-textcolor', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tattributes: {\n\t\tlabel: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\ttext: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tedit: props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: {\n\t\t\t\tlabel,\n\t\t\t\ttext,\n\t\t\t},\n\t\t\tsetAttributes,\n\t\t} = props;\n\n\t\tconst updateLabel = val => {\n\t\t\tsetAttributes( { label: val } );\n\t\t}\n\n\t\tconst updateInput = val => {\n\t\t\tsetAttributes( { text: val } );\n\t\t}\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Label', 'billy' ) }>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tclassName=\"label\"\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ updateLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t\t<PanelBody title={ __( 'Text', 'billy' ) }>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tclassName=\"text\"\n\t\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t\t\tonChange={ updateInput }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<RawHTML>\n\t\t\t\t\t{\n\t\t\t\t\t\tsprintf( __( '<div class=\"label\">%1$s</div> <div class=\"text\">%2$s</div>', 'billy' ), ( label ? label : '' ), ( text ? text : __( 'N/A', 'billy' ) ) )\n\t\t\t\t\t}\n\t\t\t\t</RawHTML>\n\t\t\t</>\n\t\t);\n\t},\n\n\tsave: props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: {\n\t\t\t\tlabel,\n\t\t\t\ttext,\n\t\t\t},\n\t\t} = props;\n\n\t\treturn (\n\t\t\ttext && (\n\t\t\t\t<RawHTML>\n\t\t\t\t\t{\n\t\t\t\t\t\tsprintf( __( '<div class=\"label\">%1$s</div> <div class=\"text\">%2$s</div>', 'billy' ), ( label ? label : '' ), ( text ? text : __( 'N/A', 'billy' ) ) )\n\t\t\t\t\t}\n\t\t\t\t</RawHTML>\n\t\t\t)\n\t\t);\n\t},\n\n\tdeprecated: [\n\t\t// < v1.2.3 (202012)\n\t\t{\n\t\t\tattributes: {\n\t\t\t\tlabel: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t\ttext: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t},\n\t\t\t\n\t\t\tsave: props => {\n\t\t\t\tconst {\n\t\t\t\t\tclassName,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttext,\n\t\t\t\t\t},\n\t\t\t\t} = props;\n\t\t\n\t\t\t\treturn (\n\t\t\t\t\ttext && (\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<RawHTML>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsprintf( '<p>' + __( '<strong>%1$s</strong> <span>%2$s</span>', 'billy' ) + '</p>', ( label ? label : '' ), ( text ? text : __( 'N/A', 'billy' ) ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t}\n\t],\n} );\n","/**\n * Quote Table (Inner): Deprecated\n * https://developer.wordpress.org/block-editor/developers/block-api/block-deprecation\n */\n\n/**\n * WordPress dependencies\n */\n\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\tRawHTML,\n} from '@wordpress/element';\n\n\n/**\n * Internal dependencies\n */\n\nimport {\n\tformatNumber,\n\tpercentToDecimal,\n} from '../../functions';\n\n\nconst deprecatedQuoteInner = [\n\t// < v1.2.0 (20200824)\n\t{\n\t\tattributes: {\n\t\t\tindex: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '0',\n\t\t\t},\n\t\t\tcurrency: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tlocale: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tdescription: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttaxRate: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamount: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountIncl: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tquantity: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tquantityRate: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\t\t\n\t\tsave: props => {\n\t\t\tconst {\n\t\t\t\tclassName,\n\t\t\t\tattributes: {\n\t\t\t\t\tindex,\n\t\t\t\t\tlocale,\n\t\t\t\t\tdescription,\n\t\t\t\t\ttaxRate,\n\t\t\t\t\tamount,\n\t\t\t\t},\n\t\t\t} = props;\n\t\n\t\t\treturn (\n\t\t\t\t<tr>\n\t\t\t\t\t<th scope=\"row\">\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tindex &&\n\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t}\n\t\t\t\t\t</th>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<RawHTML>{ description }</RawHTML>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tamount &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tformatNumber( amount, locale )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</td>\n\t\t\t\t\t{\n\t\t\t\t\t\ttaxRate && ( percentToDecimal( taxRate ) * amount ) > 0 &&\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<RawHTML>\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), formatNumber( ( percentToDecimal( taxRate ) * amount ), locale ), '<small>(' + taxRate + ')</small>' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t);\n\t\n\t\t},\n\t}\n];\n\nexport default deprecatedQuoteInner;","/**\n * Quote Table (Outer): Deprecated\n * https://developer.wordpress.org/block-editor/developers/block-api/block-deprecation\n */\n\n/**\n * WordPress dependencies\n */\n\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\tInnerBlocks,\n} from '@wordpress/blockEditor';\nimport {\n\tRawHTML,\n} from '@wordpress/element';\n\n\n/**\n * Internal dependencies\n */\n\nimport {\n\tformatNumber,\n\tpercentToDecimal,\n} from '../../functions';\n\n\nconst deprecatedQuoteOuter = [\n\t// < v1.5.1 (202210)\n\t{\n\t\tattributes: {\n\t\t\tcurrency: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tlocale: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountSubtotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttaxRates: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttaxRatesTotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\t\t\n\t\tsave: props => {\n\t\t\tconst {\n\t\t\t\tclassName,\n\t\t\t\tattributes: {\n\t\t\t\t\tcurrency,\n\t\t\t\t\tlocale,\n\t\t\t\t\tamountSubtotal,\n\t\t\t\t\tamountTotal,\n\t\t\t\t\ttaxRates,\n\t\t\t\t\ttaxRatesTotal,\n\t\t\t\t},\n\t\t\t} = props;\n\t\n\t\t\treturn (\n\t\t\t\t<div className={ 'quotetable-block alignwide' + ( className ? ' ' + className : '' ) }>\n\t\n\t\t\t\t\t<table className=\"table wp-block-table\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( '#', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( 'Description', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( 'Amount', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t<tfoot>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tamountSubtotal > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"subtotal\">\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" className=\"align-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tamountTotal > amountSubtotal ? __( 'Subtotal', 'billy' ) : __( 'Total', 'billy' )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountSubtotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"taxrates\">\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" className=\"align-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Sort by Taxrate\n\t\t\t\t\t\t\t\t\t\t\t\t\tJSON.parse( taxRates ).sort( ( a, b ) => ( percentToDecimal( a.taxRate ) - percentToDecimal( b.taxRate ) ) ).map( ( total, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( total.amount > 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<RawHTML key={ i }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s %3$s', 'billy' ), currency, formatNumber( total.amount, locale ), '<small>(' + total.taxRate + ')</small>' + '<br>' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tamountTotal > amountSubtotal &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"total\">\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" className=\"align-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Total', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tfoot>\n\t\t\t\t\t</table>\n\t\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t// < v1.3.0 (202102)\n\t{\n\t\tattributes: {\n\t\t\tcurrency: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tlocale: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountSubtotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tamountTotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttaxRates: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\ttaxRatesTotal: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\t\t\n\t\tsave: props => {\n\t\t\tconst {\n\t\t\t\tclassName,\n\t\t\t\tattributes: {\n\t\t\t\t\tcurrency,\n\t\t\t\t\tlocale,\n\t\t\t\t\tamountSubtotal,\n\t\t\t\t\tamountTotal,\n\t\t\t\t\ttaxRates,\n\t\t\t\t\ttaxRatesTotal,\n\t\t\t\t},\n\t\t\t} = props;\n\t\n\t\t\treturn (\n\t\t\t\t<div className={ 'quotetable-block alignwide' + ( className ? ' ' + className : '' ) }>\n\t\n\t\t\t\t\t<table className=\"table wp-block-table\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( '#', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( 'Description', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t{ __( 'Amount', 'billy' ) }\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t<tfoot>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tamountSubtotal > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"subtotal\">\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tamountTotal > amountSubtotal ? __( 'Subtotal', 'billy' ) : __( 'Total', 'billy' )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountSubtotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"taxrates\">\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Sort by Taxrate\n\t\t\t\t\t\t\t\t\t\t\t\t\tJSON.parse( taxRates ).sort( ( a, b ) => ( percentToDecimal( a.taxRate ) - percentToDecimal( b.taxRate ) ) ).map( ( total, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( total.amount > 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<RawHTML key={ i }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s %3$s', 'billy' ), currency, formatNumber( total.amount, locale ), '<small>(' + total.taxRate + ')</small>' + '<br>' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tamountTotal > amountSubtotal &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<tr className=\"total\">\n\t\t\t\t\t\t\t\t\t\t\t<td colSpan=\"2\" align=\"right\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Total', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tfoot>\n\t\t\t\t\t</table>\n\t\n\t\t\t\t</div>\n\t\t\t);\n\t\n\t\t},\n\t}\n];\n\nexport default deprecatedQuoteOuter;","/**\n * Quote Table\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tInnerBlocks,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tTextControl,\n\tSelectControl,\n} from '@wordpress/components';\nimport {\n\twithSelect,\n} from '@wordpress/data';\nimport {\n\tRawHTML,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport {\n\tformatNumber,\n\tpercentToDecimal,\n} from '../../functions';\n\nimport deprecatedQuoteOuter from './deprecatedOuter';\nimport deprecatedQuoteInner from './deprecatedInner';\n\n\n/**\n * 1. Outer Block\n */\n\nregisterBlockType( 'billy-blocks/quote-table', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Quote', 'billy' ), __( 'Table', 'billy' ) ),\n\ticon: 'menu-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tattributes: {\n\t\tcurrency: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tlocale: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tamountSubtotal: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tamountTotal: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\ttaxRates: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\ttaxRatesTotal: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps() {\n\t\treturn { 'data-align': 'wide' };\n\t},\n\n\tedit: withSelect( ( select, { clientId } ) => {\n\t\tconst { getBlocksByClientId } = select( 'core/block-editor' );\n\n\t\tglobalDataBilly.clientId = clientId;\n\n\t\t// Get child blocks.\n\t\tconst childBlocks = ( null !== getBlocksByClientId( globalDataBilly.clientId )[ 0 ] ? getBlocksByClientId( globalDataBilly.clientId )[ 0 ].innerBlocks : null );\n\n\t\treturn {\n\t\t\tchildBlocks: childBlocks,\n\t\t};\n\t} )( props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tchildBlocks,\n\t\t\tattributes: {\n\t\t\t\tcurrency,\n\t\t\t\tlocale,\n\t\t\t\tamountSubtotal,\n\t\t\t\tamountTotal,\n\t\t\t\ttaxRates,\n\t\t\t\ttaxRatesTotal,\n\t\t\t},\n\t\t\tsetAttributes,\n\t\t} = props;\n\n\t\t//console.log(childBlocks);\n\t\tsetAttributes( { currency: globalDataBilly.currency } );\n\t\tsetAttributes( { locale: globalDataBilly.locale } );\n\n\t\t// Onload \"once\": Calculate values and update attributes\n\t\tconst updateTotals = () => {\n\t\t\tvar amountSubtotalSum = 0,\n\t\t\t\tamountTotalSum = 0,\n\t\t\t\ttaxRatesTotalSum = 0,\n\t\t\t\ttaxRatesHolderOutput = [],\n\t\t\t\ttaxRatesMergedOutput = [];\n\t\t\t\n\t\t\t// Create values-array of child block attributes\n\t\t\tif ( childBlocks && childBlocks.length > 0 ) {\n\t\t\t\tchildBlocks.map( ( childBlock, i ) => {\n\t\t\t\t\t// 1. Sum of Subtotals\n\t\t\t\t\tamountSubtotalSum += Number( childBlock.attributes.amount );\n\t\t\t\t\t\n\t\t\t\t\t// 2. Sum of Totals\n\t\t\t\t\tamountTotalSum += Number( childBlock.attributes.amount ) + ( percentToDecimal( childBlock.attributes.taxRate ) * Number( childBlock.attributes.amount ) );\n\n\t\t\t\t\t// 3. Sum of Taxrates\n\t\t\t\t\ttaxRatesHolderOutput.push( { taxRate: childBlock.attributes.taxRate, amount: ( percentToDecimal( childBlock.attributes.taxRate ) * Number( childBlock.attributes.amount ) ) } );\n\t\t\t\t} );\n\n\t\t\t\tif ( taxRatesHolderOutput.length > 0 ) {\n\t\t\t\t\t// Sum up Tax amount\n\t\t\t\t\ttaxRatesTotalSum = taxRatesHolderOutput.reduce( function ( res, value ) {\n\t\t\t\t\t\treturn res + value.amount;\n\t\t\t\t\t}, 0 );\n\t\t\t\t\ttaxRatesTotalSum = Number( taxRatesTotalSum.toFixed( 2 ) );\n\n\t\t\t\t\t// Merge same Taxrates\n\t\t\t\t\ttaxRatesHolderOutput.reduce( function ( res, value ) {\n\t\t\t\t\t\tif ( !res[ value.taxRate ] ) {\n\t\t\t\t\t\t\tres[ value.taxRate ] = { taxRate: value.taxRate, amount: 0 };\n\t\t\t\t\t\t\ttaxRatesMergedOutput.push( res[ value.taxRate ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tres[ value.taxRate ].amount += value.amount;\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t}, {} );\n\t\t\t\t}\n\n\t\t\t\tsetAttributes( { taxRatesTotal: taxRatesTotalSum } );\n\t\t\t\tsetAttributes( { taxRates: JSON.stringify( taxRatesMergedOutput ) } );\n\n\t\t\t\tsetAttributes( { amountSubtotal: amountSubtotalSum } );\n\t\t\t\tsetAttributes( { amountTotal: amountTotalSum } );\n\t\t\t}\n\t\t}\n\t\tupdateTotals();\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<div className={ 'quotetable-block' + ( className ? ' ' + className : '' ) }>\n\t\t\t\t<InnerBlocks\n\t\t\t\t\ttemplateLock={ false }\n\t\t\t\t\ttemplate={ [\n\t\t\t\t\t\t[ 'billy-blocks/quote-tablerow', {\n\t\t\t\t\t\t\t//placeholder: 'Enter content…',\n\t\t\t\t\t\t} ],\n\t\t\t\t\t] }\n\t\t\t\t\tallowedBlocks={ [\n\t\t\t\t\t\t'billy-blocks/quote-tablerow',\n\t\t\t\t\t] }\n\t\t\t\t/>\n\n\t\t\t\t{\n\t\t\t\t\tamountSubtotal > 0 &&\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t<table className=\"totals\">\n\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tamountSubtotal > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t<tr className=\"subtotal\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tamountTotal > amountSubtotal ? __( 'Subtotal', 'billy' ) : __( 'Total', 'billy' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountSubtotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t<tr className=\"taxRates\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Sort by Taxrate\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tJSON.parse( taxRates ).sort( ( a, b ) => ( percentToDecimal( a.taxRate ) - percentToDecimal( b.taxRate ) ) ).map( ( total, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( total.amount > 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<RawHTML key={ i }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s %3$s', 'billy' ), currency, formatNumber( total.amount, locale ), '<small>(' + total.taxRate + ')</small>' + '<br>' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tamountTotal > amountSubtotal &&\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t<tr className=\"total\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<th style={ { width: '50%' } }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Total', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t<button id=\"updatetotals\" className=\"components-button is-secondary is-button\" onClick={ updateTotals } style={ { display: ( amountSubtotal > 0 ? 'block' : 'none' ) } }>\n\t\t\t\t\t{\n\t\t\t\t\t\t__( 'Update Totals', 'billy' )\n\t\t\t\t\t}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t);\n\t} ),\n\n\tsave: props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: {\n\t\t\t\tcurrency,\n\t\t\t\tlocale,\n\t\t\t\tamountSubtotal,\n\t\t\t\tamountTotal,\n\t\t\t\ttaxRates,\n\t\t\t\ttaxRatesTotal,\n\t\t\t},\n\t\t} = props;\n\n\t\treturn (\n\t\t\t<div className={ 'quotetable-block alignwide' + ( className ? ' ' + className : '' ) }>\n\n\t\t\t\t<table className=\"table wp-block-table\">\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t{ __( '#', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t{ __( 'Description', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t{ __( 'Amount', 'billy' ) }\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t</tbody>\n\t\t\t\t\t<tfoot>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tamountSubtotal > 0 &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr className=\"subtotal\">\n\t\t\t\t\t\t\t\t\t\t<th colSpan=\"2\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tamountTotal > amountSubtotal ? __( 'Subtotal', 'billy' ) : __( 'Total', 'billy' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountSubtotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttaxRates && taxRatesTotal > 0 &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr className=\"taxrates\">\n\t\t\t\t\t\t\t\t\t\t<th colSpan=\"2\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Tax', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t// Sort by Taxrate\n\t\t\t\t\t\t\t\t\t\t\t\tJSON.parse( taxRates ).sort( ( a, b ) => ( percentToDecimal( a.taxRate ) - percentToDecimal( b.taxRate ) ) ).map( ( total, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( total.amount > 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<RawHTML key={ i }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s %3$s', 'billy' ), currency, formatNumber( total.amount, locale ), '<small>(' + total.taxRate + ')</small>' + '<br>' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tamountTotal > amountSubtotal &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t<tr className=\"total\">\n\t\t\t\t\t\t\t\t\t\t<th colSpan=\"2\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Total', 'billy' ) }\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t\t<td colSpan={ ( taxRates && taxRatesTotal > 0 ? '2' : null ) }>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), currency, formatNumber( amountTotal, locale ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</tfoot>\n\t\t\t\t</table>\n\n\t\t\t</div>\n\t\t);\n\t},\n\n\tdeprecated: deprecatedQuoteOuter,\n} );\n\n\n/**\n * 2. Inner Block\n */\n\nregisterBlockType( 'billy-blocks/quote-tablerow', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Quote', 'billy' ), __( 'Table Row', 'billy' ) ),\n\ticon: 'menu-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tparent: [ 'billy-blocks/quote-table' ], // Only allow in outer block\n\tattributes: {\n\t\tindex: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '0',\n\t\t},\n\t\tcurrency: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tlocale: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\ttaxRate: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tamount: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tamountIncl: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tquantity: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t\tquantityRate: {\n\t\t\ttype: 'number',\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tgetEditWrapperProps() {\n\t\treturn { 'data-align': 'wide' };\n\t},\n\n\tedit: withSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockIndex,\n\t\t} = select( 'core/block-editor' );\n\n\t\treturn {\n\t\t\ti: getBlockIndex( clientId, getBlockRootClientId( clientId ) ) + 1,\n\t\t}\n\t} )( props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\ti,\n\t\t\tattributes: {\n\t\t\t\tindex,\n\t\t\t\tcurrency,\n\t\t\t\tlocale,\n\t\t\t\tdescription, // < v1.2.0\n\t\t\t\ttaxRate,\n\t\t\t\tamount,\n\t\t\t\tamountIncl,\n\t\t\t\tquantity,\n\t\t\t\tquantityRate,\n\t\t\t},\n\t\t\tsetAttributes,\n\t\t} = props;\n\n\t\tsetAttributes( { index: i } );\n\t\tsetAttributes( { currency: globalDataBilly.currency } );\n\t\tsetAttributes( { locale: globalDataBilly.locale } );\n\n\t\tif ( '' === taxRate ) {\n\t\t\tsetAttributes( { taxRate: ( 0 === globalDataBilly.taxOptions.length ? '0%' : globalDataBilly.taxOptions[ 0 ].value ) } );\n\t\t}\n\n\t\tconst updateAmountIncl = val => {\n\t\t\tsetAttributes( { amountIncl: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\t// Recalculate totals on edit\n\t\t\tsetTimeout( () => {\n\t\t\t\tdocument.getElementById( \"updatetotals\" ).click();\n\t\t\t}, 1 );\n\t\t}\n\n\t\tconst updateTaxRate = val => {\n\t\t\tsetAttributes( { taxRate: val } );\n\n\t\t\tupdateAmountIncl( Number( amount ) + ( Number( amount ) * percentToDecimal( val ) ) );\n\t\t}\n\n\t\tconst updateAmount = val => {\n\t\t\tsetAttributes( { amount: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\tupdateAmountIncl( Number( val ) + ( Number( val ) * percentToDecimal( taxRate ) ) );\n\t\t}\n\n\t\tconst updateQuantity = val => {\n\t\t\tsetAttributes( { quantity: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\tupdateAmount( Number( val ) * Number( quantityRate ) );\n\t\t}\n\n\t\tconst updateQuantityRate = val => {\n\t\t\tsetAttributes( { quantityRate: ( val > 0 ? Number( val ) : '' ) } );\n\n\t\t\tupdateAmount( Number( quantity ) * Number( val ) );\n\t\t}\n\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Quantity/Rate Calculator', 'billy' ) }>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Quantity', 'billy' ) }\n\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\tvalue={ quantity }\n\t\t\t\t\t\t\tonChange={ updateQuantity }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ sprintf( __( '%1$s in %2$s', 'billy' ), __( 'Rate', 'billy' ), currency ) }\n\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\tvalue={ quantityRate }\n\t\t\t\t\t\t\tonChange={ updateQuantityRate }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<table>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th className=\"index\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tindex &&\n\t\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t<td style={ { width: '30vw', minWidth: '200px' } }>\n\t\t\t\t\t\t\t\t<InnerBlocks\n\t\t\t\t\t\t\t\t\ttemplate={ [\n\t\t\t\t\t\t\t\t\t\t[ 'core/paragraph', {\n\t\t\t\t\t\t\t\t\t\t\tplaceholder: __( 'Add content', 'billy' ),\n\t\t\t\t\t\t\t\t\t\t\tcontent: ( description ? description : '' ), // < v1.2.0\n\t\t\t\t\t\t\t\t\t\t} ],\n\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\tallowedBlocks={ [\n\t\t\t\t\t\t\t\t\t\t'core/heading',\n\t\t\t\t\t\t\t\t\t\t'core/paragraph',\n\t\t\t\t\t\t\t\t\t\t'core/list',\n\t\t\t\t\t\t\t\t\t\t'core/html',\n\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tlabel={ sprintf( __( '%1$s in %2$s', 'billy' ), __( 'Amount', 'billy' ), currency ) }\n\t\t\t\t\t\t\t\t\tclassName=\"amount\"\n\t\t\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\t\t\tvalue={ amount }\n\t\t\t\t\t\t\t\t\tonChange={ updateAmount }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\tclassName=\"taxrate\"\n\t\t\t\t\t\t\t\t\tlabel={ sprintf( __( '%1$s in %2$s', 'billy' ), __( 'Tax', 'billy' ), '%' ) }\n\t\t\t\t\t\t\t\t\tvalue={ taxRate }\n\t\t\t\t\t\t\t\t\toptions={ ( 0 !== globalDataBilly.taxOptions.length ? globalDataBilly.taxOptions : ( '0%' !== taxRate && 0 === globalDataBilly.taxOptions.length ? [ { label: taxRate, value: taxRate }, { label: '0%', value: '0%' } ] : '' ) ) }\n\t\t\t\t\t\t\t\t\tonChange={ updateTaxRate }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tdisabled=\"disabled\"\n\t\t\t\t\t\t\t\t\tlabel={ currency }\n\t\t\t\t\t\t\t\t\tclassName=\"amount-tax\"\n\t\t\t\t\t\t\t\t\tplaceholder={ __( '0', 'billy' ) }\n\t\t\t\t\t\t\t\t\tvalue={ amountIncl }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</>\n\t\t);\n\t} ),\n\n\tsave: props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: {\n\t\t\t\tindex,\n\t\t\t\tlocale,\n\t\t\t\ttaxRate,\n\t\t\t\tamount,\n\t\t\t},\n\t\t} = props;\n\n\t\treturn (\n\t\t\t<tr>\n\t\t\t\t<th scope=\"row\">\n\t\t\t\t\t{\n\t\t\t\t\t\tindex &&\n\t\t\t\t\t\t\tindex\n\t\t\t\t\t}\n\t\t\t\t</th>\n\t\t\t\t<td>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t{\n\t\t\t\t\t\tamount &&\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tformatNumber( amount, locale )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</td>\n\t\t\t\t{\n\t\t\t\t\ttaxRate && ( percentToDecimal( taxRate ) * amount ) > 0 &&\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<RawHTML>\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tsprintf( __( '%1$s %2$s', 'billy' ), formatNumber( ( percentToDecimal( taxRate ) * amount ), locale ), '<small>(' + taxRate + ')</small>' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</RawHTML>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</tr>\n\t\t);\n\t},\n\n\tdeprecated: deprecatedQuoteInner,\n} );\n","/**\n * Quote Valid Until Date\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport {\n\t__,\n\tsprintf\n} from '@wordpress/i18n';\nimport ServerSideRender from '@wordpress/server-side-render';\n\n\nregisterBlockType( 'billy-blocks/quote-validuntildate', {\n\ttitle: sprintf( __( '%1$s: %2$s', 'billy' ), __( 'Quote', 'billy' ), __( 'Valid Until', 'billy' ) ),\n\ticon: 'calendar-alt', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tedit: props => {\n\t\t// Markup: Backend\n\t\treturn (\n\t\t\t<ServerSideRender block=\"billy-blocks/quote-validuntildate\" />\n\t\t);\n\t},\n\n\tsave: props => {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n} );\n","// https://github.com/WordPress/gutenberg/blob/trunk/packages/edit-post/src/components/sidebar/plugin-document-setting-panel/index.js#L88\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { __ } from '@wordpress/i18n';\nimport { PluginDocumentSettingPanel } from '@wordpress/edit-post';\nimport ServerSideRender from '@wordpress/server-side-render';\n\nconst BillySetup = () => (\n\t<PluginDocumentSettingPanel\n\t\tclassName=\"my-document-setting-plugin\"\n\t\ttitle={__('Billy Setup', 'billy')}\n\t>\n\t\t<p>\n\t\t\t<a\n\t\t\t\thref={\n\t\t\t\t\tglobalDataBilly.wpAdmin +\n\t\t\t\t\t'customize.php?autofocus[panel]=billy_setup_panel'\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{__('Settings (Theme Customizer)', 'billy')}\n\t\t\t</a>\n\t\t</p>\n\t\t<ul className=\"ul code\">\n\t\t\t<li title={__('Invoice number', 'billy')}>\n\t\t\t\t<ServerSideRender block=\"billy-blocks/invoice-number\" />\n\t\t\t</li>\n\t\t\t<li title={__('Name', 'billy')}>\n\t\t\t\t<ServerSideRender\n\t\t\t\t\tblock=\"billy-blocks/theme-mod\"\n\t\t\t\t\tattributes={{ themeMod: 'name' }}\n\t\t\t\t/>\n\t\t\t</li>\n\t\t\t<li title={__('Address', 'billy')}>\n\t\t\t\t<ServerSideRender\n\t\t\t\t\tblock=\"billy-blocks/theme-mod\"\n\t\t\t\t\tattributes={{ themeMod: 'address' }}\n\t\t\t\t/>\n\t\t\t</li>\n\t\t\t<li title={__('VAT', 'billy')}>\n\t\t\t\t<ServerSideRender\n\t\t\t\t\tblock=\"billy-blocks/theme-mod\"\n\t\t\t\t\tattributes={{ themeMod: 'vat' }}\n\t\t\t\t/>\n\t\t\t</li>\n\t\t\t<li title={__('Currency', 'billy')}>\n\t\t\t\t<ServerSideRender\n\t\t\t\t\tblock=\"billy-blocks/theme-mod\"\n\t\t\t\t\tattributes={{ themeMod: 'currency' }}\n\t\t\t\t/>\n\t\t\t</li>\n\t\t\t<li title={__('Taxes', 'billy')}>\n\t\t\t\t<ServerSideRender\n\t\t\t\t\tblock=\"billy-blocks/theme-mod\"\n\t\t\t\t\tattributes={{ themeMod: 'taxrates' }}\n\t\t\t\t/>\n\t\t\t</li>\n\t\t</ul>\n\t</PluginDocumentSettingPanel>\n);\nregisterPlugin('billy-setup', { render: BillySetup });\n","/**\n * Header: theme_mod\n * https://wordpress.org/gutenberg/handbook/designers-developers/developers/tutorials/block-tutorial/writing-your-first-block-type\n */\n\n/**\n * WordPress dependencies\n */\n\nimport { registerBlockType } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tSelectControl,\n\tPanelBody,\n\tDisabled,\n} from '@wordpress/components';\nimport ServerSideRender from '@wordpress/server-side-render';\n\n\nregisterBlockType( 'billy-blocks/theme-mod', {\n\ttitle: __( 'Theme Mod', 'billy' ),\n\ticon: 'admin-generic', // https://developer.wordpress.org/resource/dashicons\n\tcategory: 'billy-blocks', // Custom category: see index.php\n\tattributes: {\n\t\tthemeMod: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tsupports: {\n\t\tinserter: false,\n\t\treusable: false,\n\t\thtml: false,\n\t},\n\n\tedit: props => {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tattributes: {\n\t\t\t\tthemeMod,\n\t\t\t},\n\t\t\tsetAttributes,\n\t\t} = props;\n\n\t\tconst updateThemeMod = val => {\n\t\t\tsetAttributes( { themeMod: val } );\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Theme Mod', 'billy' ) }>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Setting', 'billy' ) }\n\t\t\t\t\t\t\thelp={ __( 'Modify the value in the Theme Customizer.', 'billy' ) }\n\t\t\t\t\t\t\toptions={ globalDataBilly.themeModOptions }\n\t\t\t\t\t\t\tvalue={ themeMod }\n\t\t\t\t\t\t\tonChange={ updateThemeMod }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender block=\"billy-blocks/theme-mod\" attributes={ props.attributes } />\n\t\t\t\t</Disabled>\n\t\t\t</>\n\t\t);\n\t},\n\n\tsave: props => {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n} );\n","export const getCurrency = () => {\n\treturn globalDataBilly.currency;\n}\n\nexport const formatNumber = ( val, l = undefined ) => {\n\treturn val.toLocaleString( l, { 'minimumFractionDigits': 2, 'maximumFractionDigits': 2 } );\n}\n\nexport const percentToDecimal = val => {\n\treturn parseFloat( val ) / 100;\n}\n\nexport const getQuarter = d => {\n\td = new Date( d ) || new Date();\n\tvar q = [ 1, 2, 3, 4 ];\n\treturn q[ Math.floor( d.getMonth() / 3 ) ];\n}\n","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"editPost\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"plugins\"];","module.exports = window[\"wp\"][\"serverSideRender\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Import blocks\n */\n\nimport './_deprecated/header/index';\n\nimport './_invoice/actions/index';\nimport './_invoice/meta/index';\nimport './_invoice/date/index';\nimport './_invoice/duedate/index';\nimport './_invoice/invoice-number/index';\nimport './_invoice/paymentinformation/index';\nimport './_invoice/table/index';\n\nimport './_quote/actions/index';\nimport './_quote/meta/index';\nimport './_quote/date/index';\nimport './_quote/information/index';\nimport './_quote/table/index';\nimport './_quote/validuntildate/index';\n\nimport './_accounting/table/index';\nimport './_accounting/actions/index';\n\nimport './_settings/panel/index';\nimport './_settings/theme-mod/index';\n"],"names":["registerBlockType","__","_n","sprintf","withSelect","title","icon","category","supports","inserter","reusable","html","getEditWrapperProps","edit","select","postModifiedDate","getEditedPostAttribute","props","minHeight","Date","toLocaleString","save","formatNumber","percentToDecimal","deprecatedAccountingInner","attributes","index","type","default","currency","locale","date","quarter","reference","description","earning","expense","tax","postUUID","postTitle","postLink","postType","className","toISOString","substring","InnerBlocks","deprecatedAccountingOuter","amountTotalEarnings","amountTotalExpenses","amountTaxEarnings","amountTaxExpenses","InspectorControls","PanelBody","TextControl","DatePicker","dispatch","getQuarter","updateTotals","clientId","getBlocksByClientId","globalDataBilly","childBlocks","innerBlocks","sort","a","b","setAttributes","amountEarningsSum","amountExpensesSum","amountTaxEarningsSum","amountTaxExpensesSum","length","forEach","childBlock","Number","width","borderTop","deprecated","parent","getBlockRootClientId","getBlockIndex","rootClientId","i","reOrder","moveBlockToPosition","updateQuarter","val","updateDate","updateReference","updateEarning","updateExpense","updateTax","charAt","toUpperCase","minWidth","placeholder","content","Disabled","ServerSideRender","wpAdmin","RawHTML","label","text","updateLabel","updateInput","editEntityRecord","undefined","deprecatedInvoiceInner","taxRate","amount","amountIncl","quantity","quantityRate","deprecatedInvoiceOuter","amountSubtotal","amountTotal","taxRates","taxRatesTotal","JSON","parse","map","total","SelectControl","amountSubtotalSum","amountTotalSum","taxRatesTotalSum","taxRatesHolderOutput","taxRatesMergedOutput","push","reduce","res","value","toFixed","stringify","display","taxOptions","updateAmountIncl","setTimeout","document","getElementById","click","updateTaxRate","updateAmount","updateQuantity","updateQuantityRate","deprecatedQuoteInner","deprecatedQuoteOuter","registerPlugin","PluginDocumentSettingPanel","BillySetup","themeMod","render","updateThemeMod","themeModOptions","getCurrency","l","parseFloat","d","q","Math","floor","getMonth"],"sourceRoot":""}
     1{"version":3,"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;"],"sourceRoot":""}
  • billy/trunk/inc/class-billy.php

    r3008883 r3016777  
    629629     * Include block attributes in REST response.
    630630     * https://wordpress.stackexchange.com/questions/326688/why-my-admin-doesnt-work-after-adding-rest-prepare-post-filter
    631      * [TODO] Implement the following approach once included in core: https://github.com/WordPress/gutenberg/pull/18414
     631     *
    632632     *
    633633     * @param WP_REST_Response $response Response object.
     
    635635     * @param WP_REST_Request  $request  Request object.
    636636     *
    637      * @return object
     637     * @return
    638638     */
    639639    public function blocks_to_rest_api( $response, $post, $request ) {
    640         if ( ! function_exists( 'parse_blocks' ) ) {
     640        if ( ! function_exists( 'parse_blocks' ) ) {
    641641            return $response;
    642642        }
    643         if ( isset( $post ) ) {
    644             $response->data['blocks'] = parse_blocks( $post->post_content ); // https://developer.wordpress.org/reference/functions/parse_blocks
    645         }
     643
     644       
     645       
    646646
    647647        return $response;
  • billy/trunk/inc/class-pdfexport.php

    r3008883 r3016777  
    8383     */
    8484    public function billy_authorized_to_view_pdf() {
     85
     86
     87
     88
     89
    8590        return current_user_can( 'read_private_posts' );
    8691    }
  • billy/trunk/readme.txt

    r3008883 r3016777  
    33Donate link: https://them.es/plugins/billy
    44Tags: accounting, billing, invoices, quotes
    5 Requires at least: 5.4
     5Requires at least: 5.
    66Tested up to: 6.4
    7 Stable tag: 1.6.6
     7Stable tag: 1.
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    140140== Changelog ==
    141141
     142
     143
     144
     145
     146
    142147= 1.6.6 =
    143148* Restrict current_user_can() to users who can view/edit private posts
  • billy/trunk/vendor/composer/installed.php

    r3008883 r3016777  
    44        'pretty_version' => 'dev-main',
    55        'version' => 'dev-main',
    6         'reference' => '7544184b7321d872a2b010127b8d90d211f98c79',
     6        'reference' => '',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-main',
    1515            'version' => 'dev-main',
    16             'reference' => '7544184b7321d872a2b010127b8d90d211f98c79',
     16            'reference' => '',
    1717            'type' => 'library',
    1818            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.