Subversion Repositories wpShopGermany4

Compare Revisions

Ignore whitespace Rev 8269 → Rev HEAD

/mods/mod_rechnungen/invoice_pdf.phtml
34,9 → 34,6
$arCalculation = $this->view['basket']['arCalculation'];
if ($this->getFrontendTaxView() === WPSG_NETTO) $taxdisplay = 'netto';
else $taxdisplay = 'brutto';
// Damit die Steuer bei der Kleinunternehmerregelung nicht angezeigt wird leer ich den Array sicherheitshalber
if ( ($this->get_option('wpsg_kleinunternehmer') == '1') || ($this->view['oCalculationOrder']->getTaxMode() === \wpsg\wpsg_calculation::TAXMODE_SMALLBUSINESS) ) unset($this->view['basket']['mwst']);
199,16 → 196,20
if ($bNoTax) {
 
$discount_value = $this->view['basket']['arCalculation']['sum']['discount_netto'];
$discount_value = abs($this->view['basket']['arCalculation']['sum']['discount_netto']);
$shipping_cost = $this->view['basket']['arCalculation']['sum']['shipping_netto'];
$payment_cost = $this->view['basket']['arCalculation']['sum']['payment_netto'];
 
$taxdisplay = 'netto';
 
} else {
 
$discount_value = $this->view['basket']['arCalculation']['sum']['discount_brutto'];
$discount_value = abs($this->view['basket']['arCalculation']['sum']['discount_brutto']);
$shipping_cost = $this->view['basket']['arCalculation']['sum']['shipping_brutto'];
$payment_cost = $this->view['basket']['arCalculation']['sum']['payment_brutto'];
 
$taxdisplay = 'brutto';
 
}
 
$summe = 0;
216,7 → 217,9
$bKopf = false; $pnr = 1; $offset = 0; $count = 0;
foreach ($this->view['basket']['arCalculation']['product'] as $p)
{
$product = wpsg_product::getInstance($p['product_id']);
if (($p['product_key']??'') !== '') $product->setProductKey($p['product_key']);
 
if (!$bKopf)
{
256,8 → 259,8
if ($this->get_option('wpsg_mod_rechnungen_anr') == '1') $pdf->Cell(10, 8, $product->getNr(), 0, 0, 'C');
else $pdf->Cell(10, 8, $pnr.".", 0, 0, 'C');
if ($this->get_option('wpsg_rechnungen_pdetailname') == '1') $produkt_text = $this->getProductName($this->getProduktID($p['product_id']), true);
else $produkt_text = $this->getProductName($this->getProduktID($p['product_id']), false);
if ($this->get_option('wpsg_rechnungen_pdetailname') == '1') $produkt_text = $product->getProductName(true);
else $produkt_text = $product->getProductName(false);
 
$produktBeschreibung = trim(strip_tags($product->getShortDescription()));
451,7 → 454,8
} // produkte
if (wpsg_isSizedArray($this->view['basket']['arCalculation']['voucher'])) {
if (wpsg_isSizedArray($this->view['basket']['arCalculation']['voucher']))
{
foreach ($this->view['basket']['arCalculation']['voucher'] as $v) {
 
477,7 → 481,7
$gs_value_einzel = wpsg_ff($v[$taxdisplay.'_single'], $this->get_option('wpsg_currency'));
$gs_value_gesamt = wpsg_ff($v[$taxdisplay], $this->get_option('wpsg_currency'));
 
$pdf->setXY($prod_left + 127, $prod_top + $offset);
$pdf->Cell(25, 8, $gs_value_einzel, 1, 0, 'R');
491,7 → 495,7
}
 
// Versandkosten
if ( ($shipping_cost != '') && ($shipping_cost != 0) )
if ( ($shipping_cost != '') && ($shipping_cost != 0) )
{
$pdf->SetFont('Arial', '', 9);
504,12 → 508,21
if ($bTaxCol)
{
 
if ($this->arShipping[$this->view['data']['type_shipping']]['mwst_null'] == '1' && $bNoTax) $mwst = wpsg_ff(0.00, '%');
else {
// if ($this->arShipping[$this->view['data']['type_shipping']]['mwst_null'] == '1' && $bNoTax)
// {
if ($bNoTax)
{
$mwst = wpsg_ff(0.00, '%');
 
} else {
if ($this->view['basket']['arCalculation']['shipping'][0]['tax_key'] === '0') $mwst = _('anteilig');
else {
if ($this->view['basket']['arCalculation']['shipping'][0]['tax_key'] === '0') {
$mwst = _('anteilig');
 
} else {
 
$mwst = wpsg_ff($this->view['basket']['arCalculation']['shipping'][0]['tax'], '%');
$mwst = wpsg_ff($this->view['basket']['arCalculation']['tax'][$this->view['basket']['arCalculation']['shipping'][0]['tax_key']]['tax_value'], '%');
549,7 → 562,9
if ($bTaxCol)
{
if ($this->arPayment[$this->view['data']['type_payment']]['mwst_null'] == '1' && $bNoTax)
// if ($this->arPayment[$this->view['data']['type_payment']]['mwst_null'] == '1' && $bNoTax)
// {
if ($bNoTax)
{
 
$mwst = wpsg_ff(0.00, '%');
636,8 → 651,21
$pdf->Cell(37, 8, $this->view['kunde']['ustidnr'], 0, 0, 'R');
}
$offset += 10; // Abstand zwischen Tabelle und Auswertung
$offset += 5; // Abstand zwischen Tabelle und Rabatt
 
// Rabatt
if ($discount_value > 0)
{
 
$offset += 5;
$pdf->Text($prod_left + 80, $prod_top + $offset, __("Rabatt", "wpsg"));
$pdf->setXY($prod_left + 140, $prod_top + $offset - 5);
$pdf->Cell(37, 8, '-'.wpsg_ff($discount_value, $this->get_option('wpsg_currency')), 0, 0, 'R');
}
 
$offset += 5; // Abstand zwischen Rabatt und Auswertung
 
if ( ($this->get_option('wpsg_kleinunternehmer') == '1') || ($this->view['oCalculationOrder']->getTaxMode() === \wpsg\wpsg_calculation::TAXMODE_SMALLBUSINESS) )
{
644,7 → 672,7
$pdf->Text($prod_left, $prod_top + $offset, __("Es ergibt sich folgender Gesamtbetrag", "wpsg").':');
$pdf->Text($prod_left + 80, $prod_top + $offset, __("Summe", "wpsg"));
$pdf->setXY($prod_left + 140, $prod_top + $offset - 5);
$pdf->Cell(37, 8, wpsg_ff($this->view['basket']['arCalculation']['sum']['brutto'] + $this->view['basket']['arCalculation']['sum']['discount_brutto'], $this->get_option('wpsg_currency')), 0, 0, 'R');
$pdf->Cell(37, 8, wpsg_ff($this->view['basket']['arCalculation']['sum']['brutto'], $this->get_option('wpsg_currency')), 0, 0, 'R');
if ( !$bNoTax || ($arCalculation['sum']['topay_brutto'] != $arCalculation['sum']['brutto']) ) $offset += 5;
 
} else {
651,12 → 679,11
if ($bNoTax)
{
 
$pdf->Text($prod_left, $prod_top + $offset, __("Es ergibt sich folgender Gesamtbetrag", "wpsg").':');
$pdf->Text($prod_left + 80, $prod_top + $offset, __("Summe", "wpsg"));
$pdf->setXY($prod_left + 140, $prod_top + $offset - 5);
$pdf->Cell(37, 8, wpsg_ff($this->view['basket']['arCalculation']['sum']['brutto'] + $this->view['basket']['arCalculation']['sum']['discount_brutto'], $this->get_option('wpsg_currency')), 0, 0, 'R');
//if ( !$bNoTax || ($arCalculation['sum']['topay_brutto'] != $arCalculation['sum']['brutto']) )
$pdf->Cell(37, 8, wpsg_ff($this->view['basket']['arCalculation']['sum']['brutto'], $this->get_option('wpsg_currency')), 0, 0, 'R');
$offset += 5;
 
if ( !(($this->view['oOrder']->isInnerEu() || $deliverycountrytax) && ($this->view['oCalculationOrder']->getTaxMode() === \wpsg\wpsg_calculation::TAXMODE_B2B)) ) {
701,7 → 728,7
$pdf->Text($prod_left + 80, $prod_top + $offset, __("NETTOBETRAG", "wpsg"));
$pdf->setXY($prod_left + 140, $prod_top + $offset - 5);
$pdf->Cell(37, 8, wpsg_ff($this->view['basket']['arCalculation']['sum']['netto'] + $this->view['basket']['arCalculation']['sum']['discount_netto'], $this->get_option('wpsg_currency')), 0, 0, 'R');
$pdf->Cell(37, 8, wpsg_ff($this->view['basket']['arCalculation']['sum']['topay_netto'], $this->get_option('wpsg_currency')), 0, 0, 'R');
if (sizeof($this->view['basket']['arCalculation']['tax']) >= 1)
{
738,17 → 765,6
}
}
// Rabatt
if ($discount_value > 0)
{
$offset += 5;
$pdf->Text($prod_left + 80, $prod_top + $offset, __("Rabatt", "wpsg"));
$pdf->setXY($prod_left + 140, $prod_top + $offset - 5);
$pdf->Cell(37, 8, '-'.wpsg_ff($discount_value, $this->get_option('wpsg_currency')), 0, 0, 'R');
}
 
// Wertgutschein
if ( $arCalculation['sum']['topay_brutto'] != $arCalculation['sum']['brutto'] ) {
924,7 → 940,7
} else {
$pdf->Output($oInvoice->getFilePath(), 'F');
if (($this->view['rebuild']??false) === false) $pdf->Output($oInvoice->getFilePath(), 'F');
// Hier wird der Dateiname an FPD übergeben. Er soll sich aus der Rechnungsnummer ergeben, auch wenn das Dokument über die ID gespeichert ist.
if ($this->view['output'] === true) $pdf->Output($this->view['filename_out'], 'I');
/produkttemplates/standard.phtml
5,7 → 5,7
*/
 
//Ausgabe der verfügbaren Variablen
//wpsg_debug($this->view['data']);
// wpsg_debug($this->view['data']);
 
// Damit keine Zubehörprodukte ausgegeben werden
//$this->noReleatedProducts = true;
12,7 → 12,8
 
/** @var wpsg_product $oProduct */
$oProduct = $this->view['oProduct'];
 
if (($this->view['data']['product_key']??'') !== '') $oProduct->setProductKey($this->view['data']['product_key']);
?>
 
<div class="wpsg_produkt_wrapper">
19,11 → 20,11
 
<input type="hidden" name="wpsg_post_id" value="<?php echo get_the_ID(); ?>" />
<input type="hidden" name="titleDisplayed" value="<?php echo $this->titleDisplayed; ?>" />
 
<div class="wpsg_produkt wpsg_product_name">
 
<?php if (!$this->titleDisplayed) { ?>
<h1 class="wpsg_producttitle"><?php echo $this->getProductName($this->view['data']['id']); ?></h1>
<h1 class="wpsg_producttitle"><?php echo $oProduct->getProductName(); ?></h1>
<h2 class="wpsg_productdetailtitle"><?php echo $this->view['data']['detailname']; ?></h2>
<?php } ?>
 
35,11 → 36,15
 
<div itemscope itemtype="http://schema.org/Product" class="wpsg_produkt wpsg_produkt_<?php echo $this->view['data']['id']; ?>">
 
<meta itemprop="name" content="<?php echo wpsg_hspc($this->getProductName($this->view['data']['id'])); ?>" />
<meta itemprop="sku" content="<?php echo wpsg_hspc($oProduct->getProductNr()); ?>" />
<meta itemprop="gtin13" content="<?php echo wpsg_hspc($oProduct->getEAN()); ?>" />
<meta itemprop="detailname" content="<?php echo wpsg_hspc($this->view['data']['detailname']); ?>" />
 
<meta itemprop="name" content="<?php echo wpsg_hspc($oProduct->getProductName()); ?>" />
<meta itemprop="detailname" content="<?php echo wpsg_hspc($this->view['data']['detailname']); ?>" />
<?php foreach ($oProduct->getAllProductCodes() as $product_code) { ?>
<?php if ($product_code['itemprop'] !== null) { ?>
<meta itemprop="<?php echo $product_code['itemprop']; ?>" content="<?php echo $product_code['code']; ?>" />
<?php } ?>
<?php } ?>
<?php /* Block für die Produktbilder START */ ?>
<?php
63,7 → 68,7
 
<meta itemprop="image" content="<?php echo $att[0]; ?>" />
 
<a <?php if ($arAttachmentIDsAll[$i] != $arAttachmentID) echo 'style="display:none;"'; ?> rel="gallery-wpsg-<?php echo $this->getTemplateIndex(); ?>" title="<?php echo $this->getProductName($this->view['data']['id']); ?>" href="<?php echo $att[0]; ?>" class="thickbox">
<a <?php if ($arAttachmentIDsAll[$i] != $arAttachmentID) echo 'style="display:none;"'; ?> rel="gallery-wpsg-<?php echo $this->getTemplateIndex(); ?>" title="<?php echo $oProduct->getProductName(); ?>" href="<?php echo $att[0]; ?>" class="thickbox">
 
<?php echo wp_get_attachment_image($arAttachmentIDsAll[$i], array(300, 300), false, array()); ?>
79,13 → 84,23
 
<?php if ($this->get_option('wpsg_showArticelnumber') == '1') { ?>
<div class="wpsg_artikelnummer">
<?php echo __('Artikelnummer', 'wpsg'); ?>: <span class="wpsg_anr"><?php echo wpsg_hspc($this->view['data']['anr']); ?></span><br />
<?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_ean'))) {?>
<?php echo __('EAN','wpsg');?>:<span class="wpsg_ean"><?php echo wpsg_hspc($this->view['data']['ean']); ?></span><br />
<?php echo __('Artikelnummer', 'wpsg'); ?>: <span class="wpsg_anr"><?php echo wpsg_hspc($oProduct->getNr()); ?></span><br />
</div>
<?php } ?>
<?php $arProductCodes = $oProduct->getAllProductCodes(); ?>
<?php if (sizeof($arProductCodes) > 0) { ?>
<div class="product_code_wrap">
<?php foreach ($arProductCodes as $product_code) { ?>
<?php if ($product_code !== null) { ?>
<div class="product_code <?php echo $product_code['code_key']; ?>">
<span class="label"><?php echo $product_code['label']; ?></span>: <span class="code"><?php echo $product_code['code']; ?></span>
</div>
<?php } ?>
<?php } ?>
<?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_gtin'))) {?>
<?php echo __('GTIN','wpsg');?>:<span class="wpsg_gtin"><?php echo wpsg_hspc($this->view['data']['gtin']); ?></span><br />
<?php }?></div>
</div>
<?php } ?>
 
<?php /* Abfrage Preisanzeige nur für eingeloggte User aktiv und User eingeloggt START*/ ?>
164,7 → 179,7
 
<?php }?>
<?php /* Abfrage Preisanzeige nur für eingeloggte User aktiv und User eingeloggt ENDE */ ?>
 
<div itemprop="description" class="wpsg_produkt_shortdescription">
<span><?php echo $this->view['data']['shortdesc']; ?></span>
/order/index.phtml
79,7 → 79,7
<select name="filter[cdate_m]" class="form-control input-sm">
<option value="-1"><?php echo __("Alle", "wpsg"); ?></option>
<?php for ($i = 1; $i <= 12; $i ++) { ?>
<option <?php echo ((wpsg_getStr($this->view['arFilter']['cdate_m']) == $i)?'selected="selected"':''); ?> value="<?php echo str_pad($i, 2, '0', STR_PAD_LEFT); ?>"><?php echo strftime("%B", mktime(0, 0, 0, $i, 1, 2000)); ?></option>
<option <?php echo ((wpsg_getStr($this->view['arFilter']['cdate_m']) == $i)?'selected="selected"':''); ?> value="<?php echo str_pad($i, 2, '0', STR_PAD_LEFT); ?>"><?php echo __(date('F', mktime(0, 0, 0, $i, 1, 2000))); ?></option>
<?php } ?>
</select>
</div>
488,7 → 488,35
}
});
 
let buttonClicked = false;
document.getElementById('doaction').addEventListener('click', (event) => {
 
if (buttonClicked) {
 
event.preventDefault();
return false;
 
}
 
// Button deaktivieren und ausgrauen
document.getElementById('doaction').style.opacity = '0.5';
document.getElementById('doaction').style.pointerEvents = 'none';
 
// Button nach 4 Sekunden wieder aktivieren
setTimeout(() => {
 
document.getElementById('doaction').style.opacity = '1';
document.getElementById('doaction').style.pointerEvents = 'auto';
buttonClicked = false;
 
}, 4000);
 
buttonClicked = true;
return true;
 
});
 
</script>
 
<div class="multiRechnung_tab" id="multiRechnung_inform" style="padding: 15px 0 15px 0; display:none;">
560,6 → 588,35
}
});
 
// let buttonClicked = false;
 
// document.getElementById('wpsg_mod_rechnungen_button_submit').addEventListener('click', (event) => {
 
// if (buttonClicked) {
 
// event.preventDefault();
// return false;
 
// }
 
// // Button deaktivieren und ausgrauen
// document.getElementById('wpsg_mod_rechnungen_button_submit').style.opacity = '0.5';
// document.getElementById('wpsg_mod_rechnungen_button_submit').style.pointerEvents = 'none';
 
// // Button nach 4 Sekunden wieder aktivieren
// setTimeout(() => {
 
// document.getElementById('wpsg_mod_rechnungen_button_submit').style.opacity = '1';
// document.getElementById('wpsg_mod_rechnungen_button_submit').style.pointerEvents = 'auto';
// buttonClicked = false;
 
// }, 4000);
 
// buttonClicked = true;
// return true;
 
// });
</script>
/order/backendEdit/editPayShipping.phtml
51,7 → 51,7
?>
 
<div id="editPayShipping">
<?php wpsg_debug($price_shipping); ?>
<?php echo wpsg_drawForm_Select('edit_shipping_type', __('Versandart', 'wpsg'), $arShippingSelect,$this->view['data']['type_shipping']); ?>
<?php echo wpsg_drawForm_Input('edit_shipping_price', __('Kosten', 'wpsg').$price_suffix, $price_shipping); ?>
/mods/mod_rechnungen/order_view.phtml
30,17 → 30,25
<div>
<?php echo $oInvoice->getNr(true); ?>
</div>
<div style="text-align:right;">
<div style="text-align:right; white-space:nowrap;">
 
<?php /*
<a target="_blank" href="<?php
echo wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&mod=wpsg_mod_rechnungen&noheader=1&action=ajax&edit_id='.$_REQUEST['edit_id'].'&r_id='.$r['id'].'&do=rebuildadmin', 'wpsg-mod_invoice-order_ajax-rebuildadmin-'.$_REQUEST['edit_id']);
?>" style="color:red;"><?php echo __('Neu erstellen', 'wpsg'); ?></a>
*/ ?>
<a target="_blank" onclick="if (!confirm('<?php echo __('Sind Sie sicher, dass Sie eine Kopie dieser Rechnung/Rechnungskorrektur erneut an den Kunden senden möchten?', 'wpsg'); ?>')) return false;" href="<?php
if ($r['o_id'] == '0') {
// Multirechnung
$r_o_ids = array_map('intval', explode(',', $r['o_ids']));
echo wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&mod=wpsg_mod_rechnungen&noheader=1&action=ajax&edit_id='.$r_o_ids[0].'&r_id='.$r['id'].'&do=copy', 'wpsg-mod_invoice-order_ajax-copy-'.$r_o_ids[0]);
echo wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&mod=wpsg_mod_rechnungen&noheader=1&action=ajax&edit_id='.$_REQUEST['edit_id'].'&r_id='.$r['id'].'&do=copy', 'wpsg-mod_invoice-order_ajax-copy-'.$_REQUEST['edit_id']);
} else {
// normale Rechnung
echo wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&mod=wpsg_mod_rechnungen&noheader=1&action=ajax&edit_id='.$this->view['data']['id'].'&r_id='.$r['id'].'&do=copy', 'wpsg-mod_invoice-order_ajax-copy-'.$this->view['data']['id']);
echo wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&mod=wpsg_mod_rechnungen&noheader=1&action=ajax&edit_id='.$_REQUEST['edit_id'].'&r_id='.$r['id'].'&do=copy', 'wpsg-mod_invoice-order_ajax-copy-'.$_REQUEST['edit_id']);
}
 
?>"><?php echo ' &nbsp;'.__("Kopie senden", "wpsg"); ?></a>&nbsp;
59,6 → 67,6
<style>
#wpsg_mod_rechnungen_order_view .grid { display:grid; width:100%; grid-template-columns:150px 1fr 100px; row-gap:0.25rem; }
#wpsg_mod_rechnungen_order_view .grid { display:grid; width:100%; grid-template-columns:150px 1fr 250px; row-gap:0.25rem; column-gap:1rem; }
</style>
/produkt/addedit_productcodes.phtml
0,0 → 1,156
<?php
declare(strict_types=1);
/**
* Template für die Anzeige der Produktcodes
* @author: Daniel Schmitzer (daschmi@daschmi.de)
* @date: 24.04.23
* @time: 13:16
*/
namespace wpsg;
 
?>
 
<div class="general-panel-block">
<div class="general-panel-general">
<?php echo wpsg_drawForm_AdminboxStart(__('Productcodes', 'wpsg')); ?>
<?php if (intval($this->view['data']['id']) > 0) {
/** @var \wpsg_product $oProduct */
$oProduct = \wpsg_product::getInstance(intval($this->view['data']['id']));
$arData = [];
foreach (\wpsg_product::getProductCodeConfig() as $code_key => $code_data) {
$product_code = $oProduct->getMeta($code_key, false, '');
$arData[$code_key] = [
'label' => $code_data['label'],
'code_key' => $code_key,
'code' => trim($product_code),
'set' => trim($product_code) !== ''
];
}
?>
<div id="wpsg_mod_productcodes_app">
<template v-if="codeKeyNotSet.length > 0">
<div class="form-group form-group-sm has-feedback">
<label class="col-sm-6 control-label" for="metaean">Code hinzufügen</label>
<div class="col-sm-6">
<div class="wpsg_field_wrap">
<select class="form-control input-sm" v-model="add_code_key">
<option v-for="(code_key, i) of codeKeyNotSet" :value="code_key">{{data[code_key].label}}</option>
</select>
<a @click.stop.prevent="add()" href="#" class="glyphicon glyphicon glyphicon-plus form-control-feedback" aria-hidden="true" style="pointer-events: auto;"></a>
</div>
</div>
<div class="clearfix wpsg_clear"></div>
</div>
<hr />
</template>
<div class="code_wrap">
<template v-for="(code, i) of data">
<div class="form-group form-group-sm has-feedback" v-if="code.set === true">
<label class="col-sm-6 control-label" for="metaean">{{code.label}}</label>
<div class="col-sm-6">
<div class="wpsg_field_wrap">
<input type="text" class="form-control input-sm" :value="code.code" :name="'meta[' + code.code_key + ']'" />
<a @click.stop.prevent="remove(code.code_key)" href="#" class="glyphicon glyphicon glyphicon-trash form-control-feedback" aria-hidden="true" style="pointer-events: auto;"></a>
</div>
</div>
<div class="clearfix wpsg_clear"></div>
</div>
<input v-else type="hidden" value="" :name="'meta[' + code.code_key + ']'" />
</template>
</div>
</div>
<?php $GLOBALS['wpsg_vue_3.2.47_loaded'] = ($GLOBALS['wpsg_vue_3.2.47_loaded']??0) + 1; if ($GLOBALS['wpsg_vue_3.2.47_loaded'] <= 1) { ?>
<script src="<?php echo WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/views/js/vue-3.2.47.global.min.js'; ?>"></script>
<?php } ?>
<script>
 
(() => {
 
const ref = Vue.ref;
const computed = Vue.computed;
const onMounted = Vue.onMounted;
 
const app = Vue.createApp({
setup() {
 
const data = ref(<?php echo json_encode($arData); ?>);
const add_code_key = ref(undefined);
 
const codeKeyNotSet = computed(() => {
 
let r = [];
for (let c of Object.values(data.value)) {
 
if (c.set !== true) r.push(c.code_key);
}
return r;
 
});
const add = () => {
 
if (add_code_key.value !== undefined && codeKeyNotSet.value.includes(add_code_key.value)) {
 
data.value[add_code_key.value].set = true;
 
}
};
const remove = (code_key) => {
 
data.value[code_key].set = false;
};
 
return {
data, add_code_key,
codeKeyNotSet,
add, remove
};
 
}
}).mount('#wpsg_mod_productcodes_app');
 
})();
</script>
<br />
<p class="wpsg_hinweis">
<?php if (\wpsg_ShopController::getShop()->hasMod('wpsg_mod_productvariants')) { ?>
Ist das Produkt ein Variantenprodukt, können die Codes unter Produktvarianten für einzelne Variationen überschrieben werden.<br />
<?php } ?>
Änderungen müssen mit speichern bestätigt werden.
</p>
<?php } else { ?>
<p><?php echo __('Bitte Produkt erst speichern.', 'wpsg'); ?></p>
<?php } ?>
<?php echo wpsg_drawForm_AdminboxEnd(); ?>
</div>
</div>
/mods/mod_rechnungen/accounting_pdf.phtml
33,9 → 33,6
$prod_break = $this->get_option('wpsg_rechnungen_pdfperpage');
$arCalculation = $this->view['basket']['arCalculation'];
if ($this->getFrontendTaxView() === WPSG_NETTO) $taxdisplay = 'netto';
else $taxdisplay = 'brutto';
 
// Damit die Steuer bei der Kleinunternehmerregelung nicht angezeigt wird leer ich den Array sicherheitshalber
if ( ($this->get_option('wpsg_kleinunternehmer') == '1') || ($this->view['oCalculationOrder']->getTaxMode() === \wpsg\wpsg_calculation::TAXMODE_SMALLBUSINESS) ) unset($this->view['basket']['mwst']);
175,7 → 172,6
if ($this->get_option('wpsg_showMwstAlways') === '1') $bTaxCol = true;
else if (!$bNoTax) $bTaxCol = true;
 
 
if ($bNoTax) {
 
$discount_value = $this->view['basket']['arCalculation']['sum']['discount_netto'];
182,6 → 178,8
$shipping_cost = $this->view['basket']['arCalculation']['sum']['shipping_netto'];
$payment_cost = $this->view['basket']['arCalculation']['sum']['payment_netto'];
 
$taxdisplay = 'netto';
 
} else {
 
$discount_value = $this->view['basket']['arCalculation']['sum']['discount_brutto'];
188,6 → 186,8
$shipping_cost = $this->view['basket']['arCalculation']['sum']['shipping_brutto'];
$payment_cost = $this->view['basket']['arCalculation']['sum']['payment_brutto'];
 
$taxdisplay = 'brutto';
 
}
$summe = 0;
483,11 → 483,20
if ($bTaxCol)
{
if ($this->arShipping[$this->view['data']['type_shipping']]['mwst_null'] == '1' && $bNoTax) $mwst = wpsg_ff(0.00, '%');
else {
// if ($this->arShipping[$this->view['data']['type_shipping']]['mwst_null'] == '1' && $bNoTax) $mwst = wpsg_ff(0.00, '%');
// {
if ($bNoTax)
{
 
$mwst = wpsg_ff(0.00, '%');
 
} else {
if ($this->view['basket']['arCalculation']['shipping'][0]['tax_key'] === '0') $mwst = _('anteilig');
else {
if ($this->view['basket']['arCalculation']['shipping'][0]['tax_key'] === '0') {
$mwst = _('anteilig');
 
} else {
$mwst = wpsg_ff($this->view['basket']['arCalculation']['shipping'][0]['tax'], '%');
$mwst = wpsg_ff($this->view['basket']['arCalculation']['tax'][$this->view['basket']['arCalculation']['shipping'][0]['tax_key']]['tax_value'], '%');
528,7 → 537,9
if ($bTaxCol)
{
if ($this->arPayment[$this->view['data']['type_payment']]['mwst_null'] == '1' && $bNoTax)
// if ($this->arPayment[$this->view['data']['type_payment']]['mwst_null'] == '1' && $bNoTax)
// {
if ($bNoTax)
{
 
$mwst = wpsg_ff(0.00, '%');
615,8 → 626,21
$pdf->Cell(37, 8, $this->view['kunde']['ustidnr'], 0, 0, 'R');
}
$offset += 10; // Abstand zwischen Tabelle und Auswertung
$offset += 5; // Abstand zwischen Tabelle und Rabatt
 
// Rabatt
if ($discount_value > 0)
{
$offset += 5;
$pdf->Text($prod_left + 80, $prod_top + $offset, __("Rabatt", "wpsg"));
$pdf->setXY($prod_left + 140, $prod_top + $offset - 5);
$pdf->Cell(37, 8, '-'.wpsg_ff($discount_value, $this->get_option('wpsg_currency')), 0, 0, 'R');
}
 
$offset += 5; // Abstand zwischen Rabatt und Auswertung
 
if ( ($this->get_option('wpsg_kleinunternehmer') == '1') || ($this->view['oCalculationOrder']->getTaxMode() === \wpsg\wpsg_calculation::TAXMODE_SMALLBUSINESS) )
{
623,9 → 647,10
$pdf->Text($prod_left, $prod_top + $offset, __("Es ergibt sich folgender Gesamtbetrag", "wpsg").':');
$pdf->Text($prod_left + 80, $prod_top + $offset, __("Summe", "wpsg"));
$pdf->setXY($prod_left + 140, $prod_top + $offset - 5);
$pdf->Cell(37, 8, wpsg_ff($this->view['basket']['arCalculation']['sum']['brutto'] + $this->view['basket']['arCalculation']['sum']['discount_brutto'], $this->get_option('wpsg_currency')), 0, 0, 'R');
if ( !$bNoTax || ($arCalculation['sum']['topay_brutto'] != $arCalculation['sum']['brutto']) ) $offset += 5;
$pdf->Cell(37, 8, wpsg_ff($this->view['basket']['arCalculation']['sum']['brutto'], $this->get_option('wpsg_currency')), 0, 0, 'R');
 
$offset += 5;
 
} else {
if ($bNoTax)
680,7 → 705,7
$pdf->Text($prod_left + 80, $prod_top + $offset, __("NETTOBETRAG", "wpsg"));
$pdf->setXY($prod_left + 140, $prod_top + $offset - 5);
$pdf->Cell(37, 8, wpsg_ff($this->view['basket']['arCalculation']['sum']['netto'] + $this->view['basket']['arCalculation']['sum']['discount_netto'], $this->get_option('wpsg_currency')), 0, 0, 'R');
$pdf->Cell(37, 8, wpsg_ff($this->view['basket']['arCalculation']['sum']['topay_netto'], $this->get_option('wpsg_currency')), 0, 0, 'R');
if (sizeof($this->view['basket']['arCalculation']['tax']) >= 1)
{
717,17 → 742,6
}
}
// Rabatt
if ($discount_value > 0)
{
$offset += 5;
$pdf->Text($prod_left + 80, $prod_top + $offset, __("Rabatt", "wpsg"));
$pdf->setXY($prod_left + 140, $prod_top + $offset - 5);
$pdf->Cell(37, 8, '-'.wpsg_ff($discount_value, $this->get_option('wpsg_currency')), 0, 0, 'R');
}
 
// Wertgutschein
if ( $arCalculation['sum']['topay_brutto'] != $arCalculation['sum']['brutto'] ) {
/css/frontend.css
555,4 → 555,30
/* wpsg_mod_amazon_v2 */
#AmazonPayButton_wrap { text-align:right; margin-bottom:2rem; width:100%; justify-content:flex-end; display:flex; }
#AmazonPayButton_wrap #AmazonPayButton { width:210px; }
#AmazonLoginButton_wrap { text-align:right; margin-bottom:2rem; width:100%; justify-content:flex-end; display:flex; }
#AmazonLoginButton_wrap { text-align:right; margin-bottom:2rem; width:100%; justify-content:flex-end; display:flex; }
 
/* wpsg_mod_prepayment - QR-Code auf Bestellabschlussseite */
.wpsg_mod_prepayment_info_wrap { display:flex; justify-content:center; flex-direction:column; gap:20px; }
.wpsg_mod_prepayment_info { display: flex; gap: 20px; border: 1px solid #000000; padding: 20px; }
.wpsg_mod_prepayment_info h4{ margin: 0; }
.wpsg_mod_prepayment_info_left { display: flex; flex-direction: column; }
.wpsg_mod_prepayment_info_left_qrcodeimg { width:240px; height:240px; }
.wpsg_mod_prepayment_info_left_wrap { display:flex; gap:25%; }
.wpsg_mod_prepayment_info_left_currency { display:flex; flex-direction:column; }
.wpsg_mod_prepayment_info_left_amount { display:flex; flex-direction:column; }
 
.wpsg_mod_prepayment_girocode { display: flex; gap: 20px; border: 1px solid #000000; padding: 20px;}
.wpsg_mod_prepayment_girocode h4{ margin: 0; }
.wpsg_mod_prepayment_girocode_left { display: flex; flex-direction: column; }
.wpsg_mod_prepayment_girocode_left_qrcodeimg { width:240px; height:240px; }
.wpsg_mod_prepayment_girocode_left_wrap { display:flex; gap:25%; }
.wpsg_mod_prepayment_girocode_left_currency { display:flex; flex-direction:column; }
.wpsg_mod_prepayment_girocode_left_amount { display:flex; flex-direction:column; }
 
.wpsg_mod_prepayment_qrrechnung { display: flex; gap: 20px; border: 1px solid #000000; padding: 20px; }
.wpsg_mod_prepayment_qrrechnung h4{ margin: 0; }
.wpsg_mod_prepayment_qrrechnung_left { display: flex; flex-direction: column; }
.wpsg_mod_prepayment_qrrechnung_left_qrcodeimg { width:240px; height:240px; }
.wpsg_mod_prepayment_qrrechnung_left_wrap { display:flex; gap:25%; }
.wpsg_mod_prepayment_qrrechnung_left_currency { display:flex; flex-direction:column; }
.wpsg_mod_prepayment_qrrechnung_left_amount { display:flex; flex-direction:column; }
/mods/mod_rechnungen/multi_invoice_pdf.phtml
286,7 → 286,7
if ($this->get_option('wpsg_mod_rechnungen_anr') == '1') {
$pdf->Cell(10, 8, $oOrderProduct->getProduct()->getProductNr(), 0, 0, 'C');
$pdf->Cell(10, 8, $oOrderProduct->getProduct()->getNr(), 0, 0, 'C');
} else {
/mailtemplates/html/customer.phtml
169,12 → 169,28
require_once WPSG_PATH_LIB.'phpgirocode.class.php';
if (isset($this->view['mod_prepayment']['subject'])) {
if (isset($this->view['mod_prepayment']['subject']) && ($this->get_option('wpsg_mod_prepayment_qrcode') == true)) {
if (in_array('kundenmail.phtml', $this->arTemplateStack)) {
 
echo $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 3, PhpGirocode::OUTPUT_FILE));
if ($this->get_option('wpsg_mod_prepayment_qrcode_country') == '0') {
 
$qrcodes = array();
$qrcodes = $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['wpsg_mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 3, PhpGirocode::OUTPUT_FILE, $this->get_option('wpsg_mod_prepayment_qrcode_country'), $this->view['basket']));
 
foreach ($qrcodes as $qr) echo $qr;
 
} else if ($this->get_option('wpsg_mod_prepayment_qrcode_country') == '1') {
 
echo $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 3, PhpGirocode::OUTPUT_FILE, $this->get_option('wpsg_mod_prepayment_qrcode_country'), $this->view['basket']));
 
} else if ($this->get_option('wpsg_mod_prepayment_qrcode_country') == '2') {
 
echo $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 3, PhpGirocode::OUTPUT_FILE, $this->get_option('wpsg_mod_prepayment_qrcode_country'), $this->view['basket']));
 
}
 
}
}
/mods/mod_prepayment/order_done.phtml
7,6 → 7,7
//wpsg_debug($this->view['wpsg_mod_prepayment']['subject']);
?>
 
<?php echo wpsg_translate(__('Sie haben die Zahlungsart "Vorkasse" gewählt. Überweisen Sie daher den Rechnungsbetrag von #1# auf folgendes Konto:', 'wpsg'), wpsg_ff($this->view['basket']['arCalculation']['sum']['topay_brutto'], $this->get_option('wpsg_currency'))); ?>
<br /><br />
<?php echo wpsg_translate(__('Kontoinhaber: #1#', 'wpsg'), $this->replaceUniversalPlatzhalter($this->get_option('wpsg_mod_prepayment_kinhaber'))); ?><br />
15,21 → 16,169
<?php echo wpsg_translate(__('BIC-/SWIFT-Code: #1#', 'wpsg'), $this->replaceUniversalPlatzhalter($this->get_option('wpsg_mod_prepayment_swift'))); ?>
<br /><br />
<?php echo wpsg_translate(__('Bitte als Betreff angeben: "#1#"', 'wpsg'), $this->view['wpsg_mod_prepayment']['subject']); ?>
<br /><br />
 
<?php if (isset($this->view['wpsg_mod_prepayment']['subject'])) { ?>
<p>
<?php echo __('Wenn Ihre Banking-App Girocode unterstützt, können Sie diesen QRCode scannen.', 'wpsg'); ?>
</p>
<?php
require_once WPSG_PATH_LIB.'phpgirocode.class.php';
$img = $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['wpsg_mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 8, PhpGirocode::OUTPUT_BASE64));
echo '<img src="data:image/png;base64,'.$img.'" />';
<?php if ( isset($this->view['wpsg_mod_prepayment']['subject']) && ($this->get_option('wpsg_mod_prepayment_qrcode') == true) ) { ?>
 
<?php require_once WPSG_PATH_LIB.'phpgirocode.class.php'; ?>
 
<?php if ($this->get_option('wpsg_mod_prepayment_qrcode_country') == '0') { ?>
?>
<!-- Girocode und QR-Rechnung -->
 
<?php
 
try {
$img = array();
$img = $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['wpsg_mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 10, PhpGirocode::OUTPUT_BASE64, $this->get_option('wpsg_mod_prepayment_qrcode_country'), $this->view['basket']));
?>
<div class="wpsg_mod_prepayment_info_wrap">
<?php foreach ($img as $i) { ?>
<div class="wpsg_mod_prepayment_info">
<div class="wpsg_mod_prepayment_info_left">
<div class="wpsg_mod_prepayment_info_left_qr-download">
<h4><?php echo wpsg_translate(__($i['title'], $wpsg)); ?></h4>
<?php if (isset($i['filepath'])) { ?><a title="Downloadlink für die QR-Rechnung" target="_blank" href="<?php echo $this->callMod('wpsg_mod_prepayment', 'getFrontendLink', [$i['order_id']]); ?>"><i class="fa fa-download" aria-hidden="true"></i></a><?php } ?>
</div>
<br />
<?php echo '<img class="wpsg_mod_prepayment_info_left_qrcodeimg" src="data:image/png;base64,'.$i['hash'].'" />'; ?>
<br />
<div class="wpsg_mod_prepayment_info_left_wrap">
<div class="wpsg_mod_prepayment_info_left_currency">
<h4><?php echo wpsg_translate(__('Währung', $wpsg)); ?></h4>
<?php echo $this->get_option('wpsg_currency'); ?>
</div>
<div class="wpsg_mod_prepayment_info_left_amount">
<h4><?php echo wpsg_translate(__('Betrag', $wpsg)); ?></h4>
<?php echo sprintf("%.2f", $i['invoiceAmount']); ?>
</div>
</div>
</div>
<div class="wpsg_mod_prepayment_info_right">
<h4><?php echo wpsg_translate(__('Konto / Zahlbar an', $wpsg)); ?></h4>
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_mod_prepayment_iban')); ?><br />
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_mod_prepayment_kinhaber')); ?><br />
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_shopdata_street')); ?><br />
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_shopdata_zip')).' '.$this->replaceUniversalPlatzhalter($this->get_option('wpsg_shopdata_city')); ?><br />
<?php if (!empty($i['referenceNumber'])) { ?>
<h4><?php echo wpsg_translate(__('Referenz', $wpsg)); ?></h4>
<?php echo $i['referenceNumber']; ?><br />
<?php } ?>
<h4><?php echo wpsg_translate(__('Zusätzliche Informationen', $wpsg)); ?></h4>
<?php echo $i['additionalInformation']; ?><br />
<h4><?php echo wpsg_translate(__('Zahlbar durch', $wpsg)); ?></h4>
<?php echo $i['customerdata']['vname'].' '.$i['customerdata']['name']; ?><br />
<?php echo $i['customerdata']['strasse'].' '.$i['customerdata']['nr']; ?><br />
<?php echo $i['customerdata']['plz'].' '.$i['customerdata']['ort']; ?><br />
</div>
</div>
<?php } ?>
</div>
 
<?php } catch (\Exception $e) { } ?>
 
<?php } else if ($this->get_option('wpsg_mod_prepayment_qrcode_country') == '1') { ?>
 
<!-- Girocode (EPC) -->
 
<p>
<?php echo __('Wenn Ihre Banking-App Girocode unterstützt, können Sie diesen QRCode scannen.', 'wpsg'); ?>
</p>
 
<?php
$img = array();
$img = $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['wpsg_mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 10, PhpGirocode::OUTPUT_BASE64, $this->get_option('wpsg_mod_prepayment_qrcode_country'), $this->view['basket']));
 
?>
 
<div class="wpsg_mod_prepayment_girocode">
<div class="wpsg_mod_prepayment_girocode_left" >
<h4><?php echo wpsg_translate(__($img['title'], $wpsg)); ?></h4>
<br />
<?php echo '<img class="wpsg_mod_prepayment_girocode_left_qrcodeimg" src="data:image/png;base64,'.$img['hash'].'" />'; ?>
<br>
<div class="wpsg_mod_prepayment_girocode_left_wrap">
<div class="wpsg_mod_prepayment_girocode_left_currency">
<h4><?php echo wpsg_translate(__('Währung', $wpsg)); ?></h4>
<?php echo $this->get_option('wpsg_currency'); ?>
</div>
<div class="wpsg_mod_prepayment_girocode_left_amount">
<h4><?php echo wpsg_translate(__('Betrag', $wpsg)); ?></h4>
<?php echo sprintf("%.2f", $img['invoiceAmount']); ?>
</div>
</div>
</div>
<div class="wpsg_mod_prepayment_girocode_right">
<h4><?php echo wpsg_translate(__('Konto / Zahlbar an', $wpsg)); ?></h4>
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_mod_prepayment_iban')); ?><br />
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_mod_prepayment_kinhaber')); ?><br />
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_shopdata_street')); ?><br />
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_shopdata_zip')).' '.$this->replaceUniversalPlatzhalter($this->get_option('wpsg_shopdata_city')); ?><br />
<?php if (!empty($img['referenceNumber'])) { ?>
<h4><?php echo wpsg_translate(__('Referenz', $wpsg)); ?></h4>
<?php echo $img['referenceNumber']; ?><br />
<?php } ?>
<h4><?php echo wpsg_translate(__('Zusätzliche Informationen', $wpsg)); ?></h4>
<?php echo $img['additionalInformation']; ?><br />
<h4><?php echo wpsg_translate(__('Zahlbar durch', $wpsg)); ?></h4>
<?php echo $img['customerdata']['vname'].' '.$img['customerdata']['name']; ?><br />
<?php echo $img['customerdata']['strasse'].' '.$img['customerdata']['nr']; ?><br />
<?php echo $img['customerdata']['plz'].' '.$img['customerdata']['ort']; ?><br />
</div>
</div>
 
<?php } else if ($this->get_option('wpsg_mod_prepayment_qrcode_country') == '2') { ?>
 
<!-- QR-Rechnung (SWISS) -->
 
<?php
 
$img = array();
$img = $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['wpsg_mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 10, PhpGirocode::OUTPUT_BASE64, $this->get_option('wpsg_mod_prepayment_qrcode_country'), $this->view['basket']));
?>
<div class="wpsg_mod_prepayment_qrrechnung">
<div class="wpsg_mod_prepayment_qrrechnung_left">
<h4><?php echo wpsg_translate(__($img['title'], $wpsg)); ?></h4>
<br />
<?php echo '<img class="wpsg_mod_prepayment_qrrechnung_left_qrcodeimg" src="data:image/png;base64,'.$img['hash'].'" />'; ?>
<br>
<div class="wpsg_mod_prepayment_qrrechnung_left_wrap">
<div class="wpsg_mod_prepayment_qrrechnung_left_currency">
<h4><?php echo wpsg_translate(__('Währung', $wpsg)); ?></h4>
<?php echo $this->get_option('wpsg_currency'); ?>
</div>
<div class="wpsg_mod_prepayment_qrrechnung_left_amount">
<h4><?php echo wpsg_translate(__('Betrag', $wpsg)); ?></h4>
<?php echo sprintf("%.2f", $img['invoiceAmount']); ?>
</div>
</div>
</div>
<div class="wpsg_mod_prepayment_qrrechnung_right">
<h4><?php echo wpsg_translate(__('Konto / Zahlbar an', $wpsg)); ?></h4>
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_mod_prepayment_iban')); ?><br />
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_mod_prepayment_kinhaber')); ?><br />
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_shopdata_street')); ?><br />
<?php echo $this->replaceUniversalPlatzhalter($this->get_option('wpsg_shopdata_zip')).' '.$this->replaceUniversalPlatzhalter($this->get_option('wpsg_shopdata_city')); ?><br />
<?php if (!empty($img['referenceNumber'])) { ?>
<h4><?php echo wpsg_translate(__('Referenz', $wpsg)); ?></h4>
<?php echo $img['referenceNumber']; ?><br />
<?php } ?>
<h4><?php echo wpsg_translate(__('Zusätzliche Informationen', $wpsg)); ?></h4>
<?php echo $img['additionalInformation']; ?><br />
<h4><?php echo wpsg_translate(__('Zahlbar durch', $wpsg)); ?></h4>
<?php echo $img['customerdata']['vname'].' '.$img['customerdata']['name']; ?><br />
<?php echo $img['customerdata']['strasse'].' '.$img['customerdata']['nr']; ?><br />
<?php echo $img['customerdata']['plz'].' '.$img['customerdata']['ort']; ?><br />
</div>
</div>
 
<?php } ?>
<?php } ?>
/produkttemplates/standard3.phtml
69,15 → 69,24
 
<?php if ($this->get_option('wpsg_showArticelnumber') == '1') { ?>
<div class="wpsg_artikelnummer">
<?php echo __('Artikelnummer', 'wpsg'); ?>: <span class="wpsg_anr"><?php echo wpsg_hspc($this->view['data']['anr']); ?></span><br />
<?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_ean'))) {?>
<?php echo __('EAN','wpsg');?>:<span class="wpsg_ean"><?php echo wpsg_hspc($this->view['data']['ean']); ?></span><br />
<?php } ?>
<?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_gtin'))) {?>
<?php echo __('GTIN','wpsg');?>:<span class="wpsg_gtin"><?php echo wpsg_hspc($this->view['data']['gtin']); ?></span><br />
<?php }?>
</div>
<?php } ?>
<?php echo __('Artikelnummer', 'wpsg'); ?>: <span class="wpsg_anr"><?php echo wpsg_hspc($oProduct->getNr()); ?></span><br />
</div>
<?php } ?>
<?php $arProductCodes = $oProduct->getAllProductCodes(); ?>
<?php if (sizeof($arProductCodes) > 0) { ?>
<div class="product_code_wrap">
<?php foreach ($arProductCodes as $product_code) { ?>
<?php if ($product_code !== null) { ?>
<div class="product_code <?php echo $product_code['code_key']; ?>">
<span class="label"><?php echo $product_code['label']; ?></span>: <span class="code"><?php echo $product_code['code']; ?></span>
</div>
<?php } ?>
<?php } ?>
</div>
<?php } ?>
 
<?php /* Abfrage Preisanzeige nur für eingeloggte User aktiv und User eingeloggt START*/ ?>
<?php if ($this->view['oProduct']->canDisplayPrice()) { ?>
/mods/mod_prepayment/mail_html.phtml
30,4 → 30,54
<td><?php echo __('Betreff', 'wpsg'); ?>:</td>
<td style="text-align:right;"><?php echo wpsg_translate(__('#1#', 'wpsg'), $this->view['mod_prepayment']['subject']); ?></td>
</tr>
</table>
<?php
if (isset($this->view['mod_prepayment']['subject']) && ($this->get_option('wpsg_mod_prepayment_qrcode') == true)) {
 
require_once WPSG_PATH_LIB.'phpgirocode.class.php';
 
echo '<tr><td>'.__('Zahlen via QR Code', 'wpsg').':</td></tr>';
if ($this->get_option('wpsg_mod_prepayment_qrcode_country') == '0') {
 
$qrcodes = array();
$qrcodes = $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['wpsg_mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 3, PhpGirocode::OUTPUT_BASE64, $this->get_option('wpsg_mod_prepayment_qrcode_country'), $this->view['basket']));
foreach ($qrcodes as $qr) {
 
if ($qr['title'] == 'QR-Rechnung') echo '<tr style="margin-top:25px;" >';
else echo '<tr>';
echo '<td>'.__($qr['title'], 'wpsg').'</td>';
echo '<td style="float:right;"><img style="max-width:120px;" width="120" height="120" src="data:image/png;base64,'.$qr['hash'].'" alt="qrcode" /></td>';
echo '</tr>';
 
}
 
} else if ($this->get_option('wpsg_mod_prepayment_qrcode_country') == '1') {
 
$qrcode = $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 3, PhpGirocode::OUTPUT_BASE64, $this->get_option('wpsg_mod_prepayment_qrcode_country'), $this->view['basket']));
echo '
<tr>
<td>'.__($qrcode['title'], 'wpsg').':</td>
<td style="float:right;" alt="qrcode">'.$qrcode['hash'].'</td>
</tr>
';
 
} else if ($this->get_option('wpsg_mod_prepayment_qrcode_country') == '2') {
 
$qrcode = $this->callMod('wpsg_mod_prepayment', 'genQRCode', array($this->view['o_id'], $this->view['mod_prepayment']['subject'], $this->view['basket']['sum']['preis_gesamt_brutto'], 3, PhpGirocode::OUTPUT_BASE64, $this->get_option('wpsg_mod_prepayment_qrcode_country'), $this->view['basket']));
 
echo '
<tr>
<td>'.__($qrcode['title'], 'wpsg').':</td>
<td style="float:right;" alt="qrcode">'.$qrcode['hash'].'</td>
</tr>
';
 
}
}
 
?>
</table>
/js/vue-3.2.47.global.min.js
0,0 → 1,15
var Vue=function(r){"use strict";function e(e,t){const n=Object.create(null);var r=e.split(",");for(let e=0;e<r.length;e++)n[r[e]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}const x={[1]:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"HYDRATE_EVENTS",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT","-1":"HOISTED","-2":"BAIL"},S={[1]:"STABLE",2:"DYNAMIC",3:"FORWARDED"};const i=e("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt"),d=2;function a(t){if(ae(t)){const o={};for(let e=0;e<t.length;e++){var n=t[e],r=(ce(n)?k:a)(n);if(r)for(const i in r)o[i]=r[i]}return o}return ce(t)||re(t)?t:void 0}const u=/;(?![^(]*\))/g,p=/:([^]+)/,C=/\/\*.*?\*\//gs;function k(e){const n={};return e.replace(C,"").split(u).forEach(e=>{if(e){const t=e.split(p);1<t.length&&(n[t[0].trim()]=t[1].trim())}}),n}function T(t){let n="";if(ce(t))n=t;else if(ae(t))for(let e=0;e<t.length;e++){var r=T(t[e]);r&&(n+=r+" ")}else if(re(t))for(const e in t)t[e]&&(n+=e+" ");return n.trim()}const n=e("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"),N=e("svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view");var O=e("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr");const F=e("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function M(e){return!!e||""===e}function j(e,t){if(e===t)return!0;let n=Q(e),r=Q(t);if(n||r)return!(!n||!r)&&e.getTime()===t.getTime();if(n=pe(e),r=pe(t),n||r)return e===t;if(n=ae(e),r=ae(t),n||r)return!(!n||!r)&&function(t,n){if(t.length!==n.length)return!1;let r=!0;for(let e=0;r&&e<t.length;e++)r=j(t[e],n[e]);return r}(e,t);if(n=re(e),r=re(t),n||r){if(!n||!r)return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const s in e){var o=e.hasOwnProperty(s),i=t.hasOwnProperty(s);if(o&&!i||!o&&i||!j(e[s],t[s]))return!1}}return String(e)===String(t)}function V(e,t){return e.findIndex(e=>j(e,t))}const L=(e,t)=>t&&t.__v_isRef?L(e,t.value):Z(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n])=>(e[t+" =>"]=n,e),{})}:X(t)?{[`Set(${t.size})`]:[...t.values()]}:!re(t)||ae(t)||ve(t)?t:String(t),E=Object.freeze({}),le=Object.freeze([]),te=()=>{},z=()=>!1,W=/^on[^a-z]/,K=e=>W.test(e),G=e=>e.startsWith("onUpdate:"),$=Object.assign,J=(e,t)=>{t=e.indexOf(t);-1<t&&e.splice(t,1)},Y=Object.prototype.hasOwnProperty,A=(e,t)=>Y.call(e,t),ae=Array.isArray,Z=e=>"[object Map]"===fe(e),X=e=>"[object Set]"===fe(e),Q=e=>"[object Date]"===fe(e),ne=e=>"function"==typeof e,ce=e=>"string"==typeof e,pe=e=>"symbol"==typeof e,re=e=>null!==e&&"object"==typeof e,de=e=>re(e)&&ne(e.then)&&ne(e.catch),ee=Object.prototype.toString,fe=e=>ee.call(e),he=e=>fe(e).slice(8,-1),ve=e=>"[object Object]"===fe(e),me=e=>ce(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,ge=e(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ye=e("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");var be=t=>{const n=Object.create(null);return e=>{return n[e]||(n[e]=t(e))}};const _e=/-(\w)/g,R=be(e=>e.replace(_e,(e,t)=>t?t.toUpperCase():"")),we=/\B([A-Z])/g,v=be(e=>e.replace(we,"-$1").toLowerCase()),xe=be(e=>e.charAt(0).toUpperCase()+e.slice(1)),Se=be(e=>e?"on"+xe(e):""),Ce=(e,t)=>!Object.is(e,t),ke=(t,n)=>{for(let e=0;e<t.length;e++)t[e](n)},Te=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Ee=e=>{var t=parseFloat(e);return isNaN(t)?e:t},Ne=e=>{var t=ce(e)?Number(e):NaN;return isNaN(t)?e:t};let Oe;const $e=()=>Oe=Oe||("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});function Ae(e,...t){console.warn("[Vue warn] "+e,...t)}let b;class Re{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=b,!e&&b&&(this.index=(b.scopes||(b.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){var t=b;try{return b=this,e()}finally{b=t}}else Ae("cannot run an inactive effect scope.")}on(){b=this}off(){b=this.parent}stop(n){if(this._active){let e,t;for(e=0,t=this.effects.length;e<t;e++)this.effects[e].stop();for(e=0,t=this.cleanups.length;e<t;e++)this.cleanups[e]();if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].stop(!0);if(!this.detached&&this.parent&&!n){const r=this.parent.scopes.pop();r&&r!==this&&((this.parent.scopes[this.index]=r).index=this.index)}this.parent=void 0,this._active=!1}}}function Ie(e,t=b){t&&t.active&&t.effects.push(e)}function Pe(){return b}const Fe=e=>{const t=new Set(e);return t.w=0,t.n=0,t},Me=e=>0<(e.w&Be),je=e=>0<(e.n&Be),Ve=new WeakMap;let Le=0,Be=1;const Ue=30;let s;const De=Symbol("iterate"),He=Symbol("Map key iterate");class ze{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,Ie(this,n)}run(){if(!this.active)return this.fn();let e=s;for(var t=Ke;e;){if(e===this)return;e=e.parent}try{if(this.parent=s,s=this,Ke=!0,Be=1<<++Le,Le<=Ue){var n=[this["deps"]][0];if(n.length)for(let e=0;e<n.length;e++)n[e].w|=Be}else We(this);return this.fn()}finally{if(Le<=Ue){var r=this;const o=r["deps"];if(o.length){let t=0;for(let e=0;e<o.length;e++){const i=o[e];Me(i)&&!je(i)?i.delete(r):o[t++]=i,i.w&=~Be,i.n&=~Be}o.length=t}}Be=1<<--Le,s=this.parent,Ke=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){s===this?this.deferStop=!0:this.active&&(We(this),this.onStop&&this.onStop(),this.active=!1)}}function We(t){const n=t["deps"];if(n.length){for(let e=0;e<n.length;e++)n[e].delete(t);n.length=0}}let Ke=!0;const Ge=[];function Je(){Ge.push(Ke),Ke=!1}function qe(){var e=Ge.pop();Ke=void 0===e||e}function f(n,r,o){if(Ke&&s){let e=Ve.get(n),t=(e||Ve.set(n,e=new Map),e.get(o));t||e.set(o,t=Fe());n={effect:s,target:n,type:r,key:o};Ye(t,n)}}function Ye(e,t){let n=!1;Le<=Ue?je(e)||(e.n|=Be,n=!Me(e)):n=!e.has(s),n&&(e.add(s),s.deps.push(e),s.onTrack&&s.onTrack(Object.assign({effect:s},t)))}function Ze(e,t,r,o,i,s){const l=Ve.get(e);if(l){let n=[];if("clear"===t)n=[...l.values()];else if("length"===r&&ae(e)){const a=Number(o);l.forEach((e,t)=>{("length"===t||t>=a)&&n.push(e)})}else switch(void 0!==r&&n.push(l.get(r)),t){case"add":ae(e)?me(r)&&n.push(l.get("length")):(n.push(l.get(De)),Z(e)&&n.push(l.get(He)));break;case"delete":ae(e)||(n.push(l.get(De)),Z(e)&&n.push(l.get(He)));break;case"set":Z(e)&&n.push(l.get(De))}t={target:e,type:t,key:r,newValue:o,oldValue:i,oldTarget:s};if(1===n.length)n[0]&&Xe(n[0],t);else{const c=[];for(const u of n)u&&c.push(...u);Xe(Fe(c),t)}}}function Xe(e,t){e=ae(e)?e:[...e];for(const n of e)n.computed&&Qe(n,t);for(const r of e)r.computed||Qe(r,t)}function Qe(e,t){e===s&&!e.allowRecurse||(e.onTrigger&&e.onTrigger($({effect:e},t)),e.scheduler?e.scheduler():e.run())}const et=e("__proto__,__v_isRef,__isVue"),tt=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(pe));var nt,be=at(),rt=at(!1,!0),t=at(!0),ot=at(!0,!0);const it=st();function st(){const e={};return["includes","indexOf","lastIndexOf"].forEach(r=>{e[r]=function(...e){const n=m(this);for(let e=0,t=this.length;e<t;e++)f(n,"get",e+"");var t=n[r](...e);return-1===t||!1===t?n[r](...e.map(m)):t}}),["push","pop","shift","unshift","splice"].forEach(t=>{e[t]=function(...e){Je();e=m(this)[t].apply(this,e);return qe(),e}}),e}function lt(e){const t=m(this);return f(t,"has",e),t.hasOwnProperty(e)}function at(o=!1,i=!1){return function(e,t,n){if("__v_isReactive"===t)return!o;if("__v_isReadonly"===t)return o;if("__v_isShallow"===t)return i;if("__v_raw"===t&&n===(o?i?Bt:Lt:i?Vt:jt).get(e))return e;var r=ae(e);if(!o){if(r&&A(it,t))return Reflect.get(it,t,n);if("hasOwnProperty"===t)return lt}n=Reflect.get(e,t,n);return(pe(t)?tt.has(t):et(t))?n:(o||f(e,"get",t),i?n:q(n)?r&&me(t)?n:n.value:re(n)?(o?Ht:Ut)(n):n)}}function ct(l=!1){return function(e,t,n,r){let o=e[t];if(Gt(o)&&q(o)&&!q(n))return!1;if(!l&&(Jt(n)||Gt(n)||(o=m(o),n=m(n)),!ae(e)&&q(o)&&!q(n)))return o.value=n,!0;var i=ae(e)&&me(t)?Number(t)<e.length:A(e,t),s=Reflect.set(e,t,n,r);return e===m(r)&&(i?Ce(n,o)&&Ze(e,"set",t,n,o):Ze(e,"add",t,n)),s}}const ut={get:be,set:ct(),deleteProperty:function(e,t){var n=A(e,t),r=e[t],o=Reflect.deleteProperty(e,t);return o&&n&&Ze(e,"delete",t,void 0,r),o},has:function(e,t){var n=Reflect.has(e,t);return pe(t)&&tt.has(t)||f(e,"has",t),n},ownKeys:function(e){return f(e,"iterate",ae(e)?"length":De),Reflect.ownKeys(e)}},pt={get:t,set(e,t){return Ae(`Set operation on key "${String(t)}" failed: target is readonly.`,e),!0},deleteProperty(e,t){return Ae(`Delete operation on key "${String(t)}" failed: target is readonly.`,e),!0}},dt=$({},ut,{get:rt,set:ct(!0)}),ft=$({},pt,{get:ot}),ht=e=>e,vt=e=>Reflect.getPrototypeOf(e);function mt(e,t,n=!1,r=!1){var o=m(e=e.__v_raw),i=m(t);n||(t!==i&&f(o,"get",t),f(o,"get",i));const s=vt(o)["has"],l=r?ht:n?Xt:Zt;return s.call(o,t)?l(e.get(t)):s.call(o,i)?l(e.get(i)):void(e!==o&&e.get(t))}function gt(e,t=!1){const n=this.__v_raw;var r=m(n),o=m(e);return t||(e!==o&&f(r,"has",e),f(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function yt(e,t=!1){return e=e.__v_raw,t||f(m(e),"iterate",De),Reflect.get(e,"size",e)}function bt(e){e=m(e);const t=m(this),n=vt(t);return n.has.call(t,e)||(t.add(e),Ze(t,"add",e,e)),this}function _t(e,t){t=m(t);const n=m(this),{has:r,get:o}=vt(n);let i=r.call(n,e);i?Mt(n,r,e):(e=m(e),i=r.call(n,e));var s=o.call(n,e);return n.set(e,t),i?Ce(t,s)&&Ze(n,"set",e,t,s):Ze(n,"add",e,t),this}function wt(e){const t=m(this),{has:n,get:r}=vt(t);let o=n.call(t,e);o?Mt(t,n,e):(e=m(e),o=n.call(t,e));var i=r?r.call(t,e):void 0,s=t.delete(e);return o&&Ze(t,"delete",e,void 0,i),s}function xt(){const e=m(this);var t=0!==e.size,n=new(Z(e)?Map:Set)(e),r=e.clear();return t&&Ze(e,"clear",void 0,void 0,n),r}function St(s,l){return function(n,r){const o=this,e=o.__v_raw;var t=m(e);const i=l?ht:s?Xt:Zt;return s||f(t,"iterate",De),e.forEach((e,t)=>n.call(r,i(e),i(t),o))}}function Ct(l,a,c){return function(...e){const t=this.__v_raw;var n=m(t),r=Z(n);const o="entries"===l||l===Symbol.iterator&&r;r="keys"===l&&r;const i=t[l](...e),s=c?ht:a?Xt:Zt;return a||f(n,"iterate",r?He:De),{next(){var{value:e,done:t}=i.next();return t?{value:e,done:t}:{value:o?[s(e[0]),s(e[1])]:s(e),done:t}},[Symbol.iterator](){return this}}}}function kt(t){return function(...e){e=e[0]?`on key "${e[0]}" `:"";return console.warn(xe(t)+` operation ${e}failed: target is readonly.`,m(this)),"delete"!==t&&this}}function Tt(){const t={get(e){return mt(this,e)},get size(){return yt(this)},has:gt,add:bt,set:_t,delete:wt,clear:xt,forEach:St(!1,!1)},n={get(e){return mt(this,e,!1,!0)},get size(){return yt(this)},has:gt,add:bt,set:_t,delete:wt,clear:xt,forEach:St(!1,!0)},r={get(e){return mt(this,e,!0)},get size(){return yt(this,!0)},has(e){return gt.call(this,e,!0)},add:kt("add"),set:kt("set"),delete:kt("delete"),clear:kt("clear"),forEach:St(!0,!1)},o={get(e){return mt(this,e,!0,!0)},get size(){return yt(this,!0)},has(e){return gt.call(this,e,!0)},add:kt("add"),set:kt("set"),delete:kt("delete"),clear:kt("clear"),forEach:St(!0,!0)},e=["keys","values","entries",Symbol.iterator];return e.forEach(e=>{t[e]=Ct(e,!1,!1),r[e]=Ct(e,!0,!1),n[e]=Ct(e,!1,!0),o[e]=Ct(e,!0,!0)}),[t,r,n,o]}const[Et,Nt,Ot,$t]=Tt();function At(r,e){const o=e?r?$t:Ot:r?Nt:Et;return(e,t,n)=>"__v_isReactive"===t?!r:"__v_isReadonly"===t?r:"__v_raw"===t?e:Reflect.get(A(o,t)&&t in e?o:e,t,n)}const Rt={get:At(!1,!1)},It={get:At(!1,!0)},Pt={get:At(!0,!1)},Ft={get:At(!0,!0)};function Mt(e,t,n){var r=m(n);r!==n&&t.call(e,r)&&(n=he(e),console.warn(`Reactive ${n} contains both the raw and reactive `+`versions of the same object${"Map"===n?" as keys":""}, `+"which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible."))}const jt=new WeakMap,Vt=new WeakMap,Lt=new WeakMap,Bt=new WeakMap;function Ut(e){return Gt(e)?e:Wt(e,!1,ut,Rt,jt)}function Dt(e){return Wt(e,!1,dt,It,Vt)}function Ht(e){return Wt(e,!0,pt,Pt,Lt)}function zt(e){return Wt(e,!0,ft,Ft,Bt)}function Wt(e,t,n,r,o){if(!re(e))return console.warn("value cannot be made reactive: "+String(e)),e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;t=o.get(e);if(t)return t;t=function(e){if(e.__v_skip||!Object.isExtensible(e))return 0;switch(he(e)){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(e);if(0===t)return e;t=new Proxy(e,2===t?r:n);return o.set(e,t),t}function Kt(e){return Gt(e)?Kt(e.__v_raw):!(!e||!e.__v_isReactive)}function Gt(e){return!(!e||!e.__v_isReadonly)}function Jt(e){return!(!e||!e.__v_isShallow)}function qt(e){return Kt(e)||Gt(e)}function m(e){var t=e&&e.__v_raw;return t?m(t):e}function Yt(e){return Te(e,"__v_skip",!0),e}const Zt=e=>re(e)?Ut(e):e,Xt=e=>re(e)?Ht(e):e;function Qt(e){Ke&&s&&Ye((e=m(e)).dep||(e.dep=Fe()),{target:e,type:"get",key:"value"})}function en(e,t){var n=(e=m(e)).dep;n&&Xe(n,{target:e,type:"set",key:"value",newValue:t})}function q(e){return!(!e||!0!==e.__v_isRef)}function tn(e){return nn(e,!1)}function nn(e,t){return q(e)?e:new rn(e,t)}class rn{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:m(e),this._value=t?e:Zt(e)}get value(){return Qt(this),this._value}set value(e){var t=this.__v_isShallow||Jt(e)||Gt(e);e=t?e:m(e),Ce(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:Zt(e),en(this,e))}}function on(e){return q(e)?e.value:e}const sn={get:(e,t,n)=>on(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return q(o)&&!q(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function ln(e){return Kt(e)?e:new Proxy(e,sn)}class an{constructor(e){this.dep=void 0,this.__v_isRef=!0;var{get:e,set:t}=e(()=>Qt(this),()=>en(this));this._get=e,this._set=t}get value(){return this._get()}set value(e){this._set(e)}}class cn{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0}get value(){var e=this._object[this._key];return void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return e=m(this._object),t=this._key,null==(e=Ve.get(e))?void 0:e.get(t);var e,t}}function un(e,t,n){var r=e[t];return q(r)?r:new cn(e,t,n)}class pn{constructor(e,t,n,r){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[nt]=!1,this._dirty=!0,this.effect=new ze(e,()=>{this._dirty||(this._dirty=!0,en(this))}),(this.effect.computed=this).effect.active=this._cacheable=!r,this.__v_isReadonly=n}get value(){const e=m(this);return Qt(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}const dn=[];function fn(e){dn.push(e)}function hn(){dn.pop()}function oe(e,...t){Je();const n=dn.length?dn[dn.length-1].component:null;var r=n&&n.appContext.config.warnHandler;const o=function(){let e=dn[dn.length-1];if(!e)return[];const t=[];for(;e;){const r=t[0];r&&r.vnode===e?r.recurseCount++:t.push({vnode:e,recurseCount:0});var n=e.component&&e.component.parent;e=n&&n.vnode}return t}();if(r)gn(r,n,11,[e+t.join(""),n&&n.proxy,o.map(({vnode:e})=>`at <${cs(n,e.type)}>`).join("\n"),o]);else{const i=["[Vue warn]: "+e,...t];o.length&&i.push(`
`,...function(e){const r=[];return e.forEach((e,t)=>{var n;r.push(...0===t?[]:[`
`],...({vnode:t,recurseCount:e}=[e][0],e=0<e?`... (${e} recursive calls)`:"",n=!!t.component&&null==t.component.parent,n=" at <"+cs(t.component,t.type,n),e=">"+e,t.props?[n,...function(t){const n=[],e=Object.keys(t);e.slice(0,3).forEach(e=>{n.push(...function e(t,n,r){return ce(n)?(n=JSON.stringify(n),r?n:[t+"="+n]):"number"==typeof n||"boolean"==typeof n||null==n?r?n:[t+"="+n]:q(n)?(n=e(t,m(n.value),!0),r?n:[t+"=Ref<",n,">"]):ne(n)?[t+"=fn"+(n.name?`<${n.name}>`:"")]:(n=m(n),r?n:[t+"=",n])}(e,t[e]))}),3<e.length&&n.push(" ...");return n}(t.props),e]:[n+e]))}),r}(o)),console.warn(...i)}qe()}function vn(e,t){void 0!==e&&("number"!=typeof e?oe(t+" is not a valid number - "+`got ${JSON.stringify(e)}.`):isNaN(e)&&oe(t+" is NaN - the duration expression might be incorrect."))}const mn={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",[0]:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"};function gn(e,t,n,r){let o;try{o=r?e(...r):e()}catch(e){bn(e,t,n)}return o}function yn(t,n,r,o){if(ne(t)){const e=gn(t,n,r,o);return e&&de(e)&&e.catch(e=>{bn(e,n,r)}),e}const i=[];for(let e=0;e<t.length;e++)i.push(yn(t[e],n,r,o));return i}function bn(t,n,r,e=!0){var o=n?n.vnode:null;if(n){let e=n.parent;for(var i=n.proxy,s=mn[r];e;){const l=e.ec;if(l)for(let e=0;e<l.length;e++)if(!1===l[e](t,i,s))return;e=e.parent}n=n.appContext.config.errorHandler;if(n)return void gn(n,null,10,[t,i,s])}var[n,r,o,e=!0]=[t,r,o,e];if(r=mn[r],o&&fn(o),oe("Unhandled error"+(r?" during execution of "+r:"")),o&&hn(),e)throw n;console.error(n)}let _n=!(nt="__v_isReadonly"),wn=!1;const l=[];let xn=0;const Sn=[];let Cn=null,kn=0;const Tn=Promise.resolve();let En=null;const Nn=100;function On(e){const t=En||Tn;return e?t.then(this?e.bind(this):e):t}function $n(e){l.length&&l.includes(e,_n&&e.allowRecurse?xn+1:xn)||(null==e.id?l.push(e):l.splice(function(e){let t=xn+1,n=l.length;for(;t<n;){var r=t+n>>>1;Fn(l[r])<e?t=1+r:n=r}return t}(e.id),0,e),An())}function An(){_n||wn||(wn=!0,En=Tn.then(jn))}function Rn(e){ae(e)?Sn.push(...e):Cn&&Cn.includes(e,e.allowRecurse?kn+1:kn)||Sn.push(e),An()}function In(e,t=_n?xn+1:0){for(e=e||new Map;t<l.length;t++){const n=l[t];n&&n.pre&&(Vn(e,n)||(l.splice(t,1),t--,n()))}}function Pn(e){if(Sn.length){var t=[...new Set(Sn)];if(Sn.length=0,Cn)Cn.push(...t);else{for(Cn=t,e=e||new Map,Cn.sort((e,t)=>Fn(e)-Fn(t)),kn=0;kn<Cn.length;kn++)Vn(e,Cn[kn])||Cn[kn]();Cn=null,kn=0}}}const Fn=e=>null==e.id?1/0:e.id,Mn=(e,t)=>{var n=Fn(e)-Fn(t);if(0==n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function jn(e){wn=!1,_n=!0,e=e||new Map,l.sort(Mn);try{for(xn=0;xn<l.length;xn++){var t=l[xn];!t||!1===t.active||Vn(e,t)||gn(t,null,14)}}finally{xn=0,l.length=0,Pn(e),_n=!1,En=null,(l.length||Sn.length)&&jn(e)}}function Vn(e,t){if(e.has(t)){var n,r=e.get(t);if(r>Nn)return oe(`Maximum recursive updates exceeded${(n=(n=t.ownerInstance)&&as(n.type))?` in component <${n}>`:""}. `+"This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function."),!0;e.set(t,r+1)}else e.set(t,1)}let Ln=!1;const Bn=new Set,Un=($e().__VUE_HMR_RUNTIME__={createRecord:Wn(Dn),rerender:Wn(function(e,t){const n=Un.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(e=>{t&&(e.render=t,Hn(e.type).render=t),e.renderCache=[],Ln=!0,e.update(),Ln=!1}))}),reload:Wn(function(e,t){var n=Un.get(e);if(n){t=Hn(t),zn(n.initialDef,t);const o=[...n.instances];for(const i of o){var r=Hn(i.type);Bn.has(r)||(r!==n.initialDef&&zn(r,t),Bn.add(r)),i.appContext.optionsCache.delete(i.type),i.ceReload?(Bn.add(r),i.ceReload(t.styles),Bn.delete(r)):i.parent?$n(i.parent.update):i.appContext.reload?i.appContext.reload():"undefined"!=typeof window?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required.")}Rn(()=>{for(const e of o)Bn.delete(Hn(e.type))})}})},new Map);function Dn(e,t){return!Un.has(e)&&(Un.set(e,{initialDef:Hn(t),instances:new Set}),!0)}function Hn(e){return us(e)?e.__vccOpts:e}function zn(e,t){$(e,t);for(const n in e)"__file"===n||n in t||delete e[n]}function Wn(n){return(e,t)=>{try{return n(e,t)}catch(e){console.error(e),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}r.devtools=void 0;let Kn=[],Gn=!1;function Jn(e,...t){r.devtools?r.devtools.emit(e,...t):Gn||Kn.push({event:e,args:t})}function qn(e,t){if(r.devtools=e,r.devtools)r.devtools.enabled=!0,Kn.forEach(({event:e,args:t})=>r.devtools.emit(e,...t)),Kn=[];else if("undefined"==typeof window||!window.HTMLElement||null!=(e=null==(e=window.navigator)?void 0:e.userAgent)&&e.includes("jsdom"))Gn=!0,Kn=[];else{const n=t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[];n.push(e=>{qn(e,t)}),setTimeout(()=>{r.devtools||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Gn=!0,Kn=[])},3e3)}}const Yn=er("component:added"),Zn=er("component:updated"),Xn=er("component:removed"),Qn=e=>{r.devtools&&"function"==typeof r.devtools.cleanupBuffer&&!r.devtools.cleanupBuffer(e)&&Xn(e)};function er(t){return e=>{Jn(t,e.appContext.app,e.uid,e.parent?e.parent.uid:void 0,e)}}const tr=rr("perf:start"),nr=rr("perf:end");function rr(r){return(e,t,n)=>{Jn(r,e.appContext.app,e.uid,e,t,n)}}function or(r,o,...i){if(!r.isUnmounted){var s=r.vnode.props||E,{emitsOptions:l,propsOptions:[a]}=r;if(l)if(o in l){const u=l[o];ne(u)&&!u(...i)&&oe(`Invalid event arguments: event validation failed for event "${o}".`)}else a&&Se(o)in a||oe(`Component emitted event "${o}" but it is neither declared in `+`the emits option nor as an "${Se(o)}" prop.`);let e=i;var c,l=o.startsWith("update:"),a=l&&o.slice(7),a=(a&&a in s&&({number:a,trim:c}=s[`${"modelValue"===a?"model":a}Modifiers`]||E,c&&(e=i.map(e=>ce(e)?e.trim():e)),a&&(e=i.map(Ee))),c=e,Jn("component:emit",r.appContext.app,r,o,c),o.toLowerCase());a!==o&&s[Se(a)]&&oe(`Event "${a}" is emitted in component `+cs(r,r.type)+` but the handler is registered for "${o}". `+"Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. "+`You should probably use "${v(o)}" instead of "${o}".`);let t,n=s[t=Se(o)]||s[t=Se(R(o))];(n=!n&&l?s[t=Se(v(o))]:n)&&yn(n,r,6,e);i=s[t+"Once"];if(i){if(r.emitted){if(r.emitted[t])return}else r.emitted={};r.emitted[t]=!0,yn(i,r,6,e)}}}function ir(e,t){return e&&K(t)&&(t=t.slice(2).replace(/Once$/,""),A(e,t[0].toLowerCase()+t.slice(1))||A(e,v(t))||A(e,t))}let h=null,sr=null;function lr(e){var t=h;return h=e,sr=e&&e.type.__scopeId||null,t}function ar(r,o=h,e){if(!o)return r;if(r._n)return r;const i=(...e)=>{i._d&&Ci(-1);var t=lr(o);let n;try{n=r(...e)}finally{lr(t),i._d&&Ci(1)}return Zn(o),n};return i._n=!0,i._c=!0,i._d=!0,i}let cr=!1;function ur(){cr=!0}function pr(t){const{type:e,vnode:n,proxy:r,withProxy:o,props:i,propsOptions:[s],slots:l,attrs:a,emit:c,render:u,renderCache:p,data:d,setupState:f,ctx:h,inheritAttrs:v}=t;let m,g;var y=lr(t);cr=!1;try{if(4&n.shapeFlag){var b=o||r;m=Vi(u.call(b,b,p,i,f,d,h)),g=a}else{const u=e;a===i&&ur(),m=Vi(1<u.length?u(i,{get attrs(){return ur(),a},slots:l,emit:c}):u(i,null)),g=e.props?a:hr(a)}}catch(e){_i.length=0,bn(e,t,1),m=P(se)}let _=m,w=void 0;if(0<m.patchFlag&&2048&m.patchFlag&&([_,w]=dr(m)),g&&!1!==v){const S=Object.keys(g);b=_["shapeFlag"];if(S.length)if(7&b)s&&S.some(G)&&(g=vr(g,s)),_=Fi(_,g);else if(!cr&&_.type!==se){var x=Object.keys(a);const C=[],k=[];for(let e=0,t=x.length;e<t;e++){const T=x[e];K(T)?G(T)||C.push(T[2].toLowerCase()+T.slice(3)):k.push(T)}k.length&&oe("Extraneous non-props attributes ("+k.join(", ")+") were passed to component but could not be automatically inherited because component renders fragment or text root nodes."),C.length&&oe("Extraneous non-emits event listeners ("+C.join(", ")+') were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.')}}return n.dirs&&(mr(_)||oe("Runtime directive used on component with non-element root node. The directives will not function as intended."),(_=Fi(_)).dirs=_.dirs?_.dirs.concat(n.dirs):n.dirs),n.transition&&(mr(_)||oe("Component inside <Transition> renders non-element root node that cannot be animated."),_.transition=n.transition),w?w(_):m=_,lr(y),m}const dr=t=>{const n=t.children,r=t.dynamicChildren;var e=fr(n);if(!e)return[t,void 0];const o=n.indexOf(e),i=r?r.indexOf(e):-1;return[Vi(e),e=>{n[o]=e,r&&(-1<i?r[i]=e:0<e.patchFlag&&(t.dynamicChildren=[...r,e]))}]};function fr(t){let n;for(let e=0;e<t.length;e++){var r=t[e];if(!Ei(r))return;if(r.type!==se||"v-if"===r.children){if(n)return;n=r}}return n}const hr=e=>{let t;for(const n in e)"class"!==n&&"style"!==n&&!K(n)||((t=t||{})[n]=e[n]);return t},vr=(e,t)=>{const n={};for(const r in e)G(r)&&r.slice(9)in t||(n[r]=e[r]);return n},mr=e=>7&e.shapeFlag||e.type===se;function gr(t,n,r){var o=Object.keys(n);if(o.length!==Object.keys(t).length)return!0;for(let e=0;e<o.length;e++){var i=o[e];if(n[i]!==t[i]&&!ir(r,i))return!0}return!1}function yr({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}const br=e=>e.__isSuspense;be={name:"Suspense",__isSuspense:!0,process(e,t,n,r,o,i,s,l,a,c){if(null!=e){var[e,u,p,d,f,h,v,m,{p:g,um:y,o:{createElement:b}}]=[e,t,n,r,o,s,l,a,c];const _=u.suspense=e.suspense,w=((_.vnode=u).el=e.el,u.ssContent),x=u.ssFallback,{activeBranch:S,pendingBranch:C,isInFallback:k,isHydrating:T}=_;if(C)Ni(_.pendingBranch=w,C)?(g(C,w,_.hiddenContainer,null,f,_,h,v,m),_.deps<=0?_.resolve():k&&(g(S,x,p,d,f,null,h,v,m),kr(_,x))):(_.pendingId++,T?(_.isHydrating=!1,_.activeBranch=C):y(C,f,_),_.deps=0,_.effects.length=0,_.hiddenContainer=b("div"),k?(g(null,w,_.hiddenContainer,null,f,_,h,v,m),_.deps<=0?_.resolve():(g(S,x,p,d,f,null,h,v,m),kr(_,x))):S&&Ni(w,S)?(g(S,w,p,d,f,_,h,v,m),_.resolve(!0)):(g(null,w,_.hiddenContainer,null,f,_,h,v,m),_.deps<=0&&_.resolve()));else if(S&&Ni(w,S))g(S,w,p,d,f,_,h,v,m),kr(_,w);else if(_r(u,"onPending"),_.pendingBranch=w,_.pendingId++,g(null,w,_.hiddenContainer,null,f,_,h,v,m),_.deps<=0)_.resolve();else{const{timeout:E,pendingId:N}=_;0<E?setTimeout(()=>{_.pendingId===N&&_.fallback(x)},E):0===E&&_.fallback(x)}}else{e=t;y=n;b=r;p=o;d=i;u=s;g=l;f=a;h=c;const{p:O,o:{createElement:$}}=h,A=$("div"),R=e.suspense=xr(e,d,p,y,A,b,u,g,f,h);O(null,R.pendingBranch=e.ssContent,A,null,p,R,u,g),0<R.deps?(_r(e,"onPending"),_r(e,"onFallback"),O(null,e.ssFallback,y,b,p,null,u,g),kr(R,e.ssFallback)):R.resolve()}},hydrate:function(e,t,n,r,o,i,s,l,a){const c=t.suspense=xr(t,r,n,e.parentNode,document.createElement("div"),null,o,i,s,l,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,i,s);0===c.deps&&c.resolve();return u},create:xr,normalize:function(e){var{shapeFlag:t,children:n}=e,t=32&t;e.ssContent=Sr(t?n.default:n),e.ssFallback=t?Sr(n.fallback):P(se)}};function _r(e,t){const n=e.props&&e.props[t];ne(n)&&n()}let wr=!1;function xr(e,t,n,r,o,i,s,c,u,l,a=!1){wr||(wr=!0,console[console.info?"info":"log"]("<Suspense> is an experimental feature and its API will likely change."));const{p,m:d,um:f,n:h,o:{parentNode:v,remove:m}}=l;l=e.props?Ne(e.props.timeout):void 0;vn(l,"Suspense timeout");const g={vnode:e,parent:t,parentComponent:n,isSVG:s,container:r,hiddenContainer:o,anchor:i,deps:0,pendingId:0,timeout:"number"==typeof l?l:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:a,isUnmounted:!1,effects:[],resolve(t=!1){if(!t&&!g.pendingBranch)throw new Error("suspense.resolve() is called without a pending branch.");if(g.isUnmounted)throw new Error("suspense.resolve() is called on an already unmounted suspense boundary.");const{vnode:e,activeBranch:n,pendingBranch:r,pendingId:o,effects:i,parentComponent:s,container:l}=g;if(g.isHydrating)g.isHydrating=!1;else if(!t){t=n&&r.transition&&"out-in"===r.transition.mode;t&&(n.transition.afterLeave=()=>{o===g.pendingId&&d(r,l,e,0)});let e=g["anchor"];n&&(e=h(n),f(n,s,g,!0)),t||d(r,l,e,0)}kr(g,r),g.pendingBranch=null,g.isInFallback=!1;let a=g.parent,c=!1;for(;a;){if(a.pendingBranch){a.effects.push(...i),c=!0;break}a=a.parent}c||Rn(i),g.effects=[],_r(e,"onResolve")},fallback(e){if(g.pendingBranch){const{vnode:r,activeBranch:o,parentComponent:i,container:s,isSVG:l}=g,a=(_r(r,"onFallback"),h(o));var t=()=>{g.isInFallback&&(p(null,e,s,a,i,null,l,c,u),kr(g,e))},n=e.transition&&"out-in"===e.transition.mode;n&&(o.transition.afterLeave=t),g.isInFallback=!0,f(o,i,null,!0),n||t()}},move(e,t,n){g.activeBranch&&d(g.activeBranch,e,t,n),g.container=e},next(){return g.activeBranch&&h(g.activeBranch)},registerDep(n,r){const o=!!g.pendingBranch,i=(o&&g.deps++,n.vnode.el);n.asyncDep.catch(e=>{bn(e,n,0)}).then(e=>{if(!n.isUnmounted&&!g.isUnmounted&&g.pendingId===n.suspenseId){n.asyncResolved=!0;const t=n["vnode"];fn(t),Xi(n,e,!1),i&&(t.el=i);e=!i&&n.subTree.el;r(n,t,v(i||n.subTree.el),i?null:h(n.subTree),g,s,u),e&&m(e),yr(n,t.el),hn(),o&&0==--g.deps&&g.resolve()}})},unmount(e,t){g.isUnmounted=!0,g.activeBranch&&f(g.activeBranch,n,e,t),g.pendingBranch&&f(g.pendingBranch,n,e,t)}};return g}function Sr(t){let e;var n;return ne(t)&&((n=Si&&t._c)&&(t._d=!1,wi()),t=t(),n&&(t._d=!0,e=c,xi())),ae(t)&&((n=fr(t))||oe("<Suspense> slots expect a single root node."),t=n),t=Vi(t),e&&!t.dynamicChildren&&(t.dynamicChildren=e.filter(e=>e!==t)),t}function Cr(e,t){t&&t.pendingBranch?ae(e)?t.effects.push(...e):t.effects.push(e):Rn(e)}function kr(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e;e=n.el=t.el;r&&r.subTree===n&&(r.vnode.el=e,yr(r,e))}function Tr(t,n){if(_){let e=_.provides;var r=_.parent&&_.parent.provides;(e=r===e?_.provides=Object.create(r):e)[t]=n}else oe("provide() can only be used inside setup().")}function Er(e,t,n=!1){var r,o=_||h;if(o)return(r=null==o.parent?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides)&&e in r?r[e]:1<arguments.length?n&&ne(t)?t.call(o.proxy):t:void oe(`injection "${String(e)}" not found.`);oe("inject() can only be used inside setup() or functional components.")}function Nr(e,t){return Ar(e,null,Object.assign(Object.assign({},t),{flush:"post"}))}const Or={};function $r(e,t,n){return ne(t)||oe("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),Ar(e,t,n)}function Ar(e,t,{immediate:n,deep:r,flush:o,onTrack:i,onTrigger:s}=E){t||(void 0!==n&&oe('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),void 0!==r&&oe('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'));const l=e=>{oe("Invalid watch source: ",e,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},a=b===(null===_||void 0===_?void 0:_.scope)?_:null;let c,u=!1,p=!1;if(q(e)?(c=()=>e.value,u=Jt(e)):Kt(e)?(c=()=>e,r=!0):ae(e)?(p=!0,u=e.some(e=>Kt(e)||Jt(e)),c=()=>e.map(e=>q(e)?e.value:Kt(e)?Ir(e):ne(e)?gn(e,a,2):void l(e))):ne(e)?c=t?()=>gn(e,a,2):()=>{if(!a||!a.isUnmounted)return d&&d(),yn(e,a,3,[f])}:(c=te,l(e)),t&&r){const y=c;c=()=>Ir(y())}let d,f=e=>{d=g.onStop=()=>{gn(e,a,4)}},h=p?new Array(e.length).fill(Or):Or;const v=()=>{if(g.active)if(t){const e=g.run();(r||u||(p?e.some((e,t)=>Ce(e,h[t])):Ce(e,h)))&&(d&&d(),yn(t,a,3,[e,h===Or?void 0:p&&h[0]===Or?[]:h,f]),h=e)}else g.run()};v.allowRecurse=!!t;let m;m="sync"===o?v:"post"===o?()=>I(v,a&&a.suspense):(v.pre=!0,a&&(v.id=a.uid),()=>$n(v));const g=new ze(c,m);g.onTrack=i,g.onTrigger=s,t?n?v():h=g.run():"post"===o?I(g.run.bind(g),a&&a.suspense):g.run();return()=>{g.stop(),a&&a.scope&&J(a.scope.effects,g)}}function Rr(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}function Ir(t,n){if(!re(t)||t.__v_skip)return t;if((n=n||new Set).has(t))return t;if(n.add(t),q(t))Ir(t.value,n);else if(ae(t))for(let e=0;e<t.length;e++)Ir(t[e],n);else if(X(t)||Z(t))t.forEach(e=>{Ir(e,n)});else if(ve(t))for(const e in t)Ir(t[e],n);return t}function Pr(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return eo(()=>{e.isMounted=!0}),ro(()=>{e.isUnmounting=!0}),e}t=[Function,Array];const Fr={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:t,onEnter:t,onAfterEnter:t,onEnterCancelled:t,onBeforeLeave:t,onLeave:t,onAfterLeave:t,onLeaveCancelled:t,onBeforeAppear:t,onAppear:t,onAfterAppear:t,onAppearCancelled:t},setup(p,{slots:e}){const d=Wi(),f=Pr();let h;return()=>{var n=e.default&&Ur(e.default(),!0);if(n&&n.length){let t=n[0];if(1<n.length){let e=!1;for(const c of n)if(c.type!==se){if(e){oe("<transition> can only be used on a single element or component. Use <transition-group> for lists.");break}t=c,e=!0}}var n=m(p),r=n["mode"];if(r&&"in-out"!==r&&"out-in"!==r&&"default"!==r&&oe("invalid <transition> mode: "+r),f.isLeaving)return Vr(t);var o=Lr(t);if(!o)return Vr(t);const s=jr(o,n,f,d);Br(o,s);var i=d.subTree;const l=i&&Lr(i);let e=!1;const a=o.type["getTransitionKey"];if(a&&(i=a(),void 0===h?h=i:i!==h&&(h=i,e=!0)),l&&l.type!==se&&(!Ni(o,l)||e)){const u=jr(l,n,f,d);if(Br(l,u),"out-in"===r)return f.isLeaving=!0,u.afterLeave=()=>{(f.isLeaving=!1)!==d.update.active&&d.update()},Vr(t);"in-out"===r&&o.type!==se&&(u.delayLeave=(e,t,n)=>{const r=Mr(f,l);r[String(l.key)]=l,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete s.delayedLeave},s.delayedLeave=n})}return t}}}};function Mr(e,t){const n=e["leavingVNodes"];let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function jr(i,t,s,n){const{appear:l,mode:e,persisted:r=!1,onBeforeEnter:o,onEnter:a,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:p,onLeave:d,onAfterLeave:f,onLeaveCancelled:h,onBeforeAppear:v,onAppear:m,onAfterAppear:g,onAppearCancelled:y}=t,b=String(i.key),_=Mr(s,i),w=(e,t)=>{e&&yn(e,n,9,t)},x=(e,t)=>{const n=t[1];w(e,t),ae(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},S={mode:e,persisted:r,beforeEnter(e){let t=o;if(!s.isMounted){if(!l)return;t=v||o}e._leaveCb&&e._leaveCb(!0);const n=_[b];n&&Ni(i,n)&&n.el._leaveCb&&n.el._leaveCb(),w(t,[e])},enter(t){let e=a,n=c,r=u;if(!s.isMounted){if(!l)return;e=m||a,n=g||c,r=y||u}let o=!1;var i=t._enterCb=e=>{o||(o=!0,e?w(r,[t]):w(n,[t]),S.delayedLeave&&S.delayedLeave(),t._enterCb=void 0)};e?x(e,[t,i]):i()},leave(t,n){const r=String(i.key);if(t._enterCb&&t._enterCb(!0),s.isUnmounting)return n();w(p,[t]);let o=!1;var e=t._leaveCb=e=>{o||(o=!0,n(),e?w(h,[t]):w(f,[t]),t._leaveCb=void 0,_[r]===i&&delete _[r])};_[r]=i,d?x(d,[t,e]):e()},clone(e){return jr(e,t,s,n)}};return S}function Vr(e){if(Wr(e))return(e=Fi(e)).children=null,e}function Lr(e){return Wr(e)?e.children?e.children[0]:void 0:e}function Br(e,t){6&e.shapeFlag&&e.component?Br(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Ur(t,n=!1,r){let o=[],i=0;for(let e=0;e<t.length;e++){var s=t[e],l=null==r?s.key:String(r)+String(null!=s.key?s.key:e);s.type===ie?(128&s.patchFlag&&i++,o=o.concat(Ur(s.children,n,l))):!n&&s.type===se||o.push(null!=l?Fi(s,{key:l}):s)}if(1<i)for(let e=0;e<o.length;e++)o[e].patchFlag=-2;return o}function Dr(e){return ne(e)?{setup:e,name:e.name}:e}const Hr=e=>!!e.type.__asyncLoader;function zr(e,t){var{ref:n,props:r,children:o,ce:i}=t.vnode;const s=P(e,r,o);return s.ref=n,s.ce=i,delete t.vnode.ce,s}const Wr=e=>e.type.__isKeepAlive;rt={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(l,{slots:a}){const r=Wi(),e=r.ctx,c=new Map,u=new Set;let p=null;r.__v_cache=c;const s=r.suspense,{p:d,m:f,um:t,o:{createElement:n}}=e["renderer"],o=n("div");function i(e){Yr(e),t(e,r,s,!0)}function h(n){c.forEach((e,t)=>{e=as(e.type);!e||n&&n(e)||v(t)})}function v(e){var t=c.get(e);p&&Ni(t,p)?p&&Yr(p):i(t),c.delete(e),u.delete(e)}e.activate=(t,e,n,r,o)=>{const i=t.component;f(t,e,n,0,s),d(i.vnode,t,e,n,i,s,r,t.slotScopeIds,o),I(()=>{i.isDeactivated=!1,i.a&&ke(i.a);var e=t.props&&t.props.onVnodeMounted;e&&Di(e,i.parent,t)},s),Yn(i)},e.deactivate=t=>{const n=t.component;f(t,o,null,1,s),I(()=>{n.da&&ke(n.da);var e=t.props&&t.props.onVnodeUnmounted;e&&Di(e,n.parent,t),n.isDeactivated=!0},s),Yn(n)},$r(()=>[l.include,l.exclude],([t,n])=>{t&&h(e=>Kr(t,e)),n&&h(e=>!Kr(n,e))},{flush:"post",deep:!0});let m=null;var g=()=>{null!=m&&c.set(m,Zr(r.subTree))};return eo(g),no(g),ro(()=>{c.forEach(e=>{var{subTree:t,suspense:n}=r,t=Zr(t);if(e.type===t.type&&e.key===t.key)return Yr(t),void((t=t.component.da)&&I(t,n));i(e)})}),()=>{if(m=null,!a.default)return null;var e=a.default();const t=e[0];if(1<e.length)return oe("KeepAlive should contain exactly one component child."),p=null,e;if(!(Ei(t)&&(4&t.shapeFlag||128&t.shapeFlag)))return p=null,t;let n=Zr(t);var e=n.type,r=as(Hr(n)?n.type.__asyncResolved||{}:e),{include:o,exclude:i,max:s}=l;if(o&&(!r||!Kr(o,r))||i&&r&&Kr(i,r))return p=n,t;o=null==n.key?e:n.key,i=c.get(o);return n.el&&(n=Fi(n),128&t.shapeFlag&&(t.ssContent=n)),m=o,i?(n.el=i.el,n.component=i.component,n.transition&&Br(n,n.transition),n.shapeFlag|=512,u.delete(o),u.add(o)):(u.add(o),s&&u.size>parseInt(s,10)&&v(u.values().next().value)),n.shapeFlag|=256,p=n,br(t.type)?t:n}}};function Kr(e,t){return ae(e)?e.some(e=>Kr(e,t)):ce(e)?e.split(",").includes(t):(n=e,"[object RegExp]"===fe(n)&&e.test(t));var n}function Gr(e,t){qr(e,"a",t)}function Jr(e,t){qr(e,"da",t)}function qr(t,n,r=_){var o=t.__wdc||(t.__wdc=()=>{let e=r;for(;e;){if(e.isDeactivated)return;e=e.parent}return t()});if(Xr(n,o,r),r){let e=r.parent;for(;e&&e.parent;)Wr(e.parent.vnode)&&!function(e,t,n,r){const o=Xr(t,e,r,!0);oo(()=>{J(r[t],o)},n)}(o,n,r,e),e=e.parent}}function Yr(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Zr(e){return 128&e.shapeFlag?e.ssContent:e}function Xr(t,n,r=_,e=!1){if(r){const i=r[t]||(r[t]=[]);var o=n.__weh||(n.__weh=(...e)=>{if(!r.isUnmounted)return Je(),Ki(r),e=yn(n,r,t,e),Gi(),qe(),e});return e?i.unshift(o):i.push(o),o}oe(Se(mn[t].replace(/ hook$/,""))+" is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.")}ot=n=>(t,e=_)=>(!Zi||"sp"===n)&&Xr(n,(...e)=>t(...e),e);const Qr=ot("bm"),eo=ot("m"),to=ot("bu"),no=ot("u"),ro=ot("bum"),oo=ot("um"),io=ot("sp"),so=ot("rtg"),lo=ot("rtc");function ao(e,t=_){Xr("ec",e,t)}function co(e){ye(e)&&oe("Do not use built-in directive ids as custom directive id: "+e)}function uo(t,n,r,o){var i=t.dirs,s=n&&n.dirs;for(let e=0;e<i.length;e++){const a=i[e];s&&(a.oldValue=s[e].value);var l=a.dir[o];l&&(Je(),yn(l,r,8,[t.el,a,t,n]),qe())}}const po="components";const fo=Symbol();function ho(e,t,n=!0,r=!1){var o=h||_;if(o){var i=o.type;if(e===po){var s=as(i,!1);if(s&&(s===t||s===R(t)||s===xe(R(t))))return i}s=vo(o[e]||i[e],t)||vo(o.appContext[e],t);return!s&&r?i:(n&&!s&&(o=e===po?"\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.":"",oe(`Failed to resolve ${e.slice(0,-1)}: `+t+o)),s)}oe(`resolve${xe(e.slice(0,-1))} `+"can only be used in render() or setup().")}function vo(e,t){return e&&(e[t]||e[R(t)]||e[xe(R(t))])}const mo=e=>e?Yi(e)?is(e)||e.proxy:mo(e.parent):null,go=$(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>zt(e.props),$attrs:e=>zt(e.attrs),$slots:e=>zt(e.slots),$refs:e=>zt(e.refs),$parent:e=>mo(e.parent),$root:e=>mo(e.root),$emit:e=>e.emit,$options:e=>ko(e),$forceUpdate:e=>e.f||(e.f=()=>$n(e.update)),$nextTick:e=>e.n||(e.n=On.bind(e.proxy)),$watch:e=>function(e,t,n){const r=this.proxy;var o=ce(e)?e.includes(".")?Rr(r,e):()=>r[e]:e.bind(r,r);let i;return ne(t)?i=t:(i=t.handler,n=t),t=_,Ki(this),o=Ar(o,i.bind(r),n),t?Ki(t):Gi(),o}.bind(e)}),yo=e=>"_"===e||"$"===e,bo=(e,t)=>e!==E&&!e.__isScriptSetup&&A(e,t),_o={get({_:e},t){const{ctx:n,setupState:r,data:o,props:i,accessCache:s,type:l,appContext:a}=e;if("__isVue"===t)return!0;if("$"!==t[0]){var c=s[t];if(void 0!==c)switch(c){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return i[t]}else{if(bo(r,t))return s[t]=1,r[t];if(o!==E&&A(o,t))return s[t]=2,o[t];if((c=e.propsOptions[0])&&A(c,t))return s[t]=3,i[t];if(n!==E&&A(n,t))return s[t]=4,n[t];xo&&(s[t]=0)}}const u=go[t];let p,d;return u?("$attrs"===t&&(f(e,"get",t),ur()),u(e)):(p=l.__cssModules)&&(p=p[t])?p:n!==E&&A(n,t)?(s[t]=4,n[t]):(d=a.config.globalProperties,A(d,t)?d[t]:void(!h||ce(t)&&0===t.indexOf("__v")||(o!==E&&yo(t[0])&&A(o,t)?oe(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved `+'character ("$" or "_") and is not proxied on the render context.'):e===h&&oe(`Property ${JSON.stringify(t)} was accessed during render `+"but is not defined on instance."))))},set({_:e},t,n){const{data:r,setupState:o,ctx:i}=e;return bo(o,t)?(o[t]=n,!0):o.__isScriptSetup&&A(o,t)?(oe(`Cannot mutate <script setup> binding "${t}" from Options API.`),!1):r!==E&&A(r,t)?(r[t]=n,!0):A(e.props,t)?(oe(`Attempting to mutate prop "${t}". Props are readonly.`),!1):"$"===t[0]&&t.slice(1)in e?(oe(`Attempting to mutate public property "${t}". `+"Properties starting with $ are reserved and readonly."),!1):(t in e.appContext.config.globalProperties?Object.defineProperty(i,t,{enumerable:!0,configurable:!0,value:n}):i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:i}},s){return!!n[s]||e!==E&&A(e,s)||bo(t,s)||(n=i[0])&&A(n,s)||A(r,s)||A(go,s)||A(o.config.globalProperties,s)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)},ownKeys:e=>(oe("Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead."),Reflect.ownKeys(e))},wo=$({},_o,{get(e,t){if(t!==Symbol.unscopables)return _o.get(e,t,e)},has(e,t){var n="_"!==t[0]&&!i(t);return!n&&_o.has(e,t)&&oe(`Property ${JSON.stringify(t)} should not start with _ which is a reserved prefix for Vue internals.`),n}});let xo=!0;function So(e){var t=ko(e);const n=e.proxy;var r=e.ctx;xo=!1,t.beforeCreate&&Co(t.beforeCreate,e,"bc");const{data:o,computed:i,methods:s,watch:l,provide:a,inject:c,created:u,beforeMount:p,mounted:d,beforeUpdate:M,updated:j,activated:V,deactivated:L,beforeUnmount:B,unmounted:U,render:f,renderTracked:D,renderTriggered:H,errorCaptured:z,serverPrefetch:W,expose:h,inheritAttrs:v,components:m,directives:g}=t,y=function(){const n=Object.create(null);return(e,t)=>{n[t]?oe(`${e} property "${t}" is already defined in ${n[t]}.`):n[t]=e}}();var[t]=e.propsOptions;if(t)for(const C in t)y("Props",C);if(c){var[b,_,K=te,G=!1]=[c,r,y,e.appContext.config.unwrapInjectedRef];for(const k in b=ae(b)?Oo(b):b){var w=b[k];let t;q(t=re(w)?"default"in w?Er(w.from||k,w.default,!0):Er(w.from||k):Er(w))?G?Object.defineProperty(_,k,{enumerable:!0,configurable:!0,get:()=>t.value,set:e=>t.value=e}):(oe(`injected property "${k}" is a ref and will be auto-unwrapped `+"and no longer needs `.value` in the next minor release. To opt-in to the new behavior now, set `app.config.unwrapInjectedRef = true` (this config is temporary and will not be needed in the future.)"),_[k]=t):_[k]=t,K("Inject",k)}}if(s)for(const T in s){const E=s[T];ne(E)?(Object.defineProperty(r,T,{value:E.bind(n),configurable:!0,enumerable:!0,writable:!0}),y("Methods",T)):oe(`Method "${T}" has type "${typeof E}" in the component definition. `+"Did you reference the function correctly?")}if(o){ne(o)||oe("The data option must be a function. Plain object usage is no longer supported.");const N=o.call(n,n);if(de(N)&&oe("data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>."),re(N)){e.data=Ut(N);for(const O in N)y("Data",O),yo(O[0])||Object.defineProperty(r,O,{configurable:!0,enumerable:!0,get:()=>N[O],set:te})}else oe("data() should return an object.")}if(xo=!0,i)for(const $ in i){const A=i[$];var x=ne(A)?A.bind(n,n):ne(A.get)?A.get.bind(n,n):te,J=(x===te&&oe(`Computed property "${$}" has no getter.`),!ne(A)&&ne(A.set)?A.set.bind(n):()=>{oe(`Write operation failed: computed property "${$}" is readonly.`)});const R=ps({get:x,set:J});Object.defineProperty(r,$,{enumerable:!0,configurable:!0,get:()=>R.value,set:e=>R.value=e}),y("Computed",$)}if(l)for(const I in l)!function t(e,n,r,o){const i=o.includes(".")?Rr(r,o):()=>r[o];if(ce(e)){const s=n[e];ne(s)?$r(i,s):oe(`Invalid watch handler specified by key "${e}"`,s)}else if(ne(e))$r(i,e.bind(r));else if(re(e))if(ae(e))e.forEach(e=>t(e,n,r,o));else{const l=ne(e.handler)?e.handler.bind(r):n[e.handler];ne(l)?$r(i,l,e):oe(`Invalid watch handler specified by key "${e.handler}"`,l)}else oe(`Invalid watch option: "${o}"`,e)}(l[I],r,n,I);if(a){const P=ne(a)?a.call(n):a;Reflect.ownKeys(P).forEach(e=>{Tr(e,P[e])})}function S(t,e){ae(e)?e.forEach(e=>t(e.bind(n))):e&&t(e.bind(n))}if(u&&Co(u,e,"c"),S(Qr,p),S(eo,d),S(to,M),S(no,j),S(Gr,V),S(Jr,L),S(ao,z),S(lo,D),S(so,H),S(ro,B),S(oo,U),S(io,W),ae(h))if(h.length){const F=e.exposed||(e.exposed={});h.forEach(t=>{Object.defineProperty(F,t,{get:()=>n[t],set:e=>n[t]=e})})}else e.exposed||(e.exposed={});f&&e.render===te&&(e.render=f),null!=v&&(e.inheritAttrs=v),m&&(e.components=m),g&&(e.directives=g)}function Co(e,t,n){yn(ae(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function ko(e){var t=e.type,{mixins:n,extends:r}=t;const{mixins:o,optionsCache:i,config:{optionMergeStrategies:s}}=e.appContext;e=i.get(t);let l;return e?l=e:o.length||n||r?(l={},o.length&&o.forEach(e=>To(l,e,s,!0)),To(l,t,s)):l=t,re(t)&&i.set(t,l),l}function To(t,e,n,r=!1){const{mixins:o,extends:i}=e;i&&To(t,i,n,!0),o&&o.forEach(e=>To(t,e,n,!0));for(const s in e)if(r&&"expose"===s)oe('"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.');else{const l=Eo[s]||n&&n[s];t[s]=l?l(t[s],e[s]):e[s]}return t}const Eo={data:No,props:$o,emits:$o,methods:$o,computed:$o,beforeCreate:o,created:o,beforeMount:o,mounted:o,beforeUpdate:o,updated:o,beforeDestroy:o,beforeUnmount:o,destroyed:o,unmounted:o,activated:o,deactivated:o,errorCaptured:o,serverPrefetch:o,components:$o,directives:$o,watch:function(e,t){if(!e)return t;if(!t)return e;const n=$(Object.create(null),e);for(const r in t)n[r]=o(e[r],t[r]);return n},provide:No,inject:function(e,t){return $o(Oo(e),Oo(t))}};function No(e,t){return t?e?function(){return $(ne(e)?e.call(this,this):e,ne(t)?t.call(this,this):t)}:t:e}function Oo(t){if(ae(t)){const n={};for(let e=0;e<t.length;e++)n[t[e]]=t[e];return n}return t}function o(e,t){return e?[...new Set([].concat(e,t))]:t}function $o(e,t){return e?$($(Object.create(null),e),t):t}function Ao(t,n,r,e){const{props:o,attrs:i,vnode:{patchFlag:s}}=t;var l=m(o),[a]=t.propsOptions;let c=!1;if(function(e){for(;e;){if(e.type.__hmrId)return 1;e=e.parent}}(t)||!(e||0<s)||16&s){Ro(t,n,o,i)&&(c=!0);let e;for(const f in l)n&&(A(n,f)||(e=v(f))!==f&&A(n,e))||(a?!r||void 0===r[f]&&void 0===r[e]||(o[f]=Io(a,l,f,void 0,t,!0)):delete o[f]);if(i!==l)for(const h in i)n&&A(n,h)||(delete i[h],c=!0)}else if(8&s){var u=t.vnode.dynamicProps;for(let e=0;e<u.length;e++){var p,d=u[e];ir(t.emitsOptions,d)||(p=n[d],!a||A(i,d)?p!==i[d]&&(i[d]=p,c=!0):(d=R(d),o[d]=Io(a,l,d,p,t,!1)))}}c&&Ze(t,"set","$attrs"),Vo(n||{},o,t)}function Ro(t,n,r,o){const[i,s]=t.propsOptions;let l=!1,a;if(n)for(var c in n)if(!ge(c)){var u=n[c];let e;i&&A(i,e=R(c))?s&&s.includes(e)?(a=a||{})[e]=u:r[e]=u:ir(t.emitsOptions,c)||c in o&&u===o[c]||(o[c]=u,l=!0)}if(s){var p=m(r),d=a||E;for(let e=0;e<s.length;e++){var f=s[e];r[f]=Io(i,p,f,d[f],t,!A(d,f))}}return l}function Io(e,t,n,r,o,i){e=e[n];if(null!=e){var s=A(e,"default");if(s&&void 0===r){const l=e.default;if(e.type!==Function&&ne(l)){const a=o["propsDefaults"];n in a?r=a[n]:(Ki(o),r=a[n]=l.call(null,t),Gi())}else r=l}e[0]&&(i&&!s?r=!1:!e[1]||""!==r&&r!==v(n)||(r=!0))}return r}function Po(e){if("$"!==e[0])return 1;oe(`Invalid prop name: "${e}" is a reserved property.`)}function Fo(e){var t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:null===e?"null":""}function Mo(e,t){return Fo(e)===Fo(t)}function jo(t,e){return ae(e)?e.findIndex(e=>Mo(e,t)):ne(e)&&Mo(e,t)?0:-1}function Vo(e,t,n){var r=m(t),o=n.propsOptions[0];for(const s in o){var i=o[s];null!=i&&!function(e,n,t,r){const{type:o,required:i,validator:s}=t;if(i&&r)oe('Missing required prop: "'+e+'"');else if(null!=n||t.required){if(null!=o&&!0!==o){let t=!1;var l=ae(o)?o:[o];const u=[];for(let e=0;e<l.length&&!t;e++){var{valid:a,expectedType:c}=function(e,t){let n;const r=Fo(t);{var o;Lo(r)?(o=typeof e,(n=o===r.toLowerCase())||"object"!=o||(n=e instanceof t)):n="Object"===r?re(e):"Array"===r?ae(e):"null"===r?null===e:e instanceof t}return{valid:n,expectedType:r}}(n,l[e]);u.push(c||""),t=a}if(!t)return oe(function(e,t,n){let r=`Invalid prop: type check failed for prop "${e}".`+" Expected "+n.map(xe).join(" | ");var e=n[0],o=he(t),i=Bo(t,e),t=Bo(t,o);1===n.length&&Uo(e)&&!function(e){return e.some(e=>"boolean"===e.toLowerCase())}([e,o])&&(r+=" with value "+i);r+=`, got ${o} `,Uo(o)&&(r+=`with value ${t}.`);return r}(e,n,u))}s&&!s(n)&&oe('Invalid prop: custom validator check failed for prop "'+e+'".')}}(s,r[s],i,!A(e,s)&&!A(e,v(s)))}}const Lo=e("String,Number,Boolean,Function,Symbol,BigInt");function Bo(e,t){return"String"===t?`"${e}"`:"Number"===t?""+Number(e):""+e}function Uo(t){return["string","number","boolean"].some(e=>t.toLowerCase()===e)}const Do=e=>"_"===e[0]||"$stable"===e,Ho=e=>ae(e)?e.map(Vi):[Vi(e)],zo=(e,t,n)=>{var r=e._ctx;for(const i in e)if(!Do(i)){var o=e[i];if(ne(o))t[i]=((t,n,e)=>{if(n._n)return n;const r=ar((...e)=>(_&&oe(`Slot "${t}" invoked outside of the render function: `+"this will not track dependencies used in the slot. Invoke the slot function inside the render function instead."),Ho(n(...e))),e);return r._c=!1,r})(i,o,r);else if(null!=o){oe(`Non-function value encountered for slot "${i}". `+"Prefer function slots for better performance.");const s=Ho(o);t[i]=()=>s}}},Wo=(e,t)=>{Wr(e.vnode)||oe("Non-function value encountered for default slot. Prefer function slots for better performance.");const n=Ho(t);e.slots.default=()=>n},Ko=(e,t)=>{var n;32&e.vnode.shapeFlag?(n=t._)?(e.slots=m(t),Te(t,"_",n)):zo(t,e.slots={}):(e.slots={},t&&Wo(e,t)),Te(e.slots,$i,1)},Go=(e,t,n)=>{const{vnode:r,slots:o}=e;let i=!0,s=E;var l;if(32&r.shapeFlag?((l=t._)?Ln?$(o,t):n&&1===l?i=!1:($(o,t),n||1!==l||delete o._):(i=!t.$stable,zo(t,o)),s=t):t&&(Wo(e,t),s={default:1}),i)for(const a in o)Do(a)||a in s||delete o[a]};function Jo(){return{app:null,config:{isNativeTag:z,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let qo=0;function Yo(u,p){return function(i,s=null){ne(i)||(i=Object.assign({},i)),null==s||re(s)||(oe("root props passed to app.mount() must be an object."),s=null);const l=Jo(),n=new Set;let a=!1;const c=l.app={_uid:qo++,_component:i,_props:s,_container:null,_context:l,_instance:null,version:gs,get config(){return l.config},set config(e){oe("app.config cannot be replaced. Modify individual options instead.")},use(e,...t){return n.has(e)?oe("Plugin has already been applied to target app."):e&&ne(e.install)?(n.add(e),e.install(c,...t)):ne(e)?(n.add(e),e(c,...t)):oe('A plugin must either be a function or an object with an "install" function.'),c},mixin(e){return l.mixins.includes(e)?oe("Mixin has already been applied to target app"+(e.name?": "+e.name:"")):l.mixins.push(e),c},component(e,t){return qi(e,l.config),t?(l.components[e]&&oe(`Component "${e}" has already been registered in target app.`),l.components[e]=t,c):l.components[e]},directive(e,t){return co(e),t?(l.directives[e]&&oe(`Directive "${e}" has already been registered in target app.`),l.directives[e]=t,c):l.directives[e]},mount(e,t,n){if(!a){e.__vue_app__&&oe("There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling `app.unmount()` first.");const o=P(i,s);return(o.appContext=l).reload=()=>{u(Fi(o),e,n)},t&&p?p(o,e):u(o,e,n),a=!0,((c._container=e).__vue_app__=c)._instance=o.component,t=c,r=gs,Jn("app:init",t,r,{Fragment:ie,Text:yi,Comment:se,Static:bi}),is(o.component)||o.component.proxy}var r;oe("App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. `const createMyApp = () => createApp(App)`")},unmount(){a?(u(null,c._container),c._instance=null,Jn("app:unmount",c),delete c._container.__vue_app__):oe("Cannot unmount an app that is not mounted.")},provide(e,t){return e in l.provides&&oe(`App already provides property with key "${String(e)}". `+"It will be overwritten with the new value."),l.provides[e]=t,c}};return c}}function Zo(t,n,r,o,i=!1){if(ae(t))t.forEach((e,t)=>Zo(e,n&&(ae(n)?n[t]:n),r,o,i));else if(!Hr(o)||i){const s=4&o.shapeFlag?is(o.component)||o.component.proxy:o.el,l=i?null:s,{i:a,r:c}=t;if(a){const u=n&&n.r,p=a.refs===E?a.refs={}:a.refs,d=a.setupState;if(null!=u&&u!==c&&(ce(u)?(p[u]=null,A(d,u)&&(d[u]=null)):q(u)&&(u.value=null)),ne(c))gn(c,a,12,[l,p]);else{const f=ce(c),h=q(c);var e;f||h?(e=()=>{if(t.f){const e=f?(A(d,c)?d:p)[c]:c.value;i?ae(e)&&J(e,s):ae(e)?e.includes(s)||e.push(s):f?(p[c]=[s],A(d,c)&&(d[c]=p[c])):(c.value=[s],t.k&&(p[t.k]=c.value))}else f?(p[c]=l,A(d,c)&&(d[c]=l)):h?(c.value=l,t.k&&(p[t.k]=l)):oe("Invalid template ref type:",c,`(${typeof c})`)},l?(e.id=-1,I(e,r)):e()):oe("Invalid template ref type:",c,`(${typeof c})`)}}else oe("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.")}}let Xo=!1;const Qo=e=>/svg/.test(e.namespaceURI)&&"foreignObject"!==e.tagName,ei=e=>8===e.nodeType;function ti(m){const{mt:g,p,o:{patchProp:h,createText:y,nextSibling:b,parentNode:_,remove:v,insert:w,createComment:l}}=m;const x=(t,n,e,r,o,i=!1)=>{const s=ei(t)&&"["===t.data;var l=()=>T(t,n,e,r,o,s),{type:a,ref:c,shapeFlag:u,patchFlag:p}=n;let d=t.nodeType,f=(n.el=t,-2===p&&(i=!1,n.dynamicChildren=null),null);switch(a){case yi:f=3!==d?""===n.children?(w(n.el=y(""),_(t),t),t):l():(t.data!==n.children&&(Xo=!0,oe("Hydration text mismatch:\n- Client: "+JSON.stringify(t.data)+`
- Server: `+JSON.stringify(n.children)),t.data=n.children),b(t));break;case se:f=8!==d||s?l():b(t);break;case bi:if(s&&(t=b(t),d=t.nodeType),1===d||3===d){f=t;var h=!n.children.length;for(let e=0;e<n.staticCount;e++)h&&(n.children+=1===f.nodeType?f.outerHTML:f.data),e===n.staticCount-1&&(n.anchor=f),f=b(f);return s?b(f):f}l();break;case ie:f=s?k(t,n,e,r,o,i):l();break;default:if(1&u)f=1!==d||n.type.toLowerCase()!==t.tagName.toLowerCase()?l():S(t,n,e,r,o,i);else if(6&u){n.slotScopeIds=o;var v=_(t);if(g(n,v,null,e,r,Qo(v),i),(f=(s?E:b)(t))&&ei(f)&&"teleport end"===f.data&&(f=b(f)),Hr(n)){let e;s?(e=P(ie)).anchor=f?f.previousSibling:v.lastChild:e=3===t.nodeType?ji(""):P("div"),e.el=t,n.component.subTree=e}}else 64&u?f=8!==d?l():n.type.hydrate(t,n,e,r,o,i,m,C):128&u?f=n.type.hydrate(t,n,e,r,Qo(_(t)),o,i,m,x):oe("Invalid HostVNode type:",a,`(${typeof a})`)}return null!=c&&Zo(c,null,r,n),f},S=(n,r,o,i,s,l)=>{l=l||!!r.dynamicChildren;const{type:e,props:t,patchFlag:a,shapeFlag:c,dirs:u}=r;var p="input"===e&&u||"option"===e;{if(u&&uo(r,null,o,"created"),t)if(p||!l||48&a)for(const f in t)(p&&f.endsWith("value")||K(f)&&!ge(f))&&h(n,f,null,t[f],!1,void 0,o);else t.onClick&&h(n,"onClick",null,t.onClick,!1,void 0,o);let e;if((e=t&&t.onVnodeBeforeMount)&&Di(e,o,r),u&&uo(r,null,o,"beforeMount"),((e=t&&t.onVnodeMounted)||u)&&Cr(()=>{e&&Di(e,o,r),u&&uo(r,null,o,"mounted")},i),16&c&&(!t||!t.innerHTML&&!t.textContent)){let e=C(n.firstChild,r,n,o,i,s,l),t=!1;for(;e;){Xo=!0,t||(oe(`Hydration children mismatch in <${r.type}>: `+"server rendered element contains more child nodes than client vdom."),t=!0);var d=e;e=e.nextSibling,v(d)}}else 8&c&&n.textContent!==r.children&&(Xo=!0,oe(`Hydration text content mismatch in <${r.type}>:
`+`- Client: ${n.textContent}
`+"- Server: "+r.children),n.textContent=r.children)}return n.nextSibling},C=(t,e,n,r,o,i,s)=>{s=s||!!e.dynamicChildren;const l=e.children;var a=l.length;let c=!1;for(let e=0;e<a;e++){var u=s?l[e]:l[e]=Vi(l[e]);t?t=x(t,u,r,o,i,s):u.type===yi&&!u.children||(Xo=!0,c||(oe(`Hydration children mismatch in <${n.tagName.toLowerCase()}>: `+"server rendered element contains fewer child nodes than client vdom."),c=!0),p(null,u,n,null,r,o,Qo(n),i))}return t},k=(e,t,n,r,o,i)=>{var s=t["slotScopeIds"],s=(s&&(o=o?o.concat(s):s),_(e)),e=C(b(e),t,s,n,r,o,i);return e&&ei(e)&&"]"===e.data?b(t.anchor=e):(Xo=!0,w(t.anchor=l("]"),s,e),e)},T=(e,t,n,r,o,i)=>{if(Xo=!0,oe(`Hydration node mismatch:
- Client vnode:`,t.type,`
- Server rendered DOM:`,e,3===e.nodeType?"(text)":ei(e)&&"["===e.data?"(start of fragment)":""),t.el=null,i)for(var s=E(e);;){const l=b(e);if(!l||l===s)break;v(l)}const l=b(e);i=_(e);return v(e),p(null,t,i,l,n,r,Qo(i),o),l},E=e=>{let t=0;for(;e;)if((e=b(e))&&ei(e)&&("["===e.data&&t++,"]"===e.data)){if(0===t)return b(e);t--}return e};return[(e,t)=>{if(!t.hasChildNodes())return oe("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),p(null,e,t),Pn(),void(t._vnode=e);Xo=!1,x(t.firstChild,e,null,null,null),Pn(),t._vnode=e,Xo&&console.error("Hydration completed but contains mismatches.")},x]}let ni,ri;function oi(e,t){e.appContext.config.performance&&si()&&ri.mark(`vue-${t}-`+e.uid),tr(e,t,(si()?ri:Date).now())}function ii(e,t){var n,r;e.appContext.config.performance&&si()&&(r=(n=`vue-${t}-`+e.uid)+":end",ri.mark(r),ri.measure(`<${cs(e,e.type)}> `+t,n,r),ri.clearMarks(n),ri.clearMarks(r)),nr(e,t,(si()?ri:Date).now())}function si(){return void 0!==ni||("undefined"!=typeof window&&window.performance?(ni=!0,ri=window.performance):ni=!1),ni}const I=Cr;function li(e){return ci(e)}function ai(e){return ci(e,ti)}function ci(e,t){const n=$e(),{insert:V,remove:d,patchProp:b,createElement:g,createText:L,createComment:o,setText:B,setElementText:C,parentNode:y,nextSibling:U,setScopeId:s=te,insertStaticContent:D}=(n.__VUE__=!0,qn(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n),e),N=(r,o,i,s=null,l=null,a=null,c=!1,u=null,p=!Ln&&!!o.dynamicChildren)=>{if(r!==o){r&&!Ni(r,o)&&(s=Y(r),q(r,l,a,!0),r=null),-2===o.patchFlag&&(p=!1,o.dynamicChildren=null);const{type:O,ref:$,shapeFlag:A}=o;switch(O){case yi:var e=r,t=o,n=i,d=s;if(e==null)V(t.el=L(t.children),n,d);else{const R=t.el=e.el;if(t.children!==e.children)B(R,t.children)}break;case se:H(r,o,i,s);break;case bi:if(null==r)n=o,d=i,e=s,t=c,[n.el,n.anchor]=D(n.children,d,e,t,n.el,n.anchor);else{var f=r,h=o,v=i,m=c;if(h.children!==f.children){const I=U(f.anchor);z(f);[h.el,h.anchor]=D(h.children,v,I,m)}else{h.el=f.el;h.anchor=f.anchor}}break;case ie:{v=r;m=o;h=i;f=s;var g=l;var y=a;var b=c;var _=u;var w=p;const P=m.el=v?v.el:L(""),F=m.anchor=v?v.anchor:L("");let{patchFlag:e,dynamicChildren:t,slotScopeIds:n}=m;if(Ln||e&2048){e=0;w=false;t=null}if(n)_=_?_.concat(n):n;if(v==null){V(P,h,f);V(F,h,f);W(m.children,h,F,g,y,b,_,w)}else if(e>0&&e&64&&t&&v.dynamicChildren){K(v.dynamicChildren,t,h,g,y,b,_);if(g&&g.type.__hmrId)pi(v,m);else if(m.key!=null||g&&m===g.subTree)pi(v,m,true)}else J(v,m,h,F,g,y,b,_,w)}break;default:if(1&A){var g=r,y=o,b=i,_=s,w=l,x=a,S=c,C=u,k=p;if(S=S||y.type==="svg",g==null)X(y,b,_,w,x,S,C,k);else Q(g,y,w,x,S,C,k)}else if(6&A){var x=r,S=o,C=i,k=s,T=l,M=a,E=c,j=u,N=p;if(S.slotScopeIds=j,x==null)if(S.shapeFlag&512)T.ctx.activate(S,C,k,E,N);else G(S,C,k,T,M,E,N);else ee(x,S,N)}else 64&A||128&A?O.process(r,o,i,s,l,a,c,u,p,Z):oe("Invalid VNode type:",O,`(${typeof O})`)}null!=$&&l&&Zo($,r&&r.ref,a,o||r,!o)}},H=(e,t,n,r)=>{null==e?V(t.el=o(t.children||""),n,r):t.el=e.el},z=({el:e,anchor:t})=>{for(var n;e&&e!==t;)n=U(e),d(e),e=n;d(t)},X=(e,t,n,r,o,i,s,l)=>{let a,c;const{type:u,props:p,shapeFlag:d,transition:f,dirs:h}=e;if(a=e.el=g(e.type,i,p&&p.is,p),8&d?C(a,e.children):16&d&&W(e.children,a,null,r,o,i&&"foreignObject"!==u,s,l),h&&uo(e,null,r,"created"),_(a,e,e.scopeId,s,r),p){for(const m in p)"value"===m||ge(m)||b(a,m,null,p[m],i,e.children,r,o,T);"value"in p&&b(a,"value",null,p.value),(c=p.onVnodeBeforeMount)&&Di(c,r,e)}Object.defineProperty(a,"__vnode",{value:e,enumerable:!1}),Object.defineProperty(a,"__vueParentComponent",{value:r,enumerable:!1}),h&&uo(e,null,r,"beforeMount");const v=(!o||!o.pendingBranch)&&f&&!f.persisted;v&&f.beforeEnter(a),V(a,t,n),((c=p&&p.onVnodeMounted)||v||h)&&I(()=>{c&&Di(c,r,e),v&&f.enter(a),h&&uo(e,null,r,"mounted")},o)},_=(t,n,r,o,i)=>{if(r&&s(t,r),o)for(let e=0;e<o.length;e++)s(t,o[e]);if(i){let e=i.subTree;n===(e=0<e.patchFlag&&2048&e.patchFlag?fr(e.children)||e:e)&&(r=i.vnode,_(t,r,r.scopeId,r.slotScopeIds,i.parent))}},W=(t,n,r,o,i,s,l,a,c=0)=>{for(let e=c;e<t.length;e++){var u=t[e]=(a?Li:Vi)(t[e]);N(null,u,n,r,o,i,s,l,a)}},Q=(t,e,n,r,o,i,s)=>{var l=e.el=t.el;let{patchFlag:a,dynamicChildren:c,dirs:u}=e;a|=16&t.patchFlag;var p=t.props||E,d=e.props||E;let f;n&&ui(n,!1),(f=d.onVnodeBeforeUpdate)&&Di(f,n,e,t),u&&uo(e,t,n,"beforeUpdate"),n&&ui(n,!0),Ln&&(a=0,s=!1,c=null);var h=o&&"foreignObject"!==e.type;if(c?(K(t.dynamicChildren,c,l,n,r,h,i),n&&n.type.__hmrId&&pi(t,e)):s||J(t,e,l,null,n,r,h,i,!1),0<a){if(16&a)w(l,e,p,d,n,r,o);else if(2&a&&p.class!==d.class&&b(l,"class",null,d.class,o),4&a&&b(l,"style",p.style,d.style,o),8&a){var v=e.dynamicProps;for(let e=0;e<v.length;e++){var m=v[e],g=p[m],y=d[m];y===g&&"value"!==m||b(l,m,g,y,o,t.children,n,r,T)}}1&a&&t.children!==e.children&&C(l,e.children)}else s||null!=c||w(l,e,p,d,n,r,o);((f=d.onVnodeUpdated)||u)&&I(()=>{f&&Di(f,n,e,t),u&&uo(e,t,n,"updated")},r)},K=(t,n,r,o,i,s,l)=>{for(let e=0;e<n.length;e++){var a=t[e],c=n[e],u=a.el&&(a.type===ie||!Ni(a,c)||70&a.shapeFlag)?y(a.el):r;N(a,c,u,null,o,i,s,l,!0)}},w=(e,t,n,r,o,i,s)=>{if(n!==r){if(n!==E)for(const c in n)ge(c)||c in r||b(e,c,n[c],null,s,t.children,o,i,T);for(const u in r){var l,a;ge(u)||(l=r[u])!==(a=n[u])&&"value"!==u&&b(e,u,a,l,s,t.children,o,i,T)}"value"in r&&b(e,"value",n.value,r.value)}},G=(e,t,n,r,o,i,s)=>{const l=e.component=function(e,t,n){const r=e.type,o=(t||e).appContext||Hi,i={uid:zi++,vnode:e,type:r,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,scope:new Re(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function n(e,r,t=!1){const o=r.propsCache;var i=o.get(e);if(i)return i;var s=e.props;const l={},a=[];let c=!1;if(ne(e)||(i=e=>{c=!0;var[e,t]=n(e,r,!0);$(l,e),t&&a.push(...t)},!t&&r.mixins.length&&r.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)),!s&&!c)return re(e)&&o.set(e,le),le;if(ae(s))for(let e=0;e<s.length;e++){ce(s[e])||oe("props must be strings when using array syntax.",s[e]);var u=R(s[e]);Po(u)&&(l[u]=E)}else if(s){re(s)||oe("invalid props options",s);for(const h in s){var p=R(h);if(Po(p)){var d,f=s[h];const v=l[p]=ae(f)||ne(f)?{type:f}:Object.assign({},f);v&&(f=jo(Boolean,v.type),d=jo(String,v.type),v[0]=-1<f,v[1]=d<0||f<d,(-1<f||A(v,"default"))&&a.push(p))}}}t=[l,a];return re(e)&&o.set(e,t),t}(r,o),emitsOptions:function t(e,n,r=!1){const o=n.emitsCache;var i=o.get(e);if(void 0!==i)return i;const s=e.emits;let l={},a=!1;return ne(e)||(i=e=>{(e=t(e,n,!0))&&(a=!0,$(l,e))},!r&&n.mixins.length&&n.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)),s||a?(ae(s)?s.forEach(e=>l[e]=null):$(l,s),re(e)&&o.set(e,l),l):(re(e)&&o.set(e,null),null)}(r,o),emit:null,emitted:null,propsDefaults:E,inheritAttrs:r.inheritAttrs,ctx:E,data:E,props:E,attrs:E,slots:E,refs:E,setupState:E,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};i.ctx=function(t){const n={};return Object.defineProperty(n,"_",{configurable:!0,enumerable:!1,get:()=>t}),Object.keys(go).forEach(e=>{Object.defineProperty(n,e,{configurable:!0,enumerable:!1,get:()=>go[e](t),set:te})}),n}(i),i.root=t?t.root:i,i.emit=or.bind(null,i),e.ce&&e.ce(i);return i}(e,r,o);if(l.type.__hmrId){r=l;var a=r.type.__hmrId;let e=Un.get(a);e||(Dn(a,r.type),e=Un.get(a)),e.instances.add(r)}fn(e),oi(l,"mount"),Wr(e)&&(l.ctx.renderer=Z),oi(l,"init");var[a,r=!1]=[l],{props:c,children:u}=(Zi=r,a.vnode),p=Yi(a),c=(function(e,t,n,r=!1){const o={};var i={};Te(i,$i,1),e.propsDefaults=Object.create(null),Ro(e,t,o,i);for(const s in e.propsOptions[0])s in o||(o[s]=void 0);Vo(t||{},o,e),n?e.props=r?o:Dt(o):e.type.props?e.props=o:e.props=i,e.attrs=i}(a,c,p,r),Ko(a,u),p?function(t,n){var e=t.type;e.name&&qi(e.name,t.appContext.config);if(e.components){var r=Object.keys(e.components);for(let e=0;e<r.length;e++)qi(r[e],t.appContext.config)}if(e.directives){var o=Object.keys(e.directives);for(let e=0;e<o.length;e++)co(o[e])}e.compilerOptions&&ns()&&oe('"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.');t.accessCache=Object.create(null),t.proxy=Yt(new Proxy(t.ctx,_o)),function(t){const{ctx:n,propsOptions:[e]}=t;e&&Object.keys(e).forEach(e=>{Object.defineProperty(n,e,{enumerable:!0,configurable:!0,get:()=>t.props[e],set:te})})}(t);var i=e["setup"];if(i){var s=t.setupContext=1<i.length?os(t):null;Ki(t),Je();const l=gn(i,t,0,[zt(t.props),s]);if(qe(),Gi(),de(l)){if(l.then(Gi,Gi),n)return l.then(e=>{Xi(t,e,n)}).catch(e=>{bn(e,t,0)});t.asyncDep=l,t.suspense||oe(`Component <${null!=(i=e.name)?i:"Anonymous"}>: setup function returned a promise, but no `+"<Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.")}else Xi(t,l,n)}else rs(t,n)}(a,r):void 0);if(Zi=!1,ii(l,"init"),l.asyncDep)return o&&o.registerDep(l,f),void(e.el||(u=l.subTree=P(se),H(null,u,t,n)));f(l,e,t,n,o,i,s),hn(),ii(l,"mount")},ee=(e,t,n)=>{const r=t.component=e.component;!function(e,t,n){var{props:r,children:e,component:o}=e,{props:i,children:s,patchFlag:l}=t,a=o.emitsOptions;if((e||s)&&Ln)return 1;if(t.dirs||t.transition)return 1;if(!(n&&0<=l))return!(!e&&!s||s&&s.$stable)||r!==i&&(r?!i||gr(r,i,a):i);if(1024&l)return 1;if(16&l)return r?gr(r,i,a):i;if(8&l){var c=t.dynamicProps;for(let e=0;e<c.length;e++){var u=c[e];if(i[u]!==r[u]&&!ir(a,u))return 1}}}(e,t,n)?(t.el=e.el,r.vnode=t):r.asyncDep&&!r.asyncResolved?(fn(t),x(r,t,n),hn()):(r.next=t,e=r.update,(e=l.indexOf(e))>xn&&l.splice(e,1),r.update())},f=(p,d,f,h,v,m,g)=>{const e=p.effect=new ze(()=>{if(p.isMounted){let{next:e,bu:t,u:n,parent:r,vnode:o}=p;var s=e;let i;fn(e||p.vnode),ui(p,!1),e?(e.el=o.el,x(p,e,g)):e=o,t&&ke(t),(i=e.props&&e.props.onVnodeBeforeUpdate)&&Di(i,r,e,o),ui(p,!0),oi(p,"render");var l=pr(p),a=(ii(p,"render"),p.subTree);p.subTree=l,oi(p,"patch"),N(a,l,y(a.el),Y(a),p,v,m),ii(p,"patch"),e.el=l.el,null===s&&yr(p,l.el),n&&I(n,v),(i=e.props&&e.props.onVnodeUpdated)&&I(()=>Di(i,r,e,o),v),Zn(p),hn()}else{let e;const{el:t,props:n}=d,{bm:r,m:o,parent:i}=p;a=Hr(d);if(ui(p,!1),r&&ke(r),!a&&(e=n&&n.onVnodeBeforeMount)&&Di(e,i,d),ui(p,!0),t&&S){const c=()=>{oi(p,"render"),p.subTree=pr(p),ii(p,"render"),oi(p,"hydrate"),S(t,p.subTree,p,v,null),ii(p,"hydrate")};a?d.type.__asyncLoader().then(()=>!p.isUnmounted&&c()):c()}else{oi(p,"render");s=p.subTree=pr(p);ii(p,"render"),oi(p,"patch"),N(null,s,f,h,p,v,m),ii(p,"patch"),d.el=s.el}if(o&&I(o,v),!a&&(e=n&&n.onVnodeMounted)){const u=d;I(()=>Di(e,i,u),v)}(256&d.shapeFlag||i&&Hr(i.vnode)&&256&i.vnode.shapeFlag)&&p.a&&I(p.a,v),p.isMounted=!0,Yn(p),d=f=h=null}},()=>$n(t),p.scope),t=p.update=()=>e.run();t.id=p.uid,ui(p,!0),e.onTrack=p.rtc?e=>ke(p.rtc,e):void 0,e.onTrigger=p.rtg?e=>ke(p.rtg,e):void 0,t.ownerInstance=p,t()},x=(e,t,n)=>{var r=(t.component=e).vnode.props;e.vnode=t,e.next=null,Ao(e,t.props,r,n),Go(e,t.children,n),Je(),In(),qe()},J=(e,t,n,r,o,i,s,l,a=!1)=>{var c=e&&e.children,e=e?e.shapeFlag:0,u=t.children,{patchFlag:t,shapeFlag:p}=t;if(0<t){if(128&t)return void k(c,u,n,r,o,i,s,l,a);if(256&t){{var d=c;var f=u;var h=n;t=r;var v=o;var m=i;var g=s;var y=l;var b=a;d=d||le,f=f||le;const _=d.length,w=f.length,x=Math.min(_,w);let e;for(e=0;e<x;e++){const S=f[e]=b?Li(f[e]):Vi(f[e]);N(d[e],S,h,null,v,m,g,y,b)}if(_>w)T(d,v,m,true,false,x);else W(f,h,t,v,m,g,y,b,x)}return}}8&p?(16&e&&T(c,o,i),u!==c&&C(n,u)):16&e?16&p?k(c,u,n,r,o,i,s,l,a):T(c,o,i,!0):(8&e&&C(n,""),16&p&&W(u,n,r,o,i,s,l,a))},k=(e,i,s,l,a,c,u,p,d)=>{let f=0;var h=i.length;let v=e.length-1,m=h-1;for(;f<=v&&f<=m;){var t=e[f],n=i[f]=(d?Li:Vi)(i[f]);if(!Ni(t,n))break;N(t,n,s,null,a,c,u,p,d),f++}for(;f<=v&&f<=m;){var r=e[v],o=i[m]=(d?Li:Vi)(i[m]);if(!Ni(r,o))break;N(r,o,s,null,a,c,u,p,d),v--,m--}if(f>v){if(f<=m)for(var g=m+1,y=g<h?i[g].el:l;f<=m;)N(null,i[f]=(d?Li:Vi)(i[f]),s,y,a,c,u,p,d),f++}else if(f>m)for(;f<=v;)q(e[f],a,c,!0),f++;else{var g=f,b=f;const T=new Map;for(f=b;f<=m;f++){var _=i[f]=(d?Li:Vi)(i[f]);null!=_.key&&(T.has(_.key)&&oe("Duplicate keys found during update:",JSON.stringify(_.key),"Make sure keys are unique."),T.set(_.key,f))}let t,n=0;var w=m-b+1;let r=!1,o=0;const E=new Array(w);for(f=0;f<w;f++)E[f]=0;for(f=g;f<=v;f++){var x=e[f];if(n>=w)q(x,a,c,!0);else{let e;if(null!=x.key)e=T.get(x.key);else for(t=b;t<=m;t++)if(0===E[t-b]&&Ni(x,i[t])){e=t;break}void 0===e?q(x,a,c,!0):(E[e-b]=f+1,e>=o?o=e:r=!0,N(x,i[e],s,null,a,c,u,p,d),n++)}}var S=r?function(e){const t=e.slice(),n=[0];let r,o,i,s,l;var a=e.length;for(r=0;r<a;r++){var c=e[r];if(0!==c)if(o=n[n.length-1],e[o]<c)t[r]=o,n.push(r);else{for(i=0,s=n.length-1;i<s;)l=i+s>>1,e[n[l]]<c?i=1+l:s=l;c<e[n[i]]&&(0<i&&(t[r]=n[i-1]),n[i]=r)}}i=n.length,s=n[i-1];for(;0<i--;)n[i]=s,s=t[s];return n}(E):le;for(t=S.length-1,f=w-1;0<=f;f--){var C=b+f,k=i[C],C=C+1<h?i[C+1].el:l;0===E[f]?N(null,k,s,C,a,c,u,p,d):r&&(t<0||f!==S[t]?O(k,s,C,2):t--)}}},O=(e,t,n,r,o=null)=>{const{el:i,type:s,transition:l,children:a,shapeFlag:c}=e;if(6&c)O(e.component.subTree,t,n,r);else if(128&c)e.suspense.move(t,n,r);else if(64&c)s.move(e,t,n,Z);else if(s===ie){V(i,t,n);for(let e=0;e<a.length;e++)O(a[e],t,n,r);V(e.anchor,t,n)}else if(s===bi){for(var u,[{el:p,anchor:d},f,h]=[e,t,n];p&&p!==d;)u=U(p),V(p,f,h),p=u;V(d,f,h)}else if(2!==r&&1&c&&l)if(0===r)l.beforeEnter(i),V(i,t,n),I(()=>l.enter(i),o);else{const{leave:v,delayLeave:m,afterLeave:g}=l,y=()=>V(i,t,n);e=()=>{v(i,()=>{y(),g&&g()})};m?m(i,y,e):e()}else V(i,t,n)},q=(t,n,r,o=!1,i=!1)=>{var{type:s,props:l,ref:a,children:c,dynamicChildren:u,shapeFlag:p,patchFlag:d,dirs:f}=t;if(null!=a&&Zo(a,null,r,t,!0),256&p)n.ctx.deactivate(t);else{const h=1&p&&f;a=!Hr(t);let e;if(a&&(e=l&&l.onVnodeBeforeUnmount)&&Di(e,n,t),6&p)m(t.component,r,o);else{if(128&p)return void t.suspense.unmount(r,o);h&&uo(t,null,n,"beforeUnmount"),64&p?t.type.remove(t,n,r,i,Z,o):u&&(s!==ie||0<d&&64&d)?T(u,n,r,!1,!0):(s===ie&&384&d||!i&&16&p)&&T(c,n,r),o&&v(t)}(a&&(e=l&&l.onVnodeUnmounted)||h)&&I(()=>{e&&Di(e,n,t),h&&uo(t,null,n,"unmounted")},r)}},v=e=>{const{type:t,el:n,anchor:r,transition:o}=e;if(t===ie)if(0<e.patchFlag&&2048&e.patchFlag&&o&&!o.persisted)e.children.forEach(e=>{e.type===se?d(e.el):v(e)});else{var i=n;var s=r;var l;for(;i!==s;)l=U(i),d(i),i=l;d(s)}else if(t===bi)z(e);else{const c=()=>{d(n),o&&!o.persisted&&o.afterLeave&&o.afterLeave()};if(1&e.shapeFlag&&o&&!o.persisted){const{leave:u,delayLeave:p}=o;var a=()=>u(n,c);p?p(e.el,c,a):a()}else c()}},m=(e,t,n)=>{var r;e.type.__hmrId&&(r=e,Un.get(r.type.__hmrId).instances.delete(r));const{bum:o,scope:i,update:s,subTree:l,um:a}=e;o&&ke(o),i.stop(),s&&(s.active=!1,q(l,e,t,n)),a&&I(a,t),I(()=>{e.isUnmounted=!0},t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve()),Qn(e)},T=(t,n,r,o=!1,i=!1,s=0)=>{for(let e=s;e<t.length;e++)q(t[e],n,r,o,i)},Y=e=>6&e.shapeFlag?Y(e.component.subTree):128&e.shapeFlag?e.suspense.next():U(e.anchor||e.el);var r=(e,t,n)=>{null==e?t._vnode&&q(t._vnode,null,null,!0):N(t._vnode||null,e,t,null,null,null,n),In(),Pn(),t._vnode=e};const Z={p:N,um:q,m:O,r:v,mt:G,mc:W,pc:J,pbc:K,n:Y,o:e};let i,S;return t&&([i,S]=t(Z)),{render:r,hydrate:i,createApp:Yo(r,i)}}function ui({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function pi(e,t,n=!1){var r=e.children;const o=t.children;if(ae(r)&&ae(o))for(let t=0;t<r.length;t++){var i=r[t];let e=o[t];1&e.shapeFlag&&!e.dynamicChildren&&((e.patchFlag<=0||32===e.patchFlag)&&((e=o[t]=Li(o[t])).el=i.el),n||pi(i,e)),e.type===yi&&(e.el=i.el),e.type!==se||e.el||(e.el=i.el)}}const di=e=>e.__isTeleport,fi=e=>e&&(e.disabled||""===e.disabled),hi=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,vi=(e,t)=>{var n=e&&e.to;return ce(n)?t?((t=t(n))||oe(`Failed to locate Teleport target with selector "${n}". `+"Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree."),t):(oe("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null):(n||fi(e)||oe("Invalid Teleport target: "+n),n)};function mi(e,t,n,{o:{insert:r},m:o},i=2){0===i&&r(e.targetAnchor,t,n);var{el:e,anchor:s,shapeFlag:l,children:a,props:c}=e,i=2===i;if(i&&r(e,t,n),(!i||fi(c))&&16&l)for(let e=0;e<a.length;e++)o(a[e],t,n,2);i&&r(s,t,n)}t={__isTeleport:!0,process(e,t,n,r,o,i,s,l,a,c){const{mc:u,pc:p,pbc:d,o:{insert:f,querySelector:h,createText:v,createComment:m}}=c;var g,y,b,_,w,x=fi(t.props);let{shapeFlag:S,children:C,dynamicChildren:k}=t;Ln&&(a=!1,k=null),null==e?(b=t.el=m("teleport start"),g=t.anchor=m("teleport end"),f(b,n,r),f(g,n,r),b=t.target=vi(t.props,h),r=t.targetAnchor=v(""),b?(f(r,b),s=s||hi(b)):x||oe("Invalid Teleport target on mount:",b,`(${typeof b})`),y=(e,t)=>{16&S&&u(C,e,t,o,i,s,l,a)},x?y(n,g):b&&y(b,r)):(t.el=e.el,g=t.anchor=e.anchor,y=t.target=e.target,b=t.targetAnchor=e.targetAnchor,w=(r=fi(e.props))?n:y,_=r?g:b,s=s||hi(y),k?(d(e.dynamicChildren,k,w,o,i,s,l),pi(e,t,!0)):a||p(e,t,w,_,o,i,s,l,!1),x?r||mi(t,n,g,c,1):(t.props&&t.props.to)!==(e.props&&e.props.to)?(w=t.target=vi(t.props,h))?mi(t,w,null,c,0):oe("Invalid Teleport target on update:",y,`(${typeof y})`):r&&mi(t,y,b,c,1)),gi(t)},remove(e,t,n,r,{um:o,o:{remove:i}},s){var{shapeFlag:e,children:l,anchor:a,targetAnchor:c,target:u,props:p}=e;if(u&&i(c),(s||!fi(p))&&(i(a),16&e))for(let e=0;e<l.length;e++){var d=l[e];o(d,t,n,!0,!!d.dynamicChildren)}},move:mi,hydrate:function(t,n,r,o,i,s,{o:{nextSibling:l,parentNode:e,querySelector:a}},c){const u=n.target=vi(n.props,a);if(u){a=u._lpa||u.firstChild;if(16&n.shapeFlag)if(fi(n.props))n.anchor=c(l(t),n,e(t),r,o,i,s),n.targetAnchor=a;else{n.anchor=l(t);let e=a;for(;e;)if((e=l(e))&&8===e.nodeType&&"teleport anchor"===e.data){n.targetAnchor=e,u._lpa=n.targetAnchor&&l(n.targetAnchor);break}c(a,n,u,r,o,i,s)}gi(n)}return n.anchor&&l(n.anchor)}};function gi(t){const n=t.ctx;if(n&&n.ut){let e=t.children[0].el;for(;e!==t.targetAnchor;)1===e.nodeType&&e.setAttribute("data-v-owner",n.uid),e=e.nextSibling;n.ut()}}const ie=Symbol("Fragment"),yi=Symbol("Text"),se=Symbol("Comment"),bi=Symbol("Static"),_i=[];let c=null;function wi(e=!1){_i.push(c=e?null:[])}function xi(){_i.pop(),c=_i[_i.length-1]||null}let Si=1;function Ci(e){Si+=e}function ki(e){return e.dynamicChildren=0<Si?c||le:null,xi(),0<Si&&c&&c.push(e),e}function Ti(e,t,n,r,o){return ki(P(e,t,n,r,o,!0))}function Ei(e){return!!e&&!0===e.__v_isVNode}function Ni(e,t){return 6&t.shapeFlag&&Bn.has(t.type)?(e.shapeFlag&=-257,void(t.shapeFlag&=-513)):e.type===t.type&&e.key===t.key}let Oi;const $i="__vInternal",Ai=({key:e})=>null!=e?e:null,Ri=({ref:e,ref_key:t,ref_for:n})=>null!=e?ce(e)||q(e)||ne(e)?{i:h,r:e,k:t,f:!!n}:e:null;function Ii(e,t=null,n=null,r=0,o=null,i=e===ie?0:1,s=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ai(t),ref:t&&Ri(t),scopeId:sr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:h};return l?(Bi(a,n),128&i&&e.normalize(a)):n&&(a.shapeFlag|=ce(n)?8:16),a.key!=a.key&&oe("VNode created with invalid key (NaN). VNode type:",a.type),0<Si&&!s&&c&&(0<a.patchFlag||6&i)&&32!==a.patchFlag&&c.push(a),a}const P=(...e)=>{var[e,n=null,t=null,r=0,o=null,i=!1]=[...Oi?Oi(e,h):e];if(e&&e!==fo||(e||oe(`Invalid vnode type when creating vnode: ${e}.`),e=se),Ei(e)){const l=Fi(e,n,!0);return t&&Bi(l,t),0<Si&&!i&&c&&(6&l.shapeFlag?c[c.indexOf(e)]=l:c.push(l)),l.patchFlag|=-2,l}if(us(e)&&(e=e.__vccOpts),n){let{class:e,style:t}=n=Pi(n);e&&!ce(e)&&(n.class=T(e)),re(t)&&(qt(t)&&!ae(t)&&(t=$({},t)),n.style=a(t))}var s=ce(e)?1:br(e)?128:di(e)?64:re(e)?4:ne(e)?2:0;return 4&s&&qt(e)&&oe("Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.",`
Component that was made reactive: `,e=m(e)),Ii(e,n,t,r,o,s,i,!0)};function Pi(e){return e?qt(e)||$i in e?$({},e):e:null}function Fi(e,t,n=!1){const{props:r,ref:o,patchFlag:i,children:s}=e;var l=t?Ui(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Ai(l),ref:t&&t.ref?n&&o?ae(o)?o.concat(Ri(t)):[o,Ri(t)]:Ri(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:-1===i&&ae(s)?s.map(Mi):s,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ie?-1===i?16:16|i:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Fi(e.ssContent),ssFallback:e.ssFallback&&Fi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Mi(e){const t=Fi(e);return ae(e.children)&&(t.children=e.children.map(Mi)),t}function ji(e=" ",t=0){return P(yi,null,e,t)}function Vi(e){return null==e||"boolean"==typeof e?P(se):ae(e)?P(ie,null,e.slice()):"object"==typeof e?Li(e):P(yi,null,String(e))}function Li(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:Fi(e)}function Bi(e,t){let n=0;var r=e["shapeFlag"];if(null==t)t=null;else if(ae(t))n=16;else if("object"==typeof t){if(65&r){const i=t.default;return void(i&&(i._c&&(i._d=!1),Bi(e,i()),i._c&&(i._d=!0)))}n=32;var o=t._;o||$i in t?3===o&&h&&(1===h.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=h}else ne(t)?(t={default:t,_ctx:h},n=32):(t=String(t),64&r?(n=16,t=[ji(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ui(...t){const n={};for(let e=0;e<t.length;e++){var r=t[e];for(const i in r)if("class"===i)n.class!==r.class&&(n.class=T([n.class,r.class]));else if("style"===i)n.style=a([n.style,r.style]);else if(K(i)){const s=n[i];var o=r[i];!o||s===o||ae(s)&&s.includes(o)||(n[i]=s?[].concat(s,o):o)}else""!==i&&(n[i]=r[i])}return n}function Di(e,t,n,r=null){yn(e,t,7,[n,r])}const Hi=Jo();let zi=0;let _=null;const Wi=()=>_||h,Ki=e=>{(_=e).scope.on()},Gi=()=>{_&&_.scope.off(),_=null},Ji=e("slot,component");function qi(e,t){const n=t.isNativeTag||z;(Ji(e)||n(e))&&oe("Do not use built-in or reserved HTML elements as component id: "+e)}function Yi(e){return 4&e.vnode.shapeFlag}let Zi=!1;function Xi(e,t,n){if(ne(t))e.render=t;else if(re(t)){Ei(t)&&oe("setup() should not return VNodes directly - return a render function instead."),e.devtoolsRawSetupState=t,e.setupState=ln(t);{var r=e;const{ctx:o,setupState:i}=r;Object.keys(m(i)).forEach(e=>{i.__isScriptSetup||(yo(e[0])?oe(`setup() return property ${JSON.stringify(e)} should not start with "$" or "_" `+"which are reserved prefixes for Vue internals."):Object.defineProperty(o,e,{enumerable:!0,configurable:!0,get:()=>i[e],set:te}))})}}else void 0!==t&&oe("setup() should return an object. Received: "+(null===t?"null":typeof t));rs(e,n)}let Qi,es;function ts(e){Qi=e,es=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,wo))}}const ns=()=>!Qi;function rs(e,t){const n=e.type;var r,o,i,s,l;e.render||(t||!Qi||n.render||(r=n.template||ko(e).template)&&(oi(e,"compile"),{isCustomElement:l,compilerOptions:o}=e.appContext.config,{delimiters:i,compilerOptions:s}=n,l=$($({isCustomElement:l,delimiters:i},o),s),n.render=Qi(r,l),ii(e,"compile")),e.render=n.render||te,es&&es(e)),Ki(e),Je(),So(e),qe(),Gi(),n.render||e.render!==te||t||(!Qi&&n.template?oe('Component provided template option but runtime compilation is not supported in this build of Vue. Use "vue.global.js" instead.'):oe("Component is missing template or render function."))}function os(r){let e;return Object.freeze({get attrs(){return e=e||(n=r,new Proxy(n.attrs,{get(e,t){return ur(),f(n,"get","$attrs"),e[t]},set(){return oe("setupContext.attrs is readonly."),!1},deleteProperty(){return oe("setupContext.attrs is readonly."),!1}}));var n},get slots(){return zt(r.slots)},get emit(){return(e,...t)=>r.emit(e,...t)},expose:t=>{if(r.exposed&&oe("expose() should be called only once per setup()."),null!=t){let e=typeof t;"object"===e&&(ae(t)?e="array":q(t)&&(e="ref")),"object"!==e&&oe(`expose() should be passed a plain object, received ${e}.`)}r.exposed=t||{}}})}function is(n){if(n.exposed)return n.exposeProxy||(n.exposeProxy=new Proxy(ln(Yt(n.exposed)),{get(e,t){return t in e?e[t]:t in go?go[t](n):void 0},has(e,t){return t in e||t in go}}))}const ss=/(?:^|[-_])(\w)/g,ls=e=>e.replace(ss,e=>e.toUpperCase()).replace(/[-_]/g,"");function as(e,t=!0){return ne(e)?e.displayName||e.name:e.name||t&&e.__name}function cs(e,n,t=!1){let r=as(n);var o;return!(r=!r&&n.__file&&(o=n.__file.match(/([^/\\]+)\.\w+$/))?o[1]:r)&&e&&e.parent&&(o=e=>{for(const t in e)if(e[t]===n)return t},r=o(e.components||e.parent.type.components)||o(e.appContext.components)),r?ls(r):t?"App":"Anonymous"}function us(e){return ne(e)&&"__vccOpts"in e}const ps=(n,r)=>{{var[n,r,o=!1]=[n,r,Zi];let e,t;var i=ne(n);t=i?(e=n,()=>{console.warn("Write operation failed: computed value is readonly")}):(e=n.get,n.set);const s=new pn(e,t,i||!t,o);return r&&!o&&(s.effect.onTrack=r.onTrack,s.effect.onTrigger=r.onTrigger),s}},ds=e=>oe(e+"() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.");function fs(){const e=Wi();return e||oe("useContext() called without active instance."),e.setupContext||(e.setupContext=os(e))}function hs(e,t,n){var r=arguments.length;return 2===r?re(t)&&!ae(t)?Ei(t)?P(e,null,[t]):P(e,t):P(e,null,t):(3<r?n=Array.prototype.slice.call(arguments,2):3===r&&Ei(n)&&(n=[n]),P(e,t,n))}ot=Symbol("ssrContext");function vs(){if("undefined"!=typeof window){const t={style:"color:#3ba776"},i={style:"color:#0b1bc9"},s={style:"color:#b62e24"},l={style:"color:#9d288c"};var e={header(e){return re(e)?e.__isVue?["div",t,"VueInstance"]:q(e)?["div",{},["span",t,function(e){if(Jt(e))return"ShallowRef";if(e.effect)return"ComputedRef";return"Ref"}(e)],"<",n(e.value),">"]:Kt(e)?["div",{},["span",t,Jt(e)?"ShallowReactive":"Reactive"],"<",n(e),">"+(Gt(e)?" (readonly)":"")]:Gt(e)?["div",{},["span",t,Jt(e)?"ShallowReadonly":"Readonly"],"<",n(e),">"]:null:null},hasBody(e){return e&&e.__isVue},body(e){if(e&&e.__isVue)return["div",{},...function(e){const t=[];e.type.props&&e.props&&t.push(r("props",m(e.props)));e.setupState!==E&&t.push(r("setup",e.setupState));e.data!==E&&t.push(r("data",m(e.data)));var n=o(e,"computed");n&&t.push(r("computed",n));n=o(e,"inject");n&&t.push(r("injected",n));return t.push(["div",{},["span",{style:l.style+";opacity:0.66"},"$ (internal): "],["object",{object:e}]]),t}(e.$)]}};function r(e,t){return t=$({},t),Object.keys(t).length?["div",{style:"line-height:1.25em;margin-bottom:0.6em"},["div",{style:"color:#476582"},e],["div",{style:"padding-left:1.25em"},...Object.keys(t).map(e=>["div",{},["span",l,e+": "],n(t[e],!1)])]]:["span",{}]}function n(e,t=!0){return"number"==typeof e?["span",i,e]:"string"==typeof e?["span",s,JSON.stringify(e)]:"boolean"==typeof e?["span",l,e]:re(e)?["object",{object:t?m(e):e}]:["span",s,String(e)]}function o(e,t){var n=e.type;if(!ne(n)){const r={};for(const o in e.ctx)!function t(e,n,r){const o=e[r];if(ae(o)&&o.includes(n)||re(o)&&n in o)return!0;if(e.extends&&t(e.extends,n,r))return!0;if(e.mixins&&e.mixins.some(e=>t(e,n,r)))return!0}(n,o,t)||(r[o]=e.ctx[o]);return r}}window.devtoolsFormatters?window.devtoolsFormatters.push(e):window.devtoolsFormatters=[e]}}function ms(e,t){var n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e<n.length;e++)if(Ce(n[e],t[e]))return!1;return 0<Si&&c&&c.push(e),!0}const gs="3.2.47";const ys="undefined"!=typeof document?document:null,bs=ys&&ys.createElement("template");var _s={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?ys.createElementNS("http://www.w3.org/2000/svg",e):ys.createElement(e,n?{is:n}:void 0);return"select"===e&&r&&null!=r.multiple&&o.setAttribute("multiple",r.multiple),o},createText:e=>ys.createTextNode(e),createComment:e=>ys.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ys.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,i){var s=n?n.previousSibling:t.lastChild;if(o&&(o===i||o.nextSibling)){for(;;)if(t.insertBefore(o.cloneNode(!0),n),o===i||!(o=o.nextSibling))break}else{bs.innerHTML=r?`<svg>${e}</svg>`:e;const a=bs.content;if(r){for(var l=a.firstChild;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};const ws=/[^\\];\s*$/,xs=/\s*!important$/;function Ss(t,n,e){var r;ae(e)?e.forEach(e=>Ss(t,n,e)):(null==e&&(e=""),ws.test(e)&&oe(`Unexpected semicolon at the end of '${n}' style value: '${e}'`),n.startsWith("--")?t.setProperty(n,e):(r=function(t,n){var e=ks[n];if(e)return e;let r=R(n);if("filter"!==r&&r in t)return ks[n]=r;r=xe(r);for(let e=0;e<Cs.length;e++){var o=Cs[e]+r;if(o in t)return ks[n]=o}return n}(t,n),xs.test(e)?t.setProperty(v(r),e.replace(xs,""),"important"):t[r]=e))}const Cs=["Webkit","Moz","ms"],ks={};const Ts="http://www.w3.org/1999/xlink";function Es(e,t,n,r){e.addEventListener(t,n,r)}function Ns(e,t,n,r,o=null){const i=e._vei||(e._vei={}),s=i[t];var l,a;r&&s?s.value=r:([l,a]=function(t){let n;if(Os.test(t)){n={};let e;for(;e=t.match(Os);)t=t.slice(0,t.length-e[0].length),n[e[0].toLowerCase()]=!0}var e=":"===t[2]?t.slice(3):v(t.slice(2));return[e,n]}(t),r?Es(e,l,i[t]=function(e,t){const n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();yn(function(e,t){{if(ae(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(t=>e=>!e._stopped&&t&&t(e))}return t}}(e,n.value),t,5,[e])};return n.value=e,n.attached=Rs(),n}(r,o),a):s&&(r=s,e.removeEventListener(l,r,a),i[t]=void 0))}const Os=/(?:Once|Passive|Capture)$/;let $s=0;const As=Promise.resolve(),Rs=()=>$s||(As.then(()=>$s=0),$s=Date.now());const Is=/^on[a-z]/;function Ps(e,t){const n=Dr(e);class r extends Fs{constructor(e){super(n,e,t)}}return r.def=n,r}class Fs extends("undefined"!=typeof HTMLElement?HTMLElement:class{}){constructor(e,t={},n){super(),this._def=e,this._props=t,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&n?n(this._createVNode(),this.shadowRoot):(this.shadowRoot&&oe("Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use `defineSSRCustomElement`."),this.attachShadow({mode:"open"}),this._def.__asyncLoader||this._resolveProps(this._def))}connectedCallback(){this._connected=!0,this._instance||(this._resolved?this._update():this._resolveDef())}disconnectedCallback(){this._connected=!1,On(()=>{this._connected||(Ol(null,this.shadowRoot),this._instance=null)})}_resolveDef(){this._resolved=!0;for(let e=0;e<this.attributes.length;e++)this._setAttr(this.attributes[e].name);new MutationObserver(e=>{for(const t of e)this._setAttr(t.attributeName)}).observe(this,{attributes:!0});const t=(e,t=!1)=>{var{props:n,styles:r}=e;let o;if(n&&!ae(n))for(const s in n){var i=n[s];(i===Number||i&&i.type===Number)&&(s in this._props&&(this._props[s]=Ne(this._props[s])),(o=o||Object.create(null))[R(s)]=!0)}this._numberProps=o,t&&this._resolveProps(e),this._applyStyles(r),this._update()},e=this._def.__asyncLoader;e?e().then(e=>t(e,!0)):t(this._def)}_resolveProps(e){e=e.props;const t=ae(e)?e:Object.keys(e||{});for(const n of Object.keys(this))"_"!==n[0]&&t.includes(n)&&this._setProp(n,this[n],!0,!1);for(const r of t.map(R))Object.defineProperty(this,r,{get(){return this._getProp(r)},set(e){this._setProp(r,e)}})}_setAttr(e){let t=this.getAttribute(e);e=R(e);this._numberProps&&this._numberProps[e]&&(t=Ne(t)),this._setProp(e,t,!1)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!0){t!==this._props[e]&&(this._props[e]=t,r&&this._instance&&this._update(),n&&(!0===t?this.setAttribute(v(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(v(e),t+""):t||this.removeAttribute(v(e))))}_update(){Ol(this._createVNode(),this.shadowRoot)}_createVNode(){const e=P(this._def,$({},this._props));return this._instance||(e.ce=e=>{(this._instance=e).isCE=!0,e.ceReload=e=>{this._styles&&(this._styles.forEach(e=>this.shadowRoot.removeChild(e)),this._styles.length=0),this._applyStyles(e),this._instance=null,this._update()};const n=(e,t)=>{this.dispatchEvent(new CustomEvent(e,{detail:t}))};e.emit=(e,...t)=>{n(e,t),v(e)!==e&&n(v(e),t)};let t=this;for(;t=t&&(t.parentNode||t.host);)if(t instanceof Fs){e.parent=t._instance,e.provides=t._instance.provides;break}}),e}_applyStyles(e){e&&e.forEach(e=>{const t=document.createElement("style");t.textContent=e,this.shadowRoot.appendChild(t),(this._styles||(this._styles=[])).push(t)})}}function Ms(e,t){if(1===e.nodeType){const n=e.style;for(const r in t)n.setProperty("--"+r,t[r])}}const js="transition",Vs="animation";var Ls=(e,{slots:t})=>hs(Fr,zs(e),t);Ls.displayName="Transition";const Bs={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};var Us=Ls.props=$({},Fr.props,Bs);const Ds=(e,t=[])=>{ae(e)?e.forEach(e=>e(...t)):e&&e(...t)},Hs=e=>!!e&&(ae(e)?e.some(e=>1<e.length):1<e.length);function zs(e){const t={};for(const E in e)E in Bs||(t[E]=e[E]);if(!1===e.css)return t;const{name:n="v",type:i,duration:r,enterFromClass:s=n+"-enter-from",enterActiveClass:o=n+"-enter-active",enterToClass:l=n+"-enter-to",appearFromClass:a=s,appearActiveClass:c=o,appearToClass:u=l,leaveFromClass:p=n+"-leave-from",leaveActiveClass:d=n+"-leave-active",leaveToClass:f=n+"-leave-to"}=e;var h=null==(h=r)?null:re(h)?[Ws(h.enter),Ws(h.leave)]:[h=Ws(h),h];const v=h&&h[0],m=h&&h[1],{onBeforeEnter:g,onEnter:y,onEnterCancelled:b,onLeave:_,onLeaveCancelled:w,onBeforeAppear:x=g,onAppear:S=y,onAppearCancelled:C=b}=t,k=(e,t,n)=>{Gs(e,t?u:l),Gs(e,t?c:o),n&&n()},T=(e,t)=>{e._isLeaving=!1,Gs(e,p),Gs(e,f),Gs(e,d),t&&t()};h=o=>(e,t)=>{const n=o?S:y,r=()=>k(e,o,t);Ds(n,[e,r]),Js(()=>{Gs(e,o?a:s),Ks(e,o?u:l),Hs(n)||Ys(e,i,v,r)})};return $(t,{onBeforeEnter(e){Ds(g,[e]),Ks(e,s),Ks(e,o)},onBeforeAppear(e){Ds(x,[e]),Ks(e,a),Ks(e,c)},onEnter:h(!1),onAppear:h(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>T(e,t);Ks(e,p),el(),Ks(e,d),Js(()=>{e._isLeaving&&(Gs(e,p),Ks(e,f),Hs(_)||Ys(e,i,m,n))}),Ds(_,[e,n])},onEnterCancelled(e){k(e,!1),Ds(b,[e])},onAppearCancelled(e){k(e,!0),Ds(C,[e])},onLeaveCancelled(e){T(e),Ds(w,[e])}})}function Ws(e){e=Ne(e);return vn(e,"<transition> explicit duration"),e}function Ks(t,e){e.split(/\s+/).forEach(e=>e&&t.classList.add(e)),(t._vtc||(t._vtc=new Set)).add(e)}function Gs(t,e){e.split(/\s+/).forEach(e=>e&&t.classList.remove(e));const n=t["_vtc"];n&&(n.delete(e),n.size||(t._vtc=void 0))}function Js(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let qs=0;function Ys(t,e,n,r){const o=t._endId=++qs,i=()=>{o===t._endId&&r()};if(n)return setTimeout(i,n);const{type:s,timeout:l,propCount:a}=Zs(t,e);if(!s)return r();const c=s+"end";let u=0;const p=()=>{t.removeEventListener(c,d),i()},d=e=>{e.target===t&&++u>=a&&p()};setTimeout(()=>{u<a&&p()},l+1),t.addEventListener(c,d)}function Zs(e,t){const n=window.getComputedStyle(e);var e=e=>(n[e]||"").split(", "),r=e(js+"Delay"),o=e(js+"Duration"),r=Xs(r,o),i=e(Vs+"Delay"),s=e(Vs+"Duration"),i=Xs(i,s);let l=null,a=0,c=0;t===js?0<r&&(l=js,a=r,c=o.length):t===Vs?0<i&&(l=Vs,a=i,c=s.length):(a=Math.max(r,i),l=0<a?i<r?js:Vs:null,c=l?(l===js?o:s).length:0);t=l===js&&/\b(transform|all)(,|$)/.test(e(js+"Property").toString());return{type:l,timeout:a,propCount:c,hasTransform:t}}function Xs(n,e){for(;n.length<e.length;)n=n.concat(n);return Math.max(...e.map((e,t)=>Qs(e)+Qs(n[t])))}function Qs(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function el(){document.body.offsetHeight}const tl=new WeakMap,nl=new WeakMap;Us={name:"TransitionGroup",props:$({},Us,{tag:String,moveClass:String}),setup(i,{slots:o}){const s=Wi(),l=Pr();let a,c;return no(()=>{if(a.length){const o=i.moveClass||`${i.name||"v"}-move`;if(function(e,t,n){const r=e.cloneNode();e._vtc&&e._vtc.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))});n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display="none";const o=1===t.nodeType?t:t.parentNode,i=(o.appendChild(r),Zs(r))["hasTransform"];return o.removeChild(r),i}(a[0].el,s.vnode.el,o)){a.forEach(rl),a.forEach(ol);const e=a.filter(il);el(),e.forEach(e=>{const t=e.el,n=t.style,r=(Ks(t,o),n.transform=n.webkitTransform=n.transitionDuration="",t._moveCb=e=>{e&&e.target!==t||e&&!/transform$/.test(e.propertyName)||(t.removeEventListener("transitionend",r),t._moveCb=null,Gs(t,o))});t.addEventListener("transitionend",r)})}}}),()=>{var e=m(i),t=zs(e),e=e.tag||ie;a=c,c=o.default?Ur(o.default()):[];for(let e=0;e<c.length;e++){var n=c[e];null!=n.key?Br(n,jr(n,t,l,s)):oe("<TransitionGroup> children must be keyed.")}if(a)for(let e=0;e<a.length;e++){const r=a[e];Br(r,jr(r,t,l,s)),tl.set(r,r.el.getBoundingClientRect())}return P(e,null,c)}}};function rl(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function ol(e){nl.set(e,e.el.getBoundingClientRect())}function il(e){var t=tl.get(e),n=nl.get(e),r=t.left-n.left,t=t.top-n.top;if(r||t){const o=e.el.style;return o.transform=o.webkitTransform=`translate(${r}px,${t}px)`,o.transitionDuration="0s",e}}const sl=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ae(t)?e=>ke(t,e):t};function ll(e){e.target.composing=!0}function al(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const cl={created(t,{modifiers:{lazy:e,trim:n,number:r}},o){t._assign=sl(o);const i=r||o.props&&"number"===o.props.type;Es(t,e?"change":"input",e=>{if(!e.target.composing){let e=t.value;n&&(e=e.trim()),i&&(e=Ee(e)),t._assign(e)}}),n&&Es(t,"change",()=>{t.value=t.value.trim()}),e||(Es(t,"compositionstart",ll),Es(t,"compositionend",al),Es(t,"change",al))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:o}},i){if(e._assign=sl(i),!e.composing){if(document.activeElement===e&&"range"!==e.type){if(n)return;if(r&&e.value.trim()===t)return;if((o||"number"===e.type)&&Ee(e.value)===t)return}i=null==t?"":t;e.value!==i&&(e.value=i)}}},ul={deep:!0,created(a,e,t){a._assign=sl(t),Es(a,"change",()=>{const e=a._modelValue;var t=vl(a),n=a.checked;const r=a._assign;if(ae(e)){var o=V(e,t),i=-1!==o;if(n&&!i)r(e.concat(t));else if(!n&&i){const s=[...e];s.splice(o,1),r(s)}}else if(X(e)){const l=new Set(e);n?l.add(t):l.delete(t),r(l)}else r(ml(a,n))})},mounted:pl,beforeUpdate(e,t,n){e._assign=sl(n),pl(e,t,n)}};function pl(e,{value:t,oldValue:n},r){e._modelValue=t,ae(t)?e.checked=-1<V(t,r.props.value):X(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=j(t,ml(e,!0)))}const dl={created(e,{value:t},n){e.checked=j(t,n.props.value),e._assign=sl(n),Es(e,"change",()=>{e._assign(vl(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e._assign=sl(r),t!==n&&(e.checked=j(t,r.props.value))}},fl={deep:!0,created(t,{value:e,modifiers:{number:n}},r){const o=X(e);Es(t,"change",()=>{var e=Array.prototype.filter.call(t.options,e=>e.selected).map(e=>n?Ee(vl(e)):vl(e));t._assign(t.multiple?o?new Set(e):e:e[0])}),t._assign=sl(r)},mounted(e,{value:t}){hl(e,t)},beforeUpdate(e,t,n){e._assign=sl(n)},updated(e,{value:t}){hl(e,t)}};function hl(n,r){var o=n.multiple;if(!o||ae(r)||X(r)){for(let e=0,t=n.options.length;e<t;e++){const s=n.options[e];var i=vl(s);if(o)ae(r)?s.selected=-1<V(r,i):s.selected=r.has(i);else if(j(vl(s),r))return void(n.selectedIndex!==e&&(n.selectedIndex=e))}o||-1===n.selectedIndex||(n.selectedIndex=-1)}else oe("<select multiple v-model> expects an Array or Set value for its binding, "+`but got ${Object.prototype.toString.call(r).slice(8,-1)}.`)}function vl(e){return"_value"in e?e._value:e.value}function ml(e,t){var n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}var gl={created(e,t,n){yl(e,t,n,null,"created")},mounted(e,t,n){yl(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){yl(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){yl(e,t,n,r,"updated")}};function yl(e,t,n,r,o){const i=function(e,t){switch(e){case"SELECT":return fl;case"TEXTAREA":return cl;default:switch(t){case"checkbox":return ul;case"radio":return dl;default:return cl}}}(e.tagName,n.props&&n.props.type)[o];i&&i(e,t,n,r)}const bl=["ctrl","shift","alt","meta"],_l={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(t,n)=>bl.some(e=>t[e+"Key"]&&!n.includes(e))};const wl={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"};var xl={beforeMount(e,{value:t},{transition:n}){e._vod="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):Sl(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Sl(e,!0),r.enter(e)):r.leave(e,()=>{Sl(e,!1)}):Sl(e,t))},beforeUnmount(e,{value:t}){Sl(e,t)}};function Sl(e,t){e.style.display=t?e._vod:"none"}const Cl=$({patchProp:(e,n,r,o,t=!1,i,s,l,a)=>{if("class"===n)f=o,h=t,v=(d=e)._vtc,null==(f=v?(f?[f,...v]:[...v]).join(" "):f)?d.removeAttribute("class"):h?d.setAttribute("class",f):d.className=f;else if("style"===n){v=e;h=r;var c=o;const m=v.style;d=ce(c);if(c&&!d){if(h&&!ce(h))for(const g in h)null==c[g]&&Ss(m,g,"");for(const y in c)Ss(m,y,c[y])}else{f=m.display;d?h!==c&&(m.cssText=c):h&&v.removeAttribute("style"),"_vod"in v&&(m.display=f)}}else if(K(n))G(n)||Ns(e,n,0,o,s);else if("."===n[0]?(n=n.slice(1),1):"^"===n[0]?(n=n.slice(1),0):function(e,t,n,r){if(r)return"innerHTML"===t||"textContent"===t||!!(t in e&&Is.test(t)&&ne(n));if("spellcheck"===t||"draggable"===t||"translate"===t)return;if("form"===t)return;if("list"===t&&"INPUT"===e.tagName)return;if("type"===t&&"TEXTAREA"===e.tagName)return;if(Is.test(t)&&ce(n))return;return t in e}(e,n,o,t)){r=e;var u=n;var p=o;if("innerHTML"===u||"textContent"===u)return void(i&&a(i,s,l),r[u]=null==p?"":p);if("value"===u&&"PROGRESS"!==r.tagName&&!r.tagName.includes("-"))return void(a=null==(r._value=p)?"":p,r.value===a&&"OPTION"!==r.tagName||(r.value=a),null==p&&r.removeAttribute(u));let t=!1;""!==p&&null!=p||("boolean"==(i=typeof r[u])?p=M(p):null==p&&"string"==i?(p="",t=!0):"number"==i&&(p=0,t=!0));try{r[u]=p}catch(e){t||oe(`Failed setting prop "${u}" on <${r.tagName.toLowerCase()}>: `+`value ${p} is invalid.`,e)}t&&r.removeAttribute(u)}else"true-value"===n?e._trueValue=o:"false-value"===n&&(e._falseValue=o),s=e,l=n,a=o,(i=t)&&l.startsWith("xlink:")?null==a?s.removeAttributeNS(Ts,l.slice(6,l.length)):s.setAttributeNS(Ts,l,a):(i=F(l),null==a||i&&!M(a)?s.removeAttribute(l):s.setAttribute(l,i?"":a));var d,f,h,v}},_s);let kl,Tl=!1;function El(){return kl=kl||li(Cl)}function Nl(){return kl=Tl?kl:ai(Cl),Tl=!0,kl}const Ol=(...e)=>{El().render(...e)},$l=(...e)=>{Nl().hydrate(...e)};function Al(e){Object.defineProperty(e.config,"isNativeTag",{value:e=>n(e)||N(e),writable:!1})}function Rl(e){if(ns()){const t=e.config.isCustomElement,n=(Object.defineProperty(e.config,"isCustomElement",{get(){return t},set(){oe("The `isCustomElement` config option is deprecated. Use `compilerOptions.isCustomElement` instead.")}}),e.config.compilerOptions),r='The `compilerOptions` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, `compilerOptions` must be passed to `@vue/compiler-dom` in the build setup instead.\n- For vue-loader: pass it via vue-loader\'s `compilerOptions` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-dom';Object.defineProperty(e.config,"compilerOptions",{get(){return oe(r),n},set(){oe(r)}})}}function Il(e){var t;return ce(e)?((t=document.querySelector(e))||oe(`Failed to mount app: mount target selector "${e}" returned null.`),t):(window.ShadowRoot&&e instanceof window.ShadowRoot&&"closed"===e.mode&&oe('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e)}_s=te;function Pl(e){throw e}function Fl(e){console.warn("[Vue warn] "+e.message)}function B(e,t,n,r){n=(n||Ml)[e]+(r||"");const o=new SyntaxError(String(n));return o.code=e,o.loc=t,o}const Ml={[0]:"Illegal comment.",1:"CDATA section is allowed only in XML context.",2:"Duplicate attribute.",3:"End tag cannot have attributes.",4:"Illegal '/' in tags.",5:"Unexpected EOF in tag.",6:"Unexpected EOF in CDATA section.",7:"Unexpected EOF in comment.",8:"Unexpected EOF in script.",9:"Unexpected EOF in tag.",10:"Incorrectly closed comment.",11:"Incorrectly opened comment.",12:"Illegal tag name. Use '&lt;' to print '<'.",13:"Attribute value was expected.",14:"End tag name was expected.",15:"Whitespace was expected.",16:"Unexpected '\x3c!--' in comment.",17:"Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).",18:"Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).",19:"Attribute name cannot start with '='.",21:"'<?' is allowed only in XML context.",20:"Unexpected null character.",22:"Illegal '/' in tags.",23:"Invalid end tag.",24:"Element is missing end tag.",25:"Interpolation end sign was not found.",27:"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.",26:"Legal directive name was expected.",28:"v-if/v-else-if is missing expression.",29:"v-if/else branches must use unique keys.",30:"v-else/v-else-if has no adjacent v-if or v-else-if.",31:"v-for is missing expression.",32:"v-for has invalid expression.",33:"<template v-for> key should be placed on the <template> tag.",34:"v-bind is missing expression.",35:"v-on is missing expression.",36:"Unexpected custom directive on <slot> outlet.",37:"Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.",38:"Duplicate slot names found. ",39:"Extraneous children found when component already has explicitly named default slot. These children will be ignored.",40:"v-slot can only be used on components or <template> tags.",41:"v-model is missing expression.",42:"v-model value must be a valid JavaScript member expression.",43:"v-model cannot be used on v-for or v-slot scope variables because they are not writable.",44:`v-model cannot be used on a prop, because local prop bindings are not writable.
Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,45:"Error parsing JavaScript expression: ",46:"<KeepAlive> expects exactly one child component.",47:'"prefixIdentifiers" option is not supported in this build of compiler.',48:"ES module mode is not supported in this build of compiler.",49:'"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.',50:'"scopeId" option is only supported in module mode.',51:""},jl=Symbol("Fragment"),Vl=Symbol("Teleport"),Ll=Symbol("Suspense"),Bl=Symbol("KeepAlive"),Ul=Symbol("BaseTransition"),Dl=Symbol("openBlock"),Hl=Symbol("createBlock"),zl=Symbol("createElementBlock"),Wl=Symbol("createVNode"),Kl=Symbol("createElementVNode"),Gl=Symbol("createCommentVNode"),Jl=Symbol("createTextVNode"),ql=Symbol("createStaticVNode"),Yl=Symbol("resolveComponent"),Zl=Symbol("resolveDynamicComponent"),Xl=Symbol("resolveDirective");var Ql=Symbol("resolveFilter");const ea=Symbol("withDirectives"),ta=Symbol("renderList"),na=Symbol("renderSlot"),ra=Symbol("createSlots"),oa=Symbol("toDisplayString"),ia=Symbol("mergeProps"),sa=Symbol("normalizeClass"),la=Symbol("normalizeStyle"),aa=Symbol("normalizeProps"),ca=Symbol("guardReactiveProps"),ua=Symbol("toHandlers"),pa=Symbol("camelize");var da=Symbol("capitalize");const fa=Symbol("toHandlerKey"),ha=Symbol("setBlockTracking");var va=Symbol("pushScopeId"),ma=Symbol("popScopeId");const ga=Symbol("withCtx");var ya=Symbol("unref"),ba=Symbol("isRef");const _a=Symbol("withMemo"),wa=Symbol("isMemoSame"),xa={[jl]:"Fragment",[Vl]:"Teleport",[Ll]:"Suspense",[Bl]:"KeepAlive",[Ul]:"BaseTransition",[Dl]:"openBlock",[Hl]:"createBlock",[zl]:"createElementBlock",[Wl]:"createVNode",[Kl]:"createElementVNode",[Gl]:"createCommentVNode",[Jl]:"createTextVNode",[ql]:"createStaticVNode",[Yl]:"resolveComponent",[Zl]:"resolveDynamicComponent",[Xl]:"resolveDirective",[Ql]:"resolveFilter",[ea]:"withDirectives",[ta]:"renderList",[na]:"renderSlot",[ra]:"createSlots",[oa]:"toDisplayString",[ia]:"mergeProps",[sa]:"normalizeClass",[la]:"normalizeStyle",[aa]:"normalizeProps",[ca]:"guardReactiveProps",[ua]:"toHandlers",[pa]:"camelize",[da]:"capitalize",[fa]:"toHandlerKey",[ha]:"setBlockTracking",[va]:"pushScopeId",[ma]:"popScopeId",[ga]:"withCtx",[ya]:"unref",[ba]:"isRef",[_a]:"withMemo",[wa]:"isMemoSame"};const Sa={source:"",start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}};function Ca(e,t,n,r,o,i,s,l=!1,a=!1,c=!1,u=Sa){return e&&(l?(e.helper(Dl),e.helper(Za(e.inSSR,c))):e.helper(Ya(e.inSSR,c)),s&&e.helper(ea)),{type:13,tag:t,props:n,children:r,patchFlag:o,dynamicProps:i,directives:s,isBlock:l,disableTracking:a,isComponent:c,loc:u}}function ka(e,t=Sa){return{type:17,loc:t,elements:e}}function Ta(e,t=Sa){return{type:15,loc:t,properties:e}}function U(e,t){return{type:16,loc:Sa,key:ce(e)?D(e,!0):e,value:t}}function D(e,t=!1,n=Sa,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function Ea(e,t=Sa){return{type:8,loc:t,children:e}}function H(e,t=[],n=Sa){return{type:14,loc:n,callee:e,arguments:t}}function Na(e,t=void 0,n=!1,r=!1,o=Sa){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:o}}function Oa(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:Sa}}const $a=e=>4===e.type&&e.isStatic,Aa=(e,t)=>e===t||e===v(t);function Ra(e){return Aa(e,"Teleport")?Vl:Aa(e,"Suspense")?Ll:Aa(e,"KeepAlive")?Bl:Aa(e,"BaseTransition")?Ul:void 0}const Ia=/^\d|[^\$\w]/,Pa=e=>!Ia.test(e),Fa=/[A-Za-z_$\xA0-\uFFFF]/,Ma=/[\.\?\w$\xA0-\uFFFF]/,ja=/\s+[.[]\s*|\s*[.[]\s+/g;const Va=t=>{t=t.trim().replace(ja,e=>e.trim());let n=0,r=[],o=0,i=0,s=null;for(let e=0;e<t.length;e++){var l=t.charAt(e);switch(n){case 0:if("["===l)r.push(n),n=1,o++;else if("("===l)r.push(n),n=2,i++;else if(!(0===e?Fa:Ma).test(l))return!1;break;case 1:"'"===l||'"'===l||"`"===l?(r.push(n),n=3,s=l):"["===l?o++:"]"!==l||--o||(n=r.pop());break;case 2:if("'"===l||'"'===l||"`"===l)r.push(n),n=3,s=l;else if("("===l)i++;else if(")"===l){if(e===t.length-1)return!1;--i||(n=r.pop())}break;case 3:l===s&&(n=r.pop(),s=null)}}return!o&&!i};function La(e,t,n){const r={source:e.source.slice(t,t+n),start:Ba(e.start,e.source,t),end:e.end};return null!=n&&(r.end=Ba(e.start,e.source,t+n)),r}function Ba(e,t,n=t.length){return Ua($({},e),t,n)}function Ua(e,t,n=t.length){let r=0,o=-1;for(let e=0;e<n;e++)10===t.charCodeAt(e)&&(r++,o=e);return e.offset+=n,e.line+=r,e.column=-1===o?e.column+n:n-o,e}function Da(e,t){if(!e)throw new Error(t||"unexpected compiler condition")}function Ha(t,n,r=!1){for(let e=0;e<t.props.length;e++){var o=t.props[e];if(7===o.type&&(r||o.exp)&&(ce(n)?o.name===n:n.test(o.name)))return o}}function za(t,n,r=!1,o=!1){for(let e=0;e<t.props.length;e++){var i=t.props[e];if(6===i.type){if(!r&&i.name===n&&(i.value||o))return i}else if("bind"===i.name&&(i.exp||o)&&Wa(i.arg,n))return i}}function Wa(e,t){return e&&$a(e)&&e.content===t}function Ka(e){return 5===e.type||2===e.type}function Ga(e){return 7===e.type&&"slot"===e.name}function Ja(e){return 1===e.type&&3===e.tagType}function qa(e){return 1===e.type&&2===e.tagType}function Ya(e,t){return e||t?Wl:Kl}function Za(e,t){return e||t?Hl:zl}const Xa=new Set([aa,ca]);function Qa(e,t,n){let r,o=13===e.type?e.props:e.arguments[2],i=[],s;var l;if(o&&!ce(o)&&14===o.type&&(l=function e(t,n=[]){if(t&&!ce(t)&&14===t.type){var r=t.callee;if(!ce(r)&&Xa.has(r))return e(t.arguments[0],n.concat(t))}return[t,n]}(o),o=l[0],i=l[1],s=i[i.length-1]),null==o||ce(o))r=Ta([t]);else if(14===o.type){const a=o.arguments[0];ce(a)||15!==a.type?o.callee===ua?r=H(n.helper(ia),[Ta([t]),o]):o.arguments.unshift(Ta([t])):ec(t,a)||a.properties.unshift(t),r=r||o}else 15===o.type?(ec(t,o)||o.properties.unshift(t),r=o):(r=H(n.helper(ia),[Ta([t]),o]),s&&s.callee===ca&&(s=i[i.length-2]));13===e.type?s?s.arguments[0]=r:e.props=r:s?s.arguments[0]=r:e.arguments[2]=r}function ec(e,t){let n=!1;if(4===e.key.type){const r=e.key.content;n=t.properties.some(e=>4===e.key.type&&e.key.content===r)}return n}function tc(n,e){return`_${e}_`+n.replace(/[^\w]/g,(e,t)=>"-"===e?"_":n.charCodeAt(t).toString())}function nc(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(Ya(r,e.isComponent)),t(Dl),t(Za(r,e.isComponent)))}const rc=/&(gt|lt|amp|apos|quot);/g,oc={gt:">",lt:"<",amp:"&",apos:"'",quot:'"'},ic={delimiters:["{{","}}"],getNamespace:()=>0,getTextMode:()=>0,isVoidTag:z,isPreTag:z,isCustomElement:z,decodeEntities:e=>e.replace(rc,(e,t)=>oc[t]),onError:Pl,onWarn:Fl,comments:!0};function sc(e,t={}){var e=function(e,t){const n=$({},ic);let r;for(r in t)n[r]=(void 0===t[r]?ic:t)[r];return{options:n,column:1,line:1,offset:0,originalSource:e,source:e,inPre:!1,inVPre:!1,onWarn:n.onWarn}}(e,t),t=hc(e);return[e,t=Sa]=[lc(e,0,[]),vc(e,t)],{type:0,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:0,temps:0,codegenNode:void 0,loc:t}}function lc(n,e,r){var o=mc(r),i=o?o.ns:0;const s=[];for(;!function(e,t,n){var r=e.source;switch(t){case 0:if(g(r,"</"))for(let e=n.length-1;0<=e;--e)if(bc(r,n[e].tag))return 1;break;case 1:case 2:var o=mc(n);if(o&&bc(r,o.tag))return 1;break;case 3:if(g(r,"]]>"))return 1}return!r}(n,e,r);){var l=n.source;let t=void 0;if(0===e||1===e)if(!n.inVPre&&g(l,n.options.delimiters[0]))t=function(e,t){var[n,r]=e.options.delimiters,o=e.source.indexOf(r,n.length);if(-1===o)return void w(e,25);const i=hc(e),s=(y(e,n.length),hc(e)),l=hc(e),a=o-n.length,c=e.source.slice(0,a),u=fc(e,a,t),p=u.trim(),d=u.indexOf(p);0<d&&Ua(s,c,d);o=a-(u.length-p.length-d);return Ua(l,c,o),y(e,r.length),{type:5,content:{type:4,isStatic:!1,constType:0,content:p,loc:vc(e,s,l)},loc:vc(e,i)}}(n,e);else if(0===e&&"<"===l[0])if(1===l.length)w(n,5,1);else if("!"===l[1])t=g(l,"\x3c!--")?function(n){var e=hc(n);let r;var o=/--(\!)?>/.exec(n.source);if(o){o.index<=3&&w(n,0),o[1]&&w(n,10),r=n.source.slice(4,o.index);const i=n.source.slice(0,o.index);let e=1,t=0;for(;-1!==(t=i.indexOf("\x3c!--",e));)y(n,t-e+1),t+4<i.length&&w(n,16),e=t+1;y(n,o.index+o[0].length-e+1)}else r=n.source.slice(4),y(n,n.source.length),w(n,7);return{type:3,content:r,loc:vc(n,e)}}(n):g(l,"<!DOCTYPE")?cc(n):g(l,"<![CDATA[")?0!==i?function(e,t){y(e,9);t=lc(e,3,t);0===e.source.length?w(e,6):y(e,3);return t}(n,r):(w(n,1),cc(n)):(w(n,11),cc(n));else if("/"===l[1])if(2===l.length)w(n,5,2);else{if(">"===l[2]){w(n,14,2),y(n,3);continue}if(/[a-z]/i.test(l[2])){w(n,23),pc(n,1,o);continue}w(n,12,2),t=cc(n)}else/[a-z]/i.test(l[1])?t=function(e,t){const n=e.inPre,r=e.inVPre,o=mc(t),i=pc(e,0,o),s=e.inPre&&!n,l=e.inVPre&&!r;if(i.isSelfClosing||e.options.isVoidTag(i.tag))return s&&(e.inPre=!1),l&&(e.inVPre=!1),i;t.push(i);var a=e.options.getTextMode(i,o),a=lc(e,a,t);t.pop(),i.children=a,bc(e.source,i.tag)?pc(e,1,o):(w(e,24,0,i.loc.start),0===e.source.length&&"script"===i.tag.toLowerCase()&&(t=a[0])&&g(t.loc.source,"\x3c!--")&&w(e,8));i.loc=vc(e,i.loc.start),s&&(e.inPre=!1);l&&(e.inVPre=!1);return i}(n,r):"?"===l[1]?(w(n,21,1),t=cc(n)):w(n,12,1);if(t=t||function(t,e){var n=3===e?["]]>"]:["<",t.options.delimiters[0]];let r=t.source.length;for(let e=0;e<n.length;e++){var o=t.source.indexOf(n[e],1);-1!==o&&r>o&&(r=o)}var i=hc(t),e=fc(t,r,e);return{type:2,content:e,loc:vc(t,i)}}(n,e),ae(t))for(let e=0;e<t.length;e++)ac(s,t[e]);else ac(s,t)}let t=!1;if(2!==e&&1!==e){var a,c,u="preserve"!==n.options.whitespace;for(let e=0;e<s.length;e++){const p=s[e];2===p.type?n.inPre?p.content=p.content.replace(/\r\n/g,"\n"):/[^\t\r\n\f ]/.test(p.content)?u&&(p.content=p.content.replace(/[\t\r\n\f ]+/g," ")):(a=s[e-1],c=s[e+1],!a||!c||u&&(3===a.type&&3===c.type||3===a.type&&1===c.type||1===a.type&&3===c.type||1===a.type&&1===c.type&&/[\r\n]/.test(p.content))?(t=!0,s[e]=null):p.content=" "):3!==p.type||n.options.comments||(t=!0,s[e]=null)}if(n.inPre&&o&&n.options.isPreTag(o.tag)){const d=s[0];d&&2===d.type&&(d.content=d.content.replace(/^\r?\n/,""))}}return t?s.filter(Boolean):s}function ac(e,t){if(2===t.type){const n=mc(e);if(n&&2===n.type&&n.loc.end.offset===t.loc.start.offset)return n.content+=t.content,n.loc.end=t.loc.end,void(n.loc.source+=t.loc.source)}e.push(t)}function cc(e){var t=hc(e),n="?"===e.source[1]?1:2;let r;var o=e.source.indexOf(">");return-1===o?(r=e.source.slice(n),y(e,e.source.length)):(r=e.source.slice(n,o),y(e,o+1)),{type:3,content:r,loc:vc(e,t)}}const uc=e("if,else,else-if,for,slot");function pc(t,e,n){var r=hc(t),o=/^<\/?([a-z][^\t\r\n\f />]*)/i.exec(t.source),i=o[1],n=t.options.getNamespace(i,n),o=(y(t,o[0].length),gc(t),hc(t)),s=t.source;t.options.isPreTag(i)&&(t.inPre=!0);let l=dc(t,e),a=(0===e&&!t.inVPre&&l.some(e=>7===e.type&&"pre"===e.name)&&(t.inVPre=!0,$(t,o),t.source=s,l=dc(t,e).filter(e=>"v-pre"!==e.name)),!1);if(0===t.source.length?w(t,9):(a=g(t.source,"/>"),1===e&&a&&w(t,4),y(t,a?2:1)),1!==e){let e=0;return t.inVPre||("slot"===i?e=2:"template"===i?l.some(e=>7===e.type&&uc(e.name))&&(e=3):function(e,t,n){const r=n.options;if(r.isCustomElement(e))return;if("component"===e||/^[A-Z]/.test(e)||Ra(e)||r.isBuiltInComponent&&r.isBuiltInComponent(e)||r.isNativeTag&&!r.isNativeTag(e))return 1;for(let e=0;e<t.length;e++){const o=t[e];if(6===o.type){if("is"===o.name&&o.value&&o.value.content.startsWith("vue:"))return 1}else{if("is"===o.name)return 1;"bind"===o.name&&Wa(o.arg,"is")}}}(i,l,t)&&(e=1)),{type:1,ns:n,tag:i,tagType:e,props:l,isSelfClosing:a,children:[],loc:vc(t,r),codegenNode:void 0}}}function dc(e,t){const n=[];for(var r=new Set;0<e.source.length&&!g(e.source,">")&&!g(e.source,"/>");)if(g(e.source,"/"))w(e,22),y(e,1),gc(e);else{1===t&&w(e,3);const o=function(r,e){const o=hc(r),i=/^[^\t\r\n\f />][^\t\r\n\f />=]*/.exec(r.source),s=i[0];e.has(s)&&w(r,2);e.add(s),"="===s[0]&&w(r,19);{const n=/["'<]/g;for(var t;t=n.exec(s);)w(r,17,t.index)}y(r,s.length);let l=void 0;/^[\t\r\n\f ]*=/.test(r.source)&&(gc(r),y(r,1),gc(r),(l=function(e){var t=hc(e);let n;var r=e.source[0],o='"'===r||"'"===r;if(o){y(e,1);r=e.source.indexOf(r);-1===r?n=fc(e,e.source.length,4):(n=fc(e,r,4),y(e,1))}else{var i,s=/^[^\t\r\n\f >]+/.exec(e.source);if(!s)return;const l=/["'<=`]/g;for(;i=l.exec(s[0]);)w(e,18,i.index);n=fc(e,s[0].length,4)}return{content:n,isQuoted:o,loc:vc(e,t)}}(r))||w(r,13));const a=vc(r,o);if(!r.inVPre&&/^(v-[A-Za-z0-9-]|:|\.|@|#)/.test(s)){const i=/(?:^v-([a-z0-9-]+))?(?:(?::|^\.|^@|^#)(\[[^\]]+\]|[^\.]+))?(.+)?$/i.exec(s);var e=g(s,"."),c=i[1]||(e||g(s,":")?"bind":g(s,"@")?"on":"slot");let n;if(i[2]){var u="slot"===c,p=s.lastIndexOf(i[2]);const a=vc(r,yc(r,o,p),yc(r,o,p+i[2].length+(u&&i[3]||"").length));let e=i[2],t=!0;e.startsWith("[")?(t=!1,e=e.endsWith("]")?e.slice(1,e.length-1):(w(r,27),e.slice(1))):u&&(e+=i[3]||""),n={type:4,content:e,isStatic:t,constType:t?3:0,loc:a}}if(l&&l.isQuoted){const f=l.loc;f.start.offset++,f.start.column++,f.end=Ba(f.start,l.content),f.source=f.source.slice(1,-1)}const d=i[3]?i[3].slice(1).split("."):[];return e&&d.push("prop"),{type:7,name:c,exp:l&&{type:4,content:l.content,isStatic:!1,constType:0,loc:l.loc},arg:n,modifiers:d,loc:a}}!r.inVPre&&g(s,"v-")&&w(r,26);return{type:6,name:s,value:l&&{type:2,content:l.content,loc:l.loc},loc:a}}(e,r);6===o.type&&o.value&&"class"===o.name&&(o.value.content=o.value.content.replace(/\s+/g," ").trim()),0===t&&n.push(o),/^[^\t\r\n\f />]/.test(e.source)&&w(e,15),gc(e)}return n}function fc(e,t,n){const r=e.source.slice(0,t);return y(e,t),2!==n&&3!==n&&r.includes("&")?e.options.decodeEntities(r,4===n):r}function hc(e){var{column:e,line:t,offset:n}=e;return{column:e,line:t,offset:n}}function vc(e,t,n){return{start:t,end:n=n||hc(e),source:e.originalSource.slice(t.offset,n.offset)}}function mc(e){return e[e.length-1]}function g(e,t){return e.startsWith(t)}function y(e,t){const n=e["source"];Ua(e,n,t),e.source=n.slice(t)}function gc(e){var t=/^[\t\r\n\f ]+/.exec(e.source);t&&y(e,t[0].length)}function yc(e,t,n){return Ba(t,e.originalSource.slice(t.offset,n),n)}function w(e,t,n,r=hc(e)){n&&(r.offset+=n,r.column+=n),e.options.onError(B(t,{start:r,end:r,source:""}))}function bc(e,t){return g(e,"</")&&e.slice(2,2+t.length).toLowerCase()===t.toLowerCase()&&/[\t\r\n\f />]/.test(e[2+t.length]||">")}function _c(e,t){!function t(e,n,r=!1){const o=e["children"];const i=o.length;let s=0;for(let e=0;e<o.length;e++){const l=o[e];if(1===l.type&&0===l.tagType){const a=r?0:xc(l,n);if(0<a){if(2<=a){l.codegenNode.patchFlag="-1 /* HOISTED */",l.codegenNode=n.hoist(l.codegenNode),s++;continue}}else{const c=l.codegenNode;if(13===c.type){const u=Tc(c);if((!u||512===u||1===u)&&2<=Cc(l,n)){const p=kc(l);p&&(c.props=n.hoist(p))}c.dynamicProps&&(c.dynamicProps=n.hoist(c.dynamicProps))}}}if(1===l.type){const d=1===l.tagType;d&&n.scopes.vSlot++,t(l,n),d&&n.scopes.vSlot--}else if(11===l.type)t(l,n,1===l.children.length);else if(9===l.type)for(let e=0;e<l.branches.length;e++)t(l.branches[e],n,1===l.branches[e].children.length)}s&&n.transformHoist&&n.transformHoist(o,n,e);s&&s===i&&1===e.type&&0===e.tagType&&e.codegenNode&&13===e.codegenNode.type&&ae(e.codegenNode.children)&&(e.codegenNode.children=n.hoist(ka(e.codegenNode.children)))}(e,t,wc(e,e.children[0]))}function wc(e,t){e=e.children;return 1===e.length&&1===t.type&&!qa(t)}function xc(n,r){const o=r["constantCache"];switch(n.type){case 1:if(0!==n.tagType)return 0;var e=o.get(n);if(void 0!==e)return e;const a=n.codegenNode;if(13!==a.type)return 0;if(a.isBlock&&"svg"!==n.tag&&"foreignObject"!==n.tag)return 0;if(Tc(a))return o.set(n,0),0;{let t=3;e=Cc(n,r);if(0===e)return o.set(n,0),0;e<t&&(t=e);for(let e=0;e<n.children.length;e++){var i=xc(n.children[e],r);if(0===i)return o.set(n,0),0;i<t&&(t=i)}if(1<t)for(let e=0;e<n.props.length;e++){var s=n.props[e];if(7===s.type&&"bind"===s.name&&s.exp){s=xc(s.exp,r);if(0===s)return o.set(n,0),0;s<t&&(t=s)}}if(a.isBlock){for(let e=0;e<n.props.length;e++)if(7===n.props[e].type)return o.set(n,0),0;r.removeHelper(Dl),r.removeHelper(Za(r.inSSR,a.isComponent)),a.isBlock=!1,r.helper(Ya(r.inSSR,a.isComponent))}return o.set(n,t),t}case 2:case 3:return 3;case 9:case 11:case 10:return 0;case 5:case 12:return xc(n.content,r);case 4:return n.constType;case 8:let t=3;for(let e=0;e<n.children.length;e++){var l=n.children[e];if(!ce(l)&&!pe(l)){l=xc(l,r);if(0===l)return 0;l<t&&(t=l)}}return t;default:return 0}}const Sc=new Set([sa,la,aa,ca]);function Cc(e,n){let r=3;e=kc(e);if(e&&15===e.type){var o=e["properties"];for(let t=0;t<o.length;t++){var{key:i,value:s}=o[t],i=xc(i,n);if(0===i)return i;i<r&&(r=i);let e;if(0===(e=4===s.type?xc(s,n):14===s.type?function e(t,n){if(14===t.type&&!ce(t.callee)&&Sc.has(t.callee)){if(4===(t=t.arguments[0]).type)return xc(t,n);if(14===t.type)return e(t,n)}return 0}(s,n):0))return e;e<r&&(r=e)}}return r}function kc(e){e=e.codegenNode;if(13===e.type)return e.props}function Tc(e){e=e.patchFlag;return e?parseInt(e,10):void 0}function Ec(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,cacheHandlers:o=!1,nodeTransforms:i=[],directiveTransforms:s={},transformHoist:l=null,isBuiltInComponent:a=te,isCustomElement:c=te,expressionPlugins:u=[],scopeId:p=null,slotted:d=!0,ssr:f=!1,inSSR:h=!1,ssrCssVars:v="",bindingMetadata:m=E,inline:g=!1,isTS:y=!1,onError:b=Pl,onWarn:_=Fl,compatConfig:w}){t=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/);const x={selfName:t&&xe(R(t[1])),prefixIdentifiers:n,hoistStatic:r,cacheHandlers:o,nodeTransforms:i,directiveTransforms:s,transformHoist:l,isBuiltInComponent:a,isCustomElement:c,expressionPlugins:u,scopeId:p,slotted:d,ssr:f,inSSR:h,ssrCssVars:v,bindingMetadata:m,inline:g,isTS:y,onError:b,onWarn:_,compatConfig:w,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],constantCache:new Map,temps:0,cached:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){var t=x.helpers.get(e)||0;return x.helpers.set(e,t+1),e},removeHelper(e){var t=x.helpers.get(e);t&&((t=t-1)?x.helpers.set(e,t):x.helpers.delete(e))},helperString(e){return"_"+xa[x.helper(e)]},replaceNode(e){if(!x.currentNode)throw new Error("Node being replaced is already removed.");if(!x.parent)throw new Error("Cannot replace root node.");x.parent.children[x.childIndex]=x.currentNode=e},removeNode(e){if(!x.parent)throw new Error("Cannot remove root node.");const t=x.parent.children;var n=e?t.indexOf(e):x.currentNode?x.childIndex:-1;if(n<0)throw new Error("node being removed is not a child of current parent");e&&e!==x.currentNode?x.childIndex>n&&(x.childIndex--,x.onNodeRemoved()):(x.currentNode=null,x.onNodeRemoved()),x.parent.children.splice(n,1)},onNodeRemoved:()=>{},addIdentifiers(e){},removeIdentifiers(e){},hoist(e){ce(e)&&(e=D(e)),x.hoists.push(e);const t=D("_hoisted_"+x.hoists.length,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1){return[e,t,n=!1]=[x.cached++,e,t],{type:20,index:e,value:t,isVNode:n,loc:Sa};var n}};return x}function Nc(e,n){const t=Ec(e,n);if(Oc(e,t),n.hoistStatic&&_c(e,t),!n.ssr){n=e;var r=t;const s=r["helper"],l=n["children"];if(1===l.length){var o,i=l[0];wc(n,i)&&i.codegenNode?(13===(o=i.codegenNode).type&&nc(o,r),n.codegenNode=o):n.codegenNode=i}else if(1<l.length){let e=64,t=x[64];1===l.filter(e=>3!==e.type).length&&(e|=2048,t+=", "+x[2048]),n.codegenNode=Ca(r,s(jl),void 0,n.children,e+` /* ${t} */`,void 0,void 0,!0,void 0,!1)}}e.helpers=new Set([...t.helpers.keys()]),e.components=[...t.components],e.directives=[...t.directives],e.imports=t.imports,e.hoists=t.hoists,e.temps=t.temps,e.cached=t.cached}function Oc(t,n){n.currentNode=t;const r=n["nodeTransforms"],o=[];for(let e=0;e<r.length;e++){var i=r[e](t,n);if(i&&(ae(i)?o.push(...i):o.push(i)),!n.currentNode)return;t=n.currentNode}switch(t.type){case 3:n.ssr||n.helper(Gl);break;case 5:n.ssr||n.helper(oa);break;case 9:for(let e=0;e<t.branches.length;e++)Oc(t.branches[e],n);break;case 10:case 11:case 1:case 0:{var s=t;var l=n;let e=0;for(var a=()=>{e--};e<s.children.length;e++){var c=s.children[e];ce(c)||(l.parent=s,l.childIndex=e,l.onNodeRemoved=a,Oc(c,l))}}}n.currentNode=t;let e=o.length;for(;e--;)o[e]()}function $c(t,s){const l=ce(t)?e=>e===t:e=>t.test(e);return(t,n)=>{if(1===t.type){const o=t["props"];if(3!==t.tagType||!o.some(Ga)){const i=[];for(let e=0;e<o.length;e++){var r=o[e];7===r.type&&l(r.name)&&(o.splice(e,1),e--,(r=s(t,r,n))&&i.push(r))}return i}}}}const Ac="/*#__PURE__*/",Rc=e=>xa[e]+": _"+xa[e];function Ic(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:o="template.vue.html",scopeId:i=null,optimizeImports:s=!1,runtimeGlobalName:l="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:p=!1,inSSR:d=!1}){const f={mode:t,prefixIdentifiers:n,sourceMap:r,filename:o,scopeId:i,optimizeImports:s,runtimeGlobalName:l,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:p,inSSR:d,source:e.loc.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper(e){return"_"+xa[e]},push(e,t){f.code+=e},indent(){h(++f.indentLevel)},deindent(e=!1){e?--f.indentLevel:h(--f.indentLevel)},newline(){h(f.indentLevel)}};function h(e){f.push("\n"+" ".repeat(e))}return f}function Pc(t,e={}){const n=Ic(t,e),{mode:r,push:o,prefixIdentifiers:i,indent:s,deindent:l,newline:a,ssr:c}=(e.onContextCreated&&e.onContextCreated(n),n),u=Array.from(t.helpers);var e=0<u.length,p=!i&&"module"!==r,d=n;{var f=t;const{push:m,newline:g,runtimeGlobalName:y}=d,b=y,_=Array.from(f.helpers);0<_.length&&(m(`const _Vue = ${b}
`),f.hoists.length&&(h=[Wl,Kl,Gl,Jl,ql].filter(e=>_.includes(e)).map(Rc).join(", "),m(`const { ${h} } = _Vue
`)));(function(t,n){if(t.length){n.pure=!0;const{push:o,newline:i}=n;i();for(let e=0;e<t.length;e++){var r=t[e];r&&(o(`const _hoisted_${e+1} = `),ue(r,n),i())}n.pure=!1}})(f.hoists,d),g(),m("return ")}var h=c?"ssrRender":"render";const v=c?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"];f=v.join(", ");if(o(`function ${h}(${f}) {`),s(),p&&(o("with (_ctx) {"),s(),e&&(o(`const { ${u.map(Rc).join(", ")} } = _Vue`),o(`
`),a())),t.components.length&&(Fc(t.components,"component",n),(t.directives.length||0<t.temps)&&a()),t.directives.length&&(Fc(t.directives,"directive",n),0<t.temps&&a()),0<t.temps){o("let ");for(let e=0;e<t.temps;e++)o(`${0<e?", ":""}_temp`+e)}return(t.components.length||t.directives.length||t.temps)&&(o(`
`),a()),c||o("return "),t.codegenNode?ue(t.codegenNode,n):o("null"),p&&(l(),o("}")),l(),o("}"),{ast:t,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}function Fc(n,r,{helper:e,push:o,newline:i,isTS:s}){var l=e("component"===r?Yl:Xl);for(let t=0;t<n.length;t++){let e=n[t];var a=e.endsWith("__self");o(`const ${tc(e=a?e.slice(0,-6):e,r)} = ${l}(${JSON.stringify(e)}${a?", true":""})`+(s?"!":"")),t<n.length-1&&i()}}function Mc(e,t){var n=3<e.length||e.some(e=>ae(e)||!function(e){return ce(e)||4===e.type||2===e.type||5===e.type||8===e.type}(e));t.push("["),n&&t.indent(),jc(e,t,n),n&&t.deindent(),t.push("]")}function jc(t,n,r=!1,o=!0){const{push:i,newline:s}=n;for(let e=0;e<t.length;e++){var l=t[e];ce(l)?i(l):(ae(l)?Mc:ue)(l,n),e<t.length-1&&(r?(o&&i(","),s()):o&&i(", "))}}function ue(e,t){if(ce(e))t.push(e);else if(pe(e))t.push(t.helper(e));else switch(e.type){case 1:case 9:case 11:Da(null!=e.codegenNode,"Codegen node is missing for element/if/for node. Apply appropriate transforms first."),ue(e.codegenNode,t);break;case 2:n=e,t.push(JSON.stringify(n.content),n);break;case 4:Vc(e,t);break;case 5:{var n=e;var r=t;const{push:d,helper:f,pure:h}=r;h&&d(Ac);d(f(oa)+"("),ue(n.content,r),d(")")}break;case 12:ue(e.codegenNode,t);break;case 8:Lc(e,t);break;case 3:{r=e;var o=t;const{push:v,helper:V,pure:L}=o;L&&v(Ac);v(`${V(Gl)}(${JSON.stringify(r.content)})`,r)}break;case 13:{o=e;var i=t;const{push:m,helper:g,pure:B}=i,{tag:U,props:D,children:H,patchFlag:z,dynamicProps:W,directives:y,isBlock:b,disableTracking:K,isComponent:G}=o;y&&m(g(ea)+"(");b&&m(`(${g(Dl)}(${K?"true":""}), `);B&&m(Ac);var s=(b?Za:Ya)(i.inSSR,G);m(g(s)+"(",o),jc(function(e){let t=e.length;for(;t--&&null==e[t];);return e.slice(0,t+1).map(e=>e||"null")}([U,D,H,z,W]),i),m(")"),b&&m(")");y&&(m(", "),ue(y,i),m(")"))}break;case 14:{s=e;i=t;const{push:_,helper:J,pure:q}=i,Y=ce(s.callee)?s.callee:J(s.callee);q&&_(Ac);_(Y+"(",s),jc(s.arguments,i),_(")")}break;case 15:{var l=e;var a=t;const{push:w,indent:Z,deindent:X,newline:Q}=a,x=l["properties"];if(x.length){var c=1<x.length||x.some(e=>4!==e.value.type);w(c?"{":"{ "),c&&Z();for(let e=0;e<x.length;e++){var{key:M,value:j}=x[e];!function(e,t){const n=t["push"];8===e.type?(n("["),Lc(e,t),n("]")):e.isStatic?(t=Pa(e.content)?e.content:JSON.stringify(e.content),n(t,e)):n(`[${e.content}]`,e)}(M,a),w(": "),ue(j,a),e<x.length-1&&(w(","),Q())}c&&X(),w(c?"}":" }")}else w("{}",l)}break;case 17:Mc(e.elements,t);break;case 18:{c=e;l=t;const{push:S,indent:ee,deindent:te}=l,{params:C,returns:k,body:T,newline:E,isSlot:N}=c;N&&S(`_${xa[ga]}(`);S("(",c),ae(C)?jc(C,l):C&&ue(C,l);S(") => "),(E||T)&&(S("{"),ee());k?(E&&S("return "),(ae(k)?Mc:ue)(k,l)):T&&ue(T,l);(E||T)&&(te(),S("}"));N&&S(")")}break;case 19:{var u=e;var p=t;const{test:O,consequent:ne,alternate:$,newline:A}=u,{push:R,indent:re,deindent:oe,newline:ie}=p;4===O.type?((u=!Pa(O.content))&&R("("),Vc(O,p),u&&R(")")):(R("("),ue(O,p),R(")"));A&&re(),p.indentLevel++,A||R(" "),R("? "),ue(ne,p),p.indentLevel--,A&&ie(),A||R(" "),R(": ");u=19===$.type;u||p.indentLevel++;ue($,p),u||p.indentLevel--;A&&oe(!0)}break;case 20:{u=e;p=t;const{push:I,helper:P,indent:se,deindent:le,newline:F}=p;I(`_cache[${u.index}] || (`),u.isVNode&&(se(),I(P(ha)+"(-1),"),F());I(`_cache[${u.index}] = `),ue(u.value,p),u.isVNode&&(I(","),F(),I(P(ha)+"(1),"),F(),I(`_cache[${u.index}]`),le());I(")")}break;case 21:jc(e.body,t,!0,!1);break;case 22:case 23:case 24:case 25:case 26:case 10:break;default:Da(!1,"unhandled codegen node type: "+e.type)}}function Vc(e,t){var{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,e)}function Lc(t,n){for(let e=0;e<t.children.length;e++){var r=t.children[e];ce(r)?n.push(r):ue(r,n)}}const Bc=new RegExp("\\b"+"arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b")+"\\b"),Uc=/'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;function Dc(n,r,e=!1,o=!1){const i=n.content;if(i.trim())try{new Function(o?` ${i} `:"return "+(e?`(${i}) => {}`:`(${i})`))}catch(e){let t=e.message;o=i.replace(Uc,"").match(Bc);o&&(t=`avoid using JavaScript keyword as property name: "${o[0]}"`),r.onError(B(45,n.loc,void 0,t))}}const Hc=(t,n)=>{if(5===t.type)t.content=zc(t.content,n);else if(1===t.type)for(let e=0;e<t.props.length;e++){const i=t.props[e];var r,o;7===i.type&&"for"!==i.name&&(r=i.exp,o=i.arg,!r||4!==r.type||"on"===i.name&&o||(i.exp=zc(r,n,"slot"===i.name)),o&&4===o.type&&!o.isStatic&&(i.arg=zc(o,n)))}};function zc(e,t,n=!1,r=!1,o=Object.create(t.identifiers)){return Dc(e,t,n,r),e}const Wc=$c(/^(if|else|else-if)$/,(e,t,l)=>{var n=e,r=t,o=l,i=(t,n,r)=>{const e=l.parent.children;let o=e.indexOf(t),i=0;for(;0<=o--;){var s=e[o];s&&9===s.type&&(i+=s.branches.length)}return()=>{if(r)t.codegenNode=Gc(n,i,l);else{const e=function(e){for(;;)if(19===e.type){if(19!==e.alternate.type)return e;e=e.alternate}else 20===e.type&&(e=e.value)}(t.codegenNode);e.alternate=Gc(n,i+t.branches.length-1,l)}}};if("else"===r.name||r.exp&&r.exp.content.trim()||(s=(r.exp||n).loc,o.onError(B(28,r.loc)),r.exp=D("true",!1,s)),r.exp&&Dc(r.exp,o),"if"===r.name){var s=Kc(n,r),e={type:9,loc:n.loc,branches:[s]};if(o.replaceNode(e),i)return i(e,s,!0)}else{const a=o.parent.children,c=[];let e=a.indexOf(n);for(;-1<=e--;){const u=a[e];if(u&&3===u.type)o.removeNode(u),c.unshift(u);else{if(!u||2!==u.type||u.content.trim().length){if(u&&9===u.type){"else-if"===r.name&&void 0===u.branches[u.branches.length-1].condition&&o.onError(B(30,n.loc)),o.removeNode();const p=Kc(n,r);!c.length||o.parent&&1===o.parent.type&&Aa(o.parent.tag,"transition")||(p.children=[...c,...p.children]);{const f=p.userKey;f&&u.branches.forEach(({userKey:e})=>{!function(e,t){if(!e||e.type!==t.type)return;if(6===e.type){if(e.value.content!==t.value.content)return}else{e=e.exp,t=t.exp;if(e.type!==t.type)return;if(4!==e.type||e.isStatic!==t.isStatic||e.content!==t.content)return}return 1}(e,f)||o.onError(B(29,p.userKey.loc))})}u.branches.push(p);const d=i&&i(u,p,!1);Oc(p,o),d&&d(),o.currentNode=null}else o.onError(B(30,n.loc));break}o.removeNode(u)}}}});function Kc(e,t){var n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!Ha(e,"for")?e.children:[e],userKey:za(e,"key"),isTemplateIf:n}}function Gc(e,t,n){return e.condition?Oa(e.condition,Jc(e,t,n),H(n.helper(Gl),['"v-if"',"true"])):Jc(e,t,n)}function Jc(n,r,o){const i=o["helper"];r=U("key",D(""+r,!1,Sa,2));const s=n["children"];var e,t,l=s[0];if(1===s.length&&1===l.type)return e=l.codegenNode,13===(t=14===(t=e).type&&t.callee===_a?t.arguments[1].returns:t).type&&nc(t,o),Qa(t,r,o),e;if(1===s.length&&11===l.type)return Qa(t=l.codegenNode,r,o),t;{let e=64,t=x[64];return n.isTemplateIf||1!==s.filter(e=>3!==e.type).length||(e|=2048,t+=", "+x[2048]),Ca(o,i(jl),Ta([r]),s,e+` /* ${t} */`,void 0,void 0,!0,!1,!1,n.loc)}}const qc=$c("for",(d,e,f)=>{const{helper:h,removeHelper:v}=f;var t=d,n=f,r=i=>{const s=H(h(ta),[i.source]),l=Ja(d),a=Ha(d,"memo");var e=za(d,"key");const c=e&&(6===e.type?D(e.value.content,!0):e.exp),u=e?U("key",c):null,p=4===i.source.type&&0<i.source.constType;e=p?64:e?128:256;return i.codegenNode=Ca(f,h(jl),void 0,s,e+` /* ${x[e]} */`,void 0,void 0,!0,!p,!1,d.loc),()=>{let e;var t=i["children"],n=(l&&d.children.some(e=>{if(1===e.type){e=za(e,"key");if(e)return f.onError(B(33,e.loc)),!0}}),1!==t.length||1!==t[0].type),r=qa(d)?d:l&&1===d.children.length&&qa(d.children[0])?d.children[0]:null;if(r?(e=r.codegenNode,l&&u&&Qa(e,u,f)):n?e=Ca(f,h(jl),u?Ta([u]):void 0,d.children,64+` /* ${x[64]} */`,void 0,void 0,!0,void 0,!1):(e=t[0].codegenNode,l&&u&&Qa(e,u,f),e.isBlock!==!p&&(e.isBlock?(v(Dl),v(Za(f.inSSR,e.isComponent))):v(Ya(f.inSSR,e.isComponent))),e.isBlock=!p,e.isBlock?(h(Dl),h(Za(f.inSSR,e.isComponent))):h(Ya(f.inSSR,e.isComponent))),a){const o=Na(tu(i.parseResult,[D("_cached")]));o.body={type:21,body:[Ea(["const _memo = (",a.exp,")"]),Ea(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${f.helperString(wa)}(_cached, _memo)) return _cached`]),Ea(["const _item = ",e]),D("_item.memo = _memo"),D("return _item")],loc:Sa},s.arguments.push(o,D("_cache"),D(String(f.cached++)))}else s.arguments.push(Na(tu(i.parseResult),e,!0))}};if(e.exp){var o=Qc(e.exp,n);if(o){const c=n["scopes"];var{source:i,value:s,key:l,index:a}=o,i={type:11,loc:e.loc,source:i,valueAlias:s,keyAlias:l,objectIndexAlias:a,parseResult:o,children:Ja(t)?t.children:[t]};n.replaceNode(i),c.vFor++;const u=r&&r(i);return()=>{c.vFor--,u&&u()}}n.onError(B(32,e.loc))}else n.onError(B(31,e.loc))});const Yc=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Zc=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Xc=/^\(|\)$/g;function Qc(n,r){var o=n.loc;const i=n.content;n=i.match(Yc);if(n){const[,e,a]=n,c={source:eu(o,a.trim(),i.indexOf(a,e.length)),value:void 0,key:void 0,index:void 0};Dc(c.source,r);let t=e.trim().replace(Xc,"").trim();n=e.indexOf(t);const u=t.match(Zc);if(u){t=t.replace(Zc,"").trim();var s,l=u[1].trim();let e;l&&(e=i.indexOf(l,n+t.length),c.key=eu(o,l,e),Dc(c.key,r,!0)),!u[2]||(s=u[2].trim())&&(c.index=eu(o,s,i.indexOf(s,c.key?e+l.length:n+t.length)),Dc(c.index,r,!0))}return t&&(c.value=eu(o,t,n),Dc(c.value,r,!0)),c}}function eu(e,t,n){return D(t,!1,La(e,n,t.length))}function tu({value:t,key:n,index:r},o=[]){{var i=[t,n,r,...o];let e=i.length;for(;e--&&!i[e];);return i.slice(0,e+1).map((e,t)=>e||D("_".repeat(t+1),!1))}}const nu=D("undefined",!1),ru=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){e=Ha(e,"slot");if(e)return e.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},ou=(e,t,n)=>Na(e,t,!1,!0,t.length?t[0].loc:n);function iu(e,r,o=ou){r.helper(ga);const{children:i,loc:n}=e,s=[],l=[];let a=0<r.scopes.vSlot||0<r.scopes.vFor;var t,c=Ha(e,"slot",!0);c&&({arg:t,exp:w}=c,t&&!$a(t)&&(a=!0),s.push(U(t||D("default",!0),o(w,i,n))));let u=!1,p=!1;const d=[],f=new Set;let h=0;for(let n=0;n<i.length;n++){var v=i[n];let t;if(Ja(v)&&(t=Ha(v,"slot",!0))){if(c){r.onError(B(37,t.loc));break}u=!0;var{children:m,loc:g}=v,{arg:y=D("default",!0),exp:b,loc:_}=t;let e;$a(y)?e=y?y.content:"default":a=!0;b=o(b,m,g);if(m=Ha(v,"if"))a=!0,l.push(Oa(m.exp,su(y,b,h++),nu));else if(g=Ha(v,/^else(-if)?$/,!0)){let e=n,t;for(;e--&&3===(t=i[e]).type;);if(t&&Ja(t)&&Ha(t,"if")){i.splice(n,1),n--;let e=l[l.length-1];for(;19===e.alternate.type;)e=e.alternate;e.alternate=g.exp?Oa(g.exp,su(y,b,h++),nu):su(y,b,h++)}else r.onError(B(30,g.loc))}else if(m=Ha(v,"for")){a=!0;g=m.parseResult||Qc(m.exp,r);g?l.push(H(r.helper(ta),[g.source,Na(tu(g),su(y,b),!0)])):r.onError(B(32,m.loc))}else{if(e){if(f.has(e)){r.onError(B(38,_));continue}f.add(e),"default"===e&&(p=!0)}s.push(U(y,b))}}else 3!==v.type&&d.push(v)}c||(t=(e,t)=>{return U("default",o(e,t,n))},u?d.length&&d.some(e=>function e(t){if(2!==t.type&&12!==t.type)return!0;return 2===t.type?!!t.content.trim():e(t.content)}(e))&&(p?r.onError(B(39,d[0].loc)):s.push(t(void 0,d))):s.push(t(void 0,i)));var w=a?2:function t(n){for(let e=0;e<n.length;e++){const r=n[e];switch(r.type){case 1:if(2===r.tagType||t(r.children))return!0;break;case 9:if(t(r.branches))return!0;break;case 10:case 11:if(t(r.children))return!0}}return!1}(e.children)?3:1;let x=Ta(s.concat(U("_",D(w+` /* ${S[w]} */`,!1))),n);return{slots:x=l.length?H(r.helper(ra),[x,ka(l)]):x,hasDynamicSlots:a}}function su(e,t,n){const r=[U("name",e),U("fn",t)];return null!=n&&r.push(U("key",D(String(n),!0))),Ta(r)}const lu=new WeakMap,au=(h,v)=>function(){if(1===(h=v.currentNode).type&&(0===h.tagType||1===h.tagType)){var{tag:a,props:c}=h,u=1===h.tagType,p=u?function(e,t,n=!1){let r=e["tag"];const o=pu(r),i=za(e,"is");if(i)if(o){var s=6===i.type?i.value&&D(i.value.content,!0):i.exp;if(s)return H(t.helper(Zl),[s])}else 6===i.type&&i.value.content.startsWith("vue:")&&(r=i.value.content.slice(4));s=!o&&Ha(e,"is");if(s&&s.exp)return H(t.helper(Zl),[s.exp]);e=Ra(r)||t.isBuiltInComponent(r);if(e)return n||t.helper(e),e;return t.helper(Yl),t.components.add(r),tc(r,"component")}(h,v):`"${a}"`,d=re(p)&&p.callee===Zl;let e,t,n,r=0,o,i,s,l=d||p===Vl||p===Ll||!u&&("svg"===a||"foreignObject"===a);if(0<c.length){var a=cu(h,v,void 0,u,d);e=a.props,r=a.patchFlag,i=a.dynamicPropNames;const f=a.directives;s=f&&f.length?ka(f.map(e=>{{var t=v;const n=[],r=lu.get(e);if(r?n.push(t.helperString(r)):(t.helper(Xl),t.directives.add(e.name),n.push(tc(e.name,"directive"))),t=e.loc,e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));const o=D("true",!1,t);n.push(Ta(e.modifiers.map(e=>U(e,o)),t))}return ka(n,e.loc)}})):void 0,a.shouldUseBlock&&(l=!0)}0<h.children.length&&(p===Bl&&(l=!0,r|=1024,1<h.children.length&&v.onError(B(46,{start:h.children[0].loc.start,end:h.children[h.children.length-1].loc.end,source:""}))),u&&p!==Vl&&p!==Bl?({slots:c,hasDynamicSlots:d}=iu(h,v),t=c,d&&(r|=1024)):t=1===h.children.length&&p!==Vl?((d=5===(c=(a=h.children[0]).type)||8===c)&&0===xc(a,v)&&(r|=1),d||2===c?a:h.children):h.children),0!==r&&(n=r<0?r+` /* ${x[r]} */`:(d=Object.keys(x).map(Number).filter(e=>0<e&&r&e).map(e=>x[e]).join(", "),r+` /* ${d} */`),i&&i.length&&(o=function(n){let r="[";for(let e=0,t=n.length;e<t;e++)r+=JSON.stringify(n[e]),e<t-1&&(r+=", ");return r+"]"}(i))),h.codegenNode=Ca(v,p,e,t,n,o,s,!!l,!1,u,h.loc)}};function cu(t,o,n=t.props,r,M,i=!1){const{tag:s,loc:l,children:j}=t;let a=[];const c=[],u=[];var p=0<j.length;let d=!1,e=0,f=!1,h=!1,v=!1,m=!1,g=!1,V=!1;const y=[];var b=e=>{a.length&&(c.push(Ta(uu(a),l)),a=[]),e&&c.push(e)},L=({key:e,value:t})=>{if($a(e)){const n=e.content;e=K(n);!e||r&&!M||"onclick"===n.toLowerCase()||"onUpdate:modelValue"===n||ge(n)||(m=!0),e&&ge(n)&&(V=!0),20===t.type||(4===t.type||8===t.type)&&0<xc(t,o)||("ref"===n?f=!0:"class"===n?h=!0:"style"===n?v=!0:"key"===n||y.includes(n)||y.push(n),!r||"class"!==n&&"style"!==n||y.includes(n)||y.push(n))}else g=!0};for(let e=0;e<n.length;e++){var _=n[e];if(6===_.type){const{loc:O,name:$,value:A}=_;"ref"===$&&(f=!0,0<o.scopes.vFor&&a.push(U(D("ref_for",!0),D("true")))),"is"===$&&(pu(s)||A&&A.content.startsWith("vue:"))||a.push(U(D($,!0,La(O,0,$.length)),D(A?A.content:"",!0,A?A.loc:O)))}else{var{name:w,arg:x,exp:S,loc:C}=_,k="bind"===w,T="on"===w;if("slot"===w)r||o.onError(B(40,C));else if("once"!==w&&"memo"!==w&&!("is"===w||k&&Wa(x,"is")&&pu(s)||T&&i))if((k&&Wa(x,"key")||T&&p&&Wa(x,"vue:before-update"))&&(d=!0),k&&Wa(x,"ref")&&0<o.scopes.vFor&&a.push(U(D("ref_for",!0),D("true"))),x||!k&&!T){const R=o.directiveTransforms[w];if(R){const{props:n,needRuntime:I}=R(_,t,o);i||n.forEach(L),T&&x&&!$a(x)?b(Ta(n,l)):a.push(...n),I&&(u.push(_),pe(I)&&lu.set(_,I))}else ye(w)||(u.push(_),p&&(d=!0))}else g=!0,S?k?(b(),c.push(S)):b({type:14,loc:C,callee:o.helper(ua),arguments:r?[S]:[S,"true"]}):o.onError(B(k?34:35,C))}}let E=void 0;if(c.length?(b(),E=1<c.length?H(o.helper(ia),c,l):c[0]):a.length&&(E=Ta(uu(a),l)),g?e|=16:(h&&!r&&(e|=2),v&&!r&&(e|=4),y.length&&(e|=8),m&&(e|=32)),d||0!==e&&32!==e||!(f||V||0<u.length)||(e|=512),!o.inSSR&&E)switch(E.type){case 15:let t=-1,n=-1,r=!1;for(let e=0;e<E.properties.length;e++){var N=E.properties[e].key;$a(N)?"class"===N.content?t=e:"style"===N.content&&(n=e):N.isHandlerKey||(r=!0)}const P=E.properties[t],F=E.properties[n];r?E=H(o.helper(aa),[E]):(P&&!$a(P.value)&&(P.value=H(o.helper(sa),[P.value])),F&&(v||4===F.value.type&&"["===F.value.content.trim()[0]||17===F.value.type)&&(F.value=H(o.helper(la),[F.value])));break;case 14:break;default:E=H(o.helper(aa),[H(o.helper(ca),[E])])}return{props:E,directives:u,patchFlag:e,dynamicPropNames:y,shouldUseBlock:d}}function uu(t){const n=new Map,r=[];for(let e=0;e<t.length;e++){var o,i=t[e];8!==i.key.type&&i.key.isStatic?(o=i.key.content,(s=n.get(o))?"style"!==o&&"class"!==o&&!K(o)||(l=i,17===(s=s).value.type?s.value.elements.push(l.value):s.value=ka([s.value,l.value],s.loc)):(n.set(o,i),r.push(i))):r.push(i)}var s,l;return r}function pu(e){return"component"===e||"Component"===e}const du=(t,n)=>{if(qa(t)){var{children:r,loc:o}=t,{slotName:i,slotProps:s}=function(t,e){let n='"default"',r=void 0;const o=[];for(let e=0;e<t.props.length;e++){const l=t.props[e];6===l.type?l.value&&("name"===l.name?n=JSON.stringify(l.value.content):(l.name=R(l.name),o.push(l))):"bind"===l.name&&Wa(l.arg,"name")?l.exp&&(n=l.exp):("bind"===l.name&&l.arg&&$a(l.arg)&&(l.arg.content=R(l.arg.content)),o.push(l))}{var i,s;0<o.length&&({props:i,directives:s}=cu(t,e,o,!1,!1),r=i,s.length&&e.onError(B(36,s[0].loc)))}return{slotName:n,slotProps:r}}(t,n);const l=[n.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"];let e=2;s&&(l[2]=s,e=3),r.length&&(l[3]=Na([],r,!1,!1,o),e=4),n.scopeId&&!n.slotted&&(e=5),l.splice(e),t.codegenNode=H(n.helper(na),l,o)}};const fu=/^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,hu=(e,t,n,r)=>{var{loc:o,modifiers:i,arg:s}=e;e.exp||i.length||n.onError(B(35,o));let l;if(4===s.type)if(s.isStatic){let e=s.content;e.startsWith("vue:")&&(e="vnode-"+e.slice(4));i=0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?Se(R(e)):"on:"+e;l=D(i,!0,s.loc)}else l=Ea([n.helperString(fa)+"(",s,")"]);else(l=s).children.unshift(n.helperString(fa)+"("),l.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);t=n.cacheHandlers&&!a&&!n.inVOnce;a&&(s=!((i=Va(a.content))||fu.test(a.content)),e=a.content.includes(";"),Dc(a,n,!1,e),(s||t&&i)&&(a=Ea([`${s?"$event":"(...args)"} => `+(e?"{":"("),a,e?"}":")"])));let c={props:[U(l,a||D("() => {}",!1,o))]};return r&&(c=r(c)),t&&(c.props[0].value=n.cache(c.props[0].value)),c.props.forEach(e=>e.key.isHandlerKey=!0),c},vu=(e,t,n)=>{const{exp:r,modifiers:o,loc:i}=e,s=e.arg;return 4!==s.type?(s.children.unshift("("),s.children.push(') || ""')):s.isStatic||(s.content=s.content+' || ""'),o.includes("camel")&&(4===s.type?s.isStatic?s.content=R(s.content):s.content=`${n.helperString(pa)}(${s.content})`:(s.children.unshift(n.helperString(pa)+"("),s.children.push(")"))),n.inSSR||(o.includes("prop")&&mu(s,"."),o.includes("attr")&&mu(s,"^")),!r||4===r.type&&!r.content.trim()?(n.onError(B(34,i)),{props:[U(s,D("",!0,i))]}):{props:[U(s,r)]}},mu=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},gu=(l,a)=>{if(0===l.type||1===l.type||11===l.type||10===l.type)return()=>{const n=l.children;let r=void 0,e=!1;for(let t=0;t<n.length;t++){var o=n[t];if(Ka(o)){e=!0;for(let e=t+1;e<n.length;e++){var i=n[e];if(!Ka(i)){r=void 0;break}(r=r||(n[t]=Ea([o],o.loc))).children.push(" + ",i),n.splice(e,1),e--}}}if(e&&(1!==n.length||0!==l.type&&(1!==l.type||0!==l.tagType||l.props.find(e=>7===e.type&&!a.directiveTransforms[e.name]))))for(let e=0;e<n.length;e++){var t=n[e];if(Ka(t)||8===t.type){const s=[];2===t.type&&" "===t.content||s.push(t),a.ssr||0!==xc(t,a)||s.push(1+` /* ${x[1]} */`),n[e]={type:12,content:t,loc:t.loc,codegenNode:H(a.helper(Jl),s)}}}}},yu=new WeakSet,bu=(e,t)=>{if(1===e.type&&Ha(e,"once",!0)&&!yu.has(e)&&!t.inVOnce)return yu.add(e),t.inVOnce=!0,t.helper(ha),()=>{t.inVOnce=!1;const e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0))}},_u=(e,t,n)=>{var{exp:r,arg:o}=e;if(!r)return n.onError(B(41,e.loc)),wu();var i=r.loc.source;const s=4===r.type?r.content:i;i=n.bindingMetadata[i];if("props"===i||"props-aliased"===i)return n.onError(B(44,r.loc)),wu();if(!s.trim()||!Va(s))return n.onError(B(42,r.loc)),wu();var i=o||D("modelValue",!0),l=o?$a(o)?"onUpdate:"+R(o.content):Ea(['"onUpdate:" + ',o]):"onUpdate:modelValue",n=Ea([(n.isTS?"($event: any)":"$event")+" => ((",r,") = $event)"]);const a=[U(i,e.exp),U(l,n)];return e.modifiers.length&&1===t.tagType&&(r=e.modifiers.map(e=>(Pa(e)?e:JSON.stringify(e))+": true").join(", "),i=o?$a(o)?o.content+"Modifiers":Ea([o,' + "Modifiers"']):"modelModifiers",a.push(U(i,D(`{ ${r} }`,!1,e.loc,2)))),wu(a)};function wu(e=[]){return{props:e}}const xu=new WeakSet,Su=(t,n)=>{if(1===t.type){const r=Ha(t,"memo");if(r&&!xu.has(t))return xu.add(t),()=>{var e=t.codegenNode||n.currentNode.codegenNode;e&&13===e.type&&(1!==t.tagType&&nc(e,n),t.codegenNode=H(n.helper(_a),[r.exp,Na(void 0,e),"_cache",String(n.cached++)]))}}};function Cu(e,t={}){const n=t.onError||Pl;var r="module"===t.mode,r=(!0===t.prefixIdentifiers?n(B(47)):r&&n(B(48)),t.cacheHandlers&&n(B(49)),t.scopeId&&!r&&n(B(50)),ce(e)?sc(e,t):e),[e,o]=[[bu,Wc,Su,qc,Hc,du,au,ru,gu],{on:hu,bind:vu,model:_u}];return Nc(r,$({},t,{prefixIdentifiers:!1,nodeTransforms:[...e,...t.nodeTransforms||[]],directiveTransforms:$({},o,t.directiveTransforms||{})})),Pc(r,$({},t,{prefixIdentifiers:!1}))}var ku;const Tu=Symbol("vModelRadio"),Eu=Symbol("vModelCheckbox"),Nu=Symbol("vModelText"),Ou=Symbol("vModelSelect"),$u=Symbol("vModelDynamic"),Au=Symbol("vOnModifiersGuard"),Ru=Symbol("vOnKeysGuard"),Iu=Symbol("vShow"),Pu=Symbol("Transition"),Fu=Symbol("TransitionGroup");ku={[Tu]:"vModelRadio",[Eu]:"vModelCheckbox",[Nu]:"vModelText",[Ou]:"vModelSelect",[$u]:"vModelDynamic",[Au]:"withModifiers",[Ru]:"withKeys",[Iu]:"vShow",[Pu]:"Transition",[Fu]:"TransitionGroup"},Object.getOwnPropertySymbols(ku).forEach(e=>{xa[e]=ku[e]});let Mu;const ju=e("style,iframe,script,noscript",!0),Vu={isVoidTag:O,isNativeTag:e=>n(e)||N(e),isPreTag:e=>"pre"===e,decodeEntities:function(e,t=!1){return Mu=Mu||document.createElement("div"),t?(Mu.innerHTML=`<div foo="${e.replace(/"/g,"&quot;")}">`,Mu.children[0].getAttribute("foo")):(Mu.innerHTML=e,Mu.textContent)},isBuiltInComponent:e=>Aa(e,"Transition")?Pu:Aa(e,"TransitionGroup")?Fu:void 0,getNamespace(e,t){let n=t?t.ns:0;if(t&&2===n)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(n=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(n=0);else!t||1!==n||"foreignObject"!==t.tag&&"desc"!==t.tag&&"title"!==t.tag||(n=0);if(0===n){if("svg"===e)return 1;if("math"===e)return 2}return n},getTextMode({tag:e,ns:t}){if(0===t){if("textarea"===e||"title"===e)return 1;if(ju(e))return 2}return 0}};function Lu(e,t){return B(e,t,Bu)}const Bu={[51]:"v-html is missing expression.",52:"v-html will override element children.",53:"v-text is missing expression.",54:"v-text will override element children.",55:"v-model can only be used on <input>, <textarea> and <select> elements.",56:"v-model argument is not supported on plain elements.",57:"v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.",58:"Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.",59:"v-show is missing expression.",60:"<Transition> expects exactly one child element or component.",61:"Tags with side effect (<script> and <style>) are ignored in client component templates."};const Uu=e("passive,once,capture"),Du=e("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),Hu=e("left,right"),zu=e("onkeyup,onkeydown,onkeypress",!0),Wu=(e,t)=>{return $a(e)&&"onclick"===e.content.toLowerCase()?D(t,!0):4!==e.type?Ea(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e};function Ku(e){e=e.children=e.children.filter(e=>3!==e.type&&!(2===e.type&&!e.content.trim()));const t=e[0];return 1!==e.length||11===t.type||9===t.type&&t.branches.some(Ku)}const Gu=(e,t)=>{1!==e.type||0!==e.tagType||"script"!==e.tag&&"style"!==e.tag||(t.onError(Lu(61,e.loc)),t.removeNode())},Ju=[n=>{1===n.type&&n.props.forEach((e,t)=>{6===e.type&&"style"===e.name&&e.value&&(n.props[t]={type:7,name:"bind",arg:D("style",!0,e.loc),exp:((e,t)=>{const n=k(e);return D(JSON.stringify(n),false,t,3)})(e.value.content,e.loc),modifiers:[],loc:e.loc})})},(n,r)=>{if(1===n.type&&1===n.tagType&&r.isBuiltInComponent(n.tag)===Pu)return()=>{if(n.children.length){Ku(n)&&r.onError(Lu(60,{start:n.children[0].loc.start,end:n.children[n.children.length-1].loc.end,source:""}));var e=n.children[0];if(1===e.type)for(const t of e.props)7===t.type&&"show"===t.name&&n.props.push({type:6,name:"persisted",value:void 0,loc:n.loc})}}}],qu={cloak:()=>({props:[]}),html:(e,t,n)=>{var{exp:e,loc:r}=e;return e||n.onError(Lu(51,r)),t.children.length&&(n.onError(Lu(52,r)),t.children.length=0),{props:[U(D("innerHTML",!0,r),e||D("",!0))]}},text:(e,t,n)=>{var{exp:e,loc:r}=e;return e||n.onError(Lu(53,r)),t.children.length&&(n.onError(Lu(54,r)),t.children.length=0),{props:[U(D("textContent",!0),e?0<xc(e,n)?e:H(n.helperString(oa),[e],r):D("",!0))]}},model:(n,r,o)=>{const i=_u(n,r,o);if(!i.props.length||1===r.tagType)return i;function s(){var e=za(r,"value");e&&o.onError(Lu(58,e.loc))}n.arg&&o.onError(Lu(56,n.arg.loc));var l=r["tag"],a=o.isCustomElement(l);if("input"===l||"textarea"===l||"select"===l||a){let e=Nu,t=!1;if("input"===l||a){a=za(r,"type");if(a){if(7===a.type)e=$u;else if(a.value)switch(a.value.content){case"radio":e=Tu;break;case"checkbox":e=Eu;break;case"file":t=!0,o.onError(Lu(57,n.loc));break;default:s()}}else r.props.some(e=>!(7!==e.type||"bind"!==e.name||e.arg&&4===e.arg.type&&e.arg.isStatic))?e=$u:s()}else"select"===l?e=Ou:s();t||(i.needRuntime=o.helper(e))}else o.onError(Lu(55,n.loc));return i.props=i.props.filter(e=>!(4===e.key.type&&"modelValue"===e.key.content)),i},on:(l,e,a)=>hu(l,e,a,e=>{var t=l["modifiers"];if(!t.length)return e;let{key:n,value:r}=e.props[0];const{keyModifiers:o,nonKeyModifiers:i,eventOptionModifiers:s}=((t,n)=>{const r=[],o=[],i=[];for(let e=0;e<n.length;e++){var s=n[e];Uu(s)?i.push(s):Hu(s)?$a(t)?(zu(t.content)?r:o).push(s):(r.push(s),o.push(s)):(Du(s)?o:r).push(s)}return{keyModifiers:r,nonKeyModifiers:o,eventOptionModifiers:i}})(n,t,l.loc);return i.includes("right")&&(n=Wu(n,"onContextmenu")),i.includes("middle")&&(n=Wu(n,"onMouseup")),i.length&&(r=H(a.helper(Au),[r,JSON.stringify(i)])),!o.length||$a(n)&&!zu(n.content)||(r=H(a.helper(Ru),[r,JSON.stringify(o)])),s.length&&(e=s.map(xe).join(""),n=$a(n)?D(""+n.content+e,!0):Ea(["(",n,`) + "${e}"`])),{props:[U(n,r)]}}),show:(e,t,n)=>{var{exp:e,loc:r}=e;return e||n.onError(Lu(59,r)),{props:[],needRuntime:n.helper(Iu)}}};console.info("You are running a development build of Vue.\nMake sure to use the production build (*.prod.js) when deploying for production."),vs();const Yu=Object.create(null);function Zu(n,e){if(!ce(n)){if(!n.nodeType)return oe("invalid template option: ",n),te;n=n.innerHTML}var t=n,r=Yu[t];if(r)return r;"#"===n[0]&&((r=document.querySelector(n))||oe("Template element not found or is empty: "+n),n=r?r.innerHTML:"");const o=$({hoistStatic:!0,onError:i,onWarn:e=>i(e,!0)},e);o.isCustomElement||"undefined"==typeof customElements||(o.isCustomElement=e=>!!customElements.get(e));[r,e={}]=[n,o],r=Cu(r,$({},Vu,e,{nodeTransforms:[Gu,...Ju,...e.nodeTransforms||[]],directiveTransforms:$({},qu,e.directiveTransforms||{}),transformHoist:null})).code;function i(e,t=!1){t=t?e.message:"Template compilation error: "+e.message,e=e.loc&&function(e,n=0,r=e.length){let o=e.split(/(\r?\n)/);var i,s,l,a,c=o.filter((e,t)=>t%2==1);o=o.filter((e,t)=>t%2==0);let u=0;const p=[];for(let t=0;t<o.length;t++)if((u+=o[t].length+(c[t]&&c[t].length||0))>=n){for(let e=t-d;e<=t+d||r>u;e++)e<0||e>=o.length||(i=e+1,p.push(""+i+" ".repeat(Math.max(3-String(i).length,0))+"| "+o[e]),i=o[e].length,s=c[e]&&c[e].length||0,e===t?(a=n-(u-(i+s)),l=Math.max(1,r>u?i-a:r-n),p.push(" | "+" ".repeat(a)+"^".repeat(l))):e>t&&(r>u&&(a=Math.max(Math.min(r-u,i),1),p.push(" | "+"^".repeat(a))),u+=i+s));break}return p.join("\n")}(n,e.loc.start.offset,e.loc.end.offset);oe(e?t+`
`+e:t)}const s=new Function(r)();return s._rc=!0,Yu[t]=s}return ts(Zu),r.BaseTransition=Fr,r.Comment=se,r.EffectScope=Re,r.Fragment=ie,r.KeepAlive=rt,r.ReactiveEffect=ze,r.Static=bi,r.Suspense=be,r.Teleport=t,r.Text=yi,r.Transition=Ls,r.TransitionGroup=Us,r.VueElement=Fs,r.assertNumber=vn,r.callWithAsyncErrorHandling=yn,r.callWithErrorHandling=gn,r.camelize=R,r.capitalize=xe,r.cloneVNode=Fi,r.compatUtils=null,r.compile=Zu,r.computed=ps,r.createApp=(...e)=>{const r=El().createApp(...e),o=(Al(r),Rl(r),r)["mount"];return r.mount=e=>{const t=Il(e);if(t){const n=r._component;ne(n)||n.render||n.template||(n.template=t.innerHTML),t.innerHTML="";e=o(t,!1,t instanceof SVGElement);return t instanceof Element&&(t.removeAttribute("v-cloak"),t.setAttribute("data-v-app","")),e}},r},r.createBlock=Ti,r.createCommentVNode=function(e="",t=!1){return t?(wi(),Ti(se,null,e)):P(se,null,e)},r.createElementBlock=function(e,t,n,r,o,i){return ki(Ii(e,t,n,r,o,i,!0))},r.createElementVNode=Ii,r.createHydrationRenderer=ai,r.createPropsRestProxy=function(e,t){var n={};for(const r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n},r.createRenderer=li,r.createSSRApp=(...e)=>{const t=Nl().createApp(...e),n=(Al(t),Rl(t),t)["mount"];return t.mount=e=>{e=Il(e);if(e)return n(e,!0,e instanceof SVGElement)},t},r.createSlots=function(t,n){for(let e=0;e<n.length;e++){const r=n[e];if(ae(r))for(let e=0;e<r.length;e++)t[r[e].name]=r[e].fn;else r&&(t[r.name]=r.key?(...e)=>{const t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return t},r.createStaticVNode=function(e,t){const n=P(bi,null,e);return n.staticCount=t,n},r.createTextVNode=ji,r.createVNode=P,r.customRef=function(e){return new an(e)},r.defineAsyncComponent=function(e){const{loader:n,loadingComponent:i,errorComponent:s,delay:l=200,timeout:a,suspensible:c=!0,onError:r}=e=ne(e)?{loader:e}:e;let u=null,p,o=0;const d=()=>{let t;return u||(t=u=n().catch(n=>{if(n=n instanceof Error?n:new Error(String(n)),r)return new Promise((e,t)=>{r(n,()=>e((o++,u=null,d())),()=>t(n),o+1)});throw n}).then(e=>{if(t!==u&&u)return u;if(e||oe("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),!(e=e&&(e.__esModule||"Module"===e[Symbol.toStringTag])?e.default:e)||re(e)||ne(e))return p=e;throw new Error("Invalid async component load result: "+e)}))};return Dr({name:"AsyncComponentWrapper",__asyncLoader:d,get __asyncResolved(){return p},setup(){const t=_;if(p)return()=>zr(p,t);const n=e=>{u=null,bn(e,t,13,!s)};if(c&&t.suspense)return d().then(e=>()=>zr(e,t)).catch(e=>(n(e),()=>s?P(s,{error:e}):null));const r=tn(!1),o=tn(),e=tn(!!l);return l&&setTimeout(()=>{e.value=!1},l),null!=a&&setTimeout(()=>{var e;r.value||o.value||(e=new Error(`Async component timed out after ${a}ms.`),n(e),o.value=e)},a),d().then(()=>{r.value=!0,t.parent&&Wr(t.parent.vnode)&&$n(t.parent.update)}).catch(e=>{n(e),o.value=e}),()=>r.value&&p?zr(p,t):o.value&&s?P(s,{error:o.value}):i&&!e.value?P(i):void 0}})},r.defineComponent=Dr,r.defineCustomElement=Ps,r.defineEmits=function(){return ds("defineEmits"),null},r.defineExpose=function(e){ds("defineExpose")},r.defineProps=function(){return ds("defineProps"),null},r.defineSSRCustomElement=e=>Ps(e,$l),r.effect=function(e,t){e.effect&&(e=e.effect.fn);const n=new ze(e),r=(t&&($(n,t),t.scope&&Ie(n,t.scope)),t&&t.lazy||n.run(),n.run.bind(n));return r.effect=n,r},r.effectScope=function(e){return new Re(e)},r.getCurrentInstance=Wi,r.getCurrentScope=Pe,r.getTransitionRawChildren=Ur,r.guardReactiveProps=Pi,r.h=hs,r.handleError=bn,r.hydrate=$l,r.initCustomFormatter=vs,r.initDirectivesForSSR=_s,r.inject=Er,r.isMemoSame=ms,r.isProxy=qt,r.isReactive=Kt,r.isReadonly=Gt,r.isRef=q,r.isRuntimeOnly=ns,r.isShallow=Jt,r.isVNode=Ei,r.markRaw=Yt,r.mergeDefaults=function(e,t){const n=ae(e)?e.reduce((e,t)=>(e[t]={},e),{}):e;for(const r in t){const o=n[r];o?ae(o)||ne(o)?n[r]={type:o,default:t[r]}:o.default=t[r]:null===o?n[r]={default:t[r]}:oe(`props default key "${r}" has no corresponding declaration.`)}return n},r.mergeProps=Ui,r.nextTick=On,r.normalizeClass=T,r.normalizeProps=function(e){if(!e)return null;var{class:t,style:n}=e;return t&&!ce(t)&&(e.class=T(t)),n&&(e.style=a(n)),e},r.normalizeStyle=a,r.onActivated=Gr,r.onBeforeMount=Qr,r.onBeforeUnmount=ro,r.onBeforeUpdate=to,r.onDeactivated=Jr,r.onErrorCaptured=ao,r.onMounted=eo,r.onRenderTracked=lo,r.onRenderTriggered=so,r.onScopeDispose=function(e){b?b.cleanups.push(e):Ae("onScopeDispose() is called when there is no active effect scope to be associated with.")},r.onServerPrefetch=io,r.onUnmounted=oo,r.onUpdated=no,r.openBlock=wi,r.popScopeId=function(){sr=null},r.provide=Tr,r.proxyRefs=ln,r.pushScopeId=function(e){sr=e},r.queuePostFlushCb=Rn,r.reactive=Ut,r.readonly=Ht,r.ref=tn,r.registerRuntimeCompiler=ts,r.render=Ol,r.renderList=function(n,r,e,t){let o;const i=e&&e[t];if(ae(n)||ce(n)){o=new Array(n.length);for(let e=0,t=n.length;e<t;e++)o[e]=r(n[e],e,void 0,i&&i[e])}else if("number"==typeof n){Number.isInteger(n)||oe(`The v-for range expect an integer value but got ${n}.`),o=new Array(n);for(let e=0;e<n;e++)o[e]=r(e+1,e,void 0,i&&i[e])}else if(re(n))if(n[Symbol.iterator])o=Array.from(n,(e,t)=>r(e,t,void 0,i&&i[t]));else{var s=Object.keys(n);o=new Array(s.length);for(let e=0,t=s.length;e<t;e++){var l=s[e];o[e]=r(n[l],l,e,i&&i[e])}}else o=[];return e&&(e[t]=o),o},r.renderSlot=function(e,t,n={},r,o){if(h.isCE||h.parent&&Hr(h.parent)&&h.parent.isCE)return"default"!==t&&(n.name=t),P("slot",n,r&&r());let i=e[t];i&&1<i.length&&(oe("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template."),i=()=>[]),i&&i._c&&(i._d=!1),wi();var s=i&&function t(e){return e.some(e=>!Ei(e)||e.type!==se&&!(e.type===ie&&!t(e.children)))?e:null}(i(n));const l=Ti(ie,{key:n.key||s&&s.key||"_"+t},s||(r?r():[]),s&&1===e._?64:-2);return!o&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),i&&i._c&&(i._d=!0),l},r.resolveComponent=function(e,t){return ho(po,e,!0,t)||e},r.resolveDirective=function(e){return ho("directives",e)},r.resolveDynamicComponent=function(e){return ce(e)?ho(po,e,!1)||e:e||fo},r.resolveFilter=null,r.resolveTransitionHooks=jr,r.setBlockTracking=Ci,r.setDevtoolsHook=qn,r.setTransitionHooks=Br,r.shallowReactive=Dt,r.shallowReadonly=zt,r.shallowRef=function(e){return nn(e,!0)},r.ssrContextKey=ot,r.ssrUtils=null,r.stop=function(e){e.effect.stop()},r.toDisplayString=e=>ce(e)?e:null==e?"":ae(e)||re(e)&&(e.toString===ee||!ne(e.toString))?JSON.stringify(e,L,2):String(e),r.toHandlerKey=Se,r.toHandlers=function(e,t){const n={};if(!re(e))return oe("v-on with no argument expects an object value."),n;for(const r in e)n[t&&/[A-Z]/.test(r)?"on:"+r:Se(r)]=e[r];return n},r.toRaw=m,r.toRef=un,r.toRefs=function(e){qt(e)||console.warn("toRefs() expects a reactive object but received a plain one.");const t=ae(e)?new Array(e.length):{};for(const n in e)t[n]=un(e,n);return t},r.transformVNodeArgs=function(e){Oi=e},r.triggerRef=function(e){en(e,e.value)},r.unref=on,r.useAttrs=function(){return fs().attrs},r.useCssModule=function(e=0){return oe("useCssModule() is not supported in the global build."),E},r.useCssVars=function(n){const r=Wi();if(r){const t=r.ut=(t=n(r.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${r.uid}"]`)).forEach(e=>Ms(e,t))},o=()=>{var e=n(r.proxy);!function t(n,r){if(128&n.shapeFlag){const e=n.suspense;n=e.activeBranch,e.pendingBranch&&!e.isHydrating&&e.effects.push(()=>{t(e.activeBranch,r)})}for(;n.component;)n=n.component.subTree;if(1&n.shapeFlag&&n.el)Ms(n.el,r);else if(n.type===ie)n.children.forEach(e=>t(e,r));else if(n.type===bi){let{el:e,anchor:t}=n;for(;e&&(Ms(e,r),e!==t);)e=e.nextSibling}}(r.subTree,e),t(e)};Nr(o),eo(()=>{const e=new MutationObserver(o);e.observe(r.subTree.el.parentNode,{childList:!0}),oo(()=>e.disconnect())})}else oe("useCssVars is called without current active component instance.")},r.useSSRContext=()=>{oe("useSSRContext() is not supported in the global build.")},r.useSlots=function(){return fs().slots},r.useTransitionState=Pr,r.vModelCheckbox=ul,r.vModelDynamic=gl,r.vModelRadio=dl,r.vModelSelect=fl,r.vModelText=cl,r.vShow=xl,r.version=gs,r.warn=oe,r.watch=$r,r.watchEffect=function(e,t){return Ar(e,null,t)},r.watchPostEffect=Nr,r.watchSyncEffect=function(e,t){return Ar(e,null,Object.assign(Object.assign({},t),{flush:"sync"}))},r.withAsyncContext=function(e){const t=Wi();t||oe("withAsyncContext called without active current instance. This is likely a bug.");let n=e();return Gi(),[n=de(n)?n.catch(e=>{throw Ki(t),e}):n,()=>Ki(t)]},r.withCtx=ar,r.withDefaults=function(e,t){return ds("withDefaults"),null},r.withDirectives=function(e,i){var t=h;if(null===t)return oe("withDirectives can only be used inside render functions."),e;var s=is(t)||t.proxy;const l=e.dirs||(e.dirs=[]);for(let o=0;o<i.length;o++){let[e,t,n,r=E]=i[o];e&&((e=ne(e)?{mounted:e,updated:e}:e).deep&&Ir(t),l.push({dir:e,instance:s,value:t,oldValue:void 0,arg:n,modifiers:r}))}return e},r.withKeys=(n,r)=>e=>{if("key"in e){const t=v(e.key);return r.some(e=>e===t||wl[e]===t)?n(e):void 0}},r.withMemo=function(e,t,n,r){var o=n[r];if(o&&ms(o,e))return o;const i=t();return i.memo=e.slice(),n[r]=i},r.withModifiers=(r,o)=>(t,...e)=>{for(let e=0;e<o.length;e++){const n=_l[o[e]];if(n&&n(t,o))return}return r(t,...e)},r.withScopeId=e=>ar,Object.defineProperty(r,"__esModule",{value:!0}),r}({});
/mods/mod_prepayment/settings_edit.phtml
8,6 → 8,15
 
<?php echo wpsg_drawForm_Input('wpsg_mod_prepayment_bezeichnung', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_prepayment_bezeichnung'), array('help' => 'wpsg_mod_prepayment_bezeichnung')); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_prepayment_aktiv', __('Aktiv', 'wpsg'), $this->get_option('wpsg_mod_prepayment_aktiv'), array('help' => 'wpsg_mod_prepayment_aktiv')); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_prepayment_qrcode', __('QR-Code anzeigen', 'wpsg'), $this->get_option('wpsg_mod_prepayment_qrcode'), array('help' => 'wpsg_mod_prepayment_qrcode')); ?>
<div id="wpsg_mod_prepayment_qrcode_options_layer" style="display: none;">
<?php echo wpsg_drawForm_Select('wpsg_mod_prepayment_qrcode_country', __('QR-Code für', 'wpsg'), Array(
wpsg_mod_prepayment::QRCODE_BOTH => __('Beide', 'wpsg'),
wpsg_mod_prepayment::QRCODE_EPC => __('Girocode', 'wpsg'),
wpsg_mod_prepayment::QRCODE_SWISS => __('QR-Rechnung', 'wpsg')
), $this->get_option('wpsg_mod_prepayment_qrcode_country'), array('help' => 'wpsg_mod_prepayment_qrcode_country')); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_prepayment_mailattachment', __('QR-Rechnung an Bestellbestätigung anhängen', 'wpsg'), $this->get_option('wpsg_mod_prepayment_mailattachment'), array('help' => 'wpsg_mod_prepayment_mailattachment')); ?>
</div>
 
<?php echo wpsg_drawForm_Textarea('wpsg_mod_prepayment_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_prepayment_hint'), array('help' => 'wpsg_mod_prepayment_hint')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_prepayment_subject', __('Betreff für Überweisungen', 'wpsg'), $this->get_option('wpsg_mod_prepayment_subject'), array('help' => 'mod_prepayment_subject')); ?>
22,4 → 31,33
<?php echo wpsg_drawForm_Input('wpsg_mod_prepayment_bank', __('Bank', 'wpsg'), $this->get_option('wpsg_mod_prepayment_bank'), array('help' => 'wpsg_mod_prepayment_bank')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_prepayment_iban', __('IBAN', 'wpsg'), $this->get_option('wpsg_mod_prepayment_iban'), array('help' => 'wpsg_mod_prepayment_iban')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_prepayment_swift', __('BIC-/SWIFT Code', 'wpsg'), $this->get_option('wpsg_mod_prepayment_swift'), array('help' => 'wpsg_mod_prepayment_swift')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_prepayment_qriban', __('QR-IBAN', 'wpsg'), $this->get_option('wpsg_mod_prepayment_qriban'), array('help' => 'wpsg_mod_prepayment_qriban')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_prepayment_besr', __('BESR-ID', 'wpsg'), $this->get_option('wpsg_mod_prepayment_besr'), array('help' => 'wpsg_mod_prepayment_besr')); ?>
 
<script>
 
document.addEventListener("DOMContentLoaded", function() {
 
var qrcodeAktiveCheckbox = document.getElementById('wpsg_mod_prepayment_qrcode');
var qrcodeSelectDiv = document.getElementById('wpsg_mod_prepayment_qrcode_options_layer');
 
function toggleDivVisibility(checkbox, div)
{
 
if (checkbox.checked) div.style.display = "block";
else div.style.display = "none";
 
}
 
// Event Listener für die Checkboxen
qrcodeAktiveCheckbox.addEventListener("change", function() {
toggleDivVisibility(qrcodeAktiveCheckbox, qrcodeSelectDiv);
});
 
// Überprüfen und Initialisieren des Anfangszustands der Checkboxen
toggleDivVisibility(qrcodeAktiveCheckbox, qrcodeSelectDiv);
});
 
</script>
/mods/mod_deliverynote/order_view_content.phtml
134,7 → 134,7
function wpsg_mod_deliverynote_checkProducts()
{
 
if (jQuery('.wpsg_mod_deliverynote_product:checked').length <= 0)
if (jQuery('.wpsg_mod_deliverynote_product_i:checked').length <= 0)
{
 
alert('<?php echo __('Bitte mindestens ein Produkt für den Lieferschein wählen', 'wpsg'); ?>');
146,7 → 146,7
 
var arProductKeys = Array();
jQuery('.wpsg_mod_deliverynote_product:checked').each(function() {
jQuery('.wpsg_mod_deliverynote_product_i:checked').each(function() {
arProductKeys.push(jQuery(this).val());
153,6 → 153,7
} );
 
jQuery('#wpsg_mod_deliverynote_productindexes').val(arProductKeys.join(','));
 
}
 
/mods/mod_deliverynote/order_view_row.phtml
8,7 → 8,7
<tr class="wpsg_<?php echo (($this->view['wpsg_mod_deliverynote']['i'] == 0)?'odd':'even'); ?>">
<td align="left" colspan="<?php echo ((sizeof($this->view['arCalculation']['tax']) > 1 || $this->get_option('wpsg_showMwstAlways') == '1')?'5':'4'); ?>">
<label style="font-weight:normal; display:flex; flex-direction:row; margin-bottom:0px;">
<input checked="checked" type="checkbox" class="wpsg_mod_deliverynote_product" name="wpsg_mod_deliverynote_products[]" value="<?php echo $this->view['wpsg_mod_deliverynote']['product']['product_index']; ?>" style="margin:0px; margin-right:5px;" />
<input checked="checked" type="checkbox" class="wpsg_mod_deliverynote_product_i" name="wpsg_mod_deliverynote_products[]" value="<?php echo $this->view['wpsg_mod_deliverynote']['product']['product_index']; ?>" style="margin:0px; margin-right:5px;" />
<span>&nbsp;<?php echo __('Auf Lieferschein', 'wpsg'); ?></span>
</label>
</td>
/mods/mod_legaltexts/form_haendlerbund.phtml
8,17 → 8,45
 
<style type="text/css">
.wphb_clear { clear:both; }
.wphb_form_field { width:770px; margin-bottom:5px; }
.wphb_form_field .wphb_form_left { line-height:24px; font-weight:bold; width:350px; float:left; }
.wphb_form_field .wphb_form_right { width:420px; float:left; position:relative; line-height:28px; }
.wphb_form_field .wphb_form_right select, .wphb_form_field .wphb_form_right input { width:95%; }
.wphb_form_field .wphb_form_right input.checkbox { width:auto !important; float:left; margin-left:2px; margin-top:5px; }
.wphb_form_field .wphb_form_right p { padding:4px 0px 4px 6px; margin:0px; }
.wphb_form { padding:10px; }
.wphb_date { float:right; padding-right:5%; }
.wphb_hinweis { font-style:italic; }
.wphb_form_field {
width: 100%;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.wphb_form_field input {
width: 100%;
}
.wphb_form_left {
width: 50% !important;
flex-grow: 0;
flex-shrink: 0;
}
.wphb_form_right {
width: 50% !important;
flex-grow: 0;
flex-shrink: 0;
}
 
.wphb_table {
width: 100%;
border-spacing: 0px;
border-collapse: collapse;
}
.wphb_table input {
min-height: unset !important;
}
.wphb_table select {
width: 100%;
}
.col0 {
width: 50%;
}
.col1 {
width: 50%;
}
 
</style>
 
<?php if ($this->view['wpsg_mod_legaltexts']['form'] == false) { ?>
/mods/mod_trustedshops/settings_edit.phtml
1,7 → 1,7
<?php
 
/**
* Tempalte für die Einstellungen des Trusted Shops Moduls
* Template für die Einstellungen des Trusted Shops Moduls
*/
?>
16,6 → 16,7
<br />
 
<div class="wpsg_mod_protectedshops">
 
<div class="wpsg_admin_box" id="wpsg_tab">
 
<ul class="nav nav-tabs" role="tablist">
24,35 → 25,37
<li role="presentation"><a href="#tab3" aria-controls="messages" role="tab" data-toggle="tab"><?php echo __('Bewertungslinks', 'wpsg'); ?></a></li>
<li role="presentation"><a href="#tab4" aria-controls="messages" role="tab" data-toggle="tab"><?php echo __('Review Collector', 'wpsg'); ?></a></li>
</ul>
 
<div class="tab-content">
 
<div id="tab1" role="tabpanel" class="tab-pane active" >
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_trustedshops_siegelcache', __('Bewertungsbild zwischenspeichern (empfohlen)', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_siegelcache'), array('help' => 'wpsg_mod_trustedshops_siegelcache')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_trustedshops_siegeltitle', __('Titel des Bewertungsbildes', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_siegeltitle'), array('help' => 'wpsg_mod_trustedshops_siegeltitle')); ?>
<?php if (wpsg_isSizedString($this->view['siegelURL'])) { ?>
<br />
<div class="wpsg_hinweis"><?php echo wpsg_translate(__('Das Trusted Shops Widget muss in einen <a href="#1#">Widgetbereich</a> eingefügt werden.', 'wpsg'), WPSG_URL_WP.'wp-admin/widgets.php'); ?></div><br />
<?php echo __('Vorschau:', 'wpsg'); ?><br />
<img class="bewertung" alt="<?php echo wpsg_hspc($this->get_option('wpsg_mod_trustedshops_siegeltitle')); ?>" border="0" src="<?php echo $this->view['siegelURL']; ?>"/>
<?php } ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_trustedshops_siegelcache', __('Bewertungsbild zwischenspeichern (empfohlen)', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_siegelcache'), array('help' => 'wpsg_mod_trustedshops_siegelcache')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_trustedshops_siegeltitle', __('Titel des Bewertungsbildes', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_siegeltitle'), array('help' => 'wpsg_mod_trustedshops_siegeltitle')); ?>
<?php if (wpsg_isSizedString($this->view['siegelURL'])) { ?>
<br />
<div class="wpsg_hinweis"><?php echo wpsg_translate(__('Das Trusted Shops Widget muss in einen <a href="#1#">Widgetbereich</a> eingefügt werden.', 'wpsg'), WPSG_URL_WP.'wp-admin/widgets.php'); ?></div><br />
<?php echo __('Vorschau:', 'wpsg'); ?><br />
<img class="bewertung" alt="<?php echo wpsg_hspc($this->get_option('wpsg_mod_trustedshops_siegeltitle')); ?>" border="0" src="<?php echo $this->view['siegelURL']; ?>"/>
<?php } ?>
</div>
<div id="tab2" role="tabpanel" class="tab-pane" >
<?php echo wpsg_drawForm_Select('wpsg_mod_trustedshops_orderdone', __('Link zur Bewertung', 'wpsg'), array(
'0' => __('Nicht anzeigen', 'wpsg'),
'1' => __('Immer anzeigen', 'wpsg'),
'2' => __('Nur anzeigen, wenn Kunde bewerten möchte', 'wpsg')
), $this->get_option('wpsg_mod_trustedshops_orderdone'), array('help' => 'wpsg_mod_trustedshops_orderdone')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_trustedshops_orderdonetitle', __('Titel des Links', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_orderdonetitle'), array('help' => 'wpsg_mod_trustedshops_orderdonetitle')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_trustedshops_orderdonelogo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_orderdonelogo'), array('help' => 'wpsg_mod_trustedshops_orderdonelogo')); ?>
<br />
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_trustedshops_warranty', __('Trusted Shops Käuferschutz (Garantie)', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_warranty'), array('help' => 'wpsg_mod_trustedshops_warranty')); ?>
<?php echo wpsg_drawForm_Select('wpsg_mod_trustedshops_orderdone', __('Link zur Bewertung', 'wpsg'), array(
'0' => __('Nicht anzeigen', 'wpsg'),
'1' => __('Immer anzeigen', 'wpsg'),
'2' => __('Nur anzeigen, wenn Kunde bewerten möchte', 'wpsg')
), $this->get_option('wpsg_mod_trustedshops_orderdone'), array('help' => 'wpsg_mod_trustedshops_orderdone')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_trustedshops_orderdonetitle', __('Titel des Links', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_orderdonetitle'), array('help' => 'wpsg_mod_trustedshops_orderdonetitle')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_trustedshops_orderdonelogo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_orderdonelogo'), array('help' => 'wpsg_mod_trustedshops_orderdonelogo')); ?>
<br />
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_trustedshops_warranty', __('Trusted Shops Käuferschutz (Garantie)', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_warranty'), array('help' => 'wpsg_mod_trustedshops_warranty')); ?>
</div>
<div id="tab3" role="tabpanel" class="tab-pane" >
67,8 → 70,6
<br />
<?php if ($this->hasMod('wpsg_mod_rechnungen')) { ?>
<br />
<?php echo wpsg_drawForm_Select('wpsg_mod_trustedshops_invoicemail', __('Link zur Bewertung in Rechnungsmail', 'wpsg'), array(
'0' => __('Nicht anzeigen', 'wpsg'),
'1' => __('Immer anzeigen', 'wpsg'),
75,7 → 76,6
'2' => __('Nur anzeigen, wenn Kunde bewerten möchte', 'wpsg')
), $this->get_option('wpsg_mod_trustedshops_invoicemail'), array('help' => 'wpsg_mod_trustedshops_invoicemail')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_trustedshops_invoicemailtitle', __('Text des Links', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_invoicemailtitle'), array('help' => 'wpsg_mod_trustedshops_invoicemailtitle')); ?>
<?php } ?>
</div>
82,85 → 82,61
<div id="tab4" role="tabpanel" class="tab-pane" >
 
<?php echo wpsg_drawForm_TextStart(); ?>
<input type="hidden" name="wpsg_mod_trustedshops_reminder" value="0">
<input id="wpsg_mod_trustedshops_reminder" type="checkbox" class="checkbox" <?php echo ((wpsg_isSizedInt($this->get_option('wpsg_mod_trustedshops_reminder')))?'checked="checked"':''); ?> tabindex="14" name="wpsg_mod_trustedshops_reminder" value="1">
<div id="wpsg_mod_trustedshops_reminder_layer" class="wpsg_form_trustedshops_reminderDays">
<p><?php echo __('Nach', 'wpsg'); ?></p>
<input id="wpsg_mod_trustedshops_reminderDays" type="text" class="text" tabindex="15" name="wpsg_mod_trustedshops_reminderDays" value="<?php echo $this->get_option('wpsg_mod_trustedshops_reminderDays'); ?>">
<p><?php echo __('Tagen', 'wpsg'); ?></p>
</div>
<?php echo wpsg_drawForm_TextEnd(__('Erinnerung', 'wpsg'), array('noP' => true)); ?>
<?php echo wpsg_drawForm_TextStart(); ?>
<?php foreach ($this->arStatus as $state_id => $state_label) { ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_trustedshops_reminder', __('Erinnerung', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_reminder'), array('help' => 'wpsg_mod_trustedshops_reminder')); ?>
<div id="wpsg_mod_trustedshops_reminder_layer" style="display:none;">
<?php echo wpsg_drawForm_Input('wpsg_mod_trustedshops_reminderDays', __('Zeitspanne zum versenden der Erinnerunsmail in Tagen', 'wpsg'), $this->get_option('wpsg_mod_trustedshops_reminderDays'), array('help' => 'wpsg_mod_trustedshops_reminderDays')); ?>
</div>
 
<br />
 
<?php echo wpsg_drawForm_Link('wpsg_mod_trustedshops_link', __('Auslöser bei Statuswechsel', 'wpsg'),
__('Bearbeiten', 'wpsg'), array('help' => 'wpsg_mod_trustedshops_link', 'class' => 'wpsg_mod_trustedshops_state')); ?>
 
<div class="wpsg_mod_trustedshops_reminderstate_layer" style="display:none;">
 
<?php foreach ($this->arStatus as $state_id => $state_label) { ?>
<?php
$arr1 = $this->get_option('wpsg_mod_trustedshops_state');
$chk = ((in_array($state_id, (array)$this->get_option('wpsg_mod_trustedshops_state')))?1:0);
echo wpsg_drawForm_Checkbox('wpsg_mod_trustedshops_state[]', __($state_label, 'wpsg'),
$chk, array('help1' => 'wpsg_shippay_mwstland',
'value' => wpsg_hspc($state_id),
'noHidden' => true,
'fullWidth' => true
));
$arr1 = $this->get_option('wpsg_mod_trustedshops_state');
$chk = ((in_array($state_id, (array)$this->get_option('wpsg_mod_trustedshops_state')))?1:0);
echo wpsg_drawForm_Checkbox('wpsg_mod_trustedshops_state[]', __($state_label, 'wpsg'),
$chk, array('help1' => 'wpsg_shippay_mwstland', 'value' => wpsg_hspc($state_id), 'labelright' => true));
?>
<br />
<?php } ?>
<?php } ?>
 
<?php echo wpsg_drawForm_TextEnd(__('Bestellzustände', 'wpsg'), array('noP' => true)); ?>
<br />
 
<?php echo wpsg_drawForm_Input('', __('Letzter Export', 'wpsg'), $this->view['lastExport'], array('text' => true)); ?>
<br />
<div class="wpsg_form_field">
<div class="wpsg_form_left">&nbsp;</div>
<div class="wpsg_form_right wpsg_form_right_unit">
<?php $temp = $this->callMod('wpsg_mod_trustedshops', 'getExportData');
if (wpsg_isSizedArray($temp)) { ?>
<a target="_blank" onclick="location.href=location.href;" href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_trustedshops&do=export&noheader=1" class="button"><?php echo __('CSV-Export-Datei erstellen', 'wpsg'); ?></a>
<?php } else { ?>
<p><?php echo __('Derzeit keine Daten zum Export verfügbar.', 'wpsg'); ?></p>
<?php } ?>
</div>
<div class="wpsg_clear"></div>
</div>
<?php echo wpsg_drawForm_Input('', __('Letzter Export', 'wpsg'), $this->view['lastExport'], array('text' => true)); ?>
<br />
<div class="wpsg_form_field">
<div class="wpsg_form_left">&nbsp;</div>
<div class="wpsg_form_right wpsg_form_right_unit">
<?php $temp = $this->callMod('wpsg_mod_trustedshops', 'getExportData');
if (wpsg_isSizedArray($temp)) { ?>
<a target="_blank" onclick="location.href=location.href;" href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_trustedshops&do=export&noheader=1" class="button"><?php echo __('CSV-Export-Datei erstellen', 'wpsg'); ?></a>
<?php } else { ?>
<p><?php echo __('Derzeit keine Daten zum Export verfügbar.', 'wpsg'); ?></p>
<?php } ?>
</div>
<br />
<a href="https://www.trustedshops.com/tsb2b/sa/ratings/batchRatingRequest.seam"><?php echo __('Trusted Shops Review Collector', 'wpsg'); ?></a>
<div class="wpsg_clear"></div>
</div>
<br />
<a href="https://www.trustedshops.com/tsb2b/sa/ratings/batchRatingRequest.seam"><?php echo __('Trusted Shops Review Collector', 'wpsg'); ?></a>
</div>
 
</div>
 
</div>
 
<script type="text/javascript">/* <![CDATA[ */
 
jQuery(document).ready(function() {
 
jQuery('#wpsg_mod_trustedshops_reminder').bind('change', function() {
 
if (jQuery('#wpsg_mod_trustedshops_reminder').is(':checked'))
{
 
jQuery('#wpsg_mod_trustedshops_reminder_layer').show(250);
}
else
{
 
jQuery('#wpsg_mod_trustedshops_reminder_layer').hide(250);
}
} ).change();
jQuery('#wpsg_tab').wpsg_tab( {
'cookiename': 'wpsg_trustedshop_tab',
185,7 → 161,41
}
} ).change();
 
jQuery('.wpsg_mod_trustedshops_state').bind('click', function() {
 
jQuery('.wpsg_mod_trustedshops_reminderstate_layer').toggle();
 
if (jQuery('.wpsg_mod_trustedshops_reminderstate_layer').is(':visible')) jQuery(this).html('<?php echo __('Ausblenden', 'wpsg'); ?>');
else jQuery(this).html('<?php echo __('Bearbeiten', 'wpsg'); ?>');
 
return false;
 
} );
} );
 
document.addEventListener("DOMContentLoaded", function() {
 
var reminderCheckbox = document.getElementById('wpsg_mod_trustedshops_reminder');
var reminderDiv = document.getElementById('wpsg_mod_trustedshops_reminder_layer');
function toggleDivVisibility(checkbox, div)
{
 
if (checkbox.checked) div.style.display = "block";
else div.style.display = "none";
 
}
 
// Event Listener für die Checkboxen
reminderCheckbox.addEventListener("change", function() {
toggleDivVisibility(reminderCheckbox, reminderDiv);
});
 
// Überprüfen und Initialisieren des Anfangszustands der Checkboxen
toggleDivVisibility(reminderCheckbox, reminderDiv);
 
});
 
/* ]]> */</script>
/mods/mod_export/profil.phtml
66,6 → 66,16
</div>
<?php } ?>
 
<?php if ($this->view['profil']['export_type'] === wpsg_mod_export::TYPE_PRODUCT) { ?>
 
<div class="wpsg_mod_export_format wpsg_mod_export_format_<?php echo wpsg_mod_export::FORMAT_CSV; ?>" style="display:<?php echo (($this->view['profil']['format'] == wpsg_mod_export::FORMAT_CSV)?'block':'none'); ?>">
<?php echo wpsg_drawForm_Checkbox('csv_pvariants_separated', __('Produkte variantengetrennt exportieren', 'wpsg'), $this->view['profil']['csv_pvariants_separated'], array('label' => __('Optionen', 'wpsg'), 'help' =>'wpsg_csv_pvariants_separated', 'inlineEdit' => true, 'inlineEdit_url' => $inlineEdit_url)); ?>
</div>
 
<?php } ?>
<div class="wpsg_mod_export_format wpsg_mod_export_format_<?php echo wpsg_mod_export::FORMAT_CSV; ?>" style="display:<?php echo (($this->view['profil']['format'] == wpsg_mod_export::FORMAT_CSV)?'block':'none'); ?>">
72,7 → 82,7
<?php echo wpsg_drawForm_Checkbox('csv_fieldnames', __('Spaltennamen in erster Zeile', 'wpsg'), $this->view['profil']['csv_fieldnames'], array('inlineEdit' => true, 'inlineEdit_url' => $inlineEdit_url)); ?>
</div>
 
</div>
<div id="tab2" role="tabpanel" class="tab-pane">
/mods/mod_statistics/settings_edit.phtml
3,9 → 3,9
<div id="wpsg_tab">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#tab1" aria-controls="home" role="tab" data-toggle="tab"><?php echo __('Auswertung Bestellstatus', 'wpsg'); ?></a></li>
<li role="presentation"><a href="#tab2" aria-controls="profile" role="tab" data-toggle="tab"><?php echo __('Piwik', 'wpsg'); ?></a></li>
<li role="presentation"><a href="#tab2" aria-controls="profile" role="tab" data-toggle="tab"><?php echo __('Matomo', 'wpsg'); ?></a></li>
<li role="presentation"><a href="#tab3" aria-controls="profile" role="tab" data-toggle="tab"><?php echo __('Google', 'wpsg'); ?></a></li>
<li role="presentation"><a href="#tab4" aria-controls="profile" role="tab" data-toggle="tab"><?php echo __('Social Media', 'wpsg'); ?></a></li>
<!-- <li role="presentation"><a href="#tab4" aria-controls="profile" role="tab" data-toggle="tab"><?php echo __('Social Media', 'wpsg'); ?></a></li> -->
<li role="presentation"><a href="#tab5" aria-controls="messages" role="tab" data-toggle="tab"><?php echo __('Sonstiges', 'wpsg'); ?></a></li>
</ul>
 
46,107 → 46,185
<br/>
<?php echo __('Ermöglicht die Integration des Trackintools "Piwik".', 'wpsg'); ?>
<?php echo __('Ermöglicht die Integration des Trackintools "Matomo".', 'wpsg'); ?>
<br/><br/>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_url', __('URL zur Piwik Installation', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_url'), array('hint' => __('Ohne Protokoll, Beispiel: piwik.domain.de', 'wpsg'))); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_trackingcode', __('Trackingcode einbinden', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_trackingcode'), array('help' => 'wpsg_mod_statistics_piwik_trackingcode')); ?>
<div id="wpsg_mod_statistik_tracking_layer" style="display:none;">
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_url', __('URL zur Matomo Installation', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_url'), array('help' => 'wpsg_mod_statistics_piwik_url'), array('hint' => __('Ohne Protokoll, Beispiel: matomo.domain.de', 'wpsg'))); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_SiteId', __('Matomo Seiten ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_SiteId'), array('help' => 'wpsg_mod_statistics_piwik_SiteId')); ?>
</div>
<br />
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_generel', __('Allgemeine Protokollierung', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_generel')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_SiteId', __('Piwik Seiten ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_SiteId'), array('help' => 'wpsg_mod_statistics_piwik_SiteId')); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_ecommerce', __('Käufe (eCommerce) tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_ecommerce')); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_generel', __('Allgemeine Protokollierung', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_generel'), array('help' => 'wpsg_mod_statistics_piwik_generel')); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_ecommerce', __('Käufe (eCommerce) tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_ecommerce'), array('help' => 'wpsg_mod_statistics_piwik_ecommerce')); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_productView', __('Produkte tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_productView'), array('help' => 'wpsg_mod_statistics_piwik_productView')); ?>
<?php if ($this->hasMod('wpsg_mod_produktartikel')) echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_categoryView', __('Produktkategorien tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_categoryView'), array('help' => 'wpsg_mod_statistics_piwik_categoryView')); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_basketdata', __('Warenkorbdaten tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_basketdata'), array('help' => 'wpsg_mod_statistics_piwik_basketdata')); ?>
<br /><br />
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_basket', __('Warenkorb tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_basket')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_basket_target', __('Ziel ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_basket_target')); ?>
 
<strong><?php echo __('Matomo Goals tracken:', 'wpsg'); ?></strong>
<br />
 
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_basket', __('Warenkorb tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_basket'), array('help' => 'wpsg_mod_statistics_piwik_basketdata')); ?>
<div id="wpsg_mod_statistics_piwik_basket_layer" style="display: none;">
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_basket_target', __('Matomo ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_basket_target')); ?>
</div>
<br />
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_checkout', __('Checkout tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_checkout')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_checkout_target', __('Ziel ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_checkout_target')); ?>
<div id="wpsg_mod_statistics_piwik_checkout_layer" style="display: none;">
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_checkout_target', __('Matomo ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_checkout_target')); ?>
</div>
<br />
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_checkout2', __('Checkout2 tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_checkout2')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_checkout2_target', __('Ziel ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_checkout2_target')); ?>
<div id="wpsg_mod_statistics_piwik_checkout2_layer" style="display: none;">
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_checkout2_target', __('Matomo ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_checkout2_target')); ?>
</div>
<br />
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_overview', __('Overview tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_overview')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_overview_target', __('Ziel ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_overview_target')); ?>
<div id="wpsg_mod_statistics_piwik_overview_layer" style="display: none;">
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_overview_target', __('Matomo ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_overview_target')); ?>
</div>
<br />
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_piwik_done', __('Done tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_done')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_done_target', __('Ziel ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_done_target')); ?>
<div id="wpsg_mod_statistics_piwik_done_layer" style="display: none;">
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_piwik_done_target', __('Matomo ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_piwik_done_target')); ?>
</div>
 
<div class="wpsg_clearer"></div>
</div>
 
<script>
 
document.addEventListener("DOMContentLoaded", function() {
 
var trackingCheckbox = document.getElementById('wpsg_mod_statistics_piwik_trackingcode');
var trackingDiv = document.getElementById('wpsg_mod_statistik_tracking_layer');
 
var basketCheckbox = document.getElementById("wpsg_mod_statistics_piwik_basket");
var basketDiv = document.getElementById("wpsg_mod_statistics_piwik_basket_layer");
 
var checkoutCheckbox = document.getElementById("wpsg_mod_statistics_piwik_checkout");
var checkoutDiv = document.getElementById("wpsg_mod_statistics_piwik_checkout_layer");
 
var checkout2Checkbox = document.getElementById("wpsg_mod_statistics_piwik_checkout2");
var checkout2Div = document.getElementById("wpsg_mod_statistics_piwik_checkout2_layer");
 
var overviewCheckbox = document.getElementById("wpsg_mod_statistics_piwik_overview");
var overviewDiv = document.getElementById("wpsg_mod_statistics_piwik_overview_layer");
 
var doneCheckbox = document.getElementById("wpsg_mod_statistics_piwik_done");
var doneDiv = document.getElementById("wpsg_mod_statistics_piwik_done_layer");
 
 
function toggleDivVisibility(checkbox, div)
{
 
if (checkbox.checked) div.style.display = "block";
else div.style.display = "none";
 
}
 
// Event Listener für die Checkboxen
trackingCheckbox.addEventListener("change", function() {
toggleDivVisibility(trackingCheckbox, trackingDiv);
});
 
basketCheckbox.addEventListener("change", function() {
toggleDivVisibility(basketCheckbox, basketDiv);
});
 
checkoutCheckbox.addEventListener("change", function() {
toggleDivVisibility(checkoutCheckbox, checkoutDiv);
});
 
checkout2Checkbox.addEventListener("change", function() {
toggleDivVisibility(checkout2Checkbox, checkout2Div);
});
 
overviewCheckbox.addEventListener("change", function() {
toggleDivVisibility(overviewCheckbox, overviewDiv);
});
 
doneCheckbox.addEventListener("change", function() {
toggleDivVisibility(doneCheckbox, doneDiv);
});
 
// Überprüfen und Initialisieren des Anfangszustands der Checkboxen
toggleDivVisibility(trackingCheckbox, trackingDiv);
toggleDivVisibility(basketCheckbox, basketDiv);
toggleDivVisibility(checkoutCheckbox, checkoutDiv);
toggleDivVisibility(checkout2Checkbox, checkout2Div);
toggleDivVisibility(overviewCheckbox, overviewDiv);
toggleDivVisibility(doneCheckbox, doneDiv);
});
 
</script>
<div role="tabpanel" class="tab-pane" id="tab3">
<?php
 
echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_google_active', __('Google Analytics aktivieren', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_active'), array('help' => 'wpsg_mod_statistics_google_active'));
echo wpsg_drawForm_Input('wpsg_mod_statistics_google_tracking_code', __('Tracking-Code', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_tracking_code'), array('help' => 'wpsg_mod_statistics_google_tracking_code'));
<br/>
echo wpsg_drawForm_Input('wpsg_mod_statistics_google_domainname', __('Domainname', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_domainname'), array('help' => 'wpsg_mod_statistics_google_domainname'));
echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_google_anonymise_ip_address', __('IP Adresse anonymisieren', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_anonymise_ip_address'), array('help' => 'wpsg_mod_statistics_google_anonymise_ip_address'));
//echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_google_enable_first_touch_tracking', __('Enable First Touch Tracking', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_enable_first_touch_tracking'));
echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_google_track_page_load_time', __('Ladegeschwindigkeit der Website erfassen', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_track_page_load_time'), array('help' => 'wpsg_mod_statistics_google_track_page_load_time'));
<?php echo __('Ermöglicht die Integration von "Google Analytics 4".', 'wpsg'); ?>
<br/><br/>
 
echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_google_opt_out', __('Google Opt Out', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_opt_out'), array('help' => 'wpsg_mod_statistics_google_opt_out'));
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_google_active', __('Trackingcode einbinden', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_active'), array('help' => 'wpsg_mod_statistics_google_active')); ?>
<div id="wpsg_mod_statistik_google_tracking_layer" style="display:none;">
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_google_tracking_code', __('Google Tag ID', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_tracking_code'), array('help' => 'wpsg_mod_statistics_google_tracking_code')); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_google_tracking_debug_mode', __('Google Debug Mode', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_tracking_debug_mode'), array('help' => 'wpsg_mod_statistics_google_tracking_debug_mode')); ?>
</div>
<br />
 
echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_google_enhanced_tracking_code', __('Enhanced Tacking Code', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_enhanced_tracking_code'), array('help' => 'wpsg_mod_statistics_google_enhanced_tracking_code'));
?>
<h3><?php echo __('Zieleinrichtung in Google Analytics', 'wpsg'); ?></h3>
<?php
echo wpsg_drawForm_Textstart();
echo wpsg_drawForm_TextEnd(__('Ziel', 'wpsg'), array('noP' => true));
?>
<ul>
<li>
<?php
echo wpsg_drawForm_Input('wpsg_mod_statistics_google_done', __('Bestellabschluss', 'wpsg'), trim(str_replace(get_site_url(), '', $this->getURL(wpsg_ShopController::URL_BASKET).'?wpsg_done')).'=', array('text' => true));
?>
</li>
</ul>
<?php
echo wpsg_drawForm_Textstart();
echo wpsg_drawForm_TextEnd(__('Trichter (optional)', 'wpsg'), array('noP' => true));
?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_statistics_google_ecommerce', __('Käufe (eCommerce) tracken', 'wpsg'), $this->get_option('wpsg_mod_statistics_google_ecommerce'), array('help' => 'wpsg_mod_statistics_google_ecommerce')); ?>
 
<ul>
<li><?php echo wpsg_drawForm_Input('wpsg_mod_statistics_google_basket', __('Warenkorb', 'wpsg'), trim(str_replace(get_site_url(), '', $this->getURL(wpsg_ShopController::URL_BASKET))), array('text' => true)); ?></li>
<li><?php echo wpsg_drawForm_Input('wpsg_mod_statistics_google_checkout', __('Adresse', 'wpsg'), trim(str_replace(get_site_url(), '', $this->getURL(wpsg_ShopController::URL_CHECKOUT))).'=', array('text' => true)); ?></li>
<li><?php echo wpsg_drawForm_Input('wpsg_mod_statistics_google_checkout2', __('Versand', 'wpsg'), trim(str_replace(get_site_url(), '', $this->getURL(wpsg_ShopController::URL_CHECKOUT2))).'=', array('text' => true)); ?></li>
<li><?php echo wpsg_drawForm_Input('wpsg_mod_statistics_google_overview', __('Warenkorbübersicht', 'wpsg'), trim(str_replace(get_site_url(), '', $this->getURL(wpsg_ShopController::URL_OVERVIEW))).'=', array('text' => true)); ?></li>
</ul>
<div class="wpsg_clearer"></div>
 
</div>
<script>
 
<div role="tabpanel" id="tab4" class="tab-pane">
<?php
echo wpsg_drawForm_input('wpsg_mod_statistics_socialmedia_fb_px', __('Facebook Pixel', 'wpsg'), $this->get_option('wpsg_mod_statistics_socialmedia_fb_px'), array('help' => 'wpsg_mod_statistics_socialmedia_fb_px'));
?>
document.addEventListener("DOMContentLoaded", function() {
 
var GoogleTrackingCheckbox = document.getElementById('wpsg_mod_statistics_google_active');
var GoogleTrackingDiv = document.getElementById('wpsg_mod_statistik_google_tracking_layer');
 
function toggleGoogleDivVisibility(checkbox, div)
{
 
if (checkbox.checked) div.style.display = "block";
else div.style.display = "none";
 
}
 
// Event Listener für die Checkboxen
GoogleTrackingCheckbox.addEventListener("change", function() {
toggleGoogleDivVisibility(GoogleTrackingCheckbox, GoogleTrackingDiv);
});
 
// Überprüfen und Initialisieren des Anfangszustands der Checkboxen
toggleGoogleDivVisibility(GoogleTrackingCheckbox, GoogleTrackingDiv);
 
});
 
</script>
 
<!-- <div role="tabpanel" id="tab4" class="tab-pane">
<?php // echo wpsg_drawForm_input('wpsg_mod_statistics_socialmedia_fb_px', __('Facebook Pixel', 'wpsg'), $this->get_option('wpsg_mod_statistics_socialmedia_fb_px'), array('help' => 'wpsg_mod_statistics_socialmedia_fb_px')); ?>
<div class="wpsg_clearer"></div>
</div>
</div> -->
 
<div role="tabpanel" class="tab-pane" id="tab5">
<?php
echo wpsg_drawForm_Input('wpsg_mod_statistics_line_chart_width', __('Liniendiagramm (Breite in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_line_chart_width'), array('help' => 'wpsg_mod_statistics_line_chart_width'));
echo wpsg_drawForm_Input('wpsg_mod_statistics_line_chart_height', __('Liniendiagramm (Hoehe in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_line_chart_height'), array('help' => 'wpsg_mod_statistics_line_chart_height'));
echo wpsg_drawForm_Input('wpsg_mod_statistics_pie_chart_width', __('Kuchendiagramm (Breite in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_pie_chart_width'), array('help' => 'wpsg_mod_statistics_pie_chart_width'));
echo wpsg_drawForm_Input('wpsg_mod_statistics_pie_chart_height', __('Kuchendiagramm (Höhe in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_pie_chart_height'), array('help' => 'wpsg_mod_statistics_pie_chart_height'));
echo wpsg_drawForm_Input('wpsg_mod_statistics_bar_chart_width', __('Balkendiagramm (Breite in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_bar_chart_width'), array('help' => 'wpsg_mod_statistics_bar_chart_width'));
echo wpsg_drawForm_Input('wpsg_mod_statistics_bar_chart_height', __('Balkendiagramm (Höhe in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_bar_chart_height'), array('help' => 'wpsg_mod_statistics_bar_chart_height'));
echo wpsg_drawForm_Input('wpsg_mod_statistics_topproductcount', __('Anzeige Top-Produkte', 'wpsg'), $this->get_option('wpsg_mod_statistics_topproductcount'), array('help' => 'wpsg_mod_statistics_topproductcount'));
 
echo wpsg_drawForm_Input('wpsg_mod_statistics_productinterval', __('Intervall-Zeitraum für Produktstatistik', 'wpsg'), $this->get_option('wpsg_mod_statistics_productinterval'), array('help' => 'wpsg_mod_statistics_productinterval'));
?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_line_chart_width', __('Liniendiagramm (Breite in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_line_chart_width'), array('help' => 'wpsg_mod_statistics_line_chart_width')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_line_chart_height', __('Liniendiagramm (Hoehe in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_line_chart_height'), array('help' => 'wpsg_mod_statistics_line_chart_height')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_pie_chart_width', __('Kuchendiagramm (Breite in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_pie_chart_width'), array('help' => 'wpsg_mod_statistics_pie_chart_width')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_pie_chart_height', __('Kuchendiagramm (Höhe in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_pie_chart_height'), array('help' => 'wpsg_mod_statistics_pie_chart_height')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_bar_chart_width', __('Balkendiagramm (Breite in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_bar_chart_width'), array('help' => 'wpsg_mod_statistics_bar_chart_width')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_bar_chart_height', __('Balkendiagramm (Höhe in px)', 'wpsg'), $this->get_option('wpsg_mod_statistics_bar_chart_height'), array('help' => 'wpsg_mod_statistics_bar_chart_height')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_topproductcount', __('Anzeige Top-Produkte', 'wpsg'), $this->get_option('wpsg_mod_statistics_topproductcount'), array('help' => 'wpsg_mod_statistics_topproductcount')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_statistics_productinterval', __('Intervall-Zeitraum für Produktstatistik', 'wpsg'), $this->get_option('wpsg_mod_statistics_productinterval'), array('help' => 'wpsg_mod_statistics_productinterval')); ?>
<div class="wpsg_clearer"></div>
</div>
/mods/mod_orderupload/checkout_inner_prebutton.phtml
18,7 → 18,7
</div>
<div class="wpsg_inner">
 
<?php if ($this->view['wpsg_mod_orderupload']['uploadsum'] > 0) { ?>
<input class="wpsg_orderupload_checkout_button" type="file" name="wpsg_mod_orderupload_file" />
<?php } ?>
47,7 → 47,7
<?php /* Counter, wie viel MB noch übrig sind */?>
<label class="wpsg_fileweight">
<?php echo wpsg_translate(__('Es stehen Ihnen #1# Mb von #2# Mb für den Upload zur Verfügung', 'wpsg'), $this->view['wpsg_mod_orderupload']['uploadsum'],$this->view['wpsg_mod_orderupload']['maxweight']);?>
<?php echo wpsg_translate( __('Es stehen Ihnen #1# Mb von #2# Mb für den Upload zur Verfügung', 'wpsg'), $this->view['wpsg_mod_orderupload']['uploadsum'], $this->view['wpsg_mod_orderupload']['maxweight'] );?>
</label>
</div>
/mods/mod_orderupload/basket_after.phtml
11,7 → 11,7
<script>
 
function wpsg_mod_orderupload_upload(product_index, product_id) {
 
var files = document.getElementById('wpsg_mod_orderupload_' + product_index + '_file').files;
var formData = new FormData();
 
62,7 → 62,7
url: wpsg_ajax.ajaxurl,
data: {
action: 'wpsg_mod_orderupload_delete',
order_id: <?php echo $_SESSION['wpsg']['order_id'] ?>,
order_id: '<?php echo $_SESSION['wpsg']['order_id'] ?>',
product_index: product_index,
product_id: product_id,
file: file
/mods/mod_productgroups/show_2.phtml
50,13 → 50,21
if (intval($oProductgroup->__get('infopage')) > 0) echo \get_permalink(intval($oProductgroup->__get('infopage')));
else echo $page_url.'show='.$oProductgroup->getId();
 
?>" class="productgroup">
 
?>" class="productgroup <?php
echo (($oProductgroup->hasActiveDiscount())?'active_discount':'');
?>">
<div class="title"><?php echo $oProductgroup->getLabel(); ?></div>
 
<?php echo \wp_get_attachment_image($oProductgroup->getImage(), [462, 462], false, [
'class' => 'bg'
]); ?>
<?php if ($oProductgroup->hasActiveDiscount()) { ?>
<div class="badge_overlay"><div class="badge">SALE</div></div>
<?php } ?>
 
</a>
 
72,6 → 80,19
.wpsg_mod_productgroup_layout2.productgroups > .productgroup .title { z-index:2; border-radius:2px; transition:all 0.3s ease; position:absolute; left:1rem; top:1rem; background-color:#000000; color:#FFFFFF; padding:0 0.5rem; }
.wpsg_mod_productgroup_layout2.productgroups > .productgroup:hover .title { background-color:#FFFFFF; color:#000000; }
 
.wpsg_mod_productgroup_layout2 .productgroup.active_discount { position:relative; }
.wpsg_mod_productgroup_layout2 .productgroup.active_discount .badge_overlay { position:absolute; left:0; top:0; width:100%; height:100%; overflow:hidden; pointer-events:none; z-index:100; }
.wpsg_mod_productgroup_layout2 .productgroup.active_discount .badge_overlay .badge {
margin:0; color:white; padding:3px 10px; font-size:1rem; text-align:center;
background:#ed1b24; position:absolute; top:0; right:0; transform:translateX(30%) translateY(0%) rotate(45deg); transform-origin:top left;
}
.wpsg_mod_productgroup_layout2 .productgroup.active_discount .badge_overlay .badge:before {
content:''; position:absolute; top:0; right:100%; margin:0 -1px; width:100%; height:100%; background:inherit; min-width:55px;
}
.wpsg_mod_productgroup_layout2 .productgroup.active_discount .badge_overlay .badge:after {
content:''; position:absolute; top:0; left:100%; margin:0 -1px; width:100%; height:100%; background:inherit; min-width:55px;
}
@media screen and (min-width:768px) {
 
.wpsg_mod_productgroup_layout2.productgroups > .productgroup { padding-top:initial; grid-column:initial; }
/mods/mod_productgroups/add.phtml
69,6 → 69,7
 
<?php echo wpsg_drawForm_Select('template_file', __('Template', 'wpsg'), $this->view['templates'], $this->view['data']['template_file']); ?>
<?php echo wpsg_drawForm_Select('infopage', __('Info Seite', 'wpsg'), $this->view['pages'], $this->view['data']['infopage']); ?>
<?php echo wpsg_drawForm_Input('pos', __('Positionsnummer (Sortierung, aufsteigend)', 'wpsg'), $this->view['data']['pos']); ?>
 
<div class="form-group form-group-sm ">
<label class="col-sm-6 control-label"><?php echo __('Produktgruppenbild', 'wpsg'); ?></label>
/mods/mod_productgroups/index.phtml
83,6 → 83,7
<th class="wpsg_pic_col"></th>
<th class="wpsg_order col_name" data-order="nr"><?php echo __("Name", 'wpsg'); ?></th>
<th class="wpsg_order col_template" data-order="template"><?php echo __("Template", 'wpsg'); ?></th>
<th class="wpsg_order col_pos" data-order="template"><?php echo __("Position", 'wpsg'); ?></th>
<th class="wpsg_order col_products" data-order="products"><?php echo __("Produkte", 'wpsg'); ?></th>
</tr>
</thead>
123,6 → 124,9
<td class="col_template">
<?php echo (($pg->template_file == "0")?'Individuelle Produkttemplates':$pg->template_file); ?>
</td>
<td class="col_pos">
<?php echo $pg->pos; ?>
</td>
<td class="col_products">
<?php echo $pg->countProducts(); ?>
</td>
/mods/mod_productgroups/list.phtml
11,9 → 11,17
?>
 
<?php $c = 0; foreach ((array)$this->view['data'] as $k => $g) { ?>
<?php $c = 0; foreach ((array)$this->view['data'] as $k => $g) {
 
$oProductgroup = wpsg_productgroup::getInstance(intval($k));
?>
<?php //wpsg_debug($g) ?>
<div class="wpsg_pgruppen_list_row">
<div class="wpsg_pgruppen_list_row <?php
echo (($oProductgroup->hasActiveDiscount())?'active_discount':'');
 
?>">
<div class="wpsg_pgruppen_list_titel">
<a href="<?php echo WPSG_URL_WP ?>?page_id=<?php echo get_the_ID(); ?>&show=<?php echo $k ?>">
<h2><?php echo $g['pgruppe_name'] ?></h2>
35,17 → 43,19
 
<?php } else { ?>
 
<?php $image = array_rand($g['produkte'][$i]['bilder']); ?>
<?php if ($image >= 0 && is_int($image)) { ?>
<div class="wpsg_pgruppen_list_image">
 
<a href="<?php echo $g['produkte'][$i]['url'] ?>">
<?php echo wp_get_attachment_image($g['produkte'][$i]['bilder'][0], 'thumbnail', false, array()); ?>
</a>
 
</div>
<?php } ?>
 
<?php if (sizeof($g['produkte'][$i]['bilder']??[]) > 0) { ?>
<?php $image = array_rand($g['produkte'][$i]['bilder']); ?>
<?php if ($image >= 0 && is_int($image)) { ?>
<div class="wpsg_pgruppen_list_image">
<a href="<?php echo $g['produkte'][$i]['url'] ?>">
<?php echo wp_get_attachment_image($g['produkte'][$i]['bilder'][0], 'thumbnail', false, array()); ?>
</a>
</div>
<?php } ?>
<?php } ?>
<?php } ?>
 
<?php } ?>
/mods/mod_productvariants/admin_edit.phtml
37,7 → 37,7
<?php $colspan += 3; ?>
<?php if (wpsg_isSizedInt($this->view['product_id'])) { $colspan += 2; ?>
<th class="col_artnr"><?php echo __('Artikelnummer', 'wpsg'); ?></th>
<!--<th class="col_artnr"><?php echo __('Artikelnummer', 'wpsg'); ?></th>-->
<th class="col_price"><?php echo __('Preis', 'wpsg'); ?></th>
<?php if ($this->hasMod('wpsg_mod_stock')) { ?>
170,7 → 170,7
<td class="col_shortname"><span class="wpsg_editable" id="productvariation_shortname_<?php echo $vari['id']; ?>"><?php echo wpsg_hspc($vari['shortname']); ?></span></td>
<?php if (wpsg_isSizedInt($this->view['product_id'])) { ?>
<td class="col_artnr"><span class="wpsg_editable" id="productvariation_anr_<?php echo $vari['id']; ?>"><?php echo wpsg_hspc($vari['anr']); ?></span></td>
<!--<td class="col_artnr"><span class="wpsg_editable" id="productvariation_anr_<?php echo $vari['id']; ?>"><?php echo wpsg_hspc($vari['anr']); ?></span></td>-->
<td class="col_price"><span class="wpsg_editable" id="productvariation_price_<?php echo $vari['id']; ?>"><?php echo wpsg_hspc(wpsg_ff($vari['price'], $this->get_option('wpsg_currency'))); ?></span></td>
 
<?php if ($this->hasMod('wpsg_mod_stock')) { ?>
316,7 → 316,7
</div>
<?php } ?>
<?php if (wpsg_isSizedInt($this->view['product_id'])) { ?>
<?php /* if (wpsg_isSizedInt($this->view['product_id'])) { ?>
<div style="margin-top:0.25rem;">
<span>EAN:
<span title="<?php echo __('EAN der Produktvariation', 'wpsg'); ?>" class="wpsg_editable" id="productvariation_ean_<?php echo $vari['id']; ?>"><?php echo $vari['ean']??''; ?></span>
333,7 → 333,7
</script>
</div>
<?php } ?>
<?php } */ ?>
<script>
 
/mods/mod_productvariants/produkt_addedit_content.phtml
1,33 → 1,445
<?php
 
declare(strict_types=1);
/**
* Template für die Verwaltung der Produktvarianten innerhalb des Produktes
* @author: Daniel Schmitzer (daschmi@daschmi.de)
* @date: 20.04.23
* @time: 11:30
*/
 
namespace wpsg;
?>
<?php echo wpsg_drawForm_AdminboxStart(__('Produktvarianten', 'wpsg')); ?>
 
<?php if (wpsg_isSizedInt($this->view['data']['id'])) { ?>
<?php if (!wpsg_isSizedInt($this->view['data']['id'])) { ?>
<p><?php echo __('Bitte speichern Sie das Produkt zuerst.', 'wpsg'); ?></p>
<?php } else {
/** @var \wpsg_product $oProduct */
$oProduct = \wpsg_product::getInstance(intval($this->view['data']['id']));
?>
<?php echo wpsg_drawForm_AdminboxStart(__('Produktvarianten', 'wpsg')); ?>
<?php echo $this->view['wpsg_mod_productvariants']['html']; ?>
<a href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_productvariants"><span class="wpsg-glyphicon glyphicon glyphicon-wrench"></span><?php echo __('Zur Konfiguration der Produktvarianten', 'wpsg'); ?></a>
<?php echo wpsg_drawForm_AdminboxEnd(); ?>
 
<?php echo $this->view['wpsg_mod_productvariants']['html']; ?>
<div id="wpsg_mod_productvars_combination">
<div v-if="loading" class="loading_layer">
<img class="loading" src="<?php echo WPSG_URL; ?>views/gfx/ajax-loader.gif" alt="<?php echo __('Bitte warten ...', 'wpsg'); ?>" />
</div>
<div class="inner">
<div class="top_filter">
<div v-for="(variant, i) of arVariationen">
<select v-model="arFilter[i]">
<option :value="0">{{getVariantLabel(i)}} [ Alle ]</option>
<option :value="parseInt(variation)" v-for="(variation, j) of variant">{{getVariantLabel(i)}} [{{getVariationLabel(variation)}}]</option>
</select>
</div>
</div>
<div v-for="(combination, i) of arPossibleKeysFiltered" class="relative">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<h3 class="panel-title">
{{combination.label}}
<div class="right">
<a :href="combination.url" target="_blank" class="url" title="<?php echo __('Produktvariante im Frontend ansehen', 'wpsg'); ?>">
<span class="glyphicon glyphicon-new-window"></span>
</a>
<span v-if="combination.id > 0" class="glyphicon glyphicon-pencil" @click.prevent="edit(combination)"></span>
<span v-else class="glyphicon glyphicon-plus" @click.prevent="add(combination)"></span>
</div>
</h3>
</div>
<div class="panel-body" v-if="combination.loaded">
<div v-if="combination.loading" class="loading_layer">
<img class="loading" src="<?php echo WPSG_URL; ?>views/gfx/ajax-loader.gif" alt="<?php echo __('Bitte warten ...', 'wpsg'); ?>" />
</div>
<div class="form-group form-group-sm ">
<label class="col-sm-6 control-label" for="name">Produktname</label>
<div class="col-sm-6">
<div class="wpsg_field_wrap">
<input type="text"
@keydown.enter.prevent
class="form-control input-sm " autocomplete="off" placeholder="" v-model="combination.name" />
</div>
</div>
<div class="clearfix wpsg_clear"></div>
</div>
<div class="form-group form-group-sm ">
<label class="col-sm-6 control-label" for="detailname">Produktname (Detail)</label>
<div class="col-sm-6">
<div class="wpsg_field_wrap">
<input type="text"
@keydown.enter.prevent
class="form-control input-sm " autocomplete="off" placeholder="" v-model="combination.detailname" />
</div>
</div>
<div class="clearfix wpsg_clear"></div>
</div>
<div class="form-group form-group-sm ">
<label class="col-sm-6 control-label" for="anr">Artikelnummer</label>
<div class="col-sm-6">
<div class="wpsg_field_wrap">
<input type="text"
@keydown.enter.prevent
class="form-control input-sm" autocomplete="off" placeholder="" v-model="combination.anr" />
</div>
</div>
<div class="clearfix wpsg_clear"></div>
</div>
<!-- Productcodes -->
<template v-if="codeKeyNotSet(combination).length > 0">
<div class="form-group form-group-sm has-feedback">
<label class="col-sm-6 control-label" for="metaean">Code hinzufügen</label>
<div class="col-sm-6">
<div class="wpsg_field_wrap">
<select class="form-control input-sm" v-model="combination.add_code_key">
<option v-for="(code_key, i) of codeKeyNotSet(combination)" :value="code_key">{{combination.arProductCodes[code_key].label}}</option>
</select>
<a @click.stop.prevent="codeKeyAdd(combination)" href="#" class="glyphicon glyphicon glyphicon-plus form-control-feedback" aria-hidden="true" style="pointer-events: auto;"></a>
</div>
</div>
<div class="clearfix wpsg_clear"></div>
</div>
<hr />
</template>
<div class="code_wrap">
<template v-for="(code, i) of combination.arProductCodes">
<div class="form-group form-group-sm has-feedback" v-if="code.set === true">
<label class="col-sm-6 control-label" for="metaean">{{code.label}}</label>
<div class="col-sm-6">
<div class="wpsg_field_wrap">
<input type="text" class="form-control input-sm" v-model="code.code"
@keydown.enter.prevent
/>
<a @click.stop.prevent="codeKeyRemove(combination, code.code_key)" href="#" class="glyphicon glyphicon glyphicon-trash form-control-feedback" aria-hidden="true" style="pointer-events: auto;"></a>
</div>
</div>
<div class="clearfix wpsg_clear"></div>
</div>
</template>
</div>
<!--<pre>{{combination}}</pre>-->
<div class="mt-8 flex w-full justify-end">
<input type="submit" @click.prevent="save(combination)" class="button button-primary" value="speichern" />
</div>
</div>
</div>
</div>
</div>
</div>
<?php $GLOBALS['wpsg_vue_3.2.47_loaded'] = ($GLOBALS['wpsg_vue_3.2.47_loaded']??0) + 1; if ($GLOBALS['wpsg_vue_3.2.47_loaded'] <= 1) { ?>
<script src="<?php echo WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/views/js/vue-3.2.47.global.min.js'; ?>"></script>
<?php } ?>
<script>
(() => {
 
<script type="text/javascript">/* <![CDATA[ */
const ref = Vue.ref;
const computed = Vue.computed;
const onMounted = Vue.onMounted;
 
jQuery(document).ready(function() {
const app = Vue.createApp({
setup() {
 
wpsg_mod_productvariants_show(<?php echo $this->view['data']['id']; ?>);
} );
const product_id = ref(<?php echo $oProduct->getId(); ?>);
const loading = ref(true);
const arFilter = ref(undefined);
const arPossibleKeys = ref(undefined);
const arVariant = ref(undefined);
const arVariantLabel = ref(undefined);
const arVariationen = ref(undefined);
const arVariationLabel = ref(undefined);
 
/* ]]> */</script>
const arPossibleKeysFiltered = computed(() => {
 
<?php } else { ?>
let r = [];
 
<p><?php echo __('Bitte speichern Sie das Produkt zuerst.', 'wpsg'); ?></p>
<?php } ?>
if (!arPossibleKeys.value) return r;
 
<a href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_productvariants"><span class="wpsg-glyphicon glyphicon glyphicon-wrench"></span><?php echo __('Zur Konfiguration der Produktvarianten', 'wpsg'); ?></a>
for (let var_key of arPossibleKeys.value) {
 
<?php echo wpsg_drawForm_AdminboxEnd(); ?>
const arKey = var_key.var_key.split('|');
const typedKey = {};
 
for (let i of arKey) {
 
const [var_id, vari_id] = i.split(':');
 
typedKey[var_id] = parseInt(vari_id);
 
}
 
let set = true;
 
for (let f in arFilter.value) {
 
if (arFilter.value[f] !== 0 && typedKey[f] !== arFilter.value[f]) {
 
set = false;
break;
 
}
 
}
 
if (set) r.push(var_key);
 
}
 
return r;
 
});
 
const getVariantLabel = (var_id) => {
 
if (arVariantLabel.value[var_id.toString()] !== undefined) return arVariantLabel.value[var_id.toString()];
else '';
 
};
const getVariationLabel = (var_id) => {
 
if (arVariationLabel.value[var_id.toString()] !== undefined) return arVariationLabel.value[var_id.toString()];
else '';
 
};
const xhr = (action_do, data, cb_success) => {
 
const request = new XMLHttpRequest();
 
data.action_do = action_do;
 
request.open('POST', '<?php echo WPSG_URL_WP; ?>wp-admin/?page=wpsg-Admin&action=module&modul=wpsg_mod_productvariants&subaction=combination&noheader=1', true);
request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
request.onload = () => {
 
if (request.status >= 200 && request.status < 400) {
 
const response = JSON.parse(request.responseText);
 
cb_success(response);
 
} else {
 
console.error('Error: ' + request.statusText);
 
}
 
};
 
request.onerror = function () {
 
console.error('Error: ' + request.statusText);
 
};
 
request.send(JSON.stringify(data));
 
};
const save = (combination) => {
 
xhr('save', {
var_key: combination.var_key,
product_id: combination.product_id,
combination: combination
}, (response) => {
 
for (let i = 0; i < arPossibleKeys.value.length; i++) {
 
const var_key = arPossibleKeys.value[i];
 
if (var_key.var_key === response.combination.var_key) {
 
arPossibleKeys.value[i] = response.combination;
 
}
 
}
 
});
 
combination.loading = true;
 
}
const updateCombinationData = () => {
 
xhr('getCombination', {
product_id: product_id.value
}, (response) => {
 
arFilter.value = response.arFilter;
arPossibleKeys.value = response.arPossibleKeys;
arVariant.value = response.arVariant;
arVariantLabel.value = response.arVariantLabel;
arVariationen.value = response.arVariationen;
arVariationLabel.value = response.arVariationLabel;
 
loading.value = false;
 
});
 
};
const add = (combination) => {
 
combination.loaded = true;
combination.loading = true;
 
xhr('add', {
var_key: combination.var_key,
product_id: product_id.value
}, (response) => {
 
for (let i = 0; i < arPossibleKeys.value.length; i++) {
 
const var_key = arPossibleKeys.value[i];
 
if (var_key.var_key === response.combination.var_key) {
 
arPossibleKeys.value[i] = response.combination;
 
}
 
}
 
});
 
};
const edit = (combination) => {
 
combination.loaded = true;
combination.loading = true;
 
xhr('edit', {
var_key: combination.var_key,
product_id: product_id.value
}, (response) => {
 
for (let i = 0; i < arPossibleKeys.value.length; i++) {
 
const var_key = arPossibleKeys.value[i];
 
if (var_key.var_key === response.combination.var_key) {
 
arPossibleKeys.value[i] = response.combination;
 
}
 
}
 
});
 
};
const codeKeyNotSet = (combination) => {
let r = [];
for (let code_key in combination.arProductCodes) {
if (combination.arProductCodes[code_key].set !== true) r.push(code_key);
}
return r;
};
const codeKeyAdd = (combination) => {
 
const add_code_key = combination.add_code_key;
if (add_code_key !== undefined && codeKeyNotSet(combination).includes(add_code_key)) {
 
combination.arProductCodes[add_code_key].set = true;
combination.add_code_key = undefined;
 
}
};
const codeKeyRemove = (combination, code_key_remove) => {
combination.arProductCodes[code_key_remove].set = false;
}
 
onMounted(() => {
 
// updateCombinationData();
 
});
 
return {
arFilter,
arPossibleKeys,
arVariant,
arVariantLabel,
arVariationen,
arVariationLabel,
product_id,
loading,
getVariantLabel,
getVariationLabel,
codeKeyNotSet, codeKeyAdd, codeKeyRemove,
arPossibleKeysFiltered,
add,
edit,
save,
updateCombinationData
};
 
}
}).mount('#wpsg_mod_productvars_combination');
 
window.wpsg_mod_productvariants = app;
 
jQuery(document).ready(function () {
 
wpsg_mod_productvariants_show(<?php echo $this->view['data']['id']; ?>);
 
});
 
})();
</script>
<style>
#wpsg_mod_productvars_combination { width:100%; position:relative; }
#wpsg_mod_productvars_combination .top_filter { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); row-gap:1rem; column-gap:1rem; margin-bottom:2rem; }
#wpsg_mod_productvars_combination .top_filter select { width:100%; }
#wpsg_mod_productvars_combination .panel-title { display:flex; justify-content:space-between; align-items:center; }
#wpsg_mod_productvars_combination .panel-title a.url { color:inherit; margin-right:1rem; display:inline-block; }
#wpsg_mod_productvars_combination .panel-title .glyphicon { cursor:pointer; }
#wpsg_mod_productvars_combination .panel { margin-bottom:10px; }
#wpsg_mod_productvars_combination .loading_layer { z-index:10; position:absolute; left:0; top:0; width:100%; height:100%; background-color:rgba(255, 255, 255, 0.5); display:flex; justify-content:center; align-items:center; }
#wpsg_mod_productvars_combination > .inner { min-height:50px; width:100%; }
#wpsg_mod_productvars_combination .flex { display:flex; }
#wpsg_mod_productvars_combination .w-full { width:100%; }
#wpsg_mod_productvars_combination .justify-end { justify-content:flex-end; }
#wpsg_mod_productvars_combination .mt-4 { margin-top:1rem; }
#wpsg_mod_productvars_combination .relative { position:relative; }
#wpsg_mod_productvars_combination .mt-8 { margin-top:2rem; }
</style>
 
<?php }
/mods/mod_productvariants/admin_html.phtml
210,8 → 210,7
 
}
function wpsg_mod_productvariants_back()
{
function wpsg_mod_productvariants_back() {
 
var product_id = jQuery('#wpsg_mod_productvariants_product_id').val();
 
234,16 → 233,17
 
jQuery('#wpsg_mod_productvariants_dialog .modal-body').html(data);
 
if (window.wpsg_mod_productvariants) window.wpsg_mod_productvariants.updateCombinationData();
}
} );
} );
 
return false;
 
} // function wpsg_mod_productvariants_back()
 
function wpsg_mod_productvariants_show(product_id)
{
 
function wpsg_mod_productvariants_show(product_id) {
jQuery('#wpsg_mod_productvariants_dialog button').prop('disabled', true);
jQuery('#wpsg_mod_productvariants_dialog .modal-body').html('<img src="<?php echo WPSG_URL; ?>views/gfx/ajax-loader.gif" alt="<?php echo __('Bitte warten ...', 'wpsg'); ?>" />');
261,11 → 261,13
jQuery('#wpsg_mod_productvariants_dialog .modal-body').html(data);
jQuery('#wpsg_mod_productvariants_dialog button').prop('disabled', false);
 
if (window.wpsg_mod_productvariants) window.wpsg_mod_productvariants.updateCombinationData();
}
} );
} );
return false;
} // function wpsg_mod_productvariants_show()
}
 
</script>
/mods/mod_printshop/producttemplate.phtml
83,14 → 83,24
<?php if ($this->get_option('wpsg_showArticelnumber') == '1') { ?>
<div class="wpsg_artikelnummer">
<?php echo __('Artikelnummer', 'wpsg'); ?>: <span class="wpsg_anr"><?php echo wpsg_hspc($this->view['data']['anr']); ?></span><br />
<?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_ean'))) {?>
<?php echo __('EAN','wpsg');?>:<span class="wpsg_ean"><?php echo wpsg_hspc($this->view['data']['ean']); ?></span><br />
</div>
<?php } ?>
<?php $arProductCodes = $oProduct->getAllProductCodes(); ?>
<?php if (sizeof($arProductCodes) > 0) { ?>
<div class="product_code_wrap">
<?php foreach ($arProductCodes as $product_code) { ?>
<?php if ($product_code !== null) { ?>
<div class="product_code <?php echo $product_code['code_key']; ?>">
<span class="label"><?php echo $product_code['label']; ?></span>: <span class="code"><?php echo $product_code['code']; ?></span>
</div>
<?php } ?>
<?php } ?>
<?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_gtin'))) {?>
<?php echo __('GTIN','wpsg');?>:<span class="wpsg_gtin"><?php echo wpsg_hspc($this->view['data']['gtin']); ?></span><br />
<?php }?></div>
</div>
<?php } ?>
 
<?php /* Abfrage Preisanzeige nur für eingeloggte User aktiv und User eingeloggt START*/ ?>
<?php if ($this->view['oProduct']->canDisplayPrice()) { ?>
 
/mods/mod_produktartikel/produkt_edit_allgemein.phtml
8,10 → 8,3
?>
<?php echo wpsg_drawForm_Input('wpsg_mod_produktartikel[path]', __('URL Path Segment', 'wpsg'), wpsg_getStr($this->view['data']['post_name']), array('help' => 'wpsg_mod_produktartikel_url_path_seg')); ?>
 
<?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_ean'))) { ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_produktartikel[ean]', __('EAN', 'wpsg'), wpsg_getStr($this->view['data']['ean']), array('help' => 'wpsg_mod_produktartikel_ean')); ?>
<?php } ?>
 
<?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_gtin'))) { ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_produktartikel[gtin]', __('GTIN', 'wpsg'), wpsg_getStr($this->view['data']['gtin']), array('help' => 'wpsg_mod_produktartikel_gtin')); ?>
<?php } ?>
/mods/mod_produktartikel/settings_edit.phtml
21,11 → 21,6
 
<br />
 
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_produktartikel_ean', __('Darstellung der EAN aktivieren', 'wpsg'), $this->get_option('wpsg_mod_produktartikel_ean'), array('help' => 'wpsg_mod_produktartikel_ean')); ?>
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_produktartikel_gtin', __('Darstellung der GTIN aktivieren', 'wpsg'), $this->get_option('wpsg_mod_produktartikel_gtin'), array('help' => 'wpsg_mod_produktartikel_gtin')); ?>
 
<br />
 
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_produktartikel_cat', __('Kategorie in Produktübersicht (Backend) anzeigen', 'wpsg'), $this->get_option('wpsg_mod_produktartikel_cat'), array('help' => 'wpsg_mod_produktartikel_cat')); ?>
<div id="wpsg_mod_produktartikel_cat_1">
<?php echo wpsg_drawForm_Checkbox('wpsg_mod_produktartikel_cat_first_level', __('Nur erste Ebene', 'wpsg'), $this->get_option('wpsg_mod_produktartikel_cat_first_level'), array('help' => 'wpsg_mod_produktartikel_cat_first_level')); ?>
/order/product_table.phtml
49,7 → 49,12
<tbody>
 
<tr><td colspan="<?php echo $this->view['colspan'] + 1; ?>" style="line-height:2px; height:2px; background-color:#999999; padding:0px;"></td></tr>
<?php $i = 0; foreach ($arCalculation['product'] as $p) { $i ++; $product_price = $p[$display.'_single']; ?>
<?php $i = 0; foreach ($arCalculation['product'] as $p) { $i ++; $product_price = $p[$display.'_single'];
$oProduct = wpsg_product::getInstance(intval($p['product_id']));
if (($p['product_key']??'') !== '') $oProduct->setProductKey($p['product_key']);
?>
<tr class="wpsg_<?php echo (($i % 2 == 0)?'odd':'even'); ?>">
<td colspan="<?php echo $this->view['colspan'] + 1; ?>">
62,7 → 67,7
echo wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Produkt&action=edit&edit_id='.$p['product_id'], 'wpsg-product-edit-'.wpsg_getInt($p['product_id']));
?>" title="<?php echo __('Zum Produkt', 'wpsg'); ?>">
<?php echo wpsg_hspc($this->getProductName($p['product_id'])); ?>
<?php echo wpsg_hspc($oProduct->getProductName(false)); ?>
</a>
<a href="#" class="wpsg-glyphlink-td" title="<?php echo __('Produkt bearbeiten', 'wpsg'); ?>" onclick="return WPSG_BE_Product.editProduct(<?php echo $p['order_product_id']; ?>);"><span class="glyphicon glyphicon-pencil"></span></a>
<a href="#" class="wpsg-glyphlink-td" title="<?php echo __('Produkt löschen', 'wpsg'); ?>" onclick="return WPSG_BE_Product.removeProduct(<?php echo $p['order_product_id']; ?>);"><span class="glyphicon glyphicon-trash"></span></a>
/produkt/addedit_texte.phtml
42,6 → 42,7
?>
<?php echo wpsg_drawForm_AdminboxEnd(); ?>
 
<?php $this->callMods('product_addedit_before_longtext'); ?>
<?php echo wpsg_drawForm_AdminboxStart(__('Langtext', 'wpsg')); ?>
<?php
55,6 → 56,32
?>
<?php echo wpsg_drawForm_AdminboxEnd(); ?>
 
<?php echo wpsg_drawForm_AdminboxStart(__('Langtext (Zusatz)', 'wpsg')); ?>
<?php
// Damit die qTranslate Interne Editor Übersetzung nicht aufgerufen wird
//remove_filter('the_editor', 'qtrans_modifyRichEditor');
add_filter('tiny_mce_before_init', 'wpsg_formatTinyMCE');
add_filter('admin_head', 'wpsg_ShowTinyMCE');
wp_editor(@$this->view['data']['longdescription_addon'], 'longdescription_addon');
?>
<?php echo wpsg_drawForm_AdminboxEnd(); ?>
 
<?php echo wpsg_drawForm_AdminboxStart(__('Produktfeatures', 'wpsg')); ?>
<?php
// Damit die qTranslate Interne Editor Übersetzung nicht aufgerufen wird
//remove_filter('the_editor', 'qtrans_modifyRichEditor');
add_filter('tiny_mce_before_init', 'wpsg_formatTinyMCE');
add_filter('admin_head', 'wpsg_ShowTinyMCE');
wp_editor(@$this->view['data']['productfeatures'], 'productfeatures');
?>
<?php echo wpsg_drawForm_AdminboxEnd(); ?>
 
<?php echo wpsg_drawForm_AdminboxStart(__('Zusätzliche Informationen', 'wpsg')); ?>
<?php
/produkt/index.phtml
201,14 → 201,6
<th class="wpsg_order" data-order="cat"><?php echo __('Kategorie', 'wpsg'); ?></th>
<?php } ?>
<?php if ($this->hasMod('wpsg_mod_produktartikel') && $this->get_option('wpsg_mod_produktartikel_gtin') == '1') { ?>
<th class="wpsg_order" data-order="gtin-nr"><?php echo __("GTIN", "wpsg"); ?></th>
<?php } ?>
<?php if ($this->hasMod('wpsg_mod_produktartikel') && $this->get_option('wpsg_mod_produktartikel_ean') == '1') { ?>
<th class="wpsg_order" data-order="ean-nr"><?php echo __("EAN", "wpsg"); ?></th>
<?php } ?>
<?php if ($this->hasMod('wpsg_mod_deliverytime') && $this->get_option('wpsg_mod_deliverytime_productindex') == '1') { ?>
<th class="wpsg_order" data-order="deliverytime"><?php echo __("Lieferzeit", 'wpsg'); ?></th>
<?php } ?>
336,12 → 328,6
?>
</td>
<?php } ?>
<?php if ($this->hasMod('wpsg_mod_produktartikel') && $this->get_option('wpsg_mod_produktartikel_gtin') == '1') { ?>
<td><?php echo wpsg_hspc($d['gtin']); ?></td>
<?php } ?>
<?php if ($this->hasMod('wpsg_mod_produktartikel') && $this->get_option('wpsg_mod_produktartikel_ean') == '1') { ?>
<td><?php echo wpsg_hspc($d['ean']); ?></td>
<?php } ?>
<?php if ($this->hasMod('wpsg_mod_deliverytime') && $this->get_option('wpsg_mod_deliverytime_productindex') == '1') { ?>
<td>
<?php if ($this->callMod('wpsg_mod_deliverytime', 'isStoreProduct', array($oProduct->getProductKey()))) { ?>
/admin/shopdata.phtml
21,6 → 21,12
<form name="form1" method="post" enctype="multipart/form-data" action="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&amp;subaction=<?php echo $_REQUEST['subaction']; ?>&amp;noheader=1">
<?php \wp_nonce_field('wpsg-save-admin-shopdata'); ?>
 
<?php
$countrys = array();
$arCountry = wpsg_country::find();
foreach ($arCountry as $oCountry) $countrys[$oCountry->getId()] = $oCountry->getName();
?>
<div class="panel panel-default">
<div class="panel-heading clearfix">
29,6 → 35,7
<div class="panel-body">
<?php echo wpsg_drawForm_Input('wpsg_shopdata_name', __('Name des Shops / Firma', 'wpsg'), $this->get_option('wpsg_shopdata_name'), array('help' => 'wpsg_shopdata_name')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_owner', __('Inhaber des Shops', 'wpsg'), $this->get_option('wpsg_shopdata_owner'), array('help' => 'wpsg_shopdata_owner')); ?>
<br />
<?php echo wpsg_drawForm_Input('wpsg_shopdata_tel', __('Telefonnummer', 'wpsg'), $this->get_option('wpsg_shopdata_tel'), array('help' => 'wpsg_shopdata_tel')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_fax', __('Faxnummer', 'wpsg'), $this->get_option('wpsg_shopdata_fax'), array('help' => 'wpsg_shopdata_fax')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_email', __('E-Mail', 'wpsg'), $this->get_option('wpsg_shopdata_email'), array('help' => 'wpsg_shopdata_email')); ?>
42,16 → 49,10
<h3 class="panel-title"><?php echo __('Anschrift', 'wpsg'); ?></h3>
</div>
<div class="panel-body">
<?php echo wpsg_drawForm_Input('wpsg_shopdata_street', __('Straße', 'wpsg'), $this->get_option('wpsg_shopdata_street'), array('help' => 'wpsg_shopdata_street')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_zip', __('Postleitzahl', 'wpsg'), $this->get_option('wpsg_shopdata_zip'), array('help' => 'wpsg_shopdata_zip')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_city', __('Ort', 'wpsg'), $this->get_option('wpsg_shopdata_city'), array('help' => 'wpsg_shopdata_city')); ?>
<?php echo wpsg_drawForm_Select('wpsg_shopdata_eu', __('Hauptsitz des Shopbetreiber befindet sich:', 'wpsg'), Array(
wpsg_AdminController::SHOPDATA_EU_GERMANY => __('in Deutschland', 'wpsg'),
wpsg_AdminController::SHOPDATA_EU_EU => __('innerhalb der EU', 'wpsg'),
wpsg_AdminController::SHOPDATA_EU_WORLD => __('im europäischen Ausland', 'wpsg')
), $this->get_option('wpsg_shopdata_eu'), array('help' => 'wpsg_shopdata_eu')); ?>
 
<?php echo wpsg_drawForm_Input('wpsg_shopdata_city', __('Ort', 'wpsg'), $this->get_option('wpsg_shopdata_city'), array('help' => 'wpsg_shopdata_city')); ?>
<?php echo wpsg_drawForm_Select('wpsg_shopdata_country', __('Land', 'wpsg'), $countrys, $this->get_option('wpsg_shopdata_country'), array('help' => 'wpsg_shopdata_country')); ?>
</div>
</div>
60,16 → 61,17
<h3 class="panel-title"><?php echo __('Zweigstelle', 'wpsg'); ?></h3>
</div>
<div class="panel-body">
<?php echo wpsg_drawForm_Checkbox('wpsg_shopdata_2', __('Zweigstelle vorhanden', 'wpsg'), $this->get_option('wpsg_shopdata_2')); ?>
<div class="wpsg_shopdata_2_activ" style="display:none;">
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_street', __('Straße', 'wpsg'), $this->get_option('wpsg_shopdata_2_street'), array('help' => 'wpsg_shopdata_2_street')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_zip', __('Postleitzahl', 'wpsg'), $this->get_option('wpsg_shopdata_2_zip'), array('help' => 'wpsg_shopdata_2_zip')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_city', __('Ort', 'wpsg'), $this->get_option('wpsg_shopdata_2_city'), array('help' => 'wpsg_shopdata_2_city')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_country', __('Land', 'wpsg'), $this->get_option('wpsg_shopdata_2_country'), array('help' => 'wpsg_shopdata_2_country')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_tel', __('Telefon', 'wpsg'), $this->get_option('wpsg_shopdata_2_tel'), array('help' => 'wpsg_shopdata_2_tel')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_fax', __('Fax', 'wpsg'), $this->get_option('wpsg_shopdata_2_fax'), array('help' => 'wpsg_shopdata_2_fax')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_email', __('E-Mail', 'wpsg'), $this->get_option('wpsg_shopdata_2_email'), array('help' => 'wpsg_shopdata_2_email')); ?>
</div>
<?php echo wpsg_drawForm_Checkbox('wpsg_shopdata_2', __('Zweigstelle vorhanden', 'wpsg'), $this->get_option('wpsg_shopdata_2'), array('help' => 'wpsg_shopdata_2')); ?>
<div class="wpsg_shopdata_2_activ" style="display:none;">
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_street', __('Straße', 'wpsg'), $this->get_option('wpsg_shopdata_2_street')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_zip', __('Postleitzahl', 'wpsg'), $this->get_option('wpsg_shopdata_2_zip')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_city', __('Ort', 'wpsg'), $this->get_option('wpsg_shopdata_2_city')); ?>
<?php echo wpsg_drawForm_Select('wpsg_shopdata_2_country', __('Land', 'wpsg'), $countrys, $this->get_option('wpsg_shopdata_2_country')); ?>
<br />
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_tel', __('Telefon', 'wpsg'), $this->get_option('wpsg_shopdata_2_tel')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_fax', __('Fax', 'wpsg'), $this->get_option('wpsg_shopdata_2_fax')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_2_email', __('E-Mail', 'wpsg'), $this->get_option('wpsg_shopdata_2_email')); ?>
</div>
</div>
</div>
78,32 → 80,32
<h3 class="panel-title"><?php echo __('Bankdaten', 'wpsg'); ?></h3>
</div>
<div class="panel-body">
<?php echo wpsg_drawForm_Input('wpsg_shopdata_bank_name', __('Name der Bank', 'wpsg'), $this->get_option('wpsg_shopdata_bank_name'), array('help' => 'wpsg_shopdata_bank_name')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_bank_owner', __('Kontoinhaber', 'wpsg'), $this->get_option('wpsg_shopdata_bank_owner'), array('help' => 'wpsg_shopdata_bank_owner')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_bank_iban', __('IBAN Nummer', 'wpsg'), $this->get_option('wpsg_shopdata_bank_iban'), array('help' => 'wpsg_shopdata_bank_iban')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_bank_bic', __('BIC Nummer', 'wpsg'), $this->get_option('wpsg_shopdata_bank_bic'), array('help' => 'wpsg_shopdata_bank_bic')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_bank_qriban', __('QR-IBAN Nummer', 'wpsg'), $this->get_option('wpsg_shopdata_bank_qriban'), array('help' => 'wpsg_shopdata_bank_qriban')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_bank_besr', __('BESR-ID', 'wpsg'), $this->get_option('wpsg_shopdata_bank_besr'), array('help' => 'wpsg_shopdata_bank_besr')); ?>
</div>
</div>
<?php /* only Standort = Ausland */ ?>
<div class="wpsg_shopdata_eu wpsg_shopdata_eu_<?php echo wpsg_AdminController::SHOPDATA_EU_WORLD; ?>" style="display:<?php echo (($this->get_option('wpsg_shopdata_eu') == wpsg_AdminController::SHOPDATA_EU_WORLD || $this->get_option('wpsg_shopdata_eu') === false)?'block':'none'); ?>;">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<h3 class="panel-title"><?php echo __('EU-Vertreter', 'wpsg'); ?></h3>
</div>
<div class="panel-body">
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_name', __('Name des EU-Vertreters', 'wpsg'), $this->get_option('wpsg_shopdata_eu_name'), array('help' => 'wpsg_shopdata_eu_name')); ?>
<div class="panel panel-default">
<div class="panel-heading clearfix">
<h3 class="panel-title"><?php echo __('EU-Vertreter', 'wpsg'); ?></h3>
</div>
<div class="panel-body">
<?php echo wpsg_drawForm_Checkbox('wpsg_shopdata_3', __('EU-Vertreter vorhanden', 'wpsg'), $this->get_option('wpsg_shopdata_3'), array('help' => 'wpsg_shopdata_3')); ?>
<div class="wpsg_shopdata_3_activ" style="display:none;">
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_name', __('Name des EU-Vertreters', 'wpsg'), $this->get_option('wpsg_shopdata_eu_name')); ?>
<br />
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_street', __('Straße', 'wpsg'), $this->get_option('wpsg_shopdata_eu_street'), array('help' => 'wpsg_shopdata_eu_street')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_zip', __('Postleitzahl', 'wpsg'), $this->get_option('wpsg_shopdata_eu_zip'), array('help' => 'wpsg_shopdata_eu_zip')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_city', __('Stadt', 'wpsg'), $this->get_option('wpsg_shopdata_eu_city'), array('help' => 'wpsg_shopdata_eu_city')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_country', __('Land', 'wpsg'), $this->get_option('wpsg_shopdata_eu_country'), array('help' => 'wpsg_shopdata_eu_country')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_street', __('Straße', 'wpsg'), $this->get_option('wpsg_shopdata_eu_street')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_zip', __('Postleitzahl', 'wpsg'), $this->get_option('wpsg_shopdata_eu_zip')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_city', __('Stadt', 'wpsg'), $this->get_option('wpsg_shopdata_eu_city')); ?>
<?php echo wpsg_drawForm_Select('wpsg_shopdata_eu_country', __('Land', 'wpsg'), $countrys, $this->get_option('wpsg_shopdata_eu_country')); ?>
<br />
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_tel', __('Telefonnummer', 'wpsg'), $this->get_option('wpsg_shopdata_eu_tel'), array('help' => 'wpsg_shopdata_eu_tel')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_fax', __('Faxnummer', 'wpsg'), $this->get_option('wpsg_shopdata_eu_fax'), array('help' => 'wpsg_shopdata_eu_fax')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_email', __('E-Mail', 'wpsg'), $this->get_option('wpsg_shopdata_eu_email'), array('help' => 'wpsg_shopdata_eu_email')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_tel', __('Telefonnummer', 'wpsg'), $this->get_option('wpsg_shopdata_eu_tel')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_fax', __('Faxnummer', 'wpsg'), $this->get_option('wpsg_shopdata_eu_fax')); ?>
<?php echo wpsg_drawForm_Input('wpsg_shopdata_eu_email', __('E-Mail', 'wpsg'), $this->get_option('wpsg_shopdata_eu_email')); ?>
</div>
</div>
</div>
121,7 → 123,13
} ).change();
jQuery('#wpsg_shopdata_3').bind('change', function() {
 
if (jQuery(this).is(':checked')) jQuery('.wpsg_shopdata_3_activ').show();
else jQuery('.wpsg_shopdata_3_activ').hide();
 
} ).change();
 
} );
/* ]]> */</script>
/produkttemplates/standard2.phtml
10,6 → 10,7
// Damit keine Zubehörprodukte ausgegeben werden
//$this->noReleatedProducts = true;
 
/** @var wpsg_product $oProduct */
$oProduct = $this->view['oProduct'];
 
$var_info = [];
85,13 → 86,23
 
<?php if ($this->get_option('wpsg_showArticelnumber') == '1') { ?>
<div class="wpsg_artikelnummer">
<?php echo __('Artikelnummer', 'wpsg'); ?>: <span class="wpsg_anr"><?php echo wpsg_hspc($this->view['data']['anr']); ?></span><br />
<?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_ean'))) {?>
<?php echo __('EAN','wpsg');?>:<span class="wpsg_ean"><?php echo wpsg_hspc($this->view['data']['ean']); ?></span><br />
<?php echo __('Artikelnummer', 'wpsg'); ?>: <span class="wpsg_anr"><?php echo wpsg_hspc($oProduct->getNr()); ?></span><br />
</div>
<?php } ?>
<?php $arProductCodes = $oProduct->getAllProductCodes(); ?>
<?php if (sizeof($arProductCodes) > 0) { ?>
<div class="product_code_wrap">
<?php foreach ($arProductCodes as $product_code) { ?>
<?php if ($product_code !== null) { ?>
<div class="product_code <?php echo $product_code['code_key']; ?>">
<span class="label"><?php echo $product_code['label']; ?></span>: <span class="code"><?php echo $product_code['code']; ?></span>
</div>
<?php } ?>
<?php } ?>
<?php if (wpsg_isSizedInt($this->get_option('wpsg_mod_produktartikel_gtin'))) {?>
<?php echo __('GTIN','wpsg');?>:<span class="wpsg_gtin"><?php echo wpsg_hspc($this->view['data']['gtin']); ?></span><br />
<?php }?></div>
</div>
<?php } ?>
 
<?php /* Abfrage Preisanzeige nur für eingeloggte User aktiv und User eingeloggt START*/ ?>