Started adding Preordernotification
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("Dashboard")?>"><?=MFAPPNAME_SLUG?></a></li>
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("Preordercampaign")?>">Vorbestellung</a></li>
|
||||
<li class="breadcrumb-item active"><?=($campaign->id) ? "bearbeiten" : "Neu" ?></li>
|
||||
<li class="breadcrumb-item active"><?=($preorder->id) ? "bearbeiten" : "Neu" ?></li>
|
||||
</ol>
|
||||
</div>
|
||||
<h4 class="page-title">Vorbestellung</h4>
|
||||
@@ -161,22 +161,22 @@
|
||||
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="product_id">Vertriebspartner</label>
|
||||
<div class="col-lg-10">
|
||||
<select class="form-control" name="partner_id" id="partner_id">
|
||||
<option value=""></option>
|
||||
<?php if($preorder->id): ?>
|
||||
<?php foreach($partners as $partner): ?>
|
||||
<option value="<?=$partner->id?>" <?=($preorder->partner_id == $partner->id) ? "selected='selected'" : ""?>><?=$partner->getCompanyOrName()?></option>
|
||||
<?php endforeach; ?>
|
||||
<?php else: ?>
|
||||
<?php foreach($partners as $partner): ?>
|
||||
<option value="<?=$partner->id?>" <?=($me->address_id == $partner->id) ? "selected='selected'" : ""?>><?=$partner->getCompanyOrName()?></option>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-lg-2 col-form-label" for="product_id">Vertriebspartner</label>
|
||||
<div class="col-lg-10">
|
||||
<select class="form-control" name="partner_id" id="partner_id">
|
||||
<option value=""></option>
|
||||
<?php if($preorder->id): ?>
|
||||
<?php foreach($partners as $partner): ?>
|
||||
<option value="<?=$partner->id?>" <?=($preorder->partner_id == $partner->id) ? "selected='selected'" : ""?>><?=$partner->getCompanyOrName()?></option>
|
||||
<?php endforeach; ?>
|
||||
<?php else: ?>
|
||||
<?php foreach($partners as $partner): ?>
|
||||
<option value="<?=$partner->id?>" <?=($me->address_id == $partner->id) ? "selected='selected'" : ""?>><?=$partner->getCompanyOrName()?></option>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="preorder-form" class="mt-4">
|
||||
<h4>Vorbestellung & Produkt</h4>
|
||||
|
||||
@@ -122,6 +122,7 @@
|
||||
<td><?=date('d.m.Y',$camp->to)?></td>
|
||||
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
|
||||
<a href="<?=self::getUrl("Preordercampaign", "downloadAddonServices", ["preordercampaign_id" => $camp->id])?>" title="Bestellte Zusatzdienste exportieren"><i class="far fa-sunset"></i></a>
|
||||
<a href="<?=self::getUrl("Preordernotification", "Index", ["filter" => ["preordercampaign_id" => $camp->id]])?>" title="Email Aussendungen"><i class="far fa-envelope"></i></a>
|
||||
<?php if($me->is("Admin")): ?>
|
||||
<a href="<?=self::getUrl("Preordercampaign", "edit", ["id" => $camp->id])?>"><i class="far fa-edit" title="Vorbestellkampagne Bearbeiten"></i></a>
|
||||
<a href="<?=self::getUrl("Preordercampaign", "delete", ["id" => $camp->id])?>" class="text-danger" onclick="if(!confirm('Vorbestellkampagne wirklich löschen?')) return false;" title="Vorbestellkampagne Löschen"><i class="fas fa-trash"></i></a>
|
||||
|
||||
181
Layout/default/Preordernotification/Form.php
Normal file
181
Layout/default/Preordernotification/Form.php
Normal file
@@ -0,0 +1,181 @@
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/header.php"); ?>
|
||||
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="page-title-box">
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("Dashboard")?>"><?=MFAPPNAME_SLUG?></a></li>
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("Network")?>">Vorbestellung</a></li>
|
||||
<li class="breadcrumb-item">Emailaussendungen</li>
|
||||
<li class="breadcrumb-item active"><?=($notification->id) ? "bearbeiten" : "Neu" ?></li>
|
||||
</ol>
|
||||
</div>
|
||||
<h4 class="page-title"><?=($notification->id) ? "Emailaussendung bearbeiten" : "Neue Emailaussendung" ?></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
|
||||
<form class="form-horizontal" method="post" action="<?=self::getUrl("Preordernotification ", "save")?>">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
|
||||
<input type="hidden" name="id" value="<?=$notification->id?>" />
|
||||
<h4>Empfänger</h4>
|
||||
<p>Die Aussendung wird an die Kontaktemailadresse aller Bestellungen versendet. Wählen Sie folgende Konditionen aus, um die Empfänger zu beschränken:</p>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="name">Vorbestellkampagne</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="preordercampaign_id" id="preordercampaign_id" value="<?=$campaign->name?>" disabled="disabled">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="type">Bestelltyp</label>
|
||||
<div class="col-lg-10">
|
||||
<select class="form-control select2" name="type" id="type" multiple="multiple">
|
||||
<?php if(array_key_exists("interest", $campaign->types)): ?><option value="interest" <?=($notification->type == "interest") ? "selected='selected'" : ""?>>Interessensbekundung</option><?php endif; ?>
|
||||
<?php if(array_key_exists("provision", $campaign->types)): ?><option value="provision" <?=($notification->type == "provision") ? "selected='selected'" : ""?>>Vorsorgeanschluss</option><?php endif; ?>
|
||||
<?php if(array_key_exists("order", $campaign->types)): ?><option value="order" <?=($notification->type == "order") ? "selected='selected'" : ""?>>Vollanschluss</option><?php endif; ?>
|
||||
<?php if(array_key_exists("reorder", $campaign->types)): ?><option value="reorder" <?=($notification->type == "reorder") ? "selected='selected'" : ""?>>Nachbestellung</option><?php endif; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="connection_type">Anschlusstyp</label>
|
||||
<div class="col-lg-10">
|
||||
<select class="form-control select2" name="connection_type" id="connection_type" multiple="multiple">
|
||||
<option value="single-dwelling" <?=($notification->connection_type == "single-dwelling") ? "selected='selected'" : ""?>>Einfamilienhaus</option>
|
||||
<option value="multi-dwelling" <?=($notification->connection_type == "multi-dwelling") ? "selected='selected'" : ""?>>Mehrfamilienhaus</option>
|
||||
<option value="apartment-building" <?=($notification->connection_type == "apartment-building") ? "selected='selected'" : ""?>>Mehrparteienhaus</option>
|
||||
<option value="apartment" <?=($notification->connection_type == "apartment") ? "selected='selected'" : ""?>>Wohneinheit in Mehrparteienhaus</option>
|
||||
<option value="business" <?=($notification->connection_type == "business") ? "selected='selected'" : ""?>>Gewerbebetrieb</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!--div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="product_id">Vertriebspartner</label>
|
||||
<div class="col-lg-10">
|
||||
<select class="form-control select2" name="partner_id" id="partner_id" multiple="multiple">
|
||||
<option value=""></option>
|
||||
<?php foreach($partners as $partner): ?>
|
||||
<option value="<?=$partner->id?>" <?=($notification->id && $notification->partner_id == $partner->id) ? "selected='selected'" : ""?>><?=$partner->getCompanyOrName()?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div-->
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
<h4 class="mt-4">Emailinhalt</h4>
|
||||
<p>Im folgenden Editor können Sie ein HTML-Email verfassen. Verwenden Sie as Menü und die Werkzeugleiste um den Text zu formatieren:</p>
|
||||
<textarea id="body_html" name="body_html" placeholder="Bitte geben Sie hier den Emailinhalt ein..." rows="12" style="width: 100%; height: 600px; padding: 10px;"><?=$notification->body_html?></textarea>
|
||||
|
||||
|
||||
<h4 class="mt-4">Dateianhänge</h4>
|
||||
<div class="row mb-3">
|
||||
<div class="col-xl-5 input-grop ml-1">
|
||||
<label class="custom-file-label" for="attachment"><i class="far fa-file-import"></i> Datei(en) auswählen</label>
|
||||
<input type="file" name="attachment[]" id="attachment" class="custom-file-input" multiple="multiple" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="note">Interne Notiz</label>
|
||||
<div class="col-lg-10">
|
||||
<textarea id="note" class="form-control" name="note" rows="5"><?=$pop->note?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2"></label>
|
||||
<div class="col-lg-10">
|
||||
<button type="submit" class="btn btn-primary">Speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="<?=self::getResourcePath()?>plugins/tinymce/tinymce.min.js"></script>
|
||||
<script type="text/javascript" src="<?=self::getResourcePath()?>plugins/bs-custom-file-input/bs-custom-file-input.min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
tinymce.init({
|
||||
//font_formats: "Arial=arial,sans-serif;",
|
||||
selector: '#body_html',
|
||||
language: 'de',
|
||||
skin: "tinymce-5",
|
||||
plugins: 'link autolink lists table',
|
||||
paste_block_drop: true,
|
||||
paste_as_text: true,
|
||||
paste_data_images: false,
|
||||
promotion: false,
|
||||
toolbar: 'undo redo | styles | bold italic underline strikethrough | fontfamily fontsize fontcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent | table | link unlink',
|
||||
content_css: "<?=self::getResourcePath()?>/assets/css/tinymce.css",
|
||||
font_family_formats: "Arial=arial,sans-serif; Courier New=courier new,courier,monospace; Georgia=georgia,palatino,serif; Helvetica=helvetica,sans-serif; Lucida Sans=lucida sans unicode,sans-serif; Tahoma=tahoma,arial,helvetica,sans-serif; Times New Roman=times new roman,times,serif"
|
||||
|
||||
});
|
||||
|
||||
bsCustomFileInput.init();
|
||||
|
||||
/*$('#body_html').summernote({
|
||||
height: 400,
|
||||
lang: "de-DE",
|
||||
placeholder: "Bitte geben Sie hier den Emailtext ein...",
|
||||
toolbar: [
|
||||
['style', ['style']],
|
||||
['font', ['bold', 'underline', 'clear', 'fontname']],
|
||||
['fontsize', ['fontsize', 'fontsizeunit']],
|
||||
['color', ['color']],
|
||||
['para', ['ul', 'ol', 'paragraph', 'height']],
|
||||
['table', ['table']],
|
||||
['insert', ['link']],
|
||||
['view', ['fullscreen', 'codeview', 'help']]
|
||||
],
|
||||
fontNames: ["Arial", "Arial Black", "Courier New", "Georgia", "Helvetica", "Lucida Sans Unicode", "Tahoma", "Times New Roman"],
|
||||
|
||||
addDefaultFonts: false
|
||||
|
||||
});
|
||||
//$('#body_html').summernote('fontSizeUnit', "pt");
|
||||
//$('#body_html').summernote("fontSize", 12);*/
|
||||
});
|
||||
|
||||
$(".select2").select2({
|
||||
allowClear: true,
|
||||
placeholder: ""
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>
|
||||
110
Layout/default/Preordernotification/Index.php
Normal file
110
Layout/default/Preordernotification/Index.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/header.php"); ?>
|
||||
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="page-title-box">
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("Dashboard")?>"><?=MFAPPNAME_SLUG?></a></li>
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("Preordercampaign")?>">Vorbestellkampagnen</a></li>
|
||||
<li class="breadcrumb-item active">Emailaussendungen</li>
|
||||
</ol>
|
||||
</div>
|
||||
<h4 class="page-title">Emailaussendungen</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mb-3">
|
||||
<h4 class="header-title mb-3">Filter</h4>
|
||||
|
||||
<form method="get" action="<?=self::getUrl("Preordercampaign")?>">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-2">
|
||||
<label class="form-label" for="filter_preordercampaign_id">Kampagne</label>
|
||||
<select name="filter[preordercampaign_id]" id="filter_preordercampaign_id" class="form-control">
|
||||
<option value="">Alle</option>
|
||||
<?php foreach($my_campaigns as $c): ?>
|
||||
<option value="<?=$c->id?>" <?=(isset($campaign) && $c->id == $campaign->id) ? "selected='selected'" : ""?>><?=$c->name?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-1">
|
||||
<label class="form-label" for="filter_betreff">Betreff</label>
|
||||
<input type="text" class="form-control" name="filter[betreff]" id="filter_betreff" value="<?=$filter['betreff']?>" />
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<label class="form-label" for="filter_sent_date">Status</label>
|
||||
<select name="filter[sent_date]" id="filter_sent_date" class="form-control">
|
||||
<option value="open">Offen</option>
|
||||
<option value="sent">bereits versendet</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row mt-2">
|
||||
<div class="col">
|
||||
<button type="submit" class="btn btn-primary">Filter anwenden</button>
|
||||
<a class="btn btn-secondary" href="<?=self::getUrl("Preordercampaign")?>">Filter zurücksetzen</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mb-3">
|
||||
<div class="float-left">
|
||||
<h4 class="header-title">Liste offener Aussendungen</h4>
|
||||
</div>
|
||||
<div class="float-right">
|
||||
<?php if($filter['preordercampaign_id']): ?>
|
||||
<a class="btn btn-primary mb-2" href="<?=self::getUrl("Preordernotification", "add", ['preordercampaign_id' => $filter['preordercampaign_id']])?>"><i class="fas fa-plus"></i> Neue Aussendung erstellen</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<table class="table table-striped table-hover">
|
||||
<tr>
|
||||
<th>Kampagne</th>
|
||||
<th>Betreff</th>
|
||||
<th>Anzahl Empfänger</th>
|
||||
<th>Geplanter Versand</th>
|
||||
<th>Versendet</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<?php foreach($notifications as $notification): ?>
|
||||
<tr>
|
||||
<td><?=$notification->preordercampaign->name?></td>
|
||||
<td><?=$notification->subject?></td>
|
||||
<td><?=($notification->recipient_count) ? "ca. ".$notification->recipient_count : ""?></td>
|
||||
<td><?=($notification->tosend_date) ? date('d.m.Y', $notification->tosend_date) : "" ?></td>
|
||||
<td><?=($notification->sent_date) ? date('d.m.Y', $notification->sent_date) : ""?></td>
|
||||
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
|
||||
<?php if(!$notification->sent_date): ?>
|
||||
<a href="<?=self::getUrl("Preordercampaign", "edit", ["id" => $camp->id])?>"><i class="far fa-edit" title="Aussendung bearbeiten"></i></a>
|
||||
<a href="<?=self::getUrl("Preordercampaign", "delete", ["id" => $camp->id])?>" class="text-danger" onclick="if(!confirm('Aussendung wirklich löschen?')) return false;" title="Vorbestellkampagne Löschen"><i class="fas fa-trash"></i></a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
class Preordernotification extends mfBaseModel {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
<?php
|
||||
|
||||
class PreordernotificationController extends mfBaseController {
|
||||
|
||||
protected function init() {
|
||||
$this->needlogin=true;
|
||||
$me = new User();
|
||||
$me->loadMe();
|
||||
$this->me = $me;
|
||||
$this->layout()->set("me",$me);
|
||||
|
||||
if(!$me->is(["Admin", "netowner", "salespartner"])) {
|
||||
$this->redirect("Dashboard");
|
||||
}
|
||||
}
|
||||
|
||||
protected function indexAction() {
|
||||
$this->layout()->setTemplate("Preordernotification/Index");
|
||||
|
||||
$rfilter = $this->request->filter;
|
||||
iF(!is_array($rfilter)) {
|
||||
$rfilter = [];
|
||||
}
|
||||
|
||||
$this->layout->set("filter", $rfilter);
|
||||
|
||||
$where = "";
|
||||
$filter = $this->getPreparedFilter($rfilter);
|
||||
|
||||
// pagination defaults
|
||||
$pagination = [];
|
||||
$pagination['start'] = 0;
|
||||
$pagination['count'] = 25;
|
||||
$pagination['maxItems'] = 0;
|
||||
|
||||
if(is_numeric($this->request->s)) {
|
||||
$pagination['start'] = intval($this->request->s);
|
||||
}
|
||||
|
||||
$preorder_filter = $filter;
|
||||
$my_campaigns = [];
|
||||
$my_campaign_ids = [];
|
||||
|
||||
if($this->me->is("Admin")) {
|
||||
if($filter['preordercampaign_id']) {
|
||||
$this->layout()->set("campaign", new Preordercampaign($filter['preordercampaign_id']));
|
||||
} else {
|
||||
$my_campaigns = PreordercampaignModel::getAll();
|
||||
}
|
||||
$this->layout()->set("my_campaigns", PreordercampaignModel::getAll());
|
||||
} else {
|
||||
$my_networks = $this->me->myNetworks(["netowner", "salespartner"]);
|
||||
//var_dump($my_networks);exit;
|
||||
|
||||
foreach($my_networks as $network) {
|
||||
foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) {
|
||||
$my_campaigns[] = $campaign;
|
||||
if(!in_array($campaign->id, $my_campaign_ids)) $my_campaign_ids[] = $campaign->id;
|
||||
}
|
||||
}
|
||||
//var_dump($my_network_ids,$my_campaign_ids);exit;
|
||||
$this->layout()->set("my_campaigns", $my_campaigns);
|
||||
|
||||
if($filter['preordercampaign_id'] && in_array($filter['preordercampaign_id'], $my_campaign_ids)) {
|
||||
$campaign_id = $filter['preordercampaign_id'];
|
||||
if(is_numeric($campaign_id) && $campaign_id > 0) {
|
||||
$campaign = new Preordercampaign($campaign_id);
|
||||
$this->layout()->set("campaign", $campaign);
|
||||
}
|
||||
} else {
|
||||
$filter['preordercampaign_id'] = $my_campaign_ids;
|
||||
}
|
||||
}
|
||||
|
||||
$pagination['maxItems'] = PreordernotificationModel::count($filter);
|
||||
$notifications = PreordernotificationModel::search($filter, $pagination);
|
||||
|
||||
$this->layout()->set("pagination", $pagination);
|
||||
$this->layout()->set("preorders", $notifications);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private function getPreparedFilter($filter) {
|
||||
$new_filter = [];
|
||||
|
||||
if(is_array($filter) && count($filter)) {
|
||||
foreach($filter as $name => $value) {
|
||||
$new_filter[$name] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $new_filter;
|
||||
}
|
||||
|
||||
protected function addAction() {
|
||||
$this->layout()->setTemplate("Preordernotification/Form");
|
||||
if(!$this->request->preordercampaign_id) {
|
||||
$this->layout()->setFlash("Keine Kampagne ausgewählt!", "warn");
|
||||
}
|
||||
|
||||
$campaign_id = $this->request->preordercampaign_id;
|
||||
$campaign = new Preordercampaign($campaign_id);
|
||||
$this->layout()->set("campaign", $campaign);
|
||||
|
||||
$partners = AddressModel::search(['addresstype' => ['netowner','salespartner']]);
|
||||
$this->layout()->set("partners", $partners);
|
||||
|
||||
}
|
||||
|
||||
protected function editAction() {
|
||||
$id = $this->request->id;
|
||||
if(!is_numeric($id) || $id < 1) {
|
||||
$this->layout()->setFlash("Vorbestellung nicht gefunden", "error");
|
||||
$this->redirect("Preordercampaign");
|
||||
}
|
||||
|
||||
$preorder = new Preorder($id);
|
||||
if(!$preorder->id) {
|
||||
$this->layout()->setFlash("Vorbestellung nicht gefunden", "error");
|
||||
$this->redirect("Preordercampaign");
|
||||
}
|
||||
|
||||
$this->request->set("preordercampaign_id", $preorder->preordercampaign_id); // needed in addAction()
|
||||
$this->layout()->set("preorder", $preorder);
|
||||
|
||||
//var_dump($preorder->building->street);exit;
|
||||
|
||||
return $this->addAction();
|
||||
|
||||
}
|
||||
}
|
||||
226
application/Preordernotification/PreordernotificationModel.php
Normal file
226
application/Preordernotification/PreordernotificationModel.php
Normal file
@@ -0,0 +1,226 @@
|
||||
<?php
|
||||
|
||||
class PreordernotificationModel {
|
||||
public $name = null;
|
||||
public $subject;
|
||||
public $body_text;
|
||||
public $body_html;
|
||||
public $tosend_date;
|
||||
public $sent_date;
|
||||
public $preordercampaign_id;
|
||||
|
||||
public $note = null;
|
||||
public $create_by = null;
|
||||
public $edit_by = null;
|
||||
public $create = null;
|
||||
public $edit = null;
|
||||
|
||||
|
||||
public static function create(Array $data) {
|
||||
$model = new Preordernotification();
|
||||
|
||||
foreach($data as $field => $value) {
|
||||
if(property_exists(get_called_class(), $field)) {
|
||||
$model ->$field = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$me = new User();
|
||||
$me->loadMe();
|
||||
|
||||
if($model->create_by === null) {
|
||||
$model->create_by = $me->id;
|
||||
}
|
||||
if($model->edit_by === null) {
|
||||
$model->edit_by = $me->id;
|
||||
}
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
public static function getOne($id) {
|
||||
if(!is_numeric($id) || !$id) {
|
||||
throw new Exception("Invalid number", 400);
|
||||
}
|
||||
$item = [];
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$res = $db->select("Preordernotification", "*", "id=$id LIMIT 1");
|
||||
if($db->num_rows($res)) {
|
||||
$data = $db->fetch_object($res);
|
||||
$item = new Preordernotification($data);
|
||||
}
|
||||
return $item;
|
||||
}
|
||||
|
||||
public static function getAll() {
|
||||
$items = [];
|
||||
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$res = $db->select("Preordernotification", "*", "1 = 1 ORDER BY name,producttech_id");
|
||||
if($db->num_rows($res)) {
|
||||
while($data = $db->fetch_object($res)) {
|
||||
$items[] = new Preordernotification($data);
|
||||
}
|
||||
}
|
||||
return $items;
|
||||
|
||||
}
|
||||
|
||||
public static function getFirst() {
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
$res = $db->select("Preordernotification", "*", "$where ORDER BY producttech_id, name LIMIT 1");
|
||||
if($db->num_rows($res)) {
|
||||
$data = $db->fetch_object($res);
|
||||
$item = new Preordernotification($data);
|
||||
if($item->id) {
|
||||
return $item;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static function count($filter) {
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
$sql = "SELECT COUNT(*) as cnt FROM `Preordernotification`
|
||||
WHERE $where
|
||||
";
|
||||
|
||||
mfLoghandler::singleton()->debug($sql);
|
||||
$res = $db->query($sql);
|
||||
if($db->num_rows($res)) {
|
||||
$data = $db->fetch_object($res);
|
||||
return $data->cnt;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static function search($filter, $limit=false) {
|
||||
$items = [];
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
|
||||
$sql = "SELECT Preordernotification.* FROM `Preordernotification`
|
||||
WHERE $where
|
||||
ORDER BY preordercampaign_id, `create`
|
||||
";
|
||||
|
||||
mfLoghandler::singleton()->debug($sql);
|
||||
if(is_array($limit) && count($limit)) {
|
||||
if(is_numeric($limit['start']) && is_numeric($limit['count'])) {
|
||||
$sql .= " LIMIT ".$limit['start'].", ".$limit['count'];
|
||||
} elseif(is_numeric($count)) {
|
||||
$sql .= " LIMIT ".$limit['count'];
|
||||
}
|
||||
}
|
||||
|
||||
$res = $db->query($sql);
|
||||
if($db->num_rows($res)) {
|
||||
while($data = $db->fetch_object($res)) {
|
||||
$items[] = new Preordernotification($data);
|
||||
}
|
||||
}
|
||||
return $items;
|
||||
}
|
||||
|
||||
private static function getSqlFilter($filter) {
|
||||
$where = "1=1 ";
|
||||
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
//var_dump($filter);exit;
|
||||
if(array_key_exists("id", $filter)) {
|
||||
$id = $db->escape($filter['id']);
|
||||
if($id) {
|
||||
$where .= " AND Preordernotification.`id` = '$id'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("productgroup_id", $filter)) {
|
||||
$productgroup_id = $filter['productgroup_id'];
|
||||
if(is_numeric($productgroup_id)) {
|
||||
$where .= " AND productgroup_id=$productgroup_id";
|
||||
} elseif(is_array($productgroup_id) && count($productgroup_id)) {
|
||||
$where .= " AND Preordernotification.productgroup_id IN (". implode(",", $productgroup_id).")";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(array_key_exists("producttech_id", $filter)) {
|
||||
$producttech_id = $filter['producttech_id'];
|
||||
if(is_numeric($producttech_id)) {
|
||||
$where .= " AND Preordernotification.producttech_id=$producttech_id";
|
||||
} elseif(is_array($producttech_id) && count($producttech_id)) {
|
||||
$where .= " AND Preordernotification.producttech_id IN (". implode(",", $producttech_id).")";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("sla_id", $filter)) {
|
||||
$sla_id = $filter['sla_id'];
|
||||
if(is_numeric($sla_id)) {
|
||||
$where .= " AND sla_id=$sla_id";
|
||||
} elseif(is_array($sla_id) && count($sla_id)) {
|
||||
$where .= " AND Preordernotification.sla_id IN (". implode(",", $sla_id).")";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("name", $filter)) {
|
||||
$name = $db->escape($filter['name']);
|
||||
if($name) {
|
||||
$where .= " AND Preordernotification.`name` like '$name'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("name%", $filter)) {
|
||||
$name = $db->escape($filter['name%']);
|
||||
if($name) {
|
||||
$where .= " AND Preordernotification.`name` like '%$name%'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("external", $filter)) {
|
||||
$external = $filter['external'];
|
||||
if(is_numeric($external)) {
|
||||
if($external) {
|
||||
$where .= " AND Preordernotification.external=1";
|
||||
} else {
|
||||
$where .= " AND Preordernotification.external=0";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(array_key_exists("customer_type", $filter)) {
|
||||
$customer_type = $db->escape($filter['customer_type']);
|
||||
if($customer_type) {
|
||||
$where .= " AND Preordernotificationtech.`customer_type` = '$customer_type'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("attributename", $filter)) {
|
||||
$attributename = $db->escape($filter['attributename']);
|
||||
if($attributename) {
|
||||
$where .= " AND PreordernotificationtechAttribute.name = '$attributename'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("attributevalue", $filter)) {
|
||||
$attributevalue = $db->escape($filter['attributevalue']);
|
||||
if($attributevalue) {
|
||||
$where .= " AND PreordernotificationAttribute.value = '$attributevalue'";
|
||||
}
|
||||
}
|
||||
|
||||
//var_dump($filter, $where);exit;
|
||||
return $where;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -88,6 +88,16 @@ h1, h2, h3, h4, h5, h6 {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
/* tinymce */
|
||||
.tox-editor-header,
|
||||
.tox-menubar,
|
||||
.tox-toolbar-overlord,
|
||||
.tox-toolbar__primary
|
||||
{
|
||||
background: none;
|
||||
background-color: #eee !important;
|
||||
}
|
||||
|
||||
|
||||
/**************************
|
||||
* custom styles
|
||||
|
||||
4
public/assets/css/tinymce.css
Normal file
4
public/assets/css/tinymce.css
Normal file
@@ -0,0 +1,4 @@
|
||||
body {
|
||||
font-family: Arial;
|
||||
font-size: 12pt;
|
||||
}
|
||||
1
public/plugins/tinymce/icons/default/icons.min.js
vendored
Normal file
1
public/plugins/tinymce/icons/default/icons.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
3
public/plugins/tinymce/langs/README.md
Normal file
3
public/plugins/tinymce/langs/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
This is where language files should be placed.
|
||||
|
||||
Please DO NOT translate these directly use this service: https://www.transifex.com/projects/p/tinymce/
|
||||
412
public/plugins/tinymce/langs/de.js
Normal file
412
public/plugins/tinymce/langs/de.js
Normal file
@@ -0,0 +1,412 @@
|
||||
/*!
|
||||
* TinyMCE Language Pack
|
||||
*
|
||||
* Copyright (c) 2022 Ephox Corporation DBA Tiny Technologies, Inc.
|
||||
* Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/
|
||||
*/
|
||||
tinymce.addI18n('de', {
|
||||
"Redo": "Wiederholen",
|
||||
"Undo": "Rückgängig machen",
|
||||
"Cut": "Ausschneiden",
|
||||
"Copy": "Kopieren",
|
||||
"Paste": "Einfügen",
|
||||
"Select all": "Alles auswählen",
|
||||
"New document": "Neues Dokument",
|
||||
"Ok": "Ok",
|
||||
"Cancel": "Abbrechen",
|
||||
"Visual aids": "Visuelle Hilfen",
|
||||
"Bold": "Fett",
|
||||
"Italic": "Kursiv",
|
||||
"Underline": "Unterstrichen",
|
||||
"Strikethrough": "Durchgestrichen",
|
||||
"Superscript": "Hochgestellt",
|
||||
"Subscript": "Tiefgestellt",
|
||||
"Clear formatting": "Formatierung entfernen",
|
||||
"Remove": "Entfernen",
|
||||
"Align left": "Linksbündig ausrichten",
|
||||
"Align center": "Zentrieren",
|
||||
"Align right": "Rechtsbündig ausrichten",
|
||||
"No alignment": "Keine Ausrichtung",
|
||||
"Justify": "Blocksatz",
|
||||
"Bullet list": "Aufzählung",
|
||||
"Numbered list": "Nummerierte Liste",
|
||||
"Decrease indent": "Einzug verkleinern",
|
||||
"Increase indent": "Einzug vergrößern",
|
||||
"Close": "Schließen",
|
||||
"Formats": "Formate",
|
||||
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.": "Ihr Browser unterstützt leider keinen direkten Zugriff auf die Zwischenablage. Bitte benutzen Sie die Tastenkombinationen Strg+X/C/V.",
|
||||
"Headings": "Überschriften",
|
||||
"Heading 1": "Überschrift 1",
|
||||
"Heading 2": "Überschrift 2",
|
||||
"Heading 3": "Überschrift 3",
|
||||
"Heading 4": "Überschrift 4",
|
||||
"Heading 5": "Überschrift 5",
|
||||
"Heading 6": "Überschrift 6",
|
||||
"Preformatted": "Vorformatiert",
|
||||
"Div": "Div",
|
||||
"Pre": "Pre",
|
||||
"Code": "Code",
|
||||
"Paragraph": "Absatz",
|
||||
"Blockquote": "Blockzitat",
|
||||
"Inline": "Zeichenformate",
|
||||
"Blocks": "Blöcke",
|
||||
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Einfügen ist nun im unformatierten Textmodus. Inhalte werden ab jetzt als unformatierter Text eingefügt, bis Sie diese Einstellung wieder deaktivieren.",
|
||||
"Fonts": "Schriftarten",
|
||||
"Font sizes": "Schriftgrößen",
|
||||
"Class": "Klasse",
|
||||
"Browse for an image": "Bild...",
|
||||
"OR": "ODER",
|
||||
"Drop an image here": "Bild hier ablegen",
|
||||
"Upload": "Hochladen",
|
||||
"Uploading image": "Bild wird hochgeladen",
|
||||
"Block": "Blocksatz",
|
||||
"Align": "Ausrichtung",
|
||||
"Default": "Standard",
|
||||
"Circle": "Kreis",
|
||||
"Disc": "Scheibe",
|
||||
"Square": "Rechteck",
|
||||
"Lower Alpha": "Lateinisches Alphabet in Kleinbuchstaben",
|
||||
"Lower Greek": "Griechische Kleinbuchstaben",
|
||||
"Lower Roman": "Kleiner römischer Buchstabe",
|
||||
"Upper Alpha": "Lateinisches Alphabet in Großbuchstaben",
|
||||
"Upper Roman": "Großer römischer Buchstabe",
|
||||
"Anchor...": "Textmarke",
|
||||
"Anchor": "Anker",
|
||||
"Name": "Name",
|
||||
"ID": "ID",
|
||||
"ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Die ID muss mit einem Buchstaben beginnen gefolgt von Buchstaben, Zahlen, Bindestrichen, Punkten, Doppelpunkten oder Unterstrichen.",
|
||||
"You have unsaved changes are you sure you want to navigate away?": "Die Änderungen wurden noch nicht gespeichert. Sind Sie sicher, dass Sie diese Seite verlassen wollen?",
|
||||
"Restore last draft": "Letzten Entwurf wiederherstellen",
|
||||
"Special character...": "Sonderzeichen...",
|
||||
"Special Character": "Sonderzeichen",
|
||||
"Source code": "Quellcode",
|
||||
"Insert/Edit code sample": "Codebeispiel einfügen/bearbeiten",
|
||||
"Language": "Sprache",
|
||||
"Code sample...": "Codebeispiel...",
|
||||
"Left to right": "Von links nach rechts",
|
||||
"Right to left": "Von rechts nach links",
|
||||
"Title": "Titel",
|
||||
"Fullscreen": "Vollbild",
|
||||
"Action": "Aktion",
|
||||
"Shortcut": "Tastenkombination",
|
||||
"Help": "Hilfe",
|
||||
"Address": "Adresse",
|
||||
"Focus to menubar": "Fokus auf Menüleiste",
|
||||
"Focus to toolbar": "Fokus auf Symbolleiste",
|
||||
"Focus to element path": "Fokus auf Elementpfad",
|
||||
"Focus to contextual toolbar": "Fokus auf kontextbezogene Symbolleiste",
|
||||
"Insert link (if link plugin activated)": "Link einfügen (wenn Link-Plugin aktiviert ist)",
|
||||
"Save (if save plugin activated)": "Speichern (wenn Save-Plugin aktiviert ist)",
|
||||
"Find (if searchreplace plugin activated)": "Suchen (wenn Suchen/Ersetzen-Plugin aktiviert ist)",
|
||||
"Plugins installed ({0}):": "Installierte Plugins ({0}):",
|
||||
"Premium plugins:": "Premium-Plugins:",
|
||||
"Learn more...": "Erfahren Sie mehr dazu...",
|
||||
"You are using {0}": "Sie verwenden {0}",
|
||||
"Plugins": "Plugins",
|
||||
"Handy Shortcuts": "Praktische Tastenkombinationen",
|
||||
"Horizontal line": "Horizontale Linie",
|
||||
"Insert/edit image": "Bild einfügen/bearbeiten",
|
||||
"Alternative description": "Alternative Beschreibung",
|
||||
"Accessibility": "Barrierefreiheit",
|
||||
"Image is decorative": "Bild ist dekorativ",
|
||||
"Source": "Quelle",
|
||||
"Dimensions": "Abmessungen",
|
||||
"Constrain proportions": "Seitenverhältnis beibehalten",
|
||||
"General": "Allgemein",
|
||||
"Advanced": "Erweitert",
|
||||
"Style": "Formatvorlage",
|
||||
"Vertical space": "Vertikaler Raum",
|
||||
"Horizontal space": "Horizontaler Raum",
|
||||
"Border": "Rahmen",
|
||||
"Insert image": "Bild einfügen",
|
||||
"Image...": "Bild...",
|
||||
"Image list": "Bildliste",
|
||||
"Resize": "Skalieren",
|
||||
"Insert date/time": "Datum/Uhrzeit einfügen",
|
||||
"Date/time": "Datum/Uhrzeit",
|
||||
"Insert/edit link": "Link einfügen/bearbeiten",
|
||||
"Text to display": "Anzuzeigender Text",
|
||||
"Url": "URL",
|
||||
"Open link in...": "Link öffnen in...",
|
||||
"Current window": "Aktuelles Fenster",
|
||||
"None": "Keine",
|
||||
"New window": "Neues Fenster",
|
||||
"Open link": "Link öffnen",
|
||||
"Remove link": "Link entfernen",
|
||||
"Anchors": "Anker",
|
||||
"Link...": "Link...",
|
||||
"Paste or type a link": "Link einfügen oder eingeben",
|
||||
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Diese URL scheint eine E-Mail-Adresse zu sein. Möchten Sie das dazu benötigte mailto: voranstellen?",
|
||||
"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?": "Diese URL scheint ein externer Link zu sein. Möchten Sie das dazu benötigte http:// voranstellen?",
|
||||
"The URL you entered seems to be an external link. Do you want to add the required https:// prefix?": "Die eingegebene URL scheint ein externer Link zu sein. Soll das fehlende https:// davor ergänzt werden?",
|
||||
"Link list": "Linkliste",
|
||||
"Insert video": "Video einfügen",
|
||||
"Insert/edit video": "Video einfügen/bearbeiten",
|
||||
"Insert/edit media": "Medien einfügen/bearbeiten",
|
||||
"Alternative source": "Alternative Quelle",
|
||||
"Alternative source URL": "URL der alternativen Quelle",
|
||||
"Media poster (Image URL)": "Medienposter (Bild-URL)",
|
||||
"Paste your embed code below:": "Fügen Sie Ihren Einbettungscode unten ein:",
|
||||
"Embed": "Einbettung",
|
||||
"Media...": "Medien...",
|
||||
"Nonbreaking space": "Geschütztes Leerzeichen",
|
||||
"Page break": "Seitenumbruch",
|
||||
"Paste as text": "Als Text einfügen",
|
||||
"Preview": "Vorschau",
|
||||
"Print": "Drucken",
|
||||
"Print...": "Drucken...",
|
||||
"Save": "Speichern",
|
||||
"Find": "Suchen",
|
||||
"Replace with": "Ersetzen durch",
|
||||
"Replace": "Ersetzen",
|
||||
"Replace all": "Alle ersetzen",
|
||||
"Previous": "Vorherige",
|
||||
"Next": "Nächste",
|
||||
"Find and Replace": "Suchen und Ersetzen",
|
||||
"Find and replace...": "Suchen und ersetzen...",
|
||||
"Could not find the specified string.": "Die angegebene Zeichenfolge wurde nicht gefunden.",
|
||||
"Match case": "Groß-/Kleinschreibung beachten",
|
||||
"Find whole words only": "Nur ganze Wörter suchen",
|
||||
"Find in selection": "In Auswahl suchen",
|
||||
"Insert table": "Tabelle einfügen",
|
||||
"Table properties": "Tabelleneigenschaften",
|
||||
"Delete table": "Tabelle löschen",
|
||||
"Cell": "Zelle",
|
||||
"Row": "Zeile",
|
||||
"Column": "Spalte",
|
||||
"Cell properties": "Zelleigenschaften",
|
||||
"Merge cells": "Zellen verbinden",
|
||||
"Split cell": "Zelle aufteilen",
|
||||
"Insert row before": "Neue Zeile davor einfügen",
|
||||
"Insert row after": "Neue Zeile danach einfügen",
|
||||
"Delete row": "Zeile löschen",
|
||||
"Row properties": "Zeileneigenschaften",
|
||||
"Cut row": "Zeile ausschneiden",
|
||||
"Cut column": "Spalte ausschneiden",
|
||||
"Copy row": "Zeile kopieren",
|
||||
"Copy column": "Spalte kopieren",
|
||||
"Paste row before": "Zeile davor einfügen",
|
||||
"Paste column before": "Spalte davor einfügen",
|
||||
"Paste row after": "Zeile danach einfügen",
|
||||
"Paste column after": "Spalte danach einfügen",
|
||||
"Insert column before": "Neue Spalte davor einfügen",
|
||||
"Insert column after": "Neue Spalte danach einfügen",
|
||||
"Delete column": "Spalte löschen",
|
||||
"Cols": "Spalten",
|
||||
"Rows": "Zeilen",
|
||||
"Width": "Breite",
|
||||
"Height": "Höhe",
|
||||
"Cell spacing": "Zellenabstand",
|
||||
"Cell padding": "Zelleninnenabstand",
|
||||
"Row clipboard actions": "Zeilen-Zwischenablage-Aktionen",
|
||||
"Column clipboard actions": "Spalten-Zwischenablage-Aktionen",
|
||||
"Table styles": "Tabellenstil",
|
||||
"Cell styles": "Zellstil",
|
||||
"Column header": "Spaltenkopf",
|
||||
"Row header": "Zeilenkopf",
|
||||
"Table caption": "Tabellenbeschriftung",
|
||||
"Caption": "Beschriftung",
|
||||
"Show caption": "Beschriftung anzeigen",
|
||||
"Left": "Links",
|
||||
"Center": "Zentriert",
|
||||
"Right": "Rechts",
|
||||
"Cell type": "Zelltyp",
|
||||
"Scope": "Bereich",
|
||||
"Alignment": "Ausrichtung",
|
||||
"Horizontal align": "Horizontal ausrichten",
|
||||
"Vertical align": "Vertikal ausrichten",
|
||||
"Top": "Oben",
|
||||
"Middle": "Mitte",
|
||||
"Bottom": "Unten",
|
||||
"Header cell": "Kopfzelle",
|
||||
"Row group": "Zeilengruppe",
|
||||
"Column group": "Spaltengruppe",
|
||||
"Row type": "Zeilentyp",
|
||||
"Header": "Kopfzeile",
|
||||
"Body": "Inhalt",
|
||||
"Footer": "Fußzeile",
|
||||
"Border color": "Rahmenfarbe",
|
||||
"Solid": "Durchgezogen",
|
||||
"Dotted": "Gepunktet",
|
||||
"Dashed": "Gestrichelt",
|
||||
"Double": "Doppelt",
|
||||
"Groove": "Gekantet",
|
||||
"Ridge": "Eingeritzt",
|
||||
"Inset": "Eingelassen",
|
||||
"Outset": "Hervorstehend",
|
||||
"Hidden": "Unsichtbar",
|
||||
"Insert template...": "Vorlage einfügen...",
|
||||
"Templates": "Vorlagen",
|
||||
"Template": "Vorlage",
|
||||
"Insert Template": "Vorlage einfügen",
|
||||
"Text color": "Textfarbe",
|
||||
"Background color": "Hintergrundfarbe",
|
||||
"Custom...": "Benutzerdefiniert...",
|
||||
"Custom color": "Benutzerdefinierte Farbe",
|
||||
"No color": "Keine Farbe",
|
||||
"Remove color": "Farbauswahl aufheben",
|
||||
"Show blocks": "Blöcke anzeigen",
|
||||
"Show invisible characters": "Unsichtbare Zeichen anzeigen",
|
||||
"Word count": "Anzahl der Wörter",
|
||||
"Count": "Anzahl",
|
||||
"Document": "Dokument",
|
||||
"Selection": "Auswahl",
|
||||
"Words": "Wörter",
|
||||
"Words: {0}": "Wortzahl: {0}",
|
||||
"{0} words": "{0} Wörter",
|
||||
"File": "Datei",
|
||||
"Edit": "Bearbeiten",
|
||||
"Insert": "Einfügen",
|
||||
"View": "Ansicht",
|
||||
"Format": "Format",
|
||||
"Table": "Tabelle",
|
||||
"Tools": "Werkzeuge",
|
||||
"Powered by {0}": "Betrieben von {0}",
|
||||
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich-Text-Bereich. Drücken Sie Alt+F9 für das Menü. Drücken Sie Alt+F10 für die Symbolleiste. Drücken Sie Alt+0 für Hilfe.",
|
||||
"Image title": "Bildtitel",
|
||||
"Border width": "Rahmenbreite",
|
||||
"Border style": "Rahmenstil",
|
||||
"Error": "Fehler",
|
||||
"Warn": "Warnung",
|
||||
"Valid": "Gültig",
|
||||
"To open the popup, press Shift+Enter": "Drücken Sie Umschalt+Eingabe, um das Popup-Fenster zu öffnen.",
|
||||
"Rich Text Area": "Rich-Text-Area",
|
||||
"Rich Text Area. Press ALT-0 for help.": "Rich-Text-Bereich. Drücken Sie Alt+0 für Hilfe.",
|
||||
"System Font": "Betriebssystemschriftart",
|
||||
"Failed to upload image: {0}": "Bild konnte nicht hochgeladen werden: {0}",
|
||||
"Failed to load plugin: {0} from url {1}": "Plugin konnte nicht geladen werden: {0} von URL {1}",
|
||||
"Failed to load plugin url: {0}": "Plugin-URL konnte nicht geladen werden: {0}",
|
||||
"Failed to initialize plugin: {0}": "Plugin konnte nicht initialisiert werden: {0}",
|
||||
"example": "Beispiel",
|
||||
"Search": "Suchen",
|
||||
"All": "Alle",
|
||||
"Currency": "Währung",
|
||||
"Text": "Text",
|
||||
"Quotations": "Anführungszeichen",
|
||||
"Mathematical": "Mathematisch",
|
||||
"Extended Latin": "Erweitertes Latein",
|
||||
"Symbols": "Symbole",
|
||||
"Arrows": "Pfeile",
|
||||
"User Defined": "Benutzerdefiniert",
|
||||
"dollar sign": "Dollarzeichen",
|
||||
"currency sign": "Währungssymbol",
|
||||
"euro-currency sign": "Eurozeichen",
|
||||
"colon sign": "Doppelpunkt",
|
||||
"cruzeiro sign": "Cruzeirozeichen",
|
||||
"french franc sign": "Franczeichen",
|
||||
"lira sign": "Lirezeichen",
|
||||
"mill sign": "Millzeichen",
|
||||
"naira sign": "Nairazeichen",
|
||||
"peseta sign": "Pesetazeichen",
|
||||
"rupee sign": "Rupiezeichen",
|
||||
"won sign": "Wonzeichen",
|
||||
"new sheqel sign": "Schekelzeichen",
|
||||
"dong sign": "Dongzeichen",
|
||||
"kip sign": "Kipzeichen",
|
||||
"tugrik sign": "Tugrikzeichen",
|
||||
"drachma sign": "Drachmezeichen",
|
||||
"german penny symbol": "Pfennigzeichen",
|
||||
"peso sign": "Pesozeichen",
|
||||
"guarani sign": "Guaranizeichen",
|
||||
"austral sign": "Australzeichen",
|
||||
"hryvnia sign": "Hrywnjazeichen",
|
||||
"cedi sign": "Cedizeichen",
|
||||
"livre tournois sign": "Livrezeichen",
|
||||
"spesmilo sign": "Spesmilozeichen",
|
||||
"tenge sign": "Tengezeichen",
|
||||
"indian rupee sign": "Indisches Rupiezeichen",
|
||||
"turkish lira sign": "Türkisches Lirazeichen",
|
||||
"nordic mark sign": "Zeichen nordische Mark",
|
||||
"manat sign": "Manatzeichen",
|
||||
"ruble sign": "Rubelzeichen",
|
||||
"yen character": "Yenzeichen",
|
||||
"yuan character": "Yuanzeichen",
|
||||
"yuan character, in hong kong and taiwan": "Yuanzeichen in Hongkong und Taiwan",
|
||||
"yen/yuan character variant one": "Yen-/Yuanzeichen Variante 1",
|
||||
"Emojis": "Emojis",
|
||||
"Emojis...": "Emojis...",
|
||||
"Loading emojis...": "Lade Emojis...",
|
||||
"Could not load emojis": "Emojis konnten nicht geladen werden",
|
||||
"People": "Menschen",
|
||||
"Animals and Nature": "Tiere und Natur",
|
||||
"Food and Drink": "Essen und Trinken",
|
||||
"Activity": "Aktivität",
|
||||
"Travel and Places": "Reisen und Orte",
|
||||
"Objects": "Objekte",
|
||||
"Flags": "Flaggen",
|
||||
"Characters": "Zeichen",
|
||||
"Characters (no spaces)": "Zeichen (ohne Leerzeichen)",
|
||||
"{0} characters": "{0} Zeichen",
|
||||
"Error: Form submit field collision.": "Fehler: Kollision der Formularbestätigungsfelder.",
|
||||
"Error: No form element found.": "Fehler: Kein Formularelement gefunden.",
|
||||
"Color swatch": "Farbpalette",
|
||||
"Color Picker": "Farbwahl",
|
||||
"Invalid hex color code: {0}": "Ungültiger Hexadezimal-Farbwert: {0}",
|
||||
"Invalid input": "Ungültige Eingabe",
|
||||
"R": "R",
|
||||
"Red component": "Rotanteil",
|
||||
"G": "G",
|
||||
"Green component": "Grünanteil",
|
||||
"B": "B",
|
||||
"Blue component": "Blauanteil",
|
||||
"#": "#",
|
||||
"Hex color code": "Hexadezimal-Farbwert",
|
||||
"Range 0 to 255": "Spanne 0 bis 255",
|
||||
"Turquoise": "Türkis",
|
||||
"Green": "Grün",
|
||||
"Blue": "Blau",
|
||||
"Purple": "Violett",
|
||||
"Navy Blue": "Marineblau",
|
||||
"Dark Turquoise": "Dunkeltürkis",
|
||||
"Dark Green": "Dunkelgrün",
|
||||
"Medium Blue": "Mittleres Blau",
|
||||
"Medium Purple": "Mittelviolett",
|
||||
"Midnight Blue": "Mitternachtsblau",
|
||||
"Yellow": "Gelb",
|
||||
"Orange": "Orange",
|
||||
"Red": "Rot",
|
||||
"Light Gray": "Hellgrau",
|
||||
"Gray": "Grau",
|
||||
"Dark Yellow": "Dunkelgelb",
|
||||
"Dark Orange": "Dunkelorange",
|
||||
"Dark Red": "Dunkelrot",
|
||||
"Medium Gray": "Mittelgrau",
|
||||
"Dark Gray": "Dunkelgrau",
|
||||
"Light Green": "Hellgrün",
|
||||
"Light Yellow": "Hellgelb",
|
||||
"Light Red": "Hellrot",
|
||||
"Light Purple": "Helllila",
|
||||
"Light Blue": "Hellblau",
|
||||
"Dark Purple": "Dunkellila",
|
||||
"Dark Blue": "Dunkelblau",
|
||||
"Black": "Schwarz",
|
||||
"White": "Weiß",
|
||||
"Switch to or from fullscreen mode": "Vollbildmodus umschalten",
|
||||
"Open help dialog": "Hilfe-Dialog öffnen",
|
||||
"history": "Historie",
|
||||
"styles": "Stile",
|
||||
"formatting": "Formatierung",
|
||||
"alignment": "Ausrichtung",
|
||||
"indentation": "Einrückungen",
|
||||
"Font": "Schriftart",
|
||||
"Size": "Schriftgröße",
|
||||
"More...": "Mehr...",
|
||||
"Select...": "Auswahl...",
|
||||
"Preferences": "Einstellungen",
|
||||
"Yes": "Ja",
|
||||
"No": "Nein",
|
||||
"Keyboard Navigation": "Tastaturnavigation",
|
||||
"Version": "Version",
|
||||
"Code view": "Code Ansicht",
|
||||
"Open popup menu for split buttons": "Öffne Popup Menge um Buttons zu trennen",
|
||||
"List Properties": "Liste Eigenschaften",
|
||||
"List properties...": "Liste Eigenschaften",
|
||||
"Start list at number": "Beginne Liste mit Nummer",
|
||||
"Line height": "Liniendicke",
|
||||
"Dropped file type is not supported": "Hereingezogener Dateityp wird nicht unterstützt",
|
||||
"Loading...": "Wird geladen...",
|
||||
"ImageProxy HTTP error: Rejected request": "Image Proxy HTTP Fehler: Abgewiesene Anfrage",
|
||||
"ImageProxy HTTP error: Could not find Image Proxy": "Image Proxy HTTP Fehler: Kann Image Proxy nicht finden",
|
||||
"ImageProxy HTTP error: Incorrect Image Proxy URL": "Image Proxy HTTP Fehler: Falsche Image Proxy URL",
|
||||
"ImageProxy HTTP error: Unknown ImageProxy error": "Image Proxy HTTP Fehler: Unbekannter Image Proxy Fehler"
|
||||
});
|
||||
21
public/plugins/tinymce/license.txt
Normal file
21
public/plugins/tinymce/license.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Ephox Corporation DBA Tiny Technologies, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
4
public/plugins/tinymce/models/dom/model.min.js
vendored
Normal file
4
public/plugins/tinymce/models/dom/model.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/advlist/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/advlist/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=(t,e,r)=>{const s="UL"===e?"InsertUnorderedList":"InsertOrderedList";t.execCommand(s,!1,!1===r?null:{"list-style-type":r})},r=t=>e=>e.options.get(t),s=r("advlist_number_styles"),n=r("advlist_bullet_styles"),l=t=>null==t,i=t=>!l(t);var o=tinymce.util.Tools.resolve("tinymce.util.Tools");class a{constructor(t,e){this.tag=t,this.value=e}static some(t){return new a(!0,t)}static none(){return a.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?a.some(t(this.value)):a.none()}bind(t){return this.tag?t(this.value):a.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:a.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return i(t)?a.some(t):a.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}a.singletonNone=new a(!1);const u=t=>i(t)&&/^(TH|TD)$/.test(t.nodeName),d=t=>l(t)||"default"===t?"":t,g=(t,e)=>r=>{const s=s=>{r.setActive(((t,e,r)=>{const s=((t,e)=>{for(let r=0;r<t.length;r++)if(e(t[r]))return r;return-1})(e.parents,u),n=-1!==s?e.parents.slice(0,s):e.parents,l=o.grep(n,(t=>e=>i(e)&&/^(OL|UL|DL)$/.test(e.nodeName)&&((t,e)=>t.dom.isChildOf(e,t.getBody()))(t,e))(t));return l.length>0&&l[0].nodeName===r})(t,s,e)),r.setEnabled(!((t,e)=>{const r=t.dom.getParent(e,"ol,ul,dl");return((t,e)=>null!==e&&"false"===t.dom.getContentEditableParent(e))(t,r)})(t,s.element))};return t.on("NodeChange",s),()=>t.off("NodeChange",s)},h=(t,r,s,n,l,i)=>{i.length>1?((t,r,s,n,l,i)=>{t.ui.registry.addSplitButton(r,{tooltip:s,icon:"OL"===l?"ordered-list":"unordered-list",presets:"listpreview",columns:3,fetch:t=>{t(o.map(i,(t=>{const e="OL"===l?"num":"bull",r="disc"===t||"decimal"===t?"default":t,s=d(t),n=(t=>t.replace(/\-/g," ").replace(/\b\w/g,(t=>t.toUpperCase())))(t);return{type:"choiceitem",value:s,icon:"list-"+e+"-"+r,text:n}})))},onAction:()=>t.execCommand(n),onItemAction:(r,s)=>{e(t,l,s)},select:e=>{const r=(t=>{const e=t.dom.getParent(t.selection.getNode(),"ol,ul"),r=t.dom.getStyle(e,"listStyleType");return a.from(r)})(t);return r.map((t=>e===t)).getOr(!1)},onSetup:g(t,l)})})(t,r,s,n,l,i):((t,r,s,n,l,i)=>{t.ui.registry.addToggleButton(r,{active:!1,tooltip:s,icon:"OL"===l?"ordered-list":"unordered-list",onSetup:g(t,l),onAction:()=>t.queryCommandState(n)||""===i?t.execCommand(n):e(t,l,i)})})(t,r,s,n,l,d(i[0]))};t.add("advlist",(t=>{t.hasPlugin("lists")?((t=>{const e=t.options.register;e("advlist_number_styles",{processor:"string[]",default:"default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman".split(",")}),e("advlist_bullet_styles",{processor:"string[]",default:"default,circle,square".split(",")})})(t),(t=>{h(t,"numlist","Numbered list","InsertOrderedList","OL",s(t)),h(t,"bullist","Bullet list","InsertUnorderedList","UL",n(t))})(t),(t=>{t.addCommand("ApplyUnorderedListStyle",((r,s)=>{e(t,"UL",s["list-style-type"])})),t.addCommand("ApplyOrderedListStyle",((r,s)=>{e(t,"OL",s["list-style-type"])}))})(t)):console.error("Please use the Lists plugin together with the Advanced List plugin.")}))}();
|
||||
4
public/plugins/tinymce/plugins/anchor/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/anchor/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),o=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=("allow_html_in_named_anchor",e=>e.options.get("allow_html_in_named_anchor"));const a="a:not([href])",r=e=>!e,i=e=>e.getAttribute("id")||e.getAttribute("name")||"",l=e=>(e=>"a"===e.nodeName.toLowerCase())(e)&&!e.getAttribute("href")&&""!==i(e),s=e=>e.dom.getParent(e.selection.getStart(),a),d=(e,a)=>{const r=s(e);r?((e,t,o)=>{o.removeAttribute("name"),o.id=t,e.addVisual(),e.undoManager.add()})(e,a,r):((e,a)=>{e.undoManager.transact((()=>{n(e)||e.selection.collapse(!0),e.selection.isCollapsed()?e.insertContent(e.dom.createHTML("a",{id:a})):((e=>{const n=e.dom;t(n).walk(e.selection.getRng(),(e=>{o.each(e,(e=>{var t;l(t=e)&&!t.firstChild&&n.remove(e,!1)}))}))})(e),e.formatter.remove("namedAnchor",void 0,void 0,!0),e.formatter.apply("namedAnchor",{value:a}),e.addVisual())}))})(e,a),e.focus()},c=e=>(e=>r(e.attr("href"))&&!r(e.attr("id")||e.attr("name")))(e)&&!e.firstChild,m=e=>t=>{for(let o=0;o<t.length;o++){const n=t[o];c(n)&&n.attr("contenteditable",e)}};e.add("anchor",(e=>{(e=>{(0,e.options.register)("allow_html_in_named_anchor",{processor:"boolean",default:!1})})(e),(e=>{e.on("PreInit",(()=>{e.parser.addNodeFilter("a",m("false")),e.serializer.addNodeFilter("a",m(null))}))})(e),(e=>{e.addCommand("mceAnchor",(()=>{(e=>{const t=(e=>{const t=s(e);return t?i(t):""})(e);e.windowManager.open({title:"Anchor",size:"normal",body:{type:"panel",items:[{name:"id",type:"input",label:"ID",placeholder:"example"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{id:t},onSubmit:t=>{((e,t)=>/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(t)?(d(e,t),!0):(e.windowManager.alert("ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),!1))(e,t.getData().id)&&t.close()}})})(e)}))})(e),(e=>{const t=()=>e.execCommand("mceAnchor");e.ui.registry.addToggleButton("anchor",{icon:"bookmark",tooltip:"Anchor",onAction:t,onSetup:t=>e.selection.selectorChangedWithUnbind("a:not([href])",t.setActive).unbind}),e.ui.registry.addMenuItem("anchor",{icon:"bookmark",text:"Anchor...",onAction:t})})(e),e.on("PreInit",(()=>{(e=>{e.formatter.register("namedAnchor",{inline:"a",selector:a,remove:"all",split:!0,deep:!0,attributes:{id:"%value"},onmatch:(e,t,o)=>l(e)})})(e)}))}))}();
|
||||
4
public/plugins/tinymce/plugins/autolink/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/autolink/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),n=t("autolink_pattern"),o=t("link_default_target"),r=t("link_default_protocol"),a=t("allow_unsafe_link_target"),s=("string",e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,(r=String).prototype.isPrototypeOf(n)||(null===(a=o.constructor)||void 0===a?void 0:a.name)===r.name)?"string":t;var n,o,r,a})(e));const l=(void 0,e=>undefined===e);const i=e=>!(e=>null==e)(e),c=Object.hasOwnProperty,d=e=>"\ufeff"===e;var u=tinymce.util.Tools.resolve("tinymce.dom.TextSeeker");const f=e=>/^[(\[{ \u00a0]$/.test(e),g=(e,t,n)=>{for(let o=t-1;o>=0;o--){const t=e.charAt(o);if(!d(t)&&n(t))return o}return-1},m=(e,t)=>{var o;const a=e.schema.getVoidElements(),s=n(e),{dom:i,selection:d}=e;if(null!==i.getParent(d.getNode(),"a[href]"))return null;const m=d.getRng(),k=u(i,(e=>{return i.isBlock(e)||(t=a,n=e.nodeName.toLowerCase(),c.call(t,n))||"false"===i.getContentEditable(e);var t,n})),{container:p,offset:y}=((e,t)=>{let n=e,o=t;for(;1===n.nodeType&&n.childNodes[o];)n=n.childNodes[o],o=3===n.nodeType?n.data.length:n.childNodes.length;return{container:n,offset:o}})(m.endContainer,m.endOffset),h=null!==(o=i.getParent(p,i.isBlock))&&void 0!==o?o:i.getRoot(),w=k.backwards(p,y+t,((e,t)=>{const n=e.data,o=g(n,t,(r=f,e=>!r(e)));var r,a;return-1===o||(a=n[o],/[?!,.;:]/.test(a))?o:o+1}),h);if(!w)return null;let v=w.container;const _=k.backwards(w.container,w.offset,((e,t)=>{v=e;const n=g(e.data,t,f);return-1===n?n:n+1}),h),A=i.createRng();_?A.setStart(_.container,_.offset):A.setStart(v,0),A.setEnd(w.container,w.offset);const C=A.toString().replace(/\uFEFF/g,"").match(s);if(C){let t=C[0];return $="www.",(b=t).length>=$.length&&b.substr(0,0+$.length)===$?t=r(e)+"://"+t:((e,t,n=0,o)=>{const r=e.indexOf(t,n);return-1!==r&&(!!l(o)||r+t.length<=o)})(t,"@")&&!(e=>/^([A-Za-z][A-Za-z\d.+-]*:\/\/)|mailto:/.test(e))(t)&&(t="mailto:"+t),{rng:A,url:t}}var b,$;return null},k=(e,t)=>{const{dom:n,selection:r}=e,{rng:l,url:i}=t,c=r.getBookmark();r.setRng(l);const d="createlink",u={command:d,ui:!1,value:i};if(!e.dispatch("BeforeExecCommand",u).isDefaultPrevented()){e.getDoc().execCommand(d,!1,i),e.dispatch("ExecCommand",u);const t=o(e);if(s(t)){const o=r.getNode();n.setAttrib(o,"target",t),"_blank"!==t||a(e)||n.setAttrib(o,"rel","noopener")}}r.moveToBookmark(c),e.nodeChanged()},p=e=>{const t=m(e,-1);i(t)&&k(e,t)},y=p;e.add("autolink",(e=>{(e=>{const t=e.options.register;t("autolink_pattern",{processor:"regexp",default:new RegExp("^"+/(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g.source+"$","i")}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"})})(e),(e=>{e.on("keydown",(t=>{13!==t.keyCode||t.isDefaultPrevented()||(e=>{const t=m(e,0);i(t)&&k(e,t)})(e)})),e.on("keyup",(t=>{32===t.keyCode?p(e):(48===t.keyCode&&t.shiftKey||221===t.keyCode)&&y(e)}))})(e)}))}();
|
||||
4
public/plugins/tinymce/plugins/autoresize/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/autoresize/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env");const o=e=>t=>t.options.get(e),n=o("min_height"),s=o("max_height"),i=o("autoresize_overflow_padding"),r=o("autoresize_bottom_margin"),l=(e,t)=>{const o=e.getBody();o&&(o.style.overflowY=t?"":"hidden",t||(o.scrollTop=0))},a=(e,t,o,n)=>{var s;const i=parseInt(null!==(s=e.getStyle(t,o,n))&&void 0!==s?s:"",10);return isNaN(i)?0:i},g=(e,o,i)=>{var c;const u=e.dom,d=e.getDoc();if(!d)return;if((e=>e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen())(e))return void l(e,!0);const f=d.documentElement,m=r(e),p=null!==(c=n(e))&&void 0!==c?c:e.getElement().offsetHeight;let h=p;const v=a(u,f,"margin-top",!0),y=a(u,f,"margin-bottom",!0);let C=f.offsetHeight+v+y+m;C<0&&(C=0);const S=e.getContainer().offsetHeight-e.getContentAreaContainer().offsetHeight;C+S>p&&(h=C+S);const z=s(e);if(z&&h>z?(h=z,l(e,!0)):l(e,!1),h!==o.get()){const n=h-o.get();if(u.setStyle(e.getContainer(),"height",h+"px"),o.set(h),(e=>{e.dispatch("ResizeEditor")})(e),t.browser.isSafari()&&(t.os.isMacOS()||t.os.isiOS())){const t=e.getWin();t.scrollTo(t.pageXOffset,t.pageYOffset)}e.hasFocus()&&(e=>{if("setcontent"===(null==e?void 0:e.type.toLowerCase())){const t=e;return!0===t.selection||!0===t.paste}return!1})(i)&&e.selection.scrollIntoView(),(t.browser.isSafari()||t.browser.isChromium())&&n<0&&g(e,o,i)}};e.add("autoresize",(e=>{if((e=>{const t=e.options.register;t("autoresize_overflow_padding",{processor:"number",default:1}),t("autoresize_bottom_margin",{processor:"number",default:50})})(e),e.options.isSet("resize")||e.options.set("resize",!1),!e.inline){const t=(e=>{let t=0;return{get:()=>t,set:e=>{t=e}}})();((e,t)=>{e.addCommand("mceAutoResize",(()=>{g(e,t)}))})(e,t),((e,t)=>{e.on("init",(()=>{const t=i(e),o=e.dom;o.setStyles(e.getDoc().documentElement,{height:"auto"}),o.setStyles(e.getBody(),{paddingLeft:t,paddingRight:t,"min-height":0})})),e.on("NodeChange SetContent keyup FullscreenStateChanged ResizeContent",(o=>{g(e,t,o)}))})(e,t)}}))}();
|
||||
4
public/plugins/tinymce/plugins/autosave/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/autosave/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=("string",t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(r=o=t,(a=String).prototype.isPrototypeOf(r)||(null===(s=o.constructor)||void 0===s?void 0:s.name)===a.name)?"string":e;var r,o,a,s})(t));const r=(void 0,t=>undefined===t);var o=tinymce.util.Tools.resolve("tinymce.util.Delay"),a=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),s=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=t=>{const e=/^(\d+)([ms]?)$/.exec(t);return(e&&e[2]?{s:1e3,m:6e4}[e[2]]:1)*parseInt(t,10)},i=t=>e=>e.options.get(t),u=i("autosave_ask_before_unload"),l=i("autosave_restore_when_empty"),c=i("autosave_interval"),d=i("autosave_retention"),m=t=>{const e=document.location;return t.options.get("autosave_prefix").replace(/{path}/g,e.pathname).replace(/{query}/g,e.search).replace(/{hash}/g,e.hash).replace(/{id}/g,t.id)},v=(t,e)=>{if(r(e))return t.dom.isEmpty(t.getBody());{const r=s.trim(e);if(""===r)return!0;{const e=(new DOMParser).parseFromString(r,"text/html");return t.dom.isEmpty(e)}}},f=t=>{var e;const r=parseInt(null!==(e=a.getItem(m(t)+"time"))&&void 0!==e?e:"0",10)||0;return!((new Date).getTime()-r>d(t)&&(p(t,!1),1))},p=(t,e)=>{const r=m(t);a.removeItem(r+"draft"),a.removeItem(r+"time"),!1!==e&&(t=>{t.dispatch("RemoveDraft")})(t)},g=t=>{const e=m(t);!v(t)&&t.isDirty()&&(a.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),a.setItem(e+"time",(new Date).getTime().toString()),(t=>{t.dispatch("StoreDraft")})(t))},y=t=>{var e;const r=m(t);f(t)&&(t.setContent(null!==(e=a.getItem(r+"draft"))&&void 0!==e?e:"",{format:"raw"}),(t=>{t.dispatch("RestoreDraft")})(t))};var D=tinymce.util.Tools.resolve("tinymce.EditorManager");const h=t=>e=>{e.setEnabled(f(t));const r=()=>e.setEnabled(f(t));return t.on("StoreDraft RestoreDraft RemoveDraft",r),()=>t.off("StoreDraft RestoreDraft RemoveDraft",r)};t.add("autosave",(t=>((t=>{const r=t.options.register,o=t=>{const r=e(t);return r?{value:n(t),valid:r}:{valid:!1,message:"Must be a string."}};r("autosave_ask_before_unload",{processor:"boolean",default:!0}),r("autosave_prefix",{processor:"string",default:"tinymce-autosave-{path}{query}{hash}-{id}-"}),r("autosave_restore_when_empty",{processor:"boolean",default:!1}),r("autosave_interval",{processor:o,default:"30s"}),r("autosave_retention",{processor:o,default:"20m"})})(t),(t=>{t.editorManager.on("BeforeUnload",(t=>{let e;s.each(D.get(),(t=>{t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&u(t)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))})),e&&(t.preventDefault(),t.returnValue=e)}))})(t),(t=>{(t=>{const e=c(t);o.setEditorInterval(t,(()=>{g(t)}),e)})(t);const e=()=>{(t=>{t.undoManager.transact((()=>{y(t),p(t)})),t.focus()})(t)};t.ui.registry.addButton("restoredraft",{tooltip:"Restore last draft",icon:"restore-draft",onAction:e,onSetup:h(t)}),t.ui.registry.addMenuItem("restoredraft",{text:"Restore last draft",icon:"restore-draft",onAction:e,onSetup:h(t)})})(t),t.on("init",(()=>{l(t)&&t.dom.isEmpty(t.getBody())&&y(t)})),(t=>({hasDraft:()=>f(t),storeDraft:()=>g(t),restoreDraft:()=>y(t),removeDraft:e=>p(t,e),isEmpty:e=>v(t,e)}))(t))))}();
|
||||
4
public/plugins/tinymce/plugins/charmap/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/charmap/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/code/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/code/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";tinymce.util.Tools.resolve("tinymce.PluginManager").add("code",(e=>((e=>{e.addCommand("mceCodeEditor",(()=>{(e=>{const o=(e=>e.getContent({source_view:!0}))(e);e.windowManager.open({title:"Source Code",size:"large",body:{type:"panel",items:[{type:"textarea",name:"code"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{code:o},onSubmit:o=>{((e,o)=>{e.focus(),e.undoManager.transact((()=>{e.setContent(o)})),e.selection.setCursorLocation(),e.nodeChanged()})(e,o.getData().code),o.close()}})})(e)}))})(e),(e=>{const o=()=>e.execCommand("mceCodeEditor");e.ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:o}),e.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:o})})(e),{})))}();
|
||||
4
public/plugins/tinymce/plugins/codesample/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/codesample/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/directionality/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/directionality/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=t=>e=>typeof e===t,o=t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(o=r=t,(n=String).prototype.isPrototypeOf(o)||(null===(i=r.constructor)||void 0===i?void 0:i.name)===n.name)?"string":e;var o,r,n,i})(t),r=e("boolean"),n=t=>!(t=>null==t)(t),i=e("function"),s=e("number"),l=(!1,()=>false);class a{constructor(t,e){this.tag=t,this.value=e}static some(t){return new a(!0,t)}static none(){return a.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?a.some(t(this.value)):a.none()}bind(t){return this.tag?t(this.value):a.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:a.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return n(t)?a.some(t):a.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}a.singletonNone=new a(!1);const u=(t,e)=>{for(let o=0,r=t.length;o<r;o++)e(t[o],o)},c=t=>{if(null==t)throw new Error("Node cannot be null or undefined");return{dom:t}},d=c,h=(t,e)=>{const o=t.dom;if(1!==o.nodeType)return!1;{const t=o;if(void 0!==t.matches)return t.matches(e);if(void 0!==t.msMatchesSelector)return t.msMatchesSelector(e);if(void 0!==t.webkitMatchesSelector)return t.webkitMatchesSelector(e);if(void 0!==t.mozMatchesSelector)return t.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")}};"undefined"!=typeof window?window:Function("return this;")();const m=t=>e=>(t=>t.dom.nodeType)(e)===t,g=m(1),f=m(3),v=m(9),p=m(11),y=(t,e)=>{t.dom.removeAttribute(e)},w=i(Element.prototype.attachShadow)&&i(Node.prototype.getRootNode)?t=>d(t.dom.getRootNode()):t=>v(t)?t:d(t.dom.ownerDocument),N=t=>d(t.dom.host),b=t=>{const e=f(t)?t.dom.parentNode:t.dom;if(null==e||null===e.ownerDocument)return!1;const o=e.ownerDocument;return(t=>{const e=w(t);return p(o=e)&&n(o.dom.host)?a.some(e):a.none();var o})(d(e)).fold((()=>o.body.contains(e)),(r=b,i=N,t=>r(i(t))));var r,i},S=t=>"rtl"===((t,e)=>{const o=t.dom,r=window.getComputedStyle(o).getPropertyValue(e);return""!==r||b(t)?r:((t,e)=>(t=>void 0!==t.style&&i(t.style.getPropertyValue))(t)?t.style.getPropertyValue(e):"")(o,e)})(t,"direction")?"rtl":"ltr",A=(t,e)=>((t,o)=>((t,e)=>{const o=[];for(let r=0,n=t.length;r<n;r++){const n=t[r];e(n,r)&&o.push(n)}return o})(((t,e)=>{const o=t.length,r=new Array(o);for(let n=0;n<o;n++){const o=t[n];r[n]=e(o,n)}return r})(t.dom.childNodes,d),(t=>h(t,e))))(t),T=("li",t=>g(t)&&"li"===t.dom.nodeName.toLowerCase());const C=(t,e)=>{const n=t.selection.getSelectedBlocks();n.length>0&&(u(n,(t=>{const n=d(t),c=T(n),m=((t,e)=>{return(e?(o=t,r="ol,ul",((t,e,o)=>{let n=t.dom;const s=i(o)?o:l;for(;n.parentNode;){n=n.parentNode;const t=d(n);if(h(t,r))return a.some(t);if(s(t))break}return a.none()})(o,0,n)):a.some(t)).getOr(t);var o,r,n})(n,c);var f;(f=m,(t=>a.from(t.dom.parentNode).map(d))(f).filter(g)).each((t=>{if(S(t)!==e?((t,e,n)=>{((t,e,n)=>{if(!(o(n)||r(n)||s(n)))throw console.error("Invalid call to Attribute.set. Key ",e,":: Value ",n,":: Element ",t),new Error("Attribute value was not simple");t.setAttribute(e,n+"")})(t.dom,e,n)})(m,"dir",e):S(m)!==e&&y(m,"dir"),c){const t=A(m,"li[dir]");u(t,(t=>y(t,"dir")))}}))})),t.nodeChanged())},D=(t,e)=>o=>{const r=t=>{const r=d(t.element);o.setActive(S(r)===e)};return t.on("NodeChange",r),()=>t.off("NodeChange",r)};t.add("directionality",(t=>{(t=>{t.addCommand("mceDirectionLTR",(()=>{C(t,"ltr")})),t.addCommand("mceDirectionRTL",(()=>{C(t,"rtl")}))})(t),(t=>{t.ui.registry.addToggleButton("ltr",{tooltip:"Left to right",icon:"ltr",onAction:()=>t.execCommand("mceDirectionLTR"),onSetup:D(t,"ltr")}),t.ui.registry.addToggleButton("rtl",{tooltip:"Right to left",icon:"rtl",onAction:()=>t.execCommand("mceDirectionRTL"),onSetup:D(t,"rtl")})})(t)}))}();
|
||||
File diff suppressed because one or more lines are too long
3
public/plugins/tinymce/plugins/emoticons/js/emojiimages.min.js
vendored
Normal file
3
public/plugins/tinymce/plugins/emoticons/js/emojiimages.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/plugins/emoticons/js/emojis.js
Normal file
1
public/plugins/tinymce/plugins/emoticons/js/emojis.js
Normal file
File diff suppressed because one or more lines are too long
2
public/plugins/tinymce/plugins/emoticons/js/emojis.min.js
vendored
Normal file
2
public/plugins/tinymce/plugins/emoticons/js/emojis.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/emoticons/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/emoticons/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/fullscreen/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/fullscreen/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/help/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/help/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/image/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/image/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/importcss/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/importcss/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(s=r=e,(o=String).prototype.isPrototypeOf(s)||(null===(n=r.constructor)||void 0===n?void 0:n.name)===o.name)?"string":t;var s,r,o,n})(t)===e,s=t("string"),r=t("object"),o=t("array"),n=("function",e=>"function"==typeof e);var c=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.EditorManager"),l=tinymce.util.Tools.resolve("tinymce.Env"),a=tinymce.util.Tools.resolve("tinymce.util.Tools");const p=e=>t=>t.options.get(e),u=p("importcss_merge_classes"),m=p("importcss_exclusive"),f=p("importcss_selector_converter"),y=p("importcss_selector_filter"),d=p("importcss_groups"),h=p("importcss_append"),_=p("importcss_file_filter"),g=p("skin"),v=p("skin_url"),b=Array.prototype.push,x=/^\.(?:ephox|tiny-pageembed|mce)(?:[.-]+\w+)+$/,T=e=>s(e)?t=>-1!==t.indexOf(e):e instanceof RegExp?t=>e.test(t):e,S=(e,t)=>{let s={};const r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(!r)return;const o=r[1],n=r[2].substr(1).split(".").join(" "),c=a.makeMap("a,img");return r[1]?(s={title:t},e.schema.getTextBlockElements()[o]?s.block=o:e.schema.getBlockElements()[o]||c[o.toLowerCase()]?s.selector=o:s.inline=o):r[2]&&(s={inline:"span",title:t.substr(1),classes:n}),u(e)?s.classes=n:s.attributes={class:n},s},k=(e,t)=>null===t||m(e),w=e=>{e.on("init",(()=>{const t=(()=>{const e=[],t=[],s={};return{addItemToGroup:(e,r)=>{s[e]?s[e].push(r):(t.push(e),s[e]=[r])},addItem:t=>{e.push(t)},toFormats:()=>{return(r=t,n=e=>{const t=s[e];return 0===t.length?[]:[{title:e,items:t}]},(e=>{const t=[];for(let s=0,r=e.length;s<r;++s){if(!o(e[s]))throw new Error("Arr.flatten item "+s+" was not an array, input: "+e);b.apply(t,e[s])}return t})(((e,t)=>{const s=e.length,r=new Array(s);for(let o=0;o<s;o++){const s=e[o];r[o]=t(s,o)}return r})(r,n))).concat(e);var r,n}}})(),r={},n=T(y(e)),p=(e=>a.map(e,(e=>a.extend({},e,{original:e,selectors:{},filter:T(e.filter)}))))(d(e)),u=(t,s)=>{if(((e,t,s,r)=>!(k(e,s)?t in r:t in s.selectors))(e,t,s,r)){((e,t,s,r)=>{k(e,s)?r[t]=!0:s.selectors[t]=!0})(e,t,s,r);const o=((e,t,s,r)=>{let o;const n=f(e);return o=r&&r.selector_converter?r.selector_converter:n||(()=>S(e,s)),o.call(t,s,r)})(e,e.plugins.importcss,t,s);if(o){const t=o.name||c.DOM.uniqueId();return e.formatter.register(t,o),{title:o.title,format:t}}}return null};a.each(((e,t,r)=>{const o=[],n={},c=(t,n)=>{let p,u=t.href;if(u=(e=>{const t=l.cacheSuffix;return s(e)&&(e=e.replace("?"+t,"").replace("&"+t,"")),e})(u),u&&(!r||r(u,n))&&!((e,t)=>{const s=g(e);if(s){const r=v(e),o=r?e.documentBaseURI.toAbsolute(r):i.baseURL+"/skins/ui/"+s,n=i.baseURL+"/skins/content/";return t===o+"/content"+(e.inline?".inline":"")+".min.css"||-1!==t.indexOf(n)}return!1})(e,u)){a.each(t.imports,(e=>{c(e,!0)}));try{p=t.cssRules||t.rules}catch(e){}a.each(p,(e=>{e.styleSheet?c(e.styleSheet,!0):e.selectorText&&a.each(e.selectorText.split(","),(e=>{o.push(a.trim(e))}))}))}};a.each(e.contentCSS,(e=>{n[e]=!0})),r||(r=(e,t)=>t||n[e]);try{a.each(t.styleSheets,(e=>{c(e)}))}catch(e){}return o})(e,e.getDoc(),T(_(e))),(e=>{if(!x.test(e)&&(!n||n(e))){const s=((e,t)=>a.grep(e,(e=>!e.filter||e.filter(t))))(p,e);if(s.length>0)a.each(s,(s=>{const r=u(e,s);r&&t.addItemToGroup(s.title,r)}));else{const s=u(e,null);s&&t.addItem(s)}}}));const m=t.toFormats();e.dispatch("addStyleModifications",{items:m,replace:!h(e)})}))};e.add("importcss",(e=>((e=>{const t=e.options.register,o=e=>s(e)||n(e)||r(e);t("importcss_merge_classes",{processor:"boolean",default:!0}),t("importcss_exclusive",{processor:"boolean",default:!0}),t("importcss_selector_converter",{processor:"function"}),t("importcss_selector_filter",{processor:o}),t("importcss_file_filter",{processor:o}),t("importcss_groups",{processor:"object[]"}),t("importcss_append",{processor:"boolean",default:!1})})(e),w(e),(e=>({convertSelectorToFormat:t=>S(e,t)}))(e))))}();
|
||||
4
public/plugins/tinymce/plugins/insertdatetime/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/insertdatetime/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),a=t("insertdatetime_dateformat"),r=t("insertdatetime_timeformat"),n=t("insertdatetime_formats"),s=t("insertdatetime_element"),i="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),o="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),l="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),m="January February March April May June July August September October November December".split(" "),c=(e,t)=>{if((e=""+e).length<t)for(let a=0;a<t-e.length;a++)e="0"+e;return e},d=(e,t,a=new Date)=>(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("%D","%m/%d/%Y")).replace("%r","%I:%M:%S %p")).replace("%Y",""+a.getFullYear())).replace("%y",""+a.getYear())).replace("%m",c(a.getMonth()+1,2))).replace("%d",c(a.getDate(),2))).replace("%H",""+c(a.getHours(),2))).replace("%M",""+c(a.getMinutes(),2))).replace("%S",""+c(a.getSeconds(),2))).replace("%I",""+((a.getHours()+11)%12+1))).replace("%p",a.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(m[a.getMonth()]))).replace("%b",""+e.translate(l[a.getMonth()]))).replace("%A",""+e.translate(o[a.getDay()]))).replace("%a",""+e.translate(i[a.getDay()]))).replace("%%","%"),u=(e,t)=>{if(s(e)){const a=d(e,t);let r;r=/%[HMSIp]/.test(t)?d(e,"%Y-%m-%dT%H:%M"):d(e,"%Y-%m-%d");const n=e.dom.getParent(e.selection.getStart(),"time");n?((e,t,a,r)=>{const n=e.dom.create("time",{datetime:a},r);e.dom.replace(n,t),e.selection.select(n,!0),e.selection.collapse(!1)})(e,n,r,a):e.insertContent('<time datetime="'+r+'">'+a+"</time>")}else e.insertContent(d(e,t))};var p=tinymce.util.Tools.resolve("tinymce.util.Tools");e.add("insertdatetime",(e=>{(e=>{const t=e.options.register;t("insertdatetime_dateformat",{processor:"string",default:e.translate("%Y-%m-%d")}),t("insertdatetime_timeformat",{processor:"string",default:e.translate("%H:%M:%S")}),t("insertdatetime_formats",{processor:"string[]",default:["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"]}),t("insertdatetime_element",{processor:"boolean",default:!1})})(e),(e=>{e.addCommand("mceInsertDate",((t,r)=>{u(e,null!=r?r:a(e))})),e.addCommand("mceInsertTime",((t,a)=>{u(e,null!=a?a:r(e))}))})(e),(e=>{const t=n(e),a=(e=>{let t=e;return{get:()=>t,set:e=>{t=e}}})((e=>{const t=n(e);return t.length>0?t[0]:r(e)})(e)),s=t=>e.execCommand("mceInsertDate",!1,t);e.ui.registry.addSplitButton("insertdatetime",{icon:"insert-time",tooltip:"Insert date/time",select:e=>e===a.get(),fetch:a=>{a(p.map(t,(t=>({type:"choiceitem",text:d(e,t),value:t}))))},onAction:e=>{s(a.get())},onItemAction:(e,t)=>{a.set(t),s(t)}});const i=e=>()=>{a.set(e),s(e)};e.ui.registry.addNestedMenuItem("insertdatetime",{icon:"insert-time",text:"Date/time",getSubmenuItems:()=>p.map(t,(t=>({type:"menuitem",text:d(e,t),onAction:i(t)})))})})(e)}))}();
|
||||
4
public/plugins/tinymce/plugins/link/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/link/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/lists/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/lists/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/media/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/media/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/nonbreaking/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/nonbreaking/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=n=>e=>typeof e===n,a=e("boolean"),o=e("number"),t=n=>e=>e.options.get(n),i=t("nonbreaking_force_tab"),r=t("nonbreaking_wrap"),s=(n,e)=>{let a="";for(let o=0;o<e;o++)a+=n;return a},c=(n,e)=>{const a=r(n)||n.plugins.visualchars?`<span class="${(n=>!!n.plugins.visualchars&&n.plugins.visualchars.isEnabled())(n)?"mce-nbsp-wrap mce-nbsp":"mce-nbsp-wrap"}" contenteditable="false">${s(" ",e)}</span>`:s(" ",e);n.undoManager.transact((()=>n.insertContent(a)))};var l=tinymce.util.Tools.resolve("tinymce.util.VK");n.add("nonbreaking",(n=>{(n=>{const e=n.options.register;e("nonbreaking_force_tab",{processor:n=>a(n)?{value:n?3:0,valid:!0}:o(n)?{value:n,valid:!0}:{valid:!1,message:"Must be a boolean or number."},default:!1}),e("nonbreaking_wrap",{processor:"boolean",default:!0})})(n),(n=>{n.addCommand("mceNonBreaking",(()=>{c(n,1)}))})(n),(n=>{const e=()=>n.execCommand("mceNonBreaking");n.ui.registry.addButton("nonbreaking",{icon:"non-breaking",tooltip:"Nonbreaking space",onAction:e}),n.ui.registry.addMenuItem("nonbreaking",{icon:"non-breaking",text:"Nonbreaking space",onAction:e})})(n),(n=>{const e=i(n);e>0&&n.on("keydown",(a=>{if(a.keyCode===l.TAB&&!a.isDefaultPrevented()){if(a.shiftKey)return;a.preventDefault(),a.stopImmediatePropagation(),c(n,e)}}))})(n)}))}();
|
||||
4
public/plugins/tinymce/plugins/pagebreak/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/pagebreak/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=tinymce.util.Tools.resolve("tinymce.Env");const t=e=>a=>a.options.get(e),r=t("pagebreak_separator"),n=t("pagebreak_split_block"),o="mce-pagebreak",s=e=>{const t=`<img src="${a.transparentSrc}" class="mce-pagebreak" data-mce-resize="false" data-mce-placeholder />`;return e?`<p>${t}</p>`:t};e.add("pagebreak",(e=>{(e=>{const a=e.options.register;a("pagebreak_separator",{processor:"string",default:"\x3c!-- pagebreak --\x3e"}),a("pagebreak_split_block",{processor:"boolean",default:!1})})(e),(e=>{e.addCommand("mcePageBreak",(()=>{e.insertContent(s(n(e)))}))})(e),(e=>{const a=()=>e.execCommand("mcePageBreak");e.ui.registry.addButton("pagebreak",{icon:"page-break",tooltip:"Page break",onAction:a}),e.ui.registry.addMenuItem("pagebreak",{text:"Page break",icon:"page-break",onAction:a})})(e),(e=>{const a=r(e),t=()=>n(e),c=new RegExp(a.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,(e=>"\\"+e)),"gi");e.on("BeforeSetContent",(e=>{e.content=e.content.replace(c,s(t()))})),e.on("PreInit",(()=>{e.serializer.addNodeFilter("img",(r=>{let n,s,c=r.length;for(;c--;)if(n=r[c],s=n.attr("class"),s&&-1!==s.indexOf(o)){const r=n.parent;if(r&&e.schema.getBlockElements()[r.name]&&t()){r.type=3,r.value=a,r.raw=!0,n.remove();continue}n.type=3,n.value=a,n.raw=!0}}))}))})(e),(e=>{e.on("ResolveName",(a=>{"IMG"===a.target.nodeName&&e.dom.hasClass(a.target,o)&&(a.name="pagebreak")}))})(e)}))}();
|
||||
4
public/plugins/tinymce/plugins/preview/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/preview/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),o=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=e=>t=>t.options.get(e),i=n("content_style"),s=n("content_css_cors"),c=n("body_class"),r=n("body_id");e.add("preview",(e=>{(e=>{e.addCommand("mcePreview",(()=>{(e=>{const n=(e=>{var n;let l="";const a=e.dom.encode,d=null!==(n=i(e))&&void 0!==n?n:"";l+='<base href="'+a(e.documentBaseURI.getURI())+'">';const m=s(e)?' crossorigin="anonymous"':"";o.each(e.contentCSS,(t=>{l+='<link type="text/css" rel="stylesheet" href="'+a(e.documentBaseURI.toAbsolute(t))+'"'+m+">"})),d&&(l+='<style type="text/css">'+d+"</style>");const y=r(e),u=c(e),v='<script>document.addEventListener && document.addEventListener("click", function(e) {for (var elm = e.target; elm; elm = elm.parentNode) {if (elm.nodeName === "A" && !('+(t.os.isMacOS()||t.os.isiOS()?"e.metaKey":"e.ctrlKey && !e.altKey")+")) {e.preventDefault();}}}, false);<\/script> ",p=e.getBody().dir,w=p?' dir="'+a(p)+'"':"";return"<!DOCTYPE html><html><head>"+l+'</head><body id="'+a(y)+'" class="mce-content-body '+a(u)+'"'+w+">"+e.getContent()+v+"</body></html>"})(e);e.windowManager.open({title:"Preview",size:"large",body:{type:"panel",items:[{name:"preview",type:"iframe",sandboxed:!0,transparent:!1}]},buttons:[{type:"cancel",name:"close",text:"Close",primary:!0}],initialData:{preview:n}}).focus("close")})(e)}))})(e),(e=>{const t=()=>e.execCommand("mcePreview");e.ui.registry.addButton("preview",{icon:"preview",tooltip:"Preview",onAction:t}),e.ui.registry.addMenuItem("preview",{icon:"preview",text:"Preview",onAction:t})})(e)}))}();
|
||||
4
public/plugins/tinymce/plugins/quickbars/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/quickbars/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/save/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/save/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const n=("function",e=>"function"==typeof e);var o=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),t=tinymce.util.Tools.resolve("tinymce.util.Tools");const a=e=>n=>n.options.get(e),c=a("save_enablewhendirty"),i=a("save_onsavecallback"),s=a("save_oncancelcallback"),r=(e,n)=>{e.notificationManager.open({text:n,type:"error"})},l=e=>n=>{const o=()=>{n.setEnabled(!c(e)||e.isDirty())};return o(),e.on("NodeChange dirty",o),()=>e.off("NodeChange dirty",o)};e.add("save",(e=>{(e=>{const n=e.options.register;n("save_enablewhendirty",{processor:"boolean",default:!0}),n("save_onsavecallback",{processor:"function"}),n("save_oncancelcallback",{processor:"function"})})(e),(e=>{e.ui.registry.addButton("save",{icon:"save",tooltip:"Save",enabled:!1,onAction:()=>e.execCommand("mceSave"),onSetup:l(e)}),e.ui.registry.addButton("cancel",{icon:"cancel",tooltip:"Cancel",enabled:!1,onAction:()=>e.execCommand("mceCancel"),onSetup:l(e)}),e.addShortcut("Meta+S","","mceSave")})(e),(e=>{e.addCommand("mceSave",(()=>{(e=>{const t=o.DOM.getParent(e.id,"form");if(c(e)&&!e.isDirty())return;e.save();const a=i(e);if(n(a))return a.call(e,e),void e.nodeChanged();t?(e.setDirty(!1),t.onsubmit&&!t.onsubmit()||("function"==typeof t.submit?t.submit():r(e,"Error: Form submit field collision.")),e.nodeChanged()):r(e,"Error: No form element found.")})(e)})),e.addCommand("mceCancel",(()=>{(e=>{const o=t.trim(e.startContent),a=s(e);n(a)?a.call(e,e):e.resetContent(o)})(e)}))})(e)}))}();
|
||||
4
public/plugins/tinymce/plugins/searchreplace/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/searchreplace/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/table/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/table/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/template/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/template/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/visualblocks/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/visualblocks/plugin.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* TinyMCE version 6.3.1 (2022-12-06)
|
||||
*/
|
||||
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const s=(t,s,o)=>{t.dom.toggleClass(t.getBody(),"mce-visualblocks"),o.set(!o.get()),((t,s)=>{t.dispatch("VisualBlocks",{state:s})})(t,o.get())},o=("visualblocks_default_state",t=>t.options.get("visualblocks_default_state"));const e=(t,s)=>o=>{o.setActive(s.get());const e=t=>o.setActive(t.state);return t.on("VisualBlocks",e),()=>t.off("VisualBlocks",e)};t.add("visualblocks",((t,l)=>{(t=>{(0,t.options.register)("visualblocks_default_state",{processor:"boolean",default:!1})})(t);const a=(t=>{let s=!1;return{get:()=>s,set:t=>{s=t}}})();((t,o,e)=>{t.addCommand("mceVisualBlocks",(()=>{s(t,0,e)}))})(t,0,a),((t,s)=>{const o=()=>t.execCommand("mceVisualBlocks");t.ui.registry.addToggleButton("visualblocks",{icon:"visualblocks",tooltip:"Show blocks",onAction:o,onSetup:e(t,s)}),t.ui.registry.addToggleMenuItem("visualblocks",{text:"Show blocks",icon:"visualblocks",onAction:o,onSetup:e(t,s)})})(t,a),((t,e,l)=>{t.on("PreviewFormats AfterPreviewFormats",(s=>{l.get()&&t.dom.toggleClass(t.getBody(),"mce-visualblocks","afterpreviewformats"===s.type)})),t.on("init",(()=>{o(t)&&s(t,0,l)}))})(t,0,a)}))}();
|
||||
4
public/plugins/tinymce/plugins/visualchars/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/visualchars/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
public/plugins/tinymce/plugins/wordcount/plugin.min.js
vendored
Normal file
4
public/plugins/tinymce/plugins/wordcount/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/content/dark/content.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/content/dark/content.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
body{background-color:#222f3e;color:#fff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}a{color:#4099ff}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#6d737b}figure{display:table;margin:1rem auto}figure figcaption{color:#8a8f97;display:block;margin-top:.25rem;text-align:center}hr{border-color:#6d737b;border-style:solid;border-width:1px 0 0 0}code{background-color:#6d737b;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #6d737b;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #6d737b;margin-right:1.5rem;padding-right:1rem}
|
||||
1
public/plugins/tinymce/skins/content/default/content.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/content/default/content.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
|
||||
1
public/plugins/tinymce/skins/content/document/content.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/content/document/content.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
@media screen{html{background:#f4f4f4;min-height:100%}}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif}@media screen{body{background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.15);box-sizing:border-box;margin:1rem auto 0;max-width:820px;min-height:calc(100vh - 1rem);padding:4rem 6rem 6rem 6rem}}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure figcaption{color:#999;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
|
||||
1
public/plugins/tinymce/skins/content/tinymce-5-dark/content.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/content/tinymce-5-dark/content.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
body{background-color:#2f3742;color:#dfe0e4;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}a{color:#4099ff}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#6d737b}figure{display:table;margin:1rem auto}figure figcaption{color:#8a8f97;display:block;margin-top:.25rem;text-align:center}hr{border-color:#6d737b;border-style:solid;border-width:1px 0 0 0}code{background-color:#6d737b;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #6d737b;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #6d737b;margin-right:1.5rem;padding-right:1rem}
|
||||
1
public/plugins/tinymce/skins/content/tinymce-5/content.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/content/tinymce-5/content.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
|
||||
1
public/plugins/tinymce/skins/content/writer/content.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/content/writer/content.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem auto;max-width:900px}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
|
||||
1
public/plugins/tinymce/skins/ui/oxide-dark/content.inline.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/oxide-dark/content.inline.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/oxide-dark/content.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/oxide-dark/content.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/oxide-dark/skin.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/oxide-dark/skin.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
|
||||
1
public/plugins/tinymce/skins/ui/oxide/content.inline.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/oxide/content.inline.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/oxide/content.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/oxide/content.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/oxide/skin.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/oxide/skin.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/oxide/skin.shadowdom.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/oxide/skin.shadowdom.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
|
||||
1
public/plugins/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/tinymce-5-dark/content.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/tinymce-5-dark/content.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/tinymce-5-dark/skin.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/tinymce-5-dark/skin.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
|
||||
1
public/plugins/tinymce/skins/ui/tinymce-5/content.inline.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/tinymce-5/content.inline.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/tinymce-5/content.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/tinymce-5/content.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/tinymce-5/skin.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/tinymce-5/skin.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/plugins/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css
vendored
Normal file
1
public/plugins/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
|
||||
4
public/plugins/tinymce/themes/silver/theme.min.js
vendored
Normal file
4
public/plugins/tinymce/themes/silver/theme.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
3116
public/plugins/tinymce/tinymce.d.ts
vendored
Normal file
3116
public/plugins/tinymce/tinymce.d.ts
vendored
Normal file
File diff suppressed because it is too large
Load Diff
4
public/plugins/tinymce/tinymce.min.js
vendored
Normal file
4
public/plugins/tinymce/tinymce.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user